web services overview in depth
TRANSCRIPT
05/01/23 1
Web Services Overview
05/01/23 2
Agenda
History XML Technologies SOAP Web Services SOA
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]
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
05/01/23 5
Foundation Technologies
TCP/IP
HTTP
HTML
Browsers
XML
SOAP SOA
Web Services
05/01/23 6
Extensible Markup Language (XML)Basics
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]
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]
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]
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]
05/01/23 11
XML Specifications
XMLDocuments
DTD
XSD
XQuery
XPath
XSLT
describes
describes
searches
searches
transforms
supersedes
uses
usesusesuses
[Erl]
XSL
presents
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]
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]
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
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
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>
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]
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>
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]
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]
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]
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]
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]
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]
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]
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]
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]
05/01/23 28
Simple Object Access Protocol(SOAP)
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]
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
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]
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]
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]
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
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]
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]
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]
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]
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]
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]
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]
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]
05/01/23 43
Web Services
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]
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]
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]
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]
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]
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
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)
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
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
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
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
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]
05/01/23 56
Enterprise Context
XML/SOAP
XML/SOAPXML/SOAP
Messaging
Security Identity
Transactions
.NET J2EE
Broker/Registry
Client
Provider
[Coyle]
05/01/23 57
WWW Characteristics
Simplicity Modularity Loose Coupling Emergent Behavior
05/01/23 58
Enterprise Opportunities
Firewall
Corporate Network
Web
B2CBusiness to Consumer
B2EBusiness to Employees
B2BBusiness to Business
[Coyle]
05/01/23 59
SOA
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]
05/01/23 61
SOA Conceptual Framework
ManagementGovernance
Mediation
Service DiscoveryMessagingSecurity
[Government Overview]
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]
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]
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
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
05/01/23 66
SOA Challenges
Governance Testing Compliance
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
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