Hi;

 

My initial email had the intended effect of generating some good discussion.  This email is an attempt on my part to try to distill what I took out of those discussions.  Feedback, corrections, and extensions are welcomed.

 

The main topics that seemed to generate significant controversy were the following:

·        The relationship of the BES “array” operations for interacting with multiple activities in a batch manner versus the (system management) interface that should be offered via the EPRs corresponding to individual activities. 

·        How BES should describe the available resources its associated execution container has – especially when that container might be a compute cluster or the BES service might be a meta-scheduler fronting multiple backend BES services.  Most of this controversy was really around the details of the JSDL specification and how to use it rather than around BES proper.

 

The rest of my suggestions did not seem to draw much fire (or maybe I’m just blanking it from my mind J).  

 

Given that, I would like to propose the following second draft of my proposal for how to change BES in order to support the HPC profile work:

·        Operations:

·        CreateActivity(jsdlDoc) à EPR

·        GetActivity(EPR) à activityState

·        GetActivityDescription(EPR) à JSDL doc

·        CancelActivity(EPR)

·        For non-WSRF versions: QueryResources() à schedulerResourcesInfoset

·        ‘schedulerResourcesInfoset’ is essentially the union of the RPs that would be exported in a WSRF-based version for describing the resources that are available for use at this BES service.  Note that a BES service might also want to expose other kinds of information that would not be returned from this operation – this operation is there so that clients can determine whether or not a BES service could potentially meet their needs and is necessary for meta-scheduling scenarios.

·        One might argue that one could use WS-Transfer for this operation.  However, since a BES service might want to export other kinds of information, this would require an extra level of indirection so that the BES service could expose which EPRs to use for retrieving which kinds of information.

·        Information model for describing available resources:

·        Define an infoset that can describe such resources.  The top-level element indicates which description standard is being employed by the infoset.  

·        Define one such description standard to be an array of JSDL descriptions for things like compute clusters.  Other, richer, description standards can be defined later.

·        Additional topics/summary:

·        Simple state diagram and no notion of array operations, data staging, suspension, or notifications in base BES case.

·        Extensions defined as separate profiles for array operations, data staging, suspension, and notifications.

·        Defer the topic of how the interface for (extension) array operations should relate to the interface supplied for querying/canceling individual activities.

·        RequestActivityStateChange replaced by operations specifying desired actions rather than states.  Base case supports activity cancellation; extensions can define additional operations (e.g. SuspendActivity).

·        Information model: small base set plus extensions model (which ones to include in the base set TBD)

·        All system management functions moved out to a separate interface.

·        Provenance log: (eventually) define an extension for a GetActivityProvenance operation.