[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