[jsdl-wg] Fwd: JSDL action point 17: Extending JSDL

Michel Drescher Michel.Drescher at uk.fujitsu.com
Mon May 9 08:51:17 CDT 2005


Folks,

since this is something that is required for JSDL v1 and I  
unfortunately did not get Steve's comments on this yet, I decided to  
give the JSDL community the opportunity to comment on this before  
tomorrow's telecon.

Cheers,
Michel

Begin forwarded message:

> From: Michel Drescher <Michel.Drescher at uk.fujitsu.com>
> Date: 3 May 2005 17:45:49 BST
> To: Andrew Stephen McGough <asm at doc.ic.ac.uk>
> Subject: Re: JSDL action point 17: Extending JSDL
>
> Hi Steve,
>
> thx for the review. I now come up with the following, having added a  
> section for jsdl:other and an example for attribute extension:
>
> Extending JSDL
> ==============
> JSDL provides for the overall structure to define jobs. To extend JSDL  
> to best fit to the required needs, JSDL provides two mechanisms for  
> extension: Extending using attributes and extending using elements. In  
> general using extension mechanisms will break interoptability of JSDL  
> consumers and as such these mechanisms should be used spareingly and  
> only where need. It is recommended that people interested in extending  
> the functionality of JSDL should first verify that no other group has  
> provided an extension which meets their requirements.
>
> Attribute based extensions
> --------------------------
> Every JSDL element allows for additional attributes, as many as  
> needed, provided these attributes have a namespace other than the  
> normative namespaces JSDL defines.
>
>  Example:
> This example introduces an order that has to be followed when staging  
> in files (shortened for brevity):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <jsdl:JobDefinition xmlns="http://www.example.org/"
>     xmlns:jsdl="http://schemas.ggf.org/jsdl/2005/04/jsdl"
>     xmlns:o="http://www.example.org/order-of-execution">
>     <jsdl:JobDescription>
>         <jsdl:DataStaging o:order="1">
>             <jsdl:FileName>foo</jsdl:FileName>
>             <jsdl:CreationFlag>overwrite</jsdl:CreationFlag>
>              
> <jsdl:Source><jsdl:URL>http://www.nowhere.com/foo-file</jsdl:URL></ 
> jsdl:Source>
>         </jsdl:DataStaging>
>         <jsdl:DataStaging o:order="2">
>             <jsdl:FileName>bar</jsdl:FileName>
>             <jsdl:CreationFlag>overwrite</jsdl:CreationFlag>
>              
> <jsdl:Source><jsdl:URL>http:://www.nowhere.com/bar-file</jsdl:URL></ 
> jsdl:Source>
>         </jsdl:DataStaging>
>     </jsdl:JobDescription>
> </jsdl:JobDefinition>
>
>
>
> Element based extensions
> ------------------------
> Where applicable within the overall structure of the document, JSDL  
> allows for additional elements that are not normatively defined by  
> JSDL. As with attribute extension, these elements must assume a  
> namespace different than any namespace JSDL normatively defines.
>
> Example (shortened for brevity):
> The following example extends JSDL by introducing reservations:
>  <?xml version="1.0" encoding="UTF-8"?>
>  <jsdl:JobDefinition xmlns="http://www.example.org"
>       xmlns:jsdl="http://schemas.ggf.org/jsdl/2005/04/jsdl">
>      <jsdl:JobDescription>
>          <jsdl:Resource>
>              <jsdl:CPUCount> <!-- exactly 1 CPU -->
>                  <jsdl:Exact>1.0</jsdl:Exact>
>              </jsdl:CPUCount>
>              <jsdl:DiskSpace> <!-- At least 1 GB disk space -->
>                   
> <jsdl:LowerBoundedRange>1073741824.0</jsdl:LowerBoundedRange>
>              </jsdl:DiskSpace>
>              <ug:Reservation
>                   
> xmlns:ug="http://schemas.unigrids.org/2005/05/reservation">
>                  <ug:Ticket>h933fsolenri900wnmd90mm34</ug:Ticket>
>              </ug:Reservation>
>          </jsdl:Resource>
>      </jsdl:JobDescription>
>  </jsdl:JobDefinition>
>
> Semantics of jsdl:other
> -----------------------
> JSDL defines enumerations of values for processor architectures and  
> operating system. Both enumerations are not assumed to be exhaustively  
> complete. These enumerations are embedded in wrapper types to allow  
> for extension, "jsdl:CPUArchitectureType" and  
> "jsdl:OperatingSystemTypeType", respectively.
>
> To extend the enumerations, the special keyword "other" MUST be used  
> for the values of the elements "jsdl:CPUArchitectureName" and  
> "jsdl:OperatingSystemName", respectiveely, and the element extension  
> pattern as described above MUST be used.
>
> Example:
> Given there exist a CPU that natively executes Java Bytecode named  
> "JavaCPU", this CPU would have to be specified as follows in the  
> resource section of a JSDL instance document:
> ...
> <Resource>
>     <CPUArchitecture>
>         <CPUArchitectureName>other</CPUArchitectureName>
>         <ex:NewCPUTypes  
> xmlns:ex="http://www.example.org/NewCPUTypes">JavaCPU</ex:NewCPUTypes>
>     </CPUArchitecture>
> </Resource>
>





More information about the jsdl-wg mailing list