420 likes | 521 Views
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)
E N D
XML web-services and B2B integration Frank GoethalsPhD-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. 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 processes ERP: efficient usage of resources – internally But… organizations do not operate isolated from the outer world SCM: realise efficient and effective processes
Supplier Supplier Supplier Supplier Supplier Supplier Competing companies Distribution channel Threat of new entrants Substitute products or services End customer The Industry Supply Chain from company XYZs point of view SCM COMPANY XYZ
High Impact on financial result Temporal contacts Partners Low Low Supply Risk High SCM: Towards Competing Supply Chains Remark - Companies are member of diverse Supply Chains - Close partners vs Temporal contacts (Dignum)
Intro: SCM EAI and B2Bi XML Web Services Conclusion Agenda
Production-planning Sales Purchase Dpt Finance In the early days… HR………
ERP CRM BI SCM EAI(1) Enterprise Application Integration ERP + SCM + CRM + BI +…
ERP CRM BI SCM EAI(2) many-to-many middleware
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).
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):
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.
Intro: SCM EAI and B2Bi XML Web Services Conclusion Agenda
attributes elements XML 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>
Client Client Name Productnr Quantity Name Productnr Quantity Alberto 317 20 Fernando 102 30 attribute Legend: element Sales Web Services: At the basis:XML XML-code in Notepad: example SalesXML1.txt
Sales Client Client Name Productnr Quantity Name Productnr Quantity Alberto 317 20 Fernando 102 30 attribute Legend: element Web Services: At the basis:XML But in another company: example SalesXML2.txt
Verkopen Web Services: At the basis:XML Klant Klant Naam PrGetalleke Q Naam PrGetalleke Q Still another company… Alberto 317 20 Fernando 102 30 attribute Legend: element
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 XML1 XML HTTP XML2 HTTP XML2 HTML HTML XSL XSL XSL XSL (Extensible Stylesheet Language) for - reordering/restructuring information, and - calculating/generating new information.
Other HTML-page XSL: example: from XML to HTML Original XML-document XSL-document New HTML-page
XSDL: XML Schema Definition Language Example: BankDetails.xsd - xCBL 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"/>
ndbad81: Beheren zichzelf, beschrijven zz, modulair 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
Intro: SCM EAI and B2Bi XML Web Services Conclusion Agenda
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.”
ndbad81: Beheren zichzelf, beschrijven zz, modulair Web Services What? [IBM] “Web services are self-contained, self-describing, modular applications that can be published, located, and invoked across the Web.”
ndbad81: Web Services: Who can deliver nails within 24 hours? What is needed?
ndbad81: 4. WS binding 4. WS binding 3. Look up 3. Look up technical details technical details 2. Get service and 2. Get service and 1. Register service and 1. Register service and company information company information company company Web Services: Basic standards: SOAP, WSDL and UDDI WS Provider WS Provider WS Requestor WS Requestor UDDI(Universal Description, Discovery, and Integration) WS Broker WS Broker – – UDDI business Registry UDDI business Registry http://uddi.sap.com/http://uddi.microsoft.com/default.aspx
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 UDDI(Universal Description, Discovery, and Integration)
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
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-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. WSFL, Xlang,… Service flow UDDI UDDI Services zoeken en publiceren Services zoeken en publiceren WSDL WSDL Services beschrijven Services beschrijven SOAP SOAP XML gebaseerde messaging XML gebaseerde messaging HTTP, FTP, IIOP HTTP, FTP, IIOP Netwerk Netwerk Web Services Stack
Web Services: New Possibilities Build bigger services by combining small services (BPML, BPEL4WS, WSCI, WSCL…) Example: travelling 1 1 1 1 2 2 2 2 3 1 1 4 2 2 5 1 1 6 2 2
Intro: SCM EAI and B2Bi XML Web Services Conclusion Agenda
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