(一)什么是中间件
中间件(Middleware)是一类连接软件组件和应用的计算机软件,它包括一组服务,以便于运行在一台或多台机器上的多个软件通过网络进行交互。[2]
中间件是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是来自IDC(Internet Data Center,互联网数据中心,简称IDC)的表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互联,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
我们可以把中间件理解为面向信息系统交互、集成过程中的通用部分的集合,屏蔽了底层的通讯、交互、连接等复杂又通用化的功能,以产品的形式提供出来,系统在交互时,直接采用中间件进行连接和交互,避免了大量的代码开发和人工成本。
从理论上来讲,中间件所提供的功能通过代码编写都可以实现,只是开发的周期和需要考虑的问题太多,逐渐地人们把这些部分以中间件产品的形式进行了替代。如常见的消息中间件,即系统之间的通讯与交互的专用通道,类似于邮局,系统只需要把传输的消息交给中间件,由中间件负责传递,并保证解决传输过程中的各类问题,如网络问题、协议问题、两端的开发接口问题等均由消息中间件屏蔽了,出现网络故障时,消息中间件会负责缓存消息,以避免信息丢失。相当于你想往美国发一个邮包,只需要把邮包交给邮局,填写地址和收件人,至于运送过程中的一系列问题都会由邮局解决。
(二)中间件的特点
中间件一般具有以下特点:①满足大量应用的需要;②运行于多种硬件和OS平台;③支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互;④支持标准的协议;⑤支持标准的接口。
由于标准接口对于可移植性、标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。在应用软件开发中,中间件远比操作系统和网络服务更为重要。中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件就几乎不需要进行任何修改,从而减少了企业在应用软件开发和维护中的巨额投资成本。
(三)中间件的分类
为了解决分布式应用问题,研究者们提出来“中间件”的概念,同时,针对不同的应用需求涌现出多种各具特色的中间件产品。中间件包括的范围十分广泛,至今还没有一个统一的定义。从不同的角度或层次上看,中间件的分类也有所不同。根据中间件在应用系统中的作用和采用的技术不同,可以将其大致分为以下几种[3]。
1.数据访问中间件
数据库访问中间件是在系统中建立数据资源互操作的模式,为在网络中虚拟缓存、格式转换等带来方便。它是目前应用最广、技术也最成熟的一种中间件,最典型的例子就是ODBC。
2.远程过程调用中间件
远程过程调用中间件在Client/Server分布式计算方面相对于数据访问中间件迈进了一步,是一种广泛使用的分布式应用程序处理方法。事实上,一个远程过程调用应用分为Server和Client两部分,可以提供一个或多个远程过程服务,请求由Client发起,通过通信链路Server接收信息或者提供服务。
3.面向消息的中间件
面向消息的中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。面向消息中间件能够跨平台通信,实现可靠的、高效的、实时的数据传输,可以用来屏蔽不同平台及协议之间的差异性,实现各应用程序间的协同工作。面向消息的中间件最大的优点就是能够在客户端与服务器间提供同步或者异步的连接,同时在任何时候都可以将讯息进行传输或者储存转发。消息中间件适用于一些多进程的分布式环境,是一种重要的中间件,也是目前各大中间件厂商生产的最热门的产品。
4.面向对象的中间件(www.xing528.com)
面向对象的中间件又称作对象请求代理中间件,是对象技术和分布式计算技术相结合的产物,它提供了一种透明地在分布式计算环境中传递对象请求的通信框架,是当今软件技术的主流方向。其中功能最强大的是CORBA和DCOM这两种标准。
5.事务处理监控中间件
事务处理监控最早应用在大型机上,提供保证交易完整性、数据完整性等大规模事务处理的可靠运行环境。事务处理监控中间件为用户提供基于事务处理的API,这些API可以提供进程管理、事务管理、通讯管理等功能。
中间件可向上提供不同形式的通信服务,包括同步、排队、订阅发布、广播等。它在平台上还可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所要关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会自行调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。
(四)中间件技术的发展趋势
中间件技术的发展方向,将聚焦于消除“信息孤岛”,推动无边界信息流,支撑开放、动态、多变的互联网环境中的复杂应用系统,实现对分布于互联网上的各种信息资源(计算资源、数据资源、服务资源、软件资源)的标准,快速、灵活、可信、高效能及低成本的集成、协同和综合利用,提高组织的IT基础设施的业务敏捷性,降低总体运维成本,促进IT与业务之间的匹配。
中间件技术正呈现出业务化、服务化、一体化、虚拟化等诸多新的重要发展趋势。
(五)中间件的应用需求
由于网络世界是开放的、可成长的和多变的,分布性、自治性、异构性已经成为信息系统的固有特征。实现信息系统的综合集成,已经成为国家信息化建设的普遍需求,并直接反映了国家整体信息化建设的水平。中间件通过网络互连、数据集成、应用整合、流程衔接、用户互动等形式,已经成为大型网络应用系统开发、集成、部署、运行与管理的关键支撑软件。
随着中间件在我国信息化建设中的广泛应用,中间件应用需求也表现出一些新的特点。
1.可成长性
Internet是无边界的,中间件必须支持建立在Internet上的网络应用系统的生长与代谢,维护相对稳定的应用需求。
2.适应性
随着环境和应用需求的不断变化,应用系统需要不断演进。作为企业计算的基础设施,中间件需要感知、适应这种变化,提供对下列环境的支持:①支持移动、无线环境下的分布应用,适应多样性的设备特性以及不断变化的网络环境;②支持流媒体应用,适应不断变化的访问流量和带宽约束;③能适应未来还未确定的应用要求。
3.可管理性
领域问题越来越复杂、IT应用系统越来越庞大,其自身管理维护则变得越来越复杂,中间件必须具有自主管理能力,简化系统管理成本。①面对新的应用目标和变化的环境,支持复杂应用系统的自主再配置。②支持复杂应用系统的自我诊断和恢复。③支持复杂应用系统的自主优化。④支持复杂应用系统的自主防护。
4.高可用性
提供安全、可信任的信息服务:①支持大规模的并发客户访问;②提供99.99%以上的系统可用性;③提供安全、可信任的信息服务。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。