An agent-based framework for QoS management1 Antonio Pulia to1, Orazio Tomarchio1, Hermann de Meer2 1
Istituto di Informatica, Universita di Catania Viale A. Doria 6, 95025 Catania - Italy E-mail:fap,
[email protected] Department of Computer Science University of Hamburg - Germany E-mail:
[email protected] 2
Abstract As distributed multimedia applications become more widely diused, systems for QoS management are increasingly essential. In this paper we will present an architecture for distributed QoS management based on software agents. A software agent is a software module often equipped with arti cial intelligence mechanism which is capable, autonomously or in cooperation with other agents, of solving a certain problem or carrying out a certain task. We will show the advantage of an agent-based infrastructure in a problem inherently distributed and complex such as QoS management.
1 Introduction Distributed multimedia applications involve several media, which range from video to audio, and to traditional data. In such applications, requirements are dierent in terms of bandwidth, acceptable delays, jitter, and lost and/or corrupted packets in the network. Besides, as to continuous media such as audio and video, the service level must often be guaranteed [9]. We can therefore introduce the concept of Quality of Service (QoS), which has increasingly become important in communication networks. Supported by italian CRUI and german DAAD under the Programma Vigoni 1
The QoS required by these new applications is not appropriately supported by the existing communication networks [6]. For example, IP networks (the ones on which the whole Internet is based) do not make possible the speci cation of a quantitative QoS, because their architecture is based on a besteort-type model. These were the main requirements when such protocol was created, and until now its main use has been the transfer of data (telnet, ftp, e-mail), in which no xed time limit must be guaranteed. In fact, such networks were based on the concept of "datagram" (connection-less communication): in such architecture, a determined QoS for the packages of an application can hardly be guaranteed, because each package is routed separately, can have dierent delays and follow links with dierent bandwidth. Instead, the last generation's high-speed networks (such as ATM), are based on the concept of "virtual channel" (connection-oriented communication). In each connection we can x several quality parameters, such as the bandwidth required, the maximum acceptable delay, etc. [6]. Even if (according to what we have said so far) the concept of QoS seems to be strictly related to the network, we need to point out that this concept must be applied (and managed) at any level of the system as a whole [1, 2, 7, 8]. We will therefore have a QoS at the level of the user, at the level of the system (operating system and I/O devices), at the level of the communication subsystem, and at the network level. The only
management of the network resources is not sucient to give guarantees of QoS to end to the applications, in particular when the application involves some speci c characteristics of the end-system. So, even if the network is the component that in uences the global QoS, end-systems require a careful management of I/O devices, of the communication sub-system, and of process scheduling. We therefore need a QoS management system that could support the requirements that we have indicated so far. In this paper we propose an architecture for distributed QoS management, based on agent technologies [3, 5]. The distributed approach gives several advantages to the global system architecture [4]; we can monitor the state of the network at dierent levels of detail, and we can therefore know the local "situations" better. If necessary, we can therefore discover any problem more simply and correctly. Besides, since the whole problem is divided, each module is less complex. The agents approach used is eectively exploited, because it enables us to carry out the functions of the architecture easily; besides, the agents approach gives some typical advantages of "agent-oriented" programming. In particular, we will show how we can adapt the choice of QoS parameters (at the user's level) according to the type of application that we run, and to the service provider. Besides, the presence of the agents enables us to make more eective and exible management operations: only when an operation becomes necessary, the agent that implements it is sent on the node concerned, and there it becomes active, doing the operation required.
2 Architecture and operations The architecture to which we will refer is shown in Fig. 1. The user on the client is connected through the network (WAN) to service provider who gives him some kind of multimedia service. Examples of this scheme include video on demand, news on demand, but it also includes video-conference (in this case every client may be a server too). In this scheme we need an infrastructure for guaranteeing the desired quality of service to the user. The main functions belonging to QoS management
Service provider
User
Application
CLIENT
SERVER
Application
OS
OS
Network interface
Network interface
NETWORK
Figure 1: Reference Architecture are: QoS negotiation, QoS renegotiation, QoS mapping (among dierent levels), resource reservation, QoS monitoring and QoS adaptation. QoS negotiation is the stage in which the user speci es the desired QoS to the system, and an agreement is found among the entities involved (client, network, server). In this stage, the system must reserve adequate resources, in order to assure, at another moment, the negotiated QoS parameters. If the user wants to change some parameters in the QoS of the service he is using, he needs to start a renegotiation phase, in order to see if the system can support the new parameters. A renegotiation phase can also be started by the system, if it can no longer support the previously assured QoS. In this case, the user is asked to accept a QoS with a lower level parameter. Another task of the system is to monitor the quality parameters for the services currently provided, in order to verify if they match the ones assured in the negotiation phase. In fact, if one of such parameters falls below a certain level (for unforeseeable causes), the system needs to bring the level of QoS to normal, making a QoS adaptation operation (that is, trying to re-arrange the resources available more conveniently). In fact, such variations in QoS parameters are often temporary, and the system therefore needs to be able to react promptly, without degrading the QoS of the service provided to the user. However, if QoS cannot be brought to the values that have been negotiated with the user, the system needs to start a renegotiation procedure of the parameters. In what we said before, we have discussed about QoS parameters in general. We actually need to point out that all the QoS parameters to be considered
(as well as the concept of QoS itself) vary according to the observation point of the system 2. User preferences User Interface
Service provider
User
Application
Application
User QoS OS and
Application Transport
Service Agent
User agent
OS resources
System agent
OS and
Network int.
System agent
Network int.
System QoS parameters Network
Network resources Network Interface Net QoS parameters
Figure 2: Various levels on the end-system In fact, we can distinguish a set of parameters that determine the QoS level from the user's point of view (in his interaction with the application). The user wants to specify his preferences using parameters known to him; he may be completely unaware of technological requirements needed to adequately support his application. These user's level QoS parameters need to be translated into corresponding system QoS parameters. These ones are more strictly related to the application's characteristics and to the client's operating system. At a lower level there are a set of parameters which de nes the network QoS. This incolves dierent components: the network interface on the client and on the server (and their respective protocol stacks), and all the intermediate nodes on the network between them. In the network interface we have to consider end-toend requirements; it's the network protocol which has to choose the most suitable path in the network to satisfy those requirements. In order to assure the parameters required to the upper level, each level will have to ask the lower level for another set of QoS parameters to be met, and so on. We need therefore a mechanism that permits to transfer such parameters from a level to another.
3 How agents interact within the system The proposed agents structure enables us to do a distributed QoS management, which can be well carried out using software agents. Various types of agents are present inside our system (Figure 3): User Agent, System Agent, Network Agent and Service Agent. On the client system, the user interacts
Network agents
Figure 3: System architecture with the QoS management architecture through an appropriate User Agent. As we will see afterwards, such module is speci c for each service (application) required by the user, and enables him to specify the desired QoS parameters. It is also the agent which sends the user the request of renegotiation of QoS parameters when the lower level agents consider it necessary. In each client there is a System Agent that has all the information about the client's hardware. Relying on the services provided by the operating system of the host machine, it has the mechanisms for the control of QoS on the client. This agent is the reference module within the client: both the User Agent and the Network Agents rely on it for various operations. If necessary, it produces new agents (processes) which permit to transfer QoS parameters, from a level to another, to reserve hw/sw resources inside the client, to negotiate QoS parameters with Network Agents. Besides, it deals with the communication and co-operation with the other agents of the system. On the network there are also some so-called Network Agents, whose goal is to control the network; such agents give the possibility of: (a) specifying a set of QoS parameters for a given connection; (b) reserving suitable network resources; (c) monitoring such parameters during a connection; (d) starting the corrective activities of QoS adaptation in case some of such parameters are not respected (obviously, through the communication and co-operation among agents); (e) interacting with the network management system (in order to obtain new resources and/or optimize the use of the existing
ones). On the machines which makes the function of a server for a certain application, there is a Service Agent that has to: (a) control that the QoS parameters (to be given for each service required by the clients) are respected; (b) permit the use of a service to the highest number of users, by arranging an optimized use of the available resources; (c) keep a trace of the users logged in, in order to optimize the sharing of the network resources; (d) send to the client an agent that permits to specify the most appropriate QoS parameters for the speci c application; this agent will also contain the knowledge of the server's possibilities.
4 Speci c functions of the agents A key point of our architecture concerns the possibility to download (from the server) the User Agent related with the application to be run. QoS parameters at the user level depend on the type of application (and thus on the service required). It is the service provider that knows all the characteristics of the application; the provider can therefore include (in an agent) the information related with the combinations of QoS parameters more appropriate to the service required. In this way, the server can better meet the users' requirements, by optimizing, at the same time, the use of network resources. The agent, which has been prepared this way by the service provider, is sent (migrates) to the client, where it gives the user the opportunity to select QoS parameters. In the client, this agent will convert the QoS speci ed by the user into parameters to be passed to the System Agent. In fact, the user speci es the QoS desired, according to reference parameters that he knows. In general, he has no speci c knowledge of the underlying technological problems. For example, he can ignore the bandwidth necessary for a movie, the acceptable delays for a package of an audio stream, etc. The User Agent will therefore make a preliminary conversion, passing to the System Agent a set of values (range) that represent the level of QoS desired by the user. As we said before, the System Agent is the mod-
ule that will negotiate the QoS parameters received with the agents on the network and with the server. While doing such operations, the system agent can produce other sub-agents, specialized in speci c functions. In fact, according to the type of application involved, it will be necessary to involve several parts of the operating system and of the dierent levels of the network protocol stack. Of course, such agents will depend on the hardware and software architecture of the client, and they will rely on the services provided by the underlying hardware to do the required operations of resource reservation. The implementation of such agents will therefore depend on the hardware of the machine for which it is designed, and on its operating system. The agent that deals with interfacing to the network is very important: it is the Network Interface Agent. It deals with the negotiation of QoS parameters, by directly interfacing to local network protocols that are in the client. Through this agent, other monitoring and control activities on the network are started: in fact, this agent communictes with Network Agents on the network nodes. Network Agents refer to it when they need to notify critical situations or problems on the network part which aects the node in question. The use of an agent-based infrastructure for the management of QoS is good for implementing several renegotiation and adaptation strategies. Such operations in general imply a high (and sometimes complex) exchange of messages among the parties involved. The agents can therefore adequately support such functions, and permit more exibility in doing such operations. Service provider
User Negotiation of Application QoS
User agent Translation
Service agent Translation
System Agent
System Agent Negotiation of Network QoS
Network Interface Agent
Network Interface Agent
Network Monitoring
Network agents
Monitoring
Figure 4: Interactions among various agents
As we can see in Fig. 4, our architecture oers two kind of interactions between agents: orizontal communication between agents of corresponding levels and vertical communication between agents of adjacent levels. Orizontal communication involves negotiation of QoS parameters speci c to the corresponding level. For example the User Agent and the Service Agent negotiate application level QoS parameters, while Network Interface Agents operate on network QoS parameters. Requests of connection with a given QoS occur among agents of adjacent levels, thus involving vertical communications. The agent of each level is in charge to translate his parameters into the ones corresponding to the adjacent level (QoS mapping). At the user level, typical parameters to specify the required QoS are related with the description of the reproduction quality at the device level, for example sample size (height, width and color speci cation for a video stream) and the media sample rate. Typical network parameters are instead the bandwidth, end-to-end delay, jitter and loss-rate probability of a packet. System Agents have to manage local resources: they are strictly related with the operating system and operate at the I/O device management level, process scheduling level, memory buering level, etc. If a request of connection may be satis ed (agents also make the function of "admission control" for the level in which they operate), then each agent allocates required resources for the application (resource reservation). We are also assuming that the existing network is able to make these kind of operations. After starting the application and the connection on the network, System Agents together with Network Agents have to monitor the connection state in order to guarantee the respect of the negotiated parameters. If some of these parameters do not match with the negotiated value, then the agents have to start an "adaptation" phase. It may happen that, due to temporary faults or congestions, packets experience an unpredictable delay: agents have to rearrange resources previously negotiated in order to maintain ad adequate level of QoS. However, if the originally negotiated QoS can not be guaranteed anymore, a renegotiation phase is started.
5 Conclusions We have presented an infrastructure for distributed QoS management based on software agents. We discussed about agents, their properties and the main elds in which their use seems to be succesfully. After identifying the main functions needed in a system for QoS management, we described our architecture, the role and the funztion played by each kind of agent. We showed how our approach could be eective thanks to agent properties. Although many aspects need further works, we are convinced that the agent approach can be really suited for this kind of management.
References
[1] C. Aurrecoechea, A. Campbell, and L. Hauw. A survey of qos architectures. Multimedia Systems Journal, Special Issue on QoS Architectures, May 1997. [2] A. Campbell, G. Coulson, and D. Hutchison. A Quality of Service Architecture. ACM Computer Communication Review, 24(2), April 1994. [3] O. Etzioni and D.S. Weld. Intelligent agents on the Internet: Fact, Fiction, and Forecast. IEEE Expert, 10(4), August 1995. [4] S. Fischer, A. Ha d, and G. Bochmann an d H. de Meer. Cooperative QoS management for multimedia applications. 4th IEEE Int. Conf. on Multimedia Computing and Systems, June 1997. [5] Michael R. Genesereth and Steven P. Ketchpel. Software agents. Communications of the ACM, 37(7), July 1994. [6] R. Handel, M. N. Huber, and S. Schroder. ATM Networks: Concepts, Protocols, Applications. Addison-Wesley, 1995. [7] K. Nahrstedt and J. M. Smith. The QoS Broker. IEEE MultiMedia, 2(1), 1995. [8] K. Nahrstedt and R. Steinmetz. Resource Management in Networked Multimedia Systems. IEEE Computer, May 1995. [9] R. Steinmetz and K. Nahrstedt. Multimedia: Computing, Communications and Applications. Prentice-Hall, 1995.