SlideShare a Scribd company logo
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

What's hot

XML
XMLXML
XML
Prabu U
 
Xml 215-presentation
Xml 215-presentationXml 215-presentation
Xml 215-presentationphilipsinter
 
Xml
XmlXml
01 xml document structure
01 xml document structure01 xml document structure
01 xml document structure
Baskarkncet
 
XML - Data Modeling
XML - Data ModelingXML - Data Modeling
XML - Data Modeling
Joel Briza
 
03 x files
03 x files03 x files
03 x files
Baskarkncet
 
Metadata Workshop-Maastricht - November 6, 2008
Metadata Workshop-Maastricht - November 6, 2008Metadata Workshop-Maastricht - November 6, 2008
Metadata Workshop-Maastricht - November 6, 2008askamy
 
Introduction To Docbook 4 .5 Authoring
Introduction To Docbook 4 .5   AuthoringIntroduction To Docbook 4 .5   Authoring
Introduction To Docbook 4 .5 Authoring
Viswanath J
 
Metadata Workshop - Utrecht - November 5, 2008
Metadata Workshop - Utrecht - November 5, 2008Metadata Workshop - Utrecht - November 5, 2008
Metadata Workshop - Utrecht - November 5, 2008askamy
 
XML and Databases
XML and DatabasesXML and Databases
XML and Databases
Cittrex
 
Full xml
Full xmlFull xml
Introduction to XML and Databases
Introduction to XML and DatabasesIntroduction to XML and Databases
Introduction to XML and Databases
torp42
 
Understanding XML DOM
Understanding XML DOMUnderstanding XML DOM
Understanding XML DOM
Om Vikram Thapa
 
Understanding Dom
Understanding DomUnderstanding Dom
Understanding DomLiquidHub
 
Xml Presentation-3
Xml Presentation-3Xml Presentation-3
Xml Presentation-3Sudharsan S
 
XML - EXtensible Markup Language
XML - EXtensible Markup LanguageXML - EXtensible Markup Language
XML - EXtensible Markup Language
Reem Alattas
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108
nit Allahabad
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
Kumar
 

What's hot (20)

XML
XMLXML
XML
 
Xml 215-presentation
Xml 215-presentationXml 215-presentation
Xml 215-presentation
 
Xml
XmlXml
Xml
 
XML Technologies
XML TechnologiesXML Technologies
XML Technologies
 
01 xml document structure
01 xml document structure01 xml document structure
01 xml document structure
 
XML - Data Modeling
XML - Data ModelingXML - Data Modeling
XML - Data Modeling
 
03 x files
03 x files03 x files
03 x files
 
XML Databases
XML DatabasesXML Databases
XML Databases
 
Metadata Workshop-Maastricht - November 6, 2008
Metadata Workshop-Maastricht - November 6, 2008Metadata Workshop-Maastricht - November 6, 2008
Metadata Workshop-Maastricht - November 6, 2008
 
Introduction To Docbook 4 .5 Authoring
Introduction To Docbook 4 .5   AuthoringIntroduction To Docbook 4 .5   Authoring
Introduction To Docbook 4 .5 Authoring
 
Metadata Workshop - Utrecht - November 5, 2008
Metadata Workshop - Utrecht - November 5, 2008Metadata Workshop - Utrecht - November 5, 2008
Metadata Workshop - Utrecht - November 5, 2008
 
XML and Databases
XML and DatabasesXML and Databases
XML and Databases
 
Full xml
Full xmlFull xml
Full xml
 
Introduction to XML and Databases
Introduction to XML and DatabasesIntroduction to XML and Databases
Introduction to XML and Databases
 
Understanding XML DOM
Understanding XML DOMUnderstanding XML DOM
Understanding XML DOM
 
Understanding Dom
Understanding DomUnderstanding Dom
Understanding Dom
 
Xml Presentation-3
Xml Presentation-3Xml Presentation-3
Xml Presentation-3
 
XML - EXtensible Markup Language
XML - EXtensible Markup LanguageXML - EXtensible Markup Language
XML - EXtensible Markup Language
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
 

Viewers also liked

Jos Breas - Nooit meer reorganiseren
Jos Breas - Nooit meer reorganiseren Jos Breas - Nooit meer reorganiseren
Jos Breas - Nooit meer reorganiseren
WOW! Het kan anders
 
For each component
For each component For each component
For each component
AbdulImrankhan7
 
René Jansen - "Samenwerken: verstoppen of versterken?"
René Jansen - "Samenwerken: verstoppen of versterken?"René Jansen - "Samenwerken: verstoppen of versterken?"
René Jansen - "Samenwerken: verstoppen of versterken?"
WOW! Het kan anders
 
Ton van der Greef - Exponentieel Groeien
Ton van der Greef - Exponentieel GroeienTon van der Greef - Exponentieel Groeien
Ton van der Greef - Exponentieel Groeien
WOW! Het kan anders
 
Securis Sales Presentation-Policy Items for Al
Securis Sales Presentation-Policy Items for AlSecuris Sales Presentation-Policy Items for Al
Securis Sales Presentation-Policy Items for AlEvans Penny
 
Malik Safdar saharan marketing plan
Malik Safdar saharan marketing planMalik Safdar saharan marketing plan
Malik Safdar saharan marketing plan
malik safdar
 
Patrick Davidson & Hans van der Loo - Maak van je team een powerhouse
Patrick Davidson & Hans van der Loo - Maak van je team een powerhousePatrick Davidson & Hans van der Loo - Maak van je team een powerhouse
Patrick Davidson & Hans van der Loo - Maak van je team een powerhouse
WOW! Het kan anders
 
Burj al arab by oubaid majeed
Burj al arab by oubaid majeed Burj al arab by oubaid majeed
Burj al arab by oubaid majeed
junaid bashir
 
2016 Update on sustainability in project management by Gilbert Silvius
2016 Update on sustainability in project management by Gilbert Silvius2016 Update on sustainability in project management by Gilbert Silvius
2016 Update on sustainability in project management by Gilbert Silvius
Gilbert Silvius
 

Viewers also liked (13)

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

Similar to Web services Overview in depth

Xml 215-presentation
Xml 215-presentationXml 215-presentation
Xml 215-presentation
Manish Chaurasia
 
Xml
XmlXml
Introduction to Web Services Protocols.ppt
Introduction to Web Services Protocols.pptIntroduction to Web Services Protocols.ppt
Introduction to Web Services Protocols.ppt
Dr.Saranya K.G
 
uptu web technology unit 2 Xml2
uptu web technology unit 2 Xml2uptu web technology unit 2 Xml2
uptu web technology unit 2 Xml2
Abhishek Kesharwani
 
What is xml
What is xmlWhat is xml
What is xml
Aneesa Rahman
 
XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7
Deniz Kılınç
 
Xml schema
Xml schemaXml schema
Xml schema
Akshaya Akshaya
 
XML-Unit 1.ppt
XML-Unit 1.pptXML-Unit 1.ppt
XML-Unit 1.ppt
ssuseree7dcd
 
ravenbenweb xml and its application .PPT
ravenbenweb xml and its application .PPTravenbenweb xml and its application .PPT
ravenbenweb xml and its application .PPT
ubaidullah75790
 
XML
XMLXML
XML
eewiley
 
IT6801-Service Oriented Architecture
IT6801-Service Oriented ArchitectureIT6801-Service Oriented Architecture
IT6801-Service Oriented Architecture
Madhu Amarnath
 
E05412327
E05412327E05412327
E05412327
IOSR-JEN
 
Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)
STC-Philadelphia Metro Chapter
 

Similar to Web services Overview in depth (20)

Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
 
Xml 215-presentation
Xml 215-presentationXml 215-presentation
Xml 215-presentation
 
Xml
XmlXml
Xml
 
Introduction to Web Services Protocols.ppt
Introduction to Web Services Protocols.pptIntroduction to Web Services Protocols.ppt
Introduction to Web Services Protocols.ppt
 
uptu web technology unit 2 Xml2
uptu web technology unit 2 Xml2uptu web technology unit 2 Xml2
uptu web technology unit 2 Xml2
 
What is xml
What is xmlWhat is xml
What is xml
 
Xml
XmlXml
Xml
 
XML-talk
XML-talkXML-talk
XML-talk
 
XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7
 
Xml schema
Xml schemaXml schema
Xml schema
 
XML-Unit 1.ppt
XML-Unit 1.pptXML-Unit 1.ppt
XML-Unit 1.ppt
 
ravenbenweb xml and its application .PPT
ravenbenweb xml and its application .PPTravenbenweb xml and its application .PPT
ravenbenweb xml and its application .PPT
 
XML
XMLXML
XML
 
IT6801-Service Oriented Architecture
IT6801-Service Oriented ArchitectureIT6801-Service Oriented Architecture
IT6801-Service Oriented Architecture
 
E05412327
E05412327E05412327
E05412327
 
Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)
 
light_xml
light_xmllight_xml
light_xml
 
XML/XSLT
XML/XSLTXML/XSLT
XML/XSLT
 
Unit 2.3
Unit 2.3Unit 2.3
Unit 2.3
 
Unit 2.3
Unit 2.3Unit 2.3
Unit 2.3
 

More from AbdulImrankhan7

Install sonarqube plugin
Install sonarqube plugin Install sonarqube plugin
Install sonarqube plugin
AbdulImrankhan7
 
Junit in mule
Junit in muleJunit in mule
Junit in mule
AbdulImrankhan7
 
commit a project in svn
commit a project in svncommit a project in svn
commit a project in svn
AbdulImrankhan7
 
Github plugin setup in anypoint studio
Github plugin setup in anypoint studio Github plugin setup in anypoint studio
Github plugin setup in anypoint studio
AbdulImrankhan7
 
Filter expression
Filter expressionFilter expression
Filter expression
AbdulImrankhan7
 
Mule File component
Mule File component Mule File component
Mule File component
AbdulImrankhan7
 
Mule Database component
Mule Database component Mule Database component
Mule Database component
AbdulImrankhan7
 
Mule Choice component
Mule Choice component Mule Choice component
Mule Choice component
AbdulImrankhan7
 
Mule stored procedure
Mule stored procedureMule stored procedure
Mule stored procedure
AbdulImrankhan7
 
Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standalone
AbdulImrankhan7
 
Mule real-world
Mule real-worldMule real-world
Mule real-world
AbdulImrankhan7
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
AbdulImrankhan7
 
Webservice with vm in mule
Webservice with vm in muleWebservice with vm in mule
Webservice with vm in mule
AbdulImrankhan7
 
Validating a soap request in mule
Validating a soap request in mule Validating a soap request in mule
Validating a soap request in mule
AbdulImrankhan7
 
Using xslt in mule
Using xslt in mule Using xslt in mule
Using xslt in mule
AbdulImrankhan7
 
Simple groovy example in mule
Simple groovy example in muleSimple groovy example in mule
Simple groovy example in mule
AbdulImrankhan7
 
Scatter gather flow control
Scatter gather flow control Scatter gather flow control
Scatter gather flow control
AbdulImrankhan7
 
Mule with velocity
Mule with velocity Mule with velocity
Mule with velocity
AbdulImrankhan7
 
Mule with rabbit mq
Mule with rabbit mqMule with rabbit mq
Mule with rabbit mq
AbdulImrankhan7
 
Mule with quartz
Mule with quartz Mule with quartz
Mule with quartz
AbdulImrankhan7
 

More from AbdulImrankhan7 (20)

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

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 

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>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]
  • 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