Internetware A New Software Paradigm for Internet Computing pdf pdf

Hong Mei · Jian Lü

Internetware
A New Software Paradigm
for Internet Computing

Internetware

Hong Mei Jian Lü


Internetware
A New Software Paradigm
for Internet Computing

123

Jian Lü
Nanjing University
Nanjing, Jiangsu
China


Hong Mei
Peking University
Beijing
China

ISBN 978-981-10-2545-7
DOI 10.1007/978-981-10-2546-4

ISBN 978-981-10-2546-4

(eBook)

Library of Congress Control Number: 2016956187
© Springer Science+Business Media Singapore 2016
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are
exempt from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in
this book are believed to be true and accurate at the date of publication. Neither the publisher nor
the authors or the editors give a warranty, express or implied, with respect to the material
contained herein or for any errors or omissions that may have been made.
Printed on acid-free paper
This Springer imprint is published by Springer Nature
The registered company is Springer Nature Singapore Pte Ltd.
The registered company address is: 152 Beach Road, #22-06/08 Gateway East, Singapore 189721,
Singapore

Foreword I

The Internet has become both the nervous system that coordinates our society
and the brain in which all human knowledge is kept and accessed. It changed
from being a network of networks enabling access to remote machines to a
network of content, applications, people, and (software) services, thereby
weaving itself into the fabric of today’s global and interconnected physical

world and society. The indispensable Internet poses many new challenges to
software engineering; these challenges are becoming particularly acute with
the emergence of computing applications that exploit the Internet in new
ways. The emergence—and even the convergence—of mobile and cloud
computing, sensor networks, cyber-physical systems, data analytics, and the
Internet of Things is pulling software engineering further and further from the
comfort zone of principles and techniques that have prevailed for decades.
This book presents results of an ambitious plan to meet the challenges
paradigmatically, i.e., to systematically re-examine the fundamental aspects
of WHAT-IS, HOW-TO-DO, HOW-TO-RUN, and HOW-WELL for software systems situated in the open and dynamic Internet environment.
Prof. Hong Mei and Prof. Jian Lü led the research and coined the word
“Internetware” to name the novel software paradigm for Internet computing.
Technically, the paradigm is intended to support the construction, operation
and evolution of software systems that consist of self-contained, autonomous
entities situated in distributed nodes of the Internet and coordinators connecting these entities statically and dynamically in various kinds of interaction styles. These systems are also able to perceive the changes of open and
dynamic environment, respond to changes through architectural transformations, and exhibit context-aware, adaptive and trustworthy behaviors in
the Internet environment. The book gives a systematic and complete coverage of all the related aspects of Internetware, from the programming model
to the engineering methods, to the runtime platforms, to quality assurance,
and to the real-world practice and experiences. It also contains many timely
and valuable new ideas, concepts, and technologies that will attract the

interest of both academia and industry, fostering further advancement of
research and developments in this area.
In addition to its technical contributions, the successful story of Internetware also exemplifies how original and systematic innovations can be
achieved with deep insights, strong leadership, and persistent efforts. This is
especially impressive considering the fact that Internetware was conceived

v

vi

Foreword I

independently in China 15 years ago when the software engineering community was predominantly representing professionals and researchers from
Western countries.
This is an outstanding book on the new software engineering for the
Internet computing: it is not only a summary of research efforts by the
authors, but rather an accessible foundational reference book on software in
the contemporary age.
Carlo Ghezzi
Politecnico di Milano

Milan, Italy

Foreword II

The convergence of various network technologies and applications, such as
sensor networks, cellular networks, and social networks have pushed major
Internet evolutions. Internet has evolved from a content delivery and resource
sharing platform towards a ubiquitous infrastructure connecting human
society, physical world, and massive computation resources and facilities.
Software systems and applications running in such an “Internet-centric”
environment are built upon highly virtualized computing environments, and
have to continuously provide high-quality services and experiences for users
who access applications from anywhere, at anytime, and by any device. As a
result, software engineering development processes in all their phases and
activities, such as software development, deployment, operation, maintenance, and evolution, are facing major challenges arising from the openness,
situation-awareness, changeability, interactivity, adaptability, and evolutionary nature of the Internet-based applications. It is clear that addressing
such challenges requires rethinking the principles and methods of software
engineering.
A group of distinguished Chinese researchers proposed the term “Internetware” to refer to the new software paradigm for Internet computing
environments. They devoted intense research efforts towards addressing

significant fundamental issues for Internetware, including the autonomy of
software entities, the openness of collaboration among software entities, the
evolution and adaptation driven by context changing, and the trustworthiness
of the system behavior. For almost 15 years, this group of researchers
investigated approaches to address these issues with the sponsorship of
National Basic Research Program of China (“973 program”). Their mission
included studying, establishing and using systematic, disciplined, quantifiable approaches for software development, operation, and maintenance on
Internet. Internetware is now consolidated as a quite full-fledged framework
consisting of a new programming model, engineering approaches, runtime
platforms, and quality assurance for software systems and applications running on the Internet.
Research on Internetware has resulted in numerous results recognized by
premier conferences, top journals, real-world applications, and industrial
solutions and products. This book, titled Internetware: A New Software
Paradigm for Internet Computing, summarizes over 15 years of research
around software engineering for Internet-based applications and the valuable

vii

viii


Foreword II

results of this research. The book presents a core set of principles and
methodologies for Internetware that will help engineers and designers in
enhancing the effectiveness and productivity of the development processes
for Internetware applications. The book also provides comprehensive
guidelines and many representative real-world case studies that will be
invaluable for software engineers in the development of Internetware
applications.
This book also provides an important analysis of current research trends in
modern software engineering in the Internet era. Many ideas and results
discussed in the book represent important research directions that can be
further extended and developed into more solid and theoretical foundations
of software engineering for Internet computing.
I believe that this book is an important resource in the field of software
engineering for everyone interested in novel trends, research, and methodologies in today software engineering.
Enjoy the book!!
Elisa Bertino
Purdue University
West Lafayette, USA


Foreword III

We are undergoing a tremendous change towards a new Internet-based and
software-defined cyberspace, where our physical world and social communities can be virtualized by software technologies, delivered as software
applications and services, and operated over an infrastructure that is
Internet-based and globally networked. Cloud-based, mobile-oriented, and
sensor-laden software applications and services establish the ubiquitous
fabrics among every object in such a cyberspace, and have to adapt to
ever-changing and on-the-fly requirements in response to instant feedback
from this Internet-scale computing environment that is becoming more and
more complex. As such, software engineering tasks are increasingly complex
and highly challenging in view of unstable, noisy, and sometimes harsh
environments. However, current software engineering approaches and techniques largely lack the capabilities to continuously explore the collaborative,
situation-aware, adaptational, and evolutionary needs of software applications and services. Software engineering research needs substantial evolutionary or even revolutionary improvements.
The novel Internetware research in China is such an inspiring example.
Led by Prof. Hong Mei and Jian Lü, as well as numerous other researchers in
China, this area has made great efforts towards revolutionizing the emerging
“Internet-based” and “software-defined” cyberspace in the past 15 years. The
Internetware is proposed as a new software paradigm covering new programming abstractions, engineering approaches, runtime infrastructures, and

quality assurance to make software applications and services collaborative,
adaptive, evolvable, situational, emergent, and trustworthy. Internetware
research has brought low-hanging fruits in premier academic conferences and
journals. Meanwhile, some of the results have been successfully applied in
real-world applications. In my opinion, Internetware research not only leads
the pioneering software research and development in China, but also makes
significant impacts on the software community worldwide.
This book provides to readers the authors’ unique perspectives and efforts
from the Internetware perspective, including the programming models,
engineering approaches, middleware platforms and operating systems,
measurements and quality-of-experience assurance, etc. This book also
contains timely and valuable new ideas, concepts, and technologies for many
application contexts such as cloud computing, mobile computing, social
computing, cyber-physical systems, and so on.

ix

x

Foreword III


It is my great pleasure to introduce this must-read book to faculty and
students, researchers and practitioners, decision makers in charge of governmental research funding and other research & development executives
who are interested in grasping and helping push the envelope of
Internet-based computing technologies.
Carl Chang
Iowa State University
Ames, USA

Preface

To cope with new characteristics of software for the Internet computing
environment, existing software paradigms need to be evolved to be a new
one. Such a new software paradigm should be able to systematically support
the development, deployment, operation, and quality assurance of software
on the Internet. Around 2000, we coined a word Internetware from the two
words “Internet” and “Software”, to denote our visions of a new paradigm for
software systems that are constructed, executed, used, and evolved in the
open and dynamic Internet environment. Elaborately, these systems often
need to be

Autonomous. Software entities are usually distributed, relatively selfcontained, and independent. Software entities perform according to the composition or deployment strategies defined by their providers, and continuously
satisfy the providers’ requirements. A software entity can adapt itself when
necessary, by sensing and collecting information on environment changes.
Cooperative. A set of software entities can collaborate with each other for
the purpose of business or management. Often the collaborations are rather
dynamic than static, to adapt to the user requirements and environments in an
on-demand way. The collaboration mechanisms between software entities
can be of various types, and can be changed if necessary.
Situational. Software applications can be aware of the runtime contexts
and scenarios, including the underlying devices, operating platforms, networking conditions, application contexts, or the changes of other dependent
applications, etc. Hence, both software entities (included in a software
application) and their operating platforms might be capable of exposing their
runtime states and behaviors in some way.
Evolvable. The structures and behaviors of software applications might
dynamically change. Software applications usually consist of autonomous
entities over the Internet, and provide online and continuous (e.g., 24 h * 7
days) services for a large number of users. Hence, software applications
cannot be shut down during evolution. Software applications have to perform
online evolution to accommodate new user requirements and environments.
Possible evolutions can include addition/removal of software entities, changes of functionalities on-the-fly and just-in-time, changes of interaction styles
between entities, change of topologies among entities, etc.

xi

xii

Emergent. Software applications can exhibit undesigned behaviors or
undesired effects on runtime instances or interactions. Such nature might
iteratively result in more and more changes of software application structures
and behaviors to accommodate such emergences.
Trustworthy. Software applications should promise comprehensive
tradeoffs among various quality attributes. As software applications serve a
number of online users, the trustworthiness of the software applications
should cover a wide spectrum, including reliability, security, performance,
user experience, etc. Quality assurance can be relevant to various aspects,
including autonomous entities, interaction styles, network environments,
usage patterns, malicious attacks, software evolution, etc.
Since then, substantial efforts have been made on Internetware research
and practices. Especially, two national projects have been carried out consecutively: the project Research on Theory and Methodology of Agent-based
Middleware on Internet Platform (2002–2008) and the project Research on
Networked Complex Software: Quality and Confidence Assurance, Development Method, and Runtime Mechanism (2009–2013). About 80
researchers from Chinese universities and institutes have participated in the
projects, including researchers from Peking University, Nanjing University,
Tsinghua University, Institute of Software of the Chinese Academy Sciences,
the Academy of Mathematics and Systems Science of Chinese Academy
Sciences, East China Normal University, and IBM China Research Laboratory. Since 2009, the Asia-Pacific Symposium on Internetware (http://sei.
pku.edu.cn/*internetware), in cooperation with ACM SIGSOFT, has been
held annually, attracting authors and attendees from China, USA, Europe,
Australia, Japan, and Korea.
Internetware research gets funding support from various China’s national
research and development programs in the past 15 years. The preceding two
projects are first sponsored by the Chinese National Basic Research Program
(known as 973), which is one of the five major national programs in the
national R&D program of China. After the first five years, some research
topics identified for Internetware, are sponsored by the National Natural
Science Foundation of China and the National High Technology Research
and Development Program (known as 863). Some prototypes of Internetware
operating platforms and development tools have been successfully transferred to commercial products and solutions under the support of the National
Science and Technology Major Projects. In 2014, the Research on Internetware: Theory, Approaches, and Technologies was awarded by the Top 10
Grand Progress of Science and Technology awarded by the Ministry of
Education of the PRC. In a word, the Internetware research community has
been established and keeps increasing in the past a few years.

Book Overview
This book is organized to summarize and share the state-of-the-art efforts of
Internetware research. More specifically, this book presents the efforts that
address the challenges of software technologies in Internet computing

Preface

Preface

xiii

environment, including the fundamental aspects of programming model,
engineering approach, runtime operational platform, and quality measurements and assurance. In addition, this book also includes a number of
real-world applications, experiences, and practices of Internetware. The book
consists of five parts.
• Part 1 gives an overview of a technical framework for Internetware. It
takes a software architecture-centric viewpoint and organizes the framework as three connected aspects: system modeling, middleware support,
and engineering method.
• Part 2 presents a software model featuring environment driven adaptation
for Internetware applications. Enabling techniques for the model, especially the modeling, management and utilization of environment information are discussed. An architecture-centric framework has also been
built to prove the concepts and evaluate the techniques.
• Part 3 focuses on the runtime support for Internetware application systems. The support covers various aspects of the execution and adaptation
of software situated in the open and dynamic Internet environment.
• Part 4 introduces the Internetware engineering approach. It essentially
follows the core and underlying principle of software architecture
throughout a whole-life cycle. This software architecture serves as a
blueprint, and suggests or controls each phase in lifecycle for developing
Internetware applications.
• Part 5 describes how the Internetware paradigm is applied to real-world
cloud and client applications. At the client side, applications on smartphones connect to the physical world and Internet by their built-in sensors
and networking chips, respectively. At the cloud side, numerous computing platforms like virtual machines and middleware infrastructures are
managed to run user tasks in a cost-effective way. We discuss how the
Internetware paradigm is realized on the two sides, as well as how the two
sides are connected and how applications can be diagnosed for energy
efficiency.

Organizations of the Book
The book stems from a set of high-quality research papers that have been
published on premier computer science conferences or journals. Indeed, there
have been numerous efforts contributed to Internetware research in the past
15 years. Due to space limit, we have to select only some representative
efforts that cover some typical Internet-based applications such as cloud/grid
computing, services computing, mobile computing, Web, Internet of Things,
and so on. These efforts are organized by the research framework of Internetware paradigm. When having acquired the copyrights of original publishers, the authors further make great efforts to revise and expand the
original contents to better fit the goal of this book.

xiv

Preface

As mentioned previously, the Internetware research is a long-term and
open study that involves hundreds of researchers with different background.
Meanwhile, the understanding, synthesis, and scope of Internetware paradigm keep improving during our 15-year course of study. The selected efforts
in this book were actually made at different time and from different perspectives. As a result, this book cannot comprehensively enforce the consistent understanding and representation of some aspects in Internetware.
Indeed, it can reflect the history that we made substantive headway towards
the essence of Internetware paradigm.

Audiences and Readers of the Book
This book can be a reference book to researchers and practitioners of software engineering, operating/network systems, programming languages, and
so on. It can be also used as a textbook for graduate students and
junior/senior undergraduate students who major in computer science.
Beijing, China
June 2016

Hong Mei
Jian Lü

Acknowledgments

We are deeply indebted to many friends and colleagues of the Internetware
research group for their great efforts to promote the publication of this book.
A discussion with Zhi Jin (Peking University), Tao Huang (Institute of
Software, Chinese Academy of Sciences), Xuandong Li (Nanjing University), Daoxu Chen (Nanjing University), and Jianmin Wang (Tsinghua
University) got the whole ball rolling.
Many thanks to our colleagues who made significant revision and
extension of their previous work and provided reviews of the draft manuscript: Fuqing Yang, Gang Huang, Wei Zhang, Xuanzhe Liu, Yingfei Xiong,
Haiyan Zhao, Yanchun Sun, Wenpin Jiao, Ying Zhang, Ling Lan, Junguo Li,
Hui Song, Franck Chauvel, Xiaodong Zhang, from Peking University;
Xiaoxing Ma, Xianping Tao, Feng Xu, Sanglu Lu, Chun Cao, Chang Xu,
Wenzhong Li, Yu Huang, Ping Yu, Xiaoming Fu, Hao Hu, Tianxiao Gu,
Linghao Zhang, from Nanjing University; Jun Wei, Guoquan Wu, Wenbo
Zhang, Chunyang Yue, Hua Zhong, Hong He from the Institute of Software,
Chinese Academy of Sciences; Jifeng He, Jing Liu, Xiaoshan Li, Zhiming
Liu, from East China Normal University; Puewei Wang, Guangjun Cai from
the Academy of Mathematics and System Science, Chinese Academy of
Science; Lin Liu, Yang Chen, Xiaojun Ye, Yingbo Liu, from Tsinghua
University.
Our colleagues, Tao Xie at University of Illinois Urbana-Champaign,
Zhenjiang Hu at National Institute of Informatics (Japan), Shi-Chi Cheung at
the Hong Kong University of Science and Technology, were exceptionally
supportive throughout the writing of the text.
Meihua Yu helped establishing the online co-editing system to improve
the work efficiency.
In particular, Gang Huang (Peking University), Xiaoxing Ma (Nanjing
University), and Xuanzhe Liu (Peking University) made great efforts to help
organize the compilation of whole book and identify the typos in early drafts.

xv

xvi

Acknowledgments

Due to the limit of time, pace, our knowledge and experiences, some
possible problematic issues are inevitable in this book. It would be highly
appreciated that our audiences can help point out our mistakes and improve
this book. Comments and suggestions can be sent to meih@pku.edu.cn or
lj@nju.edu.cn. We would like to hear from you.
Thank you.
Beijing, China
June 2016

Hong Mei
Jian Lü

Contents

Part I
1

2

Introduction to Internetware

Internetware: A Shift of Software Paradigm . . . . . . .
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
The Internetware Paradigm. . . . . . . . . . . . . . . . .
1.2.1 The Need of a Paradigm Shift. . . . . . . . .
1.2.2 Methodological Reflections. . . . . . . . . . .
1.2.3 Architecting Principles for Internetware . .
1.2.4 Our Roadmap and Explorations. . . . . . . .
1.3
Open Coordination Model . . . . . . . . . . . . . . . . .
1.3.1 Coordination Model for Internetware . . . .
1.3.2 A Software Architecture Based Approach.
1.4
Environment-Driven Model . . . . . . . . . . . . . . . .
1.4.1 Structure and Dynamics . . . . . . . . . . . . .
1.4.2 Framework and Techniques . . . . . . . . . .
1.5
Dependability Assurance Framework
with Trust-Management . . . . . . . . . . . . . . . . . . .
1.5.1 A Trust-Based Approach . . . . . . . . . . . .
1.5.2 A Dependability Assurance Framework
with Trust Management . . . . . . . . . . . . .
1.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

3
3
4
4
5
7
8
8
8
10
11
11
13

....
....

14
14

....
....
....

15
15
16

Technical Framework for Internetware:
An Architecture Centric Approach . . . . . . . . . . . . . . . .
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Software Model of Internetware . . . . . . . . . . . . . . .
2.2.1 Basic Component Model . . . . . . . . . . . . . .
2.2.2 Open Collaboration Model . . . . . . . . . . . . .
2.2.3 Context Driven Model . . . . . . . . . . . . . . . .
2.2.4 Intelligent Trustworthy Model . . . . . . . . . . .
2.3
Middleware for Internetware. . . . . . . . . . . . . . . . . .
2.3.1 The Implementation Model of Basic
Internetware Entities . . . . . . . . . . . . . . . . .
2.3.2 The Implementation Model of On-Demand
Collaborations. . . . . . . . . . . . . . . . . . . . . .
2.3.3 The Autonomic Management of Middleware.
2.3.4 Componentization of Middleware . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

19
19
21
22
22
23
23
23

..

24

..
..
..

24
25
25
xvii

xviii

Contents

2.4

Engineering Approach for Internetware . . . . . . . . .
2.4.1 Software Architecture in the Whole
Lifecycle . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2 Development of Internetware Basic Entities
and Their Collaborations . . . . . . . . . . . . .
2.4.3 Domain Modeling for Internetware . . . . . .
2.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Part II
3

4

...

26

...

26

.
.
.
.

.
.
.
.

28
28
29
29

....
....
....

33
33
35

....

36

.
.
.
.

.
.
.
.

37
40
42
43

....
....
....

44
46
48

.
.
.
.

Internetware Software Model

On Environment-Driven Software Model
for Internetware . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
An Approach to the Environment-Driven Model . .
3.2.1 Overall Interaction Patterns
of Environment-Driven Applications . . . .
3.2.2 A Structuring Model for
Environment-Driven Applications . . . . . .
3.2.3 Model and System Characteristics . . . . . .
3.3
Environment Modeling and Enabling Techniques .
3.3.1 Context Processing Framework . . . . . . . .
3.3.2 Ontology-Based Modeling of Dynamic
Context . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Logic Distance-Based Context Retrieval . .
3.3.4 Blurring Degree-Based Privacy Protection
3.3.5 Negotiation-Based Context Information
Selection . . . . . . . . . . . . . . . . . . . . . . .
3.4
Goal-Driven Adaptation and Rearon Ontologies . .
3.4.1 Rearon Ontologies. . . . . . . . . . . . . . . . .
3.4.2 Overall Interaction Patterns
of Environment-Driven Applications . . . .
3.5
Prototypes and Experiments . . . . . . . . . . . . . . . .
3.5.1 Artemis-ARC . . . . . . . . . . . . . . . . . . . .
3.5.2 Artemis-MAC . . . . . . . . . . . . . . . . . . . .
3.5.3 Artemis-FollowMeLite . . . . . . . . . . . . . .
3.5.4 Artemis-FollowMeAgent . . . . . . . . . . . .
3.5.5 Environment-Driven Applications . . . . . .
3.6
Related Work . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

....
....
....

50
51
52

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

55
56
57
58
60
61
62
64
66
67

On Self-adaptation Model for Internetware
4.1
Introduction . . . . . . . . . . . . . . . . . . .
4.2
Approach Overview . . . . . . . . . . . . .
4.3
Key Techniques . . . . . . . . . . . . . . . .
4.3.1 Basic SA Model . . . . . . . . . .
4.3.2 SA Reflection . . . . . . . . . . . .
4.3.3 SA Dynamism . . . . . . . . . . .
4.3.4 SA Reasoning. . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

71
71
73
74
74
76
76
77

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.

Contents

xix

4.3.5
4.3.6

SA Trustworthiness . . . . . . . . . . . . . .
A Tool for Modeling SA in the Whole
Lifecycle . . . . . . . . . . . . . . . . . . . . .
4.4
Case Study. . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Pattern Driven Self-adaptation. . . . . . .
4.4.2 Style Driven Self-adaptation . . . . . . . .
4.4.3 Performance Impact . . . . . . . . . . . . . .
4.5
Related Work . . . . . . . . . . . . . . . . . . . . . . . .
4.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5

78

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

80
81
81
85
88
89
90
90

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

93
94
95
95
97
98
99
99
100
102
102

..
..

103
105

.
.
.
.

.
.
.
.

105
107
108
109

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

115
116
118
118
119
119
120
121

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

123
124
124
126
129
130

On Requirements Model Driven Adaption
and Evolution of Internetware. . . . . . . . . . . . . . . . . . . .
5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Matching and Composing Internetware Components .
5.2.1 A Component Meta Model . . . . . . . . . . . . .
5.2.2 Component Lifecycle . . . . . . . . . . . . . . . . .
5.2.3 Component Composition Rules . . . . . . . . . .
5.3
Components Adaptation . . . . . . . . . . . . . . . . . . . . .
5.3.1 Adaptation Strategies . . . . . . . . . . . . . . . . .
5.3.2 Adaptation Process . . . . . . . . . . . . . . . . . .
5.4
Internetware Testbed and Case Studies . . . . . . . . . .
5.4.1 Internetware Testbed . . . . . . . . . . . . . . . . .
5.4.2 Model-Driven Development and Evaluation
of Internetware Applications . . . . . . . . . . . .
5.4.3 Enterprise Applications Example . . . . . . . . .
5.4.4 Experiment Scenarios on the Collaborations
and Evolutions of Internetware Components .
5.5
Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6
Conclusion and Future Work . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Part III
6

......

Internetware Operating Platform

Runtime Recovery and Manipulation of Software
Architecture of Component-Based Systems . . . . . . . . .
6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2
Approach Overview . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Architectures in ABC. . . . . . . . . . . . . . . .
6.2.2 Conceptual Framework . . . . . . . . . . . . . .
6.3
Characteristics of Software Architecture at Runtime
6.3.1 Software Architecture at Design Time . . . .
6.3.2 Software Architecture at Runtime . . . . . . .
6.3.3 Description for Software Architecture
Recovered at Runtime . . . . . . . . . . . . . . .
6.4
Recovery of Software Architecture at Runtime . . . .
6.4.1 Overview of PKUAS . . . . . . . . . . . . . . . .
6.4.2 Recovery of Basic Elements . . . . . . . . . . .
6.4.3 Construction of Architecture Views . . . . . .
6.4.4 Enrichment of Semantics . . . . . . . . . . . . .

xx

Contents

6.5

Manipulation of Recovered Software Architecture
at Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.1 Manipulation via Reflection . . . . . . . . . .
6.5.2 Programming Model . . . . . . . . . . . . . . .
6.5.3 Graphical Tool . . . . . . . . . . . . . . . . . . .
6.6
Performance Evaluation . . . . . . . . . . . . . . . . . . .
6.7
Related Work . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8
Conclusion and Future Work . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7

8

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

131
131
132
132
134
135
136
137

.
.
.
.

.
.
.
.

.
.
.
.

139
140
141
141

...

142

...
...
...

144
144
144

.
.
.
.

.
.
.
.

145
145
146
149

...
...

149
150

...

151

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

151
152
152
154
155
155
158
159
159

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

163
163
165
166
167
167

......

168

Supporting Runtime Software Architecture:
A Bidirectional-Transformation-Based Approach . . . . .
7.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2
Runtime Software Architecture . . . . . . . . . . . . . . .
7.2.1 An Illustrative Example . . . . . . . . . . . . . .
7.2.2 A Formal Description of Runtime
Software Architecture . . . . . . . . . . . . . . .
7.3
Maintaining Causal Connections
by Architecture-System Synchronization . . . . . . . .
7.3.1 The Four Properties . . . . . . . . . . . . . . . . .
7.3.2 The Challenges . . . . . . . . . . . . . . . . . . . .
7.4
Architecture-System Synchronization
Based on Bi-transformation . . . . . . . . . . . . . . . . .
7.4.1 Enabling Techniques . . . . . . . . . . . . . . . .
7.4.2 The Synchronization Algorithm. . . . . . . . .
7.4.3 Assumptions . . . . . . . . . . . . . . . . . . . . . .
7.4.4 Discussion About the Algorithm
and the Properties . . . . . . . . . . . . . . . . . .
7.5
Generating Synchronizers for Legacy Systems . . . .
7.5.1 Implementing the Generic Synchronization
Engine . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.2 Generating Specific XMI Parsers
and System Adapters . . . . . . . . . . . . . . . .
7.6
Case Studies. . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.1 C2-JOnAS . . . . . . . . . . . . . . . . . . . . . . .
7.6.2 Client/Server-JOnAS . . . . . . . . . . . . . . . .
7.6.3 Other Case Studies . . . . . . . . . . . . . . . . .
7.6.4 Summary and Discussion . . . . . . . . . . . . .
7.7
Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.8
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Low-Disruptive Dynamic Updating of Internetware
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
8.2
Dynamic Updating: Eager Versus Lazy . . . . . .
8.3
Javelus: Overview . . . . . . . . . . . . . . . . . . . . .
8.4
Dynamic Patch Generation . . . . . . . . . . . . . . .
8.4.1 Identifying Changed Classes . . . . . . . .
8.4.2 Default Transformation and Custom
Transformers. . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

Contents

xxi

8.5

Updating Code . . . . . . . . . . . . . . . . . . . . . . . . .
8.5.1 Reaching a DSU Safe Point . . . . . . . . . .
8.5.2 Updating Classes. . . . . . . . . . . . . . . . . .
8.6
Updating Objects . . . . . . . . . . . . . . . . . . . . . . .
8.6.1 Affected Types . . . . . . . . . . . . . . . . . . .
8.6.2 Optimizing Object Validity Checks . . . . .
8.6.3 Mixed Object Model . . . . . . . . . . . . . . .
8.6.4 Transforming Objects. . . . . . . . . . . . . . .
8.6.5 Continuous Updating . . . . . . . . . . . . . . .
8.7
Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.7.1 Experiments with Micro Benchmarks. . . .
8.7.2 Experiments with Tomcat and H2 . . . . . .
8.8
Related Work . . . . . . . . . . . . . . . . . . . . . . . . . .
8.8.1 Dynamic Updating Systems for Java . . . .
8.8.2 Dynamic Updating Systems for Other
Programming Languages . . . . . . . . . . . .
8.8.3 Dynamic Updating for Component-Based
Systems . . . . . . . . . . . . . . . . . . . . . . . .
8.9
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

170
170
170
171
171
173
174
175
176
176
177
179
179
179

....

181

....
....
....

181
181
182

Specification and Monitoring of Data-Centric
Temporal Properties for Service-Based Internetware
Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2
Motivation Example . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Car Rental Application. . . . . . . . . . . . . . .
9.2.2 Supply Chain Application. . . . . . . . . . . . .
9.3
A Language for Specifying Data-Centric Properties .
9.3.1 The Syntax of Par-BCL . . . . . . . . . . . . . .
9.3.2 Par-BCL for Data-Centric Properties . . . . .
9.4
Monitoring Model of Par-BCL . . . . . . . . . . . . . . .
9.4.1 Filtering . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.2 Parameter Binding . . . . . . . . . . . . . . . . . .
9.4.3 Verification . . . . . . . . . . . . . . . . . . . . . .
9.5
Efficient Monitoring Process . . . . . . . . . . . . . . . .
9.5.1 Parameter State Machine . . . . . . . . . . . . .
9.5.2 Monitor Instance . . . . . . . . . . . . . . . . . . .
9.5.3 Monitoring Algorithm . . . . . . . . . . . . . . .
9.5.4 Management of Monitor Instances . . . . . . .
9.5.5 Architecture and Implementation . . . . . . . .
9.6
Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.1 Violation Detection . . . . . . . . . . . . . . . . .
9.6.2 Performance Evaluation . . . . . . . . . . . . . .
9.6.3 Overhead Evaluation . . . . . . . . . . . . . . . .
9.7
Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

185
186
187
187
190
191
191
194
194
194
196
197
198
198
199
199
200
201
202
202
202
204
205

xxii

Contents

9.8

Related
9.8.1
9.8.2
9.8.3

Work . . . . . . . . . . . . . . . . . . . . . . .
Engineering Self-adaptive System . . .
Runtime Monitoring of Web Services
Parametric Properties Monitoring
for OO Systems . . . . . . . . . . . . . . .
9.9
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.......
.......
.......

205
205
206

.......
.......
.......

207
207
208

10 Runtime Detection of the Concurrency Property
in Asynchronous Pervasive Computing Environments
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Property Detection for Pervasive Context . . . . . . .
10.2.1 Asynchronous Message Passing
and Logical Time . . . . . . . . . . . . . . . . .
10.2.2 Consistent Global State (CGS)
and the Lattice Structure Among CGSs . .
10.2.3 Specification of Contextual Properties . . .
10.3 Concurrent Activity Detection in Asynchronous
Pervasive Computing Environments . . . . . . . . . .
10.3.1 Def ðφÞ and Concurrent Contextual
Activities . . . . . . . . . . . . . . . . . . . . . . .
10.3.2 Design of the CADA Algorithm . . . . . . .
10.3.3 Discussions . . . . . . . . . . . . . . . . . . . . .
10.4 Performance Analysis . . . . . . . . . . . . . . . . . . . .
10.4.1 The Causes of Faults . . . . . . . . . . . . . . .
10.4.2 Concurrency Among Sensed Activities. . .
10.4.3 Sensed and Physical Activities . . . . . . . .
10.4.4 Discussions . . . . . . . . . . . . . . . . . . . . .
10.5 Experimental Evaluation . . . . . . . . . . . . . . . . . .
10.5.1 Implementation . . . . . . . . . . . . . . . . . . .
10.5.2 Experiment Setup . . . . . . . . . . . . . . . . .
10.5.3 Effects of Tuning the Update Interval . . .
10.5.4 Effects of Tuning the Message Delay. . . .
10.5.5 Effects of Tuning the Duration
of Contextual Activities . . . . . . . . . . . . .
10.5.6 Effects of Tuning the Number
of Non-checker Processes . . . . . . . . . . . .
10.5.7 Lessons Learned . . . . . . . . . . . . . . . . . .
10.6 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Part IV

....
....
....

211
212
213

....

213

....
....

213
214

....

215

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

215
218
219
220
221
221
223
224
224
224
225
225
226

....

227

.
.
.
.
.

.
.
.
.
.

227
227
228
228
229

..
..
..

233
233
236

..

239

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

Internetware Engineering Approach

11 A Software Architecture Centric Engineering Approach
for Internetware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Overview of ABC Methodology . . . . . . . . . . . . . . .
11.3 Feature Oriented Requirement Modeling
for Internetware . . . . . . . . . . . . . . . . . . . . . . . . . .

Contents

xxiii

11.4
11.5

Architecture Modeling of Self-adaptive Internetware
Reflective Middleware as Internetware
Operating Platform . . . . . . . . . . . . . . . . . . . . . . .
11.5.1 SA-Based Reflection . . . . . . . . . . . . . . . .
11.5.2 Autonomous Components. . . . . . . . . . . . .
11.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Toward Capability Specification of Internetware
Based on Environment Ontology . . . . . . . . . . . .
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . .
12.2 Environment Ontology. . . . . . . . . . . . . . . .
12.2.1 Upper Environment Ontology . . . . .
12.2.2 Domain Environment Ontology. . . .
12.2.3 Construction of Domain
Environment Ontology . . . . . . . . . .
12.3 Environment Ontology Based Capability
Specification. . . . . . . . . . . . . . . . . . . . . . .
12.3.1 Elements of EnOnCaS . . . . . . . . . .
12.3.2 An Example Capability Profile . . . .
12.3.3 Capability Specification Generation .
12.3.4 Internetware Entity Discovery . . . . .
12.4 Related Work . . . . . . . . . . . . . . . . . . . . . .
12.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

...

244

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

248
250
252
255
256

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

257
257
259
259
261

........

262

.
.
.
.
.
.
.
.

Entity
.....
.....
.....
.....
.....

.
.
.
.
.
.
.
.

13 Feature-Driven Requirement Dependency Analysis
and High-Level Software Design . . . . . . . . . . . . . .
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 The Preliminaries . . . . . . . . . . . . . . . . . . . . .
13.2.1 Definition of Features . . . . . . . . . . . .
13.2.2 Basic Attributes of Features . . . . . . . .
13.2.3 Operationalization of Features . . . . . . .
13.2.4 Responsibility Assignment . . . . . . . . .
13.2.5 Resource Containers . . . . . . . . . . . . .
13.3 Feature Dependencies . . . . . . . . . . . . . . . . . .
13.3.1 Refinement . . . . . . . . . . . . . . . . . . . .
13.3.2 Constraint. . . . . . . . . . . . . . . . . . . . .
13.3.3 Influence . . . . . . . . . . . . . . . . . . . . .
13.3.4 Interaction . . . . . . . . . . . . . . . . . . . .
13.4 Connections Between Dependencies . . . . . . . .
13.4.1 Refinement-Imposed Constraints . . . . .
13.4.2 Constraint and Interaction. . . . . . . . . .
13.4.3 Influence and Interaction . . . . . . . . . .
13.5 Verification of Constraints and Customization .
13.5.1 Feature-Oriented Customization-Based
Requirement Reuse . . . . . . . . . . . . . .
13.5.2 Customization Through a Series
of Binding-Times . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

266
267
269
270
271
275
277
277

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

279
279
280
281
281
282
282
283
284
284
285
286
287
288
289
289
289
291

......

291

......

291

xxiv

Contents

13.5.3 Three Verification Criteria . . . . . . . . . . . .
13.5.4 The Effectiveness of the Three Verification
Criteria . . . . . . . . . . . . . . . . . . . . . . . . .
13.6 Design of High-Level Software Architecture. . . . . .
13.6.1 An Overview . . . . . . . . . . . . . . . . . . . . .
13.6.2 Resource Container Identification . . . . . . .
13.6.3 Component Seed Creation . . . . . . . . . . . .
13.6.4 Component Construction . . . . . . . . . . . . .
13.6.5 Interaction Analysis . . . . . . . . . . . . . . . . .
13.7 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.8 Conclusions and Future Work. . . . . . . . . . . . . . . .
Appendix 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appendix 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appendix 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

...

291

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

292
293
293
293
294
294
294
295
296
297
298
298
299

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

301
301
303
303
305
305
306
306
306
307
308
311
311
312
312
317
317
318
319
323
328
328
329
330
331

........
........
........

337
338
339

........
........
........

339
340
342

14 rCOS: A Refinement Calculus of Internetware Systems
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2 Semantic Basis . . . . . . . . . . . . . . . . . . . . . . . . .
14.2.1 Programs as Designs . . . . . . . . . . . . . . .
14.2.2 Refinement of Designs. . . . . . . . . . . . . .
14.3 Syntax of rCOS . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.1 Commands . . . . . . . . . . . . . . . . . . . . . .
14.3.2 Expressions . . . . . . . . . . . . . . . . . . . . .
14.4 Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.4.1 Structure, Value and Object . . . . . . . . . .
14.4.2 Static Semantics . . . . . . . . . . . . . . . . . .
14.4.3 Dynamic Variables . . . . . . . . . . . . . . . .
14.4.4 Dynamic States . . . . . . . . . . . . . . . . . . .
14.4.5 Evaluation of Expressions . . . . . . . . . . .
14.4.6 Semantics of Commands . . . . . . . . . . . .
14.4.7 Semantics of a Program . . . . . . . . . . . . .
14.5 Object-Oriented Refinement . . . . . . . . . . . . . . . .
14.5.1 Object System Refinement . . . . . . . . . . .
14.5.2 Structure Refinement . . . . . . . . . . . . . . .
14.6 Refinement Rules . . . . . . . . . . . . . . . . . . . . . . .
14.7 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.7.1 Related Work . . . . . . . . . . . . . . . . . . . .
14.7.2 Support UML-like Software Development
14.7.3 Limitation and Future Work . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Part V

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Experiments and Practices of Internetware

15 Refactoring Android Java Code for On-Demand
Computation Offloading . . . . . . . . . . . . . . . . . .
15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . .
15.2 Design Pattern for Computation Offloading .
15.2.1 The Source Structure and the Target
Structure . . . . . . . . . . . . . . . . . . .
15.2.2 Refactoring Steps Overview . . . . . .
15.2.3 An Illustrative Example . . . . . . . . .

Contents

xxv

15.3

Implementation of DPartner . . . . . . . . . . . . . . .
15.3.1 Detect Movable Classes . . . . . . . . . . . .
15.3.2 Generate Proxies . . . . . . . . . . . . . . . . .
15.3.3 Transform App Classes . . . . . . . . . . . .
15.3.4 Cluster App Classes. . . . . . . . . . . . . . .
15.3.5 Determine the Computations
to Be Offloaded . . . . . . . . . . . . . . . . .
15.3.6 Offload Computations at Runtime . . . . .
15.4 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.4.1 Experiment Setup . . . . . . . . . . . . . . . .
15.4.2 Performance of Refactoring . . . . . . . . .
15.4.3 Comparison of App Performance. . . . . .
15.4.4 Comparison of App Power Consumption
15.4.5 The Effect of On-Demand Offloading . .
15.4.6 Experiments on 3G Network. . . . . . . . .
15.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . .
15.6 Conclusion and Future Work . . . . . . . . . . . . . .
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

342
342
343
343
345

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

347
348
350
350
351
351
353
354
354
355
357
357

........
........
........

359
360
361

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

363
363
363
365

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

365
366
366
368
368
370
371

17 Golden Age: On Multi-source Software Update
Propagation in Pervasive Networking Environments. .
17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2 System Model . . . . . . . . . . . . . . . . . . . . . . . . .
17.3 Update Propagation Strategies. . . . . . . . . . . . . . .
17.3.1 Random Spread. . . . . . . . . . . . . . . . . . .
17.3.2 Youngest Age. . . . . . . . . . . . . . . . . . . .
17.3.3 Golden Age . . . . . . . . . . . . . . . . . . . . .
17.4 Performance Analysis . . . . . . . . . . . . . . . . . . . .
17.4.1 Notations and Assumptions . . . . . . . . . .
17.4.2 Number of Updated Nodes in the System .
17.4.3 Principles for Choosing the Golden Age. .

.
.