- From: Vidur Apparao <vidur@netscape.com>
- Date: Tue, 30 Jan 2001 16:30:21 -0800
- To: xml-dist-app@w3.org
I've quoted the original requirements in the 2xx section, described specific sections of the SOAP 1.1 spec [1] that address the requirements and raised issues where there may be conflicts. --Vidur R200 "The XML Protocol must contain a convention for representing calls and replies between RPC (Remote Procedure Call) applications and services." Section 7 [1] of the SOAP 1.1 spec addresses the issue of using SOAP for RPC. It provides a "uniform representation of remote procedure calls and responses". "The conventions must include the following: 1.Complete and unique identification, by means of URI syntax, of the program, service or object and procedure or method to be called." Section 7 states that the "URI of the target object" is necessary to make an RPC calls and that the "protocol binding [should] provide a mechanism for carrying the URI". It further implies that the method name should be a QName, and is modeled as an element in the SOAP enveloper body. Issue RPC1: The target (program, service or object) URI is pushed down to the protocol binding and is not represented in the envelope instead. While this does not conflict with the requirements, I believe it's an important (and possibly debatable) decision. This decision precludes sending an RPC invocation through an intermediary that uses different protocol bindings for sending and receiving XP messages. Issue RPC2: The SOAP 1.1 spec uses words like "object" and "method" to refer to the end-points of an RPC operation. More generic words (or better qualification of these terms) that do not bias the reader towards expectations of full-fledged object systems on both sides are necessary. Issue RPC3: The requirements state that the "procedure or method to be called" should also be represented using URI syntax. I believe this is an error in our document - the requirements should place no restrictions on the form of a procedure or method name. "2.Enable support for matching response messages to request messages for cases in which matching is not provided by the underlying protocol binding." Section 7.2 states that a transaction ID is an example of the use of a SOAP header element. Issue RPC4: This does not seem to be a normative part of the specification and no rules are placed on the form of such a transaction ID. "3.The ability to specify the parameters to a call in a request message and the results of a call in a reply messages." Section 7.1 describes how elements in the body of a SOAP envelope can be used to represent parameters in an invocation and return values (and out parameters) in a response. "4.Provisions for specifying errors in a reply message (see also 703a and 703b) " Section 7.1 states that a "method fault is encoded using the SOAP Fault element". Issue RPC5: Should there be a predefined set of fault codes that apply specifically to RPC? Examples would include errors for missing parameters, out of range values, etc. "Where possible, an attempt will be made to leverage any related work done by the IETF." Issue RPC6: The SOAP 1.1. spec does not directly reference the IETF work on RPC [2]. Is the quoted RFC out-of-date? Should more attention have been paid to IETF activity? --------------------------- R201 "The RPC conventions within the XML Protocol should use the Data Representation model discussed in section 4.5 to represent parameters to a call in the request message and results of the call in the reply message." A method invocation is modeled as a struct. Parameters and results are modeled as accessors on the struct. The concepts of "struct" and "accessor" are loosely described in Section 5 [3] of the specification. Issue RPC7: SOAP 1.1 describes its notion of a "data model" in a section describing an encoding system. The notion of a data model should probably be separated from the actual physical representation. "It must be convenient to create straightforward mappings of the data types to a wide variety of widely deployed programming languages and object systems." The Schema types [4] have been shown to map to a reasonable set of native data types in commonly used programming languages and object systems. The additional types described in SOAP 1.1 - structs, arrays - also map to commonly used programming constructs. --------------------------- R202 "The XML Protocol should allow applications to include custom encodings for data types used for parameters and results in RPC messages." The SOAP encodingStyle attribute [5] can be used to used to indicate arbitrary serialization rules within a SOAP message. Section 5 [3] of the specification also states that "use of the data model and encoding style described in [the section describing the default SOAP encoding] is encouraged but not required; other data models and encodings can be used in conjunction with SOAP." --------------------------- [1] http://www.w3.org/TR/SOAP/#_Toc478383532 [2] http://www.ietf.org/rfc/rfc1831.txt [3] http://www.w3.org/TR/SOAP/#_Toc478383512 [4] http://www.w3.org/TR/xmlschema-2/ [5] http://www.w3.org/TR/SOAP/#_Toc478383495
Received on Tuesday, 30 January 2001 19:28:37 UTC