Fontys campus venlo Vehicle Tracker

Vehicle Tracker

Taken from an example from 'Java Concurrency in Practice' by Brian
      Goetz and Tim Peierls
	

Rough scetch of a vehicle tracker service

  • Each tracker vehicle (ship, truck, lorry, bus, but also the trailer) sends a message with vehicle id, gps coordinates, status, speed and heading to a central serv(ice|er). The communication is through e.g. gprs where bit efficiency is important.
    An example of a bit-efficient protocol for exactly such a purpose is the NMEA-0183 protocol. have a peek in e.g. wikipedia.. There are dutch an german versions of this page as well.
  • The status information is one character. But this is enough to convey 52 (upper and lower case) different vehicle states.
  • Legislation might make such a service mandatory for trucks and trailers in the near future to prevent or at least have something about car theft.
  • The central server (maybe one per trucking compagny) collects all data and provides itself a webservice (like in Wsdl, which is not an exculsive .NET thing). This websrvice can be used by e.g. police to track vehicles that have been reported by the compagny to need special; attention.

Iteration 1

1.1Vehicles have name (identifying string), cargo, position, speed and direction
1.2VehicleTracker can retrieve the locations of all vehicles which are live updated
1.3VehicleTracker can get all information of a single vehicle
1.4Several VehicleTrackers can be chosen by a client

Iteration 2 (optional)

2.1Gui shows terrain where vehicles are about to move
2.2Gui can add a vehicle and display it
2.3Gui can show properties of selected vehicle
2.4Gui can change properties of selected vehicle

Your task

Make a design with special consideration for concurrency aspects, especially the concurrency hazards but also address the scalability problem, both in the user domain as in the technical (java) domain. The reasoning in the design is the most important aspect of this task.

Implement the core services

  • the acceptance of the vehicle message and updating the tracking objects
  • The webservice in one of two variant xml data format or JSON data format for easy javascript mashups.