Self-adaptive Distributed Software Systems

Similar documents
SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

RESOLVING APPLICATION DEVELOPMENT ISSUES USING SOA Y. KIRAN KUMAR 1, G.SUJATHA 2, G. JAGADEESH KUMAR 3

Mark Bailey Senior System Consultant Security, Government, & Infrastructure 2008 Intergraph Corporation

The SWRLing Future of OWL. Mark Greaves DARPA / IXO

21/01/2013. Announcements. IBM s Complexity Solution. What is Autonomic Computing? Reading assignments

Service Oriented Architecture. Reference MIDDLEWARE & ENTERPRISE INTEGRATION TECHNOLOGIES By

Evaluating Enterprise Architectures through Executable Models

IBM ICE (Innovation Centre for Education) Welcome to: Unit 1 Overview of delivery models in Cloud Computing. Copyright IBM Corporation

Chapter 16 Software Reuse. Chapter 16 Software reuse

Software Engineering & Architecture

Computational Complexity and Agent-based Software Engineering

Autonomous Control for Generation IV Nuclear Plants

Cloud Computing Lectures SOA

An Autonomic Approach to Extend the Business Value of a Legacy Order Fulfillment System

Mapping Service-Orientation to TOGAF 9 Part IV: Applying Service-Orientation to TOGAF s Service Contracts

Hybrid Model: Overview

A Maintainability Assessment Model for Service-Oriented Systems

Chapter 16 Software Reuse. Chapter 16 Software reuse

Autonomy Requirements for Smart Vehicles

A couple of M2M Research Activities in Telenor - A distributed M2M Service Platform. Stein Svaet, June 4, 2008

2008 IEEE International Conference on Web Services (ICWS) SERVICES COMPUTING. A New Thinking Style of Education and Engineering. September 25, 2008

SERVICE ORIENTED ARCHITECTURE (SOA) AND SPECIALIZED MESSAGING PATTERNS ORIENTED MIDDLEWARE WITH MULTIPLE TYPES OF SOA APPLICATIONS

SOA BASED INTEGRATION INFORMATION SERVICE PLATFORM STRATEGY IN RURAL INFORMATIZATION

Implementation of Service-Oriented Architecture for an Integrated Simulation, Training and Experimental Environment

Architectural Design. Objectives

Service Oriented Architecture for Business Intelligence

Type-based Validation and Management of Business Service Interoperability

Change is constant. Obstacle to RE: Why requirement study? Limitation of the designers Different knowledge domains Not expertise Ubiquitous nature

Architecture Approach for Mobile Service Security

Self-Adaptation: MAPE-K and Control Theory

IN the inaugural issue of the IEEE Transactions on Services Computing (TSC), I used SOA, service-oriented consulting

Service-oriented architecture (SOA)

Chapter 6: Software Evolution and Reengineering

Self-Architecting Software SYstems (SASSY) from QoS-Annotated Activity Models

Oracle Supply Chain Planning Cloud. Supply Chain Planning Cloud Enhancements Integrate with E-Business Suite

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Chapter 2 Software Product Lifecycles: What Can Be Optimized and How?

Work Plan and IV&V Methodology

The South African EA Forum

Organising Requirements

Model-based Architectural Framework for Rapid Business Transformation of Global Operations

Decentralized software development Pitfalls and challenges A software engineering viewpoint

SOA Concepts. Service Oriented Architecture Johns-Hopkins University

Research on Architecture and Key Technology for Service-Oriented Workflow Performance Analysis

Software Quality Metrics for Aspect-Oriented Programming

Flexible Data-Centric UAV Platform Eases Mission Adaptation

Architectural Considerations for Validation of Run-Time Application Control Capabilities for Real-Time Systems

Agent-Based System Architecture and Organization

Chapter 15. Supporting Practices Service Profiles 15.2 Vocabularies 15.3 Organizational Roles. SOA Principles of Service Design

Autonomic Computing: Standards for Self-Managing Systems

Model-Driven Development for Safety-Critical Software Components

Digital & Technology Solutions Specialist Integrated Degree Apprenticeship (Level 7)

Service Oriented Architecture

Enterprise Architecture Development

Requirements Organisation, Analysis. Software Requirements & Project Management CITS3220

INTEGRATION OF AUTONOMOUS SYSTEM COMPONENTS USING THE JAUS ARCHITECTURE

SOFTWARE SYSTEM ENGINEERING: A TUTORIAL

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Boost Your Skills with On-Site Courses Tailored to Your Needs

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

PRINCIPLES OF SERVICE ORIENTATION

Service-Oriented Architecture and its Implications for Software Maintenance and Evolution

Integrated Observation and Modeling Techniques to Support Adaptation and Evolution of Software Systems

Requirement Engineering. L3 The requirement study. Change is constant. Communication problem? People are hard to understand!

SOA-Based Next Generation OSS Architecture

Slide 1. Slide 2. Slide 3. Objectives. Who Needs Interoperability? Component 9 Networking and Health Information Exchange

The evolution of Integrated Engineering: SIMATIC PCS 7, SIMIT and COMOS (PCS 7 Plant Automation Accelerator)

Software Design. A software design is a precise description of a system, using variety of different perspective.

Beyond IPPD: Distributed collaboration in a Systems-of-Systems (SoS)- context

Development of AUTOSAR Software Components with Model-Based Design

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Distributed Information Organization and Management Framework for Regulation Compliance

Chapter 1 Web Services Basics

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Soa Readiness Assessment, a New Method

Why Document the Architecture? EEC 421/521: Software Engineering. Design Process. Thinking About Design. Stakeholder Communication.

Managing Information Technology 6 th Edition

DETAILED COURSE AGENDA

The WW Technology Group

A Quality Evaluation Technique of RFID Middleware in Ubiquitous Computing

Modeling Adaptable Business Service for Enterprise Collaboration

A Semantic Service Oriented Architecture for Enterprise Application Integration

JOURNAL OF OBJECT TECHNOLOGY

Distributed Systems Current Trends in Distributed Systems

Core Design Requirements At the start of a project, it is important to specify those parameters and properties that:

WORKSHOP ON RECRUITMENT COSTS SURVEY

Basics of Software Engineering. Carmen Navarrete

Computer Science Technical Report. Modeling Approach Comparison Criteria for MODELS 2011 CMA Workshop

Service-Oriented Computing

Software Platform Ecosystems

Enhancing Autonomy with Trust: Pilot license to the autonomy Presented by S. Bhattacharyya

Our Objectives Today. Stats Canada to insert final outline # 2

Complex Systems of Systems (CSOS) : Software Benefits,Risks,and Strategies

IT6801 / Service Layers/ A.Kowshika SERVICE LAYERS

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Service-oriented Architectures (SOA) - From Business to IT -

A Conceptual Framework for Architecture Alignment Guidelines. Project GRAAL WP1 Whitepaper

1. Comparing Service Characteristics. (by Mark Richards) 2. Analysis and Modeling with Web Services and Microservices(by Thomas Erl)

WEB SERVICES AND XML,M.INDUMATHY AP/IT YEAR & SEM:IV & VII UNIT-II

SOA Principles of Service Design

Transcription:

Self-adaptive Distributed Software Systems INF 5360 spring 2015 lecturer: Amir Taherkordi INF5360/9360 spring 2015: overview self-adaptive software systems 1

Overview Ø Preliminary definitions Ø Motivation and need for adaptive systems Ø Self-adaptive systems Ø Adaptation Mechanisms Ø Research Challenges Ø Summary software systems 2

Preliminaries Ø Definition Self-adaptive software modifies its own behavior in response to changes in its operating environment [P. Oreizy et al, 1999] Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates that it is not accomplishing what the software is intended to do, or when better functionality or performance is possible. [DARPA BAA] Ø Assumptions The software has multiple ways of accomplishing its purpose The software has enough knowledge of its own construction The software has the capability to make effective changes at runtime software systems 3

Motivation Ø Mobility and ubiquitous computing, Internet of Things GSM /UMTS Car computer BT/ WLA N The Internet Home PC When handheld devices are carried by users moving around in ubiquitous computing environments ü devices/sensors come and go ü network connections come and go and QoS varies, and therefore ü services available for use come and go ü service quality varies ü computing resources and power are limited software systems 4

The need for self-adaptation Ø In such environments, applications and users will benefit a lot from context awareness and adaptivity Adapt application to resource situation (battery, bandwidth, memory) Example: Dynamically adapt media quality (e.g., video) to available bandwidth Adapt application to availability of devices and services in the environment (ubiquitous services) Ø The demand for applications exhibiting such properties is accelerating Ubiquitous and Mobile computing Service oriented computing Sensor networks Internet of Things Ø Challenge for users, application and systems developers and managers software systems 5

Self-adaptive software systems Ø Automatic adaptation requires strong interplay between system architectures and software architectures how to organize the components of a distributed system such that monitoring and adjustments can be done? where to execute the processes that handle the adaptation? Ø A common approach is to organize distributed systems as feed-back control systems allowing automatic adaptations to changes Known as autonomic computing or self-* systems self-*: capturing automatic adaptation in a variety of ways self-managing, self-healing, self-configuring, self-optimizing, etc software systems 6

The adaptation loop according to [Salehie, Tahvildari, 2009] Symptoms Detecting Requests Deciding Decisions Monitoring Acting Events sensors effectors Actions Adaptable software Process Data flow Interface software systems 7

Supporting disciplines Game theory Fuzzy logic Rules, policies Symptoms database Inference Planning Decision theory Risk analysis Utility theory Instrumentation Detecting Deciding Inform users and adminstrators User context Environment sensors Monitoring sensors effectors Acting Alter system configuration Manipulate effectors software systems 8

Internal vs external approach for building self-adaptive software Ø Internal: intertwines application and adaptation logic Ø External: an adaptation engines external to the adaptable application contains the adaptation logic sensing Self-adaptive software effecting Adaptation engine sensing effecting Adaptable software Self-adaptive software software systems 9

Decentralized Control in Self- Adaptive Systems Ø Self-adaptive software often contains multiple adaptation control loops to handle different concerns (selfrepair, self-optimization) distinguish between local and global adaptation decentralize control in general improve scalability Ø Research challenges Ø How to synchronize and coordinate multiple control loops? Ø How to handle conflicts in decision making between different loops? effecting Lower level adaptation control loop Higher level adaptation control loop effecting sensing Lower level adaptation control loop Hierarchical control software systems 10 sensing

Hierarchy of self-* properties General level Self- adaptiveness Major level Self-configuring Self-healing Self-optimizing Self-protecting Primitive level Self-awareness Context-awareness After: [Salehie, Tahvildari, 2009] software systems 11

Some adaptation mechanisms Ø Parameter tuning modification of variables that determine program behavior (tuning parameters, strategy selection) Ø Compositional adaptation the exchange of algorithmic or structural parts of the system with ones that improve a program s fit to its current environment enables adoption of new algorithms for addressing concerns unforeseen during original design and construction aspect weaving reflection component-based / service-based add, remove, replace, recompose, redeploy, tune (through parameters) software systems 12

Compositional Adaptation: Enabling Technologies Service! Oriented Design! software systems 13

Separation of Concerns and Aspect weaving Ø Aspect oriented programm(aop) widely used approach for handling cross cutting concerns in modularized software cross cutting concerns spans across many modules (QoS, security, fault tolerance) AOP enables separation of crosscutting concerns into aspects aspects are developed separately and woven into the system during compile time (more recent approaches allows weaving during runtime) pointcuts define locations in the program where aspect code can be woven software systems 14

Reflection Ø The ability of a system to reason about itself, and possibly, alter its own behaviour Ø Introspection: the ability to observe its own behavior Ø Intercession: enables a system or application to act on observation from introspection and modify its own behaviour Ø Base level: the system itself (code) Ø Meta-level: self-representation (model) of the system Ø Meta-object protocol (MOP): interface that enables systematic introspection and intersession software systems 15

Component based design Ø Perspective: A software system is a network of concurrent components bound together by connectors Ø Focus on coarse-grained components and their interactions, and not on the source code level Ø Allows run-time rearrangement and replacement of components and connectors software systems 16

Service-based design Ø Perspective: A software system is a composition of network-accessible loosely coupled (software) services Ø Referred to as Service Oriented Architecture (SOA), cf Web services Ø Allows run-time rebinding and recompostion of services Ø Ubiquitous world of services is characterized by a continuous evolution: Providers may modify the exported services, New services may become available, Existing services may be discontinued by their providers or disappear due to software systems mobility 17

Classification for Software and Service Composition Classification criteria: When to compose? software systems 18

Where to compose? Ø Middleware layers Adaptable common services Intercept/redirect function calls Open, component based middleware, reflection Aspect middleware, reflection Ø Application code Domain-specific languages (entagled code) aspect weaving, composition filters component-based, reflection, models@runtime software systems 19

Research challenges (1/4) (Salehie, 2009) Ø Engineering Requirements analysis How to capture stakeholders expectations? How to map from expectations to adaptation requirements and goals to be used at runtime? Design issues How to design self-adaptive software to fullfil adaptation requirements? Which architecture styles? Which component models? How to reengineer legacy systems into adaptive ones? Implementation languages, tools, and frameworks Extending existing programming languages or defining new adaptation languages? Adding, removing and modifying software entities at runtime (compositional adaptation) Testing and assurance Validation of adaptive behaviour Evaluation and quality of adaptation Criteria and metrics for self-adaptive software (safety, security, cost...), comparing adaptation solutions software systems 20

Research challenges (2/4) (Salehie, 2009) Ø Self-* properties Individual self-* properties self-protecting and self-healing needs more attention Building multi-property self-adaptive software coordinating and orchestrating more than one self-* property in a single or multiple adaptation loops software systems 21

Research challenges (3/4) (Salehie, 2009) Ø Adaptation process Monitoring challenges reduce cost/load of sensors make monitoring process adaptive: only load sensors that are needed and unload when not needed Detecting challenges deciding which behaviours/states that are unhealthy and that requires adaptation to be considered Deciding challenges dynamic adapation policies finding approximate or suboptimal solutions (scalability/effciendcy) dealing with uncertainty and incompleteness of events/information from self and context correlating local and global decision making scalability of decision making Acting challenges satisfy constraints, safety/integrity and fault-tolerance software systems 22

Research challenges (4/4) (Salehie, 2009) Ø Interactions Policy management Policy translation: translate high-level goals into lower level/ local ones understandable by the system elements Dynamic policies and goals policies and goals that can be changed during the operating phase Building trust Self-adaptive system are harder to trace for users and stakeholders Interoperability Coordinating and orchestrating self-adaptation behaviour of several subsystems ( systems of systems ) software systems 23

Summary Ø The need for adaptation is motivated by continuously changing environment and user needs Ø Complexity motivates the need for self-adaptation Ø Organizing distributed systems as feed-back control systems allow automatic adaptations to changes Ø Compositional adaptation is the main enabling technology Ø Research challenges (Salehie): in the areas of engineering, self-* properties, interactions, adaptation process software systems 24

Literature References Ø Distributed Systems Principles and Design, A. Tanenbaum, M. Van Steen, Prentice-Hall, 2007 (chap 2.2, 2.3) Ø Composing Adaptive Software, P. K. McKinley et al, IEEE Computer, 2004. Ø Self-Adaptive Software: Landscape and Research Challenges, M. Salehie, L. Tahvildari, ACM TAAS, 2009 Ø MOSES: A Framework for QoS Driven Runtime Adaptation of Service-Oriented Systems, V. Cardellini, E. Casalicchio, V. Grassi, S. Iannucci, F.L. Presti, R. Mirandola, ACM ToSE, 38(5), Oct. 2012 software systems 25