"Modern" XML applications XML in electronic data - - PowerPoint PPT Presentation

modern xml applications
SMART_READER_LITE
LIVE PREVIEW

"Modern" XML applications XML in electronic data - - PowerPoint PPT Presentation

"Modern" XML applications XML in electronic data interchange, application integration and databases Patryk Czarnik Institute of Informatics University of Warsaw XML and Modern Techniques of Content Management 2010/11 Patryk


slide-1
SLIDE 1

"Modern" XML applications

XML in electronic data interchange, application integration and databases Patryk Czarnik

Institute of Informatics University of Warsaw

XML and Modern Techniques of Content Management – 2010/11

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 1 / 50

slide-2
SLIDE 2

1

Electronic data interchange Introduction Pre-XML solutions XML for EDI

2

Application integration Idea Web Services

3

XML in security XML Signature XML Encryption

4

XML and databases XML support in relational databases XML databases

slide-3
SLIDE 3

1

Electronic data interchange Introduction Pre-XML solutions XML for EDI

2

Application integration Idea Web Services

3

XML in security XML Signature XML Encryption

4

XML and databases XML support in relational databases XML databases

slide-4
SLIDE 4

Electronic data interchange Introduction

Electronic data interchange (EDI) — motivation

How to interchange data between companies/institutions (B2B)?

paper electronic data interchange

Standard deployment levels

software developed according to standard from beginning interface added to legacy system

How to establish EDI protocol?

customer receives (or buys) a tool from provider smaller partner complies to bigger parter ad-hoc created conversion tools standard

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 4 / 50

slide-5
SLIDE 5

Electronic data interchange Introduction

Electronic data interchange (EDI) — motivation

How to interchange data between companies/institutions (B2B)?

paper electronic data interchange

Standard deployment levels

software developed according to standard from beginning interface added to legacy system

How to establish EDI protocol?

customer receives (or buys) a tool from provider smaller partner complies to bigger parter ad-hoc created conversion tools standard

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 4 / 50

slide-6
SLIDE 6

Electronic data interchange Introduction

Electronic data interchange (EDI) — motivation

How to interchange data between companies/institutions (B2B)?

paper electronic data interchange

Standard deployment levels

software developed according to standard from beginning interface added to legacy system

How to establish EDI protocol?

customer receives (or buys) a tool from provider smaller partner complies to bigger parter ad-hoc created conversion tools standard

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 4 / 50

slide-7
SLIDE 7

Electronic data interchange Pre-XML solutions

EDI standardisation prior to XML introduction

ANSI Accredited Standards Committee X12 sub-group

USA national standard used mainly in America

EDIFACT

international standard (UN/CEFACT and ISO) used mainly in Europe and Asia

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 5 / 50

slide-8
SLIDE 8

Electronic data interchange Pre-XML solutions

EDI standardisation prior to XML introduction

ANSI Accredited Standards Committee X12 sub-group

USA national standard used mainly in America

EDIFACT

international standard (UN/CEFACT and ISO) used mainly in Europe and Asia

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 5 / 50

slide-9
SLIDE 9

Electronic data interchange Pre-XML solutions

EDIFACT characteristic

Format

text hardly readable tree structure

Predefined dictionaries

193 message types 279 segments 186 elements

(version 08a, 2008)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 6 / 50

slide-10
SLIDE 10

Electronic data interchange Pre-XML solutions

EDIFACT characteristic

Format

text hardly readable tree structure

Predefined dictionaries

193 message types 279 segments 186 elements

(version 08a, 2008)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 6 / 50

slide-11
SLIDE 11

Electronic data interchange Pre-XML solutions

EDIFACT

EDIFACT message example

UNB+IATB:1+6XPPC+LHPPC+940101:0950+1’ UNH+1+PAORES:93:1:IA’ MSG+1:45’ IFT+3+XYZCOMPANY AVAILABILITY’ ERC+A7V:1:AMD’ IFT+3+NO MORE FLIGHTS’ ODI’ TVL+240493:1000::1220+FRA+JFK+DL+400+C’ PDI++C:3+Y::3+F::1’ APD+74C:0:::6++++++6X’ TVL+240493:1740::2030+JFK+MIA+DL+081+C’ PDI++C:4’ APD+EM2:0:1630::6+++++++DA’ UNT+13+1’ UNZ+1+1’

cite: Wikipedia Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 7 / 50

slide-12
SLIDE 12

Electronic data interchange Pre-XML solutions

EDIFACT structure

Wymiana (interchange) Wiadomość (message)

:690 +KGM:690+ MEA+WT+AAD+KGM:690+X5'

Segment Złożenie (composite) Element (data element) Grupa (segment group)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 8 / 50

slide-13
SLIDE 13

Electronic data interchange XML for EDI

XML EDI

Idea: use XML as data format for EDI Traditional EDI

Documents unreadable without specification Compact messages Centralised standard maintenance Changes in format requires software change Specialised tools needed

XML EDI

„Self-descriptioning” documents format Verbose messages “Pluggable”, flexible standards Well written software ready to format extensions XML-format layer handled by general XML libraries

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 9 / 50

slide-14
SLIDE 14

Electronic data interchange XML for EDI

XML EDI

Idea: use XML as data format for EDI Traditional EDI

Documents unreadable without specification Compact messages Centralised standard maintenance Changes in format requires software change Specialised tools needed

XML EDI

„Self-descriptioning” documents format Verbose messages “Pluggable”, flexible standards Well written software ready to format extensions XML-format layer handled by general XML libraries

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 9 / 50

slide-15
SLIDE 15

Electronic data interchange XML for EDI

XML EDI flexibility

Format flexibility

Structures: choosing, repeating, nesting, optionality Format extensions and mixing via namespaces

Applications

Data interchange between partners’ systems Web interface (easy transformation via XSLT) Web Services integration

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 10 / 50

slide-16
SLIDE 16

Electronic data interchange XML for EDI

XML EDI flexibility

Format flexibility

Structures: choosing, repeating, nesting, optionality Format extensions and mixing via namespaces

Applications

Data interchange between partners’ systems Web interface (easy transformation via XSLT) Web Services integration

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 10 / 50

slide-17
SLIDE 17

Electronic data interchange XML for EDI

XML EDI standardisation

Framework level

general rules for all kinds of data data of the same kind should be represented in the same way (not to define the same twice) example: Electronic Business XML (ebXML).

Industry standards

SWIFT — banking RosettaNet — trade and logistic Automotive Industry Action Group — motor industry (mainly American) Health Level Seven — health care Open Travel Alliance — (people) transport and tourist services . . .

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 11 / 50

slide-18
SLIDE 18

Electronic data interchange XML for EDI

XML EDI standardisation

Framework level

general rules for all kinds of data data of the same kind should be represented in the same way (not to define the same twice) example: Electronic Business XML (ebXML).

Industry standards

SWIFT — banking RosettaNet — trade and logistic Automotive Industry Action Group — motor industry (mainly American) Health Level Seven — health care Open Travel Alliance — (people) transport and tourist services . . .

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 11 / 50

slide-19
SLIDE 19

Electronic data interchange XML for EDI

ebXML

ebXML

set of specifications defining concepts and methodologies for conducting electronic business via Internet (2001) XML used as data format

Electronic Business XML Working Group

founded in 1999 more than hundred specialists OASIS and UN/CEFACT patronage

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 12 / 50

slide-20
SLIDE 20

Electronic data interchange XML for EDI

ebXML

ebXML

set of specifications defining concepts and methodologies for conducting electronic business via Internet (2001) XML used as data format

Electronic Business XML Working Group

founded in 1999 more than hundred specialists OASIS and UN/CEFACT patronage

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 12 / 50

slide-21
SLIDE 21

Electronic data interchange XML for EDI

ebXML standardisation

Meta-model:

zbiór podstawowych schematów, elementów XML oraz procesów biznesowych, sposób definiowania słowników danych, nie definiuje konkretnych, docelowych komunikatów – mog ˛ a one zale˙ ze´ c od konkretnego zastosowania.

Metainformacje:

informacje o wersjach, metadane odpowiadaj ˛ ace nagłówkom z istniej ˛ acych systemów EDI.

Ramy architektury technicznej:

sposoby implementacji repozytoriów, serwisów, itp., integracja z istniej ˛ acymi technologiami EDI.

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 13 / 50

slide-22
SLIDE 22

1

Electronic data interchange Introduction Pre-XML solutions XML for EDI

2

Application integration Idea Web Services

3

XML in security XML Signature XML Encryption

4

XML and databases XML support in relational databases XML databases

slide-23
SLIDE 23

Application integration Idea

XML for application integration

Goal — data interchange between applications

applications/modules/components with different internal formats XML as interface

Usage:

client/server communication distributed system nodes components integration configuration of application or components . . .

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 15 / 50

slide-24
SLIDE 24

Application integration Idea

XML for application integration

Goal — data interchange between applications

applications/modules/components with different internal formats XML as interface

Usage:

client/server communication distributed system nodes components integration configuration of application or components . . .

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 15 / 50

slide-25
SLIDE 25

Application integration Idea

Local and global applications

“Local” integration

within single project or related projects of single institution communication between components possibly in distributed architecture ad-hoc solutions for given problems possibility of using standard

“Global” integration

services available in Internet for any party different parts cooperation standardisation required most popular standard — Web Services

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 16 / 50

slide-26
SLIDE 26

Application integration Idea

Local and global applications

“Local” integration

within single project or related projects of single institution communication between components possibly in distributed architecture ad-hoc solutions for given problems possibility of using standard

“Global” integration

services available in Internet for any party different parts cooperation standardisation required most popular standard — Web Services

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 16 / 50

slide-27
SLIDE 27

Application integration Web Services

Web Services

Idea Web Service — a website for programs (instead of people) Practice

high-level network protocols (HTTP) services described (WSDL) structural messages (XML, SOAP) possibility of services registration and searching (UDDI)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 17 / 50

slide-28
SLIDE 28

Application integration Web Services

Web Services

Idea Web Service — a website for programs (instead of people) Practice

high-level network protocols (HTTP) services described (WSDL) structural messages (XML, SOAP) possibility of services registration and searching (UDDI)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 17 / 50

slide-29
SLIDE 29

Application integration Web Services

Web Services — typical applications

Providing data (free or paid):

timetables weather stock and currency notes

Services:

searching software updates

Business operation between partners

booking tickets or hotel rooms

  • rdering (and tracing order status)

electronic data interchange

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 18 / 50

slide-30
SLIDE 30

Application integration Web Services

Web Services standardisation

SOAP (initially “Simple Object Access Protocol”:

beginnings: 1998 v1.2: W3C Recommendation, June 2003

Web Services Description Language:

v1.1: W3C Note, 2001 v2.0: W3C Recommendation, June 2007

Universal Description Discovery and Integration:

OASIS project part of WS-I Basic Profile

WS-* standards:

various standards, usually not W3C: Web Services Interoperability — levels of WS compliance: WS-I Basic Profile, Simple Soap Binding Profile, . . . , WS-Eventing, WS-Addressing, WS-Routing, . . . — IBM documents

Business Process Execution Language (OASIS) — WS semantics description, programming using WS as building blocks

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 19 / 50

slide-31
SLIDE 31

Application integration Web Services

Web Services standardisation

SOAP (initially “Simple Object Access Protocol”:

beginnings: 1998 v1.2: W3C Recommendation, June 2003

Web Services Description Language:

v1.1: W3C Note, 2001 v2.0: W3C Recommendation, June 2007

Universal Description Discovery and Integration:

OASIS project part of WS-I Basic Profile

WS-* standards:

various standards, usually not W3C: Web Services Interoperability — levels of WS compliance: WS-I Basic Profile, Simple Soap Binding Profile, . . . , WS-Eventing, WS-Addressing, WS-Routing, . . . — IBM documents

Business Process Execution Language (OASIS) — WS semantics description, programming using WS as building blocks

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 19 / 50

slide-32
SLIDE 32

Application integration Web Services

Web Services standardisation

SOAP (initially “Simple Object Access Protocol”:

beginnings: 1998 v1.2: W3C Recommendation, June 2003

Web Services Description Language:

v1.1: W3C Note, 2001 v2.0: W3C Recommendation, June 2007

Universal Description Discovery and Integration:

OASIS project part of WS-I Basic Profile

WS-* standards:

various standards, usually not W3C: Web Services Interoperability — levels of WS compliance: WS-I Basic Profile, Simple Soap Binding Profile, . . . , WS-Eventing, WS-Addressing, WS-Routing, . . . — IBM documents

Business Process Execution Language (OASIS) — WS semantics description, programming using WS as building blocks

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 19 / 50

slide-33
SLIDE 33

Application integration Web Services

Web Services standardisation

SOAP (initially “Simple Object Access Protocol”:

beginnings: 1998 v1.2: W3C Recommendation, June 2003

Web Services Description Language:

v1.1: W3C Note, 2001 v2.0: W3C Recommendation, June 2007

Universal Description Discovery and Integration:

OASIS project part of WS-I Basic Profile

WS-* standards:

various standards, usually not W3C: Web Services Interoperability — levels of WS compliance: WS-I Basic Profile, Simple Soap Binding Profile, . . . , WS-Eventing, WS-Addressing, WS-Routing, . . . — IBM documents

Business Process Execution Language (OASIS) — WS semantics description, programming using WS as building blocks

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 19 / 50

slide-34
SLIDE 34

Application integration Web Services

Web Services standardisation

SOAP (initially “Simple Object Access Protocol”:

beginnings: 1998 v1.2: W3C Recommendation, June 2003

Web Services Description Language:

v1.1: W3C Note, 2001 v2.0: W3C Recommendation, June 2007

Universal Description Discovery and Integration:

OASIS project part of WS-I Basic Profile

WS-* standards:

various standards, usually not W3C: Web Services Interoperability — levels of WS compliance: WS-I Basic Profile, Simple Soap Binding Profile, . . . , WS-Eventing, WS-Addressing, WS-Routing, . . . — IBM documents

Business Process Execution Language (OASIS) — WS semantics description, programming using WS as building blocks

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 19 / 50

slide-35
SLIDE 35

Application integration Web Services

SOAP — communication protocol

Underlying transport protocol (HTTP or other) Message format (XML) Differences to RPC, CORBA, DCOM etc.:

data represented in extensible, structural format (XML) data types independent of platform (XML Schema) lower efficiency

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 20 / 50

slide-36
SLIDE 36

SOAP message — general form

slide-37
SLIDE 37

Application integration Web Services

SOAP message

XML document for a single message

namespace http://www.w3.org/2001/12/soap-envelope, main element: Envelope.

Main parts: header optional body required Restrictions:

no DTD (and external entity references) no processing instructions

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 22 / 50

slide-38
SLIDE 38

Application integration Web Services

SOAP message

XML document for a single message

namespace http://www.w3.org/2001/12/soap-envelope, main element: Envelope.

Main parts: header optional body required Restrictions:

no DTD (and external entity references) no processing instructions

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 22 / 50

slide-39
SLIDE 39

Application integration Web Services

SOAP message

XML document for a single message

namespace http://www.w3.org/2001/12/soap-envelope, main element: Envelope.

Main parts: header optional body required Restrictions:

no DTD (and external entity references) no processing instructions

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 22 / 50

slide-40
SLIDE 40

Application integration Web Services

SOAP header

actor — header receiver identifier (URI), optional mustUnderstand — must header be understood? (0/1) W3Schools example

<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> <m:Trans xmlns:m="http://www.w3schools.com/transaction/" soap:actor="http://www.w3schools.com/appml/" soap:mustUnderstand="1">234</m:Trans> </soap:Header> ... </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 23 / 50

slide-41
SLIDE 41

Application integration Web Services

SOAP header

actor — header receiver identifier (URI), optional mustUnderstand — must header be understood? (0/1) W3Schools example

<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> <m:Trans xmlns:m="http://www.w3schools.com/transaction/" soap:actor="http://www.w3schools.com/appml/" soap:mustUnderstand="1">234</m:Trans> </soap:Header> ... </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 23 / 50

slide-42
SLIDE 42

Application integration Web Services

SOAP header

actor — header receiver identifier (URI), optional mustUnderstand — must header be understood? (0/1) W3Schools example

<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> <m:Trans xmlns:m="http://www.w3schools.com/transaction/" soap:actor="http://www.w3schools.com/appml/" soap:mustUnderstand="1">234</m:Trans> </soap:Header> ... </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 23 / 50

slide-43
SLIDE 43

Application integration Web Services

SOAP body

remote procedure call parameters encodingStyle — data encoding style (URI) Request — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> <m:Currency>PLN</m:Currency> </m:GetPrice> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 24 / 50

slide-44
SLIDE 44

Application integration Web Services

SOAP body

remote procedure call parameters encodingStyle — data encoding style (URI) Request — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> <m:Currency>PLN</m:Currency> </m:GetPrice> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 24 / 50

slide-45
SLIDE 45

Application integration Web Services

SOAP body

remote procedure call parameters encodingStyle — data encoding style (URI) Request — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> <m:Currency>PLN</m:Currency> </m:GetPrice> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 24 / 50

slide-46
SLIDE 46

Application integration Web Services

SOAP body

remote procedure call parameters encodingStyle — data encoding style (URI) Request — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> <m:Currency>PLN</m:Currency> </m:GetPrice> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 24 / 50

slide-47
SLIDE 47

Application integration Web Services

SOAP body

procedure result

  • utput parameters

Response — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"> <m:Price>1.90</m:Price> <m:Currency>PLN</m:Currency> </m:GetPriceResponse> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 25 / 50

slide-48
SLIDE 48

Application integration Web Services

SOAP body

procedure result

  • utput parameters

Response — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"> <m:Price>1.90</m:Price> <m:Currency>PLN</m:Currency> </m:GetPriceResponse> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 25 / 50

slide-49
SLIDE 49

Application integration Web Services

SOAP body

procedure result

  • utput parameters

Response — altered W3Schools example

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"> <m:Price>1.90</m:Price> <m:Currency>PLN</m:Currency> </m:GetPriceResponse> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 25 / 50

slide-50
SLIDE 50

Application integration Web Services

SOAP — failure message

standard error code short text description additional data (XML) Response with failure message

<soap:Envelope xmlns:usos="urn:USOS" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <soap:Fault> <soap:faultcode>Receiver</soap:faultcode> <soap:faultstring>Data missing</soap:faultstring> <soap:faultdetail>Found no student identified with <usos:ind>123</usos:ind></soap:faultdetail> </soap:Fault> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 26 / 50

slide-51
SLIDE 51

Application integration Web Services

SOAP — failure message

standard error code short text description additional data (XML) Response with failure message

<soap:Envelope xmlns:usos="urn:USOS" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <soap:Fault> <soap:faultcode>Receiver</soap:faultcode> <soap:faultstring>Data missing</soap:faultstring> <soap:faultdetail>Found no student identified with <usos:ind>123</usos:ind></soap:faultdetail> </soap:Fault> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 26 / 50

slide-52
SLIDE 52

Application integration Web Services

SOAP — failure message

standard error code short text description additional data (XML) Response with failure message

<soap:Envelope xmlns:usos="urn:USOS" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <soap:Fault> <soap:faultcode>Receiver</soap:faultcode> <soap:faultstring>Data missing</soap:faultstring> <soap:faultdetail>Found no student identified with <usos:ind>123</usos:ind></soap:faultdetail> </soap:Fault> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 26 / 50

slide-53
SLIDE 53

Application integration Web Services

SOAP — failure message

standard error code short text description additional data (XML) Response with failure message

<soap:Envelope xmlns:usos="urn:USOS" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <soap:Fault> <soap:faultcode>Receiver</soap:faultcode> <soap:faultstring>Data missing</soap:faultstring> <soap:faultdetail>Found no student identified with <usos:ind>123</usos:ind></soap:faultdetail> </soap:Fault> </soap:Body> </soap:Envelope>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 26 / 50

slide-54
SLIDE 54

Application integration Web Services

WSDL — service description

XML document describing service(s)

namespace: http://schemas.xmlsoap.org/wsdl/ main element: definitions

Splitting into parts available WSDL document components types type definitions (XML Schema) message message type definitions portType set of operations, which have input and output messages serviceType consists of portType-s binding service type bound to concrete transport protocol service concrete service available somewhere

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 27 / 50

slide-55
SLIDE 55

Application integration Web Services

WSDL — service description

XML document describing service(s)

namespace: http://schemas.xmlsoap.org/wsdl/ main element: definitions

Splitting into parts available WSDL document components types type definitions (XML Schema) message message type definitions portType set of operations, which have input and output messages serviceType consists of portType-s binding service type bound to concrete transport protocol service concrete service available somewhere

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 27 / 50

slide-56
SLIDE 56

Application integration Web Services

WSDL — messages, operations, port types

W3Schools example

<message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 28 / 50

slide-57
SLIDE 57

Application integration Web Services

WSDL — SOAP binging

style rpc or document transport transport protocol (URI) soapAction SOAP action corresponding to WSDL operation W3Schools example

<binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 29 / 50

slide-58
SLIDE 58

Application integration Web Services

WSDL — SOAP binging

style rpc or document transport transport protocol (URI) soapAction SOAP action corresponding to WSDL operation W3Schools example

<binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 29 / 50

slide-59
SLIDE 59

Application integration Web Services

WSDL — SOAP binging

style rpc or document transport transport protocol (URI) soapAction SOAP action corresponding to WSDL operation W3Schools example

<binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 29 / 50

slide-60
SLIDE 60

Application integration Web Services

WSDL — SOAP binging

style rpc or document transport transport protocol (URI) soapAction SOAP action corresponding to WSDL operation W3Schools example

<binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 29 / 50

slide-61
SLIDE 61

Application integration Web Services

Service registration and discovery

Idea

service provider registers service user searches for service and finds it in registry

Universal Description Discovery and Integration (UDDI)

available as service (SOAP) business category-based directory (“yellow pages”) searching basing on service name, description (“white pages”) registration and updates for service providers

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 30 / 50

slide-62
SLIDE 62

Application integration Web Services

Service registration and discovery

Idea

service provider registers service user searches for service and finds it in registry

Universal Description Discovery and Integration (UDDI)

available as service (SOAP) business category-based directory (“yellow pages”) searching basing on service name, description (“white pages”) registration and updates for service providers

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 30 / 50

slide-63
SLIDE 63

Application integration Web Services

UDDI — issues

Main issue — who can register?

anybody — chaos and low reliability accepted partners — institution responsible for access policy needed, no such (widely accepted) institution exists

Reality

UDDI rarely used if ever — for “local” SOA-based solutions (intranets)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 31 / 50

slide-64
SLIDE 64

Application integration Web Services

UDDI — issues

Main issue — who can register?

anybody — chaos and low reliability accepted partners — institution responsible for access policy needed, no such (widely accepted) institution exists

Reality

UDDI rarely used if ever — for “local” SOA-based solutions (intranets)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 31 / 50

slide-65
SLIDE 65

Application integration Web Services

Service Oriented Architecture

Idea

services built basing on other services

even addition defined as a Web Service :)

software split into components and layers with WS interfaces between them precise specification required (interesting research field. . . )

Critique

modular, flexible, and scalable solutions by the cost of (sometimes) irrational inefficiency and complexity use reasonably

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 32 / 50

slide-66
SLIDE 66

Application integration Web Services

Service Oriented Architecture

Idea

services built basing on other services

even addition defined as a Web Service :)

software split into components and layers with WS interfaces between them precise specification required (interesting research field. . . )

Critique

modular, flexible, and scalable solutions by the cost of (sometimes) irrational inefficiency and complexity use reasonably

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 32 / 50

slide-67
SLIDE 67

1

Electronic data interchange Introduction Pre-XML solutions XML for EDI

2

Application integration Idea Web Services

3

XML in security XML Signature XML Encryption

4

XML and databases XML support in relational databases XML databases

slide-68
SLIDE 68

XML in security

XML in security

Main (cryptographic) security aspects confidence assured by encryption authentication assured by cryptographic signatures XML standards related to security

Signing — XML Signature Encrypting — XML Encryption

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 34 / 50

slide-69
SLIDE 69

XML in security

XML in security

Main (cryptographic) security aspects confidence assured by encryption authentication assured by cryptographic signatures XML standards related to security

Signing — XML Signature Encrypting — XML Encryption

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 34 / 50

slide-70
SLIDE 70

XML in security XML Signature

XML Signature

Element Signature in appropriate namespace

cryptographic signature additional information (algorithm etc.)

Signature added to XML documents

externally (detached signature) internally (enveloped signature) in container enveloping signed data (enveloping signature)

XML Signature capabilities

signing fragments of documents signing external resources (identified with URL) multiple signatures in single document

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 35 / 50

slide-71
SLIDE 71

XML in security XML Signature

XML Signature

Element Signature in appropriate namespace

cryptographic signature additional information (algorithm etc.)

Signature added to XML documents

externally (detached signature) internally (enveloped signature) in container enveloping signed data (enveloping signature)

XML Signature capabilities

signing fragments of documents signing external resources (identified with URL) multiple signatures in single document

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 35 / 50

slide-72
SLIDE 72

XML in security XML Signature

XML Signature

Element Signature in appropriate namespace

cryptographic signature additional information (algorithm etc.)

Signature added to XML documents

externally (detached signature) internally (enveloped signature) in container enveloping signed data (enveloping signature)

XML Signature capabilities

signing fragments of documents signing external resources (identified with URL) multiple signatures in single document

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 35 / 50

slide-73
SLIDE 73

XML Signature — example 1 (detached)

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm= "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <!- external signed data -> <Reference URI="http://example.org/sign-me.xml"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> </Reference> </SignedInfo> <!- encrypted hash from SignedInfo - signature

  • >

<SignatureValue>OsH9A1jTNL...</SignatureValue> <KeyInfo><KeyValue><DSAKeyValue> <P>imup6lm...</P><Q>xDve3j7...</Q><G>NlugAf...</G> <Y>W7dOmH/v...</Y> </DSAKeyValue></KeyValue></KeyInfo> </Signature>

Cite: Kazienko, P ., Co tam panie w XML-u?, Software 2.0, 6/2003

slide-74
SLIDE 74

XML Signature — example 2 (enveloped)

<?xml version="1.0" encoding="UTF-8"?> <Document> <Content> ... </Content> <ds:Signature> <ds:SignedInfo> <ds:Reference URI=""> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig #enveloped-signature"/> </ds:Transforms> </ds:Reference> </ds:SignedInfo> .... </ds:Signature> </Document>

slide-75
SLIDE 75

XML in security XML Encryption

XML Encryption

Goal: guarantee XML data confidence Encryption of whole documents or parts of them

<purchaseOrder> <Order> <Item>book</Item> <Id>123-958-74598</Id> <Quantity>12</Quantity> </Order> <Payment> <CardId>123654-8988889-9996874</CardId> <CardName>visa</CardName> <ValidDate>12-10-2004</ValidDate> </Payment> </purchaseOrder>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 38 / 50

slide-76
SLIDE 76

XML Encryption — example 1 (fragment encrypted)

<PurchaseOrder> <Order> <Item>book</Item> <Id>123-958-74598</Id> <Quantity>12</Quantity> </Order> <Payment> <CardId> <EncryptedData Type=’http://www.w3.org/2001/04/xmlenc#Content’ xmlns=’http://www.w3.org/2001/04/xmlenc#’> <CipherData> <CipherValue>A23B45C564587</CipherValue> </CipherData> </EncryptedData> </CardId> <CardName>visa</CardName> <ValidDate>12-10-2004</ValidDate> </Payment> </PurchaseOrder>

slide-77
SLIDE 77

XML Signature — example 2 (whole document encrypted)

<EncryptedData xmlns=’http://www.w3.org/2001/04/xmlenc#’ Type=’http://www.isi.edu/in-notes/iana/ assignments/media-types/text/xml’> <ds:KeyInfo xmlns:ds=’http://www.w3.org/2000/09/xmldsig#’> <ds:KeyName>John Smith</ds:KeyName> </ds:KeyInfo> <CipherData> <CipherValue>A23B45C56...56F47345</CipherValue> </CipherData> </EncryptedData>

slide-78
SLIDE 78

XML Signature — example 2 (whole document encrypted)

<EncryptedData xmlns=’http://www.w3.org/2001/04/xmlenc#’ Type=’http://www.isi.edu/in-notes/iana/ assignments/media-types/text/xml’> <ds:KeyInfo xmlns:ds=’http://www.w3.org/2000/09/xmldsig#’> <ds:KeyName>John Smith</ds:KeyName> </ds:KeyInfo> <CipherData> <CipherValue>A23B45C56...56F47345</CipherValue> </CipherData> </EncryptedData>

slide-79
SLIDE 79

1

Electronic data interchange Introduction Pre-XML solutions XML for EDI

2

Application integration Idea Web Services

3

XML in security XML Signature XML Encryption

4

XML and databases XML support in relational databases XML databases

slide-80
SLIDE 80

XML and databases

XML support in databases — categorisation

Classic (usually relational) database with XML support

logical structure — relations and references additional XML-related features used for application integration or storing XML data as part of larger data structures

XML database

logical structure — XML document tree XQuery (or XPath) as native query language natural XML-related features used for storing XML data (or structural data easily mapped to XML tree)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 42 / 50

slide-81
SLIDE 81

XML and databases

XML support in databases — categorisation

Classic (usually relational) database with XML support

logical structure — relations and references additional XML-related features used for application integration or storing XML data as part of larger data structures

XML database

logical structure — XML document tree XQuery (or XPath) as native query language natural XML-related features used for storing XML data (or structural data easily mapped to XML tree)

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 42 / 50

slide-82
SLIDE 82

XML and databases XML support in relational databases

XML support in relational databases

Possible functionalities

data import and export in XML format special treatment of XML data stored in fields

XML validation as part of integrity constraints checking XPath or XQuery for querying fields content

XSLT applied to query results

How to store XML data

whole document (fragment) stored in single field split into prima factors

each XML node in separate field tables structure reflects tree structure of XML

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 43 / 50

slide-83
SLIDE 83

XML and databases XML support in relational databases

Example — XML support in Oracle database

Since Oracle 8i (http://www.oracle.com/xml). XML parsers

for database programming (PL/SQL)

  • r middleware programming (Java, C++)

XML-SQL Utility

XML data import and export

XMLType data type

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 44 / 50

slide-84
SLIDE 84

XML and databases XML support in relational databases

XML-SQL Utility

getXML() function — XML data export

SELECT xmlgen.getXML(’select * from emp’) FROM dual; <rowset> <row id=”1”> <empno>10</empno> <name>Scott Tiger</name> <title>specialist</title> </row> ... </rowset>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 45 / 50

slide-85
SLIDE 85

XML and databases XML support in relational databases

XML support in database engines

Substantial support

DB2, IBM (since version 9 — pureXML) Oracle (since 8i) Microsoft SQL Server (od wersji 2000) Sybase ASE 12.5

Minimal support

MySQL (XPath queries over text fields containing XML) PostgreSQL???

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 46 / 50

slide-86
SLIDE 86

XML and databases XML support in relational databases

XML support in database engines

Substantial support

DB2, IBM (since version 9 — pureXML) Oracle (since 8i) Microsoft SQL Server (od wersji 2000) Sybase ASE 12.5

Minimal support

MySQL (XPath queries over text fields containing XML) PostgreSQL???

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 46 / 50

slide-87
SLIDE 87

XML and databases XML databases

“XML datbase”

Logical layer

XML document as basic data entity XML schema (or equivalent) as structure definition XQuery (or XPath) as “native” query language document collections

Physical layer

not necessarily files with XML documents

More than just XML files:

updates interface transactions and concurrent access security

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 47 / 50

slide-88
SLIDE 88

XML and databases XML databases

“XML datbase”

Logical layer

XML document as basic data entity XML schema (or equivalent) as structure definition XQuery (or XPath) as “native” query language document collections

Physical layer

not necessarily files with XML documents

More than just XML files:

updates interface transactions and concurrent access security

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 47 / 50

slide-89
SLIDE 89

XML and databases XML databases

“XML datbase”

Logical layer

XML document as basic data entity XML schema (or equivalent) as structure definition XQuery (or XPath) as “native” query language document collections

Physical layer

not necessarily files with XML documents

More than just XML files:

updates interface transactions and concurrent access security

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 47 / 50

slide-90
SLIDE 90

XML and databases XML databases

XML:DB

Initiative for XML database interfaces specification XML Database API (XAPI)

accessing XML databases from programs resource collections (resource = XML document) reading and writing documents via DOM or SAX pluggable “services”; specified: XPath, transactions, operations on collections last version: 2001

XML Update Language (XUpdate)

XML application for updating XML databases inserting, updating and removing nodes XPath used for node addressing last version: 2000

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 48 / 50

slide-91
SLIDE 91

XML and databases XML databases

XML:DB

Initiative for XML database interfaces specification XML Database API (XAPI)

accessing XML databases from programs resource collections (resource = XML document) reading and writing documents via DOM or SAX pluggable “services”; specified: XPath, transactions, operations on collections last version: 2001

XML Update Language (XUpdate)

XML application for updating XML databases inserting, updating and removing nodes XPath used for node addressing last version: 2000

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 48 / 50

slide-92
SLIDE 92

XML and databases XML databases

XUpdate — example

Example (from standard documentation)

<?xml version="1.0"?> <xupdate:modifications version="1.0" xmlns:xupdate="http://www.xmldb.org/xupdate"> <xupdate:insert-after select="/addresses/address[1]" > <xupdate:element name="address"> <xupdate:attribute name="id">2</xupdate:attribute> <fullname>Lars Martin</fullname> <born day=’2’ month=’12’ year=’1974’/> <town>Leizig</town> <country>Germany</country> </xupdate:element> </xupdate:insert-after> </xupdate:modifications>

Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 49 / 50

slide-93
SLIDE 93

XML and databases XML databases

XML databases — overview

product licence queries XML:DB API Apache XIndice

  • pen source

XPath yes BaseX

  • pen source

XPath, XQuery yes eXist

  • pen source

XPath, XQuery part Sedna

  • pen source

XPath, XQuery yes Tamino paid XQuery, XPath part Gemfire Enterprise paid XQuery, OQL yes

cite: Wikipedia and providers’ websites Patryk Czarnik 11 — EDI, WS, databases XML 2010/11 50 / 50