itonk1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ITONK1 PowerPoint Presentation
Download Presentation
ITONK1

Loading in 2 Seconds...

play fullscreen
1 / 30

ITONK1 - PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ITONK1' - lovie


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
itonk1

ITONK1

CORBA & ICE Introduction

goals of this lesson
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
outline
Outline
  • CORBA & ICE
    • Introduction & Background
    • Architecture
    • Session & Presentation layer
    • CORBA Interface Definition Language – IDL
    • ICE IDL: Slice
    • Language mappings
corba organization
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)
goal of corba
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
corba problems
CORBA Problems
  • Problem with CORBA
    • Considered too complex by many
    • Open standards -> cluttered solutions
    • No Microsoft Support
    • Is CORBA dead?
the specifications
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)
corba history
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
ice background history
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
object management architecture oma
Object Management Architecture (OMA)

CORBAFacilities

DomainInterfaces

ApplicationObjects

Object Request Broker

CORBA Services(mandatory)

corba architecture1
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!
corba architecture 2

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
interoperability protocols
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

general inter orb protocol giop
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

common data representation cdr
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
recap motivation for an idl
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
heterogeneous oo network

“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

corba idl mappings

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

corba programming language bindings

Smalltalk

C++

Ada-95

Java

C

.NET

Cobol

CORBA Programming Language Bindings

IDL

Win32 Delphi

Common

Object

Model

Janeva / Middcor (C#)

ice language support
ICE Language Support
  • C++
  • Java
  • .NET
  • Python
  • PHP
  • Objective C
  • Ruby
interface definition language idl
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

example uml to idl mapping

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()

corba object model types

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 { ... };

corba object model modules
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

corba object model attributes

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;

...

};

corba object model operations

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();

};

corba object model exceptions

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);

};

corba object model subtypes

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

ice vs corba comparision
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