Claims
- 1. A network for distributing digital content to subscribers, comprising:
a plurality of user machines; a central distributor that regularly distributes digital content; a plurality of cache servers that receive and cache the distributed digital content, wherein the cache servers periodically receive user requests from user machines for certain of the cached digital content and forward the requested digital content to the user machines; and, a routing box that receives the distributed digital content as files from the central distributor and transfers the digital content files to the plurality of cache servers using a publish-subscribe content-based routing, wherein the digital content files are publications and the user requests are subscriptions.
- 2. The network of claim 1, wherein the routing box is a first routing box, the network further comprising a second routing box co-located with the plurality of cache servers, wherein the first routing box routs the digital content files to the second routing box co-located with at least one of the plurality of cache servers.
- 3. The network of claim 1, wherein the plurality of cache servers are located at a network service provider.
- 4. The network of claim 1, wherein the plurality of cache servers are a first level of cache servers that store all the digital content distributed by the central distributor.
- 5. The network of claim 4, further comprising a second level of cache servers that store a portion of the digital content distributed by the central distributor.
- 6. The network of claim 5, wherein the routing box is a first routing box, the network further comprising a second routing box co-located with the second level of cache servers, wherein the first routing box and the second routing box transfer digital content files from the first level of cache servers to the second level of cache servers using a publish-subscribe content-based routing.
- 7. The network of claim 6, wherein each of the routing boxes include:
a receive module for receiving a packet having a header section and a payload section, the payload section including information relating to a digital content file; an inspect module for inspecting the payload section of the packet for use in determining how to route the packet; and a rout module for selectively routing the packet from the first level of cache servers to the second level of cache servers based upon the inspecting.
- 8. The network of claim 5, wherein the portion of the digital content stored by the second level of cache servers is determined based on a history of received user requests.
- 9. The network of claim 5, wherein the second level of cache servers directly receive the user requests and forward user requests to the first level of cache servers for digital content not stored by the second level of cache servers.
- 10. The network of claim 1, wherein the routing box includes:
a receive module for receiving a packet having a header section and a payload section, the payload section including information relating to a digital content file; an inspect module for inspecting the payload section of the packet for use in determining how to route the packet; and a rout module for selectively routing the packet from the central distributor to the plurality of cache servers based upon the inspecting.
- 11. The network of claim 1, wherein the central distributor comprises one or more servers.
- 12. The network of claim 1, wherein the digital content includes video, music and software.
- 13. A method for distributing digital content to subscribers in a network, comprising:
distributing digital content from a central distributor; content-based routing the distributed digital content to a plurality of cache servers; caching the content-based routed digital content at the plurality of cache servers; receiving user subscriptions for requested cached digital content; and, transferring requested digital content from the plurality of cache servers to users based on the received user subscription.
- 14. The method of claim 13, the content-based routing step including:
receiving a packet having a header section and a payload section, the payload section including information relating to a digital content file; inspecting the payload section of the packet for use in determining how to route the packet; and selectively routing the packet to the plurality of cache servers based upon the inspecting.
- 15. The method of claim 14 wherein the inspecting step includes determining whether information in the payload section matches content predicate information in a structure associating the content predicate information with corresponding destinations.
- 16. The method of claim 14 wherein the inspecting step includes applying a filter to information in the payload section.
- 17. The method of claim 16, further including propagating the filter to a routing box in the network for use in performing the inspecting.
- 18. The method of claim 14, further including programming a routing box in the network for performing the receiving, inspecting, and routing steps.
- 19. The method of claim 14 wherein the inspecting step includes inspecting attributes for use in determining how to route the packet.
- 20. The method of claim 14, further including performing the inspecting step a routing box.
- 21. The method of claim 13, wherein the plurality of cache servers is a first level of cache servers, the method further including transferring cached digital content to a second level of cache servers using content-based routing.
- 22. The method of claim 21, further comprising determining whether the requested digital content is at the second level of cache servers.
- 23. The method of claim 22, further comprising transferring received user subscriptions to the first level of cache servers based on the determination.
- 24. The method of claim 21, wherein the transferring step transfers cached digital content to the second level of cache servers using content-based routing based on a history of received user subscriptions.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application incorporates by reference and claims the priority of U.S. Provisional Application No. 60/394,641, entitled “Packet Routing Via Payload Inspection for Digital Content Delivery,” filed Jul. 8, 2002. The present application is also a Continuation-in-Part (CIP) of U.S. patent application Ser. No. 10/199,356, entitled “Packet Routing Via Payload Inspection,” U.S. patent application Ser. No. 10/199,368, entitled “Method And Apparatus For Content-Based Routing And Filtering At Routers Using Channels,” U.S. patent application Ser. No. 10/199,439, entitled “Method For Sending And Receiving A Boolean Function Over A Network”, U.S. patent application Ser. No. 10/199,369, entitled “Method For Storing Boolean Functions To Enable Evaluation, Modification, Reuse, And Delivery Over A Network,” and U.S. patent application Ser. No. 10/199,388, entitled “Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing,” all filed Jul. 19, 2002 and all hereby incorporated by reference.
[0002] The present application also incorporates by reference the following U.S. patent applications, also CIPs of the above-referenced applications, filed Mar. 28, 2003: application Ser. No. 10/400,671, entitled “Method and Apparatus for Reliable Publishing and Subscribing in an Unreliable Network,” application Ser. No. 10/400,465, entitled “Method and Apparatus for Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation,” application Ser. No. 10/400,453, entitled “Method and Apparatus for Implementing Query-Response Interactions in a Publish-Subscribe Network,” application Ser. No. 10/400,462, entitled “Method and Apparatus for Implementing Persistent and Reliable Message Delivery,” and, application Ser. No. 10/400,444, entitled “Method and Apparatus for Propagating Content Filters for a Publish-Subscribe Network.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60394641 |
Jul 2002 |
US |
Continuation in Parts (5)
|
Number |
Date |
Country |
Parent |
10199356 |
Jul 2002 |
US |
Child |
10613994 |
Jul 2003 |
US |
Parent |
10199368 |
Jul 2002 |
US |
Child |
10613994 |
Jul 2003 |
US |
Parent |
10199439 |
Jul 2002 |
US |
Child |
10613994 |
Jul 2003 |
US |
Parent |
10199369 |
Jul 2002 |
US |
Child |
10613994 |
Jul 2003 |
US |
Parent |
10199388 |
Jul 2002 |
US |
Child |
10613994 |
Jul 2003 |
US |