<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=WSDL</id>
	<title>WSDL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=WSDL"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=WSDL&amp;action=history"/>
	<updated>2026-05-13T20:41:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=WSDL&amp;diff=28327&amp;oldid=prev</id>
		<title>Łukasz Sokołowski: /* 2. Service Response Returned ⌘ */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=WSDL&amp;diff=28327&amp;oldid=prev"/>
		<updated>2015-11-04T01:49:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;2. Service Response Returned ⌘&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|Web Services Basics For Non-programmers|06}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;slideshow style=&amp;quot;nobleprog&amp;quot; headingmark=&amp;quot;⌘&amp;quot; incmark=&amp;quot;…&amp;quot; scaled=&amp;quot;true&amp;quot; font=&amp;quot;Trebuchet MS&amp;quot; &amp;gt;&lt;br /&gt;
;title: Web Services Basics For Non-programmers&lt;br /&gt;
;author: Pete George (NobleProg Ltd)&lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Day One Revision ⌘=&lt;br /&gt;
# Introduction&lt;br /&gt;
# Service-Oriented Architecture&lt;br /&gt;
# Web Services Overview&lt;br /&gt;
# XML&lt;br /&gt;
# SOAP&lt;br /&gt;
=SOA &amp;amp; Web Services ⌘=&lt;br /&gt;
Service-Oriented Architecture&lt;br /&gt;
&lt;br /&gt;
Without Agreed standards&lt;br /&gt;
&lt;br /&gt;
Atomic&lt;br /&gt;
&lt;br /&gt;
Interoperability&lt;br /&gt;
&lt;br /&gt;
Service Request&lt;br /&gt;
&lt;br /&gt;
Loose coupling&lt;br /&gt;
&lt;br /&gt;
Brittleness&lt;br /&gt;
&lt;br /&gt;
Hide information (service abstraction)&lt;br /&gt;
&lt;br /&gt;
10. Are reusable services: a. used many times b. used in multiple processes&lt;br /&gt;
&lt;br /&gt;
b. Used in multiple processes&lt;br /&gt;
&lt;br /&gt;
=Name the features ⌘=&lt;br /&gt;
# &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
# &amp;lt;mySoap:Envelope &lt;br /&gt;
# xmlns:mySoap=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot; 	xmlns:wsx=&amp;quot;http://www.webserviceX.NET&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;mySoap:Header/&amp;gt;&lt;br /&gt;
# &amp;lt;mySoap:Body&amp;gt;&lt;br /&gt;
# &amp;lt;wsx:GetAtomicNumber&amp;gt;&lt;br /&gt;
# &amp;lt;wsx:ElementName&amp;gt;Oxygen&amp;lt;/wsx:ElementName&amp;gt;&lt;br /&gt;
# &amp;lt;/wsx:GetAtomicNumber&amp;gt;&lt;br /&gt;
# &amp;lt;/mySoap:Body&amp;gt;&lt;br /&gt;
# &amp;lt;/mySoap:Envelope&amp;gt;&lt;br /&gt;
==Name the features (answers) ⌘==&lt;br /&gt;
# &amp;lt;big&amp;gt;Prolog&lt;br /&gt;
# Root Element&lt;br /&gt;
# SOAP Envelope&lt;br /&gt;
# Namespace Declaration&lt;br /&gt;
# Attribute&lt;br /&gt;
# SOAP Header&lt;br /&gt;
# SOAP Body&lt;br /&gt;
# Body Block&lt;br /&gt;
# Element&lt;br /&gt;
# Namespace&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Day Two Schedule ⌘=&lt;br /&gt;
# WSDL&lt;br /&gt;
# Handling Binary Content&lt;br /&gt;
# RESTfull Web Services&lt;br /&gt;
# Other Technologies&lt;br /&gt;
# Conclusion&lt;br /&gt;
&lt;br /&gt;
=WSDL ⌘=&lt;br /&gt;
[[File:WSDL 1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=WSDL Metaphor ⌘=&lt;br /&gt;
*XML = Language of message&lt;br /&gt;
-English&lt;br /&gt;
*SOAP = Style of message&lt;br /&gt;
-Business letter&lt;br /&gt;
*WSDL = specific instructions on what to write + what the response will be&lt;br /&gt;
11/18/2013 &lt;br /&gt;
Pete George&lt;br /&gt;
NobleProg&lt;br /&gt;
Dear Sir&lt;br /&gt;
&lt;br /&gt;
NobleProg&lt;br /&gt;
Chiswick&lt;br /&gt;
123456789&lt;br /&gt;
123456789&lt;br /&gt;
someone@nobleprog.com&lt;br /&gt;
=Interface Definition Language ⌘=&lt;br /&gt;
*Defines language for ORB interfaces (e.g. CORBA)&lt;br /&gt;
*Objects have defined contract with outside world&lt;br /&gt;
-Methods&lt;br /&gt;
&lt;br /&gt;
-Method parameters&lt;br /&gt;
&lt;br /&gt;
-Return values&lt;br /&gt;
&lt;br /&gt;
*Usually interface investigated during programming&lt;br /&gt;
&lt;br /&gt;
=Web Services Description Language ⌘=&lt;br /&gt;
*Standardized way to describe a Web service&lt;br /&gt;
*Not language-specific&lt;br /&gt;
-Describes data to be passed&lt;br /&gt;
&lt;br /&gt;
-Describes method for passing data&lt;br /&gt;
*The basis of the original Web services specification&lt;br /&gt;
*WSDL 2.0 Became W3C recommendation 2007&lt;br /&gt;
*Originally used in conjunction with UDDI&lt;br /&gt;
=UDDI Registry ⌘=&lt;br /&gt;
*Universal Description, Discovery, and Integration&lt;br /&gt;
*Intended to provide way to discover Web services&lt;br /&gt;
-contact information for organisations&lt;br /&gt;
&lt;br /&gt;
-services available from organisations&lt;br /&gt;
*&amp;lt;big&amp;gt;Not been widely implemented&amp;lt;/big&amp;gt;&lt;br /&gt;
=WSDL with UDDI ⌘=&lt;br /&gt;
[[File:WSDL 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=1. Services Described Using WSDL ⌘=&lt;br /&gt;
[[File:WSDL 3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* Service Provider describes its service using WSDL&lt;br /&gt;
* Definition published to registry of services&lt;br /&gt;
* Registry uses UDDI&lt;br /&gt;
&lt;br /&gt;
=2. Registry Services Queried ⌘=&lt;br /&gt;
[[File:WSDL 4.png|300px]]&lt;br /&gt;
&lt;br /&gt;
*Service Consumer issues one or more queries to registry:&lt;br /&gt;
-to locate a service&lt;br /&gt;
 &lt;br /&gt;
-to determine how to communicate with service&lt;br /&gt;
&lt;br /&gt;
=3. WSDL Service Details Supplied ⌘=&lt;br /&gt;
[[File:WSDL 5.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* Registry provides response to Consumer queries&lt;br /&gt;
* i.e WSDL section containing details of the Provider’s requests and responses&lt;br /&gt;
&lt;br /&gt;
=4. Service Request Sent ⌘=&lt;br /&gt;
[[File:WSDL 6.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* Service Consumer has WSDL request details passed from UDDI registry&lt;br /&gt;
* Service Consumer sends XML request&lt;br /&gt;
&lt;br /&gt;
=5. Service Response Returned ⌘=&lt;br /&gt;
[[File:WSDL 7.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* Service Provider sends XML request&lt;br /&gt;
* Service Consumer knows from WSDL details (passed from UDDI Registry) what response message should look like&lt;br /&gt;
&lt;br /&gt;
=WSDL without UDDI ⌘=&lt;br /&gt;
[[File:WSDL 8.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=1. Service Request Sent ⌘=&lt;br /&gt;
[[File:WSDL 6.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* Service Consumer knows WSDL request details&lt;br /&gt;
* Service Consumer sends XML request&lt;br /&gt;
&lt;br /&gt;
=2. Service Response Returned ⌘=&lt;br /&gt;
[[File:WSDL 7.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* Service Provider sends XML request&lt;br /&gt;
* Service Consumer knows from WSDL details what response message should look like&lt;br /&gt;
&lt;br /&gt;
=Obtaining WSDL ⌘=&lt;br /&gt;
*Usually by simple request, e.g.&lt;br /&gt;
GET &lt;br /&gt;
&lt;br /&gt;
http://www.webservicex.net/periodictable.asmx?wsdl&lt;br /&gt;
&lt;br /&gt;
[[File:WSDL 9.png]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;definitions&amp;gt; ⌘=&lt;br /&gt;
* Root Element&lt;br /&gt;
* Includes Namespace declarations&lt;br /&gt;
* Includes WSDL and SOAP declarations&lt;br /&gt;
=Periodic Table &amp;lt;definitions&amp;gt; ⌘=&lt;br /&gt;
[[File:WSDL 10.png]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;types&amp;gt; ⌘=&lt;br /&gt;
* WSDL file builds up in levels – starts with data types&lt;br /&gt;
* Defined in terms of XML Schema&lt;br /&gt;
=Periodic Table &amp;lt;types&amp;gt; ⌘=&lt;br /&gt;
 &amp;lt;wsdl:definitions xmlns:s=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;wsdl:types&amp;gt;&lt;br /&gt;
    &amp;lt;s:schema&lt;br /&gt;
      &amp;lt;s:element name=&amp;quot;GetAtomicNumber&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;s:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;s:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;s:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;1&amp;quot; name=&amp;quot;ElementName&amp;quot; type=&amp;quot;s:string&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/s:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;/s:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;/s:element&amp;gt;&lt;br /&gt;
=&amp;lt;messages&amp;gt; ⌘=&lt;br /&gt;
*Defines content&lt;br /&gt;
-What the message is&lt;br /&gt;
&lt;br /&gt;
-What kind of data it holds&lt;br /&gt;
=Periodic Table &amp;lt;messages&amp;gt; ⌘=&lt;br /&gt;
[[File:WSDL 12.png]]&lt;br /&gt;
&lt;br /&gt;
=Periodic Table SOAP message ⌘=&lt;br /&gt;
*Can be translated into SOAP message, e.g.&lt;br /&gt;
[[File:WSDL 13.png]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;portType&amp;gt; ⌘=&lt;br /&gt;
*Define individual operations provided by service&lt;br /&gt;
-Input and Output operations&lt;br /&gt;
&lt;br /&gt;
-Consist of messages&lt;br /&gt;
=&amp;lt;portType&amp;gt; ⌘=&lt;br /&gt;
[[File:WSDL 14.png]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;binding&amp;gt; ⌘=&lt;br /&gt;
*Binds operations to protocol, includes:&lt;br /&gt;
-&amp;lt;soap:binding&amp;gt;&lt;br /&gt;
* specifies binding to SOAP&lt;br /&gt;
* Transport type, e.g. HTTP&lt;br /&gt;
-&amp;lt;soap:operation&amp;gt;&lt;br /&gt;
*Specifies SOAPAction header – redundant&lt;br /&gt;
-&amp;lt;soap:body&amp;gt;&lt;br /&gt;
* Define how messages are presented&lt;br /&gt;
* Literal or encoded&lt;br /&gt;
=&amp;lt;binding&amp;gt; ⌘=&lt;br /&gt;
[[File:WSDL 15.png]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;service&amp;gt; ⌘=&lt;br /&gt;
*&amp;lt;port&amp;gt; How to send the information&lt;br /&gt;
-Binding information, e.g.&lt;br /&gt;
&amp;lt;wsdl:port name=&amp;quot;periodictableSoap&amp;quot;  binding=&amp;quot;tns:periodictableSoap&amp;quot;&amp;gt;&lt;br /&gt;
*&amp;lt;soap:address&amp;gt; Where to send the information&lt;br /&gt;
-Location of the Web service, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;soap:address location=&amp;quot;http://www.webservicex.net/periodictable.asmx&amp;quot; /&amp;gt;&lt;br /&gt;
=&amp;lt;service&amp;gt; ⌘=&lt;br /&gt;
 &amp;lt;wsdl:service name=&amp;quot;periodictable&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;wsdl:port name=&amp;quot;periodictableSoap&amp;quot; 			binding=&amp;quot;tns:periodictableSoap&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;soap:address location=&amp;quot;http://www.webservicex.net/periodictable.asmx&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/wsdl:port&amp;gt;&lt;br /&gt;
=Summary Exercise 1 ⌘=&lt;br /&gt;
Using the JMeter test tool, create a SOAP Service Request to retrieve the weight of an atom from the Periodic Table Web service.&lt;br /&gt;
&lt;br /&gt;
See: &lt;br /&gt;
&lt;br /&gt;
http://www.webservicex.net/periodictable.asmx?wsdl&lt;br /&gt;
&lt;br /&gt;
(you might like to open the WSDL in a separate JMeter instance while you work)&lt;br /&gt;
# Start from PortType = &amp;quot;periodictableSoap&amp;quot; &lt;br /&gt;
# Create Message&lt;br /&gt;
# Use appropriate Types&lt;br /&gt;
=Summary Exercise 2 ⌘=&lt;br /&gt;
Confirm Exercise 1 SOAP message is correct:&lt;br /&gt;
# Pull Periodic Table WSDL into SoapUI&lt;br /&gt;
# Execute Ex1 SOAP message in JMeter. Compare Response Message with expected Response message in WSDL.&lt;br /&gt;
# Repeat exercise with own WSDL.&lt;/div&gt;</summary>
		<author><name>Łukasz Sokołowski</name></author>
	</entry>
</feed>