Tentative candidacy exam paper list: A Framework for Developing Autonomic Systems

    Communication subsystems :: Mobile agents

  1. Design of the Ajanta System for Mobile Agent Programming
  2. [pdf ps]
    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.

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

  5. Experiences and Future Challenges in Mobile Agent Programming [pdf ps]
    Anand R. Tripathi, Tanvir Ahmed, Neeran M. Karnik
    Microprocessor and Microsystems 2001.

  6. Pickling threads state in the Java system
  7. [pdf ps]
    S. Bouchenak, D. Hagimont
    In Proc. of the Technology of Object-Oriented Languages and Systems (TOOLS), 2000.

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

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

  12. Design Issues in Mobile Agent Programming Systems
  13. [pdf ps]
    Neeran M. Karnik, Anand R. Tripathi
    IEEE Concurrency, July-Sep 1998.


    Communication subsystems :: Event systems

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

  16. Host Groups: A Multicast Extension to the Internet Protocol.
  17. [pdf ps]
    S. E. Deering, D. R. Cheriton
    Network Working Group: RFC 0966

  18. State of the Art Review of Distributed Event Models
  19. [pdf ps]
    René Meier
    Dept. of Computer Science, Trinity College Dublin, Ireland, March 2000. Technical report TCD-CS-2000-16.

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


    Components adaptation :: Static adaptation

  22. A Model for Designing Adaptable Software Components
  23. [pdf ps]
    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.

  24. Language and Compiler Support for Adaptive Distributed Applications
  25. [pdf ps]
    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).

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


    Components adaptation :: Runtime reconfiguration

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

  30. The Illinois GRACE Project: Global Resource Adaptation through CoopEration
  31. [pdf ps]
    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


    Dynamic healing

  32. Autonomic Computing
  33. [pdf ps]
    Paul Horn, IBM Research

  34. Software Rejuventation: Analysis, Module and Applications
  35. [pdf ps]
    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.

  36. IBM director software rejuvenation. White paper
  37. [pdf ps]

  38. Recovery Oriented Computing (ROC): Motivation, Definition, Techniques, and Case Studies
  39. [pdf ps]
    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.

  40. Reducing Recovery Time in a Small Recursively Restartable System
  41. [pdf ps]
    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

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


    Miscellaneous

  44. Dynamic Class Loading in the Java(TM) Virtual Machine
  45. [pdf ps]
    Sheng Liang, Gilad Bracha
    Conference on Object-oriented programming, systems, languages, and applications (OOPSLA'98)


Communication subsystems :: Mobile agents top

Mobile agents are ideal for the purpose of introducing newly-developed code modules into running systems. Such runtime code insertions are very useful for carrying out dynamic modifications of the systems. Mobile agents are generally distinct from other forms of agents: business agents, ai agents, web agents. Mobile agents are purely concerned with the mobility of code, intended for self-insertion and execution at a remote location on the network. Mobile code systems are also further distinguished by the granularity of the 'state transfer' ... systems based on 'weak mobility' typically concentrate on transfer of object state only, whereas 'strong mobility' systems are capable of transferring the exact thread state of the executing agent at the point that it initiates the transfer. These strong mobility systems are intended primarily for relocation of running processes for load-balancing, etc purposes. Security and integrity of software systems and their components is very important in order to be able to give any guarantees concerning the running of the system, and it is imperative that the integrity of any involved mobile code is verifiable.

Communication subsystems :: Event systems top

In a distributed environment with loosely coupled components, an asynchronous publish/subscribe event notification mechanism is the most cost-effective form of communication amongst the components. Typically, subscription to event publications by anonymous clients is the most natural way of achieving separation of concerns between the data publishers and subscribers, especially in a mobile environment where either the clients or servers could be contiually on the move, constantly changing their position. Architectures of event-systems with unnamed/anonymous clients have generally focused on subscription based propogation of messages between producers and end-users as a cost-effective measure. Semantic- or content-based routing is the most widely used approach whilst multicast can also be used to pre-allocate different channels for communication based on well-specified interests.

Components adaptation :: Static adaptation top

Complex distributed systems are rarely designed for prolonged use without major reconfigurations. Static checking of the semantics and side-effects of adaptations should be carried out for a number of reasons. The most important being the need to validate a given adaptation operation. This is comparable to the static type-checking prevalent in most advanced programming languages. Furthermore, given current technologies, it is not possible to carry out runtime modeling of the composition of systems. However, static modeling helps us determine the various set of possible runtime adaptations we can carry out without breaking the semantics and functionalities of individual components, and the system as a whole.

Components adaptation :: Runtime reconfiguration top

A mutable running system is obviously much more 'available' and 'survivable' than one with a rigid structure that fallibly assumes that its execution environment is going to be static and unchanging. There will be many reasons to warrant that any non-trivial, task-critical software system be continually self-reflecting and self-optimising. For systems built out of COTS components, an important part of its operation would require it to evaluate the performances of its components, and switch to alternatives as the situation dictates. Tradeoffs will have to be assessed, and decisions will have to be made, all done with the intent of reducing overall operation costs, while maximising availability, and productivity.

Dynamic healing top

As part of their runtime operations, lots of modern systems are constantly monitoring their execution, and making self-configuring to handle exception conditions. These often comprise the fault-tolerance, and self-tuning mechanisms incorporated into such systems. Certain approaches are reactive, where they tend to repair affected components *after* they cease functioning, whereas the more proactive systems actually poll their components, and periodically restart them for higher assurance of their availability, and lowered failure risk.

Miscellaneous top

This section includes relevant papers that did not fit in any of the other sections.