Claims
- 1. A method for sharing data with a recipient, the method comprising:
creating a bundle, the bundle comprising information identifying a selection of data to be shared; storing the bundle in a bundle store accessible to a bundle server, associating the bundle with a bundle identifier that is substantially unguessable and creating a token corresponding to the bundle, the token comprising the bundle identifier; providing the token to a recipient; receiving the bundle identifier at the bundle server from the recipient, using the bundle identifier to identify the bundle, and subsequently returning contents of the bundle to the recipient.
- 2. A method according to claim 1 comprising identifying a plurality of data files to be shared by receiving selection information from a sharer;
wherein the method comprises establishing a communication channel between the bundle server and the recipient and returning contents of the bundle to the recipient comprises providing a copy of the bundle to the recipient by way of the communication channel.
- 3. A method according to claim 2 wherein the selection information identifies a plurality of data files to be shared.
- 4. A method according to claim 3 wherein providing the token to the recipient is performed by way of a communication mechanism different from the communication channel.
- 5. A method according to claim 3 wherein the token is provided to the recipient as an attachment to an e-mail communication.
- 6. A method according to claim 3 wherein the token comprises a token file of a type associated with a token redeemer wherein, selection of the token file invokes the token redeemer.
- 7. A method according to claim 1 comprising providing the token to a plurality of recipients and repeating redeeming the token for two or more of the plurality of recipients.
- 8. A method according to claim 1 wherein associating the bundle with a bundle identifier comprises creating a bundle identifier having a value selected from among at least 1020 possible values.
- 9. A method according to claim 8 wherein the bundle identifier has a value selected from among at least 1030 possible values.
- 10. A method according to claim 9 comprising maintaining a ratio of a number of the possible values to a number of bundles in the bundle store to be at least 1020:1.
- 11. A method according to claim 8 comprising maintaining a ratio of a number of the possible values to a number of bundles in the bundle store to be at least 1015:1.
- 12. A method according to claim 11 wherein the ratio of a number of the possible values to a number of bundles in the bundle store exceeds a maximum number of requests for bundles that could be made in one year at a maximum request rate of the bundle server by a factor of at least 1000.
- 13. A method according to claim 1 wherein returning the bundle to the recipient is performed automatically based solely upon information from the token.
- 14. A method according to claim 1 comprising including in the token a plurality of token resources, the token resources each identifying a corresponding one of a plurality of data items in the selection of data.
- 15. A method according to claim 14 comprising receiving from the recipient a request for a subset of the data items of the selection of data wherein and returning the contents of the bundle to the recipient comprises providing copies of the subset of the data items to the recipient.
- 16. A method for sharing data with one or more recipients, the method comprising:
identifying a selection of data to be shared; creating a bundle, containing information about the selection of data, and storing the bundle in a location accessible by a bundle server; associating bundle identification information with the bundle, the bundle identification information being substantially unguessable; creating a token representing the bundle, the token including the bundle identification information; and a recipient obtaining the token and communicating with the bundle server, the communicating comprising requesting the bundle from the bundle server at least in part by providing the bundle identification information from the token; and providing a copy of the bundle to the recipient having the token.
- 17. A method according to claim 16 wherein creating the bundle comprises:
storing the bundle in a bundle store, the bundle store associated with a bundle store sharer identity, the bundle store sharer identity being unique among a plurality of bundle store sharer identities corresponding to a plurality of bundle stores accessible to the bundle server, the bundle store containing one or more bundles, corresponding to a sharer, the sharer having a sharer identity, matching the bundle store sharer identity.
- 18. A method according to claim 17 wherein the bundle store is associated with a bundle store key pair generated by an asymmetric encryption system, the key pair including a bundle store public key and a bundle store private key wherein creating the token comprises including the bundle store public key in the token.
- 19. A method according to claim 18 wherein the bundle identification information comprises a bundle identifier comprising a value generated randomly within a substantially large range of possible values;
a bundle store identifier comprising a value generated randomly within a substantially large range of possible values; and an encrypted bundle name, corresponding to a bundle name associated with the bundle, the encrypted bundle name generated using the bundle store private key.
- 20. A method according to claim 16 wherein the bundle identification information comprises a bundle identifier comprising a value generated randomly within a substantially large range of possible values.
- 21. A method according to claim 20 wherein the range of possible values includes in excess of 1020 possible values.
- 22. A method according to claim 21 wherein providing the copy of the bundle comprises:
obtaining the bundle identification information for the bundle; identifying a candidate bundle, the candidate bundle having associated candidate bundle identification information; and communicating a copy of the candidate bundle to the recipient if the candidate bundle identification information matches the requested bundle identification information.
- 23. A method according to claim 16 wherein the token includes a plurality of token resources, corresponding to a plurality of bundle resources and communicating with the bundle server comprises:
selecting a subset of the token resources, requesting a subset of the one or more bundle resources corresponding to the subset of the token resources; and, providing the subset of the one or more bundle resources to the recipient having the token.
- 24. A method according to claim 23 wherein the token includes a selection context providing information about the selection of data.
- 25. A method according to claim 23 wherein the token includes one or more topic contexts, the one or more topic contexts referencing one or more token resources.
- 26. A method according to claim 23 wherein the token includes one or more relationship contexts, the one or more relationship contexts referencing a plurality of token resources.
- 27. A method according to claim 16 wherein the token includes a plurality of bundle server communication addresses corresponding to a bundle server having access to the bundle and the method comprises establishing communication with the bundle server by attempting communication with the bundle server using different ones of the plurality of bundle server communication addresses until communication is established with the bundle server.
- 28. A method according to claim 16 comprising establishing communication with the bundle server using a searching method, the searching method comprising attempting communication with the bundle server at each of a plurality of candidate addresses to determine if a candidate address corresponds to the bundle server.
- 29. A method according to claim 16 wherein establishing communication with the bundle server having access to the bundle comprises using a relay service, the relay service comprising:
a mechanism capable of receiving unsolicited communications from a plurality of parties; establishing a bundle server protocol with a plurality of bundle servers to receive ongoing communications from the plurality of bundle servers; storing a communication from a recipient to a destination bundle server, the destination bundle server observing the bundle server protocol; establishing a recipient protocol with the recipient to receive ongoing communications from the recipient; replying to an ongoing communication from the destination bundle server, providing the stored communication from the recipient to the destination bundle server; storing a communication from the destination bundle server to the recipient; and replying to an ongoing communication from the recipient, providing the stored communication from the destination bundle server to the recipient, whereby communication is facilitated between a recipient and a destination bundle server that do not permit unsolicited communication.
- 30. A method according to claim 16 comprising, before providing the token to the recipient, encrypting the token so that the token can be decrypted with the use of a pass-phrase.
- 31. A method according to claim 16 wherein creating a bundle comprises:
generating a bundle key; encrypting at least a part of the bundle using the bundle key; and, storing the bundle key in the token.
- 32. A method according to claim 18 wherein communicating with the bundle server comprises:
receiving one or more communications at the bundle server, the communications encrypted with the bundle store public key; and sending one or more communications from the bundle server, the communications encrypted with the bundle store private key.
- 33. A method according to claim 16 wherein the bundle includes:
a retrieval limit and a retrieval count and the method comprises inhibiting providing the copy of the bundle if providing the copy of the bundle would cause the bundle count to exceed the retrieval limit.
- 34. A method according to claim 33 comprising:
incrementing the retrieval count each time a copy of the bundle is provided to a recipient.
- 35. A method according to claim 16 wherein:
the bundle is associated with:
a retrieved data quota, and a total retrieved data amount, based on an accumulation of retrieved data amounts corresponding to the bundle; and the method comprises inhibiting providing the copy of the bundle if providing the copy of the bundle would cause the total retrieved data amount to exceed the retrieved data quota.
- 36. A method according to claim 16 wherein the token includes an expiry date.
- 37. A method according to claim 36 wherein communicating with the bundle server comprises:
obtaining a current date, and, communicating with the bundle server only if the expiry date is later than the current date.
- 38. A method according to claim 16 wherein the bundle includes an expiry date and the method comprises:
periodically obtaining a current date at the bundle server; and, deleting one or more bundles, for which the expiry date is earlier than the current date.
- 39. A method according to claim 16 wherein the bundle comprises one or more bundle resources and creating a token comprises:
computing a bundle digest based on the one or more bundle resources; storing the bundle digest in the token.
- 40. A method according to claim 39 wherein receiving a copy of the bundle comprises:
computing a bundle copy digest based on the one or more bundle resources in the copy of the bundle, and comparing the bundle digest and the bundle copy digest.
- 41. A computerized system for sharing data with a plurality of recipients, the system comprising:
means for receiving from a sharer an identification of a selection of data to be shared; means for creating and storing a bundle, containing information about the selection of data; means for creating a bundle identification information and an associating it with the bundle, the bundle identification being substantially unguessable; means for creating a token representing the bundle, the token including the bundle identification information; and means for receiving from a recipient a request for the bundle identified by the bundle identification information from the token; and, means for providing to the recipient a copy of the bundle in response to the request.
- 42. An apparatus for sharing a plurality of selections of data, the apparatus comprising:
a plurality of bundle servers, each of the bundle servers configured for: creating a bundle,
storing information about a selection of data in the bundle; generating a bundle identification that is substantially unguessable and associating it with the bundle; and communicating the information about a selection of data in the bundle when provided with a requested bundle identification corresponding to a bundle that is accessible by the bundle server; a plurality of tokenizers, each of the tokenizers configured for: identifying a selection of data from a sharer; providing the selection of data to a bundle server to create a bundle; obtaining the bundle identification from the bundle server; creating a token representing the bundle, the token including the bundle identification; and providing the token to the sharer; and a plurality of redeemers, each of the redeemers configured for: obtaining a token; establishing communication with a bundle server having access to the bundle, and communicating with the bundle server, communicating comprising: requesting the bundle identified by the bundle identification in the token; and receiving a copy of the bundle, whereby receiving depends on having the token.
- 43. A medium carrying a set of computer-readable signals comprising instructions which, when executed by a data processor, cause the data processor to execute a method according to claim 1.
REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit under 35 U.S.C. §119 of U.S. patent application Nos. 60/472,966 entitled “SYSTEM AND PROCESS FOR SENDING ELECTRONIC MESSAGING ATTACHMENTS” filed 22 May 2003 and 60/319,701 entitled “SYSTEM AND PROCESS FOR SENDING ELECTRONIC MESSAGING ATTACHMENTS”, filed 15 Nov. 2002, both of which are hereby incorporated by reference herein.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60472966 |
May 2003 |
US |
|
60319701 |
Nov 2002 |
US |