neighborhood search via wap - tuhh neighborhood search via wap a project by vanda lehel kathrin...
TRANSCRIPT
1
Neighborhood search via WAP
A project by Vanda Lehel Kathrin Lehmann
Francesco Morelli Youssef Tikerouine
Project care by Holm Wegner Helmut Adler
In cooperation with theMikroelektronik Anwendungszentrum Hamburg GmbH
(MAZ)
The neighborhood searchproject
• The situation: A person wants to know where e.g. the nearest busstop, railway station
or restaurant is.
• The solution: The person dials a service number and sends his/her request to the
WML-Server. The WML-Server processes the inquiry by searching a database and
returns the wanted information.
• Prerequisites: X-,Y-coordinates of the person inquiring are known to the server.
2
Architectural Considerations
• Parallel processing• Multiuser capability• Distributed computing• Very thin client• 4-tier Architecture
Client-Server 4-tier Architecture
User Interface
Presentation
Application
Client
Server
Data BasesDB
3
WAP Client
WAPProxy
CustomerDB
(EmulatedMobile Phone)
WMLClient
Web Server
NSService
(Servlet)
GeoDB
(Relational DB)
NS
Engine
Deployment Diagram
HTTPWAP
NS
Coordinate
Location Server
JDBC
Technological Considerations
• JDK 1.2, Java Servlet Extension (javax)• Web Server: IIS with JRun• Relational Database (Oracle 8)• JDBC• Ericsson Development Toolkit (WAP-WML)
4
WAP Client
WAPProxy
CustomerDB
(EmulatedMobile Phone)
WMLClient
Web Server
NSService
(Servlet)
GeoDB
(Relational DB)
NS
Engine
Deployment Diagram (A)
HTTPWAP
NS
Coordinate
Location Server
JDBC
State Machine
goBack( ) select( )
goBack( ) select( )
CoordinatesOptions Menu list
Result list
Service Info
Active
Exit / after 30 min inactivity
Select „Restaurant“( )/ When „Restaurant“not already selected
Start( )
5
Example of a WML document
Source: WapIDE Service Development Kit @1998 Ericsson Wireless Internet
Mobile Phone Display
21 3
54 6
6
Mobile Phone Display (2)
87
9 10
WAP Client
WAPProxy
CustomerDB
(EmulatedMobile Phone)
WMLClient
Web Server
NSService
(Servlet)
GeoDB
(Relational DB)
NS
Engine
Deployment Diagram (B)
HTTPWAP
NS
Coordinate
Location Server
JDBC
7
Package DiagramPackage Diagramjavax.servlet.http
GenericServlet<<abstract>>
ServletRequest<<interface>>
ServletResponse<<interface>>
HttpServlet<<abstract>>
HttpServletRequest<<interface>>
HttpServletResponse<<interface>>
javax.servlet
HttpSession<<interface>>
Class diagram of NSServiceHttpServlet
+doGet(request : HttpServletRequest, response : HttpServletResponse)+service(request : HttpServletRequest, response : HttpServletResponse)
HttpServletResponse
<<abstract>> +setContentType(type : String)<<abstract>> +setContentLength(len : int)<<abstract>> +getWriter() : PrintWriter
<<Interface>>HttpServletRequest
<<abstract>> +getSession(create : boolean) : HttpSess ion
<<Interface>>
Multiplicity 1
NSCoordinate
phoneCoordinate() : Coordinate
NSEngine
+searchService(loc : Coordinate, typeID : short) : NSSProviderList+searchMenu() : NSSTypeList
HttpSession
+getID() : String+getCreationTime() : long+getValue(name : String) : Object+putValue(name : String, value : Object)
<<Interface>>
PrintWriter
+println(s : String)
Response
11 11NSServlet
+getProvider(typeID : short) : NSSProviderList+getMenu() : NSSTypeList
*1
*1
NSSession Request*
1*
1
1 *1 *
8
WAP Client
WAPProxy
CustomerDB
(EmulatedMobile Phone)
WMLClient
Web Server
NSService
(Servlet)
GeoDB
(Relational DB)
NS
Engine
Deployment Diagram (C)
HTTPWAP
NS
Coordinate
Location Server
JDBC
Class diagram of NSEngine
Multiplicity1..15
Coordinate-x : double-y : double
+convert(z1 : double, z2 : double) : Coordinate+getXCoordinate() : double+getYCoordinate() : double
Address-street : String-zipcode : int-state : String-country : String
+getStreet() : String+getZipcode() : int+getState() : String+getCountry() : String
NSSProvider-name : String-phoneNumber : String-openingHours : String
+getName() : String+getPhoneNumber() : String+getOpeningHours() : String
1
1
1
1 1
*
1
*
NSSType-description : String-serviceTypeID : short
+getDescription() : St ring+getServiceTypeID() : short+add(t : Type)+remove(t : Type)
1..*1
1..*1
SuperType
+add(t : Type)+remove(t : Type)
Type
<<abstract>> +add(t:Type)<<abstract>> +remove(t:Type)
0..1
*
0..1
*
NSSTypeList
+getSize() : int+getType(i : int) : NSSType 0..1 *0..1 *
NSEngine
+searchService(loc : Coordinate, typeID : short) : NSSProviderList+searchMenu() : NSSTypeList
1 *
NSSProviderList-size : int
+getSize() : int+getProvider(i : int) : NSSProvider+destroy()
0..1
*
0..1
*
1*
*1
*1
Thread
9
: NSServletclient : MobilePhoneUser
: ServletEngine
Http request
: NSEngine
getMenu()
L=searchMenu()
Interaction diagram (1)
service(req,res)
L
Http response
: NSServletclient : MobilePhoneUser
: ServletEngine
Http request
: NSCoordinate : NSEngine
getProvider(typeID)
loc=phoneCoordinate( )
L =searchService(loc,typeID)
Interaction diagram (2)
service(req,res)
loc
L
Http response
10
WAP Client
WAPProxy
CustomerDB
(EmulatedMobile Phone)
WMLClient
Web Server
NSService
(Servlet)
GeoDB
(Relational DB)
NS
Engine
Deployment Diagram (D)
HTTPWAP
NS
Coordinate
Location Server
JDBC
The GeoDB ER Diagram
ServiceProvider
Place
AddressName
ZIPCode
EmailAdress
ServiceProvider-ID
ServiceTypeDescription
ServiceType-Nr
ServiceType
SuperService
n1n 1
Phone-Nr
Fax-Nr
OpeningTime
XCoordinate
YCoordinate
ClosureDay
possesses
11
The GeoDB Tables Diagram
Category NumberClassificatio Weight Sum rowInput information 1 simple 3 3Inquiries 1 simple 3 3
1 complex 6 6Output 1 simple 4 4
2 medium 5 101 complex 7 7
Database 1 simple 7 7Reference data 1 simple 5 5Sum of E1 45influence coeff.
1 Transaction rate (0-5) 42 processing logica arithm. operations (0-10) 2b method f. control/ check(0-5) 1c Exception handling (0-10) 53 Reusability (0-5) 34 Adaptability (0-5) 5
Sum 7 influencesE2 20E3 = E2 / 100 +0,7evaluated Fct.- 0,90Points: E1*E3 40,00
Function Point Method
12
Function Point Method
• 40 Fct. Points correspond to about 2 MM which is approx.44 working days.
• Working assumption:- we will work 2 days a week- being 4 people this makes 8 days a week- having 5 weeks for the implementation, we will finish in
40 work days.• Conclusion:
- we will finish in time, if everybody works 2,2 days a week.
Project Plan• Fr. 12/03 - Th. 12/09 -testing Interface WAPClient/ NSS-
servlet / -filling database with test data• Fr. 12/10 - Th. 12/16 -preparing communication NSS-servlet /
NSEngine / -implementing Database connection / -writing NSCoordinate- Component
• Fr. 12/17 - Th. 01/06 -Implementation NSS-servlet / NSEngine
• Fr. 01/07 - Th. 01/14 -Implementation NSS-servlet / NSEngine
• Fr. 01/15 - Th. 01/22 -Implementation, testing• Fr. 01/23 - Th. 01/29 -Preparing presentation (slides, demo)