Académique Documents
Professionnel Documents
Culture Documents
What is CORBA ?
CORBA is a middleware design
Allows application programs to communicate without restriction to:
Programming languages Hardware platforms Software platforms Networks they communicate over
CORBA architecture
Implementation repository client
request client program Proxy for A ORB core reply Or dynamic skeleton ORB core object adapter
skeleton
servant A
Or dynamic invocation
Figure 17.6 from the textbook: The Main Components of the CORBA architecture
Object Adapter
Bridges the gap between CORBA objects with IDL interfaces and the programming language interfaces of the corresponding servant.
Creates remote object interfaces Dispatches each RMI to the appropriate skeleton Activates objects Gives each object a unique object name
Skeletons
Classes generated in the language of the server by an IDL compiler Unmarshals arguments in requests Marshals exceptions and replies in responses
Client stubs/proxies
In the clients language Marshals the arguments in invocation requests Unmarshals the exceptions and results in replies
Implementation Repository
Responsible for activating registered servers on demand Locates servers currently running Uses the object adapter name to refer to servers when registering or activating them
Implementation Repository entry:
Object adapter name Pathname of object implementation Hostname and port number of server
Interface Repository
Provides information about registered IDL interfaces to clients and servers that require it Not required if static invocation is used for client stubs and server skeletons Not all Object Request Brokers provide an interface repository
CORBA architecture
Implementation repository client
request client program Proxy for A ORB core reply Or dynamic skeleton ORB core object adapter
skeleton
servant A
Or dynamic invocation
Figure 17.6 from the textbook: The Main Components of the CORBA architecture
IDL Modules
Allows interfaces and IDL type definitions to be organized into logical units Defines a naming scope Prevents names defined within a module from clashing with names defined outside of it
IDL Interfaces
Describes the methods that are available in CORBA objects that implement that interface Defines a set of operations and attributes Generally depends on a set of types defined within it
IDL Methods
General form of a method signature:
IDL Types
Supports 15 primitive types Constants can be declared Special type called Object
values are remote object references
Format:
IDL interface type Interface repository identifier protocol and address details Object Key adapter object IIOP host domain port name name name number
Transient IORs last as long as the hosting process. Persistent IORs last between activations of the CORBA objects.
CORBA Services
Provide generic facilities that may be used by a wide variety of applications
Naming Service Event and Notification Service Security Service Transaction and Concurrency Services Trading Services Persistent Object Service
Naming Service
Allows names to be bound to the remote object references A naming context is the scope within which a set of names applies CORBA objects are given hierarchical names, which cannot be used as pathnames Allows for the Federation of Naming Services.
Each server provides a subset of the naming graph
Trading Services
Allows CORBA objects to be located by attributes Database contains mapping from service types and their attributes to the remote object reference of CORBA objects Can form federations that
Use their own database Can perform queries on behalf of other clients
rollback
Clients can suspend or resume transactions Concurrency control services use locks to control access to CORBA object
Can be used within transactions Can be used independent of transactions
The data store request to the POS can be implemented by the client or by the CORBA object
More Information
http://htm4.ee.queensu.ca:8000/ling/corb a.html http://www.omg.org/gettingstarted/corba faq.htm http://www.cs.indiana.edu/hyplan/kksiaze k/tuto.html http://www.cs.wustl.edu/~schmidt/corba. html