Google App Engine has adopted the mantra of frequent releases and in keeping line with that, it announced a new version of its App Engine SDK. Like other recent releases, it included several bug fixes, but much more interesting are the new features it introduced, including automatic geolocation of users.
Geolocation data is now sent in the client request. While it might seem like a small change, this could be the first of more interesting location data that could be provided right within the request itself without the need for client applications to do anything special.
Google describes it in more detail in the release notes:
Geolocation Header: App Engine will now include a header with every client request that represents a best-effort attempt to identify the country from which the request originated. This header, “X-AppEngine-country,” can allow you to customize content based on the origin of the user. We hope this means no more “Select your location” drop downs for users!
It's much more than doing away with country drop down boxes. The user comments already ask Google to introduce a City header too. If the header value is reliable and if the application does not need fine grained location value, then you can customize your results of your web application or API by simply extracting out this header value. Determining a user's location automatically is a common application process, but it previously required a separate process. We list 8 IP geolocation APIs that you can use in your non-App Engine apps.
Geolocation is only one of the updates to Google App Engine. A new API called the ProtoRPC has been introduced for Python runtime only. The ProtoRPC API can be used by developers to define web-based RPC Services. In addition to this, both Java and Python APIs have been updated for Channel and Image Services. The Channel API now has Presence support, where the Channel can detect user presence and can take action on user events like connect and disconnect. The Image Service now supports the WebP image format.
The High Replication Datastore was released by Google App Engine earlier this year. In this release, developers have been provided tools via which they can see how their applications behave when the High Replication datastore functions. You can set the SDK config options and perform queries to understand the consistency model better.