




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PowerBuilder的分布式計算技術及其應用 摘要: 本文分析了客戶機/服務器的二級體系結構缺點與不足,介紹了客戶機/服務器的分布式計算體系結構的優點,重點論述了分布式計算體系結構在PowerBuider6中的實現,并給出了具體的應用實例,最后給出了結論。關鍵詞:客戶機/服務器 分布式計算 二級體系結構 三級體系結構 客戶應用程序 服務器應用程序 引言 90年代,人們開發MIS系統大都采用客戶機/服務器結構,客戶機/服務器結構既是硬件結構又是軟件結構。即數據放在服務器上,程
2、序在客戶機上。進行數據訪問時,由客戶機提出請求(一般是SQL語句),服務器執行并給出結果。客戶機/服務器對于優化了網絡,提高了系統的利用率。客戶機/服務器體系結構的發展經歷了從二級體系結構模式到三級體系結構模式。1 二級體系結構模式傳統的客戶機/服務器的模式是二級體系結構(Two-tier model)模式。結構圖如圖1用戶界面與邏輯事務駐留在客戶計算機上,將大部分的數據存放在數據庫中,對數據的操作如查詢、修改等由客戶機提出請求,數據庫服務器完成并返回給客戶機結果,這種體系結構雖然可以系統的性能,但它們具有明顯的缺點:缺乏安全性 在客戶機上存取敏感性數據時,由于邏輯事務放在服務器中,所以用戶可
3、以訪問邏輯事務的核心部分,這使得未授權用戶容易侵入系統,有安全漏洞。重的客戶機負荷 隨著客戶機要求處理的事務的數目增多,系統的任務日益繁重,導致系統的吞吐量下降,使得客戶機不能滿足系統的要求,當然可以買一臺更大的機器來替代舊的客戶機器,但在經濟方面不如買一臺機器來分擔客戶機的某些任務。鑒于此,人們提出了三級體系結構模式(見圖2)。2分布式計算體系結構在該模式中,用戶界面保存在客戶端,事務邏輯保存在應用服務器中,數據保存在數據庫服務器中。客戶機只負責提供用戶界面,當需要進行數據訪問時或復雜計算時,客戶機向應用服務器發出請求,應用服務器響應客戶機的請求,完成復雜的計算或者向數據庫服務器發送SQL語
4、句由數據庫服務器完成相應的數據操作,最后由應用服務器將結果返回給客戶機。該模式也稱三級體系結構模式,PowerBuilder對于該模式是支持的。需要說明的是,三級體系結構模式的三級是指邏輯上的三級(即用戶界面、事務邏輯、數據)而不是物理的三級。(具體見圖二)對于二級模式,分布式計算體系結構提供了解決方式,分布式計算技術通過將用戶界面與事務邏輯分開,這使得未授權用戶很難侵入系統,保證了系統的安全性;同時由于客戶機只處理用戶界面,大量的事務處理在服務器應用程序實現,大大減輕了客戶機的負荷,使瘦客戶成為可能。二、分布式應用的體系結構在PowerBuidler中的實現分布式PowerBuilder 應
5、用程序典型使用兩個應用程序,即服務器應用程序和客戶應用程序,分別在兩臺機器上實現。服務器與客戶應用程序一起實現事務應用,客戶應用程序處理用戶界面,與用戶交互,服務器應用程序提供給客戶應用程序提供必要的數據包,應用程序對客戶應用程序透明。結構圖見圖3。盡管服務應用通常提供數據包給客戶應用程序,但服務器應用程序本身也可以作客戶應用程序功能,換言之,服務器應用程序能作為客戶應用程序與另一服務器應用程序連結,這時,這個服務應用程序作為客戶應用程序與另一應用程序的中介等。2.1服務器應用程序服務器應用程序提供了兩個主要的組件:傳送對象(Transport object)、遠程對象(Remote obje
6、ct)。傳送對象使之能為服務器應用程序收到客戶連接并處理客戶請求。在分布式應用中,客戶能調用服務器提供的服務,通過遠程對象提供,一般地,一個遠程對象是一個NVO(nonvisual user object)-不可視用戶對象,包含在遠程服務器上,一個客戶能調用遠程對象提供的功能,就好象他們被定義在本地的對象一樣,也就是說,客戶應用程序能調用遠程的對象,與同一臺計算機或另一臺網絡上的計算機各自執行程序完成某項功能,PowerBuiler對遠程對象的調用有同步與異步調用。當同步調用時,客戶等待直到服務器處理完成,當異步調用時,服務器只在自己的隊列中增加一個請求隊列,以后處理之,同時,客戶機去做其他的
7、事情,直到服務器處理該請求。2.2客戶端應用程序客戶端應用程序有三個組件用戶界面(user interface) 連接對象(Connection object) 遠程對象的類定義(remote object class definitions) 結構圖見圖5 用戶界面 客戶應用程序包含與用戶的交互,除此之外,客戶包含執行腳本,對于客戶采取的反應。例如,這些腳本能規定當用戶點了按紐會發生什么事件等。連接對象 該對象提供了客戶應用程序連接到服務器應用程序,并要求服務.遠程對象的類定義 每個服務器應用程序的遠程對象在客戶應在程序中有相關的類定義。遠程對象定義的本地的拷貝與服務器應在程序的定義有一個相
8、同的名字,執行期間,本地定義的對象允許客戶訪問,就如遠程對象實例就象在本地一樣。類定義在客戶應在程序中包含了遠程對象的完全或部分功能,Proxy(代理) 對象提供了遠程對象界面的表示,對分布式處理,只有Proxy對象在客戶應在程序是必須的。在客戶應在程序中,對象透明,當你在客戶應在程序利用遠程對象類定義,客戶端的定義與服務器端的定義一致。考慮到這兩個定義有相同的名字,PowerBuiler提供了這種透明技術。用這個類定義的變量能保持本地對實例的引用。執行時,你能初始化本地的對象或遠程對象,這依賴你的應用要求。2.3通訊方式PowerBuiler的分布式技術中支持以下幾個通訊協議Winsock
9、在支持TCP/IP的網絡中,利用WINDOWS SOCKETS工具通訊。只要支持TCP/IP的網絡都可以用該方式。Names pipes, 通過命名的管道進行通訊。 local, 指在分布式應用程序可在本地運行。 不同的運行平臺支持不同的通訊方式.三、 應用程序舉例(PowerBuiler的實例)在客戶機/服務器中,一個比較典型的例子是實現服務器推拉(Sever Push),客戶機請求服務器稱為拉,服務器響應客戶機請求并將消息發回給客戶機稱為推。本例子功能是這樣的,由客戶機應用程序向服務器應用程序發出請求(為簡單起見,請求服務是一條消息),服務器應用程序收到消息后,做一些數據處理或其他的工作,
10、完成之后,給客戶機應用程序返回一條消息告知請求服務完成。本例子代碼解釋如下:首先建立即兩個NVO,一個是Uo_Custdata, 一個是Uo_response_Object, 在 Uo_response_object中,有一個用戶對象函數Doneprocessing(),該函數執行一個提示窗口,給客戶機發布消息,說明處理數據完畢。在Uo_Custdata中建立一個處理數據的函數process_data,其參數包含Uo_response_Object。將包含該用戶對象的文件編譯成proxy,如a.pbl在客戶應用程序中包含a.pbl即可。在客戶機應用程序中,先建立connection對象,定義c
11、onnection的屬性,然后創建 remote object(用Create Instance),本例子是Uo_Custdata,再調用remote object的一個函數(也就是process_data);在服務器應用程序中,先建立transport對象,定義transport對象的屬性,然后等待客戶提出請求(用listen函數)。源程序如下:/ -客戶機應用程序/定義connectionconnection myconnect long ll_rc /用Create建立實例myconnect = create connection /設置Connect屬性myconnect.driver
12、 = "WinSock" myconnect.application = "70000" myconnect.location = "server01" ll_rc = myconnect.ConnectToSe ver() IF ll_rc <> 0 THEN MessageBox(“警告”,"連結錯誤") END If/ 調用remote object(服務器應用程序提供)/ Mycustdata 是服務器應用程序的NVO,將包含該user object的文件編譯成/proxy,在客戶應用程序中包含
13、proxy的pbl文件。Uo_custdata MycustdataUo_response_object Myresponseobject.Myconnect.createInstance(Mycustdata)Myresponceobject=Create.Uo_response_objectMycustdata.post process_data(Myresponceobject)/ -用戶對象/ uo_custdata的函數process_data參數:Uo_response_object.responceobject./做一些數據處理的工作給客戶發布消息,說明處理數據完畢Responc
14、eobject.post Doneprocessing()/ Uo_response_object 的函數DoneprocessingMessagebox(“提示”,“處理完畢”); /-服務器應用程序TransPort myTransPort/建立transport對象myTransProt=create TransPort/定義transport對象的屬性,myTransPort.Driver='WinSock'myTransPort.application='70000'/然后等待客戶提出請求。MyTransPort.listen()當然,在基于一般中大型
15、數據庫系統,基于WEB方式體系統結構,客戶應用程序對于數據庫的操作都可以用通過應用服務器程序,這樣客戶程序就很瘦了,不需要安裝如Open Client之類的軟件;另外,應用服務器程序可同時運行在幾臺計算機上,它對于系統的安全性,平衡網絡負載都具有重要的現實意義,在PowerBuilder中都是能實現的。四、結論PowerBuider5就已經提出了分布式計算技術,但使用起來較為煩瑣,這主要表現在編寫Proxy,PowerBuilder6 通過程序直接編譯成proxy,并且功能增強了許多,使分布式計算技術更為方便,剛出來的PowerBuider更為方便、完善,這對于解決網絡瓶頸,優化網絡具有重大的現實意義。參考文獻1.Simmon Gallegher 、simmon Herbert PowerBuilder6.0程序設計大全 機械工業出版社 1998、82.鐘虎林等新一代客戶機/服務器體系結構計算機系統應用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一活動自主策劃方案
- 六一童鞋打折活動方案
- 六一職工親子活動方案
- 六一資助活動方案
- 六一造勢活動方案
- 六下數學教研活動方案
- 六安幼兒園家長活動方案
- 醫療設備制度考試試題及答案
- 一模考試試題及答案美術
- 安全生產常識試題及答案
- 2025年黑龍江、吉林、遼寧、內蒙古高考生物真題試卷(解析版)
- 2025年藝術與數字藝術類事業單位招聘考試綜合類專業能力測試試卷
- 福建省泉州市晉江市2025屆數學七下期末調研試題含解析
- 山西省運城市2025年中考一模語文試題(含答案)
- 電影放映員試題及答案
- 青科綜評面試真題及答案
- 2023年貴州省糧食儲備集團有限公司面向社會公開招聘工作人員15人筆試參考題庫附帶答案詳解
- 痘痘專業知識課件圖
- 超星爾雅學習通《國家安全教育(中國人民公安大學)》2025章節測試附答案
- 艾梅乙防治知識培訓課件
- 胸腔穿刺術護理查房
評論
0/150
提交評論