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: [dsml] parallel processing and sequence of responses


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



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


Powered by eList eXpress LLC