一起学习
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服务技术是应用程序通过内联网或者因特网发布和利用软件服务的一种标准机制。客户程序(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的面向函数/方法集成如下所示:
服务器应用程序(Web服务供应商)可以用任何.NET编程语言,比如C#、VB.NET或者受管C 实现Web服务,程序将被编译为微软中介语言MSIL,之后被公共语言运行时CLR这种虚拟机执行。
Web服务部署在.NET平台上。
客户应用程序(Web服务用户)可以用MSXML或者ASP.NET实现Web服务侦听器,以方法调用的方式调用Web服务。
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的面向函数/方法集成如下所示:
定义和实现基于JAX-RPC的Web服务。其Web服务的实现既可以是独立的Java应用程序也可以是Enterprise Java Bean (EJB)。JAX-RPC API可以用来创建基于SOAP的封装器以确定现有Java类或者EJB的WSDL 接口。
在服务器端JAX-RPC运行时(runtime)系统上部署Web服务。其部署受到Web服务具体实现的控制。比如说,如果实现方式是EJB,那么其部署就应该在EJB容器内进行。
客户应用程序通过WSDL文档说明端口调用Web服务。对客户应用程序来说,对Web服务的调用应该形如本机方法调用。
在什么情况下采用面向函数/方法的集成
这个问题在应用体系结构领域还存在较大争议:应用程序到底应该采用同步还是异步的方式实现集成呢?面向消息的异步应用程序在其设计和体系架构上同有状态的、面向函数/方法的同步应用程序是有显著区别的。应用程序架构、业务需求和合作协议(内部EAI和合作伙伴企业的B2B集成之间)决定了集成模式的用途。
Web服务技术解决了面向RPC和API集成(非XML标准)所存在的一些问题:
RPC和API是一种函数级的静态解决方案(哪怕它们在客户机/服务器通讯中采用了XML)。Web服务则是一种动态的集成方案,所有的服务都可以动态地被发现、绑定和使用。这主要是因为发现Web服务用到了得到明确定义的标准:UDDI。
RPC和API可以采用任何专有的协议,但是Web服务的确立和使用则都建立在现有的通用协议基础之上,比如HTTP和SMTP等。这种新型的分布式计算解决方案充分利用了特定Internet技术的开放性来解决CORBA和DCOM所存在的互操作问题。
RPC和API没有向服务器提供暴露其公共方法给客户程序的标准方式。各种服务器程序都具有自身的实现。另一方面,Web服务则总是利用WSDL以一种标准的方式被服务器所暴露。所以客户机和服务器都不必为利用和发布公共方法实现自身的专有格式。
总而言之,基于Web服务的面向函数/方法集成对厂商、平台和语言这三个领域都保持了独立的无关性。
下载本文示例代码
采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成采用Web服务的应用集成
阅读(113) | 评论(0) | 转发(0) |