1. 什么是中间件?
中间件(middleware)是一种独立的系统软件或服务程序, 它在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件.
2. 为什么使用中间件?
具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。
3. 中间件的分类
中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类: 远程过程调用(Remote Procedure Call)面向消息的中间件(Message-Oriented Middleware)对象请求代理(Object Request Brokers)
4. 远程过程调用(Remote Procedure Call)
远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用。 在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。实现:XML-RPCRemote Python CallFacebook's ThriftDistributed RubyAction Message Format
5. 对象请求代理(Object Request Brokers)
1990年底,对象管理集团OMG首次推出对象管理结构OMA(Object Management Architecture),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。1991年推出的CORBA 1.1 定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是不同厂商提供的ORB之间的互操作。对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是 server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演 client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。实现CORBA(Orbix,ORBit,OmniORB)Java Remote Method InvocationIce.NET RemotingWindows Communication FoundationDCOMRMI
6. 面向消息的中间件(Message-Oriented Middleware)
MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。通讯程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。对应用程序的结构没有约束:在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。程序与网络复杂性相隔离: 程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。实现WebSphere MQ Sun Java Message Service (JMS) MSMQBEA MessageQExtensible Messaging and Presence Protocol (XMPP)Advanced Message Queuing Protocol
分享到:
相关推荐
中间件是一种位于操作系统和应用程序之间的软件,它提供了一种服务,使得不同的应用程序可以在分布式环境中相互通信和协作。中间件可以被看作是构建大型、复杂系统的关键组件,它简化了开发过程,允许开发者专注于...
无线移动中间件是中间件技术的一个重要分支,它主要应用于无线通信和移动计算环境中,起到连接手机操作系统与企业业务系统之间的桥梁作用。中间件技术的核心目标在于实现不同软件组件之间的通信和协同工作,而无线...
中创中间件是中国自主研发的一款重要软件产品,它在信息技术领域扮演着关键角色,尤其是在构建企业级应用系统中。中间件是一种软件服务,它提供了一种方式来连接不同的应用程序或者系统,使得它们能够相互通信、共享...
"中创中间件ARM安装包"是一个专门为ARM架构设计的中间件软件集合,适用于Linux、Windows和MIPS等多种操作系统平台。中间件在IT领域中扮演着至关重要的角色,它为上层应用程序提供运行环境和服务,使得软件开发人员...
中间件部署手册 本手册详细介绍了中间件的部署过程,从服务器配置到中间件安装、节点配置、实例创建、应用部署等方面进行了详细的讲解。 一、服务器配置 在部署中间件之前,需要先配置服务器,包括设置主机名、...
二、第l章中间件产生背景及分布式计算环境 第2章面向对象中间件oDP 第3章com相关技术 第4章J2EE技术 第5章CORBA初步 第6章CORBA服务 第7章中间件中的事务处理 第8章coRBA高级技术 第9彦无线、移动中间件 第10章反射...
中间件的类型按照IDC的分类方法,可以分为六类:终端仿真/屏幕转换、数据访问中间件(UDA)、远程过程调用中间件(RPC)、消息中间件(MOM)、交易中间件(TPM)和对象中间件。这些分类体现了中间件在不同应用场景中...
中创中间件是一款由国内厂商开发的中间件产品,主要用于构建和运行企业级的应用系统,提供稳定、高效、安全的服务。这款名为"InforSuite-AS-StE-10.0.1.3"的版本是中创中间件的一个具体版本,具有较高的版本号,意味...
金蝶中间件是企业级应用系统的重要组成部分,它在IT领域扮演着桥梁和粘合剂的角色,连接并协调各种不同的应用程序和服务。中间件的主要任务是处理分布式系统的复杂性,提高系统的可扩展性和性能,同时保证数据的安全...
金蝶中间件是一款由国内知名软件企业金蝶国际软件集团推出的中间件产品,它主要用于支持企业级Java应用程序的运行和管理。在Windows操作系统环境下,金蝶中间件提供了类似Tomcat的服务器环境,允许开发者和系统管理...
茁壮DVB中间件是专为DVB(Digital Video Broadcasting,数字视频广播)机顶盒设计的一款核心软件组件,主要用于处理数字电视信号的接收、解码以及与用户交互。这款中间件在Linux操作系统上运行,充分利用了Linux的...
《国产中间件:InforSuite AS中创——打造安全稳定的业务运行支撑平台》 InforSuite AS是由国内知名软件厂商中创软件推出的一款中间件产品,它专为满足国内企业和组织对业务系统的高可用性、安全性及高效运行的需求...
中间件的分类有很多种, IDC 对中间件的分类包括:终端仿真 / 屏幕转换、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。此外,还有新的分类方法,如底层中间件、高层中间件等。不同的...
在Node.js环境中,中间件是一种功能强大的工具,用于构建web应用程序和服务。中间件函数遵循一个简单的方法调用链,使得处理请求和响应的过程更加模块化。在这个“Nodejs自定义解析表单数据的中间件案例”中,我们将...
然而,由于其复杂性和广泛的使用,Web中间件也成为了攻击者的目标,存在多种可能的安全漏洞。以下是对这些常见漏洞的详细总结: 1. **SQL注入**:当Web应用未能正确过滤或转义用户输入的数据时,攻击者可以插入恶意...
金蝶中间件AAS-V9.0是一款由国内领先的软件公司金蝶国际开发的企业级应用服务器,它在中间件领域中扮演着至关重要的角色。中间件是计算机软件的一种,它位于操作系统与应用程序之间,提供服务和支持,使得不同系统和...
消息中间件是软件系统中的一种重要组件,它主要用于在分布式环境中传输数据,提供解耦、异步处理和可扩展性。在本主题中,我们将详细探讨消息中间件、其常见用例、涉及到的关键技术以及提供的功能。 首先,我们来看...
中间件按照注册顺序逐个处理请求,每个中间件都可以选择传递请求给下一个中间件或者直接终止请求并返回响应。在本文中,我们将探讨如何在 ASP.NET Core 中间件中返回特定的页面。 首先,我们要理解中间件的基本结构...
国产化中间件行业深度分析 中间件概念: 中间件是连接底层基础软件与上层应用服务的枢纽,目的在于效率提升,面向的使用对象是上层应用开发者。狭义的中间件就是应用服务器软件,广义的中间件包括打包各类企业 IT ...
金蝶中间件Apusic-plugins.zip是一个包含了一系列与金蝶Apusic中间件相关的开发插件的压缩包,主要用于帮助开发者在Eclipse或MyEclipse环境中进行应用程序的调试和开发。Apusic中间件是金蝶公司推出的一款企业级应用...