summaryrefslogtreecommitdiff
path: root/ACE/TAO/orbsvcs/Time_Service/README
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/orbsvcs/Time_Service/README')
-rw-r--r--ACE/TAO/orbsvcs/Time_Service/README96
1 files changed, 96 insertions, 0 deletions
diff --git a/ACE/TAO/orbsvcs/Time_Service/README b/ACE/TAO/orbsvcs/Time_Service/README
new file mode 100644
index 00000000000..2ca9f457b45
--- /dev/null
+++ b/ACE/TAO/orbsvcs/Time_Service/README
@@ -0,0 +1,96 @@
+$Id $
+
+============================ TAO Time Service==============================
+
+This is a complete implementation of the CORBA time service spec. The
+service offers a globally synchronized time to a requesting
+client. The Time Service interface has been implemented as two servants:
+the clerk and the server. Clients who wish to use the service talk to
+clerks and the clerks in turn keep their time synchronized
+globally. The clerks do this by talking to the servers running on
+different machines.
+
+There needs to be at least one time server running in the network. The Clerks
+update their time periodically from the servers. The servers and clerks
+export their IORs through the
+ * Naming Service.
+ * Files
+The Servers can also be activated on demand by the Clerks if they have been
+registered with an Implementation Repository.
+
+If Naming Service is being used the clerks and servers are registered in
+different Naming Contexts as :
+
+For the clerks : ClerkContext->Clerk:<local_host_name>
+For the server : ServerContext->Server:<local_host_name>
+
+The machine name is included to make the object name unique and distinguish
+between the various servers and clerks.
+
+A sample run of the TimeService can be done as follows :
+
+* Using the Naming Service :
+
+1. Run TAO/orbsvcs/Time_Service/server on different machines.
+2. Run TAO/orbsvcs/Time_Service/clerk -t 5 on some machines.
+3. Run the TAO/orbsvcs/tests/Time/client on one of the machines where a clerk
+ is running.
+
+* Using Files :
+
+1. Run TAO/orbsvcs/Time_Service/server -o server_ior on different machines.
+2. Run TAO/orbsvcs/Time_Service/clerk -t 5 -f server_ior -o clerk_ior on some
+ machines.
+3. Run the TAO/orbsvcs/tests/Time/client -f clerk_ior on one of the machines
+ where a clerk is running.
+
+* Using the Implementation Repository :
+
+1. Run the Implementation Repository service as :
+
+ TAO/orbsvcs/Time_Service> ../ImplRepo_Service/ImplRepo_Service -ORBsvcconf
+ implrepo.conf -ORBobjrefstyle url -d 1
+
+2. Run the Server as
+
+ TAO/orbsvcs/Time_Service> server -o server_ior -r -i
+
+3. Run the Clerk as
+
+ TAO/orbsvcs/Time_Service> clerk -f server_ior -t 5 -o clerk_ior
+
+4. Run the client as
+
+ TAO/orbsvcs/tests/Time/client -f clerk_ior
+
+Algorithms
+----------
+
+Currently, updating the system time involves taking the average of all
+the times received from the servers. This can be extended by using a
+more elaborate distributed time synchronization algorithm.
+
+Version Updates : (10th March, 1999)
+-----------------
+
+The TAO Time Service has been updated to include the timezone information
+in the Universal Time Object. This object now also has an inaccuracy estimate
+in it. The inaccuracy is a measure of the skew in the synchronization of
+the clerks time. It is the difference between the highest and the lowest times
+from the servers that the clerk synchronizes its time with. The high-inaccuracy
+and the low-inaccuracy fields are also being calculated from the inaccuracy as
+follows :
+
+ Inaccuracy 64-bits
+ |------------------------------------|
+ | | inacchi | inacclo |
+ |------------------------------------|
+ 16-bits 16-bits 32-bits
+
+Thanks to Brian Dance <Brian_Dance@UECCS.co.uk> for reporting this.
+
+Future Versions of the service could include other measures of inaccuracy too,
+say the one based on precision in the time reported by servers. In this case
+the servers will have to supply an estimate of inaccuracy in their times.
+
+