使用Integrated Web Services Client for ILE在ILE程序中调用Web Service 一2010-01-12 IBM 郑长庆IBM Integrated Web Services for i是IBM最新发布的在IBM i上的SOA解决方案,包括Integrated Web Services Server for i和Integrated Web Services Client for ILE两部分。Integrated Web Services Server for i使用户能够将ILE RPG 和 COBOL程序快速部署成Web Services,而Integrated Web Services Client for ILE使IBM i上的ILE应用程序具备了调用Web Services的能力。本系列主题由两篇文章构成,将介绍在ILE程序中如何使用Web Services Client for ILE 调用Web Services,第1部分指导读者如何在ILE程序中实现Web Service客户端,第2部分将描述如何实现和添加Web Service客户端处理器,监视客户端Web Service 调用行为。目标读者本文读者应具备一定的IBM i使用经验,并具有IBM i上ILE程序的开发经验。什么是ILEILE全称是Integrated Language Environment,是IBM i上集成语言开发环境,它是和IBM i紧密结合在一起的,由一系列的工具和系统支持构成,ILE支持C、C++、CL、RPG和COBOL。在ILE环境下,这些不同语言编写的代码都会被编译成Module,通过Module最终可以创建Program Object或者Service Program Object,ILE支持不同语言的混合编程。什么是Integrated Web Services Client for ILEIntegrated Web Services Client for ILE是IBM最新发布的面向IBM i开发人员的Web Service客户端解决方案,它是基于Apache Axis C/C++实现的,使ILE程序具备了调用Web Service的能力。我们知道Web Service是通过 WSDL 描述的,WSDL 文件里详细描述了Web Service中有哪些方法,每个方法的输入和输出参数等信息。Integrated Web Services Client for ILE 提供了工具 WSDL2Ws,能够通过 WSDL 文件来来生成Web Service客户端的 Stub 程序和其他描述参数的 C/C++代码,如图 1 所示。图 1 从 WSDL 文件生成 C/C++ Stub 程序

由于 Stub 程序的存在,ILE 程序无需知道如何封装调用Web Service的 SOAP 消息以及同Web ServiceServer 之间的网络通讯细节,只需知道Web Service的名字和输入输出参数的结构,这大大简化了在 ILE 程序中实现Web Service客户端。下图显示了调用Web Service时,ILE 客户端程序同 Web Services Server 之间的通讯流程。图 2 ILE 客户端程序同Web ServiceServer 之间的通讯