SlideShare a Scribd company logo
1 of 60
95-843: Service Oriented Architecture
1Master of Information System
Management
Service Oriented
Architecture
Week 2: Technical
Foundations
95-843: Service Oriented Architecture
2Master of Information System
Management
Today’s Topics
• Review of EIP and Oracle OSB
slides
• Discuss Homework 1
• XML Schema
• XPATH Expressions
• WSDL
• SOAP
• ESB
95-843: Service Oriented Architecture
3Master of Information System
Management
XML Schema
• SOA involves the passing of messages
from one process to another. Messages
may be document style or tightly
coupled RPC style (not in vogue.)
• Each process needs to know the overall
message structure as well as the low
level data types.
• XML Schema is a W3C
Recommendation.
95-843: Service Oriented Architecture
4Master of Information System
Management
Type Systems
• Found in many programming languages
• Specify a set of values and operations on those
values
• Classify values and expressions,e.g.,
3.0 * 2.4 is of type real
• In C, the types are packaged up in header files
and we include them in our code with
#include<stdio.h>
• In Java, we use the import statement along with
a classpath to be searched.
• XML Schema is used by web services to describe
the types of messages sent and received
95-843: Service Oriented Architecture
5Master of Information System
Management
PO Example From W3C (1)
<?xml version="1.0"?>
<purchaseOrder orderDate="1999-10-20">
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>CA</state>
<zip>90952</zip>
</shipTo>
95-843: Service Oriented Architecture
6Master of Information System
Management
PO Example From W3C (2)
<billTo country="US">
<name>Robert Smith</name>
<street>8 Oak Avenue</street>
<city>Old Town</city>
<state>PA</state>
<zip>95819</zip>
</billTo>
<comment>Hurry, my lawn is going wild<!/comment>
95-843: Service Oriented Architecture
7Master of Information System
Management
PO Example From W3C (3)
<items>
<item partNum="872-AA">
<productName>Lawnmower</productName>
<quantity>1</quantity>
<USPrice>148.95</USPrice>
<comment>Confirm this is electric</comment>
</item>
95-843: Service Oriented Architecture
8Master of Information System
Management
PO Example From W3C (4)
<item partNum="926-AA">
<productName>Baby Monitor</productName>
<quantity>1</quantity>
<USPrice>39.98</USPrice>
<shipDate>1999-05-21</shipDate>
</item>
</items>
</purchaseOrder>
95-843: Service Oriented Architecture
9Master of Information System
Management
PO Schema Example From
W3C (1)
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Purchase order schema for Example.com.
Copyright 2000 Example.com. All rights reserved.
</xsd:documentation>
</xsd:annotation>
<xsd:element name="purchaseOrder"
type="PurchaseOrderType"/>
<xsd:element name="comment" type="xsd:string"/>
95-843: Service Oriented Architecture
10Master of Information System
Management
PO Schema Example From
W3C (2)
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="Items"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
95-843: Service Oriented Architecture
11Master of Information System
Management
PO Schema Example From
W3C (3)
<xsd:complexType name="USAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="zip" type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
</xsd:complexType>
95-843: Service Oriented Architecture
12Master of Information System
Management
PO Schema Example From
W3C (4)<xsd:complexType name="Items">
<xsd:sequence>
<xsd:element name="item" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productName" type="xsd:string"/>
<xsd:element name="quantity">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxExclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="USPrice" type="xsd:decimal"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="partNum" type="SKU" use="required"/>
</xsd:complexType> </xsd:element></xsd:sequence></xsd:complexType>
95-843: Service Oriented Architecture
13Master of Information System
Management
PO Schema Example From
W3C (5)
<!-- Stock Keeping Unit, a code for identifying products -->
<xsd:simpleType name="SKU">
<xsd:restriction base="xsd:string">
<xsd:pattern value="d{3}-[A-Z]{2}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
95-843: Service Oriented Architecture
14Master of Information System
Management
XML Schema
Data Types
W3C
95-843: Service Oriented Architecture
15Master of Information System
Management
XPATH
• With XML Schema, we can describe
messages with program level specificity.
• We still need a general way to address
component parts from these messages.
• The primary purpose of XPath is to address
parts of an XML document (W3C).
95-843: Service Oriented Architecture
16Master of Information System
Management
The Tree Structure of an
XML Document
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href = "pi.xsl" ?>
<people>
<person born="1912" died = "1954" id="p342">
<name>
<first_name>Alan</first_name>
<last_name>Turing</last_name>
</name>
<!-- Did the word "computer scientist" exist in Turing's day? -->
<profession>computer scientist</profession>
<profession>mathematician</profession>
<profession>cryptographer</profession>
</person>
See Harold Pg. 147
95-843: Service Oriented Architecture
17Master of Information System
Management
<person born="1918" died = "1988" id="p4567">
<name>
<first_name>Richard</first_name>
<middle_initial>&#x4D;</middle_initial>
<last_name>Feynman</last_name>
</name>
<profession>physicist</profession>
<hobby>Playing the bongoes</hobby>
</person>
</people>
Unicode ‘M’
95-843: Service Oriented Architecture
18Master of Information System
Management
/
person
born = “1914”
died = “1952”
id=“p342”
person
name
first_name
Alan
<!– Did the word
“computer scientist”
exist in Turing’s day?”-- >
<?xml-stylesheet type="text/xsl" href = “some.xsl" ?>
profession
95-843: Service Oriented Architecture
19Master of Information System
Management
XPATH
• Location Paths such as a/b/c that drill
down into the XML tree
• Axes allow us to specify the direction of
travel through the tree
e.g., child, ancestor, previous-sibling.
• Node Tests and predicates allow us to
select parts of the XML based on
conditions
95-843: Service Oriented Architecture
20Master of Information System
Management
XPATH Examples
The XPATH expression “//name/last_name/text()” means to
search from the root to the text under the name/last_name
elements and return that result.
The XPATH expression “//profession[.='physicist']/../name”
means to search from the root for any profession element
whose content is physicist and then travel to the parent of the
profession element and select, along the child axis, the name
element.
95-843: Service Oriented Architecture
21Master of Information System
Management
WSDL2.0
• Web Service Description Language
• W3C Recommendation June 2005
• Tools are readily available that
automatically generate WSDL from
existing applications.
• Tools are readily available that
generate client side proxy code
from the WSDL description
95-843: Service Oriented Architecture
22Master of Information System
Management
WSDL2.0
• Two parts to a WSDL document
- abstract part
What needs done
Interfaces and MEPS
- concrete part
How it’s done and where
95-843: Service Oriented Architecture
23Master of Information System
Management
From W3C
http://www.w3.org/TR/wsdl20-primer/
The XML Infoset for a WSDL 2.0 document.
95-843: Service Oriented Architecture
24Master of Information System
Management
Key Abstract WSDL
Elements (1)
<types>
XML Schema constructs or the
import of existing XML Schema
documents
<interface>
represents service interfaces
and can reference multiple
operations
Notes from Erl
95-843: Service Oriented Architecture
25Master of Information System
Management
Key Abstract WSDL
Elements(2)
<operations>
represents web service functions
and can reference multiple
messages
Have inputs and outputs and may
generate faults
Notes from
Erl
95-843: Service Oriented Architecture
26Master of Information System
Management
Key Concrete WSDL
Elements(3)
<binding>
This element specifies the transport
and wire formats for
interfaces
<service>
<endpoint>
These elements associate themselves
with operation constructs and specify
a location
Notes from
Erl modified
For wsdl 2.0
95-843: Service Oriented Architecture
27Master of Information System
Management
Problem Description(1)
Hotel GreatH (a fictional hotel) is located in a remote island.
It has been relying on fax and phone to provide room reservations.
Even though the facilities and prices at GreatH are better than what
its competitor offers, GreatH notices that its competitor is getting
more customers than GreatH. After research, GreatH realizes that
this is because the competitor offers a Web service that permits
travel agent reservation systems to reserve rooms directly over
the Internet. GreatH then hires us to build a reservation Web
service with the following functionality:
From W3C WSDL2.0
primer
95-843: Service Oriented Architecture
28Master of Information System
Management
CheckAvailability. To check availability, the client must
specify a check-in date, a check-out date, and room type.
The Web service will return a room rate (a floating point
number in USD$) if such a room is available, or a zero
room rate if not. If any input data is invalid, the service
should return an error. Thus, the service will accept a
checkAvailability message and return a
checkAvailabilityResponse or invalidDataFault message.
Problem Description (2)
95-843: Service Oriented Architecture
29Master of Information System
Management
MakeReservation. To make a reservation, a client must
provide a name, address, and credit card information,
and the service will return a confirmation number if
the reservation is successful. The service will return
an error message if the credit card number or any
other data field is invalid.
Thus, the service will accept a makeReservation message and
return a makeReservationResponse or invalidCreditCardFault
message.
Problem Description (3)
95-843: Service Oriented Architecture
30Master of Information System
Management
We know that we will later need to build a complete system
that supports transactions and secured transmission, but
initially we will implement only minimal functionality.
In fact, to simplify our first example, we will implement
only the CheckAvailability operation.
Problem Description (4)
95-843: Service Oriented Architecture
31Master of Information System
Management
Hotel WSDL
<?xml version="1.0" encoding="utf-8" ?>
<description
xmlns="http://www.w3.org/2006/01/wsdl"
targetNamespace= "http://greath.example.com/2004/wsdl/resSvc"
xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc"
xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc"
xmlns:wsoap= "http://www.w3.org/2006/01/wsdl/soap"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdlx= "http://www.w3.org/2006/01/wsdl-extensions">
From W3C WSDL2.0
primer
95-843: Service Oriented Architecture
32Master of Information System
Management
<documentation>
This document describes the GreatH Web service. Additional
application-level requirements for use of this service --
beyond what WSDL 2.0 is able to describe -- are available
at http://greath.example.com/2004/reservation-documentation.html
</documentation>
95-843: Service Oriented Architecture
33Master of Information System
Management
<types>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace=
"http://greath.example.com/2004/schemas/resSvc"
xmlns="http://greath.example.com/2004/schemas/resSvc">
<xs:element name="checkAvailability"
type="tCheckAvailability"/>
<xs:complexType name="tCheckAvailability">
<xs:sequence>
<xs:element name="checkInDate" type="xs:date"/>
<xs:element name="checkOutDate" type="xs:date"/>
<xs:element name="roomType" type="xs:string"/>
</xs:sequence>
</xs:complexType>
WSDL uses XML Schema.
95-843: Service Oriented Architecture
34Master of Information System
Management
<xs:element name=
"checkAvailabilityResponse" type="xs:double"/>
<xs:element name="invalidDataError" type="xs:string"/>
</xs:schema>
</types>
95-843: Service Oriented Architecture
35Master of Information System
Management
<interface name = "reservationInterface" >
<fault name = "invalidDataFault"
element = "ghns:invalidDataError"/>
<operation name="opCheckAvailability"
pattern="http://www.w3.org/2006/01/wsdl/in-out"
style="http://www.w3.org/2006/01/wsdl/style/iri"
wsdlx:safe = "true">
<input messageLabel="In"
element="ghns:checkAvailability" />
<output messageLabel="Out"
element="ghns:checkAvailabilityResponse" />
<outfault ref="tns:invalidDataFault" messageLabel="Out"/>
</operation>
</interface>
Operations and
faults are described.
Note the Message
exchange pattern
in-out is specified.
95-843: Service Oriented Architecture
36Master of Information System
Management
<binding name="reservationSOAPBinding"
interface="tns:reservationInterface"
type="http://www.w3.org/2006/01/wsdl/soap"
wsoap:protocol=
"http://www.w3.org/2003/05/soap/bindings/HTTP">
<fault ref="tns:invalidDataFault"
wsoap:code="soap:Sender"/>
<operation ref="tns:opCheckAvailability"
wsoap:mep=
"http://www.w3.org/2003/05/soap/mep/soap-response"/>
</binding>
Above we specified what
gets exchanged now we
specify how.
The binding specifies
the format and
transmission
protocol for each
operation in an
interface.
95-843: Service Oriented Architecture
37Master of Information System
Management
<service name="reservationService"
interface="tns:reservationInterface">
<endpoint name="reservationEndpoint"
binding="tns:reservationSOAPBinding"
address =
"http://greath.example.com/2004/reservation"/>
</service>
</description>
The above tells us what and how.
The service element tells us where.
A WSDL 2.0 service specifies a single
interface that the service will support, and a
list of endpoint locations where that service
can be accessed. Each endpoint must also
reference a previously defined binding to
indicate what protocols and transmission
formats are to be used at that endpoint. From the
W3C Primer
95-843: Service Oriented Architecture
38Master of Information System
Management
WSDL2.0 Message
Exchange Patterns
In-only One message received no fault generated
Robust In-only One message received with a possible error
sent
In-out One message received in and one sent
out (fault replaces out)
In-Optional-Out One message received in with one possibly
sent out (fault replaces out)
Out-Only One message sent no fault return expected
Robust Out-Only One message sent fault return expected
Out-In One message sent and return expected
(fault replaces return)
Out-Optional-In One message sent and may receive a return
(fault replaces return)
95-843: Service Oriented Architecture
39Master of Information System
Management
SOAP
• Was “Simple Object Access Protocol”
• Now people are using “Service Oriented
Application Protocol”
• May be fine grained RPC style messages
<foo>34</foo> where foo is the
name of a method
• Or may be course grained document
style where the input message is an
entire document.
95-843: Service Oriented Architecture
40Master of Information System
Management
SOAP XML Structure
<Envelope>
<Header> WS-* specifications
: are placed in the
header area and will be
</Header> handled by intermediaries
<Body>
: Message payload including
fault messages
</Body> as well-formed XML.
</Envelope>
95-843: Service Oriented Architecture
Figure 1-2. Breakdown of service components
Understanding SOA with Web Services, Eric Newcomer and Greg Lomow, p. 9
NET JEE
CORBA IMS
Service
Descriptions
Mapping
Layers
Service
Implementation/
Executable Agent
Service
Requester
Service
Implementation/
Executable Agent
Service
Implementation/
Executable Agent
Service
Requests
The JEE agent may
provide a coarse
grained service while
the legacy services
may be fined grained.
95-843: Service Oriented Architecture
Figure 1-2. Breakdown of service components
Understanding SOA with Web Services, Eric Newcomer and Greg Lomow, p. 9
NET JEE
CORBA IMS
Service
Descriptions
Mapping
Layers
Service
Implementation/
Executable Agent
Service
Requester
Service
Implementation/
Executable Agent
Service
Implementation/
Executable Agent
Service
Requests
With web service based
SOA we can, for the first
time, easily mix and match
executable agents.
95-843: Service Oriented Architecture
Figure 1-2. Breakdown of service components
Understanding SOA with Web Services, Eric Newcomer and Greg Lomow, p. 9
NET JEE
CORBA IMS
Service
Descriptions
Mapping
Layers
Service
Implementation/
Executable Agent
Service
Requester
Service
Implementation/
Executable Agent
Service
Implementation/
Executable Agent
Service
RequestsThe mapping layers
are stubs and skeletons that
transform the SOAP requests
to requests specific to the
executable agents.
95-843: Service Oriented Architecture
44Master of Information System
Management
44Master of Information System
Management
• Many vendors have an ESB product.
• JBoss has an open source ESB.
• CMU has recently chosen Oracle’s ESB.
• An ESB usually includes:
- Content Transformations (often via XSLT)
- Queuing and waiting until services are
available
- Routing (often using WS-Addressing)
- Event driven publish/subscribe
- Protocol mediation
- Monitoring and logging
What is an ESB?
95-843: Service Oriented Architecture
Integration Styles
45Master of Information System
Management
From “RESTFul Web Services vs. “Big Web Services”: Making the
Right architectural decision by Paufasso, Zimmerman and Leymann.
95-843: Service Oriented Architecture
An Open Source ESB from JBoss
- See http://www.jboss.org/jbossesb.
- You can purchase support from RedHat.
- It’s the next generation of EAI.
- Business logic is left to higher levels.
- It's about infrastructure logic.
- An ESB is needed when we map
abstract SOA to a concrete
implementation.
46Master of Information System
Management
From JBOSS ESB Documentation
95-843: Service Oriented Architecture
47Master of Information System
Management
From JBoss ESB Documentation
95-843: Service Oriented Architecture
48Master of Information System
Management
From JBoss ESB Documentation
95-843: Service Oriented Architecture
To Ensure Loose Coupling:
- Use one-way messages rather than request-response
style.
- Do not expose service back-end implementation
choices.
- Use an extensible message structure so that it may
be versioned over time, for backward compatibility.
- Do not use the distributed object approach of fine
grained services.
- One way message delivery requires that we encode
return address information in the message. Use WS-
Addressing.
49Master of Information System
Management
From JBoss ESB Documentation
JBoss Recommendations
95-843: Service Oriented Architecture
Some JBoss ESB
Components
- The Message Store Service
A pluggable persistence service designed for audit
tracking. Every event is recorded.
- Data Transformation Service
Often clients and services will use the same vocabulary.
If not, on the fly transformation is provided.
JBoss uses Smooks and XSLT (Smooks can read an EDI
message and generate a corresponding Java object).
- Content based routing
JBossESB can route messages based on arbitrarily
complex rules. It uses XPath and JBoss Rules (Drools).
50Master of Information System
Management
From JBoss ESB Documentation
95-843: Service Oriented Architecture
Some JBoss ESB
Components (2)
- Registry Service (UDDI) is at the heart of JBossESB.
Services can self-publish their endpoint references
(EPRs) into the Registry when they are activated, and
remove them when they are taken out of service.
- Consumers can introspect over the Registry
to determine the EPR for the right service for the work
at hand.
51Master of Information System
Management
From JBoss ESB Documentation
95-843: Service Oriented Architecture
52Master of Information System
Management
Simple WS Without an
ESB
Alice Bob
SOAP
SOAP
Bob’s WSDL is available to Alice.
95-843: Service Oriented Architecture
53Master of Information System
Management
Simple WS With an ESB
Alice Bob
Bob’s WSDL available
to ESB.ESB’s WSDL available
to Alice.
Bob may be a legacy
application with a
web service front end.
The backend protocol may
be different from the front end.
95-843: Service Oriented Architecture
54Master of Information System
Management
Oracle’s ESB (OSB)
Alice Bob
JEE
Weblogic
Alice may be calling Bob as part of a business orchestration. She might
be running BPEL. Another orchestration may exist within the ESB - but
working at a lower level.
95-843: Service Oriented Architecture
55Master of Information System
Management
Protocol Mediation
Alice Bob
JEE
Weblogic
Alice may be passing an XML message to the ESB. The ESB may be
communicating with Bob via sftp.
95-843: Service Oriented Architecture
56Master of Information System
Management
95-843: Service Oriented Architecture
And From Microsoft
57Master of Information System
Management
95-843: Service Oriented Architecture
ESB’s From IBM (1)
58Master of Information System
Management
95-843: Service Oriented Architecture
59Master of Information System
Management
ESB’s From IBM (2)
95-843: Service Oriented Architecture
60Master of Information System
Management
60Master of Information System
Management
IBM’s Solution Stack View

More Related Content

Viewers also liked

Perspektif hindu terhadap fitrah kejadian manusia
Perspektif hindu terhadap fitrah kejadian manusiaPerspektif hindu terhadap fitrah kejadian manusia
Perspektif hindu terhadap fitrah kejadian manusiaAbdullah Kadir
 
Android Loaders : Reloaded
Android Loaders : ReloadedAndroid Loaders : Reloaded
Android Loaders : Reloadedcbeyls
 
Business analysis of namibia
Business analysis of namibiaBusiness analysis of namibia
Business analysis of namibiaDeba Ojha
 
Penubuhan sukan dan permainan sekolah rendah
Penubuhan sukan dan permainan sekolah rendahPenubuhan sukan dan permainan sekolah rendah
Penubuhan sukan dan permainan sekolah rendahAbdullah Kadir
 

Viewers also liked (7)

Hiren-CV
Hiren-CVHiren-CV
Hiren-CV
 
Perspektif hindu terhadap fitrah kejadian manusia
Perspektif hindu terhadap fitrah kejadian manusiaPerspektif hindu terhadap fitrah kejadian manusia
Perspektif hindu terhadap fitrah kejadian manusia
 
Android Loaders : Reloaded
Android Loaders : ReloadedAndroid Loaders : Reloaded
Android Loaders : Reloaded
 
Peranan nuqaba
Peranan nuqabaPeranan nuqaba
Peranan nuqaba
 
Business analysis of namibia
Business analysis of namibiaBusiness analysis of namibia
Business analysis of namibia
 
Penubuhan sukan dan permainan sekolah rendah
Penubuhan sukan dan permainan sekolah rendahPenubuhan sukan dan permainan sekolah rendah
Penubuhan sukan dan permainan sekolah rendah
 
Inflation
InflationInflation
Inflation
 

Similar to 02 a xml_foundations

Euclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: OverviewEuclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: Overvieweuc-dm-test
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And XmlDavid Truxall
 
Sense And Simplicity Info Path Task Forms Made Easy
Sense And Simplicity   Info Path Task Forms Made EasySense And Simplicity   Info Path Task Forms Made Easy
Sense And Simplicity Info Path Task Forms Made EasyFlorin Muntean
 
04 data accesstechnologies
04 data accesstechnologies04 data accesstechnologies
04 data accesstechnologiesBat Programmer
 
Dev Sql Beyond Relational
Dev Sql Beyond RelationalDev Sql Beyond Relational
Dev Sql Beyond Relationalrsnarayanan
 
Working With XML in IDS Applications
Working With XML in IDS ApplicationsWorking With XML in IDS Applications
Working With XML in IDS ApplicationsKeshav Murthy
 
204810 xer and xml
204810 xer and xml204810 xer and xml
204810 xer and xmlp6academy
 
Environment Canada's Data Management Service
Environment Canada's Data Management ServiceEnvironment Canada's Data Management Service
Environment Canada's Data Management ServiceSafe Software
 
Secrets of Enterprise Data Mining 201310
Secrets of Enterprise Data Mining 201310Secrets of Enterprise Data Mining 201310
Secrets of Enterprise Data Mining 201310Mark Tabladillo
 
attachment_3998 (3).pdf
attachment_3998 (3).pdfattachment_3998 (3).pdf
attachment_3998 (3).pdfssuser02a37f1
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Jerry SILVER
 
Developing with SQL Server Analysis Services 201310
Developing with SQL Server Analysis Services 201310Developing with SQL Server Analysis Services 201310
Developing with SQL Server Analysis Services 201310Mark Tabladillo
 
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data ServicesCreating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Servicessumedha.r
 
MSBI Online Training in Hyderabad
MSBI Online Training in HyderabadMSBI Online Training in Hyderabad
MSBI Online Training in Hyderabadunited global soft
 
Web services Overview in depth
Web services Overview in depthWeb services Overview in depth
Web services Overview in depthAbdulImrankhan7
 
XML Security Using XSLT
XML Security Using XSLTXML Security Using XSLT
XML Security Using XSLTAhmed Muzammil
 

Similar to 02 a xml_foundations (20)

Euclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: OverviewEuclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: Overview
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
Sense And Simplicity Info Path Task Forms Made Easy
Sense And Simplicity   Info Path Task Forms Made EasySense And Simplicity   Info Path Task Forms Made Easy
Sense And Simplicity Info Path Task Forms Made Easy
 
04 data accesstechnologies
04 data accesstechnologies04 data accesstechnologies
04 data accesstechnologies
 
Dev Sql Beyond Relational
Dev Sql Beyond RelationalDev Sql Beyond Relational
Dev Sql Beyond Relational
 
Working With XML in IDS Applications
Working With XML in IDS ApplicationsWorking With XML in IDS Applications
Working With XML in IDS Applications
 
01 introduction
01 introduction01 introduction
01 introduction
 
Axis2 Landscape
Axis2 LandscapeAxis2 Landscape
Axis2 Landscape
 
204810 xer and xml
204810 xer and xml204810 xer and xml
204810 xer and xml
 
Remus_3_0
Remus_3_0Remus_3_0
Remus_3_0
 
Environment Canada's Data Management Service
Environment Canada's Data Management ServiceEnvironment Canada's Data Management Service
Environment Canada's Data Management Service
 
Secrets of Enterprise Data Mining 201310
Secrets of Enterprise Data Mining 201310Secrets of Enterprise Data Mining 201310
Secrets of Enterprise Data Mining 201310
 
attachment_3998 (3).pdf
attachment_3998 (3).pdfattachment_3998 (3).pdf
attachment_3998 (3).pdf
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
 
Developing with SQL Server Analysis Services 201310
Developing with SQL Server Analysis Services 201310Developing with SQL Server Analysis Services 201310
Developing with SQL Server Analysis Services 201310
 
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data ServicesCreating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Services
 
MSBI Online Training in India
MSBI Online Training in IndiaMSBI Online Training in India
MSBI Online Training in India
 
MSBI Online Training in Hyderabad
MSBI Online Training in HyderabadMSBI Online Training in Hyderabad
MSBI Online Training in Hyderabad
 
Web services Overview in depth
Web services Overview in depthWeb services Overview in depth
Web services Overview in depth
 
XML Security Using XSLT
XML Security Using XSLTXML Security Using XSLT
XML Security Using XSLT
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

02 a xml_foundations

  • 1. 95-843: Service Oriented Architecture 1Master of Information System Management Service Oriented Architecture Week 2: Technical Foundations
  • 2. 95-843: Service Oriented Architecture 2Master of Information System Management Today’s Topics • Review of EIP and Oracle OSB slides • Discuss Homework 1 • XML Schema • XPATH Expressions • WSDL • SOAP • ESB
  • 3. 95-843: Service Oriented Architecture 3Master of Information System Management XML Schema • SOA involves the passing of messages from one process to another. Messages may be document style or tightly coupled RPC style (not in vogue.) • Each process needs to know the overall message structure as well as the low level data types. • XML Schema is a W3C Recommendation.
  • 4. 95-843: Service Oriented Architecture 4Master of Information System Management Type Systems • Found in many programming languages • Specify a set of values and operations on those values • Classify values and expressions,e.g., 3.0 * 2.4 is of type real • In C, the types are packaged up in header files and we include them in our code with #include<stdio.h> • In Java, we use the import statement along with a classpath to be searched. • XML Schema is used by web services to describe the types of messages sent and received
  • 5. 95-843: Service Oriented Architecture 5Master of Information System Management PO Example From W3C (1) <?xml version="1.0"?> <purchaseOrder orderDate="1999-10-20"> <shipTo country="US"> <name>Alice Smith</name> <street>123 Maple Street</street> <city>Mill Valley</city> <state>CA</state> <zip>90952</zip> </shipTo>
  • 6. 95-843: Service Oriented Architecture 6Master of Information System Management PO Example From W3C (2) <billTo country="US"> <name>Robert Smith</name> <street>8 Oak Avenue</street> <city>Old Town</city> <state>PA</state> <zip>95819</zip> </billTo> <comment>Hurry, my lawn is going wild<!/comment>
  • 7. 95-843: Service Oriented Architecture 7Master of Information System Management PO Example From W3C (3) <items> <item partNum="872-AA"> <productName>Lawnmower</productName> <quantity>1</quantity> <USPrice>148.95</USPrice> <comment>Confirm this is electric</comment> </item>
  • 8. 95-843: Service Oriented Architecture 8Master of Information System Management PO Example From W3C (4) <item partNum="926-AA"> <productName>Baby Monitor</productName> <quantity>1</quantity> <USPrice>39.98</USPrice> <shipDate>1999-05-21</shipDate> </item> </items> </purchaseOrder>
  • 9. 95-843: Service Oriented Architecture 9Master of Information System Management PO Schema Example From W3C (1) <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation xml:lang="en"> Purchase order schema for Example.com. Copyright 2000 Example.com. All rights reserved. </xsd:documentation> </xsd:annotation> <xsd:element name="purchaseOrder" type="PurchaseOrderType"/> <xsd:element name="comment" type="xsd:string"/>
  • 10. 95-843: Service Oriented Architecture 10Master of Information System Management PO Schema Example From W3C (2) <xsd:complexType name="PurchaseOrderType"> <xsd:sequence> <xsd:element name="shipTo" type="USAddress"/> <xsd:element name="billTo" type="USAddress"/> <xsd:element ref="comment" minOccurs="0"/> <xsd:element name="items" type="Items"/> </xsd:sequence> <xsd:attribute name="orderDate" type="xsd:date"/> </xsd:complexType>
  • 11. 95-843: Service Oriented Architecture 11Master of Information System Management PO Schema Example From W3C (3) <xsd:complexType name="USAddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> </xsd:complexType>
  • 12. 95-843: Service Oriented Architecture 12Master of Information System Management PO Schema Example From W3C (4)<xsd:complexType name="Items"> <xsd:sequence> <xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="productName" type="xsd:string"/> <xsd:element name="quantity"> <xsd:simpleType> <xsd:restriction base="xsd:positiveInteger"> <xsd:maxExclusive value="100"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="USPrice" type="xsd:decimal"/> <xsd:element ref="comment" minOccurs="0"/> <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="partNum" type="SKU" use="required"/> </xsd:complexType> </xsd:element></xsd:sequence></xsd:complexType>
  • 13. 95-843: Service Oriented Architecture 13Master of Information System Management PO Schema Example From W3C (5) <!-- Stock Keeping Unit, a code for identifying products --> <xsd:simpleType name="SKU"> <xsd:restriction base="xsd:string"> <xsd:pattern value="d{3}-[A-Z]{2}"/> </xsd:restriction> </xsd:simpleType> </xsd:schema>
  • 14. 95-843: Service Oriented Architecture 14Master of Information System Management XML Schema Data Types W3C
  • 15. 95-843: Service Oriented Architecture 15Master of Information System Management XPATH • With XML Schema, we can describe messages with program level specificity. • We still need a general way to address component parts from these messages. • The primary purpose of XPath is to address parts of an XML document (W3C).
  • 16. 95-843: Service Oriented Architecture 16Master of Information System Management The Tree Structure of an XML Document <?xml version="1.0" ?> <?xml-stylesheet type="text/xsl" href = "pi.xsl" ?> <people> <person born="1912" died = "1954" id="p342"> <name> <first_name>Alan</first_name> <last_name>Turing</last_name> </name> <!-- Did the word "computer scientist" exist in Turing's day? --> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person> See Harold Pg. 147
  • 17. 95-843: Service Oriented Architecture 17Master of Information System Management <person born="1918" died = "1988" id="p4567"> <name> <first_name>Richard</first_name> <middle_initial>&#x4D;</middle_initial> <last_name>Feynman</last_name> </name> <profession>physicist</profession> <hobby>Playing the bongoes</hobby> </person> </people> Unicode ‘M’
  • 18. 95-843: Service Oriented Architecture 18Master of Information System Management / person born = “1914” died = “1952” id=“p342” person name first_name Alan <!– Did the word “computer scientist” exist in Turing’s day?”-- > <?xml-stylesheet type="text/xsl" href = “some.xsl" ?> profession
  • 19. 95-843: Service Oriented Architecture 19Master of Information System Management XPATH • Location Paths such as a/b/c that drill down into the XML tree • Axes allow us to specify the direction of travel through the tree e.g., child, ancestor, previous-sibling. • Node Tests and predicates allow us to select parts of the XML based on conditions
  • 20. 95-843: Service Oriented Architecture 20Master of Information System Management XPATH Examples The XPATH expression “//name/last_name/text()” means to search from the root to the text under the name/last_name elements and return that result. The XPATH expression “//profession[.='physicist']/../name” means to search from the root for any profession element whose content is physicist and then travel to the parent of the profession element and select, along the child axis, the name element.
  • 21. 95-843: Service Oriented Architecture 21Master of Information System Management WSDL2.0 • Web Service Description Language • W3C Recommendation June 2005 • Tools are readily available that automatically generate WSDL from existing applications. • Tools are readily available that generate client side proxy code from the WSDL description
  • 22. 95-843: Service Oriented Architecture 22Master of Information System Management WSDL2.0 • Two parts to a WSDL document - abstract part What needs done Interfaces and MEPS - concrete part How it’s done and where
  • 23. 95-843: Service Oriented Architecture 23Master of Information System Management From W3C http://www.w3.org/TR/wsdl20-primer/ The XML Infoset for a WSDL 2.0 document.
  • 24. 95-843: Service Oriented Architecture 24Master of Information System Management Key Abstract WSDL Elements (1) <types> XML Schema constructs or the import of existing XML Schema documents <interface> represents service interfaces and can reference multiple operations Notes from Erl
  • 25. 95-843: Service Oriented Architecture 25Master of Information System Management Key Abstract WSDL Elements(2) <operations> represents web service functions and can reference multiple messages Have inputs and outputs and may generate faults Notes from Erl
  • 26. 95-843: Service Oriented Architecture 26Master of Information System Management Key Concrete WSDL Elements(3) <binding> This element specifies the transport and wire formats for interfaces <service> <endpoint> These elements associate themselves with operation constructs and specify a location Notes from Erl modified For wsdl 2.0
  • 27. 95-843: Service Oriented Architecture 27Master of Information System Management Problem Description(1) Hotel GreatH (a fictional hotel) is located in a remote island. It has been relying on fax and phone to provide room reservations. Even though the facilities and prices at GreatH are better than what its competitor offers, GreatH notices that its competitor is getting more customers than GreatH. After research, GreatH realizes that this is because the competitor offers a Web service that permits travel agent reservation systems to reserve rooms directly over the Internet. GreatH then hires us to build a reservation Web service with the following functionality: From W3C WSDL2.0 primer
  • 28. 95-843: Service Oriented Architecture 28Master of Information System Management CheckAvailability. To check availability, the client must specify a check-in date, a check-out date, and room type. The Web service will return a room rate (a floating point number in USD$) if such a room is available, or a zero room rate if not. If any input data is invalid, the service should return an error. Thus, the service will accept a checkAvailability message and return a checkAvailabilityResponse or invalidDataFault message. Problem Description (2)
  • 29. 95-843: Service Oriented Architecture 29Master of Information System Management MakeReservation. To make a reservation, a client must provide a name, address, and credit card information, and the service will return a confirmation number if the reservation is successful. The service will return an error message if the credit card number or any other data field is invalid. Thus, the service will accept a makeReservation message and return a makeReservationResponse or invalidCreditCardFault message. Problem Description (3)
  • 30. 95-843: Service Oriented Architecture 30Master of Information System Management We know that we will later need to build a complete system that supports transactions and secured transmission, but initially we will implement only minimal functionality. In fact, to simplify our first example, we will implement only the CheckAvailability operation. Problem Description (4)
  • 31. 95-843: Service Oriented Architecture 31Master of Information System Management Hotel WSDL <?xml version="1.0" encoding="utf-8" ?> <description xmlns="http://www.w3.org/2006/01/wsdl" targetNamespace= "http://greath.example.com/2004/wsdl/resSvc" xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc" xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc" xmlns:wsoap= "http://www.w3.org/2006/01/wsdl/soap" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsdlx= "http://www.w3.org/2006/01/wsdl-extensions"> From W3C WSDL2.0 primer
  • 32. 95-843: Service Oriented Architecture 32Master of Information System Management <documentation> This document describes the GreatH Web service. Additional application-level requirements for use of this service -- beyond what WSDL 2.0 is able to describe -- are available at http://greath.example.com/2004/reservation-documentation.html </documentation>
  • 33. 95-843: Service Oriented Architecture 33Master of Information System Management <types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace= "http://greath.example.com/2004/schemas/resSvc" xmlns="http://greath.example.com/2004/schemas/resSvc"> <xs:element name="checkAvailability" type="tCheckAvailability"/> <xs:complexType name="tCheckAvailability"> <xs:sequence> <xs:element name="checkInDate" type="xs:date"/> <xs:element name="checkOutDate" type="xs:date"/> <xs:element name="roomType" type="xs:string"/> </xs:sequence> </xs:complexType> WSDL uses XML Schema.
  • 34. 95-843: Service Oriented Architecture 34Master of Information System Management <xs:element name= "checkAvailabilityResponse" type="xs:double"/> <xs:element name="invalidDataError" type="xs:string"/> </xs:schema> </types>
  • 35. 95-843: Service Oriented Architecture 35Master of Information System Management <interface name = "reservationInterface" > <fault name = "invalidDataFault" element = "ghns:invalidDataError"/> <operation name="opCheckAvailability" pattern="http://www.w3.org/2006/01/wsdl/in-out" style="http://www.w3.org/2006/01/wsdl/style/iri" wsdlx:safe = "true"> <input messageLabel="In" element="ghns:checkAvailability" /> <output messageLabel="Out" element="ghns:checkAvailabilityResponse" /> <outfault ref="tns:invalidDataFault" messageLabel="Out"/> </operation> </interface> Operations and faults are described. Note the Message exchange pattern in-out is specified.
  • 36. 95-843: Service Oriented Architecture 36Master of Information System Management <binding name="reservationSOAPBinding" interface="tns:reservationInterface" type="http://www.w3.org/2006/01/wsdl/soap" wsoap:protocol= "http://www.w3.org/2003/05/soap/bindings/HTTP"> <fault ref="tns:invalidDataFault" wsoap:code="soap:Sender"/> <operation ref="tns:opCheckAvailability" wsoap:mep= "http://www.w3.org/2003/05/soap/mep/soap-response"/> </binding> Above we specified what gets exchanged now we specify how. The binding specifies the format and transmission protocol for each operation in an interface.
  • 37. 95-843: Service Oriented Architecture 37Master of Information System Management <service name="reservationService" interface="tns:reservationInterface"> <endpoint name="reservationEndpoint" binding="tns:reservationSOAPBinding" address = "http://greath.example.com/2004/reservation"/> </service> </description> The above tells us what and how. The service element tells us where. A WSDL 2.0 service specifies a single interface that the service will support, and a list of endpoint locations where that service can be accessed. Each endpoint must also reference a previously defined binding to indicate what protocols and transmission formats are to be used at that endpoint. From the W3C Primer
  • 38. 95-843: Service Oriented Architecture 38Master of Information System Management WSDL2.0 Message Exchange Patterns In-only One message received no fault generated Robust In-only One message received with a possible error sent In-out One message received in and one sent out (fault replaces out) In-Optional-Out One message received in with one possibly sent out (fault replaces out) Out-Only One message sent no fault return expected Robust Out-Only One message sent fault return expected Out-In One message sent and return expected (fault replaces return) Out-Optional-In One message sent and may receive a return (fault replaces return)
  • 39. 95-843: Service Oriented Architecture 39Master of Information System Management SOAP • Was “Simple Object Access Protocol” • Now people are using “Service Oriented Application Protocol” • May be fine grained RPC style messages <foo>34</foo> where foo is the name of a method • Or may be course grained document style where the input message is an entire document.
  • 40. 95-843: Service Oriented Architecture 40Master of Information System Management SOAP XML Structure <Envelope> <Header> WS-* specifications : are placed in the header area and will be </Header> handled by intermediaries <Body> : Message payload including fault messages </Body> as well-formed XML. </Envelope>
  • 41. 95-843: Service Oriented Architecture Figure 1-2. Breakdown of service components Understanding SOA with Web Services, Eric Newcomer and Greg Lomow, p. 9 NET JEE CORBA IMS Service Descriptions Mapping Layers Service Implementation/ Executable Agent Service Requester Service Implementation/ Executable Agent Service Implementation/ Executable Agent Service Requests The JEE agent may provide a coarse grained service while the legacy services may be fined grained.
  • 42. 95-843: Service Oriented Architecture Figure 1-2. Breakdown of service components Understanding SOA with Web Services, Eric Newcomer and Greg Lomow, p. 9 NET JEE CORBA IMS Service Descriptions Mapping Layers Service Implementation/ Executable Agent Service Requester Service Implementation/ Executable Agent Service Implementation/ Executable Agent Service Requests With web service based SOA we can, for the first time, easily mix and match executable agents.
  • 43. 95-843: Service Oriented Architecture Figure 1-2. Breakdown of service components Understanding SOA with Web Services, Eric Newcomer and Greg Lomow, p. 9 NET JEE CORBA IMS Service Descriptions Mapping Layers Service Implementation/ Executable Agent Service Requester Service Implementation/ Executable Agent Service Implementation/ Executable Agent Service RequestsThe mapping layers are stubs and skeletons that transform the SOAP requests to requests specific to the executable agents.
  • 44. 95-843: Service Oriented Architecture 44Master of Information System Management 44Master of Information System Management • Many vendors have an ESB product. • JBoss has an open source ESB. • CMU has recently chosen Oracle’s ESB. • An ESB usually includes: - Content Transformations (often via XSLT) - Queuing and waiting until services are available - Routing (often using WS-Addressing) - Event driven publish/subscribe - Protocol mediation - Monitoring and logging What is an ESB?
  • 45. 95-843: Service Oriented Architecture Integration Styles 45Master of Information System Management From “RESTFul Web Services vs. “Big Web Services”: Making the Right architectural decision by Paufasso, Zimmerman and Leymann.
  • 46. 95-843: Service Oriented Architecture An Open Source ESB from JBoss - See http://www.jboss.org/jbossesb. - You can purchase support from RedHat. - It’s the next generation of EAI. - Business logic is left to higher levels. - It's about infrastructure logic. - An ESB is needed when we map abstract SOA to a concrete implementation. 46Master of Information System Management From JBOSS ESB Documentation
  • 47. 95-843: Service Oriented Architecture 47Master of Information System Management From JBoss ESB Documentation
  • 48. 95-843: Service Oriented Architecture 48Master of Information System Management From JBoss ESB Documentation
  • 49. 95-843: Service Oriented Architecture To Ensure Loose Coupling: - Use one-way messages rather than request-response style. - Do not expose service back-end implementation choices. - Use an extensible message structure so that it may be versioned over time, for backward compatibility. - Do not use the distributed object approach of fine grained services. - One way message delivery requires that we encode return address information in the message. Use WS- Addressing. 49Master of Information System Management From JBoss ESB Documentation JBoss Recommendations
  • 50. 95-843: Service Oriented Architecture Some JBoss ESB Components - The Message Store Service A pluggable persistence service designed for audit tracking. Every event is recorded. - Data Transformation Service Often clients and services will use the same vocabulary. If not, on the fly transformation is provided. JBoss uses Smooks and XSLT (Smooks can read an EDI message and generate a corresponding Java object). - Content based routing JBossESB can route messages based on arbitrarily complex rules. It uses XPath and JBoss Rules (Drools). 50Master of Information System Management From JBoss ESB Documentation
  • 51. 95-843: Service Oriented Architecture Some JBoss ESB Components (2) - Registry Service (UDDI) is at the heart of JBossESB. Services can self-publish their endpoint references (EPRs) into the Registry when they are activated, and remove them when they are taken out of service. - Consumers can introspect over the Registry to determine the EPR for the right service for the work at hand. 51Master of Information System Management From JBoss ESB Documentation
  • 52. 95-843: Service Oriented Architecture 52Master of Information System Management Simple WS Without an ESB Alice Bob SOAP SOAP Bob’s WSDL is available to Alice.
  • 53. 95-843: Service Oriented Architecture 53Master of Information System Management Simple WS With an ESB Alice Bob Bob’s WSDL available to ESB.ESB’s WSDL available to Alice. Bob may be a legacy application with a web service front end. The backend protocol may be different from the front end.
  • 54. 95-843: Service Oriented Architecture 54Master of Information System Management Oracle’s ESB (OSB) Alice Bob JEE Weblogic Alice may be calling Bob as part of a business orchestration. She might be running BPEL. Another orchestration may exist within the ESB - but working at a lower level.
  • 55. 95-843: Service Oriented Architecture 55Master of Information System Management Protocol Mediation Alice Bob JEE Weblogic Alice may be passing an XML message to the ESB. The ESB may be communicating with Bob via sftp.
  • 56. 95-843: Service Oriented Architecture 56Master of Information System Management
  • 57. 95-843: Service Oriented Architecture And From Microsoft 57Master of Information System Management
  • 58. 95-843: Service Oriented Architecture ESB’s From IBM (1) 58Master of Information System Management
  • 59. 95-843: Service Oriented Architecture 59Master of Information System Management ESB’s From IBM (2)
  • 60. 95-843: Service Oriented Architecture 60Master of Information System Management 60Master of Information System Management IBM’s Solution Stack View