[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [no subject]
The latter would allow the flag to be specified per topic but would be more difficult for clients to ascertain. In either case, I think a NotifyRequiredFault would need to be added to the subscribe operation. Ian From: Sedukhin, Igor S [mailto:Igor.Sedukhin@ca.com] Sent: Thursday, March 24, 2005 11:48 AM To: wsdm@lists.oasis-open.org Cc: wsn@lists.oasis-open.org Subject: [wsdm] Notify wrapped vs Soap body So the wsnt:Notify/wsnt:NotificationMessage/wsnt:Messaage is xs:anyType while soap:Envelope/soap:Body is a container of xs:any. This creates a serialization hell since any given object needs to be serialized sligtly differently, in principle. More over objects that serialze directly in value could not be sent unwrapped, but could be sent Notify wrapped. Since indication of UseNotify is at the subscriber's will, it may result in a bunch of interoperability problems. -- Igor Sedukhin .. (igor.sedukhin@ca.com) -- (631) 342-4325 .. 1 CA Plaza, Islandia, NY 11749 --=_alternative 0077B63485256FD2_= Content-Type: text/html; charset="US-ASCII" <br><font size=2 face="sans-serif">as discussed on today's WSN telecon, I took an Action Item to propose a solution in this space.</font> <br> <br><font size=2 face="sans-serif">From my understanding of the discusssion, this boils down to a peculiarity in the way we chose to model the Notify message. If we make a slight modification to the xsd for the Notify message, then we can bring a bit more consistency back to the wrappered and non-wrappered approach.</font> <br> <br><font size=2 face="sans-serif">Here is the relevant XSD for the notify message:</font> <br> <br><font size=1 face="Courier New"> <xsd:complexType name="NotificationMessageHolderType" ></font> <br><font size=1 face="Courier New"> <xsd:sequence></font> <br><font size=1 face="Courier New"> <xsd:element name="SubscriptionReference" </font> <br><font size=1 face="Courier New"> type="wsa:EndpointReferenceType"</font> <br><font size=1 face="Courier New"> minOccurs="0" maxOccurs="1" /></font> <br><font size=1 face="Courier New"> <xsd:element name="Topic" </font> <br><font size=1 face="Courier New"> type="wsnt:TopicExpressionType" </font> <br><font size=1 face="Courier New"> minOccurs="1" maxOccurs="1" /></font> <br><font size=1 face="Courier New"> <xsd:element name="ProducerReference" </font> <br><font size=1 face="Courier New"> type="wsa:EndpointReferenceType" </font> <br><font size=1 face="Courier New"> minOccurs="0" maxOccurs="1" /></font> <br><font size=1 face="Courier New"> <xsd:element name="Message" type="xsd:anyType" </font> <br><font size=1 face="Courier New"> minOccurs="1" maxOccurs="1" /></font> <br><font size=1 face="Courier New"> </xsd:sequence></font> <br><font size=1 face="Courier New"> </xsd:complexType></font> <br> <br><font size=2 face="sans-serif">the proposed change is to modify the way the Message component is defined, the new definition would look like:</font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"><</font><font size=2 color=#3f8080 face="Courier New">xsd:element </font><font size=2 color=#800080 face="Courier New">name</font><font size=2 face="Courier New">=</font><font size=2 color=#4200ff face="Courier New">"Message"</font><font size=2 color=#008080 face="Courier New">></font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"><</font><font size=2 color=#3f8080 face="Courier New">xsd:complexType</font><font size=2 color=#008080 face="Courier New">></font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"><</font><font size=2 color=#3f8080 face="Courier New">xsd:sequence</font><font size=2 color=#008080 face="Courier New">></font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"><</font><font size=2 color=#3f8080 face="Courier New">xsd:any </font><font size=2 color=#800080 face="Courier New">namespace</font><font size=2 face="Courier New">=</font><font size=2 color=#4200ff face="Courier New">"##any" </font><font size=2 color=#800080 face="Courier New">processContents</font><font size=2 face="Courier New">=</font><font size=2 color=#4200ff face="Courier New">"lax"</font> <br><font size=2 color=#4200ff face="Courier New"> </font><font size=2 color=#800080 face="Courier New">minOccurs</font><font size=2 face="Courier New">=</font><font size=2 color=#4200ff face="Courier New">"1" </font><font size=2 color=#800080 face="Courier New">maxOccurs</font><font size=2 face="Courier New">=</font><font size=2 color=#4200ff face="Courier New">"1" </font><font size=2 color=#008080 face="Courier New">/></font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"></</font><font size=2 color=#3f8080 face="Courier New">xsd:sequence</font><font size=2 color=#008080 face="Courier New">></font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"></</font><font size=2 color=#3f8080 face="Courier New">xsd:complexType</font><font size=2 color=#008080 face="Courier New">></font> <br><font size=2 face="Courier New"> </font><font size=2 color=#008080 face="Courier New"></</font><font size=2 color=#3f8080 face="Courier New">xsd:element</font><font size=2 color=#008080 face="Courier New">></font> <br> <br><font size=2 face="sans-serif">Although there might be some subtle difference in the XSD that I don't immediately grasp, it seems to me that this is an equally good way to model message, and if it provides a solution to the problem Igor is facing, then it seems like a good approach to take.</font> <br> <br><font size=2 face="sans-serif">sgg<br> ++++++++<br> Steve Graham<br> (919)254-0615 (T/L 444)<br> STSM, IBM Software Group, Web services and SOA<br> Member, IBM Academy of Technology<br> <Soli Deo Gloria/><br> ++++++++<br> </font> <br> <br> <br> <table width=100%> <tr valign=top> <td width=40%><font size=1 face="sans-serif"><b>"Sedukhin, Igor S" <Igor.Sedukhin@ca.com></b> </font> <p><font size=1 face="sans-serif">03/24/2005 12:33 PM</font> <td width=59%> <table width=100%> <tr> <td> <div align=right><font size=1 face="sans-serif">To</font></div> <td valign=top><font size=1 face="sans-serif">"Springer, Ian P." <ian.springer@hp.com>, <wsdm@lists.oasis-open.org></font> <tr> <td> <div align=right><font size=1 face="sans-serif">cc</font></div> <td valign=top><font size=1 face="sans-serif"><wsn@lists.oasis-open.org></font> <tr> <td> <div align=right><font size=1 face="sans-serif">Subject</font></div> <td valign=top><font size=1 face="sans-serif">RE: [wsdm] Notify wrapped vs Soap body</font></table> <br> <table> <tr valign=top> <td> <td></table> <br></table> <br> <br> <br><font size=2 color=blue face="Arial">I would just reconcile and make wsnt:Message be a container of xs:any and that's it. At least it won't be different from S:Body.</font> <br><font size=3> </font> <p><font size=2 color=#800080 face="Times New Roman">--</font><font size=2 face="Arial"><b> </b></font><font size=2 color=#000080 face="Arial"><b>Igor Sedukhin</b></font><font size=3> </font><font size=2 color=#c0c0c0 face="Times New Roman">..</font><font size=2 face="Arial"> </font><font size=2 color=#800080 face="Arial">(</font><a href=mailto:igor.sedukhin@ca.com><font size=2 color=blue face="Arial"><u>igor.sedukhin@ca.com</u></font></a><font size=2 color=#800080 face="Arial">)</font><font size=2 color=#800080 face="Times New Roman"><br> --</font><font size=3><b> </b></font><font size=2 color=#808080 face="Arial"><b>(631) 342-4325</b></font><font size=3> </font><font size=2 color=#c0c0c0 face="Times New Roman">..</font><font size=3> </font><font size=2 color=#008080 face="Arial">1 CA Plaza, Islandia, NY 11749</font><font size=3> </font> <p><font size=3> </font> <br> <br> <hr><font size=2 face="Tahoma"><b>From:</b> Springer, Ian P. [mailto:ian.springer@hp.com] <b><br> Sent:</b> Thursday, March 24, 2005 12:01 PM<b><br> To:</b> Sedukhin, Igor S; wsdm@lists.oasis-open.org<b><br> Cc:</b> wsn@lists.oasis-open.org<b><br> Subject:</b> RE: [wsdm] Notify wrapped vs Soap body</font><font size=3><br> </font> <br><font size=2 color=blue face="Arial">From my experience, xs:anys pretty much always cause serialization hell. </font> <br><font size=3> </font> <br><font size=2 color=blue face="Arial">Regarding UseNotify, it would be nice if a producer could choose to require UseNotify. I can think of two ways this could be done:</font> <br><font size=3> </font> <br><font size=2 color=blue face="Arial">1) Add a NotifyRequired xs:boolean resource prop to the NotificationProducer portType</font> <br><font size=2 color=blue face="Arial">2) Add a notifyRequired xs:boolean attribute to the wstop:Topic element</font> <br><font size=2 color=blue face="Arial"><br> The latter would allow the flag to be specified per topic but would be more difficult for clients to ascertain. In either case, I think a NotifyRequiredFault would need to be added to the subscribe operation.</font> <br><font size=3> </font> <br><font size=2 color=blue face="Arial">Ian</font> <br> <hr><font size=2 face="Tahoma"><b>From:</b> Sedukhin, Igor S [mailto:Igor.Sedukhin@ca.com] <b><br> Sent:</b> Thursday, March 24, 2005 11:48 AM<b><br> To:</b> wsdm@lists.oasis-open.org<b><br> Cc:</b> wsn@lists.oasis-open.org<b><br> Subject:</b> [wsdm] Notify wrapped vs Soap body</font><font size=3><br> </font> <p><font size=2 face="Arial">So the wsnt:Notify/wsnt:NotificationMessage/wsnt:Messaage is xs:anyType while soap:Envelope/soap:Body is a container of xs:any. This creates a serialization hell since any given object needs to be serialized sligtly differently, in principle. More over objects that serialze directly in value could not be sent unwrapped, but could be sent Notify wrapped. Since indication of UseNotify is at the subscriber's will, it may result in a bunch of interoperability problems.</font> <p><font size=2 color=#800080 face="Times New Roman">--</font><font size=2 face="Arial"><b> </b></font><font size=2 color=#000080 face="Arial"><b>Igor Sedukhin</b></font><font size=3> </font><font size=2 color=#c0c0c0 face="Times New Roman">..</font><font size=2 face="Arial"> </font><font size=2 color=#800080 face="Arial">(</font><a href=mailto:igor.sedukhin@ca.com><font size=2 color=blue face="Arial"><u>igor.sedukhin@ca.com</u></font></a><font size=2 color=#800080 face="Arial">)</font><font size=2 color=#800080 face="Times New Roman"><br> --</font><font size=3><b> </b></font><font size=2 color=#808080 face="Arial"><b>(631) 342-4325</b></font><font size=3> </font><font size=2 color=#c0c0c0 face="Times New Roman">..</font><font size=3> </font><font size=2 color=#008080 face="Arial">1 CA Plaza, Islandia, NY 11749</font><font size=3> </font> <p> --=_alternative 0077B63485256FD2_=--
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]