|
|
51CTO旗下网站
|
|
移动端

3.1.6 中间件

《数据库系统:设计、实现与原理(基础篇)(原书第6版)》第3章数据库的结构与Web,本章我们首先考察一些目前已投入使用的不同系统的结构,然后讨论有关Web服务和面向服务的结构(SOA)的进展。本节为大家介绍中间件。

作者:宁洪/贾丽丽/张元昭 译来源:机械工业出版社|2017-09-28 14:25

3.1.6 中间件

中间件 | 连接软部件或应用的计算机软件。

中间件是个类属术语,通指为其他软件做媒介或帮助一个异构系统中各应用间通信的软件。中间件的需求来自于分布式系统太复杂时,若没有一个公用接口则难以有效管理。为了使异构系统能跨网工作并能灵活地适应频繁的修改,开发中间件以隐藏分布式系统基本的复杂性。

Hurwitz(1998)将中间件主要分为六类:

异步远程过程调用(RPC):这是一种进程间通信技术,它允许客户端向另一地址空间(通常是网络上另一台计算机)发出服务请求而不等待回答。一个RPC通常由客户端发起,客户端向已知的远程服务器发送信息,请求用所提交的参数执行某个过程。这类中间件是高度可扩展的,因为只有很少的连接和会话信息需要在客户端和服务器之间维持。当然,若连接中断,客户端不得不从头再来,故协议具有低可恢复性。当对事务完整性不作要求时,异步RPC最为适用。

同步RPC:类似于异步RPC,只是服务器在处理调用请求时客户端被挂起(它必须等待服务器处理完才能重启执行)。这类中间件可扩展性差,可恢复性却最好。

有若干与RPC类似的协议,如:

Java的Remote Method Invocation(Java RMI)API提供了与标准UNIX RPC方法类似的功能。

XML-RPC也是一种RPC协议,它用XML编码请求,HTTP作为传输机制。我们将在第29章讨论HTTP,第30章讨论XML。

微软的.NET Remoting为Windows平台的分布式系统提供RPC机制。我们将在29.8节讨论.NET平台。

CORBA通过一个称为“对象请求代理”的中间层提供远程过程调用。我们将在28.1节讨论CORBA。

Thrift协议和框架,主要用于社交网站Facebook。

发布/订阅:一种异步的消息通信协议,订阅者订阅由发布者发布的消息。消息可被分类。订阅者表达他感兴趣的一或多个类别,并只接收感兴趣的消息而不用关心发布者在哪儿。不将订阅者与发布者绑定能增强可扩展性并允许更动态的网络拓扑结构。发布/订阅中间件的例子有TIBCO软件公司的TIBCO Rendevous 和 ZeroC公司的Ice(Internet Communications Engine)。

面向消息中间件(MOM):既在客户端又在服务器驻留的软件,通常支持客户端和服务器应用间异步的调用。当目标应用正忙或未连接时,用消息队列临时存储消息。市场上有多种MOM产品,如IBM的WebSphere MQ、MSMQ(微软的Message Queuing)和JMS(Java Messaging Service),JMS是JEE的一部分,帮助开发可移植、基于消息的Java应用。MOM产品还包括实现了JMS 的Sun Java System Message Queue(SJSMQ)和Oracle公司的MessageQ。

对象请求代理(ORB):负责管理对象之间的通信和数据交换。ORB允许开发者通过集成对象来构建系统,这些对象可以来自不同的提供商,但通过ORB可互相通信,从而促进分布式对象系统的互操作性。公共对象请求代理结构(CORBA)是对象管理组(OMG)推出的标准,它使得用多种计算机语言写的、在不同机器上运行的软组件能协同工作。商品化ORB的例子有Progress Software公司的Orbix。

面向SQL数据访问:能跨网络连接数据库应用,把SQL请求转换为本地SQL或其他数据库语言表达。面向SQL的中间件不再需要为每个数据库编写专门的SQL调用代码,也不再需要为基本的通信编写代码。更通常的情况是,面向SQL的中间件能将应用连接到任何类型的数据库(尽管用SQL,但不必一定是关系型DBMS)。该类中间件的例子有微软的开放数据库互连 (Open Database Connectivity,ODBC)API,它暴露单一接口以简化用户访问数据库,而自己通过使用驱动程序适配不同数据库间的差异。还有JDBC API,它用单一一组方法来简化对多个数据库的访问。我们把网关也包括在这类中间件中,它在分布式DBMS中像个中介,把一种语言或方言翻译成另一种语言或方言(例如,将Oracle 的SQL翻成IBM DB2的SQL,或把微软SQL Server的SQL翻成对象查询语言(Object Query Language,OQL)。我们将在第24章讨论网关,在第29章讨论ODBC和JDBC。

下节我们考察专用于事务处理的中间件。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux命令、编辑器与Shell编程

本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍: 更好更实用的示例覆盖了实际工作中需...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊