Вы можете использовать телефон с GPS-приемником (внутренним или другим). Внешние приемники проще в использовании, поскольку они адресуются более старой Java JSR (http://www.jsr82.com/) и, следовательно, лучше поддерживаются в Java ME.
На стороне клиента (телефона) вы можете написать мидлеты на Java (см. JaveME), чтобы получить доступ к местоположению GPS устройства, а затем использовать соединение для передачи данных телефона (GPRS или 3G), чтобы сделать HTTP-запрос к серверу, будет отслеживать местоположение устройства. Единственный альтернативный вариант GPRS / 3G, который я вижу, - это SMS, но это усложняет ситуацию на стороне сервера (вам потребуется доступ к шлюзу SMS с оператором GSM).
Для API, необходимых для создания мидлетов Java, зарегистрируйтесь в Nokia - у них есть сайт разработчика, который предлагает всю необходимую информацию. Конечно, если вы используете другой тип телефона, Nokia не очень поможет.
Существуют некоторые существующие решения для клиентской стороны - Google для TrekBuddy - которые, вероятно, можно использовать для проверки концепции.
На стороне сервера вы можете написать сервлет, который отслеживает устройство по идентификатору устройства и записывает координаты, отправленные телефоном.