教程:如何为CICS编写SOAP消息头处理程序

 
   | |

导读:这篇教程使用一个安全头块介绍如何编写SOAP(简单对象访问协议)消息处理程序。

关键词:SOAP 简单对象访问协议 SOAP消息处理程序

 
正在加载数据...

【TechTarget中国原创】在某些情况下,你可能需要自己动手编写简单对象访问协议(Simple Object Access Protocol,SOAP)消息头处理程序,在这篇教程中,我使用一个安全头块介绍如何编写SOAP消息处理程序。

  管道

  首先你必须修改管道的eXtensible标记语言(XML)配置文件,以便让CICS调用消息头。下面列出了CICS的样例Web服务提供者管道,及几处突出显示的改动内容。

【TechTarget中国原创】在某些情况下,你可能需要自己动手编写简单对象访问协议(Simple Object Access Protocol,SOAP)消息头处理程序,在这篇教程中,我使用一个安全header block介绍如何编写SOAP消息处理程序。

  管道

  首先你必须修改管道的eXtensible标记语言(XML)配置文件,以便让CICS调用消息头。下面列出了CICS的样例Web服务提供者管道,及几处突出显示的改动内容。
 
为CICS编写SOAP消息头处理程序

图1 CICS的样例Web服务提供者管道

  消息头处理程序定义开头的标记信号后跟着的是程序名,再后面的命名空间定义告诉CICS消息头块的类型(绿色部分),看到输入消息的例子后你会感觉更直观一点。

  当CICS调用处理程序时使用标记控制,如果入站消息包含一个“Security”消息头块,标记信号通过值“False”或“0”告诉CICS调用处理程序,如果标记被设为“True”或“1”,CICS将调用消息处理程序处理所有的传入请求,该标记终止了消息头处理程序SECHEADR的定义,其它处理程序可采取进一步行动,直到遇到标记结束。

  SOAP请求消息头示例

  消息处理程序有一组访问入站消息的选项,容器DFHRESPONSE容纳整个消息,DFHHEADER包括CICS调用的消息头处理程序相关的消息头块。
下面是一个Security消息头块示例,我省略了命名空间URL以节约空间。
 
为CICS编写SOAP消息头处理程序

图2 Security消息头块示例

  这就是我们通常感到比较困难的部分,正如你从上面的例子中看到的,XML已经够冗长了,但SOAP更加冗长,在不同的平台之间,通过包括自定义字段的基于文本的消息可以很好地传递信息,但这正是大型机的弱点之一 —— 字符串处理,在装配器中处理长消息是相对快速和廉价的方案,但难度也较大,其它语言,如PL/1,能熟练地解析文本,但在这些高级语言中都存在性能损失。好消息是IBM可能会引入一个特殊的XML解析引擎,我们只需要等待CICS支持它。

  可能你已经注意到,每个SOAP标记都是以小于符号(“<”)开头的,后面跟着一个标记,再后面就是构成“名称-值”(name-value)对的属性,标记以大于符号(“>”)结束。紧接着开始标记的是标记描述内容,内容最后是以“</”符号结束的。

  SOAP结构是具有层次的,标记是相互嵌套的,实际上,有些标记只能嵌入到其它标记中才有效。

  处理任何消息头时不要太过于具体,也不要太过于模糊,查找太过具体的字符串,或者更坏的情况,假设是一个给定的值,只要环境一发生变化,就总会出现一定的偏移量,并可能破坏消息头处理程序。另一方面,太过模糊的搜索可能错过或误解部分消息,这种处理方法产生的错误是很难调试的。

  在上面的例子中,我突出显示了几个字符串,其中第一个突出显示的是放入DFHHEADER容器中的消息,注意字符串“Security”匹配管道配置文件中的localname属性。

  继续往下走,我突出显示了User ID和Password,不要受短标记属性蒙蔽,实际上我省略了三个很长的URL,主要是想通过这个例子解释如何处理凭证,,方便你找到关键信息。

  为用户凭证处理消息头

  1. 首先查找……,因为属性可能是存在的;
  2. 扫描……,找出用户ID元素的开头位置,在这个例子中,包括标记结束时的大于号,因为如果没有它,扫描可能停在";
  3. 查找……,找出用户ID元素的结束位置,有了内容的起止位置,我才可以计算出用户ID的长度,最后复制到工作的存储器中;
  4. 接下来,查找……,因为属性包括在标记中;
  5. 跳过所有属性,在密码开始和结束位置查找“>”;
  6. 在开始标记的结尾查找"。

  这里只显示了要经过哪些操作,当你成为一个系统程序员时,你就会喜欢上SOAP的松散耦合特性。

 
查看全文
 
 
 
 
 

应用程序管理

 
CICS/MQ触发器接口提供了一个简单方法,在无需编写代码的情况下驱动在线消息,但在有些情况下,这种简单的方法也让人感到很讨厌……
 
IMS v11是水平增长扩大的最好例子,但系统中的某些功能,如虚拟存储,是不能增长的,最新版IMS提供了4G医生的缓存空间使虚拟存储更加宽松。
 
在某些情况下,你可能需要自己动手编写简单对象访问协议(Simple Object Access Protocol,SOAP)消息头处理程序,在这篇教程中……
 
近几年,随着各行业的数据大集中,我国数据中心的建设迸人了快速发展阶段,无论数据中心数量还是数据中心基础设施的复杂度都在提高,由此带来的数据中心管理……
 
HP收购3Com的消息一经传出,就有很多人在讨论此次收购的影响。此次收购对数据中心硬件市场格局的影响是不言而喻的,那对于用户而言……
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录