Charles Herring Talk

download Charles Herring Talk

of 38

Transcript of Charles Herring Talk

  • 7/30/2019 Charles Herring Talk

    1/38

    Viable Softwarethe

    Intelligent Control Paradigmfor

    Adaptable and Adaptive Systems

    [email protected]

    http://www.charles-herring.com

  • 7/30/2019 Charles Herring Talk

    2/38

    Overview

    Motivation and Approach Systems Thinking: MVC Revisited

    The Viable Software Architecture Generative Programming

    Case Studies

    Conclusion

  • 7/30/2019 Charles Herring Talk

    3/38

    Trends and Forces

    Impersonal Computing 1 computer, N persons Human Out-of-the-loop

    Personal Computing 1 computer, 1 person Human In-the-loop

    Proactive Computing

    N computers, 1 person M computers, N persons Human Above-the-loop

  • 7/30/2019 Charles Herring Talk

    4/38

    Direction of Evolution

    The Economy

    The Brain

    The Enterprise

    Stockholding

    Conditioned Reflexes

    Industrial Probability

    Penny Tossing

    Brownian Motion

    Statistical QualityCont.

    Empty

    Digital Computers

    Planetary Systems

    Automation

    Window Catch

    Billiards

    Shop Lay-Out

    Simple Complex ExceedinglyComplex

    Deterministic

    Probabilistic

  • 7/30/2019 Charles Herring Talk

    5/38

    Approach

    How do we build these types of softwaresystems? Is there any knowledge from other fields

    (outside of computer science) that can help?

    I chose the Viable System Model Developed by Stafford Beer Based on Information Theory and Cybernetics Claims to capture the invariants of viable

    systems Viable: able to maintain a separate existence.

  • 7/30/2019 Charles Herring Talk

    6/38

    Model

    coreDatasetOfObservers

    attach(Observers)detach(Observers)notify

    getDataservice

    View

    myModelmyController

    initialize(Model)makeControlleractivatedisplayupdate

    Controller

    myModelmyView

    initialize(Model,View)

    handleEventupdate

    Observer

    updatecall update

    attachgetData

    attachcall service

    manipulatedisplay

    create

    Model View Controller

  • 7/30/2019 Charles Herring Talk

    7/38

    Controller

    Model

    ModelcoreDatasetOfObservers

    attach(Observers)detach(Observers)

    notify

    getData

    service

    View

    myProcessmyActuator

    initialize(Process)makeActuator

    activateoutput

    update

    Controller

    myProcessmySensor

    initialize(Process,Sensor)

    handleEventupdate

    call update

    attach

    getData

    attachcall service

    manipulateoutput

    create

    feedback

    commands

    Systems Thinking

    Actuator

    Sensor

    Process

    Environment

  • 7/30/2019 Charles Herring Talk

    8/38

    Viable Software

    A viable software system is Adaptable

    over time to be Adaptive.

  • 7/30/2019 Charles Herring Talk

    9/38

    Separate Control

    / Environment:

    / Process: *

    disturbances

    responses

    command

    control

    / Controller:

    Process Model

    Control Rule

    Computation

    Present

    Critical Variables

    results

    command

  • 7/30/2019 Charles Herring Talk

    10/38

    Regulator

    / Environment:

    / Process: *

    disturbances

    responses

    command

    control/ Regulator:

    response

    responseplans

    *

    plans

    / Controller:

    Process Model

    Control Rule

    Computation

    PresentPlan

    Critical Variables

    results

    command

  • 7/30/2019 Charles Herring Talk

    11/38

    Auditor

    / Environment:

    / Process: *

    disturbances

    responses

    command

    control/ Auditor: / Regulator:

    audit reports

    audit requests

    audit reports

    audit request

    response

    responseplans

    **

    plans

    / Controller:

    Process Model

    Control Rule

    Computation

    PresentPlan

    Critical Variables

    Queries

    results

    command

  • 7/30/2019 Charles Herring Talk

    12/38

    / Environment:

    / Process: *

    feedback

    disturbances

    responses

    command

    control/ Auditor: / Regulator:

    audit reports

    audit requests

    audit reports

    audit request

    response

    responseplans

    / Adaptive Controller:

    **

    controlrules

    observations

    plans

    / Controller:

    Process Model

    Control Rule

    Computation

    Self Model

    Rule Base

    Present

    Future

    Plan

    Critical Variables

    Queries

    results

    command rules

    Adaptive

  • 7/30/2019 Charles Herring Talk

    13/38

    / Environment:

    / Process:

    policy

    *

    feedback

    disturbances

    responses

    command

    control/ Auditor: / Regulator:

    goals

    results

    audit reports

    audit requests

    audit reports

    audit request

    response

    responseplans

    / Adaptive Controller:

    **

    controlrules

    observations

    / Supervisor:

    controlrules

    alerts

    plans

    / Controller:

    Process Model

    Control Rule

    Computation

    Self Model

    Rule Base

    Present

    Future

    Actor Interface

    Policy Base

    Plan

    Critical Variables

    Queries

    Supervisory

    Viable

    SoftwareArchitecture

  • 7/30/2019 Charles Herring Talk

    14/38

    Multi Agent Systems

    Human

    SkillsIntelligent Adaptive Systems

    Applications

    Control

    Adapt

    Supervise

    Operating Systems

    SoftwareSystem

    Viable Systems

    Adaptive

    Adaptable

    Control Adapt Supervise

    Migration of Control SkillsThe Gradient of Software Evolution

    A viable software system is Adaptableover timeto be Adaptive.

  • 7/30/2019 Charles Herring Talk

    15/38

    / Regulator:

    / Controller:

    policy

    *

    command

    control/ Auditor:

    goals

    results

    audit reports

    audit requests

    audit reports

    audit request

    response

    plans

    response

    plans

    / AdaptiveController:

    **

    controlrules

    / Supervisor:

    controlrules

    alerts

    *

    / Future:

    / Present:

    / Past:

    Adaptive-Adaptive

    Supervisor-Supervisor

    Recursion

  • 7/30/2019 Charles Herring Talk

    16/38

    21

    3

    4

    5

    6

    7

    8

    9

    3

    4

    5

    6

    8

    9

    8

    0

    Viable

    SoftwareFramework

  • 7/30/2019 Charles Herring Talk

    17/38

    23

    4

    5

    6

    7

    9

    8

    0

    >

    1

    Viable Component

  • 7/30/2019 Charles Herring Talk

    18/38

    System Sub-System

    6 Alert Conditions

    5 Goals and Policies

    4 Models, Simulations, and Data

    3 Resources and Accountability Requirements

    2 Initial Plans and Activities

    7 Links to Other Processes

    1 Initial Audit and Inspection Queries

    8 Environment to Adaptive Controller Link

    9 Environment to Process Link

    2

    3

    4

    5

    6

    7

    9

    8

    0

    >

    1

    ComponentTransferProtocol

  • 7/30/2019 Charles Herring Talk

    19/38

    Meta-level (Complex Adaptive Systems in General)

    Domain-Specific level (B2B, Agent Systems, Smart Environments, )

    ViableSystemModel

    ViableSoftware

    Architecture

    DomainReferenceModel &

    Requirements

    DomainReference

    Architecture

    ApplicationSpecific

    Requirements

    ViableSoftware

    Framework

    DomainFramework

    &Components

    ApplicationComponent

    ConfigurationTools

    ComponentTransferProtocol

    Generative ProgrammingProduct Line Architecture

  • 7/30/2019 Charles Herring Talk

    20/38

    Case Studies

    Groove: Diagnosing the System Mapping Groove into the VSA Adding Adaptive Controller for UI

    Smart Environments

    Design and Usage Scenario Lecture Room Camera Controller

    e-Commerce Evolving a B2B System B2B Contracts

  • 7/30/2019 Charles Herring Talk

    21/38

    Groove

    Mediated Model-View-Controller Groove Levels

    Groove Net and Web Services

    Transceiver Shared Spaces

    Tools Sets

    Tool: Storage and Controlling Code

    Add Adaptive User Interface Controller

  • 7/30/2019 Charles Herring Talk

    22/38

  • 7/30/2019 Charles Herring Talk

    23/38

    U(t)

    1Never Infrequent Frequent Always

    V(t)

    m

    0 0.5-1.0 -0.5 0.0

    Average

    1.0

    d U(t)dt

    1 VerySlow Slow Fast VeryFast

    0 100-200 -100 0

    Zero

    200

    1

    Invisible Fading Promoted

    0 4010 20 30

    Normal

    50 60

    Bold

    Fuzzy Set Membership Functions

  • 7/30/2019 Charles Herring Talk

    24/38

    If Usage is Average and Change in Usage is Zero Then Visibility is Normal

    Average

    -0.5 0.0 0.5

    Zero

    -100 0 100

    Normal

    20 30 40

    If Usage is Average and Change in Usage is Fast Then Visibility is Bold

    Fast Bold

    30 40 500 100 200

    40mcrisp = 35

    20 30

    -0.5 0.0 0.5

    Average

    50100

    Inference

  • 7/30/2019 Charles Herring Talk

    25/38

    InvisibleInvisibleFadingNormalBold

    InvisibleInvisibleInvisibleFadingNormal

    InvisibleFadingNormalBoldPromoted

    FadingNormalBoldPromotedPromoted

    NormalBoldPromotedPromotedPromoted

    Change in Usage: dU/dt

    VerySlowSlowZeroFastVeryFast

    Infrequent

    Never

    Average

    Frequent

    Always

    Usage:

    U(t)

    Visibility

    V

    Rule Table

  • 7/30/2019 Charles Herring Talk

    26/38

    Smart Lecture Room

    Smart Lecture Room

    C1LT T

    TRoomController C3C2

    T

    Door

    Tracking Beacon

    Tracking Antenna Tracking Antenna

    Tracking AntennaLecturer Camera Audience Camera

    Surveillance CameraLock

    SmartB

    oard

    Wireless Base Station

    W

    Wireless Base Station

    W

  • 7/30/2019 Charles Herring Talk

    27/38

    Smart Camera

    SmartCamController

    SmartCamOperations

    SmartCamAuditor

    SmartCamPlanning

    SmartCamExecutive

    SmartCamRegulator

    SmartCamMSMQBus

    SmartCamAccountant SmartCamPlant

    SmartCamMSMQBus

    Camera

    Controller

    ImageProcessor

  • 7/30/2019 Charles Herring Talk

    28/38

    Startup Protocol

    SmartRoom Executive Planning Operations Regulator Plant

    SCExecPolicySOP

    SCExecResources

    Goals

    SCExecResources

    SCExecMsgStart

    SCExecPolicySOP

    SCOpsMsgCommand

    SCPlantMsgModel

    SCExecPolicySOP

    SCExecResources

    SCExecMsgStart

    SCExecMsgStart

    SCOpsStartParams

    SCPlanPlanParams

    SCOpsMsgStartCmd

    SCOpsPlan

    SCOpsPlan

    SCOpsMsgStartCmd

  • 7/30/2019 Charles Herring Talk

    29/38

    Operating

    SmartRoom Executive Planning Operations Regulator Plant

    Event

    SCOpsMsgCommand

    SCPlanMsgAdvice

    SCOpsPlan

    SCOpsPlan

    SCPlantRptRoutine (5)

    SCOpsRptRoutine

    SCPlanOpsUpdate

    SCOpsRptRoutine

    SCPlantStateChng

    SCOpsStateChange

    SCOpsStateChangeSCOpsStateChange

  • 7/30/2019 Charles Herring Talk

    30/38

    e-CommerceRetailer.com

    B2B and B2C B2B Subsystems Wholesalers Shippers

    Exchange Web Site B2B Controller: uses Visual Rules Studio

    Executive: Contracts Planning: Operations and Market Analysis Operations: Purchasing, Accounting, Shipping,

    and Contracting

  • 7/30/2019 Charles Herring Talk

    31/38

  • 7/30/2019 Charles Herring Talk

    32/38

  • 7/30/2019 Charles Herring Talk

    33/38

    Viable Software

    A viable software system is Adaptableover time to be Adaptive.

  • 7/30/2019 Charles Herring Talk

    34/38

    Multi Agent Systems

    Human

    Skills

    Intelligent Adaptive Systems

    Applications

    Control

    Adapt

    Supervise

    Operating Systems

    SoftwareSystem

    Viable Systems

    Adaptive

    Adaptable

    Control Adapt Supervise

    Migration of Control SkillsThe Gradient of Software Evolution

  • 7/30/2019 Charles Herring Talk

    35/38

    The

    ViableSystem

    Legal

    Financial

    National

    International

    Technological(Software)

    Customers

    Corporate

    Dimensions of Viability

  • 7/30/2019 Charles Herring Talk

    36/38

    Related Work

    Mary Shaw - Control Paradigm Kokar and Eracar - Self-Controlling Software

    Adaptive Object Model - Foote, Johnson and

    Yoder Adaptive Strategy- Olivier Aubert

    Beck, Highsmith - XP, Adaptive Software

    Development Oriezy - Self-Adaptive Software

  • 7/30/2019 Charles Herring Talk

    37/38

    Conclusion

    VSM Isomorphic to Intelligent Controller Pattern Language

    Theory of Autonomy

    Conways Law

  • 7/30/2019 Charles Herring Talk

    38/38

    Questions?

    [email protected]://www.charles-herring.com