Autonomic Systems Autonomic Systems Autonomic : adaptive : adaptive - - PowerPoint PPT Presentation

autonomic systems autonomic systems
SMART_READER_LITE
LIVE PREVIEW

Autonomic Systems Autonomic Systems Autonomic : adaptive : adaptive - - PowerPoint PPT Presentation

Autonomic Systems Autonomic Systems Autonomic : adaptive : adaptive Autonomic Self Self- -healing healing: : cluster systems via node restart cluster systems via node restart Self Self- -optimizing: optimizing:


slide-1
SLIDE 1

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 1

Autonomic Systems Autonomic Systems

  • Autonomic

Autonomic: adaptive : adaptive

Self

Self-

  • healing

healing: :

cluster systems via node restart

cluster systems via node restart

Self

Self-

  • optimizing:
  • ptimizing:

variable encoding schemes for web audio streaming

variable encoding schemes for web audio streaming services services

Self

Self-

  • regulating

regulating : :

apache web server periodically kills child processes

apache web server periodically kills child processes

  • Maintenance

Maintenance: :

expensive

expensive, time , time-

  • consuming

consuming

I want my availability, but I won’t do it myself I want my availability, but I won’t do it myself

  • Automated maintenance

Automated maintenance: :

Cheaper

Cheaper

Quicker response than human

Quicker response than human

24/7 watch, can afford to “forget and leave running”

24/7 watch, can afford to “forget and leave running”

slide-2
SLIDE 2

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 2

Items for discussion Items for discussion

  • Can large

Can large-

  • scale, distributed applications be self

scale, distributed applications be self-

  • healing, self

healing, self-

  • regulating, self

regulating, self-

  • optimizing?
  • ptimizing?
  • Important issues with respect to automated

Important issues with respect to automated maintenance of large maintenance of large-

  • scale, software systems

scale, software systems

Harder to build. Focus on reusable components

Harder to build. Focus on reusable components

Specify maintenance operations during development

Specify maintenance operations during development

Considering maintenance as runtime adaptations

Considering maintenance as runtime adaptations

Gracefully handle unfamiliar, exceptional conditions

Gracefully handle unfamiliar, exceptional conditions

  • Proposal: design methodology

Proposal: design methodology

Separation of concerns:

Separation of concerns:

Application code vs.

Application code vs. adaptation mechanisms {decision logic, implementation} adaptation mechanisms {decision logic, implementation}

Introspection:

Introspection:

Communicate runtime data to decision logic

Communicate runtime data to decision logic

Intercession:

Intercession:

Transport reconfiguration code from decision logic

Transport reconfiguration code from decision logic

slide-3
SLIDE 3

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 3

Build large Build large-

  • scale systems

scale systems with reusable components with reusable components

  • Inherent problem with the development of large

Inherent problem with the development of large-

  • scale systems

scale systems

Hugely complex, unwise for one group of developers

Hugely complex, unwise for one group of developers to create the whole thing from scratch to create the whole thing from scratch

Outsource sub

Outsource sub-

  • projects to experts

projects to experts vs.

  • vs. license their

license their technology technology

Integrate with COTS components:

Integrate with COTS components:

Cheaper than to re

Cheaper than to re-implement them implement them

  • Software engineering and practicality reasons

Software engineering and practicality reasons

component has already been implemented

component has already been implemented

available immediately

available immediately

no duplication of effort

no duplication of effort

3 types of software components:

3 types of software components:

COTS

COTS

In

In-house house

One

One-use, specific use, specific-purpose component purpose component

slide-4
SLIDE 4

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 4

Component Component-

  • based

based Software Engineering Software Engineering

  • Software component

Software component: :

unit of software that conforms to a component model

unit of software that conforms to a component model

e.g. COM+, JavaBeans

e.g. COM+, JavaBeans

Defines standards:

Defines standards:

Composition: how components are composed together

Composition: how components are composed together

Interaction: IDL description of interface elements

Interaction: IDL description of interface elements

  • Two stages of CBSE

Two stages of CBSE

1.

  • 1. Component development

Component development

No feedback from customer

No feedback from customer

No waterfall model with iterations

No waterfall model with iterations

Exhibit openness, adaptability,

Exhibit openness, adaptability,

2.

  • 2. Integrating component into applications

Integrating component into applications

Requirements analysis

Requirements analysis

Choose component with required functionality

Choose component with required functionality

Take it or leave it ... Take it or leave it ...

but then go on looking for another implementation but then go on looking for another implementation

slide-5
SLIDE 5

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 5

Component Component-

  • based

based Software Engineering Software Engineering – – ii ii

  • Imperfect match in functionality and requirements

Imperfect match in functionality and requirements

“Fixed” contract

“Fixed” contract

No means for component evolution

No means for component evolution

Active Interfaces [12]

Active Interfaces [12]

Adaptation interface. Open policies

Adaptation interface. Open policies

Static adaptation of component functionality

Static adaptation of component functionality

Interface Incompatibilities

Interface Incompatibilities

Granularity of operations and data

Granularity of operations and data-types, interaction types, interaction mechanisms, implementation languages mechanisms, implementation languages

Component wrappers

Component wrappers

Connectors [14]

Connectors [14]

SWIG, JNI,

SWIG, JNI, popen(..) popen(..), , system(..) system(..)

  • Considerations

Considerations

Application builder is

Application builder is not not going to re going to re-

  • implement the

implement the component component

Want to maintain encapsulation, information hiding

Want to maintain encapsulation, information hiding

slide-6
SLIDE 6

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 6

Items for discussion Items for discussion

  • Can large

Can large-

  • scale, distributed applications be self

scale, distributed applications be self-

  • healing, self

healing, self-

  • regulating, self

regulating, self-

  • optimizing?
  • ptimizing?
  • Important issues with respect to automated

Important issues with respect to automated maintenance of large maintenance of large-

  • scale, software systems

scale, software systems

Harder to build. Focus on reusable components

Harder to build. Focus on reusable components

Specify maintenance operations during development

Specify maintenance operations during development

Considering maintenance as runtime adaptations

Considering maintenance as runtime adaptations

Gracefully handle unfamiliar, exceptional conditions

Gracefully handle unfamiliar, exceptional conditions

  • Proposal: design methodology

Proposal: design methodology

Separation of concerns:

Separation of concerns:

Application code vs.

Application code vs. adaptation mechanisms {decision logic, implementation} adaptation mechanisms {decision logic, implementation}

Introspection:

Introspection:

Communicate runtime data to decision logic

Communicate runtime data to decision logic

Intercession:

Intercession:

Transport reconfiguration code from decision logic

Transport reconfiguration code from decision logic

slide-7
SLIDE 7

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 7

Static modeling of possible Static modeling of possible runtime reconfigurations runtime reconfigurations

  • Runtime adaptation of software

Runtime adaptation of software

Ever

Ever-

  • changing resource availability

changing resource availability

Dynamic execution environment

Dynamic execution environment

  • Separation of concerns

Separation of concerns: :

application logic vs. adaptation

application logic vs. adaptation

  • Granularity of adaptation

Granularity of adaptation

Micro

Micro-

  • level:

level:

component developer

component developer-enabled mechanism, setting enabled mechanism, setting switches via Active Interfaces [12, 13, 16] switches via Active Interfaces [12, 13, 16]

Medium

Medium-

  • level:

level:

change how components interact with the system,

change how components interact with the system, modify the interface [13, 14] modify the interface [13, 14]

Macro

Macro-

  • level:

level:

phase in/out (groups of) components as part of the

phase in/out (groups of) components as part of the dynamic adaptation [13, 14] dynamic adaptation [13, 14]

slide-8
SLIDE 8

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 8

Static modeling of possible Static modeling of possible runtime reconfigurations runtime reconfigurations – – ii ii

  • Self

Self-

  • contained adaptation within component

contained adaptation within component

Automatic generation of adaptation code

Automatic generation of adaptation code

Compiler and language support for high

Compiler and language support for high-level level specification of adaptation mechanism [13] specification of adaptation mechanism [13]

Pre

Pre-

  • packaged adaptation mechanism [16]

packaged adaptation mechanism [16]

  • Automatic integration of new component

Automatic integration of new component versions versions

Configuration management [15]

Configuration management [15]

Installations, updates, un

Installations, updates, un-installations installations

Tentative use of new versions [14]

Tentative use of new versions [14]

Transparent testing in deployed environment

Transparent testing in deployed environment

slide-9
SLIDE 9

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 9

Items for discussion Items for discussion

  • Can large

Can large-

  • scale, distributed applications be self

scale, distributed applications be self-

  • healing, self

healing, self-

  • regulating, self

regulating, self-

  • optimizing?
  • ptimizing?
  • Important issues with respect to automated

Important issues with respect to automated maintenance of large maintenance of large-

  • scale, software systems

scale, software systems

Harder to build. Focus on reusable components

Harder to build. Focus on reusable components

Specify maintenance operations during development

Specify maintenance operations during development

Considering maintenance as runtime adaptations

Considering maintenance as runtime adaptations

Gracefully handle unfamiliar, exceptional conditions

Gracefully handle unfamiliar, exceptional conditions

  • Proposal: design methodology

Proposal: design methodology

Separation of concerns:

Separation of concerns:

Application code vs.

Application code vs. adaptation mechanisms {decision logic, implementation} adaptation mechanisms {decision logic, implementation}

Introspection:

Introspection:

Communicate runtime data to decision logic

Communicate runtime data to decision logic

Intercession:

Intercession:

Transport reconfiguration code from decision logic

Transport reconfiguration code from decision logic

slide-10
SLIDE 10

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 10 10

Writing code to Writing code to implement dynamic adaptations implement dynamic adaptations

  • Hard to dynamically adapt components

Hard to dynamically adapt components

Lack proper understanding of the internals

Lack proper understanding of the internals

Execute (un) trusted, unfamiliar code, with no idea

Execute (un) trusted, unfamiliar code, with no idea how to fix if things fail how to fix if things fail

  • Recognize

Recognize the need to adapt the need to adapt

  • Utilize the available runtime mechanisms

Utilize the available runtime mechanisms

Pre

Pre-

  • existing reconfiguration mechanisms

existing reconfiguration mechanisms

Dispatch directives to carry out local micro

Dispatch directives to carry out local micro-adaptations adaptations

Use adaptability of middleware to effectively carry out

Use adaptability of middleware to effectively carry out medium medium-

  • and macro

and macro-

  • scale adaptations

scale adaptations

Architectural design

Architectural design-

  • driven adapted, guided by

driven adapted, guided by component component-

  • interaction specifications

interaction specifications

The inability to reconfigure when required, is a form of failure The inability to reconfigure when required, is a form of failure

slide-11
SLIDE 11

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 11 11

Items for discussion Items for discussion

  • Can large

Can large-

  • scale, distributed applications be self

scale, distributed applications be self-

  • healing, self

healing, self-

  • regulating, self

regulating, self-

  • optimizing?
  • ptimizing?
  • Important issues with respect to automated

Important issues with respect to automated maintenance of large maintenance of large-

  • scale, software systems

scale, software systems

Harder to build. Focus on reusable components

Harder to build. Focus on reusable components

Specify maintenance operations during development

Specify maintenance operations during development

Considering maintenance as runtime adaptations

Considering maintenance as runtime adaptations

Gracefully handle unfamiliar, exceptional conditions

Gracefully handle unfamiliar, exceptional conditions

  • Proposal: design methodology

Proposal: design methodology

Separation of concerns:

Separation of concerns:

Application code vs.

Application code vs. adaptation mechanisms {decision logic, implementation} adaptation mechanisms {decision logic, implementation}

Introspection:

Introspection:

Communicate runtime data to decision logic

Communicate runtime data to decision logic

Intercession:

Intercession:

Transport reconfiguration code from decision logic

Transport reconfiguration code from decision logic

slide-12
SLIDE 12

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 12 12

Self Self-

  • healing systems

healing systems

  • Failure is inevitable

Failure is inevitable: [20] : [20]

human error:

human error:

stress level proportional to probability of making a

stress level proportional to probability of making a mistake [22] mistake [22]

can shield from user error, systems lack protection from

can shield from user error, systems lack protection from administrator's errors [22] administrator's errors [22]

unanticipated problem:

unanticipated problem:

beyond careful and thorough testing

beyond careful and thorough testing

directed security attack

directed security attack

lack of handling mechanism

lack of handling mechanism

software aging: transient bugs

software aging: transient bugs

recovery requires a restart

recovery requires a restart

build

build-up of transient bugs up of transient bugs

failure

failure-prone state during execution prone state during execution

slide-13
SLIDE 13

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 13 13

Self Self-

  • healing systems

healing systems – – ii ii

  • Availability of system

Availability of system

Highly resilient

Highly resilient

Programmed to handle every expected problem

Programmed to handle every expected problem

Self

Self-heals: manages to survive heals: manages to survive unexpected unexpected situations situations

Availability ratio: MTTF / (MTTF+MTTR)

Availability ratio: MTTF / (MTTF+MTTR)

increase

increase base longevity period (BLP) base longevity period (BLP)

decrease

decrease recovery time recovery time

  • Problem

Problem-

  • handling mechanism

handling mechanism: :

reactive, failure

reactive, failure-

  • driven:

driven:

detect occurred failure, follow with restart of affected

detect occurred failure, follow with restart of affected subsystems from a stable state subsystems from a stable state

preventive/proactive, failure

preventive/proactive, failure-

  • avoidance:

avoidance:

detect increased likelihood of failure, and gradual

detect increased likelihood of failure, and gradual degradation of performance, avert imminent failure degradation of performance, avert imminent failure

slide-14
SLIDE 14

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 14 14

Technique: Technique: Software Rejuvenation [18, 19] Software Rejuvenation [18, 19]

  • Graceful termination, Immediate restart

Graceful termination, Immediate restart

Restart at a clean, internal state

Restart at a clean, internal state

Build

Build-

  • up of transient bugs

up of transient bugs

Numerical accumulation errors, unreleased system

Numerical accumulation errors, unreleased system resources, memory leak, data corruption resources, memory leak, data corruption

  • Levels of rejuvenation

Levels of rejuvenation

Total rejuvenation

Total rejuvenation

Scheduled downtime can be fairly cheap

Scheduled downtime can be fairly cheap

Minimal interruption during low usage periods

Minimal interruption during low usage periods

Partial rejuvenation

Partial rejuvenation

Transparently rejuvenate selected subcomponents

Transparently rejuvenate selected subcomponents

Decoupling between subcomponents

Decoupling between subcomponents

Reduced recovery time only for subsystem restart

Reduced recovery time only for subsystem restart

Recursive rejuvenation [21]

Recursive rejuvenation [21]

Rejuvenate progressively larger subsystems recursively

Rejuvenate progressively larger subsystems recursively

Functional or data dependencies between

Functional or data dependencies between subcomponents subcomponents

slide-15
SLIDE 15

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 15 15

  • Program check

Program check-

  • pointing

pointing

Periodically save program state to persistent storage

Periodically save program state to persistent storage

Can rewind to previous states

Can rewind to previous states

auditing, logs

auditing, logs

recovery to a valid state

recovery to a valid state

install corrective patch, resume [22]

install corrective patch, resume [22]

The power of hindsight to enable retroactive repair

The power of hindsight to enable retroactive repair

Demonstrates “

Demonstrates “what if what if” semantics ” semantics

Database systems:

Database systems:

rollback to consistent state if cannot commit safely

rollback to consistent state if cannot commit safely

  • Zero

Zero-

  • tolerance of system compromise

tolerance of system compromise

Pre

Pre-

  • emptive defense against security attacks

emptive defense against security attacks

Randomized, but valid binary code sequence

Randomized, but valid binary code sequence

Sanity checking of control structures

Sanity checking of control structures

Choose immediate shutdown rather than have system

Choose immediate shutdown rather than have system get compromised get compromised

Immediate restart, with new randomized code

Immediate restart, with new randomized code

Other self Other self-

  • healing techniques

healing techniques

slide-16
SLIDE 16

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 16 16

Items for discussion Items for discussion

  • Can large

Can large-

  • scale, distributed applications be self

scale, distributed applications be self-

  • healing, self

healing, self-

  • regulating, self

regulating, self-

  • optimizing?
  • ptimizing?
  • Important issues with respect to automated

Important issues with respect to automated maintenance of large maintenance of large-

  • scale, software systems

scale, software systems

Harder to build. Focus on reusable components

Harder to build. Focus on reusable components

Specify maintenance operations during development

Specify maintenance operations during development

Considering maintenance as runtime adaptations

Considering maintenance as runtime adaptations

Gracefully handle unfamiliar, exceptional conditions

Gracefully handle unfamiliar, exceptional conditions

  • Proposal: design methodology

Proposal: design methodology

Separation of concerns:

Separation of concerns:

Application code vs.

Application code vs. adaptation mechanisms {decision logic, implementation} adaptation mechanisms {decision logic, implementation}

Introspection:

Introspection:

Communicate runtime data to decision logic

Communicate runtime data to decision logic

Intercession:

Intercession:

Transport reconfiguration code from decision logic

Transport reconfiguration code from decision logic

slide-17
SLIDE 17

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 17 17

Dynamic profiling, Dynamic profiling, generation of runtime data generation of runtime data

  • Adaptation subsystem

Adaptation subsystem: :

Monitoring logic and decision

Monitoring logic and decision-

  • making

making

Execution of adaptation mechanism

Execution of adaptation mechanism

  • Automated decision and implementation

Automated decision and implementation

Adaptation for recovery or otherwise, without human

Adaptation for recovery or otherwise, without human intervention intervention

  • Runtime model of the system architecture

Runtime model of the system architecture

Decision based on evolving model

Decision based on evolving model

Runtime data generated by each component

Runtime data generated by each component

Embedded probes: PSL

Embedded probes: PSL

Static

Static-adaptable Active Interfaces [12] adaptable Active Interfaces [12]

Context

Context-

  • dependent data format and content

dependent data format and content

E-mail management system: size, frequency,

mail management system: size, frequency, sender/recipient addresses, types of attachments, sender/recipient addresses, types of attachments, encryption strength encryption strength

slide-18
SLIDE 18

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 18 18

Communication of Communication of runtime data to decision logic runtime data to decision logic

  • Extended RPC

Extended RPC-

  • style communication

style communication

Client communicates with server at unknown location

Client communicates with server at unknown location

RPC clients (execution logic) should be unaware of

RPC clients (execution logic) should be unaware of the presence of RPC servers (decision logic) the presence of RPC servers (decision logic)

Need to multiplex emitted data

Need to multiplex emitted data

Asynchronous callback

Asynchronous callback

I can't wait, let me know when you're done! I can't wait, let me know when you're done!

Basic

Basic Message Passing Message Passing to unknown recipients to unknown recipients

  • Event notification system

Event notification system

Subscribe to published events Subscribe to published events-of

  • f-interest

interest

Item of interest

Item of interest

Something that happened somewhere, runtime data

Something that happened somewhere, runtime data

Generators of items of interest

Generators of items of interest

Core system execution, reporting runtime data

Core system execution, reporting runtime data

Consumers of items of interest

Consumers of items of interest

Monitoring subsystem, interested in runtime data

Monitoring subsystem, interested in runtime data

slide-19
SLIDE 19

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 19 19

Event systems Event systems

  • Centralized event systems

Centralized event systems

event

event-

  • driven GUI programming

driven GUI programming

Event Delegation Model: AWT, SWING, JavaBeans

Event Delegation Model: AWT, SWING, JavaBeans

Tightly

Tightly-coupled client coupled client-server model: JINI server model: JINI

Indirection, anonymity of servers via mediator object

Indirection, anonymity of servers via mediator object

Stable execution environment

Stable execution environment

Well

Well-ordered delivery mechanisms

  • rdered delivery mechanisms

Fast, reliable, predictable

Fast, reliable, predictable

  • Distributed event systems

Distributed event systems

Supercharged mediator between decoupled entities

Supercharged mediator between decoupled entities

Filtering

Filtering

Aggregating

Aggregating

Store

Store-and and-forward, Store forward, Store-and and-retrieve retrieve

Mutual anonymity

Mutual anonymity

Unreliable execution environment

Unreliable execution environment

Delayed delivery

Delayed delivery

Data loss

Data loss

slide-20
SLIDE 20

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 20 20

  • Channel

Channel-

  • based routing

based routing: :

Single channel per event type [9]

Single channel per event type [9]

birds of a feather flock together birds of a feather flock together

faster turnaround time; simple, efficient delivery

faster turnaround time; simple, efficient delivery

not scalable to large classes of events

not scalable to large classes of events

  • Subject

Subject-

  • based routing

based routing: :

NNTP: events on a common theme / interest

NNTP: events on a common theme / interest

Mailing lists, CVS notifications

Mailing lists, CVS notifications

  • Content

Content-

  • based (semantic) routing

based (semantic) routing: :

Interested in a subset of a class of events

Interested in a subset of a class of events

selective delivery via specifying acceptability criteria

selective delivery via specifying acceptability criteria

Event

Event-

  • data determines propagation

data determines propagation

Data replication only if necessary [10, 11]

Data replication only if necessary [10, 11]

Event composition [8]

Event composition [8]

Distributed event systems Distributed event systems

slide-21
SLIDE 21

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 21 21

  • Centralized routing node

Centralized routing node

Approximation of localized event system

Approximation of localized event system

  • Hierarchical collection of nodes

Hierarchical collection of nodes

Subscriptions only go up, notifications cascade down

Subscriptions only go up, notifications cascade down

Disadvantages

Disadvantages

Overloading of higher

Overloading of higher-level routing nodes level routing nodes

Network partitioning via single node failure

Network partitioning via single node failure

Advantages

Advantages

Simple routing algorithms

Simple routing algorithms

Simple client

Simple client-server relationships amongst routing server relationships amongst routing nodes nodes

  • (A)cyclic peer

(A)cyclic peer-

  • to

to-

  • peer network

peer network

Sophisticated routing algorithms

Sophisticated routing algorithms

Improved fault

Improved fault-

  • tolerance

tolerance

Content Content-

  • based

based event routing topologies event routing topologies

slide-22
SLIDE 22

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 22 22

Items for discussion Items for discussion

  • Can large

Can large-

  • scale, distributed applications be self

scale, distributed applications be self-

  • healing, self

healing, self-

  • regulating, self

regulating, self-

  • optimizing?
  • ptimizing?
  • Important issues with respect to automated

Important issues with respect to automated maintenance of large maintenance of large-

  • scale, software systems

scale, software systems

Harder to build. Focus on reusable components

Harder to build. Focus on reusable components

Specify maintenance operations during development

Specify maintenance operations during development

Considering maintenance as runtime adaptations

Considering maintenance as runtime adaptations

Gracefully handle unfamiliar, exceptional conditions

Gracefully handle unfamiliar, exceptional conditions

  • Proposal: design methodology

Proposal: design methodology

Separation of concerns:

Separation of concerns:

Application code vs.

Application code vs. adaptation mechanisms {decision logic, implementation} adaptation mechanisms {decision logic, implementation}

Introspection:

Introspection:

Communicate runtime data to decision logic

Communicate runtime data to decision logic

Intercession:

Intercession:

Transport reconfiguration code from decision logic

Transport reconfiguration code from decision logic

slide-23
SLIDE 23

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 23 23

Activation of reconfiguration code Activation of reconfiguration code

  • Re

Re-

  • use events

use events

the source (client/decision logic) determines who gets

the source (client/decision logic) determines who gets reconfigured, so cannot have the server (execution reconfigured, so cannot have the server (execution logic) subscribe to these logic) subscribe to these

event systems not designed to carry large amount of

event systems not designed to carry large amount of binary code, if needed for component installation, etc binary code, if needed for component installation, etc

  • Mobile agents [5]

Mobile agents [5]

autonomous program that executes on someone’s behalf autonomous program that executes on someone’s behalf

decision logic instructs agents to carry out runtime

decision logic instructs agents to carry out runtime reconfiguration tasks reconfiguration tasks

Late

Late-binding of reconfiguration mechanism at target binding of reconfiguration mechanism at target

Asynchronous

Asynchronous

primary advantage of agents: reconfiguration might

primary advantage of agents: reconfiguration might consist of significant amount of computing, ideally consist of significant amount of computing, ideally performed locally at execution logic rather than a long performed locally at execution logic rather than a long series of RPC invocations series of RPC invocations

slide-24
SLIDE 24

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 24 24

Mobile code infrastructures Mobile code infrastructures

  • Constituents

Constituents

Server: hosting, execution, transportation

Server: hosting, execution, transportation

Place [6]

Place [6]

Agent Server [1, 3, 7]

Agent Server [1, 3, 7]

Worklet Virtual Machine: PSL

Worklet Virtual Machine: PSL

Agents

Agents

  • Incorporate dynamic interfaces

Incorporate dynamic interfaces

Agent installs specific

Agent installs specific-

  • purpose interfaces to

purpose interfaces to components for customized access components for customized access

“Wrapper while you wait”, but can configure as

“Wrapper while you wait”, but can configure as needed needed

slide-25
SLIDE 25

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 25 25

Automatic mobility of programs Automatic mobility of programs

  • Strong mobility

Strong mobility

OS support for process relocation [5]

OS support for process relocation [5]

  • Weak mobility

Weak mobility

State

State-

  • and code

and code-

  • transfer at application level

transfer at application level

Programming

Programming-

  • language, runtime support [6]

language, runtime support [6]

Special

Special-purpose language [6] purpose language [6]

Scripting languages [6]

Scripting languages [6]

Agent code is in textual form

Agent code is in textual form

General purpose language [23]

General purpose language [23]

Late

Late-binding of class definitions by dynamic code loading binding of class definitions by dynamic code loading

Serialization of objects

Serialization of objects

Simulated strong mobility

Simulated strong mobility

Local function continuations [2]

Local function continuations [2]

Modified JVM [4]

Modified JVM [4]

slide-26
SLIDE 26

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 26 26

Security issues: mobile code Security issues: mobile code

  • A greater vulnerability: unknown code

A greater vulnerability: unknown code

Protect agent from server, and vice versa [1, 3, 7]

Protect agent from server, and vice versa [1, 3, 7]

  • Language support

Language support

Bytecode verification in JVM

Bytecode verification in JVM

Type

Type-system protection from malicious classes system protection from malicious classes

Integrity

Integrity-checking of bytecode instructions checking of bytecode instructions

Cannot define / load core system classes

Cannot define / load core system classes

  • Application

Application-

  • level security considerations

level security considerations: :

Authentication, authorization

Authentication, authorization

Permissions model based on certification, credentials

Permissions model based on certification, credentials

Data encryption during transit

Data encryption during transit

Tampering detection via digital signatures

Tampering detection via digital signatures

slide-27
SLIDE 27

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 27 27

Conclusions, future directions Conclusions, future directions

  • Autonomic large

Autonomic large-

  • scale, distributed systems

scale, distributed systems

Criteria for construction and automated maintenance

Criteria for construction and automated maintenance

State of the art research

State of the art research

Autonomic systems exist for specific domains

Autonomic systems exist for specific domains

Technologies / tools available for building general

Technologies / tools available for building general framework for adaptation framework for adaptation

  • Dynamic architectural modeling

Dynamic architectural modeling

Accurate modeling of the system during execution

Accurate modeling of the system during execution

Decision made on evolving model

Decision made on evolving model

Adaptation heuristics based on:

Adaptation heuristics based on:

Historical patterns

Historical patterns

Temporal data

Temporal data

slide-28
SLIDE 28

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 28 28

Bibliography Bibliography – – Mobile agents Mobile agents

1. 1.

Design of the Ajanta System for Mobile Agent Programming Design of the Ajanta System for Mobile Agent Programming Anand Anand R.

  • R. Tripathi

Tripathi, , Neeran Neeran M.

  • M. Karnik

Karnik, , Tanvir Tanvir Ahmed, Ram D. Singh, Ahmed, Ram D. Singh, Arvind Arvind Prakash Prakash, , Vineet Vineet Kakani Kakani, , Manish K. Manish K. Vora Vora, , Mukta Mukta Pathak Pathak Journal of Systems and Software, May 2002 Journal of Systems and Software, May 2002

2. 2.

How to Migrate Agents How to Migrate Agents Matthew Matthew Hohlfeld Hohlfeld, , Bennet Bennet Yee Yee Technical Report CS98 Technical Report CS98-588, Computer Science and Engineering Department, University of 588, Computer Science and Engineering Department, University of California at San Diego, La Jolla, CA, June 1998 California at San Diego, La Jolla, CA, June 1998

3. 3.

Experiences and Future Challenges in Mobile Agent Programming Experiences and Future Challenges in Mobile Agent Programming Anand Anand R.

  • R. Tripathi

Tripathi, , Tanvir Tanvir Ahmed, Ahmed, Neeran Neeran M.

  • M. Karnik

Karnik Microprocessor and Microsystems 2001 Microprocessor and Microsystems 2001

4. 4.

Pickling threads state in the Java system Pickling threads state in the Java system

  • S. Bouchenak, D.
  • S. Bouchenak, D. Hagimont

Hagimont In Proc. of the Technology of Object In Proc. of the Technology of Object-Oriented Languages and Systems (TOOLS), 2000 Oriented Languages and Systems (TOOLS), 2000

5. 5.

Mobile Agents: Are they a good idea? Mobile Agents: Are they a good idea? Colin G. Harrison, David M. Chess, Aaron Colin G. Harrison, David M. Chess, Aaron Kershenbaum Kershenbaum IBM Research Report, IBM Research Report, T.J.Watson T.J.Watson Research Center, NY, 1995 Research Center, NY, 1995

6. 6.

Programming languages for mobile code Programming languages for mobile code Tommy Thorn Tommy Thorn ACM Computing Surveys, 29(3):213 ACM Computing Surveys, 29(3):213-239, 1997. Also Technical Report 1083, University of 239, 1997. Also Technical Report 1083, University of Rennes Rennes IRISA IRISA

7. 7.

Design Issues in Mobile Agent Programming Systems Design Issues in Mobile Agent Programming Systems Neeran Neeran M.

  • M. Karnik

Karnik, , Anand Anand R.

  • R. Tripathi

Tripathi IEEE Concurrency, July IEEE Concurrency, July-Sep 1998 Sep 1998

slide-29
SLIDE 29

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 29 29

Bibliography Bibliography – – Event systems Event systems

8. 8.

Generic Support for Distributed Applications Generic Support for Distributed Applications Jean Bacon, Ken Moody, John Bates, Richard Jean Bacon, Ken Moody, John Bates, Richard Hayton Hayton, , Chaoying Chaoying Ma, Andrew McNeil, Oliver Seidel, Ma, Andrew McNeil, Oliver Seidel, Mark Mark Spiteri Spiteri IEEE Computer, pages 68 IEEE Computer, pages 68-77, March 2000 77, March 2000

9. 9.

Host Groups: A Multicast Extension to the Internet Protocol Host Groups: A Multicast Extension to the Internet Protocol

  • S. E.
  • S. E. Deering

Deering, D. R. , D. R. Cheriton Cheriton Network Working Group: RFC 0966 Network Working Group: RFC 0966

10. 10.

State of the Art Review of Distributed Event Models State of the Art Review of Distributed Event Models René Meier René Meier

  • Dept. of Computer Science, Trinity College Dublin, Ireland, Marc
  • Dept. of Computer Science, Trinity College Dublin, Ireland, March 2000. Technical report TCD

h 2000. Technical report TCD-CS CS- 2000 2000-16 16

11. 11.

Achieving Expressiveness and Scalability in an Internet Achieving Expressiveness and Scalability in an Internet-Scale Event Notification Service Scale Event Notification Service Antonio Antonio Carzaniga Carzaniga, David S. , David S. Rosenblum Rosenblum, Alexander L. Wolf , Alexander L. Wolf In Proceedings of the Nineteenth ACM Symposium on Principles of In Proceedings of the Nineteenth ACM Symposium on Principles of Distributed Computing (PODC Distributed Computing (PODC 2000) 2000)

slide-30
SLIDE 30

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 30 30

Bibliography Bibliography – – System adaptation System adaptation

12. 12.

A Model for Designing Adaptable Software Components A Model for Designing Adaptable Software Components George Heineman George Heineman In 22nd Annual International Computer Software and Applications In 22nd Annual International Computer Software and Applications Conference, pages 121 Conference, pages 121--

  • -127,

127, Vienna, Austria, August 1998. In 22nd Annual International Compu Vienna, Austria, August 1998. In 22nd Annual International Computer Software and Applications ter Software and Applications Conference, pages 121 Conference, pages 121--

  • -127, Vienna, Austria, August 1998

127, Vienna, Austria, August 1998

13. 13.

Language and Compiler Support for Adaptive Distributed Applicati Language and Compiler Support for Adaptive Distributed Applications

  • ns

Vikram Vikram Adve, Adve, Vinh Vinh Vi Lam, Brian Vi Lam, Brian Ensink Ensink ACM SIGPLAN Workshop on Optimization of Middleware and Distribut ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM 2001) ed Systems (OM 2001) Snowbird, Utah, June 2001 (in conjunction with PLDI2001) Snowbird, Utah, June 2001 (in conjunction with PLDI2001)

14. 14.

Increasing the Confidence in Off Increasing the Confidence in Off-the the-Shelf Components: A Software Connector Shelf Components: A Software Connector-Based Based Approach Approach Marija Marija Rakic Rakic, Nenad , Nenad Medvidovic Medvidovic Proceedings of SSR '01 on 2001 Symposium on Software Reusability Proceedings of SSR '01 on 2001 Symposium on Software Reusability : Putting Software Reuse in : Putting Software Reuse in Context Context

15. 15.

A Cooperative Approach to Support Software Deployment Using the A Cooperative Approach to Support Software Deployment Using the Software Dock Software Dock Richard S. Hall, Dennis Richard S. Hall, Dennis Heimbigner Heimbigner, Alexander L. Wolf , Alexander L. Wolf International Conference on Software International Conference on Software Enginering Enginering, May 1999 , May 1999

16. 16.

The Illinois GRACE Project: Global Resource Adaptation through The Illinois GRACE Project: Global Resource Adaptation through CoopEration CoopEration Sarita Sarita V. Adve, Albert F. Harris, Christopher J. Hughes, Douglas L. Jo

  • V. Adve, Albert F. Harris, Christopher J. Hughes, Douglas L. Jones, Robin H.

nes, Robin H. Kravets Kravets, , Klara Klara Nahrstedt Nahrstedt, Daniel , Daniel Grobe Grobe Sachs, Sachs, Ruchira Ruchira Sasanka Sasanka, , Jayanth Jayanth Srinivisan Srinivisan, , Wanghong Wanghong Yuan Yuan In proceedings of Workshop on Self In proceedings of Workshop on Self-Healing, Adaptive and self Healing, Adaptive and self-MANaged MANaged Systems (SHAMAN) Systems (SHAMAN) 2002 2002

slide-31
SLIDE 31

Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 Autonomic Systems ... Gaurav S. Kc ... September 26th, 2002 31 31

Bibliography Bibliography – – Dynamic healing, Miscellaneous Dynamic healing, Miscellaneous

17. 17.

Autonomic Computing Autonomic Computing Paul Horn, IBM Research Paul Horn, IBM Research

18. 18.

Software Software Rejuventation Rejuventation: Analysis, Module and Applications : Analysis, Module and Applications Yennun Yennun Huang, Chandra Huang, Chandra Kintala Kintala, Nick , Nick Kolettis Kolettis, N. Dudley Fulton , N. Dudley Fulton Proceedings of the 25th International Symposium on Fault Proceedings of the 25th International Symposium on Fault-Tolerant Computing (FTCS Tolerant Computing (FTCS-25), 25), Pasadena, CA, pp. June 1995, pp. 381 Pasadena, CA, pp. June 1995, pp. 381-390 390

19. 19.

IBM director software rejuvenation IBM director software rejuvenation. White paper White paper

20. 20.

Recovery Oriented Computing (ROC): Motivation, Definition, Techn Recovery Oriented Computing (ROC): Motivation, Definition, Techniques, and Case Studies iques, and Case Studies David Patterson, Aaron Brown, Pete David Patterson, Aaron Brown, Pete Broadwell Broadwell, George , George Candea Candea, Mike Chen, James Cutler, Patricia , Mike Chen, James Cutler, Patricia Enriquez, Armando Fox, Enriquez, Armando Fox, Emre Emre Kiciman Kiciman, Matthew , Matthew Merzbacher Merzbacher, David Oppenheimer, , David Oppenheimer, Naveen Naveen Sastry Sastry, , William William Tetzlaff Tetzlaff, Jonathan , Jonathan Traupmann Traupmann, Noah , Noah Treuhaft Treuhaft UC Berkeley Computer Science Technical Report UCB//CSD UC Berkeley Computer Science Technical Report UCB//CSD-02 02-1175, March 15, 2002 1175, March 15, 2002

21. 21.

Reducing Recovery Time in a Small Recursively Reducing Recovery Time in a Small Recursively Restartable Restartable System System George George Candea Candea, James Cutler, Armando Fox, , James Cutler, Armando Fox, Rushabh Rushabh Doshi Doshi, , Priyank Priyank Garg Garg, , Rakesh Rakesh Gowda Gowda Appears in Proceedings of the International Conference on Depend Appears in Proceedings of the International Conference on Dependable Systems and Networks able Systems and Networks (DSN (DSN-2002), June 2002 2002), June 2002

22. 22.

Rewind, Repair, Replay: Three R's to Dependability Rewind, Repair, Replay: Three R's to Dependability Aaron B. Brown, David A. Patterson Aaron B. Brown, David A. Patterson To appear in 10th ACM SIGOPS European Workshop, Saint To appear in 10th ACM SIGOPS European Workshop, Saint-Emilion Emilion, France, September 2002 , France, September 2002

23. 23.

Dynamic Class Loading in the Dynamic Class Loading in the Java(TM Java(TM) Virtual Machine ) Virtual Machine Sheng Sheng Liang Liang, , Gilad Gilad Bracha Bracha Conference on Object Conference on Object-oriented programming, systems, languages, and applications (OOPS

  • riented programming, systems, languages, and applications (OOPSLA'98)

LA'98)