Experiences of Using Generative Communications to Support Adaptive Mobile Applications [chapter]

Adrian Friday, Nigel Davies, Jochen Seitz, Matt Storey, Stephen P. Wade
1999 Mobile Data Management and Applications  
Attention has recently begun to focus on the use of asynchronous paradigms to support adaptive mobile applications. To investigate this issue the authors have developed an asynchronous distributed systems platform based on the tuple space paradigm [Gelernter,85b] coupled with extensions to support operation in mobile environments. This paper presents our experiences of developing and using this platform. The benefits of the tuple space approach are highlighted and we discuss in some detail the
more » ... esign, implementation and performance of our platform. We subsequently focus on the critical issues of the tuple space API and the level of support for adaptation which can be provided without compromising the elegance and simplicity of the paradigm. The paper concludes with an analysis of the suitability of platforms based on the tuple space paradigm for use in mobile environments. Introduction Mobile computing environments are characterised by change [Davies,95]. More specifically, in an environment in which users and end-systems are highly mobile the resources available to application and system components are subject to rapid and significant fluctuations. For example, an end-system which roams between different network overlays [Katz,96] may experience changes in network quality-of-service (QoS) which reduce the effective bandwidth by several orders of magnitude. Furthermore, these changes in resource availability may be mirrored by changes in service availability and, most crucially, user requirements as the context within which the user and end-system operates changes. In order to enable systems to continue to operate in such dynamic environments it is now widely accepted that system and application components must be adaptive [Davies,94], [Katz,94], i.e. they must be able to adapt their behaviour in response to changes in their context. Initial approaches to supporting adaptation have focused on one of two techniques: either extending existing distributed systems platforms to enable applications to obtain feedback on network QoS or using proxies to perform adaptation on behalf of applications. The first approach typically involves implementing new APIs which can be used to selectively remove aspects of network transparency and thus expose QoS information. Such extensions are often combined with further refinements such as message buffering which allow applications to continue operation during periods of network disconnection. This approach is typified by the work of Joseph et al. on the Rover system [Joseph,96]. In contrast, approaches based on proxy architectures [Zenel,95], [Yeadon,96], [Fox,96], [Seitz,98] allow the instantiation of filtering, caching or translation components into the communications path between clients and servers. Component instantiation is typically carried out either as part of the overall system configuration (usually explicitly by the user or a system administrator) or may be triggered transparently in response to pre-determined or pre-configured QoS events. More recently, attention has begun to focus on the use of asynchronous paradigms to support adaptive mobile applications. At Lancaster we have developed an asynchronous distributed systems platform based on the tuple space paradigm [Gelernter,85b] but extended to support operation in mobile environments. The platform has been fully implemented and used to support a wide range of applications, both mobile and fixed. In this paper we report on our experiences of developing and using the platform. In particular, we focus on the critical issues of the tuple space API and the level of support for adaptation which can be provided without compromising the elegance and simplicity of the paradigm. Section 2 presents an analysis of the theoretical benefits and shortcomings of the tuple space paradigm when applied to the field of mobile computing. Section 3 then describes in detail the computational and engineering models for our platform. We then consider the API of our platform and discuss support for adaptation in tuple space based architectures (sections 4 and 5 respectively). Finally, we analyse our experiences and comment on the suitability of platforms based on the tuple space paradigm for use in mobile environments. An Analysis of the Tuple Space Approach Overview The tuple space paradigm was conceived in the mid-1980's by researchers at Yale University as a mechanism for coordinating the numerous processes involved in complex parallel computations [Gelernter,85a]. A tuple space is an abstract entity, akin to distributed shared memory, spread across all participant processes and/or hosts. Inter-process communications are conducted exclusively through the generation of tuples and anti-tuples which are submitted to tuple space. This is termed generative communication. Tuples are typed data structures, each formed from a collection of typed data fields, and every tuple represents a cohesive piece of data. Tuples are comparable to structures
doi:10.1007/978-1-4615-5233-8_4 fatcat:tslkbhtaybccbm3wp4zyqprbke