CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects...

50
CORBA Common Object Request Broker Architecture

Transcript of CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects...

Page 1: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA

Common Object Request Broker Architecture

Page 2: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

A distributed objects architecture.

Logically, an object client makes method calls to a distributed object.

Page 3: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

An object client interfaces with a proxy-(a stub).

The object implementation interfaces with the server side proxy-(a skeleton).

Page 4: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

Unlike the java RMI an additional layer of software known as Object Request Broker(ORB) is required.

Page 5: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic ArchitectureNAMING SERVICE

Object ClientObject

Implementation

Stub Skeleton

ORB ORB

Network Network

OperatingSystem

OperatingSystem

Naming Lookup

Page 6: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

On the client side, the ORB layer software serves as intermediary between the stub and the client system’s network and operating system software

Page 7: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

On the server side, the ORB layer software serves as an intermediary between the skeleton and the server system’s network and operating system software.

Page 8: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

Using a common protocol, the ORB layers on the two sides are able to resolve the differences in

the programming languages of the objects

the differences in the platforms

Page 9: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Basic Architecture

A Naming service is used by the client to locate an object.

Page 10: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

The CORBA Object Interface

A distributed object is defined just as interface defined in java RMI.

CORBA is language independent, the interface is also defined using the IDL syntax.

IDL is the language of CORBA.

Page 11: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

The CORBA Object Interface

The syntax of corba IDL is similar to that of C++ and JAVA.

OMG has standard language mappings from IDL to specific language. Ex: IDL-to-JAVA

Page 12: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

The CORBA Object Interface

Example: An object client is a program written in java

while the object implementation is written in c++.

Page 13: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

The CORBA Object Interface

Object Client written in JAVA

Stub in java generated by compiling the CORBA object interface

ORB written in java

Object Implementation written in C++

Skeleton in C++ generated by compiling the CORBA object interface

ORB written in C++

Page 14: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Inter-ORB Protocols

To allow ORB’s to be interoperable, the OMG specified a protocol known as the General Inter-ORB Protocol(GIOP).

IIOP=GIOP+TCP/IP Internet Inter ORB Protocol.

Page 15: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Inter-ORB Protocols

IIOP Specification includes:

Transport Management Requirements Definition of Common data representation Message formats

Page 16: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Transport Management req…..

These requirements specify what is needed for connection and

disconnection The roles that the object client and object

servers play in making and unmaking connections

Page 17: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Common Data representation

A coding scheme needs to be defined for marshalling and unmarshalling data of each IDL data type.

Page 18: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Message Formats

Messages allow clients to send requests to object servers and receive replies.

A Client uses a request message to invoke a method declared in a CORBA interface for an object and receives a reply message from the server.

Page 19: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Inter-ORB Protocols

CORBA OBJECT

CORBA OBJECT

CORBA OBJECT

ORB ORB ORB

internet

Page 20: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Object Servers & Object Clients

Object server, exports a distributed object to the registry

Object client, retrieves a reference to a distributed object from naming or directory service and invokes the methods.

Page 21: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

It is an abstract entity mapped to a language-specific object reference by an ORB, in a representation chosen by the developer of the ORB.

Page 22: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

OMG specifies a protocol for the abstract CORBA object reference object, known as the Interoperable Object Reference(IOR) protocol.

Page 23: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

An ORB that is compatible with the IOR protocol will allow an object reference to be registered with and retrieved from any IOR-complaint directory service.

Page 24: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

The object references represented in this protocol are called Interoperable Object References(IORs).

Page 25: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

IOR String contains encoding information such as: The type of object The host where the object can be found The port no of the server for that object An object key, a string of bytes identifying

the object.

Page 26: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

The Object key is used by an object server to locate the object.

IOR String looks like this IOR:0000000000a3423dfg23423432678s

dfsa345bgbfghtyutyu567564574hvbdrt6353456546rfnghk6i68768uhm78985675hjkj6l456u5o9ukln5ljkljkljklj4564457646jkljkhjkghjg5345353.

Page 27: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object References

The representation consists of the character prefix “IOR”: followed by a series of hexadecimal numeric characters, each character representing 4 bits of binary data in the IOR.

Page 28: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Naming Service

The Naming Service Permits ORB-based clients to obtain references to objects they wish to use.

It allows names to be associated with object references.

Page 29: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Naming Service

Clients may query a naming service using a predetermined name to obtain the associated object reference.

To Export a distributed object, a CORBA object server contacts a Naming Service to bind a symbolic name to the object

Page 30: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Naming Service

The Naming Service maintains a database of names and the objects associated with the names.

To obtain a reference to the object, an object client requests that the Naming Service look up the object associated with the name.

Page 31: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Naming Service

Naming context1

Naming context3Naming context2

Naming Context 4 Naming Context 5

Object Name1 Object Name2

Page 32: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Naming Service

The Syntax for Object Naming is:

<naming context1>.<naming context2>.<naming context4>.<object name1>

Page 33: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Naming Service

STORE

CLOTH WOOD

WOMEN MEN CHAIR

Page 34: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Interoperable Naming Service

It allows applications to share a common initial naming context and provide a URL to access a CORBA object.

Page 35: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Interoperable Naming Service

Example:Cornaname::acme.com:2050#store/

cloth/women can be used to access the object named store/clothing/women from the naming service running at port

2050 of the host with the domain name acme.com

Page 36: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object Services

Concurrency Service (concurrency control)

Event Service(Event Synchronization) Logging Service(Event Logging) Naming Service(an object directory) Scheduling Service(event scheduling)

Page 37: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA Object Services

Security Service(security management)

Trading Service(Locating service by type instead of name)

Notification Service(for event notification)

Page 38: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Object Adapters

A software component in addition to the skeleton was added to the server side: an object adapter

An object adapter simplifies the responsibilities of an ORB by assisting an ORB in delivering a client request to object implementation

Page 39: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Object Adapters

When a ORB receives client’s request, it locates the object adapter associated with the object and forwards the request to the adapter.

The adapter interacts with the object implementation’s skeleton, which performs data marshalling and invokes the appropriate method in the object.

Page 40: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Object Adapters

Types of Adapters BOA(Basic Object Adapter) POA(Portable Object Adapter)

Page 41: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

POA

The POA is a particular type of object adapter that is defined by the CORBA specification.

An object adapter that is a POA enables an object implementation to function with different ORBs.

Page 42: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

POA

Distributed Object Implementation

Object Adapter

Server-side ORB

Page 43: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Java IDL

Provides a number of packages containing interfaces and classes for CORBA support. Package.org.omg.CORBA

Contains interfaces and classes that provide the mapping of the OMG CORBA APIs to the java programming language.

Page 44: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Java IDL

Package.org.omg.cosnaming contains interfaces and classes that provide the Naming Service for java IDL.

Page 45: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

Java IDL

Org.omg.CORBA.ORB contains interfaces and classes that provide APIs for the Object Request Broker.

Page 46: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA APPLICATION

CORBA interface A Server A Client

Page 47: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
Page 48: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA ARCHITECTURE

The advent of IIOP makes the entire INTERNET as transmission medium for transmitting objects.

Page 49: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA ARCHITECTURE

One Naming Service Server Application for the entire INTERNET enables to write applications without any conflict

Page 50: CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.

CORBA ARCHITECTURE

A Technology for creating a distributed applications independent of platforms and operating systems and environments.