Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... ·...

28
Socially‐Driven Web Sites for the Masses Frank Uyeda Diwaker Gupta, Amin Vahdat, George Varghese University of California, San Diego

Transcript of Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... ·...

Page 1: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

Socially‐DrivenWebSitesfortheMasses

FrankUyedaDiwakerGupta,AminVahdat,GeorgeVarghese

UniversityofCalifornia,SanDiego

Page 2: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Grass‐rootscommuniDeswishtohavewebsitesthatallowthemtosubmitandflexiblysearchfordata.

•  ThesecommuniDesrequiretoolsthataresimplerthanthosecurrentlyavailable(e.g.Apache,PHP,MySQL).

•  Tobuildsuchtoolsweneedmodelsfor:–  dataobjects,pagelayout,and,mostimportantly,search.

•  WehaveinstanDatedthesemodelinaneasytouselanguagecalledGrassRoots,andcompilercalledGR.

Page 3: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

ApplicaDonLogic(PHP,Ruby,Python)

PresentaDon(Dreamweaver)

Wikis,Blogs,CMS(WordPress,Joomla)

WebFrameworks(Zend,Rails,Django)

PresentaDon

ApplicaDonModel

ApplicaDonLogic(AutoGenerated)

ConfiguraDon

DatabaseConfiguraDon(Pre‐specified)

DatabaseConfiguraDonDatabaseConfiguraDon

(AutoGenerated)

WebApplicaDon

Database(MySQL)

Pre‐packaged Custom GrassRoots

Page 4: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  MoDvaDon•  Modeling

•  Results

Page 5: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Bigsocialnetworks‐‐internaDonalphenomenon.–  NorthAmerica:Facebook(250M)–  SouthAmerica/India:Orkut(67Musers)

•  Notjust“socialnetworks”–  YouTube(videosharing),Digg(socialbookmarking)

•  Growinginterestinsmallersitesspecializedbyindustry,enterpriseandcommuniDes.– Wellpoint(insurance)–  Cisco(companyspecific)

Page 6: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Lotsofpeople!•  Example:PhysicsResearchers

– Wanttosharedatasets,taginteresDngfeatures

•  Example:DigitalArDsts– WanttosharedatavisualizaDonprograms&collaborate

•  Example:LocalParents&Baby‐sigers– WantjobposDngs,referralnetwork

•  Requiredatabase&applicaDonlogic.ThesecommuniDeslackresourcesandexperDse.

Needcheap,easy‐to‐usetools!

Page 7: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Difficulttoprototypenewideas–  Notclearwhichwebdevelopmentframeworkwillworkbest–  Requireknowledgeofdatabaseschemas,webprogramming

languages,designtechniques

•  SignificantDmeandexperDseneededtodevelopanoperaDonalsite–  Large,complexcodebase–  IntegraDonwithusermanagement,accesscontrolandweb

API’s–  Engineerforsecurityandprivacy

•  Generaltechniquestoscaleareunknown–  Performancetuningis“blackmagic”–  Hireaconsultant

Addressedinthistalk

Page 8: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

Site Objects Search

Flickr Images Keyword,Tags,Comparison(geo‐tags)

YouTube Video Keyword,Tags

Last.fm Audio Tags,Structural

Del.icio.us URLs Tags

Digg URLs Taxonomy,Keyword

Craigslist LisDngs(Image+Text) Taxonomy,Keyword,Comparison

Wikipedia ArDcles(Text) Keyword,Structural

Facebook UserProfile(Image+Text) Structural,Tags

Page 9: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Userscreateanduploadcontent•  Contentorganized/rankedbaseduserinput•  Searchbasedon:– Associatedkeywords(e.g.,Del.icio.ustags)– StructuralrelaDonships(e.g.,friendsinFacebook)– Taxonomy/Hierarchy(e.g.,categoriesinDigg)

– Comparison/Proximity(e.g.,geo‐tagginginFlickr)

Page 10: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Model:Createanabstractmodelforcommunitydrivenwebsites.

•  Specify:AllowdeveloperstoexpressanabstractsitemodelintheGrassRootslanguage.

•  Compile:TheGrassRootscompilergenerateswebcodeandconfiguresstorage.

Page 11: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  MoDvaDon•  Modeling

•  Results

Page 12: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Insight1(Layout):Pagesarecomposedofpanesthatarepopulatedbysearchresults.

•  Insight2(NavigaDon):AllnavigaDonissearch.

•  Insight3(Search):Graph‐basedsearchwithagributefilteringcoversexisDngsocialsearchmechanisms.

Page 13: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  GrassRootsobjects:– High‐leveltypes(e.g.,video,image,text),

– CompositetypeslikeC‐structs– Builtinagributes:taggable,commentable

•  RelaDonshipsasGraphs– GeneralGraph(e.g.friendsinFacebook)– DirectedGraph(e.g.YouTubeSubscribers)– Hierarchy/Tree(e.g.Craigslistcategories)

Page 14: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

Whatis?•  Communityphoto‐sharingwebsite

•  Usersassociatewitheachother•  Imagesorganizedusing:– Keywordtags– User“photosets”– Group“pools”

Page 15: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

PictureSummaryPane

SearchPane

SetSummaryPane

StaDcPane

Page 16: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Apageiscomposedofoneormorepanes– Panesarepopulatedbyembeddedsearches

•  Pane– AregionwithinthePage– HandlestheinputandoutputofaparDculardatacollecDon,ordisplaysstaDccontent

– Definedonce,andreusedacrossmanypages– PaneaestheDcscustomizedwithCSS

Page 17: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

User‐specifiedSearch

Pre‐specifiedSearch

Page 18: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  NavigaDonassociatesclickingonadataobjecttoapageandsearchparameters.–  Pagesembedsearches.–  the“linkto”keywordprovidesparameterstosearches.

•  Syntax:[objectinpane]‐>linkto[page]([params]);

•  Example:Clickingonauser’snamedisplaysallpicturesownedbythatuser.user‐>linktoall_users_pictures(user);

Page 19: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

Hierarchy

AgributeFilter

Ordering

Page 20: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

SELECT<collecDon>[FROM<structuralrelaDon>][WHERE<filtercondiDon>…][ORDERBY<rankingfuncDon>…]

•  StructuralrelaDons:–  Graphs:neighbor,–  Tree:subtree,parent,children

•  FiltercondiDons:–  matches,contains,greaterthan,between,withindistance,taggedby

•  Ranking:–  CombinaDonofagributesorgraphproperDes(e.g.nodedegree)

Page 21: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  MoDvaDon•  Modeling

•  Results

Page 22: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  Claim:SmallchangestothespecificaDonprovideimportantfeaturesatlowcost.

•  Example:– Flickrtagsphotoswithkeywords– FacebooktagsphotoswithUsers

•  HowdowechangeourFlickrspecificaDontoincorporateUsertagging?

Page 23: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of
Page 24: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

COMPOSITEPicture{IMAGEpic;

TEXTpic_Dtle; TEXTpic_descripDon;}(taggable,taggablebyUSER,commentable);

PAGEpic_detail(Picturep){ Detail(Picture)main:LOOKUPPicturep;}

DetailPane:Picture{ _owner‐>linktouser_profile(_owner); _tag‐>linktotag_result(_tag); _tag.USER‐>linktouser_profile(_tag.USER); "addtag"‐>linktoadd_tag(this); "addtoset"‐>linktoadd_to_set(this); "addtogroup"‐>linktoadd_to_group(this);}

Page 25: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

UserTags

Page 26: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  ImplementedinJava(~15Klinesofcode)

•  PagegeneraDoninvariouslanguages.–  CurrentlysupportsPHP

Compiler

SpecificaDon ParserAbstractModel

DatabasePlanner

DatabaseSchema

PageGenerator

ServerScripts

DatabaseWebServerHTMLPages

Page 27: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

ImplementedFlickr‐likesiteusingRailsplug‐ins&GR•  CodeComplexity–  50linesofcodeacross19files(vs.180linesin1file)

•  Pictureretrievalthroughput:– Grassrootsgives2xmaxthroughput.

•  Grassrootsonlygeneratesnecessarycode•  Rubyhaslargecalltree.

•  Tagsearchthroughput–20mostrecent–  500:1performancedifference,favoringGrassRoots.–  SuspectpoorSQLqueries&failuretoparallelize.

Page 28: Socially‐Driven Web Sites for the Massesconferences.sigcomm.org/sigcomm/2009/workshops/... · Flickr‐like site using Rails plug‐ins & GR • Code Complexity – 50 lines of

•  NeedbegertoolsforconstrucDngsocialsites.•  LeveragethecommonaliDesamongsites.

•  WeprovideabstracDonstoeasedevelopment.– Pagesarecomposedofpanes– AllnavigaDonissearch– Graph‐basedsearchwithagributefiltering

•  AbstracDonsprovideflexibility&opportunityforopDmizaDon.