• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    CORBA的基本內容(上)

    發布: 2008-1-31 11:38 | 作者: 蘇洋 | 來源: 不詳 | 查看: 24次 | 進入軟件測試論壇討論

    領測軟件測試網 回顧上一講中在介紹CORBA體系結構時,曾強調CORBA在提高組件重用性、增強分布計算功能方面具有的突出特點:

      ● 引入中間件作為事務代理;

      ● 客戶程序與服務器程序完全分離;

      ● 與面向對象的建模概念相結合;

      ● 引入接口定義語言描述服務對象功能。

      CORBA規范只是描述了CORBA系統中各個構件的基本情況以及構件在系統中承擔的任務,并沒有從功能實現的細節上規定必須如何建立一個基于CORBA規范的軟件系統產品。這樣,對于基于CORBA的軟件產品開發而言,程序設計人員可以自由地選擇實現方式,但前提是遵循規范中各個構件的實現原則。在本講和下一講中,將詳細介紹CORBA中各個構件的主要內容。 對象請求代理(ORB)

      1. 對象請求代理(ORB,Object Request Broker)的作用

      在傳統的基于客戶機/服務器模式的應用程序開發過程中,項目開發人員遵循公開的標準或自由設計模塊間的協議,這樣的協議依賴于網絡類型、實現語言、應用方式等。引入ORB后,客戶只要遵循服務對象的對外接口標準向服務對象提出業務請求,由ORB在分布式對象間建立客戶-服務對象關系?偨Y起來,ORB的作用包括:

      ● 接受客戶發出的服務請求,完成請求在服務對象端的映射;

      ● 自動設定路由尋找服務對象;

      ● 提交客戶參數;

      ● 攜帶服務對象計算結果返回客戶端。

      

      圖1 客戶服務請求示意圖

      由圖1可以看出,客戶(Client)向服務對象的實現(Object Implementation)發出事務請求,其中客戶是欲對服務對象發出方法請求的實體,服務對象應包括該方法的數據資源以及實現代碼。對象請求代理的作用就在于定位服務對象,接收客戶發出的服務請求并將服務對象的執行結果返回給客戶。請求發出后,客戶對象采用輪詢等方式以獲取服務對象計算的結果。

      2. ORB的結構及類型

      ORB通過一系列接口和接口定義中說明的要實現操作的類型,確定提供的服務和實現客戶與服務對象通信的方式。通過IDL接口定義、接口庫或適配器(Adapter)的協調,ORB可以向客戶機和具備服務功能的對象實現(Object Implementation)提供服務。作為CORBA體系結構的核心,ORB可以實現如下三種類型的接口:

      ● 對于所有的ORB實現具有相同的操作;

      ● 針對特定類型對象的操作;

      ● 與對象實現類型有關的操作。

      基于ORB實現的不同類型接口,一個客戶端請求可以同時訪問多個由不同ORB實現通信管理的對象引用。在實際應用中,只要遵循公共的ORB體系結構,程序設計可以選擇ORB的多種實現方式,其中包括:

      (1)客戶和實現駐留(Client-Implementation Resident)ORB:采用駐留在客戶和服務對象實現程序的方式實現ORB。在這種實現方式下,客戶端可以通過樁(Stub)程序,以位置透明的方式向具體的實現對象提出服務請求,實現客戶與服務對象的通信。

      (2)基于服務(Server-based)ORB:客戶對象和實現對象均可以與一個或多個服務對象進行通信,服務對象的功能是將請求從客戶端發送到對象實現。在這種方式中,ORB的作用是完成客戶對象與實現對象的通信,為對象之間的交互提供服務。

      (3)基于系統(System-based)ORB:在這種實現方式中,ORB被操作系統認為是系統所提供的一項基本服務。由于操作系統了解調用方與服務對象的位置,因而可以充分地實現ORB功能的優化。

      (4)基于庫(Library-based)ORB:如果認為對象實現可以共享,則可以將實現功能放入實現庫(Implementation Repository)中,從而創建基于庫的ORB。

      3. ORB中的主要方法

      客戶端和服務對象端均可以自由選擇使用ORB對象中定義的方法來實現操作。下面舉例說明ORB對象中的重要方法: (1)ORB ORB_init(inout arg_list argv,in ORBid orb_identifier)

      作用:ORB初始化方法。

      (2)String object_to_string(in Object obj)

      作用: 將對對象的引用轉換成客戶可以用字符串方式存儲的對象信息。

      (3)Object string_to_object(in String str)

      作用:上述方法的逆過程。將以字符串方式存儲的對象轉換成對對象類型的引用。

      (4)Object resolve_initial_references(in ObjectID identifier)

      作用:獲取初始對象引用。

      (5)Policy get_policy(in PolicyType policy_type)

      作用:返回指定類型的服務策略對象。

      作為公共對象請求代理體系結構中的核心內容,ORB提供了相當豐富的方法。讀者可以查閱相關資料詳細了解ORB中的方法。

      4. 服務請求的實現方式

      關于對象請求的實現方式,CORBA規范中定義客戶程序可以用動態調用接口(DII,Dynamic Invocation Interface)方式或通過OMG IDL文件經編譯后在客戶端生成的樁(Stub)方式提出服務請求。這兩種實現方式的區別在于通過OMG IDL樁(Stub)文件方式實現的調用請求中,客戶能夠訪問的服務對象方法取決于服務對象所支持的接口;而動態調用接口調用方式則與服務對象的接口無關。盡管實現調用請求的方式有所區別,但客戶發出的請求服務調用的語義是相同的,服務對象不去分析服務請求提出的方式。

      ORB通過IDL客戶樁(Stub)方式或動態調用接口(DII)方式定位服務對象的實現代碼、傳遞服務對象應用參數以及完成對請求傳送方式的控制。服務對象的實現(Object Implementation)通過對象適配器(Object Adapter)提供對客戶請求的服務?蛻魧Ψ⻊掌鞫朔椒ǖ恼{用方式見圖2。

      

      圖2 客戶調用服務請求的實現方式

      從以上對服務請求調用方式的分析可以看出: 服務對象接口的定義在整個CORBA系統服務功能的實現中起著相當重要的作用。那么如何實現服務對象的功能接口呢?CORBA規范中定義了兩種接口實現方式:第一種形式是利用OMG IDL接口定義語言對接口進行描述。IDL語言有詳細的語法規則(講座將在第五講對該語言的語法規則進行詳細講解)。這樣,經過對所實現功能的系統分析,利用IDL,依據服務對象可能實現的服務以及服務中需要的參數,對接口進行定義。另外一種方式是將接口放入接口倉庫(Interface Repository)中,在運行期間對接口庫中的接口進行訪問。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: CORBA


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>