Web服务在面向函数/方法的应用集成中势必扮演主要角色,而面向函数/方法正是企业和B2B应用集成技术领域中最常用的模式之一。本文将讨论以下三个问题:第一,XML Web服务如何应用于面向函数/方法的应用集成;第二,先进的应用程序框架(Microsoft .NET和J2EE)如何对面向函数/方法的应用集成提供相应的支持;第三,采用Web服务集成的应用场合。
函数(function)或者方法(method)应用集成涉及到通过网络跨越平台的应用程序之间直接和严格地集成。其涉及到的范围包括:定制代码(COBOL、C++或者Java)和应用程序编程接口(API)、远程过程调用(RPC)、分布式中间件(比如TP监视器)、分布式对象、、公共对象请求代理结构(CORBA)、Java远程方法调用(RMI)、面向消息的中间件(MOM)和DCOM、采用简单对象访问协议(SOAP)的XML Web服务等。
面向函数或者方法的集成天然地采用同步技术,也就是客户机(请求程序)和服务器(响应程序)之间基于请求/响应的交互方式。如图A所示。
图A
Web服务技术是应用程序通过内联网或者因特网发布和利用软件服务的一种标准机制。客户程序(Web服务用户)可以采用UDDI协议发现服务器应用程序(Web服务供应商)发布的Web服务;采用WSDL语言确定服务的接口定义;用基于SOAP的XML文档再通过HTTP、FTP和SMTP等常用通信方式交换数据。
在Web服务的客户应用程序一方,客户程序在本机调用方法,但是被调用的方法会被转换为XML(基于SOAP)并通过网络发送给Web服务供应商应用程序。供应商再利用XML文档(基于SOAP)发回对方法调用的响应。
由于Web服务是通过URL、HTTP和XML得以访问的,所以运行在任何平台之上、采用任何语言的应用程序都可以访问XML Web服务。
接下来我们就大致讨论一下目前业内最著名的两大应用框架:Microsoft .NET 和J2EE,两者都实现了对面向函数/方法的应用集成。
Microsoft .NET
Microsoft .NET就是Microsoft XML Web服务平台。它对建立和利用标准的Web服务提供内置的支持。在微软的.NET框架内,客户应用程序通过Web服务侦听器的实现即可调用Web服务。
采用Microsoft .NET的面向函数/方法集成如下所示:
J2EE
J2EE由一整套技术和说明规范所组成,每一种规范都规定了各类J2EE函数的操作方式。J2EE为基于XML的RPC(JAX-RPC)提供了Java API用以支持面向函数/方法的Web服务集成。JAX-RPC采用XML执行远程过程调用(RPC),同时为汇集和去汇集参数、传送和接收过程调用提供API。到目前为止,JAX-RPC的参考实现还比较依赖于SOAP 1.1和HTTP 1.1两种协议版本。
采用JAX-RPC的面向函数/方法集成如下所示:
这个问题在应用体系结构领域还存在较大争议:应用程序到底应该采用同步还是异步的方式实现集成呢?面向消息的异步应用程序在其设计和体系架构上同有状态的、面向函数/方法的同步应用程序是有显著区别的。应用程序架构、业务需求和合作协议(内部EAI和合作伙伴企业的B2B集成之间)决定了集成模式的用途。
Web服务技术解决了面向RPC和API集成(非XML标准)所存在的一些问题:
总而言之,基于Web服务的面向函数/方法集成对厂商、平台和语言这三个领域都保持了独立的无关性。