Request-response processing an a content delivery network
View Patent ↗A computer-implemented method in a content delivery network (CDN) includes, responsive to a request, determining a particular sequencer to handle the request, the particular sequencer includes a sequence of one or more handlers. The request is processed in accordance with the particular sequencer by invoking the one or more handlers.
1. A computer-implemented method in a content delivery network (CDN), wherein the CDN serves content on behalf of one or more subscribers to the CDN, the method comprising:
(A) responsive to a request at a server in said CDN, said request being associated with a particular CDN subscriber, determining a particular sequencer to handle the request, said particular sequencer comprising a sequence control object including (i) a sequence of multiple handlers, and (ii) one or more handler arguments associated with at least some of the multiple handlers, wherein the sequence control object is stored in compiled form, and wherein at least some of said multiple handlers are determined based on the at least some of said multiple handlers being uniquely associated with said particular CDN subscriber; and
(B) processing the request at said server in said CDN in accordance with the particular sequencer by invoking the multiple handlers.
2. The method of claim 1 , wherein the one or more handler arguments are associated with fewer than all of the multiple handlers.
3. The method of claim 1 , wherein the one or more handlers comprise an ordered list of said multiple handlers, and wherein, in (B), said multiple handlers are invoked in an order specified by said ordered list.
4. The method of claim 1 , wherein said particular sequencer is bi-directional, and wherein said multiple handlers have a defined order, and wherein, in (B), said multiple handlers are invoked in said defined order and then a reverse order of said defined order.
5. The method of claim 1 , wherein at least one of the multiple handlers inspects the sequence of handlers.
6. The method of claim 1 , wherein at least one of the multiple handlers modifies the sequence of handlers.
7. The method of claim 6 , wherein a first handler of the particular sequence launches a subsequence of a second one or more handlers, wherein execution of the particular sequence is suspended until completion of the subsequence.
8. The method of claim 6 , wherein a first handler of the particular sequence launches a second complete subsequence of a second one or more handlers, wherein execution of the particular sequence continues during execution of the second complete subsequence.
9. The method of claim 8 , wherein the particular sequence obtains a result from the second complete subsequence.
10. The method of claim 9 , wherein the particular sequence waits for a result from the second complete subsequence.
11. The method of claim 1 , wherein at least one of the multiple handlers is removed from the sequence after completion of processing of said at least one of the multiple handlers.
12. The method of claim 1 , wherein at least one of the multiple handlers is a persistent handler.
13. The method of claim 12 , wherein said persistent handler is called in a forward direction of the sequence and in a reverse direction of the sequence.
14. The method of claim 12 , wherein said sequencer is bi-directional.
15. The method of claim 1 , wherein said sequencer comprises a task.
16. The method of claim 1 , wherein at least some handlers of said multiple handlers are blocking.
17. The method of claim 1 , wherein at least some handlers of said multiple handlers are synchronous.
18. The method of claim 1 , wherein said invoking the multiple handlers comprises:
invoking at least some of the multiple handlers.
19. The method of claim 1 , wherein at least one of said multiple handlers is called in a forward direction of the sequence and in a reverse direction of the sequence.
20. The method of claim 1 , wherein the at least some of said multiple handlers are determined based on said particular CDN subscriber specific data.
21. The method of claim 20 , wherein said particular CDN subscriber specific data includes a CDN subscriber specific customer configuration script.
22. A device, operable in a content delivery network (CDN), wherein the CDN serves content on behalf of one or more subscribers to the CDN, the device comprising:
(i) hardware including memory and at least one processor; and
(ii) a cache server mechanism to:
(a) responsive to a request, said request being associated with a particular CDN subscriber, determine a particular sequencer to handle the request, said particular sequencer comprising a sequence control object including (i) a sequence of multiple handlers, and (ii) one or more handler arguments associated with at least some of the multiple handlers, wherein the sequence control object is stored in compiled form, and wherein at least some of said multiple handlers are determined based on the at least some of said multiple handlers being uniquely associated with said particular CDN subscriber; and
(b) process the request in accordance with the particular sequencer by invoking the multiple handlers.
23. The device of claim 22 , wherein invoking the multiple handlers comprises:
invoking at least some of the multiple handlers.
24. The device of claim 22 , wherein at least one of said multiple handlers is called in a forward direction of the sequence and in a reverse direction of the sequence.
25. An article of manufacture, comprising non-transitory computer-readable media having computer readable instructions stored thereon, the computer readable instructions including instructions for implementing a computer-implemented method, said method operable in a content delivery network (CDN) comprising: a plurality of cache servers, the method comprising, by hardware and software on a cache server mechanism of said plurality of cache servers, wherein the CDN serves content on behalf of one or more subscribers to the CDN:
(a) responsive to a request, said request being associated with a particular CDN subscriber, determine a particular sequencer to handle the request, said particular sequencer comprising a sequence control object including (i) a sequence of multiple handlers, and (ii) one or more handler arguments associated with at least some of the multiple handlers, wherein the sequence control object is stored in compiled form, wherein at least some of said multiple handlers are determined based on the at least some of said multiple handlers being uniquely associated with said particular CDN subscriber; and
(b) process the request in accordance with the particular sequencer by invoking the multiple handlers.
26. The article of manufacture of claim 25 , wherein invoking the multiple handlers comprises:
invoking at least some of the multiple handlers.
27. The article of manufacture of claim 25 , wherein at least one of said multiple handlers is called in a forward direction of the sequence and in a reverse direction of the sequence.