Loosely Coupled Location Based Services

Oracle Tech Talk

Erik Wilde, School of Information, UC Berkeley
January 26, 2011
http://dret.net/netdret/publications#oracle11 [http://dret.net/netdret/publications#oracle11]

Creative Commons License [http://creativecommons.org/licenses/by/3.0/]

This work is licensed under a CC
Attribution 3.0 Unported License
[http://creativecommons.org/licenses/by/3.0/]

Contents Erik Wilde: Loosely Coupled Location Based Services

Contents

Erik Wilde: Loosely Coupled Location Based Services

(2) Abstract

Location-Based Services (LBS) are a popular use case for the Web as well as for mobile devices. However, the vast majority of LBS today is built in a vertically integrated way, where the map imagery and all overlays for it are delivered by the same service provider. We propose an architecture and present a prototype where map imagery as well as overlays are managed in a decentralized way, allowing clients to easily combine and repurpose services. Since in such a scenario, clients may want to keep track of the various LBS providers they are using, we also propose and present an architecture for managing subscription information for services. Both areas of work are based on lightweight Web technologies, most importantly Atom feeds and a RESTful service design around those. Using this architecture, subscription information can be easily shared among clients (allowing users to for example use the same LBS providers on their laptop, their smartphone, and in their car), and display and delivery methods can be adjusted according to client preferences and capabilities (display size, pull or push delivery, and similar considerations).



Introduction

Outline (Introduction)

  1. Introduction [3]
  2. Location-Based Services (LBS) [7]
  3. Tiled Feeds [5]
  4. Feed Subscription Management (FSM) [6]
  5. Conclusions [2]
Introduction Erik Wilde: Loosely Coupled Location Based Services

(4) Who Am I?

ischool-logo.png

Introduction Erik Wilde: Loosely Coupled Location Based Services

(5) Where Do I Work?

books.gif

Introduction Erik Wilde: Loosely Coupled Location Based Services

(6) What Do I Teach?

New York City Lübeck


Location-Based Services (LBS)

Outline (Location-Based Services (LBS))

  1. Introduction [3]
  2. Location-Based Services (LBS) [7]
  3. Tiled Feeds [5]
  4. Feed Subscription Management (FSM) [6]
  5. Conclusions [2]
Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(8) Precious Snowflakes

snowflakes.jpg

Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(9) LBS as Services



Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(10) Horizontal Integration

vertical-vs-horizontal.png

Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(11) Feeds: Web Containers

containers.jpg

Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(12) Feeds as RESTful Web Plumbing



Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(13) Feed Reader

Google Reader

Location-Based Services (LBS) Erik Wilde: Loosely Coupled Location Based Services

(14) What's Missing?



Tiled Feeds

Outline (Tiled Feeds)

  1. Introduction [3]
  2. Location-Based Services (LBS) [7]
  3. Tiled Feeds [5]
  4. Feed Subscription Management (FSM) [6]
  5. Conclusions [2]
Tiled Feeds Erik Wilde: Loosely Coupled Location Based Services

(16) Linking Spatial Information

Tiling Scheme

Tiled Feeds Erik Wilde: Loosely Coupled Location Based Services

(17) Tiled Feed Example

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns:fh="http://purl.org/syndication/history/1.0" xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
 <id>http://tiledfeeds.yimingliu.com/amtraks/0230102122.xml</id>
 <link type="text/html" href="http://tiledfeeds.yimingliu.com/amtraks/0230102122.xml" rel="alternate"/>
 <link type="application/atom+xml" href="http://tiledfeeds.yimingliu.com/amtraks/0230102122.xml" rel="self"/>
 <title type="text">Tile 0230102122</title>
 <updated>2011-01-25T18:08:48-08:00</updated>
 <author>
  <name>TileFeed Generator</name>
 </author>
 <link href="/amtraks/query_schema.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/query-schema"/>
 <link type="application/vnd.google-earth.kml+xml" href="/amtraks/0230102122.kml" rel="alternate"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/0230102120.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/north"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/0230102300.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/south"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/0230102123.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/east"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/0230102033.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/west"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/023010212.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/up"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/02301021220.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/down-northwest"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/02301021221.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/down-northeast"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/02301021222.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/down-southwest"/>
 <link href="http://tiledfeeds.yimingliu.com/amtraks/02301021223.xml" rel="http://tiledfeeds.yimingliu.com/tiledfeeds/relation/down-southeast"/>
 <fh:complete/>
 <entry>
  <id>http://localhost:3000/items/345</id>
  <link type="text/html" href="http://localhost:3000/items/345" rel="alternate"/>
  <title>BKY</title>
  <updated>2011-01-25T18:08:48-08:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>BKY</name>
     <description>University Ave. and Third St.</description>
     <Point>
      <coordinates>-122.299994999871,37.8676030004272</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/111</id>
  <link type="text/html" href="http://localhost:3000/items/111" rel="alternate"/>
  <title>EMY</title>
  <updated>2011-01-25T18:08:48-08:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>EMY</name>
     <description>5885 Horton Street</description>
     <Point>
      <coordinates>-122.290680000357,37.8406790003872</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/509</id>
  <link type="text/html" href="http://localhost:3000/items/509" rel="alternate"/>
  <title>OAC</title>
  <updated>2011-01-25T18:08:48-08:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>OAC</name>
     <description>700 73rd Avenue</description>
     <Point>
      <coordinates>-122.197740496936,37.7518812571236</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/515</id>
  <link type="text/html" href="http://localhost:3000/items/515" rel="alternate"/>
  <title>OKJ</title>
  <updated>2011-01-25T18:08:48-08:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>OKJ</name>
     <description>245 Second Street</description>
     <Point>
      <coordinates>-122.270743999583,37.79464699997</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
</feed>


Tiled Feeds Erik Wilde: Loosely Coupled Location Based Services

(18) Tiled Feed Reader

tiledfeed.png

Tiled Feeds Erik Wilde: Loosely Coupled Location Based Services

(19) Implementing Tiled Feeds

tiled-feed-implementations.png

Tiled Feeds Erik Wilde: Loosely Coupled Location Based Services

(20) Proof of Concept



Feed Subscription Management (FSM)

Outline (Feed Subscription Management (FSM))

  1. Introduction [3]
  2. Location-Based Services (LBS) [7]
  3. Tiled Feeds [5]
  4. Feed Subscription Management (FSM) [6]
  5. Conclusions [2]
Feed Subscription Management (FSM) Erik Wilde: Loosely Coupled Location Based Services

(22) Managing Decentralization



Feed Subscription Management (FSM) Erik Wilde: Loosely Coupled Location Based Services

(23) FSM Architecture

fsm-architecture.png

Feed Subscription Management (FSM) Erik Wilde: Loosely Coupled Location Based Services

(24) OPML Folder in FSM

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fsm="http://dret.net/fsm/1.0">
 <title>delicious REST</title>
 <generator>$Id: opml2fsm.xslt 1407 2010-10-27 19:15:56Z dret $</generator>
 <entry>
  <title>Delicious/cesare.pautasso/rest</title>
  <fsm:subtype>subscription</fsm:subtype>
  <link rel="alternate" href="http://feeds.delicious.com/v2/rss/cesare.pautasso/rest"/>
  <link rel="http://dret.net/fsm/1.0/subscription_to" href="http://feeds.delicious.com/v2/rss/cesare.pautasso/rest"/>
 </entry>
 <entry>
  <title>Delicious/dret/REST</title>
  <fsm:subtype>subscription</fsm:subtype>
  <link rel="alternate" href="http://feeds.delicious.com/v2/rss/dret/REST"/>
  <link rel="http://dret.net/fsm/1.0/subscription_to" href="http://feeds.delicious.com/v2/rss/dret/REST"/>
 </entry>
</feed>


Feed Subscription Management (FSM) Erik Wilde: Loosely Coupled Location Based Services

(25) OPML Structure in FSM

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fsm="http://dret.net/fsm/1.0">
 <title>dret subscriptions in Google Reader</title>
 <generator>$Id: opml2fsm.xslt 1407 2010-10-27 19:15:56Z dret $</generator>
 <entry>
  <title>xkcd.com</title>
  <fsm:subtype>subscription</fsm:subtype>
  <link rel="alternate" href="http://xkcd.com/atom.xml"/>
  <link rel="http://dret.net/fsm/1.0/subscription_to" href="http://xkcd.com/atom.xml"/>
 </entry>
 <entry>
  <title>delicious REST</title>
  <fsm:subtype>bundle</fsm:subtype>
  <link rel="alternate" href="" type="application/atom+xml"/>
  <link rel="http://dret.net/fsm/1.0/bundle" href="fsm-67.xml"/>
 </entry>
</feed>


Feed Subscription Management (FSM) Erik Wilde: Loosely Coupled Location Based Services

(26) FSM in the Web Client

tiledfeed.png

Feed Subscription Management (FSM) Erik Wilde: Loosely Coupled Location Based Services

(27) FSM in the iOS Client

Subscriptions Views


Conclusions

Outline (Conclusions)

  1. Introduction [3]
  2. Location-Based Services (LBS) [7]
  3. Tiled Feeds [5]
  4. Feed Subscription Management (FSM) [6]
  5. Conclusions [2]
Conclusions Erik Wilde: Loosely Coupled Location Based Services

(29) LBS Need Loose Coupling



Conclusions Erik Wilde: Loosely Coupled Location Based Services

(30) Future Work



Erik Wilde: Loosely Coupled Location Based Services

(31) Thanks! Questions?

feedbot.jpg

January 26, 2011
http://dret.net/netdret/publications#oracle11 [http://dret.net/netdret/publications#oracle11]
Oracle Tech Talk