CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents...

117
CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents • Introduction • OMG, OMA, CORBA Object Model • CORBA • Introspection • ORB Interoperability • Run-time features, Fault- tolerance and Component Model • CORBA 3.0 Part 1 Part 2 • Simple Application • IDL to Programming Language mapping • Advanced Programming Issues Appendix • Look into the IDL

Transcript of CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents...

Page 1: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAOverview and Advanced Programming Issues

1998 CTIT, Nikolay Diakov

11

Table Of Contents

• Introduction

• OMG, OMA, CORBA Object Model

• CORBA

• Introspection

• ORB Interoperability

• Run-time features, Fault-tolerance and Component Model

• CORBA 3.0

Part 1 Part 2

• Simple Application

• IDL to Programming Language mapping

• Advanced Programming Issues

Appendix• Look into the IDL

Page 2: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAOverview and Advanced Programming Issues

1998 CTIT, Nikolay Diakov

22

Part 1. Overview

• Proprietary systems

• Networks with proprietary protocols

• Open systems and standardized communication protocols

Page 3: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Introduction

1998 CTIT, Nikolay Diakov

33

• Object Management Group (OMG)

• Common Object Request Broker Architecture (CORBA)

• Object Management Architecture (OMA)

Page 4: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMG

1998 CTIT, Nikolay Diakov

44

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

Page 5: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Common Object Request Broker Architecture

1998 CTIT, Nikolay Diakov

55

Page 6: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA

1998 CTIT, Nikolay Diakov

66

CORBA bus

App1App2

App3

AppX

Page 7: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Object Management Architecture

1998 CTIT, Nikolay Diakov

77

Page 8: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMA

1998 CTIT, Nikolay Diakov

88

Application Objects

Object Request Broker

ObjectServices

CommonFacilities

Object Management Architecture

Page 9: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMA

1998 CTIT, Nikolay Diakov

99

• System oriented components

• Object Request Brokers

• Object Services

Application Objects

Object Request Broker

ObjectServices

CommonFacilities

Page 10: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMA

1998 CTIT, Nikolay Diakov

1100

• System oriented components

• Object Request Brokers

• Object Services

• Application oriented components

• Application Objects

• Common Facilities

Application Objects

Object Request Broker

ObjectServices

CommonFacilities

Page 11: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMA

1998 CTIT, Nikolay Diakov

1111

• System oriented components

• Object Request Brokers

• Object Services

• Application oriented components

• Application Objects

• Common Facilities

• Horizontal

• Vertical

Application Objects

Object Request Broker

ObjectServices

CommonFacilities

Page 12: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMG Object Model (OM)

1998 CTIT, Nikolay Diakov

1122

Page 13: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMG Object Model (OM)

1998 CTIT, Nikolay Diakov

1133

• 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

• PolymorphismInstantiation

Page 14: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

OMG Object Model (OM)

1998 CTIT, Nikolay Diakov

1144

Consists of• Core Object Model

• Components

• Profiles

GoalsApplication portability

Object level

Design level

Source code level

Interoperability

Page 15: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Object Model

1998 CTIT, Nikolay Diakov

1155

• Based on OMG/OM

• Goes concrete on the technology - interaction between clients and servers

Concepts

clients

requests

operations

Interfaces and attributes

Page 16: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Object Services

1998 CTIT, Nikolay Diakov

1166

Page 17: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Object Services

1998 CTIT, Nikolay Diakov

1177

•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

•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

•Support for secure interoperability

• Object Security Service

• Licensing Service

• Other• Life Cycle Service

• Persistence Service

• Concurency Control Service

• Time Service

Page 18: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Interface Definition Language

1998 CTIT, Nikolay Diakov

1188

Page 19: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA IDL

1998 CTIT, Nikolay Diakov

1199

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

Page 20: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA IDL

1998 CTIT, Nikolay Diakov

2200

I D L

I D L

I D L

I D L

I D L

I D L

ORB

C

C++

COBOL

Ada

Smalltalk

More

Client Side Object Implementation

Side COBOL

C

Ada

C++

Smalltalk

More

I D L

I D L

I D L

I D L

I D L

I D L

ORB

Page 21: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA - UML and MOF

1998 CTIT, Nikolay Diakov

2211

•Unified Modeling Language - enables visual modeling and analysis

•Metadata Object Facility - provides a standard repository for metadata within the CORBA architecture

Page 22: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA For Developers

1998 CTIT, Nikolay Diakov

2222

Develop Clients and Servers Independently using the Best Tools for Each Task

Develop Clients and Servers Independently using the Best Tools for Each Task

CORBA Services and CORBA Facilities accessed via standard OMG IDL Interfaces

CORBA Services and CORBA Facilities accessed via standard OMG IDL Interfaces

• 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

Much more than Client-Server

Page 23: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA For Users

1998 CTIT, Nikolay Diakov

2233

• 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

Page 24: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Essential

1998 CTIT, Nikolay Diakov

2244

Page 25: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA

1998 CTIT, Nikolay Diakov

2255

ClientObject

Implementation

ORB

With IDL the interface definition is separated from the implementation

With IDL the interface definition is separated from the implementation

Page 26: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA

1998 CTIT, Nikolay Diakov

2266

ClientObject

Implementation

ORB

Defining the Object’s interface in the OMG IDL creates a language independent API for the Object

Defining the Object’s interface in the OMG IDL creates a language independent API for the Object

Page 27: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA

1998 CTIT, Nikolay Diakov

2277

ClientObject

Implementation

ORB

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.

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

Page 28: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA

1998 CTIT, Nikolay Diakov

2288

ClientObject

Implementation

ORB

The same IDL defines the Client Side API.The same IDL defines the Client Side API.

Page 29: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

2299

Page 30: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3300

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 31: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3311

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 32: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3322

Client• The Client invokes operations

• The invocation is transparent in terms of

• runtime environment

• location

• implementation language

• The Client invokes operations

• The invocation is transparent in terms of

• runtime environment

• location

• implementation language

Page 33: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3333

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 34: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3344

ObjectImplementation

• Implements the interface

• Can be written in any programming language

• Can be independent to the ORB implementation

Page 35: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3355

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 36: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3366

IDLstubs

IDLskeleton

• The stub is the part to include into the client project.• The stub is the part to include into the client project.

Both generated from the same IDL interface

• The skeleton is the part to include into the server project.

• The skeleton is the part to include into the server project.

Both provide the mapping to the particular programming language

Page 37: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3377

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 38: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3388

ORB interface

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

Page 39: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

3399

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 40: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

4400

DII DSI

• Provides dynamic access to the request scheme of the ORB

• No stub specific bindings

• Allows deferred synchronous and oneway requests

• Provides dynamic access to the request scheme of the ORB

• No stub specific bindings

• Allows deferred synchronous and oneway requests

• Allows request to go to implementations that does not have compile-time knowledge about the interface they implement

• Allows request to go to implementations that does not have compile-time knowledge about the interface they implement

Page 41: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

4411

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 42: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

4422

Object Adapter

• Object Activation

• Delivering the requests to the particular implementation

• CORBA 3.0 standardizes Portable Object Adapters

• Object Activation

• Delivering the requests to the particular implementation

• CORBA 3.0 standardizes Portable Object Adapters

Page 43: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

4433

Client

ORBDII

IDLstubs

ORB interface IDLskeleton

DSI

Object Adapter

GIOP/IIOP ORB CORE

ObjectImplementation

Page 44: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Introspection

1998 CTIT, Nikolay Diakov

4444

GIOP/IIOP ORB CORE

Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments.

Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments.

Page 45: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Interoperability

1998 CTIT, Nikolay Diakov

4455

Page 46: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Interoperability

1998 CTIT, Nikolay Diakov

4466

•There are different hardware platforms;

• There are different operating systems;

• There are different network protocols;

• There are different application formats/protocols.

There must be consensus

on interoperability.

One possible answer to the question how to make these things work together is:

Page 47: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Interoperability

1998 CTIT, Nikolay Diakov

4477

• Boundaries which may not be obvious or

logical to you

– departmental (budget, task, group)

boundaries

– site boundaries (company, plant)

– technological boundaries (HW, SW)

Page 48: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Interoperability

1998 CTIT, Nikolay Diakov

4488

ORB ORB

TCP/IP (Internet)

Domain A Domain B

Page 49: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Interoperability

1998 CTIT, Nikolay Diakov

4499

Key steps to Full Interoperability

• Standardize rich, extendible, and generic enough communication protocol

• Each vendor implements mapping to and from this protocol

• Standardize rich, extendible, and generic enough communication protocol

• Each vendor implements mapping to and from this protocol

Page 50: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA InteroperabilityBridging

1998 CTIT, Nikolay Diakov

5500

ORB ORB

TCP/IP (Internet)

Domain A Domain B

Bridge

Client Server Object

Page 51: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA InteroperabilityBridging

1998 CTIT, Nikolay Diakov

5511

• Bridging

• mediated• full-bridging

• half-bridging

• immediate

ORB ORB

Domain ADomain B

Bridge

Page 52: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA InteroperabilityBridging

1998 CTIT, Nikolay Diakov

5522

• Bridging

• mediated• full-bridging

• half-bridging

• immediate

In-line bridges

Request-level bridges

ORB ORB

Domain ADomain B

Bridge

Page 53: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA InteroperabilityBridging

1998 CTIT, Nikolay Diakov

5533

• GIOP

• IIOP

• ESIOP

Page 54: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA goes Real-Time

1998 CTIT, Nikolay Diakov

5544

Page 55: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA goes Real-Time

1998 CTIT, Nikolay Diakov

5555

Real-time CORBA is an optional ORB extension

•fixed-priority scheduling

• control over ORB resources for end-to-end predictability

• flexible communications

Real-time CORBA is an optional ORB extension

•fixed-priority scheduling

• control over ORB resources for end-to-end predictability

• flexible communications

Page 56: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA is Fault-Tolerant

1998 CTIT, Nikolay Diakov

5566

Page 57: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA is Fault-Tolerant

1998 CTIT, Nikolay Diakov

5577

The flexible POA it self is not enough.

A new specification for

fault-tolerant CORBA is standardized.

The flexible POA it self is not enough.

A new specification for

fault-tolerant CORBA is standardized.

Page 58: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA is Fault-Tolerant

1998 CTIT, Nikolay Diakov

5588

An Example is the GIOP offers mechanism of providing multiple addresses in an Interoperable Object Reference. This allows load-balance schemes and fault-tolerant schemes of finding another ORB resource for satisfying a request.

An Example is the GIOP offers mechanism of providing multiple addresses in an Interoperable Object Reference. This allows load-balance schemes and fault-tolerant schemes of finding another ORB resource for satisfying a request.

Page 59: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Component Model

1998 CTIT, Nikolay Diakov

5599

Page 60: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Component Model

1998 CTIT, Nikolay Diakov

6600

CORBAbeansCORBAbeans

•Multiple interfaces per object, object passable by value, messaging servce

•Components does not map 1:1 to interface or CORBA object

•Multiple interfaces per object, object passable by value, messaging servce

•Components does not map 1:1 to interface or CORBA object

Page 61: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA Component Model

1998 CTIT, Nikolay Diakov

6611

CORBA componentCORBA component

• instance identity

• properties

• event notification mechanism

• CORBA scripting facility - assembling applications from CORBA components

• instance identity

• properties

• event notification mechanism

• CORBA scripting facility - assembling applications from CORBA components

Page 62: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

6622

Page 63: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

6633

1. Portable Object Adapter

2. CORBA messaging

3. Objects-By-Value

1. Portable Object Adapter

2. CORBA messaging

3. Objects-By-Value

Page 64: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

6644

1. Portable Object Adapter (POA)

The POA mediates the CORBA objects and the programming implementationsThe POA mediates the CORBA objects and the programming implementations

The main purpose of POA is to provide portability for CORBA server applications. Portability from the implementation of the ORB.

The main purpose of POA is to provide portability for CORBA server applications. Portability from the implementation of the ORB.

Page 65: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

6655

1. Portable Object Adapter (POA) allows

• Creation of CORBA Objects

• Demultiplexing of requests made on each CORBA object

• Dispatching requests to the appropriate implementation that the CORBA Object represents

• Activation/Deactivation of CORBA Objets

• Creation of CORBA Objects

• Demultiplexing of requests made on each CORBA object

• Dispatching requests to the appropriate implementation that the CORBA Object represents

• Activation/Deactivation of CORBA Objets

All this in an ORB implementation independent way

Page 66: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Server Application

CORBA 3.0

1998 CTIT, Nikolay Diakov

6666

1. Portable Object Adapter (POA)

ORB

Request

Page 67: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Server Application

CORBA 3.0

1998 CTIT, Nikolay Diakov

6677

1. Portable Object Adapter (POA)

ORB POA

Request

Page 68: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Server Application

CORBA 3.0

1998 CTIT, Nikolay Diakov

6688

1. Portable Object Adapter (POA)

ORB POA

Request

Implementation(Servant)

Page 69: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

6699

2. CORBA Messaging

• The CORBA messaging fills a big hole in the consistency of the CORBA specification

• It helps reliably communicating over unreliable connections.

• The Client / Servers are not that tightly coupled anymore as in the synchronous invocation.

• Makes CORBA usable in large distributed systems.

• The CORBA messaging fills a big hole in the consistency of the CORBA specification

• It helps reliably communicating over unreliable connections.

• The Client / Servers are not that tightly coupled anymore as in the synchronous invocation.

• Makes CORBA usable in large distributed systems.

Page 70: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

7700

2. CORBA Messaging

• Asynchronous messaging

• Time-independent invocations

• Facilities for specifying messaging quality of service (QoS)

• Asynchronous messaging

• Time-independent invocations

• Facilities for specifying messaging quality of service (QoS)

Page 71: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

7711

2. CORBA Messaging

• Asynchronous messaging

• Callback

• Polling - returns a type, for later polling

•Time-independent invocations

• Facilities for specifying messaging quality of service (QoS)

• Asynchronous messaging

• Callback

• Polling - returns a type, for later polling

•Time-independent invocations

• Facilities for specifying messaging quality of service (QoS)

Page 72: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

7722

2. CORBA Messaging

• Quality of Service Allows specifying policies for quality of message delivery, queuing and priorities.These policies can be applied on level ORB, level Thread, orlevel object.

• Quality of Service Allows specifying policies for quality of message delivery, queuing and priorities.These policies can be applied on level ORB, level Thread, orlevel object.

Page 73: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

7733

3. Objects by Value

• What is passing-by-value?

Page 74: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

7744

3. Objects by Value -How is it possible with CORBA?

Valuetype - new constructed type added to the OMG IDL

• like interfaces it has operations and data members

• it can inherit other Valuetype (single only)

Unlike interfaces

• datamembers are transferred

• operation invocations are local

Valuetype - new constructed type added to the OMG IDL

• like interfaces it has operations and data members

• it can inherit other Valuetype (single only)

Unlike interfaces

• datamembers are transferred

• operation invocations are local

Page 75: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBA 3.0

1998 CTIT, Nikolay Diakov

7755

3. Objects by Value -How is it possible with CORBA?

How the operation invocations are local and still work?

- Java, Smalltalk

- C++

The programmer of the object has to take care of the mechanism of transferring the implementation locally. The extended IDL to programming language mapping just gives the means for doing that.

How the operation invocations are local and still work?

- Java, Smalltalk

- C++

The programmer of the object has to take care of the mechanism of transferring the implementation locally. The extended IDL to programming language mapping just gives the means for doing that.

Page 76: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Programming Issues

1998 CTIT, Nikolay Diakov

7766

Part 2. Advanced Programming Issues

Page 77: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

7777

Page 78: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

7788

0. Define the problem

1. Think distributed

2. Define a communication interface

3. Build the server

4. Build the client

5. Setup a test session

Page 79: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

7799

0. Define the problem

We define our problem in the context of the electronic commerce. We need our client to be able to buy goods from our sites.

Page 80: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

8800

1. Think distributed

Client

Client

Client

ClientServerObject

Page 81: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

8811

2. Define a communication interface

ClientServerObject

Interface Purchase

- operation ListGoodies

- operation AddGoodytoCart

- operation ListCart

- operation Order

Page 82: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

8822

3. Build the server

ClientServerObject

Interface Purchase

- operation ListGoodies

- operation AddGoodytoCart

- operation ListCart

- operation Order

The server will implement the interface. It will provide the code of each operation, in a language that is most suitable and chosen by the developer.

The server will implement the interface. It will provide the code of each operation, in a language that is most suitable and chosen by the developer.

Page 83: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

8833

4. Build the client

ClientServerObject

Interface Purchase

- operation ListGoodies

- operation AddGoodytoCart

- operation ListCart

- operation Order

The client will include the some code to be able to

locate the Server object, bind to an instance, and to

call operations on it.

The client will include the some code to be able to

locate the Server object, bind to an instance, and to

call operations on it.

Page 84: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBASimple Application In CORBA

1998 CTIT, Nikolay Diakov

8844

5. Setup a test session

Client

ServerObject

ORB1. Run the ORB software on a machine connected to the network.

1. Run the ORB software on a machine connected to the network. 2. Run the SERVER

program. If on a remote machine, depending on the implementation the SERVER will find the ORB.

2. Run the SERVER program. If on a remote machine, depending on the implementation the SERVER will find the ORB.

3. Run the Client.3. Run the Client.

Page 85: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAThe Interface Definition Language

1998 CTIT, Nikolay Diakov

8855

Page 86: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAThe Interface Definition Language

1998 CTIT, Nikolay Diakov

8866

Similar to C++• preprocessing• lexical rules• grammar• inheritance

IDL is NOT an implementation language!

Page 87: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAIDL to Programming Language Mapping

1998 CTIT, Nikolay Diakov

8877

Page 88: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAIDL to Programming Language Mapping

1998 CTIT, Nikolay Diakov

8888

• Translates from OMG IDL constructs

to programming language constructs

• Special IDL compiler generate stubs

for the client and skeletons for the

server objects

Page 89: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAIDL to Java Mapping

1998 CTIT, Nikolay Diakov

8899

•IDL Modules map to Java Packages

•Interfaces map to public Java Interfaces + “Helper” and “Holder” Java classes

•IDL Operations map to Java methods

•the integral types (Integer, float) map to the corresponding Java integral types

•exceptions map to Java exceptions

Page 90: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9900

Page 91: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9911

1. Callbacks

2. Interface Repository

3. DII

4. DSI

Page 92: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9922

1. Callbacks

ClientServer

Normally, the communicationbetween clients and serversfollow the request/response scheme. This however, is not sufficient sometimes.

Normally, the communicationbetween clients and serversfollow the request/response scheme. This however, is not sufficient sometimes.

Requestthen

Response

Page 93: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9933

1. Callbacks

ClientServer

Imagine the server being able to invoke methods on the client.The client becomes a server

Imagine the server being able to invoke methods on the client.The client becomes a server

Requestthen

Response

Page 94: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9944

1. Callbacks

ClientServer

How is this done on CORBAHow is this done on CORBA

•The client implements an interfacetoo.

•The client implements an interfacetoo.

Page 95: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9955

1. Callbacks

ClientServer

How is this done on CORBAHow is this done on CORBA

•The client invokes an operation on the server passing a reference to its interfaces

•The client invokes an operation on the server passing a reference to its interfaces

Page 96: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9966

1. Callbacks

ClientServer

How is this done on CORBAHow is this done on CORBA

•The server is now able to invoke operations on the client anytime

•The server is now able to invoke operations on the client anytime

Page 97: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9977

2. Interface Repository

Page 98: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9988

2. Interface Repository• Interface Repository allows:

– Implementation of browsers that allow designers to determine what have been defined in a system.

– CASE tools to aid software design, writing and debugging

– Applications to use DII to learn dynamically about objects and interfaces that were not know at compile time.

Page 99: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

9999

3. DII

Page 100: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110000

3. DII

The Dynamic Invocation Interface (DII) allows clients to dynamically

• discover objects;• discover objects’ interfaces;• create requests;• invoke requests;• receive responses.

Page 101: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110011

3. DII - Features

• requests appear as objects themselves;

• requests are reusable;

• invocation may be synchronous or deferred synchronous

Page 102: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110022

3. DII

ClientServerServerServer

Using DII the client discoversthe proper server object.

Using DII the client discoversthe proper server object.

Page 103: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110033

3. DII

ClientServer

ServerServer

The client discovers theappropriate interface implemented from this object

The client discovers theappropriate interface implemented from this object

Page 104: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110044

3. DII

ClientServer

ServerServer

The client creates a request object, which encapsulates a invocation of a operation on the servers interface.

The client creates a request object, which encapsulates a invocation of a operation on the servers interface.

Page 105: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110055

3. DII

ClientServer

ServerServer

The client invokes the request.

The client invokes the request.

Page 106: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110066

3. DII

ClientServer

ServerServer

The client invokes the request.

The client invokes the request.

Page 107: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110077

3. DII

ClientServer

ServerServer

The client invokes the request.

The client invokes the request.

Page 108: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110088

3. DII

ClientServer

ServerServer

The client obtains a resultif necessary.

The client obtains a resultif necessary.

Page 109: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

110099

3. DII

ClientServer

ServerServer

The client obtains a resultif necessary.

The client obtains a resultif necessary.

Page 110: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111100

3. DII

ClientServer

ServerServer

The client obtains a resultif necessary.

The client obtains a resultif necessary.

Page 111: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111111

3. DII

ClientServerServerServer

This scenario can be usedas many times as necessary.The request object and all other object can be reused.This has potential to boost upperformance.

This scenario can be usedas many times as necessary.The request object and all other object can be reused.This has potential to boost upperformance.

Page 112: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111122

3. DII

ClientServerServerServer

Requests can be sent in a deferred style. These request does not block the client in expectation for a result. The result can be obtained later, when ready and/or when needed.

Requests can be sent in a deferred style. These request does not block the client in expectation for a result. The result can be obtained later, when ready and/or when needed.

Page 113: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111133

3. DII

ClientServerServerServer

Requests can be sent in a oneway style. These request does not block the client in expectation for a result. There is no result.These invocation are very useful sometimes when the clientwants to announce something tothe server object but no result and no waiting for completionof the invocation is needed.

Requests can be sent in a oneway style. These request does not block the client in expectation for a result. There is no result.These invocation are very useful sometimes when the clientwants to announce something tothe server object but no result and no waiting for completionof the invocation is needed.

Page 114: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111144

4. DSI

Page 115: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111155

4. DSI

Client

Server

Dynamic Skeleton Interface is the Server side analog ofthe DII scheme.

Dynamic Skeleton Interface is the Server side analog ofthe DII scheme.

Page 116: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111166

4. DSI

Client

Server

Each DSI request enters the particular interface the same wayas the static. The difference is that the implementation has to dynamically determine which operation has been invokedand demarshal the parameters.

Each DSI request enters the particular interface the same wayas the static. The difference is that the implementation has to dynamically determine which operation has been invokedand demarshal the parameters.

Request

IR

Page 117: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection.

Domain BDomain A

CORBAAdvanced Topics

1998 CTIT, Nikolay Diakov

111177

4. DSI - Usage

The DSI is mainly used in implementation of software bridges for Interoperability. It is naturally and easy through DSI to translate all request of one type to another domain.

The DSI is mainly used in implementation of software bridges for Interoperability. It is naturally and easy through DSI to translate all request of one type to another domain.

ORB1ORB2

Client ServerBridge

DSI