Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Introduction to CORBA SeyedMasoud Sadjadi Software Engineering and Networking Systems Laboratory Department of Computer Science and Engineering Michigan State University www.cse.msu.edu/sens CSE812 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 IDL ORB C++ IDL Stub & Skeleton DII & DSI & IR IDL IDL COBOL Ada IDL IDL ORB OA Interoperability Ada IDL Small talk IDL IDL IDL Evolution Big Picture ORB IDL Example Advanced C IDL Java C++ More Introduction to CORBA by SeyedMasoud 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 SeyedMasoud 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 (fileName.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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 25 Interoperability (1) Overview: ORB from different vendors are interoperable Motivation Introduction Interoperability Interoperability IOR & IOGR CORBA Clients Client Obj. Impl. Client Obj. Impl. IDL IDL IDL IDL Java and CORBA CORBA vs. RMI CORBA vs. DCOM ORB ORB Example Evolution Advanced Big Picture ORB ORB IDL IDL Obj. Impl. Client Introduction to CORBA by SeyedMasoud Sadjadi CSE 812 04/14-16/2003 26 Interoperability (2) Overview: Motivation CORBA 2.0 Interoperability Comprises Introduction Interoperability Interoperability IOR & IOGR CORBA Clients Java and CORBA 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 27 IOR Example Overview: Motivation Introduction Interoperability Interoperability IOR & IOGR CORBA Clients Java and CORBA CORBA vs. RMI CORBA vs. DCOM Example Evolution Advanced Big Picture IOR:000000000000001049444c3a547 2697669616c3a312e30000000000100 0000000000007c000102000000000d3 135322e38312e342e31313000000480 00000025abacab31313030333836323 13336005f526f6f74504f410000cafebab e3bd5b8780000000000000000000001 000000010000002c000000000001000 1000000040001002000010109000101 0005010001000101090000000200010 10005010001 Introduction to CORBA by SeyedMasoud Sadjadi CSE 812 04/14-16/2003 28 Interoperable Object Group Ref Overview: corbaloc::1.2@hostA:683, :1.2@hostB:683/myObj Motivation Introduction Interoperability Interoperability Number of Profiles Type_id IIOP Profile IIOP Profile … Multiple Components Profile IOR & IOGR CORBA Clients Java and CORBA 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 SeyedMasoud Sadjadi Other Components object_group_ version CSE 812 04/14-16/2003 29 Clients for CORBA Overview: Motivation Introduction Interoperability 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 CORBA vs. RMI standalone CORBA client CORBA vs. DCOM Example ORB Windows app JAVA/CORBA client JAVA ORBlet COM/CORBA link ORB JAVA VM (browser) Evolution HTTP Advanced Big Picture CORBA server JAVA/RMI server HTTP server Introduction to CORBA by SeyedMasoud Sadjadi DCOM server CSE 812 04/14-16/2003 30 Java and CORBA Overview: Motivation Introduction Interoperability Interoperability IOR & IOGR CORBA Clients Java and CORBA 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 31 CORBA vs. Java RMI Overview: Motivation Introduction Interoperability Interoperability IOR & IOGR CORBA Clients Java and CORBA 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 32 DCOM vs. CORBA Overview: Motivation Introduction Interoperability Interoperability IOR & IOGR CORBA Clients Java and CORBA CORBA vs. RMI CORBA vs. DCOM Example Evolution Advanced Big Picture Introduction to CORBA by SeyedMasoud 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 SeyedMasoud 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, VisiBroker, JacORB, 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 SeyedMasoud 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 SeyedMasoud 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 HelloPOA { public void say_hello() { System.out.println("Hello World!"); } } Introduction to CORBA by SeyedMasoud 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.getProperties(); props.put("org.omg.CORBA.ORBClass", "com.ooc.CORBA.ORB"); props.put("org.omg.CORBA.ORBSingletonClass", "com.ooc.CORBA.ORBSingleton"); Big Picture int status = 0; org.omg.CORBA.ORB orb = null; Introduction to CORBA by SeyedMasoud 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.printStackTrace(); status = 1; } Interoperability Example Steps Write Interface Implement Hello Implement Server if(orb != null) { try { orb.destroy(); } catch(Exception ex) { ex.printStackTrace(); status = 1; } } System.exit(status); Implement Client Compile and Run Evolution Advanced Big Picture } Introduction to CORBA by SeyedMasoud 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.UserException { Steps Write Interface Implement Hello Implement Server org.omg.PortableServer.POA rootPOA = org.omg.PortableServer.POAHelper.narrow( orb.resolve_initial_references("RootPOA")); Implement Client Compile and Run Evolution org.omg.PortableServer.POAManager manager = rootPOA.the_POAManager(); Advanced Big Picture Hello_impl helloImpl = new Hello_impl(); Hello hello = helloImpl._this(orb); Introduction to CORBA by SeyedMasoud 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 refFile = "Hello.ref"; java.io.PrintWriter out = new java.io.PrintWriter( new java.io.FileOutputStream(refFile)); out.println(ref); out.close(); } catch(IOException ex){ ex.printStackTrace(); return 1; } Advanced manager.activate(); orb.run(); Big Picture return 0; } } Introduction to CORBA by SeyedMasoud 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 SeyedMasoud 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 refFile = "Hello.ref"; java.io.BufferedReader in = new java.io.BufferedReader( new java.io.FileReader(refFile)); String ref = in.readLine(); obj = orb.string_to_object(ref); } catch(IOException ex) {ex.printStackTrace(); return 1; } Advanced Hello hello = HelloHelper.narrow(obj); hello.say_hello(); return 0; Big Picture } } Introduction to CORBA by SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 OLE2/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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 48 CORBA Evolution (4) Overview: Motivation CORBA 2.2 (February 1998) – POA – DCOM Interworking – IDL/JAVA language mapping specification. Introduction Interoperability Example Evolution Advanced Big Picture 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 SeyedMasoud 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, v1.2 CORBA 2.6 (December 2001) – Common Security Introduction to CORBA by SeyedMasoud Sadjadi CSE 812 04/14-16/2003 50 CORBA Evolution (6) Overview: Motivation Introduction Interoperability Example CORBA 3.0 (June 2002) – Java and Internet Integration Evolution Advanced Big Picture 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 SeyedMasoud 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 52 POA Supports Scalability Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value QoS 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 SeyedMasoud 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 QoS 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 54 Quality of Service (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value QoS CCM Minimum CORBA RT CORBA FT CORBA Provides policy-based QoS 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 55 Quality of Service (2) Overview: Motivation Introduction Specifying QoS Parameters – Specify for an Object Implementation Interoperability Example Evolution – Specify for a particular Request Advanced POA Object by Value QoS RT CORBA FT CORBA Others Big Picture In a GIOP request, QoS requirements are expressed as part of its Service Context – CORBA resolves conflicts CCM Minimum CORBA In an object reference, QoS 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 56 Quality of Service (3) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value QoS CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Invocation Types – Synchronous: the reply is obtained and returned 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 57 Quality of Service (4) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value QoS 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 QoS 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 58 CORBA Component Model (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced POA Object by Value QoS CCM Minimum CORBA RT CORBA FT 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 SeyedMasoud 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 QoS 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? – K2 Component Server – MicoCCM – OpenCCM Introduction to CORBA by SeyedMasoud 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 QoS 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 61 Minimum CORBA (2) Overview: Motivation Introduction Interoperability Example The POA – Default policies only for: Evolution Advanced POA Object by Value QoS CCM create_thread_policy create_implicit_activation_policy create_servant_retention_policy create_request_processing_policy – No dynamic activation of POAs – No ServantManagers Minimum CORBA RT CORBA FT CORBA Others Big Picture Introduction to CORBA by SeyedMasoud Sadjadi CSE 812 04/14-16/2003 62 Real-Time CORBA (1) Overview: Motivation – Adds QoS control capabilities to regular CORBA. – Improve application predictability by bounding priority inversion – Manage system resources end-to-end. Introduction Interoperability Example Evolution Advanced POA Object by Value QoS CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Features Processor resources Communication resources Memory resources 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 SeyedMasoud 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 CORBA:: Current Scheduling Service Server Servant RTCORBA:: Priority POA RTPOA Object by Value RTCORBA:: Threadpool QoS CCM Minimum CORBA RT CORBA ORB RTORB FT CORBA Others Big Picture IIOP (GIOP/TCP) ESIOP (Others) RTCORBA:: PriorityMapping Introduction to CORBA by SeyedMasoud Sadjadi CSE 812 04/14-16/2003 64 Fault Tolerant CORBA (1) Overview: Motivation Introduction Interoperability Example Evolution Advanced Aims to provide robust support for high reliability Defines a fault-tolerance infrastructure Provides reliability by – entity redundancy POA Object by Value QoS object replication (passive and active) – request retry and redirection – fault detection and recovery CCM Minimum CORBA RT CORBA FT CORBA Others Big Picture Multiple profiles in IOR – Example of a FT corbaloc URL corbaloc::1.2@hostA:683,:1.2@hostB:683/myO bj Introduction to CORBA by SeyedMasoud 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 QoS Client CCM Minimum CORBA Server C Server S1 S2 RT CORBA FT CORBA Others Big Picture CORBA ORB Logging Mechanism Factory Fault Detector Factory Fault Detector CORBA ORB CORBA ORB Recovery Mechanism Logging Mechanism Recovery Mechanism Logging Mechanism Introduction to CORBA by SeyedMasoud 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 QoS 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud 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 SeyedMasoud Sadjadi CSE 812 04/14-16/2003 74