The RPC Manager enables VTS to operate on multiple workstations connected by a TCP/IP network. The RPC Manager provides the cornerstone of a comprehensive server/client architecture, which allows tags and other VTS services running on physically separate workstations to coordinate their activities and share data. VTS contains a number of services, (such as the Alarm Manager, Log Manager, Security Manager, Modem Manager), and enables these services, all of the I/O drivers and other network-aware software components to share their data using the RPC Manager.
A VTS service is simply a VTS module that registers itself as a named component with the RPC Manager. A VTS service encapsulates the data and processing logic that provides a specific function within the application. Each service should be regarded as a separate entity whose service name is unique within the application. Different applications running on the same workstation can contain a service of the same name as a service in another application, That is, two standard VTS applications will, for example, each contain a service called AlarmManager.
A service running within an application is termed a "service instance". A networked or distributed VTS application contains many instances of the same service, each one running on a separate physical workstation. For each service, at any one given time, there is exactly one service instance that has "server" status. All other instances of the same service (running on workstations other than the server instance) are either clients to that server or have not yet determined what their status should be. A brief moment may exist when there is no server for a service, but there will never be more than one server. (Information on the RPC Manager/primary server configuration can be found in Config.ini [RPCMANAGER_SERVERS] Section Variables).
Server status can shift from one service instance to another at any time. Such shifts are normally the result of some failure of the primary server for the service or failure of the server to communicate with an external device. When such shifts occur, each service must arbitrate which service instance is going to assume server status. All other service instances must then re-synchronize to the new server and so become clients of it.
The RPC Manager provides the code that performs service synchronization and manages servers and service instances. The service code need only provide a few, simple methods that will be invoked by RPC Manager to achieve this. A simple, yet functional service example that supports all the essential RPC Manager methods is discussed in Create a Simple Service.
The RPC Manager also provides a set of methods that provide services with the ability to execute specific VTS modules on workstations on the network. All the methods available are documented in RPC Manager Methods Reference.
The RPC Manager also provides a diagnostic facility, which allows the interactive display of the status of services and the connections with other workstations. The diagnostic facility is documented in Trace Viewer.
Topics in this section: