next up previous
Next: Dispatch framework for incoming Up: Making ANTS Suitable for Previous: Summary of changes

Separation of ANTS run-time system and Node OS services

ANTS 1.2 already provided for the use of different implementations of services upon which the ANTS run-time system relies. For instance, subclasses of the abstract base class Channel provided implementations of send() and receive() that were specific to a particular transport, such as UDP or Ethernet. We believe we improved upon that already existing separation.

We made the separation between ANTS run-time and the services it uses explicit by putting the services in a separate package, called nodeos. It should be noted that this separation is nowhere near complete: at this time, only two services have been extracted. These services are the dispatching of incoming packets and the scheduling of outgoing packets.gif In addition, the Node OS package provides a buffer type upon which ANTS bases the Xdr streams it uses for encoding and decoding.

In the future, this package will be enriched with services to control the CPU and memory usage of different protocols. These services are currently under development.

The current implementation is in user mode, but all kinds of implementations are conceivable--essentially, the Node OS package is responsible for wrapping the abstractions provided by the actual Node OS and presenting them to the ANTS run-time. For instance, a Scout-based implementation might use message trees to implement buffers and paths and their demultiplexing capabilities to implement the dispatch of packets.



Jay Lepreau
Tue Jun 2 05:48:49 MDT 1998