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

2009-12-21   
   | |

导读:这篇教程使用一个安全头块介绍如何编写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的松散耦合特性。

 
查看全文
 
 
 
 
 

应用程序管理

 
Oracle的确很擅长于购买和整合软件公司。但在其涉足Sun的收购之后,即便是其拥护者也表示Oracle对软硬件产业的区别还缺乏了解。
 
数据中心越来越庞大,其原因主要是如今的应用程序、服务和用户比以往任何时候都多。与此同时,管理员也要更快速地提供IT资源——尤其是虚拟资源,并确保……
 
工作负载管理器(Workload Manager,WLM)一直是大型机上才有的福利,在WLM出现之前,一直用的是系统资源管理器(Systems Resource Manager,SRM)管理性能……
 
虚拟化工作负载和各种老式硬件组件已成为绝大多数IT环境的常用选择。如何调配这些新近增加的工作负载而不导致对物理服务器计算资源的过度使用是问题的焦点。
 
大多数服务器管理员都熟悉免费的Windows性能监测工具。但Windows Server的最新版本还包含了全新的免费工具,其功能更全面,足以媲美昂贵的第三方产品。
 

登录TechTarget中国

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