Tag: 体系结构

建议工作流系统的持久策略

我正在为我的宠物项目创建UI配置工具。 该工具的一个方面是让最终用户DEFINE他的编排。 然后,我需要将此业务流程定义保存到数据库中。 在正在运行的系统中将存在此定义的可执行版本。 可执行版本是按需动态创建的。 想法是将DEFINITION与EXECUTABLE版本分开,以便我可以灵活地在BPMN或JPDL或基于POJO的工作流程解决方案(BeanFlow)中选择运行时版本。 限制 :我不能使用jBPM,Activiti等框架附带的BPMN编辑器,因为我不想使用我自己的特定于我的域的UI。 我需要有关如何理解定义的建议。 我应该使用rdbms表吗? 如果是这样,我是否可以借用与业务流程概念相近的数据库模式? 我应该将我的定义序列化为BPMN / JPDL XML实例文档吗? 我可以使用其他任何简单的格式吗?

模型驱动的架构是否值得,工具的最新技术是什么?

我们的商店中有一个反复出现的问题,我们最终得到同一类/实体的3或4个不同的表示。 一个java版本,一个xml版本,一个hibernate版本,一个json版本……你明白了。 显然这会产生维护问题。 模型驱动的体系结构可能不止于此,但我真正喜欢的是一个系统,它允许我以一种方式定义一个类或一个实体,然后生成各种表示。 (也许我没有使用正确的术语) 当然,这真的不是那么直接,因为我们假设我们有一个java对象,我们希望将其变成JSON以通过网络发送 – 在java对象中的成员之间可能没有确切的1-1对应关系到JSON中的字段 – 可能会有一些优化,或者其他什么。 我过去曾看过像AndroMDA和EMF这样的东西,发现它们缺乏或笨拙。 我不知道他们这些天如何叠加,或者有什么其他系统。 SO对MDA和/或元数据驱动编程的看法是什么? 这些工具是否足够成熟以供认真考虑? 谢谢。

天基架构?

Pragmatic Programmer的一章建议将黑板/基于空间的架构+规则引擎视为传统工作流系统的更灵活的替代方案。 我正在研究的项目目前使用工作流引擎,但我想评估替代方案。 我真的觉得SBA可以更好地解决我们的业务问题,但我担心完全缺乏社区支持/用户群/供应商/选项。 JavaSpaces已经死了,JINI剥离Apache River似乎是生命支持。 SemiSpace看起来很完美,但它是一个单人秀。 唯一可行的解​​决方案似乎是GigaSpaces。 我想听听您对基于空间的体系结构的看法以及您在实际实现中所拥有的任何经验。

选择分布式共享内存解决方案

我有一项任务是为大规模可扩展的分布式共享内存(DSM)应用程序构建原型。 原型只能作为概念validation,但我希望通过选择稍后将在真实解决方案中使用的组件来最有效地利用我的时间。 此解决方案的目的是从外部源获取数据输入,进行流失并使结果可用于许多前端。 那些“前端”只会从缓存中获取数据并在没有额外处理的情况下提供服务。 此数据的前端点击量实际上可以达到每秒数百万。 数据本身非常不稳定; 它可以(而且确实)变化很快。 然而,在最新的处理和缓存之前,前端应该看到“旧”数据。 处理和写入由单个(冗余)节点完成,而其他节点仅读取数据。 换句话说:没有直读行为。 我正在寻找像memcached这样的解决方案,但是这个特殊的解决方案并不能满足我们下面列出的所有要求: 该解决方案至少必须具有相当好的维护的Java客户端API ,因为应用程序的其余部分是用Java编写的,而且我们是经验丰富的Java开发人员; 解决方案必须是完全弹性的 :应该可以添加新节点而无需重新启动集群中的其他节点; 解决方案必须能够处理故障转移 。 是的,我意识到这意味着一些开销,但整体服务的数据大小并不大(最大1G)所以这应该不是问题。 “故障转移”是指在节点出现故障时无需硬编码/更改服务器IP地址(如memcached客户端)的无缝执行; 理想情况下,应该可以指定数据重叠程度(例如,应该在DSM集群中存储多少份相同数据的副本); 不需要永久存储所有数据,但可能需要对某些数据进行后处理(例如,序列化到DB)。 价格 。 显然我们更喜欢免费/开源,但如果解决方案值得,我们很乐意支付合理的金额。 无论如何,支付24小时/天的支持合同是必须的。 整个事情必须在我们的数据中心托管,因此像Amazon SimpleDB这样的SaaS产品超出了范围。 如果没有其他选择,我们只考虑这个。 理想情况下,解决方案将严格一致 (如CAP); 但是, 最终的一致性可以被视为一种选择。 提前感谢任何想法。

传输对象和域对象之间的区别

能否用简单的术语解释Transfer对象和Domain对象之间的区别? 如果你能给出一个Java例子,那就太好了..

应用程序的体系结构:请求处理

我有以下问题: 我正在编写一个带有servlet和JSP的Web应用程序,它应该查询单独的服务。 但是查询需要花费很多时间 – 大约30秒。 我的应用程序的结构很简单 – Filter-> Controller-> jsp。 我在想如果在filter中我将请求发送到一个单独的线程中以便在控制器继续执行其作业时进行处理。 为了使查询过程和控制器处理同时进行,我该怎么办? +我需要每5分钟更新一次查询(以便用户确实拥有相关信息)。 这样做的最佳方式是什么?

如何找到OS位类型

我想知道操作系统类型,意思是64位操作系统或32位操作系统。 但我得到了32位/ 64位可执行文件的不同响应,它获得了有关操作系统的系统属性 我从系统属性获取详细信息。 我有64位机器和操作系统Windows 8.1 X64 “OS Architecture : ” + System.getProperty(“os.arch”)); “OS Name : ” + System.getProperty(“os.name”)); “OS Version : ” + System.getProperty(“os.version”) “Data Model : ” + System.getProperty(“sun.arch.data.model”)); 运行64位可执行文件时获得以下响应。 操作系统架构 : amd64 操作系统名称 :Windows 8 操作系统版本 :6.2 amd64 数据模型 :64 运行32位可执行文件时获得以下响应。 操作系统架构 : x86 操作系统名称 :Windows 8 操作系统版本 :6.2 x86 数据模型 :32 […]

Java将XML转换为动态的XML

我正在寻找从XML定义创建和加载JAVA对象的最佳工具/方法。 我已经检查了JAXB ,看起来相当不错,但是没有发现是否有办法使用实体哪些属性是动态的,或者不时更改,所以想要有类似自动处理实体的方式,而不需要转换将对象转换为预定义的Entity对象。 这样的事情存在吗? 工作流将类似于从具有动态属性集的每个实体的XML创建类读取和/或为这些实体创建ORM映射部分,然后所有操作检索/存储到db或可能将使用某些NoSQL解决方案,如MongoDB。

Java中的大类分解

我刚刚开始学习Java,并且很好奇Java中是否有良好的对象分解方法? 让我来描述一个问题。 在大型软件项目中,它总是像“核心”或“ui”这样的大类,往往有很多方法,并且打算作为较小类之间的调解者。 例如,如果用户单击某个窗口上的按钮,则此窗口的类会向“ui”类发送消息。 这个’ui’类捕获这个消息,并通过使用应用程序用户界面(通过其中一个成员对象的调用方法)或通过将消息发布到应用程序’core’来执行相应的操作,如果它类似于“退出应用程序”或“启动网络”连接’。 这些对象很难分开,因为它们仅仅是许多小应用程序对象之间的调解器。 但是,如果这样的方法是从一个对象到另一个对象的简单任务委托,那么在具有成百上千种方法的应用程序中使用类就不是很方便。 C#通过允许将类实现分解为多个源文件来解决此类问题:您可以按照您选择的方式划分上帝对象,并且它将起作用。 通过在Java中划分这些对象的任何做法?

关于“贫血领域模型”被认为是反模式的具体例子

如果这是重复,我道歉,但我在相关问题中找不到关于该主题的任何具体示例。 在阅读了Martin Fowler关于“贫血领域模型”的文章之后,我不知道为什么这被认为是一种反模式。 大多数企业开发人员甚至认为它是一种反模式,因为AFAIK可能有90%的j2ee应用程序是以“贫血”方式设计的? 有人可以推荐进一步阅读这个主题(除了“领域驱动设计”一书),甚至更好,给出一个具体的例子,说明这种反模式如何以一种糟糕的方式影响应用程序设计。 谢谢,