Presentation is loading. Please wait.

Presentation is loading. Please wait.

Slide 1 © Ingeniørhøjskolen i Århus Objektorienteret Middleware (OOMI) CORBA Introduction.

Similar presentations


Presentation on theme: "Slide 1 © Ingeniørhøjskolen i Århus Objektorienteret Middleware (OOMI) CORBA Introduction."— Presentation transcript:

1 Slide 1 © Ingeniørhøjskolen i Århus Objektorienteret Middleware (OOMI) CORBA Introduction

2 Slide 2 © Ingeniørhøjskolen i Århus Outline CORBA (part one) Introduction & Background Architecture Session & Presentation layer GIOP / IIOP / CDR CORBA Interface Definition Language – IDL Language mappings CORBA development steps

3 Slide 3 © Ingeniørhøjskolen i Århus Who is the OMG? OMG: Object Management Group http://www.omg.org Non-profit organization in the US, representatives in United Kingdom, Germany, Japan, India, and Australia Founded April 1989 More than 800 members Dedicated to creating and popularizing object-oriented industry standards for application integration, e.g. CORBA 1.0 (1995) –> CORBA 3.1 UML 1.1 (1997) -> 2.3 (2010) DDS 1.0 (2003) -> DDS 1.3 (2010) Many others (http://www.omg.org/technology/documents/spec_catalog.htm)

4 Slide 4 © Ingeniørhøjskolen i Århus Goal of CORBA CORBA: Common Object Request Broker Architecture Support distributed and heterogeneous object request in a way transparent to users and application programmers “King” of OO-Middleware Facilitate the integration of new components with legacy components (COBOL, C, ADA, C++, C#, Delphi, Python) Open standard that can be used free of charge Based on wide industry consensus But not much Microsoft support

5 Slide 5 © Ingeniørhøjskolen i Århus CORBA Problems Problem with CORBA Considered too complex by many Open standards -> cluttered solutions No Microsoft Support Is CORBA dead?

6 Slide 6 © Ingeniørhøjskolen i Århus The Specifications CORBA is a collection of specifications http://www.omg.org/technology/documents/corba_spec_catalog.htm Common Object Request Broker Architecture (CORBA/IIOP) (3.1) CORBA Component Model (4.0) Light Weight CCM CORBA/e (replaces Minimum CORBA) Real-Time CORBA (Dynamic/Static Scheduling) Families of specifications: CORBAservices Specifications CORBAfacilities Specifications OMG Domain Specifications IDL / Language Mapping Specifications Many others Realted to UML UML Profile for CORBA (1.0)

7 Slide 7 © Ingeniørhøjskolen i Århus CORBA History CORBA 1.0 (1991): IDL, C mapping CORBA 1.1 (1992): BOA CORBA 1.2 (1993): minor updates CORBA 2.0 (1996): DSI, GIOP, IIOP, C++, SmallTalk mappings CORBA 2.1 (1997) : Secure IIOP / SSL, COBOL, ADA mappings CORBA 2.2 (1998): POA, Java mapping CORBA 2.3 (1999): Objects by Value CORBA 2.4 (2000) : INS & Interop services CORBA 2.5 (2001) : Real-time CORBA CORBA 2.6 (2001) : Common Security CORBA 3.0 (2002): CCM, Minimum CORBA CORBA 3.1 (2008): Several changes

8 Slide 8 © Ingeniørhøjskolen i Århus CORBA version Support Suns Java IDL: 2.3.1 (in part) Java OmniORB: 2.6 C++, Python Progress ORBIX: 2.6 http://web.progress.com/orbix/supported_platforms.html http://web.progress.com/orbix/supported_platforms.html Java, C++ Progress ORBACUS 2.6 http://web.progress.com/orbacus/supported_platforms.html http://web.progress.com/orbacus/supported_platforms.html Java, C++ Borland Visibroker Delphi, Java,.NET, C++

9 Slide 9 © Ingeniørhøjskolen i Århus Application Objects CORBA Facilities CORBA Services (mandatory) Domain Interfaces Object Management Architecture (OMA) Object Request Broker

10 Slide 10 © Ingeniørhøjskolen i Århus CORBA Architecture1 Many different vendors and ORB types Many of which do not interoperate Must check specification compliance OrbBacus from IONA produces both C++ and Java Sun J2SE SDK has only Java-based ORB C++ ORB from IONA will work with SUN ORB as specified Many others MicoORB, Middcor, TAO, openORB, VisiBroker OmniORB OrbExpress: FPGA hardware ORB!

11 Slide 11 © Ingeniørhøjskolen i Århus One standardised interface One interface per object operation ORB-dependent interface One interface per object adapter Dynamic Invocation Client Stubs ORB Interface Implementation Skeletons Client Object Implementation ORB Core Object Adapter CORBA Architecture 2

12 Slide 12 © Ingeniørhøjskolen i Århus CORBA 2.0 Applications GIOP ESIOP IIOPDOETalk........ DCE-CIOP........ Mandatory: provides "out of the box" interoperability Interoperability Protocols Environment Specific.. IIOP: Internet Inter-ORB Protocol is the primary CORBA transport protocol

13 Slide 13 © Ingeniørhøjskolen i Århus General Inter-ORB Protocol (GIOP) Handles the session & presentation layer Defines seven message primitives: Request, Reply, Locate Request, Locate Reply, Cancel request, Close Connection, Message Error More simple than JRMP for Java RMI Internet Inter-ORB Protocol (IIOP) Maps GIOP to TCP/IP Provides operations to open and close TCP/IP connections Is required from ORBs for CORBA compliance But intra vendor ORB com is not restricted to this More on the IIOP later in the course

14 Slide 14 © Ingeniørhøjskolen i Århus Common Data Representation (CDR) Defined as part of GIOP Presentation layer implementation to support heterogeneity Mapping of IDL data types to transport byte stream Encodings of primitive types constructed types interoperable object references

15 Slide 15 © Ingeniørhøjskolen i Århus Recap - motivation for an IDL IDL: Interface Definition Language Components of distributed systems are written in different programming languages Programming languages may or may not have their own object model Object models largely vary Differences need to be overcome in order to facilitate integration

16 Slide 16 © Ingeniørhøjskolen i Århus Heterogeneous OO Network CORBA C++ Client App.3 CORBA C# Client App.2 CORBA Java Client App.1 TCP/IP Network CORBA Cobol Database Server DB “Object Wrapping of non OO application” Different ORB’s from different vendors, on different operating systems – and written in different languages = Heterogenity

17 Slide 17 © Ingeniørhøjskolen i Århus PL 6 2 5 1 4 3 6 2 5 1 4 3 IDL CORBA IDL & Mappings Avoid multiple mappings

18 Slide 18 © Ingeniørhøjskolen i Århus IDL Common Object Model Smalltalk Cobol Java Ada-95 C++ C C CORBA Programming Language Bindings.NET Janeva / Middcor (C#) Win32 Delphi

19 Slide 19 © Ingeniørhøjskolen i Århus Interface Definition Language (IDL) Language for expressing all concepts of the middleware’s object model Should be programming-language independent not computationally complete Bindings to different programming languages are needed language bindings are specified by CORBA The IDL is very comprehensive – please read and experiment with it

20 Slide 20 © Ingeniørhøjskolen i Århus Example UML to IDL mapping Player -name:string -Number:int +book() Team -name:string +bookGoalies() plays in 111..16 +transfer(p:Player) Club -noOfMembers:int -location:Address has 1 * uses Organization #name:string coaches 1..* Trainer -name:string 11..* +train() works for

21 Slide 21 © Ingeniørhøjskolen i Århus Constructed types CORBA Object Model: Types typedef struct Address { string street; string postcode; string city; }; typedef sequence AddressList; interface Team {... }; Atomic types Objec t type

22 Slide 22 © Ingeniørhøjskolen i Århus CORBA Object Model: Modules module Soccer { typedef struct Address { string street; string postcode; string city; }; module People { typedef struct Address { string flat_number; string street; string postcode; string city; string country; }; Modules = namespaces Soccer::Address People::Address

23 Slide 23 © Ingeniørhøjskolen i Århus CORBA Object Model: Attributes interface Player; typedef sequence PlayerList; interface Trainer; typedef sequence TrainerList; interface Team { readonly attribute string name; attribute TrainerList coached_by; attribute Club belongs_to; attribute PlayerList players;... }; Attribute typeAttribute name changeable Clients cannot change value

24 Slide 24 © Ingeniørhøjskolen i Århus CORBA Object Model: Operations interface Team {... void bookGoalies(in Date d); string print(); }; Parameter list Parameter kind Parameter type Parameter name Operation name used in requests Return types

25 Slide 25 © Ingeniørhøjskolen i Århus CORBA Object Model: Exceptions Generic Exceptions (e.g. network down, invalid object reference, out of memory) Type-specific Exceptions (e.g. PlayerBooked) exception PlayerBooked{sequence free;}; interface Team { void bookGoalies(in Date d) raises(PlayerBooked); }; exception PlayerBooked{sequence free;}; interface Team { void bookGoalies(in Date d) raises(PlayerBooked); }; Exception data Operations declare exceptions they raise Exception name

26 Slide 26 © Ingeniørhøjskolen i Århus CORBA Object Model: Subtypes interface Organization { readonly attribute string name; }; interface Club : Organization { exception NotInClub{}; readonly attribute short noOfMembers; readonly attribute Address location; attribute TeamList teams; attribute TrainerList trainers; void transfer(in Player p) raises NotInClub; }; interface Organization { readonly attribute string name; }; interface Club : Organization { exception NotInClub{}; readonly attribute short noOfMembers; readonly attribute Address location; attribute TeamList teams; attribute TrainerList trainers; void transfer(in Player p) raises NotInClub; }; Inherited by Club Supertype Implicit supertype: Object This has only been a minimal presentation of the IDL

27 Slide 27 © Ingeniørhøjskolen i Århus Legal Values in CORBA (Types)

28 Slide 28 © Ingeniørhøjskolen i Århus Interface Definition Design Server Stub Generation Client Stub Generation Server Coding Client Coding Server Registration Development Steps – CORBA vs Java RMI & Web services SOAP: WSDL Java2WSDL WSDL2JAVA AXIS SOAP RMI: rmic RMI: JAVA J2SE JDK Start with Server Interface Coding: JAVA Start with Server Interface Coding: JAVA rmiregistry CORBA CORBA: IDL ORB RMI: JAVA interface C++, Java …

29 Slide 29 © Ingeniørhøjskolen i Århus C++ Compiler, Linker Server Client.cc Server.cc C++ Compiler, Linker Client Team.idl included in generates reads IDL-Compiler Teamcl.hh Teamcl.cc Teamsv.cc Teamsv.hh CORBA Client and Server Implementation Next we will look into a simple CORBA programming example

30 Slide 30 © Ingeniørhøjskolen i Århus Læringsmål Alignment Når kurset er færdigt forventes den studerende at kunne: Definere, beskrive og sammenligne forskellige typer af objektorienterede middleware frameworks til apparater og computere, med primær fokus på CORBA og sekundært ICE teknologierne, herunder fordele og ulemper forbundet med de forskellige teknologier Definere og beskrive principper omkring transparens og heterogenitet i relation til middlewareteknologier Definere og beskrive gængse teorier, metoder og retningslinier indenfor det objektorienterede middleware paradigme og anvende disse til at designe effektive distribuerede systemer Designe og konstruere et distribueret system der gør brug af CORBA og ICE teknologierne med tilhørende værktøjssupport I kan nu definere og beskrive Grundlæggende CORBA principper I kan nu definere og beskrive Grundlæggende CORBA principper Stubbe, Proxy, IDL, Retningslinier, transp., hetero. IDL Compiler, referencer Stubbe, Proxy, IDL, Retningslinier, transp., hetero. IDL Compiler, referencer Grundlæggende forståelse For hvad der skal til af CORBA Teknologier, og værktøjer Grundlæggende forståelse For hvad der skal til af CORBA Teknologier, og værktøjer


Download ppt "Slide 1 © Ingeniørhøjskolen i Århus Objektorienteret Middleware (OOMI) CORBA Introduction."

Similar presentations


Ads by Google