middleware中间件概述

news/2024/11/8 6:49:34 标签: 中间件

中间件定义

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处在操作系统、网络和数据库之上,应用软件的下层(如图 15-1 所示)​,也有人认为它应该属于操作系统中的一部分。

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。这些服务程序或软件具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。中间件为处于其上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 

 中间件特点

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

中间件优势

中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少了程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。不只是开发的简便、开发周期的缩短,也有系统的维护、运行和管理的工作量的减少,还减少了计算机总体费用的投入。

中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发的应用软件集成起来,彼此无缝地整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,人们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而节省了企业在应用软件开发和维护中的重大投资。

中间件的分类

好比一个大型城市的交通系统,将网络看作市区马路,通过交通工具(如汽车)实现通信,每分钟将有数以万辆车在马路上行驶,如果没有相应的交通设施和管理规划,城市将会乱成一团,发生各种交通事故,中间件系统就相当于这些配套的交通设施。按照中间件在分布式系统中承担的职责不同,可以划分以下几类中间件产品

通信处理(消息)中间件

正如,安装红绿灯,设立交通管理机构,制定出交通规则,才能保证道路交通畅通一样,在分布式系统中,人们要建网和制定出通信协议,以保证系统能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,这类中间件称为消息中间件

事务处理(交易)中间件

正如城市交通中要运行各种运载汽车,以此来完成日常的运载,同时随时监视汽车运行,在出现故障时及时排堵保畅。在分布式事务处理系统中,经常要处理大量事务,特别是 OLTP 中,每项事务常常要多台服务器上的程序按顺序协调完成,一旦中间发生某种故障,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行。要使大量事务在多台应用服务器上能实时并发运行,并进行负载平衡的调度,实现与昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求中间件系统具有监视和调度整个系统的功能。

数据存取管理中间件

在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

Web 服务器中间件

浏览器图形用户界面已成为公认规范,然而它的会话能力差、不擅长做数据写入、受 HTTP 协议的限制等,就必须进行修改和扩充,形成了 Web 服务器中间件,如 SilverStream 公司的产品。

安全中间件

一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等)​,必须用国产产品。产生不安全因素是由操作系统引起的,但必须要用中间件去解决,以适应灵活多变的要求。

跨平台和架构的中间件

当前开发大型应用软件通常采用基于架构和构件技术,在分布式系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产生了架构中间件。功能最强的是 CORBA,可以跨任意平台,但是过于庞大;JavaBeans 较灵活简单,很适合于做浏览器,但运行效率有待改善;COM+模型主要适合 Windows 平台,在桌面系统已广泛使用。由于国内新建系统多基于 UNIX(包括 Linux)和 Windows,因此,针对这两个平台建立相应的中间件市场相对要大得多。

专用平台中间件

为特定应用领域设计领域参考模式,建立相应架构,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)​。

网络中间件

它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。

中间件产品-MQSeries 消息处理中间件

IBM 公司的 MQSeries 是 IBM 的消息处理中间件。MQSeries 提供一个具有工业标准、安全、可靠的消息传输系统,它用于控制和管理一个集成的系统,使得组成这个系统的多个分支应用(模块)之间通过传递消息完成整个工作流程。

MQSeries 基本由一个信息传输系统和一个应用程序接口组成,其资源是消息和队列。

MQSeries 的关键功能之一是确保信息可靠传输,即使在网络通信不可靠或出现异常时也能保证信息的传输。MQSeries 的异步消息处理技术能够保证当网络或者通信应用程序本身处于“忙”状态或发生故障时,系统之间的信息不会丢失,也不会阻塞。这样的可靠性是非常关键的,否则大量的金钱和客户信誉就会面临极大的损害。

同时,MQSeries 是灵活的应用程序通信方案。MQSeries 支持所有的主要计算平台和通信模式,也能够支持先进的技术如(Internet 和 Java)​,拥有连接至主要产品(如LotusNotes 和 SAP/R3 等)的接口。

中间件产品-BEA Tuxedo 交易中间件

BEA 公司的 Tuxedo 作为电子商务交易平台,属于交易中间件。它允许客户机和服务器参与一个涉及多个数据库协调更新的交易,并能够确保数据的完整性。

BEA Tuxedo 一个特色功能是能够保证对电子商务应用系统的不间断访问。它可以对系统构件进行持续的监视,查看是否有应用系统、交易、网络及硬件的故障。

一旦出现故障,BEA Tuxedo 会从逻辑上把故障构件排除,然后进行必要的恢复性步骤。BEA Tuxedo 根据系统的负载指示,自动开启和关闭应用服务,可以均衡所有可用系统的负载,以满足对应用系统的高强度使用需求。

借助 DDR(数据依赖路由)​,BEA Tuxedo 可按照消息的上下文来选择消息路由。其交易队列功能,可使分布式应用系统以异步“少连接”方式协同工作。

BEA Tuxedo 的 LLE 安全机制可确保用户数据的保密性,应用/交易管理接口(ATMI)为 50 多种硬件平台和操作系统提供了一致的应用编程接口。

BEA Tuxedo 基于网络的图形界面管理可以简化对电子商务的管理,为建立和部署电子商务应用系统提供了端到端的电子商务交易平台。


http://www.niftyadmin.cn/n/5743462.html

相关文章

一个百度、必应搜索引擎图片获取下载的工具包

前言:前段时间需要一大批图片,跑去百度搜图下载,发现特别麻烦,于是用了一天时间写了一个工具库,方便后续使用,这里分享给大家 imagecapture 是一个用 Go 语言编写的库,旨在从百度和必应等搜索引…

爬虫学习5

selenium用法详解【从入门到实战】【Python爬虫】【4万字】_selenium用法详解4万字csdn-CSDN博客 MYSQL数据库 MongoDB数据库 selenium用法详解【从入门到实战】【Python爬虫】【4万字】_selenium用法详解4万字csdn-CSDN博客 redis数据库 黑马程序员Redis入门到实战教程&…

如何调整pdf的页面尺寸

用福昕阅读器打开pdf,进入打印页面,选择“属性”,在弹出的页面选择“高级” 选择你想调成的纸张尺寸,然后打印,打印出来的pdf就是调整尺寸后的pdf

在CentOS下安装RabbitMQ

在CentOS下安装RabbitMQ 在CentOS下安装RabbitMQ可以按照以下步骤进行:步骤 1: 更新系统步骤 2: 安装Erlang步骤 3: 添加RabbitMQ仓库步骤 4: 安装RabbitMQ步骤 5: 启动RabbitMQ服务步骤 6: 检查RabbitMQ状态步骤 7: 启用RabbitMQ管理插件(可选&#xff…

现代Web开发:React Hooks深入解析

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 现代Web开发:React Hooks深入解析 现代Web开发:React Hooks深入解析 现代Web开发:React Hook…

linux centos 安装redis

安装 wget https://download.redis.io/releases/redis-7.4.0.tar.gz解压redis-7.4.0.tar.gz文件 tar -zxvf redis-7.4.0.tar.gz进入redis安装目录 cd redis-7.4.0make时报错,因为需要安装gcc,gcc安装需要联网安装 修改端口 编辑文件用vi。nano命令cen…

Hive 的数据类型

基本类型 整型 TINYINT: 1字节整数,范围从 -128 到 127。SMALLINT: 2字节整数,范围从 -32,768 到 32,767。INT: 4字节整数,范围从 -2,147,483,648 到 2,147,483,647。BIGINT: 8字节整数,范围从 -9,223,372,036,854,775,808 到 9…

java_继承

1.为啥用 继承? Pupil类 package com.hspedu.extend;// 小学生->模拟小学生考试的情况 public class Pupil {public String name;public int age;private double score;public void setScore(double score) {this.score score;}public void testing() {System.out.printl…