CORBA Prof Choong Seon HONG Kyung Hee University
CORBA Prof. Choong Seon HONG Kyung Hee University 1
What cover in “instant CORBA” o Guidance to CORBA/IIP o Basic working of CORBA 2. 0 ORB and object Web o Next generation ORB Kyung Hee University 2
Client/Server, CORBA-Style o OMG (Object Management Group) m 800+ companies : Microsoft, Sun, Java. Soft, IBM/Lotus, Netscape, Apple, Oracle, HP, NTT, Sprint, …… o Distributed objects m. CORBA object bus : the shape of the components that live within it and how they interoperate. m. CORBA that uses objects as a unifying metaphors for bringing existing applications to the bus. m. IDL (Interface Definition Language) defining a component’s boundaries, or having contractual interfaces with potential clients m. CORBA objects : blobs of intelligence that can live anywhere on a network. l l l Binary components that remote clients can access via method invocation. Clients don’t need to know where the distributed resides or what operating system it executes on. Language independent (C, C++, COBOL, JAVA, …. ) Kyung Hee University 3
Additional Features in CORBA 3. 0 o Internet Integration m. Firewall Specification defines transport-level firewalls, application-level firewalls, and (perhaps most interesting) a bi-directional GIOP connection useful for callbacks and event notifications. m. The Interoperable Name Service defines one URL-format object reference, iioploc and a second URL format, iiopname, actually invokes the remote Naming Service o Quality of Service Control m Asynchronous Messaging and Quality of Service Control m Minimum, Fault-Tolerant, and Real-Time CORBA o The CORBAcomponent architecture m A container environment that packages transactionality, security, and persistence, and provides interface and event resolution; m Integration with Enterprise Java. Beans; and m A software distribution format that enables a CORBA component software marketplace. Kyung Hee University 4
IDL o CORBA IDL Language Bindings Provide Client/Server Interoperability C C++ Smalltalk Ada COBOL Java IDL IDL IDL Client C C++ Smalltalk Ada COBOL Java IDL IDL IDL Server ORB Kyung Hee University 5
OMG’s Object Management Architecture (OMA) Kyung Hee University 6
IDL (Interface Definition Language) o Specifying a component’s attributes o Inheriting from parent o IDL grammar : a subset of C++ with additional keywords to support distributed concepts o CORBA’s ambitious goal : to “IDL-ize” all client/server middleware and all components that live on an ORB mturning everything into nails (CORBA IDL) mgiving everyone a hammer (Distributed service) o CORBA interface repository : containing the all definitions of the interface Kyung Hee University 7
CORBA Components o “component” = “distributed object” o CORBA distributed object infrastructure: making it easier for components to be more autonomous, self-managing, and collaborative OMG’s object management architecture o OMA guide (the fall of 1991) mrevised in Sept. 1992 madded common facilities in 1995 o Four main elements m. Object request broker (ORB) : CORBA object bus m. CORBA services : system level objet frameworks that extend the bus m. CORBA facilities m. Applications objects Kyung Hee University 8
Object Request Broker (ORB) o CORBA 1. 1 in 1991 o CORBA 2. 0 specifying interoperability across vendor ORBs (IIOP) o CORBA 3. 0 (the end of 1998) : including Java. Beans object model and firewall communications support o Benefits of ORB m. Static and dynamic method invocations l defining statically method invocations at compile time l discovering method invocations at run time m. High-level language bindings : invoking methods on server objects using your high-level language of choice m. Self-describing system : providing run-time metadata for describing every server interface known to the system m. Local/remote transparency : interconnecting to every other ORB in the universe using CORBA IIOP (Internet Inter-ORB Protocol) services Kyung Hee University 9
Object Request Broker (2) o Built-in security and transactions mincluding context information in messages to handle security and transactions o Polymorphic messaging : the same function call with different effects o Coexistence with existing systems encapsulating existing applications with IDL wrappers Kyung Hee University 10
ORB vs RPC ocall a specific function Kyung Hee University ocall a method within a specific object 11
Anatomy of CORBA ORB o The structure of a CORBA 3. x ORB Object Implementation Client Interface Repository ORB Client Interface Dynamic Interface IDL Invocation Stub ORB Interface Static Interface Skeletons Dynamic Skeleton Invocation Object Adapter Implementation Repository Object Request Broker Core (IIOP) Kyung Hee University 12
Anatomy of CORBA ORB (2) o Client IDL Stubs : providing the static interface to object services mprecompiled stubs defining how clients invoke corresponding services on the servers mlocal proxy for a remote server object mgenerated by the IDL compiler mincluding code to perform marshaling that encode and decode the operation and its parameters into flattened format o Dynamic Invocation Interface (DII) mdiscovering methods to be invoked at run time : useful for tools that discover services at run time o Interface repository APIs mobtaining and modifying the description of all the registered component interfaces, methods, parameters minterface repository : run-time distributed database that contains machine-readable versions of the IDL-defined interfaces Kyung Hee University 13
Anatomy of CORBA ORB (3) o ORB interface ma few APIs for local services : ex) converting object reference to a string, and vice versa o Server IDL stubs (skeletons) : providing static interface to each service exported by the server mcreated using an IDL compiler o Dynamic skeleton interface (DSI) mproviding run-time biding mechanism for servers mlooking at parameter values in an incoming message to figure out who is the target object and method m useful for implementing generic bridges between ORBs Kyung Hee University 14
Anatomy of CORBA ORB (4) o Object adapter msiting on top of the ORB’s core communications services and accepts requests for service on behalf of the server’s objects massigning server objects object references (object Ids) mregistering the classes to be supported by object adapter and their run -time instances (i. e. , objects) with implementation repository o Implementation Repository mproviding a run-time repository of information about the classes a sever supports, the objects that are instantiated and the objects’ Ids mstoring additional information associated with the implementation ex) trace information, security, other the administrative data, …. o ORB interface mconsisting of a few APIs to local services Kyung Hee University 15
Interoperability Protocols o IIOP (Internet Inter-ORB Protocol) mbasically TCP/IP with some CORBA-defined message exchanges. mstandard CORBA backbone mspecifying how GIOP messages are exchanged over a TCP/IP network o ESIOPs (Environment-Specific Inter-ORB Protocols) m“out-of-the-box” interoperation over specific networks ex) DCE ESIOP : providing a robust environment for mission critical ORBs (including advanced features such as Kerberos security, cell and global directories, authenticated RPC, etc) o GIOP (General Inter-ORB Protocol) : specifying a set of message formats and common data representation for communications between ORB and ORB m. CDR (Common Data Representation) : mapping data types defined by OMG IDL into a flat, networked message representation Kyung Hee University 16
CORBA Inter-ORB Architecture CORBA IDL Object Request Semantics Transfer Message Syntax Transports General Inter-ORB Protocol (GIOP) Internet Inter-ORB Protocol (IIOP) TCP/IP Internet Inter-ORB Protocol (IIOP) OSI and IPX/SPX Environment Specific Inter-ORB Protocol (ESIOP) DCE/ESIOP DCE RPC over TCP/IP DCE RPC over OSI etc Internet Mandatory for CORBA 2. 0 Optional Kyung Hee University 17
CORBA Services o Life Cycle Services : operation for creating, copying, moving, and deleting components on the bus o Persistence Services : providing a single interface for storing components persistently on a variety of storage servers such as ODBMS and RDBMS o Naming Service : locating others components by name mallowing objects to be bound to existing network directories or naming contexts - including ISO’s x. 500, Internet’s LDAP, and so forth. o Event Service : dynamically register or unregister interesting in specific events. Defining a well-known object called an event channel that collects and distributes events among components. o Concurrency Control Service : providing a lock manager that can obtain locks on behalf of transactions or threads Kyung Hee University 18
CORBA Services (2) o Transaction Service : providing two-phase commit coordination among recoverable components o Relationship Service : providing a way to create dynamic associations ( or links) between components that know nothing of each other. o Externalization Service : providing a standard way for getting data into and out of a component o Query Service : providing query operations for objects as superset of SQL mbased on SQL 3 specification and Object Management Group’s (ODMG) Object Query Language (OQL) Kyung Hee University 19
CORBA Services (3) o Licensing service : providing operations for metering the use of components msupporting any model of usage control at any point in a component’s life cycle msupporting charging per session and per instance creation, and per site o Properties Service : providing for associating named values with any component. ex) a title or a date o Time Service : providing interfaces for synchronizing time in a distributed object environment, and operations for defining and managing time-triggered events o Security Service : supporting authentication, access control lists, … Kyung Hee University 20
CORBA Services (4) o Trader Service : providing a “Yellow Pages” for objects mpublicizing objects’ services and biding for jobs o Collection Service : providing CORBA interfaces to generically create and manipulate the most common collections Kyung Hee University 21
CORBA facilities o Collections of IDL-defined frameworks that provide services of direct use to application objects o Adopted Open. Doc as compound document technology : Distributed Document Component Facility (DDCF) o DDCF : specifying presentation services for components and a document interchange standard based on Open. Doc o Goal : Defining IDL interfaces for every distributed services we know of today and to be invented Kyung Hee University 22
CORBA Business Objects o Providing a natural way for describing application-independent concepts such customer, order, money, payment, …. . o An application-level component that can use in unpredictable combinations o A component that represent a “recognizable” everyday life entity o Self-contained deliverable that has a user interface, state, and knows how to cooperate with other separately developed business objects to perform a desired task o Studying in OMG’s Business Object Task Force Kyung Hee University 23
Anatomy of CORBA Business Object o A variation of the of Model/View/Controller (MVC) by Smalltalk and in almost every GUI class library mmodel : representing the application object and its encapsulated data mview : representing the object visually on the screen mcontroller : defining the way the user interface reacts to user input and GUI events o Business object m encapsulating storage, metadata, concurrency, and business rules associated with an active business entity mhandling short-lived process functions o Business process objects mencapsulating the business logic at the enterprise level mhandling long-lived process function involving interaction with other business objects Kyung Hee University 24
Anatomy of CORBA Business Object (2) o Presentation objects m. Presenting the object visually to the user m. Communicating directly with the business object to display data on the screen or sometimes with process object Kyung Hee University 25
Component Evolution and Infrastructure Kyung Hee University 26
3 -tier Client/Sever, Object Style A ORB B OR C ORB CORBA IIOP O ORB R CORBA B COR BA ORB Business Objects Tier 1 View Object Kyung Hee University DBMS Tier 2 Server Objects Lotus Notes TP monitors Tier 3 Legacy Applications 27
CORBA and Web Services Kyung Hee University 28
The Standards of Web Services Directory Program Interface Description Envelope, Bindings Basic Data Types, Namespaces UDDI, the directory for the service WSDL, describes the service SOAP, the protocol for communicating with the service XML Schema, describes the data XML, holds the data Kyung Hee University 29
- Slides: 29