Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.