Self Managing Situated Computing

ERC Advanced Investigator Grant N. 227977 [2008-2013] - PI Professor Carlo Ghezzi

What is SMSCom

Software is the key enabling technology of our society. Since the early 1970s, there has been a continuous progress in the science and engineering of software, which led to better quality of products. Today, however, emerging requirements are challenging our current knowledge, and require a shift from the incremental improvements we have experienced in the past to radical changes to the way software is conceived, developed, and operated. In particular: Software development and operation are increasingly decentralized. Applications are composed dynamically out of parts that are developed and operated by independent parties. Requirements changes ask for continuous software adaptation and evolution. The infrastructures on which applications run are fully distributed. Technologies like RFID tags, wireless sensors, and embedded devices imply that the infrastructure can change dynamically both in physical and in logical structure. The so-called Internet of Things is fostering a situation where computing power and connectivity are not only possible any-time and any-place, but also for any-thing.

As a consequence, software must behave in a situational, self-managing manner. The term situational indicates that software is built to address a particular situation, problem, or challenge, and behaves according to the evolving situation in which it operates. The term context is also used with a similar meaning, although often with a narrower scope. Examples of situations are: the type of user (its preferences, its knowledge, ...), the physical environment (the current location of the executing environment), the computational units that populate the environment at any given time, the devices on which they may run, the environmental conditions (like temperature, light, ...). We assume that situational changes are frequent, even continuous, and may require adaptation as the application is running and offering a service. This requires the software to be self-managing. Thus, situational software applications are not static entities, but they must be able to self-adapt to changeable external conditions. Indeed, context-awareness and self-adaptation are central concepts of SMScom, along with the idea of a control loop that propagates the sensed information about situation changes back to a change in the software.

SMScom is a software engineering research project. As for any genuine engineering research, it aims at providing a sound and systematic approach to developing practical and useful products. As any far-looking engineering research, it is expected to provide radical innovations. Radical innovations come in two flavors: by pushing some emerging requirements to their extreme and by revisiting through them, in a radical manner, the way we today develop and operate software.
The requirements that motivate SMScom are already emerging in many crucial real-world cases, and examples of situational applications are already being developed. Research efforts have also been directed to such fields as self-adaptive [1], context-aware [2], or autonomic software [3] and pervasive computing [4]. We argue, however, that at this stage most efforts are ad-hoc, and we miss a coherent global picture. We know how to deal with specific problems, but we lack general methods.
SMScom will develop a consistent, integrated, and homogenous set of methods and tools for the design, validation, and operation of dependable self-managing situational software. According to [5], the term dependability is used to collectively identify non-functional requirements like availability, reliability, safety, and security.

SMScom aims at providing a holistic approach to self-managing situational computing. Our work will be rooted into an underlying theory of situational computing, upon which we will develop unified engineering methods and tools to develop dependable self-managing situational software applications.

An abstract view of our approach is shown in Fig. 1. The shaded boxes indicate the external parts of the environment that affect the SMScom world, because of their possible continuous changes. We assume that changes in the external world are captured and made available to the SMScom world through (abstract) sensors. User goals, along with contextual information provided by the sensors, determine the situations, based on which the existing computational units that are part of the environment are selected to form assemblies (or compositions) that are run as applications that satisfy the goals in a situated manner. The effect of the running system, in turn, generates changes in the external environment and in users' goals, which may be further sources of changes in the application. The proposed research does not focus on the development of individual computational units. Rather, it assumes that the environment is populated by a large number of computational units that may be assembled to provide the required application that fulfills the goals. Such computational units may be services that are offered and run by providers or components that may be downloaded. The focus of the research is on the adaptive composition. However, a certain composition may in turn be viewed as a composite computational unit, which may become part of further compositions.

The proposed research will focus primarily on different methods to achieve the required compositions in a fully automated way. It will also support human-directed compositions via suitable design aids, and combinations thereof.

 

Our Approach
Fig.1 Our Approach

 

Figure 1 shows that the traditional idea of a "software application" in SMScom becomes broader and encompasses a set of loosely coupled software components (services) that discover each other-given the particular situation and may cooperate just for the time needed for the fulfillment of a given user goal.

 

References

  1. M. Baldauf, S. Dustdar, F. Rosenberg, A Survey on Context-Aware Systems, International Journal of Ad Hoc and Ubiquitous Computing, January 2006
  2. P. Oreizy, M.M. Gorlick, R.N. Taylor, D. Heimbigner, G. Johnson, N. Medvidovic, A. Quilici, D.S. Rosenblum, A.L. Wolf, An Architecture-Based Approach to Self-Adaptive Software, IEEE Intelligent Systems, vol. 14, no. 3, pages 54-62. May/June 1999
  3. P. Horn. Autonomic computing: IBM's perspective on the state of information technology. IBM TJ Watson Labs., October 2001
  4. IEEE Pervasive Computing, IEEE Computer Society.
  5. A. Avizienis, J.-C. Laprie, B. Randell, Fundamental Concepts of Dependability, Research Report No 1145, LAAS-CNRS, April 2001.