1. Web Service Standards Relevant to SOA By Mark Zalar
2. Seminar Outline
SOA basics
Web Services
Web Service Protocol Stack
Overview
Closer look at each level
Protocols and how theyre used
Tools
Alternative SOA web service tool and protocol
3. What is SOA?
Service-Oriented Architecture
An architecture that relies on loosely-coupled software agents
to perform specified tasks
Software agents can be independent of one another
Interaction requires no knowledge of a software agents
underlying details
4. What is SOA?
Loose-coupling
An approach/design goal where interaction between services is
developed with minimal assumptions between the services
A change in one service should not force a change in another
service that interacts with it
Interface is independent of implementation
5. What is SOA?
Service
A unit of work performed by a service provider for a service
consumer
Service providers and service consumers are both software
agents
6. What is SOA?
Web Services
A software system designed to support interoperable machine to
machine interaction over a network (W3C definition)
A web service is SOA if:
Interfaces are based on Internet protocols
Messages are XML
7. SOA and Web Service Standards
SOA web services are typically built on web service standards
(a.k.a. web service specifications)
More interoperability
Freedom from proprietary vendor software
Many of these standards, like SOAP, already have widespread
industry acceptance
8. SOA and Web Service Standards
The base level web service standards relevant to SOA are common
standards that most of us have used or at least heard of.
XML, HTTP, SOAP, etc.
These standards can be usefully categorized using the web
services protocol stack
9. Web Services Protocol Stack
The web service protocol stack is a collection of computer
networking protocols that are used to:
Define web services
Locate web services
Implement web services
Make web services interact with each other
10. Web Services Protocol Stack
Four major parts
Service Transport
HTTP, SMTP, FTP
XML Messaging
XML, SOAP
Service Description
WSDL
Service Discovery
UDDI
11. Web Services Protocol Stack
What is each part responsible for?
Service transport
Transporting messages between network applications
XML messaging
Message encoding in a common XML format so messages can be
understood at both ends of a connection
Service description
Standardized Description of how to interface with the web
service
Service discovery
Centralized registry where web services can publish their
location and description
12. Web Services: The Big Picture Image from Wikipedia
link
13. Service Transport
HTTP
Hypertext Transfer Protocol
Request/response protocol between clients & servers
HTML
SMTP
Simple Mail Transfer Protocol
e-mail
FTP
File Transfer Protocol
Exchanging files over a network
14. XML Messaging
XML
Extensible Markup Language
General-purpose
Open, free standard
Used to share data between systems
Human readable
Can represent general data structures
Trees, lists, etc.
Hierarchical structure
15. XML Messaging
XML Example
Basic bread
Flour
Yeast
Water
Salt
Mix all ingredients together, and knead thoroughly.
Cover with a cloth, and leave for one hour in warm room.
Knead again, place in a tin, and then bake in the oven.
Example from Wikipedia
16. XML Messaging
Genshi
A Python library for parsing and generating XML
Image from Genshi website
17. XML Messaging
SOAP
Simple Object Access Protocol
Used to exchange XML messages over a network (using HTTP or
other service transport protocol)
Most common messaging pattern is RPC
Client sends request, server immediately responds
Allows easy interaction between very different systems
18. XML Messaging
SOAP Example
Client request
827635
Example from Wikipedia
19. XML Messaging
SOAP Example
Server response
Toptimate 3-Piece Set827635
3-Piece luggage set. Black Polyester.
96.50true
Example from Wikipedia
20. Service Description
WSDL
Web Service Definition Language
An XML format for describing web services
Describes the public interface to a particular web service
Data Types
Messages
Operations
Communication Protocols
Often used with SOAP and XML
WSDL tells a client what functions are available
The client uses SOAP to actually call functions
21. Service Description
WSDL Example
Example from W3Schools
22. Service Discovery
UDDI
Universal Description Discovery and Integration
XML-based, platform independent, standardized worldwide
business registry
Businesses can publish service listings and describe how
services interact over the Internet
Focuses on the discovery aspect of SOA
Three types of information can be registered into a UDDI
registry
White Pages - business identification information (address,
name, contact information)
Yellow Pages - characterization/description of service
Green Pages - technical information about service
Used with SOAP messages to access WSDL documents describing
services in the directory
23. Service Discovery Table from uddi.org UDDI Business
Registry (UBR) From an end-users perspective, a public registry
appears to be a service in a cloud. Although administrative
functions may be secured, access to the registry data itself is
essentially open and public. Data may be shared or transferred
among other registries, and content may or may not be moderated.
Public Trading Partner Network A registry deployed within a
controlled environment, but with limited access by authorized
clients. Administrative features may be delegated to trusted
parties. Data may be shared with other registries in a controlled
manner. Affiliated Enterprise Web Service Registry An internal
registry, behind a firewall, that is isolated from the public
network. Access to both administrative features and registry data
is restricted. Data is not shared with other registries.
Corporate/Private EXAMPLE APPLICATION DESCRIPTION REGISTRY
TYPE
24. Service Discovery
UDDI Example
http:// soapclient.com/uddisearch.html
25. Other SOA Web Services Options
Although the standards discussed offer much flexibility for
service-oriented development, they are not the only means to
implement SOA web services.
Almost any service-based technology will work
Service oriented systems have been implemented using
Jini
CORBA
26. Jini
Originally developed by Sun, now Apache (Apache River)
Jini is used to create distributed services
Java Based
Seven suite used to develop and deploy services
Both a specification and an implementation
Has discovery features
27. Jini
Jini service browser example
Image from Warren Strange
28. CORBA
Distributed programming protocol
Jini uses CORBA
Standard defined by Object Management Group
Allows interoperation between software components written in
different languages running on different computers
Wraps code with a description that contains information about
what the code can do and how to use it
Uses an interface definition language to specify how code
interacts
Mappings exist between the interface definition language and
implementation programming languages
Ada, C, C++, Lisp, Smalltalk, Java, COBOL, PL/I, and
Python