扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:国防科技大学电子科学与工程学院 魏勇 张权 来源: 电子技术应用 2007年9月16日
关键字: SOA/Portals SOA 中间件产品 endpoint
计算机系统最初阶段多是单机系统,多个用户是通过联机终端来访问。随着网络的出现,产生了客户/服务器的计算服务模式,多个客户端可以共享数据库服务器和打印服务器等。随着计算机和网络技术的飞速发展,许多软件需要在不同厂家的硬件平台、网络协议异构环境下运行,应用的规模从局域网发展到广域网,应用范围面向三层和多层体系结构的分布式环境,在分布式环境中,无论是硬件平台还是软件平台都不可能做到统一,而大规模的应用软件通常要求在软硬件各不相同的分布式网络上运行。中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,开发者不得不直接面对许多复杂棘手的问题,如操作系统的多样性、繁杂的网络程序设计和管理、复杂多变的网络环境、数据分散处理带来的不一致性问题等等,这些与用户的业务没有直接关系,但又必须解决,耗费了大量的时间和精力,因此开发者迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境,于是,中间件技术应运而生。
1 中间件的概念
在众多关于中间件的定义中,比较普遍接受的是IDC表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源;中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件是介于操作系统(包括底层通信协议)和各种分布式应用程序之间的一个软件层。总的作用是建立分布式软件模块之间互操作的机制,屏蔽底层分布式环境的复杂性和异构性,为处于自己上层的应用软件提供运行与开发环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在具体实现上,中间件是一个用应用程序接口定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
2 中间件的分类
随着计算机软件技术的发展,中间件技术也已日渐成熟,并且出现了不同层次、不同类型的中间件产品。按照IDC分类方法,中间件可分为以下6类:
2.1 终端仿真/屏幕转换
用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作。
2.2 数据访问中间件
适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库的API,以提请直接访问和更新基于服务器的数据源,数据源可以是关系型、非关系型和对象型。这类中间件大都基于SQL语句,采用同步通讯方式。此类中间件使应用开发简单化,但如果透过广域网使用,则会带来严重的效率问题,因为在低速网上来回交互SQL语句会使通讯流量过大,同时对数据压缩、加密带来不便。
2.3 远程过程调用中间件
RPC机制是早期开发分布式应用时经常采用的一种同步式的请求应答协议。通过这种协议,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程。RPC扩展了过程语言中的“功能调用/结果返回”的机制,使得它可以适用于一个远程环境。由于RPC机制是同步方式,因而在工作的时候,要求客户方和服务方均能正确工作才能很好地运行,有一方不能工作将导致RPC失败。在网络故障、机器故障存在的情况下,这一要求是很难保证的。另外,由于大多数RPC机制很难建立点到点的关系,因而也很难用在面向对象的编程当中。
2.4 消息中间件
越来越多的分布式应用采用消息中间件来构建,通过消息中间件把应用扩展到不同的操作系统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中间件通知服务方应该进行何种操作。其核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息发送。消息中间件可以支持同步方式和异步方式,实际上是一种点到点的机制,因而可以很好的适用于面向对象的编程方式。中间件领域目前最热门的技术是异步的消息中间件,异步中间件技术比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常传输。
2.5 交易中间件
是专门针对联机交易处理系统而设计的,如银行业务系统、定票系统等。联机交易处理系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理、应用软件,交易中间件就是一组程序模块,用以减少开发一个联机交易处理系统所需的编程量。
2.6 对象中间件
传统的面向对象技术通过封装、继承及多态提供了良好的代码重用功能,但是这些对象只存在一个程序中,外面的世界并不知道它们的存在,也无法访问它们。面向对象的中间件就是要解决这些问题,面向对象的中间件提供一个标准的构件框架,能使不同厂家的软件通过不同的地址空间、网络和操作系统交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。
3 主流中间件技术平台
考察当前主流的分布计算技术平台,主要有OMG的CORBA,Sun的J2EE和Microsoft DNA 20000,它们都是支持服务器端中间件技术开发的平台,但都有其各自特点,将分别阐述如下:
3.1 OMG的CORBA
公共对象请求代理体系结构(CORBA,Common Ob—ject Request Broker Architecture)是对象管理组织(OMG)基于众多开放系统平台厂商提交的分布对象互操作内容基础上制定的分布式应用程序框架的规范。
CORBA是由绝大多数分布计算平台厂商所支持和遵循的系统规范,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理(ORB,Object Request Broker),规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。CORBA的优点是大而全,互操作性和开放性非常好,缺点是庞大而复杂,并且技术和标准的更新相对较慢,在具体的应用中使用不是很多。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者