Prosecution Insights
Last updated: April 19, 2026
Application No. 18/911,066

METHOD FOR DYNAMIC SELECTION OF A CONTENT DELIVERY NETWORK

Non-Final OA §102§112
Filed
Oct 09, 2024
Examiner
DOAN, TAN
Art Unit
2445
Tech Center
2400 — Computer Networks
Assignee
Mux Inc.
OA Round
1 (Non-Final)
72%
Grant Probability
Favorable
1-2
OA Rounds
3y 2m
To Grant
98%
With Interview

Examiner Intelligence

Grants 72% — above average
72%
Career Allow Rate
225 granted / 311 resolved
+14.3% vs TC avg
Strong +25% interview lift
Without
With
+25.4%
Interview Lift
resolved cases with interview
Typical timeline
3y 2m
Avg Prosecution
32 currently pending
Career history
343
Total Applications
across all art units

Statute-Specific Performance

§101
8.9%
-31.1% vs TC avg
§103
57.3%
+17.3% vs TC avg
§102
16.9%
-23.1% vs TC avg
§112
14.9%
-25.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 311 resolved cases

Office Action

§102 §112
DETAILED ACTION In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. The term “approximating” in dependent claims 2 and 7 is a relative term which renders the claim indefinite. The term “approximating” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. The term “approximating” in claims 8-15 is a relative term which renders the claim indefinite. The term “approximating” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. The term “analogous to” in claims 16-19 is a relative term which renders the claim indefinite. The term “analogous to” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. Claim 10 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 10 recites “a second internet protocol address within a threshold proximity of the first internet protocol address” and “proximity of the second internet protocol address to the first internet protocol address”. It is unclear how to determine the “proximity” between two internet protocol addresses. Claim Rejections - 35 USC § 102 (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. Claim(s) 1 is/are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Stoica et al. (US9264780B1). Regarding claim 1, Stoica discloses method comprising ([col 22 line 20] shows balancing the load across multiple CDNs; [col 24 lines 45-47] shows suppose two CDNs are both streaming a live video feed of a soccer game): during a first time period ([col 20 lines 52-55] shows a large number of viewers attempt to connect to a live event in a short period of time, such as at the start of a soccer game): accessing a first set of historical data for a first user population served by a first content delivery network prior to the first time period ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 24 lines 45-65] shows CDN A can support a maximum of 150,000 concurrent visitors); based on the first set of historical data, calculating a first historical metric [historical data, e.g., the load beyond which system higher quality begins to degrade] for the first user population ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 23 lines 39-43] shows a CDN allocation policy can specify that certain viewers (e.g., CDN A viewers) can connect to a more expensive and higher quality CDN A while all other viewers are pushed to less expensive overflow/backup CDNs during periods of synchronized requests; [col 26 lines 24-30] shows when client A (1112) connects to the content owner's website to view a stream, an entity at the backend determines CDN A is expected to provide the best quality to client A); accessing a second set of historical data for a second user population served by a second content delivery network prior to the first time period ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system; [col 24 lines 45-65] shows CDN B can support a maximum of 150,000 concurrent visitors); based on the second set of historical data, calculating a second historical metric [lower quality] for the second user population ([col 23 lines 39-43] shows a CDN allocation policy can specify that certain viewers (e.g., CDN A viewers) can connect to a more expensive and higher quality CDN (e.g., CDN A) while all other viewers (e.g., CDN B viewers) are pushed to less expensive overflow/backup CDNs (e.g., CDN B) during periods of synchronized requests); receiving a first request for a video content from a first user ([col 26 lines 20-40] shows a content owner distributes its content via CDN A (1108) and CDN B (1110). Suppose the content owner's policy is to use the CDN that provides the best quality for a client at the current time. When client A (1112) connects to the content owner's website to view a stream, an entity at the backend determines the CDN that is expected to provide the best quality to client A; client A connects and streams from CDN A); and in response to the first historical metric exceeding the second historical metric, assigning the first user to the first content delivery network ([col 26 lines 20-40] shows a content owner distributes its content via CDN A (1108) and CDN B (1110). Suppose the content owner's policy is to use the CDN that provides the best quality for a client. When client A (1112) connects to the content owner's website to view a stream, an entity at the backend determines the CDN that is expected to provide the best quality to client A; client A connects and streams from CDN A); and during a second time period succeeding the first time period ([col 23 lines 25-67] shows a flash crowd might occur during the last few minutes): accessing a first set of current data for the first user population served by the first content delivery network during the first time period ([col 20 lines 52-55] shows a large number of viewers attempt to connect to a live event in a short period of time, such as at the start of a soccer game; [col 22 lines 1-5] shows CDN A will not be able to accommodate the new users and service will degrade); based on the first set of current data, calculating a first current metric of the first user population served by the first content delivery network during the first time period ([col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing, the number of frames per second rendered by the video player, and premature connection terminations; [col 22 line 47] shows the performance metrics show signs of degradation; [col 24 lines 50-60] shows various policies can be used to determine which clients will ultimately be allowed to continue watching the soccer game until the first CDN A recovers (or additional resources are made available to CDN A)); accessing a second set of data for the second user population served by the second content delivery network during the first time period ([col 24 lines 62-65] shows existing CDN B viewers can continue to watch the game at their existing bitrates); based on the second set of data, calculating a second current metric of the second user population served by the second content delivery network during the first time period ([col 22 lines 1-5] shows CDN A will not be able to accommodate the new users and service will degrade; [col 25 lines 18-20] shows existing CDN B viewers can continue to watch the game at their existing bitrates); and in response to a first difference between the second current metric and the first current metric exceeding a threshold difference, reassigning the first user to the second content delivery network ([col 25 lines 18-22] shows CDN A viewers are offered the ability to switch to CDN B at a lower bandwidth; [col 29 lines 10-15] shows to enforce a usage limit on a resource by forcing viewers to switch away after a bandwidth or downloaded byte threshold is met). Regarding claim 2, Stoica as applied to claim 1 discloses: in response to receiving the first request for the video content from the first user ([col 3 line 51] shows clients 170-184 request content): accessing a set of user characteristics of the first user, the set of user characteristics identifying a first internet service provider affiliated with the first user ([col 4 lines 1-10] shows information received from clients (e.g., ISP and demographic information)); and generating a first viewer fingerprint, for the first user, representing the set of user characteristics ([col 14 lines 3-5] shows the user (of the client) is a premium user); wherein accessing the first set of historical data for the first user population comprises accessing the first set of historical data for the first user population serviced by the first internet service provider and characterized by a first set of viewer fingerprints approximating the first viewer fingerprint ([col 14 lines 3-5] shows the user (of the client) is a premium user; [col 23 lines 60-63] shows historical information about the patterns of clients (and/or loads on servers) can also be used; [col 25 lines 20-25] shows premium users of CDN A are allowed to connect to CDN B and watch the game at the full bitrate); and wherein accessing the second set of historical data for the second user population comprises accessing the second set of historical data for the second user population serviced by the first internet service provider and characterized by a second set of viewer fingerprints approximating the first viewer fingerprint ([col 14 lines 3-5] shows the user (of the client) is a free user; [col 23 lines 60-63] shows historical information about the patterns of clients (and/or loads on servers) can also be used; [col 25 lines 38-41] shows the bitrate of the non-premium viewers can also be significantly restricted to ensure that all premium users have access to the game at an appropriate level of quality.) Regarding claim 3, Stoica as applied to claim 1 discloses: wherein calculating the first historical metric [higher quality] comprises calculating the first historical metric in response to receiving the first request for the video content from the first user ([col 23 lines 39-43] shows a CDN allocation policy can specify that certain viewers (e.g., CDN A viewers) can connect to a more expensive and higher quality CDN A while all other viewers are pushed to less expensive overflow/backup CDNs during periods of synchronized requests; [col 26 lines 24-30] shows when client A (1112) connects to the content owner's website to view a stream, an entity at the backend determines CDN A is expected to provide the best quality to client A); and wherein calculating the second historical metric [lower quality] comprises calculating the second historical metric in response to receiving the first request for the video content from the first user ([col 23 lines 39-43] shows a CDN allocation policy can specify that certain viewers (e.g., CDN A viewers) can connect to a more expensive and higher quality CDN (e.g., CDN A) while all other viewers (e.g., CDN B viewers) are pushed to less expensive overflow/backup CDNs (e.g., CDN B) during periods of synchronized requests). Regarding claim 4, Stoica as applied to claim 1 discloses: wherein accessing the first set of historical data for the first user population comprises accessing the first set of historical data comprising a first set of historical latencies of historical playbacks of the video content within the first user population prior to the first time period ([col 22 lines 52-55] shows a large number of viewers attempt to connect to a live event in a short period of time, such as at the start of a soccer game; [col 14 lines 3-5] shows the user (of the client) is a premium user; [col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies)); wherein calculating the first historical metric for the first user population comprises calculating the first historical metric comprising a first average historical latency of historical playbacks of the video content within first user population prior to the first time period ([col 14 lines 3-5] shows the user (of the client) is a premium user; [col 15 lines 24-25] shows the average joining time over all clients during time T over a group of clients); wherein accessing the second set of historical data for the second user population comprises accessing the second set of historical data comprising a second set of historical latencies of historical playbacks of the video content within the second user population prior to the first time period ([col 22 lines 52-55] shows a large number of viewers attempt to connect to a live event in a short period of time, such as at the start of a soccer game; [col 14 lines 3-5] shows the user (of the client) is a free user; [col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies)); and wherein calculating the second historical metric for the second user population served by the first content delivery network comprises calculating the second historical metric, comprising a second average historical latency of historical playbacks of the video content within the second user population ([col 14 lines 3-5] shows the user (of the client) is a free user; [col 15 lines 24-25] shows the average joining time over all clients during time T over a group of clients). Regarding claim 5, Stoica as applied to claim 1 discloses: during an intermediate time period between the first time period and the second time period ([col 8 lines 5-10] shows the time period employed by the monitoring module can be set to one second or a few hundred milliseconds; [col 6 lines 18-21] shows each heartbeat contains measurements since the last heartbeat or since the start of the session): accessing a first set of intermediate data for the first user population served by the first content delivery network prior to the intermediate time period ([col 6 lines 18-21] shows each heartbeat contains measurements since the last heartbeat or since the start of the session; [col 24 lines 47-50] shows CDN A has 100,000 concurrent visitors); based on the first set of intermediate data, calculating a first intermediate metric of the first user population ([col 23 line 1] shows traffic is maintained at a steady pace); accessing a second set of intermediate data for the second user population served by the second content delivery network prior to the intermediate time period ([col 6 lines 18-21] shows each heartbeat contains measurements since the last heartbeat or since the start of the session; [col 24 lines 47-50] shows CDN B has 100,000 concurrent visitors); based on the second set of intermediate data, calculating a second intermediate metric the second user population ([col 23 line 1] shows traffic is maintained at a steady pace); and in response to a second difference between the second intermediate metric and the first intermediate metric falling below the threshold difference [threshold is a maximum of 150,000 concurrent visitors], maintaining assignment of the first user at the first content delivery network ([col 24 lines 47-50] shows each CDN has 100,000 concurrent visitors and each CDN can support a maximum of 150,000 concurrent visitors.) Regarding claim 6, Stoica as applied to claim 1 discloses: in response to assigning the first user to the first content delivery network, serving a resource locator for accessing the video content via the first content delivery network to the first user ([col 10 lines 37-40] shows a movie might be accessible at the URL.) Regarding claim 7, Stoica as applied to claim 1 discloses during the first time period ([col 22 lines 52-55] shows at the start of a soccer game): receiving a second request for the video content from a second user ([Abstract] shows data requests); accessing a second set of characteristics of the second user ([col 25 line 24] shows non-premium users); identifying a third user population associated with a third set of characteristics approximating the second set of characteristics and served by the second content delivery network ([col 25 line 24] shows at least some of the existing CDN B viewers are non-premium viewers); accessing a third set of historical data for distribution for the third user population via the second content delivery network prior to the first time period ([col 25 lines 24-26] shows premium users of CDN A are allowed to connect to CDN B and watch the game at the full bitrate. Non-premium users of CDN A are also moved to CDN B (also at full bitrate) based on available resources); based on the third set of historical data, calculating a third historical metric for the third user population ([col 25 lines 24-26] shows the non-premium users are moved based on a factor, such as how long they were previously connected to CDN A (i.e., with those more invested in the game being moved sooner than those who just started watching, and/or those who have watched more games over the period of time such as the last week or month, referred to as an engagement measure), and how long they have been waiting); and in response to the third historical metric exceeding a threshold metric, assigning the second user to the second content delivery network ([col 25 lines 24-26] shows non-premium users of CDN A are also moved to CDN B (also at full bitrate) based on available resources). Regarding claim 8, Stoica discloses a method comprising ([col 22 line 20] shows balancing the load across multiple CDNs; [col 24 lines 45-47] shows suppose two CDNs are both streaming a live video feed of a soccer game): at a first time: selecting a first user device, associated with a first set of device characteristics, within a first device population assigned to a first content delivery network ( [col 22 lines 52-55] shows a large number of viewers attempt to connect to a live event in a short period of time, such as at the start of a soccer game); accessing a first set of performance data for distribution of a video content to the first user device via the first content delivery network ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 24 lines 45-65] shows CDN A can support a maximum of 150,000 concurrent visitors); based on the first set of performance data, calculating a first metric [best quality] for distribution of the video content to the first user device via the first content delivery network ([col 23 lines 39-43] shows a CDN allocation policy can specify that certain viewers (e.g., CDN A viewers) can connect to a more expensive and higher quality CDN A while all other viewers are pushed to less expensive overflow/backup CDNs during periods of synchronized requests; [col 26 lines 24-30] shows when client A (1112) connects to the content owner's website to view a stream, an entity at the backend determines CDN A is expected to provide the best quality to client A); in response to the first metric falling below a threshold metric ([col 15 lines 28-30] shows the quality Q is lower than a threshold): identifying a second content delivery network distinct from the first content delivery network ([col 15 lines 32-35] shows the client is to select CDN B for streaming the current stream); and reassigning the first user device to the second content delivery network ([col 15 lines 32-35] shows the client is to select CDN B for streaming the current stream); and at a second time ([col 23 lines 65-67] shows during the next airing): accessing a second set of performance data for distribution of the video content to the first user device via the second content delivery network ([col 22 lines 35-38] shows to correlate the performance of the system with the load of the system); based on the second set of performance data, calculating a second metric for distribution of the video content to the first user device via the second content delivery network ([col 3 lines 43-45] shows telemetry data such as information that captures the quality of the user experience (e.g., video stream quality)); in response to the second metric exceeding the threshold metric ([col 18 lines 18-20] shows quality exceeds the quality threshold): identifying, within the first device population, a second user device, associated with a second set of device characteristics approximating the first set of device characteristics ([col 25 lines 23-24] shows more than 50,000 of the 100,000 orphaned CDN A viewers are premium users); and reassigning the second user device to the second content delivery network ([col 23 lines 13-15] shows to migrate viewers back gradually to the primary CDN after the flash crowd is over.) Regarding claim 9, Stoica as applied to claim 8 discloses: wherein selecting the first user device within the first device population comprises selecting the first user device, comprising a video player configured to capture and provide playback data, within the first device population ([col 3 lines 28-32] shows a user streaming the content from CDN 146, which is in turn rendered in her browser (e.g., via a Flash or Silverlight player)); wherein accessing the first set of performance data for distribution of the video content to the first user device via the first content delivery network comprises accessing the first set of performance data captured by the video player ([col 22 lines 1-5] shows CDN A will not be able to accommodate the new users and service will degrade); and wherein reassigning the first user device to the second content delivery network comprises: in response to the first metric falling below the threshold metric and based on the first user device executing the video player, reassigning the first user device to the second content delivery network ([col 25 lines 18-22] shows CDN A viewers are offered the ability to switch to CDN B at a lower bandwidth; [col 29 lines 10-15] shows to enforce a usage limit on a resource by forcing viewers to switch away after a bandwidth or downloaded byte threshold is met). Regarding claim 10, Stoica discloses the method of Claim 8: further comprising ([col 24 lines 35-43] shows some CDNs have larger HTTP networks than RTMP streaming ones. Both are protocols that can be used to distribute video to Flash players. During a high load state, the system can balance between RTMP and HTTP to prevent the RMTP network from being overloaded): accessing a first set of characteristics of the first user device, the first set of characteristics specifying a first internet protocol address and a first geolocation of the first user device ([col 13 lines 60-65] shows client properties: Including IP address, geographic location; [col 24 lines 35-43] shows HTTP); accessing a second set of characteristics of the second user device, the second set of characteristics specifying: a second internet protocol address within a threshold proximity of the first internet protocol address ([col 16 lines 20-35] shows based on an analysis of their IP addresses, 20,000 viewers are determined to be located in San Francisco; col 24 lines 35-43] shows RTMP); and a second geolocation within a threshold distance of the first geolocation ([col 19 lines 54-55] shows clients in each city to use a different CDN); and wherein identifying the second user device associated with the second set of device characteristics approximating the first set of device characteristics comprises matching the first user device to the second user device based on ([col 16 lines 20-35] shows based on an analysis of their IP addresses, 20,000 viewers are determined to be located in San Francisco): proximity of the second internet protocol address to the first internet protocol address ([col 16 lines 20-35] shows based on an analysis of their IP addresses, 20,000 viewers are determined to be located in San Francisco); and proximity of the second geolocation to the first geolocation ([col 16 lines 13-15] shows the set of clients which have the same geographic attribute value, Geo 1.) Regarding claim 11, Stoica discloses the method of Claim 8: wherein selecting the first user device within the first device population comprises selecting the first user device within the first device population, the first user device associated with a first user ([col 14 line 4] shows premium user); and wherein identifying the second user device within the first device population comprises identifying the second user device within the first device population and associated with the first user ([col 14 line 4] shows free user). Regarding claim 12, Stoica discloses the method of Claim 8: wherein accessing the first set of performance data for distribution of the video content to the first user device via the first content delivery network comprises accessing the first set of performance data comprising a first sequence of errors associated with distribution of the video content to the first user device via the first content delivery network ([col 7 lines 39-40] shows a list of errors encountered from the start of the session); wherein calculating the first metric for distribution of the video content to the first user device via the first content delivery network comprises calculating the first metric comprising a first error rate associated with distribution of the video content to the first user device via the first content delivery network, the first error rate calculated based on the first sequence of errors ([col 3 lines 35-36] shows client 172 provides status information (also referred to herein as a “heartbeat”), on a recurring basis; [col 24 lines 4-5] shows the number of errors received from CDNs may increase as load increases); wherein accessing the second set of performance data for distribution of the video content to the first user device via the second content delivery network comprises accessing the second set of performance data comprising a second sequence of errors associated with distribution of the video content to the first user device via the first content delivery network ([col 7 lines 39-40] shows a list of errors encountered from the start of the session); and wherein calculating the second metric for distribution of the video content to the first user device via the second content delivery network comprises calculating the second metric comprising a second error rate associated with distribution of the video content to the first user device via the second content delivery network, the second error rate calculated based on the second sequence of errors ([col 3 lines 35-36] shows client 172 provides status information (also referred to herein as a “heartbeat”), on a recurring basis; [col 24 lines 4-5] shows the number of errors received from CDNs may increase as load increases). Regarding claim 13, Stoica discloses the method of Claim 8: wherein accessing the first set of performance data for distribution of the video content to the first user device via the first content delivery network comprises accessing the first set of performance data specifying a first sequence of buffering events occurring during playback of the video content at the first user device ([col 3 line 43] shows the number of buffering events); wherein calculating the first metric for distribution of the video content to the first user device via the first content delivery network comprises calculating the first metric comprising a first buffering rate of playback of the video content on the first user device, the first buffering rate calculated based on the first sequence of buffering events ([col 15 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T); wherein accessing the second set of performance data for distribution of the video content to the first user device via the second content delivery network comprises accessing the second set of performance data comprising a second sequence of buffering events occurring during playback of the video content on the second user device ([col 3 line 43] shows the number of buffering events); and wherein calculating the second metric for distribution of the video content to the first user device via the second content delivery network comprises calculating the second metric comprising a second buffering rate of playback of the video content on the first user device, the first buffering rate calculated based on the first sequence of buffering events ([col 15 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T). Regarding claim 14, Stoica discloses the method of Claim 8: receiving a first request for the video content from a third user device ([col 14 line 4] shows first-time visitor); accessing a third set of device characteristics of the third user device ([col 14 line 4] shows user properties including whether the user is a free user); identifying, within the first device population, a fourth user device associated with a fourth set of device characteristics approximating the third set of device characteristics ([col 23 lines 32-35] shows non-premium viewers); accessing a third set of performance data for distribution of the video content to the fourth user device via the first content delivery network ([col 23 lines 32-35] shows non-premium viewers to stream at the lowest bitrate); based on the third set of performance data, calculating a third metric for distribution of the video content to the fourth user device via the first content delivery network ([col 25 lines 23-26] shows non-premium users of CDN A are allowed to connect at full bitrate based on available resources); and in response to the third metric exceeding the threshold metric, assigning the third user device to the first content delivery network ([col 25 lines 23-26] shows first-time visitors of CDN A are allowed to connect at full bitrate based on available resources.) Regarding claim 15, Stoica discloses the method of Claim 8, further comprising: in response to reassigning the first user device to the second content delivery network, serving a first resource locator for accessing the video content via the second content delivery network to the first user device ([col 10 lines 38-40] shows a movie might be accessible at the URL http://www.CDN-C.com/Studio/JaneEyre300 Kbps); and in response to reassigning the second user device to the second content delivery network, serving a second resource locator for accessing the video content via the second content delivery network to the second user device ([col 16 lines 45-47] shows the URL rtmp://www.CDNC.example.com/12346/video.flv.) Regarding claim 16, Stoica discloses a method comprising ([col 22 line 20] shows balancing the load across multiple CDNs; [col 24 lines 55-47] shows suppose two CDNs are both streaming a live video feed of a soccer game): receiving a first request for a video content from a first user device ([col 24 lines 47-50] shows CDN A has 100,000 concurrent visitors); accessing a first set of device characteristics of the first user device ([col 23 lines 32-35] shows the content provider can specify a bitrate policy that allows certain (premium) viewers to stream at a high bitrate); based on the first set of device characteristics: identifying a first device subpopulation analogous to the first user device and served by a first content delivery network ([col 23 lines 32-35] shows the content provider forces other (non-premium) viewers to stream at the lowest bitrate); and identifying a second device subpopulation analogous to the first user device and served by a second content delivery network ([col 18 lines 65-68; col 19 lines 1-5] shows 10,000 users watch content starting streaming from CDN A, and in the course of viewing, 1000 users switch to CDN B based on a client-based quality detection algorithm); accessing a first set of historical data for the first device subpopulation ([col 18 lines 65-68; col 19 lines 1-5] shows 10,000 users watch content starting streaming from CDN A, and in the course of viewing, 1000 users switch to CDN B based on a client-based quality detection algorithm; [col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade); based on the first set of historical data, calculating a first metric for the first device subpopulation ([col 22 lines 48-50] shows performance metrics include buffering quality, connection failures, connection interruptions/other failures to stream, time taken to setup a connection, and time taken to start streaming); accessing a second set of historical data for the second device subpopulation ([col 18 lines 65-68; col 19 lines 1-5] shows 10,000 users watch content starting streaming from CDN A, and in the course of viewing, 1000 users switch to CDN B based on a client-based quality detection algorithm; [col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade); based on the second set of historical data, calculating a second metric for the second device subpopulation ([col 22 lines 48-50] shows performance metrics include buffering quality, connection failures, connection interruptions/other failures to stream, time taken to setup a connection, and time taken to start streaming); in response to the first metric exceeding the second metric, assigning the first user device to the first content delivery network ([col 22 lines 43-50] shows one way of determining that the load will exceed the threshold is as follows. Realtime performance and load data is analyzed using anomaly detection logic to determine if any of the performance metrics show signs of degradation. Examples of performance metrics include buffering quality, connection failures, connection interruptions/other failures to stream, time taken to setup a connection, and time taken to start streaming); receiving a second request for the video content from a second user device ([col 25 line 24] shows non-premium users); accessing a second set of device characteristics of the second user device ([col 23 lines 32-35] shows non-premium viewers to stream at the lowest bitrate); based on the second set of device characteristics ([col 23 lines 32-35] shows non-premium viewers to stream at the lowest bitrate): identifying the second device subpopulation analogous to the first user device and the second user device and served by the second content delivery network ([col 25 lines 45-50] shows CDN B has 100,000 concurrent visitors and each CDN can support a maximum of 150,000 concurrent visitors; [col 18 lines 65-68; col 19 lines 1-5] shows 10,000 users watch content starting streaming from CDN A, and in the course of viewing, 1000 users switch to CDN B based on a client-based quality detection algorithm); and identifying a third device subpopulation analogous to the second user device and served by the first content delivery network ([col 25 lines 45-50] shows CDN B has 100,000 concurrent visitors and each CDN can support a maximum of 150,000 concurrent visitors; [col 18 lines 65-68; col 19 lines 1-5] shows 10,000 users watch content starting streaming from CDN A, and in the course of viewing, 1000 users switch to CDN B based on a client-based quality detection algorithm); accessing a third set of historical data for the third device subpopulation (col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade); based on the third set of historical data, calculating a third metric for the third device subpopulation (col 22 lines 35-38] shows optimize video viewing quality given limited bandwidth available to the user by using a lower bitrate video); and in response to the second metric exceeding the third metric, assigning the second user device to the second content delivery network ([col 18 lines 65-68; col 19 lines 1-5] shows 10,000 users watch content starting streaming from CDN A, and in the course of viewing, 1000 users switch to CDN B based on a client-based quality detection algorithm). Regarding claim 17, Stoica discloses the method of Claim 16, further comprising: in response to the first metric exceeding the second metric, reassigning a third user device, within the second device subpopulation, from the second content delivery network to the first content delivery network ([col 14 lines 4-5] shows free user; [col 23 lines 13-15] shows to migrate viewers back gradually to the primary CDN after the flash crowd is over); and in response to the second metric exceeding the third metric, reassigning a fourth user device, within the third device subpopulation, from the first content delivery network to the second content delivery network ([col 14 lines 4-5] shows first time visitor; [col 23 lines 13-15] shows to migrate viewers back gradually to the primary CDN after the flash crowd is over). Regarding claim 18, Stoica discloses the method of Claim 16, further comprising: wherein accessing the first set of device characteristics of the first user device comprises accessing the first set of device characteristics specifying a first operating system and a first geographic region of the first user device ([col 13 lines 60-65] shows client properties including operating system, geographic location); wherein identifying the first device subpopulation analogous to the first user device comprises identifying the first device subpopulation executing the first operating system ([col 13 lines 60-65] shows client properties including operating system, geographic location); wherein identifying the second device subpopulation analogous to the first user device comprises identifying the second device subpopulation located within the first geographic region ([col 13 lines 60-65] shows client properties including operating system, geographic location); wherein accessing the second set of device characteristics of the second user device comprises accessing the second set of device characteristics specifying a second operating system and the first geographic region of the second user device ([col 13 lines 60-65] shows client properties including operating system, geographic location); wherein identifying the second device subpopulation analogous to the first user device and the second user device comprises identifying the second device subpopulation located within the first geographic region ([col 13 lines 60-65] shows client properties including operating system, geographic location); and wherein identifying the third device subpopulation analogous to the second user device identifying the third device subpopulation executing the second operating system. ([col 13 lines 60-65] shows client properties including operating system, geographic location). Regarding claim 19, Stoica discloses the method of Claim 16, further comprising: wherein accessing the first set of historical data for the first device subpopulation comprises accessing the first set of historical data comprising a first set of historical latencies and buffer fill rates of playbacks of historical video content in the first device subpopulation ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies), the number of buffering events (if any), the length of buffering events; [col 10 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T); wherein calculating the first metric for the first device subpopulation comprises calculating the first metric for the first device subpopulation based on the first set of historical latencies and buffer fill rates ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies), the number of buffering events (if any), the length of buffering events; [col 10 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T); wherein accessing the second set of historical data for the second device subpopulation comprises accessing the second set of historical data comprising a second set of historical latencies and buffer fill rates of playbacks of historical video content in the second device subpopulation ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies), the number of buffering events (if any), the length of buffering events; [col 10 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T); wherein calculating the second metric for the second device subpopulation comprises calculating the first metric for the first device subpopulation based on the second set of historical latencies and buffer fill rates ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies), the number of buffering events (if any), the length of buffering events; [col 10 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T); wherein accessing the third set of historical data for the third device subpopulation comprises accessing the third set of historical data comprising a third set of historical latencies and buffer fill rates of playbacks of historical video content in the third device subpopulation ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies), the number of buffering events (if any), the length of buffering events; [col 10 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T); and wherein calculating the third metric for the third device subpopulation comprises calculating the first metric for the first device subpopulation based on the third set of historical latencies and buffer fill rates ([col 22 lines 35-38] shows to use historical data to correlate the performance of the system with the load of the system beyond which the load begins to degrade; [col 3 lines 40-45] shows quality metrics include: the length of time it takes for the soccer game video to start playing (e.g., latencies), the number of buffering events (if any), the length of buffering events; [col 10 lines 21-24] shows buffering ratio: The total number of seconds the client experienced buffering divided by the total playing time of the clients during interval of time T). Regarding claim 20, Stoica discloses the method of Claim 16, further comprising: in response to assigning the first user device to the first content delivery network, serving a first resource locator for accessing the video content via the first content delivery network to the first user device ([col 10 lines 38-40] shows a movie might be accessible at the URL http://www.CDN-C.com/Studio/JaneEyre300 Kbps); and in response to assigning the second user device to the second content delivery network, serving a second resource locator for accessing the video content via the second content delivery network to the second user device ([col 16 lines 45-47] shows the URL rtmp://www.CDNC.example.com/12346/video.flv.) Citation of Relevant Prior Art The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Gutierrez Vilaro et al. (US20150256577A1) discloses in para [0006] selecting at least a first content server or group of content servers from the list of content servers to deliver at least a first fragment or group of fragments based on a first set of directing criteria; selecting at least a second content server or group of content servers from the list of content servers to deliver at least a second fragment or group of fragments based on a second set of directing criteria. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to TAN DOAN whose telephone number is (571)270-0162. The examiner can normally be reached Monday - Friday 8am - 5pm ET. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Oscar Louie, can be reached at (571) 270-1684. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /TAN DOAN/Primary Examiner, Art Unit 2445
Read full office action

Prosecution Timeline

Oct 09, 2024
Application Filed
Mar 08, 2026
Non-Final Rejection — §102, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12592872
DETECTING AND VALIDATING ANOMALIES FROM ONGOING DATA COLLECTION
2y 5m to grant Granted Mar 31, 2026
Patent 12591365
INPUT/OUTPUT FENCING OF A SHARED CLOUD STORAGE VOLUME
2y 5m to grant Granted Mar 31, 2026
Patent 12587476
Method and Apparatus for publishing an RT-5G routing message, Storage Medium and Electronic Apparatus
2y 5m to grant Granted Mar 24, 2026
Patent 12572438
QUANTUM COMPUTING MONITORING SYSTEM
2y 5m to grant Granted Mar 10, 2026
Patent 12563035
METHOD AND SYSTEM FOR ACCESS AUTHORISATION
2y 5m to grant Granted Feb 24, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

1-2
Expected OA Rounds
72%
Grant Probability
98%
With Interview (+25.4%)
3y 2m
Median Time to Grant
Low
PTA Risk
Based on 311 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month