1.18k likes | 1.31k Views
CORBA Overview and Advanced Programming Issues. 1. Table Of Contents. Part 1. Part 2. Introduction OMG, OMA, CORBA Object Model CORBA Introspection ORB Interoperability Run-time features, Fault-tolerance and Component Model CORBA 3.0. Simple Application
E N D
CORBAOverview and Advanced Programming Issues 1 Table Of Contents Part 1 Part 2 • Introduction • OMG, OMA, CORBA Object Model • CORBA • Introspection • ORB Interoperability • Run-time features, Fault-tolerance and Component Model • CORBA 3.0 • Simple Application • IDL to Programming Language mapping • Advanced Programming Issues Appendix • Look into the IDL 1998 CTIT, Nikolay Diakov
CORBAOverview and Advanced Programming Issues 2 Part 1. Overview • Proprietary systems • Networks with proprietary protocols • Open systems and standardized communication protocols 1998 CTIT, Nikolay Diakov
Introduction 3 • Object Management Group (OMG) • Common Object Request Broker Architecture (CORBA) • Object Management Architecture (OMA) 1998 CTIT, Nikolay Diakov
OMG 4 • Founded April 1989. • Largest software consortium in the world • It has 800+ participants • Small staff (27 full time); no internal development. Offices in U.S.A., Germany, Japan, U.K, Australia, India. • Dedicated to creating and popularizing object-oriented standards for application integration based on existing technology. 1998 CTIT, Nikolay Diakov
Common Object Request Broker Architecture 5 1998 CTIT, Nikolay Diakov
CORBA 6 App1 AppX App2 App3 CORBA bus 1998 CTIT, Nikolay Diakov
Object Management Architecture 7 1998 CTIT, Nikolay Diakov
OMA 8 Application Objects Object Management Architecture Object Request Broker Object Services Common Facilities 1998 CTIT, Nikolay Diakov
OMA 9 • System oriented components • Object Request Brokers • Object Services Application Objects Object Request Broker Object Services Common Facilities 1998 CTIT, Nikolay Diakov
OMA 10 • System oriented components • Object Request Brokers • Object Services • Application oriented components • Application Objects • Common Facilities Application Objects Object Request Broker Object Services Common Facilities 1998 CTIT, Nikolay Diakov
OMA 11 • System oriented components • Object Request Brokers • Object Services • Application oriented components • Application Objects • Common Facilities • Horizontal • Vertical Application Objects Object Request Broker Object Services Common Facilities 1998 CTIT, Nikolay Diakov
OMG Object Model (OM) 12 1998 CTIT, Nikolay Diakov
OMG Object Model (OM) 13 • Object • Combines Functionality and Data • Typically represents a real-world object • Has a well-defined interface (Through IDL) • and an “object reference” or address • Follows basic OO principles: • Encapsulation Inheritance • Polymorphism Instantiation 1998 CTIT, Nikolay Diakov
OMG Object Model (OM) 14 Consists of • Core Object Model • Components • Profiles Goals Application portability Object level Design level Source code level Interoperability 1998 CTIT, Nikolay Diakov
CORBA Object Model 15 • Based on OMG/OM • Goes concrete on the technology - interaction between clients and servers Concepts clients requests operations Interfaces and attributes 1998 CTIT, Nikolay Diakov
CORBA Object Services 16 1998 CTIT, NikolayDiakov
CORBA Object Services 17 • Access to object references • Naming Service • Object Trader Service • Notification of significant events of change of state • Event Service • Notification Service • Support of transactional semantics • Transaction Service • Support for secure interoperability • Object Security Service • Licensing Service • Other • Life Cycle Service • Persistence Service • Concurency Control Service • Time Service 1998 CTIT, Nikolay Diakov
CORBA Interface Definition Language 18 1998 CTIT, Nikolay Diakov
CORBA IDL 19 OMG/ISO IDL (Interface Definition Language) Separates the Interface from the Implementation • multiple-inheritance, strongly typed, public interface specification language; • independent of any particular language/compiler; • mappings will be provided for many languages/compilers; • not a programming language. Enables Interoperability 1998 CTIT, Nikolay Diakov
C COBOL C++ C I D L I D L I D L I D L COBOL Ada I D L I D L I D L I D L Small talk Ada I D L I D L I D L I D L Small talk C++ More More CORBA IDL 20 Client Side Object Implementation Side ORB ORB 1998 CTIT, Nikolay Diakov
CORBA - UML and MOF 21 • Unified Modeling Language - enables visual modeling and analysis • Metadata Object Facility - provides a standard repository for metadata within the CORBA architecture 1998 CTIT, Nikolay Diakov
CORBA For Developers 22 Much more than Client-Server • CORBA provides a sophisticated base for software development • CORBA Services provide necessary OO foundation • CORBA Facilities standardize building blocks • Developers create or assemble Application Objects Develop Clients and Servers Independently using the Best Tools for Each Task CORBA Services and CORBA Facilities accessed via standard OMG IDL Interfaces 1998 CTIT, Nikolay Diakov
CORBA For Users 23 • Purchase Server Objects from Multiple Vendors and Integrate Under One or More Client Applications • Seamlessly Integrate In-House and Purchased Objects • Acquire & Maintain a Single Set of Business Objects Accessed by the Entire Enterprise • Each Division Accesses These Common Objects Using a GUI Built for its Own Needs 1998 CTIT, Nikolay Diakov
CORBA Essential 24 1998 CTIT, Nikolay Diakov
CORBA 25 With IDL the interface definition is separated from the implementation Client Object Implementation ORB 1998 CTIT, Nikolay Diakov
CORBA 26 Defining the Object’s interface in the OMG IDL creates a language independent API for the Object Client Object Implementation ORB 1998 CTIT, Nikolay Diakov
CORBA 27 Objects may be written in programming languages -- C, C++, Java, Smalltalk, Ada, COBOL, Visual Basic, or might be Wrapped Legacy Applications, Tool-Generated Objects, or Objects purchased from Vendors. • C++ • Java • Pascal • Ada Client Object Implementation ORB 1998 CTIT, Nikolay Diakov
CORBA 28 The same IDL defines the Client Side API. Client Object Implementation ORB 1998 CTIT, Nikolay Diakov
CORBA Introspection 29 1998 CTIT, Nikolay Diakov
CORBA Introspection 30 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 31 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 32 • The Client invokes operations • The invocation is transparent in terms of • runtime environment • location • implementation language Client 1998 CTIT, Nikolay Diakov
CORBA Introspection 33 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 34 • Implements the interface • Can be written in any programming language • Can be independent to the ORB implementation Object Implementation 1998 CTIT, Nikolay Diakov
CORBA Introspection 35 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 36 Both generated from the same IDL interface Both provide the mapping to the particular programming language The stub is the part to include into the client project. The skeleton is the part to include into the server project. IDL stubs IDL skeleton 1998 CTIT, Nikolay Diakov
CORBA Introspection 37 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 38 ORB is a logical entity that may be implemented in various ways. To hide implementation details from the applications, the CORBA specification defines an abstract interface for an ORB. This interface provides a variety of helper functions. ORB interface 1998 CTIT, Nikolay Diakov
CORBA Introspection 39 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 40 Allows request to go to implementations that does not have compile-time knowledge about the interface they implement Provides dynamic access to the request scheme of the ORB No stub specific bindings Allows deferred synchronous and oneway requests DII DSI 1998 CTIT, Nikolay Diakov
CORBA Introspection 41 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 42 Object Activation Delivering the requests to the particular implementation CORBA 3.0 standardizes Portable Object Adapters Object Adapter 1998 CTIT, Nikolay Diakov
CORBA Introspection 43 Client Object Implementation ORB DII IDL stubs ORB interface IDL skeleton DSI Object Adapter GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Introspection 44 Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments. GIOP/IIOP ORB CORE 1998 CTIT, Nikolay Diakov
CORBA Interoperability 45 1998 CTIT, Nikolay Diakov
There must be consensus on interoperability. CORBA Interoperability 46 • There are different hardware platforms; • There are different operating systems; • There are different network protocols; • There are different application formats/protocols. One possible answer to the question how to make these things work together is: 1998 CTIT, Nikolay Diakov
CORBA Interoperability 47 • Boundaries which may not be obvious or logical to you • departmental (budget, task, group) boundaries • site boundaries (company, plant) • technological boundaries (HW, SW) 1998 CTIT, Nikolay Diakov
CORBA Interoperability 48 Domain B Domain A ORB ORB TCP/IP (Internet) 1998 CTIT, Nikolay Diakov
CORBA Interoperability 49 Key steps to Full Interoperability Standardize rich, extendible, and generic enough communication protocol Each vendor implements mapping to and from this protocol 1998 CTIT, Nikolay Diakov
CORBA InteroperabilityBridging 50 Domain B Domain A Server Object Client ORB ORB Bridge TCP/IP (Internet) 1998 CTIT, Nikolay Diakov