XML & Web Services

Post on 13-Jan-2016

38 views 1 download

description

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?. e X cellent M arketing L ingo e X citing M odern L anguage - PowerPoint PPT Presentation

Transcript of XML & 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

• eXcellent Marketing Lingo

• eXciting Modern Language

• eXcessive aMount of pubLicity

XML XML What is it?What is it?

Example: Self-describing data

“ABC47-Z”, “100”, “STL”, “C”, “3”, “28”Data stream in a typical interface…

<INVENTORY><PART_NUM>ABC47-Z</PART_NUM><QUANTITY>100</QUANTITY><WAREHOUSE>STL</WAREHOUSE><ZONE>C</ZONE><AISLE>3</AISLE><BIN>28</BIN>

</INVENTORY>

Same data stream in XML…

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)

DTDDTD

Markup fileMarkup file

Explanation - DTD • This example defines the following

document tree structure:

COURSELISTCOURSELIST

STUDENTSTUDENT

CLASSNAMECLASSNAME

FIRSTNAMEFIRSTNAME

LASTNAMELASTNAME

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 [

<!ELEMENT books (book)*>

XML

DTD

<!DOCTYPE books [

<!ELEMENT books (book)*>

XML

Explanation - Data View

• The data in the document may come from a database:

FIRSTNAME LASTNAME CLASSNAME

SuzanGlass CIS 8110 Intro. To ISJoe Suess CIS 8110 Intro. To ISJoe Suess CIS 8120 OO PrototypingJoe Suess CIS 8140 Intro. To DBMSJohn Smith CIS 8110 Intro. To ISJohn Smith CIS 8140 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 high-throughput 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 messageMSH|^~\&| LABGL1|| DMCRES|| 199812300100|| ORU^ R01| LABGL1199510221838581| P|

2.3||| NE| NEPID||| 6910828^ Y^ C8|| Newman^ Alfred^ E|| 19720812| M|| W| 25 Centscheap Ave^^Whatmeworry^ UT^ 85201^^ P||( 555) 777- 6666|( 444) 677- 7777|| M|| 773789090OBR|| 110801^ LABGL| 387209373^ DMCRES| 18768- 2^ CELL COUNTS+ DIFFERENTIAL

TESTS(COMPOSITE)^ LN||| 199812292128|| 35^ ML||||||| IN2973^ Schadow^ Gunther^^^^ MD^ UPIN||||||||||^ Once|||||| CA20837^ Spinosa^ John^^^^ MD^ UPINOBX|| NM| 4544- 3^ HEMATOCRIT (AUTOMATED)^ LN|| 45|| 39- 49|||| F||| 199812292128|| CA20837OBX|| NM| 789- 8^ ERYTHROCYTES COUNT (AUTOMATED)^ LN|| 4. 94| 10* 12/ mm3|4.30- 5.90|||| F||| 199812292128|| CA20837110801^ LABGL| 387209373^ DMCRES| 18768- 2^ CELL COUNTS+ DIFFERENTIAL TESTS(COMPOSITE)^ LN||| 199812292128|| 35^ ML||||||| IN2973^ Schadow^ Gunther^^^^ MD^ UPIN||||||||||^ Once|||||| CA20837^ Spinosa^ John^^^^ MD^ UPINNM| 4544- 3^ HEMATOCRIT (AUTOMATED)^ LN|| 45|| 39- 49|||| F||| 199812292128|| CA20837NM| 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 SoupHTML, 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

Generation 1

Static HTML

HTML

Generation 2

Web Applications

HTMLHTML, XML

HTML, XML

Generation 3

Web Services

Other Web Services

Partner Web Service

Partner Web Service

Data Access and Storage Tier

Application Business Logic Tier

YourCompany.com

Internet + XML

Web Services Overview Application Model

Other Applications

End Users

Mail

Calendar

News

Finance

Weather

Other

Svcs

Ads

Web Services Overview Portals

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

ClientPO Service

Credit Service

Inventory Service

Purchase Order

Credit

Check

ReserveInventory

Credit

Response

InventoryResponse

InvoiceConsolidate

Results

Web Service Demos

• WebMethods.net• http://www.webservicelist.com/• http://www.xmlwebservices.cc/index_

Samples.htm#Top• http://www.asitis.co.uk/web-services/

Underlying Technologies Web Services Stack

Ubiquitous Communications: Internet

Universal Data Format: XML

Wire Format: Service Interactions: SOAP

Description: Formal Service Descriptions: WSDL

Simple, Open, Broad Industry Support

Directory: Publish & Find Services: UDDI

Inspection: Find Services on server: DISCO

Underlying Technologies Web Services Stack

Directoryhttp://www.uddi.org

UDDI

DISCO

WSDL

SOAP

Inspectionhttp://www.ibuyspy.com/ibuyspy.disco

Descriptionhttp://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl

Wire Format

Locate a Service

Link to Discovery Document (XML)

Request Discovery Document

Return Discovery Document (XML)

Return Service Description (XML)

Return Service Response (XML)

Request Service

Request Service Description

Web

Ser

vice

Clie

nt

UD

DI o

ro

ther

directo

ry service

Web

Service

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

SOAP Message

SOAP Envelope

SOAP Header

SOAP Body

Message Name & Data

Headers

Headers

XML-encoded SOAP message name & data

<Body> contains SOAP message name

Individual headers

<Header> encloses headers

<Envelope> encloses payload

Protocol binding headers

The complete SOAP message

SOAPMessage Structure

Marketplace

UDDIThe Vision

Search Portal

Marketplace

Search Portal

Marketplace

Business Users

Advanced Discovery via Portals and Marketplaces

UDDI Registries and Protocol

Technical Users

UDDIUDDI Information Model

Provider: Information about the entity who offers a service

Service: Descriptive information about a particular family of technical offerings

Binding: Technical information about a service entry point and construction specs

tModel: Descriptions of specifications for services.

Bindings contain references to tModels. These references designate the interface specifications for a service.

0…n

0…n

1…n

Web Services Overview Technology Fabric Must Span Companies Too

Underlying Technologies XML Is the Glue

Program the Web

XML

Browse the Web

HTML

TCP/IP

Connect the Web

Technology

Innovation

Connectivity PresentationConnecting ApplicationsFTP, E-mail, Gopher

Web Pages Web Services

Web Services Growth???

?

Web Services: Standards-based integration and interoperability across platforms, applications, and programming languages

Underlying Technologies Web Services Stack

Ubiquitous Communications: Internet

Universal Data Format: XML

Wire Format: Service Interactions: SOAP

Description: Formal Service Descriptions: WSDL

Simple, Open, Broad Industry Support

Directory: Publish & Find Services: UDDI

Inspection: Find Services on server: DISCO