170 likes | 302 Views
CORBA (Common Object Request Broker Architechture). Aniket Prabhune Varun Saini Balaprasuna Chennupati Lally Singh. CORBA. Day1: Aniket : Introduction, OMA, ORB Core, OMG IDL, IDL Stubs and Skeletons Varun : Interface Repository, Dynamic Invocation and Dispatch (DII, DSI) Day2:
E N D
CORBA (Common Object Request Broker Architechture) • Aniket Prabhune • Varun Saini • Balaprasuna Chennupati • Lally Singh
CORBA • Day1: • Aniket : Introduction, OMA, ORB Core, OMG IDL, IDL Stubs and Skeletons • Varun : Interface Repository, Dynamic Invocation and Dispatch (DII, DSI) • Day2: • Prasuna : Object Adapters, Inter-ORB protocols (IIOP/GIOP), Services (Event, Naming, Trading, Transaction) • Lally: COM vs CORBA, QoS, Examples and Applications
CORBA • Heterogeneous and Open Systems • Engineering tradeoffs • Cost Effectiveness • Legacy Systems • Need for integrating diverse applications within Distributed heterogeneous environments [SV97]
OMG (Object Management Group) • Formed in 1989 to develop, adopt and promote standards for the development and deployment of applications in distributed heterogeneous environments. • Largest software consortium in world with 800 + developers, vendors and end users on member list • CORBA – Industry Standard for open distributed processing [SV97]
OMA (Object Management Architecture) • Object Model and Reference Model • Object Model • Defines how objects distributed across a heterogeneous environment can be described • Object is an encapsulated entity with a distinct immutable identity whose services can be accessed only through well defined interfaces • Object References [SV97]
OMA Reference Model • Characterizes the interactions between the objects • Interface Categories in OMA Reference Model Application Interfaces Domain Interfaces Object Request Broker Object Services [ACP99]
OMA Object Frameworks AI OS DI DI AI ORB DI AI OS OS AI = Application Interface OS = Object Service DI = Domain Interface ORB = Object Request Broker [ACP99]
Features of CORBA: • ORB Core • OMG Interface Definition Language • Language Mappings • Stubs and Skeletons • Interface Repository • Dynamic Invocation and Dispatch • Object Adapters • Inter-ORB protocols • Services [SV97]
Relation between features: Client Application Server Application Static Stub ORB Interface ORB Interface Sktn DSI OA DII n/w Server ORB Core Client ORB Core IDL Dependant Same for all applications Multiple OAs [ACP99]
ORB Core • Deliver request to target object • Return response to the clients • Transparent Client/Object Communication • Object Location • Object implementation • Object Execution State • Object communication mechanism [SV97]
IDL (Interface Definition Language) • Interfaces are defined in the OMG IDL • Language-Independent declarative language • eg: // OMG IDL interface Factory { Object create(); }; [SV97]
IDL • Includes • Built-in Types: long, short, float, double, char, boolean, octet, enum, etc • Constructed Types: struct, union • Template Types: string, sequence, fixed point decimal • Interface Inheritance: Open-Closed Principle • Object Interface [SV97]
Language Mappings • Determines how the OMG IDL features are mapped to the facilities of a given programming language • e.g.: [SV97]
Stubs and Skeletons IDL interface Stub Compiler Stubs (Client Side) Skeletons (Server Side) • Fixed for a given language and interface • Hide the ORB from application programmer [NE95]
Marshalling & Unmarshalling • eg: Acct -> List(); program language request buffer client stub client ORB marshalling n/w buffer target object skeleton server ORB operation invocation unmarshalling [SV97] [NE95]
Design Patterns (Stubs and Skeletons) • Connect programming Language world to the underlying ORB transparently • Stub adapts function call style of its language mapping to the request invocation mechanism of the ORB • Skeleton adapts request dispatching mechanism of the ORB to the upcall method form expected by the object implementation • Form of Adapter and Proxy patterns • Proxy: Provide a surrogate or placeholder for another object to control access to it • Adapter: Convert the interface of class to another interface clients expect [SV97] [DP95]
References: • [SV97] Vinoski, S., CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments IEEE Communications Magazine, Vol. 35, No. 2, February 1997 • [NE95] Edwards, N., CORBA: An Industrial Approach to Open Distributed Computing • [ACP99] Henning, M., Vinoski, S., Advanced CORBA Programming with C++, Addison Wesley, 1999. • [DP95] Gamma Erich., Helm Richard, Johnson Ralph, Vlissides, John, Design Patterns: Elements of Reusable Object-Oriented Software,Addison Wesley, 1995.