Project Specification - Associative Broadcast
The purpose of this project is to implement a demonstration
capability for associative broadcast. In order to narrow the
problem scope the implementation will be for one domain. That
is, there will be a specific set of objects whose states are described
by a specific set of attributes.
One group will do this project on Windows NT using
the WinSock API and the other on Solaris. The two implementations
must work together across both systems.
1. Functional Requirements
1.1 Domain Specification
a) The problem domain will be load balancing among the workstations on a network of computers. The attributes of a workstation are:
a) a set of applications that it can execute
b) the total expected work required to complete the queue of jobs either in service or awaiting service at this workstation.
c) the id of the subnet upon which it is located.
d) an index of the processing power of this workstation
as a multiple of a ìstandard workstation.î
The set of applications which a workstation can execute
will change at arbitrary intervals.
Jobs may arrive for processing at any workstation. The attributes of each job are:
a) the application program it uses
b) the expected service time on a standard workstation.
If a workstation where a job arrives does not have
the application required then it attempts to place the job at
an appropriate workstation. If the queue at a workstation which
receives a new job exceeds some threshold of work to be completed
then the workstation receiving the new job broadcasts a message
to all workstations which both have the application required by
the job and have a total expected work to be completed less than
the threshold. Workstations with the application and a workload
less than threshold respond. The workstation which broadcasted
the request for an execution site then selects a workstation based
upon a function of the workloads and subnet where the responding
workstations are sited.
1.2 Associative Broadcast
a) Implement a workstation object which:
*randomly generates jobs
*randomly changes its application set
*implements a job queue which simulates execution of jobs
*communicates with the wrapper to change its profile
a) Implement an object wrapper which:
*posts profiles
*receives associatively broadcast messages
*sends associatively broadcast messages
b) Implement a communication subsystem which:
* delivers messages to workstation objects on the basis of profile and selector match.
* accepts associatively broadcast messages from workstation
objects.
The communication system should be implemented using
sockets and making use of multicast as appropriate.
2. Work Products
2.1 Design Products
a) Workstation object as standard OOA model
b) Workstation object as C++ class interface specification
c) Design for wrapper as C++ class interface specification
d) Design for associative broadcast implementation
as C++ class interface specification
The class interfaces should be thoroughly documented
including definitions of each parameter and narrative describing
the functionality of each method.
2.2 Code products
a) C++ code for each of the class interface specifications
b) Test plan for code - specifications of test scripts
to be used.
2.3 Execution Behavior Report
a) Traces of messages sent and received annotated with the profiles of the receiving objects.
b) Reports of queue lengths on each workstation at
regular intervals.