[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