Legacy system

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.