我的部门目前承担着维护相当大的COBOL代码库的任务。我们想知道如何添加新功能来满足业务需求。如今,COBOL程序员很难再出现了,我们还认为,使用Java或C#等更现代的语言可以提高生产率。
我们认为我们有四个选择:
您认为什么是我们的最佳选择,为什么?
诚然,问题涉及到cobol,它会根据您的需求做出任何特定的回答,如果您说“我们有一个旧的VB应用程序”或旧的C应用程序,则选择#3始终是正确的方法。
我曾在3家决定选择方案2的公司工作。第2位破产者试图为新系统付费,而仅从旧版本中获得收益,第3位确实非常接近。
行动3的另一个因素是,您必须保留多年来使用的所有旧错误修正程序。每次重写总是会引入越来越多的错误,部分是因为您希望快速完成重写,部分是因为您将用一种陌生的新语言编写它,部分是因为所有新代码都包含错误。
重构并替换旧应用程序的逻辑块,最终您将拥有一个漂亮的闪亮新应用程序。从GUI开始,以获得最安全的新方法。此外,当您用新内容重新编写应用程序时,更新的内容将是最酷的,新应用程序将过时,您将再次发布相同的问题!
这是选项3的变体:
Microfocus提供了一个称为Enterprise Server的工具,该工具允许COBOL与Web服务进行交互。
如果您有一个COBOL程序A和另一个COBOL程序B,并且A通过接口部分调用B,则该工具允许您将B的接口部分公开为Web服务。
然后,对于程序A,您将生成一个客户端代理,并且A现在可以通过Web服务调用B。
当然,由于B现在具有Web服务,因此任何其他类型的程序(命令行,Windows应用程序,Java,ASP等)现在也可以调用它。
使用这种方法,您可以“蚕食边缘”,使用ASP之类的工具将GUI迁移到基于浏览器的现代方法,同时仍然利用COBOL业务引擎。
并且,一旦有了一套不错的Web服务,这些服务便可以用于任何新开发,从而从长远角度提供摆脱COBOL的方式。