欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

CORBA的基本內容(下)

系統 2523 0

CORBA的基本內容(下)

(本文轉載自軟件工程專家網 www.21cmm.com

蘇洋

接口倉庫

  CORBA引入接口倉庫(Interface Repository)的目的在于使服務對象能夠提供持久的對象服務。將接口信息存入接口倉庫后,如果客戶端應用提交動態調用請求(Dynamic Invocation),ORB可以根據接口倉庫中的接口信息及分布環境下數據對象的描述,獲取請求調用所需的信息。接口倉庫作為CORBA系統的組成部分,管理和提供到OMG IDL映射接口定義的訪問。接口倉庫中信息的重要作用是連接各個ORB,當請求將對象從一個ORB傳遞給另一個ORB時,接收端ORB需要創建一個新對象來代表所傳遞的對象,這就需要在接收端ORB的接口倉庫中匹配接口信息。通過從服務請求端ORB的接口倉庫中獲得接口標識,就可以在接收端的接口倉庫中匹配到該接口。

  接口倉庫由一組接口倉庫對象組成,代表接口倉庫中的接口信息。接口倉庫提供各種操作來完成接口的尋址、管理等功能。在實現過程中,可以選擇對象永久存在還是引用時再創建等方式。

  在接口倉庫的實現形式中,接口倉庫中對象定義的形式是公開的,庫中對象定義的信息可以供客戶端和服務端使用。應用程序開發人員可以在如下方面使用接口功能:
  ● 管理接口定義的安裝和部署;
  ● 提供到高級語言編譯環境的接口信息;
  ● 提供終端用戶環境的組件。

1、接口倉庫的管理

  接口倉庫包含對象請求調用時所需的對象信息。一旦信息裝入庫中,客戶端存根(Stub)程序就依賴接口倉庫提供對象的信息,因此,必須選擇相應的策略以保證接口倉庫中信息的一致性和完整性。

  接口倉庫中內容的一致性通常表現為一組有效的OMG IDL定義。由于在接口加載過程中通信延遲等原因,有可能導致接口名字沖突或方法定義沖突等問題。在分布式環境下,為了解決這種問題,通常采用復制技術來增加接口信息的一致性和可用性。另外,接口倉庫對象通常采用服務對象定義的事務處理和并發控制方法來完成對接口倉庫的更新。

2、接口倉庫對象

  接口倉庫對象提供的特征及方法取決于具體的CORBA產品,開發人員應視產品的不同選擇使用。在接口倉庫中包括如下對象,各對象提供相應的方法用于管理接口倉庫中的對象信息:
  ● Repository:表示接口倉庫細節;
  ● ModuleOf:模塊定義對象;
  ● InterfaceOf:接口定義對象;
  ● ValueOf:值類型定義;
  ● ExceptionOf: 由操作引發異常的定義。

對象適配器

  對象適配器(Object Adapter)是為服務對象端管理對象引用和實現而引入的。CORBA規范中要求系統實現時必須有一種對象適配器。對象適配器完成如下功能:
  ● 生成并解釋對象的引用,把客戶端的對象引用映射到服務對象的功能中;
  ● 激活或撤消對象的實現;
  ● 注冊服務功能的實現;
  ● 確保對象引用的安全性;
  ● 完成對服務對象方法的調用。

  作為CORBA設計中常用的對象適配器——基本對象適配器(BOA,Basic Object Adapter),在分布式應用程序設計中是必要的元素。ORB將服務請求的參數及操作控制權傳遞給BOA,由BOA將執行結果返回給ORB。BOA用服務對象骨架(Skeleton)將ORB和對象實現中的方法聯系在一起,服務對象骨架中相應的方法將對BOA方法的請求調用映射為服務對象中的方法。調用請求過程中BOA的作用如圖1所示。

動態調用接口

  動態調用接口(DIID,Dynamic Invacation Interface)允許在客戶端動態創建和調用對服務對象的請求。一個請求包括對象引用、操作和參數列表。其中參數列表的定義如下:
  typedef unsigned long Flags;
  struct NamedValue
  { Identifier name;
  Any arguments;
  Long len;
  Flags arg_modes;}
  其中name表示傳遞的參數名;arguments表示傳遞的參數;len表示參數長度;arg_modes代表參數模式標識。

  動態調用請求操作包括豐富的方法,下面就有關動態請求的相應方法進行簡單介紹:
1. void create_request( in Context ctx;
  in Identifier operation;
  in NVList arg_list;
  inout NamedValue result;
  out Request request;
  in Flags req_flags;
  )
  作用:創建動態請求;
  方法參數: 該方法中包含的參數依次為操作中使用的context對象、對象的操作類型、操作中使用的參數、方法結果、返回的調用請求和請求中使用的標志。

2. void get_response() raises (WrongTransaction)
  作用: 返回請求執行的結果。調用該方法后將一直等待直到請求方法完成。

3. void get_next_response( RequestSeq* & ) raises ( WrongTransaction )
  作用:返回完成的下一個請求;
  方法參數:對象請求序列標識。

上下文對象

  上下文對象(Context)包含客戶機、運行環境或者在請求中沒有作為參數進行傳遞的信息,上下文對象是一組由標識符和相應字符串對構成的列表,程序設計人員可以用定義在上下文接口上的操作來創建和操作上下文對象。

  上下文對象可以以永久或臨時方式存儲,客戶機應用程序用上下文對象來獲取運行環境;而ORB用上下文對象中的信息來決定服務器的定位及被請求方法激活。下面介紹上下文對象中的方法:

1. void get_default_context(out Context ctx)
  作用:創建上下文對象;
  方法參數:獲得的上下文對象。

2. void get_values( in Identifier start_scope,
  in Flags op_flags,
  in Identifier prop_name,
  out NVList values )
  作用:返回上下文對象中的特征值;
  返回類型:返回特征值;
  方法參數:start_scope為搜索范圍標識;op_flags為操作標志;prop_name為特征名;values為相應的特征值。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2312


CORBA的基本內容(下)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品久久九九热 | 国产大片免费天天看 | 久热精品视频在线播放 | 爱性久久久久久久 | 最近免费日本视频在线 | 18sexvideo | 久久国产精品免费一区二区三区 | 国产福利视频一区美女 | 亚洲综合色网站 | 黄网站免费在线 | 一级做a爰片久久毛片唾 | 日韩av不卡在线 | 欧美黄色一区 | 日本一区二区三区免费观看 | 色男人天堂 | 91av大片| 亚洲欧美成人综合在线 | 欧洲精品在线观看 | www.中文字幕在线观看 | 亚洲欧洲精品成人久久曰影片 | 欧美成人在线免费观看 | 天天躁天天碰天天看 | 色爱阁 | 性色欧美 | 成人免费在线视频网站 | 国产欧美一区二区三区另类精品 | 久久亚洲最大成人网4438 | 久久久精品午夜免费不卡 | 国产99一区二区 | 欧美成人在线免费观看 | 欧美两性人xxxx高清免费 | 国产亚洲欧美日本一二三本道 | 亚洲日韩aⅴ在线视频 | 精品国产视频 | 久久久这里有精品999 | 爱婷婷网站在线观看 | 国产精品一二三 | 国产精品久久久久一区二区 | 成人在线日韩 | 久久精品视香蕉蕉er大臿蕉 | 欧美 日韩 中文字幕 |