Presentation is loading. Please wait.

Presentation is loading. Please wait.

Autonomic Systems... Gaurav S. Kc... September 26th, 20021 Autonomic Systems Autonomic: adaptive Autonomic: adaptive Self-healing: Self-healing: cluster.

Similar presentations


Presentation on theme: "Autonomic Systems... Gaurav S. Kc... September 26th, 20021 Autonomic Systems Autonomic: adaptive Autonomic: adaptive Self-healing: Self-healing: cluster."— Presentation transcript:

1 Autonomic Systems... Gaurav S. Kc... September 26th, 20021 Autonomic Systems Autonomic: adaptive Autonomic: adaptive Self-healing: Self-healing: cluster systems via node restart cluster systems via node restart Self-optimizing: Self-optimizing: variable encoding schemes for web audio streaming services variable encoding schemes for web audio streaming services Self-regulating : Self-regulating : apache web server periodically kills child processes apache web server periodically kills child processes Maintenance: Maintenance: expensive, time-consuming expensive, time-consuming 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”

2 Autonomic Systems... Gaurav S. Kc... September 26th, 20022 Items for discussion Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Important issues with respect to automated maintenance of large-scale, software systems Important issues with respect to automated maintenance of large-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. adaptation mechanisms {decision logic, implementation} Application code vs. 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

3 Autonomic Systems... Gaurav S. Kc... September 26th, 20023 Build large-scale systems with reusable components Inherent problem with the development of large- scale systems Inherent problem with the development of large- scale systems Hugely complex, unwise for one group of developers to create the whole thing from scratch Hugely complex, unwise for one group of developers to create the whole thing from scratch Outsource sub-projects to experts vs. license their technology Outsource sub-projects to experts vs. license their technology Integrate with COTS components: Integrate with COTS components: Cheaper than to re-implement them Cheaper than to re-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-house In-house One-use, specific-purpose component One-use, specific-purpose component

4 Autonomic Systems... Gaurav S. Kc... September 26th, 20024 Component-based 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. 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. Integrating component into applications Requirements analysis Requirements analysis Choose component with required functionality Choose component with required functionality Take it or leave it... but then go on looking for another implementation

5 Autonomic Systems... Gaurav S. Kc... September 26th, 20025 Component-based Software Engineering – 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-types, interaction mechanisms, implementation languages Granularity of operations and data-types, interaction mechanisms, implementation languages Component wrappers Component wrappers Connectors [14] Connectors [14] SWIG, JNI, popen(..), system(..) SWIG, JNI, popen(..), system(..) Considerations Considerations Application builder is not going to re-implement the component Application builder is not going to re-implement the component Want to maintain encapsulation, information hiding Want to maintain encapsulation, information hiding

6 Autonomic Systems... Gaurav S. Kc... September 26th, 20026 Items for discussion Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Important issues with respect to automated maintenance of large-scale, software systems Important issues with respect to automated maintenance of large-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. adaptation mechanisms {decision logic, implementation} Application code vs. 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

7 Autonomic Systems... Gaurav S. Kc... September 26th, 20027 Static modeling of possible runtime reconfigurations Runtime adaptation of software Runtime adaptation of software Ever-changing resource availability Ever-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-level: Micro-level: component developer-enabled mechanism, setting switches via Active Interfaces [12, 13, 16] component developer-enabled mechanism, setting switches via Active Interfaces [12, 13, 16] Medium-level: Medium-level: change how components interact with the system, modify the interface [13, 14] change how components interact with the system, modify the interface [13, 14] Macro-level: Macro-level: phase in/out (groups of) components as part of the dynamic adaptation [13, 14] phase in/out (groups of) components as part of the dynamic adaptation [13, 14]

8 Autonomic Systems... Gaurav S. Kc... September 26th, 20028 Static modeling of possible runtime reconfigurations – ii Self-contained adaptation within component Self-contained adaptation within component Automatic generation of adaptation code Automatic generation of adaptation code Compiler and language support for high-level specification of adaptation mechanism [13] Compiler and language support for high-level specification of adaptation mechanism [13] Pre-packaged adaptation mechanism [16] Pre-packaged adaptation mechanism [16] Automatic integration of new component versions Automatic integration of new component versions Configuration management [15] Configuration management [15] Installations, updates, un-installations Installations, updates, un-installations Tentative use of new versions [14] Tentative use of new versions [14] Transparent testing in deployed environment Transparent testing in deployed environment

9 Autonomic Systems... Gaurav S. Kc... September 26th, 20029 Items for discussion Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Important issues with respect to automated maintenance of large-scale, software systems Important issues with respect to automated maintenance of large-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. adaptation mechanisms {decision logic, implementation} Application code vs. 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

10 Autonomic Systems... Gaurav S. Kc... September 26th, 200210 Writing code to 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 how to fix if things fail Execute (un) trusted, unfamiliar code, with no idea how to fix if things fail Recognize the need to adapt Recognize the need to adapt Utilize the available runtime mechanisms Utilize the available runtime mechanisms Pre-existing reconfiguration mechanisms Pre-existing reconfiguration mechanisms Dispatch directives to carry out local micro-adaptations Dispatch directives to carry out local micro-adaptations Use adaptability of middleware to effectively carry out medium- and macro-scale adaptations Use adaptability of middleware to effectively carry out medium- and macro-scale adaptations Architectural design-driven adapted, guided by component-interaction specifications Architectural design-driven adapted, guided by component-interaction specifications The inability to reconfigure when required, is a form of failure

11 Autonomic Systems... Gaurav S. Kc... September 26th, 200211 Items for discussion Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Important issues with respect to automated maintenance of large-scale, software systems Important issues with respect to automated maintenance of large-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. adaptation mechanisms {decision logic, implementation} Application code vs. 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

12 Autonomic Systems... Gaurav S. Kc... September 26th, 200212 Self-healing systems Failure is inevitable: [20] Failure is inevitable: [20] human error: human error: stress level proportional to probability of making a mistake [22] stress level proportional to probability of making a mistake [22] can shield from user error, systems lack protection from administrator's errors [22] can shield from user error, systems lack protection from 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-up of transient bugs build-up of transient bugs failure-prone state during execution failure-prone state during execution

13 Autonomic Systems... Gaurav S. Kc... September 26th, 200213 Self-healing systems – ii Availability of system Availability of system Highly resilient Highly resilient Programmed to handle every expected problem Programmed to handle every expected problem Self-heals: manages to survive unexpected situations Self-heals: manages to survive unexpected situations Availability ratio: MTTF / (MTTF+MTTR) Availability ratio: MTTF / (MTTF+MTTR) increase base longevity period (BLP) increase base longevity period (BLP) decrease recovery time decrease recovery time Problem-handling mechanism: Problem-handling mechanism: reactive, failure-driven: reactive, failure-driven: detect occurred failure, follow with restart of affected subsystems from a stable state detect occurred failure, follow with restart of affected subsystems from a stable state preventive/proactive, failure-avoidance: preventive/proactive, failure-avoidance: detect increased likelihood of failure, and gradual degradation of performance, avert imminent failure detect increased likelihood of failure, and gradual degradation of performance, avert imminent failure

14 Autonomic Systems... Gaurav S. Kc... September 26th, 200214 Technique: 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-up of transient bugs Build-up of transient bugs Numerical accumulation errors, unreleased system resources, memory leak, data corruption Numerical accumulation errors, unreleased system 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 subcomponents Functional or data dependencies between subcomponents

15 Autonomic Systems... Gaurav S. Kc... September 26th, 200215 Program check-pointing Program check-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 “what if” semantics Demonstrates “what if” semantics Database systems: Database systems: rollback to consistent state if cannot commit safely rollback to consistent state if cannot commit safely Zero-tolerance of system compromise Zero-tolerance of system compromise Pre-emptive defense against security attacks Pre-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 get compromised Choose immediate shutdown rather than have system get compromised Immediate restart, with new randomized code Immediate restart, with new randomized code Other self-healing techniques

16 Autonomic Systems... Gaurav S. Kc... September 26th, 200216 Items for discussion Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Important issues with respect to automated maintenance of large-scale, software systems Important issues with respect to automated maintenance of large-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. adaptation mechanisms {decision logic, implementation} Application code vs. 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

17 Autonomic Systems... Gaurav S. Kc... September 26th, 200217 Dynamic profiling, generation of runtime data Adaptation subsystem: Adaptation subsystem: Monitoring logic and decision-making Monitoring logic and decision-making Execution of adaptation mechanism Execution of adaptation mechanism Automated decision and implementation Automated decision and implementation Adaptation for recovery or otherwise, without human intervention Adaptation for recovery or otherwise, without human 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-adaptable Active Interfaces [12] Static-adaptable Active Interfaces [12] Context-dependent data format and content Context-dependent data format and content E-mail management system: size, frequency, sender/recipient addresses, types of attachments, encryption strength E-mail management system: size, frequency, sender/recipient addresses, types of attachments, encryption strength

18 Autonomic Systems... Gaurav S. Kc... September 26th, 200218 Communication of runtime data to decision logic Extended RPC-style communication Extended RPC-style communication Client communicates with server at unknown location Client communicates with server at unknown location RPC clients (execution logic) should be unaware of the presence of RPC servers (decision logic) RPC clients (execution logic) should be unaware of 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! Basic Message Passing to unknown recipients Basic Message Passing to unknown recipients Event notification system Event notification system Subscribe to published events-of-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

19 Autonomic Systems... Gaurav S. Kc... September 26th, 200219 Event systems Centralized event systems Centralized event systems event-driven GUI programming event-driven GUI programming Event Delegation Model: AWT, SWING, JavaBeans Event Delegation Model: AWT, SWING, JavaBeans Tightly-coupled client-server model: JINI Tightly-coupled client-server model: JINI Indirection, anonymity of servers via mediator object Indirection, anonymity of servers via mediator object Stable execution environment Stable execution environment Well-ordered delivery mechanisms Well-ordered 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-and-forward, Store-and-retrieve Store-and-forward, Store-and-retrieve Mutual anonymity Mutual anonymity Unreliable execution environment Unreliable execution environment Delayed delivery Delayed delivery Data loss Data loss

20 Autonomic Systems... Gaurav S. Kc... September 26th, 200220 Channel-based routing: Channel-based routing: Single channel per event type [9] Single channel per event type [9] 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-based routing: Subject-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-based (semantic) routing: Content-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-data determines propagation Event-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

21 Autonomic Systems... Gaurav S. Kc... September 26th, 200221 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-level routing nodes Overloading of higher-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-server relationships amongst routing nodes Simple client-server relationships amongst routing nodes (A)cyclic peer-to-peer network (A)cyclic peer-to-peer network Sophisticated routing algorithms Sophisticated routing algorithms Improved fault-tolerance Improved fault-tolerance Content-based event routing topologies

22 Autonomic Systems... Gaurav S. Kc... September 26th, 200222 Items for discussion Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Can large-scale, distributed applications be self- healing, self-regulating, self-optimizing? Important issues with respect to automated maintenance of large-scale, software systems Important issues with respect to automated maintenance of large-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. adaptation mechanisms {decision logic, implementation} Application code vs. 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

23 Autonomic Systems... Gaurav S. Kc... September 26th, 200223 Activation of reconfiguration code Re-use events Re-use events the source (client/decision logic) determines who gets reconfigured, so cannot have the server (execution logic) subscribe to these the source (client/decision logic) determines who gets reconfigured, so cannot have the server (execution logic) subscribe to these event systems not designed to carry large amount of binary code, if needed for component installation, etc event systems not designed to carry large amount of binary code, if needed for component installation, etc Mobile agents [5] Mobile agents [5] autonomous program that executes on someone’s behalf decision logic instructs agents to carry out runtime reconfiguration tasks decision logic instructs agents to carry out runtime reconfiguration tasks Late-binding of reconfiguration mechanism at target Late-binding of reconfiguration mechanism at target Asynchronous Asynchronous primary advantage of agents: reconfiguration might consist of significant amount of computing, ideally performed locally at execution logic rather than a long series of RPC invocations primary advantage of agents: reconfiguration might consist of significant amount of computing, ideally performed locally at execution logic rather than a long series of RPC invocations

24 Autonomic Systems... Gaurav S. Kc... September 26th, 200224 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-purpose interfaces to components for customized access Agent installs specific-purpose interfaces to components for customized access “Wrapper while you wait”, but can configure as needed “Wrapper while you wait”, but can configure as needed

25 Autonomic Systems... Gaurav S. Kc... September 26th, 200225 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- and code-transfer at application level State- and code-transfer at application level Programming-language, runtime support [6] Programming-language, runtime support [6] Special-purpose language [6] Special-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-binding of class definitions by dynamic code loading Late-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]

26 Autonomic Systems... Gaurav S. Kc... September 26th, 200226 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-system protection from malicious classes Type-system protection from malicious classes Integrity-checking of bytecode instructions Integrity-checking of bytecode instructions Cannot define / load core system classes Cannot define / load core system classes Application-level security considerations: Application-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

27 Autonomic Systems... Gaurav S. Kc... September 26th, 200227 Conclusions, future directions Autonomic large-scale, distributed systems Autonomic large-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 framework for adaptation Technologies / tools available for building general 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

28 Autonomic Systems... Gaurav S. Kc... September 26th, 200228 Bibliography – Mobile agents 1. Design of the Ajanta System for Mobile Agent Programming Anand R. Tripathi, Neeran M. Karnik, Tanvir Ahmed, Ram D. Singh, Arvind Prakash, Vineet Kakani, Manish K. Vora, Mukta Pathak Journal of Systems and Software, May 2002 2. How to Migrate Agents Matthew Hohlfeld, Bennet Yee Technical Report CS98-588, Computer Science and Engineering Department, University of California at San Diego, La Jolla, CA, June 1998 3. Experiences and Future Challenges in Mobile Agent Programming Anand R. Tripathi, Tanvir Ahmed, Neeran M. Karnik Microprocessor and Microsystems 2001 4. Pickling threads state in the Java system S. Bouchenak, D. Hagimont In Proc. of the Technology of Object-Oriented Languages and Systems (TOOLS), 2000 5. Mobile Agents: Are they a good idea? Colin G. Harrison, David M. Chess, Aaron Kershenbaum IBM Research Report, T.J.Watson Research Center, NY, 1995 6. Programming languages for mobile code Tommy Thorn ACM Computing Surveys, 29(3):213-239, 1997. Also Technical Report 1083, University of Rennes IRISA 7. Design Issues in Mobile Agent Programming Systems Neeran M. Karnik, Anand R. Tripathi IEEE Concurrency, July-Sep 1998

29 Autonomic Systems... Gaurav S. Kc... September 26th, 200229 Bibliography – Event systems 8. Generic Support for Distributed Applications Jean Bacon, Ken Moody, John Bates, Richard Hayton, Chaoying Ma, Andrew McNeil, Oliver Seidel, Mark Spiteri IEEE Computer, pages 68-77, March 2000 9. Host Groups: A Multicast Extension to the Internet Protocol S. E. Deering, D. R. Cheriton Network Working Group: RFC 0966 10. State of the Art Review of Distributed Event Models René Meier Dept. of Computer Science, Trinity College Dublin, Ireland, March 2000. Technical report TCD-CS- 2000-16 11. Achieving Expressiveness and Scalability in an Internet-Scale Event Notification Service Antonio Carzaniga, David S. Rosenblum, Alexander L. Wolf In Proceedings of the Nineteenth ACM Symposium on Principles of Distributed Computing (PODC 2000)

30 Autonomic Systems... Gaurav S. Kc... September 26th, 200230 Bibliography – System adaptation 12. A Model for Designing Adaptable Software Components George Heineman In 22nd Annual International Computer Software and Applications Conference, pages 121--127, Vienna, Austria, August 1998. In 22nd Annual International Computer Software and Applications Conference, pages 121--127, Vienna, Austria, August 1998 13. Language and Compiler Support for Adaptive Distributed Applications Vikram Adve, Vinh Vi Lam, Brian Ensink ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM 2001) Snowbird, Utah, June 2001 (in conjunction with PLDI2001) 14. Increasing the Confidence in Off-the-Shelf Components: A Software Connector-Based Approach Marija Rakic, Nenad Medvidovic Proceedings of SSR '01 on 2001 Symposium on Software Reusability : Putting Software Reuse in Context 15. A Cooperative Approach to Support Software Deployment Using the Software Dock Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf International Conference on Software Enginering, May 1999 16. The Illinois GRACE Project: Global Resource Adaptation through CoopEration Sarita V. Adve, Albert F. Harris, Christopher J. Hughes, Douglas L. Jones, Robin H. Kravets, Klara Nahrstedt, Daniel Grobe Sachs, Ruchira Sasanka, Jayanth Srinivisan, Wanghong Yuan In proceedings of Workshop on Self-Healing, Adaptive and self-MANaged Systems (SHAMAN) 2002

31 Autonomic Systems... Gaurav S. Kc... September 26th, 200231 Bibliography – Dynamic healing, Miscellaneous 17. Autonomic Computing Paul Horn, IBM Research 18. Software Rejuventation: Analysis, Module and Applications Yennun Huang, Chandra Kintala, Nick Kolettis, N. Dudley Fulton Proceedings of the 25th International Symposium on Fault-Tolerant Computing (FTCS-25), Pasadena, CA, pp. June 1995, pp. 381-390 19. IBM director software rejuvenation. White paper 20. Recovery Oriented Computing (ROC): Motivation, Definition, Techniques, and Case Studies David Patterson, Aaron Brown, Pete Broadwell, George Candea, Mike Chen, James Cutler, Patricia Enriquez, Armando Fox, Emre Kiciman, Matthew Merzbacher, David Oppenheimer, Naveen Sastry, William Tetzlaff, Jonathan Traupmann, Noah Treuhaft UC Berkeley Computer Science Technical Report UCB//CSD-02-1175, March 15, 2002 21. Reducing Recovery Time in a Small Recursively Restartable System George Candea, James Cutler, Armando Fox, Rushabh Doshi, Priyank Garg, Rakesh Gowda Appears in Proceedings of the International Conference on Dependable Systems and Networks (DSN-2002), June 2002 22. Rewind, Repair, Replay: Three R's to Dependability Aaron B. Brown, David A. Patterson To appear in 10th ACM SIGOPS European Workshop, Saint-Emilion, France, September 2002 23. Dynamic Class Loading in the Java(TM) Virtual Machine Sheng Liang, Gilad Bracha Conference on Object-oriented programming, systems, languages, and applications (OOPSLA'98)


Download ppt "Autonomic Systems... Gaurav S. Kc... September 26th, 20021 Autonomic Systems Autonomic: adaptive Autonomic: adaptive Self-healing: Self-healing: cluster."

Similar presentations


Ads by Google