throbber
United States Patent
`US 8,041,784 B1
`(10) Patent No.:
`(12)
`Amidonet al.
`(45) Date of Patent:
`Oct. 18, 2011
`
`
`US008041784B1
`
`(54) REDUNDANT HYBRID P2P CONTENT
`SHARING
`
`(75)
`
`:
`:
`Inventors: Christopher M. Amidon, Apex, NC
`(US); Alfredo C, Issa, Apex, NC (US);
`Richard J. Walsh, Raleigh, NC (US)
`
`(73) Assignee: Qurio Holdings, Inc., Raleigh, NC (US)
`(*) Notice:
`Subjectto any eisctaimer. the termons
`patent 1s extended or adjusted under
`US.C. 154(b) by 1351 days.
`
`(21) Appl. No.: 11/475,635
`
`(22)
`(51)
`
`Jun. 27, 2006
`
`Filed:
`Int.Cl
`(2006.01)
`GO6F 15/16
`(2006.01)
`GO6F 15/177
`709/220: 709/203
`(52) US. Cl
`;
`WS. CL ee ceeceeceeescneteeeeees
`(58) Field of Classification Search .................. 709/203,
`—
`—
`709/220
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`709/242
`6,065,062 A *
`5/2000 Periasamyet al
`6.351,792 BL*
`2/2002 Milillowuue TLU/162
`6,687,732 Bl
`2/2004 _Bectoret al.
`6,920,637 B2*
`7/2005 Masonetal. we. 719/318
`7,370,015 B2
`5/2008 Gvily
`TAOLIIS Bl
`7/2008 Arsenault
`2001/0007099 Al
`7/2001 Rau etal.
`2002/0112001 Al
`8/2002 Sutherlandetal.
`2002/0184310 Al* 12/2002 Traversat et al... 709/204
`2002/0188657 Al* 12/2002 Traversat et al.
`........... 709/201
`2003/0093520 Al
`5/2003 Beesley
`2003/0177246 A1*
`9/2003 Goodman etal.
`2004/0044723 Al
`3/2004 Belletal.
`2004/0070678 Al
`4/2004 Toyamaetal.
`2004/0148434 Al*
`7/2004 Matsubara etal.
`
`............ 709/228
`
`........... 709/246
`
`2004/0236983 Al* 11/2004 Burtonetal. 0. 714/6
`2005/0188085 Al*
`8/2005 Linetal. wo. 709/225
`2005/0190273 Al
`9/2005 Toyamaetal.
`2005/0229243 Al
`10/2005 Svendsenetal.
`006/0047839 Al
`3/2006. Tate et al.
`.......... 370/352
`2006/0077955 Al*
`4/2006 Poustchietal.
`2006/0136551 Al*
`6/2006 Amidonetal... 709/203
`2007/0073837 AL*
`3/2007 Johnson-McCormick
`
`2007/0198636 A1l*
`
`WO
`
`x
`
`Ct AL. creer 709/217
`8/2007 Inamoto etal. ow.. 709/203
`FOREIGN PATENT DOCUMENTS
`WO 2006/055535
`5/2006
`OTHER PUBLICATIONS
`.
`,
`.
`oo
`Pix Village, http://www.pixvillage.com/online-photo-sharing-fea-
`tures-p2p.aspx.
`* cited by examiner
`.
`.
`Primary Examiner — Larry Donaghue
`(74) Attorney, Agent, or Firm — Withrow & Terranova,
`PLLC
`
`ABSTRACT
`(57)
`.
`.
`.
`A redundant hybrid peer-to-peer content sharing system is
`provided.In general, the system includesa proxy hosted by a
`central server and, for each user, a primary user device host-
`ing a primary sharing engine and one or more secondary user
`devices hosting secondary sharing engines. The user’s shared
`imagesare hosted by the primary user device, and, based on
`the capabilities of the secondary user devices, versions ofthe
`shared images are copied to the secondary devices. When a
`guestat a guest nodedesires to view a shared image, a request
`for the shared imageis provided to the proxy. Generally, ifthe
`primary user device is online, the proxy forwards the request
`to the primary device.Ifthe primary user deviceis offline,the
`proxyidentifies one of the secondary user devices capable of
`serving the request and forwards the request to the identified
`secondary user device.
`
`17 Claims, 7 Drawing Sheets
`
`
`
`IDENTIFY OPTIMAL
`
`DEVICE TO SERVE REQUEST
`
`
`
`
`RECEIVE RESPONSE
`
`FORWARD RESPONSE
`TO GUEST NODE
`
`
`FORWARD REQUEST
`MESSAGE
`
`TO IDENTIFIED DEVICE
`
`RETURN
`ERROR
`
`
`
`
`Data Co Exhibit 1042
`Data Co v. Bright Data
`
`Data Co Exhibit 1042 Data Cov. Bright Data
`
`

`

`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 1 of 7
`
`US 8,041,784 B1
`
`onevect
`
`JdDIASGYasn
`
`(AYVNIYd)
`
`AWW
`
`
`YHAAYAS
`
`IWHLNSOaoPANISN]ASNIYVHS
`
`
`
`vr0AXOUdLINNS5VHOLS
`
`
`
`AGONLSAND
`
`
`
`HASMOHdGAM
`
`0s
`
`AWMALWS
`
`9%
`
`
`
`3O0IAadY3aSN
`
`(AYVWONOO3S)
`
`
`
`ANIONSONIWHS
`
`AYVGNOOAS
`
`ce
`
`SI
`
`ep
`
`SoIAAGY3asn
`LINNSOVHOLSLINNSDVYOLS —9€OvNIDN
` oprBE
`
`ANIONONIYVHS;KUVONOOSS
`
`(AUVONOO9AS)FOIAgGY¥3sn
`AYVONOD3S'
`
`AYVONOO3S
`
`ve
`
`
`
`LINNSDVHOLS
`
`we ee em Re ee ee eee ee ae er ee eee ee ee ee eeeee
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 2 of 7
`
`US 8,041,784 B1
`
`DOWNLOAD,INSTALL, AND REGISTER
`PRIMARY SHARING ENGINE
`
`DOWNLOADANDINSTALL
`SECONDARY SHARING ENGINE
`
`CONFIGURE SECONDARY SHARING ENGINE
`
`SYNCHRONIZE
`
`REPEAT STEPS 102-106 FOR EACH
`DESIRED SECONDARY SHARING ENGINE
`
`ADD NEW IMAGES
`
`SYNCHRONIZE
`
`FIG. 2
`
`100
`
`102
`
`104
`
`106
`
`108
`
`110
`
`112
`
`

`

`202
`
`
`PRIMARY
`SHARING ENGINE
`OVERRIDE?
`
`TO FIG. 3C
`
`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 3 of 7
`
`US 8,041,784 B1
`
`RECEIVE REQUEST
`
`
`
`
`
`
`
`
`
`
`
`PRIMARY
`
`DEVICE
`
`TO FIG. 3B
`ONLINE?
`
`FORWARD REQUEST
`TO PRIMARY DEVICE
`
`RECEIVE RESPONSE
`
`206
`
`208
`
`FORWARD RESPONSE
`TO GUEST NODE
`
`210
`
`FIG. 3A
`
`

`

`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 4 of 7
`
`US 8,041,784 B1
`
`FROM FIG. 3A
`
`
`
`212
`DOES GUEST
`HAVE PERMISSION TO ACCESS
`
`SECONDARY
`
`DEVICES?
`
`IDENTIFY SECONDARY
`DEVICE TO SERVE REQUEST
`
`FORWARD REQUEST
`TO IDENTIFIED
`SECONDARYDEVICE
`
`RECEIVE RESPONSE
`
`
`
`
`
`
`220
`
`222
`
`FORWARD RESPONSE
`TO GUEST NODE
`
`FIG. 3B
`
`

`

`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 5 of 7
`
`US 8,041,784 B1
`
`FROM FIG. 3At
`
`
`YES
`
`
`
`
`
`224
` DOES GUEST
`HAVE PERMISSION TO ACCESS
`SECONDARY
`DEVICES?
`
`NO
`
`
`232
`
`IDENTIFY OPTIMAL
`DEVICE TO SERVE REQUEST
`
`234
`
`FORWARD REQUEST
`
`TO IDENTIFIED DEVICE
`
`RECEIVE RESPONSE
`
`236
`
`230
`
`228
`
`RETURN
`
`(ERROR-
`
`PROCEED
`
`
`
`seeo06
`(FIG. 3A)
`
`|PORARSFNCDE ~
`
`FORWARD RESPONSE
`TO GUEST NODE
`
`FIG. 3C
`
`

`

`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 6 of 7
`
`US 8,041,784 B1
`
`
`
`AOVsYHALNIHASN
`
`‘99°
`
`
`
`dOVsaYS.LNI¥asn
`
`8S
`
`
`
`WALSASTOW.LNOD
`
`
`
`WALSASTOULNOO
`
`09
`
`9AYOWSAW
`
`AYVONOOAS
`
`
`
`ANION]ONIYVHS
`
`ce
`
`LINNADVHOLS
`
`ve
`
`es
`
`AYOWAW
`
`vs
`
`
`
`ANISN]SNIYVHS
`
`AYVINIdd
`
`82
`
`LINNSDVHOLS
`
`0€
`
`
`
`FOVAYALNINOLLVOINNAIWOO
`
`
`
`JOVsYSLNINOLLVOINNWINOD
`
`v9
`
`S‘Sld
`
`9S
`
`bSld
`
`
`
`

`

`U.S. Patent
`
`Oct. 18, 2011
`
`Sheet 7 of 7
`
`US 8,041,784 B1
`
`SOvsYSLNIHaSn
`
`bl
`
`
`
`WALSAS1IOH.LNOO
`
`89
`
`AYOWAW
`
`oz
`
`AXOud
`
`vv
`
`
`
`AOVAYALNINOLLVOINNNWOS
`
`eZ
`
`9‘Sid
`
`
`

`

`US 8,041,784 Bl
`
`1
`REDUNDANT HYBRID P2P CONTENT
`SHARING
`
`FIELD OF THE INVENTION
`
`Thepresentinventionrelatesto a hybrid peer-to-peer (P2P)
`content sharing system.
`
`2
`reading the following detailed description of the preferred
`embodiments in association with the accompanying drawing
`figures.
`
`BRIEF DESCRIPTION OF THE DRAWING
`FIGURES
`
`The accompanying drawing figures incorporated in and
`BACKGROUNDOF THE INVENTION
`formingapart ofthis specification illustrate several aspects of
`10
`the invention, and together with the description serve to
`explain the principles of the invention.
`FIG.1 illustrates a hybrid peer-to-peer (P2P) content shar-
`ing system according to one embodiment of the present
`invention;
`FIG.2 is a flow chart illustrating an installation, configu-
`ration, and synchronization process for the primary and sec-
`ondary sharing engines of FIG. 1 according to one embodi-
`mentof the present invention;
`FIGS. 3A-3C comprise a flow chart illustrating the opera-
`tion of the proxy of FIG. 1 according to one embodiment of
`the present invention;
`FIG. 41s a block diagram ofthe primary user device ofFIG.
`1 according to one embodimentofthe present invention;
`FIG. 5 is a block diagram of one of the secondary user
`devices of FIG. 1 according to one embodimentofthe present
`invention; and
`FIG.6 is an exemplary block diagram of the central server
`of FIG. 1 according to one embodimentofthe present inven-
`tion.
`
`With the proliferation of digital cameras, numerous online
`photosharing services have emerged and are becoming
`widely accepted by photo enthusiasts. The photosharingser-
`vices are generally based on one oftwoarchitectures. Thefirst
`is a centrally hosted serving architecture where a central
`server hosts digital images for a number ofusers and provides
`photosharing services to guests. The secondis a peer-to-peer
`(P2P) architecture where a user creates and stores photo
`albums on the user’s computer. The user’s computer then
`provides photosharing services to guests in a P2P fashion.
`For various reasons, some P2P systems now employ a
`hybrid P2P architecture where a proxy server operates as a
`single point of entry for all of the peer nodes in the P2P
`system. Thus, when a guest node requests a digital image
`from a peer node, the request is first provided to the proxy
`server, which in turn provides the request to the peer node. In
`a similar fashion, the response from thepeer nodeis typically
`routed through the proxy server.
`One issue with both the P2P architecture and the hybrid
`P2Parchitectureis that a user’s shared imagesare only avail-
`able when the user’s peer device is online. In an attempt to
`alleviate this problem, some hybrid P2P architectures incor-
`porate a caching proxyserverthat operates to cache recently
`requested images. As a result, subsequent requests for an
`image stored in the cache maybe served directly from the
`caching proxy server. As such, the cached imagesare avail-
`able even ifthe corresponding peer node hosting the imagesis
`offline. However, caching proxy servers only cache previ-
`ously requested images and, due to their limited storage
`space, only cache a small subsetofall images shared by the
`peer nodes in the system. Thus, the issue of availability of
`shared images whenthe hosting peeris offline still remains.
`Therefore, there is a need for an improved P2P content
`sharing architecture that substantially eliminates the issue of
`availability of shared content whenthe hosting peeris offline.
`
`SUMMARYOF THE INVENTION
`
`The present invention provides a redundant hybrid peer-to-
`peer content sharing system. In general, the system includes a
`proxy hosted by a central server and, for each user, a primary
`user device hosting a primary sharing engine and one or more
`secondary user devices hosting secondary sharing engines.
`The user’s shared images are hosted by the primary user
`device, and, based on the capabilities of the secondary user
`devices, versions of the shared imagesare copied to the sec-
`ondary devices. When a guestat a guest node desires to view
`a shared image, a request for the shared imageis provided to
`the proxy. Generally, if the primary user device is online, the
`proxy forwards the request to the primary device.If thepri-
`mary user device is offline, the proxy identifies one of the
`secondary user devices capable of serving the request and
`forwards the requestto the identified secondary user device.
`Those skilled in the art will appreciate the scope of the
`present invention and realize additional aspects thereof after
`
`15
`
`20
`
`25
`
`30
`
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`The embodiments set forth below represent the necessary
`information to enable those skilled in the art to practice the
`invention andillustrate the best modeofpracticing the inven-
`tion. Upon reading the following description in light of the
`accompanying drawing figures, those skilled in the art will
`understand the concepts of the invention and will recognize
`applications of these concepts not particularly addressed
`herein.It should be understoodthat these concepts and appli-
`cationsfall within the scope of the disclosure and the accom-
`panying claims.
`FIG.1 illustrates a hybrid peer-to-peer (P2P) image shar-
`ing system 10 according to one embodimentof the present
`invention. While the discussion herein focuses on digital
`images,the present invention is equally applicable to any type
`of digital content. The system 10 includes a numberof user
`devices 12-18 associated with a particular user desiring to
`share images. Although notillustrated, the system 10 may
`additionally include user devices associated with any number
`ofadditional users. Eachofthe user devices 12-18 maybe,for
`example, a personal computer, a laptop computer, a Personal
`Digital Assistant (PDA), a mobile telephone, a Digital Video
`Recorder (DVR) such as a TiVo DVR,or the like. The user
`devices 12-18 are connected to a central server 20 via a
`
`network 22, which is preferably a public distributed network
`such as, but not limitedto, the Internet. In this example, the
`user devices 12-16 are part of a Local Area Network (LAN)
`24 and are connectedto the network 22 by a gateway 26. Note
`that while the user devices 12-16 are shown as being part of
`the LAN 24, the present invention is not limited thereto.
`The user device 12, which is hereafter referred to as the
`primary user device 12, includes a primary sharing engine 28
`and a storage unit 30. The primary sharing engine 28 is
`preferably implemented in software. However, the present
`invention is not limited thereto. The primary sharing engine
`
`

`

`US 8,041,784 Bl
`
`3
`28 operates to share imagesstored in the storage unit 30. The
`storage unit 30 may be any digital storage component or
`device such as, for example, a hard-disc drive, memory,or the
`like.
`The user device 14, which is hereafter referred to as the
`secondary user device 14,
`includes a secondary sharing
`engine 32 and a storage unit 34. The secondary sharing engine
`32 is preferably implemented in software. However,
`the
`present invention is not limited thereto. As discussed below in
`detail, in operation, at least one version of each of the images
`shared by the primary sharing engine 28 is copied to the
`secondary user device 14 andstored in the storage unit 34. In
`general, the secondary sharing engine 32 operates as a redun-
`dant sharing engine for sharing the shared images when the
`primary user device 12 is offline. In addition, for some types
`of devices, it may be desirable to further include a light-
`weight application that activates the secondary sharing
`engine 32 upon receiving a request from the central server 20.
`In a similar fashion, the user device 16, which is hereafter
`referred to as the secondary user device 16, includes a sec-
`ondary sharing engine 36 anda storage unit 38.
`The user device 18 may be, for example, a personal com-
`puter associated with the user such as, but not limited to, the
`user’s office computer, the user’s PDA or mobile telephone
`having access to the network 22, or the like. The user device
`18, whichis hereafter referred to as the secondary user device
`18, includes a secondary sharing engine 40 anda storage unit
`42. The secondary sharing engine 40 is preferably imple-
`mented in software. However, the present invention is not
`limited thereto. As discussed below in detail, in operation, at
`least one version of each of the imagesshared by the primary
`sharing engine 28 is copied to the secondary user device 18
`and stored in the storage unit 42. In general, the secondary
`sharing engine 40 operates as a redundant sharing engine for
`sharing the shared images whenthe primary user device 12 is
`offline. In addition, for some types of devices,
`it may be
`desirable to further include a light-weight application that
`activates the secondary sharing engine 40 upon receiving a
`request from the central server 20.
`The central server 20 includes a proxy 44 and hasaccess to
`user accounts database 46. While the central server 20 is
`
`illustrated as a single server, it may alternatively be imple-
`mented as a numberofdistributed servers. The proxy 44 may
`be implemented in hardware, software, or a combination of
`hardware and software. In general, when the primary user
`device 12 is online, the proxy 44 operates to route requests for
`shared images hosted by the primary user device 12 to the
`primary user device 12. However, when the primary user
`device 12is offline, the proxy 44 operates to identify one of
`the secondary user devices 14-18 for serving the request and
`routes the request to the identified one of the secondary user
`devices 14-18.
`
`Optionally, the proxy 44 may provide a caching service,
`where images previously requested may be cachedat the
`central server 20. Thereafter, requests for the cached images
`may beserved by the central server 20. The proxy 44 may
`implement a caching algorithm that takes into account the
`versions, or types, of images hosted by the secondary user
`devices 14-18. For example, if none of the secondary user
`devices 14-18 host high-quality versions of the shared
`images, then the caching algorithm maygivepriority to high-
`quality versions of the shared images. As a result, even when
`the primary user device 12 is offline, the requesting node may
`obtain a high-quality version of a desired imageif the image
`is cachedat the central server 20. Ifthe imageis not cached at
`the central server 20, the proxy 44 then routes the request to
`one of the secondary user devices 14-18.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`The user accounts database 46 generally includes account
`information for a numberofusers, such asthe userofthe user
`devices 12-18, registered with the system 10 for sharing
`images. As an example,forthe user ofthe user devices 12-18,
`the user’s account information includes information identi-
`
`fying the user devices 12-18 and associating the user devices
`12-18 with the user, information identifying which ofthe user
`devices 12-18 is the primary user device hosting the primary
`sharing engine and which of the user devices 12-18 are the
`secondary user devices hosting secondary sharing engines. In
`addition, for each of the secondary user devices 14-18, the
`user’s account information includes information identifying
`the types, or versions, of the images shared and stored by the
`primary user device 12 that are stored on each of the second-
`ary user devices 14-18. For example, for each image shared
`by the primary user device 12, the secondary devices 14-18
`maystore one or moreofa full size version; a high, medium,
`and low quality screen size version; and a high, medium, and
`low quality thumbnail version of the image. As discussed
`below in more detail, the types of images hosted by each of
`the secondary user devices 14-18 may be configured based on
`the capabilities of the secondary user devices 14-18 and,
`optionally, the number of images shared by the primary user
`device 12.
`
`The system 10 also includes a guest node 48, which may be
`a personal computer,
`laptop computer, a PDA, a mobile
`phone,orthe like having access to the network 22. The guest
`node 48 mayor maynot bea peer nodein the P2P network.In
`this example, the guest node 48 requests shared images using
`a web browser 50. However, the present invention is not
`limited thereto. The guest node 48 mayalternatively request
`shared images using, for example, a proprietary application
`associated with the system 10.
`FIG.2 is a flow chart illustrating an installation, registra-
`tion, and synchronization process for the primary and sec-
`ondary sharing engines 28, 32, 36, and 40. First, the primary
`sharing engine 28 is downloaded andinstalled on the primary
`user device 12, and the user of the primary user device 12
`registers with the central server 20 (step 100). Registration
`mayinclude providing information suchas, but not limited to,
`the user’s name, mailing address, e-mail address, and demo-
`graphic information. Thereafter, in this example, the second-
`ary sharing engine 32 is downloadedand installed on the
`secondary user device 14 (step 102). Before, during,or after
`download andinstallation, the secondary user device 14 and
`the secondary sharing engine 32 are associated with the user
`of the primary user device 12 and therefore associated with
`the primary user device 12 and the primary sharing engine 28.
`Alternatively, the primary sharing engine 28 mayself-propa-
`gate to automatically install the secondary sharing engine 32
`on the secondary user device 14.
`The secondary sharing engine 32 is then configured to
`determine the versions of the images shared by the primary
`user device 12 to be copied to the secondary user device 14
`(step 104). The secondary sharing engine 32 may be config-
`ured automatically based on detected capabilities of the sec-
`ondary user device 14 or manually configured by theuser.If
`automatically configured, the detected capabilities may be,
`for example, total or available storage space in the storage
`unit 34, the type and speed of the network connection the
`secondary user device 14 has to the network 22, processor
`speed of the secondary user device 14, and the like. In addi-
`tion to the capabilities of the secondary user device 14, the
`secondary sharing engine 32 may be automatically config-
`ured based on the number of images shared by the primary
`user device 12, which may be obtained from the central server
`20. As an example, if the secondary user device 14 is a PDA
`
`

`

`US 8,041,784 Bl
`
`5
`having limited storage space, the secondary sharing engine 32
`may be configured to obtain high quality thumbnails of the
`shared images from the primary user device 12. In contrast, if
`the secondary user device 14 is a DVR or personal computer
`having a large amountof storage space, the secondary sharing
`engine 32 may be configured to obtain the full size version of
`each of the images shared by the primary user device 12. In
`addition, the secondary sharing engine 32 may obtain or
`generate high, medium, and low quality screen size versions
`and high, medium, and low quality thumbnails of each of the
`images shared by the primary user device 12. Once config-
`ured, the configurations of the secondary sharing engine 32
`are provided to the central server 20 and storedas part of the
`user’s account information.
`
`In the preferred embodiment, the secondary user devices
`14-18 host at least one version of each ofthe imagesshared by
`the primary user device 12. However, the present invention is
`not limited thereto. In addition to the configurations described
`above, the secondary user devices 14-18 mayalso be config-
`ured to host only a subset of the shared images. For example,
`the secondary user device 14 may be configured to host only
`the high quality screen size version of each ofthe most recent
`images shared by the primary user device 12, which may be
`the images shared by the primary user device 12 added or
`captured within the last month. As another example, the sec-
`ondary user device 14 may be configured to host only those
`images tagged with one or more desired keywords suchas, for
`2
`example,
`“Christmas,
`“Birthday,”
`“Sporting Event,”
`“Friends,” “Family,” or the like.
`Next, the primary sharing engine 28 synchronizes with the
`secondary sharing engine 32 (step 106). More specifically,
`the central server 20 notifies the primary sharing engine 28 of
`the secondary sharing engine 32 andthe configurationsof the
`secondary sharing engine 32. Based on the configurations, the
`primary sharing engine 28 obtains the desired versions of
`each of the shared images and provides these versions of the
`shared imagesto the secondary user device 14. If the primary
`userdevice 12 does not havethe desired versionsofthe shared
`
`images stored in the storage unit 30, the primary sharing
`engine 28 may generate the desired versions. For example,if
`the medium quality screen size images are to be provided to
`the secondary user device 14, the primary sharing engine 28
`may generate the medium quality screen size versions of the
`shared images from, for example, the full size versions of the
`shared images. If more than oneversion of each ofthe shared
`imagesare to be hosted by the secondary user device 14, the
`primary sharing engine 28 mayprovideall desired versions or
`only the highest quality one of the desired versions to the
`secondary user device 14. For example, if both high and low
`quality screen size imagesare to be provided to the secondary
`user device 14, the primary sharing engine 28 may provide
`only the high quality screen size versions ofthe shared images
`to the secondary user device 14. Thereafter, the secondary
`user device 14 may generate andstore the low quality screen
`size versions ofthe shared imagesor generate the low quality
`screen size versions of the shared images as needed.
`The primary sharing engine 28 typically provides the
`desired versions of the shared images to the secondary user
`device 14 via the network 22 and the proxy 44. In another
`embodiment,
`the proxy 44 may enable proxy bypassing
`wherethe proxy 44facilitates a connection between two peer
`devices but is bypassedfor the transfer of largefiles, such as
`images. For more details, the interested reader is directed to
`commonly owned and assigned U.S. patent application Ser.
`No. 11/234,493, entitled SYSTEM AND METHOD FOR
`LOWERING PROXY BANDWIDTH UTILIZATION,
`which wasfiled Sep. 23, 2005 and is hereby incorporated
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`6
`herein by reference in its entirety. Alternatively, the desired
`versions of the shared images may betransferred to the sec-
`ondary user device 14 via a direct peer-to-peer connection
`over the network 22.
`
`However, in this embodiment, the primary and secondary
`user devices 12 and 14 are within the LAN 24. Assuch,rather
`than transferring the desired versions of the shared images
`over the network 22, the primary sharing engine 28 may
`detect that the secondary user device 14 is within the LAN 24
`and provide the desired versions of the shared imagesto the
`secondary user device 14 via the gateway 26 or a direct
`
`point-to-point link via, for example, an IEEE 802.11 wireless
`communication link.
`In addition to providing the desired versions of the shared
`images to the secondary user device 14, the primary user
`device 12 may additionally synchronize metadata, such as
`ID3tags, for the shared images, configurationfiles, permis-
`sions, and the like during the synchronization process.
`Regarding permissions and configurationfiles, by including
`them in the synchronization process, the primary user device
`12 ensures that the same permission andrestrictions will be
`imposed on guests whether the images are served by the
`primary user device 12 or the secondary user device 14.
`At this point, steps 102-106 may be repeated for each
`additional secondary user device, such as the secondary user
`devices 16-18 (step 108). When new imagesto be shared are
`added, the primary sharing engine 28 synchronizes with each
`of the secondary sharing engines 32, 36, and 40 suchthat the
`desired versions of the added images are copied to the sec-
`ondary devices 14-18 (steps 110 and 112). In addition, the
`synchronization may optionally transfer metadata for the
`added images, permissions, configurationfiles, andthelike to
`the secondary devices 14-18. The new images may be added
`at the primary user device 12. In addition, the system 10 may
`enable images to be added at the secondary user devices
`14-18. For example, ifimages are added to the secondary user
`device 14, the secondary sharing engine 32 mayretain ver-
`sions of the added images desired by the secondary user
`device 14 and provide the added images to the primary user
`device 12. The primary sharing engine 28 may then synchro-
`nize with the other secondary sharing engines 36 and 40.
`It should be noted that the user may change which user
`device 12-18 is the primary user device. For example, the user
`mayre-configure the user devices 12-18 such thatthe sharing
`engine 32 of the user device 14 is the primary sharing engine.
`As a result, the user devices 12-18 will communicate to re-
`distribute the shared images accordingly.
`FIGS. 3A-3C illustrate the operation of the proxy 44 to
`serve requests from guest nodes such as the guest node 48
`according to one embodimentofthe present invention. First,
`the proxy 44 receives a request for a shared image from the
`guest node 48 (step 200). In this example, the request is for an
`image shared by the user associated with the user devices
`12-18. The guest at the guest node 48 may beinvited by, for
`example, an e-mail containing a corresponding web link to
`the shared image,or the guest at the guest node 48 maybe an
`uninvited guest where, for example, the central server 20
`enables uninvited guests to search for shared images.
`Before proceeding, if the proxy 44 provides a caching
`service, the proxy 44 may determine whether the requested
`imageis cached by the central server 20. If so, the proxy 44
`mayserve the request. If not, the proxy 44 may then option-
`ally determine whether there has been a primary sharing
`engine override (step 202). A primary sharing engine override
`is when the proxy 44 automatically determines or when the
`user instructs the proxy 44 to treat the user devices 12-18
`equally. As discussed below, when there has been a primary
`
`

`

`US 8,041,784 Bl
`
`10
`
`30
`
`40
`
`45
`
`7
`sharing engine override, the proxy 44 selects the most optimal
`oneofthe user devices 12-18 for serving the request.
`If there has been no primary sharing engine override, the
`proxy then determines whetherthe primary user device 12 is
`online (step 204). If so, the proxy 44 forwards the request to
`the primary user device 12 via the network 22 (step 206). The
`primary user device 12 then sends a response including the
`requested imageto the proxy 44, and the proxy 44receives the
`response (step 208). The proxy 44 then forwards the response
`to the guest node 48 (step 210).
`Returning to step 204, if the primary user device 12 is not
`online, the process proceeds to FIG. 3B. Asillustrated, the
`proxy 44 may then determine whether the guest node 48 has
`permission to access the secondary user devices 14-18 (step
`212). Step 212 is optional. The proxy 44 may determine
`whether the guest node 48 has permission to access the sec-
`ondary user devices 14-18 based on, for example, a list of
`specific users or guests that are permitted to access the sec-
`ondary user devices 14-18; by determining whetherthe guest
`at the guest node 48 was invited to view the shared image
`where only invited guests are permitted to access the second-
`ary user devices 14-18; by determining whether the guest at
`the guest node 48 is a premium level user ofthe system 10
`where premium level users may pay for premium services
`provided by the central server 20 and have permission to
`access the secondary user devices 14-18; andthelike.
`Ifthe guest node 48 is not permitted to access the secondary
`user devices 14-18, the proxy 44 returns an error message to
`the guest node 48 (step 214). If the guest node 48 is permitted
`to access the secondary user devices 14-18, the proxy 44 then
`identifies one of the secondary user devices 14-18 for serving
`the request (step 216). More specifically, the proxy 44 first
`identifies which of the secondary user devices 14-18 are
`capable of serving the request. If the request is a general
`request for the shared image and not a request for a specific
`version of the shared image, the proxy 44 may identify the
`highest quality version of the requested image hosted by the
`secondary user devices 14-18. In contrast, ifthe requestis for
`a particular version of the shared image or if the proxy 44
`detects the capabilities of the guest node 48 andselects a
`particular version to be provided based on the capabilities of
`the guest node 48, the proxy 44 may determine whichof the
`secondary user devices 14-18 host either the needed version
`of the requested image or some higher quality version of the
`requested image.
`As an example, the request may be a general request for the
`shared image, and the highest quality version hosted by any of
`the secondary user devices 14-18 may be the high quality
`screen size version.If only one of the secondary user devices
`14-18 host this version of the requested image, then that
`secondary user device is identified as the one for serving the
`request. However, if more than one of the secondary user
`devices 14-18 hosts the identified version of the requested
`image, then the proxy 44 identifies the optimal one of these
`secondary user devicesto serve the request. Assumingthat the
`secondary user devices 14 and 18hostthe high quality screen
`size version ofthe requested image, the proxy 44 then selects
`the optimal one of the secondary user devices 14 and 18 for
`serving the request. The optimal secondary user device may
`be selected based on,for example, average historical through-
`put of the secondary user devices 14 and 18, the historical
`availability of the secondary user devices 14 and 18, the
`current availability of the secondary user devices 14 and 18,
`the historical reliability of the secondary user devices 14 and
`18, historical load conditionsat the secondary user devices 14
`and 18, an expected or projected load condition at the sec-
`ondary user devices 14 and 18, or the like. In order for the
`
`8
`proxy 44 to determine historical and projected load condi-
`tions, the secondary user devices 14-18 may provide status
`information such as, but not limited to, current load condi-
`tions, historical load conditions, and projected load condi-
`tionsto the proxy 44 either periodically or upon request by the
`proxy 44. The projected load conditions may particularly be
`beneficial for DVRs having scheduled recordings.
`In additionor alternatively, the proxy 44 may consider the
`network topology when identifying the one of the secondary
`devices 14-18 for serving the request. For example, if the
`guest node 48 is part of the LAN 24, the secondary user
`devices 14-16 may be given priority over the secondary user
`device 18 that is not within the LAN 24. Thus,if the guest
`node 48 requests a high quality version ofa shared image,the
`secondar

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket