`a2) Patent Application Publication (0) Pub. No.: US 2009/0222515 Al
` Thompsonet al. (43) Pub. Date: Sep. 3, 2009
`
`
`
`US 20090222515A1
`
`(54) METHODS AND APPARATUS FOR
`TRANSFERRING DATA
`
`(75)
`
`Inventors:
`
`Mark Thompson, Tempe, AZ (US);
`Frederic J. Buonincontri, Tempe,
`AZ (US); TuomasKetola, Tempe,
`AZ (US)
`
`Correspondence Address:
`THE NOBLITT GROUP, PLLC
`4800 NORTH SCOTTSDALE ROAD,SUITE 6000
`SCOTTSDALE, AZ 85251 (US)
`
`(73) Assignee:
`
`Solid State Networks, Inc.
`
`(21) Appl. No.:
`
`12/346,270
`
`(22)
`
`Filed:
`
`Dec. 30, 2008
`
`Related U.S. Application Data
`(60) Provisional application No. 61/018,031, filed on Dec.
`31, 2007.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F15/16
`(52) U.S.Cwu. 709/203; 709/204; 709/217; 709/230
`(57)
`ABSTRACT
`
`Methods and apparatus for transferring data according to
`various aspects of the present invention may operate in con-
`junction with a computer system configured to connect to a
`p2p network. The computer may run a p2p communication
`program that receives a request for content via the p2p net-
`work. The computer determines whetherto fulfill the request
`according to variouscriteria, such as whether the p2p com-
`munication program is currently accessing a second content
`from the p2p network and/or whether the first content is
`associated with the second content.
`
`DEFINE DISTRIBUTION LIMITATION
`PARAMETERS
`
`CLIENT 105 ACCESSES SERVER
`
`CLIENT 105 BEGIN DOWNLOAD
`
`:
`
`REGEIVE DOWNLOAD REQUEST
`
`4lo
`
`eZ
` APPROVED
`
`NO
`RQUESTOR
`
`
`CATEGORY?
`
`
`ug.
`
`
`TERMINATE
`
`SESSION
`
`
`Alb
`
`REQUEST FILE
`SEGMENT(S)
`
`
`420
`IS FILE
`
`
`SEGMENT
`
`PROPER?
`
`
`42).
`
`TERMINATE
`SESSION
`
`DISTRIBUTE FILE SEGMENT(S) ACCORDING
`TO DISTRIBUTION PARAMETERS
`
`
`
`STOP
`
`(stor)
`
`Data Co Exhibit 1056
`Data Co Exhibit 1056
`Data Co v. Bright Data
`
`Data Co v. Bright Data
`
`
`
`Patent Application Publication
`
`Sep. 3, 2009 Sheet 1 of 3
`
`US 2009/0222515 Al
`
`3
`_
`
`a
`-
`
`S
`—
`
`=
`
`wu
`ac
`
`cc
`
`tu
`a
`
`uuoO
`
`ag
`wy
`
`109
`
`f 124
`
`F1G
`
`105
`
`faLyLg
`
`CLIENT
`
`|
`
`116
`
`115
`
`~
`
`CLIENT
`
`CLIENT
`
`105
`
`105
`
`
`
`Patent Application Publication
`
`Sep. 3, 2009 Sheet 2 of 3
`
`US 2009/0222515 Al
`
`REQUEST URL
`
`RECEIVE FILE INFO
`
`
`
`
`START OR CONTACT
`TRANSLATION SERVER
`
`
`
`
`
`~
`
`PROVIDE REQUEST TO
`TRANSLATION SERVER
`
`216
`
`210
`
`
`
`
`
`
`
`START RETRIEVING
`FILESEGMENTS
`
`SELECT RETRIEVAL
`CRITERIA
`
`IF NEEDED, CONTACT _
`RELIABLE SERVICE SERVER
`
`PROVIDE DATA TO
`MEDIA PLAYER
`
`|
`
`224
`
`FIG.2
`
`
`
`Patent Application Publication
`
`Sep. 3, 2009 Sheet 3 of 3
`
`US 2009/0222515 Al
`
`START
`
`DEFINE DISTRIBUTION LIMITATION
`PARAMETERS
`
`CLIENT 105 ACCESSES SERVER
`
`|
`
`CLIENT 105 BEGIN DOWNLOAD
`
`RECEIVE DOWNLOAD REQUEST
`
`Yo
`
`GI2
`
`
`APPROVED
`NO
`RQUESTOR
`
`
`CATEGORY?
`
`
`Ug
`
`
`
`TERMINATE
`
`SESSION
`
`
`
`“Ne
`
`REQUESTFILE
`SEGMENT(S)
`
`
`420
`
`IS FILE
`
`
`SEGMENT
`PROPER?
`
`App
`
`
`TERMINATE
`SESSION
`
`DISTRIBUTE FILE SEGMENT(S) ACCORDING
`TO DISTRIBUTION PARAMETERS
`
`FI. 3
`
`
`
`US 2009/0222515 Al
`
`Sep. 3, 2009
`
`METHODS AND APPARATUS FOR
`TRANSFERRING DATA
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`[0001] This application claims the benefit of U.S. Provi-
`sional Patent Application No. 61/018,031, filed Dec. 31,
`2007.
`
`BACKGROUND
`
`Increasingly, the Internet and other networks are
`[0002]
`used to transfer digital media in the form of video and music
`files. To access these files, a user may navigate to a website
`that provides links to music and videofiles that are stored on
`a web server. To view orlisten to those files, a user may
`download them directly from the web server. Servers that
`provide contentto a large numberof users must, accordingly,
`have sufficient bandwidth to serve those files. For many orga-
`nizations, the expense of acquiring sufficient bandwidth to
`provide a satisfactory user experience is prohibitive.
`[0003]
`In an effort to minimize the expense anddifficulty
`associated with the distribution of a large amount of content
`through a network, various peer-to-peer (p2p) protocols and
`associated networks have been developed, such as BitTorrent,
`Gnutella, Skype, etc. A p2p network distributes content
`through the network using the computing power and band-
`width available to the network’s individual users to transfer
`
`files instead of relying entirely on the bandwidth of a single
`server or group ofservers.
`[0004]
`In p2p networks, as a peer is receiving content, the
`peer mayalso be transmitting content to other peers. The peer
`responds to requests at any time to provide content to other
`peers, regardless of the content, the requesting peer, or the
`resources of the peer. Resources dedicated to servicing
`requests of other peers may degrade performance. Asa result,
`the transfer rate for a particular file may be substantially
`diminished whenservicing requests fromotherpeers. In addi-
`tion, the user may misinterpret the loss of performance as a
`deficiency attributable to the content requested by the user or
`to the content source.
`
`FIG. 1 is a block diagram of a system for transfer-
`[0007]
`ring data according to various aspects of the present inven-
`tion;
`FIG. 2 isa flow diagram of a system fortransferring
`[0008]
`data accordingto variousaspectsofthe present invention; and
`[0009]
`FIG. 3 is a flow diagram for processing content
`requests accordingto various aspectsofthe present invention.
`[0010] Elements andsteps in the figures are illustrated for
`simplicity and clarity and have not necessarily been rendered
`according to any particular sequence. For example, steps that
`may be performed concurrently or in a different order are
`illustrated in the figures to help to improve understanding of
`embodiments of the present invention.
`features,
`[0011] Representative
`elements,
`operational
`applications and/or advantages ofthe present invention reside
`in the details of construction and operation as more fully
`hereafter described or otherwise identified. The description
`mayrefer to the accompanying drawings, images. figures,
`etc., wherein like numerals (if any)referto like parts through-
`out. Elements. operational
`features. applications and/or
`advantagesare illustrated by certain exemplary embodiments
`recited in the disclosure herein.
`
`[0012] Elements in the figures, drawings, images, etc. are
`illustrated for simplicity and clarity and have not necessarily
`been drawnto scale. For example, the dimensions of some of
`the elements in the figures may be exaggerated relative to
`other elements to help improve understanding of various
`embodiments of the present
`invention. Furthermore,
`the
`terms‘first’, ‘second’, and the like herein, if any, are used for
`distinguishing between similar elements and not necessarily
`for describing a sequential or chronological order. Moreover,
`the terms‘front’, ‘back’, ‘top’, ‘bottom’, ‘over’, ‘under’, and
`the like in the disclosure and/or in the exemplary embodi-
`ments, if any, are generally employed for descriptive pur-
`poses and not necessarily for comprehensively describing
`exclusive relative position. Any of the preceding terms so
`used may be interchanged under appropriate circumstances
`suchthat various embodiments of the invention, for example,
`are capable of operation in other configurations and/ororien-
`tations
`than those
`explicitly illustrated or otherwise
`described.
`
`SUMMARYOF THE INVENTION
`
`DETAILED DESCRIPTION OF EXEMPLARY
`EMBODIMENTS
`
`[0005] Methodsand apparatusfor transferring data accord-
`ing to various aspectsof the present invention may operate in
`conjunction with a computer system configured to connect to
`a p2p network. The computer may run a p2p communication
`program that receives a request for content via the p2p net-
`work. The computer determines whetherto fulfill the request
`according to variouscriteria, such as whether the p2p com-
`munication program is currently accessing a second content
`from the p2p network and/or whether the first content is
`associated with the second content.
`
`BRIEF DESCRIPTION OF THE DRAWING
`FIGURES
`
`features,
`elements, operational
`[0006] Representative
`applications and/or advantagesofthe present invention reside
`in the details of construction and operation as more depicted,
`described and claimed. Reference is made to the accompany-
`ing drawings, wherein like numerals typically refer to like
`parts.
`
`relate to exemplary
`[0013] The present descriptions
`embodiments of the invention and the inventor’s conception
`of the best mode and are not intended to limit the scope,
`applicability or configuration of the invention in any way.
`Instead, the following description is intended to provide con-
`venient illustrations for implementing various embodiments
`ofthe invention. Changes may be madein the function and/or
`arrangementof any ofthe elements described in the disclosed
`exemplary embodiments without departing from the spirit
`and scope of the invention.
`[0014] Referring to FIG. 1, a system for transferring data
`100 according to various aspectsofthe present invention may
`function with multiple computers exchanging data. For
`example, the present exemplary system for transferring data
`100 operates in conjunction with multiple clients 105 con-
`nected to each other and/or one or more remote servers 120
`and/or other data sources 122 via a medium 124. Data is
`transferred amongthe variousclients 105, servers 120, and/or
`other data sources 122 via the communications medium 124.
`
`
`
`US 2009/0222515 Al
`
`Sep. 3, 2009
`
`[0015] The medium 124facilitates the transfer of informa-
`tion, and may comprise any suitable medium fortransferring
`information. For example, the medium 124 may comprise the
`Internet, a local area network or any other suitable wired or
`wireless communications network. In the present embodi-
`ment, the medium 124 may include a p2p network 125 com-
`prising multiple devices configured to exchange information,
`suchas using a BitTorrent protocol to distribute digitalfiles.
`The p2p network 125 may, however, comprise a network of
`computers using alternative systems for communicating and
`distributing data or files via the medium 124, such as
`Microsoft’s Avalanche system, Skype, Gnutella, Napster, or
`any other appropriate dataor file distribution system.
`[0016] Any appropriate systems and devices may be con-
`nected to the p2p network 125, such as clients 105, comput-
`ers, entertainment systems, data sources 122, and servers 120.
`Inthe present embodiment, one or more data sources 122 may
`be connected to the p2p network 125 and provide data, for
`example in response to requests. The data sources 122 may
`comprise any suitable systems for providing data, such as a
`local storage media, networked storage systems and comput-
`ers, web servers, databases,
`loopback network interfaces,
`cameras, PDAs,televisions, radios, and/or other recording or
`audiovisual systems, andthelike.
`[0017]
`In addition, the present embodiment may include
`one or more servers 120 that may operate as data sources 122
`and provide other appropriate functions. The servers 120 may
`comprise any suitable computer systemsor other electronic
`devices configured to communicate via the medium 124. For
`example, the servers 120 may comprise hardware, software,
`and/or networking components configured to receive and pro-
`cess requests from the clients 105 and provide a suitable
`website or other Internet-based user interface that is acces-
`
`sible by the clients 105. In one embodiment, the server 120
`comprises a conventional networked computer server run-
`ning an operating system, such as Microsoft Windows, Mac
`OSX, or Linux, and a web server, such as an Apache web
`server. The server 120 may comprise a daemon or software
`application, a physical computer that is connected to a net-
`work, and/or a combination of software and hardware.
`[0018]
`Inone embodiment, the system for transferring data
`100 includes one or morereliable service servers 135. The
`reliable service server 135 may comprise a reliable resource
`for obtaining information via the p2p network 125 when such
`information is otherwise difficultto retrieve. For example, the
`reliable service server 135 may be configured to maintain a
`copy ofa large portion, suchas substantially all, ofthe content
`available via the p2p network or associated with one or more
`particular content providers. The reliable service server 135
`may also comprise a highly reliable system that is consis-
`tently available to other network elements. Thus, in the event
`that a file or file segment cannot be readily retrieved from
`other network resources, the client 105 may access thereli-
`able service server 135 to acquire the missing information. By
`doing so, the reliable service server 135 may improvefile
`availability in the event of lower file segment availability
`from the other elements ofthe p2p network 125 and otherwise
`minimize the degradation offile transfer rate associated with
`the p2p network 125.
`[0019] When the p2p network 125 performance is degraded
`such that it becomes difficult to retrieve particular file seg-
`ments, the clients 105 mayretrieve the file segments directly
`from the reliable service server 135 to mitigate the problems
`associated with the p2p network’s 125 performance. Thus, if
`
`files are not available from other sources on the p2p network
`125, such as due to the recentintroductionofthefile segments
`to the p2p network 125, the file segments may beretrieved
`from the reliable service server 135. Also, when a user wishes
`to skip to view a different portion of the file, the reliable
`service server 135 may be used to mitigate performance deg-
`radation associated with downloading the new file segments
`from the p2p network 125, for example by providing particu-
`lar file segments selected by the userthat are not immediately
`available from other sources in the p2p network 125.
`[0020] The clients 105 may receive, store, and/or transmit
`information via the medium 124. Theclients 105 may com-
`prise any systems connected to a network for communicating
`and/or accessing data. For example, one or moreclients 105
`may comprise conventional computers having a processor
`and a memory responsiveto the processor, such as RAM,hard
`drives, CD-ROM drives and disks, HD-DVD drives and
`disks, or other appropriate volatile or non-volatile memory
`systems. Alternatively, the client 105 may comprisea televi-
`sion, stereo, radio, gaming console,
`telephone, personal
`media player, digital assistant, or other network-connected
`device that receives digital or analog media content.
`[0021]
`Inthe present embodiment, the clients 105 execute
`software for requesting and providing information via the
`medium 124. For example, each client 105 may comprise a
`conventional computer system that runs an operating system,
`such as Microsoft Windows, Mac OSX, Windows CE, Win-
`dows XP Embedded, Linux or other PC or embedded oper-
`ating system, and is capable of executing software and con-
`necting to a network. The client 105 may connect to the
`network in many different ways, including a network cable
`connection or a wireless connection. Also, the client 105 may
`communicate through the network using any appropriate
`communication protocols, such as TCP/IP, UDP, etc.
`[0022] One or more ofthe clients 105 may operate client
`applications 110 to receive and/or transmit data via the
`medium 124. The client application 110 may comprise any
`software capable of requesting and/or receiving data via the
`medium 124. The client application 110 mayalso request any
`appropriate data, such as digital data encodedin a particular
`format, such as a QuickTimevideofile, MP3 file, PostScript
`file, or Microsoft Windows executablefile, that may be used
`by the client application 110 or another application to per-
`form tasks. For example, the client application 110 maydis-
`play information on a computer screen, play sounds through
`a soundcard, play or patch a game, transmit data to another
`device such as a computer or television, download and/or
`otherwise prepare data for use by another application, or
`otherwise use downloaded data. The client application 110
`may comprise, for example, a media player, a downloading
`program, a file-sharing program, a game, or other suitable
`program. In the present embodiment, the client application
`includes a BitTorrentclient that utilizes the BitTorrent proto-
`col or other appropriate p2p protocol for data transfer.
`[0023]
`Forexample,the client application 110 may include
`a communication program to cause the client 105 to receive
`the data, format or translate the data for use by the client
`application 110, assemble the data into a proper sequence,
`and/or provide the formatted and/or assembled data to
`another program or portion of the communication program
`for use. The client application 110 may comprise or operate in
`conjunction with a web browser, such as one or more plug-in
`programsthatinteract with the web browser. The plug-in may
`operate as separate code from the main program,for example
`
`
`
`US 2009/0222515 Al
`
`Sep. 3, 2009
`
`to read or edit specific types offiles, such as to play and watch
`Flash presentations in the web browser.
`[0024] The client application 110 may be further config-
`ured to control responding to requests for files according to
`selected criteria. For example, the client application 110 may
`receive requestsforfiles or file segments from other peers in
`the p2p network 125, determine the availability of the
`requested data, and respond according to the availability of
`the requested data and anyotherselected restrictions or rules.
`For example, the client application 110 may be configured to
`permit transfers to a requesting peer, unless the requesting
`peer is restricted, such as accordingto a listing of restricted
`peers or associated characteristics, such as domain names or
`other identifiers. Restrictions may be associated withparticu-
`lar domain names, clients, or other characteristics of the
`requesting peer. Restrictions may also be associated with
`other characteristics, such as characteristics of the file seg-
`ments, activities of the client 105 receiving the request,
`requirements of the content owner, and/or other suitablecri-
`teria. The restrictions may comprise one or more rules, such
`as rules prohibiting responding to a download request from a
`restricted domain, prohibiting responding to a download
`request for content not associated with a particular domain, or
`non-domainrelatedrestrictions.
`
`In one embodiment, if the requested content is not
`[0025]
`associated with a particular domain name, the request is
`denied. For example, requests for content associated with a
`particular content provider’s domain name maybefulfilled,
`while requests for content from another content provider may
`be denied. In another example, if the incomingfile request is
`for content associated with content currently being down-
`loaded bythe client application 110, such as content originat-
`ing from the same domain, the client application 110 may
`proceed with transferring the content to the requesting peer. If
`the requested content does not originate from the same
`domain or is otherwise unrelated to the content currently
`being downloaded by the client application 110, then the
`client application 110 may denythefile transfer request to
`avoid degrading download performance.
`[0026] The files may comprise any suitable collections of
`information collected under a particular name, such as con-
`ventional computerfiles. The files may include subfiles or any
`other appropriate structure. In addition, the informationin the
`files may be any appropriate information, such as data for
`sound, video, program data, patch information, gamedata, or
`the like. In many cases, to distributea file, the content pro-
`vidersor the clients 105 ofthe p2p network 125 split a file into
`a series offile segments, such as in accordance with conven-
`tional BitTorrent distribution. The size of the file segments
`may be determined by several factors, including the perfor-
`manceof the medium 124 through which the clients 105 of
`the p2p network 125 communicate, the size of the original
`file, or other factors. When a client 105 wishesto retrieve a
`particularfile from the p2p network 125, that client 105 can
`communicate with other clients 105 ofthe p2p network 125 to
`discover the availability of particular file segments that com-
`prise the file. The clients 105 may then retrieve those file
`segments and then can combinethem to recreate the original
`file.
`
`[0027] The client application 110 may be configured to
`retrieve a p2p file description from a server 120 or other data
`source 122. The p2p file description describes the file and
`provides sufficient data such that the file may beretrieved
`from the p2p network 125 and/or thereliable server service
`
`135 or other data source 122. For example, the client appli-
`cation 110 may retrieve a webpage from the server 120 or
`other data source 122 that contains an HTMLtag, such as an
`
`<EMBED>tag,that instantiates a translation server 115 and
`a media player 116 or other file-using program and contains
`sufficientdata for the translation server 115 to retrievethefile
`
`from the p2p network 125. In one embodiment, the translation
`server 115 and/or the media player 16 are implemented as
`browserplug-ins that interact with the main or host applica-
`tion
`
`[0028] The <EMBED> tag mayinclude a p2pfile descrip-
`tion containing all the information that the translation server
`115 requiresto retrieve a file from a server 120, p2p network
`125, or other source 122. Furthermore, the <EMBED> tag
`may include information that instructs the media player 116
`or otherfile-using program howto retrieve and play or oth-
`erwise utilize the file as it is subsequently provided by the
`translation server 115. For example, for a BitTorrent network,
`the <EMBED> tag may describe the URL ofa tracker that
`communicates with the clients 105 that are connected to the
`
`p2p network 125 andare distributing file segments, the name
`ofthefile, the size ofthe file segments, the size ofthe file, and
`other information that allows the translation server 115 or
`
`client application 110 to verify the integrity of the file seg-
`ments retrieved from the p2p network 125.
`[0029]
`Thefile-using program may comprise any suitable
`system or application for using the received information. In
`the present embodiment, the file-using program comprises
`the media player 116, which may comprise a conventional
`program for rendering audiovisual information based on elec-
`tronic data, such as an Adobe PDF reader, a Flash-based
`movie player, or a Windows Media Player. The file-using
`program maybeselected according to the type of content or
`other appropriate criteria, and may comprise any appropriate
`program or system for using the received data, such as an
`entertainment player, a game, or other program. In addition,
`the file-using program may be initiated by an appropriate
`event, such as via a web browserplug-in or other program that
`initiates in response to a request to download and play a
`compatible file type.
`[0030] The translation server 115 receives the file segments
`from the various network resources and provides the
`assembledfile segmentsto the file-using program.Thetrans-
`lation server 115 may comprise a software application
`executed by the client 105 and/or a remote computer config-
`ured to communicate with the requesting client 105. In the
`present embodiment, the translation server 115 comprises a
`program running on the requesting client 105, and may be
`initiated in response to a downloadrequest. For example,like
`the file-using program, the translation server 115 may be
`implemented as a web browserplug-in or other program that
`initiates the translation server 115 in response to a request to
`download and play a compatiblefile type.
`[0031] The p2p network 125 is suitably configured to com-
`municate with the translation server 115 suchthat the trans-
`lation server 115 is capable of communicating with the clients
`105 andretrievingfile segments from the p2p network 125. In
`the present embodiment, the translation server 115 and the
`file-using program maybeinitiated in responseto file infor-
`mation indicating thatthe file is in a format compatible with
`the file-using program anddistributed via a protocol compat-
`ible with thetranslation server 115. For example, the EMBED
`tag may indicate that the associated file is distributed via
`BitTorrent protocols, causing the client application 110 to
`
`
`
`US 2009/0222515 Al
`
`Sep. 3, 2009
`
`initiate the translation server 115 to retrieve the file segments.
`In addition, the EMBEDtag mayindicate thatthefile type is
`an Adobe PDFfile, which may cause the client application
`110 or the translation server 115 to initiate an Adobe PDF
`
`Reader media player 116.
`[0032] The translation server 115 requests and receives the
`file segments according to any appropriate protocols and
`techniques. For example,
`the translation server 115 may
`request file segments according to BitTorrent or otherfile
`distribution processes. In the present embodiment,thetrans-
`lation server 115 contacts a tracker identified in the EMBED
`
`tag, accessesa distributed hashtable, or otherwise determines
`network resources for requesting the relevant file segments.
`The translation server 115 then requests the file segments
`from the various identified network resources.
`
`[0033] The translation server 115 may request file seg-
`ments from the p2p network 125 according to the sequence of
`the file segments in the original file. By retrieving thefile
`segments sequentially, the media player 116 can consumethe
`file segments’ contents in substantially the same orderas that
`in which they are received. The translation server 115 may
`also or alternatively request the file segments according to
`scarcity or availability on the p2p network 125 to allow opti-
`mal timetoretrieve rare file segments.
`[0034] As the translation server 115 receives the file seg-
`ments, the translation server 115 may assemblethe file seg-
`ments into a proper sequence for transmission to thefile-
`using program for consumption. For example,the translation
`server 115 may assemble thefile segments ofa moviefile into
`the proper sequence for playback so that the file may be
`streamed to the media player 116.
`[0035] The files may be received in the proper sequence,
`and may not require assembly. If the file segments are not
`received in sequential order, for example due to a request
`sequence, varying retrieval times for different file segments
`and network resources, varying connection qualities to net-
`work resources, or failed communications or requests, the
`translation server 115 may assemble thefile segmentsinto the
`proper sequence before providing them to the file-using pro-
`gram.
`[0036] As the file segments are received and assembled,
`somefile segments may not be found. Thetranslation server
`115 may request missing file segments by searching other
`network resources for the missing segments. In the present
`embodiment, the translation server 115 requests the file seg-
`ments from various network resources according to a request
`procedure. In the present embodiment, the request procedure
`is configured to reduce burdens on central resources such as
`the servers 120 andthe reliable service server 135, but retain
`the ability to acquire missing file segments. For example, the
`translation server 115 mayinitially requestfile segments from
`other clients 105. Ifa file segment cannot be retrieved from
`the other clients 105, the translation server 105 may request
`the missing file segment from the servers 120, which may
`have a greater selection of file segments but slower response
`times. If the missing file segment remains unavailable, the
`translation server may request the file segment from the reli-
`able service server 135.
`
`[0037] Thetranslation server 115 mayalso translate incom-
`ing file segments into a format that can be used by the media
`player 116, client application 110, or other appropriate sys-
`tem. In the present embodiment, the translation server 115
`receives the file in a first format and retransmits received file
`
`to the file-using program using an alternative transmission
`
`protocol. For example, the present translation server 15 may
`retrieve file segments from the p2p network 125 using the
`BitTorrent protocolor other suitable peer-to-peerfile transfer
`protocol and retransmit those file segments using an HTTP
`protocol. The translation server 115 may retransmitthefile
`using any other appropriate protocols, such as RTSP, FTP,
`DSS, or by simply providing access to a file stored on a local
`or network-accessible storage system.
`[0038]
`For example, the translation server 115 mayretrieve
`the requested information from the p2p network 125 as Bit-
`Torrent file segments and convert the data into a local HTTP
`stream. The media player 116 maythen receive the data from
`the local HTTP stream as it is made available by the transla-
`tion server 115. Thus, the translation server 115 may operate
`as a local server, such that media player 116 perceives the
`translation server 115 as an original source ofthe HTTPdata.
`The media player 116 may receive a video stream from the
`local server in the same manner as a remote source, for
`example from http://localhost/movie_file.mov rather than
`http://www.website.com/movie_file.mov. Consequently, the
`translation server 115 is effectively transparent to the media
`player 116, and the media player 116 does not require specific
`configuration to operate with the p2p network 125 or other
`network resources.
`
`[0039] The translation server 115 may provide the data in
`any appropriate manner, such as according to the type and
`availability ofthe downloadeddata. For example, ifthe down-
`loaded data comprises a non-sequential collection of data,
`such as a software program that cannot be executed until all
`elements are downloaded, the translation server 115 may
`retain the data until the file has been fully received and
`assembled, or may retransmit the data substantially immedi-
`ately for assembly and/or use by the media player 116 when
`all of the file segments have been received. If the data com-
`prises a sequential presentation, the translation server 115
`may retransmit data in the appropriate sequenceastherel-
`evantfile segments are received. If the data is available, the
`information contained within the downloadedfile segments
`maybe retransmittedbythe translation server 115 in approxi-
`mately real-time, such that data is retransmitted generally as
`it becomesavailable. Thus, the translation server may begin
`streaming the data to the file-using program before the entire
`file has been received. Alternatively, retransmission may be
`delayed as determinedby the requirements ofthe client appli-
`cation 110, user preferences, or other pre-determined input.
`The translation server 115 mayalso perform any other appro-
`priate tasks to make the data useable by the media player 116,
`such as processing interactions with the media player 116.
`[0040]
`‘Toretrieve data for usage by the client 105,the client
`application 110 requests a particular file. In response, the
`system for transferring data 100 transmits the segments ofthe
`file to the client 105. As the file segments are received, the
`client application 110 may prepare the files for usage. For
`example, the translation server 115 may receive thefile seg-
`ments and providethefile segments to the media player 116
`as a local server. In addition, the translation server 115 may
`sequence, translate, and/or formatthe file segments for use by
`the media player 116.
`[0041] More particularly, the system for transferring data
`100 may transfer information in response to a requestiniti-
`ated bythe client application 110. The request may comprise
`a communication from a client application 110 requesting a
`particular file or information describing a file and how to
`retrieve thefile from a p2p network 125. For example, refer-
`
`
`
`US 2009/0222515 Al
`
`Sep. 3, 2009
`
`115 mayseek file segments accordingto scarcity to download
`ring to FIG. 2, a web browser operating on the client 105 may
`request data from a URL oneofthe servers 120 (210). The
`those file segments that are the least available in the p2p
`
`URL mayrefer to a webpage and correspondtoafile to be network 125 before other file segments that are more widely
`retrieved, such asa file that contains text and HTMLtags, an
`available. On the other hand, whenthe client application 110
`executable file or script that the server 120 runs and whose
`requests streaming data, such as video, music, or other suit-
`output may be transmitted to the client software application
`able files for immediate sequential presentation or execution,
`110, or a file that contains data.
`the useror application may wish to begin accessingthefile as
`soon as possible. In such circumstances, when requesting
`[0042]
`In addition, the URL maypoint the client applica-
`data from the p2p network 125,the translation server 115 may
`tion 110 to a source for downloading the file, such