10 research outputs found

    Structured decomposition of adaptive applications

    Get PDF
    Thesis (Elec. E. in Computer Science)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2012.This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.Cataloged from student submitted PDF version of thesis.Includes bibliographical references (p. 57-58).We describe an approach to automate certain high-level implementation decisions in a pervasive application, allowing them to be postponed until run time. Our system enables a model in which an application programmer can specify the behavior of an adaptive application as a set of open-ended decision points. We formalize decision points as Goals, each of which may be satisfied by a set of scripts called Techniques. The set of Techniques vying to satisfy any Goal is additive and may be extended at runtime without needing to modify or remove any existing Techniques. Our system provides a framework in which Techniques may compete and interoperate at runtime in order to maintain an adaptive application. Technique development may be distributed and incremental, providing a path for the decentralized evolution of applications. Benchmarks show that our system imposes reasonable overhead during application startup and adaptation.by Justin Mazzola Paluska.Elec.E.in Computer Scienc

    A survey on engineering approaches for self-adaptive systems (extended version)

    Full text link
    The complexity of information systems is increasing in recent years, leading to increased effort for maintenance and configuration. Self-adaptive systems (SASs) address this issue. Due to new computing trends, such as pervasive computing, miniaturization of IT leads to mobile devices with the emerging need for context adaptation. Therefore, it is beneficial that devices are able to adapt context. Hence, we propose to extend the definition of SASs and include context adaptation. This paper presents a taxonomy of self-adaptation and a survey on engineering SASs. Based on the taxonomy and the survey, we motivate a new perspective on SAS including context adaptation

    Goal-oriented Web search

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2010.Cataloged from PDF version of thesis.Includes bibliographical references (p. 57-58).We have designed and implemented a Goal-oriented Web application to search videos, images, and news by querying YouTube, Truveo, Google and Yahoo search services. The Planner module decomposes functionality in Goals and Techniques. Goals declare searches for specific types of content and Techniques query the various Web services. We choose which Web service has the best rating at runtime and return the winning results. Users weight their preferred Web services and declare a repository of their own Techniques to upload and execute.by Victor Lamont Williamson.M.Eng

    MEDUSA: Middleware for End-User Composition of Ubiquitous Applications

    Get PDF
    International audienceActivity-oriented computing (AOC) is a paradigm promoting the run-time realization of applications by composing ubiquitous services in the user's surroundings according to abstract specifications of user activities. The paradigm is particularly well-suited for enacting ubiquitous applications. However, there is still a need for end-users to create and control the ubiquitous applications because they are better aware of their own needs and activities than any existing context-aware system could ever be. In this chapter, we give an overview of state of the art ubiquitous application composition, present the architecture of the MEDUSA middleware and demonstrate its realization, which is based on existing open-source solutions. On the basis of our discussion on state of the art ubiquitous application composition, we argue that current implementations of the AOC paradigm are lacking in end-user support. Our solution, the MEDUSA middleware, allows end-users to explicitly compose applications from networked services, while building on an activity-oriented computing infrastructure to dynamically realize the composition

    Goal-oriented hardware design

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2008.Includes bibliographical references (p. 145-146).This thesis presents Fide, a hardware design system that uses Goal-oriented programming. Goal-oriented programming is a programming framework to specify open-ended decision logic. This approach relies on two fundamental concepts-Goals and Techniques. Goals encode decision points and Techniques are scripts that describe how to satisfy Goals. In Fide, Goals represent the functional requirements (e.g., addition of two 32-bit binary integers) of the target circuit. Techniques represent hardware implementation alternatives that fulfill the functions. Techniques may declare their own subgoals, allowing a hierarchical decomposition of the functions. A Planner selects among Techniques based on the Goals declared to generate an implementation of the target circuit automatically. Users' preferences can be added to generate circuits for different scenarios: for different hardware environments, under different circuit constraints, or different implementation criteria etc. A Beta processor is implemented using Fide. The quality of the implementation is comparable to those optimized manually.by Man Ping Grace Chau.S.M

    Language and compiler for algorithmic choice

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009.Cataloged from PDF version of thesis.Includes bibliographical references (p. 55-60).It is often impossible to obtain a one-size-fits-all solution for high performance algorithms when considering different choices for data distributions, parallelism, transformations, and blocking. The best solution to these choices is often tightly coupled to different architectures, problem sizes, data, and available system resources. In some cases, completely different algorithms may provide the best performance. Current compiler and programming language techniques are able to change some of these parameters, but today there is no simple way for the programmer to express or the compiler to choose different algorithms to handle different parts of the data. Existing solutions normally can handle only coarse-grained, library level selections or hand coded cutoffs between base cases and recursive cases. We present PetaBricks, a new implicitly parallel language and compiler where having multiple implementations of multiple algorithms to solve a problem is the natural way of programming. We make algorithmic choice a first class construct of the language. Choices are provided in a way that also allows our compiler to tune at a finer granularity. The PetaBricks compiler autotunes programs by making both fine-grained as well as algorithmic choices. Choices also include different automatic parallelization techniques, data distributions, algorithmic parameters, transformations, and blocking.by Jason Ansel.S.M

    System support for proactive adaptation

    Full text link
    Applications in our modern, pervasive computing environments have to adapt themselves or their context in order to cope with changes. In the process, these pervasive applications should be as unobtrusive as possible, i.e., their adaptation should be automatic. In dynamic multi-user systems with shared resources and interactive applications, such adaptations cannot be scripted in advance. Instead, they have to be calculated at runtime. However, the necessary calculations quickly exceed the complexity that can be handled in real-time, i.e., without causing significant delays. The concept of proactive adaptation allows to change applications and/or context based on prediction of context and user behavior. Hence, proactive adaptation can reduce adaptation delays and avoid context interferences by determining coordinated adaptation plans ahead of time, instead of reactively when adaptation becomes necessary. Further, it helps to provide a seamless service to the user, while optimizing the overall system utility. This thesis presents a general framework and middleware-based system support for coordinated proactive adaptation in dynamic multi-user pervasive systems. The framework consists of five major components. The context interaction model and corresponding context broker offers context information, prediction, as well as actuation in a uniform fashion. The application configuration model allows applications to specify their requirements towards their context, as well as detail user preferences and duration-dependent utility and cost functions for adaptation optimization. Configuration algorithms calculate and rate all adaptation alternatives of an application given a current or predicted context and the specified rating functions, before coordination algorithms find interference-free adaptation plans for situations in which multiple applications share a context space. Finally, the adaptation control component combines the individual components of the framework in a two-dimensional control loop for proactive and fallback reactive adaptation. The prototype framework is evaluated in real-time simulations of an interactive pervasive system using recorded user traces

    Application coordination in pervasive systems

    Full text link
    Our future environment will be managed by a multitude of different pervasive systems. A pervasive system consists of users and devices which cooperate to provide functionality to the users. The provision of functionality is realized by pervasive applications. A major characteristic of pervasive applications is their context-interactivity. On one hand, pervasive applications are context-aware and can adapt themselves to changing context. This ability enables them to provide their functionality in different configurations. On the other hand, pervasive applications have the ability to influence and change the context themselves. A context change can be caused implicitly as a side effect of employed resources or explicitly through the use of actuators. Due to the context-interactivity, problems are likely to occur when two or more applications are executed in the same physical space. Since applications share a common context and interact with it, they can have a direct impact on each other. The described problem is defined as an interference in this thesis. An interference is an application-produced context that impairs the functionality provision of another application. To manage interferences in pervasive systems, a coordination framework is presented. The framework detects interferences using a context model and information about how applications interact with the shared context. The resolution of an interference is achieved through a coordinated application adaptation. The idea is based on the assumption that an alternative application configuration may yield a different context interaction. Thus, the framework determines a configuration for each application such that the context interactions do not interfere. Once a configuration is found for each application, the framework instructs applications to instantiate the selected configuration, resolving the interference. The framework is unique due to three design decisions. At first, the framework is realized as a cross-system coordination layer in order to allow an integration of arbitrary systems. Secondly, the integration of applications can be achieved through the extension of existing systems while preserving their system characteristics. Thirdly, the framework supports a generic interface to integrate arbitrary resolution strategies in order to allow the customization of the framework to the needs of different pervasive systems. The thesis introduces the theoretical concepts of the framework, presents a prototypical implementation and evaluates the prototype and its implemented concepts through extensive measurements

    Engineering Smart Software Services for Intelligent Pervasive Systems

    Get PDF
    Pervasive computing systems, envisioned as systems that blend with the physical environment to enhance the quality of life of its users, are rapidly becoming a not so distant reality. However, many challenges must be addressed before realizing the goal of having such computing systems as part of our everyday life. One such challenge is related to the problem of how to develop in a systematic way the software that lies behind pervasive systems, operating them and allowing them to intelligently adapt both to users' changing needs and to variations in the environment. In spite of the important strides done in recent years concerning the engineering of software that places the actual, immediate needs and preferences of users in the center of attention, to the best of our knowledge no work has been devoted to the study of the engineering process for building software for pervasive systems. In this dissertation we focus on the engineering process to build smart software services for pervasive systems. Specifically, we first introduce as our first major contribution a model for the systematic construction of software for pervasive systems, which has been derived using analytical, evidence-based, and empirical methodologies. Then, on the basis of the proposed model, we investigate two essential mechanisms that provide support for the engineering of value-added software services for smart environments, namely the learning of users' daily routines and the continuous identification of users. For the case of learning users' daily routines, we propose what is our second main contribution: a novel approach that discovers periodic-frequent routines in event data from sensors and smart devices deployed at home. For the continuous identification of users we propose what is our third major contribution: a novel approach based on behavioral biometrics which is able to recognize identities without requiring any specific gesture, action, or activity from the users. The two approaches proposed have been extensively evaluated through studies in the lab, based on synthetic data, and in the wild, showing that they can be effectively applied to different scenarios and environments. In sum, the engineering model proposed in this dissertation is expected to serve as a basis to further the research and development efforts in key aspects that are necessary to build value-added smart software services that bring pervasive systems closer to the way they have been envisioned. Furthermore, the approaches proposed for learning users' daily routines and recognizing users' identities in smart environments are aimed at contributing to the investigation and development of the data analytics technology necessary for the smart adaptation and evolution of the software in pervasive systems to users' needs
    corecore