You are here


PLASH: A Platform for Location Aware Service with Human Computation

The Platform for Location Aware Services with Human computation (PLASH) is a composite project consisting of the development of a supporting platform and application systems. The supporting platform provides a set of programming interfaces and management tools for application builders and service providers. The fundamental services and programming interfaces provided by this platform facilitate the development and hosting of PLASH applications. Furthermore, the server management tools help service providers set up and configure their PLASH application servers. Based on the PLASH platform, we developed several mobile applications along with the supporting services hosted in the platform. For example, the location-based AnTrip itinerary system is shown as follows:
PLASH Ecosystems
PLASH Architecture
The supporting platform for PLASH applications (hereafter “PLASH platform”) consists of three layers. This multi-layer design aims to simplify the complexity of the application system. The first layer is the communication layer which provides fundamental data transmission services to the upper layers. We deployed various wireless technologies (e.g., WLAN, WiMax, and 3G) and communication structures (e.g, Vehicle to Infrastructure, Vehicle to Vehicle, or Vehicle to Mobile device) in this layer. On top of the first layer is the data layer responsible for data representation, storage and access. Currently this layer includes three databases to maintain user information, a friend list and geo-location data, and two processors to handle both geo-queries and data pre-processing. The last layer is the Service Layer which is the upper-most layer that application developers directly interact with. It provides fundamental services and basic applications. Data exchange and message delivery between any two layers are done via interfaces provided in each layer. We also implemented APIs in every layer to provide modulization and extensibility.
The communication layer is implemented by developing two communication services that support V2I (vehicle to infrastructure) and V2V (vehicle to vehicle) respectively. The programming languages adopted include C/C++ and Java. C/C++ provides the ability to efficiently control wireless hardware components and enable optimized memory management. Java is used to wrap and manage C/C++ components and implement interfaces in this layer since it is the primary language used in data and service layers. As for the hardware part, wireless equipment from various brands was tested for performance comparisons.
The data layer is powered by three SQL servers. We selected PostgreSQL to be the particular implementation of our SQL servers. The choice of PostgreSQL enables us to deploy PostGIS, which is a geographic information system specially designed for handling geographic data exclusively for PostgreSQL, in our databases. A set of access managers and access interfaces are implemented to help the collaborations between these layers.
The design of the PLASH platform heavily adopts concepts from SOCM and modifies some of the concepts. The PLASH platform comprises three types of building blocks – service, service bus and object relational mapping engine and two external stakeholders – databases and clients.


PLASH Project Website
Copyright 2013 © Advanced Networking Technologies and Services Group, ALL RIGHT RESERVED.