好的我在哪里工作,我们有相当多的系统在过去几十年中编写,我们维护。这些系统在多种操作系统(Linux,Solaris,Windows),多个数据库(Oracle的几个版本,sybase和mysql)以及多种语言(C,C++,JSP,PHP和主机)上是多种多样的的其他)被使用。如何最好地集成多个系统?
即使将相同的数据输入多个系统,每个系统都是相当自主的。
管理层最近决定,我们应该研究如何使所有系统愉快地彼此交谈并共享数据。请注意,尽管我们可以对任何单个系统进行软件更改,但对任何一个系统(或更多)的完全重写都不是管理层可能会喜欢的事情。
这里的几位开发人员的第一个想法是直截了当的:如果系统A需要来自系统B的数据,它应该连接到系统B的数据库并获取它。同样,如果它需要提供B数据,它应该将其插入到B的数据库中。
由于所使用的数据库(和版本)混乱,其他开发人员认为我们应该有一个新的数据库,将所有其他系统的表结合起来,以避免必须处理多个连接。通过这样做,他们希望我们能够合并一些表格并摆脱冗余数据输入。
这是关于我被引入我的意见整个混乱的时间。
使用数据库作为系统通信手段的整个想法对我来说很有趣。业务逻辑必须被放置到多个系统中(如果系统A想要向系统B添加数据,那么在执行插入操作之前就可以更好地理解B的有关数据的规则),但有些系统很可能必须执行某种形式的数据库轮询才能找到对数据的任何更改,持续的维护都是头痛的问题,因为对数据库模式的任何更改现在都会传播多个系统。
我的第一个想法是花时间为不同的系统编写API /服务,这些系统一旦编写就可以很容易地用来传递/检索数据。许多其他开发人员认为这比使用数据库更加繁琐和多得多。
那么,让这些系统相互对话最好的方法是什么?