US20130179578A1 - Apparatus and method for providing computing resources - Google Patents

Apparatus and method for providing computing resources Download PDF

Info

Publication number
US20130179578A1
US20130179578A1 US13/780,472 US201313780472A US2013179578A1 US 20130179578 A1 US20130179578 A1 US 20130179578A1 US 201313780472 A US201313780472 A US 201313780472A US 2013179578 A1 US2013179578 A1 US 2013179578A1
Authority
US
United States
Prior art keywords
processor
request
requests
server
completion time
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.)
Granted
Application number
US13/780,472
Other versions
US8626924B2 (en
Inventor
Bryan Caldwell
Fariborz Behi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Intellectual Property I LP
Original Assignee
AT&T Intellectual Property I LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AT&T Intellectual Property I LP filed Critical AT&T Intellectual Property I LP
Priority to US13/780,472 priority Critical patent/US8626924B2/en
Assigned to AT&T INTELLECTUAL PROPERTY I, LP reassignment AT&T INTELLECTUAL PROPERTY I, LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CALDWELL, BRYAN, BEHI, FARIBORZ
Publication of US20130179578A1 publication Critical patent/US20130179578A1/en
Application granted granted Critical
Publication of US8626924B2 publication Critical patent/US8626924B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • H04L29/08153
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Definitions

  • the present disclosure relates generally to communication systems and more specifically to an apparatus and method for providing computing resources.
  • Network components are often called upon to handle computer processing on behalf of a number of different client devices.
  • the schedule with which the processing occurs can greatly effect the efficiency of both the client devices and the overall network.
  • FIG. 1 depicts an illustrative embodiment of a communication system that provides media services
  • FIG. 2 depicts an illustrative embodiment of a portal interacting with the communication system of FIG. 1 ;
  • FIG. 3 depicts an illustrative embodiment of a communication system that provides computing resources
  • FIG. 4 depicts an illustrative embodiment of a method operating in portions of the systems of FIGS. 1 and 3 ;
  • FIG. 5 is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed herein.
  • One embodiment of the present disclosure can entail a computer-readable storage medium comprising computer instructions to receive a request from a client server for computing resources associated with a processor, determine an estimated completion time associated with previous requests associated with the processor, determine if a self-priority is assigned to the request by the client server where the self-priority designates an order of processing among requests from the client server to the processor, calculate a priority value for the request based on the estimated completion time and the self-priority, establish a processing schedule for the request and other requests associated with the processor based on the priority value, provide the request to the processor according to the processing schedule, receive a response from the processor where the response comprises information generated according to the request, and provide the response to the client server.
  • Another embodiment of the present disclosure can entail a server having a controller to receive a request from a client server for computing resources associated with a processor, determine an estimated completion time associated with previous requests associated with the processor, calculate a priority value for the request based on the estimated completion time, establish a processing schedule for the request and other requests associated with the processor based on the priority value, and provide the request to the processor according to the processing schedule.
  • Yet another embodiment of the present disclosure can entail a method including generating a request at a client server for computing resources associated with a processor, transmitting the request to a scheduling server for prioritization of the request with respect to one or more other requests associated with the processor where the prioritization is based on an estimated completion time associated with previous requests associated with the processor, and receiving at the client server a response to the request from the scheduling server, where the response is generated by the processor based on the request.
  • the exemplary embodiment can include mediating requests to processor resources and an algorithm for providing scheduling of those requests.
  • the algorithm can take into account the client requested priority as well as the performance of the processor at processing the request. The performance can be adjusted in real-time.
  • the mediating component can be tunable in a number of ways including by allowing a limited number of in-flight requests and a limited number of requests, per client, of a given priority.
  • FIG. 1 depicts an illustrative embodiment of a first communication system 100 for delivering media content.
  • the communication system 100 can represent an Internet Protocol Television (IPTV) broadcast media system.
  • IPTV media system can include a super head-end office (SHO) 110 with at least one super headend office server (SHS) 111 which receives media content from satellite and/or terrestrial communication systems.
  • SHO super head-end office
  • SHS super headend office server
  • media content can represent audio content, moving image content such as videos, still image content, or combinations thereof.
  • the SHS server 111 can forward packets associated with the media content to video head-end servers (VHS) 114 via a network of video head-end offices (VHO) 112 according to a common multicast communication protocol.
  • VHS video head-end servers
  • VHO network of video head-end offices
  • the VHS 114 can distribute multimedia broadcast programs via an access network 118 to commercial and/or residential buildings 102 housing a gateway 104 (such as a common residential or commercial gateway).
  • the access network 118 can represent a group of digital subscriber line access multiplexers (DSLAMs) located in a central office or a service area interface that provide broadband services over optical links or copper twisted pairs 119 to buildings 102 .
  • DSLAMs digital subscriber line access multiplexers
  • the gateway 104 can use common communication technology to distribute broadcast signals to media processors 106 such as Set-Top Boxes (STBs) which in turn present broadcast channels to media devices 108 such as computers or television sets managed in some instances by a media controller 107 (such as an infrared or RF remote control).
  • STBs Set-Top Boxes
  • the gateway 104 , the media processors 106 , and media devices 108 can utilize tethered interface technologies (such as coaxial or phone line wiring) or can operate over a common wireless access protocol. With these interfaces, unicast communications can be invoked between the media processors 106 and subsystems of the IPTV media system for services such as video-on-demand (VoD), browsing an electronic programming guide (EPG), or other infrastructure services.
  • tethered interface technologies such as coaxial or phone line wiring
  • unicast communications can be invoked between the media processors 106 and subsystems of the IPTV media system for services such as video-on-demand (VoD), browsing an electronic programming guide (EPG), or other infrastructure services.
  • VoIP video-on-demand
  • EPG electronic programming guide
  • Some of the network elements of the IPTV media system can be coupled to one or more computing devices 130 a portion of which can operate as a web server for providing portal services over an Internet Service Provider (ISP) network 132 to wireline media devices 108 or wireless communication devices 116 by way of a wireless access base station 117 operating according to common wireless access protocols such as Wireless Fidelity (WiFi), or cellular communication technologies (such as GSM, CDMA, UMTS, WiMAX, Software Defined Radio or SDR, and so on).
  • ISP Internet Service Provider
  • WiFi Wireless Fidelity
  • cellular communication technologies such as GSM, CDMA, UMTS, WiMAX, Software Defined Radio or SDR, and so on.
  • signals transmitted by a satellite 115 supplying media content can be intercepted by a common satellite dish receiver 131 coupled to the building 102 .
  • Modulated signals intercepted by the satellite dish receiver 131 can be submitted to the media processors 106 for generating broadcast channels which can be presented at the media devices 108 .
  • the media processors 106 can be equipped with a broadband port to the ISP network 132 to enable infrastructure services such as VoD and EPG described above.
  • an analog or digital broadcast distribution system such as cable TV system 133 can be used in place of the IPTV media system described above.
  • the cable TV system 133 can provide Internet, telephony, and interactive media services.
  • the servers 130 can be network components or appliances that control access to computing resources.
  • the servers 130 can be placed between a requestor and a resource in order to provide throttling and queuing algorithms to control access to that resource.
  • Requests to a resource can be queued by priority and the average time-of-flight for previous requests to that resource. This enables the request to be throttled based on near real-time information about the responsiveness of that resource.
  • the servers 130 also allow user control through the use of user set priority.
  • the servers 130 can manage access to a limited resource by a variety of requestors.
  • the servers 130 can provide for a single control point to that resource, such that access to the resource can be tuned based on traffic and required performance.
  • each individual requestor application is responsible for queuing and throttling of requests, but each requestor does not have knowledge of other requestors.
  • the resource itself may be responsible for handling a large number of concurrent requests from a variety of requestors.
  • Some resources are too low-level or specialized to adequately provide those services internally.
  • the servers 130 can provide those services transparent to the resource as an external device placed between the requestors and the resource.
  • the servers 130 provide an external/decoupled method of providing throttling and queuing to a low-level or specialized resource that lacks those capabilities.
  • the algorithm used allows user control of queuing through user defined priorities, but also take into account the near real-time behavior of the resource. If the resource is busy, requests to the resource can be throttled downward.
  • FIG. 2 depicts an illustrative embodiment of a portal 202 which can operate from the computing devices 130 described earlier of communication system 100 illustrated in FIG. 1 .
  • the portal 202 can be used for managing services of communication system 100 .
  • the portal 202 can be accessed by a Uniform Resource Locator (URL) with a common Internet browser such as Microsoft's Internet ExplorerTM using an Internet-capable communication device such as those described for FIG. 1 .
  • URL Uniform Resource Locator
  • the portal 202 can be configured, for example, to access a media processor 106 and services managed thereby such as a Digital Video Recorder (DVR), a VoD catalog, an EPG, a personal catalog (such as personal videos, pictures, audio recordings, etc.) stored in the media processor, provisioning IMS services described earlier, provisioning Internet services, provisioning cellular phone services, and so on.
  • DVR Digital Video Recorder
  • VoD catalog a VoD catalog
  • EPG electronic program
  • personal catalog such as personal videos, pictures, audio recordings, etc.
  • FIG. 3 depicts an exemplary embodiment of a system 300 that can perform a number of functions, such as delivering media content, although the present disclosure is not intended to be limited thereto.
  • System 300 can be overlaid or operably coupled with communication system 100 as another representative embodiment of said communication systems.
  • System 300 can include a first server or client 310 , a second server or appliance 130 (e.g., a scheduling server) and a third server or source 350 .
  • the client 310 can generate a request for a resource to be provided by the source 350 .
  • the source can be one or more of routers, switches, multiplexers and other components where sharing of limited resources is desired, without the risk of starvation.
  • an incoming resource request When an incoming resource request is received by the server 130 , it can be placed in the buffer (such as a database). The type of request and the target can be classified as R TX . The requested priority can also be recorded. The availability of the requested priority can be compared against the maximum number allowed in-flight for that client 310 and, based on that availability, assignment of the priority P′ can be performed. The value of t e (R TX ) can then be calculated for the request. Concurrently, for each source server 350 , the buffer can be searched for requests targeted to that source server 350 with the minimum priority value. In one embodiment, requests can be sent while the number of in-flight requests for that source server 350 is less than the maximum defined for that source server 350 .
  • the request can be received by the source server 350 , processed and returned to the server 130 .
  • the server 130 can record the actual completion time (the time it was in-flight) and the response (e.g., the resulting data or resource) can then be returned to the client 310 .
  • the estimated completion value can be adjusted dynamically based on the recent response for the given request type and source server 350 .
  • FIG. 4 depicts an illustrative method 400 operating in portions of communication systems 100 and 300 .
  • Method 400 can begin with step 402 in which a first server generates a request for use of a computing resource.
  • the request can be forwarded to an intermediate server or appliance by the first server.
  • the intermediate appliance can process the request among a group of requests directed to the same computing resource as well as other computing resources.
  • each dataflow can be weighted by its priority.
  • P can be a Priority where P[0,9] and which follows the scheme of 0 being low priority with 9 being high priority.
  • P′ can equal P max ⁇ P (in this case 9 ⁇ P).
  • R TX targeting Processor X
  • a window of time (previous 10 minutes, for example) or number of completed requests (only include previous 3, for example), can be established to include in this average, to allow a more real-time estimate of t e (R TX ).
  • the request can then be selected which has the minimum P′t e (R TX ) as the next request to be serviced by processor X.
  • requests with P max can be processed first (if there are multiple such requests, they can be serviced FIFO).
  • Long running tasks where previous requests have taken a long time to complete relative to other requests in the buffer, can be serviced after shorter running tasks of the same priority.
  • Fair Queuing can be utilized, and if these requests are of the same type and arrive simultaneously, FIFO can be utilized.
  • the request can be forwarded to the source server.
  • a response based on the request can be returned from the source server to the intermediate appliance.
  • the response can be the data resulting from use of the computing resource.
  • the response or result of the resource can then be provided to the requesting client in step 414 .
  • the present disclosure can include external clients seeking to send requests to targeted processors, which will process the request and return it to the client.
  • Requests can be mediated through the intermediate appliance to achieve efficient utilization of the limited resources provided by the processors.
  • the data flow can include requests being generated from the clients, targeted to a particular, external processor; the request can be sent to the intermediate appliance; the intermediate appliance can forward requests to the processor that is specified in the request; the processors can process the request and return the response to the intermediate appliance; and the intermediate appliance can forward the response back to the clients.
  • the intermediate appliance can prioritize the requests such that a single processor is processing the most urgent requests in a timely manner, but also such that each client has a chance of utilizing the processor. It is worth noting that since responses are passed back through the intermediate appliance, calculation of an accurate time of completion of each request is possible.
  • clients may request a specific priority, so that a client may choose which of it's requests should be serviced first.
  • the intermediate appliance may limit the overall number of in-flight requests (those sent to the processor, but which no response has been returned) to a given processor.
  • the intermediate appliance may limit the number of in-flight requests with a requested priority from a particular client to a given processor. (For example Client-A may only be allowed to have 2 high priority Requests in-flight for Processor-X).
  • FIG. 5 depicts an exemplary diagrammatic representation of a machine in the form of a computer system 500 within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed above.
  • the machine operates as a standalone device.
  • the machine may be connected (e.g., using a network) to other machines.
  • the machine may operate in the capacity of a server or a client user machine in server-client user network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may comprise a server computer, a client user computer, a personal computer (PC), a tablet PC, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • a device of the present disclosure includes broadly any electronic device that provides voice, video or data communication.
  • the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • the computer system 500 may include a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU, or both), a main memory 504 and a static memory 506 , which communicate with each other via a bus 508 .
  • the computer system 500 may further include a video display unit 510 (e.g., a liquid crystal display (LCD), a flat panel, a solid state display, or a cathode ray tube (CRT)).
  • the computer system 500 may include an input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), a disk drive unit 516 , a signal generation device 518 (e.g., a speaker or remote control) and a network interface device 520 .
  • an input device 512 e.g., a keyboard
  • a cursor control device 514 e.g., a mouse
  • a disk drive unit 516 e.g., a disk drive unit 516
  • a signal generation device 518 e.g., a speaker or remote control
  • the disk drive unit 516 may include a machine-readable medium 522 on which is stored one or more sets of instructions (e.g., software 524 ) embodying any one or more of the methodologies or functions described herein, including those methods illustrated above.
  • the instructions 524 may also reside, completely or at least partially, within the main memory 504 , the static memory 506 , and/or within the processor 502 during execution thereof by the computer system 500 .
  • the main memory 504 and the processor 502 also may constitute machine-readable media.
  • Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement the methods described herein.
  • Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems. Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit.
  • the example system is applicable to software, firmware, and hardware implementations.
  • the methods described herein are intended for operation as software programs running on a computer processor.
  • software implementations can include, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.
  • the present disclosure contemplates a machine readable medium containing instructions 524 , or that which receives and executes instructions 524 from a propagated signal so that a device connected to a network environment 526 can send or receive voice, video or data, and to communicate over the network 526 using the instructions 524 .
  • the instructions 524 may further be transmitted or received over a network 526 via the network interface device 520 .
  • machine-readable medium 522 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
  • the term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
  • machine-readable medium shall accordingly be taken to include, but not be limited to: solid-state memories such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories; magneto-optical or optical medium such as a disk or tape; and/or a digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include any one or more of a machine-readable medium or a distribution medium, as listed herein and including art-recognized equivalents and successor media, in which the software implementations herein are stored.
  • inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
  • inventive concept merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.

Abstract

A system that incorporates teachings of the present disclosure may include, for example, a server having a controller to receive a request from a client server for computing resources associated with a processor, determine an estimated completion time associated with previous requests associated with the processor, calculate a priority value for the request based on the estimated completion time, establish a processing schedule for the request and other requests associated with the processor based on the priority value, and provide the request to the processor according to the processing schedule. Other embodiments are disclosed.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of and claims priority to U.S. patent application Ser. No. 12/634,723 filed Dec. 10, 2009 which is incorporated herein by reference in its entirety.
  • FIELD OF THE DISCLOSURE
  • The present disclosure relates generally to communication systems and more specifically to an apparatus and method for providing computing resources.
  • BACKGROUND
  • Network components are often called upon to handle computer processing on behalf of a number of different client devices. The schedule with which the processing occurs can greatly effect the efficiency of both the client devices and the overall network.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 depicts an illustrative embodiment of a communication system that provides media services;
  • FIG. 2 depicts an illustrative embodiment of a portal interacting with the communication system of FIG. 1;
  • FIG. 3 depicts an illustrative embodiment of a communication system that provides computing resources;
  • FIG. 4 depicts an illustrative embodiment of a method operating in portions of the systems of FIGS. 1 and 3; and
  • FIG. 5 is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed herein.
  • DETAILED DESCRIPTION
  • One embodiment of the present disclosure can entail a computer-readable storage medium comprising computer instructions to receive a request from a client server for computing resources associated with a processor, determine an estimated completion time associated with previous requests associated with the processor, determine if a self-priority is assigned to the request by the client server where the self-priority designates an order of processing among requests from the client server to the processor, calculate a priority value for the request based on the estimated completion time and the self-priority, establish a processing schedule for the request and other requests associated with the processor based on the priority value, provide the request to the processor according to the processing schedule, receive a response from the processor where the response comprises information generated according to the request, and provide the response to the client server.
  • Another embodiment of the present disclosure can entail a server having a controller to receive a request from a client server for computing resources associated with a processor, determine an estimated completion time associated with previous requests associated with the processor, calculate a priority value for the request based on the estimated completion time, establish a processing schedule for the request and other requests associated with the processor based on the priority value, and provide the request to the processor according to the processing schedule.
  • Yet another embodiment of the present disclosure can entail a method including generating a request at a client server for computing resources associated with a processor, transmitting the request to a scheduling server for prioritization of the request with respect to one or more other requests associated with the processor where the prioritization is based on an estimated completion time associated with previous requests associated with the processor, and receiving at the client server a response to the request from the scheduling server, where the response is generated by the processor based on the request.
  • The exemplary embodiment can include mediating requests to processor resources and an algorithm for providing scheduling of those requests. In one embodiment, the algorithm can take into account the client requested priority as well as the performance of the processor at processing the request. The performance can be adjusted in real-time. The mediating component can be tunable in a number of ways including by allowing a limited number of in-flight requests and a limited number of requests, per client, of a given priority.
  • FIG. 1 depicts an illustrative embodiment of a first communication system 100 for delivering media content. The communication system 100 can represent an Internet Protocol Television (IPTV) broadcast media system. The IPTV media system can include a super head-end office (SHO) 110 with at least one super headend office server (SHS) 111 which receives media content from satellite and/or terrestrial communication systems. In the present context, media content can represent audio content, moving image content such as videos, still image content, or combinations thereof. The SHS server 111 can forward packets associated with the media content to video head-end servers (VHS) 114 via a network of video head-end offices (VHO) 112 according to a common multicast communication protocol.
  • The VHS 114 can distribute multimedia broadcast programs via an access network 118 to commercial and/or residential buildings 102 housing a gateway 104 (such as a common residential or commercial gateway). The access network 118 can represent a group of digital subscriber line access multiplexers (DSLAMs) located in a central office or a service area interface that provide broadband services over optical links or copper twisted pairs 119 to buildings 102. The gateway 104 can use common communication technology to distribute broadcast signals to media processors 106 such as Set-Top Boxes (STBs) which in turn present broadcast channels to media devices 108 such as computers or television sets managed in some instances by a media controller 107 (such as an infrared or RF remote control).
  • The gateway 104, the media processors 106, and media devices 108 can utilize tethered interface technologies (such as coaxial or phone line wiring) or can operate over a common wireless access protocol. With these interfaces, unicast communications can be invoked between the media processors 106 and subsystems of the IPTV media system for services such as video-on-demand (VoD), browsing an electronic programming guide (EPG), or other infrastructure services.
  • Some of the network elements of the IPTV media system can be coupled to one or more computing devices 130 a portion of which can operate as a web server for providing portal services over an Internet Service Provider (ISP) network 132 to wireline media devices 108 or wireless communication devices 116 by way of a wireless access base station 117 operating according to common wireless access protocols such as Wireless Fidelity (WiFi), or cellular communication technologies (such as GSM, CDMA, UMTS, WiMAX, Software Defined Radio or SDR, and so on).
  • It will be appreciated by an artisan of ordinary skill in the art that a satellite broadcast television system can be used in place of the IPTV media system. In this embodiment, signals transmitted by a satellite 115 supplying media content can be intercepted by a common satellite dish receiver 131 coupled to the building 102. Modulated signals intercepted by the satellite dish receiver 131 can be submitted to the media processors 106 for generating broadcast channels which can be presented at the media devices 108. The media processors 106 can be equipped with a broadband port to the ISP network 132 to enable infrastructure services such as VoD and EPG described above.
  • In yet another embodiment, an analog or digital broadcast distribution system such as cable TV system 133 can be used in place of the IPTV media system described above. In this embodiment the cable TV system 133 can provide Internet, telephony, and interactive media services.
  • In one embodiment, the servers 130 can be network components or appliances that control access to computing resources. For example, the servers 130 can be placed between a requestor and a resource in order to provide throttling and queuing algorithms to control access to that resource. Requests to a resource can be queued by priority and the average time-of-flight for previous requests to that resource. This enables the request to be throttled based on near real-time information about the responsiveness of that resource. The servers 130 also allow user control through the use of user set priority. The servers 130 can manage access to a limited resource by a variety of requestors. In one embodiment, the servers 130 can provide for a single control point to that resource, such that access to the resource can be tuned based on traffic and required performance. Often each individual requestor application is responsible for queuing and throttling of requests, but each requestor does not have knowledge of other requestors. Alternately, the resource itself may be responsible for handling a large number of concurrent requests from a variety of requestors. Some resources are too low-level or specialized to adequately provide those services internally. The servers 130 can provide those services transparent to the resource as an external device placed between the requestors and the resource.
  • The servers 130 provide an external/decoupled method of providing throttling and queuing to a low-level or specialized resource that lacks those capabilities. The algorithm used allows user control of queuing through user defined priorities, but also take into account the near real-time behavior of the resource. If the resource is busy, requests to the resource can be throttled downward.
  • FIG. 2 depicts an illustrative embodiment of a portal 202 which can operate from the computing devices 130 described earlier of communication system 100 illustrated in FIG. 1. The portal 202 can be used for managing services of communication system 100. The portal 202 can be accessed by a Uniform Resource Locator (URL) with a common Internet browser such as Microsoft's Internet Explorer™ using an Internet-capable communication device such as those described for FIG. 1. The portal 202 can be configured, for example, to access a media processor 106 and services managed thereby such as a Digital Video Recorder (DVR), a VoD catalog, an EPG, a personal catalog (such as personal videos, pictures, audio recordings, etc.) stored in the media processor, provisioning IMS services described earlier, provisioning Internet services, provisioning cellular phone services, and so on.
  • FIG. 3 depicts an exemplary embodiment of a system 300 that can perform a number of functions, such as delivering media content, although the present disclosure is not intended to be limited thereto. System 300 can be overlaid or operably coupled with communication system 100 as another representative embodiment of said communication systems. System 300 can include a first server or client 310, a second server or appliance 130 (e.g., a scheduling server) and a third server or source 350. The client 310 can generate a request for a resource to be provided by the source 350. For example, the source can be one or more of routers, switches, multiplexers and other components where sharing of limited resources is desired, without the risk of starvation.
  • When an incoming resource request is received by the server 130, it can be placed in the buffer (such as a database). The type of request and the target can be classified as RTX. The requested priority can also be recorded. The availability of the requested priority can be compared against the maximum number allowed in-flight for that client 310 and, based on that availability, assignment of the priority P′ can be performed. The value of te (RTX) can then be calculated for the request. Concurrently, for each source server 350, the buffer can be searched for requests targeted to that source server 350 with the minimum priority value. In one embodiment, requests can be sent while the number of in-flight requests for that source server 350 is less than the maximum defined for that source server 350. The request can be received by the source server 350, processed and returned to the server 130. The server 130 can record the actual completion time (the time it was in-flight) and the response (e.g., the resulting data or resource) can then be returned to the client 310. The estimated completion value can be adjusted dynamically based on the recent response for the given request type and source server 350.
  • FIG. 4 depicts an illustrative method 400 operating in portions of communication systems 100 and 300. Method 400 can begin with step 402 in which a first server generates a request for use of a computing resource. In step 406, the request can be forwarded to an intermediate server or appliance by the first server. In step 408, the intermediate appliance can process the request among a group of requests directed to the same computing resource as well as other computing resources.
  • In one embodiment, each dataflow can be weighted by its priority. For instance, P can be a Priority where P[0,9] and which follows the scheme of 0 being low priority with 9 being high priority. P′ can equal Pmax−P (in this case 9−P). For a particular request of type T, targeting Processor X, defined as RTX, we can calculate the estimated completion time, te (RTX) as the average of the actual completion time of previously processed RTX. A window of time (previous 10 minutes, for example) or number of completed requests (only include previous 3, for example), can be established to include in this average, to allow a more real-time estimate of te(RTX). The request can then be selected which has the minimum P′te(RTX) as the next request to be serviced by processor X.
  • Considering requests targeting a particular processor, X; since the highest priority, Pmax, will result in P′te(RTX)=0, requests with Pmax can be processed first (if there are multiple such requests, they can be serviced FIFO). Long running tasks, where previous requests have taken a long time to complete relative to other requests in the buffer, can be serviced after shorter running tasks of the same priority. In one embodiment, for requests targeting a particular processor all with priority P, Fair Queuing can be utilized, and if these requests are of the same type and arrive simultaneously, FIFO can be utilized.
  • Once the prioritization is determined then in step 410 the request can be forwarded to the source server. In step 412, a response based on the request can be returned from the source server to the intermediate appliance. The response can be the data resulting from use of the computing resource. The response or result of the resource can then be provided to the requesting client in step 414.
  • The present disclosure can include external clients seeking to send requests to targeted processors, which will process the request and return it to the client. Requests can be mediated through the intermediate appliance to achieve efficient utilization of the limited resources provided by the processors. The data flow can include requests being generated from the clients, targeted to a particular, external processor; the request can be sent to the intermediate appliance; the intermediate appliance can forward requests to the processor that is specified in the request; the processors can process the request and return the response to the intermediate appliance; and the intermediate appliance can forward the response back to the clients.
  • The intermediate appliance can prioritize the requests such that a single processor is processing the most urgent requests in a timely manner, but also such that each client has a chance of utilizing the processor. It is worth noting that since responses are passed back through the intermediate appliance, calculation of an accurate time of completion of each request is possible.
  • Upon reviewing the aforementioned embodiments, it would be evident to an artisan with ordinary skill in the art that said embodiments can be modified, reduced, or enhanced without departing from the scope and spirit of the claims described below. For example, clients may request a specific priority, so that a client may choose which of it's requests should be serviced first. The intermediate appliance may limit the overall number of in-flight requests (those sent to the processor, but which no response has been returned) to a given processor. The intermediate appliance may limit the number of in-flight requests with a requested priority from a particular client to a given processor. (For example Client-A may only be allowed to have 2 high priority Requests in-flight for Processor-X).
  • Other suitable modifications can be applied to the present disclosure without departing from the scope of the claims below. Accordingly, the reader is directed to the claims section for a fuller understanding of the breadth and scope of the present disclosure.
  • FIG. 5 depicts an exemplary diagrammatic representation of a machine in the form of a computer system 500 within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed above. In some embodiments, the machine operates as a standalone device. In some embodiments, the machine may be connected (e.g., using a network) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client user machine in server-client user network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • The machine may comprise a server computer, a client user computer, a personal computer (PC), a tablet PC, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. It will be understood that a device of the present disclosure includes broadly any electronic device that provides voice, video or data communication. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • The computer system 500 may include a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU, or both), a main memory 504 and a static memory 506, which communicate with each other via a bus 508. The computer system 500 may further include a video display unit 510 (e.g., a liquid crystal display (LCD), a flat panel, a solid state display, or a cathode ray tube (CRT)). The computer system 500 may include an input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), a disk drive unit 516, a signal generation device 518 (e.g., a speaker or remote control) and a network interface device 520.
  • The disk drive unit 516 may include a machine-readable medium 522 on which is stored one or more sets of instructions (e.g., software 524) embodying any one or more of the methodologies or functions described herein, including those methods illustrated above. The instructions 524 may also reside, completely or at least partially, within the main memory 504, the static memory 506, and/or within the processor 502 during execution thereof by the computer system 500. The main memory 504 and the processor 502 also may constitute machine-readable media.
  • Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement the methods described herein. Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems. Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the example system is applicable to software, firmware, and hardware implementations.
  • In accordance with various embodiments of the present disclosure, the methods described herein are intended for operation as software programs running on a computer processor. Furthermore, software implementations can include, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.
  • The present disclosure contemplates a machine readable medium containing instructions 524, or that which receives and executes instructions 524 from a propagated signal so that a device connected to a network environment 526 can send or receive voice, video or data, and to communicate over the network 526 using the instructions 524. The instructions 524 may further be transmitted or received over a network 526 via the network interface device 520.
  • While the machine-readable medium 522 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
  • The term “machine-readable medium” shall accordingly be taken to include, but not be limited to: solid-state memories such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories; magneto-optical or optical medium such as a disk or tape; and/or a digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include any one or more of a machine-readable medium or a distribution medium, as listed herein and including art-recognized equivalents and successor media, in which the software implementations herein are stored.
  • Although the present specification describes components and functions implemented in the embodiments with reference to particular standards and protocols, the disclosure is not limited to such standards and protocols. Each of the standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same functions are considered equivalents.
  • The illustrations of embodiments described herein are intended to provide a general understanding of the structure of various embodiments, and they are not intended to serve as a complete description of all the elements and features of apparatus and systems that might make use of the structures described herein. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. Figures are also merely representational and may not be drawn to scale. Certain proportions thereof may be exaggerated, while others may be minimized Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
  • Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.

Claims (20)

What is claimed is:
1. A non-transitory computer-readable storage medium comprising computer instructions which, responsive to being executed by a processor of a scheduling server, cause the processor to perform operations comprising:
receiving a request from a client server for computing resources associated with a processor;
receiving completion data from the processor for previous completed requests for the computing resources associated with the processor;
determining an estimated completion time associated with previous unresolved requests that have been provided to the processor, wherein the estimated completion time is determined based on the completion data;
determining if a self-priority is assigned to the request by the client server, the self-priority designating an order of processing among requests from the client server to the processor, wherein a number of self-priorities assignable by the client server is limited by the scheduling server;
calculating a priority value for the request based on the estimated completion time and the self-priority;
establishing a processing schedule for the request and other requests associated with the processor based on the priority value;
providing the request to the processor according to the processing schedule;
receiving a response from the processor, the response comprising information generated according to the request;
providing the response to the client server;
determining a completion time associated with the request and utilize the completion time to determine another estimated completion time associated with another request; and
determining unresolved requests associated with the client server.
2. The non-transitory computer-readable storage medium of claim 1, wherein the estimated completion time is determined based on a pre-determined number of previous requests.
3. The non-transitory computer-readable storage medium of claim 1, wherein the estimated completion time is determined based on requests during a pre-determined time period.
4. The non-transitory computer-readable storage medium of claim 1, wherein the operations further comprise monitoring a number of unresolved requests directed to the processor that are received from the client server.
5. The non-transitory computer-readable storage medium of claim 1, wherein the operations further comprise rejecting a subsequent request from the client server for the computing resources of the processor responsive to a number of unresolved requests exceeding a threshold.
6. The non-transitory computer-readable storage medium of claim 1, wherein a determination is made as to whether a self-priority is assigned to the request by the client server, the self-priority designating an order of processing among requests from the client server to the processor, wherein a number of self-priorities assignable by the client server is limited.
7. A server comprising:
a memory to store computer instructions; and
a controller coupled with the memory, wherein the controller, responsive to executing the computer instructions, performs operations comprising:
receiving a request from a client server for computing resources associated with a processor;
receiving completion data from the processor for previous completed requests for the computing resources associated with the processor;
determining an estimated completion time associated with previous unresolved requests that have been provided to the processor, wherein the estimated completion time is determined based on the completion data;
calculating a priority value for the request based on the estimated completion time;
establishing a processing schedule for the request and other requests associated with the processor based on the priority value;
providing the request to the processor according to the processing schedule;
receiving a response from the processor, the response comprising information generated according to the request;
providing the response to the client server; and
identifying the previous unresolved requests associated with the processor and the client server.
8. The server of claim 7, wherein the operations further comprise:
determining if a self-priority is assigned to the request by the client server, the self-priority designating an order of processing among requests from the client server to the processor.
9. The server of claim 8, wherein a number of self-priorities assignable by the client server is limited by the controller.
10. The server of claim 7, wherein the operations further comprise determining a completion time associated with the request and utilizing the completion time to determine another estimated completion time associated with another request.
11. The server of claim 7, wherein the estimated completion time is based on a pre-determined number of previous requests.
12. The server of claim 7, wherein the estimated completion time is based on requests during a pre-determined time period.
13. The server of claim 7, wherein the processor comprises a router.
14. A method comprising:
generating, by a client server, a request for computing resources associated with a processor;
transmitting, by the client server, the request to a scheduling server for prioritization of the request with respect to other requests associated with the processor, wherein the prioritization is based on an estimated completion time determined from completion data for previous completed requests associated with the processor, wherein the completion data is generated by the processor and provided to the scheduling server;
receiving, by the client server, a response to the request from the scheduling server, wherein the response is generated by the processor based on the request;
determining a completion time associated with the request and utilizing the completion time to determine another estimated completion time associated with another request; and
assigning a self-priority to the request, the self-priority designating an order of processing among requests from the client server to the processor.
15. The method of claim 14, wherein a number of self-priorities assignable by the client server is limited by the scheduling server.
16. The method of claim 14, wherein the processor comprises a multiplexer.
17. The method of claim 14, wherein the estimated completion time is based on a pre-determined number of previous requests.
18. The method of claim 14, wherein the estimated completion time is based on requests during a pre-determined time period.
19. The method of claim 14, comprising identifying previous unresolved requests associated with the processor and the client server.
20. The method of claim 14, wherein the processor comprises a router.
US13/780,472 2009-12-10 2013-02-28 Apparatus and method for providing computing resources Expired - Fee Related US8626924B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/780,472 US8626924B2 (en) 2009-12-10 2013-02-28 Apparatus and method for providing computing resources

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/634,723 US8412827B2 (en) 2009-12-10 2009-12-10 Apparatus and method for providing computing resources
US13/780,472 US8626924B2 (en) 2009-12-10 2013-02-28 Apparatus and method for providing computing resources

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/634,723 Continuation US8412827B2 (en) 2009-12-10 2009-12-10 Apparatus and method for providing computing resources

Publications (2)

Publication Number Publication Date
US20130179578A1 true US20130179578A1 (en) 2013-07-11
US8626924B2 US8626924B2 (en) 2014-01-07

Family

ID=44144132

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/634,723 Active 2031-07-01 US8412827B2 (en) 2009-12-10 2009-12-10 Apparatus and method for providing computing resources
US13/780,472 Expired - Fee Related US8626924B2 (en) 2009-12-10 2013-02-28 Apparatus and method for providing computing resources

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/634,723 Active 2031-07-01 US8412827B2 (en) 2009-12-10 2009-12-10 Apparatus and method for providing computing resources

Country Status (1)

Country Link
US (2) US8412827B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130031239A1 (en) * 2011-07-28 2013-01-31 Xyratex Technology Limited Data communication method and apparatus

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832274B2 (en) * 2012-03-09 2014-09-09 Business Objects Software Limited Apportioned queue for resource allocation
TWI513230B (en) * 2013-04-29 2015-12-11 Ind Tech Res Inst Remote management systems and apparatuses for cwmp and methods for improving the cwmp performance thereof
US11108698B2 (en) * 2017-02-03 2021-08-31 Microsoft Technology Licensing, Llc Systems and methods for client-side throttling after server handling in a trusted client component
US10250517B2 (en) * 2017-02-03 2019-04-02 Microsoft Technology Licensing, Llc Completion-side client throttling
US10540116B2 (en) * 2017-02-16 2020-01-21 Toshiba Memory Corporation Method of scheduling requests to banks in a flash controller

Citations (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088363A (en) * 1996-12-04 2000-07-11 Kabushiki Kaisha Toshiba Network system transmission control method
US20020083117A1 (en) * 2000-11-03 2002-06-27 The Board Of Regents Of The University Of Nebraska Assured quality-of-service request scheduling
US20020138172A1 (en) * 2001-02-22 2002-09-26 Namdar Bahri Traffic management system and method for materials handling using traffic balancing and traffic density
US20030022404A1 (en) * 2001-07-26 2003-01-30 Nec Corporation System processing time computation method, system processing time computation device, and recording medium with system processing time computation program recorded thereon
US20030050955A1 (en) * 2001-06-26 2003-03-13 David Eatough Method and apparatus to perform automated task handling
US20030061353A1 (en) * 1999-04-19 2003-03-27 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
US20030074387A1 (en) * 2001-09-18 2003-04-17 Matsushita Electric Industrial Co., Ltd. Distributed processing system, job distribution method and distribution program
US20030097443A1 (en) * 2001-11-21 2003-05-22 Richard Gillett Systems and methods for delivering content over a network
US20030172014A1 (en) * 2000-09-01 2003-09-11 Chris Quackenbush System and method for online valuation and analysis
US20030182437A1 (en) * 2002-02-28 2003-09-25 Nec Corporation Proxy server and proxy control program
US20030204603A1 (en) * 2002-04-26 2003-10-30 International Business Machines Corporation Efficient delivery of boot code images from a network server
US20040205108A1 (en) * 2001-07-16 2004-10-14 Katsuyoshi Tanaka Distributed processing system and distributed job processing method
US20040230675A1 (en) * 2003-05-15 2004-11-18 International Business Machines Corporation System and method for adaptive admission control and resource management for service time guarantees
US20050125274A1 (en) * 2003-12-04 2005-06-09 American Express Travel Related Services Company, Inc. System and method for resource optimization
US20050187805A1 (en) * 2000-09-29 2005-08-25 I2 Technologies Us, Inc. Application-driven scheduling system and method
US20050228855A1 (en) * 2004-03-16 2005-10-13 Masahiro Kawato Acquisition system for distributed computing resources
US20060218279A1 (en) * 2005-03-23 2006-09-28 Akihiko Yamaguchi Method for controlling a management computer
US20070016907A1 (en) * 2005-07-12 2007-01-18 Fabio Benedetti Method, system and computer program for automatic provisioning of resources to scheduled jobs
US20070050477A1 (en) * 2005-09-01 2007-03-01 Microsoft Corporation Web application resource management
US20080080486A1 (en) * 2006-09-29 2008-04-03 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR PERFORMING LOCATION MANAGEMENT USING HOME SUBSCRIBER SERVER IN VoIP SERVICE
US20080178186A1 (en) * 2004-10-14 2008-07-24 International Business Machines Corporation Apparatus and Methods for Performing Computer System Maintenance and Notification Activities in an Opportunistic Manner
US20080222640A1 (en) * 2007-03-07 2008-09-11 International Business Machines Corporation Prediction Based Priority Scheduling
US20080270521A1 (en) * 2007-04-25 2008-10-30 Jinmei Shen Method and System for Coordinating Auxiliary Data Content Entry Into Service Requests
US20090083806A1 (en) * 2003-10-10 2009-03-26 Microsoft Corporation Media organization for distributed sending of media data
US20090144784A1 (en) * 2005-08-26 2009-06-04 Thomason Licensing On demand system and method using dynamic broadcast scheduling
US7562362B1 (en) * 2003-06-18 2009-07-14 Apple Inc. User control of task priority
US7594032B2 (en) * 2002-11-07 2009-09-22 Hewlett-Packard Development Company, L.P. Method and system for communicating information between a switch and a plurality of servers in a computer network
US7617515B1 (en) * 2001-05-24 2009-11-10 Vixs Systems, Inc. Method and apparatus for managing resources in a multimedia system
US20090328048A1 (en) * 2001-12-03 2009-12-31 Quartics, Inc. Distributed Processing Architecture With Scalable Processing Layers
US20100067378A1 (en) * 1998-06-26 2010-03-18 At&T Intellectual Property I, L.P. Method and Apparatus for Improving End to End Performance of a Data Network
US7702796B2 (en) * 2006-05-18 2010-04-20 International Business Machines Corporation Recovering a pool of connections
US7703101B2 (en) * 2004-02-13 2010-04-20 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
US20100098011A1 (en) * 2008-10-17 2010-04-22 Ghyslain Pelletier Method and Mobile Terminal Providing Priority-Based Uplink Scheduling Infomation
US20100205607A1 (en) * 2009-02-11 2010-08-12 Hewlett-Packard Development Company, L.P. Method and system for scheduling tasks in a multi processor computing system
US20100325637A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Allocation of resources to a scheduler in a process
US20110067032A1 (en) * 2009-09-15 2011-03-17 Raytheon Company Method and system for resource management using fuzzy logic timeline filling
US7933249B2 (en) * 2000-02-08 2011-04-26 Ipr Licensing, Inc. Grade of service and fairness policy for bandwidth reservation system
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data
US8140552B2 (en) * 2008-09-19 2012-03-20 International Business Machines Corporation Method and apparatus for optimizing lead time for service provisioning

Patent Citations (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088363A (en) * 1996-12-04 2000-07-11 Kabushiki Kaisha Toshiba Network system transmission control method
US20100067378A1 (en) * 1998-06-26 2010-03-18 At&T Intellectual Property I, L.P. Method and Apparatus for Improving End to End Performance of a Data Network
US20030061353A1 (en) * 1999-04-19 2003-03-27 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
US7933249B2 (en) * 2000-02-08 2011-04-26 Ipr Licensing, Inc. Grade of service and fairness policy for bandwidth reservation system
US20030172014A1 (en) * 2000-09-01 2003-09-11 Chris Quackenbush System and method for online valuation and analysis
US20050187805A1 (en) * 2000-09-29 2005-08-25 I2 Technologies Us, Inc. Application-driven scheduling system and method
US20020083117A1 (en) * 2000-11-03 2002-06-27 The Board Of Regents Of The University Of Nebraska Assured quality-of-service request scheduling
US20020138172A1 (en) * 2001-02-22 2002-09-26 Namdar Bahri Traffic management system and method for materials handling using traffic balancing and traffic density
US7617515B1 (en) * 2001-05-24 2009-11-10 Vixs Systems, Inc. Method and apparatus for managing resources in a multimedia system
US20030050955A1 (en) * 2001-06-26 2003-03-13 David Eatough Method and apparatus to perform automated task handling
US20040205108A1 (en) * 2001-07-16 2004-10-14 Katsuyoshi Tanaka Distributed processing system and distributed job processing method
US20030022404A1 (en) * 2001-07-26 2003-01-30 Nec Corporation System processing time computation method, system processing time computation device, and recording medium with system processing time computation program recorded thereon
US20030074387A1 (en) * 2001-09-18 2003-04-17 Matsushita Electric Industrial Co., Ltd. Distributed processing system, job distribution method and distribution program
US20030097443A1 (en) * 2001-11-21 2003-05-22 Richard Gillett Systems and methods for delivering content over a network
US20090328048A1 (en) * 2001-12-03 2009-12-31 Quartics, Inc. Distributed Processing Architecture With Scalable Processing Layers
US20030182437A1 (en) * 2002-02-28 2003-09-25 Nec Corporation Proxy server and proxy control program
US20030204603A1 (en) * 2002-04-26 2003-10-30 International Business Machines Corporation Efficient delivery of boot code images from a network server
US7594032B2 (en) * 2002-11-07 2009-09-22 Hewlett-Packard Development Company, L.P. Method and system for communicating information between a switch and a plurality of servers in a computer network
US7472159B2 (en) * 2003-05-15 2008-12-30 International Business Machines Corporation System and method for adaptive admission control and resource management for service time guarantees
US20040230675A1 (en) * 2003-05-15 2004-11-18 International Business Machines Corporation System and method for adaptive admission control and resource management for service time guarantees
US7562362B1 (en) * 2003-06-18 2009-07-14 Apple Inc. User control of task priority
US20090083806A1 (en) * 2003-10-10 2009-03-26 Microsoft Corporation Media organization for distributed sending of media data
US20050125274A1 (en) * 2003-12-04 2005-06-09 American Express Travel Related Services Company, Inc. System and method for resource optimization
US7703101B2 (en) * 2004-02-13 2010-04-20 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
US20050228855A1 (en) * 2004-03-16 2005-10-13 Masahiro Kawato Acquisition system for distributed computing resources
US20080178186A1 (en) * 2004-10-14 2008-07-24 International Business Machines Corporation Apparatus and Methods for Performing Computer System Maintenance and Notification Activities in an Opportunistic Manner
US20060218279A1 (en) * 2005-03-23 2006-09-28 Akihiko Yamaguchi Method for controlling a management computer
US20070016907A1 (en) * 2005-07-12 2007-01-18 Fabio Benedetti Method, system and computer program for automatic provisioning of resources to scheduled jobs
US20090144784A1 (en) * 2005-08-26 2009-06-04 Thomason Licensing On demand system and method using dynamic broadcast scheduling
US20070050477A1 (en) * 2005-09-01 2007-03-01 Microsoft Corporation Web application resource management
US7702796B2 (en) * 2006-05-18 2010-04-20 International Business Machines Corporation Recovering a pool of connections
US20080080486A1 (en) * 2006-09-29 2008-04-03 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR PERFORMING LOCATION MANAGEMENT USING HOME SUBSCRIBER SERVER IN VoIP SERVICE
US20080222640A1 (en) * 2007-03-07 2008-09-11 International Business Machines Corporation Prediction Based Priority Scheduling
US20080270521A1 (en) * 2007-04-25 2008-10-30 Jinmei Shen Method and System for Coordinating Auxiliary Data Content Entry Into Service Requests
US8140552B2 (en) * 2008-09-19 2012-03-20 International Business Machines Corporation Method and apparatus for optimizing lead time for service provisioning
US20100098011A1 (en) * 2008-10-17 2010-04-22 Ghyslain Pelletier Method and Mobile Terminal Providing Priority-Based Uplink Scheduling Infomation
US20100205607A1 (en) * 2009-02-11 2010-08-12 Hewlett-Packard Development Company, L.P. Method and system for scheduling tasks in a multi processor computing system
US20100325637A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Allocation of resources to a scheduler in a process
US20110067032A1 (en) * 2009-09-15 2011-03-17 Raytheon Company Method and system for resource management using fuzzy logic timeline filling
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130031239A1 (en) * 2011-07-28 2013-01-31 Xyratex Technology Limited Data communication method and apparatus
US8909764B2 (en) * 2011-07-28 2014-12-09 Xyratex Technology Limited Data communication method and apparatus

Also Published As

Publication number Publication date
US8412827B2 (en) 2013-04-02
US8626924B2 (en) 2014-01-07
US20110145410A1 (en) 2011-06-16

Similar Documents

Publication Publication Date Title
US11012728B2 (en) Predictive allocation of multimedia server resources
US11356491B2 (en) Streamlined delivery of video content
US9986062B2 (en) Quality of service for distribution of content to network devices
US8626924B2 (en) Apparatus and method for providing computing resources
US9516368B2 (en) System for consolidating heterogeneous data centers through virtualization of services
US7761902B2 (en) System and method of providing video content
US10499101B2 (en) Apparatus and method for providing media content
RU2491751C2 (en) Method of controlling temporary access in digital video network
US20080244665A1 (en) System and method of providing video content
US20140280764A1 (en) Bandwidth management for over-the-top adaptive streaming
EP2760163B1 (en) Network latency optimization
US9100680B2 (en) System and method to control communication of data
US8713608B2 (en) System for presenting media services
US20090046987A1 (en) System for managing recording conflicts of media programs
US20150089014A1 (en) Systems and methods for cache-based content delivery
US20080229372A1 (en) Method and system for delivering media programs
US20090070839A1 (en) System for adjusting encoding rates between communication devices
US8171173B2 (en) Method and apparatus for managing delivery of media content
US20190036838A1 (en) Delivery of Multimedia Components According to User Activity
CN106792216A (en) Streaming Media read method and server in distributed file system

Legal Events

Date Code Title Description
AS Assignment

Owner name: AT&T INTELLECTUAL PROPERTY I, LP, GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CALDWELL, BRYAN;BEHI, FARIBORZ;SIGNING DATES FROM 20091118 TO 20091120;REEL/FRAME:029905/0651

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20180107