
Olivier Liechti

Benoît Garbinato
(4100) Location-Based Services in Java: the inTrack Platform
Technical long talk 50 min
Tuesday, 2008-06-24, 15:00 - 15:50, Arena 9
- Olivier Liechti - Univ. of Appl. Sciences Western Switzerland (speaker)
- Benoît Garbinato - University of Lausanne (co-speaker)
Topics
Abstract
Ubiquitous computing, context awareness and location-based services
----------------------------------------------------------------
Context awareness is a key design principle in ubiquitous computing (also
referred to as pervasive computing). The idea is simple: to be more efficient,
the user interface of an application should dynamically adapt itself to the
current "context". Defining and modeling the current
"context" is actually a challenge and has been a research topic for
many years. Nevertheless, it has been realized early that location is one aspect
of the context that is both very meaningful and relatively easy to capture.
For this reason, many context-aware systems developed in research labs have
exploited user location as an implicit input to improve human-computer
interaction. Such systems are now commonly referred to as Location-Based
Services (LBS). The market potential for LBS is huge, and is still largely
untapped. A number of factors now concur to increase the adoption rate. A sure
sign of this trend is the strong emphasis put on LBS by leading and emerging
mobile platforms (Nokia S60, Apple iPhone, Google Android, etc.).
Location-Based Services in Java: JSR 179 and beyond
---------------------------------------------------
In the context of the Java platform, Location-Based Services are closely related
to the JSR 179, entitled "Location API for J2ME". This API is used to
retrieve the current location of the client device in a standard way. The
specification does not specify how the location data is obtained, and it is up
to the implementation to provide a mechanism for this (by communicating with a
GPS tracker, by processing information provided by the telco operator, etc.).
The Location API for J2ME is a fairly low-level API, with a limited scope: it
only addresses (some of) the issues faced by application developers. In
particular, it does not address the sharing of location information, which is
requirement for collaborative and social applications.
In this session, we look at Location-Based Services in Java beyond the scope of
JSR 179. We consider the general problem of tracking a large volume of mobile
entities, and of giving efficient and appropriate access to the collected
information. We look at this problem both from a "location information
provider" point of view (How do we ensure that location can be captured,
stored and accessed in efficient and appropriate ways?) and from an
"application developer" point of view (How do we make location easy to
exploit? What kind of abstractions do we need to write location-based
applications?).
With this goal, we present "inTrack", a platform that provides a
complete solution for building and hosting Location-Based Services. We review
the services offered by the inTrack middleware layer and the forces that have
driven their design. We also present the developer API exposed by inTrack, which
extends the JSR 179 programming model with higher-level constructs. In
particular, we introduce the notion of Location-based Publish-Subscribe (LPS)
and show how this programming model is well suited for collaborative mobile
applications.
inTrack: an integrated platform for Location Based Services
------------------------------------------------------------
Developed jointly by the University of Applied Sciences of Western Switzerland
(HES-SO) and the University of Lausanne (UNIL), inTrack is an integrated LBS
platform. Its layered architecture consists of several subsystems, which support
the end-to-end creation and execution of location-aware services.
At the bottom layer, different location tracking modules implement a standard
interface. While standard technologies can be used (e.g. GPS), inTrack also
provides two original indoor tracking modules. The middle layer provides an
abstraction layer on top of the tracking modules and decouples the applications
from the tracking technologies. A rich domain model is used to maintain the
state of mobile entities and to manage access to collected information. Also in
the middle layer, the flow of events associated to the movements of tracked
entities is processed continuously by a special engine. The upper layer provides
different interfaces: an API is provided to application developers, an
administrative interface is provided to users managing the platform and the
applications.
In the session, we will take a close look at all of these components and share
our experiences with a number of technologies. For instance, we will describe
Esper, an Open Source Event Stream Processing (ESP) and Complex Event Processing
(CEP) engine. After introducing the notions of ESP and CEP, we will show that
they are very well suited for Location-Based Services. We will provide some
examples and show how business rules can be expressed with a special query
language (Event Query Language). Also, we will spend some time on the issue of
privacy and security, which are critical of context-aware computing platforms.
We will present our approach and explain how the Acegi Security Framework has
provided a foundation for the implementation.
Outline of the talk
-------------------
1. Introduction to location based services (motivations, scenarios, etc)
1.1. Ubiquitous computing & context awareness
1.2. Location based services: examples and classification
2. Location Based Services in Java: JSR 179 and beyond
2.1. Scope of the JSR 179
2.2. Current implementations
3. The In-Track LBS Platform
3.1. System architecture
3.2. Domain model & services layer
3.3. Event Stream Processing & Complex Event Processing
3.4. Security & privacy
3.5. Programming API: Location-based Publish-Subscribe
4. Conclusions






