Lets begin by reviewing the expected response. The request sent along six different results that might be created by the service (or simply used by the service to cancel the job in the case of the <result type="cancel".../> element. The request only contains file attributes which tell the service where to write the file.
<response ID="PlotResp">
<result type="image" ID="plot_image" streamable="true" mime_type="image/png" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_plot_image.gif" index="0" />
<result type="ps" ID="plot_postscript" streamable="true" mime_type="application/postscript" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_plot_postscript.ps" index="1" />
<result type="image" ID="ref_map" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_ref_map.gif" index="2" />
<result type="map_scale" ID="map_scale" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_map_scale.xml" index="3" />
<result type="debug" ID="debug" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_debug.txt" index="4" />
<result type="cancel" ID="cancel" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_cancel.txt" index="5" />
</response>
In this case, the service ran locally. The response contains only the original file names in the request. The product server can infer the URL to access the data via HTTP if necessary. The service only created 4 of the requested results and so only the result elememts for those are included in the actual response from the service. The data element is optional and is supplied by the service to say when it created the response.
<?xml version="1.0" encoding="UTF-8"?>
<backend_response>
<response>
<date>2007-03-22T11:39:58.468-05:00</date>
<result type="image" ID="plot_image" streamable="true" mime_type="image/png" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_plot_image.gif" index="0" />
<result type="image" ID="ref_map" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_ref_map.gif" index="2" />
<result type="map_scale" ID="map_scale" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_map_scale.xml" index="3" />
<result type="debug" ID="debug" file="/usr/local/tomcat/webapps/armstrong/output/811BD26ADE822087556BABF97DBE950F_debug.txt" index="4" />
</response>
</backend_response>
In this case the backend service ran remotely and the response contains only 3 results along with an optional <date> element which marks when the response was created. In this case the service ran remotely and the response supplied the full path where the result was written (not of much use to the product server) and a URL where the result can be accessed via HTTP.
<?xml version="1.0" encoding="UTF-8"?>
<backend_response>
<response>
<date>2007-03-22T09:26:05.620-07:00</date>
<result type="image" ID="plot_image" streamable="true" mime_type="image/png" file="/home/porter/rhs/tomcat/webapps/testbed/output/811BD26ADE822087556BABF97DBE950F_plot_image.gif" index="0" url="http://porter.pmel.noaa.gov:8920/testbed/output/811BD26ADE822087556BABF97DBE950F_plot_image.gif" remote="true" />
<result type="map_scale" ID="map_scale" file="/home/porter/rhs/tomcat/webapps/testbed/output/811BD26ADE822087556BABF97DBE950F_map_scale.xml" index="3" url="http://porter.pmel.noaa.gov:8920/testbed/output/811BD26ADE822087556BABF97DBE950F_map_scale.xml" remote="true" />
<result type="debug" ID="debug" file="/home/porter/rhs/tomcat/webapps/testbed/output/811BD26ADE822087556BABF97DBE950F_debug.txt" index="4" url="http://porter.pmel.noaa.gov:8920/testbed/output/811BD26ADE822087556BABF97DBE950F_debug.txt" remote="true" />
</response>
</backend_response>