General Problem Description:

                The goal of this project is to create an environment that will produce a collection of nodes that represent systems that can be configured in several different ways so that various distributed time synchronization algorithms can be run against any given configuration.  This environment will show the consolidation of all the times in the network to one time and will also show the network getting new nodes to report the same time.  The algorithms that will be tested in this environment will be a clock sampling algorithm and the second method to be tested will be the Berkley algorithm.  This will show the relative performance of the algorithms and give a alternative to the stand client/server method that is usually used for time synchronization today.

Use Cases:

For this project I have identified two use cases.  The first of these is a use case where a workstation requests the network time.  In this case the workstation starts off the data flow by requesting the network time.  From here this request uses the specified time synchronization algorithm to look to determine what the network time should be.  This requires that the algorithm contacts all of the workstations and servers that it knows about and asks them for their time.  The workstation at this point goes forward and computes what it thinks the network time should be.  It then goes back and asks those workstations again for the time and this takes place until the entire known network is reporting the same time.  At this point the algorithm reports the computed time back to the workstation for what its network time should be.

 

The second use case that I identified for this project was identical to the first however the process starts by the server asking for the network time and the process ends with the algorithm reporting the network time back to the requesting server.

Deployment Diagram:

The deployment diagram is fairly straight forward for this project.  The hardware involved in the network would consist of a series of servers and workstations that exist on the network that all have a network time keeping service.  This system would involve all of the servers talking to all of the workstations and servers that it is aware of on the network while the workstation will talk to all of the workstations and servers that they know about in the network.  This means that there will be full communication between all of the devices that any one device knows about within this network configuration.

 

Implementation:

The development of the simulator tool that will represent the network and all of the nodes in the network will be produced as a Microsoft .NET C# project.  The representation of the communication between the nodes is expected to be simulated through the use of the event model that is present within the Microsoft framework.  However if the model is found not to be robust enough then the communication may be modeled through TCP/IP messages.  The algorithms are to be developed within the C# languages as well to ease the integration effort with the simulation framework that is to be developed.