分布式应用集成技术浅谈

 

 1  引言

分布式计算是指各种不同的工作站通过网络互相连接,由分布式系统提供跨越网络透明地访问各种异构设备所需要的支持,使得用户可以充分利用网络上的各种计算资源来完成自己的任务[1]。与网络技术的发展和日益增长的应用需求相适应,分布式计算已经成为新一代计算和应用的主流。分布式计算中所涉及的分布式系统是指组件分布在网络计算机上且通过消息传递进行通信和动作协调的系统[2]。分布式系统具有以下特征:组件的并发性、缺乏全局时钟、组件故障的独立性。构造分布式系统的挑战主要是其组件的异构性、开放性(指允许增加或替换组件)、安全性、可伸缩性(指用户数量增加时能正常运行的能力)、故障处理以及组件的并发性和透明性。构造和使用分布式系统的主要动力来源是资源共享,因此分布式系统之间的通信和集成技术一直是关注的重点。

中间件是指一个软件层,它提供了一个编程抽象以及对底层网络、硬件、操作系统和编程语言异构性的屏蔽,同时还为服务器和分布式应用的编程人员提供了一致的计算模型。中间件能够很好的完成异构分布系统的集成,互操作,并且能够很好地保证这些系统的可移植特性,因而极大地降低了开发分布式应用的周期,能够提高系统的可靠性,是当前分布式应用开发和分布式系统集成的主要手段。

本文对分布式企业应用和分布式实时应用的集成技术进行了简要介绍。

2  分布式企业应用集成技术

企业自上世纪七十年代开始使用IT支持系统至今,一些大型企业中各种IT支持系统平均达数十种之多。它们大部分是一个个的信息孤岛,管理着企业特定的各个职能部门的工作,相互之间缺乏有效的通信。随着信息技术的不断发展,今天的企业需要一个集成的、开放的、面向用户且随需而变的IT支持系统,因此面临着应用系统的整合问题。不同的应用(尤其是不同企业的)的开发语言不同,部署平台不同,通信协议不同,对外交换的数据格式也存在着差异,如何去解决解决语言差异、平台差异、协议差异、数据差异所带来的高代价的系统集成是这个问题的关键。

企业应用集成(Enterprise Application Integration,EAI)将企业中的业务流程、应用系统、硬件和各种标准联合起来,在两个或更多的企业应用系统之间实现无缝集成,是它们像一个整体一样进行业务处理和信息共享。企业应用集成不仅包括企业内部的应用系统集成,还包括企业与企业之间的集成,以实现企业与企业之间的信息交换、商务协同、过程集成和组建虚拟企业和动态联盟等。目前,常用的企业应用集成技术有远程过程调用技术、分布式对象技术、面向消息的中间件技术和Web服务技术。

2.1 远程过程调用技术

最早提出远程过程调用的是美国Birrell和NelSon,其后在Xerox工作站上实现,它非常类似于在单机编程过程中经常使用的过程调用(Procedure Call)。在分布式环境下,远程过程调用允许本地计算机上的程序调用远程计算机上的进程。远程过程调用允许发送一个请求(客户进程)到远地进程即被调用者,被调用者或服务器进程执行这个过程并发回一个结果(响应)消息。该方法最主要的特点是程序不需要知道调用的过程是本地还是远地。远程过程调用和传统的过程调用不同就在于调用者(Caller或Client)和被调用的进程(Server)是在不同的机器上的不同的进程。

1987年,Sun Microsystem公司开发了开放式网络计算(ONC)RPC系统,作为它的网络文件系统(NFS)的基本通信机制;同年,Apollo Computer公司为其操作系统开发了网络计算系统(NCS)的RPC系统。在1989年,开放式软件基础设施(OSF)组织为RPC系统发出了技术请求(RFT),并收到了两个主要提案:一个来自HP/DEC,基于NCS;另一个来自Sun,基于ONC。最终,OSF选择NCS作为其分步式计算环境(DCE)的RPC机制。1990年,Microsoft基于DCE/RPC的修订版开发了RPC机制,使得RPC技术得到了更广泛的应用。

远程过程调用的灵活性体现在它的跨平台性上,它不仅远端的子程序,而且这种调用是可以跨越不同操作系统平台的。而远程过程调用的缺点在于其采用了同步通信方式,适合于小型的简单应用。对于一些大型的应用,需要支持多种通信模式时,远程过程调用就不太适合。

2.2 分布式对象技术

二十世纪九十年代,随着面向对象技术的广泛应用和和分布式系统成为计算机系统和应用的主流技术,出现了分布式对象技术。分布式对象技术是面向对象技术和分布式技术的结合,其提供了一种通讯机制,透明地在异构的分布式计算环境中传递对象请求,而这些对象可以位于本地或远程机器。主流的分布式对象技术有以下三种:

l  对象管理组织(Object Management Group, OMG)制定的CORBA(Common Object Request Broker Architecture,通用对象请求代理架构)技术。

l  Microsoft公司提出的DCOM(Distributed Component Object Mode,分布式组件对象模型)技术。

l  Sun公司提出的RMI(Remote Method Invocation,远程方法调用)技术。

CORBA是OMG专门为异构平台上不同语言开发的分布式对象进行互操作而制定的规范。OMG组织是一个国际性的非盈利组织,成立于1989年,致力于面向对象软件开发的实践与理论,制定工业指南和对象管理规范,加快对象技术的发展。其目标是为应用开发提供一个公共框架,使得基于对象的软件在分布异构环境下具有良好的可重用性、可移植性和互操作性,从而能够在由多种操作系统构成的异构分布环境中,方便的建立异构分布式应用系统,或实现企业信息资源的集成。为实现上述目标,OMG组织成立后不久就制定了OMA(Object Management Architecture,对象管理体系结构)参考模型,其主要包含四个部分:应用对象(Application Object)、对象服务(Object Service)、公共设施(Common Facilities)和对象请求代理(Object Request Broker)。针对OMA中的核心部分ORB,OMG组织制定了CORBA规范。CORBA规范屏蔽了底层硬件、操作系统和网络协议的不同,使开发者能够将精力集中到应用逻辑上,而不需考虑复杂的异构环境通信问题。1991年,CORBA1.1规范正式提出,定义了IDL接口语言和ORB对象请求代理中间件。1995年,OMG发布CORBA 2.0,提出了IIOP(Internet Inter Object Protocol),用以规范不同厂家的ORB之间的互联互通。自此,CORBA逐渐成型,2002年,OMG组织正式发布了CORBA3.0规范。

CORBA规范给出了ORB的基本结构及其各部分的功能描述,包括:界面定义语言(IDL)、静态调用界面(IDL Stub)、ORB界面、动态调用界面(DII)、静态框架界面(SS)、动态框架界面(DSI)、对象适配器(OA)、界面库、对象实现库和ORB间的互操作协议IIOP,其关系如下图所示。

图1. CORBA ORB的结构

对象的界面通过IDL定义,独立于对象的实现。IDL编译器将对象的IDL文件编译成客户端的存根(Stubs)和服务器端的框架(Skeleton)。客户端根据IDL Stubs使用静态方式调用对象服务;或根据界面库中得IDL描述信息采用动态调用方式搜索可用的服务,找到这些服务的界面并构造使用这些服务的请求。对象实现在执行客

你可能感兴趣的:(SOA,分布式应用,web服务,消息中间件,分布式计算,企业应用)