Download Distributed Objects

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
CORBA
Common Object Request
Broker Architecture
Basic Architecture

A distributed objects architecture.

Logically, an object client makes
method calls to a distributed object.
Basic Architecture

An object client interfaces with a
proxy-(a stub).

The object implementation interfaces
with the server side proxy-(a skeleton).
Basic Architecture

Unlike the java RMI an additional layer
of software known as Object Request
Broker(ORB) is required.
Basic Architecture
NAMING SERVICE
Naming Lookup
Object Client
Object
Implementation
Stub
Skeleton
ORB
ORB
Network
Network
Operating
System
Operating
System
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
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.
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
Basic Architecture

A Naming service is used by the client
to locate an object.
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.
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
The CORBA Object Interface

Example:

An object client is a program written in java
while the object implementation is written in
c++.
The CORBA Object Interface
Object Client written in JAVA
Object Implementation written in C++
Stub in java generated by compiling
the CORBA object interface
Skeleton in C++ generated by
compiling the CORBA object interface
ORB written in java
ORB written in C++
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.
Inter-ORB Protocols

IIOP Specification includes:



Transport Management Requirements
Definition of Common data representation
Message formats
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
Common Data representation

A coding scheme needs to be defined
for marshalling and unmarshalling data
of each IDL data type.
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.
Inter-ORB Protocols
CORBA
OBJECT
CORBA
OBJECT
ORB
ORB
CORBA
OBJECT
ORB
internet
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.
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.
CORBA Object References

OMG specifies a protocol for the
abstract CORBA object reference
object, known as the Interoperable
Object Reference(IOR) protocol.
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.
CORBA Object References

The object references represented in
this protocol are called Interoperable
Object References(IORs).
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.
CORBA Object References


The Object key is used by an object
server to locate the object.
IOR String looks like this

IOR:0000000000a3423dfg23423432678s
dfsa345bgbfghtyutyu567564574hvbdrt63
53456546rfnghk6i68768uhm78985675hjk
j6l456u5o9ukln5ljkljkljklj4564457646jkljkh
jkghjg5345353.
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.
CORBA Naming Service

The Naming Service Permits ORBbased clients to obtain references to
objects they wish to use.

It allows names to be associated with
object references.
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
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.
CORBA Naming Service
Naming context1
Naming context2
Naming Context 4
Object Name1
Naming Context 5
Object Name2
Naming context3
CORBA Naming Service
The Syntax for Object Naming is:
<naming context1>.<naming
context2>.<naming context4>.<object
name1>

CORBA Naming Service
STORE
WOOD
CLOTH
WOMEN
MEN
CHAIR
Interoperable Naming Service

It allows applications to share a
common initial naming context and
provide a URL to access a CORBA
object.
Interoperable Naming Service
Example:
Cornaname::acme.com:2050#store/clo
th/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

CORBA Object Services





Concurrency Service (concurrency
control)
Event Service(Event Synchronization)
Logging Service(Event Logging)
Naming Service(an object directory)
Scheduling Service(event scheduling)
CORBA Object Services



Security Service(security
management)
Trading Service(Locating service by
type instead of name)
Notification Service(for event
notification)
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
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.
Object Adapters

Types of Adapters


BOA(Basic Object Adapter)
POA(Portable Object Adapter)
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.
POA
Distributed Object Implementation
Object Adapter
Server-side ORB
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.
Java IDL

Package.org.omg.cosnaming
contains interfaces and classes that
provide the Naming Service for java
IDL.
Java IDL

Org.omg.CORBA.ORB contains
interfaces and classes that provide
APIs for the Object Request Broker.
CORBA APPLICATION



CORBA interface
A Server
A Client
CORBA ARCHITECTURE

The advent of IIOP makes the entire
INTERNET as transmission medium
for transmitting objects.
CORBA ARCHITECTURE

One Naming Service Server
Application for the entire INTERNET
enables to write applications without
any conflict
CORBA ARCHITECTURE

A Technology for creating a distributed
applications independent of platforms
and operating systems and
environments.