Title: Web Service
1Web Service
- Ahmed Gamal Ahmed
- Nile University
- Bioinformatics Group
2Agenda
- Web Service Over View
- SOAP
- WSDL
- UDDI
3Web Service Over View
- What are Web services?
- a standardized way of integrating Web-based
applications using the XML, SOAP, WSDL and UDDI
open standards over an Internet protocol
backbone. - XML is used to tag the data
- SOAP is used to transfer the data
- WSDL is used for describing the services
available - UDDI is used for listing what services are
available.
4Web Service Over View
- Why there is a need for Web services?
- Web services' distributed computing model allows
application-to-application communication. - Web services allow different applications from
different sources to communicate with each other
without time-consuming custom coding, and because
all communication is in XML, Web services are not
tied to any one operating system or programming
language. - Because of this level of application
integration, Web services have grown in
popularity and are beginning to improve business
processes. In fact, some even call Web services
the next evolution of the Web.
5Web Service Over View
- Basic Architecture
- The basic architecture includes Web services
technologies capable of - Exchanging messages
- Describing Web services
- Publishing and discovering Web service
descriptions
6Web Service Over View
- Service-Oriented Architecture
- SOA is a specific architectural style that is
concerned with loose coupling and dynamic binding
between services. Some critically important
factors at the heart of SOA are necessary to make
it work effectively.
7Web Service Over View
8Web Service Over View
- Components
- The Service
- A service is a software module deployed on
network accessible platforms provided by the
service provider. - It exists to be invoked by or to interact with a
service requestor. - It may also function as a requestor, using other
web services in its implementation.
9Web Service Over View
- Components
- The Service Description
- The service description contains the details of
the interface and implementation of the service. - This includes its data types, operations, binding
information, and network location. - It could also include categorization and other
meta data to facilitate discovery and utilization
by requestors. - The service description may be published to a
requestor directly or to a discovery agency.
10Web Service Over View
- Roles
- Service Provider
- From a business perspective, this is the owner
of the service. - From an architectural perspective, this is the
platform that hosts access to the service. - It has also been referred to as a service
execution environment or a service container. - Its role in the client-server message exchange
patterns is that of a server.
11Web Service Over View
- Roles
- Service Requestor
- From a business perspective, this is the business
that requires certain function to be satisfied. - From an architectural perspective, this is the
application that is looking for and invoking or
initiating an interaction with a service. - The requestor role can be played by a browser
driven by a person or a program without a user
interface, e.g. another web service. - Its role in the client-server message exchange
patters is that of a client.
12Web Service Over View
- Roles
- Discovery Agency
- This is a searchable set of service descriptions
where service providers publish their service
descriptions. - The service discovery agency can be centralized
or distributed. - A discovery agency can support both the pattern
where it has descriptions sent to it and where
the agency actively inspects public providers for
descriptions. - Service requestors may find services and obtain
binding information (in the service descriptions)
during development for static binding, or during
execution for dynamic binding.
13Web Service Over View
- Operations
- Publish
- In order to be accessible, a service needs to
publish its description such that the requestor
can subsequently find it. - Where it is published can vary depending upon the
requirements of the application.
14Web Service Over View
- Operations
- Find
- The service requestor retrieves a service
description directly or queries the registry for
the type of service required . - The find operation may be involved in two
different lifecycle phases for the service
requestor - At design time in order to retrieve the service's
interface description for program development - At runtime in order to retrieve the service's
binding and location description for invocation.
15Web Service Over View
- Operations
- Interact Eventually, a service needs to be
invoked. In the interact operation the service
requestor invokes or initiates an interaction
with the service at runtime using the binding
details in the service description to locate,
contact, and invoke the service. Examples of the
interaction include single message one way,
broadcast from requester to many services, a
multi message conversation, or a business
process. Any of these types of interactions can
be synchronous or asynchronous.
16Web Service Over View
17 XMLThe Backbone of Web Services
18 XMLThe Backbone of Web Services
19 XMLThe Backbone of Web Services
- The XML markup, in much the same way as HTML, is
in the form of tags(e.g., lttaggt, ltnamegt, ltpricegt,
ltwifegt, and so forth).
20 XMLThe Backbone of Web Services
- XML namespaces
- Name Conflicts
- In XML, element names are defined by the
developer. This often results in a conflict when
trying to mix XML documents from different XML
applications.
21 XMLThe Backbone of Web Services
- This XML carries HTML table information
- This XML carries information about a table (a
piece of furniture)
22 XMLThe Backbone of Web Services
- Solving the Name Conflict Using a Prefix
- Name conflicts in XML can easily be avoided
using a name prefix.
23 XMLThe Backbone of Web Services
- XML Namespaces - The xmlns Attribute
- When using prefixes in XML, a so-called namespace
for the prefix must be defined. - The namespace is defined by the xmlns attribute
in the start tag of an element. - The namespace declaration has the following
syntax. xmlnsprefix"URI".
24 XMLThe Backbone of Web Services
- The namespace URI is NOT used by the parser to
look up information.
25Web Service Stack
26Basic Web Service Usage Scenario
27Web Services Implementation
- Application Server (web service-enabled)
- provides implementation of services and
exposes it through WSDL/SOAP - implementation in Java, as EJB, as .NET (C)
etc. - SOAP server
- implements the SOAP protocol
- HTTP server
- standard Web server
- SOAP client
- implements the SOAP protocol on the client site
28SOAP Simple Object Access Protocol
- SOAP consists of
- Envelope construct defines the overall
structure of messages - Encoding rules define the serialization of
application data types - SOAP RPC defines representation of remote
procedure calls and responses - Binding framework binding to protocols such
as HTTP, SMTP - Fault handling
- Soap supports advanced message processing
- forwarding intermediaries route messages
based on the semantics of message - active intermediaries do additional
processing before forwarding messages, may modify
message
29SOAP Simple Object Access ProtocolSOAP Messages
- SOAP messages consist of
- Envelope top element of XML message
(required) - Header general information on message such as
security (optional) - Body data exchanged (required)
- Header
- elements are application-specific
- may be processed and changed by
- intermediaries or recipient
- Body
- elements are application-specific
- processed by recipient only
30SOAP Simple Object Access ProtocolExample
SOAP Message
31SOAP Simple Object Access ProtocolProtocol
Binding
- Bindings to different protocols possible HTTP,
SMTP - Different HTTP bindings HTTP POST, HTTP GET
- standard HTPP POST for request-response
32 WSDL Web Service Description Language
- Description of Web services in XML format
- abstract description of operations and their
parameters (messages) - binding to a concrete network protocol (e.g.
SOAP) - specification of endpoints for accessing the
service - Structure of a WSDL document
33 WSDL Web Service Description Language
Overview of Defining WSDL Services
- Define in XML Schema the message types used when
invoking the service MT1, MT2 etc. - Define (named) messages by using these types,
e.g. - message m1 has type MT1
- message m2 has type MT2 etc.
- Define Services that consist of one or more
operations each operation is implemented by the
exchange of messages - service S offers operation O1 for executing O1
first send a request message m1, then a response
message m2 is returned - Define a Binding B to a specific protocol, e.g.
SOAP - service S is implemented in SOAP the SOAP
messages are constructed from the abstract
messages m1 and m2 by, e.g. inlining the message
as body of SOAP messages - Service S is provided with binding B at the
following URI's (called ports)
34 WSDL Web Service Description Language
Example Overall Document Structure
35 WSDL Web Service Description Language
Example Definition of Types
36 WSDL Web Service Description Language
Example Definition of Messages and PortType
37 WSDL Web Service Description Language
Example Definition of Binding and Service
38 WSDL Web Service Description LanguagePortTypes
- WSDL supports 4 message patterns that an endpoint
(service provider!) can support for an operation - one-way message is sent to service provider
without expecting response - request-response request is sent to service
provider expecting response - solicit-response provider sends a message and
expects response - notification message is sent by service provider
- Message patterns are distinguished by the use of
input/output elements - one way
- request/response
39 UDDI Universal Description Discovery and
Integration
- Universal Description and Discovery and
Integration - UDDI consists of
- A specification for how to build a registry of
business, services and how to connect to them - A standards committee that is working on revising
and improving the specification - Agreement to operate solutions that conform to
the specification
40 UDDI Universal Description Discovery and
Integration
- UDDI Business Registry consist of
- White pages general information regarding
business - Yellow pages arranged by geography or industry
code - Green pages list protocols supported by each
business - Information stored in XML format