广东工程职业技术学院计算机信息系 雷文彬 甘 娜
WWW(World wide web)服务使得Internet/Intranet越来越流行,如果能够将地理上分布的计算机资源通过WWW服务相联系,实现一定范围内的计算资源共享,这对大型企业来讲,实现企业分布计算将具有很大的发展前途。分布式计算模式经历了3个阶段:两层C/S、三层C/S、WEB多层分布式,解决不同平台之间能够共享数据和处理能力,协同工作,形成有效的分布式计算能力。
在传统的集中式控制系统中,系统结构是基于两层的客户/服务器模式实现的,存在较大的局限性,比如负载问题、访问瓶颈问题,以及响应速度问题等。本文应用三层客户/服务器模式,并结合CORBA技术来实现分布式远程控制系统。
CORBA是一种与语言无关的中间件技术,与语言无关意味着用一种语言编写的客户端程序可以与用其它语言编写的服务器端程序进行交互。同时CORBA也为分布异构应用互操作提供了标准构架。基于CORBA的C/S分布式计算模型如图1所示。
该模型分为客户端、服务器端和数据库三个层次,技术上这相当于生产者和消费者模型。
图1 基于CORBA的C/S分布式计算模型
(1)请求服务的客户:客户作为消费者从服务器请求服务或数据。CORBA建立与远程服务器的连接。当客户要使用服务器的服务时,它首先需要提供服务的对象引用。这里ORB通过代表客户定位此对象并解开此对象引用的客户请求。从而使客户与服务器建立连接。
(2)提供服务的服务器:服务器作为生产者提供服务或数据,服务器将提供的服务封装起来,其中较重要的一点就是它本身是否可以充当客户向其他服务器请求服务,这样服务器可把一个任务分成几个子任务让别的服务器分别完成不同的子任务。产生远程调用的组包/解包参数。在客户得到远程服务器对象引用之后,客户调用该对象的方法。这些方法有输入参数和返回参数。ORB负责把输入参数翻译成可在网络上传输到远程对象的格式,此过程称为组包。ORB也负责把远程返回的参数解包成客户理解的格式。
(3)数据库服务器:数据库服务器用于存放远程控制系统中的需要存储和备份的各种数据信息。数据库服务涉及所有典型的数据处理活动,包括数据存取、修改以及其他与数据库相关的任务。
CORBA可方便客户和服务器之间的通信,通常运行在同一事务的客户端和服务器端,它提供对跨网分布的非本地服务和资源进行透明存取,允许不同的构件以一致的方式进行访问。C/S模式通常只有两层结构,应用逻辑必须在客户或服务器之间分配不同部分,若把应用逻辑从客户和服务器中分离出来可形成三层结构,使应用逻辑独立于用户界面和系统数据。三层结构更加先进和灵活。
3.2.1 三层的客户/服务器工作方式
(1)表示逻辑层,它是应用中直接面向用户的部分,主要完成应用的前端界面处理,即人机界面处理;
(2)业务逻辑层,它实现应用的业务规则处理,决定程序的流程;
(3)数据库逻辑层,它是应用中对数据进行管理的部分,主要完成应用对数据的存取、更新、管理等工作以及访问数据的安全性、完整性、一致性;
(4)客户端,建立与远程服务器的连接。客户机是系统中供用户与服务器进行交互的部件,其主要工作是提供人机界面,完成人机交互,向服务器请求服务以及接收来自服务器的对请求的处理结果信息。
当客户要使用服务器的服务时,它首先需要提供服务的对象引用。这里CORBA构件中的ORB通过代表客户定位此对象并解开此对象引用的客户请求。从而使客户与服务器建立连接。客户通过客户端引用调用方法,就好像对象是本地客户那样。客户端依此把请求通过命名服务传递给所得到的服务器端引用。
(5)服务器端,它具有同客户端相同的特点。服务器负责有效地管理系统资源以及为客户的资源请求提供服务,其主要工作是当多个客户并发地请求服务器上相同的资源时,对这些资源进行最优化处理,它的任务集中为数据库访问、文件共享、打印机等外设共享、通信服务。
服务器端为继续与客户端通信服务器代理,它通过读入方法调用的参数,产生对远程服务实现对象调用,接收返回值,然后把返回值写到客户端。当客户应用通过命名服务请求对象引用时,返回关于CORBA对象的引用。所返回的引用传递给此客户端。
3.2.2 CORBA服务是CORBA的核心内容之一
这些服务支持分布对象的集成与互操作。它就好比操作系统中的控制面板。CORBA生来就是支持三层模型的,CORBA是C/S对象模型的自然扩展。CORBA和C/S结合后,借助CORBA提供的网络透明性,可实现提供构件全部透明性的系统。该分布式计算系统能自动判定各PC性能,智能的分配任务,性能高的机器分配的任务数比较多,性能低的机器分配的任务数比较少,性能特别低的就不分配。通过合理分配任务能够最大程度的减少运算时间,运算效率就提高了。
CORBA客户端主要完成下列工作,首先对客户请求信息进行入队,然后对CORBA请求信息进行解析和组合,生成一个字符串对象参数,最后调用CORBA服务端对象的实现操作。
CORBA服务端主要完成的工作是完成CORBA客户端的调用操作,读取相应数据库的配置信息,建立相应数据库的连接,对数据库进行访问操作,最后将数据库结果集封装成为自定义的信息格式。
3.2.3 以消息交换作为通信方式
客户程序通过发送请求去调用由对象实现提供的服务。客户程序可通过静态调用或动态调用方式将请求发送给ORB内核,然后由ORB内核将请求转发给对象实现。ORB屏蔽了客户端发送请求与服务端接收请求的不同方式。从客户程序的角度看,使用DSI的对象实现与使用IDL框架的对象实现行为相同,客户程序不必提供特别的处理去与使用DSI的对象实现通信。对象实现框架的存在并不意味着一定要有客户程序桩,客户程序也可通过Dn发送请求。
(1)客户通过业务服务器同数据库服务器连接,可以共享与数据库的连接,从而降低了运算资源的开销,减轻了数据库服务器的负担,提高了性能。
(2)在分布式计算模型中引入CORBA技术,是因为CORBA技术提供了优秀的跨平台性,跨语言性,位置透明性等特性,为基于CORBA的应用屏蔽了复杂的异构环境,并且提供了大量可用的分布式服务如命名服务,事务服务等,从而使系统可以将更多的精力放在应用逻辑的实现上,系统的实现大为简单。
本文介绍了基于CORBA的C/S分布式计算模型,在Client/Server计算模式上采用分布式对象技术和CORBA,CORBA是OMG提出的分布对象管理结构标准,它充分体现了良好的可互操作性、可迁移性和可重用性的要求,CORBA和C/S结合的新分布式计算将会有很好的应用前景。
[1]张乐.基于分布式CORBA的系统研究和实现[C].中国科学院信号与信息处理专业,2007.
[2]谭海峰.分布式并行处理方法技术研究与系统平台设计[硕士学位论文].北京:中国地质大学(北京),2005.
[3]XiufenFu,HaishuiXu,JingWang,JianfangSun.Research of e-business applications based on XML/CORBA.Proceedings of the 8th International Conference on Computer Supported CooPerative Work in Design.2004:321-426.
[4]卢正鼎,李兵,肖卫军,李瑞轩.基于CORBA/XML的多数据库系统研究与实现[J].计算机研究与发展,2004,39(4):443-449.
[5]张云勇,等.中间件技术原理与应用[M].北京:清华大学出版社,2004.
[6]邵堃,刘宗田.分布式计算环境的比较研究[J].计算机工程与应用,2001,13:26-29.