中间件讨论

2008-04-09 04:04:09来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


[这个贴子最后由mygod在 2002/01/04 10:49am 编辑]

mygod  
--------------------------------------------------------------------------------
[转载]
中间件
——构筑复杂分布式应用的关键技术
中科院软件所 仲萃豪
九十年代初客户机/服务器计算模式开始成为主流技术,将数据统一存储在数据服务器上,而有关的业务逻辑都在客户端实现,即所谓胖终端的解决方案,这种两层结构的模式大大阻碍着系统的发展,单一的服务器结构紧密地依赖供应商;数据存取受到限制;难以扩展到大企业广域网或国际互联网;也难以管理客户端的机群。随着用户业务需求的增长及Internet/Intranet的普及,将以三层或四层体系结构取而代之。三层结构就是把用户端的业务逻辑独立出来,并与数据库服务器中存储过程合并在一起,构成应用层,以提高计算能力,实现灵活性。在这种结构中用户端仅仅是处理图形用户界面(GUI),而目前趋势是采用具有交互功能的浏览器,即形成瘦终端的工作方式,为此,中间又增加了一层,称为Web服务器层,形成了四层体系结构。

这类多层结构的分布系统,各服务器和终端机之间都是通过网络连接起来的,并有大量信息和数据进行传递。对每个应用系统而言,在设计和实现时需要开发的,仅是在应用服务器上的业务逻辑部分的软件,除此之外,还必须要设计处理分布系统所特有的功能的软件,而目前的系统软件(操作系统和支撑软件)都不支持。为此出现了中间件,它是处于系统软件和应用软件之间的一批软件。使设计者集中设计与应用有关的部分,大大简化了设计和维护工作。通过五、六年的大量应用和实践,中间件已有一批成熟的产品,并成为设计分布系统时不可缺少的软件。仅仅几年时间,中间件以迅雷不及掩耳的速度迅猛发展,每年的市场销售额均是成倍的增长。

什么是中间件
中间件是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,因此,我同意这种定义:

中间件=平台+通信

这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

中间件的作用和分类
要说清这个问题我们用一个生活中的实例来比喻。把分布式系统看作北京市区的交通系统,网络看作市区马路,通过交通工具(汽车)实现通信,每分钟将有几万辆车在马路上行驶,如果没有相应的交通设施和管理规划,北京市将会乱成一团,发生各种交通事故。

1.通信处理(消息)中间件
首先要修好马路,安装红绿灯,设立交通管理机构,制定出交通规则,也就是我们要建网和制定出通信协议,能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如TongLINK、BEA eLink 、IBM的MQSeries等),称为消息中间件。这是中间件中唯一不可缺少的,是销售额最大的中间件产品,目前在Windows 2000操作系统中已包含了其部分功能。

2.事务处理(交易)中间件
在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。例如在北京市就要设置各种运载汽车,完成日常的运载,同时要随时监视汽车运行,出现故障时,要有排除措施,发生堵塞时要进行调度。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。BEA的 Tuxedo由此而著名,它成为增长率最高的厂商。一个事务处理平台,根据X/OPEN的参数模型规定,应由事务处理中间件、通信处理中间件以及数据存取管理中间件三部分组成。东方通科技公司的TongLINK 和TongEASY实现了这个参考模型规定。

3.数据存取管理中间件
在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

4.Web服务器中间件
浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能作数据写入、受HTTP协议的限制等,就必需进行修改和扩充,形成了 Web服务器中间件,如 SilverStream公司的产品。

5.安全中间件
一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必需用国产的产品。产生不安全因素是由操作系统引起的,但必需要用中间件去解决,以适应灵活多变的要求。

6.跨平台和构架的中间件
当前开发大型应用软件通常采用基于构架和构件技术,在分布系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产生了构架中间件,功能最强的是CORBA,可以跨任意平台,但是太庞大;JavaBeans较灵活简单,很适合于做浏览器,但运行效率差;DCOM模型主要适合 Windows平台,已广泛使用。实际上国内新建系统主要是UNIX(包括LINUX)和 Windows,因此针对这两个平台建立相应的中间件要实用得多。

7.专用平台中间件
为特定应用领域设计领域参考模式,建立相应构架,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。

8.网络中间件
它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。

中间件模型和形态
中间件从诞生起,仅仅是五年时间,但发展极其迅速,是有史以来发展最快的软件产品,但在技术上还处于成长阶段,还没有统一的标准和模型,通常都是用C++语言以面向对象的技术来实现的,但是它的特性已超出面向对象的表达能力,由于它属于可重用构件,目前趋向于用构件技术来实现。然而中间件要涉及软件的所有标准、规范和技术,它含有更多的内涵,因为它包括平台功能,自身具有自治性、自主性、隔离性、社会化、激发性、主动性、并发性、认识能力等特性,是近似于Agent(代理)的结构,采用Agent的概念和技术更合适一些,建立模型和规范是促进技术发展的核心措施。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:面向服务架构(SOA)的原则

下一篇:软件工程思想