Architecture 适用于集成重写的体系结构+;迁移场景

Architecture 适用于集成重写的体系结构+;迁移场景,architecture,migration,integration,apache-camel,Architecture,Migration,Integration,Apache Camel,最近,我们在我工作的公司启动了一个项目,重组和重写我们的系统景观,拯救我们孩子的未来 我们有3-4个遗留系统,由于可怕的代码,这些系统绝对不能适应新的用例,但仍然通过电子邮件、xmlrpc、webinterface等不同的接口和格式每天处理相当多的订单 因此,我们考虑在完全重新设计的领域模型基础上从头开始编写一个新系统。由于我们不能简单地关闭旧系统,而且是一个非常小的团队,因此我们得出的结论是,我们需要一种架构和方法,使我们能够逐步开发新系统,并使其部分处于活动状态,并轻松(快速)集成新接口、合

最近,我们在我工作的公司启动了一个项目,重组和重写我们的系统景观,拯救我们孩子的未来

我们有3-4个遗留系统,由于可怕的代码,这些系统绝对不能适应新的用例,但仍然通过电子邮件、xmlrpc、webinterface等不同的接口和格式每天处理相当多的订单

因此,我们考虑在完全重新设计的领域模型基础上从头开始编写一个新系统。由于我们不能简单地关闭旧系统,而且是一个非常小的团队,因此我们得出的结论是,我们需要一种架构和方法,使我们能够逐步开发新系统,并使其部分处于活动状态,并轻松(快速)集成新接口、合作伙伴以及遗留应用程序和接口

其想法是从头开始完全重新设计整个域模型,创建订单服务,并使用ApacheCamel和OSGi容器来模拟将订单路由到传统系统和新系统的旧接口,并将格式处理和传输本身与新系统分离。由于逐步发展,我们希望选择更“以服务为中心”的体系结构,这将允许我们逐步改进、重用和可伸缩性。这一切在纸上听起来都不错,我读了很多关于“SOA”的书,但直到等到炒作消失,“好的部分”留下来,但大部分的讨论似乎仍然停留在非常抽象和不精确的“技术销售”层面上

我发现“基本/共享数据服务”方法非常有问题,如果我的实体有很多关系,比如顺序,有一个很大的图。如果我根据订单和其他实体为CRUD操作创建一个单独的服务,以更抽象的实体为基础,那么处理ACID、关系完整性将非常困难或不可能,或者您将不得不牺牲这些服务的自主权并将它们互连,这将使这些服务变得毫无用处(可能很慢)或者我理解错了什么

所以我的想法就是创造一个“传统的”DAL使用nice JPA POJO,当然还有接口,并将其部署为一个简单的、版本化的OSGi包,供业务和流程服务使用,具有更抽象的映射。然后这些服务将简单地使用它,并将其接口公开到总线上。为了满足需要访问单个数据的罕见情况,例如在驼峰或批量数据导入或报告,一个丑陋的“包括所有实体的服务”可以创建,这将解决ACID和完整性问题

到目前为止还不错,但是:WebUI(正如我所提到的,它主要是CRUD,因此不是一个真正的抽象过程)应该如何访问数据?直接使用JPA POJO将使其非常紧密地耦合,但是创建一个映射并引入另一个几乎相同的模型,并使用前面提到的“monster DAL服务”听起来也不太好

你觉得呢?感觉、优雅和实用之间的平衡在哪里

我很抱歉,这是几个问题,正文很长,但我觉得更详细地描述一下我们在这里面临的情况很重要


感谢您抽出时间:)

这与其说是一个答案,不如说是一张祝您好运的便条

我们的情况与你们的情况相同/不同,事实证明这是一个很难有效处理的问题

我认为你的方法是好的,听起来你正在取得一个好的平衡

您可以采用这样的企业集成模式,但这是否会让您达到您想要/需要的位置还有待观察

其他选择:还有“香肠”机器:将旧系统推入一个生成“新”代码(Java或.Net)的系统,该代码将成为您的新平台。好消息是你现在有了一个可以使用的语言的代码库,坏消息是这将是你所能想象到的最大最糟糕的一堆spagetti


即便如此,这也是一项巨大的事业。这里的一个政府机构花了两三年和500万美元来完成这项工作。它既不漂亮也不无痛,但似乎起了作用。如果你问得够多(即:不是在StackOverflow上),你应该找到那些处理过从你所使用的平台迁移的人,与他们进行对话。

这与其说是一个答案,不如说是一张祝你好运的便条

我们的情况与你们的情况相同/不同,事实证明这是一个很难有效处理的问题

我认为你的方法是好的,听起来你正在取得一个好的平衡

您可以采用这样的企业集成模式,但这是否会让您达到您想要/需要的位置还有待观察

其他选择:还有“香肠”机器:将旧系统推入一个生成“新”代码(Java或.Net)的系统,该代码将成为您的新平台。好消息是你现在有了一个可以使用的语言的代码库,坏消息是这将是你所能想象到的最大最糟糕的一堆spagetti


即便如此,这也是一项巨大的事业。这里的一个政府机构花了两三年和500万美元来完成这项工作。它既不漂亮也不无痛,但似乎起了作用。如果你问得够多(即:不是在StackOverflow上),你应该找到那些处理过从你一直使用的平台迁移的人,与他们进行对话。

好吧,我希望能有更多不同的经历,但我也明白,这在StackOverflow这样的格式中并不容易回答。谢谢你的提示:)我对这个项目还是很积极的。“嗯,我希望有更多不同的经历……”-是的,我知道你的意思。嗯,我希望有更多的经历