廣東工程職業(yè)技術學院計算機信息系 雷文彬 甘 娜
WWW(World wide web)服務使得Internet/Intranet越來越流行,如果能夠將地理上分布的計算機資源通過WWW服務相聯(lián)系,實現(xiàn)一定范圍內的計算資源共享,這對大型企業(yè)來講,實現(xiàn)企業(yè)分布計算將具有很大的發(fā)展前途。分布式計算模式經歷了3個階段:兩層C/S、三層C/S、WEB多層分布式,解決不同平臺之間能夠共享數(shù)據和處理能力,協(xié)同工作,形成有效的分布式計算能力。
在傳統(tǒng)的集中式控制系統(tǒng)中,系統(tǒng)結構是基于兩層的客戶/服務器模式實現(xiàn)的,存在較大的局限性,比如負載問題、訪問瓶頸問題,以及響應速度問題等。本文應用三層客戶/服務器模式,并結合CORBA技術來實現(xiàn)分布式遠程控制系統(tǒng)。
CORBA是一種與語言無關的中間件技術,與語言無關意味著用一種語言編寫的客戶端程序可以與用其它語言編寫的服務器端程序進行交互。同時CORBA也為分布異構應用互操作提供了標準構架?;贑ORBA的C/S分布式計算模型如圖1所示。
該模型分為客戶端、服務器端和數(shù)據庫三個層次,技術上這相當于生產者和消費者模型。
圖1 基于CORBA的C/S分布式計算模型
(1)請求服務的客戶:客戶作為消費者從服務器請求服務或數(shù)據。CORBA建立與遠程服務器的連接。當客戶要使用服務器的服務時,它首先需要提供服務的對象引用。這里ORB通過代表客戶定位此對象并解開此對象引用的客戶請求。從而使客戶與服務器建立連接。
(2)提供服務的服務器:服務器作為生產者提供服務或數(shù)據,服務器將提供的服務封裝起來,其中較重要的一點就是它本身是否可以充當客戶向其他服務器請求服務,這樣服務器可把一個任務分成幾個子任務讓別的服務器分別完成不同的子任務。產生遠程調用的組包/解包參數(shù)。在客戶得到遠程服務器對象引用之后,客戶調用該對象的方法。這些方法有輸入參數(shù)和返回參數(shù)。ORB負責把輸入參數(shù)翻譯成可在網絡上傳輸?shù)竭h程對象的格式,此過程稱為組包。ORB也負責把遠程返回的參數(shù)解包成客戶理解的格式。
(3)數(shù)據庫服務器:數(shù)據庫服務器用于存放遠程控制系統(tǒng)中的需要存儲和備份的各種數(shù)據信息。數(shù)據庫服務涉及所有典型的數(shù)據處理活動,包括數(shù)據存取、修改以及其他與數(shù)據庫相關的任務。
CORBA可方便客戶和服務器之間的通信,通常運行在同一事務的客戶端和服務器端,它提供對跨網分布的非本地服務和資源進行透明存取,允許不同的構件以一致的方式進行訪問。C/S模式通常只有兩層結構,應用邏輯必須在客戶或服務器之間分配不同部分,若把應用邏輯從客戶和服務器中分離出來可形成三層結構,使應用邏輯獨立于用戶界面和系統(tǒng)數(shù)據。三層結構更加先進和靈活。
3.2.1 三層的客戶/服務器工作方式
(1)表示邏輯層,它是應用中直接面向用戶的部分,主要完成應用的前端界面處理,即人機界面處理;
(2)業(yè)務邏輯層,它實現(xiàn)應用的業(yè)務規(guī)則處理,決定程序的流程;
(3)數(shù)據庫邏輯層,它是應用中對數(shù)據進行管理的部分,主要完成應用對數(shù)據的存取、更新、管理等工作以及訪問數(shù)據的安全性、完整性、一致性;
(4)客戶端,建立與遠程服務器的連接??蛻魴C是系統(tǒng)中供用戶與服務器進行交互的部件,其主要工作是提供人機界面,完成人機交互,向服務器請求服務以及接收來自服務器的對請求的處理結果信息。
當客戶要使用服務器的服務時,它首先需要提供服務的對象引用。這里CORBA構件中的ORB通過代表客戶定位此對象并解開此對象引用的客戶請求。從而使客戶與服務器建立連接??蛻敉ㄟ^客戶端引用調用方法,就好像對象是本地客戶那樣。客戶端依此把請求通過命名服務傳遞給所得到的服務器端引用。
(5)服務器端,它具有同客戶端相同的特點。服務器負責有效地管理系統(tǒng)資源以及為客戶的資源請求提供服務,其主要工作是當多個客戶并發(fā)地請求服務器上相同的資源時,對這些資源進行最優(yōu)化處理,它的任務集中為數(shù)據庫訪問、文件共享、打印機等外設共享、通信服務。
服務器端為繼續(xù)與客戶端通信服務器代理,它通過讀入方法調用的參數(shù),產生對遠程服務實現(xiàn)對象調用,接收返回值,然后把返回值寫到客戶端。當客戶應用通過命名服務請求對象引用時,返回關于CORBA對象的引用。所返回的引用傳遞給此客戶端。
3.2.2 CORBA服務是CORBA的核心內容之一
這些服務支持分布對象的集成與互操作。它就好比操作系統(tǒng)中的控制面板。CORBA生來就是支持三層模型的,CORBA是C/S對象模型的自然擴展。CORBA和C/S結合后,借助CORBA提供的網絡透明性,可實現(xiàn)提供構件全部透明性的系統(tǒng)。該分布式計算系統(tǒng)能自動判定各PC性能,智能的分配任務,性能高的機器分配的任務數(shù)比較多,性能低的機器分配的任務數(shù)比較少,性能特別低的就不分配。通過合理分配任務能夠最大程度的減少運算時間,運算效率就提高了。
CORBA客戶端主要完成下列工作,首先對客戶請求信息進行入隊,然后對CORBA請求信息進行解析和組合,生成一個字符串對象參數(shù),最后調用CORBA服務端對象的實現(xiàn)操作。
CORBA服務端主要完成的工作是完成CORBA客戶端的調用操作,讀取相應數(shù)據庫的配置信息,建立相應數(shù)據庫的連接,對數(shù)據庫進行訪問操作,最后將數(shù)據庫結果集封裝成為自定義的信息格式。
3.2.3 以消息交換作為通信方式
客戶程序通過發(fā)送請求去調用由對象實現(xiàn)提供的服務??蛻舫绦蚩赏ㄟ^靜態(tài)調用或動態(tài)調用方式將請求發(fā)送給ORB內核,然后由ORB內核將請求轉發(fā)給對象實現(xiàn)。ORB屏蔽了客戶端發(fā)送請求與服務端接收請求的不同方式。從客戶程序的角度看,使用DSI的對象實現(xiàn)與使用IDL框架的對象實現(xiàn)行為相同,客戶程序不必提供特別的處理去與使用DSI的對象實現(xiàn)通信。對象實現(xiàn)框架的存在并不意味著一定要有客戶程序樁,客戶程序也可通過Dn發(fā)送請求。
(1)客戶通過業(yè)務服務器同數(shù)據庫服務器連接,可以共享與數(shù)據庫的連接,從而降低了運算資源的開銷,減輕了數(shù)據庫服務器的負擔,提高了性能。
(2)在分布式計算模型中引入CORBA技術,是因為CORBA技術提供了優(yōu)秀的跨平臺性,跨語言性,位置透明性等特性,為基于CORBA的應用屏蔽了復雜的異構環(huán)境,并且提供了大量可用的分布式服務如命名服務,事務服務等,從而使系統(tǒng)可以將更多的精力放在應用邏輯的實現(xiàn)上,系統(tǒng)的實現(xiàn)大為簡單。
本文介紹了基于CORBA的C/S分布式計算模型,在Client/Server計算模式上采用分布式對象技術和CORBA,CORBA是OMG提出的分布對象管理結構標準,它充分體現(xiàn)了良好的可互操作性、可遷移性和可重用性的要求,CORBA和C/S結合的新分布式計算將會有很好的應用前景。
[1]張樂.基于分布式CORBA的系統(tǒng)研究和實現(xiàn)[C].中國科學院信號與信息處理專業(yè),2007.
[2]譚海峰.分布式并行處理方法技術研究與系統(tǒng)平臺設計[碩士學位論文].北京:中國地質大學(北京),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]盧正鼎,李兵,肖衛(wèi)軍,李瑞軒.基于CORBA/XML的多數(shù)據庫系統(tǒng)研究與實現(xiàn)[J].計算機研究與發(fā)展,2004,39(4):443-449.
[5]張云勇,等.中間件技術原理與應用[M].北京:清華大學出版社,2004.
[6]邵堃,劉宗田.分布式計算環(huán)境的比較研究[J].計算機工程與應用,2001,13:26-29.