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.