json格式的多条数据_COBOL程序数据转JSON格式消息

 

在主机世界里运行的程序中,有一些是用比较早期的语言编写的,比如PL1、Assembler、COBOL等。随着计算机技术的发展,这些程序已经无法满足当今科技高速发展的需求。

比如,客户需要把主机上的一些数据以JSON数据格式发送到MESSAGE QUEUE服务器里,然后从MESSAGE QUEUE服务器中抽取相应数据进行商业开发。理论上可以直接修改这些老程序,但这会是相当大的工程;而且,现代需求日新月异,也许在修改好程序后,又有了新的需求。另一方面,从主机资源的消耗上来说,修改这些程序势必增加主机资源的开销,如MIPS、MEMORY等,这对于客户来说也是一个很大的挑战。

如何既不修改或少量修改原来的老程序,又能减少主机资源的额外开销?

针对这种情况,CICS也提供了解决方案。从今天开始,我们会通过一系列文章,借助一个应用场景,来介绍CICS的一种解决方案:

4c437ce91717353504a68ee08ca1c4b5.png

应用场景流程图

应用场景主要包含以下步骤:

  1. 后台是COBOL程序,该程序会在CICS的CHANNEL/CONTAINER放入需要发送的数据,我们统一把COPYBOOK的数据放入CHANNEL/CONTAINER中,然后通过EXEC CICS LINK调用运行在CICS JVM Server的Java程序;

  2. 根据需要把COPYBOOK转换成相应的Java POJO类,这个类把COBOL程序中用到的COPYBOOK变量与POJO类的属性一一对应,再把POJO类以jar方式添加到Java程序库中,以便后续编写Java应用程序时调用。在转换Java POJO类时,可以使用IBM Record Generator工具轻松转换;

  3. 编写Java应用程序并运行在CICS的Liberty profile中,当Java运行在CICS里时,会自动使用zIIP(z Systems Integrated Information Processor)这类廉价CPU,释放general CP的使用,以节省整体MIPS的开销。通过在Java中添加@CICSProgram的注解把Java程序暴露成CICS程序,Java程序再通过JCICS(Java与CICS连接的API)获取CICS中CHANNEL/CONTAINER的数据,然后通过CICS的在线转换程序DFHJSON把数据转换成JSON格式的数据;

  4. 最后,把转换成JSON格式的数据发送到KAFKA(KAFKA是一种高吞吐量的分布式发布订阅消息系统,是分布式的流数据平台,它可以高效处理大量流数据)服务器中。

在后续的文章中,我们会针对每个步骤进行详细的讲解,敬请期待哦~

6ac72f35c7e77a1e64f89b675f43679b.png

作者:王典

CICS for z/OS开发测试工程师,在Db2 for z/OS tools 自动化回归测试、Db2 for z/OS 运维与性能调优、TDS客户化与运维、z/OS 系统集成测试和CICS for z/OS 开发测试等方面拥有丰富经验

4fb2475ca8ca21f42abc72f02baae2c3.png

作者:米爱莲

IBM中国系统实验室CICS L3技术支持工程师,在交易中间件领域从事相关技术工作逾七年

1633337e4db2240844399b1b23632a8e.png

扫码关注 “三言两语CICS”

内容声明:本文仅代表作者的个人观点,与IBM立场、策略和观点无关。文中专业名词因翻译原因,表述中难免存在差异。如有疑惑,请以英文为准。同时数据来源于实验室环境,仅供参考。如果您对我们的话题感兴趣,请给我们留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值