SpADE
A SPatio-temporal Autonomic Database   Engine for location-aware services
Home
Overview
Specifics
Snapshots
Resources
Publications
About Us
Contact Us
 
 Latest News
-April, 2008
Detailed Specifics on the SpADE system is provided in the website.
                          more »
-March, 2008
Subsequent work of the SpADE on tuning the indexing efficiency is accepted by SIGMOD'08.
                          more »
-August, 2007
The SpADE is moved to new site.
                          more »
-July, 2007
The final report is submitted to A*star.
                          more »
-June, 2007
The SpADE system is demonstrated in ICDE'07.
                          more »
Last Updated: 02/04/2008
Maintained by: Chen Su
 
SpADE Overview:
-System Architecture
  • SpADE Client
    A client includes four components.
    • GPS Service Module is responsible for receiving and parsing the GPS information.
    • Map Service Module is responsible for displaying underlying map and moving objects if any, and listening to interaction events from the user.
    • Query Service Module constructs spatial-temporal queries according to user triggered events on the map.
    • Communication Manager sends requests to and receives data from the server.

  • SpADE Server
    The SpADE server comprises five modules.
    • Communication Manager receives query messages or location update requests from the clients, dispatches them to other modules, and returns query results to the client user.
    • Map Service Module maintains the map data displayed at the client side and notifies all clients to update their map if a new map is provided.
    • MOD Service Module processes position updates and query requests from mobile clients.
    • Index Service Module constructs Bx-tree index to facilitate processing spatialtemporal queries.
    • MySQL Database stores the moving objects information in relational table and provides B+-tree as the underlying basis for Bx-tree.
 
-Data Modeling and Indexing (Bx-Tree)
  • Moving objects are modeled as a linear function of time
  • Partition the time axis into intervals of duration tmu (maximum update interval), and sub-partition each interval into n equal-length sub-intervals, termed phases
  • Map the update (and insertion) times in the same phase to the same so called label timestamp, tlab
  • Object O = (x, v) updated at tu is represented by a value Bx_value (O, tu):
    Bx_value (O, tu) = [index_partition]2 [x_rep]2
    where index_partition is determined by the update time, tu, and x_rep is obtained using a space-filling-curve:
    index_partition = (tlab/ (tmu / n) - 1) mod (n + 1)
    x_rep = x_value (x + v (tlab - tu))
 
-Relational Table Definition
  • A relational table in MySQL DBMS is defined to store information about moving clients. The table consists of 7 fields as in following table. The Bx-Value is the primary key of the table and a B+-Tree index is built on this field.
  • *To accomandote the use of the B+-tree to index moving objects, a field named Bx_Value into the table of moving object and make it as the primary key indexed by the B+-tree.
  • In SpADE system, there are two such tables. One is to store the latest update information of the moving objects, called the current information table. Note that this table is indexed by the Bx-Value obtained according to the Bx-tree rationale. The other table simply keeps all the historical information, called the historical information table for further reference.
-Spatial-Temporal Query Types and Query Processing

  The SpADE system supports various types of queries such as historical (current/predictive) range and k-NN queries. The typical process of executing such a spatialtemporal query takes several stages, as shown in above Figure.

  • On the client side, a user selects the query type and specify query parameters by dialog based inputs or map based stylus actions. Then, a corresponding query request is constructed and sent out to the server.
  • Upon receiving a query request, the server side communication part extracts query parameters from it and passes them to the MOD service module. Then SQL statements are composed according to the query parameters and the Bx-tree rationale, and passed to the MySQL query engine via the JDBC connection. Each of such SQL statements specifies a range query on the Bx-value. Inside the MySQL, SQL statements are executed with the aid of the B+-tree index to retrieve the data requested. The data then will be returned back along the reversed direction till the client side.
Copyright © 2004-2007 School of Computing, National University of Singapore. All rights reserved.