论文部分内容阅读
摘要:本文对分布式架构体系进行了分析,并对分布式架构主流实现技术进行了探讨。
关键词:分布式;主流实现技术
中图分类号:TP311.1文献标识码:A文章编号:1007-9599 (2011) 06-0000-02
Mainstream Technology Research Based on Distributed Architecture
Cui Miao
(Chongqing Economic Information Center,chongqing401147,China)
Abstract:This paper distributed architecture system was analyzed,and the distributed architecture mainstream realization technology were discussed.
Keywords:Distributed;Mainstream implementation technology
分布式架构(DAS)是一个对使用者看起来像集中的单机体系,(1)分布式架构体系是由许多处理器或计算机体系组成的。(2)这些体系可以是物理上相邻的,通过共享主存进行通信,由计算机内部总线或开关连接的处理器,这些计算信息数据信息也可以是物理上分开的,使用报文进行通信,由计算机信息网络连接的计算机体系。(3)这些信息数据信息组成一个整体,对使用者是透明的,即使用者使用任何信息数据信息时都不必知道这些信息数据信息的确切地点。(4)一个程序可分散到许多计算信息数据信息上运行,各个计算机体系地位平等。下面对分布式架构主流实现技术进行分析。
一、组件对象模型
组件对象模型是Object Request Broker Architecture的简称,即通用对象请求代理架构,此规范由对象管理组OMG制定的,其意图是制定标准,从而实现在不同的网络和计算环境下,能够独立开发的应用软件的以及软件间互用性,从而保证组件的可重用性、组件的可移植性和组件的互操作性。其核心是一套标准的接口和协议、语言。以支持异构分布信息体系的互操作性及独立于架构和程序开发语言的对象重用。其基本实现方案是以产品开发过程为核心,以产品为对象,采用分布式对象计算技术和面向对象,以使用部门模型、信息共享模型为基础,充分利用软件构建和总线技术,为不同应用软件开发接口适配器,从而实现应用软件的“即插即用”功能,还有各种应用软件之间的信息交换共享。
Application Object(应用对象)包括一些业务对象和信息体系,由组件对象模型底层支持的最顶层使用者:领域对象和非标准的专用对象。公共设施(组件对象模型)定义了水平和垂直应用框架,可直接为业务对象所使用。水平公共设施包括使用者界面、信息管理、体系管理和任务管理等通用服务;垂直公共设施的功能是提供特定领域的服务和框架,面向诸如制造、健康、金融、零售等。公共对象服务(组件对象模型)扩充对象总线功能,定义了系统级的对象框架。最底层是对象请求代理(ORB),是分布对象体系中的“软总线”规定了语言映射和分布对象的定义(接口),从而实现对象间的互操作和通讯,在ORB之上可以提供诸如并发、名字、事务、安全等各种各样的服务,定义了很多公共服务。公共设施在最上层,则定义了组件框架,目的是提供直接为业务对象的服务,规定所需的协定规则,业务对象有效协作。互联网交互代理协议IIOP是在WWW上组件对象模型最重要的应用,它是定义在文件传输协议上的通信协议,互联网交互代理协议负责在分布式网络环境下不同对象工作时的协调工作。组件对象模型的互操作性和开放性非常好,优点是大而全。作为一个透明的中介分布式对象标准,组件对象模型只要遵循组件对象模型标准的分布式对象,不管在任何架构上,用任何语言编写,都可以执行,而这一切是因为ORB对象与架构分离,因为ORB能与开发环境分离的关键性设计,只要使用者端与服务器部分都装有ORB,像Windows架构上的使用者端程序,也可以调用UNIX服务器部分上的对象。组件对象模型的缺点是技术和标准的更新相对较慢,庞大而杂,COBRA规范升级所花的时间非常短,而再往上更高版本的发布就很缓慢。而且因为其开放,产生了许多兼容性的问题,导致在ORB之间缺乏互用性,,使得标准难以实现,并且因为组件对象模型并非集成在操作系统中,因此增加了软件部署的成本。
二、组件对象模型/分布式组件对象模型
在开放性软件DEC远程过程调用协议的基础上开发的分布式组件对象模型是由组件对象模型发展而来,分布式组件对象模型可支持各种通信协议,在异种网络协议下实现了组件互相通信。ActiveX在速度与网络通信方面作了优化,是建立在分布式组件对象模型模型上的一个轻量级版本,ActiveX使程序设计者可以创建高层次的通用的可重用对象,通过因特网络进行传递与分发。组件对象模型/分布式组件对象模型的架构如图所示。组件对象模型/分布式组件对象模型中客户与被请求对象之间的通信是基于定义的二进制架构,这样利用不同程序开发语言,只要符合此二进制规范,就能够实现客户和组件之间的互操作性。
为支持组件的动态激活和交互是组件对象模型的设计目标。组件对象模型中的每个组件是一个可执行程序,程序可以包含在一个动态链接库中,程序也可以在一段可执行程序中。基本的组件对象模型模型能够将一些逻辑元素看作是独立的。分布式组件对象模型是组件对象模型的无缝扩展,由于分布式组件对象模型已经为开发者处理了底层网络协议的所有细节。因此,开发者就不必再为底层的处理细节费时费力,可以把重点放在应用的业务逻辑上。
分布式组件对象模型的优点之一就是有很多工具可以用来创建组件:RAID工具、C++工具。组件对象模型和分布式组件对象模型最大的不同是组件对象模型组件是运行在单机上,而分布式组件对象模型组件则是分布在网络上。分布式组件对象模型下没有提供自动容错和负载均衡服务。对付这两个使用部门级的关键问题,Microsoft的事务处理服务器部分MTS与Microsoft提供的其它实现方案相比,似乎是最具吸引力的方案,由于它提供了事务回滚、负载均衡功能。与组件对象模型相比,分布式组件对象模型有如下缺点:首先,它由单一开发者(Microsoft)定义并控制,这大大限制了分布式组件对象模型使用者本地服务器部分进程代理远户应用系统客的选择范围(比方说开发工具和风格)。其次,尽管分布式组件对象模型在非Windows架构上也可以使用,但会受到很多限制,这极大程度地制约了程序的可重用性和分布式组件对象模型的可扩展性,所以它更适用于Windows环境。分布式组件对象模型仅包含一些最小的核心元素集合,未能提供一个良好的框架和设计,类似的工作可通过不同的实现方案来完成,这些实现方案有时无法保持一致性。
三、EJB
EJB(Enterprise Java Bean)是由Sun公司定义的一种组件模型的技术规范。是J2EE的一部分,EJB规范的基本思想是为组件的开发提供一个运行架构,任何一个组件,只要满足JAVA企业BEAN模型,就可以快捷、灵活地部署到任何支持JAVA企业BEAN的运行架构上,而不需求考虑移植等细节,并达到即插即用的效果。根据EJB规范,JAVA企业BEAN组件只能使用Java语言进行编写,用于表示多层分布式使用部门应用中的可重用业务逻辑组件,从而满足应用中特定的业务需求,JAVA企业BEAN组件只能部署到JAVA企业BEAN容器中运行,并可获得JAVA企业BEAN容器提供的种种服务。JAVA企业BEAN框架提供了多种支持分布对象计算的服务,像交易、安全、远程访问、持久和生命期管理等。JAVA企业BEAN技术它定义了一组可重用的组件,简化了用Java语言编写的使用部门信息体系的开发和配置。利用这些组件,开发者可以像搭积木一样建立分布式应用系统。这些组件在程序写好后,就被组合到特定的文件中去,每个文件有一个或许多EnterpriseBeans以及一些配置参数。进而,这些EnterpriseBeans被配置到一个装了JAVA企业BEAN容器的架构上。通过这些Beans的Home接口,客户能够定位到某个Bean,同时产生这个Bean的一个实例。如此,客户就能够调用Beans的应用实现方案和远程接口。用JAVA企业BEAN编写的应用可扩展性好,支持事务处理及多使用者环境下的安全性。JAVA企业BEAN应用系统编写一次,可在任何支持JAVA企业BEAN的服务器部分架构上运行。JAVA企业BEAN作为一种重量级的框架,是大型分布式架构的较好选择。
四、网络服务
网络服务,是真正意义上的中立技术,使用XML技术作为基础,是完全基于标准的分布式通信技术,使它独立于操作架构和程序开发语言。网络服务是2001年初提出的基于网络的分布式应用,通过诸如SOAP、HTTP等在网络上广泛应用的标准协议来统一连接,它将是下一代分布式架构的核心技术之一,通过标准的网络协议提供一种分布式的软件服务。W3C中网络服务体系架构工作组对网络服务的定义如下:“网络服务通过XML语言进行定义、描述和发现,是一种通过URL识别的软件应用。网络服务支持通过超文本传输协议交换基于XML的数据信息或与其他软件代理直接交互。”网络服务的主要目标就是在现有的各种异构架构的基础上构筑一个通用的与架构无关、语言无关的技术层,依靠这个技术层,各种不同架构之上的应用来实施彼此的连接和集成。概括地讲,网络服务与传统网络应用技术的差异就是,传统网络应用技术解决的问题是如何让人来使用网络应用所提供的服务,而网络服务则要解决如何让计算机体系来使用网络应用所提供的服务。对于网络服务的使用人员而言,网络服务满足一定接口规范的网络服务,不用关心实现网络服务的架构、实现的程序开发语言、实现的服务器部分位于何方,这些网络服务因为使用超文本传输协议和XML进行通信,可以被不受限制的Client端调用,网络服务的开发者也不必担心开发产品的可用性,可以在选定的架构下用任何语言开发网络服务,然后发布到网络上。标准是达成跨架构互操作能力的灵魂,只有基于标准,网络服务是完全基于标准的技术,所有的开放厂商才能够在各自的架构上开发出具有跨架构互操作能力的软件产品和解决方案,才有相同的准则。
五、面向数据信息中间件服务
面向数据信息中间件服务(Message-Oriented Middle ware,面向数据信息中间件服务)支持在一个分布式应用环境中多种用途的数据信息交换。在分布的计算进程之间,数据信息是通过数据信息传递、数据信息队列两种实现方案,以同步或异步方式进行交换的。面向数据信息中间件服务能在分布式架构之间可靠地传递数据信息,并可在数据信息的生产者和消费者之间建立连接,负责将数据信息从生产者传送给消费者,生产者可以异步地发送数据信息。数据信息中间件服务既是一个运行体系,也是一个管理工具集,又是一个开发体系。作为一个运行体系,它为上层信息体系提供可靠、实时、高效的信息数据通信服务;作为一个管理工具集,它具有完善的日志机制,提供了对网络实时管理、进行配置、实时监控的工具;作为一个开发体系,它提供了易用、简单、功能强大的开发接口。数据信息中间件服务的体系架构如图所示。
数据信息中间件服务在使用部门应用集成中的作用日趋明显。分布式环境下各类应用在不同的软、硬件架构上运行,数据信息中间件服务主要提供应用集成的信息数据的传送、翻译、收集、映射、过滤、路由等功能,屏蔽不同的硬件架构、信息数据库、数据信息格式、通信协议之间的鸿沟与差异,同时提供应用到应用之间的便捷高效的通信能力。分布式架构一般基于异步的数据信息通信,有两种形式的异步数据信息:基于队列的数据信息传递和发布/订阅的数据信息递。数据信息传递方式由相应的数据信息代理提供。面向数据信息中间件服务的优点是:接收和发送方不必在线等待(松耦合)。面向数据信息中间件服务的缺点是:存在过载情况,此外,异步数据信息传递并非总是支持安全的传播方式。面向数据信息中间件服务作为使用部门应用集成的有效工具,发展极为迅速,已广泛应用在金融、交通、邮电、政府等信息数据传输频繁、交易量大的行业。目前支持面向数据信息中间件服务标准有IBM的MQSeries、Microsoft的数据信息队列(MSMQ)及J2EE数据信息服务(JMS)等。
参考文献:
[1]刘伟.信息管理与数据库技术[M].北京:机械工业出版社,2005:141-148
[2]叶顺源.ASP.NET网络开发关键技术与实践[M].北京:中国铁道出版社,2006:219-268
[3]吴昊,刑桂芬.基于Web Services的企业数据集成的研究[J].计算机工程与设计,2005,26(10):2725-2727
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
关键词:分布式;主流实现技术
中图分类号:TP311.1文献标识码:A文章编号:1007-9599 (2011) 06-0000-02
Mainstream Technology Research Based on Distributed Architecture
Cui Miao
(Chongqing Economic Information Center,chongqing401147,China)
Abstract:This paper distributed architecture system was analyzed,and the distributed architecture mainstream realization technology were discussed.
Keywords:Distributed;Mainstream implementation technology
分布式架构(DAS)是一个对使用者看起来像集中的单机体系,(1)分布式架构体系是由许多处理器或计算机体系组成的。(2)这些体系可以是物理上相邻的,通过共享主存进行通信,由计算机内部总线或开关连接的处理器,这些计算信息数据信息也可以是物理上分开的,使用报文进行通信,由计算机信息网络连接的计算机体系。(3)这些信息数据信息组成一个整体,对使用者是透明的,即使用者使用任何信息数据信息时都不必知道这些信息数据信息的确切地点。(4)一个程序可分散到许多计算信息数据信息上运行,各个计算机体系地位平等。下面对分布式架构主流实现技术进行分析。
一、组件对象模型
组件对象模型是Object Request Broker Architecture的简称,即通用对象请求代理架构,此规范由对象管理组OMG制定的,其意图是制定标准,从而实现在不同的网络和计算环境下,能够独立开发的应用软件的以及软件间互用性,从而保证组件的可重用性、组件的可移植性和组件的互操作性。其核心是一套标准的接口和协议、语言。以支持异构分布信息体系的互操作性及独立于架构和程序开发语言的对象重用。其基本实现方案是以产品开发过程为核心,以产品为对象,采用分布式对象计算技术和面向对象,以使用部门模型、信息共享模型为基础,充分利用软件构建和总线技术,为不同应用软件开发接口适配器,从而实现应用软件的“即插即用”功能,还有各种应用软件之间的信息交换共享。
Application Object(应用对象)包括一些业务对象和信息体系,由组件对象模型底层支持的最顶层使用者:领域对象和非标准的专用对象。公共设施(组件对象模型)定义了水平和垂直应用框架,可直接为业务对象所使用。水平公共设施包括使用者界面、信息管理、体系管理和任务管理等通用服务;垂直公共设施的功能是提供特定领域的服务和框架,面向诸如制造、健康、金融、零售等。公共对象服务(组件对象模型)扩充对象总线功能,定义了系统级的对象框架。最底层是对象请求代理(ORB),是分布对象体系中的“软总线”规定了语言映射和分布对象的定义(接口),从而实现对象间的互操作和通讯,在ORB之上可以提供诸如并发、名字、事务、安全等各种各样的服务,定义了很多公共服务。公共设施在最上层,则定义了组件框架,目的是提供直接为业务对象的服务,规定所需的协定规则,业务对象有效协作。互联网交互代理协议IIOP是在WWW上组件对象模型最重要的应用,它是定义在文件传输协议上的通信协议,互联网交互代理协议负责在分布式网络环境下不同对象工作时的协调工作。组件对象模型的互操作性和开放性非常好,优点是大而全。作为一个透明的中介分布式对象标准,组件对象模型只要遵循组件对象模型标准的分布式对象,不管在任何架构上,用任何语言编写,都可以执行,而这一切是因为ORB对象与架构分离,因为ORB能与开发环境分离的关键性设计,只要使用者端与服务器部分都装有ORB,像Windows架构上的使用者端程序,也可以调用UNIX服务器部分上的对象。组件对象模型的缺点是技术和标准的更新相对较慢,庞大而杂,COBRA规范升级所花的时间非常短,而再往上更高版本的发布就很缓慢。而且因为其开放,产生了许多兼容性的问题,导致在ORB之间缺乏互用性,,使得标准难以实现,并且因为组件对象模型并非集成在操作系统中,因此增加了软件部署的成本。
二、组件对象模型/分布式组件对象模型
在开放性软件DEC远程过程调用协议的基础上开发的分布式组件对象模型是由组件对象模型发展而来,分布式组件对象模型可支持各种通信协议,在异种网络协议下实现了组件互相通信。ActiveX在速度与网络通信方面作了优化,是建立在分布式组件对象模型模型上的一个轻量级版本,ActiveX使程序设计者可以创建高层次的通用的可重用对象,通过因特网络进行传递与分发。组件对象模型/分布式组件对象模型的架构如图所示。组件对象模型/分布式组件对象模型中客户与被请求对象之间的通信是基于定义的二进制架构,这样利用不同程序开发语言,只要符合此二进制规范,就能够实现客户和组件之间的互操作性。
为支持组件的动态激活和交互是组件对象模型的设计目标。组件对象模型中的每个组件是一个可执行程序,程序可以包含在一个动态链接库中,程序也可以在一段可执行程序中。基本的组件对象模型模型能够将一些逻辑元素看作是独立的。分布式组件对象模型是组件对象模型的无缝扩展,由于分布式组件对象模型已经为开发者处理了底层网络协议的所有细节。因此,开发者就不必再为底层的处理细节费时费力,可以把重点放在应用的业务逻辑上。
分布式组件对象模型的优点之一就是有很多工具可以用来创建组件:RAID工具、C++工具。组件对象模型和分布式组件对象模型最大的不同是组件对象模型组件是运行在单机上,而分布式组件对象模型组件则是分布在网络上。分布式组件对象模型下没有提供自动容错和负载均衡服务。对付这两个使用部门级的关键问题,Microsoft的事务处理服务器部分MTS与Microsoft提供的其它实现方案相比,似乎是最具吸引力的方案,由于它提供了事务回滚、负载均衡功能。与组件对象模型相比,分布式组件对象模型有如下缺点:首先,它由单一开发者(Microsoft)定义并控制,这大大限制了分布式组件对象模型使用者本地服务器部分进程代理远户应用系统客的选择范围(比方说开发工具和风格)。其次,尽管分布式组件对象模型在非Windows架构上也可以使用,但会受到很多限制,这极大程度地制约了程序的可重用性和分布式组件对象模型的可扩展性,所以它更适用于Windows环境。分布式组件对象模型仅包含一些最小的核心元素集合,未能提供一个良好的框架和设计,类似的工作可通过不同的实现方案来完成,这些实现方案有时无法保持一致性。
三、EJB
EJB(Enterprise Java Bean)是由Sun公司定义的一种组件模型的技术规范。是J2EE的一部分,EJB规范的基本思想是为组件的开发提供一个运行架构,任何一个组件,只要满足JAVA企业BEAN模型,就可以快捷、灵活地部署到任何支持JAVA企业BEAN的运行架构上,而不需求考虑移植等细节,并达到即插即用的效果。根据EJB规范,JAVA企业BEAN组件只能使用Java语言进行编写,用于表示多层分布式使用部门应用中的可重用业务逻辑组件,从而满足应用中特定的业务需求,JAVA企业BEAN组件只能部署到JAVA企业BEAN容器中运行,并可获得JAVA企业BEAN容器提供的种种服务。JAVA企业BEAN框架提供了多种支持分布对象计算的服务,像交易、安全、远程访问、持久和生命期管理等。JAVA企业BEAN技术它定义了一组可重用的组件,简化了用Java语言编写的使用部门信息体系的开发和配置。利用这些组件,开发者可以像搭积木一样建立分布式应用系统。这些组件在程序写好后,就被组合到特定的文件中去,每个文件有一个或许多EnterpriseBeans以及一些配置参数。进而,这些EnterpriseBeans被配置到一个装了JAVA企业BEAN容器的架构上。通过这些Beans的Home接口,客户能够定位到某个Bean,同时产生这个Bean的一个实例。如此,客户就能够调用Beans的应用实现方案和远程接口。用JAVA企业BEAN编写的应用可扩展性好,支持事务处理及多使用者环境下的安全性。JAVA企业BEAN应用系统编写一次,可在任何支持JAVA企业BEAN的服务器部分架构上运行。JAVA企业BEAN作为一种重量级的框架,是大型分布式架构的较好选择。
四、网络服务
网络服务,是真正意义上的中立技术,使用XML技术作为基础,是完全基于标准的分布式通信技术,使它独立于操作架构和程序开发语言。网络服务是2001年初提出的基于网络的分布式应用,通过诸如SOAP、HTTP等在网络上广泛应用的标准协议来统一连接,它将是下一代分布式架构的核心技术之一,通过标准的网络协议提供一种分布式的软件服务。W3C中网络服务体系架构工作组对网络服务的定义如下:“网络服务通过XML语言进行定义、描述和发现,是一种通过URL识别的软件应用。网络服务支持通过超文本传输协议交换基于XML的数据信息或与其他软件代理直接交互。”网络服务的主要目标就是在现有的各种异构架构的基础上构筑一个通用的与架构无关、语言无关的技术层,依靠这个技术层,各种不同架构之上的应用来实施彼此的连接和集成。概括地讲,网络服务与传统网络应用技术的差异就是,传统网络应用技术解决的问题是如何让人来使用网络应用所提供的服务,而网络服务则要解决如何让计算机体系来使用网络应用所提供的服务。对于网络服务的使用人员而言,网络服务满足一定接口规范的网络服务,不用关心实现网络服务的架构、实现的程序开发语言、实现的服务器部分位于何方,这些网络服务因为使用超文本传输协议和XML进行通信,可以被不受限制的Client端调用,网络服务的开发者也不必担心开发产品的可用性,可以在选定的架构下用任何语言开发网络服务,然后发布到网络上。标准是达成跨架构互操作能力的灵魂,只有基于标准,网络服务是完全基于标准的技术,所有的开放厂商才能够在各自的架构上开发出具有跨架构互操作能力的软件产品和解决方案,才有相同的准则。
五、面向数据信息中间件服务
面向数据信息中间件服务(Message-Oriented Middle ware,面向数据信息中间件服务)支持在一个分布式应用环境中多种用途的数据信息交换。在分布的计算进程之间,数据信息是通过数据信息传递、数据信息队列两种实现方案,以同步或异步方式进行交换的。面向数据信息中间件服务能在分布式架构之间可靠地传递数据信息,并可在数据信息的生产者和消费者之间建立连接,负责将数据信息从生产者传送给消费者,生产者可以异步地发送数据信息。数据信息中间件服务既是一个运行体系,也是一个管理工具集,又是一个开发体系。作为一个运行体系,它为上层信息体系提供可靠、实时、高效的信息数据通信服务;作为一个管理工具集,它具有完善的日志机制,提供了对网络实时管理、进行配置、实时监控的工具;作为一个开发体系,它提供了易用、简单、功能强大的开发接口。数据信息中间件服务的体系架构如图所示。
数据信息中间件服务在使用部门应用集成中的作用日趋明显。分布式环境下各类应用在不同的软、硬件架构上运行,数据信息中间件服务主要提供应用集成的信息数据的传送、翻译、收集、映射、过滤、路由等功能,屏蔽不同的硬件架构、信息数据库、数据信息格式、通信协议之间的鸿沟与差异,同时提供应用到应用之间的便捷高效的通信能力。分布式架构一般基于异步的数据信息通信,有两种形式的异步数据信息:基于队列的数据信息传递和发布/订阅的数据信息递。数据信息传递方式由相应的数据信息代理提供。面向数据信息中间件服务的优点是:接收和发送方不必在线等待(松耦合)。面向数据信息中间件服务的缺点是:存在过载情况,此外,异步数据信息传递并非总是支持安全的传播方式。面向数据信息中间件服务作为使用部门应用集成的有效工具,发展极为迅速,已广泛应用在金融、交通、邮电、政府等信息数据传输频繁、交易量大的行业。目前支持面向数据信息中间件服务标准有IBM的MQSeries、Microsoft的数据信息队列(MSMQ)及J2EE数据信息服务(JMS)等。
参考文献:
[1]刘伟.信息管理与数据库技术[M].北京:机械工业出版社,2005:141-148
[2]叶顺源.ASP.NET网络开发关键技术与实践[M].北京:中国铁道出版社,2006:219-268
[3]吴昊,刑桂芬.基于Web Services的企业数据集成的研究[J].计算机工程与设计,2005,26(10):2725-2727
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文