1 / 7

WS-RP: HTTP as Transfer

WS-RP: HTTP as Transfer. David Orchard dorchard@bea.com. Proposal. Add optional binding to fully use HTTP use HTTP as a designed: state transfer protocol Requires Support WSDL 2.0 web method construct bind Get*/Query to GET, delete to DELETE… Support HTTP binding message headers

blythe
Télécharger la présentation

WS-RP: HTTP as Transfer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WS-RP: HTTP as Transfer David Orchard dorchard@bea.com

  2. Proposal • Add optional binding to fully use HTTP • use HTTP as a designed: state transfer protocol • Requires • Support WSDL 2.0 web method construct • bind Get*/Query to GET, delete to DELETE… • Support HTTP binding message headers • EPR Address only or binding ref props to URI • WSA Header blocks • Support binding queries (prop qnames) to URI

  3. WSDL 2.0 WebMethod • Recently accepted by WSDL 2.0 • Interface operation can specify web method • Binding operation can specify web method • TBD how these 2 relate <interface name="StockQuotes"> <operation name="getStockQuote" webMethod="GET"> <input element="schema1"/> <output element="schema2"/> </operation> … <binding name="myns:HTTPOneURI"> <http:binding> <operation name="myns:getStockQuote"> <http:operation method="GET" /> </operation>

  4. 2 Bindings to HTTP • POST /diskdrive HTTP/1.1 Host: www.example.com/Content-type: text/xml; charset="utf-8" Content-Length: xxxx <?xml version="1.0" encoding="utf-8" ?><s11:envelope> <s11:header> <!-- headers, such as WSA elided for clarity --> <ex:resourceid>5</ex:resourceID> </s11:header><s11:body> <wsrp:GetResourceProperty xmlns:tns="http://example.com/diskdrivens"> <wsrp:ResourceProperty>tns:NumberOfBlocks</wsrp:ResourceProperty> </wsrp:GetResourceProperty></s11:body> • GET /diskdrive/resourceid/5/http://example.com/diskdrivens/NumberOfBlocks HTTP/1.1 Host: www.example.com

  5. URI construction • Webish view: • Embed the resource ID in the URI • Each resource’s property has a “secondary resource” identifier • Then interact with properties by dereferencing URI including secondary resource id • Can’t use fragment ids - doesn’t go to server in http • Some options for identifying properties: • bind Qname to URI • http://foo.com/resource/5/blockns/blocksize • Use query params for multiple requests • http://foo.com/resource/5?ns=…&p1=blocksize&p2=manufacturer • Could simply add frag-id to URI after semi-colon • http://foo.com/resource/5;blocksize • problem of name collisions

  6. Extensions in WSDL docs • Resource identification: • Support EPRs without ref properties • Indication of binding of Ref properties to URI • Needed if EPR has ref properties • Property identification: • Indication of binding of Qname(s) or query to URI • Part of HTTP binding • <http:binding wsrp:UseWSRPFaveQNameURI=“true”> • WSDL 2.0 does have improved URI construction that also might be usable/extendable • Binding between HTTP and message headers • deriving “getResourceProperty” from GET • Binding Queries to URI • Simple for XPath :-), might be harder for custom algorithm

  7. Q&A

More Related