Amethyst - Multi-media Resource Management

Overview

This project will add extensive support for resource management to the distributed multi-media environment, allowing controlled allocation and multiplexing of all resources in the nucleus. These include: threads, message buffers, communication channels as well as low-level and system-level abstractions such as memory and network endpoints.

Benefits

Resource separation, placing resources into managed pools, is required to provide predictable performance under unpredicatable loads and to avoid application cross-talk. For example, this is required for supporting the concurrent processing of multiple multi-media flows in real-time.

Resource pools can provide proper resource separation and a basis for low-level QoS management. They can also provide a structure which can be used as a basis for concurrency control, providing cleaner resource management and locking policies than are currently employed.

Pools will also make the nucleus more modular and provide a simpler environment to develop in. Pools will form the basis of resource scheduling and may be parameterized with different resource scheduling policies. This will provide the implementation basis for both highly scalable, (late binding, aggressively multiplexed) distributed processing services (such as are required in the large scale Internet) and for QoS controlled dedicated connections for high throughput and real-time responsiveness.

Approach

Support for the ANSA explicit binding architecture [APM.1314], based on plug-able object and stream adapters, which allow typed application interfaces to be bound to QoS controlled communication endpoints, will be implemented. Adapter implementations will make heavy use of resource pools.

Generic abstractions and implementation classes will be developed for resource pools. These may be based on the Taligent application frameworks and on design pattern approaches to reusable software.

Pools wil be developed for threads (using a POSIX implementation), buffers and communication endpoints. The existing protocol framework will be adjusted to incorporate one-way stream messages and stream binding and to support finer grained concurrency. Resource pools will limit multiplexing to low level resources thus avoiding QoS cross-talk between independent application activities.

Dependencies

This project links in with the Jetstream project and leads the work into Ruby project where synchronous programming is examined.

Deliverables

  1. DIMMA nucleus re-structured for resource management using the concept of resource pools.
  2. Enhanced nucleus development environment: support for developing stream and object adapters, support for low - level QoS management.

Timescale

Proposed start date is March, 1996. Estimated completion date is October, 1996.

Contacts

For further details contact Andre Kramer (ak@ansa.co.uk)