04/25/16 1
Web Services Overview
04/25/16 2
Agenda
 History
 XML Technologies
 SOAP
 Web Services
 SOA
04/25/16 3
Some History
 Mid 1970’s - Standard Generalized Markup Language (SGML) introduced by
Charles Goldfarb
 Provides an international standard for data representation
 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
 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
[Wikipedia]
04/25/16 4
Evolution to SOA
[Coyle]
Programming World
Code-centric
development
Data-centric
development
FORTRAN
PL/1
COBOL
Algol
Pascal
AdaVisual
Basic
Basic
IMS
CICS
RDBMS
Object World
OO-Ada
JavaC++
OO-COBOL
C#
C
EJB
COM
CORBA
DCOM SOAP
Component World
Document
World
GML
XML
HTML
SGML
XHTML
TCP/IP
HTTP
Transport /
Protocol
World
04/25/16 5
Foundation Technologies
 TCP/IP
 HTTP
 HTML
 Browsers
XML
SOAP  SOA
Web Services
04/25/16 6
Extensible Markup Language
(XML)
Basics
04/25/16 7
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>Johnny@cd.com</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=Johnny@cd.com/>
[Coyle]
04/25/16 8
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
[Coyle]
04/25/16 9
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
[Coyle]
04/25/16 10
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
[Coyle]
04/25/16 11
XML Specifications
XML
Documents
DTD
XSD
XQuery
XPath
XSLT
describes
describes
searches
searches
transforms
supersedes
uses
usesuses
uses
[Erl]
XSL
presents
04/25/16 12
XML Technologies
 Structure and Data Types
 Define how specific XML documents should be structured
 Document Type Definition (DTD)
 XML Schema Definition Language (XSD)
 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
 More precision that DTDs
 XML Presentation Technologies
 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]
04/25/16 13
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.
[Coyle]
04/25/16 14
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>
 “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
04/25/16 15
DTD Example
<!DOCTYPE book [
<! ELEMENT book (title, author) >
<!ATTLIST book CATEGORY
(Fiction|Non-Fiction)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
]>
 Document type declaration of
root element--corresponds to
link in XML document
 Characteristics of each
element are specified
 Parent-child relationships
 Attributes
 Validation rules
 Data types
Parsed Character Data
 Closing
04/25/16 16
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>
04/25/16 17
Namespaces, Element, Attributes
 Attributes cannot be further subdivided into sub-
elements, 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>
Namespace: http://www.music.com
<album> <title> Deliverance </title> </album>
 <http://www.music.com:title>
[Coyle]
04/25/16 18
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>
04/25/16 19
More XML Technologies
DOM
SAX
DTD
XML Schema
RDF
Program manipulation
technologies
Structure & data typing
Semantic Web
XML manipulation
technologies
Presentation
technologies
XSLT
XPath
XLink
XQuery
CSS
XSL
XSL-FO
XHTML
XForms
VoiceXML
XML
&
Namespaces
Core
InfoSet
[Coyle]
04/25/16 20
More XML Technologies
 Program Manipulation technologies
 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
 Can be manipulated using various interfaces
 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
 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]
04/25/16 21
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)
 API for event-based parser
 Reads the XML from beginning to end and notifies application for each recognized syntax
construction
 DOM (Document Object Model
 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
 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]
04/25/16 22
SAX API Example
SAXParserFactory factory = SAXParserFactory.newInstance();[Create SAX parser factory]
SAXParser saxParser = factory.newSAXParser(); [Create SAX parser object]
saxParser.parse("priceList.xml", handler); [Parse XML file]
public void startElement(..., String elementName, ...){ [Custom startElement method]
if(elementName.equals("name")){
inName = true;
} else if(elementName.equals("price") && inMochaJava ){
inPrice = true;
inName = false;
}
}
public void characters(char [] buf, int offset, int len) { [Custom characters method]
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;
}
}
}
[Sun]
04/25/16 23
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
[Sun]
04/25/16 24
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>
[Erl]
04/25/16 25
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 select=@category”/></td>
<td><xsl:value-of select=“title”/></td>
<td><xsl:value-of select=“author”/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:transform>
Fiction Joy of Integration Joe Smith
Non-Fiction Integration for Dummies John Doe
[Erl]
04/25/16 26
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
 Simplicity of design and power of combination and collaboration
 Previously large systems built from detailed specifications
 Now, assembled systems with capability emergence
[Coyle]
04/25/16 27
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
[Coyle]
04/25/16 28
Simple Object Access Protocol
(SOAP)
04/25/16 29
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
[Iverson]
04/25/16 30
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
04/25/16 31
Web Data Transport
HTTP
HeaderData
FTP
HeaderData
HTML document or
browser compatible
type
Any file
Browser
Server Client
GET
POST
GET file.html
HTTP
Web content
returned
HTTP
Web content
returned
Data passed
to server
[Coyle]
04/25/16 32
Power of Combination
SOAP
HTTPXML
Server
Browser
HTML HTTP
SOAPSOAP
SOAP – Combination of HTTP and XML
Web – Combination of HTML, HTTP
and Browsers
[Coyle]
04/25/16 33
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 request-
response
[Coyle]
04/25/16 34
SOAP
Corporate Network
(CORBA, RMI, DCOM)
Loosely coupled Web-based
network using SOAP and
protocols (HTTP, FTP, SMTP)
Tightly coupled network
Based on a common
transport protocol
Message Oriented
Middleware
SOAP
SOAP
SOAP
SOAP
SOAP
XML
SMTPHTTP[Coyle] FTP
04/25/16 35
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
[Coyle]
04/25/16 36
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.
SOAP <Envelope>
(Mandatory)
SOAP <Header>
(Optional)
SOAP <Body>
(Mandatory)
[Coyle]
04/25/16 37
SOAP Example Request
Internet
Request
XML Data
HTTP
Header
SOAP Envelope
HTTP
Request
Header
POST/ZwiftBooks HTTP/1.1
Host: www.zwiftbooks.com
Content-Type: text/xml
Content-Length: 134
SOAP Action: “Some-URI”
SOAP
Content
<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>
Client initiating SOAP
request for best book
delivery time
ZwiftBooks server
configured to understand
SOAP
[Coyle]
04/25/16 38
SOAP Example Response
Internet
Response
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>
Client initiating SOAP
request for best book
delivery time
ZwiftBooks server
XML Data
HTTP
Header
SOAP Envelope
[Coyle]
04/25/16 39
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
 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]
04/25/16 40
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 }
[Apache Axis Project]
04/25/16 41
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!’
%
[Apache Axis Project, Sun]
04/25/16 42
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
[Apache Axis Project]
04/25/16 43
Web Services
04/25/16 44
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
[Iverson]
04/25/16 45
XML Communication
Firewall
Corporate Network
Message
Server
Option 2: Communicate via
messaging middleware
Option 3: Locate partners via Web
services repository – communicate
directly or via messaging middleware
Option 1: Communicate
directly using XML and
Web protocols
XMLXMLXML
Repository
Provider
Client
Web Services
Web
[Coyle]
04/25/16 46
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
[Coyle]
04/25/16 47
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 service-
provider 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
[Coyle]
04/25/16 48
Web Services Framework
Corporate
Network
Corporate
Network
Firewall
Firewall
Client
Repository
Provider
Web ServicesWeb Services framework provides
Protocols and processes for providers
to register and clients to discover and
use Web Services
XML/SOAP
XML/SOAP
XML/SOAP
XML and SOAP provide an open-ended
data exchange mechanism for the Web
[Coyle]
04/25/16 49
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
04/25/16 50
Web Services Triad
Client
Repository/
Registry
Provider
XM
L/SOAP XM
L/SOAP
WSDL
Green
White
Yellow
Uses UDDI to register
a Web Service with the
repository
Uses UDDI to find
appropriate Web
Service
XML/SOAP
WSDL
UDDI
<SOAP:Envelope>
<Soap:Body>
...UDDI Inquiry...
</SOAP:Body>
</SOAP:Envelope> <SOAP:Envelope>
<Soap:Body>
...UDDI Update...
</SOAP:Body>
</SOAP:Envelope>
[Coyle]
UDDI
• Universal Description, Discovery and Integration (UDDI)
• Web Services Description Language (WSDL)
04/25/16 51
UDDI Registries
 Contents
 Business entities
 Business services
 Specification pointers – binding templates
 Service types
 Business relationships
 Subscriptions
 UDDI provides inquiry and publishing API’s
04/25/16 52
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
04/25/16 53
WSDL Document
[Erl]
interface
message
______________
service
binding
endpoint/port
Abstract
(service
interface
definition)
Concrete
(service
implementation
Definition)
Logical grouping of operations
Data description using XML Schema
Actual data structures used to pass data
<definitions>
Service Definition = Abstract + Concrete
Service Description = Service Definition + Supplementary Definitions
04/25/16 54
WSDL Constructs
 definitions (root element)
 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
 Part – Incoming or outgoing
operation parameter data
 service – Collections of
endpoints including physical
address and protocol info
 binding- Association to
operation constructs
<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>
[Erl]
AbstractConcrete
04/25/16 55
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
Cons
 Emerging technology
 Managing and Tracking
changes is a challenge
 Transactions not fully
addressed
 Multiple, evolving security
standards
 Processing overhead
[Coyle]
04/25/16 56
Enterprise Context
XML/SOAP
XM
L/SOAPXML/SOAP
Messaging
Security Identity
Transactions
.NET J2EE
Broker/Registry
Client
Provider
[Coyle]
04/25/16 57
WWW Characteristics
 Simplicity
 Modularity
 Loose Coupling
 Emergent Behavior
04/25/16 58
Enterprise Opportunities
Firewall
Corporate Network
Web
B2C
Business to Consumer
B2E
Business to Employees
B2B
Business to Business
[Coyle]
04/25/16 59
SOA
04/25/16 60
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
 Decoupling the service contract from the service
implementation
 Promoting design and invocation by contract
[Government Overview]
04/25/16 61
SOA Conceptual Framework
Management
Governance
Mediation
Service DiscoveryMessagingSecurity
[Government Overview]
04/25/16 62
SOA Common Infrastructure
ManagementGovernanceMediation
Service DiscoveryMessagingSecurity
• How do I discover
services to use?
• How do I advertise my
service to be used by
others?
• 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 obtain data
from various data
sources in a format that I
can easily view and
understand?
• 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?
[Government Overview]
04/25/16 63
SOA Infrastructure Standards
ManagementGovernanceMediation
Service DiscoveryMessagingSecurity
• UDDI
• ebXML
• WS-Discovery
• 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
• XSL
• BPEL
• WS-Policy
• XQuery
• XPath
• WSDM
• WS-Management
[Government Overview]
04/25/16 64
SOA Infrastructure Example
Security
Governance/Management
Enterprise Service Bus
Registry
Monitoring SLA Reporting
Content Based Routing
Dynamic Transformation
Error Handling
Reliable Messaging
Service Callouts
Service Switching
Service
DiscoveryAuthentication
Authorization
Message
Security
Identity
SOA Infrastructure
BEA AquaLogic
Service Bus
• BEA AquaLogic Enterprise Repository
• Publishing Registry
• Design-time Governance
• BEA AquaLogic Service Registry
• Discovery Registry
AmberPoint
• Run-time Governance
/ Management
IBM WebSphere
DataPower
• XML Security
04/25/16 65
SOA Infrastructure Example (Cont.)
BEA AquaLogic Service Bus
 Reliable Messaging
 Queuing/holding messages if
applications are temporarily
unavailable
 In-route updates to message flow
 Rich Transformations
 Protocol Conversions (Http get/set
style to SOAP, etc)
 Routing
 Service load-balancing
 Web Service Call-outs
 ESBs Built to accelerate and provide
optimized processing of the message
 Support for service orchestration &
choreography
 Service versioning support
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
 Metrics & Monitoring
 Dependency Tracking
 Possible Policy Management
 Validation of messages against Schema
 Root-cause analysis to feed into
enterprise management
 Health and status of service pushed
to enterprise management
 Service level management
 Define Quality of Service & other
SLO
 Compliance
04/25/16 66
SOA Challenges
 Governance
 Testing
 Compliance
04/25/16 67
References
 Coyle, Frank P. XML, Web Services, and the Data Revolution. Addison Wesley:
2002.
http://www.amazon.com/Services-Revolution-Addison-Wesley-Information-
Technology/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://www-
128.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
04/25/16 68
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/
index.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

More Related Content

PDF
Building XML Based Applications
PDF
Introduction to XML
PPTX
Xml applications
PDF
XML and XML Applications - Lecture 04 - Web Information Systems (WE-DINF-11912)
PPT
Introduction to XML
PPT
Xml nisha dwivedi
PPT
Xml 215-presentation
PPT
[DSBW Spring 2010] Unit 10: XML and Web And beyond
Building XML Based Applications
Introduction to XML
Xml applications
XML and XML Applications - Lecture 04 - Web Information Systems (WE-DINF-11912)
Introduction to XML
Xml nisha dwivedi
Xml 215-presentation
[DSBW Spring 2010] Unit 10: XML and Web And beyond

What's hot (20)

PDF
XML
PPT
Xml 215-presentation
PPT
XML Technologies
PPT
01 xml document structure
PPTX
XML - Data Modeling
PPT
03 x files
PPT
XML Databases
PPT
Metadata Workshop-Maastricht - November 6, 2008
PPT
Introduction To Docbook 4 .5 Authoring
PPT
Metadata Workshop - Utrecht - November 5, 2008
PPT
XML and Databases
PDF
PDF
Introduction to XML and Databases
PPT
Understanding XML DOM
PDF
Understanding Dom
PPT
Xml Presentation-3
PPT
XML - EXtensible Markup Language
PDF
Jaxp Xmltutorial 11 200108
PPTX
Introduction to XML
XML
Xml 215-presentation
XML Technologies
01 xml document structure
XML - Data Modeling
03 x files
XML Databases
Metadata Workshop-Maastricht - November 6, 2008
Introduction To Docbook 4 .5 Authoring
Metadata Workshop - Utrecht - November 5, 2008
XML and Databases
Introduction to XML and Databases
Understanding XML DOM
Understanding Dom
Xml Presentation-3
XML - EXtensible Markup Language
Jaxp Xmltutorial 11 200108
Introduction to XML
Ad

Viewers also liked (13)

PDF
Jos Breas - Nooit meer reorganiseren
PPTX
For each component
PDF
ABSTRACT_EN
PPTX
René Jansen - "Samenwerken: verstoppen of versterken?"
DOC
robertcantrall
PDF
Doc1
PDF
Ton van der Greef - Exponentieel Groeien
PDF
Securis Sales Presentation-Policy Items for Al
DOC
SABINA ZVINYATSKY-2015
PDF
Malik Safdar saharan marketing plan
PDF
Patrick Davidson & Hans van der Loo - Maak van je team een powerhouse
PPTX
Burj al arab by oubaid majeed
PDF
2016 Update on sustainability in project management by Gilbert Silvius
Jos Breas - Nooit meer reorganiseren
For each component
ABSTRACT_EN
René Jansen - "Samenwerken: verstoppen of versterken?"
robertcantrall
Doc1
Ton van der Greef - Exponentieel Groeien
Securis Sales Presentation-Policy Items for Al
SABINA ZVINYATSKY-2015
Malik Safdar saharan marketing plan
Patrick Davidson & Hans van der Loo - Maak van je team een powerhouse
Burj al arab by oubaid majeed
2016 Update on sustainability in project management by Gilbert Silvius
Ad

Similar to Web services Overview in depth (20)

PDF
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
PPT
Xml 215-presentation
PPT
working with internet technologies using XML
PPT
Introduction to Web Services Protocols.ppt
PPT
uptu web technology unit 2 Xml2
PPT
What is xml
PPT
PDF
XML-talk
PPT
XML, XML Databases and MPEG-7
PPTX
Xml schema
PPT
XML-Unit 1.ppt
PPT
ravenbenweb xml and its application .PPT
PPTX
XML
PDF
IT6801-Service Oriented Architecture
PDF
E05412327
PDF
Markup For Dummies (Russ Ward)
PDF
light_xml
PPT
XML/XSLT
DOCX
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Xml 215-presentation
working with internet technologies using XML
Introduction to Web Services Protocols.ppt
uptu web technology unit 2 Xml2
What is xml
XML-talk
XML, XML Databases and MPEG-7
Xml schema
XML-Unit 1.ppt
ravenbenweb xml and its application .PPT
XML
IT6801-Service Oriented Architecture
E05412327
Markup For Dummies (Russ Ward)
light_xml
XML/XSLT

More from AbdulImrankhan7 (20)

PPTX
Install sonarqube plugin
PPTX
Junit in mule
PPTX
commit a project in svn
PPTX
Github plugin setup in anypoint studio
PPTX
Filter expression
PPTX
Mule File component
PPTX
Mule Database component
PPTX
Mule Choice component
PPTX
Mule stored procedure
PPTX
Deploying and running in mule standalone
PPT
Mule real-world
PPT
Mule Overview
PPTX
Webservice with vm in mule
PPTX
Validating a soap request in mule
PPTX
Using xslt in mule
PPTX
Simple groovy example in mule
PPTX
Scatter gather flow control
PPTX
Mule with velocity
PPTX
Mule with rabbit mq
PPTX
Mule with quartz
Install sonarqube plugin
Junit in mule
commit a project in svn
Github plugin setup in anypoint studio
Filter expression
Mule File component
Mule Database component
Mule Choice component
Mule stored procedure
Deploying and running in mule standalone
Mule real-world
Mule Overview
Webservice with vm in mule
Validating a soap request in mule
Using xslt in mule
Simple groovy example in mule
Scatter gather flow control
Mule with velocity
Mule with rabbit mq
Mule with quartz

Recently uploaded (20)

PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
Module 1 Introduction to Web Programming .pptx
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
DOCX
search engine optimization ppt fir known well about this
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Advancing precision in air quality forecasting through machine learning integ...
PDF
sbt 2.0: go big (Scala Days 2025 edition)
Convolutional neural network based encoder-decoder for efficient real-time ob...
Comparative analysis of machine learning models for fake news detection in so...
Co-training pseudo-labeling for text classification with support vector machi...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
4 layer Arch & Reference Arch of IoT.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
Training Program for knowledge in solar cell and solar industry
Taming the Chaos: How to Turn Unstructured Data into Decisions
Custom Battery Pack Design Considerations for Performance and Safety
Module 1 Introduction to Web Programming .pptx
Basics of Cloud Computing - Cloud Ecosystem
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
search engine optimization ppt fir known well about this
Flame analysis and combustion estimation using large language and vision assi...
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Advancing precision in air quality forecasting through machine learning integ...
sbt 2.0: go big (Scala Days 2025 edition)

Web services Overview in depth

  • 2. 04/25/16 2 Agenda  History  XML Technologies  SOAP  Web Services  SOA
  • 3. 04/25/16 3 Some History  Mid 1970’s - Standard Generalized Markup Language (SGML) introduced by Charles Goldfarb  Provides an international standard for data representation  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  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 [Wikipedia]
  • 4. 04/25/16 4 Evolution to SOA [Coyle] Programming World Code-centric development Data-centric development FORTRAN PL/1 COBOL Algol Pascal AdaVisual Basic Basic IMS CICS RDBMS Object World OO-Ada JavaC++ OO-COBOL C# C EJB COM CORBA DCOM SOAP Component World Document World GML XML HTML SGML XHTML TCP/IP HTTP Transport / Protocol World
  • 5. 04/25/16 5 Foundation Technologies  TCP/IP  HTTP  HTML  Browsers XML SOAP  SOA Web Services
  • 6. 04/25/16 6 Extensible Markup Language (XML) Basics
  • 7. 04/25/16 7 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]/> [Coyle]
  • 8. 04/25/16 8 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 [Coyle]
  • 9. 04/25/16 9 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 [Coyle]
  • 10. 04/25/16 10 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 [Coyle]
  • 12. 04/25/16 12 XML Technologies  Structure and Data Types  Define how specific XML documents should be structured  Document Type Definition (DTD)  XML Schema Definition Language (XSD)  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  More precision that DTDs  XML Presentation Technologies  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]
  • 13. 04/25/16 13 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. [Coyle]
  • 14. 04/25/16 14 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>  “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
  • 15. 04/25/16 15 DTD Example <!DOCTYPE book [ <! ELEMENT book (title, author) > <!ATTLIST book CATEGORY (Fiction|Non-Fiction)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> ]>  Document type declaration of root element--corresponds to link in XML document  Characteristics of each element are specified  Parent-child relationships  Attributes  Validation rules  Data types Parsed Character Data  Closing
  • 16. 04/25/16 16 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>
  • 17. 04/25/16 17 Namespaces, Element, Attributes  Attributes cannot be further subdivided into sub- elements, 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> Namespace: http://www.music.com <album> <title> Deliverance </title> </album>  <http://www.music.com:title> [Coyle]
  • 18. 04/25/16 18 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>
  • 19. 04/25/16 19 More XML Technologies DOM SAX DTD XML Schema RDF Program manipulation technologies Structure & data typing Semantic Web XML manipulation technologies Presentation technologies XSLT XPath XLink XQuery CSS XSL XSL-FO XHTML XForms VoiceXML XML & Namespaces Core InfoSet [Coyle]
  • 20. 04/25/16 20 More XML Technologies  Program Manipulation technologies  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  Can be manipulated using various interfaces  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  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]
  • 21. 04/25/16 21 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)  API for event-based parser  Reads the XML from beginning to end and notifies application for each recognized syntax construction  DOM (Document Object Model  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  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]
  • 22. 04/25/16 22 SAX API Example SAXParserFactory factory = SAXParserFactory.newInstance();[Create SAX parser factory] SAXParser saxParser = factory.newSAXParser(); [Create SAX parser object] saxParser.parse("priceList.xml", handler); [Parse XML file] public void startElement(..., String elementName, ...){ [Custom startElement method] if(elementName.equals("name")){ inName = true; } else if(elementName.equals("price") && inMochaJava ){ inPrice = true; inName = false; } } public void characters(char [] buf, int offset, int len) { [Custom characters method] 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; } } } [Sun]
  • 23. 04/25/16 23 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 [Sun]
  • 24. 04/25/16 24 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> [Erl]
  • 25. 04/25/16 25 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 select=@category”/></td> <td><xsl:value-of select=“title”/></td> <td><xsl:value-of select=“author”/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:transform> Fiction Joy of Integration Joe Smith Non-Fiction Integration for Dummies John Doe [Erl]
  • 26. 04/25/16 26 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  Simplicity of design and power of combination and collaboration  Previously large systems built from detailed specifications  Now, assembled systems with capability emergence [Coyle]
  • 27. 04/25/16 27 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 [Coyle]
  • 28. 04/25/16 28 Simple Object Access Protocol (SOAP)
  • 29. 04/25/16 29 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 [Iverson]
  • 30. 04/25/16 30 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
  • 31. 04/25/16 31 Web Data Transport HTTP HeaderData FTP HeaderData HTML document or browser compatible type Any file Browser Server Client GET POST GET file.html HTTP Web content returned HTTP Web content returned Data passed to server [Coyle]
  • 32. 04/25/16 32 Power of Combination SOAP HTTPXML Server Browser HTML HTTP SOAPSOAP SOAP – Combination of HTTP and XML Web – Combination of HTML, HTTP and Browsers [Coyle]
  • 33. 04/25/16 33 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 request- response [Coyle]
  • 34. 04/25/16 34 SOAP Corporate Network (CORBA, RMI, DCOM) Loosely coupled Web-based network using SOAP and protocols (HTTP, FTP, SMTP) Tightly coupled network Based on a common transport protocol Message Oriented Middleware SOAP SOAP SOAP SOAP SOAP XML SMTPHTTP[Coyle] FTP
  • 35. 04/25/16 35 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 [Coyle]
  • 36. 04/25/16 36 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. SOAP <Envelope> (Mandatory) SOAP <Header> (Optional) SOAP <Body> (Mandatory) [Coyle]
  • 37. 04/25/16 37 SOAP Example Request Internet Request XML Data HTTP Header SOAP Envelope HTTP Request Header POST/ZwiftBooks HTTP/1.1 Host: www.zwiftbooks.com Content-Type: text/xml Content-Length: 134 SOAP Action: “Some-URI” SOAP Content <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> Client initiating SOAP request for best book delivery time ZwiftBooks server configured to understand SOAP [Coyle]
  • 38. 04/25/16 38 SOAP Example Response Internet Response 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> Client initiating SOAP request for best book delivery time ZwiftBooks server XML Data HTTP Header SOAP Envelope [Coyle]
  • 39. 04/25/16 39 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  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]
  • 40. 04/25/16 40 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 } [Apache Axis Project]
  • 41. 04/25/16 41 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!’ % [Apache Axis Project, Sun]
  • 42. 04/25/16 42 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 [Apache Axis Project]
  • 44. 04/25/16 44 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 [Iverson]
  • 45. 04/25/16 45 XML Communication Firewall Corporate Network Message Server Option 2: Communicate via messaging middleware Option 3: Locate partners via Web services repository – communicate directly or via messaging middleware Option 1: Communicate directly using XML and Web protocols XMLXMLXML Repository Provider Client Web Services Web [Coyle]
  • 46. 04/25/16 46 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 [Coyle]
  • 47. 04/25/16 47 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 service- provider 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 [Coyle]
  • 48. 04/25/16 48 Web Services Framework Corporate Network Corporate Network Firewall Firewall Client Repository Provider Web ServicesWeb Services framework provides Protocols and processes for providers to register and clients to discover and use Web Services XML/SOAP XML/SOAP XML/SOAP XML and SOAP provide an open-ended data exchange mechanism for the Web [Coyle]
  • 49. 04/25/16 49 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
  • 50. 04/25/16 50 Web Services Triad Client Repository/ Registry Provider XM L/SOAP XM L/SOAP WSDL Green White Yellow Uses UDDI to register a Web Service with the repository Uses UDDI to find appropriate Web Service XML/SOAP WSDL UDDI <SOAP:Envelope> <Soap:Body> ...UDDI Inquiry... </SOAP:Body> </SOAP:Envelope> <SOAP:Envelope> <Soap:Body> ...UDDI Update... </SOAP:Body> </SOAP:Envelope> [Coyle] UDDI • Universal Description, Discovery and Integration (UDDI) • Web Services Description Language (WSDL)
  • 51. 04/25/16 51 UDDI Registries  Contents  Business entities  Business services  Specification pointers – binding templates  Service types  Business relationships  Subscriptions  UDDI provides inquiry and publishing API’s
  • 52. 04/25/16 52 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
  • 53. 04/25/16 53 WSDL Document [Erl] interface message ______________ service binding endpoint/port Abstract (service interface definition) Concrete (service implementation Definition) Logical grouping of operations Data description using XML Schema Actual data structures used to pass data <definitions> Service Definition = Abstract + Concrete Service Description = Service Definition + Supplementary Definitions
  • 54. 04/25/16 54 WSDL Constructs  definitions (root element)  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  Part – Incoming or outgoing operation parameter data  service – Collections of endpoints including physical address and protocol info  binding- Association to operation constructs <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> [Erl] AbstractConcrete
  • 55. 04/25/16 55 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 Cons  Emerging technology  Managing and Tracking changes is a challenge  Transactions not fully addressed  Multiple, evolving security standards  Processing overhead [Coyle]
  • 56. 04/25/16 56 Enterprise Context XML/SOAP XM L/SOAPXML/SOAP Messaging Security Identity Transactions .NET J2EE Broker/Registry Client Provider [Coyle]
  • 57. 04/25/16 57 WWW Characteristics  Simplicity  Modularity  Loose Coupling  Emergent Behavior
  • 58. 04/25/16 58 Enterprise Opportunities Firewall Corporate Network Web B2C Business to Consumer B2E Business to Employees B2B Business to Business [Coyle]
  • 60. 04/25/16 60 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  Decoupling the service contract from the service implementation  Promoting design and invocation by contract [Government Overview]
  • 61. 04/25/16 61 SOA Conceptual Framework Management Governance Mediation Service DiscoveryMessagingSecurity [Government Overview]
  • 62. 04/25/16 62 SOA Common Infrastructure ManagementGovernanceMediation Service DiscoveryMessagingSecurity • How do I discover services to use? • How do I advertise my service to be used by others? • 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 obtain data from various data sources in a format that I can easily view and understand? • 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? [Government Overview]
  • 63. 04/25/16 63 SOA Infrastructure Standards ManagementGovernanceMediation Service DiscoveryMessagingSecurity • UDDI • ebXML • WS-Discovery • 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 • XSL • BPEL • WS-Policy • XQuery • XPath • WSDM • WS-Management [Government Overview]
  • 64. 04/25/16 64 SOA Infrastructure Example Security Governance/Management Enterprise Service Bus Registry Monitoring SLA Reporting Content Based Routing Dynamic Transformation Error Handling Reliable Messaging Service Callouts Service Switching Service DiscoveryAuthentication Authorization Message Security Identity SOA Infrastructure BEA AquaLogic Service Bus • BEA AquaLogic Enterprise Repository • Publishing Registry • Design-time Governance • BEA AquaLogic Service Registry • Discovery Registry AmberPoint • Run-time Governance / Management IBM WebSphere DataPower • XML Security
  • 65. 04/25/16 65 SOA Infrastructure Example (Cont.) BEA AquaLogic Service Bus  Reliable Messaging  Queuing/holding messages if applications are temporarily unavailable  In-route updates to message flow  Rich Transformations  Protocol Conversions (Http get/set style to SOAP, etc)  Routing  Service load-balancing  Web Service Call-outs  ESBs Built to accelerate and provide optimized processing of the message  Support for service orchestration & choreography  Service versioning support 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  Metrics & Monitoring  Dependency Tracking  Possible Policy Management  Validation of messages against Schema  Root-cause analysis to feed into enterprise management  Health and status of service pushed to enterprise management  Service level management  Define Quality of Service & other SLO  Compliance
  • 66. 04/25/16 66 SOA Challenges  Governance  Testing  Compliance
  • 67. 04/25/16 67 References  Coyle, Frank P. XML, Web Services, and the Data Revolution. Addison Wesley: 2002. http://www.amazon.com/Services-Revolution-Addison-Wesley-Information- Technology/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://www- 128.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
  • 68. 04/25/16 68 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/ index.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