The CORBA standards define some standard services that may be provided to support distributed object oriented applications. You can think of CORBA services as those facilities that are likely to be required by many distributed systems. The standards define approximately 15 common services.
Some examples of these generic services are:
- Naming and trading services that allow objects to refer to and discover other objects on the network. The naming service is a directory service that allows objects to be named and discovered by other objects. This is like the white pages of a phone directory. The trading services are like the yellow pages. Objects can find out what other objects have registered with the trader service and can access the specification of these objects.
- Notification services that allow objects to notify other objects that some event has occurred. Objects may register their interest in a particular event with the service and, when that event occurs, they are automatically notified. For example, say the system includes a print spooler that queues documents to be printed and a number of printer objects. The print spooler registers that it is interested in an ‘end of printing’ event from a printer object. The notification service informs it when printing is complete. It can then schedule the next document on that printer.
- Transaction services that support atomic transactions and rollback on failure. Transactions are a fault-tolerance facility that support recovery from errors during an update operation. If an object update operation fails then the object state can be rolled back to its state before the update was started.
The CORBA standards include interface definitions for a wide range of horizontal and vertical components that may be used by distributed application builders. Vertical components are components that are specific to an application domain.