+ All Categories
Home > Documents > 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...

Date post: 30-Dec-2015
Category:
Upload: doris-gibbs
View: 213 times
Download: 0 times
Share this document with a friend
Popular Tags:
24
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo
Transcript

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>

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<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

24

End


Recommended