17-811 Self-Healing Systems: Class Discussion Summary

David Garlan
Spring Semester 2003

Summary of Class Discussion for April 23 by Kevin Steppe
 

Agent based approaches

    * necessary/ required attribute
    (others are typical but 'optional')
    *autonomous and task based
                    - asynchronous from the user interactions
    *communicates w/ other agents & env
                     - tend to be very focused on small tasks
                     - need to work w/ other agents to finish larger tasks
            reactive and learning
                    -
            goal-oriented and pro-active
     
            mobility/flexibity
                    - move around nodes of a network
                            able to move to a conducive environment for the tas
     
    Benefits --
            decomposed task in bottom up building
            cooperative redundancy
                    - agents can have overlapping functionality for specialization & redundancy
            Viewpoints
                    - working at multiple levels of abstraction
            Quasi-blackboard architecture
                    - ind. running components solving small problems can together solve larger problems

    Domains --
            Distributed, UI, Collaboration, Games
     
    Tools --
            Agents, pre/post processing
                    - pre-processing can partly be implemented by bidding on taking action
     
    Goals --
            Dependability
            Performance
            Service Modularity
            Emergent Behavior generating complex Services

            - How do we guarentee that the system can adapt and evolve?
                    What prevents it from getting stuck?
     
     
    --- Robust Software Paper ---
            Independant agents can be guided or controlled by a higher level
            They then communicate to solve larger problems
            Compenents can be hidden if tasks are well defined
     
            Similar to N-version programming w/ similar problems
            Designing an ontology for service interaction is a huge problem
                    - they claim this isn't needed for agents
                    - then how do they communicate?
                    -> break the large ontology into many smaller communication agreements
                            but it's not clear that the smaller agreements are easier
     
            Soccer Robots are an example of an agent system
     
    ---------------------------
    Analogies to Biological systems
            - cells communicating locally
            - local adaptation
     
            - encapsulate well understood human decisions
     
     
    ---- Investigation into Self-Adaptive Software Agents Development ---

    Framework to use adaptive agents

    System 1 - Operations
                    - Operate the motor to move limbs
                    - optimize and report on power, etc.
    System 2 - Coordination
                    - coordinate agents at level 1
                    - coordinate all the limbs to move smoothly
                    - prevent oscillation behavior
    System 3 - Control  & Auditing operations
                    - are the actions in line with the goals
                    - resource usage planning
    System 4 - Environment and oportunity

    System 5 - Desires & world model
     

Diversion -- Learning cognitive assistant

            Agent to help improve performance in 4 tasks
            * Email assistant
                    1. categorization on input stream
                            - it's a meeting
                    2. info extraction via text understanding
                            - what does the email say about this meeting?
                    3. Agent
                            - meeting planner
                            - course assistant
                            - etc.
            * Scheduling
            * Web site management
                    - project page updates, etc.
            * Crisis management
                    - multi-user coordination
     

    Aura view:
                    User          ->        Task
            -----------------   /   ---------------------
        --->|       App     | -/    |       Env Manager |           Task Descriptions
            -----------------       ----------------------
            |       OS/FS   |       |                   |
            -----------------       ----------------------
     
    Filtering/Categorization is moving email from app level to task level
    Here, the environment (service availability) is not variable, we don't need Env. Manager
    If there are multiple App choices to carry out the task, may require a dynamic mapping

    Learning based on how the user acts with the apps, to discover preferences / categorization / etc

Context-aware computing

    Wearable Computing

    Exploratory Systems
    Customer Systems
    Visionary Design/Research

    Rate of change of data
            - Text (weekly)
            - Work orders (daily)
            - collaboration (seconds/minutes)

    Platform for incrementing base on field results

    Expanding abilities
            Representation
            Input
            Output

    Collaboration improvement: prestored expertise, Master/App, Teaml, Synthetic

    Evolutionary design
            Prestored
            -> add in Synchronous Shared Space for Help desk
            -> add Asynchronous Q/A space from team
                    - Audio BB, etc.
            -> Proactive Assistant
                    - Synthetic helper (FAQ - interview)
                    - Context Aware (cognitive model / overload, etc)

    Declarative Memory
            --> Production Rules
            --> Production Rules' Actions
     
    Build Context from 20 attributes
            Location -> Social geography -> ....
            Physical response -> emotional state -> cognitive load ...
     
            Context awareness builds from physical setting