资源描述
分布式计算模型探讨张 军(江苏海事职业技术学院 信息工程系, 江苏 南京 211000)摘 要:随着Internet的普及,基于Web的应用越来越广泛,分布式计算在其中起了重要的作用。但传统的分布式计算模型如DCOM、CORBA和 JAVA RMI的局限性越来越明显。本文介绍了一种新的基于SOA的分布式计算模型Web Service,并对其结构进行了探讨。关键词:分布式计算,DCOM,CORBA,RMI,SOA,Web服务随着Internet的普及,基于Web的应用越来越广泛,Jsp、Asp、J2EE等技术的普及在其中起着重要的推动作用。随着技术的进一步发展,Web服务应运而生,这是一种基于Web的应用程序,可以创造一种通用的平台,以方便商业进程、应用程序、企业、合作伙伴、客户等之间的有效集成。建立在XML标准和Internet协议基础上的Web服务是分布式计算的下一步发展方向。Web服务为那些由不同资源构建的商业应用程序之间的通讯和协作带来了光明的前景,从而使它们在不受到各自底层实现方案的影响下彼此协作。而Web服务的关键因素则是一种基本的技术分布式计算技术。 分布式计算技术从概念上讲,“分布式计算是一种计算方法,在这种算法中,组成应用程序的不同组件和对象位于已连接到网络上的不同计算机上。”从上述定义可以看到在基于分布式计算的模型可以提供一种基础结构,该结构可以在网络上的任何位置调用对象函数。这些对象对于应用程序来说都是透明的,并且可以提供处理功能,就好像和调用位于同一台计算机上的应用程序。目前最常用的分布式计算技术包括:Sun Java RMI(Remote Method Invocation,远程方法调用)、OMG CORBA(Common Object Request Broker Architecture,通用对象代理体系结构)、Microsoft DCOM(Distributed Component Object Model,分布式组建对象模型)和Mom(Message-Oriented,面向消息的中间件)。1.1 CORBA(通用对象代理体系结构)CORBA是OMG(Object Management Group,对象管理组)最初开发的、为业界通用的一种开发标准,用于支持丰富的开发环境的分布式计算。CORBA与传统的客户/服务器结构不同,它提供了一种无需强制使用任何专有协议或特殊编程语言的操作系统或硬件平台,是面向对象的解决方案。在CORBA体系结构中,应用程序可以在网络任何位置的任何平台上驻留和运行,可以以任何与IDL(Interface Definition Language,接口定义语言)的中立接口定义相映射的语言编写。CORBA还定义了一批系统级的服务来处理低级别的应用程序服务,如生命周期、永久性、事务、命名、安全性等。在CORBA中通过实现IIOP(Internet Inter-ORB Protocol)增加了不同ORB(Object Request Broker,对象请求代理)供应商的互操作性。IIOP定义了ORB骨干,其它ORB可通过骨干连接并提供与其关联的服务之间的互操作。在基于CORBA的解决方案中,ORB是一种对象总线,提供了向对象发送请求和接受来自对象的响应,而无需考虑其位置的透明机制。ORB截获客户端的调用并负责查找实现该请求的服务器对象、传递该对象的参数、激活其方法,并将结果返回客户端。ORB作为CORBA实现方案的一部分,为CORBA服务提供了接口,用于构建自定义的分布式应用环境。图1是CORBA模型的结构图1 CORBA-ORB模型结构示例1.2 Java RMI(Java远程方法调用)Java RMI是Java的一组用于开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象(在不同机器操作系统中的程序对象),它结合了Java serialization(Java序列化)和JRMP(Java Remote Method Protocol,Java远程方法协议)。简单说,这样使原先只能在同一操作系统中的方法调用的程序,变成了可在不同操作系统之间的方法调用。在基于RMI的应用程序体系结构中,面向注册表的机制提供了一种简单、非永久性的命名查找服务,该服务用于存储远程对象引用、启发来自客户应用程序的查找。基于JRMP的RMI结构充当RMI客户程序和远程对象之间的介质。它截获客户请求,传递调用参数、将调用请求委托给RMI骨干,最后将方法执行的返回值传递给客户站位程序。它还支持从服务器到客户应用程序的回调,以便实现异步通知功能。随着J2EE的广泛应用,作为其体系核心的RMI也起着越来越重要的作用。但是只能应用于java平台是它的最大的局限。图2展现了RMI模型的结构。图2 Java RMI 结构模型1.3 DCOM(分布式组件对象模型)Microsoft COM通过定义Windows操作环境中的二进制标准和网络标准,为基于Windows的软件组件相互通信提供了方法。它采用Windows基于注册表的对象组织机制,为ActiveX组件提供分布式应用程序模型。而DCOM利用RPC机制解决了Microsoft Windows平台中的分布式计算问题,使得COM应用程序彼此之间可以实现通信,在RPC机制中采用了DCOM协议。DCOM模型可以通过网络远程调用已发布COM对象方法的已定义接口,除了需要一个本地COM对象作为占位外,这种调用和对本地COM对象的调用相同。占位程序封装COM服务器对象的网络位置信息并充当客户端上的代理。服务器可以驻留多个COM对象,这些对象在注册表中注册自己以后,客户端可以通过查找机制发现并访问这些对象。DCOM成功地实现了Windows平台上的分布式计算,但它的最大局限是只能用于专一的操作系统平台。图3展现了DCOM模型的结构。图3 DCOM结构模型对于以上三种体系结构来说,它们都采用了紧密耦合的同步模型机制,都是基于二进制通信协议,采用跨逻辑层的紧密集成,从而带来了不具伸缩性的问题。1.4 MOM(面向消息的中间件)MOM则是基于松散耦合的异步通信模型,在这种模型中,客户端无需知道应用程序的接收方式或其它方法参数。MOM使应用程序可以使用消息队列间接进行通信。客户应用程序将消息发送给消息队列(保存消息的区域),而接收应用程序则从该队列中获取消息。在这种模型中,向另一应用程序发送消息的应用程序不用等待目标应用程序返回响应而继续运行。上述的分布式计算模型各自具有自己的优势,但是由于它们的专有特性而难以被广泛接受。比如说:DCOM局限于微软平台,因此不能深入的应用于企业;RMI虽然可以跨平台,但是Java技术标准被Sun控制;CORBA虽然被OMG这样的标准化组织控制,但是由于其软件可用性却是一个问题,真正基于CORBA的应用程序少得可怜。 Web ServiceWeb服务是一段位于Internet上的业务逻辑,可以通过基于标准的Internet协议进行访问。与其它的一些技术相比,Web与它们的区别在于“标准化”,Web服务新技术是建立在被全球大多数技术企业支持的XML的基础上的。XML提供了一种与语言无关的方法表示数据,这些确保了每种主要的新技术在近年内都会采用Web服务策略。对于Web服务而言,它具有如下的行为特征:基于XML,松散耦合,粗粒度,同步或者异步的能力,支持远程过程调用,支持文档交换。在Web服务中出现了三种作为全球标准的主要技术,它们构成了今天Web服务技术的核心。这些技术是:2.1 SOAP(Simple Object Access Protocol,简单对象访问协议)SOAP提供一个标准的包装结构用以在多种标准Internet技术之上传输文档。它还定义了用XML传送非XML RPC调用的编码和绑定标准。SOAP为RPC提供一个简单的结构:文档交换。采用标准传输机制后,异构的客户和服务器之间可互操作。比如说:Java客户可以调用SOAP包装的.Net组件,而.Net客户能调用SOAP包装的EJB。2.2 WSDL(Web Service Description Language,Web服务描述语言)WSDL是一种以标准方式描述Web服务接口的XML技术。WSDL对Web服务如何表示外部调阅所需的输入输出参数、函数结构、调用特性以及服务的协定绑定进行标准化。WSDL允许不同的客户自动理解该如何与Web服务发生交互。2.3 UDDI(Universal Description,Discovery and Integration,通用描述、发现和集成)UDDI提供一个全世界范围的注册中心,以便于Web服务的宣传、发现和集成。通过搜索名字、标示符、分类或由Web服务提供的规范,业务分析师和技术人员可使用UDDI发现可用的Web服务。UDDI提供一个结构用来表示业务、业务关系、Web服务、规范原数据和Web服务访问点。这些内容(SOAP、WSDL和UDDI)之间的关系如图4所示:一个作为Web服务客户角色的应用程序需要找出位于网络上某处的另外一个应用程序或者业务逻辑单元。客户通过名字、分类、标示符或者支持的规范查询UDDI注册中心。一旦找到,客户便从UDDI注册中心获取WSDL文档的位置信息。WSDL文档包含了关于如何联系Web服务的信息,以及XML模式中的请求消息格式。客户按照WSDL中发现的XML模式生成一个SOAP消息,并发送一个消息给服务方。图4 WEB服务交互一个Web服务可能与少数独立的进程或函数通信,或者参与一个复杂的、综合性的业务过程。它可以在企业中或Web的任何地方发布、定位和调用。无论它是实现分散操作的细粒度组件,还是完成整个业务功能的程序套件,都可以设计成一个大型生态系统中自包含的、自描述的单元实体。Web服务还能访问和封装其它的Web服务,以完成其功能。这些小的系统还可以相互结合完成更大、更复杂的工作。我们可以看到,Web服务模型本身是一个良好的、高度分布式的、面向服务的体系结构(Service-Oriented Architecture,SOA)。这样的一种结构描述了未来计算模式的前景。在这个体系结构中,作为SOA组件的Web服务由两部分组成:1)服务指服务的实现;2)服务描述由XML语言描述的服务接口。如图5所示,SOA建立在三种角色的交互之上:提供者、注册中心和请求者。这些角色之间的交换包括发布服务信息、发现那些服务可用以及绑定到那些服务。在典型的情况下,提供者提供服务的实现,为服务定义描述并且将它们发布到注册中心。然后,服务请求者使用注册中心找到想使用的Web服务的描述,利用所掌握的Web服务描述,服务请求者可以绑定到一个服务(即生成一个服务请求)。图5 面向服务的体系结构在SOA中,几乎任何一段逻辑都可以暴露为服务从一个独立组件到全面的、基于大型主机的处理。同时,暴露为服务的方式由提供者决定,可以通过位于HTTP协议之上的SOAP、JMS消息队列或者其它技术来访问它。它可以是一个同步的请求/响应机制,也可以是一个接收消息后再发送的异步响应机制。从上面的讨论可以看到,Web服务于过去的分布式计算相比,最大的优点在于Web服务采用了开放的标准。由于Web服务支持不同平台和不同应用程序的通信,因此标准化和互操作性至关重要。当然万维网联盟和各个重要的软件厂商都在相互协商共同促进Web服务实现版本的互操作性。 结论尽管Web服务还没有充分发挥所有潜力,但已经对企业业务通信带来了变革。许多公司开始意识到Web服务的好处,并开始部署Web服务解决特定业务需要。当然Web服务带来这些好处的同时也给应用程序开发人员和IT人员带来了许多挑战。关键的问题在于推动Web服务的标准仍然处于草案形式,另外的问题就是没有标准的安全过程。虽然存在这些问题,传统的分布式计算模型改变为Web服务模型仍然是不可避免的趋势。参考文献:1 H.M.DeitelJava Web服务高级教程M北京:机械工业出版社,20031201242 H.M.DeitelWeb服务实用技术教程M北京:机械工业出版社,200470753 James Snell, Doug Tidwell, Pavel KulchenkoSoap Web服务开发M北京:中国电力出版社, 200260624 柴晓路,梁宇奇Web Services技术、架构和应用M北京:电子工业出版社,20031001065 Corry,Mayfield,CadmanCOM/DCOM 编程指南M北京:清华大学出版社,200088896 R.Otte,P.Patrick,M.RoyCORBA教程M北京:清华大学出版社,19991081097 Nadir Gulzar实用J2EE应用程序体系结构M北京:清华大学出版社,2003140142Discussion on Distributed Computing ModelZHANG Jun(Jiangsu Martime Instiute,Nanjing,Jiangsu 211170)Abstract:With the popularization of Internet, application based on Web has been more and more extensive, and distributed computing performs an important function in it. But some limitations of traditional distributed computing models, such as DCOM, CORBA and JAVA RMI, are more and more obvious. This paper introduces a new type of distributed computing model based on SOA -Web Service.Key words:distributed computing ;DCOM、CORBA; RMI; SOA; Web Service收稿日期:2004-10-12作者简介:张军(1973 ),男,江苏海安人,硕士生,实验师,研究方向:数据挖掘,分布式计算。
展开阅读全文