IEEE ISM 2008: Kalman Graffi: A Distributed Platform for Multimedia Communities


Published on

Online community platforms and multimedia content delivery are merging in recent years. Current platforms like Facebook and YouTube are client-server based which result in high administration costs for the provider. In contrast to that peer-to-peer systems offer scalability and low costs, but are limited in their functionality. In this paper we present a framework for peer-to-peer based multimedia online communities.We identified the key challenges for this new application of the peer-to-peer paradigm and built a plugin based, easily extendible and multifunctional framework. Further, we identified distributed linked lists as valuable data structure to implement the user profiles, friend lists, groups, photo albums and more. Our framework aims at providing the functionality of common online community platforms combined with the multimedia delivery capabilities of modern peer-to-peer systems, e.g. direct multimedia delivery and access to a distributed multimedia pool.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Stellen einfärben Evtl. Noch stellen einfärben oder sonstwie markieren
  • Mit voriger kombinieren: aus 2 Folien mach 1 All Plugin messages extend the same class, so that the engine responsible for message delivery threats them all as a an instance of the superclass -> All Plugin messages implement same Interface/API
  • IEEE ISM 2008: Kalman Graffi: A Distributed Platform for Multimedia Communities

    1. 1. A Distributed Platform for Multimedia Communities Kalman Graffi , Patrick Mukherjee, Aleksandra Kovacevic, and Ralf Steinmetz
    2. 2. Online Community Platforms <ul><li>What are ‘Online Communities’ ? </li></ul><ul><ul><ul><li>Web-based applications (StudiVZ, Facebook, MySpace, Xing) </li></ul></ul></ul><ul><ul><ul><li>Provide different services for community members </li></ul></ul></ul>Plugin architecture Events Personal information and photos Friends Social interaction Games
    3. 3. Drawbacks and Alternatives Current Online Community Plattforms <ul><li>Current status </li></ul><ul><ul><li>Growing number of millions of users </li></ul></ul><ul><ul><li>Common client/server based architecture </li></ul></ul><ul><li>Advantages: </li></ul><ul><ul><li>Centralized storage, accounting, security </li></ul></ul><ul><li>Disadvantages: </li></ul><ul><ul><li>High server administration costs Estimate: total cost per user 1$/year. Facebook has 99M users.  99M$/y Cost: servers, electricity, bandwidth </li></ul></ul><ul><ul><li>Low support for user-to-user multimedia interaction </li></ul></ul><ul><li>Alternative platform paradigms: P2P </li></ul><ul><li>Why Peer-to-Peer? </li></ul><ul><li>Advantages: </li></ul><ul><ul><li>Administration costs are distributed among peers (load balancing) </li></ul></ul><ul><ul><li>Every user is a peer – server and client </li></ul></ul><ul><ul><li>No single point of failure – robustness </li></ul></ul><ul><ul><li>Direct multimedia communication </li></ul></ul>
    4. 4. Related Peer-to-Peer Applications <ul><li>P2P = Illegal File Sharing ? </li></ul>1999 2000 2001 2002 2004 2003 2005 2006 2007 2008 … ≠ illegal file sharing Source: Above logos copied from the respective web page
    5. 5. Challenges for a Distributed Solution (1) <ul><li>What functions should an online community provide? </li></ul><ul><li>How to design an architecture for a p2p based online community? </li></ul><ul><li>What modules do we need? </li></ul><ul><li>How do these modules communicate to each other? </li></ul><ul><li>How do we make the architecture extendable? </li></ul><ul><li>How do we store data in a Peer-to-Peer network (fail-safe)? </li></ul><ul><li>How do we store a structured information of a user (profile…)? </li></ul>
    6. 6. Challenges for a Distributed Solution (2) <ul><li>What data structures should be used? </li></ul><ul><li>How can we store user data so that other users can access it? (photos, profiles) – authenticated access control? </li></ul><ul><li>How do we send a message if the receiver is offline? </li></ul><ul><li>How do we implement search? (age, gender, hobbies) </li></ul><ul><li>How do we implement range search? (age) </li></ul><ul><li>Idea: Build a distributed P2P-based Online Community Platform </li></ul><ul><ul><li>That allows to implement current P2P and multimedia research </li></ul></ul><ul><ul><li>To provide the function of facebook and more  new P2P killer application? </li></ul></ul>
    7. 7. Overview on our Solution: A Distributed Online Community Platform <ul><li>Extendable framework for user interface components </li></ul><ul><li>Stand-alone applications, core functionality and optional functionality of the system. Extendable. </li></ul><ul><li>Caching of data objects and messages </li></ul><ul><li>Low-delay user-to-user communication </li></ul><ul><li>Storage (store, modify, retrieve, delete) </li></ul><ul><li>Storage and replication with DHT </li></ul><ul><li>Building and administration of an overlay network </li></ul><ul><li>Standard Internet protocols </li></ul>
    8. 8. Categories of Peer-to-Peer Systems 1st Generation 2nd Generation from R.Schollmeier and J.Eberspächer, TU München 3rd Generation For keyword-based Search : used query mechanism: flooding, random-walk… For Lookup :  Routing DHT-Based Pure P2P Hybrid P2P Centralized P2P 1. Any terminal entity can be removed without loss of functionality 2. “Fixed” connections in the overlay network 3.Lookup costs: O(log n) 4.Costs for state: O(log n) 5.For: Lookup <ul><li>Any terminal entity can be removed without loss of functionality </li></ul><ul><li>Dynamic central entities for faster search </li></ul><ul><li>3.Search costs: variable </li></ul><ul><li>4.Costs for state: variable </li></ul><ul><li>5.For: Searches </li></ul>1.Any terminal entity can be removed with- out loss of functionality 2. No central entities, fully distributed 3.Search costs: O(n) 4.Costs for state: O(1) 5.For: Searches 1.Central entity is necessary to provide the service 2.Central entity is some kind of index database 3.Search costs: O(1) 4.Costs for state: O(n) 5.For: Searches Structured P2P Unstructured P2P
    9. 9. FreePastry – Most Used Academic DHT <ul><li>FreePastry – based on Pastry, DHT </li></ul><ul><ul><li>Provides lookup functionality </li></ul></ul><ul><ul><li>Documents are mapped to peers: for every Document-ID there is a responsible peer </li></ul></ul><ul><ul><li> all document owners and requesters contact this peer </li></ul></ul>Node 1008 queries item 3000 Responsible peer found Responsible for 1008 + 1024 3 Responsible for 3000 1622 1009-1622 2207 2012-2207 2906 2683-2906 3485 2907-3485 2011 1623-2011 1008 710-1008 709 660-709 659 612-659 2682 2208-2682 611 3486-… 0-611 Use shortcuts/fingers… 1 2 Responsible for 2207 + 512
    10. 10. Architecture Components <ul><li>Plugins can access the Cache and pick the required objects or request objects </li></ul><ul><li>Information Cache: </li></ul><ul><ul><li>Cache for data objects/messages retrieved by the Storage Dispatcher/Message Dispatcher </li></ul></ul><ul><ul><li>Enables the Plugins to reuse the data </li></ul></ul><ul><li>Message Dispatcher: user-to-user communication </li></ul><ul><ul><li>For low-delay multimedia communication </li></ul></ul><ul><ul><li>Dispatches incoming msgs. to addressed Plugins </li></ul></ul><ul><li>Storage Dispatcher: storage and retrieval of data objects </li></ul><ul><ul><li>Provides useful API for PAST: store locally/distributed, modify items remotely </li></ul></ul><ul><li>PAST: persistent P2P storage utility based on Pastry (DHT) </li></ul><ul><ul><li>Provides replication, Insert(obj), lookup(key) </li></ul></ul>
    11. 11. Plugin Strategy (1) <ul><li>Everything is a Plugin </li></ul><ul><li>Plugins are stand-alone applications </li></ul><ul><ul><li>Mandatory or optional </li></ul></ul><ul><li>Plugins implement common interfaces </li></ul><ul><ul><li>Every Plugin has an unique Identifier </li></ul></ul><ul><ul><li>Plugins and User Interfaces are decoupled </li></ul></ul><ul><li>Example: Friends Plugin: </li></ul><ul><li>requestfriend <username> <reason> </li></ul><ul><li>acceptfriend <request key> <initiator> </li></ul><ul><li>declinefriend <request key> <initiator> </li></ul><ul><li>deletefriend <user name> </li></ul><ul><li>getfriends <username> </li></ul><ul><li>getmyfriendslist (no args) </li></ul><ul><li>getfriendsmsgs (no args) </li></ul><ul><li>friendsmsgavail (no args) </li></ul>
    12. 12. Plugin Strategy (2) <ul><li>Plugins exchange Plugin specific messages </li></ul><ul><ul><li>Using Message Dispatcher, Storage Dispatcher, Information Cache </li></ul></ul><ul><li>Undelivered Plugin-messages are stored and delivered later </li></ul>
    13. 13. A Variety of Plugins <ul><li>Plugins implement dedicated functionalities </li></ul><ul><ul><li>Can reuse each other, modular design </li></ul></ul><ul><ul><li>All of them use the Information Cache and Message Dispatcher </li></ul></ul><ul><ul><ul><li>List of Plugins: </li></ul></ul></ul><ul><ul><ul><li>Login Plugin </li></ul></ul></ul><ul><ul><ul><li>Profile Plugin </li></ul></ul></ul><ul><ul><ul><li>Search Plugin </li></ul></ul></ul><ul><ul><ul><li>Friends Plugin </li></ul></ul></ul><ul><ul><ul><li>Groups Plugin </li></ul></ul></ul><ul><ul><ul><li>Photos Plugin </li></ul></ul></ul><ul><ul><ul><li>Messaging Plugin </li></ul></ul></ul><ul><ul><ul><li>Live Chat Plugin </li></ul></ul></ul><ul><ul><ul><li>Ext. Mess. Plugin </li></ul></ul></ul>Overview on plugins Multimedia Comm. Plugin
    14. 14. Data Structure: Distributed Linked List <ul><li>Photo Plugin: </li></ul><ul><ul><li>Albums, images </li></ul></ul><ul><ul><li>Albums contain a collection of images </li></ul></ul><ul><li>Distributed Linked List: </li></ul><ul><ul><li>Every single image is stored separately </li></ul></ul><ul><ul><li>Album objects hold a list of storage keys of the images </li></ul></ul><ul><ul><li>A specific object holds the list of storage keys of the albums </li></ul></ul><ul><ul><li>High granularity of stored data objects </li></ul></ul><ul><ul><li>Better load balancing of the resources </li></ul></ul><ul><ul><li>Used for photo albums, friends lists, group lists, storing structured data (profile)… </li></ul></ul>
    15. 15. Multimedia Communication Principle Distributed Linked List in the DHT: Participants of Stream X 3) Lookup list, if not already in Cache 5) Recieve multimedia stream, bypassing the Cache 1) Click on „Join multimedia stream X“ 2) Lookup participants list for stream X 4) Contact stream provider for content
    16. 16. Current and ongoing work <ul><li>Already done: </li></ul><ul><ul><li>Security framework for pseudonymical authentication, secure communication, granular access control </li></ul></ul><ul><ul><li>Porting to OSGI  For easier updating of Plugins on the fly from the Internet </li></ul></ul><ul><li>Ongoing work: </li></ul><ul><ul><li>Two student teams (4-5 each) working on a fancy GUI </li></ul></ul><ul><ul><li>One student team implementing collaboration features: </li></ul></ul><ul><ul><ul><li>Shared calendar, workspace for group collaboration, voice communication … </li></ul></ul></ul><ul><ul><li>One master student: scalable video streaming in heterogeneous p2p networks </li></ul></ul><ul><li>Registered to present at CeBIT 2009 </li></ul>
    17. 17. Ongoing work <ul><li>Currently implementing: </li></ul><ul><li>SkyEye.KOM – An Information Mana-gement Over-Overlay for Getting the Oracle View on Struct. P2P Systems </li></ul><ul><li> Presented 7 days ago at IEEE ICPADS 08, in Melbourne </li></ul><ul><li>Provides: </li></ul><ul><ul><li>Global view on statistics of running system: avg./std./min./max on all metrics </li></ul></ul><ul><ul><li>Capacity-based peer search: Find peers fulfilling specific requirements </li></ul></ul><ul><li>Part of the Skynet Project: </li></ul><ul><ul><li>Building a self-optimizing, self-aware autonomous P2P system </li></ul></ul><ul><ul><li>Have a look at </li></ul></ul>? Does my p2p system work? Pick good peers Information Management Over-Overlay
    18. 18. Questions? KOM Have a look at: