web-based software development (ice0534) webservices mediator for location sensitive services design...
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.