最近,我们在以重组开始在公司工作,我一个项目,并改写我们的系统景观和拯救我们的孩子的未来。

我们有3-4这绝对不可能是适应的,因为可怕的代码,新的使用案例遗留系统,但仍通过处理不同的接口和格式,如电子邮件,XML-RPC,webinterface每天的订单相当大的量。

于是我们想到从头开始编写基于一个完全重新设计域模型的新系统。因为我们不能简单地切换旧系统关闭,是一个非常小的团队,我们得出的结论是,我们需要一个架构和做法,让我们逐步开发新的系统,并把部分住在一起,方便地(读;快)集成新的接口,合作伙伴,并与传统应用程序和接口。

的想法是从头完全重新设计整个域模型,建立一个订单服务和使用Apache骆驼与OSGi容器以模仿旧接口路由的命令到旧和新的系统和解耦格式处理和新系统运输本身。由于逐步发展的,我们想选择的都是比较“服务中心”的架构,这将使我们逐步完善,可重用性和可扩展性。它在纸面上所有的声音不错,和我读了不少关于“SOA”,但直到等待炒作死光和“好件”留下来,但大部分的谈话仍然是一个非常抽象和unprecise“技术销售”的水平似乎。

我找到了“基本/共享数据服务”的做法很成问题,如果我有实体,有很多的关系,如订单,具有相当大的图表。如果我将创造对订单CRUD操作和其他实体的个人服务,立足于更抽象的,这将是非常有问题或无法处理ACID,关联完整性或你将不得不牺牲这些服务和互连的自主权他们,这将使服务挺有用的(也可能很慢)。或者,我才明白什么了吗?

所以我的想法是简单地创建使用漂亮的JPA的POJO当然与接口的“传统” DAL,并将其部署为一个简单的,对于业务和流程的服务,使用版本的OSGi包,有一个更抽象的映射。然后,这些服务将简单地使用它,并揭露他们的接口总线。为了满足需要访问个别数据,像骆驼或批量数据导入或报告,一个丑陋的可以创建这将解决酸和完整性问题“包括服务的所有实体。”

内容丰富的罕见病例

到目前为止好,但:应该如何在WebUI(其中大部分是CRUD正如我提到的,因而不是真正的抽象过程)访问的数据?直接使用JPA的POJO会使它加上相当tighly,但创建一个映射,并引入另一个,几乎相同的模型,并用上述的“怪物DAL服务”犯规的声音太好了。

你觉得呢?哪里是感觉,优雅与实用性之间取得良好平衡?

我很抱歉,这些都是几个问题和文字很长,但我觉得来描述我们面临这里更详细一点的情况是非常重要的。

感谢您的时间:)

有帮助吗?

解决方案

这与其说是一个答案,记祝你好运。

我们有一种情况,就是相同/不同的形式你的,它证明是一个非常艰难proble有效处理。

我觉得你的做法是好的,喜欢你的声音正撞在OK平衡。

您可以采取的企业集成模式像那些由Martin Fowler 公布,但是否会得到你在那里,你想/需要是,仍有待观察。

其他选项:还有的“香肠”机器:在这里你推旧系统到产生“新”代码(Java或.NET),这将成为新的平台系统。好事是,你现在对你有可以工作语言代码库,坏消息是,这将是你想象通心粉最大最可怕的一堆。

即使如此,它是一个非常艰巨的任务。政府机构在这里度过了2年或3年和500万$得到这个工作。这不是漂亮或无痛的,但似乎已经奏效。如果你问周围够(即:未在计算器上)。你应该找到谁已经处理过迁移平台的套牢的人,获得与他们交谈

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top