首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

深入理解 CORBA:物件請求代理器架構與核心機制

     編輯:Java 相關知識

CORBA 架構概覽

由物件管理群組(OMG)制定的物件互操作規範,通稱為「物件管理架構」(Object Management Architecture,OMA)。OMA 定義了兩大核心組件:「核心物件模型」(Core Object Model)與「OMA 參考架構」(OMA Reference Model)。參考架構定義了一套基礎服務結構與機制,實現了物件之間的互操作能力,主要包含三大支柱:物件請求代理器(Object Request Broker,ORB)、物件服務(Object Services,亦稱 CORBAservices)以及通用機制。

ORB:分散式系統的通訊總線

ORB 是物件間相互請求的通訊總線。發起請求時,無需關心對方的物理位置。這意味著在客戶端代碼中看似一次簡單的方法調用,實際上是極為複雜的操作:首先必須建立與伺服器物件的連接路徑,ORB 需知曉實現伺服器的代碼存放位置;連接建立後,需對方法參數進行「封送」(Marshaling),例如轉換為二進制流以便網路傳輸;還需傳遞伺服器機器名稱、進程標識及物件標識等資訊;最後透過低層線路協議傳遞,伺服器端解碼後執行調用。ORB 將這些複雜操作對程式設計師隱藏,使遠程調用幾乎與本地物件方法調用一樣簡單。

IDL:跨語言介面定義語言

CORBA 為了語言透明性而設計:客戶端物件可調用不同語言實現的伺服器物件方法。客戶端必須預先知道伺服器物件揭露的方法名稱與簽名,這時便需要介面定義語言(Interface Definition Language,IDL)。CORBA IDL 是一種與語言無關的設計方法,可指定資料類型、屬性、操作、介面等。其語法類似 C++ 或 Java。IDL 支援繼承概念,同樣使用冒號運算子。程式設計師編寫 IDL 描述後,由廠商提供的 IDL/Java 編譯器編譯,生成相應的 Java 代碼,包含與 IDL 等價的 Java 原始碼、封送方法參數的代碼,以及發出遠程調用的「存根與骨架」(Stub and Skeleton)代碼,通常組織為同一個 Java 套件。

命名服務:物件引用的電話簿

命名服務屬於 CORBA 基礎服務之一。CORBA 物件透過引用訪問,引用本身難以理解,但可為其分配程式設計師定義的字串名稱,此過程稱為「引用的字串化」。命名服務專門執行「字串到物件」與「物件到字串」的轉換與映射,扮演伺服器與客戶端均可查詢操作的「電話簿」角色,作為獨立進程運行。創建「物件到字串」映射稱為「綁定物件」;刪除映射稱為「取消綁定」;讓物件引用傳遞字串稱為「解析名稱」。伺服器啟動時創建物件並綁定至命名服務,客戶端獲取引用、解析字串名,再透過引用發出調用。命名服務規範屬於 CORBA 一部分,但具體實現由 ORB 廠商提供,不同廠商的訪問方式可能有所差異。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved