A hybrid approach to self-management in a pervasive service middleware
Introduction
Self-management capabilities are attractive for pervasive computing systems as these systems are becoming more widely deployed, and requirements on dependability increase. Such systems are operated as open systems undergoing dynamic changes in which services and devices may join or leave at any time anywhere, and system resources, e.g., battery levels may fluctuate dynamically. Self-management capabilities as in autonomic computing [1] can potentially make these pervasive systems more user-friendly and energy efficient. For example, to diagnose the source of a failure and then recover to a normal operating state, or to make full use of remaining energy to prolong the runtime of a system. Because of these potential benefits, many efforts have been put into the realization of self-management capabilities [1]. These self-management capabilities are considered as the most important features of future network applications and should be given priority in future research [2].
Although there is substantial pervasive middleware research such as EU MUSIC [3] and Rainbow [4], [5], these efforts have primarily used a single approach to or focused on a single aspect of self-management. For example, the MUSIC project explored architecture based self-adaptation, while paying little attention to other self-management features such as self-protection, and self-optimization. For architecture-based self-adaptation, a critical issue is the choice of an architectural style to represent a target system [5], but the MUSIC project did not focus on this either. Kramer and Magee [6] observe that many early self-managing systems followed the ‘sense-plan-act’ architecture (e.g., Rainbow by Garlan et al. [4]) in which a system conceptually cycles through sense-plan-act phases. Kramer and Magee proposed a three layered architecture style that incorporate these three phases, but this is only an abstract reference model that needs to be verified in practice, and the problem of how to actually derive a software architecture style that can be implemented and used in practice for self-management systems is not addressed.
On the other hand, implementing and achieving self-management are not easy tasks [7]. There are many aspects that should be considered in a self-management solution, such as effective sensors to detect system status, actuators to accomplish needed changes, change management schemes to react to self-management changes, and reasoning on which actions to take. Furthermore, if an existing scheme cannot fulfill a Quality of Service (QoS) requirement, planning mechanisms should be used to help to find a corresponding (near) optimal configuration, and then this configuration should be enabled dynamically. Thus, the whole self-management process involves quite a number of different tasks which can be realized with different techniques. Correspondingly, a self-management solution should support a hybrid of different techniques technologies at an architecture level in order to integrate these technologies seamlessly. A single mechanism for realizing self-management may be considered as too limited to realize comprehensive autonomic features [7].
In the process of reaching a hybrid solution for self-management, there exist a number of challenges. These include:
- 1.
How to define an architectural style that can be used to achieve self-management at an architectural level [6].
- 2.
How to verify this architectural style by a practical implementation in order to show usefulness.
- 3.
How to achieve interoperability, modifiability, and extensibility in this architectural style to easily integrate various self-management features including self-protection, self-protection, self-optimization, and self-configuration. Preferably it should be simple to add new self-management features that do not exist.
- 4.
How to make sure that technologies used for various purposes can be integrated in this architectural style.
To address these challenges, we propose the LinkSmart Three Layered architectural (LinkSmart-3L) style that features a service-oriented architecture and seamlessly integrates several technologies to facilitate self-management. In our practical implementation and evaluation, we use pervasive web services [8] and OSGi Declarative Services [9]. The main contributions of our work are:
- 1.
A ‘LinkSmart Three Layered architectural (LinkSmart-3L) style’ is proposed and exemplified. This style combines different architectural styles to enable architecture-level self-management. This makes it possible to bring together benefits from those underlying architectural styles.
- 2.
Our approach is realized such that different self-management technologies can be integrated seamlessly based on the service-oriented computing paradigm. In our implementation, we have integrated Semantic Web technologies, genetic algorithms, an architectural scripting language, and an architectural query language.
- 3.
Our middleware is evaluated in terms of runtime qualities including interoperability, performance, scalability, and development-time qualities including modifiability, testability and, usability, following the quality attributes framework proposed by Bass et al. [10]. We have performed evaluations which can serve as guidelines for evaluating other middleware systems, as currently there are no unified evaluation criteria or methodology.
- 4.
Following the proposed evaluation quality attributes, our approach has been evaluated extensively in the LinkSmart middleware. For interoperability, both the .NET and Java environments are tested. This includes tests of using various available wired and wireless communication protocols. The performance has been tested extensively for various components and a whole self-management life cycle takes less than 4s which is acceptable in a distributed pervasive service environment. The scalability tests show that the needed time to process self-management actions is in linear with the number of events for our tests. The modifiability tests show that the middleware can be extended with relative ease to add new self-management functions. The testability and usability tests show that the proposed approach is practical in use.
- 5.
To promote the usage of self-management technologies and encourage research in this area, we have released our work including a set of supporting ontologies as open source such that other researchers can explore and potentially further our work.
The remainder of this article is organized as follows. First, we present background on self-management, especially architectures for self-management in Section 2. In order to address challenge number 1, we define an architectural style (LinkSmart-3L) based on a set of objectives and constraints for self-management (Section 3) and we discuss key design choices of the LinkSmart-3L style. We then present the LinkSmart-3L architecture that follows a three layered self-management architectural model (Section 4) and we give design details of each layer. We show how to develop a self-managed application in B using a simple case study. Comprehensive evaluations regarding runtime and development time qualities of our approach are presented in Section 5. We discuss related work in Section 6. Conclusions and future work end this paper in Section 7.
Section snippets
Software architectures for self-management
The task of architecting self-managing systems can be approached from several conceptual perspectives, which lead to different architectures.
In one approach, inspiration is sought from nature to build systems with no explicit locus of control. An example is division of labor in a group of robots inspired by the decentralized organization of an ant colony [11]. This approach has particularly been applied to autonomic communications [12], but systems based on it are arguably difficult to engineer
The LinkSmart three layered architectural style
The three-layered reference model as proposed by Kramer and Magee is a logical reference model, and it does not as such constitute a clearly defined architectural style. In the following we remedy that by defining the concrete styles that are realized by our implementation architecture.
We follow Fielding’s and Taylor’s [20] definition of an architectural style as “a coordinated set of architectural constraints that restricts the roles and architectural elements, and the allowed relationships
Design of self-management in LinkSmart
Based on the above introduced LinkSmart-3L architectural style, we describe the architecture of the LinkSmart self-management architecture using the approach of Clements et al. [27]. Our overall system model is shown as a deployment view in Fig. 3. The deployment follows Kramer’s and Magee’s model with each layer deployed on a node, and uses a publish/subscribe implementation (“Event Manager”) as an implementation of an event connector and it uses Web Ontology Language (OWL;
Evaluation
There are neither unified evaluation guidelines nor methodologies for autonomic middleware systems [26]. However, the recent version of the quality attribute framework proposed by Bass et al. [10] is comprehensive and widely adopted for evaluating software architectures and we base our evaluation on this. Considering the characteristics of pervasive computing systems and pervasive service middleware, and also our objectives for the LinkSmart 3L architectural style, we propose to evaluate
Related work
Large Internet of Things (IoT), Internet of Services (IoS), and Internet of People (IoP) applications are gaining increasing attention. This brings us increasing complexities for management due to the large number of involved devices, events and contexts, heterogeneity of networking, hardware and software, and so on. These challenges call for useful self-managing capabilities to alleviate problems. Therefore, quite some work on self-managing middleware has been reported and we relate our work
Conclusions and future work
Realizing autonomicity for pervasive service computing is increasingly important as self-management capabilities can enable high dependability, intelligence, and quality of a large pervasive system. Although there is considerable research work on this topic, integrating existing technologies into a self-management system remains problematic. In particular, there is little open source work that explores self-management activities. In this paper, we have proposed a hybrid approach to the
Acknowledgments
The research reported in this paper had been supported by the Hydra EU project (IST-2005-034891) which build the LinkSmart middleware. The research is also supported by “Key Technologies Development Plan of Qingdao Technical Economic Development Area”. Weishan Zhang has been supported by “the Fundamental Research Funds for the Central Universities” and also the start-up funds for “Academic Top-Notch Professors in China University of Petroleum”. We would like to thank to Martin O’Connor and
References (63)
Intelligence without representation
Artif. Intell.
(1991)- et al.
Query answering for OWL-DL with rules
Web Semantics: Sci. Serv. Agents World Wide Web
(2005) - et al.
An OSGi-based flexible and adaptive pervasive cloud infrastructure
Sci. China Inform. Sci.
(2014) - et al.
jmetal: a java framework for multi-objective optimization
Adv. Eng. Software
(2011) - et al.
The vision of autonomic computing
IEEE Comput.
(2003) - et al.
Future internet APPS: the next wave of adaptive service-oriented systems?
Towards Service-Based Internet
(2011) - et al.
Music: middleware support for self-adaptation in ubiquitous and service-oriented environments
- et al.
Rainbow: architecture-based self-adaptation with reusable infrastructure
Computer
(2004) - et al.
Software architecture-based self-adaptation
- J. Kramer, J. Magee, Self-managed systems: an architectural challenge, in: International Conference on Software...
Software engineering for self-adaptive systems: a research roadmap
Software Eng. Self-Adapt. Syst.
OSGi in Action: Creating Modular Applications in Java
Software Architecture in Practice
Division of labor in a group of robots inspired by ants’ foraging behavior
ACM Trans. Auton. Adapt. Syst.
A survey of autonomic communications
ACM Trans. Auton. Adapt. Syst.
Engineering complex systems
Nature
A control theory foundation for self-managing computing systems
IEEE J. Select. Areas Commun.
On three-layer architectures
Artif. Intell. Mobile Robots
Principled design of the modern web architecture
ACM Trans. Internet Technol.
Software Architecture: Perspectives on an Emerging Discipline
The many faces of publish/subscribe
ACM Comput. Surv.
Service-Oriented Architecture: Concepts, Technology, and Design
Documenting Software Architectures: Views and Beyond
Cited by (5)
The study of deep learning under big data
2017, Gaojishu Tongxin/Chinese High Technology LettersA deep-intelligence framework for online video processing
2016, IEEE SoftwareA video cloud platform combing online and offline cloud computing technologies
2015, Personal and Ubiquitous ComputingOnline optimization of collaborative web service QoS prediction based on approximate dynamic programming
2015, International Journal of Distributed Sensor NetworksOnline optimization of collaborative web service QoS prediction based on approximate dynamic programming
2014, Proceedings - 2014 International Conference on Identification, Information and Knowledge in the Internet of Things, IIKI 2014