Introduction to CORBA Seyed Masoud Sadjadi Software Engineering
Introduction to CORBA Seyed. Masoud Sadjadi Software Engineering and Networking Systems Laboratory Department of Computer Science and Engineering Michigan State University www. cse. msu. edu/sens CSE 812 Monday (Feb. 14, 2003) and Wednesday (Feb. 16, 2003)
Acknowledgements Object Management Group (OMG) IONA Technology Eternal Systems Steve Vinoski, IONA Technology Niall Stapley, CERN Mojtaba Hosseini Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 2
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advance Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 3
Motivation (1) Overview: Motivation Introduction Interoperability Example Object-oriented computational model – An application is represented by interactions among a web of objects Evolution Advanced Big Picture Service provided through interface Thread Service is accessed Main Loop through a reference Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 4
Motivation (2) Overview: Motivation Distributed object computational model – Objects are distributed across network. – Tedious and error-prone programming. Introduction Interoperability Example Evolution Advanced Big Picture Pipeline Socket Shared Memory Operating System Layer File Pipeline Socket Shared Memory File Application Layer Network Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 5
Motivation (3) Middleware Solution Overview: Motivation Introduction Interoperability Example Application Layer Evolution Advanced Big Picture Stub Skeleton Middleware Layer Pipeline Socket Shared Memory Operating System Layer File ORB Pipeline Socket Shared Memory File ORB Network Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 6
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advance Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 7
What is CORBA? Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture Common Object Request Broker Architecture An industry standard developed by OMG to help in distributed programming A specification for creating and using distributed objects A tool for enabling multi-language, multiplatform communication A CORBA based-system is a collection of objects that isolates the requestors of services (clients) from the providers of services (servers) by an encapsulating interface Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 8
Who should use CORBA? Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture “The architecture and specifications described in the Common Object Request Broker Architecture and Specifications book are aimed at software designers and developers who want to produce applications that comply with OMG standards for the Object Request Broker (ORB)” [OMG]. “The benefit of compliance is, in general, to be able to produce interoperable applications that are based on distributed, interoperating objects” [OMG]. Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 9
CORBA Features (1) Overview: Motivation – – Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton OA Interoperability Example Evolution Advanced Hardware devices Operating System Network protocols Programming languages Object Orientation – – DII & DSI & IR Big Picture Heterogeneity Encapsulation Polymorphism Inheritance Instantiation Dynamic binding and typing Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 10
CORBA Features (2) Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture Transparencies – Location transparency the physical address of a server is masked – Access transparency the access method is masked – Data transparency the different data representations are masked – Replication transparency the server replicas are masked – Migration transparency the migration of a server is masked – Activation transparency the activation of a server is masked Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 11
CORBA Objects Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability They are different from typical programming objects in three ways: CORBA objects can run on any platform CORBA objects can be located anywhere on the network CORBA objects can be written in any language that has IDL mapping Example Evolution Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 12
CORBA Architecture Overview: Motivation Introduction CORBA is composed of ORB core, ORB interface, stub, skeleton, DII, DSI, and OA. CORBA Features Client Object Implementation Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Dynamic Invocation Static IDL Stub ORB Interface Static IDL Skeleton Dynamic Skeleton Object Adapter Interoperability Example Evolution Advanced Big Picture ORB Core Interface Identical for all ORB implementations There may be multiple object adapters There are stubs and a skeleton for each object type ORB-dependent interface Introduction to CORBA by Seyed. Masoud Sadjadi Up-call interface Normal call interface CSE 812 04/14 -16/2003 13
Object Request Broker (1) Overview: Motivation Introduction CORBA Responsibilities Object location transparency – Find the object implementation for the request Features Objects Architecture ORB – Prepare the object implementation to receive the request IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Object activation Communication – Communicate the data making up the request Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 14
Object Request Broker (2) Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture Both the client and the object implementation are isolated from the ORB by an IDL interface. All requests are managed by the ORB, which means that invocation of a CORBA object is passed to an ORB CORBA objects implemented in different ORBs from different vendors should be able to communicate with each other because all CORBA compliant ORBs are able to interoperate via IIOP (Internet Inter -ORB Protocol) Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 15
Interface Definition Language (1) Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture Separates the Interface from the Implementation Multiple-inheritance, strongly typed, public interface specification language Independent of any particular language and compiler Mappings will be provided for many languages and compilers Not a programming language Enables Interoperability Supports the dynamic request mechanism Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 16
Interface Definition Language (2) Overview: The role of IDL Motivation Introduction CORBA Features Client Side Server Side Objects Architecture C COBOL IDL ORB C++ IDL Stub & Skeleton DII & DSI & IR COBOL IDL ORB Ada Big Picture IDL IDL Evolution Ada ORB IDL Example Advanced IDL OA Interoperability C Small talk IDL Java C++ More Introduction to CORBA by Seyed. Masoud Sadjadi More CSE 812 04/14 -16/2003 17
Interface Definition Language (3) Overview: IDL File Motivation Introduction CORBA Features IDL Compiler Objects Architecture ORB IDL Stub & Skeleton Client Implementation Server Skeleton File Client Stub File Object Implementation DII & DSI & IR OA Interoperability Lang A Compiler Lang B Compiler Example Evolution Advanced Big Picture Client Program Introduction to CORBA by Seyed. Masoud Sadjadi Server Program CSE 812 04/14 -16/2003 18
Interface Definition Language (4) Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture IDL Compiler It will accept as input an IDL file written using any text editor (file. Name. idl) It generates the stub and the skeleton code in the target programming language (e. g. , Java stub and C++ skeleton) The stub is given to the client as a tool to describe the server functionality and the skeleton file is implemented at the server Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 19
Stubs and Skeletons Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture In terms of CORBA development, the stubs and skeleton files are standard in terms of their target language. Each file exposes the same operations specified in the IDL file. Invoking an operation on the stub file will cause the method to be executed in the skeleton file The stub file allows the client to manipulate the remote object with the same ease with each a local file is manipulated Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 20
Dynamic Invocation Interface Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Operations can be invoked through static or dynamic operations Static invocation interfaces are determined at compile time being presented to the client using the stubs The DII allows clients to use server objects without knowing about them at compile time It allows the client to obtain an instance of a CORBA object and make invocations to it by dynamically constructing requests using the Interface Repository to retrieve an operation signature Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 21
Dynamic Skeleton Interface Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA Interoperability Example Evolution Advanced Big Picture Similar to DII, the server-side dynamic skeleton interface allows servers to be written without having skeletons, for the objects being implemented. It allows dynamic handling of object invocations It can use either the pure static knowledge of parameters or the Interface Repository to determine the parameters Has other applications such as interactive software Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 22
Interface Repository Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR Provides another way to specify the interfaces to the objects. Holds a table of interfaces A client, using the IR, should be able to locate an object , find information about its interface, then make a request to be sent through the ORB OA Interoperability Example Evolution Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 23
Object Adaptors Overview: Motivation Introduction CORBA Features Objects Architecture ORB IDL Stub & Skeleton DII & DSI & IR OA The primary way that an object implementation accesses services provided by ORB Method invocation Security Object reference generation Object activation and deactivation Interoperability Example Evolution Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 24
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advance Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 25
Interoperability (1) Overview: ORB from different vendors are interoperable Motivation Introduction Interoperability IOR & IOGR CORBA Clients Client Obj. Impl. IDL IDL Java and CORBA vs. RMI CORBA vs. DCOM ORB Example Evolution Advanced Big Picture ORB IDL Obj. Impl. Client Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 26
Interoperability (2) Overview: Motivation CORBA 2. 0 Interoperability Comprises Introduction Interoperability IOR & IOGR CORBA Clients Java and CORBA vs. RMI CORBA vs. DCOM Example Evolution Advanced Big Picture An overall architecture for CORBA-CORBA communications An API for adding bridges A general multi-transport message format (General Inter-ORB Protocol or GIOP) An API for gateways using ESIOPs (Environment-Specific Inter-ORB Protocols) UNIVERSAL, OUT-OF-THE-BOX INTEROPERABILITY GIOP over TCP/IP is mandatory for compliance either internally or via a halfbridge Specialized protocols are optional and well supported by the specifications. Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 27
IOR Example Overview: Motivation Introduction Interoperability IOR & IOGR CORBA Clients Java and CORBA vs. RMI CORBA vs. DCOM Example Evolution Advanced Big Picture IOR: 00000001049444 c 3 a 5472 697669616 c 3 a 312 e 3000001000 0000007 c 00010200000 d 31 35322 e 38312 e 342 e 313130000004800 0000025 abacab 313130303338363231 3336005 f 526 f 6 f 74504 f 410000 cafebabe 3 bd 5 b 8780000000000010000002 c 00000010001 0000000400010020000101090001010 005010001010900000002000101 0005010001 Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 28
Interoperable Object Group Ref corbaloc: : 1. 2@host. A: 683, : 1. 2@host. B: 683/my. Obj Overview: Motivation Introduction Interoperability Number of Profiles Type_id IIOP Profile … IIOP Profile Multiple Components Profile IOR & IOGR CORBA Clients Java and CORBA vs. RMI TAG_ INTERNET_IOP Profile Body CORBA vs. DCOM Example IIOP Version Host Port Object Components Key Evolution Advanced Big Picture Number of Components tag_group_ version TAG_GROUP Component ft_domain_ id TAG_PRIMARY Component object_group_ id Introduction to CORBA by Seyed. Masoud Sadjadi Other Components object_group_ version CSE 812 04/14 -16/2003 29
Clients for CORBA Overview: Motivation Introduction Interoperability CORBA Client – CORBA Server Java Client – CORBA, Java RMI, and HTTP Server DCOM Client – CORBA and DCOM Server IOR & IOGR CORBA Clients Java and CORBA vs. RMI CORBA vs. DCOM Example standalone CORBA client ORB Windows app JAVA/CORBA client JAVA ORBlet COM/CORBA link ORB JAVA VM (browser) HTTP Evolution Advanced Big Picture CORBA server JAVA/RMI server Introduction to CORBA by Seyed. Masoud Sadjadi HTTP server DCOM server CSE 812 04/14 -16/2003 30
Java and CORBA Overview: Motivation Introduction Interoperability IOR & IOGR CORBA Clients Java and CORBA vs. RMI CORBA vs. DCOM Not just the usual IDL-to-Java Mapping A Java-to-IDL Mapping. Automates creation of CORBA Objects from Java Classes Java RMI can use IIOP Protocol There’s an ORB in the JDK Example Evolution Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 31
CORBA vs. Java RMI Overview: Motivation Introduction Interoperability IOR & IOGR CORBA Clients Java and CORBA vs. RMI CORBA vs. DCOM Example Evolution Advanced Big Picture CORBA was designed for language independence whereas RMI was designed for a single language where objects run in a homogeneous environment CORBA interfaces are defined in IDL, while RMI interfaces are defined in Java CORBA objects are not garbage collected because they are language independent and they have to be consistent with languages that do not support garbage collection, on the other hand RMI objects are garbage collected automatically Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 32
DCOM vs. CORBA Overview: Motivation Introduction Interoperability IOR & IOGR CORBA Clients Java and CORBA vs. RMI CORBA vs. DCOM Example Evolution Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 33
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advance Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 34
Steps to Implement “Hello World” Overview: Motivation Introduction Interoperability Example Steps Write Interface Implement Hello Implement Server Implement Client Compile and Run Evolution Advanced Big Picture We use a CROBA implementation such as ORBacus, ORBIX, Visi. Broker, Jac. ORB, and TAO 1. Define an interface using IDL 2. Use the IDL compiler 3. Implement the Hello object 4. Implement the server 5. Implement the client 6. Compile 7. Run Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 35
Define Interface in IDL Overview: Motivation Introduction Interoperability Example Steps Write Interface Implement Hello Implement Server Implement Client Compile and Run Evolution Advanced Big Picture Stand-alone hello world application public class Greeter { public static void main(String args[]) { System. out. println("Hello World!"); } } 1. Define an interface using IDL // IDL interface Hello { void say_hello(); }; Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 36
Implement the Hello Object Overview: Motivation Introduction Interoperability 2. Use the IDL compiler jidl --package hello Hello. idl Example Steps Write Interface Implement Hello Implement Server Implement Client Compile and Run Evolution Advanced Big Picture 3. Implement the Hello object // Java package hello; public class Hello_impl extends Hello. POA { public void say_hello() { System. out. println("Hello World!"); } } Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 37
Implement the Server (1) Overview: Motivation 4. Implement the Server Introduction Interoperability Example // Java package hello; Steps Write Interface Implement Hello Implement Server Implement Client Compile and Run Evolution Advanced public class Server { public static void main(String args[]) { java. util. Properties props = System. get. Properties(); props. put("org. omg. CORBA. ORBClass", "com. ooc. CORBA. ORB"); props. put("org. omg. CORBA. ORBSingleton. Class", "com. ooc. CORBA. ORBSingleton"); Big Picture int status = 0; org. omg. CORBA. ORB orb = null; Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 38
Implement the Server (2) Overview: Motivation 4. Implement the Server (cont. ) Introduction try { orb = org. omg. CORBA. ORB. init(args, props); status = run(orb); } catch(Exception ex) { ex. print. Stack. Trace(); status = 1; } Interoperability Example Steps Write Interface Implement Hello Implement Server if(orb != null) { try { orb. destroy(); } catch(Exception ex) { ex. print. Stack. Trace(); status = 1; } } System. exit(status); Implement Client Compile and Run Evolution Advanced Big Picture } Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 39
Implement the Server (3) Overview: Motivation 4. Implement the Server (cont. ) Introduction Interoperability Example static int run(org. omg. CORBA. ORB orb) throws org. omg. CORBA. User. Exception { Steps Write Interface Implement Hello Implement Server org. omg. Portable. Server. POA root. POA = org. omg. Portable. Server. POAHelper. narrow( orb. resolve_initial_references("Root. POA")); Implement Client Compile and Run Evolution org. omg. Portable. Server. POAManager manager = root. POA. the_POAManager(); Advanced Big Picture Hello_impl hello. Impl = new Hello_impl(); Hello hello = hello. Impl. _this(orb); Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 40
Implement the Server (3) Overview: Motivation 4. Implement the Server (cont. ) Introduction Interoperability Example Steps Write Interface Implement Hello Implement Server Implement Client Compile and Run Evolution try { String ref = orb. object_to_string(hello); String ref. File = "Hello. ref"; java. io. Print. Writer out = new java. io. Print. Writer( new java. io. File. Output. Stream(ref. File)); out. println(ref); out. close(); } catch(IOException ex){ ex. print. Stack. Trace(); return 1; } Advanced manager. activate(); orb. run(); Big Picture return 0; } } Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 41
Implement the Client (1) Overview: Motivation 5. Implement the Client Introduction Interoperability Example // Java package hello; Steps Write Interface public class Client { Implement Hello Implement Server Implement Client Compile and Run public static void main(String args[]) {. . . // Same code as the server } Evolution Advanced Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 42
Implement the Client (2) Overview: Motivation 5. Implement the Client (cont. ) Introduction Interoperability Example Steps Write Interface Implement Hello Implement Server Implement Client Compile and Run Evolution static int run(org. omg. CORBA. ORB orb) { org. omg. CORBA. Object obj = null; try { String ref. File = "Hello. ref"; java. io. Buffered. Reader in = new java. io. Buffered. Reader( new java. io. File. Reader(ref. File)); String ref = in. read. Line(); obj = orb. string_to_object(ref); } catch(IOException ex) {ex. print. Stack. Trace(); return 1; } Advanced Hello hello = Hello. Helper. narrow(obj); hello. say_hello(); return 0; Big Picture } } Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 43
Compile and Run Overview: Motivation 6. Compile Introduction Interoperability Example Steps Write Interface CLASSPATH=. : your_orbacus_directory/lib/OB. jar: $CLASSPATH export CLASSPATH javac hello/*. java Implement Hello Implement Server 7. Run Implement Client Compile and Run java hello. Server Evolution Advanced java hello. Client Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 44
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advance Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 45
CORBA Evolution (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced Big Picture Horizontal, Vertical Facilities CORBA 3. 0 1999 Facilities 1998 Interoperability IDL, Object Model, ORB CCM Real-time Fault Tolerance 1996 Interoperability Networking CORBA Core 1991 Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 46
CORBA Evolution (2) Overview: Motivation – – Introduction Interoperability Example Evolution Advanced Big Picture CORBA 1. 0 (October 1991) CORBA Object model Interface Definition Language (IDL) Core DII and Interface Repository single language mapping for the C CORBA 1. 1 (February 1992) – The first widely published version – Interfaces for the Basic Object Adapter – Clarified some ambiguities CORBA 1. 2 (December 1993) – Closed several ambiguities in memory management and object reference comparison. Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 47
CORBA Evolution (3) Overview: Motivation CORBA 2. 0 (August 1996) – – – – – Introduction Interoperability Example Evolution Advanced Big Picture Dynamic skeleton interface Extensions to the Interface Repository Interoperability (GIOP, IIOP, DCE CIOP) Layered security and transaction services Datatype extensions for COBOL Interworking with OLE 2/COM Interoperability protocol specification Interface repository improvements C++ and Smalltalk IDL language mappings CORBA 2. 1 (August 1997) – Secure IIOP and IIOP over SSL – COBOL and Ada language maps Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 48
CORBA Evolution (4) Overview: Motivation – POA – DCOM Interworking – IDL/JAVA language mapping specification. Introduction Interoperability Example Evolution Advanced Big Picture CORBA 2. 2 (February 1998) CORBA 2. 3 (June 1999) – – – COM/CORBA Part A and B Portability IDL/Java Objects by value Java to IDL Language Mapping IDL to Java Language Mapping C++ Language Mapping Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 49
CORBA Evolution (5) Overview: Motivation – – Introduction Interoperability Example Evolution Advanced Big Picture CORBA 2. 4 (October 2000) CORBA 2. 5 (September 2001) – – Messaging specification Interoperable Naming service Notification service Minimum and Real-time CORBA Fault Tolerant Messaging (editorial changes) Portable Interceptors Realtime CORBA, v 1. 2 CORBA 2. 6 (December 2001) – Common Security Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 50
CORBA Evolution (6) Overview: Motivation Introduction Interoperability Example Evolution Advanced Big Picture CORBA 3. 0 (June 2002) – Java and Internet Integration Objects Passable by Value (first in ver 2. 3) Java-to-IDL Mapping (first in ver 2. 3) Interoperable Name Service (first in ver 2. 4) Firewall Specification – Quality of Service Control Asynchronous Messaging (first in ver 2. 4) Minimum (first in ver 2. 4), Fault-Tolerant (first in ver 2. 5), and Real-Time CORBA (first in ver 2. 4) – The CORBA component architecture CORBAcomponents Scripting Languages Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 51
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advanced Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 52
POA Supports Scalability Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value Qo. S CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Object implementation portability between ORBs Object instances with persistent identities Transparent activation Single servant implementing multiple instances Transient objects with minimal programming Fine or coarse control of behavior and persistence by an implementation Multiple policies for key object behaviors Implementations inheriting from static skeleton classes Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 53
Objects by Value Overview: Motivation – They can have state and behaviour – Not CORBA objects – Can inherit from other valuetypes and support interfaces Introduction Interoperability Example Evolution Advanced POA Object by Value Qo. S CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture A struct with added value Supports the CORBA component model and Java to IDL reverse mapping New keywords: valuetype, public, private, abstract Uses a value factory to create local object Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 54
Quality of Service (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value Qo. S CCM Minimum CORBA RT CORBA FT CORBA Provides policy-based Qo. S Framework No standard defaults – ORB vendor sets them Policy areas – – – Rebind Support Request / Reply Priority Request / Reply Timeout Synchronization Scope Routing Others Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 55
Quality of Service (2) Overview: Motivation Introduction Specifying Qo. S Parameters – Specify for an Object Implementation Interoperability Example Evolution – Specify for a particular Request Advanced POA Object by Value CCM RT CORBA FT CORBA Others Big Picture In a GIOP request, Qo. S requirements are expressed as part of its Service Context – CORBA resolves conflicts Qo. S Minimum CORBA In an object reference, Qo. S requirements are expressed through a profile Component in the IOR Asynchronous Method Invocation (AMI) – Callback mode Similar to providing a callback handler object – Polling mode Returns a valuetype object for client to check Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 56
Quality of Service (3) Overview: Motivation Introduction Invocation Types – Synchronous: the reply is obtained and returned Interoperability Example Evolution Advanced – POA Object by Value Qo. S – CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture – to the client as part of the single (blocking, to the client) operation used by the client application to make the request. Deferred Synchronous: control returns to the application without a reply, but the client ORB still invokes synchronously on the target. The reply may be returned to the client later. Asynchronous: the client ORB does not synchronously invoke the target to obtain a reply. Some other agent separates the client ORB from the target. Time-Independent: a specialization of asynchronous invocation in which the computational context that obtains the reply may be different from the computational context from which the original invocation was made. Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 57
Quality of Service (4) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value Qo. S CCM Minimum CORBA RT CORBA FT CORBA Others Ordering Invocations – ANY: the client doesn’t specify in what order its requests are processed. – TEMPORAL: requests that invocations be processed in the order in which they were issued. TEMPORAL is the default. – PRIORITY: requests that invocations be processed based on the priority assigned in the Qo. S structure described later. – DEADLINE: requests that invocations whose time_to_live is about to expire are moved to the front of the queue. Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 58
CORBA Component Model (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value Qo. S CCM Minimum CORBA RT CORBA Framework for designing, implementing and deploying CORBA components. Purpose is to simplify and reduce effort by using a container that: – manages lifecycle – provides CORBA services – allows clean separation between application logic and CORBA – Support for ready made components Others Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 59
CORBA Component Model (2) Overview: Motivation – Basic - fully compatible with EJB – Extended - components expose ports Introduction Interoperability Example Evolution Advanced Qo. S CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Component categories – Session, Service, Entity, Process POA Object by Value Two levels of component More extra keywords like component, home, supports Implementations? – K 2 Component Server – Mico. CCM – Open. CCM Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 60
Minimum CORBA (1) Overview: Motivation Introduction Interoperability – Do not need everything that CORBA provides – Has size and space limits Example Evolution Advanced POA Object by Value Qo. S CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Designed systems with limited resources Some operations are omitted from Object, ORB Other omissions – – Dynamic Invocation Interface Dynamic Skeleton interface Dynamic any Interface Repository Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 61
Minimum CORBA (2) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value Qo. S CCM The POA – Default policies only for: create_thread_policy create_implicit_activation_policy create_servant_retention_policy create_request_processing_policy – No dynamic activation of POAs – No Servant. Managers Minimum CORBA RT CORBA FT CORBA Others Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 62
Real-Time CORBA (1) Overview: Motivation – Adds Qo. S control capabilities to regular CORBA. – Improve application predictability by bounding priority inversion – Manage system resources end-to-end. Introduction Interoperability Example Evolution Advanced POA Processor resources Communication resources Memory resources Object by Value Qo. S CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Features Shortcomings – Static fixed-priority real-time – Steep learning curve: Cause by the complex C++ mapping. – Run-time and memory footprint overhead Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 63
Real-Time CORBA (2) Overview: Motivation Real-time CORBA extensions Introduction Interoperability Example Evolution Advanced POA Client RTCORBA: : Current Scheduling Service Server Servant RTCORBA: : Priority Object by Value POA RTCORBA: : Threadpool Qo. S CCM Minimum CORBA ORB RT CORBA RTORB FT CORBA Others Big Picture IIOP (GIOP/TCP) ESIOP (Others) Introduction to CORBA by Seyed. Masoud Sadjadi RTCORBA: : Priority. Mapping CSE 812 04/14 -16/2003 64
Fault Tolerant CORBA (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced – entity redundancy POA Object by Value Qo. S Minimum CORBA RT CORBA Others Big Picture object replication (passive and active) – request retry and redirection – fault detection and recovery CCM FT CORBA Aims to provide robust support for high reliability Defines a fault-tolerance infrastructure Provides reliability by Multiple profiles in IOR – Example of a FT corbaloc URL corbaloc: : 1. 2@host. A: 683, : 1. 2@host. B: 683/my. O bj Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 65
Fault Tolerant CORBA (2) Overview: Motivation Introduction create_ object() set_ properties() Interoperability Example Evolution Advanced POA Replication Manager notifications create_ object() Fault Notifier Fault Detector is_alive() fault reports Object by Value Qo. S Client CCM Minimum CORBA Server C Server S 1 S 2 RT CORBA FT CORBA Others Big Picture CORBA ORB Logging Mechanism Factory Fault Detector CORBA ORB Recovery Mechanism Logging Mechanism Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 66
Other New Specifications Overview: Motivation – Defines Architecture for parallel programming – Data is typically divided and redistributed Introduction Interoperability Example Evolution POA Object by Value Qo. S CCM RT CORBA FT CORBA Others Unreliable Multicast (MIOP) – – Advanced Minimum CORBA Data Parallel Processing Deliver messages to many objects at once Takes advantage of network ability IDL operations would require oneway Clients “join” a multicast group with a group IOR Domain CORBAfacilities – “IDL is a great way to define standard interfaces for standard objects that every company in an industry can share. ” Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 67
Agenda Overview: Motivation Introduction Interoperability Motivation Introduction Example Evolution Advanced Interoperability Big Picture Example CORBA Evolution Advance Features Big Picture Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 68
Model Driven Architecture Overview: Motivation Introduction Open vendor-neutral approach Separating business logic from technology Interoperability Example Evolution Advanced Big Picture MDA OMA Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 69
MDA Specifications Overview: Motivation Introduction Interoperability Example Evolution Advanced Big Picture MDA OMA MDA Specification Support The MDA Architecture The Unified Modeling Language (UML) UML Profiles The Meta-Object Facility (MOF) XML Metadata Interchange (XMI) Common Warehouse Metamodel (CWM) CORBA Writing Standards in the MDA Pervasive Services Domain (Industry-specific) Facilities MDA Applications Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 70
OMA Overview (1) Overview: Motivation Introduction Interoperability Example OMG's vision for the component software Not standardized by OMG; Scope is Single application or vendor Business Objects Healthcare Finance Telecommunication Compound Docs Object Linking Help Facilities Desktop Mgmt Evolution Advanced Big Picture Application Objects Vertical CORBA Facilities Horizomtal CORBA Facilities MDA OMA Object Request Broker Lifecycle Events Naming Persistence Transactions Concurrency CORBA Services Introduction to CORBA by Seyed. Masoud Sadjadi Externalization Security Time Properties Query Licensing CSE 812 04/14 -16/2003 71
Object Management Architecture (2) Overview: Motivation – (a. k. a, CORBA Services) – Domain-independent services. – Naming Service and Trading Service. Introduction Interoperability Example Evolution Common Services – (a. k. a, Common Facilities and Horizontal Facilities) – are less oriented towards end-user applications. – Distributed Document Component Facility (DDCF). Advanced Big Picture MDA Object Services OMA Domain Services – (a. k. a, Domain Interfaces and Vertical Facilities) – are more oriented towards specific app domains. – Product Data Management (PDM) Enablers for the manufacturing domain. Application Services – (a. k. a, Application Interfaces and Application Objects) – are services developed specifically for a given application. Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 72
Vertical CORBA Services Overview: Motivation Introduction Official OMG specifications in vertical market domains: – – – – – Interoperability Example Evolution Advanced Big Picture MDA OMA Business Objects Finance/Insurance Electronic Commerce Healthcare Telecommunications Transportation Manufacturing Life Sciences Research Coming: Utilities, Statistics Bring benefits of CORBA and OMA to Domains. Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 73
CORBA/OMA Environment Overview: Motivation Starts with the Basics: – – – – Introduction Interoperability Example Evolution Advanced Big Picture MDA OMA Add Services and Facilities: – – IDL Interfaces & Mappings ORB-based Architecture Static & Dynamic Invocation Modes GIOP/IIOP Interoperability Optional Asynchronous Modes Naming Service Event Service Security Service Transaction Service Object Trader Service COM/CORBA Mapping Then add Domain Componet Introduction to CORBA by Seyed. Masoud Sadjadi CSE 812 04/14 -16/2003 74
- Slides: 74