What is the best server side solution for a real-time GPS tracking system

Well, I tried to ask this question as a comment on this question, but I thought that maybe no one will notice it, so I decided to ask it as a separate one.

The question is about how to do real-time GPS tracking system things; if we have the following scenario:

  1. Rather than connecting a GPS receiver to a PC, the user will have a mobile device with an integrated GPS receiver.

  2. Location data will be sent over mobile network using GPRS data connection to a server side.

  3. The data will be processed and a KML path file will be created and updated on time intervals and used to track the user using Google Earth.

The question is: what is the best method to accomplish this scenario for the server side; is it a web service, a web application, a windows service, a windows application or what exactly? Taking into account that the system will serve a number of users simultaneously, and that more users may use the system in the future(scalability issues).

Thank you in advance and I highly appreciate any help :)

Answers


What kind of device are you using exactly, something like this or something more sophisticated / configurable? If we assume that the device sends its data over TCP, I would consider the following approach with separate input/output processes:

  • Input: a process listening specific TCP port and storing incoming coordinates to database with a device id. Preferably, your listening loop must be able to handle simultaneous connections without them blocking each other.

  • Output: web application reading coordinates from database for a given device id and displaying them through the Google Earth API.

Use whatever programming language(s) you are familiar with.


For me there is a technical limitation/risk here -> the mobile device, and its connectivity.

1) What are your requirements? Do you need to support various mobile devices or will you focus on only one platform ?

2) More importantly, you have to understand that GPRS data connections differ from a PC connected to the Internet. There are various connection restrictions imposed by different mobile operators.

If I was to design such a system in order to minimise those risks I would go with a web server running on port 80 which the mobile devices would upload their Long/Lat through POST (or even GET to simplify things).

EDIT: Regarding scalability, it would be very easy to scale things up in the future using tried&tested load-balancing techniques.

EDIT2: Whichever technology you decide to use, i would HIGHLY recommend that the first thing you do is to mock up a prototype. Those connection restrictions could be show-stoppers. Ideally you need to explore them before you have made any serious investment.


Need Your Help

How to insert a text box or any other components inside the tabbed window in java swing?

java swing netbeans gui-builder

I am developing an swing application am trying to insert an tabbed window if i insert the window i cant able to place any other components like text box how to work with tabbed window?

How can I tell if my page is set as the user's homepage?

javascript

Is there any way I can detect when my page has been set as the user's homepage in their browser?