这个模式是“遗产迁移的模式”
恢复到源
确定数据的原始来源并与之集成
2022年7月07
在许多组织中,一旦完成了将新系统集成到大型机中的工作,那么通过大型机与该系统交互就变得容易得多,而不是每次都重复集成。对于许多具有单块体系结构的遗留系统来说,将相同的系统多次集成到相同的单块体系结构中是华体会体育网页版入口很有意义的,而且可能会造成混乱。随着时间的推移,其他系统开始进入遗留系统获取这些数据,原始的集成系统常常被“遗忘”。
这通常会导致遗留系统成为多个系统的单一集成点,因此也成为任何需要该数据的业务流程的关键上游数据源。重复此方法几次,并将紧密耦合添加到我们经常看到的遗留数据表示中,例如侵入性临界聚合器,那么这可能会对遗留置换造成重大挑战。
通过追溯“超越”遗留资产的数据源和集成点,我们通常可以为遗留替换工作“恢复到源”。这可以让我们在早期减少对遗留问题的依赖,并提供一个机会来提高数据的质量和及时性,因为我们可以使用更多的现代集成技术。

另外值得注意的是,出于商业和GDPR等法律原因,了解数据的真正来源越来越重要。对于许多拥有大量遗留资产的组织来说,只有当出现故障或问题时,数据的真正来源才会变得更加清晰。
它是如何工作的
作为任何遗留替换工作的一部分,我们需要跟踪关键数据流的原始源和汇。根据我们选择如何分割整体问题,我们可能不需要一次对所有系统和数据进行处理;虽然为了了解要完成的工作的总体规模,理解主要流程是非常有用的。
我们的目标是生成某种类型的数据流图。实际使用的格式并不那么重要,关键在于这种发现不仅仅停留在遗留系统上,而是更深入地挖掘底层集成点。在与客户合作时,我们看到华体会体育网页版入口了许多架构图,令人惊讶的是,他们似乎经常忽略遗留的背后是什么。
有几种通过系统跟踪数据的技术。从广义上讲,我们可以将其视为追踪上游或下游的路径。虽然经常有数据流入和流出底层源系统,但我们发现组织倾向于只从数据源的角度考虑问题。也许从遗留系统的角度来看,这是任何集成中最明显的部分?从遗留系统返回到源系统的数据流是任何集成中最不被理解和最少记录的部分,这一点并不罕见。
对于上游,我们通常从业务流程开始,然后试图跟踪数据流进入遗留,然后通过遗留返回。这可能具有挑战性,特别是在具有许多不同集成技术组合的旧系统中。一个有用的技巧是使用isCRC卡目标是为关键业务流程步骤创建一个数据流图和序列图。无论我们使用哪种技术,都必须让正确的人参与进来,最理想的是那些最初致力于遗留系统的人,但更常见的是那些现在支持遗留系统的人。如果这些人没有可用的资源,并且对事物如何工作的知识已经丢失,那么从源头开始并向下工作可能更合适。
跟踪下游集成也非常有用,但在我们的经验中经常被忽视,部分原因是如果奇偶特性在发挥作用时,焦点往往只放在现有的业务流程上。在跟踪下游时,我们从底层集成点开始,然后尝试跟踪到它所支持的关键业务功能和流程。就像一个地质学家把染料引入河流可能的源头,然后观察染料最终出现在下游的哪些小溪和支流。这种方法在关于遗留集成和相应系统的知识缺乏的情况下特别有用,在创建新组件或业务流程时尤其有用。在跟踪下游时,我们可能会在不知道数据的确切路径的情况下发现数据在哪里发挥作用,这时您可能希望将其与原始源数据进行比较,以验证在此过程中是否发生了更改。
一旦我们理解了数据流,我们就可以看看是否有可能在源头截取或创建数据的副本,然后这些副本就可以流向我们的新解决方案。因此,我们不是集成到遗留,而是创建一些新的集成来允许我们的新组件还原到源代码。我们确实需要确保我们同时考虑上游和下游流,但正如我们在下面的例子中看到的那样,这两个流不必一起实现。
如果新的积分不可能,我们可以用事件的拦截或者类似于创建数据流的副本,并将其路由到新组件,我们希望尽可能在上游完成此操作,以减少对现有遗留行为的任何依赖。
何时使用
当我们提取特定的业务能力或流程时,还原到源是最有用的,这些业务能力或流程依赖于数据,这些数据最终来自“隐藏在”遗留系统后面的集成点。当数据基本不变地通过遗留数据时,它的工作效果最好,在使用之前很少进行处理或充实。虽然这在实践中听起来不太可能,但我们发现在许多情况下,遗留只是充当集成中心。在这些情况下,我们看到发生在数据上的主要变化是数据的丢失和数据时效性的降低。数据丢失,因为字段和元素通常被过滤掉,这仅仅是因为没有办法在遗留系统中表示它们,或者因为进行所需的更改成本太高和风险太大。由于许多遗留系统使用批处理作业进行数据导入,因此降低了时效性临界聚合器“安全数据更新周期”通常是预先定义的,几乎不可能更改。
我们可以将还原到源与并行运行和协调结合起来,以验证遗留数据中没有发生其他更改。一般来说,这是一种可靠的方法,但在数据通过不同路径流向不同端点,但最终必须产生相同结果的情况下尤其有用。
使用“还原到源”也有强大的商业理由,因为通常可以获得更丰富、更及时的数据。通常情况下,源系统已经升级或更改了几次,而这些更改有效地隐藏在遗留系统后面。我们已经看到了多个例子,其中对数据的改进实际上是这些升级的核心理由,但其好处从未完全实现,因为更频繁和更丰富的更新无法通过遗留路径提供。
在存在双向数据流和底层集成点的情况下,我们也可以使用这种模式,不过在这里需要更加小心。最终到达源系统的任何更新都必须首先流经遗留系统,在这里它们可能触发或更新其他流程。幸运的是,将上游和下游流分开是完全可能的。因此,例如,流回源系统的更改可以通过遗留系统继续进行,而我们可以直接从源系统获取更新。
重要的是要注意源系统中可能存在的任何跨功能需求和约束,我们不想使该系统过载或发现它不够可靠或不够可用,无法直接提供所需的数据。
零售商店的例子
对于一个零售客户,我们能够使用Revert to Source既提取新的组件又改进现有的业务功能。客户拥有大量的商店,最近还创建了一个网上购物网站。最初,新网站的所有库存信息都来自旧系统,而这些数据又来自仓库库存跟踪系统和商店本身。
这些集成是通过隔夜的批处理作业完成的。对于仓库来说,这工作得很好,因为库存每天只离开仓库一次,所以业务可以确保每天早上接收到的批更新在大约18小时内保持有效。对于商店来说,这产生了一个问题,因为在整个工作日的任何时候,货物都可能离开商店。
考虑到这个限制,网站只提供仓库中可供出售的库存。来自站点的分析与第二天收到的商店库存数据相结合,清楚地表明销售损失的结果是:所需的库存在商店中一整天都有,但遗留集成的批处理性质使其无法利用。
在这种情况下,创建了一个新的目录组件,最初只供网站使用,但其目标是成为整个组织的新记录系统。该组件直接与店内收银系统集成,该系统能够在销售发生时提供近乎实时的更新。事实上,为了支持电子支付,该公司已经投资了一个高度可靠的网络,这个网络有大量的闲置容量。仓库库存水平最初是从遗留系统中提取的,其长期目标是在稍后阶段将其还原到源中。
最终的结果是,该网站可以安全地提供店内库存,供店内预订和网上销售,同时还提供了一个新的库存组件,提供更丰富、更及时的库存动态数据。通过返回到新的库存组件的源,组织还意识到他们可以访问更及时的销售数据,当时这些数据也只能通过批处理更新为遗留数据。产品线和价格等参考数据继续通过主机流向店内系统,这是完全可以接受的,因为这只是很少更改。
本页是:
遗产迁移的模式

模式
重大修改
07年2022年7月:发表