1 / 30

ITONK1

ITONK1. CORBA & ICE Introduction. Goals of this lesson. After this 2x35 min. lesson you will be : Introduced to CORBA and ICE Ready to present their position in the Middleware technology family, when and where to use it You will not: Be an expert. More practice and theory is required.

lovie
Download Presentation

ITONK1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ITONK1 CORBA & ICE Introduction

  2. Goals of this lesson • After this 2x35 min. lesson you will be: • Introduced to CORBA and ICE • Ready to present their position in the Middleware technology family, when and where to use it • You will not: • Be an expert. More practice and theory is required

  3. Outline • CORBA & ICE • Introduction & Background • Architecture • Session & Presentation layer • CORBA Interface Definition Language – IDL • ICE IDL: Slice • Language mappings

  4. CORBA Organization • 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.0.3 (2006) • UML 1.1 nov. 97. -> 2.1 (2006)

  5. Goal of CORBA • CORBA: Common Object Request Broker Architecture • Support distributed and heterogeneousobject 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

  6. CORBA Problems • Problem with CORBA • Considered too complex by many • Open standards -> cluttered solutions • No Microsoft Support • Is CORBA dead?

  7. 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.0.3) • CORBA Component Model (3.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)

  8. CORBA History • CORBA 1.0 (October 1991): IDL, C mapping • CORBA 1.1 (February 1992): BOA • CORBA 1.2 (December 1993): minor updates • CORBA 2.0 (August 1996): DSI, GIOP, IIOP, C++, SmallTalk mappings • CORBA 2.1 (August 1997) : Secure IIOP / SSL, COBOL, ADA mappings • CORBA 2.2 (February 1998): POA, Java mapping • CORBA 2.3 (June 1999): Objects by Value • CORBA 2.4 (October 2000) : INS & Interop services • CORBA 2.5 (September 2001) : Real-time CORBA • CORBA 2.6 (December 2001) : Common Security • CORBA 3.0 (July 2002): CCM, Minimum CORBA • CORBA 3.0.2 (December 2002): Minor Updates

  9. ICE Background & History • ICE: Internet Communication Engine • Group of ex CORBA specialists: • Standard committees is ruining CORBA • We need to “start-over” • GPL – but controlled by one company • ZeroC.com • 2003: ZeroC announces ICE 1.01

  10. Object Management Architecture (OMA) CORBAFacilities DomainInterfaces ApplicationObjects Object Request Broker CORBA Services(mandatory)

  11. 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!

  12. Object Implementation Client Implementation Skeletons Object Adapter Dynamic Invocation ORB Interface Client Stubs ORB Core One standardised interface One interface per object operation One interface per object adapter ORB-dependent interface CORBA Architecture 2

  13. ICE Architecture

  14. Interoperability Protocols Applications EnvironmentSpecific .. CORBA 2.0 ESIOP GIOP ........ ........ IIOP DOETalk DCE-CIOP Mandatory: provides "out of the box" interoperability IIOP: Internet Inter-ORB Protocol is the primary CORBA transport protocol

  15. 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

  16. 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

  17. 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

  18. “Object Wrappingof nonOO application” CORBA C++ Client App.3 CORBAC# Client App.2 CORBA Java Client App.1 Heterogeneous OO Network CORBA CobolDatabase Server TCP/IPNetwork DB Different ORB’s from different vendors, on different operating systems – and written in different languages = Heterogenity

  19. PL PL 1 2 PL IDL PL 6 3 PL PL 5 4 CORBA IDL & Mappings PL PL 1 2 Avoid multiple mappings PL PL 6 3 PL PL 5 4

  20. Smalltalk C++ Ada-95 Java C .NET Cobol CORBA Programming Language Bindings IDL Win32 Delphi Common Object Model Janeva / Middcor (C#)

  21. ICE Language Support • C++ • Java • .NET • Python • PHP • Objective C • Ruby

  22. 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 – don’t try to learn everything The IDL of ICE is called SLICE

  23. Organization #name:string uses Trainer 1 1..* Club -name:string works for -noOfMembers:int -location:Address +train() +transfer(p:Player) 1 1..* has coaches 1..* * Team plays in -name:string 1 11..16 +bookGoalies() Example UML to IDL mapping Player -name:string -Number:int +book()

  24. Constructed types Atomic types Object type CORBA Object Model: Types typedef struct Address { string street; string postcode; string city; }; typedef sequence<Address> AddressList; interface Team { ... };

  25. 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; }; }; Soccer::Address Modules = namespaces People::Address

  26. Clients cannot change value changeable Attribute type Attribute name CORBA Object Model: Attributes interface Player; typedef sequence<Player> PlayerList; interface Trainer; typedef sequence<Trainer> TrainerList; interface Team { readonly attribute string name; attribute TrainerList coached_by; attribute Club belongs_to; attribute PlayerList players; ... };

  27. Parameter list Parameter kind Return types Parameter name Parameter type Operation name used in requests CORBA Object Model: Operations interface Team { ... void bookGoalies(in Date d); string print(); };

  28. Exception name Operations declare exceptions they raise CORBA Object Model: Exceptions • Generic Exceptions (e.g. network down, invalid object reference, out of memory) • Type-specific Exceptions (e.g. PlayerBooked) Exception data exceptionPlayerBooked{sequence<Date> free;}; interface Team { void bookGoalies(in Date d) raises(PlayerBooked); };

  29. Supertype CORBA Object Model: Subtypes Implicit supertype: Object Inherited by Club interface Organization { readonly attribute string name; }; interface Club : Organization { exceptionNotInClub{}; readonly attribute short noOfMembers; readonly attribute Address location; attribute TeamList teams; attribute TrainerList trainers; void transfer(in Player p) raisesNotInClub; }; This has only been a minimal presentation of the IDL

  30. ICE vs CORBA Comparision • Performance is equal • Appears easier than CORBA • CORBA is based on standards and is open and widely supported • ICE has ”one environment for all” – but is controlled by ZeroC • ICE is GPL with all bindings • Hard to find both C++, Java and .NET CORBA in one product

More Related