4.5 CORBA services
CORBA SERVICES
CORBA (Common Object Request Broker Architecture) is a standard defined by the Object Management Group (OMG) for enabling communication between objects in a distributed, heterogeneous computing environment. It allows programs written in different programming languages and running on different platforms to communicate with each other. CORBA provides a range of services to support distributed object-oriented applications.
1. Naming Service
- Description: Provides a way to associate names with object references, allowing clients to look up objects based on their names.
- Example Use: A client can use the Naming Service to find a specific object, such as a printer or a database connection, by name.
2. Trading Service
- Description: Facilitates the discovery of services by allowing objects to advertise their capabilities and clients to search for services based on desired criteria.
- Example Use: A client can find an object that offers a specific service, like a currency conversion service, by querying the Trading Service.
3. Event Service
- Description: Supports asynchronous communication between objects by allowing objects to send and receive events.
- Example Use: An object can publish an event when a particular condition occurs, and interested subscriber objects can receive notifications of this event.
4. Notification Service
- Description: An extension of the Event Service that provides more sophisticated event filtering and quality of service (QoS) controls.
- Example Use: A stock trading application can use the Notification Service to send updates about stock prices to subscribed clients, with filtering based on client preferences.
5. Security Service
- Description: Provides authentication, authorization, confidentiality, integrity, and non-repudiation services.
- Example Use: Ensures that only authorized clients can access sensitive objects and that communication between objects is secure.
6. Transaction Service
- Description: Supports distributed transactions, ensuring that a series of operations either complete successfully or roll back entirely.
- Example Use: A banking application can use the Transaction Service to ensure that money transfer operations are atomic and consistent across multiple accounts.
7. Concurrency Control Service
- Description: Manages concurrent access to objects to ensure data integrity and consistency.
- Example Use: A shared document editing application can use this service to manage multiple users editing the same document simultaneously.
8. Persistent Object Service (POS)
- Description: Provides mechanisms for making objects persistent, allowing them to outlive the process that created them.
- Example Use: A customer record object can be stored in a database and retrieved later, even if the server process restarts.
9. Lifecycle Service
- Description: Manages the creation, deletion, copying, and moving of objects.
- Example Use: An application can use the Lifecycle Service to create new instances of a business object, duplicate an existing object, or delete an obsolete object.
10. Object Query Service
- Description: Allows clients to query objects using a declarative query language.
- Example Use: A client can perform complex queries on a collection of objects, such as finding all employees in a company database who meet specific criteria.
11. Externalization Service
- Description: Provides mechanisms for externalizing (serializing) objects to a stream and reconstructing (deserializing) them from a stream.
- Example Use: An application can save the state of an object to a file and restore it later, allowing for persistence and transport of object states.
12. Time Service
- Description: Provides synchronized time and time-related operations across a distributed system.
- Example Use: Ensures that all objects in a distributed system have a consistent view of time, which is crucial for time-sensitive applications.
13. Property Service
- Description: Allows objects to have dynamic properties that can be added, removed, or modified at runtime.
- Example Use: An application can attach metadata to objects, such as configuration settings or descriptive attributes, which can be modified without changing the object's implementation.