geo location messaging on ericsson labs
DESCRIPTION
https://labs.ericsson.com/apis/geo-location-messaging/ The Geo Location messaging API provides developers with the ability to push content to subscribers depending on location areas.TRANSCRIPT
geo location
messaging
A labs.ericsson.com APIhttp://labs.ericsson.com/apis/geo-location-messaging/
© Ericsson AB 2010 | Page 2
Geo location messaging
› The Geo Location Messaging API enables fast, simple and cost-efficient location-based content delivery
› Location-Bases Service Providers can use the API to push data content to clients in customer-selected locations or notify clients about data
› Users can subscribe for certain information channels or applications (services) and enable the reception of the push content
© Ericsson AB 2010 | Page 3
WHY geo Location Messaging?
› Flexibility – Service areas can be defined with flexibility and in real time
› Real-time Messaging – Very low latency thus high accuracy so that only users who are actually in the selected area will receive messages
› Scalability – The Geo Location Messaging APIs provide the needed capacity and can be scaled up transparently when traffic increases
› Security – Increased privacy for end-users as the location information of individuals will not be revealed to service providers
© Ericsson AB 2010 | Page 4
Main Features
› Messaging based upon GPS location
› Message length up to 4k
› Support of Android Geo Location Messaging client
Soon available:
› Support of iOS Geo Location Messaging client
› Handling of long messages (16k/42k)
› Messaging based upon Cell-ID
© Ericsson AB 2010 | Page 5
Geo Location Messaging
Overview – GEO Grid
On startup clients register themselves in the grid for wanted services.
When roaming within a tile no communication takes place.
When crossing the tile border the server is notified.
Only when grid spacing has changed the server updates the client.
› Example of a grid could be:
– 1 km base tile size
countrywide
– Denser grid spacing
where appropriate
– 32 m tile size on fifth
level
© Ericsson AB 2010 | Page 6
Geo Location Messaging
Overview – GEO Push
Assume that the “yellow circle” is the target area in which a discount is offered
When an offer is pushed the target area is mapped to the grid like the red tiles
Clients which have registered for the service and are located in the red tiles will receive Discounts on the display pushed through the network
› Example of a geo push could be :
– Circular target area
with 1 km radius
around shop location
– Arbitrary target area
defined by polygon of
points on a map
© Ericsson AB 2010 | Page 7
Geo Location Messaging
Overview - APIs
› The following slides present the APIs on labs.ericsson.com
› It can be used both on the mobile client side as well as on the backend service side
› The “normal” case is to distribute a geocast message from the backend service side and receive it on the client side
UDP TCP TCP UDP
GeLoM Terminal
Svc Front End GeLoM client
UDP TCP TCP UDP
GeLoM Server Svc Back End
HTTP GETControl Channel
HTTP POST
HTTP GET
HTTP POST
HTTP GET
HTTP POST Service Channel
GM-specific Comm.
UDP TCP TCP UDP
GeLoM Terminal
Svc Front End GeLoM client
UDP TCP TCP UDP
GeLoM Server Svc Back End
HTTP GETControl Channel
HTTP POST
HTTP GET
HTTP POST
HTTP GET
HTTP POST Service Channel
GM-specific Comm.
© Ericsson AB 2010 | Page 8
Server API
› Example code from API - Server
public class SimpleServerTest {
final static String labskey = "<your personal developer key goes here>";
final static String serviceID = "ericsson.net/hello"; // change to your needs
final static String serviceHost = "http://glm.labs.ericsson.net:8070"; // change to your needs
GeocastConnector enabler;
public SimpleServerTest () {
try { enabler = new GeocastConnector (serviceID, serviceHost, labskey); }
catch (MalformedURLException e) { e.printStackTrace(); }
}
public void send (String message) {
final String destination = "{ \"shape\":\"all\" }";
System.out.println("Geocast result: " + enabler.send(message.getBytes(), destination));
}
public static void main (String[] args) {
SimpleServerTest hello = new SimpleServerTest ();
hello.send ("Hello World!");
}
}
© Ericsson AB 2010 | Page 9
Client API
› Example code from API - Client
public class SimpleClientTest {
final static String serviceID = "ericsson.net/hello"; // change to your needs
final static int port = 8070; // default client local HTTP port
GeocastConnector enabler;
public SimpleClientTest () {
try { enabler = new GeocastConnector (serviceID, port); }
catch (MalformedURLException e) { e.printStackTrace(); }
}
public void uplink (String message) {
System.out.println("Geocast result: " + enabler.send(message.getBytes()));
}
public static void main (String[] args) {
SimpleClientTest hello = new SimpleClientTest ();
hello.uplink ("Hello World!");
}
}
© Ericsson AB 2010 | Page 10
Example applications 1
› Time-bound discounts
– Early Bird discount: 20% off, Monday 10:00 - 12:00 a.m.
– Lunch time discount: 2nd meal free, weekdays 12:00 –
13:00
› M2M advertisement
– Vending machines receive special offers, based on their location (or depending on the weather in the
region)
– Digital signage in taxis receive local content
› Campaign Games
– Follow the guidance and collect virtual bottles that are
hidden in special areas � win a price if all are found
© Ericsson AB 2010 | Page 11
Example applications 2
› Hazard Warning
– Immediate car-to-car or network triggered
warning at hazardous situations
– Support through car navigation systems or
mobile apps
› Transport notification
– Logistics support, local transport queries
– Simple, flexible notifications
– Range depending on transport system (van, bike, e-vehicles)
› Commuter Information
– Generic departure time and location changes
service (airports, trains, bus)
© Ericsson AB 2010 | Page 12