Remote Execution Units

Based on DOE Common Component Architure (CCA) design.
 
Components provide and use services by means of interfaces called Ports.
Each port is accessed over the network by means of Remote Method Invocations (RMI). 

 

Components can be linked together by connecting a "users port" to a "provides port".  The "using component" invokes methods of the provides port of the component it is connected to.  Components can also subscribe to and publish  XML SOAP events over the network.
Component Interface Ports are described by XML. Components are written in Java or C++ or Jython.
Components are "launched" on remote resources by either the Globus Gatekeeper, GSI-SSH or by Exec on the localhost

What about codes that are in Fortran?

The solution is to build an Application Proxy that is a real component that manages the execution of the application. The application proxy component is responsible for :
  • configuring input files needed by the application.   This is done by using the GSIFTP tools which are invoked by the application proxy via the COG kit.
  • launching the application and monitoring events generated by the application.  (the application can be modified to make calls to a simple event library that sends events to the proxy.  For example, file generation events.  The proxy can publish these to the standard event channel.
  • Application proxies can be linked together to provide a primative form of application linking (applications that communicate through files.)
The application proxy is launched an managed like any other CCA component.

The Generic Scriptable Proxy

The proxy can be a java or c++ program but it is often easiest to write it using the Generic Scriptable Component (also called Application Manager). This is a Java component that has an embedded Jython Engine, along with modules to make the scripts grid-enabled.

To use the scripable proxy, one must :

  • Write a Grid Jython script.
  • Launch the generic component
  • Download script to the Component
  • It Runs and produces output as a stream of Grid Events.

This link describes the Scriptable Application Managers in greater detail.

Component Launching and Connection

The Components are managed using Jython scripts. These scripts use the CCA Distributed Component API to launch and connect the Components. The following link provides the steps that a script needs to follow in order to manage the Components.