Services

The RPC Manager provides a mechanism for ensuring that services remain synchronized across all workstations on the network. Each workstation running a distributed VTS application runs a copy of the RPC Service (known as a "Service Instance"). Exactly one Service Instance has server status and is sometimes referred to as the primary server for the service. Additionally, any number of workstations can be recognized as backup servers for the service, in the event of the primary server's failure. This is known as server redundancy.

While the primary server for a service is active, all other workstations running the distributed application (including the potential backup servers for the service) have client status.

The list of the primary server and backup servers for a specific service is specified in the application's configuration files (for more detailed information on server redundancy, please refer to Configure Separate Servers for Separate Services).

The order of the primary and backup servers for a service, as listed in the configuration file, specifies the order in which the backup servers take over in the event of the active server's failure. In the event that the primary server for the service fails, and the first backup server on the list is unavailable, the second backup server on the list temporarily becomes the primary server for the service (and so on).

For the purposes of synchronization, a service is assumed to contain a set of data that represents the "synchronization state" of the service. When a service instance starts up on a new workstation that is a client to the server, the synchronization state is transferred to the client. The service instance on the server workstation then issues updates on that set of data to the client. The client receives these updates and processes them to ensure that the service on the client accurately reflects the data on the server for that service.

Likewise, if server status must be transferred from one workstation to another in the case that the primary or a backup server should fail, each client must synchronize its data with that of the active backup server for the service in order to keep the data updated accurately.

The RPC Manager provides all the necessary control logic to achieve service synchronization and requires each service to implement some modules to support the synchronization process sufficient for the service's needs.

Topics in this section:

Programming Example: Create a Simple Service

Read and Write Locks

Synchronization Sequence

RPC Call-backs

Client Lists