1,117 research outputs found

    Egocentric Context-Aware Programming in Ad Hoc Mobile Environments

    Get PDF
    Some of the most dynamic systems being built today consist of physically mobile hosts and logically mobile agents. Such systems exhibit frequent configuration changes and a great deal of resource variability. Applications executing under these circumstances need to react continuously and rapidly to changes in operating conditions and must adapt their behavior accordingly. The development of such applications demands a reexamination of the very notion of context and of the mechanisms used to manage the application response to contextual changes. This paper introduces EgoSpaces, a coordination model and middleware for ad hoc mobile environments. EgoSpaces focuses on the needs of application development in ad hoc environments by proposing an agent-centered notion of context, called a view, whose scope extends beyond the local host to data and resources associated with hosts and agents within an entire subnet surrounding the agent of interest. An agent may operate over multiple views whose definitions may change over time. An agent uses declarative specifications to constrain the contents of each view by employing a rich set of constraints that take into consideration properties of the individual data items, of the agents that own them, the hosts on which the agents reside, and of the physical and logical topology of the ad hoc network. This paper formalizes the concept of view, explores the notion of programming against views, and discusses possible implementation strategies for transparent context maintenance. We include examples to illustrates the expressive power of the view abstraction and to related it to other research on coordination models and middleware

    A Software Engineering Perspective on Context-Awareness in Ad Hoc Mobile Environments

    Get PDF
    Context-aware mobile applications require constant adaptation to their changing environments. Technological advancements have increased the pervasiveness of mobile computing devices such as laptops, handhelds, cellular phones, and embedded sensors. The sheer amount of context information necessary for adaptation places a heightened burden on application developers as they must manage and utilize vast amounts of data from diverse sources. Facilitating programming in this data-rich environment requires an infrastructure for sensing, collecting, and providing context information to applications. In this paper, we demonstrate the feasibility of providing such an infrastructure. It allows programmers to focus on high-level interactions among programs and to employ declarative abstract speciļ¬cations of context in settings that exhibit high levels of mobility and transient interactions with opportunistically encountered components. We also discuss the novel context-aware abstractions we implemented and the programming knowledge necessary to write applications using our middleware. Finally, we provide examples that demonstrate the ļ¬‚exibility of the infrastructure and its ability to support a variety of applications

    Bringing Context-Awareness to Applications in Ad Hoc Mobile Networks

    Get PDF
    Context-aware mobile applications require constant adapta-tion to their changing environments. Technological advancements have increased the pervasiveness of mobile computing devices such as laptops, handhelds, cellular phones, and embedded sensors. The sheer amount of context information necessary for adaptation places a heightened burden on application developers as they must manage and utilize vast amounts of data from diverse sources. Facilitating programming in this data-rich environment requires a middleware infrastructure for sensing, collect-ing, and providing context information to applications. In this paper, we demonstrate the feasibility of providing such a middleware that allows programmers to focus on high-level interactions among programs and to employ declarative abstract speciļ¬cations of context in settings that exhibit high levels of mobility and transient interactions with opportunis-tically encountered components. We also discuss the novel context-aware abstractions the middleware provides and the programming knowledge necessary to write applications using our middleware. Finally, we provide examples demonstrating the ļ¬‚exibility of the infrastructure and its abil-ity to support diļ¬€ering tasks from a wide variety of application domains

    Using EgoSpaces for Scalable, Proactive Coordination in Ad Hoc Networks **PLEASE SEE WUCSE-03-11**

    Get PDF
    The increasing ubiquity of mobile devices has led to an explosion in the development of applications tailored to the particular needs of individual users. As the research community gains experience in the development of these applications, the need for middleware to simplify such software development is rapidly expanding. Vastly diļ¬€erent needs of these various applications, however, have led to the emergence of many diļ¬€erent middleware models, each of which approaches the dissemination of contextual information in a distinct way. The EgoSpaces model consists of logically mobile agents that operate over physically mobile hosts. EgoSpaces addresses the speciļ¬c needs of individual agents, allowing them to deļ¬ne what data is to be included in their operating context by means of declarative speciļ¬cations constraining properties of the data items, the agents that own the data, the hosts on which those agents are running, and attributes of the ad hoc network. The resulting model is one in which agents interact with a dynamically changing environment through a set of views, custom deļ¬ned projections of the set of data objects present in the surrounding ad hoc network. This paper builds on EgoSpaces by allowing agents to assign automatic behaviors to the agent-deļ¬ned views. Behaviors consist of actions which are automatically performed in response to speciļ¬ed changes in the view. Behaviors discussed in this paper encompass reactive programming, transparent data migration, automatic data duplication, and event capture. Formal semantic deļ¬nitions are given for each behavior. Since performance is a real concern in the ad hoc environment, this paper also presents protocol implementations tailored to each behavior type

    Active Coordination in Ad Hoc Networks

    Get PDF
    The increasing ubiquity of communicating mobile devices and vastly diļ¬€erent mobile application needs have led to the emergence of middleware models for ad hoc networks that simplify application programming. One such system, EgoSpaces, addresses speciļ¬c needs of individual applications, allowing them to deļ¬ne what data is included in their operating context using declarative speciļ¬cations constraining properties of data, agents that own the data, hosts on which those agents are running, and attributes of the ad hoc network. In the resulting coordination model, application agents interact with a dynamically changing environment through a set of views, or custom deļ¬ned projections of the set of data present in the surrounding ad hoc network. This paper builds on EgoSpaces by allowing agents to assign behaviors to their personal-ized views. Behaviors consist of actions that are automatically performed in response to speciļ¬ed changes in a view. Behaviors discussed in this paper encompass reactive programming, transparent data migration, automatic data duplication, and event capture. Formal semantic deļ¬nitions and programming examples are given for each behavior

    Simplifying Context-Aware Agent Coordination Using Context-Sensitive Data Structures

    Get PDF
    Context-aware computing, an emerging paradigm in which applications sense and adapt their behavior to changes in their operational environment, is key to developing dependable agent-based soft-ware systems for use in the often unpredictable settings of ad hoc net-works. However, designing an application agent which interacts with other agents to gather, maintain, and adapt to context can be a difļ¬cult undertaking in an open and continuously changing environment, even for a seasoned programmer. Our goal is to simplify the programming task by hiding the details of agent coordination from the programmer, allowing one to quickly and reliably produce a context-aware application agent for use in large-scale ad hoc networks. With this goal in mind, we introduce a novel abstraction called context-sensitive data structures (CSDS). The programmer interacts with the CSDS through a familiar programming interface, without direct knowledge of the context gathering and maintenance tasks that occur behind the scenes. In this paper, we deļ¬ne a model of context-sensitive data structures, and we identify key requirements and issues associated with building an infrastructure to support the development of context-sensitive data structures

    Context-Sensitive Binding: Flexible Programming Using Transparent Context Maintenance

    Get PDF
    Context-aware computing is a new paradigm whose emergence has been fostered by a growing reliance on light and mobile computing devices, which adapt their behavior to changing environmental conditions. The dynamic nature of the environment is a direct result of the mobility of people and devices. Because the development of applications that entail a signiļ¬cant level of dynamic adaptation is a diļ¬ƒcult and error-prone task, new design methods and constructs are needed. Precise and ļ¬‚exible speciļ¬cation of the resources needed to operate in speciļ¬c contexts combined with transparent context management can simplify the development process. In this paper we propose a particular embodiment of this general design strategy in the form of a novel programming construct called context-sensitive binding. The approach allows programmers to deļ¬ne and use in their programs objects whose behavior is supported by code discovered at runtime within the computing environment surrounding the de-vice. The binding between the object in the program and the support object that delivers its realization is maintained transparently and is altered as the environment changes, thus making the binding context sensitive. The criteria for choosing among viable support objects are prescribed at the time the object is ļ¬rst instantiated. The paper introduces the concept of context sensitive binding, describes a Java-based implementation, and explores the programming implications of the proposed construct

    Active Coordination in Ad Hoc Networks

    Get PDF
    The increasing ubiquity of mobile devices has led to an explosion in the development of applications tailored to the particular needs of individual users. As the research community gains experience in the development of these applications, the need for middleware to simplify such software development is rapidly expanding. Vastly diļ¬€erent needs of these various applications, however, have led to the emergence of many diļ¬€erent middleware models, each of which approaches the dissemination of contextual information in a distinct way. The EgoSpaces model consists of logically mobile agents that operate over physically mobile hosts. EgoSpaces addresses the speciļ¬c needs of individual agents, allowing them to deļ¬ne what data is to be included in their operating context by means of declarative speciļ¬cations constraining properties of the data items, the agents that own the data, the hosts on which those agents are running, and attributes of the ad hoc network. In the resulting coordination model, agents interact with a dynamically changing environment through a set of views, custom deļ¬ned projections of the set of data objects present in the surrounding ad hoc network. This paper builds on EgoSpaces by allowing agents to assign automatic behaviors to the agent-deļ¬ned views. Behaviors consist of actions which are automatically performed in response to speciļ¬ed changes in the view. Behaviors discussed in this paper encompass reactive programming, transparent data migration, automatic data duplication, and event capture. Formal semantic deļ¬nitions and programming examples are given for each behavior

    Network Abstractions for Simplifying Mobile Application Development

    Get PDF
    Context-aware computing is characterized by the ability of a software system to continuously adapt its behavior to a changing environment over which it has little or no control. This style of interaction is imperative in ad hoc mobile networks that consist of numerous mobile hosts coordinating with each other opportunistically via transient wireless interconnections. In this paper, we provide a formal abstract characterization of a hostā€™s context that extends to encompass a neighborhood within the ad hoc network. We provide an application in an ad hoc network a speciļ¬cation mechanism for deļ¬ning such contexts that allows individual applications to tailor their operating contexts to their personalized needs. We describe a context maintenance protocol that provides this context abstraction in ad hoc networks through continuous evaluation of the context. This relieves the application developer of the obligation of explicitly managing mobility and its implications on behavior. The software engineering gains resulting from the use of this abstraction are measured through its expressiveness and simplicity of use. We also characterize the performance of this protocol in real ad hoc networks through simulation experiments. Finally, we describe an initial implementation of the abstraction and provide real world application examples demonstrating its use
    • ā€¦
    corecore