系统接口API

    计算机应用软件系统从未像今天这样复杂过:数据被存储在多个相关联或者并不相关联的数据库系统中,分散在不同的地理位置的不同平台的计算机中,通过多种多样的通信协议、方式连接在一起。因此企业信息系统往往建立在多样的计算机技术上,大型主机、中型机、客户机/服务器系统,甚至包括单机数据库系统。这种情况的出现是由于企业的早期各部门独立的信息化需求以及企业的进一步运作如兼并等行为造成的。同时,企业信息系统的这种多样性将很大的限制企业的灵活性,制约企业的进一步发展,降低它在多变的市场的竞争力。  

    因此,当公司在实现它们的企业计算机系统时,怎样进行全公司范围内的数据访问是一个很重要的问题。为了解决操作异类环境、异类操作系统的复杂性,越来越多的企业开始选择采用中间件的解决方案,集成异构的系统。中间件和企业应用集成已是目前IT业中最频繁出现的词汇。

    1 中间件  

    为解决分布异构问题,人们提出了中间件(middleware)的概念。从计算机软件系统的结构层次来讲,中间件是位于平台(硬件和操作系统)和应用之间的一组通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。作为应用支撑软件,中间件为分布应用以及应用软件开发提供了跨网络、跨平台(硬件和操作系统)的透明性和互操作,构成应用的基础结构,使得应用可以集成/连接异构的应用和系统,共享重要的应用服务和资源。虽然中间件不仅在中国,在而且在整个世界范围内都是一个正在蓬勃发展的技术领域,但却很难给中间件一个严格的定义。但无论如何,中间件都是将应用的业务逻辑和应用的基础结构分离,使得应用的开发者可以仅关注应用的业务任务,而不必关注应用的基础结构。一般说来,中间件都具有以下的基本特征: 透明性:现代的分布式应用往往构筑在不同的硬件、操作系统、网络、数据库之上,利用中间件,我们可以透明地进行应用的开发、迁移、部署等工作。 高可用性:中间件通常都是以标准服务的形式提供,设计和实现中均考虑了各种故障情况,具有极强的故障处理和恢复能力。 高性能和伸缩性:分布式应用的客户往往是不可预计的,因此在中间件的设计和实现中,采用了大量的技术和算法以保证中间件能支持不同规模的应用,具有很好的伸缩性,保证构筑其上的分布式应用在任何情况下均具有良好的性能。 互操作性:中间件具有很强的互操作性,通过标准的协议、数据格式和接口规范,提供对多种数据源、其他应用和前端的访问,这种互操作通常远远超出应用的原始需求,因而方便以后的变化和升级; 可移植性:中间件提供了标准的编程接口,屏蔽了网络和平台的差异性,基于中间件开发的应用具有极强的可移植性,极易从一个平台移植到另一个平台上。中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

    2 中间件的分类

    根据Standish Group的估计,在应用中基础结构大约占70%,为应用提供了实施业务任务的必要基础。适应不同的需要,有不同类型的服务基础结构,因此有不同类型的中间件,如订阅/发布、数据库复制、远程过程调用、数据库访问、消息排队、消息复制、消息传递、消息交换、事务管理器、事务处理监控器、对象请求代理、对象监控器、应用服务器、流程控制等。 由于中间件所包括的范围十分广泛,而目前对中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。我们基于不同中间件的目的和实现机制的不同,我们将中间件分为以下主要几类: 远程过程调用(Remote Procedure Call) 面向消息的中间件(Message-Oriented Middleware) 对象请求代理(Object Request Brokers) 事务处理监控器(Transaction Processing Monitor) 数据访问中间件(Data Access middleware) 工作流中间件(workflow engine) 应用服务器(application server) WEB服务(web service) 前三类中间件属于通信中间件,它们向上提供了不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯服务之上,可构筑各种平台,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问等。 下面,针对上述几类中间件分别加以简要的介绍。     

    2.1 远程过程调用  

    远程过程调用是一种最早出现并被广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。RPC通讯是同步的,所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。现代操作系统通常均提供了RPC机制。

    2.2 面向消息的中间件  

    面向消息的中间件(MOM)指的是利用高效可靠的消息传递机制进行平台无关的数据交换,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。消息中间件通常包括:底层通讯系统、名字和目录服务、消息队列、server注册和管理等,支持同步、异步、订阅/发布等通信模式。目前市场上有许多流行的MOM中间件产品,如IBM的MQSeries。

    2.3 对象请求代理  

    分布对象(或组件)是一些独立的代码封装体,远程client可以通过操作调用来访问它。在分布式环境中的各对象之间通过定义好的接口相互访问,这些接口构成连接client 和server的协议。对象之间实现互操作时,client和server表示对象在具体请求中的角色。client不必关心server对象是如何实现的、位于网络的哪个结点,也不必关心其运行于何种硬件和操作系统平台之上。client只需知道server对象所提供的接口。分布对象是一些灵敏的软件模块,它们可以位置透明、语言独立和平台独立地互相发送消息,实现请求服务。我们称这些独立的对象模块为组件。为了使得不同厂商所提供的组件可以在同一地址空间相互作用,甚至跨越不同地址空间或网络进行交互,必须通过对象请求代理来进行,对象请求代理为对象组件提供了标准底层运行环境的支持,即对象总线和一些系统服务组件。由于对象请求代理负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,它可以支持更加复杂的结构。  

    目前,两个最主要的组件标准是OMG的CORBA和Microsoft的COM/DCOM, 它们采用对象总线结构,提供了工业组件标准。这些新的组件标准的出现将会极大地改变软件开发的现状,使应用开发向组合软件的方向发展。

    2.4 事务处理监控器  

    事务处理监控器提供支持大规模事务处理的可靠运行环境,为关键业务应用建立server组件实现的框架,该框架对于client是透明的。事务处理监控器位于client和server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。  

    事务处理监控器主要包括:(a)运行控制,与平台的server管理一起,控制应用程序的运行,包括启动server进程、为其分配任务、监控其执行并对负载进行平衡。(b)通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。(c)事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性;支持与X/Open XA接口集成,以方便管理多种异构资源系统(如数据库系统、消息系统等)的分布事务。典型的事务处理中间件是BEA公司的Tuxedo。

    2.5 数据访问中间件  

    数据访问中间件也称数据访问代理,负责连接异构的物理数据源(数据库、文件系统等)、服务请求以及模式转换等,为各物理数据源提供相应的驱动器,提供对异构信息源的高效、一致的访问。通过这样的数据访问代理可以:(a)减少网络通信,远程client通过service来请求数据访问,避免大量SQL语句传送;(b)可集中处理事务管理、安全和性能。核心数据源引擎和本地驱动器可进行集中服务和维护,client端不必安装所请求服务的数据源的“驱动器”,应用逻辑可在应用服务器上有效地管理事务、存取权限和性能等;(c)减低网络负载。本地数据源从server中分离,而通过消息队列等机制保持本地数据源与数据资源服务器的同步;(d)减少数据库的连接,通过共享连接减少同时连接的总数,从而减少开销。典型的数据访问中间件有Intersolv公司SequeLink和中科院软件所的DataAccess。

    2.6 工作流服务中间件  

    工作流针对工作中具有固定程序的常规活动,通过将工作活动分解成定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。工作流服务中间件旨在实现企业工作流的自动化,特别是业务处理中各项活动的合作、控制和通讯的自动化。   工作流服务中间件主要包括:(a)工作流模型与语言接口。(b)工作流引擎,主要包括系统的结构、并发控制、恢复、协同工作、代理、脚本(script)、规则和任务自动化的框架。该框架还包括语义消息服务,定义用于面向任务请求的高层消息机制。(c)各种分析、管理工具。

    2.7 应用服务器  

    应用服务器为建立分布式的可伸缩的Internet/Intranet 应用程序提供了一个基于组件的理想的应用程序框架。它为应用提供如连接管理、负载平衡、组件管理和控制等功能,同时提供如资源管理、事务管理、安全管理、通讯管理、与其它应用的集成等标准化服务和接口,保证应用的交易将被完整地、安全地执行,使得应用开发者集中精力于业务逻辑的开发。应用服务器解决的是Internet /Intranet 的应用开发问题。 典型的应用服务器中间件有IBM的WebSphere和BEA的WebLogic。 2.8 Web服务  Web服务建立在基于XML的SOAP 协议之上、自适应、自我描述、模块化的应用程序并通过Web发布,其它应用程序可以通过 Web 对其进行定位、调用。Web 服务提供的功能可以是从简单的查询请求(如股票报价)到复杂的商业业务逻辑(如订单处理)。Web服务提供者将服务部署在 Web 上,通过使用 Web 服务描述语言(WSDL)来描述给定 Web 服务提供的功能,并将自己向注册UDDI服务器注册。服务请求者使用 API 向UDDI服务器寻求它所需要的服务。UDDI服务器返回结果时,服务请求者将这些结果与特定服务绑定,双方经过适当的商讨之后,请求者就可以访问和调用提供者所提供的服务。XML、SOAP、WSDL、UDDI等与Web服务相关的标准都和平台、实现语言等无关,Web服务为真正垮平台的应用间的互操作提供基础。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值