The PICS Verification Push (VPush) System is a completely new feature. The initial pourpose is to monitor a set of display definition files (generally, Recall display pages) and ensure that all configured clients have the same, exact pages. Also, when pages are changed within (or added to) the monitored set, the updated pages should be readily available on the configured clients. The VPush system manages this by monitoring all of the files and folders below a specific (configurable) starting folder. The top level monitored folders are named using a special system that allows their actual location to vary from machine to machine with the client software filling in the local part of the path.
The Verification Push Host (VPushH) monitors all files and folders contained in the Monitor Tree Root and below. Windows provides a service to notify applications when something changes within a monitored folder tree, and VPushH uses that service to detect changes and updates. However, Windows does not tell applications what was changed, it only tells them that a change has occurred. Because of that, VPushH waits for the file system change notifications to be idle for five seconds (configurable) before trying to discover what files were changed and/or added. During the discover process, VPushH increments an update counter (an unsigned 32bit value, holds over 4 billion updates). After the discovery process, VPushH sends out the revised updated counter in its next regular status pulse. When clients see the altered update number, they connect and request all of the updates they are missing.
VPushH is designed such that the root folder being monitored represents an entire computer -- including all disk drives. However, the top level folder names must be special names that the VPush Client (VPushC) can interpret. The client currently understand the following:
Special Name Description %Root Path% The PICS home directory, as locally configured on the client computer. Typically this refers to someting like C:\PICS\.
NOTE: You must use the special name not the value!%SystemRoot% The Windows NT (and maybe other flavors of Windows) home directory. Typically something like C:\WinNT.
NOTE: You must use the special name not the value!%d% d represents a local drive letter, for example %C% would refer to a computer's C:\ drive.
NOTE: You must use the special name not the value!Other well known, site standard and/or published environment variables may also be used (like %SystemDrive% or %windir%). Run the 'set' command from a command prompt to see everything available on your workstation, but be aware that all machines do'nt necessarily have all of the same environment variables set -- except for a few used by Windows (and even those may change between different versions of Windows). All folders below these will be created as needed by the client in order to correctly store any files delivered.
The root folder should only contain special names like those above. In fact, for the initial purpose of this project, only %Root Path%\pages should be necessary, since that is where all Recall Display pages are [supposed to be] stored.
The VPush Host isn't very good at tracking renamed objects, so it is better to create new folders somewhere outside the monitored folder tree and use the Windows Explorer to drag'n'drop them into the monitored folder. That way, the new folder appears in a single operation. Otherwise, the folder is created with an empty name, then with the name "new folder", then with the name you provide and that sequence of folder names provides VPushH with an opportunity to get confused.
When files must be deleted, you may delete them directly from the monitored area, VPushH should be able to cope with that!
When files must be added, the new files should be dragged'n'dropped in the correct monitored folder. This prevents possible multiple updates that may occur if a new file is created, then later written to and saved while being monitored.
File updates are also best done by dragging the updated version and replacing the outdated version in a single operation.
Section
Description of content
[Settings] Window Class=PICS_VPush_Host_WClass Monitor Tree Root=C:\PICS\VPush Idle Delay (seconds)=5 Status Pulse Rate (seconds)=5Section
Description of content
[Push Server] TCP Address=EVIPICSLAN TCP Port=evi_vpushDescription of content
UDP Address=EVIPICSLAN UDP Port=evi_vpushDescription of content
Multicast Enabled=1 Multicast Address=224.0.88.89 Multicast Port=evi_vpush_mc Multicast Time-to-live=1 Multicast Bind Address=EVIPICSLANDescription of content
;; NOTES: ;; 1. Port names are in the services file ;; (C:\winnt\system32\drivers\etc\services) ;; TCP and UDP ports use /tcp and /udp ;; protocol, respectively. The multicast ;; port also uses /udp protocol. ;; 2. The default multicast address is the ;; same for all PICS apps that support ;; multicast. Each app uses a different ;; port, however.Section
Description of content
[Log] Log Path=C:\pics\Log\ Log Name=VPushH Logs to Keep=7 Log Limit Type=1,Day
The Verification Push Client (VPushC) is designed to synchronize any files being monitored by the VPush Host. When a PICS node running the VPush client starts, VPushC will verify all of the current files against those on the host. After that, VPushC runs in the background, updating/adding files as they are updated in (and/or added to) the host's monitored set. Currently, if an application is using a file that is updated, a human must issue a command to the application to close, then re-open the file.
Note that VPushC doesn't protect files against modification while running. It will verify and correct modified files when the node is next started (or when the host is restarted). This means that a user may make changes to a display, save them, and reuse them until any one of three things happens: the file is updated on the host, the host restarts or the local node restarts.
It is recommended that a site convention be made concerning which folders are to be used to locally created displays and which are to be used for managed displays. This is because there is a chance that a new managed display may have the same filename as a locally saved display, and the managed file would then replace the local file, possibly upsetting the user.
Section
Description of content
[Push Client] TCP Connect Timeout (sec)=30 TCP Address=EVIPICSLAN TCP Port=evi_vpushDescription of content
UDP Search Rate (sec)=5 UDP Address=EVIPICSLAN UDP Port=evi_vpushDescription of content
Multicast Enabled=1 Multicast Address=224.0.88.89 Multicast Port=evi_vpush_mc Multicast Time-to-live=1 Multicast Bind Address=EVIPICSLANDescription of content
;; NOTES: ;; 1. Port names are in the services file ;; (C:\winnt\system32\drivers\etc\services) ;; TCP and UDP ports use /tcp and /udp ;; protocol, respectively. The multicast ;; port also uses /udp protocol. ;; 2. The default multicast address is the ;; same for all PICS apps that support ;; multicast. Each app uses a different ;; port, however.Section
Description of content
[Log] Log Path=C:\pics\Log\ Log Name=VPushC Logs to Keep=7 Log Limit Type=1,Day