旧的Cobol软件和新的操作系统

时间:2010-09-15 23:46:45

标签: cobol aix

一名中年男子在大约25年前为他所工作的公司开发软件...... 他用COBOL编写了所有内容......我花了几个小时才了解系统是如何工作的! 那么该公司的服务器太旧了(8 MB硬盘)我觉得...... 他没有使用数据库,但将数据存储在文件中...... 他告诉我他希望将系统升级到新的......老系统使用AIX操作系统.... 他想知道aix或linux是否更好,我认为Linux的发行可能会更好,因为Linux有很多免费软件...我不知道什么是兼容AIX ... 该公司是某种类型的仓库...... 他开发了一个网站供客户登录并查看一些信息。该网站位于远程服务器上,他手动复制并粘贴远程服务器上的数据库......

他希望将功能添加到下达订单的网站...... 但是他不愿意更新旧的COBOL代码并至少使用数据库...

公司里的人通过使用某种telnet客户端telnet服务器来使用服务器的程序....

我的教育目的问题...... 有没有办法重用COBOL代码并创建Web界面? 或者,如果在使用cobol中的相同代码时为用户创建GUI程序是可行的... 因为我知道编写代码在不同的地方做同样的事情并不是个好主意。 我的意思是存在于不止一个地方的商业逻辑......

5 个答案:

答案 0 :(得分:2)

逃跑!

至少在您的客户使用之前 一个真正的数据库系统来实现订单输入系统。 所有交易处理系统都需要 确保ACID属性 为每笔交易维护。这是一个根本原因 为什么真实数据处理系统使用数据库不使用DBMS是 一个确定的灾难公式(迟早)。

COBOL可以连接到Web服务或GUI类型的应用程序吗?答案 肯定是的,这不是一个不常见的做法。实现它 可能是一个或多或少痛苦的过程取决于COBOL应用程序的方式 结构化。如果它具有Client/Server类型结构, 那么你只需要用web / GUI替换客户端组件 组件,插入适当的中间件以连接到服务器,你已经完成了很多工作。 如果COBOL应用程序是作为一个开发的 big ball of mud,那你就是 在艰难的旅程中。由于您的客户自己在一个独立的平台上开发了他的系统,我 我愿意打赌严肃的钱,“大泥球”模型适用。做好最坏的准备。

如果此应用程序仅使用“小时”而不是“月”来理解它不会发出声音 所有这些复杂的 - 你可能会发现从头开始重建它是一个可行的选择。然而, 不要低估这样做的工作!

至于升级AIX系统或切换到Linux,我帮不了你。

以下是您可能想要查看的AIX上COBOL的几个资源:

如果您选择使用Linux路线,我建议您查看:

您的客户表示对MicroFocus COBOL感兴趣。 MicroFocus可能是 大型机市场以外最大的COBOL供应商。他们有很好的声誉。 MicroFocus also supports web development on Linux platforms 并且往往对IBM COBOL方言有很好的支持,如果从AIX迁移,这可能是一个考虑因素。

我最后的建议是逃避,直到你的客户醒来 以下事实:

  • 需要使用支持ACID的真实DBMS来管理数据和事务。
  • 将基于网络的订单输入系统添加到“泥球”上并不是一个周末项目。它可能需要 完整的重构,可能完全重写现有系统

BTW ......如果你想与这个人保持工作关系,不要打电话给他的系统 一个“泥球”,即使它是一个。他建造了这件事并且可能 把它看作是他的一个孩子。

答案 1 :(得分:1)

AIX vs Linux - Linux会更便宜,高端AIX机箱是你可以购买的最强大的机器之一 - 否则没有太大区别,大多数OSS软件已经或可以很容易地移植到AIX。

你最好的策略是重用现有的COBOL COPYBOOK并编写一个COBOL程序,它读取平面文件并插入更多的portbale格式(XML,MySql imort文件,基于文件的数据库,如sqlite,或直接插入到Web服务器上的数据库)。

这种方法的独特优势在于常用的COBOL意识形态,例如“PIC BBBB99.99-”,“REDEFINES”,“OCCURS DEPENDING ON”,“COMP SYNCHROISED”松弛字节处理中的字符格式编号,压缩十进制“COMP-3”格式,真的很难用其他语言重现。

应该注意的是,直到最近,COBOL才是能够正确执行Arithimatic(会计师理解)的少数几种语言之一。

答案 2 :(得分:0)

安装TinyCOBOL的Linux服务器可能是一种选择。我会继续 密切关注The Daily WTF,希望听到故事的其余部分......

答案 3 :(得分:0)

嗯,是的,这就是他的想法...这个系统是他的孩子25年了!还有钱给公司。下周我会看到他的一个项目的来源...... 实际上他做了大约5个不同的节目......

你说它可以接口,问题是如何??? 用什么?现在系统通过telnet工作...... 如果解决方案是在接口应用程序中创建telnet连接,并以这种方式获取数据......我认为这完全是不好的..

答案 4 :(得分:0)

我使用的一种可能的方法是保持COBOL核心但是在边缘扩展。这符合“他希望将功能添加到下订单的网站”。

Microfocus提供了一个名为Enterprise Server的工具,它允许COBOL与Web服务进行交互。 (它在Linux和AIX上运行。)

如果您有COBOL程序A和另一个COBOL程序B和A通过接口部分调用B,该工具允许您将B的接口部分公开为Web服务。

对于程序A,然后生成客户端代理,A现在可以通过Web服务调用B.

当然,因为B现在有一个Web服务,任何其他类型的程序(命令行,Windows应用程序,Java,ASP等)现在也可以调用它。

此外,他们还有一个名为COBOL.NET的产品,它在Visual Studio中运行并将COBOL转换为MSIL。这意味着您可以链接任何.NET组件。

因此,方法是保留COBOL核心,但通过Web服务进行接口,并在任何符合CLR的语言(C#,VB等)中进行新的开发。

P.S。要小心将使用大端的COBOL系统移动到使用小端的系统,反之亦然!

相关问题