TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology...

88
TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben

Transcript of TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology...

Page 1: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Engineering &Web Information Systems

Technology

Geert-Jan Houben

Page 2: 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

Page 3: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Information Systems

Page 4: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Information System

• 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

Page 5: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Information System

• 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

Page 6: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Information System

• 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

Page 7: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 8: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Evolution in WIS Technology

Page 9: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Evolution in hypermedia

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

Page 10: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Evolution in Web Languages

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

Page 11: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

SemWeb “Layer Cake”

Page 12: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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”

Page 13: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

WIS Engineering

Page 14: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Device Dependency

HTML SMIL WML

Page 15: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

WIS Engineering Methodology

• 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

Page 16: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 17: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 18: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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)

Page 19: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Hera Architecture• Defines how the models are used for automatic

generation of hypermedia presentation

Semantic Layer

Application Layer

Presentation Layer

C M A M P M

Co n te n t CM I AM I Pre s. Brow se r

App. Conte xtData

Q u e ry/Co n te xtM an age r,

F o rm Pro ce sso r

Use r

C MVo ca b u la ry

(R D F S)

AMVo ca b u la ry

PMVo ca b u la ry

Page 20: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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.

Page 21: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Conceptual Model

• Defines the data content in terms of RDFS (concepts, attributes, properties)

T e ch n iq u e Artifa ct C re a to r

Pa in tin g Pa in te r

Str in g

Str in g Ima g e

Str in g In te g e r Str in g

Str in g

tn a me

d e scr ip tio n

e xe mp lifie s *

e xa mp lifie d _ b y

a n a me ye a r

cre a te s *

cre a te d _ b y

cn a me

b io g ra p h y

p ic tu re p a in ts *

p a in te d _ b y

Page 22: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 23: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Slices

T echnique P ainting

Main Main

Painter

Info

painted_by

Painting

exemplif ied_by

tname

Set

pic ture

desc ription

aname

y ear

O wner concep t

S lice

A ttribu tes

S ub-slices

Reference (link)

Page 24: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

AM ExampleT echnique

Main P ainte rs

Basket

Main

tname

desc ription

Pa in ting sF o rm

sN b n a me

b n a me

Pa in tingSet

exemplif ied_by

Q 1

initialize

Se le cte d Pa in tin g

aname

Set

S e lec tedP ainting

Main

pic ture

aname

Bu yF o rm

i q u a n tity

q ua n titya n a me

Pa in te r

painted_by

c name

Q 2

O rde r

Main

quantity

Se le cte d Pa in tin g

inc ludes

aname

B aske t

Main

c ontains

y ear

Order

Main

Set

Page 25: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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”

Se le cte d Pa in tin g

Pa in ting1 Pa in tingN...

ty pe ty pe

creates

Page 26: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 27: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

XML & XQuery

Page 28: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

HTML

HTML = Hypertext Language

Ref Name PriceX23 Camera 359.99 R2D2 Robot 19350.00Z25 PC 1299.99

Information System

Text + presentationWhere is the data ?

hard

The <b> X23 </b> new camera replaces the <b> X22 </b>. It comes equipped with a flash (worth by itself <i>53.99 $</i>) and provides great quality for only <i>359.99 $</i>.

Page 29: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

XML for Semistructured Data

Ref Name PriceX23 Camera 359.99 R2D2 Robot 19350.00Z25 PC 1299.99...

Information System

<product-table>< product reference=”X23"> <designation> camera </designation> <price unit=Dollars> 359.99 </price> <description> … </description></product>< product reference=”R2D2"> <designation> Robot </designation> <price unit=Dollars> 19350 </price> <description> … </description>...</product-table>

XML

Data + Structure: more flexible

easy

Page 30: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 31: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 32: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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>

Page 33: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 34: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

DTD: a grammar

Catalog Product*

Product Name Price? Cat

(Part Quantity)*

Part BasicPart + ComposedPart

BasicPart Name

ComposedPart Name (Part Quantity)*

Page 35: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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>

Page 36: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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>

Page 37: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 38: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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>

Page 39: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

//person/name[../know-how=“XML"]

$union$

//seminar[topic=“XML"]/participant/name

Page 40: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 41: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

XSLT

• XSL: XML Stylesheet Language – (XSLT: XSL Transformations)

• declarative language for transforming XML documents using an XSLT processor

Page 42: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 43: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

XQuery Path Expressions

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

Page 44: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

XQuery Element Constructor

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>

Page 45: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

XQuery FLWR Expression

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>

Page 46: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

RDF & OWL

Page 47: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 48: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 49: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Resource Description Framework

• 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

Page 50: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 51: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Basic RDF Model Example

• 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) Creator

Object (Literal) “Ora Lassila”

Page 52: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Basic RDF Model Example

• Diagram of the statement:

www.w3.org/Home/Lassila Ora LassilaCreator

Page 53: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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>

Page 54: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Structured Value Example

• “The employee with ID 85740, Ora Lassila, with Email [email protected], is the creator of the resource www.w3.org/Home/Lassila”

www.w3.org/staffid/85740

www.w3.org/Home/Lassila

Ora Lassila [email protected]

Creator

Name Email

In XML it is:<rdf:RDF>

<rdf:Description about=“www.w3.org/Home/Lassila”>

<s:Creator>

<rdf:Description about=“www.w3.org/staffid/85740”>

<v:Name>Ora Lassila</v:Name>

<v:Email>[email protected]</v:Email>

</rdf:Description>

</s:Creator>

<rdf:Description>

</rdf:RDF>

Page 55: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 56: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

RDF Query Language

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

Page 57: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 58: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 59: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 60: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 61: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Services

Page 62: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 63: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Principles

• XML Message Exchange – Message Transport

• XML

• Namespaces (URI)

• HTTP

– Message Nature• Request

• Result of a request

• Errors

Web Service<B>

ApplicationClient

Web Service<C>

Web Service<D>

XML

Page 64: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

• Design Principles – Wrapping services (applications)– Web-based protocols

• 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

ApplicationClient

HTTP-SOAP

Web Service<D>

XML

Page 65: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

• Design Principles– Modularity

• Service components are useful in themselves, reusable, composable

– Availability• 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

RepositoryApplicationClient

HTTP-SOAP

Web Service

XML

Application

Page 66: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 67: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Directory

ClientServiceProvider

ServiceDescription

ClientApplication

WebService

ServiceDescription

Discovery

Publication

Interaction

Main Components/Actors

Page 68: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

• 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

Publication and Discovery: UDDI

Service Description: WSDL

Messaging: SOAP

Transport: HTTP, SMTP, FTP

Page 69: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Directory

ClientServiceProvider

ServiceDescription

ClientApplication

WebService

ServiceDescription

Discovery

Publication

Interaction

UDDIWSDL

SOAP

Publication and Discovery: UDDI

Service Description: WSDL

Messaging: SOAP

Transport: HTTP, SMTP, FTP

Page 70: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Basic Usage Scenario

(manual) Webservice lookup

Client

Write clientapplication

Run clientapplication

Directory (UDDI)

Publish Web service

1 register WSDL file (manually)

Web ServiceProvider

2 http get

3 WSDL file

4 SOAP request

5 SOAP response

Run Server

Page 71: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Service Implementation

– 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

HTTPServer

Web Service Provider

SOAPServer

ApplicationServer

Requestor(SOAP client)

SOAP Message(HTTP transport)

Page 72: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Service Classification

– Communication and transport services• W3C Recommendations• SOAP, XML, Namespace

– Technical services• W3C Recommendations• Services for message

publication and exchange• Examples: WSDL, UDDI

– 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

EnterpriseWeb Service

Technical Service

WSDL UDDI BPML

Business Service

ebXMLRosetta

NetBiztalk

SOAP TCP-IP-HTTP

Page 73: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Web Service Examples

– Google• http://www.google.com/apis/

• Free but limited access

Page 74: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 75: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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)

Page 76: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Page 77: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

WS Protocols

Page 78: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

– Messages with two types of elements• Pre-defined tags

• Application-specific tags

Directory

ClientServiceProvider

ServiceDescription

ClientApplication

WebService

ServiceDescription

Discovery

Publication

Interaction

UDDIWSDL

SOAP

Page 79: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

SOAPHTTP

TCP/IP

POST: …Host: …Content-type: …Content-length: …

<Envelope><Body>

</Body></Envelope>

Message depends on Web services

Page 80: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

ClientServiceProvider

ServiceDescription

ClientApplication

WebService

ServiceDescription

Discovery

Publication

Interaction

UDDIWSDL

SOAP

Page 81: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Types: structure of messages

Messages: used by operations

Binding: concrete protocol

Service: collection of related ports

Ports: Binding and a network address

Concrete

Abstract

Page 82: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

ClientServiceProvider

ServiceDescription

ClientApplication

WebService

ServiceDescription

Discovery

Publication

Interaction

UDDIWSDL

SOAP

Page 83: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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)

Page 84: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

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

Page 85: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Microsoft’s UDDI

uddi.microsoft.com

Search of a Web Service: Xmethods

Search Results

Page 86: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Microsoft’s UDDI

Description of the selected service

Returns book price from Barnes and Noble

online store, given ISBN

Page 87: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Microsoft’s UDDI

WSDL Description

of the Web service

Page 88: TU/e technische universiteit eindhoven Web Engineering & Web Information Systems Technology Geert-Jan Houben.

TU/e technische universiteit eindhoven

Service Development

Two main technologies– Java (EJB server)– .NET