- 相關推薦
PowerBuilder的分布式計算技術及其應用
PowerBuilder的分布式計算技術及其應用 浙江大學計算機系 梁榮華 浙江大學計算機系 史濟建 杭州電子工業學院計算機系 周其力摘要: 本文分析了客戶機/服務器的二級體系結構缺點與不足,介紹了客戶機/服務器的分布式計算體系結構的優點,重點論述了分布式計算體系結構在PowerBuider6中的實現,并給出了具體的應用實例,最后給出了結論。
關鍵詞:客戶機/服務器 分布式計算 二級體系結構 三級體系結構 客戶應用程序 服務器應用程序
引言
90年代,人們開發MIS系統大都采用客戶機/服務器結構,客戶機/服務器結構既是硬件結構又是軟件結構。即數據放在服務器上,程序在客戶機上。進行數據訪問時,由客戶機提出請求(一般是SQL語句),服務器執行并給出結果?蛻魴C/服務器對于優化了網絡,提高了系統的利用率。客戶機/服務器體系結構的發展經歷了從二級體系結構模式到三級體系結構模式。
1 二級體系結構模式
傳統的客戶機/服務器的模式是二級體系結構(Two-tier model)模式。結構圖如圖1
用戶界面與邏輯事務駐留在客戶計算機上,將大部分的數據存放在數據庫中,對數據的操作如查詢、修改等由客戶機提出請求,數據庫服務器完成并返回給客戶機結果,這種體系結構雖然可以系統的性能,但它們具有明顯的缺點:
缺乏安全性
在客戶機上存取敏感性數據時,由于邏輯事務放在服務器中,所以用戶可以訪問邏輯事務的核心部分,這使得未授權用戶容易侵入系統,有安全漏洞。
重的客戶機負荷
隨著客戶機要求處理的事務的數目增多,系統的任務日益繁重,導致系統的吞吐量下降,使得客戶機不能滿足系統的要求,當然可以買一臺更大的機器來替代舊的客戶機器,但在經濟方面不如買一臺機器來分擔客戶機的某些任務。
鑒于此,人們提出了三級體系結構模式(見圖2)。
2分布式計算體系結構
在該模式中,用戶界面保存在客戶端,事務邏輯保存在應用服務器中,數據保存在數據庫服務器中?蛻魴C只負責提供用戶界面,當需要進行數據訪問時或復雜計算時,客戶機向應用服務器發出請求,應用服務器響應客戶機的請求,完成復雜的計算或者向數據庫服務器發送SQL語句由數據庫服務器完成相應的數據操作,最后由應用服務器將結果返回給客戶機。該模式也稱三級體系結構模式,PowerBuilder對于該模式是支持的。需要說明的是,三級體系結構模式的三級是指邏輯上的三級(即用戶界面、事務邏輯、數據)而不是物理的三級。(具體見圖二)
對于二級模式,分布式計算體系結構提供了解決方式,分布式計算技術通過將用戶界面與事務邏輯分開,這使得未授權用戶很難侵入系統,保證了系統的安全性;同時由于客戶機只處理用戶界面,大量的事務處理在服務器應用程序實現,大大減輕了客戶機的負荷,使瘦客戶成為可能。
二、分布式應用的體系結構在PowerBuidler中的實現
分布式PowerBuilder 應用程序典型使用兩個應用程序,即服務器應用程序和客戶應用程序,分別在兩臺機器上實現。
服務器與客戶應用程序一起實現事務應用,客戶應用程序處理用戶界面,與用戶交互,服務器應用程序提供給客戶應用程序提供必要的數據包,應用程序對客戶應用程序透明。結構圖見圖3。
盡管服務應用通常提供數據包給客戶應用程序,但服務器應用程序本身也可以作客戶應用程序功能,換言之,服務器應用程序能作為客戶應用程序與另一服務器應用程序連結,這時,這個服務應用程序作為客戶應用程序與另一應用程序的中介等。
2.1服務器應用程序
服務器應用程序提供了兩個主要的組件:傳送對象(Transport object)、遠程對象(Remote object)。
傳送對象使之能為服務器應用程序收到客戶連接并處理客戶請求。
在分布式應用中,客戶能調用服務器提供的服務,通過遠程對象提供,一般地,一個遠程對象是一個NVO(nonvisual user object)-----不可視用戶對象,包含在遠程服務器上,一個客戶能調用遠程對象提供的功能,就好象他們被定義在本地的對象一樣,也就是說,客戶應用程序能調用遠程的對象,與同一臺計算機或另一臺網絡上的計算機各自執行程序完成某項功能,PowerBuiler對遠程對象的調用有同步與異步調用。當同步調用時,客戶等待直到服務器處理完成,當異步調用時,服務器只在自己的隊列中增加一個請求隊列,以后處理之,同時,客戶機去做其他的事情,直到服務器處理該請求。
2.2客戶端應用程序
客戶端應用程序有三個組件
用戶界面(user interface)
連接對象(Connection object)
遠程對象的類定義(remote object class definitions)
結構圖見圖5
用戶界面
客戶應用程序包含與用戶的交互,除此之外,客戶包含執行腳本,對于客戶采取的反應。例如,這些腳本能規定當用戶點了按紐會發生什么事件等。
連接對象
該對象提供了客戶應用程序連接到服務器應用程序,并要求服務.
遠程對象的類定義
每個服務器應用程序的遠程對象在客戶應在程序中有相關的類定義。遠程對象定義的本地的拷貝與服務器應在程序的定義有一個相同的名字,執行期間,本地定義的對象允許客戶訪問,就如遠程對象實例就象在本地一樣。
類定義在客戶應在程序中包含了遠程對象的完全或部分功能,Proxy(代理) 對象提供了遠程對象界面的表示,對分布式處理,只有Proxy對象在客戶應在程序是必須的。在客戶應在程序中,對象透明,當你在客戶應在程序利用遠程對象類定義,客戶端的定義與服務器端的定義一致?紤]到這兩個定義有相同的名字,PowerBuiler提供了這種透明技術。用這個類定義的變量能保持本地對實例的引用。執行時,你能初始化本地的對象或遠程對象,這依賴你的應用要求。
2.3通訊方式
PowerBuiler的分布式技術中支持以下幾個通訊協議
Winsock
在支持TCP/IP的網絡中,利用WINDOWS SOCKETS工具通訊。只要支持TCP/IP的網絡都可以用該方式。
Names pipes, 通過命名的管道進行通訊。
local, 指在分布式應用程序可在本地運行。
不同的運行平臺支持不同的通訊方式.
三、 應用程序舉例(PowerBuiler的實例)
在客戶機/服務器中,一個比較典型的例子是實現服務器推拉(Sever Push),客戶機請求服務器稱為
【PowerBuilder的分布式計算技術及其應用】相關文章:
分布式對象技術及其在Web上的應用03-18
談分布式防火墻技術及其應用03-18
分布式發電系統的應用及前景03-18
云計算技術在交通管理的應用論文06-30
關于分布式發電系統的應用及前景11-23
矩陣的分解及其應用03-07
EDA技術及其應用03-19