📄 200604241155005.html
字号:
<P> 对应用程序的结构没有约束 在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。</P>
<P> 程序与网络复杂性相隔离<BR> 程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。</P>
<P>3、对象请求代理</P>
<P> 随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对象管理结构OMA(ObjECt Management <a href="200604241327575.html" tppabs="http://www.itisedu.com/phrase/200604241327575.html" target="_new">Architecture</a>),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604031336425.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604031336425.html'" tppabs="http://www.itisedu.com/phrase/200604031336425.html" target="_new">CORBA</a>规范包括了ORB的所有标准接口。1991年推出的CORBA 1.1 定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是不同厂商提供的ORB之间的互操作。</P>
<P> 对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。</P>
<P> 值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604291147015.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604291147015.html'" tppabs="http://www.itisedu.com/phrase/200604291147015.html" target="_new">Client/Server结构</a>相比,ORB可以支持更加复杂的结构。</P>
<P>4、事务处理监控</P>
<P> 事务处理监控(Transaction processing monitors)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于client和server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。总体上来说,事务处理监控有以下功能:</P>
<P> 进程管理,包括启动server进程、为其分配任务、监控其执行并对负载进行平衡。<BR> 事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。<BR> 通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。<BR> 事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server为每一个client都分配其所需要的资源的话,那server将不堪重负(如图2所示)。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client请求了服务,它希望得到快速的响应。事务处理监控在操作系统之上提供一组服务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资源下能够高效地为大规模的客户提供服务。 <BR> <BR></P>
<P align=center><IMG src="2006227134312401.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/2006227134312401.jpg" border=0></P>
<P align=center>图2 事务处理监控</P>
<P><STRONG>四、面临的一些问题</STRONG></P>
<P> 中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和server方的功能分配。通常将表示服务放在client以方便使用显示设备,将数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的。</P>
<P><STRONG>五、</STRONG><FONT face=Verdana><STRONG>中间件的现状与发展趋势</STRONG></FONT></P>
<P><FONT face=Verdana> 伴随着互联网技术的发展和全球经济一体化时代的来临,企业应用开始从局部自治的单业务种类、部门级应用向企业级应用转变,并促进了企业应用集成、企业间动态<a href="200603011335015.html" tppabs="http://www.itisedu.com/phrase/200603011335015.html" target="_new">电子商务</a>等网络<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603011147495.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603011147495.html'" tppabs="http://www.itisedu.com/phrase/200603011147495.html" target="_new">信息系统</a>技术的发展。网络信息系统的目标就是把分布在各处的多个局部自治的异构信息系统通过网络集成在一起,以实现信息资源的广泛共享、集约化管理和协调工作,其中需要解决的一个关键问题就是如何将各局部自治的系统联合成为能够发挥综合效能并能够不断成长的大系统,为此,出现了对构建网络信息系统基础支撑平台的强烈需求。中间件的概念在这样的背景下形成和发展。</FONT></P>
<P><FONT face=Verdana> 为了直观地把握中间件(middleware)的基本概念,可以将网络和系统软件之上、应用系统之下的广袤疆域都视做中间件的领地,中间件被概括地理解为起承上启下作用的应用支撑平台。应用的“多态性”、系统软件的复杂性,都需要依赖各种<a href="200603051002565.html" tppabs="http://www.itisedu.com/phrase/200603051002565.html" target="_new">类型</a>的中间件在其中运筹、调和。中间件的核心作用是通过管理计算资源和网络通信,为各类分布式应用软件共享资源提供支撑。广义地看,中间件的总体作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。</FONT></P>
<P><FONT face=Verdana> 本文从技术、产品和市场等角度对2004年我国中间件发展现状进行了回顾和分析,通过总结目前网络应用中出现的一些新趋势,提出了中间件技术下一步发展的一些挑战性问题,并总结了中间件产品和市场的一些新特点。</FONT></P>
<P><FONT face=Verdana> 1. 发展现状</FONT></P>
<P><FONT face=Verdana> 1.1. 技术现状<BR> 中间件技术是在克服复杂网络应用的共性问题中不断发展和壮大起来的,这些问题可以归纳为四个方面:</FONT></P>
<P><FONT face=Verdana> 1、从计算环境来看:中间件面对的是一个复杂、不断变化的计算环境,要求中间件技术具有足够的灵活性和可成长性;</FONT></P>
<P><FONT face=Verdana> 2、从资源管理的角度来看:操作系统和<a href="200603011033425.html" tppabs="http://www.itisedu.com/phrase/200603011033425.html" target="_new">数据库管理系统</a>管理的是有限资源,资源种类有限,资源量也有限,而中间件需要管理的资源类型(数据、服务、应用)更丰富,且资源扩展的边界是发散的;</FONT></P>
<P><FONT face=Verdana> 3、从应用支撑角度来看:中间件需要提供分布应用开发、集成、部署和运行管理的整个生命周期的总体运行模型;</FONT></P>
<P><FONT face=Verdana> 4、从应用的角度来看:利用中间件完成的往往是复杂、大范围的企业级应用,其关系错综复杂,流程交织。例如客户关系管理系统需要集成多个企业内部应用,而供应链管理则涉及企业之间的应用集成。</FONT></P>
<P><FONT face=Verdana> 因此,由于网络应用的复杂性,特别是分布、异构和自治等特点,决定了中间件技术和产品的形态多样性。目前的中间件技术已经形成一个丰富的谱系(图1),并正在向上(应用框架和普适服务)和向下(融合操作系统、数据库管理系统的功能)两个方向不断延伸,并在向更宽广的应用领域拓展。</FONT></P>
<P align=center><FONT face=Verdana><IMG src="200644153836887.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/200644153836887.jpg" border=0></FONT></P>
<P align=center><FONT face=Verdana> 图 1 中间件技术谱系</FONT></P>
<P><FONT face=Verdana> 在国内,国防科技大学、北京大学、北航、中科院软件所、东南大学等大学和院所很早就投入到中间件技术的研究中,并形成了一系列的成果。在国家发改委、信息产业部电子发展基金和国家科技部863计划和政府其他基金资助下,通过各项目研究单位和国内骨干软件企业多年的不懈努力,国内在基础中间件领域已经形成丰富的技术积累,并在CORBA技术(国防科技大学与中创软件)、消息中间件技术(中科院软件所)、<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200606221217315.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200606221217315.html'" tppabs="http://www.itisedu.com/phrase/200606221217315.html" target="_new">J2EE应用服务器</a>(北京大学)、Web Service(北航)等方面在技术上基本与国外保持同步发展的水平。</FONT></P>
<P><FONT face=Verdana> 以CORBA技术为例,国防科技大学与中创软件以对象管理组织发布的CORBA及<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603051312555.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603051312555.html'" tppabs="http://www.itisedu.com/phrase/200603051312555.html" target="_new">MDA</a>标准体系为依据,并结合<a href="200603091447335.html" tppabs="http://www.itisedu.com/phrase/200603091447335.html" target="_new">J2EE</a>、<a href="200604231236585.html" tppabs="http://www.itisedu.com/phrase/200604231236585.html" target="_new">XML</a>、Web Service等标准,对ORB、CORBA <a href="200604161439595.html" tppabs="http://www.itisedu.com/phrase/200604161439595.html" target="_new">构件</a>模型及其运行支撑技术、企业协同框架(CCA)、EAI Profile等进行了深入的研究,近3年在国内一级刊物和国际会议上发表50多篇文章,向对象管理组织(OMG)提交9项标准提案,已经从标准跟从阶段进入参与阶段,研究论文和成果在国际上得到广泛引用,国防科技大学CORBA研究成果StarBus并获得国家科技进步二等奖。</FONT></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -