1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo
2 Presentation Outline Introduction on Web Services Related Work Web Services SOAP WSDL UDDI registry Web Services Oriented Data Processing and Integration Introduction to WSIPL- Web Service Integration and Processing Language Application Examples
3 What is a Web Service? public class Exchange{ public float getRate(String country1, String country2) { return ; } 1) Compile it to Exchange.class 2) A Web Server (e.g. Tomcat) + a SOAP server (e.g. Apache SOAP) 3) Put Exchange.class to a directory that the SOAP server know It is already a Web Service!
4 What is a Web Service? Too simple? What is the Web Service usage? It is simple! So simple that seems no big deal? Clients connect to the Exchange services can get back Identical to traditional Remote Procedure Call (RPC) in distributed computing Question? Why not use current Web Application? E.g. Clients connect to a Web Server with some HTML form page to feed in input data on the form and get back a HTML page with (the Web application can be a Java Servlet, CGI program or.ASP script) The WS paradigm is to let different Web Service`S’ to Integrate and Cooperate together
5 What is a Web Service? If more than one Exchange Web Services, e.g. one Exchange WS is for answering exchanging rate between US and HK dollar (e.g. provided by HK Bank), another WS is for answering exchange rate between US and Euro dollar 2 Web Services can integrate together to provide a new Web Service
6 The heart of Web Services-SOAP SOAP is the standard protocol for XML messaging and RPC communication on all platform, all languages. Stands for Simple Access Object Protocol Is actually ride on existing communication protocol, e.g. HTTP, SMTP because XML is also just a text message
7 What is SOAP? Is a communication protocol Is for communication between applications Is a format for sending messages Is designed to communicate via Internet Is platform independent (of course XML text) Is language independent Is based on XML Is simple and extensible Is a W3C standard
8 Life Before SOAP B4 SOAP, applications communicate using CORBA, they are RPC, application A call B methods and return something to A. Even its work, they are not for http (Internet). IIOP born for COBRA and RMI for Internet, but still need to fight with firewall, proxy, security and compatibility.
9 Clients invoke SOAP Java client need to import SOAP stuffs this time! E.g. Import org.apache.soap.*; Import org.apache.soap.rpc.*; public class client { url = “ ” ; call.seturl(url); OUTPUT=call.getRate( “ HK ”, “ US ” ); }
10 SOAP Message at a glance If capture the underlying SOAP message, can find format like this: SOAP body
11 Captured SOAP message
12 Web Services Description Language (WSDL) Describing the web services you provided Usage? Let clients know which operation you provided, how they bind with, what you have used as protocol via SOAP (http, ftp, smtp) If the operation of your web service fulfill predefined sets of roles (types), you can then compete with other similar service providers (e.g. you provide function with getRate() and transfer(), then you can be type of “ BANK ” )
13 WSDL WS code (server side java code) WSDL Client stub Client code Where do the WSDL files locate? As a file in the service site UDDI registry
14 UDDI-Universal distribution, discovery, and interoperability Similar concept to yellow page New services register to the UDDI registry By writing code (import UDDI library, uddi4j) Or simple done it on web Clients can search it By writing code again(uddi4j) Or by web Returning the WS information and the corresponding WSDL file or the URL to that WSDL file
15 Web Services Oriented Data Processing and Integration Business applications often require intensive human programming efforts on data processing and integration E.g. A company may want to enquire the total inventory level of a particular stock in different regions, while each regional office maintain its own inventory database
16 Before and After XML Before - Need low level programming: Network programming Database query Not flexible (business requirement varies time to time) After Network programming is easier (handle XML text only) Simple handle of data transform (e.g. 2 databases has different field name)
17 After XML… However, flexible problem is persist Very tedious to write a new application for different purpose with minor changes Introduce new efforts on handling XML parsing, transforming (e.g. XML HTML)
18 Our approach A novel approach for data integration and processing WSIPL (stands for Web Services Integrating and Processing Language) Key Requirements Web Service Orientation Coordination Data Processing and Integration
19 Web Service Orientation All data sources and processors are exposed as Web Services Reusable Ready for incorporate and coordinate under standard For legacy (existing) operations, add a Web Service Interface (by wrapper)
20 Coordination WSIPL provides constructs: W3C standard compliance Execution IF-THEN-ELSE * FOR-EACH * SWITCH-CASE * EXCEPTION * same as XSLT and XPath, thus can push all efforts to a XSLT processor Parallelization If no dependency between web services, executes in parallel to increase efficiency
21 Data Processing and Integration Validation Validate with XSchema Transformation E.g XSLT Handling data field problem Composition E.g. summary of inventory data
22 A WSIPL example
23 WSIPL system reference architecture
24 End