SWE-444
Internet and Web Application Development
Chapter 7
Web Services
Course Instructor: AFRAA SAYAH
PREPARED BY: Sarah Alfayez
College Of Computer Science & Engineering
University Of Hail, Saudi Arabia
201803
SWE 444 - Internet & Web Application Development
Web Services
Introduction
Example Web Services
Web Services vs Web Applications
Benefits of Web Services
Underlying Technologies
SWE 444 - Internet & Web Application Development
Evolution of the Web
First generation of Web applications
Largely about delivering non-interactive content, i.e. publishing non-interactive HTML
pages.
For example, many applications simply operated in client/server mode and rendered
HTML pages to send across the internet to browsers.
Second generation of Web applications
About creating applications usable over the Web.
E-commerce is an example; you can go to http://www.barnesandnoble.com/ select
books, order them and pay for them.
Second generation also includes a more scalable back-end and a richer UI (e.g.
DHTML).
However, the second generation largely resulted in application islands on the Web.
Yes, there are hyperlinks between sites, but for the most part, the actual
applications at different sites do not interact.
Third generation of Web applications
About using Web protocols and XML throughout to allow better integration between
services on the Web.
Protocols such as XML and SOAP allow you to create Web Services, enabling people
and companies to easily create integrated applications.
SWE 444 - Internet & Web Application Development
Evolution of the Web
HTML, XML
HTML HTML
HTML, XML
Generation 1 Generation 2 Generation 3
Static HTML Web Applications Web Services
SWE 444 - Internet & Web Application Development
What is a Web Service?
A Web Service (sometimes called an XML Web Service) is an application that
enables distributed computing by allowing one machine to call methods on other
machines
Via common data formats and protocols such as XML and HTTP
Web Services are accessed, typically, without human intervention
In .NET and other frameworks these method calls are implemented using the Simple
Object Access Protocol (SOAP)
An XML-based protocol describing how to mark up requests and responses so
that they can be transferred via protocols such as HTTP
Using SOAP, applications represent and transmit data in a standardized format—
XML
In its simplest form, a Web Service is a class whose methods are callable remotely
Methods in a Web Service are executed through a Remote Procedure Call (RPC)
Method calls to and responses from Web Services are transmitted via SOAP
Thus any client capable of generating and processing SOAP messages can use a
Web Service regardless of the language in which the Web Service is written
SWE 444 - Internet & Web Application Development
Why Web Services?
Web services are used to address the fundamental challenge of
distributed computing:
locating and accessing remote systems
There are many scenarios where computers need to access and share
remote with others remotely
Businesses need to share information with partners
Divisions need to send data to other divisions
Consumer applications need to work with other consumer applications
This challenge has been around for decades
Solutions provided using CORBA, COM/DCOM, Java RMI etc
The big difference with the Web Services solution that the problem is
approached using open technologies
Web Services use XML to code and decode data and use SOAP to transport
it using open protocols
Platform independence opens up the opportunity for heterogeneous systems
to access Web services
SWE 444 - Internet & Web Application Development
Problems with Existing Technologies
With distributed object models (CORBA, DCOM etc), applications can
be built that can send data back and forth
However, many of these technologies suffer from the following
limitations:
Not Internet-friendly
Interoperability issues: poor/non-existent standards
Tightly coupled: cannot integrate with other applications
DCOM, based on COM, is a binary standard that has virtually no
deployment outisde of MS Windows platform
Although CORBA can (and does) work in heterogenous environments,
many developers find it difficult to implemented CORBA-based
applications and services
SWE 444 - Internet & Web Application Development
Sample Web Services
Package tracking:
A Web service provided by a delivery company like UPS, FedEx
A book seller like Amazon.com can incorporate package-tracking capability
Google search
Incorporating a search engine seamlessly into ones site is a feature very
commonly needed.
News (RSS) feed
An online news provider could provide a Web service to all the Web sites
publishing the news
Currency conversion
Weather forecast
SWE 444 - Internet & Web Application Development
Web Applications versus Web Services
Web Applications Web Services
Human clients Clients are other
applications
Need to have some user User interface not needed
interface
Usually homogenous Can connect heterogeneous
systems
Tightly coupled Loosely coupled
SWE 444 - Internet & Web Application Development
Benefits of Web Services
Facilitates B2B(Business-to-business) transactions
By purchasing Web Services relevant to their business, companies can
spend less time coding and more time developing new products
Thus Web Services make it easier to businesses to collaborate and grow
together
Extend the benefits of object-oriented programming
Instead of developing software from a small number of class libraries
provided at one location, programmers can access countless libraries in
multiple locations
Benefits various systems (not just Web browsers)
Including slow systems, those with limited amounts of memory or resources,
those without access to certain data and those lacking the code necessary
to perform specific computations
Code and data can be stored on another computer
The client does not need to access or store the database on its machine
SWE 444 - Internet & Web Application Development
Criticisms of Web Services
They are (can be) too complex
Biased towards large software vendors or integrators, rather than open source
implementations.
There are also concerns about performance, because of Web services' use of
XML as a message format.
Web services are inherently slower than other standards because of the
need to convert an XML blob of text into an object.
SWE 444 - Internet & Web Application Development
Underlying Technologies for Web Services
A Web service consumer should be aware of
the existence of the Web Service,
the functionality provided by the Web Service,
the arguments to be provided by the Web Service to utilize the functionality, and
a standard way of communicating with the Web Service
A Web service provider must provide all necessary information required to
access and use the Web service including:
The methods exposed by a Web Service,
the parameters expected, and
the values returned by the methods
The following technologies are used by Web service providers and consumers
XML
SOAP
WSDL
UDDI
SWE 444 - Internet & Web Application Development
XML Is the Glue
Connecting
Connectivity Presentation
Applications
Connect
the Web Browse
the Web Program
the Web
SWE 444 - Internet & Web Application Development
SOAP
SOAP is Simple Object Access Protocol
SOAP
A new lightweight protocol based on XML and HTTP used to exchange data
between a Web Service provider and consumer
A lightweight protocol for exchanging information in a distributed,
heterogeneous environment
It enables cross-platform interoperability
Interoperable
OS, object model, programming language neutral
Hardware independent
Protocol independent
Works over existing Internet infrastructure
Builds on key Internet standards: HTTP + XML
SWE 444 - Internet & Web Application Development
WSDL: Web Services Description Language
XML schema for describing Web Services
Service interface definition
Abstract semantics for Web Service
Service implementation definition
Concrete end points and network addresses where Web Service can be
invoked
Provide information like:
the methods exposed by a Web Service,
the parameters expected, and
the values returned by the methods
Clear description between abstract and concrete messages
SWE 444 - Internet & Web Application Development
UDDI Overview
UDDI = Universal Description, Discovery, and Integration
Industry Initiative to address discovery
A registration database for Web Services
Web services can be published through the industry-wide UDDI
initiative or Microsoft's DISCO
DISCO is a Microsoft publishing/discovery technology built into .NET
UDDI registry consists of four main types of information
Business information consists of name, contact info, services, etc.
Service information provides business/technical descriptions of service
Binding template defines how to connect to and communicate with service
Model provides a technical fingerprint for interfaces/behavior (or anything
else)
SWE 444 - Internet & Web Application Development
Web Services Overview
SWE 444 - Internet & Web Application Development