web-based software development (ice0534) webservices mediator for location sensitive services design...

Post on 23-Dec-2015

216 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Web-based Software Development (ICE0534)

WebServices Mediator

for Location Sensitive Services Design & Implementation

August 11, 2005

Term Project Presentation Advisor: Prof. In-Young Ko

Project Member: Woo-hyuk JangSung-joon ParkJong-ha JungJong-uk LeeEnkhbold N.

ICU ConfidentialThe information contained in this document is subject to change without notice.ICU makes no warranties either express or implied, in this document. The entire risk of the use or the results of the use of this document remains with the user. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of ICU.Copyright © 2005 ICU . All right reserved.

Contents - Introduction

- Motivation Scenario

- WebServices Mediator

- System Architecture

- Implementation

- Demonstration

- Validation

- Conclusion

- References

Copyright © 2005 ICU. All rights reserved | Confidential

3

Introduction

Web services & Service Oriented Architecture

‘The Deluge of the Services’

□ Difficult to find and use precise services

The service Integration

□ Service portal, or Service broker

4

Motivation Scenario: Call-Taxi Service Mr. ICU have to attend Job-Interview.

He decided to use call-taxi because he got up late.

While he waits the called taxi, another taxi quickly passed by

him !

Company for job interview

Call Taxi Company

Another Taxi

Mr.ICU

5

WebServices Mediator: Location sensitive services

Definition of location sensitive services

□ A service whose primary value is usually came from the location information.

□ A service which can earn more value if it utilizes the location information.

We extended the origin meaning.

□ Taxi, Parcel services etc

We need integrated mediator that can play a service broker roll !!

Location Sensitive Service Mediator

SOAP

SOAP

SOAP

SOAP

FAÇADE

Web service Access Object

Web service Access Object

Web service Access Object

Web service Access Object

WebService Provider

WebService Provider

WebService Provider

WebService Provider

Taxi Service Client

Taxi Service Client

SOAP

SOAP

WebServiceWrapper

WebServiceWrapper

WebServiceWrapper

WebServiceWrapper

6

Location SensitiveWebServices Suppliers

System ArchitectureW

eb

Serv

ice

s

Clien

t Tie

r

Web

Serv

ices

Bro

ker

Tie

rW

eb

Serv

ices

Pro

vid

er

Tie

r

J2EE S

erv

er

RequestHandlingModule

MediationLogic

Controller

BusinessLogic

Controller

Runtime ClientAny Time, Any Where, Any Device

7

System Architecture

Response data to clients

Collect data from supplier WebServices

A Passenger access to just the WebServices broker

Calculate the closest position and duration between passenger and vehicle

Information ProviderTaxi List / Position

8

System Architecture

Expect to be advanced

□ Accessibility

□ Scalability

□ Reusability

□ Flexibility

□ Stability

9

System Architecture: Class diagram of the service provider

TaxiCompanyIF

getClosestTaxis(loc : Location) : Taxi[]callTaxi(taxi : Taxi) : boolean

Thread(from lang)

Composer

numOfResults : inttimeBound : int

getAvailableTaxis(loc : Location) : Taxi[]getAvailableTaxis(x : int, y : int) : Taxi[]

Location

x : inty : int

estimateMinutes(anotherLoc : Location) : int

Requestor

availability : boolean

request()isAvailable() : booleanRequestor(_taxi : Taxi, _loc : Location)

0..*0..*

TaxiList

numOfTaxis : int

get(index : int) : TaxigetTaxi(id : int) : TaxigetIterator() : Iterator

<<singleton>>

Taxi

unitId : intdriver : StringestimatedMinute : int

cloneTaxi() : Taxi

0..*0..*

TaxiCompanyImpl

getClosestTaxis(loc : Location) : Taxi[]callTaxi(taxi : Taxi) : boolean

0..*0..*

TaxiCaller

calledTaxis : Vector

callTaxi(clientLoc : Location, taxiId : int) : boolean

<<singleton>>

10

System Architecture: Sequence diagram of the service provider

11

System Architecture: Class diagram of the service broker

12

System Architecture: WSDL

13

WebServices BrokerWebServices BrokerLocation Sensitive ServiceLocation Sensitive Service

Passenger ALocated in Seoul/Sinchon

Any Time, Any Where, Any Device - Internet Access

Taxi Company BTaxi Company BTaxi Company ATaxi Company A

Passenger BLocated in Seoul on the street

Passenger CLocated in Daejun/ICU lab

Passenger DLocated in Daejun station

Location Info

Location InfoSOAPSOAP

Location Info

Location InfoSOAPSOAP

Taxi List &

Taxi List & location Info

location InfoSOAPSOAP

Taxi List &

Taxi List & location Info

location InfoSOAPSOAP

Taxi InfoTaxi InfoSOAP

SOAP

Which taxi will be

Which taxi will be

arrived at the first?

arrived at the first?

14

Implementation

Taxi Service Provider

□ Business methods

getClosestTaxis(Location) : TaxiUnit[]

callTaxi(Location, int) : boolean

□ Environments: Java 1.4.x, wscompile 1.1.2, J2EE 1.4

□ Successfully implemented and deployed.

Can be check by WSDL on the Web

( http://localhost:8080/taxi-jaxrpc/taxi?WSDL )

15

Implementation

Taxi Service Broker

□ Same business methods as the providers’

requestTaxiList(Location) : TaxiUnit[]

callTaxi(Location, TaxiUnit) : boolean

□ Invokes every taxi provider when it’s invoked.

□ Deployed as a web service also

WSDL is on

http://localhost:8080/taxibroker-jaxrpc/broker?WSDL

16

Implementation

Taxi Service Client Small Java program is enough

□ Generated stub by ‘wscompile’ at compile time.□ Simple web service invocation part

import taxibroker.*; // Package of generated stub

. . .

. . .

// generates stub from Web service port

Stub stub = (Stub) (new TaxiBroker_Impl().getTaxiBrokerIFPort());

// Sets received end point address

stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, args[0]);

// Changes Stub to Specific Interface

TaxiBrokerIF taxi = (TaxiBrokerIF) stub;

// Invokes Web service

TaxiUnit[] taxis = taxi.requestTaxiList(new MapLocation(20, 20));

17

Demonstration

GUI Simulation like the small program on the mobile device.

18

Validation

Several improvements

□ Client stub is simplified.

□ Fault is covered by the broker.

□ Client can take best choice of taxis

□ The changes of services are invisible to the client.

19

Conclusion

Implementation for general purposed broker

The broker made the communications of the SOA

□ Simple

□ Handy

□ and, Safe

20

References

[1] Hewlett-Packard Company, Web Services Concepts – A technical overview, 2001

[2] Tony Andrews, Francisco Curbera, Hetesh Dholakia, Yaron Goland, Johannes Klein, Kevin

Liu, Dieter Roller, Doug Smith, Satish Thatte, Ivana Trickovic, and Sanjiva Weerawarana,

Business Process Execution Language for Web Services Version 1.1, 2003

[3] Assaf Arkin, Sid Askary, Scott Fordin, Wolfgang Jekeli, Kohsuke Kawaguchi, David

Orchard, Stefano Pogliani, Karsten Riemer, Susan Struble, Pal Takacsi-Nagy, Ivana

Trickovic, and Sinisa Zimek, Web Service Choreography Interface 1.0, W3C, 2002.

[4] Erich Gamma, Richard Helm, Ralph Johnsom and John Vlissides, Design Patterns –

Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995

[5] Sun Microsystems, Core J2EE Patterns – Data Access Object, Sun Developer Network,

2002, http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

21

Thank you!

Copyright © 2005 ICU SSLab. All rights reserved | Confidential

© 2005 ICU. All rights reserved.© 2005 ICU. All rights reserved.This presentation is for informational purposes only. ICU MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. ICU MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

top related