One way to implement adaptive software is to allocate resources dynamically during run-time rather than statically at design time. Design of adaptive software and adaptive execution of processes are key factors that improve versatility of software and decrease maintenance costs. In this chapter we study the development of adaptive software focusing on a design strategy for the implementation of parallel media servers with an adaptable behaviour. This strategy makes the timing properties and the quality of presentation of a set of media streams predictable. The proposed adaptive scheduling approach exploits the performance of parallel environments and seems a promising method that brings the advantages of parallel computation in media servers. The proposed mechanism provides deterministic service for both Constant Bit Rate (CBR) and Variable Bit Rate (VBR) streams. We present an efficient placement strategy for data frames as well as an adaptability strategy that allows appropriate frames to be dropped without sacrificing the ability to present multimedia applications predictably in time.
One common server architecture is the single processing model. However, this single processor server model has its limitations like performance, scalability, low transfer rate and low capacity. Recently, much research has been made on the topic of parallel systems in the community of parallel computing. In order to design a general purpose architecture which can be adapted to the current user requirements, a scalable parallel multimedia server shall be designed.
We will use the traditional model for a parallel media server previously described in (Wu & Shu, 1996; Jadav et al., 1997b). In that architecture there exist three kinds of nodes: storage nodes, delivery nodes and one control node (see Figure 1). The three kinds of nodes are explained in greater detail below:
The logical model of the parallel media server
Storage nodes are responsible for storing video and audio clips, retrieving requested data blocks and sending them to delivery nodes within a time limit. In addition, partitioned media blocks are wide striped among storage nodes in a round-robin fashion to balance the workload.
Delivery nodes are responsible for serving stream requests that have been previously accepted for service. Their main function is to request the striped data from the storage nodes through the internal interconnection network, re-sequence the packets received if necessary and then send the packets over the wide area network to the clients.