ViewVC logotype

Annotation of /trunk/projects/grid/cea/doc/CEAInterface.html

Parent Directory Parent Directory | Revision Log Revision Log

Revision 985 - (hide annotations)
Mon Apr 20 15:31:06 2009 UTC (12 years, 1 month ago) by harripa
File MIME type: text/plain
File size: 34807 byte(s)
add current (old!) CEA documents
1 harripa 985 <?xml version="1.0" encoding="iso-8859-1"?>
2     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3     <html xmlns="http://www.w3.org/1999/xhtml">
4     <head><title>CEA Interface (Working Draft)</title>
6     <script src="style/toc.js" language="JavaScript" type="text/javascript" ></script>
8     <link href="style/ivoa_document.css" rel="stylesheet" type="text/css" />
9     <!-- set the class of the body appropriately to change the status of the document -->
10     <link href="style/toc.css" rel="stylesheet" type="text/css" />
11     <link href="style/extra.css" rel="stylesheet" type="text/css" />
12     </head><body bgcolor="white" onload="toc()">
13     <div class="head">
14     <a href="http://www.ivoa.net/"><img alt="IVOA" src="http://www.ivoa.net/pub/images/IVOA_wb_300.jpg" height="169" width="300" /></a>
16     <h1>CEA Interfaces: How to Invoke Applications in the Common Execution Architecture <br />
17     Version 1.0 </h1>
19     <h2>IVOA Working Draft <!-- #BeginDate format:Sw1 -->30 October, 2007<!-- #EndDate -->
20     </h2>
23     <dl>
24     <dt>This version:</dt>
25     <dd><a href="http://www.ivoa.net/Documents/WD/GWS/CEAInterface-XXXX.html">
26     http://www.ivoa.net/Documents/WD/GWS/CEAInterface-XXXX.html</a></dd>
28     <dt>Latest version:</dt>
29     <dd><a href="http://www.ivoa.net/Documents/latest/CEAInterface.html">
30     http://www.ivoa.net/Documents/latest/CEAInterface.html</a></dd>
32     <dt>Previous versions</dt>
33     </dl>
35     <dl>
36     <dd><a href="http://www.ivoa.net/Documents/WD/ReR/VOResource-20060620.html">
37     </a></dd>
38     <dt>Authors:</dt>
39     <dd>
40     <a href="http://www.ivoa.net/twiki/bin/view/IVOA/PaulHarrison">
41     Paul Harrison</a>, Editor<br />
42     and the IVOA Grid and Web Services Working Group.
43     </dd>
44     </dl>
45     <hr />
46     </div>
48     <h2><a name="abstract" id="abstract">Abstract</a></h2>
50     This document describes the Common Execution Connector web service interface that may be used to invoke an application remotely that conforms to the Common Execution Architecture.
51     <div class="status">
52     <h2><a name="status" id="status">Status of this document</a></h2>
54     <p>This is an IVOA Working Draft for review by IVOA members and other
55     interested parties. It is a draft document and may be updated,
56     replaced, or obsoleted by other documents at any time. It is
57     inappropriate to use IVOA Working Drafts as reference materials or to
58     cite them as other than "work in progress."</p>
59     <p>Parts that the editor considers should be removed from the document are marked in <span class="draftdelete">red with a strike through line</span>, and parts to be expanded are <span class="draftedit">in green</span></p>
60     <p>
61     Comments on this document are due 15 December 2006 for consideration in the next version of this
62     document. They should be sent to
63     <a href="mailto:registry@ivoa.net">registry@ivoa.net</a>,
64     a mailing list with a
65     <a href="http://lists.w3.org/Archives/Public/public-webont-comments/">public
66     archive</a> or on the
67     <a href="http://www.ivoa.net/twiki/bin/view/IVOA/RegDMApplications">VOApplication
68     twiki discussion page</a>. General discussion of related technology is
69     also welcome on the
70     <a href="http://www.ivoa.net/twiki/bin/view/IVOA/IVOARegWp03">Rwp03
71     wiki site</a>. </p>
73     <p>
74     A list of <a href="http://www.ivoa.net/Documents/">current IVOA
75     Recommendations and other technical documents</a> can be found at
76     http://www.ivoa.net/Documents/. </p>
77     </div>
78     <h2><a id="acknowledge" name="acknowledge">Acknowledgements</a></h2>
80     <p>This document has been developed with support from the <a href="http://www.pparc.ac.uk/">UK Particle Physics and Astronomy
81     Research Council (PPARC)</a>, and from the
82     <a href="http://fp6.cordis.lu/fp6/home.cfm">European Commission's Sixth
83     Framework Program</a> via the <a href="http://eurovotech.org/">VOTech project</a></p>
85     <a name="conf" id="conf">
86     <h3>Conformance-related definitions</h3></a>
88     The words "MUST", "SHALL", "SHOULD", "MAY", "RECOMMENDED", and
89     "OPTIONAL" (in upper or lower case) used in this document are to be
90     interpreted as described in IETF standard, RFC 2119
91     <a href="#should">[RFC 2119]</a>. <p>
93     The <a name="d:vo" id="d:vo"><strong>Virtual Observatory (VO)</strong></a> is
94     general term for a collection of federated resources that can be used
95     to conduct astronomical research, education, and outreach.
96     <a name="d:ivoa" id="d:ivoa">The</a> <a href="http://www.ivoa.net/"><strong>International
97     Virtual Observatory Alliance (IVOA)</strong></a> is a global
98     collaboration of separately funded projects to develop standards and
99     infrastructure that enable VO applications.</p>
100     <a name="synnot" id="synnot"><h3>Syntax Notation Using XML Schema</h3></a>
102     <p>The eXtensible Markup Language, or XML, is document syntax for marking
103     textual information with named tags and is defined by the
104     World Wide Web Consortium (W3C) Recommendation,
105     <a href="http://www.w3.org/TR/REC-xml">XML 1.0</a>
106     [<a href="#xml">XML</a>]. The set of XML tag names and the syntax
107     rules for their use is referred to as the document schema. One way to
108     formally define a schema for XML documents is using the W3C standard
109     known as XML Schema [<a href="#schema">Schema</a>].</p>
111     <p>
112     This document defines the interfaces to CEA servers using Web Services Description Language (WSDL) [<a href="#WSDL">WSDL</a>] and schema using XML Schema. The
113     full WSDL and Schema documents are listed in the Appendices <a href="#appA"></a>. The WSDL files additionally import schema that were defined in the CEAApplication Data Model standard [<a href="#CEAPP">CEAAPP</a>].</p>
115     <p><span class="draftedit">Note that as this document represents a draft the cea: and ceab: namespaces in attached schema and instance documents have the string &quot;rc&lt;n&gt;&quot; appended where &quot;rc&quot; stands for release candidate and &lt;n&gt; is an integer representing the iteration number of the release candidate draft of the associated namespace.
116     <!-- References to (local) elements are further
117     labelled by enclosing the name in the XML tag brackets, as in
118     <code>&lt;vr:identifier&gt;</code>. -->
119     </span>
120     <!-- References to (local) elements are further
121     labelled by enclosing the name in the XML tag brackets, as in
122     <code>&lt;vr:identifier&gt;</code>. -->
123     </p>
124     <div class="contents">
125     <h2><a id="contents" name="contents">Contents</a></h2>
126     <div class="mmhide_toc" id="toc"><div id="toccnt">
127     <ul><ul>
128     <li><a href="#jump1">Introduction</a></li>
129     </ul></ul><ul><ul>
130     <li><a href="#jump13">The VOApplication Data Model</a></li>
131     </ul></ul><ul><ul><ul>
132     <li><a href="#jump17">Core VOApplication Metadata</a></li>
133     </ul></ul></ul><ul><ul>
134     <li><a href="#jump19">Details of the VOApplication Schema </a></li>
136     </ul></ul><ul><ul>
137     <li><a href="#jump25">Appendix A: The complete VOApplication Schema</a></li>
138     </ul></ul><ul><ul>
139     <li><a href="#jump31">Appendix B: Change History</a></li>
140     </ul></ul><ul><ul>
141     <li><a href="#jump35">References</a></li>
142     </ul></ul>
143     </div></div></div>
144     <div id="main">
145     <h2><a name="Intro" id="Intro">Introduction</a></h2>
147     <p>The concept of a Common Execution Architecture (hereafter CEA) was introduced in [<a href="#CEA">CEA</a>]. This document represents a formal publication of the interfaces to a service that provides the execution capability of applications that can be described by the CEA application model that is now defined in a separate standard [<a href="#CEAPP">CEAAPP</a>]. This document defined the Common Execution Connector SOAP web service that was described initially in [CEA], as well as a new [REST] interface, both of which are conformant with the IVOA Universal Worker Service [<a href="#UWS">UWS</a>] pattern. The fact that many various kinds of application can be exposed with a single web service definition and application model is an important feature of CEA, as it allows universal server and client side software facades to be created that hide the details of the web service implementation, which in turn simplifies the adoption into existing frameworks such as workflows.</p>
149     <h2><a name="model" id="model">Design</a></h2>
150     <p>The rationale behind creating a Common Execution Architecture have been expounded in [CEA] and [UWS] in detail, so here only the most important features will be highlighted.</p>
151     <ul>
152     <li> Asynchrony - the interaction between the client and the server must be asynchonous to allow for network timeouts/failures during the time that the application execution is occuring. This necessarily means that there is a not a simple call/response interaction between the client and the server, but rather a series of calls and responses make up the complete interaction to invoke an application and obtain the results. </li>
153     <li>Independence from a particular implementation technology - The design of the application definition and the description of the interface was intentionally kept at a relatively &quot;high&quot; level so that specific implementations could be created using particular technologies, but allowing essentially the same programatic interface (API) to be used on both the client and the server ends of the interaction. This document describes two such implementation technologies, SOAP web services and REST style web services. </li>
154     </ul>
155     <h3>Relationship to UWS</h3>
156     <p>The Universal Worker Service [UWS] pattern was originally inspired by the early CEA implementation within the Astrogrid project, which provided a pattern for asynchronous interaction and data staging with remote services using a SOAP web service interface. The UWS pattern attempts to abstract these ideas slightly further so that they might be reapplied in other services, and as such exists only as a document, there are no concrete 'pure' UWS implementations. The UWS pattern has had a separate track of development, notably the addition of a REST profile, which in-turn is being fed-back into this CEA standard. </p>
157     <h3>Interactions</h3>
158     <p>The interaction between the CEA client and the CEA server follows a similar pattern for both the interfaces. There are some extra intermediate steps that may be called between these steps, but the steps listed below are the essential interactions that can be performed on either interface for the complete execution of a job and retrieval of the results. </p>
159     <ol>
160     <li>Client requests that a new &quot;job&quot; be created passing a &lt;tool&gt; element that describes the application to run and the parameters to pass to it. The Client receives a job identifier in return that it can use to identify this particular job in subsequent calls.</li>
161     <li>Client requests that the job be started.</li>
162     <li>Client repeatedly inquires about the status of the job until it is informed that the job is finished. </li>
163     <li>Client retrieves the results from the job. </li>
164     </ol>
165     <p>The job goes through several phases during this interaction. The first 4 phases that are listed are what occurs for normal successful execution.</p>
166     <dl>
167     <dt>PENDING</dt>
168     <dd>The initial phase when the client has just requested the job to be created, and the parameters are being validated.</dd>
169     <dt>QUEUED</dt>
170     <dd>The job has been validated and accepted, but no request to start the job has yet been received</dd>
171     <dt>EXECUTING</dt>
172     <dd>The job is running, after the signal to start has been given.</dd>
173     <dt>COMPLETED</dt>
174     <dd>The job has successfully completed.</dd>
175     <dt>ERROR</dt>
176     <dd>An error of some kind has occured</dd>
177     <dt>UNKNOWN</dt>
178     <dd>The job is in an unknown state - no clear error signal has been received, but nor has it completed within an expected time.</dd>
179     <dt>SUSPENDED</dt>
180     <dd>The job has been requested to be executed by the client, but the server has not yet started the job, perhaps because of lack of available resources. (cf QUEUED). The job will be automatically started when resources become available without client intervention.</dd>
181     <dt>HELD</dt>
182     <dd>The job has been executing, but the server has suspended the job. The job will not be restarted without client intervention. </dd>
183     </dl>
184     <h2>Interfaces</h2>
185     <p>There are two possible interfaces to a CEA server using either Simple Object Access Protocol [<a href="#SOAP">SOAP</a>] or &quot;Representational State Transfer&quot; [<a href="#REST">REST</a>] technologies. A CEA server must implement one of these interfaces and should ideally implement both so that a CEA client has a choice to use whichever is most convenient in the given situation. These two interfaces are described in more detail below. </p>
186     <h3>Common Execution Connector SOAP</h3>
187     <p>The SOAP interface that implements the UWS pattern in CEA is called the Common Execution Connector and is described by the WSDL contract in <a href="#CECWDSL">Appendix A</a>. The CEA SOAP interface adds a &quot;call-back&quot; feature to the UWS pattern, that means that the client does not have to continually poll the server to obtain job status, but instead can register to be &quot;called-back&quot; when the job status has changed. In large grids this can be beneficial as it cuts down on network traffic and cpu cycles compared with polling. There are two such call backs that can be registered.</p>
188     <ol>
189     <li>A progress listener, which can be used to receive messages about the current status of the job. This is registered with the registerProgressListener() operation of the CommonExecutionConnector port. The operation expects the endpoint of a server that implements the CEAJobMonitor WSDL contract (see <a href="#JOBMONWSDL">Appendix C</a>) which implements a one. </li>
190     <li>A results listener, which can receive the results when the job has completed. This is registered with the registerResultsListener() operation of the CommonExecutionConnector port. The operation expects the endpoint of a server that implements the CEAResultsListener WSDL contract (see <a href="#RESULTNWSDL">Appendix D</a>). </li>
191     </ol>
192     <p>A typical interactaction with the CommonExecutionConnetor interface is illustrated in the following UML diagram.</p>
193     <p><img src="images/CommonExecutionConnectionSequence.png" alt="CommonExecutionConnector UML sequence diagram" width="588" height="952" /> </p>
194     <p>Each operation in the CommonExecutionConnector interface is described in more detail in the following sections.<span class="draftedit">TBC</span></p>
195     <h4>createJob</h4>
196     <p>The job is specified by passing a tool document.</p>
197     <p>Note on output parameters. The output parameters need not usually be sent of course, as they are output parameters! However, to instruct the CEA server to automatically stage the output to somewhere the output parameter should be sent with the indirect attribute set to true and the value set to the URI of the location where it is desired that the output should be sent. If this is not done the CEA server will attempt to return results in-line in the getResults SOAP call. </p>
198     <h4>registerProgressListener</h4>
199     <p>This allows the CEA client to register the end-point of a service that progress log messages may be sent to. This does not stop a client also requesting similar messages by polling with a getPhase call. The frequency of messages that are sent is left as an implementation detail for the CEA server, but it would be useful to sent messages when for instance;</p>
200     <ul>
201     <li>the execution phase changes.</li>
202     <li>a new result of the execution becomes available, in cases where some results may be available before completion of the entire job. </li>
203     </ul>
204     <h4>registerResultsListener</h4>
205     <p>Allows the CEA client to register the end-point of a service that the results can be sent to when ready. The client may also request results explicitly by using the getResults call. </p>
206     <h4>getResults</h4>
207     <p>Request the results from an execution. These will be returned in a ceat:result-list-type structure, which may return results</p>
208     <ul>
209     <li>in-line as the value of the result element</li>
210     <li>indirectly by pointing to an external URL. e.g. to a VOSpace location. </li>
211     </ul>
212     <h4>delete</h4>
213     <p>Request that the job be deleted. If the job is currently running then it will be aborted and the record of the job deleted from the CEA server. If the job has already completed then this call will delete any record of the job from the CEA server and free any resources associated with the job. </p>
214     <h4>getPhase</h4>
215     <p>Returns the execution phase of the job, along with some associated metadata about the current status of the job. </p>
216     <h4>getExecutionSummary</h4>
217     <p>Returns a detailed summary of the job including the input parameters and the results. </p>
218     <h4>setTerminationTime</h4>
219     <p>Sets the time at which the CEA server will automatically delete the record of the job and also reclaim any resources associated with the job. After this time it is not possible any longer to retrieve any metadata about or results from the job. Any results that have been staged to another storage location will of course not be deleted. </p>
220     <h3>UWS-PA REST <span class="draftedit">(preliminary)</span></h3>
221     <p>A REST interface to CEA is described in the table below. The operation names are the same as for the corresponding operation in the SOAP interface. The namespace prefixes are</p>
222     <table border="1">
223     <tr>
224     <th scope="col">prefix</th>
225     <th scope="col">namespace</th>
226     <th scope="col">schema file </th>
227     </tr>
228     <tr>
229     <td>ceab </td>
230     <td>http://www.ivoa.net/xml/CEA/base/v1.0rc3</td>
231     <td>located in appendix C of [CEAAPP] </td>
232     </tr>
233     <tr>
234     <td>ceat </td>
235     <td>http://www.ivoa.net/xml/CEA/types/v1.0rc1</td>
236     <td>located in Appendix E of this document. </td>
237     </tr>
238     </table>
239     <p>&nbsp; </p>
240     <table border="1">
241     <tr>
242     <th scope="col">Operation</th>
243     <th scope="col">URI</th>
244     <th scope="col">HTTP Method </th>
245     <th scope="col">Example Input </th>
246     <th scope="col">Example Output </th>
247     </tr>
248     <tr>
249     <td>createJob</td>
250     <td>/jobs</td>
251     <td>POST</td>
252     <td><div class="exampleInner">
253     <p>&lt;ceat:tool id=&quot;ivo://dummy&quot; interface=&quot;test&quot;&gt;<br />
254     &lt;input&gt;<br />
255     &lt;parameter id=&quot;p1&quot;&gt;<br />
256     &lt;array&gt;<br />
257     &lt;value&gt;1&lt;/value&gt;<br />
258     &lt;value&gt;2&lt;/value&gt;<br />
259     &lt;/array&gt;<br />
260     &lt;/parameter&gt;<br />
261     &lt;parameter id=&quot;p2&quot;&gt;<br />
262     &lt;value&gt;hello&lt;/value&gt;<br />
263     &lt;/parameter&gt;<br />
264     &lt;/input&gt;<br />
265     &lt;output&gt;<br />
266     &lt;parameter id=&quot;out&quot; indirect=&quot;true&quot;&gt;<br />
267     &lt;value&gt;vos://org.test!vospace/mydata&lt;/value&gt;<br />
268     &lt;/parameter&gt;<br />
269     &lt;/output&gt;<br />
270     &lt;/ceat:tool&gt;</p>
271     </div></td>
272     <td><div class="exampleInner">&lt;ceat:jobId&gt;1234&lt;/ceat:jobId&gt;</div></td>
273     </tr>
274     <tr>
275     <td>execute</td>
276     <td>/jobs/{jobId}/phase</td>
277     <td>POST</td>
278     <td><div class="exampleInner">&lt;ceat:phase&gt;EXECUTING&lt;/ceat:phase&gt;</div></td>
279     <td><div class="exampleInner">&lt;ceat:phase&gt;QUEUED&lt;/ceat:phase&gt;</div></td>
280     </tr>
281     <tr>
282     <td>getPhase</td>
283     <td>/jobs/{jobId}/phase</td>
284     <td>GET</td>
285     <td>NONE</td>
286     <td><div class="exampleInner">&lt;tns:getPhaseResponse&gt;<br />
287     &lt;ceat:phase&gt;QUEUED&lt;/ceat:phase&gt;<br />
288     &lt;ceat:content&gt;Job parameters valid&lt;/ceat:content&gt;<br />
289     &lt;ceat:level&gt;info&lt;/ceat:level&gt;<br />
290     &lt;ceat:source&gt;&lt;/ceat:source&gt;<br />
291     &lt;ceat:timestamp&gt;2007-05-01T12:00:00&lt;/ceat:timestamp&gt;<br />
292     &lt;/tns:getPhaseResponse&gt;</div></td>
293     </tr>
294     <tr>
295     <td>getResults</td>
296     <td>/jobs/(jobid)/results</td>
297     <td>GET</td>
298     <td>NONE</td>
299     <td><div class="exampleInner">&lt;tns:getResultsResponse&gt;<br />
300     &lt;!-- a standard indirect result that the CEA server has paced in VOspace --&gt;<br />
301     &lt;ceat:result id=&quot;output&quot; indirect=&quot;true&quot;&gt;&lt;value&gt;vos://org.test!vospace/mydata&lt;/value&gt;&lt;/ceat:result&gt;<br />
302     &lt;!-- a direct result that is retuned in-line --&gt;<br />
303     &lt;ceat:result id=&quot;mean&quot;&gt;&lt;value&gt;45.32&lt;/value&gt;&lt;/ceat:result&gt;<br />
304     &lt;!-- an indirect result that is returned as a sub uri of the main results uri. --&gt;<br />
305     &lt;!-- would be nice to be able to use a xlink:href--&gt;<br />
306     &lt;ceat:result id=&quot;image&quot; indirect=&quot;true&quot;&gt;&lt;value&gt;./image&lt;/value&gt;&lt;/ceat:result&gt;<br />
307     &lt;/tns:getResultsResponse&gt;</div></td>
308     </tr>
309     <tr>
310     <td>getExecutionSummary</td>
311     <td>/jobs/(jobId)</td>
312     <td>GET</td>
313     <td>NONE</td>
314     <td><div class="exampleInner">&lt;tns:getExecutionSummaryResponse&gt;<br />
315     &lt;ceat:application-name&gt;ivo://dummy&lt;/ceat:application-name&gt;<br />
316     &lt;ceat:jobId&gt;1234&lt;/ceat:jobId&gt;<br />
317     &lt;ceat:input-list&gt;<br />
318     &lt;ceat:parameter id=&quot;p1&quot;&gt;<br />
319     &lt;array&gt;<br />
320     &lt;value&gt;1&lt;/value&gt;<br />
321     &lt;value&gt;2&lt;/value&gt;<br />
322     &lt;/array&gt;<br />
323     &lt;/ceat:parameter&gt;<br />
324     &lt;ceat:parameter id=&quot;p2&quot;&gt;<br />
325     &lt;value&gt;hello&lt;/value&gt;<br />
326     &lt;/ceat:parameter&gt;<br />
327     &lt;/ceat:input-list&gt;<br />
328     &lt;ceat:result-list&gt;<br />
329     &lt;!-- a standard indirect result that the CEA server has paced in VOspace --&gt;<br />
330     &lt;ceat:result id=&quot;output&quot; indirect=&quot;true&quot;&gt;<br />
331     &lt;value&gt;vos://org.test!vospace/mydata&lt;/value&gt;<br />
332     &lt;/ceat:result&gt;<br />
333     &lt;!-- a direct result that is retuned in-line --&gt;<br />
334     &lt;ceat:result id=&quot;mean&quot;&gt;<br />
335     &lt;value&gt;45.32&lt;/value&gt;<br />
336     &lt;/ceat:result&gt;<br />
337     &lt;!-- an indirect result that is returned as a sub uri of the main results uri. --&gt;<br />
338     &lt;!-- would be nice to be able to use a xlink:href --&gt;<br />
339     &lt;ceat:result id=&quot;image&quot; indirect=&quot;true&quot;&gt;<br />
340     &lt;value&gt;./image&lt;/value&gt;<br />
341     &lt;/ceat:result&gt;<br />
342     &lt;/ceat:result-list&gt;<br />
343     &lt;ceat:phase&gt;COMPLETED&lt;/ceat:phase&gt;<br />
344     &lt;ceat:startTime&gt;2007-05-01T12:30:21&lt;/ceat:startTime&gt;<br />
345     &lt;ceat:endTime&gt;2007-05-01T13:17:11&lt;/ceat:endTime&gt;<br />
346     &lt;ceat:termination&gt;2007-07-01T00:00:00&lt;/ceat:termination&gt;<br />
347     &lt;/tns:getExecutionSummaryResponse&gt;</div></td>
348     </tr>
349     <tr>
350     <td>delete</td>
351     <td>/jobs/(jobId)</td>
352     <td>DELETE/POST</td>
353     <td>NONE</td>
354     <td>NONE</td>
355     </tr>
356     </table>
357     <p>&nbsp;</p>
358     <h4>Differences from UWS 0.3 Draft implementation [UWS]</h4>
359     <p>The REST interface for CEA follows [UWS] except where noted below;</p>
360     <ul>
361     <li>GET on the job returns a complex structure</li>
362     <li>starting the job is done by POST to the phase, rather than a POST to the quote.</li>
363     <li>quote not supported (yet) </li>
364     <li> some tension between POST of xml format and using application/x-www-formurlencoded documents - perhaps both could be allowed for some operations. </li>
365     <li>conflict with desire to maintain compatibility with SOAP interface and xlink:href </li>
366     </ul>
367     <h3>Chosing between the SOAP and REST interfaces.</h3>
368     <p>There factors involved for a CEA client in making a choice between using either the SOAP or the REST versions of the interface are;</p>
369     <ul>
370     <li>availability of client tools - e.g. SOAP toolkit.</li>
371     <li> choice of security method.</li>
372     <li>desire/ability to set up listeners. </li>
373     </ul>
374     <h2>Registering CEA Services</h2>
375     <p>The registration of CEA components is covered in detail in [CEAAPP], however it is worth noting some specific points here about service endpoints.</p>
376     <ul>
377     <li>the two different interfaces have their own types in VOCEA.xsd, and should be registered individually with these types in the &lt;capability&gt; of the resource. </li>
378     <li>the &lt;accessURL&gt; that is registered for the REST service is the one that starts at the path element above /(jobs)/ level of the URI interface hierarchy as described in [UWS], and that ./jobs is the concrete representation of the (jobs) level of the path in that specification. </li>
379     </ul>
380     <h2>Security</h2>
381     <p>CEA implementations generally follow the security recommendations of the IVOA GWS group [SSO]. Specifically for the SOAP version of the interface, message level security using WS-Security is implemented, and for the REST version transport layer TLS security is used. At a minimum CEA servers should check client authentication via these means. A CEA server should publish it's authorization policy, but as a minimum policy the server should allow read and write access only to the creator of a job.</p>
382     <h2>CEA as a Meta-Standard </h2>
383     <p>This standard together with the CEA Application Model standard [<a href="#CEAPP">CEAAPP</a>] provide a complete description of how to describe and invoke a &quot;parameterized application&quot; utilizing agreed IVOA patterns [UWS]. It is true that many other IVOA standards e.g. SIAP, SSAP, TAP, SNAP also fall into this general category, and as such it would be possible to re-cast such standards in terms of CEA, and as such CEA would take on the role of a meta-standard. The advantages would be</p>
384     <ul>
385     <li>The various protocol standards could concentrate on defining the semantics of parameters
386     <ul>
387     <li>the standards would be smaller</li>
388     <li>they would automatically pick up latest developments in e.g.
389     <ul>
390     <li>asynchony</li>
391     <li>registration</li>
392     <li>security</li>
393     <li>REST vs. SOAP issues </li>
394     <li>better description of which optional services that a service actually supports.</li>
395     <li>standardized interaction with VOSpace.</li>
396     </ul>
397     </li>
398     </ul>
399     </li>
400     <li>Software writers could benefit from being able to create uniform components that would be reusable for different high level protcols</li>
401     <li>IVOA process would be more efficient - currently the various standards are not synchronized. </li>
402     <li> Would enable to work of the IVOA GWS WG to be propagated in a uniform fashion to the other WGs. </li>
403     </ul>
404     <div class="schemaOuter">
405     <div class="schemaHeader">Example of SIA defined as CEA application</div>
406     <div class="schemaInner">
407     <iframe src="schema/siaCEA.xml" title="schema/siaCEA.xml" width="100%" height="600">This should be the contents of schema/siaCEA.xml</iframe>
408     </div>
409     </div>
410     <h2>Possible Extensions to CEA Interfaces </h2>
411     <p>There are some extensions to the CEA interface definitions that could be made, that would detract from the &quot;purity&quot; of the original design, but might make the interfaces more easily usable in many practical deployment scenarios. </p>
412     <ul>
413     <li>Allow the original job to be created in the REST interface with a POST containing a standard post variables to represent the parameters rather than having to POST the &lt;tool&gt; document. There are some practical problems in representing whether parameters are indirect or not, and representing array valued parameters, but naming conventions could overcome these. It would probably also be beneficial (though even less RESTful) to allow the parameters to be encoded in the URL and use http GET to create the job - thus allowing easy &quot;bookmarking&quot; of a particular invocation request. </li>
414     <li>In the SOAP interface, expose each registered application as a single synchonously callable SOAP RPC style web service. </li>
415     </ul>
416     <h2>Appendix A: The complete Common Execution Controller WSDL 1.1 </h2>
417     <div class="schemaOuter">
418     <div class="schemaHeader"><a name="CECWDSL" id="CECWSDL">The Complete Common Execution Controller WSDL </a></div>
419     <div class="schemaInner">
420     <iframe src="ceaws/CommonExecutionConnnector.wsdl" title="VOApplication-v1.0.xsd schema" width="100%" height="500">This should be the contents of ceaws/CommonExecutionConnnector.wsdl</iframe>
421     </div>
422     </div>
423     <p>&nbsp;</p>
424     <h2>Appendix B: Preliminary REST WSDL 2.0 </h2>
425     <p>This appendix contains an attempt to represent the REST interface with WSDL. This has been done using [<a href="#WSDL2">WSDL2</a>] as this new version of the standard has better support for the representation of REST services in a standard fashion within the WSDL document. </p>
426     <div class="schemaOuter">
427     <div class="schemaHeader"><a name="RESTWSDL" id="RESTWSDL">The Complete Common Execution Controller WSDL </a></div>
428     <div class="schemaInner">
429     <iframe src="ceaws/CommonExecutionConnnector.wsdl" title="VOApplication-v1.0.xsd schema" width="100%" height="500">This should be the contents of ceaws/CommonExecutionConnnector.wsdl</iframe>
430     </div>
431     </div>
433     <h2>Appendix C: The complete CEAJobMonitor WSDL 1.1</h2>
434     <div class="schemaOuter">
435     <div class="schemaHeader"><a name="JOBMONWSDL" id="JOBMONWSDL">The Complete CEAJobMonitor WSDL </a></div>
436     <div class="schemaInner">
437     <iframe src="ceaws/CEAJobMonitor.wsdl" title="CEAJobMonitor.wsdl wsdl" width="100%" height="500">This should be the contents of ceaws/CEAJobMonitor.wsdl</iframe></div>
438     </div>
439     <h2>Appendix D: The complete CEAResultsListener WSDL 1.1</h2>
440     <div class="schemaOuter">
441     <div class="schemaHeader"><a name="RESULTWSDL" id="RESULTWSDL">The Complete CEAResultsListener WSDL </a></div>
442     <div class="schemaInner">
443     <iframe src="ceaws/CEAResultsListener.wsdl" title="CEAResultsListener.wsdl wsdl" width="100%" height="500">This should be the contents of ceaws/CEAResultsListener.wsdl</iframe></div>
444     </div>
446     <h2>Appendix E: CEATypes Schema</h2>
447     <div class="schemaOuter">
448     <div class="schemaHeader"><a name="CEATYPES" id="CEATYPES">The CEATypes.xsd schema that is required by the WSDL files above </a></div>
449     <div class="schemaInner">
450     <iframe src="ceaws/CEATypes.xsd" title="CEATypes.xsd schema" width="100%" height="500">This should be the contents of ceaws/CEATypes.xsd</iframe>
451     </div>
452     </div>
454     <h2>Appendix E: Change History</h2>
455     <p>This is the first version that has been made public - some content is based on [CEA]. </p>
456     <h2><a id="References">References</a></h2>
458     <dl>
459     <dt> <a name="should" id="should">[RFC 2119]</a> </dt>
460     <dd> Bradner, S. 1997. <cite><a href="http://www.ietf.org/rfc/rfc2119.txt">
461     Key words for use in RFCs to Indicate Requirement
462     Levels</a></cite>, IETF RFC 2119,
463     <code>http://www.ietf.org/rfc/rfc2119.txt</code> </dd>
465     <dt> <a name="RM" id="RM">[RM]</a> </dt>
466     <dd> Hanisch, Robert (ed.) 2004. <cite><a href="http://www.ivoa.net/Documents/REC/ResMetadata/RM-20040426.htm"> Resource Metadata for the Virtual Observatory, Version 1.01</a></cite>, IVOA Recommendation, <code>http://www.ivoa.net/Documents/REC/ResMetadata/RM-20040426.htm</code> </dd>
467     <dt> <a name="VR" id="VR">[VR]</a> </dt>
468     <dd> Plante, Ray (ed.) 2006. <a href="http://www.ivoa.net/Documents/latest/VOResource.html">VOResource: an XML Encoding Schema for Resource Metadata</a>, IVOA Working Draft, <code>http://www.ivoa.net/Documents/latest/VOResource.html</code></dd>
469     <dt> <a name="VSTD" id="VSTD">[VSTD]</a> </dt>
470     <dd> Harrison, Paul. (ed.) 2006. <a href="http://www.ivoa.net/Documents/latest/VOStandard.html">VOStandard: an XML Encoding Schema for IVOA Standards</a>, IVOA Working Draft, <code>http://www.ivoa.net/Documents/latest/VOResource.html</code></dd>
471     <dt> <a name="CEA" id="CEA">[CEA]</a> </dt>
472     <dd> Harrison, Paul. 2005. <a href="http://www.ivoa.net/Documents/latest/CEA.html">A Proposal for a Common Execution Architecture </a>, IVOA Working Draft, <code>http://www.ivoa.net/Documents/latest/CEA.html</code></dd>
473     <dt></dt>
474     <dt> <a name="UWS" id="UWS">[UWS]</a> </dt>
475     <dd> Rixon, Guy. 2007. <a href="http://www.ivoa.net/internal/IVOA/IvoaGridAndWebServices/UWS-0.3.pdf">Universal Worker Service, V0.3</a>, IVOA Working Draft, <code>http://www.ivoa.net/internal/IVOA/IvoaGridAndWebServices/UWS-0.3.pdf</code></dd>
476     <dt></dt>
477     <dt>&nbsp;</dt>
478     <dt>&nbsp; </dt>
479     <dt><a name="CEAPP" id="CEAPP">[CEAAPP]</a> </dt>
480     <dd> Harrison, Paul. 2007. <a href="http://www.ivoa.net/Documents/latest/CEAApplicationDM.html">CEA Application Model: A model and XML Encoding Schema for Applications in the Common Execution Architecture</a>, IVOA Working Draft, <code>http://www.ivoa.net/Documents/latest/CEAApplicationDM.html</code></dd>
481     <dt>&nbsp; </dt>
482     <dt> <a name="xml" id="xml">[xml]</a>
483     </dt>
484     <dd> Bray, Tim, Paoli, Jean, Sperberg-McQueen, C. M., Maler, Eve,
485     Yergeau, Francois, Cowan, John (editors) 2006,
486     <cite><a href="http://www.w3.org/TR/xml11/">Extensible Markup Language (XML) 1.1 (Second Edition)</a></cite>,<code>,http://www.w3.org/TR/xml11/</code>
488     </dd><dt> <a name="schema" id="schema">[schema]</a>
489     </dt><dd> Fallside, David C., Walmsley, Priscilla (editors) 2004,
490     <cite><a href="http://www.w3.org/TR/xmlschema-0/">XML Schema
491     Part 0: Primer Second Edition</a></cite>, W3C Recommendation 28
492     October 2004, <code>http://www.w3.org/TR/xmlschema-0/</code>
494     </dd><dt> <a name="iso8601" id="iso8601">[ISO8601]</a>
495     </dt><dd> Wolf, Misha and Wicksteed, Charles 1997,
496     <cite><a href="http://www.w3.org/TR/NOTE-datetime">Date and
497     Time Format</a></cite>, <code>http://www.w3.org/TR/NOTE-datetime</code>.
499     </dd><dt>&nbsp; </dt><dt> <a name="ID" id="ID">[ID]</a>
500     </dt><dd> Plante, R., Linde, T., Williams, R., Noddle, K. 2005, <cite>
501     <a href="http://www.ivoa.net/Documents/REC/Identifiers/Identifiers-200505XX.html">
502     IVOA Identifiers v1.1</a></cite>,
503     <code>http://www.ivoa.net/Documents/REC/Identifiers/Identifiers-200505XX.html</code>.
505     </dd>
506     <dt> <a name="WSDL" id="WSDL">[WSDL]</a> </dt>
507     <dd> Christensen, E., Curbera, F., Meredith, G., Weerawarana, S. <cite> <a href="http://www.w3.org/TR/wsdl">Web Services Description Language (WSDL) 1.1</a></cite>, W3C Note 15 March 2001, <code>http://www.w3.org/TR/wsdl</code>. </dd>
508     <dt></dt>
509     <dt> <a name="WSDL2" id="WSDL2">[WSDL2]</a> </dt>
510     <dd> Chinnici, R., Moreau, J-J., Ryman, A., Weerawarana, S. <cite> <a href="http://www.w3.org/TR/wsdl20/">Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language</a></cite>, W3C Working Draft 26 March 2007, <code>http://www.w3.org/TR/wsdl20/</code>. </dd>
511     <dt></dt>
512     <dt>&nbsp; </dt><dt><a name="SOAP" id="SOAP">[SOAP]</a> </dt>
513     <dd> Box, D., Ehnebuske, D., Kakivaya, G., Layman, A., Mendolsohn, N., Neilsen, H.F., Thatte, S., Winer, D. <cite> <a href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/"> Simple Object Access Protocol (SOAP) 1.1</a></cite>, W3C Note 08 May 2000, <code>http://www.w3.org/TR/2000/NOTE-SOAP-20000508/</code>. </dd>
515     <dt><a name="REST" id="REST">[REST]</a> </dt>
516     <dd> Roy T. Fielding <cite> <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm"> Architectural Styles and
517     the Design of Network-based Software Architectures</a></cite>, <code>http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm</code>. </dd>
518     </dl>
519     <hr />
520     <font size="-3">
521     <!-- hhmts start -->
522     Last modified:
523     <!-- #BeginDate format:En2m -->30-Oct-2007 11:44<!-- #EndDate -->
524     <!-- hhmts end -->
525     </font>
526     </div>
527     </div>
528     </body>
529     </html>


Name Value
svn:mime-type text/plain

ViewVC Help
Powered by ViewVC 1.1.26