Web Services Overview
Bill Edison
[email protected]
10/3/2015
1
Agenda





History
XML Technologies
SOAP
Web Services
SOA
10/3/2015
2
Some History

Mid 1970’s - Standard Generalized Markup Language (SGML) introduced by
Charles Goldfarb


Early 1980’s – Emergence of the Internet leveraging the Internet Protocol suite,
including TCP/IP








http://en.wikipedia.org/wiki/Internet
http://en.wikipedia.org/wiki/Internet_protocol_suite
http://www.ietf.org/
Mid 1980’s – World Wide Web and World Wide Web Consortium (W3C)
conceived and founded by Tim Berners-Lee


Provides an international standard for data representation
Created a formal specification for Hypertext Markup Language (HTML) based on
SGML
Provides a compact and simple syntax to describe the format and layout of text—
standard for Web publishing
First Web Browser, Silversmith, by John Bottoms in 1987 based on SGML
1990’s - W3C created Hypertext Transfer Protocol (HTTP) a method used to
transfer or convey information on the World Wide Web. Its original purpose was
to provide a way to publish and retrieve HTML pages.
Late 1990’s – W3C creates Extensible Markup Language (XML) (again based
on SGML), a meta-language to describe the nature of information
Late 1990’s – Simple Object Access Protocol (SOAP) developed with Microsoft
backing by Dave Winer, Don Box, Bob Atkinson, and Mohsen Al-Ghosein to
provide a basic Web messaging framework--now a W3C maintained
specification
10/3/2015
[Wikipedia]
3
Evolution to SOA
Programming World
Data-centric
development
COBOL
Code-centric
development
FORTRAN
PL/1
Algol
Document
World
GML
Transport /
Protocol
World
SGML
IMS
TCP/IP
Basic
CICS
Pascal
XML
HTML
HTTP
C
RDBMS
XHTML
Ada
Visual
Basic
Object World
OO-Ada
OO-COBOL
C++
Java
C#
Component World
CORBA
COM
DCOM
10/3/2015
[Coyle]
EJB
SOAP
4
Foundation Technologies

TCP/IP
XML

HTTP
SOAP

HTML

Browsers
10/3/2015
 SOA
Web Services
5
Extensible Markup Language
(XML)
Basics
10/3/2015
6
XML Overview





A language for creating other languages
Tags and content, with tags that describe the meaning of content
Start tags and end tags delimit elements containing data
Example of customer information
<Customer>
<Name> John von Neumann</Name>
<PhoneNum>914.631.7722</PhoneNum>
<FaxNum>914.6331.7723></FaxNum>
<E-Mail>[email protected]</E-Mail>
</Customer>
Data can be specified with attributes within an element
<Customer name=“John von Neumannn” phone=“914.631.7722”
fax=“914.631.7723” [email protected]/>
10/3/2015
[Coyle]
7
XML Traits




XML allows data to be stored in either
elements or attributes
Elements and attributes can be named to
give the data meaning
Start tags and end tags define elements that
are the basis for XML tree-structured
representations of documents
Elements can contain text data and/or other
elements
10/3/2015
[Coyle]
8
XML Advantages




XML files are textual and human readable versus
binary formats
XML is widely supported by industry tools for
developers, Web browsers, databases, application
environments, and operating systems
 http://www.altova.com/products/xmlspy/xml_editor
.html
Major relational databases have the native capability
to store, read, and generate XML data
XML support technologies are available for Web
page display and report generation
10/3/2015
[Coyle]
9
XML Decoupling




No presentation format is assumed. Unlike HTML, basic XML
makes no rendering assumptions. Supporting technologies such
as style sheets address this.
No built in data typing is provided. DTDs and XML Schema
provide support for defining the structure and data types
associated with an XML document.
No transport is assumed. XML makes no assumption about how
XML is moved across the Internet.
Thus, XML decouples from:
 Presentation
 Data formats
 Transport protocols
10/3/2015
[Coyle]
10
XML Specifications
DTD
describes
XML
Documents
supersedes
presents
XSL
describes
searches
XSD
searches
transforms
XPath
XQuery
uses
XSLT
uses
uses
uses
10/3/2015
[Erl]
11
XML Technologies

Structure and Data Types

Define how specific XML documents should be structured



DTDs flow from the SGML world



Specify what elements and attributes are valid for a particular instance
Limited ability to specify data types
XML Schema is a W3C initiative


Document Type Definition (DTD)
XML Schema Definition Language (XSD)
More precision that DTDs
XML Presentation Technologies






10/3/2015
eXtensible Stylesheet Language (XSL) and XSL Formatting Objects support XML for
various output media
XHTML, a modular XML-conformant replacement for HTML
Cascading Style Sheets (CSS) for controlling display properties of HTML or XML in
Web browsers
XForms for collecting data from Web forms and returning XML
VoiceXML for delivering content to voice-enabled devices
Wireless Markup Language for delivery to wireless devices enabled for Wireless
Application protocol (WAP)
[Coyle]
12
XML Schemas





Two schema definition mechanisms
 DTD
 XML Schemas
Both define the structure of XML documents
Used to validate the form of specific XML formatted
instances
DTD focuses on structure, element and attribute
definition--data typing is limited to text (Based on
SGML syntax)
XML Schema is a newer W3C standard providing for
structure and detailed data type specification, e.g.
times, Boolean, binary, float, decimal, integer, string,
token, etc.
10/3/2015
[Coyle]
13
Another XML Example
<?xml version=1.0”?>

<!DOCTYPE book SYSTEM
“book.dtd”>


<book category=“Fiction”>
<title>Joy of Integration</title>
<author>Joe Smith</author>
</book>
10/3/2015


“XML declaration” is first markup
line and specifies the version
being used
Link to a DTD
The part of a document within
which data is represented is the
“document instance” with a
hierarchical arrangement of
elements and attributes, here
book and category
Child element of book, title and
author
End of the book element
14
DTD Example
<!DOCTYPE book [

<! ELEMENT book (title, author) >
<!ATTLIST book CATEGORY
(Fiction|Non-Fiction)>

Document type declaration of
root element--corresponds to
link in XML document
Characteristics of each
element are specified



<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
]>
10/3/2015
Parent-child relationships
Attributes
Validation rules

Data types
Parsed Character Data

Closing
15
Complete Document Specification

DTD
<!DOCTYPE book [
<! ELEMENT book (title, author) >
<!ATTLIST book CATEGORY (Fiction|Non-Fiction)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
]>

Instance of the above DTD
<?xml version=1.0”?>
<!DOCTYPE book SYSTEM “book.dtd”>
<book category=“Fiction”>
<title>Joy of Integration</title>
<author>Joe Smith</author>
</book>
10/3/2015
16
Namespaces, Element, Attributes





Attributes cannot be further subdivided into subelements, but elements can always be subdivided
Use elements if data may need to be subdivided
Programs processing XML may have to call special
modules to handle attributes introducing complexity
Attributes are more compact and readable
Element and attribute names are distinguished from
the same names in different contexts by prefixing a
Uniform Resource Indicator (URI) as namespace
name. Tagging can be implicit or explicit using
abbreviations
Namespace: http://www.zwiftbooks.com
<book> <title> Deliverance </title> </book>
 <http://www.zwiftbooks.com:title>
10/3/2015
[Coyle]
Namespace: http://www.music.com
<album> <title> Deliverance </title> </album>
 <http://www.music.com:title>
17
XSD Example
<?xml version=“1.0”?>
<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
<xsd:element name = “book”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name= “title” type=“xsd:string”/>
<xsd:element name=“author” type=“xsd:string”/>
</xsd:sequence>
<xsd:attribute name=“category”>
<xsd:simpleType>
<xsd:restriction base=“xsd:string”>
<xsd:enumeration value=“Fiction”/>
<xsd:enumeration value=Non-Fiction”/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>
10/3/2015
18
More XML Technologies
DOM
SAX
Program manipulation
technologies
RDF
DTD
XML Schema
Structure & data typing
XSLT
XPath
XLink
XQuery
XML manipulation
technologies
XML
&
Namespaces
Core
Semantic Web
CSS
XSL
XSL-FO
XHTML
XForms
VoiceXML
Presentation
technologies
InfoSet
10/3/2015
[Coyle]
19
More XML Technologies

Program Manipulation technologies



Can be manipulated using various interfaces




Document Object Model (DOM) provides a platform and language neutral interface defined by
W3C that allows programs and scripts to access and update the content, structure, and style
of documents
Simple API for XML (SAX) provides a collaboratively developed standard interface for XML
parsing
Tree-based
Event-based
Class-based
XML manipulation technologies



Extract and transform XML in different ways
Key for server-based XML B2B processing
XSL Transformation (XSLT) transforms XML from one format to another





Transform a DOM tree to an XML document
XPath supports navigation through an XML tree structure to find particular elements or subtrees
XLink supports creating and describing links between resources, enabling links that go beyond the
simple uni-directional links of the Web
XQuery supports querying and extracting from XML repositories
Other


10/3/2015
Resource Description Framework (RDF) provides a foundation for metadata processing, directed to
automated processing of Web resources
InfoSet is an W3C initiative to provide a consistent set of definitions for use in other specifications
that need to reference information in XML documents.
[Coyle]
20
Java API’s for XML

Document Oriented

Java API for XML Processing (JAXP) – processes XML documents using various
parsers – leverages

SAX (Simple API for XML Parsing)



DOM (Document Object Model





API for event-based parser
Reads the XML from beginning to end and notifies application for each recognized syntax
construction
Interfaces for building an object representation, a tree, of a parsed XML document
Can manipulate tree with insert and remove methods
Random access to particular pieces of data
Java Architecture for XML Binding (MAXB) – maps XML elements to classes in the
Java programming language
Procedure Oriented



10/3/2015
Java API for XML Messaging (JAXM) – sends SOAP messages over the Internet in a
standard way
Java API for XML Registries (JAXR) – provides a standard way to access business
registries and share information
Java API for XML based RPC (JAX-RPC) – sends SOAP method calls to remote
parties over the Internet and receives the results
[Sun]
21
SAX API Example
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
saxParser.parse("priceList.xml", handler);
[Create SAX parser factory]
[Create SAX parser object]
[Parse XML file]
public void startElement(..., String elementName, ...){
if(elementName.equals("name")){
inName = true;
} else if(elementName.equals("price") && inMochaJava ){
inPrice = true;
inName = false;
}
}
[Custom startElement method]
public void characters(char [] buf, int offset, int len) {
String s = new String(buf, offset, len);
if (inName && s.equals("Mocha Java")) {
inMochaJava = true;
inName = false;
} else if (inPrice) {
System.out.println("The price of Mocha Java is: " + s);
inMochaJava = false;
inPrice = false;
}
}
}
[Custom characters method]
10/3/2015
[Sun]
22
SAX Parsing Example
<priceList> [parser calls startElement]
<coffee> [parser calls startElement]
<name>MochaJava</name> [parser calls startElement, characters,
and endElement]
<price>11.95</price> [parser calls startElement, characters, and
endElement]
</coffee> [parser calls endElement]
...
</priceList>




next invocation of startElement -- inName is true
next invocation of characters -- inMochaJava is true
next invocation of startElement -- inPrice is true
next invocation of characters -- prints price
10/3/2015
[Sun]
23
XML To Be Transformed
<?xml version=1.0”?>
<xsl:transform
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
version=“1.0”>
<inventory>
<book category=“Fiction”>
<title>Joy of Integration</title>
<author>Joe Smith</author>
</book>
<book category=“Non-Fiction”>
<title>Integration for Dummies</title>
<author>John Doe</author>
</book>
</inventory>
10/3/2015
[Erl]
24
XSLT and XPATH Transformation
<?xml version=1.0”?>
<xsl:transform
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
version=“1.0”>
<xsl:template match=“/”>
<xsl:apply-templates />
</xsl:template>
<xsl:template match=“inventory”/
<table border=“1”>
<xsl:for-each select=“book”>
<tr>
<td><xsl:value-of [email protected]/></td>
<td><xsl:value-of select=“title”/></td>
<td><xsl:value-of select=“author”/></td>
</tr>
</xsl:for-each>
Fiction
Joy of Integration
</table>
</xsl:template>
Non-Fiction Integration for Dummies
</xsl:transform>
10/3/2015
[Erl]
Joe Smith
John Doe
25
XML Revolutions

Data revolution – XML




Data is not tied to transport or language – travels using Web protocols
Data previously subordinated to code and transport
Data decoupled from constraints of code and transport
Architecture revolution


Loosely coupled systems centered around the Web and message-oriented
middleware
Previously tightly coupled object systems




Java Remote Method Invocation (RMI)
Microsoft COM/Distributed Component Object (DCOM)
OMG Common Object Request Broker Architecture (CORBA)
Software revolution



10/3/2015
Simplicity of design and power of combination and collaboration
Previously large systems built from detailed specifications
Now, assembled systems with capability emergence
[Coyle]
26
Moving Data on the Web



Option 1 – Electronic Data Interchange (EDI)
 Defines a common data format
 Uses proprietary transport network
 Delivers data in agreed upon formats
Option 2 – CORBA, RMI, DCOM
 Agrees to a transport protocol supported on multiple platforms
 Uses an object request broker to handle inter-object
communication
 Delivers data as parameters of method calls
Option 3 – SOAP
 Defines an XML envelope for data
 Uses common internet protocols to deliver the SOAP envelop
 When using HTTP for transport leverages XML data with
attachments
10/3/2015
[Coyle]
27
Simple Object Access Protocol
(SOAP)
10/3/2015
28
SOAP





Simple – potentially not simple – many possible
options
Object – not particularly related to object-oriented
development – often procedural in nature
Access – ok – one out of four
Protocol – Not a replacement for HTTP or SMTP – it
relies on those protocols to handle the data
http://www.w3.org/2000/xp/Group
10/3/2015
[Iverson]
29
Internet Protocol Suite





Application Layer
 DHCP, DNS, FTP, HTTP(S), IMAP4, IRC, NNTP, XMPP, MIME,
POP3, SIP, SMTP, SNMP, SSH, TELNET, BGP, RPC, RTP,
RTCP, TLS/SSL, SDP, SOAP, L2TP, PPTP
Transport Layer
 TCP, UDP, DCCP, SCTP, GTP
Network Layer
 IP(IPv4, IPv6), ARP, RARP, ICMP, RSVP, IGMP, IPSec
Data Link Layer
 ATM, Ethernet , FDDI, Frame Relay, GRS, PPP
Physical Layer
 Ethernet, ISDN, Modems, PLC, RS232, SONET/SDH, G.709,
WiFi
10/3/2015
30
Web Data Transport
HTML document or
browser compatible
type
Any file
Server
Data
HTTP
Header
Data
FTP
Header
Browser
Client
GET file.html
HTTP
GET
Web content
returned
Data passed
to server
POST
HTTP
Web content
returned
10/3/2015
[Coyle]
31
Power of Combination
SOAP
SOAP
SOAP
XML
HTTP
SOAP – Combination of HTTP and XML
HTML
HTTP
Server
10/3/2015
[Coyle]
Browser
Web – Combination of HTML, HTTP
and Browsers
32
SOAP in Context







SOAP is an application layer protocol.
Corba Internet Inter-ORB Protocol (IIOP), Object Remote Procedure
Call (ORPC) (basis for DCOM), and Java Remote Method Protocol
(JRMP) are binary protocols, while SOAP is a text-based protocol
that uses XML
Using XML for data encoding makes SOAP easier to debug and
read.
Since SOAP is text based, it can move more easily across firewalls
than IIOP, ORPC, or JRMP
HTTP based messages pass through port 80 on most firewalls
SOAP is based on XML which is standards driven, versus vendor
driven.
SOAP messages define one-way data transmission; however
messages can be combined to implement patterns such as requestresponse
10/3/2015
[Coyle]
33
SOAP
Corporate Network
(CORBA, RMI, DCOM)
SOAP
Tightly coupled network
Based on a common
transport protocol
Message Oriented
Middleware
SOAP
SOAP
SOAP
Loosely coupled Web-based
network using SOAP and
protocols (HTTP, FTP, SMTP)
SOAP
XML
10/3/2015
[Coyle]
FTP
HTTP
SMTP
34
SOAP Parts



Encoding rules that control XML tags that
define a SOAP message and a framework for
message content
Rules for exchanging application-defined
data types, including when to accept or
discard data or return an exception to the
sender
Conventions for representing remote
procedure calls and responses
10/3/2015
[Coyle]
35
SOAP Message Structure



SOAP Envelope – Outermost element of
a SOAP message that is the root of the
XML document defining a SOAP
message
SOAP Header – Optional element that
provides a modular way of directing
SOAP servers to do processing before
passing the message on, e.g. add
transaction or security information or
perform stages of processing in a
message path
SOAP Body – Contains the transported
XML payload which may be data or a
remote procedure call.
10/3/2015
[Coyle]
SOAP <Envelope>
(Mandatory)
SOAP <Header>
(Optional)
SOAP <Body>
(Mandatory)
36
SOAP Example Request
Client initiating SOAP
request for best book
delivery time
Internet
ZwiftBooks server
configured to understand
SOAP
Request
XML Data
HTTP
Header
SOAP Envelope
HTTP
Request
Header
SOAP
Content
10/3/2015
[Coyle]
POST/ZwiftBooks HTTP/1.1
Host: www.zwiftbooks.com
Content-Type: text/xml
Content-Length: 134
SOAP Action: “Some-URI”
<Envelope>
xmlns: “http:w3.org/2001/09/soap-envelope”
encodingStyle=“http://www.w3.org/2001/09/soap-encoding”>
<Body>
<zwiftbooks: GetBestDeliveryTime
<zwiftbooks:isbn>0-101-22892-3</zwiftbooks:isbn>
<zwiftbooks:zipcode>75230</zwiftbooks:zipcode>
</zwiftbooks:GetBestDeliveryTime>
</Body>
</Envelope>
37
SOAP Example Response
Internet
Client initiating SOAP
request for best book
delivery time
ZwiftBooks server
Response
HTTP
Header
XML Data
SOAP Envelope
10/3/2015
HTTP
Request
Header
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 122
SOAP
Content
<Envelope>
xmlns: “http:w3.org/2001/09/soap-envelope”
<Body>
<zwiftbooks:GetBestDeliveryTimeResponse
xmlns:zwiftbooks=www.zwiftbooks.com>
<zwiftbooks:Time>8 hours</zwiftbooks:Time>
</zwiftbooks:GetBestDeliveryTimeResponse>
</Body>
</Envelope>
[Coyle]
38
SOAP Message Paths



SOAP messages may be routed from server to server, supporting
processing at intermediate nodes
 Pipe and filter architecture
 Layered architecture and multi-tier patterns
Intermediaries can be proxies, caches, store-and-forward nodes, and
gateways
SOAP server rules
 Identify the parts of the SOAP message intended for the server
application




10/3/2015
Check for actor attribute that is URI of the application or the URI
http://schemas.xmlsoap.org/soap/actor/next which means the application
must process the header
Verify that all parts of the header intended for the application and
associated with a mustUnderstand=“true” attribute are supported,
otherwise fault
Process the parts of header intended for the application
If not the ultimate destination, remove all header elements intended for it
before forwarding the message
[Coyle]
39
Apache Axis SOAP Example
1 import org.apache.axis.client.Call;
2 import org.apache.axis.client.Service;
3 import javax.xml.namespace.QName;
4
5 public class TestClient {
6
public static void main(String [] args) {
7
try {
8
String endpoint =
9
"http://nagoya.apache.org:5049/axis/services/echo";
10
11
Service service = new Service();
12
Call call = (Call) service.createCall();
13
14
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
15
call.setOperationName(new QName("http://soapinterop.org/", "echoString"));
16
17
String ret = (String) call.invoke( new Object[] { "Hello!" } );
18
19
System.out.println("Sent 'Hello!', got '" + ret + "'");
20
} catch (Exception e) {
21
System.err.println(e.toString());
22
}
23 }
24 }
10/3/2015
[Apache Axis Project]
40
Apache Axis SOAP Example





Lines 11 and 12 create new Service and Call objects-standard
Java API for XML based RPC (JAX-RPC) objects that store
metadata about the service to invoke
Line 14 sets up endpoint URL-the destination of the SOAP
message
Line 15 defines the operation (method) name of the Web Service
Line 17 invokes the desired service passing a set of parameters—
here just one string
Invoking the program yields the following
% java samples.userguide.example1.TestClient
Sent ‘Hello!’, got “Hello!’
%
10/3/2015
[Apache Axis Project, Sun]
41
Apache Axis Example
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:echoString xmlns:ns1="http://soapinterop.org/">
<arg0 xsi:type="xsd:string">Hello!</arg0>
</ns1:echoString>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
http://ws.apache.org/axis/java/releases.html
http://mirror.olnevhost.net/pub/apache/ws/axis/1_4
10/3/2015
[Apache Axis Project]
42
Web Services
10/3/2015
43
Web Services

A vague term that refers to distributed or virtual
applications or processes that use the Internet to
link activities or software components. A travel Web
site that takes a reservation from a customer, and
then sends a message to a hotel application,
accessed via the Web, to determine if a room is
available, books it, and tells the customer he or she
has a reservation is an example of a Web Services
Application.
Business Process Trends
http://www.bptrends.com/resources_glossary.cfm?
letterFilter=W&displayMode=all
10/3/2015
[Iverson]
44
XML Communication
Corporate Network
Firewall
XML
XML
XML
Repository
Web
Message
Server
Provider
Client
Option 1: Communicate
directly using XML and
Web protocols
10/3/2015
[Coyle]
Web Services
Option 3: Locate partners via Web
services repository – communicate
directly or via messaging middleware
Option 2: Communicate via
messaging middleware
45
Web Services Again




Technology, process, and phenomenon
As technology, a set of protocols building on
the SOAP, XML, and HTTP foundation
As process, an approach to software
discovery and connection over the Web
As a phenomenon, an industry wide adoption
of a decentralized, loosely coupled,
synergistic approach
10/3/2015
[Coyle]
46
Web Services Framework





Describe--Accessible descriptions of functionality and attributes
so other applications can determine how to use it
Expose—Services register in a repository providing
 Business information (White pages) holding basic serviceprovider information—name, address, telephone number, etc.
 Service information (Yellow pages) listing groups of services by
category
 Binding information (Green pages) describing how to connect
and use the services—URL’s, method names, argument types,
etc.
Invoke—Remote application can invoke service
Respond—When service is invoked, results are returned to the
requester
Manage/Govern – Provided structure and process control
10/3/2015
[Coyle]
47
Web Services Framework
Corporate
Network
XML and SOAP provide an open-ended
data exchange mechanism for the Web
Firewall
XML/SOAP
Repository
XML/SOAP
XML/SOAP
Client
Provider
Firewall
Web Services framework provides Web Services
Protocols and processes for providers
to register and clients to discover and
use Web Services
10/3/2015
[Coyle]
Corporate
Network
48
Web Services Architecture




Process and set of protocols for finding and
connecting to software exposed as services over the
Web
Service provider – provides an interface for software
to carry out a specific set of tasks
Service requester – discovers and invokes software
services to provide a business solution
Broker/Registry – manages and publishes the
service
10/3/2015
49
Web Services Triad
Green
<SOAP:Envelope>
<Soap:Body>
...UDDI Inquiry...
</SOAP:Body>
</SOAP:Envelope>
Uses UDDI to find
appropriate Web
Service
WSDL
White
Yellow
WSDL
Repository/
Registry
<SOAP:Envelope>
<Soap:Body>
...UDDI Update...
</SOAP:Body>
</SOAP:Envelope>
XML/SOAP
Client
• Universal Description, Discovery and Integration (UDDI)
• Web Services Description Language (WSDL)
10/3/2015
[Coyle]
Provider
Uses UDDI to register
a Web Service with the
repository
50
UDDI Registries

Contents







Business entities
Business services
Specification pointers – binding templates
Service types
Business relationships
Subscriptions
UDDI provides inquiry and publishing API’s
10/3/2015
51
UDDI Example
<businessEntity businessKey="...">
<name>Acme Corp.</name>
<businessServices>
<businessService serviceKey="..." businessKey= "...">
<name>Product Guide</name>
<bindingTemplates>
<bindingTemplate bindingKey="..." serviceKey="...">
<accessPoint URLType= "http">http://acme.com/productGuide</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey="uuid:b917c13d-f451-22ef-9a44-a4c562af23d8">
<instanceDetails>
<overviewDoc>
<overviewURL>http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf</overviewURL>
</overviewDoc>
<instanceParms>168 bit triple DES</instanceParms>
<overviewDoc>
<overviewURL>http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf</overviewURL>
</overviewDoc>
<instanceParms>128 bit AES</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</businessService>
</businessServices>
</businessEntity>
http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci910817,00.html
10/3/2015
52
WSDL Document
<definitions>
interface
Abstract
(service
interface
definition)
message
______________
service
Concrete
(service
implementation
Definition)
Logical grouping of operations
Data description using XML Schema
Actual data structures used to pass data
binding
endpoint/port
Service Definition = Abstract + Concrete
Service Description = Service Definition + Supplementary Definitions
10/3/2015
[Erl]
53
WSDL Constructs

definitions (root element)
Abstract


interface (previously
portType) -Group of
logically related operations,
i.e. component interfaces
(methods) representing a
single action or function
message – Collections of
input/output parameters

Concrete

Part – Incoming or outgoing
operation parameter data
service – Collections of
endpoints including physical
address and protocol info

10/3/2015
binding- Association to
operation constructs
[Erl]
<definitions>
<interface name=“Catalog”>
<operation name=“GetBook”>
<input name=“Msg1” message=“BookInfo” />
</operation>
</interface>
<message name=“BookInfo”>
<part name=“title” type=“xs:string”>
Field Guide
</part>
<part name=“author” type=“xs:string”>
Mr. T
</part>
</message>
<service>
<binding name=“Binding1”>
<operation>
<input name=“Msg1” message=“book”/>
</operation>
</binding>
</service>
<types>
<xsd:schema
targetNamespace=http://www.examples.ws/
xmlns=http://www.w3.org/2000/10/XMLSchema>
...
</xsd:schema
</types>
</definitions>
54
Web Services Pros and Cons
Pros
 Global method for
describing and finding
Internet–based business
services
 Packaging and publishing
of applications in a readily
understood format
 New revenue streams
through syndication of
existing application as
Web Service
10/3/2015
[Coyle]
Cons
 Emerging technology
 Managing and Tracking
changes is a challenge
 Transactions not fully
addressed
 Multiple, evolving security
standards
 Processing overhead
55
Enterprise Context
Messaging
.NET
Security
Transactions
Identity
J2EE
Broker/Registry
Client
Provider
10/3/2015
[Coyle]
56
WWW Characteristics




Simplicity
Modularity
Loose Coupling
Emergent Behavior
10/3/2015
57
Enterprise Opportunities
Corporate Network
Firewall
Web
B2C
Business to Consumer
B2B
Business to Business
B2E
Business to Employees
10/3/2015
[Coyle]
58
SOA
10/3/2015
59
SOA Concept


SOA enables a standards-based marketplace
of service consumers and service providers
across an enterprise community or across
the Web
SOA is a specification-based architecture to
transition the technical landscape to a
standards-based, vendor independent, and
loosely-coupled information sharing
environment


10/3/2015
Decoupling the service contract from the service
implementation
Promoting design and invocation by contract
[Government Overview]
60
SOA Conceptual Framework
Security
Mediation
10/3/2015
[Government Overview]
Messaging
Governance
Service Discovery
Management
61
SOA Common Infrastructure
• How do I guarantee my
message is received?
• How do I send messages
asynchronously?
• How do I protect
access to my service?
• How do I make my
security requirements
known?
• How do I discover
services to use?
• How do I advertise my
service to be used by
others?
Security
Messaging
Service Discovery
Mediation
Governance
Management
• How do I obtain data
from various data
sources in a format that I
can easily view and
understand?
10/3/2015
[Government Overview]
• How do I ensure interoperability
amongst services?
• How do I ensure that services are
discoverable and able to be
consumed?
• How do I manage SLAs for my
service?
• How do I monitor the use of my
service?
• How do I report QoS metrics for
my service?
62
SOA Infrastructure Standards
• WS-RM
• WS-RM policy
• WS-Policy
• WS-Addressing
• WS-Notification
• WSS
• SAML
• XACML
• XML-Signature
• XML-Encryption
• WS-Trust
• WS-Policy
• WS-SecurityPolicy
• XKMS
• UDDI
• ebXML
• WS-Discovery
Security
Messaging
Service Discovery
Mediation
Governance
Management
• XSL
• BPEL
• WSDM
• WS-Management
• WS-Policy
• XQuery
• XPath
10/3/2015
[Government Overview]
63
SOA Infrastructure Example
• BEA AquaLogic Enterprise Repository
• Publishing Registry
• Design-time Governance
• BEA AquaLogic Service Registry
• Discovery Registry
AmberPoint
• Run-time Governance
/ Management
SOA Infrastructure
Governance/Management
Security
Authentication
Monitoring
SLA
Reporting
Registry
Service
Discovery
Authorization
Message
Security
Enterprise Service Bus
Dynamic Transformation
Reliable Messaging
Content Based Routing
Service Callouts
Error Handling
Service Switching
Identity
IBM WebSphere
DataPower
10/3/2015
• XML Security
BEA AquaLogic
Service Bus
64
SOA Infrastructure Example (Cont.)
BEA AquaLogic Service Bus

Reliable Messaging


In-route updates to message flow








Queuing/holding messages if
applications are temporarily
unavailable
Rich Transformations
Protocol Conversions (Http get/set
style to SOAP, etc)
Routing
Service load-balancing
Web Service Call-outs
BEA AquaLogic Enterprise Repository

Enterprise Service Catalog for design time
discovery, policy enforcement, and lifecycle
management of services.
BEA AquaLogic Service Registry
•
Runtime service registry to enable runtime
discovery of service endpoints. Enables
movement of services across infrastructure
without service application disruption.
AmberPoint

Run-time Governance


ESBs Built to accelerate and provide
optimized processing of the message
Support for service orchestration &
choreography
Service versioning support





enterprise management
Health and status of service pushed
to enterprise management
Service level management


10/3/2015
Metrics & Monitoring
Dependency Tracking
Possible Policy Management
Validation of messages against Schema
Root-cause analysis to feed into
Define Quality of Service & other
SLO
Compliance
65
SOA Challenges



Governance
Testing
Compliance
10/3/2015
66
References

Coyle, Frank P. XML, Web Services, and the Data Revolution. Addison Wesley:
2002.
http://www.amazon.com/Services-Revolution-Addison-Wesley-InformationTechnology/dp/0201776413

Erl, Thomas. Service-Oriented Architecture. Prentice Hall: 2004.
http://www.soabooks.com/

Iverson, Will. Real World Web Services. O’Reilly: 2004.
http://www.oreilly.com/catalog/realwws/

Brown, Kyle and Rachel Reinitz. IBM WebSphere Developer Technical Journal:
Web Services Architectures and Best Practices. 2003
http://www128.ibm.com/developerworks/websphere/techjournal/0310_brown/brown.html

Schmeizer, Ronald. Zapthink - How to Think Loosely Coupled. 2004
http://www.zapthink.com/report.html?id=ZAPFLASH-05282004

Wilkes, Steve. Loosen Up. 2004
http://dev2dev.bea.com/pub/a/2004/11/bizlogic_wilkes.html
10/3/2015
67
References (Continued)

Apache Axis Project
http://ws.apache.org/axis/

Sun Developer Network Web Services Technical Articles & Tips
http://developers.sun.com/techtopics/webservices/reference/techart/i
ndex.html

Sun Web Services Made Easier. 2002
http://java.sun.com/xml/webservices.pdf

Microsoft UDDI Services
http://www.microsoft.com/windowsserver2003/technologies/idm/uddi/default
.mspx
10/3/2015
68
Descargar

Slide 1