Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / orbsvcs / Time_Service / README
blob89c2f5aa4bec8102fbe43afc55dc5a7c3f819f6c
3 ============================ TAO Time Service==============================
5 This is a complete implementation of the CORBA time service spec. The
6 service offers a globally synchronized time to a requesting
7 client. The Time Service interface has been implemented as two servants:
8 the clerk and the server. Clients who wish to use the service talk to
9 clerks and the clerks in turn keep their time synchronized
10 globally. The clerks do this by talking to the servers running on
11 different machines.
13 There needs to be at least one time server running in the network. The Clerks
14 update their time periodically from the servers. The servers and clerks
15 export their IORs through the
16   * Naming Service.
17   * Files
18 The Servers can also be activated on demand by the Clerks if they have been
19 registered with an Implementation Repository.
21 If Naming Service is being used the clerks and servers are registered in
22 different Naming Contexts as :
24 For the clerks : ClerkContext->Clerk:<local_host_name>
25 For the server : ServerContext->Server:<local_host_name>
27 The machine name is included to make the object name unique and distinguish
28 between the various servers and clerks.
30 A sample run of the TimeService can be done as follows :
32 * Using the Naming Service :
34 1. Run TAO/orbsvcs/Time_Service/server on different machines.
35 2. Run TAO/orbsvcs/Time_Service/clerk -t 5 on some machines.
36 3. Run the TAO/orbsvcs/tests/Time/client on one of the machines where a clerk
37    is running.
39 * Using Files :
41 1. Run TAO/orbsvcs/Time_Service/server -o server_ior on different machines.
42 2. Run TAO/orbsvcs/Time_Service/clerk -t 5 -f server_ior -o clerk_ior on some
43    machines.
44 3. Run the TAO/orbsvcs/tests/Time/client -f clerk_ior on one of the machines
45    where a clerk is running.
47 * Using the Implementation Repository :
49 1. Run the Implementation Repository service as :
51    TAO/orbsvcs/Time_Service> ../ImplRepo_Service/ImplRepo_Service -ORBsvcconf
52                              implrepo.conf -ORBobjrefstyle url -d 1
54 2. Run the Server as
56    TAO/orbsvcs/Time_Service> server -o server_ior -r -i
58 3. Run the Clerk as
60    TAO/orbsvcs/Time_Service> clerk -f server_ior -t 5 -o clerk_ior
62 4. Run the client as
64    TAO/orbsvcs/tests/Time/client -f clerk_ior
66 Algorithms
67 ----------
69 Currently, updating the system time involves taking the average of all
70 the times received from the servers. This can be extended by using a
71 more elaborate distributed time synchronization algorithm.
73 Version Updates : (10th March, 1999)
74 -----------------
76 The TAO Time Service has been updated to include the timezone information
77 in the Universal Time Object. This object now also has an inaccuracy estimate
78 in it. The inaccuracy is a measure of the skew in the synchronization of
79 the clerks time. It is the difference between the highest and the lowest times
80 from the servers that the clerk synchronizes its time with. The high-inaccuracy
81 and the low-inaccuracy fields are also being calculated from the inaccuracy as
82 follows :
84                 Inaccuracy 64-bits
85         |------------------------------------|
86         |         | inacchi |   inacclo      |
87         |------------------------------------|
88           16-bits   16-bits     32-bits
90 Thanks to Brian Dance <Brian_Dance@UECCS.co.uk> for reporting this.
92 Future Versions of the service could include other measures of inaccuracy too,
93 say the one based on precision in the time reported by servers. In this case
94 the servers will have to supply an estimate of inaccuracy in their times.