基於CORBA的分佈式程序設計(Advanced CORBA Distributed Programming)(五)

第三章 CORBA程序的編寫過程
3.1  開發CORBA的步驟
1. 定義一個IDL

2. 把IDL接口映射到C++

3. 開發server端

4. 開發client端

5. 運行名字服務,服務端 和客戶端

3.2 CORBA程序的工作流程
•  定義你的對象和方法:使用IDL

•  Client調用你定義的對象方法

•  調用被ORB傳遞到Server

•  Server真正調用你的方法

•  結果沿原路返回

3.3 工作流程的一些細節
3.3.1 啓動Server,等待來自Client的請求
Server啓動後,它首先生成一個POA(potable object adapter)。然後告訴POA他所能提供的服務,即Servant(Server按照IDL定義所實現的每個對象)。

Server從POA處得到每個Servant的引用OR(Object Reference,類似於句柄)。

Server把自己提供的服務公佈出來,這裏有兩個辦法:

將OR轉換爲一個字符串並輸出;

將這個OR綁定到一個簡單易理解的名字上,這通過Naming Service完成。

如圖所示:


圖3-1 Server啓動並註冊服務

3.3.2 Client調用被定義的對象方法
Client通過象Naming Service查詢獲得要訪問的對象的引用OR(object reference),或通過一個IOR字符串獲得;

Client通過這個引用調用對象的方法,因爲OR中有足夠的信息來定位一個對象;

這個調用被傳遞給ORB。

如圖所示:


圖3-2 一個Client發出請求

3.3.3 調用完成
Client端的調用請求通過ORB被傳遞給正確的Server端的ORB,定位是根據OR實現的;

這個ORB把調用請求交給真正的Server進行處理;

Server又根據OR定位產生這個OR的POA,並把請求傳給它;

POA又把請求傳給最後真正的Servant,完成調用並返回。

如圖所示:


圖3-3 Server對請求進行服務

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/helloworlder/archive/2003/07/02/20368.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章