GB2440788A - Fragmented data storage in peer to peer networks - Google Patents
Fragmented data storage in peer to peer networks Download PDFInfo
- Publication number
- GB2440788A GB2440788A GB0615857A GB0615857A GB2440788A GB 2440788 A GB2440788 A GB 2440788A GB 0615857 A GB0615857 A GB 0615857A GB 0615857 A GB0615857 A GB 0615857A GB 2440788 A GB2440788 A GB 2440788A
- Authority
- GB
- United Kingdom
- Prior art keywords
- data
- fragments
- fragment
- data fragments
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000013500 data storage Methods 0.000 title 1
- 239000012634 fragment Substances 0.000 claims abstract description 191
- 238000009826 distribution Methods 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 11
- 238000013467 fragmentation Methods 0.000 claims description 10
- 238000006062 fragmentation reaction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 5
- 238000002716 delivery method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 19
- 238000003860 storage Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G06F17/30067—
-
- H04L29/08306—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
A method and apparatus for storing data fragments comprises sending a first request for data and receiving one or more data structures for accessing a first plurality of data fragments. These data structures are used to create and send second requests for data fragments. The data fragments are used to construct a first data file but not all fragments are stored. The data fragments may be requested in parallel and may be distributed across a plurality of distribution apparatuses (for example peers in a P2P network). Administrative apparatus i.e. servers, could be used to handle the requests. This invention eases the bandwidth bottleneck associated with traditional client-server systems but also increases control of files as no one peer would store entire files. Also disclosed are methods for: repeatedly informing a server of the peer status and receiving first and second data fragments; fragmenting data and dispersing over a network; and, enabling a peer to obtain data fragments plus become a distribution apparatus for a sub-set of data fragments.
Description
<p>TITLE</p>
<p>Data delivery</p>
<p>FIELD OF THE INVENTION</p>
<p>Embodiments of the present invention relate to data delivery. In particular, they relate to data delivery using a peer-to-peer network.</p>
<p>BACKGROUND TO THE INVENTION</p>
<p>A problem exists in relation to delivery, via a data network, of data structures such as images, databases, files, movies etc. If a traditional client-server model is used for a delivery system, the server stores multiple data structures and each client obtains a data structure from the server. The client-server model has the advantage that access to the data structure can be easily controlled using the server. However, a disadvantage is that the bandwidth of the network connection to the server must increase dramatically as the number of clients and data structures stored increases.</p>
<p>In a traditional peer-to-peer (P2P) model, a peer (operating as a client) downloads a data structure from another peer (operating as a server) and then operates as a server for the downloaded data structure. This model has the advantage that there is no bandwidth bottleneck but has the disadvantage that access to a data structure once released onto the P2P network is not controlled.</p>
<p>BRIEF DESCRIPTION OF THE INVENTION</p>
<p>Embodiments of the invention do not require the storage of all data structures in a single server. Instead the data structures are dispersed over many delivery apparatuses. This solves the problem of bandwidth bottleneck associated with a single server.</p>
<p>Embodiments of the invention avoid the storage, for delivery, of the whole of a data structure in a single distribution apparatus. Instead fragments of the data structure are stored, for delivery, at different distribution apparatuses This spreads the storage burden across a number of distribution apparatuses and also provides control of the data structure as no one distribution apparatus stores the whole of the data structure.</p>
<p>Embodiments of the invention enable the growth of a peer-to-peer network. After a requestor apparatus receives the fragments of a data structure it becomes a distribution apparatus for one or more of those fragments.</p>
<p>Control of the delivery of a data structure is controlled by requiring that a requestor apparatus communicate with an administrator apparatus to obtain information that enables it to obtain and combine the fragments of a data structure. The data structure is created at a requestor apparatus only if it obtains this information and the administrator apparatus can control the dissemination of that information.</p>
<p>According to one embodiment of the invention there is provided According to one embodiment of the invention there is provided a method comprising: sending a first request for first data; receiving, in reply, one or more data structures for accessing a first plurality of data fragments; using the one or more data structures to create and send a second plurality of second requests for data fragments of the first data; receiving, in reply to the second requests, at least each of the first plurality of data fragments; using the first plurality of data fragments to create the first data; and storing one or more, but not all, of the first plurality of data fragments.</p>
<p>According to one embodiment of the invention there is provided a computer program product comprising code that enables: sending a first request for first data; using one or more data structures, received in reply to the first request, to create and send a second plurality of second requests; using a first plurality of data fragments, received in reply to the second requests, to create the first data; and storing for access one or more, but not all, of the first plurality of data fragments.</p>
<p>According to one embodiment of the invention there is provided an apparatus comprising: a memory; a communications interface for sending a first request for first data and a second plurality of second requests for data fragments of first data and for receiving, in reply to the first request, one or more data structures for creating the second requests and for receiving, in reply to the second requests, at least a first plurality of data fragments for creating the first data; and processing circuitry operable to use the received one or more data structures to create the second plurality of second requests and to use the first plurality of data fragments to create the first data and operable to store one or more, but not all, of the first plurality of data fragments in the memory for distribution.</p>
<p>According to one embodiment of the invention there is provided a method, for performance at an apparatus, comprising: repeatedly informing an administration apparatus of a status of the apparatus; receiving a first data fragment of first data from the administration apparatus; receiving a second data fragment of second data from the administration apparatus; in response to receiving a request identifying the first data fragment sending, in reply, the identified first data fragment; and in response to receiving a request identifying the second data fragment sending, in reply, the identified second data fragment.</p>
<p>According to one embodiment of the invention there is provided an always-on apparatus comprising: a communications interface that is operable to repeatedly inform an administration apparatus of its status, receive a first data fragment of first data from the administration apparatus and receive, separately, a second data fragment of second data from the administration apparatus; and processing circuitry continuously operable, in response to receiving a request identifying the first data fragment, to enable the sending, in reply, the identified first data fragment and continuously operable, in response to receiving a request identifying the second data fragment, to enable sending, in reply, the identified second data fragment.</p>
<p>According to one embodiment of the invention there is provided a computer program product comprising code that enables an apparatus to: repeatedly inform an administration apparatus of a status of the apparatus; store a received first data fragment of first data; store a received second data fragment of second data; to send,</p>
<p>S I</p>
<p>in response to receiving a request identifying the first data fragment, the identified first data fragment; and to send, in response to receiving a request identifying the second data fragment, the identified second data fragment.</p>
<p>According to one embodiment of the invention there is provided a method comprising: fragmenting data into a first plurality of data fragments; dispersing the first plurality of data fragments over a second plurality of distribution apparatuses; and storing one or more data structures that enable a requestor apparatus to access the dispersed first plurality of data fragments.</p>
<p>According to one embodiment of the invention there is provided an apparatus comprising: a processor operable to fragment data into a first plurality of data fragments; a communications interlace operable to disperse the first plurality of data fragments over a second plurality of distribution apparatuses; and a memory for storing one or more data structures that enable a requestor apparatus to access the dispersed first plurality of data fragments.</p>
<p>According to one embodiment of the invention there is provided a computer program product comprising code that enables: fragmenting data into a first plurality of data fragments; dispersing the first plurality of data fragments over a second plurality of distribution apparatuses; and storing one or more data structures that enable a requestor apparatus to access the dispersed first plurality of data fragments.</p>
<p>According to one embodiment of the invention there is provided a data delivery method comprising: enabling a requesting apparatus that requests first data to obtain the first data as a first plurality of data fragments from a second plurality of distribution apparatuses; and enabling the requesting apparatus to become subsequently a distribution apparatus for only a sub-set of the first plurality of data fragments.</p>
<p>BRIEF DESCRIPTION OF THE DRAWINGS</p>
<p>For a better understanding of the present invention reference will now be made by way of example only to the accompanying drawings in which: Fig. 1 schematically illustrates a data delivery system; Fig. 2 illustrates a fragmentation process; Fig. 3 illustrates a de-fragmeritation process; Fig. 4 schematically illustrates an example of a record; Fig. 5 illustrates a process by which a distribution apparatus provides information to an administrator apparatus; Fig 6 schematically illustrates an apparatus operable as a requestor apparatus 8, a distribution apparatus, an administration apparatus, a data provider apparatus; and Fig. 7 illustrates a physical entity embodying a computer program.</p>
<p>DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION</p>
<p>Fig. 1 schematically illustrates a data delivery system 10. The system comprises: a data provider apparatus 2; an administrator apparatus 4; distribution apparatuses 6, 62, 63 and a requestor apparatus 8.</p>
<p>The different apparatuses may communicate via a data network such as the Internet, Wide Area Network (WAN), Local Area Network (LAN) etc. The data provider apparatus 2 sends, at block 11, a first data structure 12 to the administrator apparatus 4.</p>
<p>The first data structure 12 may be any suitable collection of data. It may, for example, be a film, a music track, an image, a database etc. The administrator apparatus 4 fragments, at block 21, the first data structure 12 creating a set 26,27 of N of data fragments F1, F2, F3... FN. It should be appreciated that the value of N may be fixed or may vary with different data structures.</p>
<p>One example of the fragmentation process 21 is illustrated in Fig. 2.</p>
<p>A subject data structure 12 is scrambled (or otherwise encoded) at block 22 to create a scrambled/encoded data structure 12'. The scrambling occurs in a predetermined & I manner e.g. by changing the position/order of data portions within the data structure 12. The scrambling process may use a different randomly generated kernel K for each data structure 12.</p>
<p>Next the scrambled data structure 12' is fragmented at block 23 into a set 26 of N non-overlapping independent data portions or fragments F1, F2, F3... FN according to a predetermined fragmenting procedure. In some implementations, a number of different fragmenting procedure may be used, each of which can be identified by a different fragmenting procedure identifier (FPI).</p>
<p>In some implementations, the output of the fragmentation process 21 is the output of the fragmenting procedure 23.</p>
<p>In other implementations, the output of the fragmenting procedure 23 is encrypted to become the output of the fragmentation process 21. The data fragments F1, F2, F3 FN are separately encrypted at block 24. In some implementations, the same encryption process may be used for all data fragments F. In other implementations, a different encryption key 25 may be used for encrypting each data fragment F. The keys may be generated in key generation block 26 and each key may be identified by an encryption key identifier (EKI). The EKI may be the key itself or an address in a look-up table listing the keys.</p>
<p>The encryption block 24 produces a set 27 of N encrypted data fragments F. Referring back to Fig 1, next at block 28, a unique data structure identifier (DSI) is assigned to thereceived data structure 12 and a different fragment identifier FID is assigned to each of the fragments F. Thus any fragment F of a data structure 12 may be uniquely referenced by the combination of a DSI and a FbI.</p>
<p>Next at block 29, the fragments F are dispersed amongst a plurality M of distribution apparatuses 6. A distribution apparatus 6 may store only m fragments of a particular data structure, where m<N. In one implementation, m is one.</p>
<p>Each distribution apparatus 6 has its own apparatus identifier (Al) which may be, for example, an Internet protocol (IP) address. The fragments F may be dispersed by sending a message 30 to each of the M distribution apparatuses.</p>
<p>The administrator apparatus 4, at block 31, updates a database 32. The database 32 has a separate record 33 for each data structure 12 and the record 33 may be addressed using the assigned data structure identifier (DSI).</p>
<p>A record 33 is a data structure used to store information concerning a subject data structure 12 and it enables a remote requesting apparatus 8 to create the originally received subject data structure 12 from dispersed fragments F of the data structure 12.</p>
<p>One example of a record is schematically illustrated in Fig. 4. A record 33 may have a header 34 that comprises its associated data structure identifier OSI, and if used, the scrambling kernel K and fragmenting procedure identifier FPI associated with the production of fragments F from the subject data structure 12.</p>
<p>The record 33 may have a body 35 that has a plurality of entries 36. An entry 36 is used to map a FlD,for the associated data structure 12, to a distribution apparatus identifier or identifiers (DAI) to which that fragment is dispersed.</p>
<p>If a data fragment F has been independently encrypted before dispersal, then the entry 36 for that fragment, will also associate with the FID for that fragment the correct encryption key identifier (EKI) that is or identifies the encryption key used to encrypt/decrypt the fragment.</p>
<p>A message 30 contains a fragment F1, and a fragment address that enables any requestor apparatus 8 to access that data fragment after dispersal. A suitable fragment address is the combination of the DSI associated with the data structure 12 and the FID associated with the fragment.</p>
<p>A distribution apparatus 6, on receiving a message 30, extracts the content of the message and stores the data fragment F received in the message at block 90 in a manner that allows it to be referenced by the fragment address. & I</p>
<p>In one implementation, the number of fragments N is the same as the number M of distribution apparatuses 8 amongst which the fragments are dispersed and any one distribution apparatus may store only one fragment of a particular data structure 12.</p>
<p>Although a distribution apparatus 8 may store multiple fragments, they will relate to different data structures, as the distribution apparatus may store only one fragment of a particular data structure.</p>
<p>It should be appreciated that the same or a different data provider apparatus 2 may provide a second data structure 12 to the administrator apparatus 4, which will in turn fragment that second data structure and disperse those second fragments amongst distribution apparatuses 6 which may or may not include the distribution apparatuses over which the first fragments of the first data structure 12 were dispersed. The database 32 is updated to include a new record 33 for the second data structure as described above.</p>
<p>The process of data retrieval by a requestor apparatus 8 will now be described.</p>
<p>The requester apparatus 8 requests a particular data structure 12 by sending a request 40 to the administrator apparatus 4.</p>
<p>The request 40 identifies the required data structure, for example, by including the DSI of the required data structure and also an identifier of the requestor apparatus (RAI), for example, using an IP address.</p>
<p>The administrator apparatus 4 receives the request 40 and arbitrates the request 40 at block 42. If arbitration is successful, the record 33 in the database 32 associated with the required data structure is accessed and it or a portion of it is sent to the requestor apparatus 8 as message 46.</p>
<p>The arbitration process 42 may include an authentication procedure and/or payment procedure. For example, in a membership implementation, the AOl received in the request may be compared against a membership log to check whether the requestor apparatus 8 is authorised to have access to the requested data structure. As another example, in a shop-front implementation, the receipt of the request may initiate a</p>
<p>S I</p>
<p>payment procedure by which a payment is made from the requestor apparatus 8 to the administrator apparatus 4.</p>
<p>The arbitration process 42 may also involve the creation 44 of a secure communication channel between the requestor apparatus 8 and the administrator apparatus 4. In one embodiment, this may be achieved by including within the request 40 the public key of the requestor apparatus 8, generating an encryption key at the administrator apparatus 4, encrypting the generated key with the public key and sending the result to the requestor apparatus 8. The requestor apparatus 8 uses its own secret private key to recover the generated encryption key from the received result. The generated encryption key may then be used to encrypt information from the record 33 before it is transmitted to the requestor apparatus 8 as message 46 and used at the requestor apparatus 8 to recover the original information from the record 33.</p>
<p>The received record information identifies a plurality of distribution apparatuses 8 and the data fragments F of the requested data structure 12 that are stored at those apparatuses. For example, the received information may include the mappings of FID to DAI discussed in relation to Fig 4.</p>
<p>The requestor apparatus 8 creates a fragment access request 50 for each of the identified distribution apparatuses 6. A fragment access request 50 includes a fragment address which may be a combination of a DSI. and a FID1.</p>
<p>The multiple fragment access requests 50 created may be sent in parallel to the respective distribution apparatuses 6.</p>
<p>A distribution apparatus 6 responds to receiving a fragment access request 50 by accessing the stored fragment F identified by the fragment address in the request 50 and returning, in a reply message 52, the accessed fragment F to the apparatus 8 from which the fragment access request 50 was received.</p>
<p>In the implementation where N=M and m=1, N fragment access requests are created and sent to the N distribution apparatuses, which return N fragments.</p>
<p>The fragments F received by the requestor apparatus 8 are used, in block 60, to create the original data structure 12 in a de-fragmentation process which is the reverse of the fragmentation process 21.</p>
<p>If the process illustrated in Fig 2, was used for fragmentation, the process illustrated in Fig 3 may be used for de-fragmentation.</p>
<p>A set 67 of N encrypted data fragments F are provided to decryption block 64.</p>
<p>1 0 The data fragments F1, F2, F3... EN are separately decrypted at block 64 to produce a set 66 of N scrambled data fragments F. In some implementations, the same decryption process may be used for all data fragments F. In other implementations, a different decryption key 65 may be used for decrypting each data fragment F. A key for a particular fragment F may be generated in key generation block 68 using the encryption key identifier (EKl1) for that fragment, obtained from the received record 33.</p>
<p>Next the set 66 of N (scrambled) data fragments F are de-fragmented at block 63 to create a scrambled data structure 12'. If a number of different de-tragmenting procedures are possible, the correct de-fragmentation procedure 63 is identified using an FPI from the received record 33.</p>
<p>The scrambled data structure 12' is de-scrambled (or decoded) at block 62 to create a the subject data structure 12. The descrambling occurs in a predetermined manner e.g. by changing the position/order of data portions within the data structure 12. If the de-scrambling process may use a different randomly generated kernel K for each data structure 12, the correct K is taken from the received record 33.</p>
<p>Thus the original data structure 12 is recovered from a plurality of fragments dispersed over a number of distribution apparatuses 6.</p>
<p>Returning to Fig 1, after de-tragmentation 60, the original data structure 12 is available in the requestor apparatus B for use. Other actions in respect of the data structure 12 may be restricted. For example, storage of the data structure 12 may or may not be permitted. If storage is allowed it may only be allowed in a manner that prevents access by a third party or distribution to a third party. Copying, distribution etc of the data structure may or may not be permitted.</p>
<p>When the original data structure 12 has been successfully created from the fragments F, which may be verified using a checksum or similar, the requestor apparatus 8 sends an acknowledgement message 70 to the administrator apparatus 4 indicating that the data structure 12 has been successfully assembled from the dispersed fragments F. The administrator apparatus 4 responds to the received acknowledgement by sending a command 72 that instructs the requestor apparatus 8 to store a sub-set n of the N fragments it received and assembled to create the data structure 12 and to operate as a distribution apparatus 6 in respect of those n fragments.</p>
<p>In one implementation, the value of n is always one.</p>
<p>The requestor apparatus 8, on receiving the command 72, stores the data fragment(s) F identified in the command at block 74 in a manner that allows the data fragment(s) to be referenced by subsequently received fragment address(es).</p>
<p>The administrator apparatus 4, at block 76, updates the database 32 to include an additional or replacement entry or entries 36 in the record 33 for the subject data structure 12. The new entry or entries 36 map the requestor apparatus 8 to the fragment or fragments of the subject data structure 12 stored on that requestor apparatus 8. Thus when a further requestor apparatus requests the same data structure 12, the procedure is the same as described above for Fig 1, except that the further requestor apparatus operates as the requestor apparatus 8' and the original requestor apparatus may operate as one of the distribution apparatuses 6.</p>
<p>Fig. 5 illustrates a process by which a distribution apparatus 6 provides information to the administrator apparatus 4.</p>
<p>A distribution apparatus may be always-on or sometimes-on. An always-on distribution apparatus (a drone peer) may send information 100 periodically or whenever a trigger event occurs. As the drone peer is always on, the information typically informs the administration apparatus of its available resources such as available memory for use and available bandwidth for use. It may also inform a change in IP address.</p>
<p>A sometimes-on distribution apparatus (a peer) will send information 100 when it is switched on and ready to participate in the system 10 and may subsequently send information 100 periodically or whenever a trigger event occurs or when the peer is no longer able to participate in the system.</p>
<p>As the peer is not always on, the information 100 typically may either inform the administration apparatus of its available resources such as available memory for use and available bandwidth for use or of its availability e.g. that it has joined the system or is leaving the system 10. II may also inform a change in IP address.</p>
<p>An always-on distribution apparatus 6 may be a dedicated to distribution of fragments within the network and be owned and controller by the owners/controllers of the administrator apparatus 4.</p>
<p>A sometimes-on distribution apparatus 6 will not be a dedicated to distribution of fragments within the network and is generally owned and controller by someone other than the owners/controllers of the administrator apparatus 4 such as a user of the system. A sometimes-on distribution apparatus 6 may be created from a requestor apparatus as described in relation to Fig. 1.</p>
<p>The information 100 provides the administration apparatus 4 with information that enables it to optimise the data delivery service provided by the system 10 and, in particular, to optimise the content of the message 46 which instructs a requestor apparatus 8 which distribution apparatuses 6 should be accessed to obtain a particular fragment.</p>
<p>As will be appreciated from the foregoing, a record 33 for a data structure 12 may have multiple entries for a single fragment. Each entry may identify a different distribution apparatus at which that fragment is stored.</p>
<p>The administration apparatus 4 may select a sub-set of those multiple entries, so that, for example, only entries relating to available or active distribution apparatuses 6 are included.</p>
<p>The administration apparatus may prioritise the multiple entries, based on the prior use of the distribution apparatuses 6 associated with the entries and based on the resources of the distribution apparatuses 6 associated with the entries.</p>
<p>Typically, the distribution of a new data structure 12 starts by dispersing fragments F only to the dedicated, always-on distribution apparatuses (drone peers). With each subsequent download of the data structure 12 to a data requestor apparatus 8, a new distribution apparatus (peer) is created for some, but not all, of the fragments used to create the data structure. In one implementation, a distribution apparatus can only store a single fragment of any one data structure. Thus with each download the system 10 for that data structure expands to form a peer-to-peer network with an administrative function 4.</p>
<p>Fig 6 schematically illustrates an apparatus 110 operable as the requestor apparatus 8, a distribution apparatus 6, the administration apparatus 4 or the data provider apparatus 2.</p>
<p>The apparatus 110 comprises a processor 130, a memory 120 and a communications interface 140. The processor 130 may be any suitable processing circuitry e.g. a microprocessor. The memory 120 may be written to and read from by the processor 130. The communications interface 140 is for connection to a network and is used to transmit and receive the messages illustrated in Figs 1 and 4.</p>
<p>The processor 130 is able to process messages received at the communications interface 140 from the network 150 and is operable to create messages for sending into the network 150 via the communications interface 140.</p>
<p>The capability of the apparatus 110 depends upon a computer program 122 stored in the memory 120.</p>
<p>The same computer program 1 22A may be used to control the apparatus 110 to operate as a requestor apparatus 8 and a distribution apparatus 6. The computer program when downloaded onto an apparatus 110 is initially in a requestor only mode' and enables the apparatus 110 to operate as a requestor apparatus 8. After downloading a data structure 12, the apparatus 110 then enters a distribution mode' and is operable as a distribution apparatus for a data fragment of the downloaded data structure and as a requestor apparatus 8 for additional data structures.</p>
<p>The computer program instructions 122A control the operation of the apparatus 110 when loaded into the processor 130. The computer program instructions 122A provide the logic and routines that enables the electronic apparatus to perform the methods described and/or as illustrated in Figs 1, 3 and 5 that are performed by a requestor apparatus 8 and/or a distribution apparatus 6.</p>
<p>The computer program instructions 122A may arrive at the apparatus 110 via an electromagnetic carrier signal, for example, via the network 150 or be copied from a physical entity 160 (Fig 7) such as a computer program product, a memory device or a record medium such as a CD-ROM or DVD.</p>
<p>A different computer programi 22B may be loaded into memory 120 as analternative to computer program 122A. The computer program instructions 122B control the operation of the apparatus 110 when loaded into the processor 130. The computer program instructions 122B provide the logic and routines that enables the apparatus to perform the methods described and/or as illustrated in Figs 1, 2, 4 and 5 that are performed by an administrator apparatus 4 The computer program instructions 122B may arrive at the apparatus 110 via an electromagnetic carrier signal, for example, via the network 150 or be copied from a physical entity 160 (Fig 7) such as a computer program product, a memory device or a record medium such as a CD-ROM or DVD.</p>
<p>Although embodiments of the present invention have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the invention as claimed. For example, the message 46 may be sent as a series of messages and the record 33 may be sent to the requestor apparatus as a plurality of data structures.</p>
<p>Whilst endeavoring in the foregoing specification to draw attention to those features of the invention believed to be of particular importance it should be understood that the Applicant claims protection in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not particular emphasis has been placed thereon.</p>
<p>I/we claim:</p>
Claims (1)
- <p>CLAIMS</p><p>1. A method comprising: sending a first request for first data; receiving, in reply, one or more data structures for accessing a first plurality of data fragments; using the one or more data structures to create and send a second plurality of second requests for data fragments of the first data; receiving, in reply to the second requests, at least each of the first plurality of data fragments; using the first plurality of data fragments to create the first data; and storing one or more, but not all, of the first plurality of data fragments.</p><p>2. A method as claimed in claim 1, wherein Only one of the first plurality of data fragments is stored.</p><p>3. A method as claimed in claim 1 or 2, further comprising: sending the stored one or more data fragments to an apparatus in response to receiving a second request identifying the stored fragment(s) from that apparatus.</p><p>4. A method as claimed in any preceding claim, wherein at least some of the second plurality of second requests are sent in parallel.</p><p>5. A method as claimed in any preceding claim, wherein each second request requests a single data fragment.</p><p>6. A method as claimed in any preceding claim, wherein the first request for first data is sent to an administrative apparatus.</p><p>7. A method as claimed in any preceding claim, wherein the data fragments are distributed across a second plurality of distribution apparatuses.</p><p>8. A method as claimed in any preceding claim, wherein the received data structure identifies the first plurality of data fragments and maps each data fragment to a respective one of the second plurality of distribution apparatuses at which that data fragment is stored.</p><p>9. A method as claimed in claim 8, wherein the first plurality and second plurality are the same number.</p><p>10. A method as claimed in any preceding claim, wherein the data structure maps by one-to-one correspondence, data fragments and distribution apparatuses.</p><p>11. A method as claimed in any preceding claim, wherein the second requests are sent to distribution apparatuses.</p><p>12. A method as claimed in any preceding claim, in which there is a different one second request for each one of the first plurality of data fragments.</p><p>13. A method as claimed in any preceding claim, wherein the data fragments are encrypted portions of the first data.</p><p>14. A method as claimed in any preceding claim, wherein the data fragments are portions of scrambled first data.</p><p>15. A computer program product comprising code that enables: sending a first request for first data; using one or more data structures, received in reply to the first request, to create and send a second plurality of second requests; using a first plurality of data fragments, received in reply to the second requests, to create the first data; and storing for access one or more, but not all, of the first plurality of data fragments.</p><p>16. An apparatus comprising: a memory; a communications interface for sending a first request for first data and a second plurality of second requests for data fragments of first data and for receiving, in reply to the first request, one or more data structures for creating the second requests and for receiving, in reply to the second requests, at least a first plurality of data fragments for creating the first data; and processing circuitry operable to use the received one or more data structures to create the second plurality of second requests and to use the first plurality of data fragments to create the first data and operable to store one or more, but not all, of the first plurality of data fragments in the memory for distribution.</p><p>17. A method, for performance at an apparatus, comprising: repeatedly informing an administration apparatus of a status of the apparatus; receiving a first data fragment of first data from the administration apparatus; receiving a second data fragment of second data from the administration apparatus; in response to receiving a request identifying the first data fragment sending, in reply, the identified first data fragment; and in response to receiving a request identifying the second data fragment sending, in reply, the identified second data fragment.</p><p>18. An always-on apparatus comprising: a communications interface that is operable to repeatedly inform an administration apparatus of its status, receive a first data fragment of first data from the administration apparatus and receive, separately, a second data fragment of second data from the administration apparatus; and processing circuitry continuously operable, in response to receiving a request identifying the first data fragment, to enable the sending, in reply, the identified first data fragment and continuously operable, in response to receiving a request identifying the second data fragment, to enable sending, in reply, the identified second data fragment.</p><p>19. A computer program product comprising code that enables an apparatus to: repeatedly inform an administration apparatus of a status of the apparatus; store a received first data fragment of first data; store a received second data fragment of second data; to send, in response to receiving a request identifying the first data fragment, the identified first data fragment; and to send, in response to receiving a request identifying the second data fragment, the identified second data fragment.</p><p>20. A method comprising: fragmenting data into a first plurality of data fragments; dispersing the first plurality of data fragments over a second plurality of distribution apparatuses; and storing one or more data structures that enable a requestor apparatus to access the dispersed first plurality of data fragments.</p><p>21. A method as claimed in claim 20, wherein dispersing data fragments involves sending a fragment to a distribution apparatus along with a fragment address for that fragment.</p><p>22. A method as claimed in claim 20 or 21, further comprising: receiving a first request for first data from a requestor apparatus; and sending, to the requestor apparatus in reply, at least portions of the stored one or more data structures that enable access to the first plurality of data fragments.</p><p>23. A method as claimed in claim 22, wherein the information sent to the requestor apparatus in reply maps data fragments to distribution devices.</p><p>24. A method as claimed in claim 23, wherein the information includes one of more encryption keys.</p><p>25. A method as claimed in any one of claims 20 to 24, further comprising: receiving an acknowledgement from the requestor apparatus; commanding the requestor apparatus to store a sub-set, but not all, of the first plurality of data fragments; and updating the stored one or more data structures to record that the sub-set of data fragments are accessible from the requestor apparatus.</p><p>26. A method as claimed in any one of claims 20 to 25, further comprising scrambling the data before fragmentation.</p><p>27. A method as claimed in any one of claims 20 to 26, further comprising encrypting the data fragments before dispersal.</p><p>28. A apparatus comprising: a processor operable to fragment data into a first plurality of data fragments; a communications interface operable to disperse the first plurality of data fragments over a second plurality of distribution apparatuses; and a memory for storing one or more data structures that enable a requestor apparatus to access the dispersed first plurality of data fragments.</p><p>29. A computer program product comprising code that enables: fragmenting data into a first plurality of data fragments; dispersing the first plurality of data fragments over a second plurality of distribution 1 5 apparatuses; and storing one or more data structures that enable a requestor apparatus to access the dispersed first plurality of data fragments.</p><p>30. A data delivery method comprising enabling a requesting apparatus that requests first data to obtain the first data as a first plurality of data fragments from a second plurality of distribution apparatuses; and enabling the requesting apparatus to become subsequently a distribution apparatus for only a sub-set of the first plurality of data fragments.</p><p>31. A data delivery system, or requestor apparatus, or delivery apparatus or administrator apparatus substantially as hereinbef ore described with reference to and/or as shown in the accompanying drawings.</p><p>32. Any novel subject matter or combination including novel subject matter disclosed, whether or not within the scope of or relating to the same invention as the preceding claims.</p>
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0615857A GB2440788A (en) | 2006-08-10 | 2006-08-10 | Fragmented data storage in peer to peer networks |
US11/693,048 US20080201353A1 (en) | 2006-08-10 | 2007-03-29 | Data Delivery |
US11/693,884 US20080040451A1 (en) | 2006-08-10 | 2007-03-30 | System and Method for Verifying User and Provider Information Data Delivery |
PCT/US2007/075622 WO2008108874A2 (en) | 2006-08-10 | 2007-08-09 | System and method for verifying user and provider information for data delivery |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0615857A GB2440788A (en) | 2006-08-10 | 2006-08-10 | Fragmented data storage in peer to peer networks |
Publications (2)
Publication Number | Publication Date |
---|---|
GB0615857D0 GB0615857D0 (en) | 2006-09-20 |
GB2440788A true GB2440788A (en) | 2008-02-13 |
Family
ID=37056104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0615857A Withdrawn GB2440788A (en) | 2006-08-10 | 2006-08-10 | Fragmented data storage in peer to peer networks |
Country Status (3)
Country | Link |
---|---|
US (2) | US20080201353A1 (en) |
GB (1) | GB2440788A (en) |
WO (1) | WO2008108874A2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8401183B2 (en) * | 2007-12-27 | 2013-03-19 | Verizon Patent And Licensing Inc. | Method and system for keying and securely storing data |
US20110035509A1 (en) * | 2009-08-06 | 2011-02-10 | Steven Carter Powell | System and Method for High Speed transfer of Files over a Network |
US9922063B2 (en) * | 2009-12-29 | 2018-03-20 | International Business Machines Corporation | Secure storage of secret data in a dispersed storage network |
CN111062053B (en) * | 2019-12-10 | 2023-02-03 | 中国建设银行股份有限公司 | Method, device, equipment and medium for processing biological characteristic data |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004059529A2 (en) * | 2002-12-31 | 2004-07-15 | British Telecommunications Public Limited Company | Method and apparatus for discovering computers for storing fragments of files in a computer network |
WO2007008567A1 (en) * | 2005-07-08 | 2007-01-18 | Matsushita Electric Industrial Co., Ltd. | Secure peer to peer messaging service |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7349987B2 (en) * | 2000-11-13 | 2008-03-25 | Digital Doors, Inc. | Data security system and method with parsing and dispersion techniques |
US20020143959A1 (en) * | 2001-04-03 | 2002-10-03 | David El-Baze | Method and apparatus for interactive direct peer-to-peer multimedia streaming |
US20030188011A1 (en) * | 2002-03-29 | 2003-10-02 | Deshpande Nikhil M. | Method and apparatus to distribute data |
US20030204602A1 (en) * | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US20030212804A1 (en) * | 2002-05-09 | 2003-11-13 | Ardeshir Hashemi | Method and apparatus for media clip sharing over a network |
US7487255B2 (en) * | 2003-08-14 | 2009-02-03 | Hewlett-Packard Development Company, L.P. | Routing cache management with route fragmentation |
US7664109B2 (en) * | 2004-09-03 | 2010-02-16 | Microsoft Corporation | System and method for distributed streaming of scalable media |
JP2006126894A (en) * | 2004-10-26 | 2006-05-18 | Sony Corp | Content delivery method, program and information processor |
-
2006
- 2006-08-10 GB GB0615857A patent/GB2440788A/en not_active Withdrawn
-
2007
- 2007-03-29 US US11/693,048 patent/US20080201353A1/en not_active Abandoned
- 2007-03-30 US US11/693,884 patent/US20080040451A1/en not_active Abandoned
- 2007-08-09 WO PCT/US2007/075622 patent/WO2008108874A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004059529A2 (en) * | 2002-12-31 | 2004-07-15 | British Telecommunications Public Limited Company | Method and apparatus for discovering computers for storing fragments of files in a computer network |
WO2007008567A1 (en) * | 2005-07-08 | 2007-01-18 | Matsushita Electric Industrial Co., Ltd. | Secure peer to peer messaging service |
Also Published As
Publication number | Publication date |
---|---|
WO2008108874A2 (en) | 2008-09-12 |
WO2008108874A3 (en) | 2008-11-13 |
US20080201353A1 (en) | 2008-08-21 |
US20080040451A1 (en) | 2008-02-14 |
GB0615857D0 (en) | 2006-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019237796A1 (en) | Resource acquisition method and apparatus, resource distribution method and apparatus, and resource downloading method and apparatus, and device and storage medium | |
US7409061B2 (en) | Method and system for secure distribution of subscription-based game software | |
US7680937B2 (en) | Content publication | |
US6192130B1 (en) | Information security subscriber trust authority transfer system with private key history transfer | |
US6801998B1 (en) | Method and apparatus for presenting anonymous group names | |
US8285993B1 (en) | System and method for establishing a shared secret among nodes of a security appliance | |
US20070094272A1 (en) | Method and system for managing distributed storage of digital contents | |
Serjantov | Anonymizing censorship resistant systems | |
CN108881195A (en) | Data safety sharing method and device based on cloud environment | |
KR102399667B1 (en) | Security system for data trading and data storage based on block chain and method therefor | |
KR20130084604A (en) | Method to control and limit readability of electronic documents | |
JP2005506001A (en) | IP hopping for secure data transfer | |
US20030210791A1 (en) | Key management | |
EP2692107B1 (en) | Managed authentication on a distributed network | |
CN109151507B (en) | Video playing system and method | |
CN101341691A (en) | Authorisation and authentication | |
US8930703B2 (en) | Methods, systems and computer program products for controlling the disclosure time of information | |
US20080201353A1 (en) | Data Delivery | |
CN116166749A (en) | Data sharing method and device, electronic equipment and storage medium | |
CN115022027B (en) | A data processing method, device, system, equipment and readable storage medium | |
CN110958285B (en) | Data storage system based on block chain | |
CN110958211B (en) | Data processing system and method based on block chain | |
KR101215802B1 (en) | Method of providing a contents service in a p2p network | |
EP1387522A2 (en) | Apparatus and method for securing a distributed network | |
Endsuleit et al. | Censorship-resistant and anonymous P2P filesharing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |