Abstract: Internet of Things (IoT) allows for cyber-physical applications
to be created and composed to provide intelligent support or
automation of end-user tasks. For many of such tasks, human participation
is crucial to the success and the quality of the tasks. The cyber
systems should proactively request help from the humans to accomplish
the tasks when needed. However, the outcome of such system-human
synergy may be affected by factors external to the systems. Failure to
consider those factors when involving human participants in the tasks
may result in suboptimal performance and negative experience on the
humans. In this paper, we propose an approach for automated generation
of control strategies of cyber-human systems. We investigate how
explicit modeling of human participant can be used in automated planning
to generate cooperative strategy of human and system to achieve a
given task, by means of which best and appropriately utilize the human.
Specifically, our approach consists of: (1) a formal framework for modeling
cooperation between cyber system and human, and (2) a formalization
of system-human cooperative task planning as strategy synthesis
of stochastic multiplayer game. We illustrate our approach through an
example of indoor air quality control in smart homes.
Abstract: This paper introduces an architectural style for enabling end-users to quickly design and deploy software systems in domains characterized by highly personalized and dynamic requirements.
The style offers an intuitive metaphor based on boxes, pipes, and wires, but retains enough preciseness that systems can be automatically assembled and dynamically reconfigured based on uDesign descriptions. uDesign was primarily motivated and validated within monitoring and control applications for smart spaces, but we envision possible extensions to other domains.
Our contribution differs from early attempts at end-user programming in the level of abstraction, software architecture rather than programming, and in the subject of description: run-time rather than code structures.
To validate the approach, the paper presents (a) two case studies, one in health care and one in home security, (b) the formal semantics of uDesignโs primitives, and (c) a mapping of those primitives to an existing software infrastructure: the Aura infrastructure.
Vahe Poladian, Mary Shaw and
David Garlan. Modeling Uncertainty of Predictive Inputs in Anticipatory Dynamic Configuration. In Proceedings of the International Workshop on Living with Uncertainties (IWLU'07), co-located with the 22nd International Conference on Automated Software Engineering (ASE'07),, Atlanta, GA, USA. November 5, 2007.
http://godzilla.cs.toronto.edu/IWLU/program.html.
Abstract: Dynamic adaptive systems based on multiple concurrent applications typically employ optimization models to decide how to allocate scarce resources among the applications and how to tune their runtime settings for optimal quality-of-service according to the preferences of an end user.
Traditionally, such systems have avoided dealing with uncertainty by assuming that current snapshots of the relevant inputs are precise and by solving for an optimal system point. To achieve dynamic behavior, a system performs an optimization loop upon discovering changes in the input variables (e.g. changes in the available level of resources) and adapts the applications according to the new optimal solution. Unfortunately, when certain adaptation actions incur costs, such reactive adaptation strategies suffer from a significant shortcoming: several locally optimal decisions over time may often be less than optimal globally.
By using predictive information about the future values of the problem inputs, we can model and implement an anticipatory adaptation strategy that helps improve the global behavior of the system in many situations. However, modeling predictions requires representing and dealing with uncertainty from different sources. In this paper, we describe our proposed approach to represent multiple sources of uncertainty and outline algorithms for solving the anticipatory configuration problem with predictive inputs.
Abstract: Self-adapting systems based on multiple concurrent applications must decide how to allocate scarce resources to
applications and how to set the quality parameters of each
application to best satisfy the user. Past work has made
those decisions with analytic models that used current resource availability information: they react to recent changes in resource availability as they occur, rather than anticipating future availability. These reactive techniques may model each local decision optimally, but the accumulation of decisions over time nearly always becomes less than optimal.
In this paper, we propose an approach to self adaptation, called anticipatory configuration that leverages
predictions of future resource availability to improve utility for the user over the duration of the task. The approach solves the following technical challenges: (1) how to express resource availability prediction, (2) how to combine prediction from multiple sources, and (3) how to leverage predictions continuously while improving utility to the user. Our experiments show that when certain adaptation operations are costly, anticipatory configuration provides better utility to the user than reactive configuration, while being comparable in resource demand.
Joรฃo Sousa,
Vahe Poladian,
David Garlan and
Bradley Schmerl. Capitalizing on Awareness of User Tasks for Guiding Adaptation. In Proceedings of the First International Workshop on Adaptive and Self-managing Enterprise Applications, at CAISE'05, Portugal. 2005.
Abstract: Computers support more and more tasks in the personal and professional activities of users. Such user tasks increasingly span large periods of time and many locations across the enterprise space and beyond. Recently there has been a growing interest in developing applications that can cope with the specific environmental conditions at each location, and adapt to dynamic changes in system resources. However, in a given situation there may be many possible configuration solutions, and an awareness of the user's intent for each task is a critical element in knowing which one to pick. In this paper, we discuss the limitations of building such awareness into applications, and propose to factor the awareness of user tasks into a common software layer. That however, brings up the problem of coordinating the system-wide adaptation performed by such a layer with fine-grain adaptation performed by resource-aware applications. We summarize the main features of an architectural framework that incorporates such a layer, and distill some of the lessons learned in implementing the framework.
Abstract: An important emerging requirement for computing systems is the ability to adapt at run time, taking advantage of local computing devices, and coping with dynamically changing resources. Three specific technical challenges in satisfying this requirement are to (1) select an appropriate set of applications or services to carry out a user s task, (2) allocate (possibly scarce) resources among those applications, and (3) reconfigure the applications or resource assignments if the situation changes. In this paper we show how to provide a shared infrastructure that automates configuration decisions given a specification of the user s task. The heart of the approach is an analytical model and an efficient algorithm that can be used at run time to make near-optimal (re)configuration decisions. We validate this approach both analytically and by applying it to a representative scenario.
Joรฃo Sousa and
David Garlan. Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments. In Software Architecture: System Design, Development, and Maintenance (Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture), Jan Bosch, Morven Gentleman, Christine Hofmeister and Juha Kuusela (Eds.), Kluwer Academic Publishers. pp. 29-43. August 25-31, 2002.
https://doi.org/10.1007/978-0-387-35607-5_2.
Abstract: Ubiquitous computing poses a number of challenges for software architecture. One of the most important is the ability to design software systems that accommodate dynamically-changing resources. Resource variability arises naturally in a ubiquitous computing setting through user mobility (a user moves from one computing environment to another), and through the need to exploit time-varying resources in a given environment (such as wireless bandwidth). Traditional approaches to handling resource variability in applications attempt to address the problem by imposing uniformity on the environment. We argue that those approaches are inadequate, and describe an alternative architectural framework that is better matched to the needs of ubiquitous computing. A key feature of the architecture is that user tasks become first class entities. User proxies, or Auras, use models of user tasks to set up, monitor and adapt computing environments proactively. The architectural framework has been implemented and currently being used as a central component of Project Aura, a campus-wide ubiquitous computing effort.
Shang-Wen Cheng,
David Garlan,
Bradley Schmerl,
Joรฃo Sousa,
Bridget Spitznagel, Peter Steenkiste and Ningning Hu. Software Architecture-based Adaptation for Pervasive Systems. In International Conference on Architecture of Computing Systems (ARCS'02): Trends in Network and Pervasive Computing, H Schmeck, T Ungerer and L Wolf (Eds.), Karlsruhe, Germany, Springer-Verlag. Lecture Notes in Computer Science, Vol. 2299. April 8-11, 2002.
https://doi.org/10.1007/3-540-45997-9_7.
Abstract: An important requirement for pervasive computing systems is the ability to adapt at runtime to handle varying resources, user mobility, changing user needs, and system faults. In this paper we describe an approach in which dynamic adaptation is supported by the use of software architectural models to monitor an application and guide dynamic changes to it. The use of externalized models permits one to make reconfiguration decisions based on a global per-spective of the running system, apply analytic models to determine correct re-pair strategies, and gauge the effectiveness of repair through continuous system monitoring. We illustrate the application of this idea to pervasive computing systems, focusing on the need to adapt based on performance-related criteria and models.
Abstract: Being able to find, adapt, and incorporate disparate components to form working, reliable applications is the goal of component-based software engineering. To date, there has been a lot of research, among other things, on locating components, reasoning about component compatibility, and methods for interoperability. Pervasive computing raises a number of new challenges for component-based software engineering that heretofore have been given little attention, such as mobility, adaptability, and resource awareness. In this paper we motivate and discuss the need for research in these areas, and discuss how our work in the Aura group at Carnegie Mellon University helps to address these issues.
Abstract: The use of largely isolated workstations and laptops as the primary carrier of personal computing is giving way to a world of pervasive computing populated by ubiquitous networks of heterogeneous computing and information facilities. In such a world the boundaries between a userโs personal computation space and other peopleโs is no longer well defined. As a result, collaboration becomes the dominant mode of computing โ in essence, all systems become the basis for on-going computer-supported cooperative work.