Scalable and Mashable
Location-Oriented Web Services

ICWE 2010 [http://icwe2010.webengineering.org/], July 5-9, 2010, Vienna, Austria

Yiming Liu and Erik Wilde, UC Berkeley School of Information
July 8, 2010

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 Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

Contents

Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(2) Abstract

Web-based access to services increasingly moves to location-oriented scenarios, with either the client being mobile and requesting relevant information for the current location, or with a mobile or stationary client accessing a service which provides access to location-based information. The Web currently has no specific support for this kind of service pattern, and many scenarios use proprietary solutions which result in vertical designs with little possibility to share and mix information across various services. This paper describes an architecture for providing access to location-oriented services which is based on the principles of Representational State Transfer (REST) and uses a tiling scheme to allow clients to uniformly access location-oriented services. Based on these Tiled Feeds, lightweight access to location-oriented services can be implemented in a uniform and scalable way, and by using feeds, established patterns of information aggregation, filtering, and republishing can be easily applied.



Feeds as RESTful Services

Outline (Feeds as RESTful Services)

  1. Feeds as RESTful Services [5]
  2. Tiled Feeds [8]
  3. Queryable Feeds [3]
  4. Services and Clients [3]
Feeds as RESTful Services Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(4) Precious Snowflakes

snowflakes.jpg

Feeds as RESTful Services Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(5) Location-Based Services (LBS)



Feeds as RESTful Services Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(6) Location and the Web



Feeds as RESTful Services Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(7) Uniform LBS Interface

tiled-feed-arch.png

Feeds as RESTful Services Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(8) Feeds!

feedbot.jpg

Tiled Feeds

Outline (Tiled Feeds)

  1. Feeds as RESTful Services [5]
  2. Tiled Feeds [8]
  3. Queryable Feeds [3]
  4. Services and Clients [3]
Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(10) Tiling the Planet



Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(11) Quadtree-Based Tiling and Addressing Scheme

quadtree.png

Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(12) RESTifying Tiles



Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(13) Tile 0230102122

<?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="0230102122.html" rel="alternate"/>
 <link type="application/atom+xml" href="http://tiledfeeds.yimingliu.com/amtraks/0230102122.xml" rel="self"/>
 <title type="text">Tile 0230102122</title>
 <updated>2010-07-08T00:40:07-07:00</updated>
 <author>
  <name>TileFeed Generator</name>
 </author>
 <link href="query_schema.xml" rel="query-schema"/>
 <link type="application/vnd.google-earth.kml+xml" href="0230102122.kml" rel="alternate"/>
 <link href="0230102120.xml" rel="north"/>
 <link href="0230102300.xml" rel="south"/>
 <link href="0230102123.xml" rel="east"/>
 <link href="0230102033.xml" rel="west"/>
 <link href="023010212.xml" rel="up"/>
 <link href="02301021220.xml" rel="down-northwest"/>
 <link href="02301021221.xml" rel="down-northeast"/>
 <link href="02301021222.xml" rel="down-southwest"/>
 <link href="02301021223.xml" rel="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>2010-07-08T00:40:07-07: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>2010-07-08T00:40:07-07: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>2010-07-08T00:40:07-07: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>2010-07-08T00:40:07-07: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 Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(14) Tile 023010212 (Zoom Out)

<?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/023010212.xml</id>
 <link type="text/html" href="023010212.html" rel="alternate"/>
 <link type="application/atom+xml" href="http://tiledfeeds.yimingliu.com/amtraks/023010212.xml" rel="self"/>
 <title type="text">Tile 023010212</title>
 <updated>2010-07-08T00:40:56-07:00</updated>
 <author>
  <name>TileFeed Generator</name>
 </author>
 <link href="query_schema.xml" rel="query-schema"/>
 <link type="application/vnd.google-earth.kml+xml" href="023010212.kml" rel="alternate"/>
 <link href="023010210.xml" rel="north"/>
 <link href="023010230.xml" rel="south"/>
 <link href="023010213.xml" rel="east"/>
 <link href="023010203.xml" rel="west"/>
 <link href="02301021.xml" rel="up"/>
 <link href="0230102120.xml" rel="down-northwest"/>
 <link href="0230102121.xml" rel="down-northeast"/>
 <link href="0230102122.xml" rel="down-southwest"/>
 <link href="0230102123.xml" rel="down-southeast"/>
 <fh:complete/>
 <entry>
  <id>http://localhost:3000/items/287</id>
  <link type="text/html" href="http://localhost:3000/items/287" rel="alternate"/>
  <title>ACA</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>ACA</name>
     <description>100 I Street</description>
     <Point>
      <coordinates>-121.815132000194,38.0180849997628</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/330</id>
  <link type="text/html" href="http://localhost:3000/items/330" rel="alternate"/>
  <title>BCI</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>BCI</name>
     <description>Military West St at West 2nd St</description>
     <Point>
      <coordinates>-122.157481059365,38.0544916599225</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/345</id>
  <link type="text/html" href="http://localhost:3000/items/345" rel="alternate"/>
  <title>BKY</title>
  <updated>2010-07-08T00:40:56-07: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>2010-07-08T00:40:56-07: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/836</id>
  <link type="text/html" href="http://localhost:3000/items/836" rel="alternate"/>
  <title>FFD</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>FFD</name>
     <description>2000 Cadenasso Drive</description>
     <Point>
      <coordinates>-122.066106110976,38.2479950002171</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/467</id>
  <link type="text/html" href="http://localhost:3000/items/467" rel="alternate"/>
  <title>MTZ</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>MTZ</name>
     <description>601 Marina Vista Ave.</description>
     <Point>
      <coordinates>-122.136353000047,38.0197330001869</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>2010-07-08T00:40:56-07: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>2010-07-08T00:40:56-07: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>
 <entry>
  <id>http://localhost:3000/items/715</id>
  <link type="text/html" href="http://localhost:3000/items/715" rel="alternate"/>
  <title>SUI</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>SUI</name>
     <description>177 Main Street</description>
     <Point>
      <coordinates>-122.039542999873,38.2434650000423</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/758</id>
  <link type="text/html" href="http://localhost:3000/items/758" rel="alternate"/>
  <title>VAL</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>VAL</name>
     <description>4355 Sonoma Blvd.</description>
     <Point>
      <coordinates>-122.256222815849,38.1329822662137</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
 <entry>
  <id>http://localhost:3000/items/762</id>
  <link type="text/html" href="http://localhost:3000/items/762" rel="alternate"/>
  <title>VMW</title>
  <updated>2010-07-08T00:40:56-07:00</updated>
  <content type="application/vnd.google-earth.kml+xml">
   <kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
     <name>VMW</name>
     <description>Highway 37 and Fairgrounds Drive</description>
     <Point>
      <coordinates>-122.227942999716,38.134326999961</coordinates>
     </Point>
    </Placemark>
   </kml>
  </content>
 </entry>
</feed>


Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(15) Location-Based Content



Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(16) Paged Feeds



Tiled Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(17) iOS Tiled Feed Client

tiledfeed-views.pngtiledfeed-map.pngtiledfeed-feeds.png

Queryable Feeds

Outline (Queryable Feeds)

  1. Feeds as RESTful Services [5]
  2. Tiled Feeds [8]
  3. Queryable Feeds [3]
  4. Services and Clients [3]
Queryable Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(19) What do you want to GET today?



Queryable Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(20) Faceted Search



Queryable Feeds Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(21) Faceted Search Example

amazon-facets.png

Services and Clients

Outline (Services and Clients)

  1. Feeds as RESTful Services [5]
  2. Tiled Feeds [8]
  3. Queryable Feeds [3]
  4. Services and Clients [3]
Services and Clients Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(23) Exposing LBS as Tiled Feeds

tiled-feed-implementations.png

Services and Clients Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(24) Feed Mashups



Services and Clients Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(25) From Pull to Push



Yiming Liu and Erik Wilde: Scalable and Mashable
Location-Oriented Web Services

(26) Conclusions

feed-pillow.jpg

July 8, 2010 ICWE 2010 [http://icwe2010.webengineering.org/], July 5-9, 2010, Vienna, Austria