使用CICS TRANSFORM命令实现XML至数据结构转换

日期: 2010-10-19 作者:Robert Crawford翻译:陈德文 来源:TechTarget中国 英文

CICS一直持续不断地寻找方法来简化开发难度。CICS/Transaction Server 4.1引入TRANSFORM命令,该命令可以让开发者将XML与数据结构互相转换。TRANSFORM不但可以用来支持简单对象访问协议(SOAP)消息,还支持更其他更广泛应用。   该组件包括两个功能模块:XML助手与TRANSFORM命令。

  XML助手   IBM似乎在几年前Web service助手发布后便提到了XML助手的相关信息。实际上工具的基本功能便是从XML表或语言结构用创建用于CICS转换所需的元文件。但是,作为以为更广义的处理工具,它并不寻找特别对应于SOAP的元素或结构。   助手工……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

CICS一直持续不断地寻找方法来简化开发难度。CICS/Transaction Server 4.1引入TRANSFORM命令,该命令可以让开发者将XML与数据结构互相转换。TRANSFORM不但可以用来支持简单对象访问协议(SOAP)消息,还支持更其他更广泛应用。

  该组件包括两个功能模块:XML助手与TRANSFORM命令。

  XML助手

  IBM似乎在几年前Web service助手发布后便提到了XML助手的相关信息。实际上工具的基本功能便是从XML表或语言结构用创建用于CICS转换所需的元文件。但是,作为以为更广义的处理工具,它并不寻找特别对应于SOAP的元素或结构。

  助手工具支持COBOL,PL/1、C和C++,DFHLS2SC将语言结构转换成XML表,接着DFHWS2LS从XML表中创建语言结构。这两个应用程序在新建约束文件的同时,也创建了资源定义约束与注释。工具同样创建归档文件(.ZIP和.JAR),但是需要在CICS使用它们之前进行解压。

  束与名单需要放在某个通过RDO BUNDLE定义所指向的目录中。一旦束资源就位,CICS将创建XML TRANSFORM资源给该TRANSFORM使用。

  有趣的是,CICS手册中谈论到Web services和XML 助手的兼容性。通过DFHLS2SC将语言结构转换为XML,接着通过DFHWS2LS将其重新转换回来,会发现不同,但“逻辑一致”,虽然IBM警告,你可能将无法将转换后的数据结构再倒回DFHLS2SC(如果你想这样做的话)。其结果是你可能可以混合与匹配,但最好的方案是利用助手功能,妥善使用工具。

  如果你不想使用CICS的免费工具,Rational Developer for Z(RDz)同样可以产生约束文件与资源定义。

  TRANSFORM 命令

  随着资源定义的产生,下一步便是通过TRANSFORM命令利用约束文件。一共有两点需要注意。TRANSFORM DATAOXML获得输入数据结构并转换为XML。相反的,TRANSFORM XMLTODATA将XML转换为语言结构。

  两版本的命令都需要申明语言结构与XML数据容器以及他们的频道。他们同样需要指派16位XMLTRANSFORM资源名,其通过XML助手或RDz生成的束获得。

  XMLTODATA命令提供一些其他运算,可以让应用在经历变化前获得XML的相关信息。举例来说,CSCI程序可以通过名字空间Uniform Resource Identifier (URI),获得XML中第一个元素的名字。

  这对你意味着什么?

  困难部分在于搞清楚TRANSFORM命令用于分析XML的大量选项。

  有很多方法程序地转换XML。编写自己的转换程序可能会很有趣,但我们一般不推荐。RDz可以使用PARSE语法生成COBOL程序。这将减小维护负担并创建一个自定义转换期,其可以实现比普通程序更好的功能。不仅如此,使用XMLSS选项进行程序编译将让CPU适当地进行转换工作zAPP。

  CICS自己有一个复杂的、用于转换XML SOAP消息为数据结构的架构,其拥有许多优势。首先CICS通过z/OS XML服务实现,该服务可优化zAPP。其次,如果用于约束与管道文件的基础架构配置正确,程序代码便不需要接触XML。取而代之的是CICS将数据区域交与程序,就像什么特别情况都没发生似的。

  另一方面,无论XML转换是否需要,TRANSFORM命令都是一个可靠的一般用途工具。

  举例来说,如果你的应用需要处理来自SOAP请求的原生XML。在通过Web service助手生成约束文件时,设置XML-ONLY=TRUE选项,将告诉CICS将SOAP消息直接传递给应用程序。在访问消息后,应用程序可以使用TRANSFORM命令将信息转换为语言结构。TRANSFORM命令同样可以用来使安装绕过CICS的Web service接口并允许应用程序在与其他系统通过HTTP协议交互时完全控制自己的XML。

  TRANSFORM命令可以同样被用来将控制各种Web通信的范围,例如,将类似XML配置文件这样简单的内容限制在一个控制块内。它同样可以用来释放或将文档(真实意义上的文本)以XML格式保存。将来CICS将可能需要通过TRANSFORM展开保存在数据库中的XML。

  最后,其归结了什么是你最需要的,如何最有效率地获得。并一如既往的,达成目的的方法很多。

作者

Robert Crawford
Robert Crawford

数据中心专家

翻译

陈德文
陈德文

TechTarget中国特约编辑

相关推荐