Last Update: 2002/07/29
Persistent State Service (PSS) desribes a way of making a service persistent. The fact that PSS is being used by a service is known only to the service (server) and not to the client which makes use of the service. PSS presents persistent information as storage objects stored in storage homes, to quote the specification. The storage homes are the datastores where the persistent data is saved.
The specification introduced Persistent State Definition Language (PSDL), a superset of IDL with five new constructs. PSDL is used to specify the interface to the datastore. The PSDL file used in the application will define the types that might be saved in the datastore.
We have a compiler, psdl_tao, which is similar to the tao_idl compiler, which will process the psdl file and generate stubs that are used mainly for the insertion and extraction operations.
The PSDL compiler understands and supports the simple
types like
typdef, module, structures, interfaces.
The datastore for now is a regular file. The
libTAO_PSDL_Datastore
interfaces the
datastore and helps write and read from the datastore.
The data that is saved persistently is a hash map whose
external id is TAO_PSDL_String, a wrapper around
ACE_CString and the internal id is TAO_PSDL_OctetSeq, a
wrapper around for CORBA::OctetSeq.
There is an example in $ACE_ROOT/TAO/orbsvcs/examples/PSS which shows how the PSS can be used to make a simplified naming service persistent.
Add support to the remaining types defined in PSDL.
Use RMCast to have another form of persistency via data replication.