弥合两个世界
大型机

弥合两个世界:大型机和客户

应用架构:进化视图 我写道,计算机已经从1970年代的大型机时代演变为今天的互联世界,其中大型机和其他服务器与PC和移动设备通信,以提供在1970年代甚至没有想象的服务。大型机被认为是上个世纪的遗物,以像COBOL这样的语言编程,没有人想要更多地学习,然而他们仍然是银行,保险公司和政府部门的主干。不仅迁移为大型机平台构建的软件,而且大型机的大型I / O功能和非常高的OLTP容量难以匹配。 迁移项目可能会有风险和令人失望而对于拥有大型OLTP负载的银行和保险公司等公司仍然是最具成本效益的平台。

客户端设备,旨在服务一个用户,而不是通过丰富的接口与数据交互的任务,如电子表格,文字处理,CAD和电子邮件和Web浏览,其中丰富的接口与通信相结合的电子邮件和Web浏览相互作用。让所有这些都发生需要很多客户编程。开发人员将使用Java,C#,VB.NET,Python等工具和语言,从大型机环境之外开发,可以在其PC上使用。传统的数据处理将由数据库接口管理,有时是SQL,通常使用LINQ等专有层。您可以肯定的一件事:客户端开发人员不会使用COBOL,PL / I或FORTRAN,传统的大型语言。

现在考虑在线购物。从您的PC,您可以搜索您想要的东西。你找到它,然后点击你买了它。金钱从您的银行账户转移到供应商的供应商,并且该商品计划用于接送和交付。几乎肯定会涉及大型机系统,以及显示网页的客户端系统,因此我们需要开发组合大型机和客户端技术的系统。我们必须在两个使用不同语言和概念的世界中开发解决方案。有很多问题。

大型机世界

在大型机世界中,我们需要开发Web服务,该服务将管理您的付款数据,检查您的帐户中有货币支付购买费用,并将其从您的帐户移动到供应商的帐户中。在古典CICS的日子里没有任何相关的问题已经消失了。仍然有必要确保两个记录都在整个更新过程中有效地锁定,但由于锁定争用而不会使系统停止。 CICS伪锁定对此是一个很好的解决方案,但Web服务是严格的原子,因此您不能简单地在Commarea中保存副本。等效伪锁定方法使用校验和散列总数,传递到其消息中的服务。 正如我之前写的那样,您需要在COBOL或PL / I中编写Web服务.

但是您在哪里找到了解这些语言的开发人员?你面临着培训一代新一代的COBOL程序员。谁想使用您无法在PC上运行的语言,使用像Visual Studio这样的IDE?好吧,你不必: Micro Focus Enterprise Developer 可以与Visual Studio或Eclipse合作,提供支持COBOL的现代开发环境,允许与VB,C#和Java一起调试相同的步骤调试。

即便如此,编写Web服务更新程序并不容易。幸运的是,在大型机生态系统中提供了少数代码生成解决方案,实际上可以为您编写COBOL( Manasys Jazz. 是其中之一)。只需点击几下,它将使用校验和伪锁定生成高质量的COBOL Web服务程序以更新单个记录或记录集合。

当然,这不仅仅是cobol。 Web服务必须通过JSON进行通信,以便Java,C#,VB等的客户端世界可以了解从大型机发送的数据。使用正确的代码生成解决方案,配置为直接使用z / OS,提交要编译的Web服务程序的JCL将包括从COBOL程序及其消息描述中自动开发绑定文件和JSON消息描述的步骤。使用Micro Focus几个对话点击达到相同的结果。

这些解决方案为大型机问题提供了简单的解决方案 - COBOL程序员短缺,没有人想要学习COBOL,COBOL速度慢写,难以使用。

客户世界

他们继续发展足够的时间,只需几分钟,可以生成一个简单的COBOL Web服务,并可生成,编译,编译和使用测试实用程序(SOAPUI)的服务。但是,每周一个Web服务都花了很好的时间来编写ASP.NET程序 用于此视频以展示它们 在我们的网站上。解决方案继续开发,并且在去年的文章中,几分钟内生成的服务可能会提供来自VSAM或DB2数据的单记录或记录组更新,并与JSON而不是WSDL通信。但是写客户程序仍然很困难,特别是随着互动的复杂性随着“更新必须遵循的规则”,互动增加了“必须返回查询的校验和价值”。

客户端开发人员使用不同的语言(C#,Java,...)不仅仅是因为他们的可用性和开发人员的经验,而且因为面向对象的语言更适合客户世界。语言差异反映了不同的概念:对象和属性有点像COBOL和其他大型机程序员的记录和字段,但它们也有很多不同。例如,无法将对象和属性重新定义为COBOL中的记录和字段。客户端阵列更像是一个列表,而不是COBOL程序员理解数组的内存的固定大小重复区域。当客户端程写师必须与大型机开发人员通信或处理大型机发起的Web服务数据时,所有这些都会产生问题。

从数据定义和生成对话框中,软件可以生成Web服务。因此,它具有生成客户端接口所需的所有信息以与此服务通信,封装服务的规则及其数据,以及将属性和方法呈现给客户端程序。我们的下一个挑战是显而易见的。

客户服务界面

自11月以来,我们已经能够展示界面生成的概念证明。已生成类似程序JSPG2的Web服务,从IBM的Sample DB2数据库更新员工记录,更多单击生成接口JSPG2Client:–

使用封装在界面中的服务规则,客户端开发非常简单:只需将数据分配给接口,并立即验证。客户端不需要知道消息格式和事务规则,只需调用具有适当参数值的适当接口方法。客户端程序需求的所有信息都可以通过IntelliSense发现。

客户端接口是在C#中生成的。为什么c#?通过定位.NET核心并使用C#,可以为Windows,UNIX,Linux,Android和iOS编译接口。实际的客户程序可能以各种语言编写,包括VB和Java以及C#。

下一个地方?

这种发展已经显示出令人兴奋的结果。 在这个视频示例中 18行DB2表定义产生了77行的Jazz程序和消息定义,它成为了2500行的COBOL行,320行的JSON,854行C#,所有这些都是编译和工作首次编译和工作。与开发Web服务和相关客户端的任何其他方式相比,这是一个巨大的生产力增益。没有其他软件基于数据的定义生成大型机Web服务和集成的客户端接口代码。

现在,通过能够从共享数据模型快速且容易地生成相关的客户端接口,可以实现Web服务/客户端界面,并在几天内演示服务和客户端。然后几天稍后演示版本2.随着Web服务的发展,接口随着几次点击自动重新生成,除非利用新数据,否则甚至不需要更改实际客户端。敏捷开发实现其潜力,因为每周冲刺都可能。将其与大多数大型机用户的情况进行比较,商业分析师和系统架构师必须使用不同和不兼容的编程技术为单独的大型机和客户编程团队准备规范,并且改变界面是一个重要的发展,而不仅仅是几分钟的工作。

潜力是巨大的,我们热衷于推出一流的未来增强,因为我们实施了这个想法 我们已经拥有了,但我们特别期待与甚至更多想法的真实用户,并帮助我们优先考虑它们。我们欢迎在大型机市场中积极参与愿意推销我们软件的公司的方法,以便我们可以专注于使产品更好。

 罗伯特巴恩斯
罗伯特巴恩斯 的最新帖子 ( 看到所有 )

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *