在Node.js应用中调用CICS JSON web service
Posted 三言两语CICS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Node.js应用中调用CICS JSON web service相关的知识,希望对你有一定的参考价值。
Node.js应用与传统的CICS应用不同,它基于的是javascript和异步编程理念。对于经验丰富的Node.js开发者而言,在CICS上开发Node.js应用和在别的平台上类似——开发和调试技能是共享的,NPM模块的使用也是一样的。CICS还为Node.js开发者提供了从Node.js应用中调用CICS service的API——ibm-cics-api。
在这篇文章中,我们将向大家介绍这个API,并以CICS JSON web service为例,向大家展示如何在Node.js应用中调用CICS service。
01
ibm-cics-api简介
ibm-cics-api是CICS提供的一个新的Node模块,它对外提供JavaScript API来调用CICS service。
CICS并不是将CICS service的EXEC CICS commands、 transaction、security context等直接对外暴露给Node.js应用;而是将CICS应用封装成CICS web service,让Node.js应用通过CICS web service的URI来访问CICS应用。
ibm-cics-api里包含了部署成CICS web service的CICS应用的URI。当用户调用这个API的时候,CICS查找这个URI所关联的URIMAP,在CICS里启动一个新的task来启动并最终运行CICS 程序。
ibm-cics-api提供了三个参数:
URI(字符串格式)
标识已有的CICS web service,对应CICS里的URIMAP,将被映射成对应的WEBSERVICE、PIPELINE和后台的CICS程序。
Request data(JavaScript Object或者字符串格式)
向CICS web service发送的请求数据,数据格式必须是JSON。
回调函数
Node.js 应用调用CICS web service时,其对应的CICS程序执行完后返回Node.js时所执行的函数,遵循Node.js的异步函数模式。如果没有定义回调函数,则需要使用.then的方式调用Promise的异步处理功能。
回调函数传递两个参数:
error object:如果请求成功则返回null,反之则返回JavaScript的Error object。
response object:由CICS web service返回的响应信息。
更多关于ibm-cics-api的信息,请访问ibm-cics-api 1 。
02
ibm-cics-api使用实例
下面我们将通过一个简单实例来介绍如何在Node.js应用中调用本地的CICS JSON web service。
系统环境要求:
CICS TS V5.5
CICS Explorer V5.5
在Node.js应用中调用本地的CICS JSON web service分为四步:
将已有的CICS应用部署成本地的CICS JSON web service。
在Node.js程序中使用ibm-cics-api调用CICS JSON web service。
通过CICS bundle将该Node.js应用部署到CICS。
向Node.js应用发送POST请求,测试调用是否成功。
Step 1
将已有的CICS应用部署成本地的CICS JSON web service
在本例中,我们将在CICS中安装使用C程序L2JC01。该C程序会对input数据进行处理,并放入service request 应用共享的container DFHWS-DATA中,以供Node.js应用从中获取转换后的数据。我们将通过Node.js应用来访问CICS中的程序L2JC01。
首先,我们使用批量处理程序DFHLS2JS和程序的copybook L2JC01C来创建wsbind文件。然后,我们基于wsbind文件通过定义PIPELINE的方式自动创建web service和URIMAP。此处需要注意的是:
在PIPELINE的配置文件里,URI定义为/cics/L2JC01,不带网络端口号信息;
无需在CICS中创建TCPIPSERVICE。
Step 2
在Node.js程序中使用ibm-cics-api调用CICS JSON web service
该Node.js程序的主要功能是通过ibm-cics-api传递JSON格式的数据给CICS JSON web service,调用CICS JSON web service,并输出CICS JSON web service的响应。此处cics.invoke的URI参数为http://<host>/cics/L2JC01,对应Step 1中定义的CICS JSON web service。
Step 3
通过CICS bundle将该Node.js应用部署到CICS
详细步骤参见《》的介绍,此处略过。
Step 4
向Node.js应用发送POST请求,测试调用是否成功
最后,我们向Node.js应用http://<host>:<port>/L2JC01发送POST请求,可以看到其输出了CICS应用L2JC01的响应消息。至此,我们就完成了Node.js应用对CICS JSON web service的调用。
此外,CICS还提供以Rest API的方式调用CICS service,我们将在后续的文章中介绍。更多关于CICS TS V5.5对Node.js应用的支持,欢迎访问CICS Developer Center 2 。
1 https://bit.ly/2SalXMT
2 https://ibm.co/2R5QT3o
tangththATcn.ibm.com
2018年6月加入IBM CICS团队。目前主要从事CICS Java和Node.js相关的开发测试工作
替换AT为@
扫码关注 “三言两语CICS”
内容声明:本文仅代表作者的个人观点,与IBM立场、策略和观点无关。文中专业名词因翻译原因,表述中难免存在差异。如有疑惑,请以英文为准。同时数据来源于实验室环境,仅供参考。如果您对我们的话题感兴趣,请给我们留言。
以上是关于在Node.js应用中调用CICS JSON web service的主要内容,如果未能解决你的问题,请参考以下文章