An Integrated Platform for Location- based Services Built on Java - - PowerPoint PPT Presentation

an integrated platform for location based services built
SMART_READER_LITE
LIVE PREVIEW

An Integrated Platform for Location- based Services Built on Java - - PowerPoint PPT Presentation

An Integrated Platform for Location- based Services Built on Java Technologies C. Kassapoglou Faist CSEM 14/06/2005 CSEM Centre Suisse dElectronique et Microtechnique Technologies for innovation High technology know-how transfer to


slide-1
SLIDE 1

14/06/2005

An Integrated Platform for Location- based Services Built on Java Technologies

  • C. Kassapoglou Faist

CSEM

slide-2
SLIDE 2

14/06/2005

CSEM

Centre Suisse d’Electronique et Microtechnique

Technologies for innovation High technology know-how transfer to the industry I am with the Advanced Systems Engineering Division

slide-3
SLIDE 3

14/06/2005

Outline

Motivation PoLoS project

End-user perspective Operator perspective

PoLoS and J2EE (JBoss)

slide-4
SLIDE 4

14/06/2005

Motivation

Location-based services: quite promising, but their growth has been rather slow

  • too complex (several fields, many actors)

Objective: A tool for easy and low-cost development and provisioning of location-based services (LBS) Use of open, standard technologies

slide-5
SLIDE 5

14/06/2005

Outline

Motivation PoLoS project

End-user perspective Operator perspective

PoLoS and J2EE (JBoss)

slide-6
SLIDE 6

14/06/2005

PoLoS (EU, IST project, 2002-2004)

PoLoS: An integrated platform for the creation and provision of location-based services (LBS)

WLAN (Indoor)

Platform

Service Execution Geo Information System Service Creation Environment Services Service Position GPS Mobile (Outdoor) WLAN (Indoor) WLAN WLAN (Indoor)

Platform

Service Execution Geo Information System Service Creation Environment Services Service Position GPS GPS Mobile (Outdoor) Mobile Mobile (Outdoor)

PoLoS

  • an execution

environment for LBS

  • a development tool,

for high-level specification, deployment and testing of new services

slide-7
SLIDE 7

14/06/2005

Partners

University of Athens (GR) Alcatel SEL AG (DE) CSEM (CH) Intracom S.A. (GR) EPSILON S.A. (GR) Telefonica I+D (ES) Epsilon Consulting Ltd. (CY)

slide-8
SLIDE 8

14/06/2005

Service Execution Flow

Position WLAN (Indoor) Mobile (Outdoor) GPS Service Geo Information System

Platform

Service Execution

Platform

Service Execution

slide-9
SLIDE 9

14/06/2005

Service Creation

Position WLAN (Indoor) Mobile (Outdoor) GPS Geo Information System Service Service Creation Environment

Platform

Service Execution

Platform

Service Execution Services

slide-10
SLIDE 10

14/06/2005

Features (I)

Generic with respect to LBS types (no service- specific components) Portable: PoLoS is independent from specific hardware Independent from end-user terminal technologies: supports WAP, SMS, HTTP Multiple positioning techniques: GPS, GSM- and WLAN-based (simultaneously)

Flexible with respect to external components

slide-11
SLIDE 11

14/06/2005

Features (II)

Support for several LBS execution models: client pull, server push, time and event scheduling Service specification in a high-level, specially designed, XML-based language Easy service specification and handling using the Service Creation Environment (graphic and text edition, deployment, debugging) Service and user management. Optional access control at per user or per service basis.

slide-12
SLIDE 12

14/06/2005

LBS Scenarios

Typical scenarios for LBS

  • getting the exact address of one’s current

location (“Where am I?”),

  • finding a nearby point of interest (“What is the

closest cinema?”),

  • obtaining navigation directions (“How do I get

there?”),

  • tracking other users (“Where is my friend?”,

“Notify me when one of my friends is close”),

  • fleet management applications,
  • zone-based advertising (“Welcome to our

site!”), etc

slide-13
SLIDE 13

14/06/2005

PoLoS Use (1):

Invocation and result of the proximity service using WAP

slide-14
SLIDE 14

14/06/2005

PoLoS Use (2):

Invocation and result of the proximity service using SMS

slide-15
SLIDE 15

14/06/2005

PoLoS Use (3):

MAP RESULT : TEXT RESULT :

at 0 meters Go Straight to I9 ;at 0 meters turn right to IHall 1 ;at 20 meters go straight to IS1 ; at 10 meters turn right to S1 ;at 0 meters turn left to 0 ;at 0 meters Go to end ; at 0 meters Go Straight to S1 ;at 0 meters go straight to AIS1 ; at 10 meters turn left to AHall 1 ;at 0 meters turn right to A22 ;

INVOCATION (FROM THE SERVICE CUSTOM JSP):

slide-16
SLIDE 16

14/06/2005

PoLoS Architecture

Interfaces PoLoS Kernel Service Creation Environment Positioning OSA Network Infrastructure GIS Charging/Billing Text Data Graph Data

GSM/GPRS UMTS WLAN GPS MExE

PoLoS Platform HTTP WAP SMS PoLoS

slide-17
SLIDE 17

14/06/2005

PoLoS Kernel Functionality

Deployment of new services Service bookkeeping Invocation of services Execution of services Availability of peripheral components (POS, GIS, interfaces), task scheduling and other functions to service executables User registration Other (billing, …)

slide-18
SLIDE 18

14/06/2005

Kernel Architecture

Compiler Service Deployer Service Invocation Module (SIM)

Service/User Registry Interface to Positioning Technology Interface to GIS Data Interface to Service Creation Environment

Schedule Service Execution Environment

End-user Interface

slide-19
SLIDE 19

14/06/2005

Technologies (1)

PoLoS platform: an application server, based

  • n Java 2 Enterprise Edition technology

(jboss) Services: instances of Enterprise Java Beans GIS, POS components: available to the services as Enterprise Java Beans New service deployment and debugging: Web services (Apache axis) offered by the platform GIS, POS underlying systems: Web services (Axis) invoked by the platform

slide-20
SLIDE 20

14/06/2005

Technologies (2)

All data exchanged in XML, even between internal components to the platform (use of SAX, DOM, XSLT and jdom) Standardized access to underlying network infrastructures using OSA

slide-21
SLIDE 21

14/06/2005

Positioning(I)

Three positioning systems:

GPS, GSM-based, WLAN-based

When a service executes, the POS system used is

either specified in the service logic

  • r determined based on the end-user address type

Types of requests:

Request/Reply Generic Request Event-triggered notification (GSM- and WLAN- based) (Periodic Request not implemented; use of the kernel scheduler)

slide-22
SLIDE 22

14/06/2005

Positioning(II)

GSM-based (outdoor):

emulated positioning (on a real GMLC system) (Alcatel) positioning system by Telefonica Moviles (for authorized subscribers)

WLAN-based (indoor):

Location detection based on Nibble system (symbolic coordinates) (UoA)

GPS:

Requires a proxy software on user’s GPS-enabled terminal Location coordinates, piggybagged to the service invocation request, are stored to a repository

slide-23
SLIDE 23

14/06/2005

Geographic Information Systems

GIS services (available to the platform as Web Services behind a session EJB):

Address to coordinates conversion Geocoding Navigation directions on how to go to a given point Navigation (outdoor and indoor) Information on the closest POI (theater, …) to the supplied coordinates Proximity (outdoor and indoor) Location information corresponding to the supplied coordinates Find Location (outdoor and indoor) Description GIS services

slide-24
SLIDE 24

14/06/2005

Outline

Motivation PoLoS project

End-user perspective Operator perspective

PoLoS and J2EE (JBoss)

slide-25
SLIDE 25

14/06/2005

Service Specification

Through a script (XML-based) Service logic control language (SCL) specially designed (usual programming language constructs and PoLoS specificities)

<?xml version="1.0" encoding="UTF-8"?> <PolosXML> <service name=“serviceName" ...> ... </service> <configuration> ... </configuration> </PolosXML>

service logic dependencies, parameters, security

slide-26
SLIDE 26

14/06/2005

Service Control Logic Language

Service entry points (->methods): <entry> Variables:

<set>

Support of usual arithmetic and logic expressions and string handling. Treelike variable structures through nested <set> elements.

Invocation of platform components, other active services, native Java methods (attachments): <invoke> Control of logic flow: <loop>, <break>, <if> Error control: <try>…<catch> Persistent variables using repositories (service configuration (ro), service and service-user levels) Indirect addressing (based on variable names)

slide-27
SLIDE 27

14/06/2005

Service Logic Specification Example

<service name="GetMyLocation" > <entry label="main"> <set name="userpos"> <invoke component="POS"> <set name="userid" value="parameters.userId" /> </invoke> </set> <set name="useraddress"> <invoke component="GIS"> <set name="coordinates.north" value="userpos.latitude"/> <set name="coordinates.east" value="userpos.longitude"/> </invoke> </set> <set name="result.location" value="useraddress.textposition"/> </entry> </service>

slide-28
SLIDE 28

14/06/2005

Service Creation Environment

An IDE for: Edition of LBS scripts Deployment on the PoLoS platform (securely) Testing of new services (tracing)

SCE Kernel Service Editor SCE Service Deployment Service Debugger Service Deployment Module(SIM) Service Execution Tracking Web-Services Web-Services

Database (HSQLDB)

Service repository database

RMI

SCE PoLoS Kernel Service Editor SCE Service Deployment Service Debugger Service Deployment Module(SIM) Service Execution Tracking Web-Services Web-Services

Database (HSQLDB)

Service repository database

RMI

slide-29
SLIDE 29

14/06/2005

Technology

Service Creation Environment based on Eclipse SDK. PoLoS menus, views and operations defined and implemented as plugins (service logic text edition and service deployment, graphic edition, debugging) New service deployment and debugging: Web services (Apache axis) offered by the PoLoS platform Service testing based on Apache log4j.

slide-30
SLIDE 30

14/06/2005

Text Editor

slide-31
SLIDE 31

14/06/2005

Visual Editor

slide-32
SLIDE 32

14/06/2005

Service Logic into an EJB

Translation of service logic (in SCL) into a Java class, which is encapsulated into a stateless session EJB. Translator SCL->Java based on JavaCC and JTB

Service specification (SCL)

JTB JavaCC

SCL grammar (BNF) parser Syntax tree classes; Default Visitor Syntax tree with visit methods Service specification (SCL)

JTB JavaCC

SCL grammar (BNF) parser Syntax tree classes; Default Visitor Syntax tree with visit methods

slide-33
SLIDE 33

14/06/2005

Translation phases

Preprocessing (parsing of XML)

<service name="GetMyLocation"> <entry label="main"> ... </entry> </service> service name=GetMyLocation entry label=main ... /entry /service

Lexical & syntax analyses

service name entry “GetMyLocation” label “main” ...

Semantic analysis and intermediate code generation

ENTRY main … END_ENTRY main Symbol table

Java code generation

public class GetMyLocation implements Serializable { String serviceId = "GetMyLocation"; ... /* Entries */ public String entrymain (String parametersS) { ... } }

slide-34
SLIDE 34

14/06/2005

EJB Class of a LBS service

public class GetMyLocationEJB implements SessionBean { … public void ejbCreate() throws RemoteException {…}; public void setSessionContext(SessionContext sc) …{}; public void ejbActivate() …{}; // Stateful public void ejbPassivate() …{}; // Stateful public void ejbRemove() {…}; public String entryMain(String XMLInputParameters) …{ …}; public String entryInit(String XMLInputParameters) …{…}; … }

slide-35
SLIDE 35

14/06/2005

Service Deployment on PoLoS

Invocation of a secure Web Service (SOAP over HTTPS) exported by PoLoS platform

slide-36
SLIDE 36

14/06/2005

PoLoS Platform Management

slide-37
SLIDE 37

14/06/2005

Service Testing(I)

Post-mortem debugging (trace on service execution) based on log4j

slide-38
SLIDE 38

14/06/2005

Service Testing(II)

slide-39
SLIDE 39

14/06/2005

Outline

Motivation PoLoS project

End-user perspective Operator perspective

PoLoS and J2EE (JBoss)

slide-40
SLIDE 40

14/06/2005

J2EE Basic Ideas

CLIENT Business Logic Database Server Data Middle Tier (J2EE) Application server

instead of:

CLIENT Business Logic Database Server Data

Distributed Application Model: Components in containers:

Container Server Component Component

Separation of business logic, held in components, from implementation details, provided by containers

slide-41
SLIDE 41

14/06/2005

J2EE Architecture

Three types of EJB: Session, Entity and Message-driven

slide-42
SLIDE 42

14/06/2005

service access

JSP SMS Gateway JSP JSP JSP EJB EJB JSP JSP EJB EJB EJB EJB

services access to POS, GIS, … generic service invocation JSP custom service JSPs access to persistent data

PoLoS on Jboss (service execution)

JBoss

PDA (WAP) Browser

service and user registries, service repositories (persistant data), …

ERP DB

slide-43
SLIDE 43

14/06/2005

Web Services

Cross-platform, cross-language, distributed computing applications

– SOAP/ HTTP message exchange – WSDL: XML-based language for service endpoint description

Axis: A SOAP engine

– Plugs into servlet engines (Tomcat) – Extensive support for WSDL, – generation of Java classes from WSDL

slide-44
SLIDE 44

14/06/2005

Conclusion

PoLoS has been successfully demonstrated Extensive use of open and open- source technologies A very positive experience

Easy development, re-usability Portability, scalability

slide-45
SLIDE 45

14/06/2005

References

PoLoS

  • www.polos.org

J2EE

  • www.jboss.org (open-source J2EE platform)
  • www.java.sun.com/j2ee (doc, tutorial and open-source

J2EE platform)

slide-46
SLIDE 46

14/06/2005

Thank you!