- From: Williams, Stuart <skw@hplb.hpl.hp.com>
- Date: Wed, 23 Jan 2002 13:17:29 -0000
- To: "'Marc Hadley'" <marc.hadley@sun.com>, "Mountain, Highland M" <highland.m.mountain@intel.com>
- Cc: "Christopher Ferris (E-mail)" <chris.ferris@sun.com>, "David Fallside (E-mail)" <fallside@us.ibm.com>, "Glen Daniels (E-mail)" <gdaniels@macromedia.com>, "Henrik Nielsen (E-mail)" <henrikn@microsoft.com>, "Hugo Haas (E-mail)" <hugo@w3.org>, "Mark A. Jones (E-mail) (E-mail)" <jones@research.att.com>, "Noah Mendelsohn (E-mail)" <Noah_Mendelsohn@lotus.com>, "Oisin Ohurley (E-mail)" <ohurley@iona.com>, "Williams, Stuart" <skw@hplb.hpl.hp.com>, "Yves Lafon (E-mail)" <ylafon@w3.org>, "'www-archive@w3.org'" <www-archive@w3.org>
So I'll throw my 0.2p's worth in (what's that in Euro?)... [I have move the proposal to the front - I wrote it at the end - and have then followed with the Rationale that led to the proposed text. This is so you don't have to wade through the rationale to get to the proposal :-)] Original text as quoted in Highlands message: > >The combination of the SOAP extensibility model and the SOAP binding > >framework provides some flexibility in the way that particular features can > >be expressed: they can be expressed entirely within the SOAP envelope (as > >blocks), outside the envelope (typically in a manner that is specific to the > >underlying protocol), or as a combination of such expressions. It is up to > >the communicating nodes to decide how best to express particular features; > >often when a binding-level implementation for a particular feature is > >available, utilizing it when appropriate will provide for optimized > >processing. Proposal: --------- "The combination of the SOAP extensibility model and the SOAP binding framework provide some flexibility in the way that particular features can be expressed . Features expressed within the SOAP envelope MUST be expressed in accordance with the relevant SOAP Module specification. Features expressed outside of the SOAP Envelope (typically in a manner that is specific to the underlying protocol) MUST be expressed in accordance with the relevant protocol binding specification. In cases where, for a given message exchange, a given feature is made available by more than one SOAP module and/or protocol binding, a SOAP node has complete discretion over which particular SOAP module or protocol binding it delegates provison of the given feature for the given message exchange. The particular choice may be influenced by the combination of features require by the message exchange and any other local factors, such as application preferences." Possible addition constraining the behaviour of a protocol binding: "A SOAP binding is required to convey an XML infoset representing a SOAP envelope and its contents between peer SOAP nodes without modification. An instance of a SOAP binding MAY inspect, but nota alter, the XML infosets being exchange." Rationale: ---------- I think of four *logical* entities, and I stress logical to emphasis that this is *not* prescriptive of implementation structure but intended to enable the structuring of a description (a specification being a particular kind of description). From the top: - SOAP Users (or application entities) that makes use of SOAP. - SOAP Providers (that provides the services of SOAP to and SOAP User). - SOAP Modules (logically modular extensions to SOAP providers that extend the functionality made available to SOAP Users). - SOAP Bindings (instances) with which provide/expose transport provided MEPs and feature to SOAP Providers. The SOAP 1.2 spec. should cover the genric behaviour of SOAP providers, and the framework for both Modules and Protocol Bindings - thats part 1. Part 2 goes on to provide at least one concrete binding specification based, cast in terms of properties and features as conceived in the binding framework - with concrete definintion of one feature... the single-request-response MEP. So with that as setup... it is my view that both SOAP modules and SOAP bindings can provide functionality abstracted as features and properties that are made available to a SOAP provider which inturn can expose those to SOAP Users. The specification of a SOAP module should describe (perhaps in property/feature terms) how the functionality provided by that module becomes expressed within a SOAP envelope. Parties that support that module support it in a way that exactly conforms to the relevant module spec. (of which we perhaps have no good examples). Likewise the specification of a protocol binding should describe how instances of that binding uses the underlying protocol to provide the functionality they claim to support (declared as a list of features that the binding supports). So... a binding specification defines how a binding provides features that the binding supports and an module specification describes how module provides the features that a module supports. Now... the question we are facing is about features that may be sourced either by a binding or by a module. In my opinion (from a descriptive point-of-view) it is the SOAP provider which, faced with a number of alternatives to source a given feature, makes the choice of which features to delegate to the binding and which features to delegate to a module (and hence the envelope). The second, perhaps grayer question, is whether a binding can recognise the elements with the envelope that provide a feature that the binding itself is capable of supporting and having recognised such elements, remove them from the envelope and substitute it's own mechanisms for providing the *same* functionality - after all... who would know? My own answer to that question is NO. The SOAP provider has made the choice of which provider of a feature to use, Module or Binding (indeed possibly selected between many modules and many bindings that provide overlapping functionality). Having made that choice, it is not possible for the binding to know whether the elements it snoops on were introduced by the SOAP provider or whether they originate from the SOAP User. Basically, I believe that the role of the binding is to convey an XML Infoset representing the SOAP enevlope and its contents from one binding peer to another without altering the content of that infoset (there are unresolved questions about infoset equivalence concerning the lexical devices such as ns prefixes and lexical representation of schema datatypes of equivalent value, let alone issues related to signatures and encryption). Sorry this has gone on a bit... but I think that the early framing IS important in articulating my point-of-view. I know that some to not share the view of a logical separtation between SOAP user and SOAP provider and would rather see the two as some homogenous lump of SOAP... however, I am not trying to assert an implementation architecture. Actually, as it turns out, I have not needed to introduce the distinction into the proposed text... nevertheless it is how I think of things. Hope this helps us get closer. Best regards Stuart > -----Original Message----- > From: Marc Hadley [mailto:marc.hadley@sun.com] > Sent: 23 January 2002 10:43 > To: Mountain, Highland M > Cc: Christopher Ferris (E-mail); David Fallside (E-mail); Glen Daniels > (E-mail); Henrik Nielsen (E-mail); Hugo Haas (E-mail); Mark A. Jones > (E-mail) (E-mail); Noah Mendelsohn (E-mail); Oisin Ohurley (E-mail); > Stuart' 'Williams (E-mail); Yves Lafon (E-mail); 'www-archive@w3.org' > Subject: Re: TBTF: Ed Note Section 5.1 - An attempt to clarify > > > > > Mountain, Highland M wrote: > > >All, > > > >The statements below are my attempt to reconcile the ongoing conflict within > >the TBTF surrounding section Part 1, 5.1. The statement preserves the > >modular layered approach while being more specific as to the responsibility > >and definition of features expressed as SOAP Headers. > > > > > >Current text: > > > >It is up to the communicating nodes to decide how best to express particular > >features; often when a binding-level implementation for a particular feature > >is available, utilizing it when appropriate will provide for optimized > >processing. > > > >Suggested change (which keeps the spirit of what we initially tried to state > >(Glen, Stuart and Henrik's position) but clarifies the balance of > >responsibility such that readers are not left with a vague notion of where > >SOAP Header features should be defined): > > > >It is up to the application developer to decide how best to express > >particular features. If a particular feature is not available at the > >transport binding-level, or will not be appropriate in the given end-to-end > >messaging scenario, it is up to the application developer to capture the > >requirement for features expressed in the envelope via WSDL or some other > >construct outside the transport binding specification. The communicating > >nodes must then understand the representation and requirements of such > >features to facilitate interoperability. > > > Can we replace "it is up to" with "it is the responsibility of" ? I > don't think we should mention WSDL. The text still sounds a little > muddled to me, instead how about: > > When a particular feature set is required, it is the responsibility of > the application developer to choose a suitable combination of binding > and in-the-envelope expressed features. Often when a particular feature > is implemented in the binding, utilizing it in preference to an > in-the-envelope representation will provide for optimised processing. > > Marc. > > > > >Are we getting closer to a compromise? > > > >Thanks, > > > >Highland > > > >....................Spec content and ed note of current WD > > > >The combination of the SOAP extensibility model and the SOAP binding > >framework provides some flexibility in the way that particular features can > >be expressed: they can be expressed entirely within the SOAP envelope (as > >blocks), outside the envelope (typically in a manner that is specific to the > >underlying protocol), or as a combination of such expressions. It is up to > >the communicating nodes to decide how best to express particular features; > >often when a binding-level implementation for a particular feature is > >available, utilizing it when appropriate will provide for optimized > >processing. > > > > > > > >Editorial note: HFN 20011201 > >Some discussion continues on how best to represent the balance of > >responsibility between binding specifications in particular, vs. other > >software at the SOAP node, when dealing with features that are represented > >entirely within the SOAP envelope. The paragraph above may need some > >additional work to clarify > > > > > >Highland Mary Mountain > > > >Intel Corporation > >Distributed Systems Lab (DSL - CTG) > >(480) 552 - 3817 > > > >highland.m.mountain@intel.com > > > > > >
Received on Wednesday, 23 January 2002 08:18:18 UTC