You are on page 1of 18

Title: OMG Logo.

FH3

A Tour of CORBA
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

A Brief Technical Tour through the


standard......

Copyright © 1994, Object Management Group. [1]


Title: OMG Logo.FH3

A Quick History
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Caller

Caller

Stub Interconnection Network

Skeleton
Callee

Callee

Copyright © 1994, Object Management Group. [2]


Title: OMG Logo.FH3
Creator: FreeHand 3.1

A Request
CreationDate: 3/22/92 9:59 PM

Client Object Implementation

ORB

Request

A request consists of:


• target object
• operation
• parameters
• optional request context

Copyright © 1994, Object Management Group. [3]


Title: OMG Logo.FH3
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM
A Scalable Architecture
Different Scales Different Types

Widely distributed Objects OODB


Objects

Network-Distributed Objects OLTP


Objects

Multi-process, local Objects C++


Objects
Lightweight, single-process Objects

Copyright © 1994, Object Management Group. [4]


Title: OMG Logo.FH3
Creator: FreeHand 3.1

Different ORB Types


CreationDate: 3/22/92 9:59 PM

Client Object Impl


Client Object Impl

Request
Request
ORB
ORB

Single-Process Client &


Library Resident Implementation
Resident
Client Object Impl

Server or Operating-
System Based
Request
ORB

Copyright © 1994, Object Management Group. [5]


Title: OMG Logo.FH3

OMG IDL
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Key component of the standard is OMG Interface Definition


Language (IDL):
• mappings will be provided for many languages/compilers;
• independent of any particular language/compiler;
• multiple-inheritance, public interface-structured
specification language;
• not for implementation.
• primary support for interoperability between static and
dynamic requests mechanisms.

Copyright © 1994, Object Management Group. [6]


Title: OMG Logo.FH3

Interfaces
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

IDL Interface Implementation


Definitions Installation

Interface Implementation
Repository Client Implementation Repository
Stubs Skeletons

Accesses Includes Includes Describes

Client Object Implementation

– All objects are defined in IDL by specifying their interfaces.


– Object definitions (interfaces) are manifested as objects in the Interface Repository, as
client stubs, and as implementation skeletons.
– Descriptions of object implementations are maintained as objects in the Implementation
Repository.

Copyright © 1994, Object Management Group. [7]


Title: OMG Logo.FH3

CORBA Components
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Client Object Implementation

Dynamic Client ORB Implementation Object


Invocation Stubs Interface Skeletons Adapter

ORB Core

One interface Proprietary interface


One interface per object adaptor Normal call interface
One interface per object operation Up call interface

Copyright © 1994, Object Management Group. [8]


Title: OMG Logo.FH3

CORBA Components
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Client stub Each stub represents an object operation (a possible request)


which a client invokes in a language-dependent manner (e.g., by
calling a subroutine which represents the operation).
Dynamic Invocation Alternatively, a client may dynamically construct and invoke
request objects which can represent any object operation.
Implementation Skeleton Each skeleton provides the interface through which a method
receives a request.
Object Adapter Each object adapter provides access to those services of an ORB
(such as activation, deactivation, object creation, object reference
management) used by a particular ilk of object implementation.
ORB Interface The interface to the small set of ORB operations common to all
objects, e.g., the operation which returns an object's interface type.

Copyright © 1994, Object Management Group. [9]


Title: OMG Logo.FH3

Client Side
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Clients perform requests using object references.

Clients may issue requests through object


interface stubs (static) or dynamic
Client invocation interface.

Clients may access general ORB services:


• Interface Repository.
• Context Management.
Dynamic Client ORB • List Management.
Invocation Stubs Interface • Request Management.

Copyright © 1994, Object Management Group. [10]


Title: OMG Logo.FH3

Implementation Side
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Implementations receive requests through skeletons


(without knowledge of invocation approach).

The Object Adapter adapts to vagaries of


object implementation scheme. Object Implementation

The Basic Object Adapter provides for:


• management of references; Implementation
• method invocation; ORB Object
Interface Skeletons Adapter
• authentication;
• implementation registration;
• activation/deactivation.

Copyright © 1994, Object Management Group. [11]


Title: OMG Logo.FH3

Examples ORB’s
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Client-and implementation-resident ORB implemented as libraries (routines)


resident in the clients and in the
implementations.

Library-resident ORB and implementations implemented as


libraries (routines) resident in the client.

Server-based ORB is implemented as a server (separate


process) which brokers requests between
client and implementation processes.

System-based ORB is part of the operating system.

Copyright © 1994, Object Management Group. [12]


Title: OMG Logo.FH3

Example Adapters
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Basic Object Adapter Intended for implementations that are separate


programs (processes) with no “ORB-like” services,
the basic adapter provides for object reference
generation and management, method invocation and
request delivery, implementation registration,
activation and deactivation.
OODB Adapter As OODB’s provide some "ORB-like" services (e.g.,
object reference generation and management), this
adapter is tuned to integrate OODB’s with ORB
distribution and communication.
Library Adapter Tuned for implementations resident in the client's
process space, this adapter provides minimal
implementation management and high-performance
data transfer.

Copyright © 1994, Object Management Group. [13]


Title: OMG Logo.FH3
Creator: FreeHand 3.1

Dynamic Requests
CreationDate: 3/22/92 9:59 PM

The Dynamic Invocation Interface (DII) allows clients to


dynamically:

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

Copyright © 1994, Object Management Group. [14]


Title: OMG Logo.FH3

DII Features
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Major features of Dynamic Invocation Interface:

• requests appear as objects themselves;


• requests are reusable;
• invocation may be synchronous or asynchronous;
requests may be generated dynamically, statically or
in combination approach.

Copyright © 1994, Object Management Group. [15]


Title: OMG Logo.FH3

Request Components
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Object reference identifies the target object.

Operation identifies which operation to perform.

Parameters the input, output and in-out parameters defined for the operation; may be
specified individually or as a list.

Context object the context within which the request is to be performed.

Results the result values returned by the operation.

Environment the execution environment and exception information of the operation.

Request handle the identifier for this instance of the request.

Copyright © 1994, Object Management Group. [16]


Title: OMG Logo.FH3

Interface Repository
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

Integrated Interface Repository provides:

• Dynamic client access to interface definitions to


construct a request.

• Dynamic type-checking of request signatures.

• Traversal of inheritance graphs.

• ORB-to-ORB interoperability.

Copyright © 1994, Object Management Group. [17]


Title: OMG Logo.FH3

Repository Structure
Creator: FreeHand 3.1
CreationDate: 3/22/92 9:59 PM

The interface repository service is defined as a set of objects specified in IDL:


Repository

ConstantDef ModuleDef ExceptionDef InterfaceDef TypeDef

ConstantDef InterfaceDef ExceptionDef ModuleDef TypeDef

ConstantDef OperationDef ExceptionDef TypeDef


(or Attribute)

Copyright © 1994, Object Management Group. [18]

You might also like