中间件的分类

中间件的分类
  中间件的分类方法繁多,为了便于说明问题,且把中间件分为两大类:一类是底层中间件,用于支撑单个应用系统或解决单一类问题,包括事务处理中间件(TPM)、应用服务器(WAS)、消息中间件(MOM)、数据访问中间件(UDA)等;另一类是高层中间件,更多的用于系统整合,包括企业应用集成中间件(EAI Suites)、工作流中间件(Workflow)、门户中间件(Portal)等,它们通常会与多个应用系统打交道,在系统中的层次较高,并大多基于底层中间件运行。
◆ 数据访问中间件
  数据库中间件在所有的中间件中是应用最广泛,技术最成熟的一种。一个最典型的例子就是ODBC(开放数据库互连)。编写过数据库的网管朋友都知道,只要在ODBC中添加一个数据源,然后就可以直接在自己的应用程序中使用这个数据源,而不必关心目标数据库的实现原理、实现机制,甚至不必了解ODBC向应用程序提供了哪些应用程序接口API。
不过在数据库中间件处理模型中,数据库是信息存贮的核心单元,中间件完成通信的功能,这种方式虽然灵活,但并不适合于一些要求高性能处理的场合,因为它需要大量的数据通信,而且当网络发生故障时,系统将不能正常工作。
◆ 远程过程调用中间件(RPC)
  远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。一个RPC应用分为两个部分:server和Client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。RPC的灵活性使得它可以应用在更复杂的客户/服务器计算环境中。
  但由于RPC一般用于应用程序之间的通信,而且采用的是同步通信方式,因此比较适合于不要求异步通信方式的小型、简单的应用系统,而对于一些大型的应用,往往需要考虑网络或者系统故障,处理并发操作、缓冲、流量控制以及进程同步等一系列复杂问题,这种方式就很难发挥其优势。
◆ 面向消息中间件(MOM)
  面向消息中间件不象RPC机制那样流行,但越来越多的分布式应用采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系统和不同的网络环境。
  消息中间件的优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。另外消息中间件不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。但是与远程过程调用相比,消息中间件不支持程序控制的传递。比较适用于需要在多个进程之间进行可靠的数据传送的分布式环境。
◆ 基于对象请求代理(ORB,Object Request Broker)的中间件
  对象请求代理是近年来才发展起来的一项新技术,它可以看作和编程语言无关的面向对象的RPC应用。从管理和封装的模式上看,对象请求代理和远过程调用有些类似,不过对象请求代理可以包含比远过程调用和消息中间件更复杂的信息,并且可以适用于非结构化的或者非关系型的数据。
目前有两种对象请求代理的标准,分别是CORBA和DCOM,这两种标准是相互竞争的,而且两者之间有很大的区别,这在一定程度上阻碍了对象请求代理中间件的标准化进程。
◆ 事务处理中间件(TPM)
  事物处理中间件最初是作为联机事务处理应用的支撑环境。它提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理和其它必要的服务,是针对复杂环境下分布式应用的速度和可靠性要求而实现的。它给程序员提供了一个事务处理的API,程序员可以使用这个程序接口编写高速而且可靠的分布式应用程序。
  事务处理中间件向用户提供一系列的服务,如应用管理,管理控制以及应用程序间的消息传递等。常见的功能包括全局事务协调、事务的分布式两段提交、资源管理器支持、故障恢复、高可靠性、网络负载平衡等。
◆ 工作流中间件
  工作流软件定位于支持商务流程的自动化,即能够方便地进行处理集成。这些工作流软件以消息中间件或Web应用服务器为底层支撑。建立在消息中间件之上的工作流软件一般都有Windows或Unix上的客户端,支持与Web应用服务器的集成,并提供使用浏览器获得工作列表、执行流程实例和监控管理工作流的能力。
  总之,中间件是处于操作系统和应用程序之间的软件,在网络架构体系中,起着承上启下的作用。它不仅是快速构建网络应用的利器,而且能够全面提升系统集成能力。现在,中间件已与操作系统和数据库并驾齐驱,成为基础软件领域的三驾马车。

你可能感兴趣的:(应用服务器,中间件,网络应用,网络协议,企业应用)