web services overview in depth

68
06/28/22 1 Web Services Overview

Upload: abdulimrankhan7

Post on 23-Jan-2017

132 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Web services Overview in depth

05/01/23 1

Web Services Overview

Page 2: Web services Overview in depth

05/01/23 2

Agenda

History XML Technologies SOAP Web Services SOA

Page 3: Web services Overview in depth

05/01/23 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]

Page 4: Web services Overview in depth

05/01/23 4

Evolution to SOA

[Coyle]

Programming World

Code-centricdevelopment

Data-centricdevelopment

FORTRAN

PL/1

COBOL

Algol

Pascal

AdaVisualBasic

Basic

IMS

CICS

RDBMS

Object WorldOO-Ada

JavaC++OO-COBOL

C#

C

EJBCOM

CORBA

DCOM SOAP

Component World

DocumentWorld

GML

XMLHTML

SGML

XHTML

TCP/IP

HTTP

Transport /ProtocolWorld

Page 5: Web services Overview in depth

05/01/23 5

Foundation Technologies

TCP/IP

HTTP

HTML

Browsers

XML

SOAP SOA

Web Services

Page 6: Web services Overview in depth

05/01/23 6

Extensible Markup Language (XML)Basics

Page 7: Web services Overview in depth

05/01/23 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]

Page 8: Web services Overview in depth

05/01/23 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]

Page 9: Web services Overview in depth

05/01/23 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]

Page 10: Web services Overview in depth

05/01/23 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]

Page 11: Web services Overview in depth

05/01/23 11

XML Specifications

XMLDocuments

DTD

XSD

XQuery

XPath

XSLT

describes

describes

searches

searches

transforms

supersedes

uses

usesusesuses

[Erl]

XSL

presents

Page 12: Web services Overview in depth

05/01/23 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]

Page 13: Web services Overview in depth

05/01/23 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]

Page 14: Web services Overview in depth

05/01/23 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

Page 15: Web services Overview in depth

05/01/23 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 typesParsed Character Data

Closing

Page 16: Web services Overview in depth

05/01/23 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>

Page 17: Web services Overview in depth

05/01/23 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]

Page 18: Web services Overview in depth

05/01/23 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>

Page 19: Web services Overview in depth

05/01/23 19

More XML Technologies

DOMSAX

DTDXML Schema

RDF

Program manipulationtechnologies

Structure & data typing

Semantic Web

XML manipulationtechnologies

Presentationtechnologies

XSLTXPathXLink

XQuery

CSSXSL

XSL-FOXHTMLXForms

VoiceXMLXML

&Namespaces

Core

InfoSet

[Coyle]

Page 20: Web services Overview in depth

05/01/23 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]

Page 21: Web services Overview in depth

05/01/23 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]

Page 22: Web services Overview in depth

05/01/23 22

SAX API ExampleSAXParserFactory 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]

Page 23: Web services Overview in depth

05/01/23 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]

Page 24: Web services Overview in depth

05/01/23 24

XML To Be Transformed<?xml version=1.0”?><xsl:transform

xmlns:xsl=http://www.w3.org/1999/XSL/Transformversion=“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]

Page 25: Web services Overview in depth

05/01/23 25

XSLT and XPATH Transformation<?xml version=1.0”?><xsl:transform

xmlns:xsl=http://www.w3.org/1999/XSL/Transformversion=“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]

Page 26: Web services Overview in depth

05/01/23 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]

Page 27: Web services Overview in depth

05/01/23 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]

Page 28: Web services Overview in depth

05/01/23 28

Simple Object Access Protocol(SOAP)

Page 29: Web services Overview in depth

05/01/23 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]

Page 30: Web services Overview in depth

05/01/23 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

Page 31: Web services Overview in depth

05/01/23 31

Web Data Transport

HTTPHeaderData

FTPHeaderData

HTML document orbrowser compatibletype

Any file

Browser

Server Client

GET

POST

GET file.htmlHTTP

Web contentreturned

HTTP

Web contentreturned

Data passedto server

[Coyle]

Page 32: Web services Overview in depth

05/01/23 32

Power of Combination

SOAP

HTTPXML

ServerBrowser

HTML HTTP

SOAPSOAP

SOAP – Combination of HTTP and XML

Web – Combination of HTML, HTTPand Browsers

[Coyle]

Page 33: Web services Overview in depth

05/01/23 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]

Page 34: Web services Overview in depth

05/01/23 34

SOAPCorporate Network

(CORBA, RMI, DCOM)

Loosely coupled Web-basednetwork using SOAP andprotocols (HTTP, FTP, SMTP)

Tightly coupled networkBased on a commontransport protocol

Message OrientedMiddleware

SOAP

SOAP

SOAP

SOAP

SOAP

XML

SMTPHTTP[Coyle] FTP

Page 35: Web services Overview in depth

05/01/23 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]

Page 36: Web services Overview in depth

05/01/23 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]

Page 37: Web services Overview in depth

05/01/23 37

SOAP Example RequestInternetRequest

XML Data HTTPHeader

SOAP Envelope

HTTPRequestHeader

POST/ZwiftBooks HTTP/1.1Host: www.zwiftbooks.comContent-Type: text/xmlContent-Length: 134SOAP Action: “Some-URI”

SOAPContent

<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 SOAPrequest for best bookdelivery time

ZwiftBooks serverconfigured to understandSOAP

[Coyle]

Page 38: Web services Overview in depth

05/01/23 38

SOAP Example ResponseInternetResponse

HTTPRequestHeader

HTTP/1.1 200 OKContent-Type: text/xmlContent-Length: 122

SOAPContent

<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 SOAPrequest for best bookdelivery time

ZwiftBooks server

XML DataHTTPHeader

SOAP Envelope

[Coyle]

Page 39: Web services Overview in depth

05/01/23 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]

Page 40: Web services Overview in depth

05/01/23 40

Apache Axis SOAP Example1 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]

Page 41: Web services Overview in depth

05/01/23 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.TestClientSent ‘Hello!’, got “Hello!’%

[Apache Axis Project, Sun]

Page 42: Web services Overview in depth

05/01/23 42

Apache Axis Example<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope

xmlns:xsd=http://www.w3.org/2001/XMLSchemaxmlns: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]

Page 43: Web services Overview in depth

05/01/23 43

Web Services

Page 44: Web services Overview in depth

05/01/23 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 Trendshttp://www.bptrends.com/resources_glossary.cfm?letterFilter=W&displayMode=all

[Iverson]

Page 45: Web services Overview in depth

05/01/23 45

XML Communication

Firewall

Corporate Network

MessageServer

Option 2: Communicate viamessaging middleware

Option 3: Locate partners via Webservices repository – communicatedirectly or via messaging middleware

Option 1: Communicate directly using XML andWeb protocols

XMLXMLXML

Repository

Provider

Client Web Services

Web

[Coyle]

Page 46: Web services Overview in depth

05/01/23 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]

Page 47: Web services Overview in depth

05/01/23 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]

Page 48: Web services Overview in depth

05/01/23 48

Web Services FrameworkCorporateNetwork

CorporateNetwork

Firewall

FirewallClient

Repository

Provider

Web ServicesWeb Services framework providesProtocols and processes for providersto register and clients to discover and use Web Services

XML/SOAP

XML/SOAP

XML/SOAP

XML and SOAP provide an open-endeddata exchange mechanism for the Web

[Coyle]

Page 49: Web services Overview in depth

05/01/23 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

Page 50: Web services Overview in depth

05/01/23 50

Web Services Triad

Client

Repository/Registry

Provider

XML/SOAP XML/SOAP

WSDLGreen

White

Yellow

Uses UDDI to registera Web Service with therepository

Uses UDDI to findappropriate WebService

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)

Page 51: Web services Overview in depth

05/01/23 51

UDDI Registries

Contents Business entities Business services Specification pointers – binding templates Service types Business relationships Subscriptions

UDDI provides inquiry and publishing API’s

Page 52: Web services Overview in depth

05/01/23 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

Page 53: Web services Overview in depth

05/01/23 53

WSDL Document

[Erl]

interface

message______________

service

binding

endpoint/port

Abstract(serviceinterfacedefinition)

Concrete(service

implementationDefinition)

Logical grouping of operations

Data description using XML Schema

Actual data structures used to pass data

<definitions>

Service Definition = Abstract + ConcreteService Description = Service Definition + Supplementary Definitions

Page 54: Web services Overview in depth

05/01/23 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]

Abs

tract

Con

cret

e

Page 55: Web services Overview in depth

05/01/23 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]

Page 56: Web services Overview in depth

05/01/23 56

Enterprise Context

XML/SOAP

XML/SOAPXML/SOAP

Messaging

Security Identity

Transactions

.NET J2EE

Broker/Registry

Client

Provider

[Coyle]

Page 57: Web services Overview in depth

05/01/23 57

WWW Characteristics

Simplicity Modularity Loose Coupling Emergent Behavior

Page 58: Web services Overview in depth

05/01/23 58

Enterprise Opportunities

Firewall

Corporate Network

Web

B2CBusiness to Consumer

B2EBusiness to Employees

B2BBusiness to Business

[Coyle]

Page 59: Web services Overview in depth

05/01/23 59

SOA

Page 60: Web services Overview in depth

05/01/23 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]

Page 61: Web services Overview in depth

05/01/23 61

SOA Conceptual Framework

ManagementGovernance

Mediation

Service DiscoveryMessagingSecurity

[Government Overview]

Page 62: Web services Overview in depth

05/01/23 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]

Page 63: Web services Overview in depth

05/01/23 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]

Page 64: Web services Overview in depth

05/01/23 64

SOA Infrastructure Example

Sec

urity

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

Page 65: Web services Overview in depth

05/01/23 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

Page 66: Web services Overview in depth

05/01/23 66

SOA Challenges

Governance Testing Compliance

Page 67: Web services Overview in depth

05/01/23 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. 2003http://www-128.ibm.com/developerworks/websphere/techjournal/0310_brown/brown.html

Schmeizer, Ronald. Zapthink - How to Think Loosely Coupled. 2004http://www.zapthink.com/report.html?id=ZAPFLASH-05282004

Wilkes, Steve. Loosen Up. 2004http://dev2dev.bea.com/pub/a/2004/11/bizlogic_wilkes.html

Page 68: Web services Overview in depth

05/01/23 68

References (Continued) Apache Axis Project

http://ws.apache.org/axis/

Sun Developer Network Web Services Technical Articles & Tipshttp://developers.sun.com/techtopics/webservices/reference/techart/index.html

Sun Web Services Made Easier. 2002http://java.sun.com/xml/webservices.pdf

Microsoft UDDI Serviceshttp://www.microsoft.com/windowsserver2003/technologies/idm/uddi/default.mspx