目前还没有对中间件形成一一个统的定 义,下面是两种现在普遍比较认可的定义:
(1)在一个分布式系统环境中处于操作系统和应用程序之间的软件。
(2)中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
中间件作为一:大类系统软件,与操作系统、数据库管理系统并称“三套车”,其重要性是不言而喻的,中间件的优点应该说都是有目共睹的。它的优越性体现在以下几个方面:缩短应用的开发周期、节约应用的开发成本、减少系统初期的建设成本、降低应用开发的失败率、保护已有的投资、简化应用集成、减少维护费用、提高应用的开发质量、保证技术进步的连续性、增强应用的生命力。
中间件的任务是使应用程序开发变得更容易,通过提供统的程序抽象, 隐藏异构系统和分布式系统下低级别编程的复杂度。中间件分类有很多方式和很多种类型。在这里我们由底向上从中间件的层次上来划分,可分为底层型中间件、通用型中间件和集成型中间件三个大的层次。
(1)底层型中间件的主流技术有JVM (Java Virtual Machine, Java 虚拟机)、CLR( Common Language Runtime, 公共语言运行库)、ACE ( Adaptive CommunicationEnvironment,自适配通信环境)、JDBC (Java Database Connetivity, Java 数据库连接和ODBC (Open Database Conectivity,开放数据库互连)等,代表产品主要有SUNJVM和MicrosoftCLR等。
(2)通用型中间件的主流技术有CORBA ( Common Object Request BrokerArchitecture,公共对象请求代理体系结构)、J2EE、MOM (Message-Oriented Middlewar,面向消息的中间件)和COM等,代表产品主要有IONA Orbix、BEA WebLogic和IBMMQSeries等。
(3)集成型中间件的主流技术有WorkFlow和EAI Enterprise Application Integration.企业应用集成)等,代表产品主要有BEA WebLogic和IBM WebSphere等。
在这个大的层次划分下,中间件还可以细化为通信处理(消息)中同件、事务处理(交易)中间件、数据存储管理中间件、Web 服务中间件、安全中间件、跨平台利构架的中间件专用平台中同件、数据流中间件、门户中间件、工作流中间件等。
中间件技术在集成中扮演着重要的角色,我们可以从不同层次采用不同种类,不同流程等各个层面分别加以集成。如图1-9所示,我们可以从传输、消息、组件业务流程等各个层面分别加以集成。
从图1-9中我们还可以看出,为了完成不同层次的集成,可以采用不同的技术、 产品
(1)为了完成系统底层传输层的集成,可以采用CORBA技术。(2)为了完成不同系统的信息传递,可以采用消息中间件产品。
(3)为了完成不同硬件和操作系统的集成,可以采用J2EE中间件产品。
同样,目前中间件的竞争焦点也主要集中在集成应用平台.上,大多中间件公司都已经或准备将下一步的工作重点放在集成市场上。