XML web-services and B2B integration Frank Goethals PhD-student K.U.Leuven - SAP leerstoel 24/9/2002 at SAP Belgium (Brussel) [email protected]
Apr 01, 2015
XML web-services and B2B integration
Frank GoethalsPhD-student K.U.Leuven - SAP leerstoel
24/9/2002 at SAP Belgium (Brussel)
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. Vandenbulckehttp://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 processesERP: 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
PartnersTemporal 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
elementLegend:
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
elementLegend:
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
elementLegend:
XSLXSL (Extensible Stylesheet Language) for
- reordering/restructuring information, and
- calculating/generating new information.
XML1
XSL XML2
HTTP XML2
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.
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 ServicesWhy 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.”
Web Services: Who can deliver nails within 24 hours?What is needed?
Web Services: Basic standards: SOAP, WSDL and UDDIUDDI (Universal Description, Discovery, and Integration)
WS ProviderWS ProviderWS Requestor
WS Broker –UDDI business Registry
WS Requestor
WS Broker –UDDI business Registry
1. Register service and company1. Register service and company
2. Get service and company information2. Get service and company information
3. Look up technical details3. Look up technical details
4. WS binding4. WS binding
http://uddi.sap.com/ http://uddi.microsoft.com/default.aspx
Web Services: Basic standards: SOAP, WSDL and UDDIUDDI (Universal Description, Discovery, and Integration)
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 HTTPSOAP 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>
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>
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>
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>
Web Services Stack
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 flowWSFL, 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