adopting specific “standards” (conventions) to later in this article.
WS-RF implementation. Table 3 describes a job management interface based on the WS-RF and WS-Notification specifications. We use boldface type to indicate operation names that are defined in some specification associated with the approach in question. Those operations that are not in boldface are, by definition, not defined in any existing specification, and thus their syntax and semantics represent somewhat arbitrary choices, selected for illustrative purposes. We see that WS-RF and WS-Notification specifications provide five of the eight required functions.
The job handle returned upon success from operation 1 is represented as an EPR. A client receiving such a job handle can then use it as a destination for operations 2– 7. Note that requests are directed to the Web services address contained in the job handle EPR, which may or may not be the job factory service. This distinction is important because it allows for a logical and/or physical separation between the job factory and job management functions.
Operation 8 is sent directly to the job factory service, which is assumed to have access to information about all active jobs. The argument could be, for example, a specification (such as an XPath specification) identifying the jobs that are to be terminated (for example, all jobs created by Bloggs or all jobs that have exceeded their quota, and/or a list of EPRs denoting the jobs to be terminated).
WS-Transfer implementation. Table 4 describes a job management interface based on the use of the WS-Transfer and WS-Eventing specifications, which provide five of
the eight required operations. As in the WS-RF interface, the job handle returned upon success from operation 1 is represented as an EPR, and a client receiving such a job handle can then use it as a destination for operations 2– 7. Note that requests are directed to the Web services address contained in the job handle structure, which may or may not be the job factory service.
An alternative treatment of operation 3 is possible, albeit with some extra work, avoiding the need to transfer the entire state document. A new operation (for example, GetEPRtoPart) is defined, requesting that a new state representation be exposed, through a different EPR, representing parts of the original state representation. The Get() operation is then applied to this new EPR. WS-Transfer applications (and higher-level specifications such as WS-Management) often use this approach to address the lack of support for partial state access in WS-Transfer.
Operation 8 is sent directly to the job factory service, which is assumed to have access to information about all active jobs, as in the WS-RF case.
HTTP implementation. Table 5 summarizes the syntax of an HTTP implementation. Note that operation 5 can alternatively be addressed via some custom encoding or by using a system such as SMTP, Jabber, SMS, or Atom. HTTP DELETE cannot take any content, so there is no way to specify that a set of jobs (operation 8) can be deleted by using the HTTP DELETE message, except in the case when we delete all jobs in some predefined group (for example, “HTTP DELETE http://grid.org/Bloggs/Jobs” to delete all jobs created by Bloggs).
Note that whereas HTTP defines all the verbs used, the
1 “New job” carrying the job specification
2 “State” carrying job identifier(s)
3 “Status” carrying job identifier(s)
4 “New lifetime” carrying job identifier(s) and new lifetime(s)
5 “Subscription” carrying job identifier(s) and subscription information (for each)
6 “Suspension” carrying job identifier(s)
7 “Destroy request” carrying job identifiers(s)
8 “Destroy request” carrying job identifier(s) and query expression
May also silently accept the message and report on fault only. If proof of delivery is necessary, WS-ReliableMessaging can be used.
job-management-service any job service aware of the job identifier(s) any job service aware of the job identifier(s) any job service aware of the job identifier(s) any job service aware of the job identifier(s)
Identifier for the newly created job XML document with job state(s) XML document with job status(s) Acknowledgment* Acknowledgment*
any job service aware of the job identifier(s) any job service aware of the job identifier(s) any job service aware of the job identifier(s)
Acknowledgment*
Acknowledgment*
Acknowledgment*
References:
Archives