04 中间件基础知识

Posted on Wed, 25 Dec 2024 16:41:57 +0800 by LiangMingJian


1.中间件

1.1 中间件的简介

  • 中间件是介于应用系统和系统软件之间,位于客户机服务器的操作系统之上的一类软件。它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享、管理计算资源和网络通信的目的。
  • 中间件是独立的系统级软件,连接操作系统层和应用程序层,将不同操作系统提供应用的接口标准化,协议统一化,屏蔽具体操作的细节。使得运行在一台或多台机器上的多个软件通过网络进行交互。
  • 随着计算机技术的快速发展,更多的应用软件被要求在许多不同的网络协议、不同的硬件生产厂商以及不一样的网络平台和环境上运营。这导致了软件开发者需要面临数据离散、操作困难、系统匹配程度低,以及需要开发多种应用程序来达到运营的目的。所以,中间件技术的产生,在极大程度上减轻了开发者的负担,使得网络的运行更有效率。

1.2 中间件的功能

  • 通信支持:提供数据的转换和通信服务。
  • 应用支持:提供统一的平台和运行环境,并封装不同操作系统的 API 接口,向应用提供统一的标准接口。
  • 公共服务:对应用软件中共性功能或约束的提取。将这些共性的功能或者约束分类实现,并支持复用,作为公共服务,提供给应用程序使用。

1.3 中间件的分类

  • 事务式中间件:又称事务处理管理程序,是当前用的最广泛的中间件之一,其主要功能是提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理、负载平衡、故障恢复和其他必要的服务。事务式中间件可靠性高,支持大量客户进程的并发访问,具有极强的扩展性,主要应用于电信、金融、飞机订票系统、证券等拥有大量客户的领域。
  • 过程式中间件:又称远程过程调用中间件。过程中间件一般从逻辑上分为两部分:客户和服务器。客户和服务器是一个逻辑概念,既可以运行在同一计算机上,也可以运行在不同的计算机上,甚至客户和服务器底层的操作系统也可以不同。客户机和服务器之间的通信可以使用同步通信,也可以采用线程式异步调用。所以过程式中间件有较好的异构支持能力,简单易用,但由于客户和服务器之间采用访问连接,所以在易剪裁性和容错方面有一定的局限性。
  • 面向消息的中间件:简称为消息中间件,是一类以消息为载体进行通信的中间件,利用高效可靠的消息机制来实现不同应用间大量的数据交换。按其通信模型的不同,消息中间件的通信模型有两类:消息队列和消息传递。通过这两种消息模型,不同应用之间的通信和网络的复杂性脱离,摆脱对不同通信协议的依赖,可以在复杂的网络环境中高可靠、高效率的实现安全的异步通信。消息中间件的非直接连接,支持多种通信规程,达到多个系统之间的数据的共享和同步。面向消息中间件是一类常用的中间件。
  • 面向对象中间件:又称分布对象中间件,是分布式计算技术和面向对象技术发展的结合,简称对象中间件。面向对象中间件给应用层提供各种不同形式的通信服务,通过这些服务,上层应用对事务处理、分布式数据访问,对象管理等处理更简单易行。
  • Web应用服务器:是 Web 服务器和应用服务器相结合的产物。应用服务器中间件可以说是软件的基础设施,利用构件化技术将应用软件整合到一个确定的协同工作环境中,并提供多种通信机制,事务处理能力,及应用的开发管理功能。由于直接支持三层或多层应用系统的开发,应用服务器受到了广大用户的欢迎,是中间件市场上竞争的热点,J2EE 架构是应用服务器方面的主流标准。

1.4 中间件的优势

  • 满足大量应用的需要;
  • 运行于多种硬件和OS平台;
  • 支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能;
  • 支持标准的协议;
  • 支持标准的接口;

1.5 中间件的局限

  • 多数流行的中间件服务使用专有的 API 和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。
  • 应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。
  • 尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,应用功能如何分配也是不容易确定的。