Last commit for NRLChanges.txt: 72c1330e44359f1fbf0b947d2964714bbc7523ac

more changes ..

gskc [2002-03-12 22:27:11]
more changes ..
  1. Report on the first iteration of the Survivor-NG system
  2. -------------------------------------------------------
  3.  
  4.  
  5. Authors: Gaurav S. Kc (gskc@cs.columbia.edu)
  6. Jean-Denis Greze (jg253@cs.columbia.edu)
  7.  
  8.  
  9. Overview
  10. --------
  11.  
  12. This report describes the first round of integration of the MLS
  13. Workflow system from Naval Research Lab, with the Worklets
  14. mobile-agent infrastructure from Programming Systems Lab, Columbia
  15. University. The iteration was completed towards the end of Summer
  16. 2001, and the primary idea behind the research incorporated replacing
  17. the default control-flow between different tasks in a given workflow
  18. runtime. Each task-processor node in the MLS system communicated data,
  19. and passed control to the following node(s) via Java-RMI.
  20.  
  21. The mobile-agent approach to increasing survivability in the MLS
  22. system was to employ a Worklet to dynamically determine which of
  23. several alternate task-processors to nominate for executing the next
  24. task. This implementation required the use of a host-adaptor that was
  25. aware of the context of the processor node in which it was embedded.
  26. This enabled the host-adaptor to figure out which processor node to
  27. dispatch the Worklet to, along with the results of the last task
  28. execution.
  29.  
  30.  
  31. Implementation Details
  32. ----------------------
  33.  
  34. The integration of the systems had to be accomplishsed with minimal
  35. changes to the MLS workflow system. We achieved this by taking the
  36. major players of the runtime system and subclassing them for added
  37. functionality, thus making our enhancements completely non-intrusive.
  38.  
  39. There were a few minor changes to the workflow editor; these and the
  40. majority of the changes to the runtime system were related to porting
  41. the system to a UNIX platform, e.g. replacing the hardcoded '\' as the
  42. filesystem separator with java.io.File.separatorChar, increasing the
  43. accessibility of certain member variables and methods in the key classes of
  44. the runtime system, etc.
  45.  
  46. The following are those files in the original MLS workflow editor and
  47. runtime systems that had relatively minor changes made to them:
  48. o wfruntime/Scheduler_Serv.java
  49. o wfruntime/ServiceHost_Serv.java
  50. o wfruntime/WFLoader.java
  51. o wfruntime/WFManager_Serv.java
  52.  
  53. o newdesigner/src/NRLRTGenerator.java
  54. o newdesigner/src/WorkflowTranslator.java
  55. o newdesigner/src/NetworkEditor.java
  56. o newdesigner/src/DomainTranslator.java
  57.  
  58. o datacentric/pattern/XmlWrapper.java
  59.  
  60.  
  61. Development
  62. -----------
  63.  
  64. The following class descriptions attempt to describe the development
  65. of the survivor system, version 1.0
  66.  
  67. *** wfruntime.psl:
  68. o HostAdapter.java - this interfaces between the local task
  69. processor's scheduler and the WVM used for inter-processor
  70. communication, and control-flow transfer via Worklet transportation.
  71.  
  72. o IPSLScheduler.java - derived from wfruntime.IScheduler; this is
  73. needed for the added functionality in each Scheduler_Serv
  74.  
  75. o ManagerHostAdapter.java - this interfaces between the workflow
  76. Manager and its embedded WVM. It contains the functionality needed to
  77. start off the workflow execution using network information collected
  78. by the Loader
  79.  
  80. o ParameterContainer.java - it contains the relevant input/output data
  81. passed by a taskProcessor upon completion of a task, to the next
  82. taskProcessor as part of its parameter set
  83.  
  84. o ParameterTransportWJ.java - derived from WorkletJunction, this is a
  85. WorkletJunction implementation that utilizes ParameterContainer to
  86. transfer the control from one processor to another, while also
  87. transporting the relevant parameters. It works in conjunction with the
  88. HostAdapter to replace the RMI-based control-transfer between
  89. processor nodes.
  90.  
  91. o PSLHostConfig.java - address-encapsulation object for performing
  92. lookups/additions of information on processors in the runtime. It
  93. determines the 'next' processor to give the task to.
  94.  
  95. o PSLScheduler_Serv.java - derived from wfruntime.Scheduler_Serv, it
  96. creates a HostAdapter and WVM, also retrieves WVM-addressing info
  97. about other nodes in the system. At the end of a task-execution, it
  98. overrides the default NRL flow-of-control to the next taskProcessor,
  99. instead, it will enable the Worklet to use the local HostAdapter to
  100. determine an appropriate taskProcessor to handle the next task.
  101.  
  102. o PSLServiceHost_Serv.java - derived from wfruntime.ServiceHost_Serv.
  103.  
  104. o PSLSpecParser.java - the default config file lists a [single]
  105. processor for each given task in the workflow design. By contrast, the
  106. survivable system needed to have multiple alternatives for each task,
  107. and this new information is stored in the same config file.
  108. PSLSpecParser is used to parse this new file format
  109.  
  110. o PSLWFLoader.java - derived from wfruntime.WFLoader, it
  111. retrieves/distributes WVM addressing info from all processor nodes in
  112. the network, and saves the data to persistent storage for use by the
  113. Manager.
  114.  
  115. o PSLWFManager_Serv.java - derived from wfruntime.WFManager_Serv, it
  116. loads the WVM addressing info as prepared by the Loader, and
  117. determines which node is capable of starting off the workflow
  118. execution.