ICT723
Virtualisation and Cloud
Computing
Lecture 6 Service Oriented Architecture
and Web Service
CRICOS 03171A 1
This Week….
• Service Oriented Architecture
• Web Services
Toward a Service Oriented Architecture
• Technologies leading to SOA
• Remote Procedure Calls
• Concepts
• Abstractions- business tasks
• Standards
Information as a Service
• Moving from a Project-Based to a Flexible Architecture (SOA)
The ‘Integration’ Challenge
• In the 1980s and early 1990s we were buying best of breed
point solutions for automating specific business tasks.
• Result: islands of automation.
• Late 1990’s saw a huge push towards integrating islands of
• automation in to cohesive end-to-end systems:
• – Large in-house integration projects
• – Huge investments in to integrated product suites for ERP, CRM etc.
The ‘Integration’ Challenge
• Integration is very hard and very expensive:
• – requires a lot of planning and coordination between all of the systems
• involved
• – Integrated systems become inflexible and unable to adapt to changes
in business processes
The Role of SOA: Solving the Integration Challenge
• Systems that can accommodate new business processes and
• new relationships as needed
• Systems based on loosely coupled distributed components
• Simplify implementations by making components autonomous
and allow them to be used when needed
• Allow selection of best-of-breed components to lower cost and
deliver higher business value
The Role of SOA: Solving the Integration Challenge
What is SOA?
• “Service-Oriented Architectures (SOA) is a set of patterns for
building distributed systems where one application that
comprises a system can find another application that provides
needed service and can exchange data with it.”
Why is SOA Different?
• Loose coupling
• – No interdependencies between systems
• Reuses existing technology infrastructure
• Everything is based on XML and other industry standards
• – Platform and language independent
• – Easy, inexpensive
Why is SOA Different?
• Industry momentum:
• – Every player is on board: IBM, Microsoft, SAP, Oracle …
• – Proven interoperability
• The timing is right
What is a Web Service? (W3C definition)
• A Web service is a software system designed to support
interoperable machine-to-machine interaction over a network. It
has an interface described in a machine-processable format
(specifically WSDL). Other systems interact with the Web
service in a manner prescribed by its description using SOAP-
messages, typically conveyed using HTTP with an XML
serialization in conjunction with other Web-related standards.
What is a Web Service: A Simpler Definition
• A Web Service is a standards-based way for an application to
call a function over a network and to do it without having to
know:
• the location where the function will be executed,
• the platform where the function will be run,
• the programming language it is written in, or even
• who built it.
• Most important: Web Services are Easy!
Web Services: The 3 things at the core
1. Discovery
• – Where is the service?
2. Description
• – What service does it offer?
• – How do I use it?
3. Messaging
• – Let’s communicate
Web Services: Standard is Key
• WSDL is used to describe the function(s) that an application will
be calling documenting in a standard way its entry points,
parameters and output
• XML is used to carry the values of parameters and the outputs
of the function
• SOAP is used as the messaging protocol that carries content
(XML) over a network transport (typically HTTP)
• HTTP is used as the network transport layer
Web Services Interaction
Web Services Development and Deployment
• Tools should be used for development
• Ex: IBM Data Studio
• Runtimes are expected to run services
• Websphere Application Servers, Geronimo, etc.
• Apache Soap (based on IBM SOAP4J) with Xerces XML parser (also
contributed by IBM)
• Other tools
• WSDL generation, UDDI, etc.
WSDL: Web Service Description Language
• WSDL (Web Services Description Language) is a public
description of the interfaces offered by a web service.
Expressed in XML, it provides machine readable document that
provides a calling application all of the information required to
interact with a web service
WSDL Specification
• XML grammar
– <definitions>: root WSDL element
– <types>: data types transmitted (starts with XML Schema
specifications)
– <message>: messages transmitted
– <portType>: functions supported
– <binding>: specifics of transmissions
– <service>: how to access it
WSDL Example
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
SOAP: A Description (Simple Object Access
Protocol)
• Industry standard message format for sending and receiving
data between a web services consumer and a web service
provider
• SOAP messages are XML documents which have an envelope
and:
• Header (optional): contains information about the message such as
date/time it was sent or security information
• Body: contains the message itself
• Standard messaging protocol maintained by the W3C XML
Protocol Working Group.
SOAP: A Description
SOAP: Skeleton <?xml version="1.0"?>
Message <soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-
envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/s
oap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
SOAP: Give it a REST
• REST: REpresentation State Transfer
• Restful: Follows the REST principles
• Not strictly for web services
• Term used loosely as a method of sending information
• over HTTP without using a messaging envelope
Web Service Invocation
• 1. A client may have no knowledge of what Web Service it is
going to invoke. So, our first step will be to find a Web Service
that meets our requirements. For example, we might be
interested in locating a public Web Service which can give me
the temperature in US cities. We'll do this by contacting a UDDI
registry.
• 2. The UDDI registry will reply, telling us what servers can
provide us the service we require (e.g. the temperature in US
cities)
Web Service Invocation
• 3. the location of a Web Service is now known, but the actually
invocation method is still unknown. The second step is to ask
the Web Service to describe itself
• 4. The Web Service replies in a language called WSDL.
Web Service Invocation
• 5. The Web Service is located and invocation method is known.
The invocation is done using SOAP (a SOAP request is sent
asking for the needed information)
• 6. The Web Service will reply with a SOAP response which
includes the temperature we asked for, or maybe an error
message if our SOAP request was incorrect.
SOA Platforms
• Java 2 Platform Enterprise Edition (J2EE).
• Microsoft .NET framework
Questions:
Reference:
• https://www.w3.org/TR/ws-arch/
• https://www.w3.org/TR/wsdl/
• https://www.w3.org/TR/soap/