Title: Haggle: Seamless Networking for Mobile Applications
1HaggleSeamless Networking for Mobile
Applications
- Jing Su
- University of Toronto (interned at Intel
Research Cambridge) - James Scott
- Microsoft Research Cambridge
- (previously Intel Research Cambridge)
2HaggleSeamless Networking for Mobile
Applications
- Eben Upton, Meng How Lim (Intel Research
Cambridge) - Ashvin Goel, Eyal De Lara (U. of Toronto)
-
- Jon Crowcroft, Pan Hui (Cambridge University)
- Christophe Diot (Thomson)
- In collaboration with others from the EU-funded
project
3Scenario
- cellular?
- Not available
- Slow
- Expensive!
4Scenario
- hotspot?
- Not available
- Congested
- Non-open
- Non-free
Cellular
grrrr
zzz
5Scenario
- Ad hoc?
Ad hoc P2P
AccessPoint
Cellular
grrrr
zzz
ZZZ
6Scenario
- Just use USB key
P2P
AccessPoint
Cellular
_at_!
grrrr
zzz ZZZ
7Why doesnt P2P email work?
- Email clients tied to Internet services
- Needs DNS to look up MX record
- DNS, who is the mail server for work.com?
- Without Internet, email doesnt work
To alice_at_work.com
8Observation
- Mobile networking experience is poor
- Manual configuration of device and interfaces
- Different apps for different configs
- Apps cannot react to or take advantage of rich
mobile environments - The mobile hardware works
- Need systems software solution
9Solution
- Separate applications from underlying networking
concerns - Applications focus on their logic
- New node architecture manages network
- Late-bind network resources based on
capabilities, context, and preferences - Provide integrated resource management
10Approach
- Separating networking from applications
11Whats in an App?
Application Logic
Metadata
Data
Protocol(s)
Network Code
12Whats in an App?
Email client
Messages, attachments, folders, tags, flags, etc
Application Logic
Metadata
Data
POP/SMTP
Protocol(s)
Mail Files
TCP/IP
Network Code
13Externalize Data and Networking
Email Protocol
Wifi Network Code
Metadata
ApplicationLogic
HTTP Protocol
Data
Bluetooth Network Code
P2P Protocol
Data and Meta-Data Storage
Protocols
Network Interfaces
14Support Mobile Networking
- Separate networking from application to enable
seamless mobile networking - What are mobile networking environments?
- Infrastructure
- Ad hoc
- Delay Tolerant / Pocket Switched Networks
- Haggle targets all environments
15The Mobile Networking User
Infrastructure
16Haggle Architecture
- Data-centric app API
- Free from net complexity
- Seamless mobile networking
- Late binding
- Integrated resource management
17Haggle Architecture
- Late Binding
- Integrated Resource Management
18Late Binding Send
Metadata
19Late Binding Receive
20Haggle Architecture
- Late Binding
- Integrated Resource Management
21Resource Management
- Actions are delegated to Haggle as a Task
- Must consider Benefit and Cost of action
- Can change moment by moment
- Benefit e.g. priorities and preferences
- Cost e.g. energy, time, money
- Resource manager does cost/benefit comparison
using some utility function
22Implications of using Tasks
- Network architecture balances how and when
network resources are best used - Easily enable new application behavior
- Optional network tasks
- Predictive downloads
- High/Low priority operations
- Hoarding
23Implementation Status
- Implemented in Java J2ME for XP, Linux, Windows
Mobile - Ported to C .NET (runs better on Windows
Mobile) - Code at http//haggle.cvs.sourceforge.net/ (GPL)
- Prototype Apps Messaging, Web
24Haggle Applications (email)
25Haggle Applications (web)
GetNews
26Email Results
27Web Results
28Conclusions
- Haggle is a stab at a clean-slate redesign of the
network architecture for mobile nodes - Take networking out of the application
- Seamless mobile experience for user
- If data could get there or be found there, Haggle
enables it - One application for one user level task
29The End!
- http//www.haggleproject.org/
- jingsu_at_cs.toronto.edu
- http//www.cs.toronto.edu/jingsu/
- jws_at_microsoft.com
- http//research.microsoft.com/jws/
- Thanks for listening ?
- Any questions?
30Extra slides
31Aside on security etc
- Security was left out for version 1 in this
4-year EU project, but threats were considered - Data security can reuse existing solutions of
authentication/encryption - Some new threats to privacy
- Neighbourhood visibility means trackability
32Future Work Ideasresource-aware media sharing
- Haggle can do predictive application data store,
evict it if more important data comes along - Keep your photo albums in empty laptop space
- Keep public media in TiVo-like fashion
- Haggle makes forwarding decisions with knowledge
of resource consumption and application
priorities - Doesnt ship holiday snaps over GPRS from
Australia - Haggle can share data with neighbours,
facilitating use of free fast local connectivity
wherever possible
33Phase transitions and networks
- Solid networks wired, or fixed wireless mesh
- Long lived end-to-end routes
- Liquid networks Mobile Ad-Hoc Networking (MANET)
- Short lived end-to-gateway routes
- Gaseous networks Delay Tolerant Networking
(DTN), Pocket Switched Networking (PSN) - No routes at all!
- Opportunistic, store and forward networking
- One way paths, asymmetry, node mobility carries
data - Haggle targets all three
- Data may move across all three to get end-to-end
- Nodes change phase at any time an integrated
solution is needed to handle transitions
transparently
34Problem Scenario Messaging
- Bob wants to send a message to Alice
- Obvious choice email!
- No hotspot
- High cellular costs
- Current solutions require manual labor
- Reconfigure ad hoc connectivity
- Use USB key
- Current solutions are incomplete.Dont preserve
context
35Problem Scenario Searching
- Want some info while at a conference
- Local food information
- Todays news headlines
- Cellular or hotspot might be unavailable,
congested, or expensive - Chances are, others around have info
- But we cant get at, let alone share, this data
36Underlying Problem
- Applications must specify networking details
- Bind connection addresses, protocols, interfaces
- Dynamic binding is hard
- Apps are designed to assume specific networking
modes and availability of specific services. - Resource usage coordination hard
- Leave it to manual user intervention/selection
- Data context is hidden in app logic
37Solution
- Free apps from networking responsibility
- Focus on processing, procuring, and disseminating
data - Expose meta-data and relations
- Search across apps and nodes
- Node architecture contains network logic
- Binding decisions, resource management
- Apps function dynamically in mobile environments
38Externalize Naming, Routing, and Resource
Management
- Haggle targets all networking types
- Well connected infrastructure
- Mobile ad hoc networks
- Delay tolerant / pocket switched network
- Naming changes across different networks
- Underlying forwarding assumptions change
- Automatically manage device use of communication
due to power, priority, and cost.
39Externalize Data and Networking
Email Protocol
Wifi Network Code
Metadata
Application Logic
HTTP Protocol
Data
Bluetooth Network Code
P2P Protocol
- Application can procure or disseminate data
through any combination of protocols and networks
40Data Object
- Basic building block of Haggle
- Contains a set of type/value attribute pairs
41Data Object Filters
42Forwarding Objects
43Data Object Filters are Powerful Mechanisms
44Forwarding Objects
Forward
- Full structure is sent, empowering intermediary
nodes to - Use data as they see fit
- Use up-to-date state to make best forwarding
decision
Data
Data
Data
Data
Name
Name
Name
Name
45NeighbourDiscovery
Applications (messaging, web, etc)
Haggle Application Interface
Protocol
Resource
Data
Name
Connectivity
- Connectivities have responsibility for neighbour
discovery - Protocols use neighbours to mark NOs nearby
- Resource management controls frequency of
neighbour discovery
Forwarding
1. Set task
2. Execute
5. Insert new names
4. Neighbour list
3 Discovery
Connectivities (WiFi, BT, GPRS, etc)
46SendingData
Applications (messaging, web, etc)
3. Call send
1. Insert data
2. Insert names
Haggle Application Interface
Protocol
Resource
Data
Name
Connectivity
5. Set task send via X
- API for send split into three (sets of) calls
- FO can be sent to many nodes using many protocols
- Asynchronous
- Benefits of send change with time and context
4. Decide next hop X
6. Execute (when worth it)
Forwarding
8. Get encode data
7. Send!
10. Connect transmit
9. Raw data
Connectivities (WiFi, BT, GPRS, etc)
47ReceivingData
Applications (messaging, web, etc)
7. Notify interested apps
Haggle Application Interface
8. Mine names
Protocol
Resource
Data
Name
Connectivity
- Incoming data is still processed using tasks
- Eventually inserted into Data Manager
- Apps listen by registering interests (DOFilters)
5. Incoming data
6. Insert data objects
Forwarding
2. Incoming connection
1. Bind to networks
4. Query resource use
3. Connection
Connectivities (WiFi, BT, GPRS, etc)
48Email App Legacy Support
From bob_at_foo.comTo alice_at_bar.org... email ...
w/ attach
Localhost SMTP/POP proxyNative Haggle App
ForwardingObject
DataObject
NameObject
Haggle API
49Email App Legacy Support
50Web App Legacy Support
HTTP 1.1slashdot.org
GET slashdot.org
DataObject
Look for URL in Cache
Localhost HTTP proxyNative Haggle App
ForwardingObject
Found?
Haggle API
FilterObject
51Web App Legacy Support
Web client
Object request
http
Haggle
Haggle
Internal object cache
Internet
http
http
Web server
52Example msg fwd object
Forwarding
Alice
message/rfc822 ... email...
alice_at_foo.org
Cell Phone
application/pdf ... pdf document
000123456789
53Future work ideaResource-aware media sharing
- Devices could do a lot of media sharing
proactively - Predictive content download
- Auto backup/hoarding of multiple caches of
content(e.g. photos, media) - Sharing media with friends/family/public
- But resource management is crucial
- Contrast laptop in docking station to laptop on
plane - Proactive tasks can exhaust battery life easily
- Dont send holiday snaps over GPRS from Australia
- Current architecture does not suffice
- IP stack is difficult to configure with user
priorities (e.g. when should smart phone use GPRS
and when WiFi?) - Opportunistic neighbourhood connectivity
unutilised - Current file system makes it hard for apps to
fill disk with predictive content
54Email Results
I don't show no haggle adhoc, because it
obviously won't work.
55Web Results
I don't show no haggle P2P, because it
obviously won't work.