Introduction to SOAP/WSDL Web Services and RESTful Web Servicesecosio GmbH
In this talk, held as part of the Web Engineering lecture series 2015 at Vienna University of Technology, we give an overview of the current state of the art in the domain of Web Services.
In the first part we dwell on the main principles of Service Oriented Architectures (SOA), followed by an introduction of the three core standards SOAP, WSDL, as well as UDDI. Furthermore, we briefly cover the Java API for XML Web Services (JAX-WS).
In the second part we focus on principles of RESTful Web Services and the Java API for RESTful Web Services. The lecture is accompanied by practical examples, which are also available on GitHub.
1. Introduction to Web Services
2. Web Service Architecture
3. What are Web Services?
4. Why are Web Services?
5. The base of WS
6. What is SOAP?
7. What is WSDL?
8. How to test a web service?
9. Examples
Introduction to SOAP/WSDL Web Services and RESTful Web Servicesecosio GmbH
In this talk, held as part of the Web Engineering lecture series 2015 at Vienna University of Technology, we give an overview of the current state of the art in the domain of Web Services.
In the first part we dwell on the main principles of Service Oriented Architectures (SOA), followed by an introduction of the three core standards SOAP, WSDL, as well as UDDI. Furthermore, we briefly cover the Java API for XML Web Services (JAX-WS).
In the second part we focus on principles of RESTful Web Services and the Java API for RESTful Web Services. The lecture is accompanied by practical examples, which are also available on GitHub.
1. Introduction to Web Services
2. Web Service Architecture
3. What are Web Services?
4. Why are Web Services?
5. The base of WS
6. What is SOAP?
7. What is WSDL?
8. How to test a web service?
9. Examples
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...ecosio GmbH
In this guest talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we give an overview of the current state of the art in the domain of Web Services.
In the first part we dwell on the main principles of Service Oriented Architectures (SOA), followed by an introduction of the three core standards SOAP, WSDL, as well as UDDI. Furthermore, we briefly cover the Java API for XML Web Services (JAX-WS).
In the second part we focus on principles of RESTful Web Services and the Java API for RESTful Web Services. The lecture is accompanied by practical examples, which are also available on GitHub.
A Web service typically carries comprehensive business logic, can be searched through the Web, and has to be accessed through the Internet or Intranet environment. Above all, a Web service is published in a standard language and accessed through a standard protocol.
Cloud computing 22 soap and uddi in servicesVaibhav Khanna
UDDI provides a mechanism for clients to dynamically find other Web services. In SOAP messages, the name of the service request and the input parameters take the form of XML elements. WSDL describes the data types and structures for Web services, and tells how to map them into the messages that are exchanged.
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...ecosio GmbH
In this guest talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we give an overview of the current state of the art in the domain of Web Services.
In the first part we dwell on the main principles of Service Oriented Architectures (SOA), followed by an introduction of the three core standards SOAP, WSDL, as well as UDDI. Furthermore, we briefly cover the Java API for XML Web Services (JAX-WS).
In the second part we focus on principles of RESTful Web Services and the Java API for RESTful Web Services. The lecture is accompanied by practical examples, which are also available on GitHub.
A Web service typically carries comprehensive business logic, can be searched through the Web, and has to be accessed through the Internet or Intranet environment. Above all, a Web service is published in a standard language and accessed through a standard protocol.
Cloud computing 22 soap and uddi in servicesVaibhav Khanna
UDDI provides a mechanism for clients to dynamically find other Web services. In SOAP messages, the name of the service request and the input parameters take the form of XML elements. WSDL describes the data types and structures for Web services, and tells how to map them into the messages that are exchanged.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
2. LEARNING OUTCOMES
At the end of this class, YOU should be able to : Describe the role of web services
List component of web services
List the specifications used to make web services platform independent
3. DISTRIBUTED COMPUTING ISSUE
Software application written in various languages
Running on multiple platform
Data exchange problem
Issue : To exchange data over the internet using similar manner to
inter process communication in a single computer.
4. WHAT IS A WEB SERVICE?
Can be defined as : software functionality that can be invoked
through the internet using common protocols
A remote component resides in remote web server
Something like a remote function that can be called by a program through a
web server
Accept parameters and produce results (service output)
Service output often not HTML rather XML, text or other contents type
Allow application developed using different languages to exchange
information
7. ROLE OF WEB SERVICE
Expose a remote service or executable procedure to a client
application
Service requestor
Web services are designed to be platform independent
No CPU, OS or programming language specific is required for web services
Leverage existing technology
Extensive use of HTTP and XML
Interoperable across disparate programming language
It is possible a client written in one programming language communicating
with server written in different language
8. WHERE WEB SERVICES ARE
USED?
Within an enterprise (Enterprise Application Integration)
Accelerate and reduce cost of integration
Cost saving on infrastructure deployment and management
Reduce skill requirements
Improve reuse
Between enterprises (E-business integration, B2B)
Providing service to company’s customers
Accessing services from company partners and suppliers
Reduce standard barriers
11. WEB SERVICES CORE XML
SPECIFICATION
Web Services Definition Language (WSDL)
Simple Object Access Protocol (SOAP)
Universal Description, Discovery and Integration (UDDI)
12. WEB SERVICE
COMPONENT - ARCHITECTURE
MAPPING
Service
Service
Registry
Find
Description
In UDDI
Publish
Using
SOAP
Service
Requestor
Bind
In Your
Language
Service
Provider
Servic
e
Service
Description
In WSDL
13. RELATIONSHIP BETWEEN STANDARDS
Searching for a service (UDDI)
http://www.uudi.org
UDDI
Link to WSDL document
Web
Service
Contract Agreement (WSDL)
http://yourservice.com/?WSDL
Client
Web
Service
WSDL Web Service Contract
Communication (SOAP)
http://yourservice.com/svcA
XML/SOAP Body
14. INTERACTION BETWEEN WEB SERVER
AND CLIENT
UDDI Directory
Registered Web Service
Web Service Provider
white
1. Declare service to UDDI
yellow
Web
Server
WSDL
WSDL
Description
Description
Web
Servic
e
2. Client look for a
service in UDDI register
3. Download WSDL
service to generate
proxy or stub for the
web service
Web
Servic
e
WSDL
Description
Busines
s Object
Generated
Stub
Web Service Client
3. Client invoke web
service through proxy
sending/receiving SOAP
message
Application
Server
Busines
s Object
Busines
s Object
Busines
s Object
EAI &
Connector
yellow
Back
Office
and
Enterpris
e System
15. WEB SERVICE DEFINITION LANGUAGE
(WSDL)
Web service need to be defined in order to be discovered by and
interfaced with other services and application
WSDL : defined a web service and how to access them
Define the location of the service
The operations the service exposes
Communicates using open protocols
Can be discovered using UDDI
16. WSDL DOCUMENT STRUCTURE
Abstract Part : describes
The message it sends and
receives
The operation associates a
message exchange pattern
with one or more message
Concrete Part: specifies
WSDL Specification
Abstract Part
types
messages
operations
port types
Transport and wire format
details for one or more
interfaces
A port (end point) associates a
network address with a binding
A service which groups
together end points that
implement a common interface
Concrete Part
bindings
services and ports
17. WSDL DOCUMENT STRUCTURE
<definitions>
<types>Define data types used by the web service</types>
<message>A group of related input/output </message>
<portType>
The operation performed by the web services
</portType>
<binding>
The element defines the message format and protocol
details for each port
</binding>
<service>Define operation expose by each port</service>
</definition>
18. <message>
A group of related input and output messages
<message> define parts and its associated type
<message name = “OrderMsg”>
<part name=“productName” type=“xs:string” />
<part name=“quantity” type=“xs:integer” />
</message>
<message name = “OrderResponseMsg”>
<part name=“orderId” type=“xs:integer” />
</message>
19. <portType>
Elements that defines operations which are made up of messages
The operation performed by the web services
Comparable to a library in traditional programming
<portType name=“procurementPortType”>
<operation name=“orderGoods”>
<input message=“OrderMsg” />
<output message=“OrderResponseMsg” />
</operation>
</portType>
20. COMPARABLE TO TRADITIONAL
PROGRAMMING
“procurementPortType” is comparable to function library
“orderGoods” is comparable to a function with “OrderMsg” as
input parameter and “OrderResponseMsg” as return type
21. OPERATION TYPE
Type
Definition
One-way
The operation can receive a message but
will not return a response
The operation can receive a request and
will return a response
The operation can send a request and will
wait for a response
The operation can send a message but will
not wait for a response
Request-response
Solicit-response
Notification
23. ONE WAY OPERATION
<message name = “OrderMsg”>
<part name=“productName” type=“xs:string” />
<part name=“quantity” type=“xs:integer” />
</message>
<portType name=“procurementPortType”>
<operation name=“orderGoods”>
<input message=“OrderMsg” />
<output message=“OrderResponseMsg” />
</operation>
</portType>
24. <binding>
This element defines the message format and protocol details for
each port
Attributes in <bindings>
type : name of port type
name : bindings name
Sub Element of <bindings>
soap:binding
style: “rpc” / “document”
transport (Communication protocol: SOAP, Transport protocol : HTTP/SMTP)
operation:
Define operation that the port exposes
Must specify how input and output encoded
26. <service>
A service may have more than one end point, with each one
defined by its own port
The port elements corresponds to a particular binding and
includes information on how to access it.
<service name=“ProcurementService”>
<port name=“ProcurementPort” binding=“tns:ProcurementSoapBinding”>
<soap:address location=“http://example.com/procurement” />
</port>
</service>
27. <?xml version="1.0"?>
<definitions name="Procurement"
targetNamespace="http://example.com/procurement/definitions"
xmlns:tns="http://example.com/procurement/definitions"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/" >
<message name="OrderMsg">
<part name="productName" type="xs:string"/>
<part name="quantity" type="xs:integer"/>
</message>
<binding name="ProcurementSoapBinding" type="tns:procurementPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="orderGoods">
<soap:operation soapAction="http://example.com/orderGoods"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ProcurementService">
<port name="ProcurementPort" binding="tns:ProcurementSoapBinding">
<soap:address location="http://example.com/procurement"/>
</port>
</service>
</definitions>
messages
operation and
port type
concrete
part
binding
port and
service
Copyright Springer Verlag Berlin Heidelberg 2004
<portType name="procurementPortType">
<operation name="orderGoods">
<input message = "OrderMsg"/>
</operation>
</portType>
abstract
part
28. UNIVERSAL DESCRIPTION,
DISCOVERY AND INTEGRATION (UDDI)
UDDI – platform independent framework to
describe services,
discover businesses,
integrate business services by using the Internet
Directory for storing information about web services
Directory of web service interfaces described by WSDL
Communicates via SOAP
29. SIMPLE OBJECT ACCESS PROTOCOL
(SOAP)
SOAP is a protocol for accessing a Web Service
Communication protocol
For communication between applications
Format for sending messages
30. WHY SOAP?
RPC is used to communicate between objects like CORBA and
DCOM
HTTP is not designed for this
RPC represents a compatibility but with drawbacks.
Security problem -firewalls and proxy servers will normally block this kind of
traffic
SOAP is a better way to communicate between application using
HTTP
HTTP is supported by all web browsers
31. SOAP DOCUMENT STRUCTURE
Envelope
SOAP ENVELOPE
element that identifies the XML
document as a SOAP message
Header
element that contains header
information
Body
element that contains call and
response information
Fault
element containing errors and
status information
Header
Body
Fault
32. SOAP DOCUMENT STRUCTURE
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
Contains application-specific information about the SOAP message
</soap:Header>
<soap:Body>
Contains the actual SOAP message
<soap:Fault>
Used to indicate error messages
</soap:Fault>
</soap:Body>
</soap:Envelope>
33. <soap:Envelope>
Root element of a SOAP message
Defines the XML document as a SOAP message
defines the Envelope as a
SOAP Envelope
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle=http://www.w3.org/2001/12/soapencoding >
•
</soap:Envelope>
•
•
Used to define the data types used
in the document
May appear on any SOAP element,
and applies to the element's contents
and all child elements
A SOAP message has no default
encoding
34. <soap:Header>
Contains application-specific information (like authentication,
payment, etc) about the SOAP message
Attributes of <soap:Header>
mustUnderstand
actor
encodingStyle
defines how a recipient should process the
SOAP message
35. mustUnderstand
Indicate whether a header entry is mandatory or optional for the
recipient to process
Syntax = soap:mustUnderstand="0|1"
1 : the SOAP server and the node that receives the message
containing the header block must be able to process it correctly or
issue an appropriate fault messsage
<soap:Header>
<m:Trans xmlns:m="http://www.w3schools.com/transaction/"
soap:mustUnderstand="1">234
</m:Trans>
</soap:Header>
36. actor
Used to address the Header element to a specific endpoint
<soap:Header>
<m:Trans xmlns:m="http://www.w3schools.com/transaction/"
soap:actor="http://www.w3schools.com/appml/">234
</m:Trans>
</soap:Header>
37. <soap:Body>
Contains the actual SOAP message
requests the price of apples
<soap:Body>
applicationspecific
elements
<m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
38. <soap:Body>
Contains the actual SOAP message
<soap:Body>
applicationspecific
elements
<m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
39. A RESPONSE COULD LOOK LIKE
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<m:GetPriceResponse
xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>
</soap:Envelope>
40. <soap:Fault>
To indicate error messages
Must appear as a child element of the Body element.
A Fault element can only appear once in a SOAP message
41. <soap:Fault> SUB ELEMENTS
Sub Element
Description
<faultcode>
A code for identifying the fault
<faultstring>
A human readable explanation of the fault
<faultactor>
Information about who caused the fault to happen
<detail>
Holds application specific error information related to the Body
element
42. <soap:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Message does not have necessary info</faultstring>
<faultactor>http://gizmos.com/order</faultactor>
<detail>
<PO:order xmlns:PO="http://gizmos.com/orders/">
Quantity element does not have a value</PO:order>
<PO:confirmation xmlns:PO="http://gizmos.com/confirm">
Incomplete address: no zip code</PO:confirmation>
</detail>
43. <soap:Fault> CODES
Error
Description
VersionMismatch
Found an invalid namespace for the SOAP Envelope element
MustUnderstand
An immediate child element of the Header element, with the
mustUnderstand attribute set to "1", was not understood
The message was incorrectly formed or contained incorrect
information
There was a problem with the server so the message could not
proceed
Client
Server
44. BINDING SOAP WITH A TRANSFER
PROTOCOL
SOAP binding describes how a SOAP message is carried in a transport
protocol (eg., HTTP, SMTP or FTP).
For example, to bind SOAP to HTTP:
A SOAP request is wrapped inside an HTTP POST
The HTTP POST request species at least two HTTP headers:
Content-Type and
Content-Length.
Content-Type: defines the MIME type for the SOAP message and the character encoding
(optional) used
Content-Length: specifies the number of bytes in the body of the SOAP request or
response.
Example
POST /stockquote HTTP/1.1
Content-Type: text/xml; charset=utf-8
Content-Length: 482
45. BINDING SOAP WITH A TRANSFER
PROTOCOL
Service Provider
HTTP Post Request
SOA
P
Engin
e
HTTP
Engin
e
HTTP Response
SOAP Envelope
SOAP Envelope
SOAP Header
SOAP Header
SOAP Body
SOAP Body
Method Request Name
Method Return
param1
Return param
param2
Service Requestor
SOA
P
Engin
e
HTTP
Engin
e