290 likes | 470 Views
CORBA 簡介. Agenda. Distributed Object Computing CORBA 概念 CORBA 運作流程 CORBA 的未來 結論 Q&A. Distributed Object Computing. 資訊處理的演進:由主從架構到分散式物件計算 ( Distributed Object Computing) 單階層式資訊處理架構 ( One Tier Architecture) 單機式資訊處理架構 ( Host-based Processing Model) 二階層式架構 ( Two Tier Architecutre)
E N D
Agenda • Distributed Object Computing • CORBA概念 • CORBA運作流程 • CORBA的未來 • 結論 • Q&A
Distributed Object Computing • 資訊處理的演進:由主從架構到分散式物件計算 (Distributed Object Computing) • 單階層式資訊處理架構 (One Tier Architecture) • 單機式資訊處理架構 (Host-based Processing Model) • 二階層式架構 (Two Tier Architecutre) • 主從式架構 (Client/Server Model) • 三階層式架構 (Three Tier Architecture) (見圖) • 交易處理監視器 (TP Monitor Model) • CORBA
3-Tier Client/Server Overview IBM Compatible User Services Tier Business Services Tier Component Component Component Component Component Component Component Component Component Component Business Services Tier Data Services Tier Database Database Database Minicomputer Mainframe Internet Distributed Object Computing
Distributed Object Computing • 元件軟體 (Component Software) 工業 • 物件封裝隱藏物件內容促使物件自主化 • 標準物件界面促使界面與物件實體 (Implementation) 彼此獨立 • 軟體元件的重用 (Reuse) • CORBA 提供元件軟體工業良好的基礎環境 • CORBA 2.4 Oct. 2000 • CORBA 2.0 規範 (OMG 95a) • CORBA 共通服務規範 (OMG 95b) - COSS
CORBA 概念 • Object Management Architecture • 物件請求仲裁者 (ORB) • 界面定義語言(IDL)與界面儲存器(IR) • CORBA 共通物件服務規格 (COSS) • 對外聯絡的橋樑 – Interoperability
Object Management Architecture • 由OMG所提出 • 物件管理架構 (Object Management Architecture) 包括 • 物件請求仲裁者 (Object Request Broker, ORB) • 共通物件服務 (Common Object Services, COS) • 共通設施 (Common Facilities, CFA) • 應用程式物件(Application Objects)
Application Objects Client Object Implementation Object Request Broker (ORB) Common Facilities Common Object Services (CFA) (COSS) Object Management Architecture
Object Request Broker (ORB) • ORB 可視為一種軟體的匯流排 (software bus) • ORB 連接不同的物件,並隱藏了下列幾點: • 物件位置 • 物件實作 • 物件執行狀態 • 物件通訊機制 • 各廠商只要遵循 ORB 對外的界面標準,至於內部可以由各廠商自行決定實作 ORB 的方法。
Object Request Broker (ORB) • Client可以由下列幾種方法得到物件參考 • Object Creation • 透過叫用(invoke) creation request來啟動一物件,這類物件叫作”factory objects”,一個建立要求會傳回一個最近建立的物件參考到client。 • Directory Service • client可以叫用某些種類的服務如Naming Service及Trader Service,允許client根據物件名稱或性質得到物件參考。不像factory objects,那些服務不會建立一個新物件。 • Convert to String and Back • 一個應用程式可以要求ORB傳回一個由物件參考轉成的字串,稍後這個字串可以從永久的儲存體取出並被ORB轉回物件參考
IDL & IR • 為了能夠用唯一的方式描述一個物件的界面 (Interface) CORBA 提供了一個界面定義語言 (IDL) • 透過一致的界面定義,使物件的界面 (Interface) 與物件的實體 (Implementation) 可以獨立開來 • 為了能夠動態地查詢物件的界面,CORBA 提供了一個界面儲存器 (Interface Repository) • 程式開發者在選定使用 CORBA 的語言後,可以經由適當的 IDL 編譯器將 IDL 轉換成該語言
Interface Definition Language • Module <identifier>{ <type declarations>; <constant declarations>; <exception declarations>; interface <identifier> [: <inheritance> ] { <type declarations>; <constant declarations>; <attribute declarations>; <exception declarations>; [<op_type>] <identifier> ( <parameters> ) [raises exception] [context]; } interface <identifier> [: <inheritance> ] :}
Client Code Client Stub C++ Compiler IDL Compiler IDL Spec. IDL C++ Class C++ Compiler Implementation Skeleton Object Implementation IDL & IR
共通物件服務規範 (Common Object Service Spec.) 定訂了許多系統層級的元件 (system-level components) 這些元件並不屬於任何特殊的應用場合,而是可以彼此合作共同幫助開發上層(application-level) 的元件軟體 Collection Service Concurrency Service Event Service Externalization Service Licensing Service Life Cycle Service Naming Service Notification Service Persistent Object Service Property Service Query Service Relationship Service Security Service Time Service Trading Object Service Transaction Service 共通物件服務規格 (COSS)
對外聯絡的橋樑 Interoperability • 在同一個 ORB 上的物件彼此可以溝通,不同的 ORB ? • ORB 需要橋接的時機 • 由於各廠商 ORB 的實作不同,因此底層的 ORB 並不能互相溝通 • 對於非 CORBA 平台的物件環境,如微軟的 COM • 對於非物件環境,如 OSF/DCE • 目前 CORBA 2.0 對外連接的標準有 • IIOP • DCE ESIOP • GIOP • CORBA/COM
Client Server Logical client to server operation request Bridge (DII) DSI (DII) services services ORB ORB 對外聯絡的橋樑 Interoperability
CORBA 運作流程 • Register • Static Invocation • Stub • Skeleton • Dynamic Invocation • Implementation Repository
Stub and Skeleton • 透過Stub及Skeleton的分派(Dispatch)通常叫做Static Invocation。 • Stub • 稱代理者(proxy)。Stub直接在client端的ORB做包裝(marshal)要求的工作,那就是說stub幫助要求從程式語言表示法轉成適合在網路上轉輸的型式。 • Skeleton • unmarshal要求,從轉輸型式轉成程式語言型式且分派它到物件。一但物件完成要求,若有回應則順著原來的路線送回。
Dynamic Invocation • Dynamic Invocation Interface (DII) • 支援動態的client要求叫用 • Synchronous Invocation • Deferred Synchronous Invocation • One-Way Invocation • Dynamic Skeleton Interface (DSI) • 支援動態分派物件 • DII允許client不用存取靜態stub便可叫用要求,而DSI允許server不用將叫用靜態地編譯進程式裏便可被寫成。
CORBA的未來 • The specifications included in the designation CORBA 3 divide neatly into three major categories: • Internet Integration • Firewall Specification • Interoperable Name Service • Quality of Service Control • Asynchronous Messaging and Quality of Service Control • Minimum, Fault-Tolerant, and Real-Time CORBA
CORBA的未來 • The CORBAcomponent architecture • CORBAcomponents and CORBAscripting • A container environment that packages transactionality, security, and persistence, and provides interface and event resolution • Integration with Enterprise JavaBeans • A software distribution format that enables a CORBAcomponent software marketplace.
結論 • CORBA提供了一個彈性的通訊及活動在分散式異質物件導向計算環境中,它有下列的優點。 • Heterogeneity • Object Model • Legacy Integration • Object-Oriented Approach • Load-Balance • 由於CORBA的能力及彈性,使其服務在一致的基礎建設上,所以我們可以把焦點擺在提供較高層次的問題之穩固解決方案,而不用在意它是如何工作在我們的分散式異質環境。
結論 • 重視Interface概念 • 以IDL所建立的元件,很容易抽換更新,彈性大