The indispensable Internet poses many new challenges tosoftware engineering; these challenges are becoming particularly acute withthe emergence of computing applications that exploit the
Trang 1Internetware Hong Mei · Jian Lü
A New Software Paradigm
for Internet Computing
Trang 2Internetware
Trang 3Hong Mei • Jian Lü
Internetware
A New Software Paradigm for Internet Computing
123
Trang 4ISBN 978-981-10-2545-7 ISBN 978-981-10-2546-4 (eBook)
DOI 10.1007/978-981-10-2546-4
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, speci fically 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 speci fic 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
Trang 5Foreword I
The Internet has become both the nervous system that coordinates our societyand the brain in which all human knowledge is kept and accessed It changedfrom being a network of networks enabling access to remote machines to anetwork of content, applications, people, and (software) services, therebyweaving itself into the fabric of today’s global and interconnected physicalworld and society The indispensable Internet poses many new challenges tosoftware engineering; these challenges are becoming particularly acute withthe emergence of computing applications that exploit the Internet in new
computing, sensor networks, cyber-physical systems, data analytics, and theInternet of Things is pulling software engineering further and further from thecomfort zone of principles and techniques that have prevailed for decades.This book presents results of an ambitious plan to meet the challengesparadigmatically, i.e., to systematically re-examine the fundamental aspects
of WHAT-IS, HOW-TO-DO, HOW-TO-RUN, and HOW-WELL for ware systems situated in the open and dynamic Internet environment.Prof Hong Mei and Prof Jian Lü led the research and coined the word
soft-“Internetware” to name the novel software paradigm for Internet computing.Technically, the paradigm is intended to support the construction, operationand evolution of software systems that consist of self-contained, autonomousentities situated in distributed nodes of the Internet and coordinators con-necting these entities statically and dynamically in various kinds of inter-action styles These systems are also able to perceive the changes of open anddynamic environment, respond to changes through architectural transfor-mations, and exhibit context-aware, adaptive and trustworthy behaviors inthe Internet environment The book gives a systematic and complete cov-erage 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 timelyand valuable new ideas, concepts, and technologies that will attract theinterest of both academia and industry, fostering further advancement ofresearch and developments in this area
In addition to its technical contributions, the successful story of netware also exemplifies how original and systematic innovations can beachieved with deep insights, strong leadership, and persistent efforts This isespecially impressive considering the fact that Internetware was conceived
Inter-v
Trang 6independently in China 15 years ago when the software engineering
com-munity 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 GhezziPolitecnico di Milano
Milan, Italy
Trang 7Foreword II
The convergence of various network technologies and applications, such assensor networks, cellular networks, and social networks have pushed majorInternet evolutions Internet has evolved from a content delivery and resourcesharing platform towards a ubiquitous infrastructure connecting humansociety, 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, andhave to continuously provide high-quality services and experiences for userswho access applications from anywhere, at anytime, and by any device As aresult, software engineering development processes in all their phases andactivities, such as software development, deployment, operation, mainte-nance, and evolution, are facing major challenges arising from the openness,situation-awareness, changeability, interactivity, adaptability, and evolu-tionary nature of the Internet-based applications It is clear that addressingsuch challenges requires rethinking the principles and methods of softwareengineering
A group of distinguished Chinese researchers proposed the term netware” to refer to the new software paradigm for Internet computingenvironments They devoted intense research efforts towards addressingsignificant fundamental issues for Internetware, including the autonomy ofsoftware entities, the openness of collaboration among software entities, theevolution and adaptation driven by context changing, and the trustworthiness
“Inter-of the system behavior For almost 15 years, this group “Inter-of researchersinvestigated approaches to address these issues with the sponsorship ofNational Basic Research Program of China (“973 program”) Their missionincluded studying, establishing and using systematic, disciplined, quantifi-able approaches for software development, operation, and maintenance onInternet Internetware is now consolidated as a quite full-fledged frameworkconsisting of a new programming model, engineering approaches, runtimeplatforms, and quality assurance for software systems and applications run-ning on the Internet
Research on Internetware has resulted in numerous results recognized bypremier conferences, top journals, real-world applications, and industrialsolutions and products This book, titled Internetware: A New SoftwareParadigm for Internet Computing, summarizes over 15 years of researcharound software engineering for Internet-based applications and the valuable
vii
Trang 8results 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 thefield of software
engineering for everyone interested in novel trends, research, and
method-ologies in today software engineering
Enjoy the book!!
Elisa BertinoPurdue UniversityWest Lafayette, USA
Trang 9Foreword III
We are undergoing a tremendous change towards a new Internet-based andsoftware-defined cyberspace, where our physical world and social commu-nities can be virtualized by software technologies, delivered as softwareapplications and services, and operated over an infrastructure that isInternet-based and globally networked Cloud-based, mobile-oriented, andsensor-laden software applications and services establish the ubiquitousfabrics among every object in such a cyberspace, and have to adapt toever-changing and on-the-fly requirements in response to instant feedbackfrom this Internet-scale computing environment that is becoming more andmore complex As such, software engineering tasks are increasingly complexand highly challenging in view of unstable, noisy, and sometimes harshenvironments However, current software engineering approaches and tech-niques largely lack the capabilities to continuously explore the collaborative,situation-aware, adaptational, and evolutionary needs of software applica-tions and services Software engineering research needs substantial evolu-tionary 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 inChina, this area has made great efforts towards revolutionizing the emerging
“Internet-based” and “software-defined” cyberspace in the past 15 years TheInternetware is proposed as a new software paradigm covering new pro-gramming abstractions, engineering approaches, runtime infrastructures, andquality assurance to make software applications and services collaborative,adaptive, evolvable, situational, emergent, and trustworthy Internetwareresearch has brought low-hanging fruits in premier academic conferences andjournals Meanwhile, some of the results have been successfully applied inreal-world applications In my opinion, Internetware research not only leadsthe pioneering software research and development in China, but also makessignificant impacts on the software community worldwide
This book provides to readers the authors’ unique perspectives and effortsfrom the Internetware perspective, including the programming models,engineering approaches, middleware platforms and operating systems,measurements and quality-of-experience assurance, etc This book alsocontains timely and valuable new ideas, concepts, and technologies for manyapplication contexts such as cloud computing, mobile computing, socialcomputing, cyber-physical systems, and so on
ix
Trang 10It is my great pleasure to introduce this must-read book to faculty and
students, researchers and practitioners, decision makers in charge of
gov-ernmental research funding and other research & development executives
who are interested in grasping and helping push the envelope of
Internet-based computing technologies
Carl ChangIowa State University
Ames, USA
Trang 11To cope with new characteristics of software for the Internet computingenvironment, existing software paradigms need to be evolved to be a newone Such a new software paradigm should be able to systematically supportthe development, deployment, operation, and quality assurance of software
on the Internet Around 2000, we coined a word Internetware from the twowords“Internet” and “Software”, to denote our visions of a new paradigm forsoftware systems that are constructed, executed, used, and evolved in theopen and dynamic Internet environment Elaborately, these systems oftenneed to be
Autonomous Software entities are usually distributed, relatively contained, and independent Software entities perform according to the com-position or deployment strategies defined by their providers, and continuouslysatisfy the providers’ requirements A software entity can adapt itself whennecessary, by sensing and collecting information on environment changes.Cooperative.A set of software entities can collaborate with each other forthe purpose of business or management Often the collaborations are ratherdynamic than static, to adapt to the user requirements and environments in anon-demand way The collaboration mechanisms between software entitiescan be of various types, and can be changed if necessary
self-Situational.Software applications can be aware of the runtime contextsand scenarios, including the underlying devices, operating platforms, net-working conditions, application contexts, or the changes of other dependentapplications, etc Hence, both software entities (included in a softwareapplication) and their operating platforms might be capable of exposing theirruntime states and behaviors in some way
Evolvable.The structures and behaviors of software applications mightdynamically change Software applications usually consist of autonomousentities over the Internet, and provide online and continuous (e.g., 24 h * 7days) services for a large number of users Hence, software applicationscannot be shut down during evolution Software applications have to performonline evolution to accommodate new user requirements and environments.Possible evolutions can include addition/removal of software entities, chan-ges of functionalities on-the-fly and just-in-time, changes of interaction stylesbetween entities, change of topologies among entities, etc
xi
Trang 12Emergent 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
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
con-secutively: the project Research on Theory and Methodology of Agent-based
Middleware on Internet Platform (2002–2008) and the project Research on
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
Labora-tory Since 2009, the Asia-Pacific Symposium on Internetware (http://sei
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 arefirst 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
trans-ferred to commercial products and solutions under the support of the National
Science and Technology Major Projects In 2014, the Research on
Inter-netware: 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
Trang 13environment, including the fundamental aspects of programming model,engineering approach, runtime operational platform, and quality measure-ments and assurance In addition, this book also includes a number ofreal-world applications, experiences, and practices of Internetware The bookconsists offive parts.
• Part 1 gives an overview of a technical framework for Internetware Ittakes a software architecture-centric viewpoint and organizes the frame-work as three connected aspects: system modeling, middleware support,and engineering method
• Part 2 presents a software model featuring environment driven adaptationfor Internetware applications Enabling techniques for the model, espe-cially the modeling, management and utilization of environment infor-mation are discussed An architecture-centric framework has also beenbuilt to prove the concepts and evaluate the techniques
• Part 3 focuses on the runtime support for Internetware application tems The support covers various aspects of the execution and adaptation
sys-of ssys-oftware situated in the open and dynamic Internet environment
• Part 4 introduces the Internetware engineering approach It essentiallyfollows the core and underlying principle of software architecturethroughout a whole-life cycle This software architecture serves as ablueprint, and suggests or controls each phase in lifecycle for developingInternetware applications
• Part 5 describes how the Internetware paradigm is applied to real-worldcloud and client applications At the client side, applications on smart-phones connect to the physical world and Internet by their built-in sensorsand networking chips, respectively At the cloud side, numerous com-puting platforms like virtual machines and middleware infrastructures aremanaged to run user tasks in a cost-effective way We discuss how theInternetware paradigm is realized on the two sides, as well as how the twosides 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 beenpublished on premier computer science conferences or journals Indeed, therehave been numerous efforts contributed to Internetware research in the past
15 years Due to space limit, we have to select only some representativeefforts that cover some typical Internet-based applications such as cloud/gridcomputing, services computing, mobile computing, Web, Internet of Things,and so on These efforts are organized by the research framework of Inter-netware paradigm When having acquired the copyrights of original pub-lishers, the authors further make great efforts to revise and expand theoriginal contents to better fit the goal of this book
Trang 14As 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
para-digm keep improving during our 15-year course of study The selected efforts
in this book were actually made at different time and from different
per-spectives As a result, this book cannot comprehensively enforce the
con-sistent 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
soft-ware 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
Trang 15extension of their previous work and provided reviews of the draft script: 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, WenboZhang, Chunyang Yue, Hua Zhong, Hong He from the Institute of Software,Chinese Academy of Sciences; Jifeng He, Jing Liu, Xiaoshan Li, ZhimingLiu, from East China Normal University; Puewei Wang, Guangjun Cai fromthe Academy of Mathematics and System Science, Chinese Academy ofScience; Lin Liu, Yang Chen, Xiaojun Ye, Yingbo Liu, from TsinghuaUniversity.
manu-Our colleagues, Tao Xie at University of Illinois Urbana-Champaign,Zhenjiang Hu at National Institute of Informatics (Japan), Shi-Chi Cheung atthe Hong Kong University of Science and Technology, were exceptionallysupportive throughout the writing of the text
Meihua Yu helped establishing the online co-editing system to improvethe work efficiency
In particular, Gang Huang (Peking University), Xiaoxing Ma (NanjingUniversity), and Xuanzhe Liu (Peking University) made great efforts to helporganize the compilation of whole book and identify the typos in early drafts
xv
Trang 16Due 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
Trang 171 Internetware: A Shift of Software Paradigm 3
1.1 Introduction 3
1.2 The Internetware Paradigm 4
1.2.1 The Need of a Paradigm Shift 4
1.2.2 Methodological Reflections 5
1.2.3 Architecting Principles for Internetware 7
1.2.4 Our Roadmap and Explorations 8
1.3 Open Coordination Model 8
1.3.1 Coordination Model for Internetware 8
1.3.2 A Software Architecture Based Approach 10
1.4 Environment-Driven Model 11
1.4.1 Structure and Dynamics 11
1.4.2 Framework and Techniques 13
1.5 Dependability Assurance Framework with Trust-Management 14
1.5.1 A Trust-Based Approach 14
1.5.2 A Dependability Assurance Framework with Trust Management 15
1.6 Conclusion 15
References 16
2 Technical Framework for Internetware: An Architecture Centric Approach 19
2.1 Introduction 19
2.2 Software Model of Internetware 21
2.2.1 Basic Component Model 22
2.2.2 Open Collaboration Model 22
2.2.3 Context Driven Model 23
2.2.4 Intelligent Trustworthy Model 23
2.3 Middleware for Internetware 23
2.3.1 The Implementation Model of Basic Internetware Entities 24
2.3.2 The Implementation Model of On-Demand Collaborations 24
2.3.3 The Autonomic Management of Middleware 25
2.3.4 Componentization of Middleware 25
xvii
Trang 182.4 Engineering Approach for Internetware 26
2.4.1 Software Architecture in the Whole Lifecycle 26
2.4.2 Development of Internetware Basic Entities and Their Collaborations 28
2.4.3 Domain Modeling for Internetware 28
2.5 Conclusion 29
References 29
Part II Internetware Software Model 3 On Environment-Driven Software Model for Internetware 33
3.1 Introduction 33
3.2 An Approach to the Environment-Driven Model 35
3.2.1 Overall Interaction Patterns of Environment-Driven Applications 36
3.2.2 A Structuring Model for Environment-Driven Applications 37
3.2.3 Model and System Characteristics 40
3.3 Environment Modeling and Enabling Techniques 42
3.3.1 Context Processing Framework 43
3.3.2 Ontology-Based Modeling of Dynamic Context 44
3.3.3 Logic Distance-Based Context Retrieval 46
3.3.4 Blurring Degree-Based Privacy Protection 48
3.3.5 Negotiation-Based Context Information Selection 50
3.4 Goal-Driven Adaptation and Rearon Ontologies 51
3.4.1 Rearon Ontologies 52
3.4.2 Overall Interaction Patterns of Environment-Driven Applications 55
3.5 Prototypes and Experiments 56
3.5.1 Artemis-ARC 57
3.5.2 Artemis-MAC 58
3.5.3 Artemis-FollowMeLite 60
3.5.4 Artemis-FollowMeAgent 61
3.5.5 Environment-Driven Applications 62
3.6 Related Work 64
3.7 Conclusion 66
References 67
4 On Self-adaptation Model for Internetware 71
4.1 Introduction 71
4.2 Approach Overview 73
4.3 Key Techniques 74
4.3.1 Basic SA Model 74
4.3.2 SA Reflection 76
4.3.3 SA Dynamism 76
4.3.4 SA Reasoning 77
Trang 194.3.5 SA Trustworthiness 78
4.3.6 A Tool for Modeling SA in the Whole Lifecycle 80
4.4 Case Study 81
4.4.1 Pattern Driven Self-adaptation 81
4.4.2 Style Driven Self-adaptation 85
4.4.3 Performance Impact 88
4.5 Related Work 89
4.6 Conclusion 90
References 90
5 On Requirements Model Driven Adaption and Evolution of Internetware 93
5.1 Introduction 94
5.2 Matching and Composing Internetware Components 95
5.2.1 A Component Meta Model 95
5.2.2 Component Lifecycle 97
5.2.3 Component Composition Rules 98
5.3 Components Adaptation 99
5.3.1 Adaptation Strategies 99
5.3.2 Adaptation Process 100
5.4 Internetware Testbed and Case Studies 102
5.4.1 Internetware Testbed 102
5.4.2 Model-Driven Development and Evaluation of Internetware Applications 103
5.4.3 Enterprise Applications Example 105
5.4.4 Experiment Scenarios on the Collaborations and Evolutions of Internetware Components 105
5.5 Related Work 107
5.6 Conclusion and Future Work 108
References 109
Part III Internetware Operating Platform 6 Runtime Recovery and Manipulation of Software Architecture of Component-Based Systems 115
6.1 Introduction 116
6.2 Approach Overview 118
6.2.1 Architectures in ABC 118
6.2.2 Conceptual Framework 119
6.3 Characteristics of Software Architecture at Runtime 119
6.3.1 Software Architecture at Design Time 120
6.3.2 Software Architecture at Runtime 121
6.3.3 Description for Software Architecture Recovered at Runtime 123
6.4 Recovery of Software Architecture at Runtime 124
6.4.1 Overview of PKUAS 124
6.4.2 Recovery of Basic Elements 126
6.4.3 Construction of Architecture Views 129
6.4.4 Enrichment of Semantics 130
Trang 206.5 Manipulation of Recovered Software Architecture
at Runtime 131
6.5.1 Manipulation via Reflection 131
6.5.2 Programming Model 132
6.5.3 Graphical Tool 132
6.6 Performance Evaluation 134
6.7 Related Work 135
6.8 Conclusion and Future Work 136
References 137
7 Supporting Runtime Software Architecture: A Bidirectional-Transformation-Based Approach 139
7.1 Introduction 140
7.2 Runtime Software Architecture 141
7.2.1 An Illustrative Example 141
7.2.2 A Formal Description of Runtime Software Architecture 142
7.3 Maintaining Causal Connections by Architecture-System Synchronization 144
7.3.1 The Four Properties 144
7.3.2 The Challenges 144
7.4 Architecture-System Synchronization Based on Bi-transformation 145
7.4.1 Enabling Techniques 145
7.4.2 The Synchronization Algorithm 146
7.4.3 Assumptions 149
7.4.4 Discussion About the Algorithm and the Properties 149
7.5 Generating Synchronizers for Legacy Systems 150
7.5.1 Implementing the Generic Synchronization Engine 151
7.5.2 Generating Specific XMI Parsers and System Adapters 151
7.6 Case Studies 152
7.6.1 C2-JOnAS 152
7.6.2 Client/Server-JOnAS 154
7.6.3 Other Case Studies 155
7.6.4 Summary and Discussion 155
7.7 Related Work 158
7.8 Conclusion 159
References 159
8 Low-Disruptive Dynamic Updating of Internetware Applications 163
8.1 Introduction 163
8.2 Dynamic Updating: Eager Versus Lazy 165
8.3 Javelus: Overview 166
8.4 Dynamic Patch Generation 167
8.4.1 Identifying Changed Classes 167
8.4.2 Default Transformation and Custom Transformers 168
Trang 218.5 Updating Code 170
8.5.1 Reaching a DSU Safe Point 170
8.5.2 Updating Classes 170
8.6 Updating Objects 171
8.6.1 Affected Types 171
8.6.2 Optimizing Object Validity Checks 173
8.6.3 Mixed Object Model 174
8.6.4 Transforming Objects 175
8.6.5 Continuous Updating 176
8.7 Evaluation 176
8.7.1 Experiments with Micro Benchmarks 177
8.7.2 Experiments with Tomcat and H2 179
8.8 Related Work 179
8.8.1 Dynamic Updating Systems for Java 179
8.8.2 Dynamic Updating Systems for Other Programming Languages 181
8.8.3 Dynamic Updating for Component-Based Systems 181
8.9 Conclusion 181
References 182
9 Specification and Monitoring of Data-Centric Temporal Properties for Service-Based Internetware Systems 185
9.1 Introduction 186
9.2 Motivation Example 187
9.2.1 Car Rental Application 187
9.2.2 Supply Chain Application 190
9.3 A Language for Specifying Data-Centric Properties 191
9.3.1 The Syntax of Par-BCL 191
9.3.2 Par-BCL for Data-Centric Properties 194
9.4 Monitoring Model of Par-BCL 194
9.4.1 Filtering 194
9.4.2 Parameter Binding 196
9.4.3 Verification 197
9.5 Efficient Monitoring Process 198
9.5.1 Parameter State Machine 198
9.5.2 Monitor Instance 199
9.5.3 Monitoring Algorithm 199
9.5.4 Management of Monitor Instances 200
9.5.5 Architecture and Implementation 201
9.6 Experiments 202
9.6.1 Violation Detection 202
9.6.2 Performance Evaluation 202
9.6.3 Overhead Evaluation 204
9.7 Discussion 205
Trang 229.8 Related Work 205
9.8.1 Engineering Self-adaptive System 205
9.8.2 Runtime Monitoring of Web Services 206
9.8.3 Parametric Properties Monitoring
for OO Systems 2079.9 Conclusion 207
References 208
10.1 Introduction 212
10.2 Property Detection for Pervasive Context 213
and Logical Time 21310.2.2 Consistent Global State (CGS)
and the Lattice Structure Among CGSs 21310.2.3 Specification of Contextual Properties 214
10.3 Concurrent Activity Detection in Asynchronous
Pervasive Computing Environments 215
10.3.1 Def ðφÞ and Concurrent Contextual
Activities 21510.3.2 Design of the CADA Algorithm 218
10.3.3 Discussions 219
10.4 Performance Analysis 220
10.4.1 The Causes of Faults 221
10.4.2 Concurrency Among Sensed Activities 221
10.4.3 Sensed and Physical Activities 223
10.4.4 Discussions 224
10.5 Experimental Evaluation 224
10.5.1 Implementation 224
10.5.2 Experiment Setup 225
10.5.3 Effects of Tuning the Update Interval 225
10.5.4 Effects of Tuning the Message Delay 226
10.5.5 Effects of Tuning the Duration
of Contextual Activities 227
of Non-checker Processes 22710.5.7 Lessons Learned 227
10.6 Related Work 228
10.7 Conclusion 228
References 229
for Internetware 233
11.1 Introduction 233
11.2 Overview of ABC Methodology 236
for Internetware 239
Trang 2311.4 Architecture Modeling of Self-adaptive Internetware 24411.5 Reflective Middleware as Internetware
Operating Platform 24811.5.1 SA-Based Reflection 25011.5.2 Autonomous Components 25211.6 Conclusion 255References 256
Based on Environment Ontology 25712.1 Introduction 25712.2 Environment Ontology 25912.2.1 Upper Environment Ontology 25912.2.2 Domain Environment Ontology 261
Environment Ontology 262
Specification 26612.3.1 Elements of EnOnCaS 26712.3.2 An Example Capability Profile 26912.3.3 Capability Specification Generation 27012.3.4 Internetware Entity Discovery 27112.4 Related Work 27512.5 Conclusion 277References 277
and High-Level Software Design 27913.1 Introduction 27913.2 The Preliminaries 28013.2.1 Definition of Features 28113.2.2 Basic Attributes of Features 28113.2.3 Operationalization of Features 28213.2.4 Responsibility Assignment 28213.2.5 Resource Containers 28313.3 Feature Dependencies 28413.3.1 Refinement 28413.3.2 Constraint 28513.3.3 Influence 28613.3.4 Interaction 28713.4 Connections Between Dependencies 28813.4.1 Refinement-Imposed Constraints 28913.4.2 Constraint and Interaction 28913.4.3 Influence and Interaction 28913.5 Verification of Constraints and Customization 29113.5.1 Feature-Oriented Customization-Based
Requirement Reuse 29113.5.2 Customization Through a Series
of Binding-Times 291
Trang 2413.5.3 Three Verification Criteria 291
13.5.4 The Effectiveness of the Three Verification
Criteria 29213.6 Design of High-Level Software Architecture 293
13.6.1 An Overview 293
13.6.2 Resource Container Identification 293
13.6.3 Component Seed Creation 294
14.7.3 Limitation and Future Work 330
References 331
Computation Offloading 337
15.1 Introduction 338
15.2 Design Pattern for Computation Offloading 339
15.2.1 The Source Structure and the Target
Structure 33915.2.2 Refactoring Steps Overview 340
15.2.3 An Illustrative Example 342
Trang 2515.3 Implementation of DPartner 34215.3.1 Detect Movable Classes 34215.3.2 Generate Proxies 34315.3.3 Transform App Classes 34315.3.4 Cluster App Classes 345
to Be Offloaded 34715.3.6 Offload Computations at Runtime 34815.4 Evaluation 35015.4.1 Experiment Setup 35015.4.2 Performance of Refactoring 35115.4.3 Comparison of App Performance 351
15.4.5 The Effect of On-Demand Offloading 35415.4.6 Experiments on 3G Network 35415.5 Related Work 35515.6 Conclusion and Future Work 357References 357
of Platforms in Cloud 35916.1 Introduction 36016.2 Motivating Example 36116.3 An Architecture-Based Model for Platform
Management in Cloud 36316.3.1 Approach Overview 36316.3.2 The Architecture-Based Meta-Model 36316.3.3 Runtime Changes 365
Architecture-Based Model 36516.5 Evaluation 36616.5.1 Anti-pattern Detection 36616.5.2 VM States Checking 36816.6 Related Work 36816.7 Conclusion and Future Work 370References 371
17.1 Introduction 37417.2 System Model 37517.3 Update Propagation Strategies 37617.3.1 Random Spread 37717.3.2 Youngest Age 37717.3.3 Golden Age 37717.4 Performance Analysis 37817.4.1 Notations and Assumptions 37817.4.2 Number of Updated Nodes in the System 37817.4.3 Principles for Choosing the Golden Age 382
Trang 2617.5 Numerical Results 383
17.5.1 Simulation Setup 383
17.5.2 The Number of Updated Nodes 383
17.5.3 Impact of Source Density 384
17.5.4 Impact of Buffer Size 384
17.5.5 Impact of Update Interval 385
Parameter Choosing Rules 38517.6 Related Work 385
17.7 Conclusion 386
References 387
Inefficiency for Smartphone Applications 389
18.1 Introduction 390
18.2 Background 392
18.3 Empirical Study 393
18.3.1 Problem Magnitude 394
18.3.2 Diagnosis and Bug-Fixing Efforts 394
18.3.3 Common Patterns of Energy Bugs 396
18.3.4 Threats to Validity 402
18.4 Energy Efficiency Diagnosis 402
18.4.1 Approach Overview 402
18.4.2 Application Execution and State Exploration 403
Lock Deactivation 40618.4.4 Sensory Data Utilization Analysis 407
18.5 Experimental Evaluation 413
18.5.1 Experimental Setup 414
18.5.2 Effectiveness and Efficiency 416
18.5.4 Impact of Event Sequence Length Limit 424
Detection Work 42718.5.6 Energy Saving Case Study 428
18.5.7 Discussions 429
18.6 Related Work 432
18.6.1 Energy Efficiency Analysis 432
18.6.2 Energy Consumption Estimation 433
18.6.3 Resource Leak Detection 434
18.6.4 Information Flow Tracking 435
18.7 Concluding Remarks 435
References 435
19 Conclusion and Future Outlook 441
Trang 27xxvii
Trang 28OOSE Object-Oriented Software Engineering
Trang 29Part I Introduction to Internetware
Due to the open, dynamic, and ever-changing
nature of the Internet computing environment,
software on the Internet differs from traditional
software in terms of forms, structures, and
behaviors Consequently, software applications
(including software entities and their interactions)
for Internet computing often need to be
autono-mous, cooperative, situational, evolvable,
emer-gent, and trustworthy This puts forward many
technical challenges for software engineers
We believe that, in addition to specific research
for each concrete technical issue, a thorough
re-examination of the fundamental software
paradigm is needed A software paradigm usually
concerns with four main aspects: WHAT-IS,
HOW-WELL WHAT-IS refers to what is to be
constructed and executed (software or program
model) HOW-TO-DO refers to how to develop
the required software applications including their
constituent entities (development techniques, e.g.,
programming languages, engineering approaches,
and supporting tools) HOW-TO-RUN refers to
how to run the software applications including
their constituent entities (runtime system
sup-ports, such as the operating systems or
middle-ware platforms) HOW-WELL refers to how well
the constructed and executed software
applica-tions can perform (promised software qualities,
e.g., correctness, performance, reliability, user
experiences, and their assurance mechanisms
during software construction and operation)
One main objective of a software paradigm is tobetter leverage the underlying runtime environ-ments such as hardware capabilities while offering
a computing model that is sufficiently expressiveand natural to characterize the application domain
A software paradigm evolves with the underlyingruntime environments and the target applicationdomains For a software paradigm, WHAT-IS andHOW-TO-DO/HOW-TO-RUN are typically thefirst set of concerns to address and thenHOW-WELL becomes a concern when the soft-ware paradigm is broadly applied in practice.Every shift of software paradigms (e.g., the shiftfrom structured to object-oriented and then the
component-based/service-oriented) typically brings significant challenges
as well as tremendous opportunities to softwaretechnologies After more than a decade of devel-opment and growth, the expanded runtime envi-ronments and application domains in the era ofInternet call for a new shift on software paradigms
to cope with new requirements on software forInternet computing
In particular, a new software paradigm forInternet computing needs to satisfy the followingrequirements (organized along the four aspects;some of which are general to any software
software for Internet computing):
Software model (WHAT-IS) The softwaremodel should specify the forms, structures,and behaviors of software entities as well as
Trang 30their collaborations These specifications will
determine the principles and features of the
corresponding software technologies
(pro-gramming languages, development
software entities can be built upon current
popular technologies, such as object-oriented
technologies and service computing
technolo-gies But new capabilities should be provided
to enable on-demand collaborations among
situation-aware supports
Software operating platform (HOW-TO-RUN)
The operating platform should provide a
run-time space to operate software entities and their
collaborations To ease the migration of legacy
software to software for Internet computing, the
operating platform should be able to
conve-niently equip legacy software with new features
added to satisfy the requirements on software
for Internet computing In addition, the
oper-ating platform should manage software
appli-cations and the platform itself in an intelligent
and automatic manner
Engineering approach (HOW-TO-DO) The
engineering approach should systematically
control the whole lifecycle of developing
software for Internet computing, including
requirements specification, design,
implemen-tation, deployment, and maintenance
Quality assurance (HOW-WELL) Softwareapplications on the Internet usually serve alarge number of users in an online andsimultaneous style Both quantitative andqualitative measurement methods should bedeveloped for various quality attributes such
as performance, reliability, and usability, andfor the comprehensive tradeoffs among theseattributes Assuring high quality requiresquality assurance methods realized by engi-neering approaches at the development time(e.g., testing, verification and validation), andruntime mechanisms (e.g., online evolutionand autonomic system management)
This part gives a brief introduction on themotivations and visions of the Internetwareparadigm After looking back on the driven forcesbehind pervious paradigm shifts in the history ofsoftware engineering, Chap.1discusses the need
of a new paradigm in face of the challenges ofInternet computing It also proposes a roadmaptowards this new paradigm Chapter 1 gives anoverview of a technical framework for Internet-ware It takes a software architecture-centricviewpoint and organizes the framework as threeconnected aspects: system modeling, middlewaresupport, and engineering method
Trang 31integra-of Internetware applications.
Keywords
Internetware· Software paradigm · Methodological perspective
1.1 Introduction
The Internet has become a new computing
environment, in which software systems of
new styles are developed, deployed, and
exe-cuted Tremendous amount and vast diversity
of resources and services are emerging in this
environment Unprecedented potentials are seen
through emerging approaches to the coordination
and integration of these resources and services in
Parts of this chapter were reprinted from Jian Lü,
Xiaoxing Ma, Yu Huang, Chun Cao and Feng Xu.
Internetware: a shift of software paradigm, In
Proceed-ings of the First Asia-Pacific Symposium on
Internet-ware © 2009 ACM, Inc http://doi.acm.org/10.1145/
1640206.1640213.
a global scale Among these approaches there areGrid Computing [1], Service Computing [2,3],Ubiquitous Computing [4], and Cloud Computing[5], to name a few Contrasting to its traditionalcounterparts such as stand-alone computers,LANs, and enterprise intranets, the Internetcomputing environment is much more open,dynamic, and autonomous As a consequence,application systems in such an environmentcannot be constructed in a tightly-coupled andonce-for-ever manner as traditional ones often do.These new systems must respect the autonomy
of the services they use, be capable of probingthe changes of the environment and user pref-erences, and then adapt themselves accordingly
to keep their service satisfactory with sufficientfunctionality, performance, and dependability
© Springer Science+Business Media Singapore 2016
H Mei and J Lü, Internetware, DOI 10.1007/978-981-10-2546-4_1
3
Trang 324 1 Internetware: A Shift of Software …
The challenges in developing such kind
of applications not only lie in specific
tech-nical difficulties, such as inter-organization
interoperation, runtime adaptation, decentralized
authentication, etc., but also come from the lack
of suitable methods that can help developers to
understand and manage the complexity of these
applications We believe that such challenges
necessitate a major shift of software paradigm,
because there is a mismatch between the
assump-tions of conventional software paradigms and
the features of the open Internet environment
For example, conventionally, the decomposition
of a system into computing elements could be
totally under the command of its developers, but
now the autonomy of resources and services in
Internet must be respected; instead of assuming
that the working environment would be the same
as specified at development time, the system
needs to deal with constant changes in the
environment at runtime; moreover, rather than
developed within a monolithic organization, the
system is often based on independent services
with different interests
Reflections on previous shifts of software
paradigm indicate that the balance of the forces
from the problem, mental, and computing spaces
is crucial to the success of a software paradigm
New applications in new open environments
demand a new paradigm to rebalance the forces
In this chapter we discuss our visions and
explorations of the Internetware, a new software
paradigm envisioned for application systems
situated in the open Internet environment This
new paradigm emphasizes the autonomy of the
constituent entities of a system, the cooperation
and coordination among the entities, as well as
the situation-awareness, evolvability, emergence,
and trustworthiness of the system [6 9] Toward
this new paradigm, a three-staged roadmap
is proposed and adopted in our recent work
First, extending the mainstream Object-Oriented
model, we propose a new structuring model for
the coordination of autonomous services to satisfy
particular demands in a flexible but disciplined
way Second, we give an environment-driven
model to support the dynamic adaptation of
systems to the changes in environment Third,
we present a trust management-based modelfor evaluating and ensuring the dependability ofsystems built upon autonomous resources in theopen Internet environment A set of enabling tech-niques for these models are also briefly discussed.The rest of this chapter is organized as follows
In Sect.1.2we discuss the rationale and ing principles of the Internetware paradigm Sec-tions1.3,1.4, and1.5are dedicated to the opencoordination model, environment-driven model,and dependability assurance model, respectively.Finally Sect.1.6summaries the chapter and brieflydiscusses directions for future work
architect-1.2 The Internetware Paradigm
1.2.1 The Need of a Paradigm Shift
A paradigm is an accepted model or pattern digms gain their status because they are more suc- cessful than their competitors in solving a few prob- lems that the group of practitioners has come to recognize as acute To be more successful is not, however, to be either completely successful with a single problem or notably successful with any large number [10].
Para-Since the publishing of Kuhn’s seminal book
The Structure of Scientific Revolutions, the
importance of paradigms and paradigm shifts inscientific methodology is widely recognized Inhis Turing Award Lecture, Floyd convinced usthat paradigms of programming take an importantrole in helping the developers understand andmanage the complexity in solving problems [11].High level paradigms of programming-in-the-
large are also called software paradigms Various
paradigms exist in software communities Amongthem there are structured [12], object-oriented[13], component-based [14], and agent-orientedparadigms [15], to name a few In his book [16],Kaisler discussed a set of widely used softwareparadigms and their associated techniques Asoftware paradigm provides a model of howsoftware systems are developed, sometimes inthe form of a metaphor However it should beemphasized that behind the model there are acollection of assumptions, concepts, theories, andpractices acting as the rationale
Trang 331.2 The Internetware Paradigm 5
With the transformation to the open, dynamic,
and autonomous Internet environment, the
following assumptions of conventional software
paradigms become invalid more or less
1 Controllable computing elements All parts of
a conventional software system are designed
or adapted (in case of reusing existing
compo-nents) to work together for a common purpose
There is no independent interest or decision of
a single part other than what the system assigns
to it To develop such a system, it is convenient
to decompose the application logic into the
computing elements, in the form of, say,
pro-cedures or objects, and glue up these elements
with predefined coordination mechanisms such
as procedure calls or object method
invoca-tions In open environments, systems are often
built on third-party software entities, i.e.,
var-ious resources and services, which may serve
multiple applications simultaneously and have
their own interests and decisions Although
these entities are, to certain extent, willing to
collaborate, their autonomy must be respected.
In this case the focus of application
develop-ment has to be moved from computation to
coordination, and traditional predefined
coor-dination mechanisms may not suffice
2 Static environment settings Conventional
soft-ware systems aiming at traditional
environ-ment settings are typically developed on the
assumptions of invariant resources, such as
available CPU, memory, underlying system
calls, network bandwidth, and functionalities
provided by other software systems It would
be feasible to make these assumptions when the
environment was generally controllable Such
assumptions no longer hold for systems that
rely on dynamic service integration over the
open Internet environment These systems are
expected to be situational, i.e., capable of
prob-ing and understandprob-ing their runtime contexts
and scenarios, and dynamically evolvable, i.e.,
capable of adapt their structures and behaviors
at runtime to the changes in the environment
they are situated in and the requirements must
satisfy [3]
3 Predefined behavior Conventional software
development requires that delivered ware products exhibit behaviors exactlyconforming to their predefined specifications.However, in the open Internet environment,autonomous entities in the system maydepend on each other, and thus can exhibitun-designed behaviors or unpredicted effects.Conventional software paradigms have noroom to accommodate, or even exploit, such
soft-emergences.
4 Directly verifiable trustworthiness. Thedependability of conventional software sys-tems can be verified and validated usingwell-defined methods and techniques, such
as testing, proving, and reviewing, providedthat sufficient and reliable information aboutthe software and its development process isavailable This availability of informationimplies that the participants unconditionally
trust each other However, software systems
in open environments may involve much moreparticipants than traditional systems becausethey work in a truly decentralized environ-ment The independent interests of differentparticipants and the dynamic environmentmake the trust relationships among themcomplicated and dynamic In this situation,the dependability of a system should be highlyaffected by the trust relationships among theparticipants
There already exist some related observationsand proposals in the literature, e.g System-of-Systems [17], Open Resource Coalitions [18],and Cyber-Physical Systems [19], but a newsoftware paradigm that systematically addressesthese requirements of the new applicationstyles in open network environment is stillmissing
1.2.2 Methodological Reflections
Generally speaking, software development is amental process of devising a solution for a givenproblem, and it must be able to efficiently execute
Trang 346 1 Internetware: A Shift of Software …
on a given computing platform Observing
soft-ware paradigms and paradigm shifts in the past
decades, we can see a common scheme of
success-ful paradigms—good balance of the forces from
the problem space, the mental space, and the
com-puting space
The emergence of the structured paradigm in
the 1970s was driven by the rapid development
of the computing power and the need to alleviate
software crises At that time, the normalization of
programming methods and language constructs
to “structured” ones satisfied the need to
man-age the complexity of programming in the mental
space with the now-affordable potential
perfor-mance costs in the computing space, which well
balanced the forces from the mental space and the
computing space
The Object-Oriented paradigm, maturing in the
1980s, is still the mainstream practice in today’s
software industry As the scale and complexity of
application problems increased continuously, the
mental process of software development became
more and more complicated with the regular but
somewhat simplistic constructs of the structured
paradigm, in spite of the advances in
modular-ity, separation of concerns, information hidden,
etc The object-oriented paradigm brought a
soft-ware structuring model well corresponding to the
structure of the problem to be solved, which
sig-nificantly eased the mental process Moreover, the
inheritance, polymorphism, and dynamic binding
mechanisms implemented the mental process of
classification and deduction efficiently in
comput-ing platforms Thus a better balance of the forces
from the problem space, the mental space, and the
computing space was achieved again
Based on the balance of forces from the three
spaces, a software paradigm would provide a
col-lection of tangible artifacts that can be directly
used by developers to regulate their requirements,
design their architectures, and implement their
systems Particularly, the following artifacts are
necessary:
1 Structuring model At the kernel of a software
paradigm, there is a pattern about how
sys-tems are constructed from various software
ele-ments, i.e., what the form of computing
compo-nents is, what kind of coordination mechanismsare used to gluing up these components, andwhy desired system behavior can be achievedwith these computing and coordination
2 Mechanism for flexibility As the “soft” part of
computing, software is always expected to beflexible to certain extent There must be somemechanism to support controlled adjustment ofthe behavior and/or the structure of the sys-tem to deal with the inevitable evolution ofrequirements For example, in structured par-adigm there are procedure encapsulation anddata abstraction to facilitate replacements ofprocedures and data representations, whereas
in the object-oriented paradigm there are itance and dynamic binding to support classextensions and polymorphism
inher-3 Dependability assurance As one of the most
complicated types of artifacts, software tems are prone to the loss of dependability Asoftware paradigm has a collection of associ-ated mechanisms to systematically ensure sys-tem dependability Generally, a set of depend-ability properties and metrics are first specified.Then, some validation and verification tech-niques are used to evaluate these properties.Finally, software improvement processes arecarried out accordingly The last two phases areiterated to keep the software system depend-able in a specific context
sys-4 Supporting tools and environments Reifying
the models and mechanisms above, a set of guages, tools, and integrated environments areneeded to help the developers follow the para-digm efficiently and correctly
lan-Collectively, these artifacts should answer thefour fundamental questions in software develop-ment in a coherent manner: WHAT-IS (what is
to be constructed and executed), HOW-TO-DO(how to develop the required software applica-tions including their constituent entities), HOW-TO-RUN (how to run the software applicationsincluding their constituent entities) and HOW-WELL (how well the constructed and executedsoftware applications can perform)
Last but not least, software paradigm shifts
in the last decades showed that a successful
Trang 351.2 The Internetware Paradigm 7
paradigm needs to subsume and be
compati-ble with existing mainstream paradigms, for
social, psychological, economical, and technical
reasons
1.2.3 Architecting Principles
for Internetware
The envisioned Internetware paradigm also needs
to balance the forces from the three spaces
How-ever, the forces are different from those of the
object-oriented paradigm or the structured
par-adigm Specifically, in the problem space, the
trend is to move from solving specific problems
in controlled environments to addressing flexibly
scoped problems with the aim of satisfying
differ-ent users in open environmdiffer-ents The focus is
shift-ing from direct problem solvshift-ing to resource
shar-ing and coordination In the mental space,
mono-lithic view of individual developers or closely
cou-pled developer teams is upgraded to a
service-oriented view of multiple independent developers,
and the focus is shifting from the computing logic
on a specific computer for specific requirements
to the coordination logic on a ubiquitous
com-puting platform with autonomous services
pro-vided for requirements of an open group of users
In the computing space, the computing platform
has evolved from a relatively closed and
control-lable base of standalone or networked computers
to a ubiquitous computing platform in the Internet
environment, and the focus is shifting from
pro-viding computing capabilities to enable and
man-age interactions
In addition to the methodological
considera-tions discussed above, we identify the following
architecting principles for the Internetware:
1 Programmable Coordination As discussed
above, Internetware applications need to be
built on autonomous resources and services
that are provided “AS IS” by independent
owners Mechanisms should be provided to
federate these autonomous software entities
to satisfy specific demands, in a flexible but
disciplined way Thus the coordination aspect
of programming must be explicitly addressed
[20] Beyond providing the communicationchannel between services and adapting theirinterfaces, the mechanism should also supportthe explicit management of the interactionbetween the services, according to the appli-cation logic Furthermore, to adapt to thechanging environment and requirements, thecoordination logic needs to be dynamicallyadaptable, or even evolvable at runtime
2 Situated in open environments Since
Internet-ware application systems are working in anopen, dynamic, and autonomous network envi-ronment, environmental issues are much moredeeply involved in the construction of a sys-tem for Internetware than for conventional par-adigms On the one hand, the system must beable to deal with the changes of the environ-ment at runtime; on the other hand, every par-ticipating component of the system has its ownconcerns on the computing environment andhas to adapt to it accordingly So the Inter-netware paradigm must explicitly support theprobing, understanding, and reconciliation ofenvironment and environment changes Fur-thermore, the autonomy of the participatingcomponents and the locality of the environment
of these components must be respected, whichmeans that simply taking the perceived envi-ronment as system inputs may not work
3 Scalable with multi-level homeostasis To
keep its service satisfactory, the system needs
to adapt to changes of the environment.Thus, software homeostasis mechanisms arenecessary to monitor system behavior anddynamically modify the system to repairabnormalities, or deviations from the expectedbehavior [18] For Internetware, however,the homeostasis mechanism is more than asingle monolithic close-loop control, whichhas limited scalability Since an Internet-ware system is based on the coordinatedcollaboration of a group of autonomouscomponents, there should be a multi-levelmechanism that distributes the responsibility
of homeostasis maintenance to differentlevels (e.g system level, subsystem level,and component level) and different aspects ofsystem (e.g functionality, performance, and
Trang 368 1 Internetware: A Shift of Software …
dependability) according to their capabilities
and responsibilities in the system
4 Dependable with explicit trust management.
To ensure the dependability of a system
in open environments, it is unavoidable to
deal with the complicated trust relationships
among multiple independent participants, such
as primitive service providers, value-adding
service providers, brokers, and end users Trust
management mechanisms, which are
origi-nally proposed for decentralized authorization
and authentication, could be brought to deal
with the complicated trust relationships among
participants Combining trust management
and conventional verification and verification
techniques, a framework for the dependability
assurance of Internetware applications should
be provided
1.2.4 Our Roadmap and Explorations
There is a long way towards a full-fledged
Internetware paradigm To achieve the final goal
of shaping the complete methodology, building
the comprehensive supporting environment and
developing killer applications of Internetware,
we need a stepwise roadmap in which a set
of models, techniques, supporting facilities,
and applications can be gradually developed
following the identified principles (Fig.1.1)
To this end, we first propose an open dination model by extending the conventionalobject-oriented paradigm for a flexible andadaptive structuring technique With the cor-responding middleware, it demonstrates thecoordinated application in open environment andlays the groundwork for Internetware research
coor-A succeeding environment-driven model sizes the concerns about the coordinated softwaresystems and the environment where they actuallysituate in and adapt to Environment facilities arealso developed to sense, monitor, and manage theenvironment Cooperating with the mechanismsprovided in the coordination middleware, theenvironment-interacting adaptive software sys-tems can thus be realized The dependability ofthe system is finally assured with a framework,which has certain trust management models,mechanisms, and facilitates to turn the systemsinto trusted ones Although the three levels ofthe work are still preliminary, we hope they canillustrate our vision of the Internetware
synthe-1.3 Open Coordination Model
1.3.1 Coordination Model
for Internetware
The construction of Internetware software tems needs to primarily coordinate the existing
sys-Fig 1.1 Our roadmap and
efforts toward Internetware Open CoordinaƟon
Model
Environment DrivenModelDependability
CoordinaƟon Middleware
Environment FaciliƟes
Trust Management
Coordinated ApplicaƟons
AdapƟve ApplicaƟons
Trusted ApplicaƟons
InternetwareMethodology
SupporƟng Environment
Killer ApplicaƟons
Trang 371.3 Open Coordination Model 9
software entities and resources over the Internet
By the term of coordination model, it basically
refers to the specification of inter-relationships
among the computing entities and the regulations
between their interaction [21] To follow the
prin-ciples and meet the challenges discussed in the
previous section, a coordination model for
Inter-netware is required to be in a position to
accom-modate to the high dynamism in the systems and
facilitate the possible changes, either foreseeable
or unforeseeable, to take place At the same time,
it should provide the developers and users a good
understanding for the systems during the
life-cycle of the systems By such means, the
com-plexities in the systems can be well controlled
There have been various coordination models
proposed and they are briefly categorized as
data-driven and control-driven [20] Although
the data-driven models, which usually advocate
some shared data spaces, have be argued to be
fit for the open systems [22], they have inherent
short-comings, such as their insufficiency in
isolating the computing and coordinating logic
and indigestibility in specifying the system
structure In the models of the latter category,
software entities, or say components, have well
defined interfaces The coordination is driven by
propagating the state changes among components
with some interacting mechanisms
The object-oriented programming model
introduces the classic control-driven coordination
schema with the form of “O.m()” This object
granularity model is also extended into the similar
ones for the components [20,23] and services
[24] However, the core of the coordination is
always reserved, which is to establish a fixed
linkage between the objects with specific
mes-saging facility It is not difficult to see that this
schema fits itself quite well in a closed computing
environment with idealized assumptions, as
argued before As long as the computing entities
are all under the control, the system can be
modeled by this means and executed with no
problem
Nevertheless, the mechanism like “O.m()”
consolidates the original coordination motivation
and environment assumption [25] Once thesefactors change, which are assumed to happenrarely, major re-organization of the coordinationcan be caused However, the open environment
of Internet breaks down those assumptions Thedynamism lying in all aspects of the systemsituated in such an environment needs to be fullyconsidered into the construction of the system
so that the changes can be effectively handled.Structurally, the inter-relationships of the entitieswithin coordination could be more complicatedthan referring to each other directly and fixedly,and these relationships have to be determined
on the runtime factors, such as availability andprovision status of the software entities And, theonefold interaction mechanism is also required
to be enriched Effective and dependable tions should be achieved to respect the dynamicnetwork environment where the software entitiesare situated and the autonomous interactingschema that they prefer
OO coordination mechanism with flexibilityand adaptability, such as polymorphism [26]and some advanced communicating techniques[27,28], respectively But ideally, the systems thatare hosted in an open environment still need to
be modeled with a unified model From the study
OO schema, the model should take an abstractand indirect way to shape the coordinating sys-tems and organize the interacting entities Thusthe changes can be applied at some relativelyhigh level of the model to avoid the massivemodifications in the low level relations Also, theinteractions should also be modeled explicitly
to enable the customization on the runtimecommunication among the coordinated entities.The actual execution of the system should bedetermined at runtime by investigating the onsiteconfiguration of the coordination Also, there areother conceivable advanced requirements on the
Trang 3810 1 Internetware: A Shift of Software …
coordination, such as the model level analysis
and evaluation for the system non-functional
qualities
Overall, the coordination model as a kernel
of the Internetware systems should carry enough
information to put the system into execution,
and more importantly, to get the adaptation of
the system into effective operation Beyond
the conceptional modeling, a coordination
sup-porting platform also needs the mechanisms to
realize the potential adaptability brought by the
model as a whole structuring of Internetware
systems
1.3.2 A Software Architecture Based
Approach
Toward an effective open coordination model for
the structuring of Internetware systems discussed
in the previous section, we proposed a modeling
approach based on software architecture To put
the coordination into execution, an intrinsic model
implementation is introduced and adaptation
facil-itates are also advised
Coordination Model
Software architecture “involves the description
of elements from which systems are built,
interactions among those elements, patterns that
guide their composition, and constraints on these
patterns” [29] It is originally viewed as design
specification and recently also employed in the
research of software coordination [30–33] With
software architecture, the system components are
organized and coordinated with connectors as
inter joints It offers explicit and programmable
coordination logic Especially, the connectors
are treated as first class programming concepts
This allows connectors to be reconfigured
dynamically to reflect coordination changes in
addition to component adaptations Software
architecture supports the early analysis of system
non-functional properties, which is one of its
motivating benefits Also there are various formal
models and verification tools proposed to help the
ensuring of architectural correctness Software
architecture embodies essential information thatshould be held by the implementation to supportand regulate future adaptation and evolution.These benefits make software architectureaccepted as a relative ideal model for softwarecoordination
Implementation
To implement the coordination with the model
of software architecture, techniques such asarchitecture refinement and explicit architecturemaintenance, to name a few, are developed.These existing approaches share the issuethat difficult and ad-hoc efforts are needed tomaintain the consistency between a softwarearchitecture specification and the working systemimplementation
Thereby, we propose an intrinsic approach
to actually implement the coordination thatsoftware architecture models The intrinsicmechanism fully integrates coordination into theprogramming model The software architecture
is encoded into some data structure and explicitlyreified as a first class object, namely an archi-tecture object, in the final implementation Therunning components are glued with this object
by delegating the runtime interpretation of objectreferences and associated method invocations inthe form of “O.m()” to the architecture object Inother words, the references and invocations are
“functions” over the current software architectureconfiguration By this means, the coordinationconcerns are separated from interacting compo-nent objects The final coordination being carriedout complies with the specified model of softwarearchitecture as the reified software architecture(which is implementation And any change of thearchitecture object, in both the components andconnectors, will immediately affect the runtimecoordination process
Adaptations
Based on the intrinsic coordination tation, it is natural to realize dynamic systemadaptation as the reconfiguration behavior of thearchitecture object Above the primitive adap-
Trang 39implemen-1.3 Open Coordination Model 11
tation actions, e.g., component add/remove and
connector replacement, more sophisticated ones
can be defined as the methods of the
architec-ture object, by which means the concrete
adap-tion process is specified for that type of the
archi-tecture The implementation of these methods is
mainly changing the topology with the facilities
provided in base architecture class
Also, there could be some system
reconfigura-tion requirements gradually discovered after the
system was put into operation Common solutions
for these unanticipated reconfigurations require
a system restart However, the stop of service
could bring a high cost in some circumstance,
esp when there were valuable data not persistently
stored Our approach also provides a reasonable
support for unanticipated dynamic
reconfigura-tions A new subclass of the original architecture
class should be defined to implement new
recon-figuration behavior The consistency between the
new and old architectures is ensured with the type
consistence checking against the classes defining
those architectures
Summarily, the proposed software
architec-ture based coordination model gives a unified
approach to specify the interrelation of the
com-ponents as well the interactions among them
The featured intrinsic implementation with the
corresponding adaptation mechanisms provides
the basis of the flexible and adaptable system
structuring technique for Internetware systems
Besides, we also introduce an architecture
check-ing technique based on graph-grammar [34] A
coordination middleware is also designed and
implemented with some running cases All these
the works serve as the first step toward
Internet-ware
1.4 Environment-Driven Model
1.4.1 Structure and Dynamics
Internetware application systems run in the
open, dynamic, and uncertain environment
For such a system, the runtime adaptation
to frequent changes in the environment and
users’ requirements must be supported as an
indispensable feature rather than handled asexceptions Traditional software systems running
in the principally closed, static, and controllableenvironment usually have their processing of theenvironmental information implicitly consoli-dated into the application logic Such an approachcannot effectively cope with the dynamics of theopen environment
To adapt themselves at runtime in anenvironment-driven manner, Internetware appli-cation systems need to process the environmentinformation explicitly and separately Basicallythe environment context needs to be explicitlycollected, understood, and utilized However,
if we monolithically divide the entire systeminto coordination of constituent componentsand explicit environment processing facilities,scalability of the system will be quite limited
We cannot effectively cope with the complexity
of implementing, deploying, and operatingInternetware application systems in the openenvironment This is mainly because Internetwaresystems are the coalition of autonomous services
in a large and fully-distributed environment.Such systems are commonly multi-level onesconstructed from subsystems, and may have thefractal or self-similar characteristics Differentconstituent components of the system have theirown concerns of the computing environment andhave to adapt to the environment independently.Take the traffic control system as an example
In the district level, software entities for collectingand disseminating traffic information coordinatewith each other to inform the drivers of the trafficinformation and instruct them to avoid the traf-fic jam in each district of the city Traffic controlsystems in the district level coordinate with eachother and form the traffic control system in the citylevel Such system can further coordinate to formsystems in upper levels of larger scale The trafficcontrol system in each level has similar structure.Since the sub-systems in each level has theirown concerns of the environment context, theenvironment processing facilities for Internetwareapplication systems cannot be a monolithic soft-ware entity It must also have the fractal charac-teristics, in accordance with the multi-level coor-dination of the Internetware application systems
Trang 4012 1 Internetware: A Shift of Software …
System Structure
One constituent part of an Internetware
applica-tion system consists of three parts:
• Goal-driven adaptation logic Goal of the users
specifies expected behavior of the coalition
in given situations The goal-driven
adapta-tion logic decides how to change the
coordina-tion in different situacoordina-tions A unified semantic
framework for users’ goal and the environment
processing facilities is required for the logic
reasoning Customizable adaptation rules and
reification mechanisms are also necessary for
realizing decisions of the adaption logic
• Open coordination subsystem The open
coor-dination subsystem is responsible for the
busi-ness logic of the application It also supports
the dynamic reconfiguration of itself, in order
to smoothly carry out the adaptation, as
dis-cussed in Sect.1.3
• Environment processing facilities Expected
behavior of the coalition corresponds to
situ-ation of the environment, which necessitates
the explicit environment processing facilities
Such facilities are in charge of collecting,
understanding, and utilizing the environmentinformation They transform raw environmentdata to high-level representations of situationsfor the coalition
The structure of the environment processingfacilities has the fractal or self-similar character-istics, as shown in Fig.1.2 For a specific part ofthe system situated in the environment, it has theenvironment-driven software structure discussedabove Subsystems further coordinate to form sys-tems in a higher level, and the coordination in eachlevel has similar software structure We argue thatsuch a fractal structure of environment processingfacilities is a promising approach to achieve sys-tem scalability and cope with system complexityissues for Internetware application systems in theopen environment
Homeostasis
From the behavioral perspective, an Internetwareapplication system can be viewed as a homeosta-sis of the coalition among services Homeostasis isthe propensity of a system to automatically restoreits desired equilibrium state when changes in the
Open Environment Environment
Handling FaciliƟes Open CoordinaƟon Subsystem
Goal-driven AdaptaƟon Logic