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.