Upload
louise-lee
View
214
Download
0
Embed Size (px)
Citation preview
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 ArchitectureNAMING SERVICE
Object ClientObject
Implementation
Stub Skeleton
ORB ORB
Network Network
OperatingSystem
OperatingSystem
Naming Lookup
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
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++
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
CORBA OBJECT
ORB ORB 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
dfsa345bgbfghtyutyu567564574hvbdrt6353456546rfnghk6i68768uhm78985675hjkj6l456u5o9ukln5ljkljkljklj4564457646jkljkhjkghjg5345353.
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 ORB-based 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 context3Naming context2
Naming Context 4 Naming Context 5
Object Name1 Object Name2
CORBA Naming Service
The Syntax for Object Naming is:
<naming context1>.<naming context2>.<naming context4>.<object name1>
CORBA Naming Service
STORE
CLOTH WOOD
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/
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
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.