OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dsml message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: [dsml] parallel processing and sequence of responses


  The downside compared to separate envelopes is that there is no
enforcement that a requestID is provided with each operation inside the
batch request. A client can provide a syntactically correct request for
unordered parallel processing without providing requestIDs, and the
results could then not be unambiguously processed. Should a server
return an error in this case?

Rob

John McGarvey wrote:
> 
> I'd suggest the addition of a responseOrder attribute to resolve this
> question.
> 
> <!-- **** DSML Batch Request Envelope **** -->
>      <xsd:complexType name="BatchRequest">
>           <xsd:sequence>
>                <xsd:element name="requestID" type="xsd:string" minOccurs
> ="0"/>
>                <xsd:group ref="DSMLRequests" minOccurs="0" maxOccurs
> ="unbounded"/>
>           </xsd:sequence>
>           <xsd:attribute name="processing" use="optional" default
> ="sequential">
>                <xsd:simpleType>
>                     <xsd:restriction base="xsd:string">
>                          <xsd:enumeration value="sequential"/>
>                          <xsd:enumeration value="parallel"/>
>                     </xsd:restriction>
>                </xsd:simpleType>
>           </xsd:attribute>
> 
>           <xsd:attribute name="responseOrder" use="optional" default
> ="sequential">
>                <xsd:simpleType>
>                     <xsd:restriction base="xsd:string">
>                          <xsd:enumeration value="sequential"/>
>                          <xsd:enumeration value="unordered"/>
>                     </xsd:restriction>
>                </xsd:simpleType>
>           </xsd:attribute>
> 
>           <xsd:attribute name="onError" use="optional" default="exit">
>                <xsd:simpleType>
>                     <xsd:restriction base="xsd:string">
>                          <xsd:enumeration value="resume"/>
>                          <xsd:enumeration value="exit"/>
>                     </xsd:restriction>
>                </xsd:simpleType>
>           </xsd:attribute>
>      </xsd:complexType>
> 
> If a BatchRequest envelope does not specify both a responseOrder of
> unordered and a processing value of parallel, then the server must return a
> BatchResponse envelope in which the DSMLResponse members are so ordered as
> to provide a positional correspondence between each DSMLRequest in the
> BatchRequest and the resulting DSMLResponse in the BatchResponse. If a
> BatchRequest envelope specifies a responseOrder of unordered, every
> DSMLRequest in that envelope must have a requestID. If a BatchRequest
> specifies a responseOrder of unordered and a processing value of parallel,
> the server may return the DSMLResponses in any order within the
> BatchResponse envelope. When a client permits unordered responses, this
> facilitates efficient processing by the server, as the responses to
> parallel operations may be returned in the order they complete.
> 
> If the BatchRequest envelope specifies a processing value of parallel but
> does not specify a responseOrder of unordered, the server may ignore the
> request for parallel processing or may limit the amount of parallel
> processing so as to ensure the DSMLResponses are returned in order within
> the BatchResponse envelope.
> 
> -----------------
> With this approach, the worst that could happen is that DSMLv2 clients that
> do not support unordered responses will observe slower performance with
> some DSMLv2 servers, because of server side limitations on parallelism or
> the need to buffer responses.
> 
> Regards,
> John
> 
> ----------------------------------------------------------------
> To subscribe or unsubscribe from this elist use the subscription
> manager: <http://lists.oasis-open.org/ob/adm.pl>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC