The specification and management of quality of service (OoS) is important in networks and dis tributed computing systems, particularly to support multimedia applications. The advent of portable laptop computers, palmtops, and personal digital assistants with integrated communi cation capabilities facilitates mobile computing. This article is a survey of OoS concepts and techniques for mobile distributed computing environments. The requirements of current and future mobile computing are examined and the services required to support mobility are discussed. Generic concepts of OoS specification and management are overviewed followed by an analysis of the OoS work specific to mobile computing environments. T he availability of lightweight, portable computers and wireless communications has made mobile computing applications practical. An ever more mobile work force, home working, and the computerization of inherently mobile activities are driving a need for powerful and complex mobile computer systems and applications inte grated with fixed systems. Mobile cellular telephony is widely available and computers are being integrated with these tele phones to form mobile computing devices. Many businesses are dependent on distributed, networked computing systems and are beginning to rely on high-speed communications for multimedia interactions and Web-based services. Users are now requiring access to these services while travelling. In addition, new multimedia applications are emerging for Web enabled telephones and mobile computers with integrated communications. Multimedia applications require more sophisticated man agement of those system components, which affect the quality of service (QoS) delivered to the user, than for simpler voice or data-only systems. The underlying concepts of bandwidth, throughput, timeliness (including jitter), reliability, perceived quality and cost are the foundations of what is known as QoS. However, portable computers introduce particular problems of highly variable communication quality; management of data location for efficient access; restrictions of battery life and screen size; and cost of connection, which all impact the abili ty to manage and deliver the required QoS in a mobile envi ronment. The assumption that QoS will be provided and maintained, without some guarantee or notification of inability to deliver, is seriously flawed from business and technological perspec tives. In many applications late information has ceased to have any value, and in "hard" real-time applications may be dangerous, or have financial repercussions. Many are pre pared to tolerate slow computer interactions, or try to over come problems by installing more processing power, or communication capacity. In many cases, overdimensioning of the system is not economic and mission-critical real-time applications cannot simply trust this uncertain approach. Much progress has been made on providing the ability to manage QoS. Formal notations, standards, and practical implementations, particularly in the field of networks, but also more recently in systems software now exist for this. While the underlying technologies of QoS and mobile systems are well understood, the combination of the two problems has only recently started to be addressed [1, 2] . This article surveys the literature on QoS for mobile computing systems, rather than for wireless telecommunications. The following section gives an overview of current and future mobile computing and some of the services needed to support mobility. This is followed by a summary of the generic concepts of QoS in order to understand how to specify and measure QoS in terms of its attributes and the management techniques which can also be applied to mobile systems. The QoS issues and current state of QoS provision for mobile computing environments are then discussed, with an examina tion of where the known QoS principles can be reused, or where mobility requires a different approach. The conclusion summarizes our views on the most important research issues in this field. In this section we examine current and future mobile com puting applications and then discuss the services needed to support nomadic and mobile systems. The reader looking for a comprehensive set of references on mobile communications and computing may find [3] informative. There are many potential applications of mobile computing which will become important in the future, as the power of 2 IEEE Communications Surveys· http://www.comsoc.org/pubs/surveys • Second Ouarter 1999 portable computing devices increases and the cost of wireless communications decreases. Portable computing devices are commonly used for access to electronic mail, sending faxes, accessing the Web or remote databases, and using cellular telephones or local networks when users are travelling. Palmtop computers and personal digital assistants are being integrated with cellular telephones as part of the increasing convergence between telecommuni cations and computing. This type of very lightweight device could be used as an electronic "newspaper" capable of deliv ering selective news that is personalized according to individu al user preferences and is more up-to-date than a newspaper. This could include financial information on a user's stock portfolio [4] . Web-based news delivery is already available, but currently only really used from desktop workstations. Web-based access to multimedia entertainment, videos, music, and games is also likely to increase in the future but this would require a considerable decrease in wireless communica tion costs to be practical for mobile computing. However, Web-enabled cellular phones and in-car communications are beginning to emerge and are considered a future growth area. There are a range of location-aware applications in which the computing device is able to determine the users physical location, e.g., using Global Positioning Systems (GPS) which can be used to display current position on maps, receive traf fic and weather information, and act as a car-navigation aid [5, 6] . This could be enhanced to provide local information such as nearest, hospitals, hotels or restaurants for travellers. Similar applications based on hand-held devices can be used as guides within museums, art-galleries or towns. These deter mine current position and provide information on exhibits or buildings near the user and also provide access to additional information such as a painter or architect's biography. Loca tion aware services are discussed in the section on "Mobility Supprot Services" to follow. The utility services are potential users of mobile computing services. Emergency services such as fire and ambulance can access plans of buildings or details of hazardous chemicals from remote databases. The use of experimental mobile com puters by engineers working on power distribution systems is described in [7, 8] . Portable computers with cellular tele phones were used to obtain maps indicating the current state of the power distribution system in the area in which they were working. The engineers were also able to communicate with each other and with their control center to coordinate activities and safely resolve switching requirements. There are many other applications where field workers would benefit from use of mobile computing devices for access to detailed 3-D drawings or plans, e.g., aircraft maintenance engineers, architects, or construction workers [9] . Access to educational material from digital libraries extends the concept of home or remote learning to education and training while on the move in trains or buses. The common factor in the above future applications is they are likely to be based on multimedia interactions and not just textual data or voice. Mobile systems can be categorized depending on whether they use fixed or radio communication services. Nomadic systems are typically based on wired dialup, or local area network communication facilities. Mobility is not transparent, requiring a new connection to be explicitly estab lished when the user moves to a new location [4, 9] . For example, a nomadic user may carry a laptop and connect to a network at various times from their home, office, and various remote sites such as clients' offices or hotels. While travelling between these locations the laptop is disconnected from the network. The user may then make large geographical move ments between connections, and connections over equipment with widely ranging capabilities, but will exhibit relatively stat ic characteristics during a connection. Nomadic users may also use different computers to connect into their normal working environment. For example, many people have both an office and home computer or may connect using a local computer at a remote site of their organization. This then presents the problem of making efficient provision of resources commonly required by the user. Mobile systems use wireless technology for transparent communications while travelling in a train, car, plane or even while walking. During the course of a connection the radio reception is likely to vary considerably, and the physical loca tion of the device may be hundreds of miles from its starting point. While mobile telephony is generally implemented in terms of a series of discrete connections to base stations pro viding "cells" of coverage, a sophisticated system may be implemented such that discontinuous connection is abstracted or hidden from the user or application. There is no absolute distinction between nomadic and mobile systems, e.g., a wireless-based mobile system may move from one site to another while disconnected so it is both nomadic and mobile. Many of the services required to support nomadic and mobile systems are very similar (as described in the next section), so we use the term mobile to cover both. Mobile computers move, so the fundamental problem is for the system to track the current location of the mobile device in order to be able to communicate with it. Current network addressing mechanisms contain implicit location information -a subnet component maps onto a network at a particular place or within a particular organization. Telephone numbers also contain implicit location information -country code, area code, and local exchange. In the mobile telephone service, the phone number identifies a home location register (HLR) which knows the current location of the mobile device. When the telephone roams to a different service provider's coverage, it registers with a visiting location register which informs the HLR of the mobile phone's current location. Sim ilar techniques have been proposed for mobile computing [4, 10, 11 ]. An alternative is to use a global directory, such as X500 which maintains the current location information and is accessed using a name rather than an address. Location-aware services and applications require informa tion on a user's geographical location in order to display a position on a map or provide local information as described in the section on "Mobile Computing Applications." This then requires a generalized location service, accessible by applica tions, to track the current position of the user. This can be accomplished using GPS, cellular telephone base stations, active badges, or determining which fixed computer is being used [6, 12] . Although the cellular telephone service providers know a subscriber's current location, they do not permit access to this information by applications running on a computer con nected via a telephone, for legal or commercial reasons. Context-aware applications require knowledge not only of location but the user's context which includes characteristics of the particular computing device being used (e.g., PDA or notebook) and information about the users current environ ment (e.g., who else is in the vicinity, or whether the user is in quiet or noisy environment). The application then adapts the presentation of information or quality of service provided to the user's current context [13] . This is discussed further in the section on "Context Awareness." Mobile computing devices may also need access to local  This overview of what is QoS and how to specify it is based on [2, 17, 18] whose treatment is primarily concerned with multimedia. Arbitrary scale of importance, may be applied to users, different flows in a multimedia stream, etc. Maps to color information per pixel Maps to frame rate Maps to frame rate jitter Audio sampling rate and number of bits Video and audio stream synchronization, e.g., for lip-sync Cost to establish a connection, or gain access to a resource Cost per unit time or per unit of data, e.g., connection time charges and per query charges Preventing access to information, usually by encryption but also requires access control mechanisms Proof that data sent was not modified in transit, usually by means of an encrypted digest Signatures to prove who and when data was sent or received Proof of identity of user or service provider to prevent masquerading, using public or secret encryption keys QoS Characteristics -QoS defines nonfunctional characteristics of a system, affecting the perceived quali ty of the results. In multimedia this might include picture quality, or speed of response, as opposed to the fact that a picture was produced, or a response to stimuli occurred. Table 1 shows the main technology-based QoS parame ters. Basic mathematical models for concatenating throughput, delay, jitter, and frame loss rate are specified in [19, 20] .  QoS management is defined in [2] as the necessary supervision and con trol to ensure that the desired quality of service properties are attained and sustained which applies both to contin uous media interactions and to discrete interactions. It can be considered a specialized area of distributed systems management. The various aspects of  The definition of QoS requirements or capabilities. The process of reaching an agreed specification between all parties. The comparison of required QoS and capability to meet requirements. The allocation of resources to connections, streams etc . • Table 3 . Static QoS management functions. interaction and types of guarantees required, as described above, must be synthesized into a specification of require ments, and relationships for trade-offs to enable the delivered QoS to be managed. We divide these first into static func tions, applied at the initiation of an interaction, and dynamic functions, applied as needed during an interaction. Static QoS Management Aspects -The static QoS man agement functions relating to properties or requirements which remain constant throughout some activity, are summa rized in Table 3 , drawing from [2, 17, 22] . In determining requirements, and agreeing to contracts it is important that the end-to-end nature of the requirements are considered. For instance, a video server may be able to computationally service a frame rate which neither its disk interface or all parts of the network passing the data to the Policing Ensuring all parties adhere to Qos contract. Modification of parameters by the system to maintain QoS. Applications are not required to modify behavior. The renegotiation of a contract. The applications adapts to changes in the QoS of the system, possibly after renegotiation. Combining two or more streams with temporal QoS constraints between them, e.g., synchronization of speech and video streams . • Table 4 . Dynamic QoS management functions. Requirements at various levels of abstraction are described as combined parameter, value, allowed variation, and guarantee level descriptions. [23, 24, 25, 26] are interesting examples of work on specification of QoS requirements, and behavior in relation to actual QoS experienced. A comparison of specifications in admission control with modification of requirements on Failure, and resource reservation when an agreement is reach. The modification of requirements should consider the inter-relation of parameters and preferences of the user. [27, 28] . The available resources may be estimated with the aid of resource reservation information, and performance models. A time-sliced model of capacity reserved is common, e.g., [29, 30, 31] . recipients can sustain. In some situations it is necessary to consider human users as part of an end-to-end system, treat ing them as active participants, rather than passive receivers of information. For instance, people have thresholds of bore dom, and finite reaction times. A specification of the user's perceptions is thus required, as it is the user that ultimately defines whether the result has the right quality level. Dynamic QoS Management Aspects -The dynamic aspects of QoS management respond to change within the environment, allowing a contract to be fulfilled on an ongoing basis. Contract specifications are often inexact as resource usage and flow characteristics are not generally completely defined in advance [32] . The dynamic management functions are summarized in Table 4 . These issues are expanded on in [2, 17, 22, 33] . Monitor actual parameters in relation to specification, usually introspective. Frequency of monitoring affects monitoring traffic load but reducing frequency may result in out of specification performance for a period of time. See [34] for discussion on Piggy-back monitoring with other traffic. Monitor actual parameters in relation to contract, to ensure other parties are satisfying their part [35] . The use of fi Iters to buffer or smooth streams, in order to maintain stable delay, data rate and jitter [36] . QoS aware routing to maintain network characteristics. Scaling media, e.g. by modifying levels of Detail provided within a stream. This is required when the maintenance functions cannot achieve the parameters specified in the contract, usually as a result of major changes or failures in the system. Usually invoked by exceptions raised by the monitoring, policing and maintenance function. [19, 37]. Application dependent adaptation may be needed after renegotiation or if the Qos management functions fail to maintain the specified QoS. Often achieved by media scaling [27, 38, 39] . This involves representing each stream in a format where temporal information is stored with the data, allowing cross referencing between the streams. • Table 5 . Common communication systems. Most of the literature discusses maintaining a QoS contract under adverse conditions, often by reducing data volume. However, it should also be noted that QoS functions may be applied to increase data transfer rates when the system improves its ability to provide a service, i.e., a quality ordered sequence of alternatives due to media scaling or renegotiation may be traversed in the directions of both improvement and degradation when QoS passes given thresholds. We shall now summarise the problems of mobility in direct relation to QoS, and then describe some of the ideas and solutions being developed specifically to manage QoS in a mobile environment. One of the key differences between mobile and fixed sys tem is that the former have to be able to adapt to the changes in QoS resulting from mobility, rather than trying to provide hard guarantees of QoS [9, 15, 40, 41] . The Effects of Link Type On QoS -Nomadic systems may connect via a local area network and then reconnect via a modem or wireless link at a later time. A wireless link is obvi ously needed to support mobile computing. The key consider ations of bandwidth, range, and cost are summarized for some popular communication technologies in Table 5 . Although new wireless technologies with higher bandwidth are emerging [42] , it is a reasonable assumption that wireless network technology will continue to provide bandwidth at least an order of magnitude lower than that of fixed networks for some time, and continue to have characteristics which are more susceptible to environmental variations than wired con nections. The area of coverage, and thus the degree of move ment allowed while remaining connected, is related to bandwidth. Wireless LAN can cover a cell of about 500-1000 m diameter while Global Systems Mobile (GSM) may cover several square km per cell but provide country-wide and inter national coverage through widely deployed base stations. Satellite systems may provide similar global coverage but at very high cost in the medium term future. The use of multimedia applications requiring high data throughput is problematic for mobile systems. Whereas speech-quality audio with compression requires only 8 Kb/s, even low-fidelity video tends towards Mb/s data rates. In addition, it is not desirable to simply limit the capabilities of sys tems to the lowest common denominator. It is better to try to manage the variations in data rates of the connection due to mobility and if possible, make applications adapt to these vari ations. Hence, the static QoS management functions must support a greater range of baseline capabilities to support mobile use. The Effects Of Movement On QoS -One of the main problems of movement is due to handover as the mobile device moves from a cell covered by one base station to an adjacent cell of a different base-station during a connection. This handover time may result in a short loss of communica tion which may not be noticeable for voice interaction but can result in loss of data for other applications. Another problem is that of selecting a suitable base-station to which it can han dover, which has sufficient spare capacity to support the con nection [9] . For mobile computing, the base station may have to provide local processing, storage or other services as well as communication. [43] describes a system for QoS driven resource estimation and reservation to support handover. Their approach is based on a connection casting a "shadow" of advance requirement on neighbouring cells, where the shadow is stronger in the direction of movement. This can sometimes be established by including geographical knowl edge of likely paths of movement. A stronger shadow represents a greater likelihood of the resource being required. The rate of handover may also be measured, suggesting reser vation of more than one cell in advance (the cell currently occupied then casts a longer shadow of advance reservation). This gathering of information in conjunction with knowledge of the environment then allows confident predictions of future requirements to be made, enabling higher resource usage as fewer resources in the network are reserved unnecessarily. Another form of context aware resource reservation is described in [44] , where each end of a flow is characterized as static or mobile, and advance reservations are made for mobile flows on the predicated next cell. However, these techniques cannot completely hide all mobile link effects. Mobile wireless networks have blind spots under bridges, behind buildings or hills, where the signal may be very weak resulting in temporary quality reduction or con nection loss when the mobile device is in a moving car or train. Variations in link quality can also be caused by atmo spheric conditions such as rain or lightning. These effects require more sophisticated dynamic QoS management than fixed systems. It is thus the variation in QoS which is the crucial differ ence between mobile systems and communications based on 6 IEEE Communications Surveys· http://www .comsoc.org/pubs/surveys • Second Quarter 1999 wired networks. This implies the need for adaptive QoS man agement which specifies a range of acceptable QoS levels, rather than trying to guarantee specific values. The QoS man agement is also responsible for cooperation with QoS aware applications to support adaptation, rather than insulating applications from variation in underlying QoS. The effects of mobility on QoS require then that algorithms employed must be capable of managing frequent loss and reappearance of mobile device in the network, and that overhead should be minimized during periods of low connectivity. This is in con trast to traditional distributed applications, where reasonably stable presence and consistently high network quality are often assumed. The Restrictions Of Portable Devices On QoS -There are a number of limitations imposed by portability of the mobile computing device [1, 4, 9] . The main limitation is in the physical size of mobile computers, as discussed below. Mobile systems typically are designed with the limitations of batteries in mind, even where a mains power alternative is possible. Current battery technology still requires considerable space and weight for modest power reserves, and is not expected to become significantly more compact in the near future. This then places limits on the design due to the need to provide low power consumption as a primary design goal: low power processors, displays and peripherals, and the prac tice of having systems powered down or "sleeping" when not in active use are common measures to reduce power con sumption in portable PCs and PDAs. Low power consumption components are generally a level of processing power below their higher consumption desktop counterparts, thus limiting the complexity of tasks performed. The practice of intermit tent activity may appear as frequent failures in some situa tions. Similarly, mobile communications technology requires significant power, particularly for transmission, so network connection must be intermittent. The second point is that of user interfaces: large screens, full-size keyboards, and sophisticated and easy to use pointer systems are commonplace in a desktop environment. These facilitate information-rich, complex user interfaces, with pre cise user control. In portable computers, screen size is reduced, keyboards are generally more cramped, and pointer devices less sophisticated. PDAs have small, low-resolution screens which are often more suited to text than graphics and may only be monochrome. They have minimal miniature key boards, and pen-based, voice, or simple cursor input and selection devices. These limitations in input and display tech nology require a significantly different approach to user inter face design. In environments where users may use a variety of systems in different situations, the interface to applications may then be heterogeneous, and be required to scale with available devices, in a similar manner to the network connection's scal ing depending on the medium used. Ideally there should be a consistent user interface for particular applications across a range of computing devices but this is not always easy to achieve. While the limitation in battery size and power are expected to remain, I/O device technology is becoming more sophisti cated: headset technology developed for virtual reality, and traditional display technology's resolution and colour repre sentation in thin packages are areas of much development. Advances in computing power are enabling handwriting and speech based input technologies, although traditional key board input, and information display are unlikely to become significantly different or more advanced, due to the limita tions of eyesight and dexterity of users. QoS management in a mobile environment must allow for scaling of delivered information, and also simpler user inter faces when connecting using a general mix of portable devices and higher-power non-portable devices [1, 6] . Again the field of context aware computing provides groundwork in this area, where rather than treating the geographical context (as for mobility), one can treat the selection of end-system as giving a resource context. The Effects On Other Non-Functional Parameters -
Also relevant to our work is the research on quality of service provision in a mobile computing environment REF .
A survey of quality of service in mobile computing environments
IEEE Communications Surveys & Tutorials
IEEE Communications Surveys & Tutorials
Computer Science