第三章 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