TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben TU/e technische universiteit eindhoven Content • Web information systems • evolution • WIS engineering • XML & XQuery • RDF & OWL • Web services • WS protocols TU/e technische universiteit eindhoven Web Information Systems TU/e Web Information System technische universiteit eindhoven • Information System based on Web technology (Web-based, Web-aware, Web-enabled etc.) • Information system – Exchanges information with Object System (= business process) – Stores and manages information: data-intensive – Requires careful engineering of information exchange TU/e Web Information System technische universiteit eindhoven • Web technology can be used as front-end, e.g. application is available on the Web (or Intranet) via a browser – Enables easy use and maintenance of (personalized) end-user access – Web metaphor is appealing for end-users – Requires different techniques for engineering the system’s interfaces TU/e Web Information System technische universiteit eindhoven • Web technology can also be used in back-end of information system – Organize (connect) the data inside the system using Web technology – Use World Wide Web as provider of data (or Intranet) – Typically highly volatile information (distributed and heterogeneous) – Requires different techniques for engineering the implementation TU/e technische universiteit eindhoven Examples • • • • • • • • Real-estate sales Employee databases Museum databases Digital libraries Mail order catalogs Reservation systems Auctions, virtual marketplaces EPG (Electronic TV Program Guide) Ref: Special section on Web Information Systems in Communications of the ACM, July 1998, Vol. 41, No. 7 TU/e technische universiteit eindhoven Evolution in WIS Technology TU/e Evolution in hypermedia technische universiteit eindhoven • First: standalone special-purpose systems • Now: Web-based – From authoring to designing to generating – From static to dynamic (generated from database query result) – From single site to portals (integrated access service) – From read-only to interactive and often collaborative (read-write) TU/e Evolution in Web Languages technische universiteit eindhoven 1. HTML written by author – – – Easy, uniform interface Large effort for maintenance Not suited for changing information 2. Automatically generating information – – First, using templates (and databases) Later, using XML and XSLT transformations 3. Automatic processing of information – – – Explicit metadata (RDF) Agreement on meaning (ontologies) Semantic Web: from human-readable via machine-readable to machine-processable TU/e SemWeb “Layer Cake” technische universiteit eindhoven TU/e technische universiteit eindhoven Other Views • WebML: “A Web-enabled software system whose main purpose is to publish and maintain large amounts of data” – exploratory, browsing-oriented, personalized interfaces – (highly volatile) data stored by means of DBMS technology • OOHDM: “WWW brought new generation of IS” – hypermedia navigation through heterogeneous information space – operations querying or affecting that information – constant change, new navigation and services “Web-based applications, first good hypermedia applications” • RMM: “History of graphics designers + programmers” • Nielsen: “On the Web, the only constant is change. A site that works perfectly as long as its stays the same will quickly die.” “Healthy navigation structure key to success” TU/e technische universiteit eindhoven WIS Engineering TU/e technische universiteit eindhoven Device Dependency HTML SMIL WML TU/e WIS Engineering Methodology technische universiteit eindhoven • Design of WIS requires careful engineering of information exchange between IS and OS • Implies engineering of front-end (interface) and back-end (storage & retrieval) • Professional applications: “from art to engineering” – well-founded (software) engineering methodologies – model-driven TU/e technische universiteit eindhoven Hera: motivation • Methodologies exist for manual hypermedia presentation design, Hera targets automated presentation • Automated presentation is important for databased content (the ‘deep web’) as opposed to manually crafted content (the ‘surface web’): most WIS are data driven Ref: wwwis.win.tue.nl/~hera TU/e technische universiteit eindhoven Hera Methodology • Model-driven methodology, defines design phases: – Conceptual Design that results in Conceptual Model (CM, describes data content used for generation of hypermedia presentations) construction – Application Design that results in Application Model (AM, describes the navigation structure and functionality) construction – Presentation Design that results in Presentation Model (PM, describes spatial layout and rendering of hypermedia presentations) construction TU/e technische universiteit eindhoven Hera Models • Models fully specify application; hence, there is no need of additional programming • Models are used by a generic Hera engine for generation of WIS application pages (by on-demand instantiations of model subsets) TU/e technische universiteit eindhoven Hera Architecture • Defines how the models are used for automatic generation of hypermedia presentation CM Vocabulary (RDFS) AM Vocabulary PM Vocabulary CM AM PM CM I Content AM I Pres. Browser App. Context Data Semantic Layer Application Layer Presentation Layer Query/Context M anager, Form Processor User TU/e technische universiteit eindhoven Conceptual Model • Provides a uniform semantic view over different data sources that are integrated within a given Web application. • Consists of hierarchies of concepts relevant within the given domain, their properties, and relations. TU/e technische universiteit eindhoven Conceptual Model • Defines the data content in terms of RDFS (concepts, attributes, properties) String tname String Integer aname year exemplifies * Technique Artifact examplified_by String cname creates * Creator created_by biography description String Image picture Painting paints * painted_by Painter String TU/e technische universiteit eindhoven Application Model • Navigation structure of a hypermedia application on top of CM • Hypermedia dynamics (navigation structure updates and application functionality) of a hypermedia application TU/e technische universiteit eindhoven Slices Reference (link) Slice Technique Painting tname picture description year Owner concept Attributes exemplified_by Set painted_by Painting Painter aname Info Sub-slices Main Main TU/e technische universiteit eindhoven AM Example initialize Technique SelectedPainting Q1 tname picture description aname exemplified_by Set Set year painted_by Painting Basket PaintingsForm SelectedPainting Main Order Main Basket quantity includes contains Set Order SelectedPainting aname Main Main Main quantity quantity aname Q2 Painters Main i cname aname bname BuyForm Painter sN bname TU/e technische universiteit eindhoven Data Manipulations • Defined as SeRQL queries • Used for processing forms (handle user input) • Q1 creates instances of SelectedPainting according to the SelectForm form content CONSTRUCT {P}<rdf:type>{acm:SelectedPainting>} FROM {P}<rdf:type>{cm:Painting}; <cm:aname>{Paname} WHERE Paname IN SELECT Faname FROM {SF}<form:aname>{Faname}, {SF}<rdf:ID>{FormName} WHERE FormName = “SelectForm” SelectedPainting type type Painting1 creates ... PaintingN TU/e technische universiteit eindhoven Hera Implementation • HPG 2.0 (Hera Presentation Generator, dynamic version) implemented in Java as a servlet • Uses RDF API HP Jena for RDF data transformations based on RDFS models (CM, AM) • Can use XForms processor • Uses Sesame as main content repository and application context repository; uses SeRQL/RQL as query languages • Set of graphical tools for designers for CM and AM based on Visio TU/e technische universiteit eindhoven XML & XQuery TU/e HTML = Hypertext Language technische universiteit eindhoven The <b> X23 </b> new camera Ref Name Price replaces the <b> X22 </b>. It X23 Camera 359.99 comes equipped with a flash R2D2 Robot 19350.00 (worth by itself <i>53.99 $</i>) Z25 PC 1299.99 hard and provides great quality for only <i>359.99 $</i>. Information System Text + presentation Where is the data ? HTML TU/e XML for Semistructured Data technische universiteit eindhoven <product-table> Ref Name Price < product reference=”X23"> X23 Camera 359.99 <designation> camera </designation> R2D2 Robot 19350.00 <price unit=Dollars> 359.99 </price> Z25 PC 1299.99 <description> … </description> ... Information System easy </product> < product reference=”R2D2"> <designation> Robot </designation> Data + Structure: <price unit=Dollars> 19350 </price> <description> … </description> more flexible ... </product-table> XML TU/e technische universiteit eindhoven Complex data • Structure is irregular (missing/extra data) • Schema does not exist or is unknown • Schema is rapidly evolving • Relational and ODB models are too rigid • Standard is a document/hypertext language HTML • Solution: semistructured data model XML – data model consists of a type definition language, a query/update language and more TU/e technische universiteit eindhoven XML • XML: eXtensible Mark-up Language – W3C and most industrial companies [B2B] – Main idea: separate content and presentation – Use tags to represent structure and semantics • HTML: a fixed set of tags complicates the identification of information elements • XML allows to define data structures: – Tags with freely chosen names » No predefined tags enables definition, transmission, validation and interpretation of data between applications (and organizations) – Freely chosen attributes Ref: w3c.org TU/e technische universiteit eindhoven <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> <billTo country="US"> <name>Robert Smith</name> <street>8 Oak Avenue</street> <city>Old Town</city> <state>PA</state> <zip>95819</zip> </billTo> <items> <item partNum="872-AA"> <productName>Lawnmower</productName> <quantity>1</quantity> <USPrice>148.95</USPrice> </item> <item partNum="926-AA"> <productName>Baby Monitor</productName> <quantity>1</quantity> <USPrice>39.98</USPrice> <shipDate>1999-05-21</shipDate> </item> </items> </purchaseOrder> TU/e technische universiteit eindhoven XML Documents • • • • • • elements and attributes elements are ordered attribute values are strings well-formed documents (e.g. proper nesting) namespaces: vocabularies for tags valid documents: DTD, Schema TU/e technische universiteit eindhoven DTD: a grammar Product* Name Price? Cat (Part Quantity)* Part BasicPart + ComposedPart BasicPart Name ComposedPart Name (Part Quantity)* Catalog Product TU/e technische universiteit eindhoven <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"/> <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> <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> ... </xsd:schema> TU/e technische universiteit eindhoven ... <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> <!-- 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> TU/e technische universiteit eindhoven Typing XML • Not really, the true spirit of the Web, but essential for data management: query optimization, user interfaces, applications • Differences with standard database typing – Collections are sequences instead of sets – Types may be very large (e.g., from integration) – Data is more irregular so types should be more permissive – New issues sometimes: you have the data, extract its type: an approximate type TU/e technische universiteit eindhoven <skills> <people> <person> <name>Bob</name> <know-how>XML</know-how> </person> <person> <name>Peter</name> <know-how>XML</know-how> <know-how>RDF(S)</know-how> </person> </people> <seminars> <seminar> <topic>XML</topic> <participant> <name>Karin</name> <name>Alice</name> </participant> </seminar> </seminars> </skills> TU/e technische universiteit eindhoven //person/name[../know-how=“XML"] $union$ //seminar[topic=“XML"]/participant/name TU/e technische universiteit eindhoven XPath • Path expressions in OO databases /Students/Student/Status • Semistructured: – missing parts /Students//Status – conditions /Students/Student[Status=“U4”] • Indexing, wildcards • Selection, string manipulation, aggregation, attribute existence, union TU/e technische universiteit eindhoven XSLT • XSL: XML Stylesheet Language – (XSLT: XSL Transformations) • declarative language for transforming XML documents using an XSLT processor TU/e technische universiteit eindhoven XQuery • http://www.w3.org/XML/Query • “the” standard for XML querying • Goal: “data model for XML documents, a set of query operators on that data model, and a query language based on these query operators” • General query language (next to XPath + XSLT) • Based on XPath TU/e XQuery Path Expressions technische universiteit eindhoven In the second chapter of the document named “zoo.xml”, find the figure(s) with caption “Tree Frogs”. document(“zoo.xml”)/chapter[2]// figure[caption=“Tree Frogs”] Find captions of figures that are referenced by <figref> elements in the chapter of “zoo.xml” with title “Frogs”. document(“zoo.xml”)/chapter[title=“Frogs”]// figref/@refid->fig/caption TU/e XQuery Element Constructor technische universiteit eindhoven Generate an <emp> element that has an “empid” attribute. The value of the attribute and the content of the subelements are specified by variables that are bound in other parts of the query. <emp empid={$id}> {$name} {$job} </emp> TU/e XQuery FLWR Expression technische universiteit eindhoven List each publisher and the average price of its books. FOR $p IN distinct(document(“bib.xml”)//publisher) LET $a := avg(document(“bib.xml”)/book[publisher=$p]/price) RETURN <publisher> <name>{$p/text()}</name> <avgprice>{$a}</avgprice> </publisher> TU/e technische universiteit eindhoven RDF & OWL TU/e technische universiteit eindhoven Web Data Integration • WIS repository (back-end) typically assembled from different heterogeneous sources, e.g. databases, files, WWW • To manage (coordinate) data from different sources, metadata helps to structure the data TU/e technische universiteit eindhoven Metadata • • • • Describing the data and its availability Sometimes provided by sources Needed by IS Engineering metadata: – Meaning – Validity – Quality • Specifying “logistics” of data TU/e Resource Description Framework technische universiteit eindhoven • W3C standard for metadata description • Describes the “meaning” of data like Web sites, parts of HTML pages, etc. • Makes data “machine - understandable” – allows automated data processing • Framework that allows you to make simple assertions about anything: distributed and extensible (as is the Web) • “meaning” expressed via “subclass of” Ref: www.w3.org/RDF, www.w3.org/TR/rdf-primer TU/e technische universiteit eindhoven Basic RDF Model • Recognizes 3 object types: – Resources – always named by URI, e.g. web site, part of web page, others – Properties – an attribute of a Resource, its characteristics – Statements – Resource + Property + Property Value TU/e Basic RDF Model Example technische universiteit eindhoven • RDF representation of the sentence: “Ora Lassila is the creator of the resource www.w3.org/Home/Lassila.” Statement: Subject (Resource) www.w3.org/Home/Lassila Predicate (Property) Object (Literal) Creator “Ora Lassila” TU/e Basic RDF Model Example technische universiteit eindhoven • Diagram of the statement: Creator www.w3.org/Home/Lassila Ora Lassila TU/e technische universiteit eindhoven RDF and XML •RDF can be implemented using XML •The example of complete XML for the previous example is: <?xml version=“1.0”> <rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:s=http://description.org/schema/> <rdf:Description about=www.w3.org/Home/Lassila> <s:Creator>Ora Lassila</s:Creator> </rdf:Description> </rdf:RDF> TU/e Structured Value Example technische universiteit eindhoven • “The employee with ID 85740, Ora Lassila, with Email lassila@w3.org, is the creator of the resource www.w3.org/Home/Lassila” In XML it is: www.w3.org/Home/Lassila <rdf:RDF> <rdf:Description about=“www.w3.org/Home/Lassila”> <s:Creator> Creator <rdf:Description about=“www.w3.org/staffid/85740”> www.w3.org/staffid/85740 <v:Name>Ora Lassila</v:Name> <v:Email>lassila@w3.org</v:Email> Name Email </rdf:Description> </s:Creator> Ora Lassila Lassila@w3.org <rdf:Description> </rdf:RDF> TU/e technische universiteit eindhoven RDF - more • It is possible to make statements about statements • It is possible to refer a collection of resources (containers) of 3 types: – Bag – a property has multiple values, order has no significance – Sequence – a property has multiple value, order is significant – Alternative – list of literals/resources representing alternatives for single property TU/e RDF Query Language technische universiteit eindhoven • Querying RDF metadata – SQL/XQL style approach, viewing RDF metadata as relational or XML database [RDF Query Specification (IBM)] – viewing Web descriptions by RDF metadata as knowledge base, applying knowledge representation and reasoning techniques [W3C related] • RQL, SeRQL (with Sesame) TU/e technische universiteit eindhoven Meaning: Ontologies • • • Ontology = a vocabulary with associated meaning (“shared understanding”) Possibility to define synonyms, specializations and other relationships Use of same ontology = contract on meaning of words (tags, attributes) • Often, industry or domain dependent TU/e technische universiteit eindhoven OWL • Web Ontology Language • used to explicitly represent meaning of terms in vocabularies and relationships between terms: ontology – ontology engineering • beyond XML and RDF(S) • revision of DAML+OIL TU/e technische universiteit eindhoven Stack • XML: surface syntax for structured documents (no semantic constraints on meaning) • XML Schema: restricting structure of XML documents • RDF: datamodel for objects (resources) and relationships, provides simple semantics for this datamodel • RDF Schema: vocabulary for describing properties and classes of RDF resources, with semantics for generalization-hierarchies • OWL: adds vocabulary for describing properties and classes, e.g. relations between classes (disjoint), cardinality (exactly one), equality, richer typing of properties, characteristics of properties (symmetry), enumerated classes TU/e technische universiteit eindhoven OWL Sublanguages • OWL Lite: classification hierarchy and simple constraints • OWL DL: maximum expressiveness while retaining computational completeness and decidability (description logics) • OWL Full: maximum expressiveness and syntactic freedom of RDF with no computational guarantees TU/e technische universiteit eindhoven Web Services TU/e technische universiteit eindhoven Web Services – Distributed computing model on asynchronous messaging (XML) • Support dynamic application integration over the Web • XML message for exchanging data and accessing services • On-the-fly software creation through the use of loosely coupled, reusable software components • Software can be delivered and paid per-use as opposed to package products TU/e technische universiteit eindhoven Principles • XML Message Exchange – Message Transport • XML • Namespaces (URI) • HTTP Application Client Web Service <B> XML – Message Nature • Request • Result of a request • Errors Web Service <C> Web Service <D> TU/e technische universiteit eindhoven Application Client XML • Design Principles HTTP-SOAP – Wrapping services (applications) – Web-based protocols Web Service <D> • Web-services based on HTTP – Protocols can traverse firewalls, can work in a heterogeneous environment – Interoperability • SOAP defines a common standard that allows different systems to interoperate – XML-based (XML Schema) • Machine-readable documents TU/e technische universiteit eindhoven Application Client Repository XML • Design Principles HTTP-SOAP – Modularity • Service components are useful in themselves, reusable, composable Web Service – Availability Application • Services are available to systems that wish to use them • Services must be exposed outside of the particular system they are available in (wrapping) – Machine-readable description • Used to identify the interface, the location and access information – Published • Searchable service repositories of service descriptions TU/e technische universiteit eindhoven Related Technologies • Comparison with Data Wrapping – Same idea (providing a transparent interface to legacy systems) – Data (data models and query languages) vs. services (procedures, functions) • Comparison with other RPC – Existing RPC (DCOM, RMI or CORBA) • Same idea (interface, dynamic discovery, protocols) • Interoperability problems – DCOM: Microsoft – RMI: Java • Technical problems – CORBA: very complex TU/e technische universiteit eindhoven Main Components/Actors Directory Service Description Discovery Service Description Client Client Application Publication Service Provider Interaction Web Service TU/e technische universiteit eindhoven Publication and Discovery: UDDI Service Description: WSDL Messaging: SOAP Transport: HTTP, SMTP, FTP • Three Main Components/Protocols – UDDI (Universal Data Description Interface) • Directory for recording and searching the description of Web services • Provides a mechanism for clients to find Web services – WSDL (Web Services Description Language) • XML description of a Web service • Defines services as collections of network endpoint or ports – A port is defined by associating a network address with a binding (servers) – A collection of ports defines a service – SOAP (Simple Object Access Protocol) • Is a message layout specification that defines a uniform ways of passing XML-encoded data • Based on HTTP TU/e technische universiteit eindhoven Publication and Discovery: UDDI Service Description: WSDL Messaging: SOAP Transport: HTTP, SMTP, FTP Directory UDDI WSDL Service Description Discovery Client Client Application SOAP Publication Service Description Service Provider Interaction Web Service TU/e technische universiteit eindhoven Basic Usage Scenario Client (manual) Web service lookup Directory (UDDI) 2 http get 1 register 3 WSDL file Write client application Run client application Publish Web service WSDL file (manually) 4 SOAP request Run Server 5 SOAP response Web Service Provider TU/e technische universiteit eindhoven Web Service Implementation Web Service Provider Requestor (SOAP client) SOAP Message (HTTP transport) HTTP Server SOAP Server Application Server – Application server (Web service-enabled) • Provides implementation of services and exposes it through WSDL/SOAP (Wrapping) • Implementation in Java, as EJB, as .NET(C#), etc. – SOAP server • Implements the SOAP protocol – HTTP server • Standard Web server – SOAP client • Implements the SOAP protocol on the client site TU/e technische universiteit eindhoven Web Service Classification ebXML – Communication and transport services • W3C Recommendations • SOAP, XML, Namespace – Technical services • W3C Recommendations • Services for message publication and exchange • Examples: WSDL, UDDI Enterprise Web Service Rosetta Biztalk Net Business Service SOAP TCP-IP-HTTP Technical Service WSDL UDDI BPML – Business services • Specific for an activity area • Defined and used by a group of companies working on the same activity area • Examples: ebXML, RosettaNet, BizTalk TU/e technische universiteit eindhoven Web Service Examples – Google • http://www.google.com/apis/ • Free but limited access TU/e technische universiteit eindhoven Web Service Examples – Amazon • http://associates.amazon.com/exec/panama/associates/join/developer/resources.html • Free but limited access • Search and management of Amazon products – Access products – Add products – Customize presentations TU/e technische universiteit eindhoven Web Service Examples – SellerEngine (http://www.sellerengine.com/) Uses Amazon Web Services Brings Amazon data to a desktop in real time (create new listings and upload them to Amazon in seconds using a easy to use interface) TU/e technische universiteit eindhoven TU/e technische universiteit eindhoven WS Protocols TU/e technische universiteit eindhoven Protocol: SOAP • Simple Object Access Protocol – Communication protocol via Internet between applications: data exchange and data structures – Format for sending messages • Platform and language independent • Based on XML Directory UDDI – Messages with two types of elements • Pre-defined tags • Application-specific tags WSDL Service Description Publication Discovery Client Client Application SOAP Interaction Service Description Service Provider Web Service TU/e technische universiteit eindhoven Protocol: SOAP • SOAP: Communication and Transport Services – SOAP document – – – – Envelop: message type and destination Data type: representation of data types Conventions for the RPC and for the result or error sending Rules for the SOAP transport on HTTP Transport SOAP HTTP TCP/IP POST: … Host: … Content-type: … Content-length: … <Envelope> <Body> </Body> </Envelope> Message depends on Web services TU/e technische universiteit eindhoven Protocol: WSDL • Web Services Description Language – XML-based language for describing Web services and how to access them • Specification of the location of the service • Specification of the operations (or methods) the service exposes Directory UDDI WSDL Service Description Publication Discovery Client Client Application SOAP Interaction Service Description Service Provider Web Service TU/e technische universiteit eindhoven Protocol: WSDL • Description of Web Services in XML format – Abstract description of operations and their parameters (messages) – Concrete description • Binding to a concrete network protocol (SOAP) • Specification of endpoints for accessing the service Abstract Types: structure of messages Messages: used by operations Binding: concrete protocol Concrete Service: collection of related ports Ports: Binding and a network address TU/e technische universiteit eindhoven Protocol: UDDI • Universal Description, Discovery and Integration – Directory service where businesses can register and search for Web services (described in WSDL) – Communication via SOAP Directory UDDI WSDL Service Description Publication Discovery Client Client Application SOAP Interaction Service Description Service Provider Web Service TU/e technische universiteit eindhoven Protocol: UDDI • UDDI Support – UDDI is a cross-industry effort driven by all major platform and software providers like Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, and Sun, as well as a large community of marketplace operators, and e-business leaders – Over 220 companies are members of the UDDI community • • • • Microsoft (uddi.microsoft.com) IBM (ibm.com/services/uddi) HP (uddi.hp.com) SAP (udditest.sap.com) TU/e technische universiteit eindhoven Example: Flight Reservation • If the industry published an UDDI standard for flight rate checking and reservation, airlines could register their services into an UDDI directory • Travel agencies could then search the UDDI directory to find the airline's reservation interface • When the interface is found, the travel agency can communicate with the service immediately because it uses a well-defined reservation interface TU/e technische universiteit eindhoven Microsoft’s UDDI uddi.microsoft.com Search of a Web Service: Xmethods Search Results TU/e technische universiteit eindhoven Microsoft’s UDDI Description of the selected service Returns book price from Barnes and Noble online store, given ISBN TU/e technische universiteit eindhoven Microsoft’s UDDI WSDL Description of the Web service TU/e technische universiteit eindhoven Service Development Two main technologies – Java (EJB server) – .NET