我有一个用cgi编写的遗留web应用程序sys-1,它目前使用TCP连接与另一个系统sys-2通信。Sys-1以unix字符串的形式发送数据。现在,sys-2正在升级到java服务,这反过来又要求我们进行升级。是否有任何方法升级涉及现有遗留代码的最小更改。我正在考虑创建一个代码块,该代码块获取Sys-1的输出并将其更改为Sys-2所需的格式,反之亦然。
在研究过程中,我发现了两种方法:
我是Java服务的新手,对python有一定的了解。有人能建议这种方法是否有效吗?从性能和维护的角度来看,哪一种方法是更好的选择?欢迎您提出任何新建议!
发布于 2016-02-17 13:45:33
是否有任何方法升级涉及现有遗留代码的最小更改。
提到的解决方案,在应用程序之外添加一个转换层,对现有代码库的影响最小(因为它不会改变现有的代码库)。
有人能告诉我这种方法是否有效吗?
写一个传统系统-2到现代-系统-2转换器工作吗?是。你可以用任何你觉得舒服的语言写这篇文章。Web服务是Web服务,重要的是它们是用什么实现的。TCP套接字也是如此。
从表演中选择的更好的方法
表现有多重要?如果这是在蓝月亮上使用一次,那么谁在乎呢。在服务之间添加一个框将使服务之间的通信更慢。如果实现得很好,并且运行在接近系统1或系统2的地方,可能不会太慢。
维护的观点?
增加额外的基础设施增加了复杂性,从而增加了维护方面的问题。它还添加了要维护的新代码块,如果System 1需要以一种新的方式使用System 2,则需要维护两段代码(Legacy System 1和Legacy/现代转换器)。
欢迎您提出任何新建议!
遗产有多糟糕?你能把系统-1到系统-2代码撕成一些很好的接口吗?你可以在不太痛苦的情况下升级到使用现代系统2吗?长期而言,这样做的总成本较低,但前期成本(可能显著)更大。所以你必须决定什么对你的组织来说更重要。上市时间或长期维护。只有你的组织才能回答这个问题。
发布于 2016-02-17 13:50:04
也许你可以加个中间人。获取unix字符串的套接字服务器将它们解析为sys-2类型的消息并将其发送到sys-2。这可能是一个选择,不重写两个系统之间的所有调用。
https://stackoverflow.com/questions/35457531
复制相似问题