XML web-services and

fizzlargeΑσφάλεια

3 Νοε 2013 (πριν από 3 χρόνια και 5 μήνες)

67 εμφανίσεις

XML web
-
services and
B2B integration

Frank Goethals

PhD
-
student K.U.Leuven
-

SAP leerstoel

24/9/2002 at SAP Belgium (Brussel)

Frank.goethals@econ.kuleuven.ac.be

SAP


leerstoel

-

‘Extended Enterprise Infrastructures’

-

5 years (till 2006)

-

Research (adaptive Supply Chains) at


F.E.T.E.W.


K.U.Leuven

-

SAP/LIRIS Research Symposium


-

Prof. J. Vandenbulcke

http://www.econ.kuleuven.ac.be/leerstoel/SAP/
FramesPage.htm


Agenda

Intro: SCM

EAI and B2Bi

XML

Web Services

Conclusion

SCM


Q: Why Flexible Integration?

Decades of efforts to optimize processes

ERP: efficient usage of resources


internally


But… organizations do not operate isolated
from the outer world

SCM: realise efficient and effective processes






SCM

COMPANY XYZ

Distribution
channel



End customer

Supplier

Supplier

Supplier

Supplier

Supplier

Supplier

The Industry Supply Chain from
company XYZs point of view

Competing
companies

Substitute
products or
services

Threat of new
entrants

SCM:
Towards Competing Supply Chains


Remark

-

Companies are member of diverse Supply Chains

-

Close partners vs Temporal contacts (Dignum)



Low
Supply Risk

High

Impact on
financial
result

High

Low

Partners

Temporal
contacts

Agenda

Intro: SCM

EAI and B2Bi

XML

Web Services

Conclusion

In the early days…







Production
-
planning

Sales

Purchase Dpt

Finance

HR………

EAI(1)
Enterprise Application Integration




ERP + SCM + CRM + BI +…








ERP

CRM

BI

SCM

EAI(2)
many
-
to
-
many middleware








ERP

CRM

BI

SCM

Componentization

Problem:
ERP systems are difficult to change and to extend

Solution:
componentization


= “
breaking up large, monolithic ERP systems into


individual modules or components that would work


together.





quickly fix and add functionality


easier and safer customization of the system


easier for customers to (selectively) upgrade the software

Including more open interfaces and improved integration
capabilities (best
-
of
-
breed approach).



After

EAI: B2Bi





B2Bi

Through EDI (Electronic Data Interchange):



LOC+147+0090305::5’

MEA+WT++KGM::22500’

LOC+9+NLRTM’

LOC+11+SGSIN’

RFF+BM+933’

EQD+CN+ABCU2234536’

NAD+CA+ABC:172:20’


B2Bi

Through EDI (Electronic Data Interchange):



Saves time and money (RJR Nabisco estimates that


processing a paper purchase order costs the company $70.


Processing an EDI purchase order reduces the cost to a


mere 93 cents).



Offers possibilities for new business practices, e.g. the


usage of Vendor Stock Replenishment (VSR).



Mann [113] remarks that there are certain B2B processes


in which the human element can add errors and delays but


cannot add very much value.

B2Bi

Through EDI (Electronic Data Interchange):

BUT


-

Different EDI standards exist.

-

EDI is complex, difficult to implement, and expensive.

-

Is traditionally batch oriented (not real
-
time).

-

Message is not understandable for humans.




Agenda

Intro: SCM

EAI and B2Bi

XML

Web Services

Conclusion

Web Services:
At the basis:


<sales>


<client name =“Alberto”>


<productnr> 317 </productnr >


<quantity> 20 </quantity>


</client>


<client name = “Fernando”>


<productnr > 102 </productnr >


<quantity> 30 </quantity>


</client>

</sales>

attributes

elements

XML

Web Services:
At the basis:

XML

XML
-
code in Notepad: example
SalesXML1.txt


Sales

Name

Productnr

Quantity

Alberto

317

20

Fernando

102

30

Name

Productnr

Quantity

Client

Client

attribute

element

Legend:

Web Services:
At the basis:

XML

But in another company: example
SalesXML2.txt


Sales

Name

Productnr

Quantity

Alberto

317

20

Fernando

102

30

Name

Productnr

Quantity

Client

Client

attribute

element

Legend:

Web Services:
At the basis:

XML

Still another company…

Verkopen

Naam

PrGetalleke

Q

Alberto

317

20

Fernando

102

30

Naam

PrGetalleke

Q

Klant

Klant

attribute

element

Legend:

XSL

XSL (Extensible Stylesheet Language) for

-

reordering/restructuring information, and

-

calculating/generating new information.



ndbad81:


XSLT en CSS kunnen beide
gebruikt worden met XML

Xslt verschilt van CSS in dat
CSS enkel aan de client
-
side
kan gedraaid worden (terwijl
XSLT doorgaans aan de
server
-
side gedraaid wordt,
doch ook aaan client side
mogelijk) en dat bij CSS de
structuur van van het output
doc nauw die van het input
doc volgt. Dit is niet het geval
bij XSL: je kan bijvoorbeeld
ook totalen berekenen…


XSL omvat XSLT en
XSLFO(Formatting Objects)
XSLT zorgt voor transformatie
van de boom, terwijl XMLFO
zorgt voor presentatie van de
boom

XML
1

XSL


XML
2

HTTP


XML
2

XML

XSL


HTML

HTTP


HTML

XSL: example:
from XML to HTML


Original XML
-
document


XSL
-
document


New HTML
-
page



Other HTML
-
page


XSDL:
XML Schema Definition Language


For defining the structure an XML document should
have (to be valid), including data type declarations.


<xsd:complexType name="BankDetail">


<xsd:sequence>


<xsd:element name="BankCountry">


<xsd:complexType>


<xsd:sequence>


<xsd:element ref="Country"/>


</xsd:sequence>


</xsd:complexType>


</xsd:element>


<xsd:element name="SWIFTCode" type="xsd:string" minOccurs="0"/>


<xsd:element name="BankAccountNumber" type="xsd:string"/>

Example: BankDetails.xsd
-

xCBL

XSDL & xCBL

xCBL


XML Common Business Library

… is a set of XML building blocks and a document
framework that allows the creation of robust, reusable,
XML documents to facilitate global trading.

Serves as basis for UBL Universal Business Language



saves developers and integrators time and effort,



ensures recipients will be able to understand all


documents received.

ndbad81:

Beheren zichzelf,
beschrijven zz,
modulair

XSDL
-
doc

BaseShippingDetail.xsd

Conclusion on XML




XML: give data a structure

XSL: convert one XML
-
document into another

XSDL: put restrictions on structure and data types

Agenda

Intro: SCM

EAI and B2Bi

XML

Web Services

Conclusion

Web Services

Why explain this to
you
?



The SAP Web Application Server

provides the reliability,
scalability, security, and high availability SAP customers
require. In addition, it

supports open technical standards
such as UDDI, WSDL, and SOAP
, and within mySAP
Technology, open business standards such as RosettaNet,
ebXML, and UBL.”





Web Services

What? [IBM]



Web services are self
-
contained, self
-
describing, modular
applications that can be published, located, and invoked
across the Web.




ndbad81:

Beheren zichzelf,
beschrijven zz,
modulair

Web Services:

Who can deliver nails


within 24 hours?

What is needed?



ndbad81:


Web Services:
Basic standards: SOAP,


WSDL and UDDI

UDDI

(Universal Description, Discovery, and Integration)




ndbad81:


WS Provider

WS Provider

WS Requestor

WS Broker



UDDI business Registry

WS Requestor

WS Broker



UDDI business Registry

1. Register service and

company

1. Register service and

company

2. Get service and

company information

2. Get service and

company information

3. Look up

technical details

3. Look up

technical details

4. WS binding

4. WS binding

http://uddi.sap.com/

http://uddi.microsoft.com/default.aspx


Web Services:
Basic standards: SOAP,


WSDL and UDDI

UDDI

(Universal Description, Discovery, and Integration)




ndbad81:


http://uddi.microsoft.com/default.aspx



Tools:
Search

Search by services: ‘stockquote’

Left pane gives results
→ Choose ‘4. stockquote web service’


Right pane now gives Details, Bindings and Categories

Pick Bindings and copy the found URL in a web browser



The technical information can be found on this page

Web Services:
Basic standards: SOAP,


WSDL and UDDI

SOAP

… over HTTP

SOAP is a wire protocol similar to the IIOP for CORBA,
ORPC for DCOM, or JRMP for Java RMI. However, SOAP
is vendor
-
neutral technology that appeals to all vendors.



Realises interoperability





Web Services:
SOAP
-
request

SOAP
(Simple Object Access Protocol)


POST /yangy/webservice/stock/stockquote.asmx HTTP/1.1

Host: dcm.cl.uh.edu

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length:
length


SOAPAction: "http://tempuri.org/GetQuote"

<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope">


<soap:Body>


<GetQuote xmlns="http://tempuri.org/">



<symbol>
string
</symbol>


</GetQuote>


</soap:Body>

</soap:Envelope>


ndbad81:

In this example, a
GetLastTradePrice
SOAP request is
sent to a
StockQuote service.
The request takes a
string parameter,
ticker symbol, and
returns a float in the
SOAP response.
The SOAP Envelope
element is the top
element of the XML
document
representing the
SOAP message.
XML namespaces
are used to
disambiguate SOAP
identifiers from
application specific
identifiers.


Web Services:
SOAP
-
response

SOAP
(Simple Object Access Protocol)


HTTP/1.1 200 OK

Content
-
Type: text/xml; charset=utf
-
8

Content
-
Length:
length



<?xml version="1.0" encoding="utf
-
8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


<soap:Body>


<GetQuoteResponse xmlns="http://tempuri.org/">



<GetQuoteResult>
string
</GetQuoteResult>


</GetQuoteResponse>


</soap:Body>

</soap:Envelope>

ndbad81:

In this example, a
GetLastTradePrice
SOAP request is
sent to a
StockQuote service.
The request takes a
string parameter,
ticker symbol, and
returns a float in the
SOAP response.
The SOAP Envelope
element is the top
element of the XML
document
representing the
SOAP message.
XML namespaces
are used to
disambiguate SOAP
identifiers from
application specific
identifiers.


Web Services:
WSDL

WSDL

(Web Service Description Language)


<?xml version="1.0" encoding="utf
-
8" ?>

….

<message name="
GetQuoteSoapIn
">




<part name="
parameters
" element="
s0:GetQuote
" />



</message>

<message name="
GetQuoteSoapOut
">




<part name="
parameters
" element="
s0:GetQuoteResponse
" />



</message>



<portType name="
DailyStockSoap
">


<
operation name="
GetQuote
">




<input message="
s0:GetQuoteSoapIn
" />




<output message="
s0:GetQuoteSoapOut
" />




</operation>



</portType>

ndbad81:

In this example, a
GetLastTradePrice
SOAP request is
sent to a
StockQuote service.
The request takes a
string parameter,
ticker symbol, and
returns a float in the
SOAP response.
The SOAP Envelope
element is the top
element of the XML
document
representing the
SOAP message.
XML namespaces
are used to
disambiguate SOAP
identifiers from
application specific
identifiers.


WSDL

(Web Service Description Language)


<binding name="
DailyStockSoap
" type="
s0:DailyStockSoap
">




<soap:binding transport="
http://schemas.xmlsoap.org/soap/http
"


style="
document
" />


<operation name="
GetQuote
">




<soap:operation soapAction="
http://tempuri.org/GetQuote
" style="
document
" />

<input>



<soap:body use="
literal
" />



</input>

<output>



<soap:body use="
literal
" />



</output>




</operation>



</binding>



<service name="
DailyStock
">


<port name="
DailyStockSoap
" binding="
s0:DailyStockSoap
">


<soap:address


location="
http://dcm.cl.uh.edu/yangy/webservice/stock/stockquote.asmx
"/>




</port>

</service>

ndbad81:

In this example, a
GetLastTradePrice
SOAP request is
sent to a
StockQuote service.
The request takes a
string parameter,
ticker symbol, and
returns a float in the
SOAP response.
The SOAP Envelope
element is the top
element of the XML
document
representing the
SOAP message.
XML namespaces
are used to
disambiguate SOAP
identifiers from
application specific
identifiers.


Web Services Stack

ndbad81:

In this example, a
GetLastTradePrice
SOAP request is
sent to a
StockQuote service.
The request takes a
string parameter,
ticker symbol, and
returns a float in the
SOAP response.
The SOAP Envelope
element is the top
element of the XML
document
representing the
SOAP message.
XML namespaces
are used to
disambiguate SOAP
identifiers from
application specific
identifiers.


HTTP, FTP, IIOP

SOAP

WSDL

UDDI

Netwerk

XML gebaseerde messaging

Services beschrijven

Services zoeken en publiceren

HTTP, FTP, IIOP

SOAP

WSDL

UDDI

Netwerk

XML gebaseerde messaging

Services beschrijven

Services zoeken en publiceren

Service flow

WSFL, Xlang,…

Web Services:
New Possibilities

Build bigger services by combining small
services (BPML, BPEL4WS, WSCI, WSCL…)


Example: travelling

1

3

5

2

6

1

2

4

1

1

1

2

2

2

1

1

1

2

2

2

Agenda

Intro: SCM

EAI and B2Bi

XML

Web Services

Conclusion

Semantic web

Integration is more than a physical connection,
it also requires semantics

What do you mean with ‘number’?




… or with ‘clientcode’?



Semantic interoperability


Need for ontologies



Need for knowledge
-
representation

Conclusion

A semantic web of services

Questions