530 likes | 754 Views
CORBA. C ommon O bject R equest B roker A rchitecture. 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).
E N D
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 Implementation Object Client 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 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:0000000000a3423dfg23423432678sdfsa345bgbfghtyutyu567564574hvbdrt6353456546rfnghk6i68768uhm78985675hjkj6l456u5o9ukln5ljkljkljklj4564457646jkljkhjkghjg5345353.
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 context2 Naming context3 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 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/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.