US20080052397A1 - Future locking of resources - Google Patents

Future locking of resources Download PDF

Info

Publication number
US20080052397A1
US20080052397A1 US11/717,548 US71754807A US2008052397A1 US 20080052397 A1 US20080052397 A1 US 20080052397A1 US 71754807 A US71754807 A US 71754807A US 2008052397 A1 US2008052397 A1 US 2008052397A1
Authority
US
United States
Prior art keywords
resource
client
demand request
requirement
processor
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.)
Abandoned
Application number
US11/717,548
Inventor
Ramanathan Venkataraman
Pramod Nanadikar
Badrinarayanan Vasudevan
Nandita Kshirsagar
Priya Joshi
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.)
Accenture Global Services Ltd
Original Assignee
Accenture Global Services GmbH
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 Accenture Global Services GmbH filed Critical Accenture Global Services GmbH
Assigned to ACCENTURE GLOBAL SERVICES GMBH reassignment ACCENTURE GLOBAL SERVICES GMBH ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VENKATARAMAN, RAMANATHAN, JOSHI, PRIYA, KSHIRSAGAR, NANDITA, NANADIKAR, PRAMOD, VASUDEVAN, BADRINARAYANAN
Publication of US20080052397A1 publication Critical patent/US20080052397A1/en
Assigned to ACCENTURE GLOBAL SERVICES LIMITED reassignment ACCENTURE GLOBAL SERVICES LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ACCENTURE GLOBAL SERVICES GMBH
Priority to US14/732,168 priority Critical patent/US10146587B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/808User-type aware
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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 technical field relates to resource allocation, and in particular, to allocating resources based on resource requirements determined from a demand request.
  • a system for allocating resources to demand requests includes a resource requirement processor, which may identify a set of resource requirements associated with a demand request.
  • the system also includes a resource selector.
  • the resource selector may select a resource that satisfies at least one of the resource requirements from the set of resource requirements identified by the resource requirement processor.
  • the system further includes a communication processor that is capable of receiving a response from a client indicating whether a client can satisfy a locking prerequisite associated with the selected resource.
  • the system additionally includes a resource allocation processor that allocates the selected resource to the demand request based on the response received by the communication processor.
  • FIG. 1 is a block diagram of an example of a system for allocating resources to a demand request.
  • FIG. 2 is a flowchart of an example for allocating resources to a demand request.
  • FIG. 3 is a flowchart of an example of selecting resources that satisfy the demand request received from FIG. 2 .
  • FIG. 4A is a flowchart of an example of allocating currently available resources to the demand request received from FIG. 2 .
  • FIG. 4B is a flowchart of an alternative example of allocating currently available resources to the demand request received from FIG. 2 .
  • FIG. 4C is a flowchart of an example of allocating future resources to the demand request received from FIG. 2 .
  • FIG. 4D is a flowchart of an alternative example of allocating future resources to the demand request received from FIG. 2 .
  • a system for assigning resources to demand requests 102 may include a communication interface 112 coupled with a communication processor 114 .
  • the system 102 may also include a resource requirement processor 116 and a resource selector 118 coupled with the communication processor 114 .
  • a demand request/resource allocation database 122 and a resource allocation processor 124 may be coupled with the resource selector 118 .
  • a resource database 120 is also coupled with the resource selector 118 .
  • the system 102 includes an input interface 126 and an output interface 128 coupled with the communication processor 114 .
  • An input device 130 is coupled with the input interface 126 and an output device 132 is coupled with the output interface 128 .
  • clients 104 / 106 / 108 send demand requests to the system 102 using a communication link 110 .
  • the communication link 110 may be a wired or wireless link, such as a packet-network, a circuit-switched network, or a combination thereof.
  • Clients 104 / 106 / 108 may communicate directly with the system 102 , such as using Ethernet, or indirectly, such as using a modem to communicate with an Internet service provider (ISP), which then communicates with the system 102 .
  • ISP Internet service provider
  • the system 102 may reside on any one of clients 104 / 106 / 108 .
  • the system 102 may also reside on all three of the clients 104 / 106 / 108 .
  • a client 104 communicates with the system for assigning resources to demand requests 102 using a communication interface 112 .
  • the communication interface 112 may be a serial or parallel interface.
  • the communication interface 112 may also be a Universal Serial Bus (USB) interface.
  • the communication interface 112 is an Ethernet interface.
  • the communication interface 112 is an IEEE 1394 (FireWire) interface.
  • the communication interface 112 is a SCSI interface.
  • the communication interface 112 may also be an IDE interface.
  • the communication interface 112 is coupled with a communication processor 114 .
  • the communication interface 112 may be coupled directly or indirectly with the communication processor 114 .
  • the communication interface 112 may be directly coupled with the communication processor 114 , such that there are no intermediate components between the communication interface 112 and the communication processor 114 . It is also possible that the communication interface 112 is coupled indirectly with the communication processor 114 , such that the communication interface 112 communicates with the communication processor 114 through other components or systems.
  • the communication processor 114 of the system 102 may be configured to process demand requests received from the client 104 using communication interface 112 .
  • the communication processor 114 is a hardware-implemented processor, such as a processor implemented as a complex instruction set computer (CISC), as a processor implemented as a reduced instruction set computer (RISC), or as a combination thereof.
  • the communication processor 114 is a software-implemented processor written using a computer programming language such as C, Java, ASP.NET, in another computer programming language, or as a combination thereof.
  • the communication processor 114 may be configured to facilitate communication between the components of the system 102 , and between the components of the system 102 and the clients 104 / 106 / 108 in communication with the system 102 .
  • the communication processor 114 may first process the demand request.
  • the communication processor 114 may transmit the demand request to the resource requirement processor 116 .
  • the resource requirement processor 116 is a hardware-implemented processor, such as a processor implemented as a complex instruction set computer (CISC), as a processor implemented as a reduced instruction set computer (RISC), or as a combination thereof.
  • the communication processor 114 is a software-implemented processor written using a computer programming language such as C, Java, ASP.NET, in another computer programming language, or as a combination thereof.
  • the resource requirement processor 116 may be configured to determine the resource requirements associated with the demand request. In one embodiment, the resource requirement processor 116 determines that one of the resource requirements is a technical skill requirement. For example, the resource requirement processor 116 may determine that a particular skill, such as being able to program in a programming language or being able to perform a complex job is required. In another embodiment, the resource requirement processor 116 determines that a resource requirement of the demand request is a travel availability requirement. For example, the resource requirement processor 116 may determine that being able to travel to another country is a requirement. The resource requirement processor 116 could also determine that being able to travel during a set period of time is required. In yet another embodiment, the resource requirement processor 116 determines that a resource requirement is a time availability requirement. For example, the resource requirement processor 116 may determine that a resource be available for specific set of time or duration, such as a period of days, weeks, months, or combination thereof. Other measurements of time are also possible.
  • the resource requirement processor 116 may then communicate with the resource selector 118 using the communication processor 114 to select resources that satisfy the requirements determined by the resource requirement processor 116 .
  • the resource selector 118 may be software stored in computer-readable memory on the system 102 and coupled with the communication processor 114 .
  • the resource selector 118 may be written in a computer programming language, such as C, Java, or other programming language, and residing on a storage device, such as a hard drive, tape drive, or other storage device, and coupled with the communication processor 114 .
  • the resource selector 118 may be implemented in hardware and coupled with the communication processor 114 .
  • the resource selector 118 may be a processor implemented as a complex instruction set computer (CISC) or implemented as a reduced instruction set computer (RISC) to select the resources that satisfy the resource requirements of the demand request.
  • CISC complex instruction set computer
  • RISC reduced instruction set computer
  • the resource selector 118 is coupled with a resource database 120 .
  • the resource database may be a software-implemented database that stores information associated with each of the resources available to the system 102 .
  • the resource database 120 may reside on the same system as the resource selector 118 , or the resource database 120 may reside on another system coupled to the resource selector 102 .
  • the resources available to the system 102 may be human resources, such as workers, staff, or other employed persons, and the resource database 120 may store information associated with each of the employed persons.
  • the resources available to the system 102 may be computer resources, such as software, hardware, or combinations thereof.
  • the resources available to the system 102 may be general resources, including persons, places, or tools, that were previously catalogued and had information associated with them stored in the resource database 120 .
  • the information associated with the resources and stored by the resource database 120 may be personal information.
  • the resource database 120 may store information about the particular skill sets of a person, such as languages spoken, programming languages known, educational level, or other skill-related information.
  • the resource database 120 may store travel-related information about the resources.
  • travel-related information may include whether resources, such as employees, have passports or visas, have traveled outside a particular country or region, or are available to travel. Other travel-related information is also possible.
  • the resource database 120 may store electrical information about the resources, if the resources satisfy electrical requirements.
  • the resources may be generators, and the resource database 120 may store information about how much output the generators produce.
  • the resource database 120 may store software-related information about the resources, if the resources satisfy software related requirements.
  • client 104 may need software that meets a particular need, such as a program that can act as a word processor.
  • Other software-related information may include, but is not limited to, running a particular operating system, whether the resource can perform certain tasks, or whether the resource can behave in a desired fashion.
  • the resource database 120 may also store information representing a “locking prerequisite.”
  • a locking prerequisite may be a prerequisite that a client 104 has to satisfy before a resource will be hard-locked to a demand request.
  • the locking prerequisite may be a financial prerequisite.
  • the financial prerequisite may require that the client 104 pay a certain amount of money before the resource is allocated to the demand request of the client 104 .
  • the locking prerequisite may be an availability prerequisite.
  • the availability prerequisite may require that the client 104 make available to the resource a desired thing, such as a visa, a particular piece of hardware, or a particular location.
  • the availability prerequisite could also be a temporal prerequisite, such as that the client 104 may only reserve the resource for the demand request for a particular amount of time.
  • the resource will be allocated to the demand request of the client 104 as a hard-locked allocation.
  • a resource that is hard-locked to a demand request will not be assignable to a future demand request even if the resource is capable of satisfying the future demand request.
  • the resource may be assigned to the demand request of the client 104 as a soft-lock allocation. If a resource is assigned to a client 104 as a soft-lock allocation, the resource may be re-assignable to another demand request of another client 106 if the other client 106 is able to satisfy the locking prerequisite of the resource.
  • the resource selector 118 After the resource selector 118 has received a set of resource requirements from the resource requirement processor 116 , the resource selector 118 then queries the resource database 120 . In one embodiment, the resource selector 118 queries the resource database 120 to receive a set of all available resources to the system 102 . In another embodiment, the resource selector 118 queries the resource database 120 for a set of all resources accessible by the system 102 , whether the resources are available or not. Availability may be determined based on whether the resource was previously allocated to another demand request or client, or availability may be based on whether the system 102 has access to the resource. For example, the resource selector 118 may query the demand request/resource allocation database 122 to determine which resources are currently allocated from the resources of the resource database 120 .
  • the resource selector 118 selects the resources that satisfy the requirements determined by the resource requirement processor 116 .
  • the resource selector 118 may filter the resources of the resource set sent by the resource database 120 based on the requirements determined by the resource requirement processor 116 .
  • a requirement of the demand request might be that the resource be available to travel for a period of three weeks, in which case, the resource selector 118 would choose a resource that is available to travel for those three weeks.
  • the requirement of the demand request might be that a resource have a certain programming skill level, in which case the resource selector 118 would then choose a resource that satisfies the programming skill.
  • the resource selector 118 would then select the resource or resources that satisfy each of the requirements identified by the resource requirement processor 116 .
  • the resource selector 118 may also select multiple resources that satisfy the same resource requirement of the demand request.
  • the resource selector 118 may then communicate with the resource allocation processor 124 to allocate the resources to a client 104 .
  • the resource allocation processor is a processor implemented as a complex instruction set computer (CISC).
  • the resource allocation processor is a processor implemented as a reduced instruction set computer (RISC).
  • CISC complex instruction set computer
  • RISC reduced instruction set computer
  • the resource allocation processor 124 is implemented using a computer language, such as C, Java, or other programming language, or combination thereof.
  • the resource allocation processor 124 may reside on the same system as the resource selector 118 , or the resource allocation processor 124 may reside on another system.
  • the resource allocation processor 124 may query the demand request/resource allocation database 122 to determine which resources are currently allocated from the resources of the resource set sent by the resource selector 118 . In one embodiment, the resource allocations processor 124 may query the client 104 via the communication processor 114 to choose a resource for allocation. In another embodiment, the resource allocation processor 124 may choose a resource automatically for allocation. The resource allocation processor 124 may choose a resource that is not currently allocated from the resource set sent by the resource selector 118 .
  • the resource allocation processor 124 may communicate with the client 104 using the communication processor 114 to determine whether the client 104 can satisfy the locking prerequisite of the resource selected by the resource allocation processor 124 . Once the resource allocation processor 124 has determined whether the client 104 can satisfy the locking prerequisite of the resource, the resource allocation processor 124 updates the demand request/resource allocation database 122 accordingly. In one embodiment, the resource allocation processor 124 may update or provide a locking identifier that identifies whether the resource allocated by the resource allocation processor 124 is allocated to the demand request as a soft-locked allocation or as a hard-locked allocation. The resource allocation processor 124 may also communicate with the resource database 120 or the demand request/resource allocation database 122 to update and/or modify either database.
  • resource allocation processor 124 may choose a resource that is currently allocated to another demand request.
  • the system 102 may have received a demand request from a client 106 , and the resource chosen by the allocation processor 124 that satisfies the requirements of the demand request received from the client 106 .
  • the resource chosen by the resource allocation processor 124 may be currently allocated to the client 104 . If the resource chosen by the resource allocation processor 124 satisfies the requirements of the demand request sent by the client 106 , but the resource is currently allocated to the client 104 , the system 102 may query the client 104 to satisfy the locking prerequisite of the resource soft-locked to the client 104 . If the resource is soft-locked to the client 104 , and the client 104 is unable to satisfy the locking prerequisite of the resource after being queried by the system 102 , then the system 102 may query the other client 106 to satisfy the locking prerequisite.
  • the input interface 126 may be an audio interface, such as a microphone input, a tactile input interface, such as USB, an AT interface, a PS/2 interface, or a wireless interface, such as infrared, Bluetooth, are other radio transmission interface. Other input interfaces may also be possible.
  • the output interface 128 may be a visual output interface, such as a DVI interface, a VGA interface, or other graphical interface.
  • the output interface 128 may be an audio output interface, such as a stereo output interface or other audio output interface. Coupled to the input interface 126 is an input device 130 .
  • the input device 130 may be tactile input device, such as a keyboard, mouse, or other tactile input device, or the input device 130 may be an audio input device, such as a microphone, headset, or other audio input device.
  • the output device 132 may be a visual output device, such as a CRT monitor, LCD monitor, or other visual output device.
  • the output device 132 may also be an audio output device, such as stereo speakers or other audio output device.
  • a user may use the input device 130 to communicate with the resource requirement processor 116 , the resource selector 118 , or the resource allocation processor 124 .
  • a user may also use the input device 130 to communicate with the demand request/resource allocation database 122 or the resource database 120 .
  • a user may manually modify the entries of the demand request/resource allocation database 122 or the entries of the resource database 120 . Modification by a user may include creating, deleting, editing, or other modifications.
  • the output device 132 may provide feedback to the user for commands the user provides to the system 102 .
  • the output device 132 may also provide feedback as to the results of allocating a resource to a demand request.
  • the output device 132 may provide feedback as to a successful allocation.
  • the output device 132 could also provide feedback as to an unsuccessful allocation. Other types of feedback may also be possible.
  • FIG. 2 is a flowchart of an example for allocating resources to demand requests.
  • a system 102 receives a demand for resources (Act 202 ).
  • the demand for resources may be received as a demand request from a client 104 .
  • the system 102 selects the resources that satisfy the demand request (Act 204 ).
  • the system 102 then transmits results of allocating the selected resources (Act 206 ).
  • FIG. 3 is a flowchart of an example of selecting resources to satisfy the resource requirements of the demand request.
  • the system 102 identifies the resource requirements of the demand request (Act 302 ).
  • the system 102 may use the resource requirement processor 116 to identify the resource requirements of the demand request.
  • the resource requirement processor 116 may communicate with the resource selector 118 via the communication processor 114 to select the resources that satisfy the resource requirements.
  • the resource selector 118 communicates with the resource database 120 to receive a set of all available resources (Act 304 ).
  • the resource selector 118 may then filter the resource set received from the resource database 120 for those resources that satisfy the resource requirements of the demand request (Act 306 ).
  • the resource selector 118 determines whether the filtering of the resource set was successful (Act 308 ). For example, the resource selector 118 may determine whether any of the resources of the resource database 120 are able to satisfy the resource requirements of the demand request. In another embodiment, the resource selector 118 may determine whether a group of resources are able to satisfy the resource requirements of the demand request. If the resource selector 118 is unable to choose a resource or a group of resources that satisfy the resource requirements of the demand request, the resource selector 118 may employ branching logic to produce an error. For example, the resource selector 118 may communicate with the communication processor 114 to output a message indicating that there was an unsuccessful selection of resources (Act 310 ).
  • the error message indicating an unsuccessful selection may be sent to the output device 132 .
  • the error message indicating an unsuccessful selection may also be sent to the client 104 of the demand request via the communication processor 114 .
  • Other actions other than sending an error message based on an unsuccessful selection may also be possible.
  • the resource selector 118 may determine that a resource or group of resources satisfies the resource requirements of the demand request. If the resource selector 118 makes this determination, the resource selector 118 then communicates with the resource allocation processor 114 to allocate the resource or resources that satisfy the resource requirements of the demand request (Act 312 ). The resource allocation processor 124 then proceeds to allocate the resource or resources selected by the resource selector 118 . The resource allocation processor 124 may determine whether there was a successful allocation of resources (Act 314 ). If the resource allocation processor 124 determines that there was an unsuccessful allocation, the resource allocation processor 124 may send an error message to the communication processor 114 . The communication processor 114 may send an error message indicating an unsuccessful allocation to the client 104 via the communication interface 112 . The communication processor 114 may also send an error message indicating an unsuccessful allocation to the output device 132 via the output interface 128 .
  • the resource allocation processor 124 could also send an output indicating a successful allocation of resources that satisfy the resource requirements of the demand request (Act 316 ).
  • the resource allocation processor 124 could send a message indicating a successful allocation to the communication processor 114 .
  • the communication processor 114 could then send a success message to the client 104 via the communication interface 112 .
  • the communication processor 114 could also send a success message to the output device 132 via the output interface 128 .
  • the system 102 could then transmit the result of allocating the resources by the resource allocation processor 124 (Act 206 ).
  • FIG. 4A is a flowchart of an example of allocating currently available resources to the demand request.
  • the resource allocation processor 124 receives a filtered set of resources from the resource selector 118 (Act 402 ). The resource allocation processor 124 then queries the demand request/resource allocation database 122 to determine if there are current resources available to satisfy the resource requirements of the demand request (Act 404 ). If the resource allocation processor 124 determines that there are no current resources available, the resource allocation processor 124 may then query the demand request/resource allocation database to determine whether a future resource satisfies the resource requirements may become available. However, if the resource allocation processor 124 determines that a current resource is able to satisfy the resource requirements of the demand request, the resource allocation processor 124 selects a current resource satisfying the resource requirements of the demand request (Act 406 ).
  • resource allocation processor 124 determines whether the selected current resource is hard-locked (Act 408 ). For example, the resource allocation processor 124 may query the demand request/resource allocation database 122 to make this determination, such as by examining the locking identifier associated with the selected resource. The resource allocation processor 124 could also query the resource database 120 to make this determination. If the resource allocation processor 124 determines that the selected current resource is hard-locked, the resource allocation processor 124 may select another resource. However, if the resource allocation processor 124 determines that the selected current resource is not hard-locked, then the resource allocation processor 124 may determine whether the selected current resource is soft-locked (Act 410 ).
  • the resource allocation processor 124 may determine that the selected current resource is soft-locked. If the resource allocation processor 124 makes this determination, the resource allocation processor 124 may query the previously allocated demand request to satisfy the locking prerequisite of the selected current resource (Act 412 ). For example, the resource allocation processor 124 may communicate with the client of the previously allocated demand request via the communication processor 114 and communication link 110 . In an alternative embodiment, the client may provide information that allows the resource allocation processor 124 to automatically determine whether the client of the previously allocated demand request can satisfy the locking prerequisite of the selected current resource. If the client of the previously allocated demand request can satisfy the locking prerequisite of the selected current resource, the resource allocation processor 124 may hard-lock the current resource to the previously allocated demand request (Act 414 ). For example, the resource allocation processor 124 may assign a locking identifier that identifies the selected current resource as hard-locked to the previously allocated demand request. The resource allocation processor 124 may then proceed to allocate another current resource (Act 404 ).
  • the client of the previous demand request may not be able to satisfy the locking prerequisite of the selected current resource. If the client of the previous demand request is unable to satisfy the locking prerequisite, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite (Act 416 ). If the client of the current demand request is unable to satisfy the locking prerequisite of the soft-locked current resource, the resource allocation processor 124 may proceed to allocate another current resource (Act 404 ). If however, the client of the current demand request can satisfy the locking prerequisite of the current resource, the resource allocation processor 124 may proceed to reassign the selected current resource to the client of the current demand request (Act 418 ). For example, the resource allocation processor 124 may remove the soft-locked locking identifier associated with the selected current resource and the previously allocated demand request. The resource allocation processor 124 then hard-locks the selected current resource to the current demand request (Act 420 ), such as by assigning a hard-locked locking identifier to the selected current resource in the demand request/resource allocation database 122 .
  • the resource allocation processor 124 may determine that the selected current resource is not soft-locked (Act 410 ). If the resource allocation processor 124 determines that the selected current resource is not soft-locked, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite of the selected current resource (Act 422 ). In an alternative embodiment, the resource allocation processor 124 may not query the client of the current demand request, such as where the client has previously provided information as to whether the client can satisfy the locking prerequisite of the resources of the system 102 . If the client of the current demand request is able to satisfy the locking prerequisite of the selected current resource, the resource allocation processor 124 may then hard-lock the selected current resource to the current demand request (Act 420 ). The resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request have been satisfied (Act 426 ).
  • the resource allocation processor 124 may then soft-lock the selected current resource to the current demand request (Act 424 ). For example, the resource allocation processor 124 may assign a soft-lock locking identifier to the current resource and update the demand request/resource allocation database 122 accordingly. After the resource allocation processor 124 has assigned a soft-locked locking identifier to the selected current resource, the resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request has been satisfied (Act 426 ).
  • the resource allocation processor 124 may compare the information associated with the selected current resource stored by the resource database 120 with the resource requirements of the current demand request. If the resource allocation processor 124 determines that not all of the resource requirements of the demand request are satisfied, the resource allocation processor 124 may proceed to allocate another current resource (Act 404 ). It is also possible that the resource allocation processor 124 proceeds to select a later available future resource to satisfy the resource requirements of the current demand request (See FIG. 4C ).
  • the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of the resources that have satisfied the resource requirements of the demand request (Act 428 ). In another embodiment, the resource allocation processor 124 may allow the client of the current demand request to select specific resources if more than one resource satisfies the resource requirements of the demand request.
  • FIG. 4B is a flowchart of an alternative example of allocating a current resource or resources to a current demand request.
  • the resource allocation processor 124 may proceed to conflict resolution (Act 430 ) if the client of the current demand request cannot satisfy the locking prerequisite of the selected current resource (Act 416 ).
  • the resource allocation processor 124 may take into account the resource requirements of the current demand and the resource requirements of the previous demand. Based on the comparison analysis, the resource allocation processor 124 may determine whether the current resource should be allocated as a soft-locked allocation to the current demand or whether the current resource should be allocated as a soft-locked allocation to the previous demand.
  • the resource allocation processor 124 may determine that the current demand request has a higher priority than the previous demand request. In another example, the resource allocation processor 124 may determine that the current demand request has less resource requirements than the previous demand request. Other types of conflict resolutions are also possible.
  • the resource allocation processor 124 After performing conflict resolution between the current demand request and the previous demand request, the resource allocation processor 124 then determines whether the conflict resolution was successful (Act 432 ). In one embodiment, the resource allocation processor 124 may send a conflict resolution message to the communications processor 114 . The communication processor 114 may then send this conflict resolution message to the client of the current demand request and/or the client of the previous demand request. The communication processor 114 could also send the conflict resolution message to the output device 132 via the output interface 120 .
  • the resource allocation processor 124 may then proceed to select another current resource (Act 404 ). If the resource allocation processor 124 determines that the conflict resolution was successful, such as where the selected current resource should be reallocated to the current demand request as a soft-locked allocation, the resource allocation processor 124 then proceeds to determine whether the resource requirements of the current demand request were satisfied (Act 426 ). If the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of resources that satisfy the resource requirements (Act 428 ).
  • the resource allocation processor 124 may then proceed to select another current resource (Act 404 ). In one embodiment, if the resource allocation processor 124 determines that there are no current resources available (Act 404 ), the resource allocation processor 124 may then proceed to select future resources that may become available that satisfy the resource requirements of the current demand request.
  • FIG. 4C is a flowchart of an example of allocating future resources to a demand request continuing from FIG. 4A , or alternatively, FIG. 4B .
  • the resource selector 118 may query the demand request/resource allocation database 122 to select future resources that may become available that satisfy the demand requirements of the received demand request. Based on the future resources selected by the resource selector 118 , the resource allocation processor 124 would then proceed to allocate future resources to the demand request in conjunction with, or alternatively to, allocating current resources to the demand request. As shown in FIG. 4C and with reference to FIG. 1 , the resource allocation processor 124 determines whether there will be future resources available (Act 440 ).
  • the resource allocation processor 124 may query the demand request/resource allocation database 122 based on the list of resources communicated by the resource selector 118 to determine whether a future resource may become available at a future time. If the resource allocation processor 124 determines that there are no future resources available (Act 440 ), the resource allocation processor 124 may generate an error indicating that the resource requirements cannot be satisfied (Act 470 ). This error message could be communicated to the client of the current demand request via the communication processor 114 . This error message could also be communicated to the output device 132 via the communication processor 114 .
  • the resource allocation processor 124 could determine that a future resource will become available. In this case, the resource allocation processor 124 selects a future resource that satisfies a resource requirement or resource requirements of the demand request (Act 442 ). The resource allocation processor 124 then proceeds to determine whether the selected future resource is hard-locked (Act 444 ). If the resource allocation processor 124 determines that the selected future resource is hard-locked, the resource allocation processor 124 may then proceed to determine whether another future resource is available (Act 440 ).
  • the resource allocation processor 124 may determine whether the selected future resource is soft-locked (Act 446 ). The resource allocation processor 124 may determine that the selected future resource is soft-locked. If the resource allocation processor 124 makes this determination, the resource allocation processor 124 may query the previously allocated demand request to satisfy the locking prerequisite of the selected future resource (Act 448 ). If the client of the previous allocated demand request can satisfy the locking prerequisite of the selected future resource, the resource allocation processor 124 may hard-lock the future resource to the previously allocated demand request (Act 450 ). The resource allocation processor 124 may then proceed to allocate another future resource (Act 440 ).
  • the client of the previous demand request may not be able to satisfy the locking prerequisite of the selected future resource. If the client of the previous demand request is unable to satisfy the locking prerequisite, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite (Act 452 ). If the client of the current demand request is unable to satisfy the locking prerequisite of the soft-locked future resource, the resource allocation processor 124 may then proceed to allocate another future resource (Act 440 ). If however, the client of the current demand request is able to satisfy the locking prerequisite of the future resource, the resource allocation processor 124 may then proceed to reassign the selected future resource to the client of the current demand request (Act 454 ). The resource allocation processor 124 then hard-locks the selected future resource to the current demand request (Act 456 ).
  • the resource allocation processor 124 may determine that the selected future resource is not soft-locked (Act 446 ). If the resource allocation processor 124 determines that the selected future resource is not soft-locked, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite of the selected future resource (Act 458 ). In an alternative embodiment, the resource allocation processor 124 may not have to query the client of the current demand request, such as where the client has previously provided information as to whether the client can satisfy the locking prerequisite of the resources of the system 102 . If the client of the current demand request is able to satisfy the locking prerequisite of the selected future resource, the resource allocation processor 124 may then hard-lock the selected future resource to the current demand request (Act 456 ). The resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request have been satisfied (Act 466 ).
  • the resource allocation processor 124 may then soft-lock the selected future resource to the current demand request (Act 460 ). The resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request have been satisfied (Act 466 ).
  • the resource allocation processor 124 may compare the information associated with the selected future resource stored by the resource database 120 with the resource requirements of the current demand request. If the resource allocation processor 124 determines that not all of the resource requirements of the demand request are satisfied, the resource allocation processor 124 may proceed to allocate another future resource (Act 440 ).
  • the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of the resources that satisfy the resource requirements of the demand request (Act 468 ).
  • the generated resource set may include future resources that will become available, current resources that are available, or a combination thereof.
  • the resource allocation processor 124 may allow the client of the current demand request to select specific resources if more than one resource satisfies the resource requirements of the demand request.
  • FIG. 4D is a flowchart of an alternative example of allocating a future resource or resources to a current demand request.
  • the resource allocation processor 124 may proceed to conflict resolution (Act 472 ) if the client of the current demand request cannot satisfy the locking prerequisite of the selected future resource (Act 453 ).
  • the resource allocation processor 124 may take into account the resource requirements of the current demand and the resource requirements of the previous demand. Based on the comparison analysis, the resource allocation processor 124 may determine whether the future resource should be allocated as a soft-locked allocation to the current demand or whether the future resource should be allocated as a soft-locked allocation to the previous demand.
  • the resource allocation processor 124 may determine that the current demand request has a higher priority than the previous demand request. In another example, the resource allocation processor 124 may determine that the current demand request has less resource requirements than the previous demand request. Other types of conflict resolutions are also possible.
  • the resource allocation processor 124 After performing conflict resolution between the current demand request and the previous demand request, the resource allocation processor 124 then determines whether the conflict resolution was successful (Act 474 ). In one embodiment, the resource allocation processor 124 may send a conflict resolution message to the communications processor 114 . The communication processor 114 may then send this conflict resolution message to the client of the current demand request and/or the client of the previous demand request. The communication processor 114 could also send the conflict resolution message to the output device 132 via the output interface 120 . If the resource allocation processor 124 determines that the conflict resolution was not successful such that the selected future resource should remain soft-locked to the previous demand request, the resource allocation processor 124 may then proceed to select another future resource (Act 440 ).
  • the resource allocation processor 124 determines that the conflict resolution was successful, such as where the selected future resource should be reallocated to the current demand request as a soft-locked allocation, the resource allocation processor 124 then proceeds to determine whether the resource requirements of the current demand request were satisfied (Act 466 ). If the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of the resources that satisfied the resource requirements (Act 468 ). However, if the resource allocation processor 124 determines that not all of the resource requirements were satisfied, the resource allocation processor 124 may then proceed to select another future resource (Act 440 ).

Abstract

A system for allocating resources to demand requests is set forth. The system is configured to identify a set of resource requirements based on a demand request. The system is also configured to choose a resource that satisfies at least one of the identified resource requirements. The system is further configured to allocate the selected resource to the demand request based on whether a client can satisfy a locking prerequisite associated with the selected resource.

Description

  • This application claims priority under 35 U.S.C. § 119 to Indian Patent Application No. 1334/MUM/1006 filed Aug. 24, 2006, the entire content of which is hereby incorporated by reference.
  • FIELD OF THE INVENTION
  • The technical field relates to resource allocation, and in particular, to allocating resources based on resource requirements determined from a demand request.
  • RELATED ART
  • Business centers have seen explosive growth over the last several years, for example, from having no available resources to tens of thousands of resources. This growth can span across multiple locations, facilities, skills and employment pyramid levels. The pace of growth and its resulting complexity requires planning, effective management of staffing, and knowledgeable utilization of resources. The demand for resources at these business centers is typically lumpy in nature and has extremely short lead times for fulfillment. Currently, there is a problem in managing and effectively using resources in businesses employing complex categorizations of resources.
  • SUMMARY OF THE INVENTION
  • A system for allocating resources to demand requests is set forth. The system includes a resource requirement processor, which may identify a set of resource requirements associated with a demand request. The system also includes a resource selector. The resource selector may select a resource that satisfies at least one of the resource requirements from the set of resource requirements identified by the resource requirement processor. The system further includes a communication processor that is capable of receiving a response from a client indicating whether a client can satisfy a locking prerequisite associated with the selected resource. The system additionally includes a resource allocation processor that allocates the selected resource to the demand request based on the response received by the communication processor.
  • Other systems, methods, features and advantages of the invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
  • FIG. 1 is a block diagram of an example of a system for allocating resources to a demand request.
  • FIG. 2 is a flowchart of an example for allocating resources to a demand request.
  • FIG. 3 is a flowchart of an example of selecting resources that satisfy the demand request received from FIG. 2.
  • FIG. 4A is a flowchart of an example of allocating currently available resources to the demand request received from FIG. 2.
  • FIG. 4B is a flowchart of an alternative example of allocating currently available resources to the demand request received from FIG. 2.
  • FIG. 4C is a flowchart of an example of allocating future resources to the demand request received from FIG. 2.
  • FIG. 4D is a flowchart of an alternative example of allocating future resources to the demand request received from FIG. 2.
  • DETAILED DESCRIPTION
  • As shown in FIG. 1, a system for assigning resources to demand requests 102 may include a communication interface 112 coupled with a communication processor 114. The system 102 may also include a resource requirement processor 116 and a resource selector 118 coupled with the communication processor 114. A demand request/resource allocation database 122 and a resource allocation processor 124 may be coupled with the resource selector 118. A resource database 120 is also coupled with the resource selector 118.
  • In one embodiment, the system 102 includes an input interface 126 and an output interface 128 coupled with the communication processor 114. An input device 130 is coupled with the input interface 126 and an output device 132 is coupled with the output interface 128.
  • As shown in FIG. 1, clients 104/106/108 send demand requests to the system 102 using a communication link 110. The communication link 110 may be a wired or wireless link, such as a packet-network, a circuit-switched network, or a combination thereof. Clients 104/106/108 may communicate directly with the system 102, such as using Ethernet, or indirectly, such as using a modem to communicate with an Internet service provider (ISP), which then communicates with the system 102. The system 102 may reside on any one of clients 104/106/108. The system 102 may also reside on all three of the clients 104/106/108.
  • A client 104 communicates with the system for assigning resources to demand requests 102 using a communication interface 112. The communication interface 112 may be a serial or parallel interface. The communication interface 112 may also be a Universal Serial Bus (USB) interface. In another embodiment, the communication interface 112 is an Ethernet interface. In yet another embodiment, the communication interface 112 is an IEEE 1394 (FireWire) interface. In a further embodiment, the communication interface 112 is a SCSI interface. The communication interface 112 may also be an IDE interface.
  • The communication interface 112 is coupled with a communication processor 114. The communication interface 112 may be coupled directly or indirectly with the communication processor 114. The communication interface 112 may be directly coupled with the communication processor 114, such that there are no intermediate components between the communication interface 112 and the communication processor 114. It is also possible that the communication interface 112 is coupled indirectly with the communication processor 114, such that the communication interface 112 communicates with the communication processor 114 through other components or systems.
  • The communication processor 114 of the system 102 may be configured to process demand requests received from the client 104 using communication interface 112. In one embodiment the communication processor 114 is a hardware-implemented processor, such as a processor implemented as a complex instruction set computer (CISC), as a processor implemented as a reduced instruction set computer (RISC), or as a combination thereof. In another embodiment, the communication processor 114 is a software-implemented processor written using a computer programming language such as C, Java, ASP.NET, in another computer programming language, or as a combination thereof. The communication processor 114 may be configured to facilitate communication between the components of the system 102, and between the components of the system 102 and the clients 104/106/108 in communication with the system 102.
  • When the system 102 receives a demand request from a client 104, the communication processor 114 may first process the demand request. The communication processor 114 may transmit the demand request to the resource requirement processor 116. In one embodiment, the resource requirement processor 116 is a hardware-implemented processor, such as a processor implemented as a complex instruction set computer (CISC), as a processor implemented as a reduced instruction set computer (RISC), or as a combination thereof. In another embodiment, the communication processor 114 is a software-implemented processor written using a computer programming language such as C, Java, ASP.NET, in another computer programming language, or as a combination thereof.
  • The resource requirement processor 116 may be configured to determine the resource requirements associated with the demand request. In one embodiment, the resource requirement processor 116 determines that one of the resource requirements is a technical skill requirement. For example, the resource requirement processor 116 may determine that a particular skill, such as being able to program in a programming language or being able to perform a complex job is required. In another embodiment, the resource requirement processor 116 determines that a resource requirement of the demand request is a travel availability requirement. For example, the resource requirement processor 116 may determine that being able to travel to another country is a requirement. The resource requirement processor 116 could also determine that being able to travel during a set period of time is required. In yet another embodiment, the resource requirement processor 116 determines that a resource requirement is a time availability requirement. For example, the resource requirement processor 116 may determine that a resource be available for specific set of time or duration, such as a period of days, weeks, months, or combination thereof. Other measurements of time are also possible.
  • After the resource requirement processor 116 has determined the requirements of the demand request received by the communication processor 114, the resource requirement processor 116 may then communicate with the resource selector 118 using the communication processor 114 to select resources that satisfy the requirements determined by the resource requirement processor 116. The resource selector 118 may be software stored in computer-readable memory on the system 102 and coupled with the communication processor 114. For example, the resource selector 118 may be written in a computer programming language, such as C, Java, or other programming language, and residing on a storage device, such as a hard drive, tape drive, or other storage device, and coupled with the communication processor 114. In another embodiment, the resource selector 118 may be implemented in hardware and coupled with the communication processor 114. For example, the resource selector 118 may be a processor implemented as a complex instruction set computer (CISC) or implemented as a reduced instruction set computer (RISC) to select the resources that satisfy the resource requirements of the demand request.
  • A shown in FIG. 1, the resource selector 118 is coupled with a resource database 120. In one embodiment, the resource database may be a software-implemented database that stores information associated with each of the resources available to the system 102. The resource database 120 may reside on the same system as the resource selector 118, or the resource database 120 may reside on another system coupled to the resource selector 102. For example the resources available to the system 102 may be human resources, such as workers, staff, or other employed persons, and the resource database 120 may store information associated with each of the employed persons. As another example, the resources available to the system 102 may be computer resources, such as software, hardware, or combinations thereof. In yet another example, the resources available to the system 102 may be general resources, including persons, places, or tools, that were previously catalogued and had information associated with them stored in the resource database 120.
  • In one embodiment, the information associated with the resources and stored by the resource database 120 may be personal information. For example, the resource database 120 may store information about the particular skill sets of a person, such as languages spoken, programming languages known, educational level, or other skill-related information. In another embodiment, the resource database 120 may store travel-related information about the resources. For example, travel-related information may include whether resources, such as employees, have passports or visas, have traveled outside a particular country or region, or are available to travel. Other travel-related information is also possible.
  • In yet another embodiment, the resource database 120 may store electrical information about the resources, if the resources satisfy electrical requirements. For example, the resources may be generators, and the resource database 120 may store information about how much output the generators produce. As yet another embodiment, the resource database 120 may store software-related information about the resources, if the resources satisfy software related requirements. For example, client 104 may need software that meets a particular need, such as a program that can act as a word processor. Other software-related information may include, but is not limited to, running a particular operating system, whether the resource can perform certain tasks, or whether the resource can behave in a desired fashion.
  • The resource database 120 may also store information representing a “locking prerequisite.” A locking prerequisite may be a prerequisite that a client 104 has to satisfy before a resource will be hard-locked to a demand request. In one embodiment, the locking prerequisite may be a financial prerequisite. For example, the financial prerequisite may require that the client 104 pay a certain amount of money before the resource is allocated to the demand request of the client 104. In another embodiment, the locking prerequisite may be an availability prerequisite. For example, the availability prerequisite may require that the client 104 make available to the resource a desired thing, such as a visa, a particular piece of hardware, or a particular location. The availability prerequisite could also be a temporal prerequisite, such as that the client 104 may only reserve the resource for the demand request for a particular amount of time.
  • If the client 104 is able to satisfy the locking prerequisite, then the resource will be allocated to the demand request of the client 104 as a hard-locked allocation. A resource that is hard-locked to a demand request will not be assignable to a future demand request even if the resource is capable of satisfying the future demand request. However, if the client 104 is unable to satisfy the locking prerequisite, the resource may be assigned to the demand request of the client 104 as a soft-lock allocation. If a resource is assigned to a client 104 as a soft-lock allocation, the resource may be re-assignable to another demand request of another client 106 if the other client 106 is able to satisfy the locking prerequisite of the resource.
  • After the resource selector 118 has received a set of resource requirements from the resource requirement processor 116, the resource selector 118 then queries the resource database 120. In one embodiment, the resource selector 118 queries the resource database 120 to receive a set of all available resources to the system 102. In another embodiment, the resource selector 118 queries the resource database 120 for a set of all resources accessible by the system 102, whether the resources are available or not. Availability may be determined based on whether the resource was previously allocated to another demand request or client, or availability may be based on whether the system 102 has access to the resource. For example, the resource selector 118 may query the demand request/resource allocation database 122 to determine which resources are currently allocated from the resources of the resource database 120.
  • After the resource selector 118 has received a set of available resources from the resource database 120, the resource selector 118 then selects the resources that satisfy the requirements determined by the resource requirement processor 116. For example, the resource selector 118 may filter the resources of the resource set sent by the resource database 120 based on the requirements determined by the resource requirement processor 116. In one embodiment, a requirement of the demand request might be that the resource be available to travel for a period of three weeks, in which case, the resource selector 118 would choose a resource that is available to travel for those three weeks. In another embodiment, the requirement of the demand request might be that a resource have a certain programming skill level, in which case the resource selector 118 would then choose a resource that satisfies the programming skill. It is also possible that the demand request has multiple requirements, in which case the resource selector 118 would then select the resource or resources that satisfy each of the requirements identified by the resource requirement processor 116. The resource selector 118 may also select multiple resources that satisfy the same resource requirement of the demand request.
  • After the resource selector 118 has selected the resource or resources that satisfy the requirements identified by the resource requirement processor 116, the resource selector 118 may then communicate with the resource allocation processor 124 to allocate the resources to a client 104. In one embodiment, the resource allocation processor is a processor implemented as a complex instruction set computer (CISC). In another embodiment, the resource allocation processor is a processor implemented as a reduced instruction set computer (RISC). It is also possible that the resource allocation processor 124 is implemented using a computer language, such as C, Java, or other programming language, or combination thereof. The resource allocation processor 124 may reside on the same system as the resource selector 118, or the resource allocation processor 124 may reside on another system.
  • To allocate a resource to a client 104, the resource allocation processor 124 may query the demand request/resource allocation database 122 to determine which resources are currently allocated from the resources of the resource set sent by the resource selector 118. In one embodiment, the resource allocations processor 124 may query the client 104 via the communication processor 114 to choose a resource for allocation. In another embodiment, the resource allocation processor 124 may choose a resource automatically for allocation. The resource allocation processor 124 may choose a resource that is not currently allocated from the resource set sent by the resource selector 118. If the resource allocation processor 124 chooses a resource that is not currently allocated from the resource set, the resource allocation processor 124 may communicate with the client 104 using the communication processor 114 to determine whether the client 104 can satisfy the locking prerequisite of the resource selected by the resource allocation processor 124. Once the resource allocation processor 124 has determined whether the client 104 can satisfy the locking prerequisite of the resource, the resource allocation processor 124 updates the demand request/resource allocation database 122 accordingly. In one embodiment, the resource allocation processor 124 may update or provide a locking identifier that identifies whether the resource allocated by the resource allocation processor 124 is allocated to the demand request as a soft-locked allocation or as a hard-locked allocation. The resource allocation processor 124 may also communicate with the resource database 120 or the demand request/resource allocation database 122 to update and/or modify either database.
  • Alternatively, resource allocation processor 124 may choose a resource that is currently allocated to another demand request. For example, the system 102 may have received a demand request from a client 106, and the resource chosen by the allocation processor 124 that satisfies the requirements of the demand request received from the client 106. However, the resource chosen by the resource allocation processor 124 may be currently allocated to the client 104. If the resource chosen by the resource allocation processor 124 satisfies the requirements of the demand request sent by the client 106, but the resource is currently allocated to the client 104, the system 102 may query the client 104 to satisfy the locking prerequisite of the resource soft-locked to the client 104. If the resource is soft-locked to the client 104, and the client 104 is unable to satisfy the locking prerequisite of the resource after being queried by the system 102, then the system 102 may query the other client 106 to satisfy the locking prerequisite.
  • Further shown in FIG. 1, is an input interface 126 and an output interface 128 coupled with the communication processor 114. The input interface 126 may be an audio interface, such as a microphone input, a tactile input interface, such as USB, an AT interface, a PS/2 interface, or a wireless interface, such as infrared, Bluetooth, are other radio transmission interface. Other input interfaces may also be possible. The output interface 128 may be a visual output interface, such as a DVI interface, a VGA interface, or other graphical interface. The output interface 128 may be an audio output interface, such as a stereo output interface or other audio output interface. Coupled to the input interface 126 is an input device 130. The input device 130 may be tactile input device, such as a keyboard, mouse, or other tactile input device, or the input device 130 may be an audio input device, such as a microphone, headset, or other audio input device. The output device 132 may be a visual output device, such as a CRT monitor, LCD monitor, or other visual output device. The output device 132 may also be an audio output device, such as stereo speakers or other audio output device.
  • A user may use the input device 130 to communicate with the resource requirement processor 116, the resource selector 118, or the resource allocation processor 124. A user may also use the input device 130 to communicate with the demand request/resource allocation database 122 or the resource database 120. For example, a user may manually modify the entries of the demand request/resource allocation database 122 or the entries of the resource database 120. Modification by a user may include creating, deleting, editing, or other modifications. The output device 132 may provide feedback to the user for commands the user provides to the system 102. The output device 132 may also provide feedback as to the results of allocating a resource to a demand request. For example, the output device 132 may provide feedback as to a successful allocation. The output device 132 could also provide feedback as to an unsuccessful allocation. Other types of feedback may also be possible.
  • FIG. 2 is a flowchart of an example for allocating resources to demand requests. As shown in FIG. 2 with reference to FIG. 1, a system 102 receives a demand for resources (Act 202). The demand for resources may be received as a demand request from a client 104. The system 102 then selects the resources that satisfy the demand request (Act 204). The system 102 then transmits results of allocating the selected resources (Act 206).
  • FIG. 3 is a flowchart of an example of selecting resources to satisfy the resource requirements of the demand request. As shown in FIG. 3 with reference to FIG. 1, the system 102 identifies the resource requirements of the demand request (Act 302). The system 102 may use the resource requirement processor 116 to identify the resource requirements of the demand request. After the resource requirement processor 116 has determined the resource requirements of the demand request, the resource requirement processor 116 may communicate with the resource selector 118 via the communication processor 114 to select the resources that satisfy the resource requirements. In one embodiment, the resource selector 118 communicates with the resource database 120 to receive a set of all available resources (Act 304). The resource selector 118 may then filter the resource set received from the resource database 120 for those resources that satisfy the resource requirements of the demand request (Act 306).
  • As shown in FIG. 3 with reference to FIG. 1, the resource selector 118 determines whether the filtering of the resource set was successful (Act 308). For example, the resource selector 118 may determine whether any of the resources of the resource database 120 are able to satisfy the resource requirements of the demand request. In another embodiment, the resource selector 118 may determine whether a group of resources are able to satisfy the resource requirements of the demand request. If the resource selector 118 is unable to choose a resource or a group of resources that satisfy the resource requirements of the demand request, the resource selector 118 may employ branching logic to produce an error. For example, the resource selector 118 may communicate with the communication processor 114 to output a message indicating that there was an unsuccessful selection of resources (Act 310). The error message indicating an unsuccessful selection may be sent to the output device 132. The error message indicating an unsuccessful selection may also be sent to the client 104 of the demand request via the communication processor 114. Other actions other than sending an error message based on an unsuccessful selection may also be possible.
  • Alternatively, the resource selector 118 may determine that a resource or group of resources satisfies the resource requirements of the demand request. If the resource selector 118 makes this determination, the resource selector 118 then communicates with the resource allocation processor 114 to allocate the resource or resources that satisfy the resource requirements of the demand request (Act 312). The resource allocation processor 124 then proceeds to allocate the resource or resources selected by the resource selector 118. The resource allocation processor 124 may determine whether there was a successful allocation of resources (Act 314). If the resource allocation processor 124 determines that there was an unsuccessful allocation, the resource allocation processor 124 may send an error message to the communication processor 114. The communication processor 114 may send an error message indicating an unsuccessful allocation to the client 104 via the communication interface 112. The communication processor 114 may also send an error message indicating an unsuccessful allocation to the output device 132 via the output interface 128.
  • However, the resource allocation processor 124 could also send an output indicating a successful allocation of resources that satisfy the resource requirements of the demand request (Act 316). For example, the resource allocation processor 124 could send a message indicating a successful allocation to the communication processor 114. The communication processor 114 could then send a success message to the client 104 via the communication interface 112. The communication processor 114 could also send a success message to the output device 132 via the output interface 128. Referring back to FIG. 2, the system 102 could then transmit the result of allocating the resources by the resource allocation processor 124 (Act 206).
  • FIG. 4A is a flowchart of an example of allocating currently available resources to the demand request. As shown in FIG. 4A with reference to FIG. 1, the resource allocation processor 124 receives a filtered set of resources from the resource selector 118 (Act 402). The resource allocation processor 124 then queries the demand request/resource allocation database 122 to determine if there are current resources available to satisfy the resource requirements of the demand request (Act 404). If the resource allocation processor 124 determines that there are no current resources available, the resource allocation processor 124 may then query the demand request/resource allocation database to determine whether a future resource satisfies the resource requirements may become available. However, if the resource allocation processor 124 determines that a current resource is able to satisfy the resource requirements of the demand request, the resource allocation processor 124 selects a current resource satisfying the resource requirements of the demand request (Act 406).
  • After the resource allocation processor 124 has selected a current resource, resource allocation processor 124 determines whether the selected current resource is hard-locked (Act 408). For example, the resource allocation processor 124 may query the demand request/resource allocation database 122 to make this determination, such as by examining the locking identifier associated with the selected resource. The resource allocation processor 124 could also query the resource database 120 to make this determination. If the resource allocation processor 124 determines that the selected current resource is hard-locked, the resource allocation processor 124 may select another resource. However, if the resource allocation processor 124 determines that the selected current resource is not hard-locked, then the resource allocation processor 124 may determine whether the selected current resource is soft-locked (Act 410).
  • The resource allocation processor 124 may determine that the selected current resource is soft-locked. If the resource allocation processor 124 makes this determination, the resource allocation processor 124 may query the previously allocated demand request to satisfy the locking prerequisite of the selected current resource (Act 412). For example, the resource allocation processor 124 may communicate with the client of the previously allocated demand request via the communication processor 114 and communication link 110. In an alternative embodiment, the client may provide information that allows the resource allocation processor 124 to automatically determine whether the client of the previously allocated demand request can satisfy the locking prerequisite of the selected current resource. If the client of the previously allocated demand request can satisfy the locking prerequisite of the selected current resource, the resource allocation processor 124 may hard-lock the current resource to the previously allocated demand request (Act 414). For example, the resource allocation processor 124 may assign a locking identifier that identifies the selected current resource as hard-locked to the previously allocated demand request. The resource allocation processor 124 may then proceed to allocate another current resource (Act 404).
  • The client of the previous demand request may not be able to satisfy the locking prerequisite of the selected current resource. If the client of the previous demand request is unable to satisfy the locking prerequisite, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite (Act 416). If the client of the current demand request is unable to satisfy the locking prerequisite of the soft-locked current resource, the resource allocation processor 124 may proceed to allocate another current resource (Act 404). If however, the client of the current demand request can satisfy the locking prerequisite of the current resource, the resource allocation processor 124 may proceed to reassign the selected current resource to the client of the current demand request (Act 418). For example, the resource allocation processor 124 may remove the soft-locked locking identifier associated with the selected current resource and the previously allocated demand request. The resource allocation processor 124 then hard-locks the selected current resource to the current demand request (Act 420), such as by assigning a hard-locked locking identifier to the selected current resource in the demand request/resource allocation database 122.
  • Alternatively, the resource allocation processor 124 may determine that the selected current resource is not soft-locked (Act 410). If the resource allocation processor 124 determines that the selected current resource is not soft-locked, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite of the selected current resource (Act 422). In an alternative embodiment, the resource allocation processor 124 may not query the client of the current demand request, such as where the client has previously provided information as to whether the client can satisfy the locking prerequisite of the resources of the system 102. If the client of the current demand request is able to satisfy the locking prerequisite of the selected current resource, the resource allocation processor 124 may then hard-lock the selected current resource to the current demand request (Act 420). The resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request have been satisfied (Act 426).
  • If the client of the current demand request is unable to satisfy the locking prerequisite of the selected current resource, the resource allocation processor 124 may then soft-lock the selected current resource to the current demand request (Act 424). For example, the resource allocation processor 124 may assign a soft-lock locking identifier to the current resource and update the demand request/resource allocation database 122 accordingly. After the resource allocation processor 124 has assigned a soft-locked locking identifier to the selected current resource, the resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request has been satisfied (Act 426).
  • In one embodiment, the resource allocation processor 124 may compare the information associated with the selected current resource stored by the resource database 120 with the resource requirements of the current demand request. If the resource allocation processor 124 determines that not all of the resource requirements of the demand request are satisfied, the resource allocation processor 124 may proceed to allocate another current resource (Act 404). It is also possible that the resource allocation processor 124 proceeds to select a later available future resource to satisfy the resource requirements of the current demand request (See FIG. 4C).
  • If the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of the resources that have satisfied the resource requirements of the demand request (Act 428). In another embodiment, the resource allocation processor 124 may allow the client of the current demand request to select specific resources if more than one resource satisfies the resource requirements of the demand request.
  • FIG. 4B is a flowchart of an alternative example of allocating a current resource or resources to a current demand request. In this alternative example and with reference to FIG. 1, the resource allocation processor 124 may proceed to conflict resolution (Act 430) if the client of the current demand request cannot satisfy the locking prerequisite of the selected current resource (Act 416). In one embodiment, the resource allocation processor 124 may take into account the resource requirements of the current demand and the resource requirements of the previous demand. Based on the comparison analysis, the resource allocation processor 124 may determine whether the current resource should be allocated as a soft-locked allocation to the current demand or whether the current resource should be allocated as a soft-locked allocation to the previous demand. For example, the resource allocation processor 124 may determine that the current demand request has a higher priority than the previous demand request. In another example, the resource allocation processor 124 may determine that the current demand request has less resource requirements than the previous demand request. Other types of conflict resolutions are also possible.
  • After performing conflict resolution between the current demand request and the previous demand request, the resource allocation processor 124 then determines whether the conflict resolution was successful (Act 432). In one embodiment, the resource allocation processor 124 may send a conflict resolution message to the communications processor 114. The communication processor 114 may then send this conflict resolution message to the client of the current demand request and/or the client of the previous demand request. The communication processor 114 could also send the conflict resolution message to the output device 132 via the output interface 120.
  • If the resource allocation processor 124 determines that the conflict resolution was not successful such that the selected current resource should remain soft-locked to the previous demand request, the resource allocation processor 124 may then proceed to select another current resource (Act 404). If the resource allocation processor 124 determines that the conflict resolution was successful, such as where the selected current resource should be reallocated to the current demand request as a soft-locked allocation, the resource allocation processor 124 then proceeds to determine whether the resource requirements of the current demand request were satisfied (Act 426). If the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of resources that satisfy the resource requirements (Act 428). However, if the resource allocation processor 124 determines that the resource requirements were not satisfied, the resource allocation processor 124 may then proceed to select another current resource (Act 404). In one embodiment, if the resource allocation processor 124 determines that there are no current resources available (Act 404), the resource allocation processor 124 may then proceed to select future resources that may become available that satisfy the resource requirements of the current demand request.
  • FIG. 4C is a flowchart of an example of allocating future resources to a demand request continuing from FIG. 4A, or alternatively, FIG. 4B. Referring again to FIG. 1, in one embodiment, the resource selector 118 may query the demand request/resource allocation database 122 to select future resources that may become available that satisfy the demand requirements of the received demand request. Based on the future resources selected by the resource selector 118, the resource allocation processor 124 would then proceed to allocate future resources to the demand request in conjunction with, or alternatively to, allocating current resources to the demand request. As shown in FIG. 4C and with reference to FIG. 1, the resource allocation processor 124 determines whether there will be future resources available (Act 440). For example, the resource allocation processor 124 may query the demand request/resource allocation database 122 based on the list of resources communicated by the resource selector 118 to determine whether a future resource may become available at a future time. If the resource allocation processor 124 determines that there are no future resources available (Act 440), the resource allocation processor 124 may generate an error indicating that the resource requirements cannot be satisfied (Act 470). This error message could be communicated to the client of the current demand request via the communication processor 114. This error message could also be communicated to the output device 132 via the communication processor 114.
  • Alternatively, the resource allocation processor 124 could determine that a future resource will become available. In this case, the resource allocation processor 124 selects a future resource that satisfies a resource requirement or resource requirements of the demand request (Act 442). The resource allocation processor 124 then proceeds to determine whether the selected future resource is hard-locked (Act 444). If the resource allocation processor 124 determines that the selected future resource is hard-locked, the resource allocation processor 124 may then proceed to determine whether another future resource is available (Act 440).
  • However, if the resource allocation processor 124 determines that the selected future resource is not hard-locked, then the resource allocation processor 124 may determine whether the selected future resource is soft-locked (Act 446). The resource allocation processor 124 may determine that the selected future resource is soft-locked. If the resource allocation processor 124 makes this determination, the resource allocation processor 124 may query the previously allocated demand request to satisfy the locking prerequisite of the selected future resource (Act 448). If the client of the previous allocated demand request can satisfy the locking prerequisite of the selected future resource, the resource allocation processor 124 may hard-lock the future resource to the previously allocated demand request (Act 450). The resource allocation processor 124 may then proceed to allocate another future resource (Act 440).
  • The client of the previous demand request may not be able to satisfy the locking prerequisite of the selected future resource. If the client of the previous demand request is unable to satisfy the locking prerequisite, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite (Act 452). If the client of the current demand request is unable to satisfy the locking prerequisite of the soft-locked future resource, the resource allocation processor 124 may then proceed to allocate another future resource (Act 440). If however, the client of the current demand request is able to satisfy the locking prerequisite of the future resource, the resource allocation processor 124 may then proceed to reassign the selected future resource to the client of the current demand request (Act 454). The resource allocation processor 124 then hard-locks the selected future resource to the current demand request (Act 456).
  • Alternatively, the resource allocation processor 124 may determine that the selected future resource is not soft-locked (Act 446). If the resource allocation processor 124 determines that the selected future resource is not soft-locked, the resource allocation processor 124 may query the client of the current demand request to satisfy the locking prerequisite of the selected future resource (Act 458). In an alternative embodiment, the resource allocation processor 124 may not have to query the client of the current demand request, such as where the client has previously provided information as to whether the client can satisfy the locking prerequisite of the resources of the system 102. If the client of the current demand request is able to satisfy the locking prerequisite of the selected future resource, the resource allocation processor 124 may then hard-lock the selected future resource to the current demand request (Act 456). The resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request have been satisfied (Act 466).
  • If the client of the current demand request is unable to satisfy the locking prerequisite of the selected future resource, the resource allocation processor 124 may then soft-lock the selected future resource to the current demand request (Act 460). The resource allocation processor 124 then proceeds to determine whether the resource requirements of the demand request have been satisfied (Act 466).
  • In one embodiment, the resource allocation processor 124 may compare the information associated with the selected future resource stored by the resource database 120 with the resource requirements of the current demand request. If the resource allocation processor 124 determines that not all of the resource requirements of the demand request are satisfied, the resource allocation processor 124 may proceed to allocate another future resource (Act 440).
  • If the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of the resources that satisfy the resource requirements of the demand request (Act 468). The generated resource set may include future resources that will become available, current resources that are available, or a combination thereof. In another embodiment, the resource allocation processor 124 may allow the client of the current demand request to select specific resources if more than one resource satisfies the resource requirements of the demand request.
  • FIG. 4D is a flowchart of an alternative example of allocating a future resource or resources to a current demand request. With reference to FIG. 1, in this alternative example of FIG. 4D, the resource allocation processor 124 may proceed to conflict resolution (Act 472) if the client of the current demand request cannot satisfy the locking prerequisite of the selected future resource (Act 453). In one embodiment, the resource allocation processor 124 may take into account the resource requirements of the current demand and the resource requirements of the previous demand. Based on the comparison analysis, the resource allocation processor 124 may determine whether the future resource should be allocated as a soft-locked allocation to the current demand or whether the future resource should be allocated as a soft-locked allocation to the previous demand. For example, the resource allocation processor 124 may determine that the current demand request has a higher priority than the previous demand request. In another example, the resource allocation processor 124 may determine that the current demand request has less resource requirements than the previous demand request. Other types of conflict resolutions are also possible.
  • After performing conflict resolution between the current demand request and the previous demand request, the resource allocation processor 124 then determines whether the conflict resolution was successful (Act 474). In one embodiment, the resource allocation processor 124 may send a conflict resolution message to the communications processor 114. The communication processor 114 may then send this conflict resolution message to the client of the current demand request and/or the client of the previous demand request. The communication processor 114 could also send the conflict resolution message to the output device 132 via the output interface 120. If the resource allocation processor 124 determines that the conflict resolution was not successful such that the selected future resource should remain soft-locked to the previous demand request, the resource allocation processor 124 may then proceed to select another future resource (Act 440). If the resource allocation processor 124 determines that the conflict resolution was successful, such as where the selected future resource should be reallocated to the current demand request as a soft-locked allocation, the resource allocation processor 124 then proceeds to determine whether the resource requirements of the current demand request were satisfied (Act 466). If the resource allocation processor 124 determines that the resource requirements of the current demand request are satisfied, the resource allocation processor 124 then proceeds to generate a resource set of the resources that satisfied the resource requirements (Act 468). However, if the resource allocation processor 124 determines that not all of the resource requirements were satisfied, the resource allocation processor 124 may then proceed to select another future resource (Act 440).
  • While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.

Claims (40)

1. A system for allocating resources to demand requests comprising:
resource requirement means for identifying at least a first resource requirement associated with a first demand request;
resource selector means coupled to the resource requirement means for selecting a resource that satisfies the at least first resource requirement associated with the first demand request;
communication means coupled with the resource selector means for receiving a first response from a first client indicating whether the first client is capable of satisfying at least one locking prerequisite associated with the selected resource; and,
resource allocation means coupled to the communication means for allocating the selected resource to the first demand request based on the first response received from the first client.
2. The system of claim 1, wherein:
the resource requirement means further identify at least a second resource requirement associated with a second demand request;
the resource selector means further select an allocated resource satisfying the at least second resource requirement associated with the second demand request;
the communication means further receive a second response from the first client indicating whether the first client is capable of satisfying at least one locking prerequisite associated with the allocated resource; and,
the resource allocation means further maintain the allocation of the allocated resource to the first demand request where the received second response indicates that the first client is capable of satisfying the at least one locking prerequisite.
3. The system of claim 2, wherein:
the communication means further receive a third response from a second client indicating whether the second client is capable of satisfying the at least one locking prerequisite associated with the allocated resource; and,
the resource allocation means further re-allocate the allocated resource to the second demand request where the received third response indicates that the second client is capable of satisfying the at least one locking prerequisite.
4. The system of claim 2 wherein the second resource requirement comprises a second plurality of resource requirements.
5. The system of claim 1 wherein the first resource requirement comprises a first plurality of resource requirements.
6. The system of claim 5 wherein the first plurality of resource requirements are received from the first client.
7. The system of claim 5 wherein at least one resource requirement of the first plurality of resource requirements is a technical skill requirement.
8. The system of claim 5 wherein the selected resource is a resource currently available to satisfy the at least one of the first plurality of resource requirements at the time the first demand request is received.
9. The system of claim 8 wherein the resource is an item of software, an item of hardware or an individual having a predetermined technical skill requirement.
10. The system of claim 5 wherein the selected resource is a resource available at a future time designated by the first client, and the selected resource is capable of satisfying the at least one of the first plurality of resource requirements subsequent to receiving the first demand request.
11. The system of claim 10 wherein the allocated resource is an item of software, an item of hardware or an individual having a predetermined technical skill requirement.
12. The system of claim 1 wherein the at least one locking prerequisite is a financial prerequisite.
13. The system of claim 1 wherein the allocation of the first resource to the first demand request by the resource allocation means is an allocation based on the received first response indicating that the first client is incapable of satisfying the at least one locking prerequisite, and wherein the allocation of the first resource to the first demand request by the resource allocation means is an allocation based on the first response indicating that the first client is capable of satisfying the at least one locking prerequisite
14. A system for allocating resources to demand requests comprising:
a resource requirement processor operative to identify at least a first resource requirement associated with a first demand request;
a resource selector coupled to the resource requirement processor operative to select a resource that satisfies the at least first resource requirement associated with the first demand request;
a communication processor coupled with the resource selector and operative to receive a first response from a first client indicating whether the first client is capable of satisfying at least one locking prerequisite associated with the selected resource; and,
a resource allocation processor coupled to the communication processor and operative to allocate the selected resource to the first demand request based on the first response received from the first client.
15. The system of claim 14, wherein:
the resource processor is further operative to identify a second resource requirement associated with a second demand request;
the resource selector is further operative to select an allocated resource satisfying the at least second resource requirement associated with the second demand request;
the communication processor is further operative to receive a second response from the first client indicating whether the first client is capable of satisfying at least one locking prerequisite associated with the allocated resource; and,
the resource allocation processor is further operative to maintain the allocation of the allocated resource to the first demand request where the received second response indicates that the first client is capable of satisfying the at least one locking prerequisite.
16. The system of claim 15, wherein:
the communication processor is further operative to receive a third response from a second client indicating whether the second client is capable of satisfying the at least one locking prerequisite associated with the allocated resource; and,
the resource allocation processor is further operative to re-allocate the allocated resource to the second demand request where the received third response indicates that the second client is capable of satisfying the at least one locking prerequisite.
17. The system of claim 15 wherein the second resource requirement comprises a second plurality of resource requirements.
18. The system of claim 14 wherein the first resource requirement comprises a first plurality of resource requirements.
19. The system of claim 18 wherein the first plurality of resource requirements are received from the first client.
20. The system of claim 18 wherein at least one resource requirement of the first plurality of resource requirements is a travel availability requirement.
21. The system of claim 18 wherein the selected resource is a resource currently available to satisfy the at least one of the first plurality of resource requirements at the time the first demand request is received.
22. The system of claim 21 wherein the resource is an item of software, an item of hardware or an individual having a predetermined technical skill requirement.
23. The system of claim 18 wherein the selected resource is a resource available at a future time designated by the first client, and the selected resource is capable of satisfying the at least one of the first plurality of resource requirements subsequent to receiving the first demand request.
24. The system of claim 23 wherein the allocated resource is an item of software, an item of hardware or an individual having a predetermined technical skill requirement.
25. The system of claim 14 wherein the at least one locking prerequisite is an availability prerequisite.
26. The system of claim 14 wherein the allocation of the first resource to the first demand request by the resource allocation processor is an allocation based on the received first response indicating that the first client is incapable of satisfying the at least one locking prerequisite, and wherein the allocation of the first resource to the first demand request by the resource allocation processor is an allocation based on the first response indicating that the first client is capable of satisfying the at least one locking prerequisite
27. A method for allocating resources to demand requests comprising:
receiving a first demand request from a first client;
identifying a first resource requirement associated with the first demand request;
selecting a resource that satisfies the at least first resource requirement associated with the first demand request;
receiving a first response from the first client indicating whether the first client is capable of satisfying at least one locking prerequisite associated with the selected resource;
assigning the selected resource a locking identifier based on the first response received from the first client;
allocating the selected resource to the first client; and,
displaying a result indicative of allocating the allocated resource to the first client.
28. The method according to claim 27 further comprising:
receiving a second demand request from a second client;
identifying a second resource requirement associated with the second demand request;
selecting the allocated resource satisfying the at least second resource requirement associated with the second demand request;
receiving a second response from the first client indicating whether the first client is capable of satisfying the at least one locking prerequisite associated with the allocated resource; and,
modifying the locking identifier assigned to the allocated based on the second response received from the first client.
29. The method according to claim 28 further comprising:
receiving a third response from the second client indicative of whether the second client is capable of satisfying the at least one locking prerequisite associated with the first staffing resource;
modifying the locking identifier assigned to the allocated resource based on the third response from the second client; and,
re-allocating the allocated resource to the second client.
30. The method of claim 28 wherein the second resource requirement comprises a second plurality of resource requirements.
31. The method of claim 27 wherein the first resource requirement comprises a first plurality of resource requirements.
32. The method of claim 31 wherein the first plurality of resource requirements are received from the first client.
33. The method of claim 31 wherein the first plurality of resource requirements are determined by an entity other than the first client.
34. The method of claim 31 wherein at least one resource requirement of the first plurality of resource requirements is selected from the group consisting of a technical skill requirement, a travel availability requirement; and a time availability requirement.
35. The method of claim 31 wherein the selected resource is a resource currently available to satisfy the at least one of the first plurality of resource requirements at the time the first demand request is received.
36. The method of claim 35 wherein the selected resource is an item of software, an item or hardware or an individual with a predetermined technical skill requirement.
37. The method of claim 31 wherein the selected resource is available at a future time identified by the first client, and the selected resource is capable of satisfying the at least one of the first plurality of resource requirements subsequent to receiving the first demand request.
38. The method of claim 37 wherein the resource is an item of software, an item or hardware or an individual with a predetermined technical skill requirement.
39. The method of claim 27 wherein the at least one locking prerequisite is a financial prerequisite.
40. The method of claim 27 wherein allocating the first resource to the first demand request is an allocation based on the received first response indicating that the first client is incapable of satisfying the at least one locking prerequisite, and wherein the allocating of the first resource to the first demand request is an allocation based on the first response indicating that the first client is capable of satisfying the at least one locking prerequisite.
US11/717,548 2006-08-24 2007-03-13 Future locking of resources Abandoned US20080052397A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/732,168 US10146587B2 (en) 2006-08-24 2015-06-05 Future locking of resources

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1334/MUM/1006 2006-08-24
IN1334MU2006 2006-08-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/732,168 Continuation US10146587B2 (en) 2006-08-24 2015-06-05 Future locking of resources

Publications (1)

Publication Number Publication Date
US20080052397A1 true US20080052397A1 (en) 2008-02-28

Family

ID=39197959

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/717,548 Abandoned US20080052397A1 (en) 2006-08-24 2007-03-13 Future locking of resources
US14/732,168 Active 2028-08-31 US10146587B2 (en) 2006-08-24 2015-06-05 Future locking of resources

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/732,168 Active 2028-08-31 US10146587B2 (en) 2006-08-24 2015-06-05 Future locking of resources

Country Status (1)

Country Link
US (2) US20080052397A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169489A1 (en) * 2008-12-25 2010-07-01 International Business Machines Corporation Resource management tool
US20100318659A1 (en) * 2007-09-10 2010-12-16 Samsung Electronics Co., Ltd. Method for allocating resource and receiving data
US20100329156A1 (en) * 2008-02-19 2010-12-30 Nxp B.V. Software defined radio
US20120110190A1 (en) * 2009-02-19 2012-05-03 International Business Machines Corporation Mechanisms For Obtaining Access to Shared Resources Using a Single Timestamp Technique
US20150058922A1 (en) * 2012-05-02 2015-02-26 Huawei Technologies Co., Ltd. Method and apparatus for controlling network device
US20180074864A1 (en) * 2016-09-15 2018-03-15 Red Hat, Inc. Time-bound conditional resource deallocation
US10146587B2 (en) 2006-08-24 2018-12-04 Accenture Global Services Limited Future locking of resources
CN110764899A (en) * 2019-09-03 2020-02-07 无锡华云数据技术服务有限公司 Resource quota management method, resource processing method, device, equipment, system and medium
US20210089362A1 (en) * 2018-02-19 2021-03-25 Nippon Telegraph And Telephone Corporation Virtual resource management device, virtual resource allocation method, and virtual resource allocation program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11909814B1 (en) * 2019-03-26 2024-02-20 Amazon Technologies, Inc. Configurable computing resource allocation policies

Citations (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5711010A (en) * 1995-05-31 1998-01-20 Motorola, Inc. Method of establishing access to secondary communication resources in a communication system
US5867494A (en) * 1996-11-18 1999-02-02 Mci Communication Corporation System, method and article of manufacture with integrated video conferencing billing in a communication system architecture
US5956712A (en) * 1995-06-07 1999-09-21 International Business Machines Corporation Byte range locking in a distributed environment
US5995805A (en) * 1997-10-17 1999-11-30 Lockheed Martin Missiles & Space Decision-theoretic satellite communications system
US6067301A (en) * 1998-05-29 2000-05-23 Cabletron Systems, Inc. Method and apparatus for forwarding packets from a plurality of contending queues to an output
US6112243A (en) * 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US6219412B1 (en) * 1999-05-05 2001-04-17 Spiderphone.Com, Inc. Choice of guaranteed vs. bumpable conference call reservations
US6253236B1 (en) * 1998-05-19 2001-06-26 Serena Software International, Inc. System and method for serving host computer files to one or more client computer systems
US6259913B1 (en) * 1998-08-06 2001-07-10 Alcatel Method of allocating links between a set of areas and a set of satellites
US20010039581A1 (en) * 2000-01-18 2001-11-08 Yuefan Deng System for balance distribution of requests across multiple servers using dynamic metrics
US20020004832A1 (en) * 2000-01-12 2002-01-10 Yage Co., Ltd. Method for establishing communication channel using information storage media
US20020026398A1 (en) * 2000-08-24 2002-02-28 Sheth Beerud D. Storefront for an electronic marketplace for services
US20020055865A1 (en) * 2000-04-21 2002-05-09 Goalassist Corporation System and method employing yield management in human-factor resource industry
US20020161891A1 (en) * 2001-04-25 2002-10-31 Tatsuo Higuchi System and method for computer resource marketing
US20030005457A1 (en) * 2001-06-28 2003-01-02 Sorin Faibish Video file server cache management using movie ratings for reservation of memory and bandwidth resources
US20030083919A1 (en) * 2001-10-31 2003-05-01 Goalassist Corporation System and method employing capacity/demand management in prepared food service industry
US6684193B1 (en) * 1999-10-05 2004-01-27 Rapt Technologies Corporation Method and apparatus for multivariate allocation of resources
US6690668B1 (en) * 1998-10-19 2004-02-10 Texas Instruments Incorporated Modular interconnection of network switches
US6751455B1 (en) * 1999-09-17 2004-06-15 The Regents Of The University Of California Power- and bandwidth-adaptive in-home wireless communications system with power-grid-powered agents and battery-powered clients
US6754714B1 (en) * 1999-10-05 2004-06-22 Cisco Technology, Inc. Multilink point-to-point protocol network access server channel allocation method and apparatus
US20040203832A1 (en) * 2002-03-22 2004-10-14 Yongho An Method for managing wireless assets in a coverage area
US20040215780A1 (en) * 2003-03-31 2004-10-28 Nec Corporation Distributed resource management system
US20050071593A1 (en) * 2003-09-29 2005-03-31 Pradeep Vincent Efficient file system data journaling
US20050071241A1 (en) * 2003-09-26 2005-03-31 Flockhart Andrew D. Contact center resource allocation based on work bidding/auction
US20050114860A1 (en) * 2003-11-26 2005-05-26 Wuqin Lin Method and apparatus for on-demand resource allocation and job management
US20050125278A1 (en) * 2003-12-09 2005-06-09 Suvas Vajracharya Method and apparatus for queue-based automated staff scheduling
US20050131899A1 (en) * 2003-12-12 2005-06-16 Mike Dvorkin Adaptive object level locking
US20050131898A1 (en) * 2003-12-15 2005-06-16 Fatula Joseph J.Jr. Apparatus, system, and method for on-demand control of grid system resources
US6920454B1 (en) * 2000-01-28 2005-07-19 Oracle International Corporation Techniques for DLM optimization with transferring lock information
US20050172291A1 (en) * 2004-01-30 2005-08-04 Rajarshi Das Method and apparatus for utility-based dynamic resource allocation in a distributed computing system
US20050182856A1 (en) * 2003-12-22 2005-08-18 Mcknett Charles L. Systems and methods for creating time aware networks using independent absolute time values in network devices
US20050188088A1 (en) * 2004-01-13 2005-08-25 International Business Machines Corporation Managing escalating resource needs within a grid environment
US7047299B1 (en) * 2001-08-31 2006-05-16 Hewlett-Packard Development Company, L.P. Generic cluster aware lock broker with user defined locking modes
US20060149865A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Queue rendezvous
US20060224496A1 (en) * 2005-03-31 2006-10-05 Combinenet, Inc. System for and method of expressive sequential auctions in a dynamic environment on a network
US20060271700A1 (en) * 2005-05-24 2006-11-30 Fujitsu Limited Record medium with a load distribution program recorded thereon, load distribution method, and load distribution apparatus
US20060282400A1 (en) * 2005-06-10 2006-12-14 Muralidhar Kalavacharla Apparatus, system, and method for encapsulating logical units of work using business objects
US20060294239A1 (en) * 2005-06-24 2006-12-28 Hitachi, Ltd. Method and system for controlling computer in system
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US20070079073A1 (en) * 2005-09-30 2007-04-05 Mark Rosenbluth Instruction-assisted cache management for efficient use of cache and memory
US20070094325A1 (en) * 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
US7219347B1 (en) * 1999-03-15 2007-05-15 British Telecommunications Public Limited Company Resource scheduling
US20070127527A1 (en) * 2005-12-06 2007-06-07 International Business Machines Corporation Methods and apparatus for implementing a flexible multi-user advance reservation system where reservation requests are specified in terms of multiple options and where each option has an associated business value
US20070165525A1 (en) * 2006-01-18 2007-07-19 Fujitsu Limited Computer program, method, and apparatus for managing reservation of it resources
US20070174101A1 (en) * 2004-12-09 2007-07-26 British Telecommunications Public Limited Company Workflow scheduler
US7313557B1 (en) * 2002-03-15 2007-12-25 Network Appliance, Inc. Multi-protocol lock manager
US20070299804A1 (en) * 2006-06-21 2007-12-27 Zhen Liu Method and system for federated resource discovery service in distributed systems
US7398525B2 (en) * 2002-10-21 2008-07-08 International Business Machines Corporation Resource scheduling in workflow management systems
US20080263549A1 (en) * 2003-05-01 2008-10-23 International Business Machines Corporation Managing locks and transactions
US20090043888A1 (en) * 2004-03-13 2009-02-12 Cluster Resources, Inc. System and method of providing reservation masks within a compute environment
US7693093B2 (en) * 2003-03-10 2010-04-06 Sony Deutschland Gmbh QoS-aware handover procedure for IP-based mobile ad-hoc network environments

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535880B1 (en) 2000-05-09 2003-03-18 Cnet Networks, Inc. Automated on-line commerce method and apparatus utilizing a shopping server verifying product information on product selection
US6903723B1 (en) 1995-03-27 2005-06-07 Donald K. Forest Data entry method and apparatus
US6195691B1 (en) 1996-09-17 2001-02-27 National Systems Corporation Method and apparatus for creating and using dynamic universal resource locators
US5991739A (en) 1997-11-24 1999-11-23 Food.Com Internet online order method and apparatus
US6845361B1 (en) 1998-07-21 2005-01-18 Eric M. Dowling Virtual-wait queue for mobile commerce
US6526449B1 (en) 1998-09-11 2003-02-25 Digital Convergence Corporation Method and apparatus for controlling a computer from a remote location
US6546374B1 (en) 1998-11-10 2003-04-08 Aether Systems, Inc. Apparatus for providing instant vendor notification in an electronic commerce network environment
US6587838B1 (en) 1999-01-25 2003-07-01 Aether Systems, Inc. Method and system for conducting real time electronic commerce
US6901397B1 (en) 1999-02-05 2005-05-31 Gte Service Corporation Method and apparatus for providing web-based assistance to customers and service representatives
US6980962B1 (en) 1999-03-02 2005-12-27 Quixtar Investments, Inc. Electronic commerce transactions within a marketing system that may contain a membership buying opportunity
US6401085B1 (en) 1999-03-05 2002-06-04 Accenture Llp Mobile communication and computing system and method
US20020038261A1 (en) 1999-03-25 2002-03-28 James Kargman System for placing orders through the internet to a selected store of a chain of stores
WO2000065514A2 (en) 1999-04-27 2000-11-02 I3E Holdings, Llc Remote ordering system
EP1190353A2 (en) 1999-05-27 2002-03-27 Accenture LLP Methods, concepts and technology for a virtual shopping system capable of assessing needs of a customer and recommending a product or service based on such assessed needs
US6519571B1 (en) 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
US7523385B2 (en) 1999-06-22 2009-04-21 Starcite, Inc. System and method for enterprise event marketing and management automation
AU6760000A (en) 1999-08-04 2001-03-05 Kozmo.Com, Inc. System and method for real-time ordering and delivery of locally available products
US6697824B1 (en) 1999-08-31 2004-02-24 Accenture Llp Relationship management in an E-commerce application framework
US6961778B2 (en) 1999-11-30 2005-11-01 Accenture Llp Management interface between a core telecommunication system and a local service provider
US7072856B1 (en) 2000-01-18 2006-07-04 Al Nachom Communication enhancement means
US20040267616A1 (en) 2000-02-11 2004-12-30 Kargman James B. Creation of custom designed direct mail advertising via the internet
US7069235B1 (en) 2000-03-03 2006-06-27 Pcorder.Com, Inc. System and method for multi-source transaction processing
CA2404140A1 (en) 2000-03-22 2001-09-27 America To Go Llc Methods and apparatus for on-line ordering
CA2404343A1 (en) 2000-03-24 2001-10-04 Ahmet Alpdemir Voice-interactive marketplace providing time and money saving benefits and real-time promotion publishing and feedback
US6959283B1 (en) 2000-03-29 2005-10-25 Ncr Corporation Automated cafeteria
US7003500B1 (en) 2000-08-01 2006-02-21 James Leonard Driessen Retail point of sale (RPOS) apparatus for internet merchandising
US6922567B1 (en) 2000-08-22 2005-07-26 Telefonaktiebolaget L.M. Ericsson Systems, methods and computer program products for identifying items of interest that are geographically proximate to wireless communicator users
US6801228B2 (en) 2000-09-07 2004-10-05 Ipdev Co. Method and user interface for specifying toppings and their placement on a pizza
AU2002213430A1 (en) 2000-09-28 2002-04-08 Ipdev Co. Method for simplified one-touch ordering of goods and services from a wired or wireless phone or terminal
US20020067827A1 (en) 2000-12-04 2002-06-06 Kargman James B. Method for preventing check fraud
US20020188492A1 (en) 2001-06-11 2002-12-12 Borton Robert L. Food-making, -delivery, and -carry-out system and method
US20040111321A1 (en) 2002-08-09 2004-06-10 Kargman James B. Graphical display system for use with a computerized point-of-sale system
US20040158494A1 (en) 2003-02-05 2004-08-12 Suthar Yogin P. Restaurant automation system
US20050049922A1 (en) 2003-03-24 2005-03-03 Ipdev Co. Method and apparatus for specifying toppings and their placement on a pizza and confirming same
US20050015256A1 (en) 2003-05-29 2005-01-20 Kargman James B. Method and apparatus for ordering food items, and in particular, pizza
US20050021407A1 (en) 2003-06-20 2005-01-27 Kargman James B. Enhanced user display for use in a restaurant kitchen
US20050045728A1 (en) 2003-07-03 2005-03-03 Kargman James B. Enhanced method and apparatus for capturing and processing coupon redemption data
US20050220009A1 (en) 2003-10-08 2005-10-06 Kargman James B Enhanced method and apparatus for managing a communication system
US20050108097A1 (en) 2003-11-19 2005-05-19 Simpledine, Inc. Web-based food ordering system utilizing a text-to-speech engine
US20050267811A1 (en) 2004-05-17 2005-12-01 Almblad Robert E Systems and methods of ordering at an automated food processing machine
US7505929B2 (en) 2004-06-01 2009-03-17 Angert Charles D Method, system and computer product for auction of deliverable prepared food via the internet
US20060041482A1 (en) 2004-08-03 2006-02-23 Awiszus Steven T System and method providing backup local ordering for establishment using a remote ordering system
US20060080163A1 (en) 2004-09-29 2006-04-13 Eric Sutcliffe Methods and apparatus for food brokering services
US20060080165A1 (en) 2004-09-29 2006-04-13 Eric Sutcliffe Methods and apparatus for residential food brokering services
CA2509734A1 (en) 2004-10-05 2006-04-05 Hospitality 101, Inc. Network based food ordering system
US20060123098A1 (en) 2004-11-11 2006-06-08 Ipdev Multi-system auto-failure web-based system with dynamic session recovery
US20060155753A1 (en) 2004-11-11 2006-07-13 Marc Asher Global asynchronous serialized transaction identifier
US20060155770A1 (en) 2004-11-11 2006-07-13 Ipdev Co. System and method for time-based allocation of unique transaction identifiers in a multi-server system
US20060122896A1 (en) 2004-12-08 2006-06-08 Parsley Andrew J Green touch display advertising kiosk system
US20060178943A1 (en) 2005-01-07 2006-08-10 Rollinson Joseph R Food order fulfillment system deploying a universal in-store point-of-sale (POS) for preparation and pickup scheduling
US8185905B2 (en) * 2005-03-18 2012-05-22 International Business Machines Corporation Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
US7979859B2 (en) * 2005-05-03 2011-07-12 International Business Machines Corporation Managing automated resource provisioning with a workload scheduler
US20080052397A1 (en) 2006-08-24 2008-02-28 Ramanathan Venkataraman Future locking of resources

Patent Citations (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5711010A (en) * 1995-05-31 1998-01-20 Motorola, Inc. Method of establishing access to secondary communication resources in a communication system
US5956712A (en) * 1995-06-07 1999-09-21 International Business Machines Corporation Byte range locking in a distributed environment
US5867494A (en) * 1996-11-18 1999-02-02 Mci Communication Corporation System, method and article of manufacture with integrated video conferencing billing in a communication system architecture
US6112243A (en) * 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US5995805A (en) * 1997-10-17 1999-11-30 Lockheed Martin Missiles & Space Decision-theoretic satellite communications system
US6253236B1 (en) * 1998-05-19 2001-06-26 Serena Software International, Inc. System and method for serving host computer files to one or more client computer systems
US6067301A (en) * 1998-05-29 2000-05-23 Cabletron Systems, Inc. Method and apparatus for forwarding packets from a plurality of contending queues to an output
US6259913B1 (en) * 1998-08-06 2001-07-10 Alcatel Method of allocating links between a set of areas and a set of satellites
US6690668B1 (en) * 1998-10-19 2004-02-10 Texas Instruments Incorporated Modular interconnection of network switches
US7219347B1 (en) * 1999-03-15 2007-05-15 British Telecommunications Public Limited Company Resource scheduling
US6219412B1 (en) * 1999-05-05 2001-04-17 Spiderphone.Com, Inc. Choice of guaranteed vs. bumpable conference call reservations
US6751455B1 (en) * 1999-09-17 2004-06-15 The Regents Of The University Of California Power- and bandwidth-adaptive in-home wireless communications system with power-grid-powered agents and battery-powered clients
US7197326B2 (en) * 1999-09-17 2007-03-27 The Regents Of The University Of California Adaptive local wireless communication system
US6754714B1 (en) * 1999-10-05 2004-06-22 Cisco Technology, Inc. Multilink point-to-point protocol network access server channel allocation method and apparatus
US6684193B1 (en) * 1999-10-05 2004-01-27 Rapt Technologies Corporation Method and apparatus for multivariate allocation of resources
US20020004832A1 (en) * 2000-01-12 2002-01-10 Yage Co., Ltd. Method for establishing communication channel using information storage media
US20010039581A1 (en) * 2000-01-18 2001-11-08 Yuefan Deng System for balance distribution of requests across multiple servers using dynamic metrics
US6920454B1 (en) * 2000-01-28 2005-07-19 Oracle International Corporation Techniques for DLM optimization with transferring lock information
US20020055865A1 (en) * 2000-04-21 2002-05-09 Goalassist Corporation System and method employing yield management in human-factor resource industry
US20020026398A1 (en) * 2000-08-24 2002-02-28 Sheth Beerud D. Storefront for an electronic marketplace for services
US20020161891A1 (en) * 2001-04-25 2002-10-31 Tatsuo Higuchi System and method for computer resource marketing
US20030005457A1 (en) * 2001-06-28 2003-01-02 Sorin Faibish Video file server cache management using movie ratings for reservation of memory and bandwidth resources
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US7047299B1 (en) * 2001-08-31 2006-05-16 Hewlett-Packard Development Company, L.P. Generic cluster aware lock broker with user defined locking modes
US20030083919A1 (en) * 2001-10-31 2003-05-01 Goalassist Corporation System and method employing capacity/demand management in prepared food service industry
US7313557B1 (en) * 2002-03-15 2007-12-25 Network Appliance, Inc. Multi-protocol lock manager
US20040203832A1 (en) * 2002-03-22 2004-10-14 Yongho An Method for managing wireless assets in a coverage area
US7139578B2 (en) * 2002-03-22 2006-11-21 Lucent Technologies Inc. Method for managing wireless assets in a coverage area
US7398525B2 (en) * 2002-10-21 2008-07-08 International Business Machines Corporation Resource scheduling in workflow management systems
US7693093B2 (en) * 2003-03-10 2010-04-06 Sony Deutschland Gmbh QoS-aware handover procedure for IP-based mobile ad-hoc network environments
US20040215780A1 (en) * 2003-03-31 2004-10-28 Nec Corporation Distributed resource management system
US20080263549A1 (en) * 2003-05-01 2008-10-23 International Business Machines Corporation Managing locks and transactions
US20050071241A1 (en) * 2003-09-26 2005-03-31 Flockhart Andrew D. Contact center resource allocation based on work bidding/auction
US7010721B2 (en) * 2003-09-29 2006-03-07 International Business Machines Corporation File system journal management
US20050071593A1 (en) * 2003-09-29 2005-03-31 Pradeep Vincent Efficient file system data journaling
US20050114860A1 (en) * 2003-11-26 2005-05-26 Wuqin Lin Method and apparatus for on-demand resource allocation and job management
US7526765B2 (en) * 2003-11-26 2009-04-28 International Business Machines Corporation Method and apparatus for on-demand resource allocation and job management
US20050125278A1 (en) * 2003-12-09 2005-06-09 Suvas Vajracharya Method and apparatus for queue-based automated staff scheduling
US20050131899A1 (en) * 2003-12-12 2005-06-16 Mike Dvorkin Adaptive object level locking
US20050131898A1 (en) * 2003-12-15 2005-06-16 Fatula Joseph J.Jr. Apparatus, system, and method for on-demand control of grid system resources
US20050182856A1 (en) * 2003-12-22 2005-08-18 Mcknett Charles L. Systems and methods for creating time aware networks using independent absolute time values in network devices
US20050188088A1 (en) * 2004-01-13 2005-08-25 International Business Machines Corporation Managing escalating resource needs within a grid environment
US20050172291A1 (en) * 2004-01-30 2005-08-04 Rajarshi Das Method and apparatus for utility-based dynamic resource allocation in a distributed computing system
US20090043888A1 (en) * 2004-03-13 2009-02-12 Cluster Resources, Inc. System and method of providing reservation masks within a compute environment
US20070174101A1 (en) * 2004-12-09 2007-07-26 British Telecommunications Public Limited Company Workflow scheduler
US20060149865A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Queue rendezvous
US20060224496A1 (en) * 2005-03-31 2006-10-05 Combinenet, Inc. System for and method of expressive sequential auctions in a dynamic environment on a network
US20060271700A1 (en) * 2005-05-24 2006-11-30 Fujitsu Limited Record medium with a load distribution program recorded thereon, load distribution method, and load distribution apparatus
US20060282400A1 (en) * 2005-06-10 2006-12-14 Muralidhar Kalavacharla Apparatus, system, and method for encapsulating logical units of work using business objects
US20060294239A1 (en) * 2005-06-24 2006-12-28 Hitachi, Ltd. Method and system for controlling computer in system
US20070079073A1 (en) * 2005-09-30 2007-04-05 Mark Rosenbluth Instruction-assisted cache management for efficient use of cache and memory
US20070094325A1 (en) * 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
US20070127527A1 (en) * 2005-12-06 2007-06-07 International Business Machines Corporation Methods and apparatus for implementing a flexible multi-user advance reservation system where reservation requests are specified in terms of multiple options and where each option has an associated business value
US20080235065A1 (en) * 2005-12-06 2008-09-25 International Business Machines Corporation Methods and Apparatus for Implementing a Flexible Multi-User Advance Reservation System Where Reservation Requests are Specified in Terms of Multiple Options and Where Each Option Has an Associated Business Value
US20070165525A1 (en) * 2006-01-18 2007-07-19 Fujitsu Limited Computer program, method, and apparatus for managing reservation of it resources
US20070299804A1 (en) * 2006-06-21 2007-12-27 Zhen Liu Method and system for federated resource discovery service in distributed systems

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146587B2 (en) 2006-08-24 2018-12-04 Accenture Global Services Limited Future locking of resources
US20100318659A1 (en) * 2007-09-10 2010-12-16 Samsung Electronics Co., Ltd. Method for allocating resource and receiving data
US8214500B2 (en) * 2007-09-10 2012-07-03 Samsung Electronics Co., Ltd. Method for allocating resource and receiving data to control a transmission error
US8687524B2 (en) * 2008-02-19 2014-04-01 Nxp, B.V. Software defined radio
US20100329156A1 (en) * 2008-02-19 2010-12-30 Nxp B.V. Software defined radio
US20100169489A1 (en) * 2008-12-25 2010-07-01 International Business Machines Corporation Resource management tool
US8606919B2 (en) * 2008-12-25 2013-12-10 International Business Machines Corporation Resource management tool
US20120110190A1 (en) * 2009-02-19 2012-05-03 International Business Machines Corporation Mechanisms For Obtaining Access to Shared Resources Using a Single Timestamp Technique
US8301779B2 (en) * 2009-02-19 2012-10-30 International Business Machines Corporation Mechanisms for obtaining access to shared resources using a single timestamp technique
US20150058922A1 (en) * 2012-05-02 2015-02-26 Huawei Technologies Co., Ltd. Method and apparatus for controlling network device
US20180074864A1 (en) * 2016-09-15 2018-03-15 Red Hat, Inc. Time-bound conditional resource deallocation
US10296389B2 (en) * 2016-09-15 2019-05-21 Red Hat, Inc. Time-bound conditional resource deallocation
US20210089362A1 (en) * 2018-02-19 2021-03-25 Nippon Telegraph And Telephone Corporation Virtual resource management device, virtual resource allocation method, and virtual resource allocation program
CN110764899A (en) * 2019-09-03 2020-02-07 无锡华云数据技术服务有限公司 Resource quota management method, resource processing method, device, equipment, system and medium

Also Published As

Publication number Publication date
US10146587B2 (en) 2018-12-04
US20150269003A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
US10146587B2 (en) Future locking of resources
US20230419259A1 (en) System and method for workflow management
US7502747B1 (en) Automated job scheduling based on resource availability
KR100778966B1 (en) Global document creation system including administrative server computer
WO2013128555A1 (en) Task management method and task management device
US10896407B2 (en) Cognitive adaptation to user behavior for personalized automatic processing of events
US20060200771A1 (en) Adaptable user interface for business software
US20080294483A1 (en) Free time priority for calendar schedulers
US20080306806A1 (en) Methods and apparatus for dynamically allocating tasks
US20120004942A1 (en) Conflict Resolution in a Computerized Calendaring System
US20110208557A1 (en) Supply and Demand Consolidation in Employee Resource Planning
US20220310214A1 (en) Methods and apparatus for data-driven monitoring
US20060167725A1 (en) Method and apparatus for scheduling
JP2006301990A (en) Appointment system, appointment program, recording medium and appointment method
WO2007008613A2 (en) Methods and systems for managing shared tasks
US11693702B2 (en) Systems and methods for managing usage of computing resources
US8626557B2 (en) System and method of providing snapshot to support approval of workflow changes
US20200265347A1 (en) Allocation method, storage medium, and information processing device
US20090112704A1 (en) Management tool for efficient allocation of skills and resources
Nguyen et al. Scheduling rules to achieve lead-time targets in outpatient appointment systems
US20090222818A1 (en) Fast workflow completion in a multi-system landscape
CN114884560B (en) Arc segment multiplexing fusion method for multi-user resource application
US20050137927A1 (en) System and method for multi-site workforce deployment
Ash Activity scheduling in the dynamic multi-project setting: choosing heuristics through deterministic simulation
US20090094089A1 (en) Custom dispatch software

Legal Events

Date Code Title Description
AS Assignment

Owner name: ACCENTURE GLOBAL SERVICES GMBH, SWITZERLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VENKATARAMAN, RAMANATHAN;NANADIKAR, PRAMOD;VASUDEVAN, BADRINARAYANAN;AND OTHERS;REEL/FRAME:020169/0620;SIGNING DATES FROM 20071105 TO 20071121

AS Assignment

Owner name: ACCENTURE GLOBAL SERVICES LIMITED, IRELAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ACCENTURE GLOBAL SERVICES GMBH;REEL/FRAME:025700/0287

Effective date: 20100901

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION