中间件基础软件系统面临的技术挑战

中间件作为帮助应用软件、数据库系统通过网络实现协作工作的基础软件系统,是现今信息系统构建和运行中不能缺少的一类支撑软件。与某些基础软件不同,中间件对软件与IT技术的进步更加敏感,适应、支持,以至拥抱变化,已是中间件必须面对新技术挑战必有的反应和动作。面对面向服务架构(SOA)、软件作为服务 (SaaS)等新的技术浪潮,研究、分析中间件软件可能会如何应对应是很有意义的一件事。

新技术对中间件的影响回顾

消息中间件、交易中间件

计算机网络技术的发展、网络应用走向普及,无疑是中间件的第一推动力量。当企业应用从单机及主机终端模式走向客户机/服务器模式、分布式时,今天的中间件就开始形成了。这一轮的软件与IT新技术促成了中间件的形成。

计算模式的这一重大变化,使得解决分布式环境中数据的访问、通信、分布式事务管理就成了一个普遍的需求,也就使得在基础层面提供可复用的、通用的的软件组件–中间件成为普遍接受的解决之道。这一阶段,主流的中间件软件是消息中间件和交易中间件。

消息中间件主要解决分布式应用中消息的异步、可靠地传输问题;交易中间件则是解决联机事务处理类应用,或多层架构应用中的,对服务的高效访问、并发访问管理、分布式事务的管理等问题的有效工具。

在此阶段,中间件的基本概念、基本功能构成、应用方式等都已形成。以基本功能构成为例,无论是哪一种中间件,都会包含应用开发、运行时系统,以及监控管理这三个组成部分。

对象中间件、J2EE应用服务器

随着对象、组件概念与技术的形成和发展,人们很自然地提出了面向对象(OO)和组件化地开发网络应用的需要,也就有了高效率地访问远地对象和组件的要求,由此促使分布式对象技术、分布式组件技术的形成和完善,以及面向对象的中间件和分布式构件中间件的形成。代表性的产品分别是符合CORBA规范的对象中间件,以及J2EE应用服务器软件,它们都和交易中间件有很深的渊源。

与交易中间件相比,符合CORBA规范的对象中间件提供了符合标准的对象请求代理程序(ORB)、CORBA服务,帮助应用以标准和可管理地方式实现对远地对象的访问。服务标准的对象访问协议(OMG IIOP)。更标准的应用开发方式和接口、将应用程序接口和实现分离因而更方便地支持C、C++等多种语言的应用开发,这些都是CORBA对象中间件的长处。

J2EE应用服务器软件,力图基于可一次编写到处运行的Java语言,给组件化的网络应用的开发以有效地支持。J2EE创造了多类标准化的 Java组件,如以表现为主的Web组件、以计算和数据访问为主的企业组件等等,定义了创造和使用这些组件的标准的API。J2EE应用服务器软件,则是提供了这些Java组件的开发环境、部署和运行平台,以及监控和管理工具的中间件软件。

无论是CORBA对象中间件,还是J2EE应用服务器,它们都适用于多层结构的分布式应用。与交易中间件相比,这两种中间件在API、数据与功能块(对象或组件)的构造和访问协议、基本系统服务等方面更加"标准"。CORBA对象中间件支持的是面向对象的应用,J2EE应用服务器支持的则是基于 Java的分布式、构件化的应用。

CORBA足够系统和严谨,在J2EE之后对组件技术也有了支持,也够先进。但也许因为它有些复杂、规范又发展的太过于缓慢,CORBA对象中间件,最终应用面较小,这些年也基本上不发展了。J2EE应用服务器的成功,与Java语言及相关技术对Web及互联网的支持,以及互联网及电子商务快速发展密不可分。与CORBA相比,其简单性也不能不说是一个重要的因素(现在人们又嫌J2EE这几年搞复杂了)。

J2EE应用服务器还带来了"平台"的概念和显眼的GUI开发工具。IT厂商之所以喜欢称J2EE应用服务器为"平台",而不是"中间件",大概是因为"平台"上有较大的表现空间。就J2EE应用服务器给应用开发、部署和管理提供的支持来看,较之交易中间件,称为"平台"并不为过。

J2EE应用服务器软件除了创造了新的市场外,它也确实"蚕食"了绝大多数交易中间件的传统市场,以及消息中间件的一部分市场。J2EE应用服务器在对Web应用的支持、标准化、对构件技术的支持等方面的优势是交易中间件等传统中间件不能比拟的。

集成中间件平台

先有独立的系统,才会有集成的需要,也才会有对集成中间件的需要。集成中间件力图改变传统的应用集成方式–应用之间点对点的直接连接与交互、与各个应用的适配和交互中的数据转换与处理完全要手工编码来实现、某一方应用接口的变化可能会影响一大片。

对于多年前就开始流行的、面向企业应用集成的传统应用集成中间件,各个厂商的产品,功能定位基本相同,大的功能也大体相同,但一些基本的技术概念、具体的功能设计和实现,以及集成开发的具体过程和方法却可能差别不小。这当然会增加使用者的学习成本和用户日后改变的成本。在对新技术的支持上,主要体现在中间件对与应用和系统适配的新的通信协或访问协议的支持方面,对各种新的数据源(XML数据库、XML文档,甚至Web服务等)等的支持和包容方面。

SOA及Web服务的流行,使集成中间件面临一个全局性和战略性的技术决断。虽然一些传统的应用集成中间件已能够基于SOAP/HTTP协议实现对标准Web服务的集成、提供遗留应用、系统的服务化封装能力,但人们认为还很不够,希望产品还能在概念、操作等层面体现面向服务的理念–集成的过程是服务封装、组合、编排、发布、部署,以及监控和管理,希望新的SOA应用集成中间件基于开放、标准的技术架构,使用和支持开放、标准的技术,由此带来更长久的生命力和经济性。

今天我们正在感受SOA对中间件的影响。关于这一点,后面我们会做进一步的分析。