首页 > 知识点讲解
       中间件的分类
知识路径: > 系统开发基础知识 > 基于构件的开发 > 中间件技术 > 中间件技术 > 
相关知识点:1个      
        中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。中间件分类有很多方式和很多种类型。
        从中间件的层次上来划分,可分为底层型中间件、通用型中间件和集成型中间件3个大的层次。底层型中间件的主流技术有JVM(Java Virtual Machine,Java虚拟机)、CLR(Common Language Runtime,公用语言运行时)、ACE(Adaptive Communication Environment,自适应通信环境)、JDBC和ODBC等,代表产品有Sun的JVM和Microsoft的CLR;通用型中间件的主流技术有CORBA、EJB、COM/DCOM等,代表产品主要有IONA Orbix、BEA WebLogic和IBM MQSeries等;集成型中间件的主流技术有WorkFlow和EAI等,代表产品主要有BEA WebLogic和IBM WebSphere等。
        由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通信服务,我们将这种通信服务称之为平台。基于目的和实现机制的不同,可将平台分为远程过程调用(Remote Procedure Call,RPC)、面向消息的中间件(Message-Oriented Middleware,MOM)、对象请求代理(Object Request Brokers,ORB)3类。它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等,在这些基本的通信平台之上,可构筑各种框架,为应用程序提供不同领域内的服务。
               RPC
               RPC是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来远程执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。一个RPC应用分为两个部分,分别是服务器和客户机。服务器提供一个或多个远程过程,客户机向服务器发出远程调用。要说明的是,这里的服务器和客户机并不是指计算机硬件,而是指应用程序。服务器和客户机可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上,它们通过网络进行通信。在这里,RPC通信是同步的,如果采用线程则可以进行异步调用。
               在RPC模型中,客户机和服务器只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的服务器。因此,RPC为C/S分布式计算提供了有力的支持。同时,RPC所提供的是基于过程的服务访问,客户机与服务器进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。例如,RPC通常需要一些网络细节以定位服务器;在客户机发出请求的同时,要求服务器必须是活动的,等等。
               :在Java开发环境中,可以使用Java远程方法调用(Remote Methode Invocation,RMI)来代替RPC。RMI提供了Java程序语言的远程通信功能,这种特性使客户机上运行的程序可以调用远程服务器上的对象,使Java编程人员能够在网络环境中分布操作。
               MOM
               利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,MOM可在分布环境下扩展进程间的通信,并支持多通信协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下3个主要特点:
               (1)通信程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
               (2)对应用程序的结构没有约束:在复杂的应用场合中,通信程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通信方式的构造并没有增加应用程序的复杂性。
               (3)程序与网络复杂性相隔离:程序将消息放入消息队列或从消息队列中取出消息来进行通信,与此关联的全部活动,如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其他程序通话,并且它们不涉及网络通信的复杂性。
               ORB
               ORB是OMG推出的对象管理结构(Object Management Architecture,OMA)模型的核心组件,它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。ORB是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间C/S关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。客户机对象并不知道与服务器对象通信、激活或存储服务器对象的机制,也不必知道服务器对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。
               :客户机和服务器角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是客户机,也可以是服务器,甚至兼有两者。当对象发出一个请求时,它是处于客户机角色;当它在接收请求时,它就处于服务角色。大部分对象都是既扮演客户机角色又扮演服务器角色。另外由于ORB负责对象请求的传送和服务器的管理,客户机和服务器之间并不直接连接,因此,与RPC所支持的单纯的C/S结构相比,ORB可以支持更加复杂的结构。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有