- From: Doug Davis <dug@us.ibm.com>
- Date: Fri, 22 Jan 2010 08:08:57 -0500
- To: public-ws-resource-access@w3.org
- Message-ID: <OFEE1BD695.9DCAC41A-ON852576B3.00471281-852576B3.00483E0C@us.ibm.com>
It seems to me that the MOAP proposal would solve their problem IF we dropped the restriction of not allowing policy assertions on PortTypes. I have no idea why we have this restriction. I have a strong feeling that when the first proposal was put together the text was just copied the WS-Addressing spec and the restriction doesn't need to apply to us - there is no binding specific info in our assertions. thanks -Doug ______________________________________________________ STSM | Standards Architect | IBM Software Group (919) 254-6905 | IBM 444-6905 | dug@us.ibm.com The more I'm around some people, the more I like my dog. Antoine Mensch <antoine.mensch@odonata.fr> 01/22/2010 05:08 AM Please respond to antoine.mensch@odonata.fr To Doug Davis/Raleigh/IBM@IBMUS cc Toby Nixon <Toby.Nixon@microsoft.com>, ws-dd@lists.oasis-open.org, public-ws-resource-access-comments@w3.org Subject Re: [ws-dd] Re: WS-DD comments on WS-Eventing WD-ws-eventing-20090924 Doug, Please find below some answers to the questions you raised, as well as a couple of proposals for solving the issue. A little bit of background of our own: part of the misunderstanding may come from the fact that applications using WS-Discovery and DPWS make use of WSDL documents in a slightly different way than other apps. While WSDL documents are normally used by clients to retrieve both the abstract information (XSD, messages, portTypes) and the concrete information (bindings, policies, network endpoints) about a service, WS-Discovery and DPWS clients (e.g. a printer driver) are often implemented using only the abstract part, which defines the "service interface" and which is known at design time, and use WS-Discovery to retrieve network endpoints implementing the corresponding interface at runtime, using the service portType QName as identifier for the requested interface. In the case of DPWS clients, they may safely assume that all services will at least support a "doc/literal, SOAP1.2-over-HTTP + WS-Addressing" binding at the network endpoints advertised through WS-Discovery messages, thus avoiding the need to obtain specific binding information for the service (note that this is not the case for the more general WS-Discovery protocol, which assumes that binding information is provided though extensibility or out-of-band). In short, many DPWS clients do not need and are not capable of using WSDL information at run-time. Reasons for relying on design time information and for limiting the use of binding and policy information at runtime and defining a simple "standard" binding as a common ground for interoperability include: 1. Many DPWS clients (especially C-based ones) rely on code generation approaches for producing the stubs allowing them to interact with devices and hosted services, and therefore only use design time information. 2. DPWS clients may run on very constrained platforms, and may not have the capabilities of interpreting WSDL or policy documents and accordingly adapting their behavior. The mechanism proposed by the WS-Eventing member submission is currently used by three different entities: * Client: The client knows that it can subscribe to a given service endpoint implementing a given interface by looking at its portType specification, which must have the eventSource attribute set to true. * Event sink: an event sink can set up the appropriate event handling code (often through static code generation on C-based embedded devices) by looking at the events specification expressed as output messages in the event source portType. Note that in principle, WSDL binding (and event format) information should be necessary to generate the appropriate code, but in the specific case of DPWS, we assume doc/literal style, raw event format (i.e. the format specified by the XML Schema element referenced by the message), and the existence of a binding using SOAP1.2 over HTTP and WS-Addressing. * Event source: notification functions allowing the user to send event notifications may also be statically generated on the event source side, using the same binding assumptions. Our main point is that because many existing applications use the mechanism proposed in the member submission, it is important that an equivalent mechanism be proposed in the final version of the standard. The fact that this mechanism relies on design time information is a critical aspect of the requirement. Now to answer your questions more specifically: 1 - why does the description of the events need to be associated with the event source's portType? Is there something special about the portType that is of interest to the WSDD community or is it simply because that's where the information was available before? Two complementary answers: 1. From a "theoretical" point of view, the capability of producing events can be considered as part of a service interface specification, so the portType is the right place to provide or reference this information. 2. From a practical point of view, WS-Discovery and DPWS clients use portType QNames to look for Target Services on the network (in the Probe messages), and select hosted services within devices once the device has been discovered (in the DPWS metadata information). If eventing information is attached to something that is not an event source portType (hopefully identified by another QName defined elsewhere, otherwise it may not be usable in discovery messages), Target Services and hosted services will need to add this information to their type characterization (so that a client could look for an event source of a certain type), and client will need to add this information to their probe or hosted service selection request. The change in WS-Eventing would therefore have an impact beyond the mere eventing protocol. 2 - would it be sufficient for the same information to be available but just someplace else that's just as easy to examine? It has to be part of the event source contract known at design time. If you find a way to associate it to the contract (e.g. through policy), it would be fine. However, it cannot be attached to a particular binding, as this is not used in discovery and DPWS metadata. Attaching it to another QName could work, but with some significant impact (see above). So to be clear attaching it to the portType seems the best solution. Providing the information without formally relating it to the event source portType (e.g. through a totally independent Notification WSDL or Event Descriptions document with no link to the event source portType) would just mean that the client would have to be told in an unspecified, out-of-band way that when a service implements a given portType, it is actually also an event source that produces the specified events. 3 - is it the shape of the events that's of interest or is it the shape of the notifications? or both? To be clear, events represent the raw data itself, while notifications represent the format/serialization of those events on the wire within a SOAP envelope. As explained above, DPWS so far assumes raw events and the "DPWS" binding. So raw events would be enough to maintain the existing level of functionality. 4 - for what purpose is this "shape" needed? For example, is it because the sink needs to know what kind of soap messages to expect, or is it so the Subscriber knows what kind of xpath expression to create for the filter? Or for event process later on down stream long after the event has been extracted from the soap envelope? The shape of events is often needed for code generation on both the event sink (server skeletons) and event source (client stubs) sides. DPWS has profiled out XPath filtering, so it is not an issue for the client. 5 - the topic of having access to this information at design time, rather than runtime, is mentioned - this implies that the use of WS-MEX to get the EventDescription data or Notification WSDL might not be an option. However, if the WSDL of the Event Source is available at design time how was this made available to the Subscriber? The Subscriber is a client that can be designed to interact with a number of services, some of which being event sources (think of a printer driver designed to interact with a given printer model, which of course has an available abstract WSDL description for all its hosted services). Because DPWS assumes a predefined binding, needed subscriber code generation can be performed based on schema, messages and portTypes information available statically. When going live, the subscriber can use WS-Discovery and the service portTypes to find devices and hosted services compliant with the specification it has been coded for. So to answer your question about availability, the WSDL can be made available through many different means (as an appendix to a specification document, through e-mail, on a vertical standards Web site, on a vendor Web site, etc...), not relevant to the behavior of the subcriber at run-time. 6 - is there something special about the Event Source WSDL, or the mechanism by which it was made available, that would preclude other metadata from also being made available through this same mechanism? For example, does this mechanism only allow a single document to be shared instead of multiple? Event source WSDLs are handled like any other WSDL in the development of DPWS clients and services. The only specificity is the necessary adaptation of the code generation mechanisms to the use of output-only operations, and the fact that clients may need to become servers to handle notifications. I don't know what type of metadata you have in mind, but what is important is that this metadata is available at design time. I think there is a misunderstanding about the "single document" issue. There is no specific requirement about having a single WSDL document: information can be spread in various documents, linked together using the usual XSD and WSDL import directives. Because eventing information in the member submission is provided in the event source portType, and because WSDL portTypes are defined as a single monolithic XML element, DPWS tools currently obtain all the needed eventing information from a single document, but they could be adapted to retrieve this information in different documents if needed, as long as navigation links are provided to build the "complete picture". Possible solutions (based on basic extensions of mechanisms proposed in the latest WS-Eventing editor copy): - *Add an attribute **to the Notification WSDL portType that **contains the event source portType QName * (this assumes that the Notification WSDL imports the event source WSDL): this will allow a client knowing the existence of the Notification WSDL to retrieve the corresponding event source portType. This approach will have the additional advantage of explicitly identifying the Notification portType as a notification portType (currently, there is no intrinsic information that distinguishes a Notification WSDL from a standard WSDL). The main drawback of this approach is that the Notification WSDL becomes the "entry point" for the complete service interface description: just looking at the event source portType does not indicate that it is an event source. - *Add an attribute ** to the event source portType that **contains the Notification WSDL portType(s) * (this assumes that the event source WSDL imports the Notification WSDL): This would be equivalent to the information provided in the member submission: the event source portType is clearly identified as such, and the event specifications are available in the Notification WSDL portTypes. The fact that there could be several Notification portTypes could be handled by allowing a list of QNames in the attribute (although only one is required to achieve the level of functionality currently used by DPWS). - *Add a attribute to the event source portType that contains a QName identifying a set of event types in an Event Description document* (note that this would require the introduction of a named EventSet element in event descriptions): because DPWS only require the abstract descriptions of events, event descriptions can be used, as they provide the right amount of information. - *Use policy attachments to establish the above associations*: they would allow more flexibility to establish the kind off 1-n or n-m association that are needed. However, it is important that such policy attachments be attached to portTypes, and not bindings or endpoints (I don't understand why this is explicitly prohibited in the current version of the spec). Important note: in the above proposals, the use of Notification *portType*s is on purpose, as it is the only information that is guaranteed to be available at design time. Cheers Antoine Mensch Doug Davis a écrit : > > Toby/WSDD members, > For point #1 we opened issue 8198 [1]. We'd like to better > understand your concerns with the changes that have gone into > WS-Eventing and how we might be able to address them. > > First a bit of history/background..., as observed in your note the > mechanism by which a Subscriber can determine the shape of the events, > and the notifications that are sent, has changed from the member > submission. In the member submission, there was a single portType > that contained the Event Source's operations (e.g. Subscribe) as well > as the definition of the outgoing Notifications as output-only > operations. As I'm sure everyone knows, the output-only operations > were removed mainly due to our attempt to be WS-I Basic Profile > compliant. However, there are other factors that play into it. > > One of the first changes that we made in WS-Eventing was to define > the notion of a Notification Format. This allows a Subscriber to ask > the Event Source to format the Notifications in a particular way. For > example, one Format may ask for the Events to be transmitted in a > 'raw' format, meaning pretty much untouched and each Event is simply > copied into the SOAP Body of the Notification message. While another > format may ask for them to be 'wrapped' with a well-defined/common > element - thus allowing Event Sinks to have a single > operation/receiver to process all Notifications. With this ability, > and extensibility point, a single Event Source might support sending > out Events in a large number of different formats. This means that > even if we did allow the use of output-only operations, putting all of > these into a single portType would be quite overwhelming - almost to > the point of being useless unless there was a way for a Subscriber to > know which operations/messages/notifications were actually of interest > it. Thus, as you've noted, the Event Source's WSDL was separated from > the description of the Events as well as the description of the > Notification messages themselves. Given the potentially large number > of WSDLs available, it makes more sense to have people ask for the > Notification WSDL based on the Format used within their particular > Subscribe request. And, all of this is available through the use of > WS-MetadataExchange with the Event Source. > > Now, to your note... it talks about the need to be able to associate > the events produced by an event source with the event source's > portType. However, I'd like to dig a little deeper into this by > asking some questions: > 1 - why does the description of the events need to be associated with > the event source's portType? Is there something special about the > portType that is of interest to the WSDD community or is it simply > because that's where the information was available before? > 2 - would it be sufficient for the same information to be available > but just someplace else that's just as easy to examine? > 3 - is it the shape of the events that's of interest or is it the > shape of the notifications? or both? To be clear, events represent > the raw data itself, while notifications represent the > format/serialization of those events on the wire within a SOAP envelope. > 4 - for what purpose is this "shape" needed? For example, is it > because the sink needs to know what kind of soap messages to expect, > or is it so the Subscriber knows what kind of xpath expression to > create for the filter? Or for event process later on down stream long > after the event has been extracted from the soap envelope? > 5 - the topic of having access to this information at design time, > rather than runtime, is mentioned - this implies that the use of > WS-MEX to get the EventDescription data or Notification WSDL might not > be an option. However, if the WSDL of the Event Source is available > at design time how was this made available to the Subscriber? > 6 - is there something special about the Event Source WSDL, or the > mechanism by which it was made available, that would preclude other > metadata from also being made available through this same mechanism? > For example, does this mechanism only allow a single document to be > shared instead of multiple? > > I'm trying to get a sense of the higher-level requirements that are > trying to be addressed rather than focus on one particular solution. > > [1] http://www.w3.org/Bugs/Public/show_bug.cgi?id=8198 > > thanks > -Doug Davis > ______________________________________________________ > STSM | Standards Architect | IBM Software Group > (919) 254-6905 | IBM 444-6905 | dug@us.ibm.com > The more I'm around some people, the more I like my dog. > > > *Toby Nixon <Toby.Nixon@microsoft.com>* > Sent by: public-ws-resource-access-comments-request@w3.org > > 10/13/2009 01:07 PM > > > To > "public-ws-resource-access-comments@w3.org" > <public-ws-resource-access-comments@w3.org>, Bob Freund > <bob.freund@hitachisoftware.com> > cc > "ws-dd@lists.oasis-open.org" <ws-dd@lists.oasis-open.org>, Toby Nixon > <Toby.Nixon@microsoft.com>, Lawrence Lamers <ljlamers@vmware.com>, > Michael McIntosh/Watson/IBM@IBMUS, Chris Kaler <ckaler@microsoft.com>, > "Anthony Nadalin" <tonynad@microsoft.com>, Mike Edwards > <mike_edwards@uk.ibm.com>, Alain Regnier <alain@ussj.ricoh.com>, Xiao > Chuan <cxiao@fudan.edu.cn>, "Gert Sylvest" <gert.sylvest@avanade.com>, > Josh Cohen <joshco@microsoft.com>, Jonathan Marsh <jonathan@wso2.com>, > Marc Goodner <mgoodner@microsoft.com>, Paul Fremantle <paul@wso2.com>, > Mikkel Hippe Brun <mhb@itst.dk> > Subject > WS-DD comments on WS-Eventing WD-ws-eventing-20090924 > > > > > > > > > > Dear colleagues in W3C WS-RA WG: > > The OASIS Web Services Discovery and Web Services Devices Profile > (WS-DD) Technical Committee reviewed the draft WS-Eventing, > WS-MetadataExchange, and WS-Transfer specifications as requested in > your email on September 26 (we did not review the other specifications > because they are not referenced in DPWS). As a result of this review, > we submit to you the following substantive comment and several minor > editorial/clarification comments on WS-Eventing: > > 1. *A mechanism to relate the portType(s) of an event source Web > Service to the abstract description of the events it can produce is > needed. This mechanism cannot be solely based on WS-MetadataExchange, > as this information may be needed by clients at design time, before > any service endpoints are available. *The draft replaces the previous > mechanism for advertising events produced by a source, based on a > portType extension (using both the wse:EventSource attribute and > notification and solicit/response operations), by two new mechanisms, > one introducing a new language (Event Descriptions), the second one > using a WSDL definition for the sink. Both mechanisms provide an > abstract description of the events, but no mechanisms to relate them > to the portType of the event source. Rather, it is suggested to use > new WS-Eventing dialects in conjunction with WS-MetadataExchange to > retrieve the descriptions at runtime. > > 2. *Minor comments / requests for clarification:* > > In *Section 4.1 Subscribe*, it would be helpful to clarify if there is > any difference in behavior between a missing Filter element and a > Filter element that is present but empty. > > In *Section 4.1 Subscribe*, the description of wse:Filter says that > the Event Source *MUST* generate a wse:EmptyFilter fault if it > receives a Subscribe request with a filter that will never evaluate to > true for the lifetime of the Subscription, but *Section 6.11 > EmptyFilter* says that the fault *MAY* be sent. This should be made > consistent. A similar inconsistency exists with the wse:UnusableEPR > fault. > > In *Section 4.4 Unsubscribe*, the text references faults defined for > Renew, mentioning that they are also applicable to Unsubscribe. > However, the only fault defined in Renew is wse:UnableToRenew, which > does not seem applicable to Unsubscribe. > > In *Section 4.4 Unsubscribe *and* Section 5 Notifications*, the term > "subscribing event sink" is used several times. Should these be > replaced with the term "Subscriber" (defined in section 3.4 > Terminology) to avoid confusion? > > In *Section 4.2 Renew* and *Section 4.4 Unsubscribe*, the status of > the subscription after the failure of either request could be > clarified (e.g., that any existing subscription is unaffected). > > In *Section 5 Notifications*: Uses of the XPath expression > /s:Envelope/s:Body/wse:Subscribe/wse:NotifyTo/ should be replaced by > /s:Envelope/s:Body/wse:Subscribe/*wse:Delivery/*wse:NotifyTo/ (in two > instances). > > Thank you very much for the opportunity to participate in the preview > of the Last Call drafts. > > Best regards, > > Toby Nixon > Alain Regnier > Co-Chairs, OASIS WS-DD TC > > > ------------------------------------------------------------------------ > > *From:* Bob Freund [mailto:bob.freund@hitachisoftware.com]* > Sent:* Sat 9/26/2009 7:32 AM* > To:* public-ws-resource-access@w3.org; > public-ws-resource-access-comments@w3.org* > Cc:* Toby Nixon; Lawrence Lamers; Michael McIntosh; Chris Kaler; > Anthony Nadalin; Mike Edwards; Alain Regnier; Xiao Chuan; Gert > Sylvest; Josh Cohen; Jonathan Marsh; Marc Goodner; Paul Fremantle; > Mikkel Hippe Brun* > Subject:* To WS-RA reviewers > > Dear WS-RA Reviewers, > The WS-RA working group has published new Working Drafts on 2009-09-24: > > WS-Enumeration at _http://www.w3.org/TR/2009/WD-ws-enumeration-20090924_ > WS-Eventing athttp://www.w3.org/TR/2009/WD-ws-eventing-20090924 > WS-MetadataExchange at > _http://www.w3.org/TR/2009/WD-ws-metadata-exchange-20090924_ > WS-Transfer at _http://www.w3.org/TR/2009/WD-ws-transfer-20090924_ > > Please review these specifications and provide comment to > _public-ws-resource-access-comments@w3.org_ > <mailto:public-ws-resource-access-comments@w3.org> > > The WS-RA Working group hopes to be able to transition these > specification to Last Call status in the month of November 2009, so to > make that work well, and to help prevent comments received after Last- > Call causing a return to that status, we are seeking your comments > early and within the next three weeks (2009-10-12) > The working group will endeavor to resolve those comments received > before Last Call publication. > > There are still some issues being worked in parallel with your review > as well as a few that have been resolved after the publication > preparation date of the 2009-09-24 WDG which was 2009-09-02. Those > may be seen on our bug list at > _http://www.w3.org/Bugs/Public/buglist.cgi?product=WS-Resource%20Access_ > > The following specification was also published, but we are not seeking > review of it at this time > WS-ResourceTransfer at > _http://www.w3.org/TR/2009/WD-ws-resource-transfer-20090924_ > > Thank you > Bob Freund > Chair W3C WS-RA Working Group > > ------------------------------------------------------------------------ > > > Ce message entrant est certifié sans virus connu. > Analyse effectuée par AVG - www.avg.fr > Version: 9.0.725 / Base de données virale: 270.14.137/2617 - Date: 01/12/10 20:35:00 > >
Received on Friday, 22 January 2010 13:14:41 UTC