XML and Web Services

Download Report

Transcript XML and Web Services

XML & Web Services
Structuring Web Documents:
Cascading Style Sheets &
XML
•
•
•
•
Structured Formatting
Introduction to CCS
Structured Web Document
Introduction to XML
XML
•
•
•
•
XML
DTD
CSS
XSL
XML What is it?
• eXcellent Marketing Lingo
• eXciting Modern Language
• eXcessive aMount of pubLicity
Example: Self-describing data
Data stream in a typical interface…
“ABC47-Z”, “100”, “STL”, “C”, “3”, “28”
Same data stream in XML…
<INVENTORY>
<PART_NUM>ABC47-Z</PART_NUM>
<QUANTITY>100</QUANTITY>
<WAREHOUSE>STL</WAREHOUSE>
<ZONE>C</ZONE>
<AISLE>3</AISLE>
<BIN>28</BIN>
</INVENTORY>
What’s so great about XML?
•
•
•
The data is self-describing
• The meaning of the data is included: identifiers
surround every bit of data, indicating what it means
Far more flexible method of representing transmitted
information
• Batched orders sent together can have different fields
and format without breaking apps on each end
Open, standard technologies for moving, processing and
validating the data
• The XML parser built into IE5 can automatically parse,
validate, and feed the information to an application,
instead of every application having to include this
functionality
What does XML look like?
<?xml version=“1.0”?>
(prolog)
<Book>
(root element)
<Author>Vetter, R.</Author>
<Author>Ward, D.</Author>
<Author>Lugo, G.</Author>
<Title>H/PCs : Ignore the Hype</Title>
<Publisher>RDG Publishing Inc.</Publisher>
<Year>2003</Year>
</Book>
Case Sensitive!
<book> vs. <Book> vs. <BOOK> = 3 different tags!!!!
XML
•
•
•
•
•
•
eXtensible Markup Language
Defines data
Improved “CSV” format
Recordset (Rows & Columns)
Data can be hierarchical
Each file can contain multiple
record sets
• See customer.xml
Valid
1. Valid documents are well-formed
documents that conform to a DTD.
2. When the document is parsed by an
application, it can be checked for
the presence of required portions.
3. There are many programs, known
as parsers, available for XML. Some
of these parsers are able to validate
a XML document against a DTD
(validating parsers such as IE 5).
Explanation - XML Document
• A XML document contains two
parts
• Document type definition (DTD) specify the document structure,
entities, and type
• Markup file - the application of the
type to actual data (text)
DTD
Markup file
Explanation - DTD
• This example defines the following
document tree structure:
COURSELIST
STUDENT
FIRSTNAME
LASTNAME
CLASSNAME
A XML Document Example
<?xml Version=“1.0” Encoding=“UTF-8”?>
<!DOCTYPE simple [
<!ELEMENT COURSELIST(STUDENT,CLASSNAME+)>
<!ELEMENT STUDENT (FIRSTNAME,LASTNAME)>
<!ELEMENT FIRSTNAME (#PCDATA)>
<!ELEMENT LASTNAME (#PCDATA)>
<!ELEMENT CLASSNAME (#PCDATA)>
<!ELEMENT description “This is a very simple example”>
]>
<COURSELIST>
<STUDENT>
<FIRSTNAME> Susan </ FIRSTNAME >
<LASTNAME> Glass </ LASTNAME >
</STUDENT >
<CLASSNAME> CIS 8110 Intro. To IS </CLASSNAME>
</ COURSELIST>
A XML Document Example
<COURSELIST>
<STUDENT>
<FIRSTNAME> Jeo </ FIRSTNAME >
<LASTNAME> Suess </ LASTNAME >
</STUDENT >
<CLASSNAME> CIS 8110 Intro. To IS </CLASSNAME>
<CLASSNAME> CIS 8120 OO Prototyping </CLASSNAME>
<CLASSNAME> CIS 8140 Intro. To DBMS </CLASSNAME>
</ COURSELIST>
< COURSELIST>
<STUDENT>
<FIRSTNAME> John </ FIRSTNAME >
<LASTNAME> Smith </ LASTNAME >
</STUDENT >
<CLASSNAME> CIS 8110 Intro. To IS </CLASSNAME>
<CLASSNAME> CIS 8140 Intro. To DBMS </CLASSNAME>
</ COURSELIST>
DTD
• Document Type Definition
• Defines structure of an XML document
• Can be defined within XML or linked in
• <!DOCTYPE books SYSTEM “books.dtd”>
• <!DOCTYPE books SYSTEM
http://wareham.eci.gsu/xmlcases/books.dtd”>
• DTDs still difficult to read and program XML schemas
on the way from http://www.w3.org/tr/
• XML schemas USE XML syntax, not EBNF
Using DTD and XML Documents
DTD
<!DOCTYPE books [
DTD
<!ELEMENT books (book)*>
<!DOCTYPE books [
<!ELEMENT books (book)*>
XML
XML
Explanation - Data View
• The data in the document may come
from a database:
FIRSTNAME
LASTNAME
CLASSNAME
Suzan
Joe
Joe
Joe
John
John
Glass
Suess
Suess
Suess
Smith
Smith
CIS
CIS
CIS
CIS
CIS
CIS
8110
8110
8120
8140
8110
8140
Intro. To IS
Intro. To IS
OO Prototyping
Intro. To DBMS
Intro. To IS
Intro. To DBMS
What’s Missing in DTDs?
• Cannot manipulate ‘DTD’s like XML documents
• Syntax different from XML documents
• Lack of data typing
• XSL: Schemas
• Data Typing
• Open/Closed Models
• Can use XML tools with XML schemas
An Example Schema
<?xml version = "1.0"?>
<!-- Microsoft XML Schema showing the ElementType -->
<Schema xmlns = "urn:schemas-microsoft-com:xml-data">
<ElementType name = "message" content = "textOnly" model =
"closed">
<description>Text messages</description>
</ElementType>
<ElementType name = "greeting" model = "closed“ content = "mixed"
order = "many">
<element type = "message"/>
</ElementType>
<ElementType name = "myMessage" model = "closed“
content = "eltOnly" order = "seq">
<element type = "greeting" minOccurs = "0“ maxOccurs = "1"/>
<element type = "message" minOccurs = "1" maxOccurs = "*"/>
</ElementType>
</Schema>
A Corresponding Instance
<?xml version = "1.0"?>
<!-- Introduction to Microsoft XML Schema -->
<myMessage xmlns = "x-schema:intro-schema.xml">
<greeting>Welcome to XML Schema!
<message>This is the first message.</message>
</greeting>
<message>This is the second message.</message>
</myMessage>
Data Types in Schemas
<?xml version = "1.0"?>
<Schema xmlns = "urn:schemas-microsoft-com:xml-data"
xmlns:dt = "urn:schemas-microsoft-com:datatypes">
<ElementType name = "bookstore" content = "eltOnly“ order = "many" model = "closed">
<element type = "shipping"/>
<element type = "book"/>
</ElementType>
<ElementType name = "shipping" content = "eltOnly" order = "seq" model = "closed">
<AttributeType name = "shipID" dt:type = "id" required = "yes"/>
<attribute type = "shipID"/>
<element type = "duration"/>
</ElementType>
<ElementType name = "duration" content = "textOnly" model = "closed" dt:type =
"date"/>
<ElementType name = "book" content = "textOnly" model = "closed“dt:type = "string">
<AttributeType name = "shippedBy" dt:type = "idref"/>
<attribute type = "shippedBy"/>
</ElementType>
</Schema>
Data Types in Schemas 2
<?xml version = "1.0"?>
<Schema xmlns = "urn:schemas-microsoft-com:xml-data"
xmlns:dt = "urn:schemas-microsoft-com:datatypes">
<ElementType name = "inventory" content = "eltOnly" model = "closed">
<element type = "book" minOccurs = "0" maxOccurs = "*"/>
</ElementType>
<ElementType name = "book" content = "eltOnly" order = "seq" model = "closed">
<AttributeType name = "isbn" dt:type = "string" required = "yes"/>
<attribute type = "isbn"/>
<AttributeType name = "inStock" dt:type = "enumeration" dt:values = "yes no" default =
"no"/>
<attribute type = "inStock"/>
<element type = "name"/>
<element type = "price"/>
<group order = "one">
<element type = "quantity"/>
<element type = "available"/>
</group>
</ElementType>
<ElementType name = "name" content = "textOnly" model = "closed" dt:type = "string"/>
<ElementType name = "price" content = "textOnly" model = "closed" dt:type = "float"/>
<ElementType name = "quantity" content = "textOnly" dt:type = "int" model = "closed"/>
<ElementType name = "available" content = "textOnly" dt:type = "date" model = "closed"/>
</Schema>
A Corresponding Instance
<?xml version = "1.0"?>
<!-- Data type example -->
<inventory xmlns = "x-schema:inventory-schema.xml">
<book isbn = "0-13-012507-5" inStock = "yes">
<name>Java How to Program 3/e</name>
<price>68.00</price>
<quantity>200</quantity>
</book>
<book isbn = "0-13-028418-1" inStock = "no">
<name>Perl How to Program</name>
<price>68.00</price>
<available>2000-12-15</available>
</book>
</inventory>
Microsoft XML Parser (MSXML)
Provides core XML services
• DOM parser that takes a text stream and
turns it into a XML tree structure
• Validating parser for DTD’s and XML
Schemas
• XSLT processor that applies XSLT rules to
XML to product output
• SAX (Simple API for XML) parser optimized
for handling large documents and highthroughput scenarios
XSL
•
•
•
•
•
eXtensible Stylesheet Language
Template for displaying XML data
Client-side (browser dependent)
Server-side (browser independent)
See customer.xsl,
customer_xsl.xml,
customer_transform.xml
XML Auction Demo
XML and HL7
• Health Level 7 – Application level protocol
for communicating medical data
• Clinical data
• ADT (admission/discharge/transfers)
• ORDERS
• REPORTS
• Administrative data
• Billing
• Insurance
An HL7 message
MSH|^~\&| LABGL1|| DMCRES|| 199812300100|| ORU^ R01| LABGL1199510221838581| P| 2.3
||| NE| NE
PID||| 6910828^ Y^ C8|| Newman^ Alfred^ E|| 19720812| M|| W| 25 Centscheap Ave^^
Whatmeworry^ UT^ 85201^^ P||( 555) 777- 6666|( 444) 677- 7777|| M|| 773789090
OBR|| 110801^ LABGL| 387209373^ DMCRES| 18768- 2^ CELL COUNTS+ DIFFERENTIAL TESTS
(COMPOSITE)^ LN||| 199812292128|| 35^ ML||||||| IN2973^ Schadow^ Gunther^^^^ M
D^ UPIN
||||||||||^ Once|||||| CA20837^ Spinosa^ John^^^^ MD^ UPIN
OBX|| NM| 4544- 3^ HEMATOCRIT (AUTOMATED)^ LN|| 45|| 39- 49
|||| F||| 199812292128|| CA20837
OBX|| NM| 789- 8^ ERYTHROCYTES COUNT (AUTOMATED)^ LN|| 4. 94| 10* 12/ mm3
|4.30- 5.90|||| F||| 199812292128|| CA20837
110801^ LABGL| 387209373^ DMCRES| 18768- 2^ CELL COUNTS+ DIFFERENTIAL TESTS
(COMPOSITE)^ LN||| 199812292128|| 35^ ML||||||| IN2973^ Schadow^ Gunther^^^^ M
D^ UPIN
||||||||||^ Once|||||| CA20837^ Spinosa^ John^^^^ MD^ UPIN
NM| 4544- 3^ HEMATOCRIT (AUTOMATED)^ LN|| 45|| 39- 49
|||| F||| 199812292128|| CA20837
NM| 789- 8^ ERYTHROCYTES COUNT (AUTOMATED)^ LN|| 4. 94| 10* 12/ mm3
|4.30- 5.90|||| F||| 199812292128|| CA20837
The XML
<Labrs3P00 T=" Labrs3P00">
<Labrs3P00. PTP T=" PTP">
<PTP. primrPrsnm T=" PN">
<fmn T=" ST"> Sample</ fmn>
<gvn T=" ST"> George</ gvn>
<mdn T=" ST"> H</ mdn>
</ PTP. primrPrsnm>
</ Labrs3P00. PTP>
<Labrs3P00. SIOO_ L T=" SIOO_ L">
<SIOO_ L. item T=" SIOO">
<SIOO. filrOrdId T=" IID"> LABGL110801</ SIOO. filrOrdId>
<SIOO. placrOrdId T=" IID"> DMCRES387209373</ SIOO. placrOrdId>
<SIOO. InsncOf T=" MSRV">
<MSRV. unvSvcId T=" CE"> 18768- 2</ MSRV. unvSvcId>
<MSRV. svcDesc T=" TX"> CELL COUNTS+ DIFFERENTIAL TESTS (COMPOSITE)</ MSRV. svcDesc>
</ SIOO. InsncOf>
<SIOO. SRVE_ L T=" SRVE_ L">
<SRVE_ L. item T=" SRVE">
<SRVE. name T=" CE"> 4544- 3</ SRVE. name>
<SRVE. svcEvntDesc T=" ST"> HEMATOCRIT (AUTOMATED)</ SRVE. svcEvntDesc>
<SRVE. CLOB T=" CLOB">
<CLOB. obsvnValu T=" NM"> 45</ CLOB. obsvnValu>
<CLOB. refsRng T=" ST"> 39- 49</ CLOB. refsRng>
<CLOB. clnRlvnBgnDtm T=" DTM"> 199812292128</ CLOB. clnRlvnBgnDtm>
</ SRVE. CLOB>
<SRVE. spcmRcvdDtm T=" DTM"> 199812292315</ SRVE. spcmRcvdDtm>
</ SRVE_ L. item>
</ SIOO_ L. item>
</ Labrs3P00. SIOO_ L>
</ Labrs3P00>
Technology Alphabet Soup
HTML, DHTML, CSS, XML, XSL, DOM
HTML &
DHMTL
“Format without Structure”
CSS
“Enhanced Format, No Structure”
XML
“Structure Without Format”
XSL
“Adding Format to Structure”
DOM
“All Elements Combined”
Summary
• CSS allows structuring formatting of HTML document
• Easy to maintain formatting information
• XML moves web documents into new level
• Impose object structure into web documents
• Separate presentation from data
• Can support multiple presentations for a same set
of data
• Document object model (DOM) defines programming
interface for both HTML & XML
Web Services Overview
Evolution of
the Web
HTML, XML
HTML
HTML
HTML, XML
Generation 1
Generation 2
Generation 3
Static HTML
Web Applications
Web Services
Web Services Overview
Application Model
Partner
Web Service
Other Web Services
Internet + XML
End Users
YourCompany.com
Application Business Logic Tier
Data Access and Storage Tier
Other Applications
Partner
Web Service
Web Services Overview
Portals
Ads
Mail
Other
Svcs
Calendar
Weather
Finance
News
Web Services Overview
Sample Web Services
• E-commerce: order books, office
supplies,
other products
• Track packages: UPS, FedEx
• Weather
• Maps
• Telephone redirection, customizable
rules
and messages
Example Problem Space
Credit
Service
Purchase
Invoice
Order
Client
Consolidate
Results
PO Service
Inventory
Service
Web Service Demos
• WebMethods.net
• http://www.webservicelist.com/
• http://www.xmlwebservices.cc/index
_Samples.htm#Top
• http://www.asitis.co.uk/webservices/
Underlying Technologies
Web Services Stack
Directory: Publish & Find Services:
UDDI
Inspection: Find Services on server:
DISCO
Description: Formal Service Descriptions:
WSDL
Wire Format: Service Interactions:
SOAP
Universal Data Format:
XML
Ubiquitous Communications:
Internet
Simple, Open, Broad Industry Support
Underlying Technologies
Web Services Stack
UDDI
Inspection
http://www.ibuyspy.com/ibuyspy.disco
Request Discovery Document
DISCO
Return Discovery Document (XML)
Description
WSDL
http://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl
Request Service Description
Return Service Description (XML)
Wire Format
Request Service
Return Service Response (XML)
SOAP
Web Service
Web Service Client
Link to Discovery Document (XML)
UDDI or
other
directory
service
Directory
http://www.uddi.org
Locate a Service
SOAP
Overview
• A lightweight protocol for exchanging information in
a distributed, heterogeneous environment
• It enables cross-platform interoperability
• Interoperable
• OS, object model, programming language
neutral
• Hardware independent
• Protocol independent
• Works over existing Internet infrastructure
SOAP
Message Structure
SOAP Message
The complete SOAP message
Headers
Protocol binding headers
SOAP Envelope
<Envelope> encloses payload
SOAP Header
Headers
SOAP Body
Message Name & Data
<Header> encloses headers
Individual headers
<Body> contains SOAP message name
XML-encoded SOAP message name
& data
UDDI
The Vision
Advanced Discovery via
Portals and Marketplaces
Marketplace
UDDI Registries and Protocol
Marketplace
Marketplace
Search Portal
Search Portal
Business Users
Technical Users
UDDI
UDDI Information Model
Provider: Information about the
entity who offers a service
tModel: Descriptions of
specifications for services.
1…n
0…n
Service: Descriptive
information about a particular
family of technical offerings
0…n
Binding: Technical information
about a service entry point and
construction specs
Bindings contain references
to tModels. These
references designate the
interface specifications for
a service.
Web Services Overview
Technology Fabric Must Span Companies Too
Underlying Technologies
XML Is the Glue
Connectivity
Connect
the Web
Presentation
Browse
the Web
Connecting
Applications
Program
the Web
Web Services Growth???
?
Web Services: Standards-based integration and interoperability across
platforms, applications, and programming languages
Underlying Technologies
Web Services Stack
Directory: Publish & Find Services:
UDDI
Inspection: Find Services on server:
DISCO
Description: Formal Service Descriptions:
WSDL
Wire Format: Service Interactions:
SOAP
Universal Data Format:
XML
Ubiquitous Communications:
Internet
Simple, Open, Broad Industry Support