� � � � � � � � � � � � � � � � � � � � � � � � � �
� � � � � � � � � � � � � � � � � � � � � � � � � � �
� � � � � � � � � � � � � � � � � � � � � � � � � � �
SEC . 9.1 CORBA 499
transaction service allows a client to define a series of method invocations across multiple objects in a single transaction . The service supports flat and nested transactions .
������������������������������������������������������������������������������ ������������������������������������������������������������������������������
Service
Description
������������������������������������������������������������������������������
Collection Facilities for grouping objects into lists , queue , sets , etc .
������������������������������������������������������������������������������
Query
Facilities for querying collections of objects in a declarative manner
������������������������������������������������������������������������������
Concurrency Facilities to allow concurrent access to shared objects
������������������������������������������������������������������������������
Transaction Flat and nested transactions on method calls over multiple objects
������������������������������������������������������������������������������
Event
Facilities for asynchronous communication through events
������������������������������������������������������������������������������
Notification Advanced facilities for event-based asynchronous communication
������������������������������������������������������������������������������
Externalization Facilities for marshaling and unmarshaling of objects
������������������������������������������������������������������������������
Life cycle Facilities for creation , deletion , copying , and moving of objects
������������������������������������������������������������������������������
Licensing Facilities for attaching a license to an object
������������������������������������������������������������������������������
Naming Facilities for systemwide naming of objects
������������������������������������������������������������������������������
Property Facilities for associating ( attribute , value ) pairs with objects
������������������������������������������������������������������������������
Trading Facilities to publish and find the services an object has to offer
������������������������������������������������������������������������������
Persistence Facilities for persistently storing objects
������������������������������������������������������������������������������
Relationship Facilities for expressing relationships between objects
������������������������������������������������������������������������������
Security Mechanisms for secure channels , authorization , and auditing
�������������������������������������������������������������������������������
Time
Provides the current time within specified error margins
Figure 9-3 . Overview of CORBA services .
Normally , clients invoke methods on objects and wait for the result of that invocation . To support asynchronous communication , CORBA supports an event service by which clients and objects can be interrupted upon the occurrence of a specified event . Advanced facilities for asynchronous communication are provided by a separate notification service . We describe these services in more detail below .
Externalization deals with marshaling objects in such a way that they can be stored on disk or sent across a network . It is comparable to the serialization facilities offered by Java , allowing objects to be written to a data stream as a series of bytes .
The life cycle service provides the means to create , destroy , copy , and move objects . A key concept is that of a factory object , which is a special object used to create other objects ( Gamma et al ., 1994 ). Practice indicates that only the creation of objects needs to be handled by a separate service . However , destroying , copying , and moving objects is often conveniently defined by objects themselves . The reason is that these operations often affect an object ’ s state in an objectspecific way .