Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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