Web Service Metadata Exchange

Slides:



Advertisements
Similar presentations
On and use=document|rpc, style=literal|encoded A personal opinion Sanjiva Weerawarana IBM Research September 9-11, 2002.
Advertisements

WS-Addressing F2F Meeting Nov 05 WSDL extensions for Async support.
® IBM Software Group © IBM Corporation WS-Policy Attachment- spec overview Maryann Hondo IBM.
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
An Introduction to Web Services Sriram Krishnan, Ph.D.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Apache Axis2 SOAP Primer. Agenda What is SOAP? Characteristics SOAP message structure Header blocks Fault notification Exercises.
SOAP SOAP is a protocol for accessing a Web Service. SOAP stands for Simple Object Access Protocol * SOAP is a communication protocol * SOAP is for communication.
Topics Acronyms in Action SOAP 6 November 2008 CIS 340.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Realisation of SOA using Web Services Adomas Svirskas Vilnius University December 2005.
SOAP Lee Jong-uk. Introduction What is SOAP? The features of SOAP The structure of SOAP SOAP exchange message model & message Examples of SOAP.
EGEE is a project funded by the European Union under contract IST WSDL Web Service Description Language 3 – 4 June
SOA and Web Services. SOA Architecture Explaination Transport protocols - communicate between a service and a requester. Messaging layer - enables the.
1 An Introduction to Web Services. 2 Outline What is a Web service Background Standards –XML & XML Namespaces, XML Schema,WSDL, SOAP Tools & APIs –DOM/SAX,JAX-RPC/JAX-M.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
WS-PolicyNegotiate A Web Service Standard for Policy Negotiation by Nicholis Bufmack.
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
© JBoss Inc The need for context in Web Services Mark Little, presented by Kurt T Stam Red Hat.
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
1 Simple Object Access Protocol (SOAP) by Kazi Huque.
SOAP, WSDL, UDDI. Service Broker Basic SOAP Message Exchange Service Consumer Service Provider http transport SOAP message WSDL describing service SOAP.
TP2653 Adv Web Programming SOAP and WSDL. SOAP Simple Object Access Protocol – Lightweight XML-based messaging protocol – A protocol for accessing a Web.
I hereby declare that this document is based on my project experience. To the best of my knowledge, this document does not contain any material that infringes.
SOAP Tutorial Ching-Long Yeh 葉慶隆 Department of Computer Science and Engineering Tatung University
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
WEB SERVICE DESCRIPTION LANGUAGE ( WSDL) -SIVA SAGAR TELLA.
Web Services Description Language CS409 Application Services Even Semester 2007.
Web Services Standards. Introduction A web service is a type of component that is available on the web and can be incorporated in applications or used.
1 Web Service Description Language (WSDL) 大葉大學資工系.
Chapter 10 Intro to SOAP and WSDL. Objectives By study in the chapter, you will be able to: Describe what is SOAP Exam the rules for creating a SOAP document.
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
1 Web Services Web and Database Management System.
Kemal Baykal Rasim Ismayilov
Transport Protocols  SOAP is used to send a message over any kind of transport protocol. Some of the protocols are, 1.HTTP 2.TCP/IP 3.UDP 4.SMTP.
Web services. Introduction to WSDL. February 23, 2006.
Steve Graham WS-ResourceFramework Modeling Stateful Resources With Web services OASIS WSRF TC F2F Wednesday, April 28th, 2004.
1 WSDL Web Services Description Language. 2 Goals of WSDL Describes the formats and protocols of a Web Service in a standard way –The operations the service.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
1 WS-Policy. 2 What’s the Problem? To use a web service a client needs more information than is provided in WSDL file. Examples: –Does service support.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Beginning 자바 웹 서비스 SOAP 강미란 Cyber-Infrastructure Research Lab Konkuk University.
SOAP, Web Service, WSDL Week 14 Web site:
© 2005 Global Grid Forum The information contained herein is subject to change without notice Leading the pervasive adoption of grid computing for research.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 9 Web Services.
Service Description: Addressing & Policy COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Florida Atlantic University Department of Electrical and Computer Engineering &Computer Science ( ECECS ) &Computer Science ( ECECS ) Security Systems.
Training for developers of X-Road interfaces
Java Web Services Orca Knowledge Center – Web Service key concepts.
Cloud Computing Web Services.
Training for developers of X-Road interfaces
Sabri Kızanlık Ural Emekçi
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
WS-Policy Brian Garback Department of Computer Science
Nurhak Karakaya & Murat Çavdar
Dimuthu Leelarathne Software Engineer WSO2
Simple Object Access Protocol (SOAP)
Network Services Interface
WEB API.
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Introduction to SOAP-RP and DIME
Introduction to Web Services
WEB SERVICES From Chapter 19, Distributed Systems
Techniques to Invoke Web Services from SAS
SOAP Routing and Processing Concepts
Presentation transcript:

Web Service Metadata Exchange (http://msdn.microsoft.com/ws/2004/02/mex) David Aiken (7/4/04) 06.12.2018

Introduction This specification defines messages to retrieve specific types of metadata associated with an endpoint. Uses XML, SOAP(1.1, 1.2) and WSDL(1.1) extensibility models. Web services specifications (WS-*) are designed to be composed with each other to provide a rich set of tools to provide security in the Web services environment. This specification specifically relies on other Web services specifications to provide secure, reliable, and/or transacted message delivery and to express Web service and client policy. 06.12.2018

Web Services Web services use metadata to describe what other endpoints need to know to interact with them. - WS-Policy describes the capabilities, requirements and general characteristics of Web services. - WSDL(1.1) describes abstract message operations, concrete network protocols, and endpoint addresses used by Web services. - XML Schema(part1, part2) describes the structure and contents of XML-based messages received and sent by Web services. To bootstrap communication with a Web service, this specification defines three request/response message pairs to retrieve these three types of metadata 1) WS-Policy & receiving endpoint or target namespace. 2) WSDL & receiving endpoint or target namespace. 3) XML Schema with a given target namespace. Examples…. 06.12.2018

Terminology Key words(S. Bradner’s paper RFC 2119); MUST: absolute requirement of the specification. SHOULD: there may exist valid reasons in particular circumstances to ignore a particular item. MAY: an item is truly optional. Anything in Italics indicate data types not values. ? = 0 or 1. * = 0 or more. + = 1 or more. [] = items inside are to be treated as groups wrt cardinality or choice. … = a point of extensibility allowing more attributes. Prefix XML Namespace Specification(s) Prefix XML namespace Specifications s (Either SOAP 1.1 or 1.2) (Either SOAP 1.1 or 1.2) s11 http://schemas.xmlsoap.org/soap/envelope SOAP 1.1 [SOAP 1.1] S12 http://www.w3.org/2003/05/soap-envelope SOAP 1.2 [SOAP 1.2] wsa http://schemas.xmlsoap.org/ws/2004/03/addressing WS-Addressing [WSAddressing] wsdl http://schemas.xmlsoap.org/wsdl/ WSDL [WSDL 1.1] wsse http://schemas.xmlsoap.org/ws/2002/12/secext WS-SecurityPolicy [WSSecurityPolicy] wsp http://schemas.xmlsoap.org/ws/2002/12/policy WS-Policy [WS-Policy] wsx http://schemas.xmlsoap.org/ws/2004/03/mex WS-Metadata Exchange xs http://www.w3.org/2001/XMLSchema XML Schema [Part 1, 2] 06.12.2018

Example 1 Get Policy Request (01) <s12:Envelope (02) xmlns:s12='http://www.w3.org/2003/05/soap-envelope' (03) xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing' (04) xmlns:wsx='http://schemas.xmlsoap.org/ws/2004/03/mex' > (05) <s12:Header> (06) <wsa:Action> (07) http://schemas.xmlsoap.org/ws/2004/03/mex/GetPolicy/Request (08) </wsa:Action> (09) <wsa:MessageID> (10) uuid:73d7edfc-5c3c-49b9-ba46-2480caee43e9 (11) </wsa:MessageID> (12) <wsa:ReplyTo> (13) <wsa:Address>http://www.example.com/MyEndpoint</wsa:Address> (14) </wsa:ReplyTo> (15) <wsa:To> http://www.example.org/YourEndpoint</wsa:To> (16) <ex:MyRefProp xmlns:ex='http://www.example.com/refs' > (17) 78f2dc229597b529b81c4bef76453c96 (18) </ex:MyRefProp> (19) </s12:Header> (20) <s12:Body> (21) <wsx:GetPolicy /> (22) </s12:Body> (23) </s12:Envelope> 06.12.2018

Example 1 Get Policy Request Lines(6-8): indicate that this is a Get Policy request Lines(10): is the MessageID for this request. Lines(15-18): illustrate a typical pattern where the endpoint is identified by a wsa:To header block (15) as well as an application-specific header block(16-18) Line(21) could alternatively include a target namespace instead of the associated receiving endpoint. Now to respond to the Get Policy Request… 06.12.2018

Example 2 Get Policy Response (01) <s12:Envelope (02) xmlns:s12='http://www.w3.org/2003/05/soap-envelope' (03) xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/03/addressing' (04) xmlns:wsp='http://schemas.xmlsoap.org/ws/2002/12/policy' (05) xmlns:wsx='http://schemas.xmlsoap.org/ws/2004/03/mex' > (06) <s12:Header> (07) <wsa:Action> (08) http://schemas.xmlsoap.org/ws/2004/03/mex/GetPolicy/Response (09) </wsa:Action> (10) <wsa:RelatesTo> (11) uuid:73d7edfc-5c3c-49b9-ba46-2480caee43e9 (12) </wsa:RelatesTo> (13) <wsa:To>http://www.example.com/MyEndpoint</wsa:To> (14) </s12:Header> (15) <s12:Body> (16) <wsx:GetPolicyResponse> (17) <wsp:Policy (18) xmlns:wsse='http://schemas.xmlsoap.org/ws/2002/12/secext' > (19) <wsp:OneOrMore> (20) <wsse:SecurityToken wsp:Usage='wsp:Required' (21) wsp:Preference='100' > (22) <wsse:TokenType>wsse:Kerberosv5TGT</wsse:TokenType> (23) </wsse:SecurityToken> (24) <wsse:SecurityToken wsp:Usage='wsp:Required' (25) wsp:Preference='1' > (26) <wsse:TokenType>wsse:X509v3</wsse:TokenType> (27) </wsse:SecurityToken> (28) </wsp:OneOrMore> (29) </wsp:Policy> (30) </wsx:GetPolicyResponse> (31) </s12:Body> (32) </s12:Envelope> 06.12.2018

Example 2 Get Policy Response Lines(7-9): says this message is a response to a Get Policy Request. Lines(10-12): this response is to the specific request (MessageID) we have just sent. Lines(17-29): contains the Policy corresponding to the receiver. 06.12.2018

Retrieving Metadata Retrieving Policy: A requestor MAY send a Get Policy Request message to an endpoint. If an endpoint accepts a Get Policy Request, it MUST reply with a Get Policy Response. Retrieving WSDL: A requestor MAY send a Get WSDL Request message to an endpoint. If an endpoint accepts a Get WSDL Request, it MUST reply with a Get WSDL Response. Retrieving Schema: A requestor MAY send a Get Schema Request message to an endpoint. If an endpoint accepts a Get Schema Request, it MUST reply with a Get Schema Response. 06.12.2018

General outline Get WSDL Request (1) <s:Envelope ...> <s:Header ...> <wsa:Action> http://schemas.xmlsoap.org/ws/2004/03/mex/GetWSDL/Request </wsa:Action> <wsa:MessageID>xs:anyURI</wsa:MessageID> ? <wsa:ReplyTo>endpoint-reference</wsa:ReplyTo> ? <wsa:To>xs:anyURI</wsa:To> ... </s:Header> <s:Body ...> <wsx:GetWSDL ...> <wsx:TargetNamespace>xs:anyURI</wsx:TargetNamespace> ? </wsx:GetWSDL> </s:Body> </s:Envelope> Action: MUST be included to define the metadata to be returned. ReplyTo: if included MUST be of type wsa:EndpointreferenceType. TargetNamespace: request is for WSDL documents in the indicated target namespace. 0 or more 06.12.2018

General outline Get WSDL Response (2) <s:Envelope ...> <s:Header ...> <wsa:Action> http://schemas.xmlsoap.org/ws/2004/03/mex/GetWSDL/Response </wsa:Action> <wsa:RelatesTo>xs:anyURI</wsa:RelatesTo> ? <wsa:To>xs:anyURI</wsa:To> ... </s:Header> <s:Body ...> <wsx:GetWSDLResponse> <wsdl:definitions ...> ... </wsdl:definitions> + </wsx:GetWSDLResponse> </s:Body> </s:Envelope> Action: MUST be included in the response message. RelatesTo: header block MUST be included and MUST have that value (MAY include a MessageID). definitions: SHOULD be repeated if there is > 1 WSDL in the target namespace extensibility 1 or more 06.12.2018

Faults (1) No WSDL If the receiver does not have a WSDL for the specified target namespace, the request MUST fail and the receiver MAY generate a SOAP fault as follows: SOAP 1.1: -faultcode = s11:client -faultstring = e.g., “unknown target namespace” SOAP 1.2: -s12: Code/s12:value = s12:Sender -s12:Code/s12:Subcode/s12:Value = wsx:UnkownTargetNamespace -s12:Reason/s12:Text = e.g., “unknown target namespace” 06.12.2018

Faults (2) Exposure If the receiver does not expose WSDL for itself, the request MUST fail, and the receiver MAY generate a SOAP fault as follows: SOAP 1.1: -faultcode = s11:client -faultstring = e.g., “WSDL unavailable for endpoint” SOAP 1.2: -s12: Code/s12:value = s12:Sender -s12:Code/s12:Subcode/s12:Value = wsx:WSDLUnavailable -s12:Reason/s12:Text = e.g., “WSDL unavailable for endpoint” 06.12.2018

General outline for Get Policy Request/Response have already have seen a working example for this. The faults would simply reply; -If receiver does not have Policy for the specified target namespace, SOAP 1.1: -faultstring = e.g., “unknown target namespace” SOAP 1.2: -s12:Code/s12:Subcode/s12:Value = wsx:UnkownTargetNamespace -s12:Reason/s12:Text = e.g., “unknown target namespace” -If receiver does not expose policy for itself, -faultstring = e.g., “policy unavailable for endpoint” 06.12.2018

General outline Get Schema Request (1) <s:Envelope ...> <s:Header ...> <wsa:Action> http://schemas.xmlsoap.org/ws/2004/03/mex/GetSchema/Request </wsa:Action> <wsa:MessageID>xs:anyURI</wsa:MessageID> ? <wsa:ReplyTo>endpoint-reference</wsa:ReplyTo> ? <wsa:To>xs:anyURI</wsa:To> ... </s:Header> <s:Body ...> <wsx:GetSchema ...> <wsx:TargetNamespace>xs:anyURI</wsx:TargetNamespace> ? </wsx:GetSchema> </s:Body> </s:Envelope> Action: MUST be included to define the metadata to be returned. ReplyTo: if included MUST be of type wsa:EndpointreferenceType. TargetNamespace: the target namespace of the desired XML Schema. 06.12.2018

General outline Get Schema Response (2) <s:Envelope ...> <s:Header ...> <wsa:Action> http://schemas.xmlsoap.org/ws/2004/03/mex/GetSchema/Response </wsa:Action> <wsa:RelatesTo>xs:anyURI</wsa:RelatesTo> ? <wsa:To>xs:anyURI</wsa:To> ... </s:Header> <s:Body ...> <wsx:GetSchemaResponse> <xs:schema…> ... </xs:schema> + </wsx:GetSchemaResponse> </s:Body> </s:Envelope> Action: MUST be included in the response message. RelatesTo: header block MUST be included and MUST have that value (MAY include a MessageID). schema: SHOULD be repeated if there is > 1 XML Schema in the target namespace. 06.12.2018

Fault No Schema If the receiver does not have a schema for the specified target namespace, the request MUST fail and the receiver MAY generate a SOAP fault as follows: SOAP 1.1: -faultcode = s11:client -faultstring = e.g., “unknown target namespace” SOAP 1.2: -s12: Code/s12:value = s12:Sender -s12:Code/s12:Subcode/s12:Value = wsx:UnkownTargetNamespace -s12:Reason/s12:Text = e.g., “unknown target namespace” Unsure as to why there is no documentation on a receiver that does not expose its Schema!? 06.12.2018

Other Faults (1) If a get Policy, Get WSDL or Get Schema does not comply with the outlines we have just covered, the request MUST fail, and the receiver MAY generate a SOAP faults as follows; SOAP 1.1: -faultcode = s11:client -faultstring = e.g., “message is invalid” SOAP 1.2: -s12: Code/s12:value = s12:Sender -s12:Code/s12:Subcode/s12:Value = wsx:InvalidRequest -s12:Reason/s12:Text = e.g., “message is invalid” 06.12.2018

Other Faults (2) If the amount of data to be sent in a get Policy, Get WSDL or Get Schema response exceeds what the receiver can include, the request MUST fail, and the receiver MAY generate a SOAP faults as follows; SOAP 1.1: -faultcode = s11:client -faultstring = e.g., “response is too large” SOAP 1.2: -s12: Code/s12:value = s12:Receiver -s12:Code/s12:Subcode/s12:Value = wsx:ResponseTooLarge -s12:Reason/s12:Text = e.g., “response is too large” 06.12.2018

Normative Protocol Binding A binding for the messages, SOAP(1.1) over http as constrained by the Basic Profile(1.0) is recommended as a means to bootstrap communication. A web service if free to support these messages over other bindings in addition to , or in place of, the WSDL(1.1) binding. If no other binding is explicitly stated then the default binding is assumed to be SOAP over http. 06.12.2018

Conclusions We saw a working example of a Get Policy Request/Response. Also general outlines of Get WSDL and Get Schema including their faults It is strongly recommended that the communication between web Services be secured using the mechanisms described in WS-Security….(presentation?) 06.12.2018