1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration...
-
Upload
doris-gibbs -
Category
Documents
-
view
213 -
download
0
Transcript of 1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration...
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 123.45;}
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 123.45 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 123.45 (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 courseXMLtext) 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 = “http://soapserver”; 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 Envelop>
<SOAP Header> SOAP body
</SOAP Envelop>
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<wsipl:script> <wsipl:source name=“USDollar”/> <wsipl:variable name=“USDollar” select=“/data/namevaluepair[@name=‘dollars’]”/> <wsipl:task name=“HKBank”> <wsipl:call url=“http://hkbank.com/opensevice” urn=“CurrencyServices”
operation=“Exchange” style=“RPC”> <wsipl:param name=“dollars” value=“$USdollars”/></wsipl:call> </wsipl:task>
<wsipl:task name=“EuroBank”> <wsipl:call url=“http://Eurobank.com/opensevice” urn=“CurrencyServices”
operation=“Exchange” style=“RPC”> <wsipl:param name=“dollars” value=“$USdollars”/></wsipl:call> </wsipl:task>
<wsipl:task name=“Integrate”> <wsipl:include name=“HKBank”/> <wsipl:include name=“EuroBank”/> </wsipl:task>
<wsipl:response name=“Integrate”/></wsipl:script>
23
WSIPL system reference architecture
WSIPL ScriptRepository
E-service
E-service
WSDL file
WSIPL System
Client
Client
Client
E-service
WSIPL Engine
SOAP Server
WSDL file
WSDL file
WSDL file