WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available    
United States Patent5603029   
Link to this pagehttp://www.wikipatents.com/5603029.html
Inventor(s)Aman; Jeffrey D. (Wappingers Falls, NY); Cotner; Curt L. (Gilroy, CA); Dillenberger; Donna N. T. (Yorktown Heights, NY); Emmes; David B. (Poughkeepsie, NY)
AbstractApparatus and accompanying methods for use preferably in a multi-system shared data (sysplex) environment (100), wherein each system (110) provides one or more servers (115), for dynamically and adaptively assigning and balancing new work and for new session requests, among the servers in the sysplex, in view of attendant user-defined business importance of these requests and available sysplex resource capacity so as to meet overall business goals. Specifically, systems and servers are categorized into two classes: eligible, i.e., goal-oriented servers running under a policy and for which capacity information is currently available, and candidate, i.e., servers which lack capacity information. Work requests for a client application are assigned first to various eligible systems and eligible servers thereon based on their current capacity to accept new work and in a manner that meets business goals inherent in a sysplex policy; followed, if additional servers are requested by that application, to candidate systems and candidate servers thereon. As to session placement, first those system(s) are selected that have lowest utilization, at a target importance level, but with sufficient available capacity at that level. Competing servers on the selected system(s) are then evaluated based on their corresponding session count data to yield a single resulting server. Thereafter, identification of multiple servers and their corresponding weights are returned to, e.g., a client application, for eventual routing of work requests to those servers, or the identification of a single server is returned to that application for establishing a new session therewith.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5603029
System of assigning work requests based on classifying into an eligible

     class where the criteria is goal oriented and capacity information is

     available - US Patent 5603029 Drawing
System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
Inventor     Aman; Jeffrey D. (Wappingers Falls, NY); Cotner; Curt L. (Gilroy, CA); Dillenberger; Donna N. T. (Yorktown Heights, NY); Emmes; David B. (Poughkeepsie, NY)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     February 11, 1997
Application Number     08/476,157
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 7, 1995
US Classification     718/105 707/200 710/39
Int'l Classification     G06F 015/06
Examiner     Lee; Thomas C.
Assistant Examiner     Chen; Anderson I.
Attorney/Law Firm     Kinnaman, Jr.; William A. Michaelson; Peter L. , Michaelson & Wallace
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/200.01 395/200.03 395/600 395/650 395/826 364/242.94 364/229 364/230.3 364/280 364/281 364/284.4 364/902
Patent Tags     assigning work requests based classifying into eligible class criteria is goal oriented capacity information is available
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5537542
Eilert
709/201
Jul,1996

[0 after 0 votes]
5341477
Pitkin
709/226
Aug,1994

[0 after 0 votes]
5241677
Naganuma
718/105
Aug,1993

[0 after 0 votes]
4481583
Mueller
710/244
Nov,1984

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. In a multi-processing environment having a plurality of computer systems, each of said systems having an operating system instance resident thereon and providing at least one application server, a method for assigning work requests among individual ones of the servers in order to meet business goals inherent in a policy governing the environment, the method comprising the steps of:

in response to an incoming request to route work,

classifying each active one of the systems either as an eligible system that then exhibits at least a minimum pre-defined capacity utilization, at a lowest one of a number of pre-defined business importance levels among all the systems, over a first pre-defined time interval, or as a candidate system so as to form first and second sets of eligible and candidate systems, respectively; each eligible system being one of the systems that is goal-oriented and runs under the policy for which current capacity information is available, and each candidate system being any remaining one of said plurality of systems other than all the eligible systems; and

forming, in conjunction with said classifying step, third and fourth sets of eligible and candidate servers, respectively, such that said third and fourth sets contain identifications of all active ones of the servers residing on each of the systems in said first and second sets, respectively;

assigning, in response to said classifying step, a system weight to each one of the systems in the first and second sets, the system weight representing an amount of total available capacity utilized at the lowest one of the business importance levels, by said each one system in the first and second sets;

determining, in conjunction with said system weight assigning step and for each different one of the systems in said first and second sets, a corresponding server weight for each different server residing on said each different one system;

forming, in response to said third and fourth sets, an output server set populated first by identifications of eligible servers, and their associated server weights, taken, successively and in order of descending server weights, from said third set followed, by identification of servers, and their associated server weights, taken successively from said fourth set; and

routing work requests to each one of the servers identified in the output server set wherein, of a total number of work requests to be routed to all of the identified servers, an amount of the total work requests is routed to each one identified server in the output server set in proportion to the server weight associated therewith.

2. The method in claim 1 wherein the output server set forming step comprises the steps of:

writing identifications of successive ones of the eligible servers, if any, and their associated weights, from the third set into the output server set until the output server set is full or identifications of all the eligible servers in the third set have been taken; and

if the output server set is not full, writing identifications of successive ones of the candidate servers, and the associated server weights, from the fourth set into the output server set until either the output server set is full or identifications of all the candidate servers in the fourth set have been taken.

3. The method in claim 2 wherein the system weight assigning step comprises the steps of:

ascertaining the total available capacity utilized as total capacity utilized by all of the eligible systems in the first set at the lowest one of the business importance levels which has sufficient capacity; and

specifying, for each one of the eligible systems in the first set, the system weight therefor as a function of a ratio of capacity utilized by said each one eligible system, at the lowest one of the business importance levels which has sufficient capacity, divided by the total available capacity utilized at a target importance level among all of said eligible systems.

4. The method in claim 3 wherein the system weight assigning step further comprises the steps of:

in the event identifications of more candidate systems than identifications of eligible systems are to be taken from said second and first sets, respectively, setting the system weight for each different eligible system to be taken from the second set to a pre-defined fixed weight; and

in the event identifications of more eligible systems than identifications of candidate systems are to be taken from said first and second sets, respectively, setting the system weight for each different candidate system to be taken from the first set to a minimum of either an average and a median of the system weights of all the eligible systems to be taken from the first set.

5. The method in claim 2 wherein the server weight determining step comprises the steps of, for said eligible servers residing on each one eligible system:

where the number of eligible servers residing thereon exceeds the system weight therefor, setting the server weight for each of the eligible servers residing on said each one eligible system equal to the system weight therefor divided by the number of eligible servers; and

where the number of eligible servers residing therein is less than the system weight therefor,

selecting one of the eligible servers residing on said each one eligible system as a selected eligible server;

assigning the entire system weight for said each one eligible system to said selected eligible server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one eligible system.

6. The method in claim 5 wherein the server weight determining step comprises the steps of, for said candidate servers residing on each one candidate system:

where the number of candidate servers residing thereon exceeds the system weight therefor, setting the server weight for each of the candidate servers residing on said each one candidate system equal to the system weight therefor divided by a number of candidate servers residing thereon; and

where the number of candidate servers residing therein is less than the system weight therefor,

selecting one of the candidate servers residing on said each one candidate system as a selected candidate server;

assigning the entire system weight for said each one candidate system to said selected candidate server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one candidate system.

7. The method in claim 6 wherein the server weight determining step further comprises the steps of:

if one or more eligible servers identified in the third set each has a zero server weight and the identification of one or more of said zero-weighted eligible servers is to be written into the output server set:

writing the identifications of each successive zero-weighted eligible server into the output server set as an output eligible server until the output server set is full or the identifications of all the zero-weighted eligible servers have been taken; and

assigning a pre-defined fixed server weight to the output eligible server; and

if one or more candidate servers identified in the fourth set each has a zero server weight and the identification of one or more of said zero-weighted candidate servers is to be written into the output server set:

writing the identifications of each successive zero-weighted candidate server into the output server set as an output candidate server until the output server set is full or the identifications of all the zero-weighted candidate servers have been taken; and

assigning a pre-defined fixed server weight to the output candidate server.

8. The method in claim 2, wherein the multi-processing environment is a sysplex, further comprising the steps of:

receiving, from a network connected to the sysplex, the incoming request in a routing node, the routing node being one of the plurality of systems; and

undertaking the classifying, third and fourth set forming, assigning, determining and output set forming steps by the operating system instance residing in the routing node.

9. The method in claim 8 further comprising the steps of:

communicating, through the network, the output server set from the routing node to a client application executing in a client computer connected through the network to the sysplex; and

said work requests routing step comprises the step, performed by the client application, of routing each of the total number of work requests, through the network, to a corresponding one of the servers in the sysplex and identified in the output server set.

10. The method in claim 9 wherein the system weight assigning step comprises the steps of:

ascertaining the total available capacity utilized as total capacity utilized by all of the eligible systems in the first set at the lowest one of the business importance levels which has sufficient capacity; and

specifying, for each one of the eligible systems in the first set, the system weight therefor as a function of a ratio of capacity utilized by said each one eligible system and at the lowest one of the business importance levels which has sufficient capacity, divided by the total available capacity utilized at a target importance level among all of aid eligible systems.

11. The method in claim 10 wherein the system weight assigning step further comprises the steps of:

in the event identifications of more candidate systems than identifications of eligible systems are to be taken from said second and first sets, respectively, setting the system weight for each different eligible system to be taken from the second set to a pre-defined fixed weight; and

in the event identifications of more eligible systems than identifications of candidate systems are to be taken from said first and second sets, respectively, setting the system weight for each different candidate system to be taken from the first set to a minimum of either an average and a median of the system weights of all the eligible systems to be taken from the first set.

12. The method in claim 11 wherein the server weight determining step comprises the steps of, for said eligible servers residing on each one eligible system:

where the number of eligible servers residing thereon exceeds the system weight therefor, setting the server weight for each of the eligible servers residing on said each one eligible system equal to the system weight therefor divided by the number of eligible servers; and

where the number of eligible servers residing therein is less than the system weight therefor,

selecting one of the eligible servers residing on said each one eligible system as a selected eligible server;

assigning the entire system weight for said each one eligible system to said selected eligible server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one eligible system.

13. The method in claim 12 wherein the server weight determining step comprises the steps of, for said candidate servers residing on each one candidate system:

where the number of candidate servers residing thereon exceeds the system weight therefor, setting the server weight for each of the candidate servers residing on said each one candidate system equal to the system weight therefor divided by a number of candidate servers residing thereon; and

where the number of candidate servers residing therein is less than the system weight therefor,

selecting one of the candidate servers residing on said each one candidate system as a selected candidate server;

assigning the entire system weight for said each one candidate system to said selected candidate server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one candidate system.

14. The method in claim 13 wherein the server weight determining step further comprises the steps of:

if one or more eligible servers identified in the third set each has a zero server weight and the identification of one or more of said zero-weighted eligible servers is to be written into the output server set:

writing the identifications of each successive zero-weighted eligible server into the output server set as an output eligible server until the output server set is full or the identifications of all the zero-weighted eligible servers have been taken; and

assigning a pre-defined fixed server weight to the output eligible server; and

if one or more candidate servers identified in the fourth set each has a zero server weight and the identification of one or more of said zero-weighted candidate servers is to be written into the output server set:

writing the identifications of each successive zero-weighted candidate server into the output server set as an output candidate server until the output server set is full or the identifications of all the zero-weighted candidate servers have been taken; and

assigning a pre-defined fixed server weight to the output candidate server.

15. The method in claim 14 wherein the pre-defined utilization equals at least 5% of total capacity provided by said each active one system and the pre-defined fixed weight is one.

16. The method in claim 9 wherein the server weight determining step comprises the steps of, for said eligible servers residing on each one eligible system:

where the number of eligible servers residing thereon exceeds the system weight therefor, setting the server weight for each of the eligible servers residing on said each one eligible system equal to the system weight therefor divided by the number of eligible servers; and

where the number of eligible servers residing therein is less than the system weight therefor,

selecting one of the eligible servers residing on said each one eligible system as a selected eligible server;

assigning the entire system weight for said each one eligible system to said selected eligible server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one eligible system.

17. The method in claim 16 wherein the server weight determining step comprises the steps of, for said candidate servers residing on each one candidate system:

where the number of candidate servers residing thereon exceeds the system weight therefor, setting the server weight for each of the candidate servers residing on said each one candidate system equal to the system weight therefor divided by a number of candidate servers residing thereon; and

where the number of candidate servers residing therein is less than the system weight therefor,

selecting one of the candidate servers residing on said each one candidate system as a selected candidate server;

assigning the entire system weight for said each one candidate system to said selected candidate server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one candidate system.

18. The method in claim 17 wherein the server weight determining step further comprises the steps of:

if one or more eligible servers identified in the third set each has a zero server weight and the identification of one or more of said zero- weighted eligible servers is to be written into the output server set:

writing the identifications of each successive zero-weighted eligible server into the output server set as an output eligible server until the output server set is full or the identifications of all the zero-weighted eligible servers have been taken; and

assigning a pre-defined fixed server weight to the output eligible server; and

if one or more candidate servers identified in the fourth set each has a zero server weight and the identification of one or more of said zero-weighted candidate servers is to be written into the output server set:

writing the identifications of each successive zero-weighted candidate server into the output server set as an output candidate server until the output server set is full or the identifications of all the zero-weighted candidate servers have been taken; and

assigning a pre-defined fixed server weight to the output candidate server.

19. The method in claim 18 wherein the system weight assigning step comprises the steps of:

ascertaining the total available capacity utilized as total capacity utilized by all of the eligible systems in the first set at the lowest one of the business importance levels which has sufficient capacity; and

specifying, for each one of the eligible systems in the first set, the system weight therefor as a function of a ratio of capacity utilized by said each one eligible system and at the lowest one of the business importance levels which has sufficient capacity, divided by the total available capacity utilized at a target importance level among all of said eligible systems.

20. The method in claim 19 wherein the system weight assigning step further comprises the steps of:

in the event identifications of more candidate systems than identifications of eligible systems are to be taken from said second and first sets, respectively, setting the system weight for each different eligible system to be taken from the second set to a pre-defined fixed weight; and

in the event identifications of more eligible systems than identifications of candidate systems are to be taken from said first and second sets, respectively, setting the system weight for each different candidate system to be taken from the first set to a minimum of either an average and a median of the system weights of all the eligible systems to be taken from the first set.

21. The method in claim 20 wherein the pre-defined utilization equals at least 5% of total capacity provided by said each active one system and the pre-defined fixed weight is one.

22. The method in claim 8 further comprising the steps of:

receiving, at the routing node, the total number of work requests from a client application executing in a client computer connected through the network to the sysplex; and

said work requests routing step comprises the step, performed by the operating instance residing in the routing node, of routing each of the total number of work requests received thereat to a corresponding one of the servers in the sysplex and identified in the output server set.

23. The method in claim 22 wherein the system weight assigning step comprises the steps of:

ascertaining the total available capacity utilized as total capacity utilized by all of the eligible systems in the first set at the lowest one of the business importance levels which has sufficient capacity; and

specifying, for each one of the eligible systems in the first set, the system weight therefor as a function of a ratio of capacity utilized by said each one eligible system and at the lowest one of the business importance levels which has sufficient capacity, divided by the total available capacity utilized at a target importance level among all of said eligible systems.

24. The method in claim 23 wherein the system weight assigning step further comprises the steps of:

in the event identifications of more candidate systems than identifications of eligible systems are to be taken from said second and first sets, respectively, setting the system weight for each different eligible system to be taken from the second set to a pre-defined fixed weight; and

in the event identifications of more eligible systems than identifications of candidate systems are to be taken from said first and second sets, respectively, setting the system weight for each different candidate system to be taken from the first set to a minimum of either an average and a median of the system weights of all the eligible systems to be taken from the first set.

25. The method in claim 24 wherein the server weight determining step comprises the steps of, for said eligible servers residing on each one eligible system:

where the number of eligible servers residing thereon exceeds the system weight therefor, setting the server weight for each of the eligible servers residing on said each one eligible system equal to the system weight therefor divided by the number of eligible servers; and

where the number of eligible servers residing therein is less than the system weight therefor,

selecting one of the eligible servers residing on said each one eligible system as a selected eligible server;

assigning the entire system weight for said each one eligible system to said selected eligible server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one eligible system.

26. The method in claim 25 wherein the server weight determining step comprises the steps of, for said candidate servers residing on each one candidate system:

where the number of candidate servers residing thereon exceeds the system weight therefor, setting the server weight for each of the candidate servers residing on said each one candidate system equal to the system weight therefor divided by a number of candidate servers residing thereon; and

where the number of candidate servers residing therein is less than the system weight therefor,

selecting one of the candidate servers residing on said each one candidate system as a selected candidate server;

assigning the entire system weight for said each one candidate system to said selected candidate server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one candidate system.

27. The method in claim 26 wherein the server weight determining step further comprises the steps of:

if one or more eligible servers identified in the third set each has a zero server weight and the identification of one or more of said zero-weighted eligible servers is to be written into the output server set:

writing the identifications of each successive zero-weighted eligible server into the output server set as an output eligible server until the output server set is full or the identifications of all the zero-weighted eligible servers have been taken; and

assigning a pre-defined fixed server weight to the output eligible server; and

if one or more candidate servers identified in the fourth set each has a zero server weight and the identification of one or more of said zero-weighted candidate servers is to be written into the output server set:

writing the identifications of each successive zero-weighted candidate server into the output server set as an output candidate server until the output server set is full or the identifications of all the zero-weighted candidate servers have been taken; and

assigning a pre-defined fixed server weight to the output candidate server.

28. The method in claim 27 wherein the pre-defined utilization equals at least 5% of total capacity provided by said each active one system and the pre-defined fixed weight is one.

29. The method in claim 28 wherein the server weight determining step comprises the steps of, for said eligible servers residing on each one eligible system:

where the number of eligible servers residing thereon exceeds the system weight therefor, setting the server weight for each of the eligible servers residing on said each one eligible system equal to the system weight therefor divided by the number of eligible servers; and

where the number of eligible servers residing therein is less than the system weight therefor,

selecting one of the eligible servers residing on said each one eligible system as a selected eligible server;

assigning the entire system weight for said each one eligible system to said selected eligible server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one eligible system.

30. The method in claim 29 wherein the server weight determining step comprises the steps of, for said candidate servers residing on each one candidate system:

where the number of candidate servers residing thereon exceeds the system weight therefor, setting the server weight for each of the candidate servers residing on said each one candidate system equal to the system weight therefor divided by a number of candidate servers residing thereon; and

where the number of candidate servers residing therein is less than the system weight therefor,

selecting one of the candidate servers residing on said each one candidate system as a selected candidate server;

assigning the entire system weight for said each one candidate system to said selected candidate server as the server weight therefor; and

assigning zero as the server weight to each remaining one of said eligible servers residing on said each one candidate system.

31. The method in claim 30 wherein the server weight determining step further comprises the steps of:

if one or more eligible servers identified in the third set each has a zero server weight and the identification of one or more of said zero-weighted eligible servers is to be written into the output server set:

writing the identifications of each successive zero-weighted eligible server into the output server set as an output eligible server until the output server set is full or the identifications of all the zero-weighted eligible servers have been taken; and

assigning a pre-defined fixed server weight to the output eligible server; and

if one or more candidate servers identified in the fourth set each has a zero server weight and the identification of one or more of said zero-weighted candidate servers is to be written into the output server set:

writing the identifications of each successive zero-weighted candidate server into the output server set as an output candidate server until the output server set is full or the identifications of all the zero-weighted candidate servers have been taken; and

assigning a pre-defined fixed server weight to the output candidate server.

32. The method in claim 31 wherein the system weight assigning step comprises the steps of:

ascertaining the total available capacity utilized as total capacity utilized by all of the eligible systems in the first set at the lowest one of the business importance levels which has sufficient capacity; and

specifying, for each one of the eligible systems in the first set, the system weight therefor as a function of a ratio of capacity utilized by said each one eligible system and at the lowest one of the business importance levels which has sufficient capacity, divided by the total available capacity utilized at a target importance level among all of said eligible systems.

33. The method in claim 32 wherein the system weight assigning step further comprises the steps of:

in the event identifications of more candidate systems than identifications of eligible systems are to be taken from said second and first sets, respectively, setting the system weight for each different eligible system to be taken from the second set to a pre-defined fixed weight; and

in the event identifications of more eligible systems than identifications of candidate systems are to be taken from said first and second sets, respectively, setting the system weight for each different candidate system to be taken from the first set to a minimum of either an average and a median of the system weights of all the eligible systems to be taken from the first set.

34. The method in claim 33 wherein the pre-defined utilization equals at least 5% of total capacity provided by said each active one system and the pre-defined fixed weight is one.

35. In a multi-processing environment having a plurality of computer systems, each of said systems having an operating system instance resident thereon and providing at least one application server, apparatus for assigning work requests among individual ones of the servers in order to meet business goals inherent in a policy governing the environment, the apparatus comprising:

means, responsive to an incoming request to route work, for classifying each active one of the systems either as an eligible system that then exhibits at least a minimum pre-defined capacity utilization, at a lowest one of a number of pre-defined business importance levels among all the systems, over a first pre-defined time interval, or as a candidate system so as to form first and second sets of eligible and candidate systems, respectively; each eligible system being one of the systems that is goal-oriented and runs under the policy for which current capacity information is available, and each candidate system being any remaining one of said plurality of systems other than all the eligible systems; and

means, operative in conjunction with said classifying means, for forming third and fourth sets of eligible and candidate servers, respectively, such that said third and fourth sets contain identifications of all active ones of the servers residing on each of the systems in said first and second sets, respectively;

means for assigning a system weight to each one of the systems in the first and second sets, the system weight representing an amount of total available capacity utilized at the lowest one of the business importance levels, by said each one system in the first and second sets;

means for determining, in conjunction with said system weight assigning means and for each different one of the systems in said first and second sets, a corresponding server weight for each different server residing on said each different one system;

means for forming, in response to said third and fourth sets, an output server set populated first by identifications of eligible servers, and their associated server weights, taken, successively and in order of descending server weights, from said third set followed, by identification of servers, and their associated server weights, taken successively from said fourth set; and

means for routing work requests to each one of the servers identified in the output server set wherein, of a total number of work requests to be routed to all of the identified servers, an amount of the total work requests is routed to each one identified server in the output server set in proportion to the server weight associated therewith.

36. The apparatus in claim 35 wherein the output server set forming means comprises:

means for writing identifications of successive ones of the eligible servers, if any, and their associated weights, from the third set into the output server set until the output server set is full or identifications of all the eligible servers in the third set have been taken; and

means for writing, if the output server set is not full, identifications of successive ones of the candidate servers, and the associated server weights, from the fourth set into the output server set until either the output server set is full or identifications of all the candidate servers in the fourth set have been taken.

37. The apparatus in claim 36 wherein the system weight assigning means comprises:

means for ascertaining the total available capacity utilized as total capacity utilized by all of the eligible systems in the first set at the lowest one of the business importance levels which has sufficient capacity; and

means for specifying, for each one of the eligible systems in the first set, the system weight therefor as a function of a ratio of capacity utilized by said each one eligible system and at the lowest one of the business importance levels which has sufficient capacity, divided by the total available capacity utilized at a target importance level among all of said eligible systems.

38. The apparatus in claim 37 wherein the system weight assigning means further comprises:

first means for setting, in the event identifications of more candidate systems than identifications of eligible systems are to be taken from said second and first sets, respectively, the system weight for each different eligible system to be taken from the second set to a pre-defined fixed weight; and

second means for setting, in the event identifications of more eligible systems than identifications of candidate systems are to be taken from said first and second sets, respectively, the system weight for each different candidate system to be taken from the first set to a minimum of either an average and a median of the system weights of all the eligible systems to be taken from the first set.

39. The apparatus in claim 36 wherein the server weight determining means comprises:

means for setting, where the number of eligible servers residing on each one eligible system exceeds the system weight therefor, the server weight for each of the eligible servers residing on said each one eligible system equal to the system weight therefor divided by the number of eligible servers; and

means, operative where the number of eligible servers residing therein is less than the system weight therefor:

for selecting one of the eligible servers residing on said each one eligible system as a selected eligible server,

for assigning the entire system weight for said each one eligible system to said selected eligible server as the server weight therefor, and

for assigning zero as the server weight to each remaining one of said eligible servers residing on said each one eligible system.

40. The apparatus in claim 39 wherein the server weight determining means comprises:

means for setting, where the number of candidate servers residing on each one candidate system exceeds the system weight therefor, setting the server weight for each of the candidate servers residing on said each one candidate system equal to the system weight therefor divided by a number of candidate servers residing thereon; and

means, operative where the number of candidate servers residing therein is less than the system weight therefor:

for selecting one of the candidate servers residing on said each one candidate system as a selected candidate server,

for assigning the entire system weight for said each one candidate system to said selected candidate server as the server weight therefor, and

for assigning zero as the server weight to each remaining one of said eligible servers residing on said each one candidate system.

41. The apparatus in claim 40 wherein the server weight determining means further comprises:

means, operative if one or more eligible servers identified in the third set each has a zero server weight and the identification of one or more of said zero-weighted eligible servers is to be written into the output server set:

for writing the identifications of each successive zero- weighted eligible server into the output server set as an output eligible server until the output server set is full or the identifications of all the zero-weighted eligible servers have been taken, and

for assigning a pre-defined fixed server weight to the output eligible server; and

means, operative if one or more candidate servers identified in the fourth set each has a zero server weight and the identification of one or more of said zero-weighted candidate servers is to be written into the output server set:

for writing the identifications of each successive zero-weighted candidate server into the output server set as an output candidate server until the output server set is full or the identifications of all the zero-weighted candidate servers have been taken; and

for assigning a pre-defined fixed server weight to the output candidate server.

42. The apparatus in claim 36, wherein the multi-processing environment is a sysplex, further comprising: means for receiving, from a network connected to the sysplex, the incoming request in a routing node, the routing node being one of the plurality of systems.

43. The apparatus in claim 42 further comprising:

means for communicating, through the network, the output server set from the routing node to a client application executing in a client computer connected through the network to the sysplex; and

said work requests routing means comprises means for routing each of the total number of work requests, from the client application through the network, to a corresponding one of the servers in the sysplex and identified in the output server set.

44. The apparatus in claim 42 further comprising:

means for receiving, at the routing node, the total number of work requests from a client application executing in a client computer connected through the network to the sysplex; and

said work requests routing means comprises means, situated within the operating instance in the routing node, for routing each of the total number of work requests received thereat to a corresponding one of the servers in the sysplex and identified in the output server set.
 Description Submit all comments and votes
 


CROSS-REFERENCE TO RELATED APPLICATION

This application describes and claims subject matter that is also described in co-pending United States patent application of Jeffrey D. Aman, David B. Emmes and David W. Palmieri entitled "APPARATUS AND ACCOMPANYING METHOD FOR ASSIGNING SESSION REQUESTS IN A MULTI-SERVER SYSPLEX ENVIRONMENT"; filed concurrently herewith; assigned Ser. No. 08/488,374, now pending and which is also assigned to the present assignee hereof.

BACKGROUND OF THE DISCLOSURE

1. Field of the Invention

The invention relates to apparatus and accompanying methods for use preferably, though not exclusively, in a multi-system shared data (sysplex) environment, wherein each system provides one or more servers, for dynamically and adaptively assigning and balancing new work and for session requests, among the servers in the sysplex, in view of attendant user-defined business importance of the requests and available sysplex resource capacity so as to meet overall business goals.

2. Description of the Prior Art

Prior to the early-1980s, large scale computing installations often relied on using a single monolithic computer system to handle an entire processing workload. If the system failed, all processing applications in the workload were suspended until the failure was remedied. While a resulting processing delay was tolerated at first, as increasingly critical applications were processed through the system, any such ensuing delays became increasingly intolerable. Furthermore, as processing needs increased, the entire system was eventually replaced with a new one of sufficient capacity. Replacing systems in that manner proved to be extremely expensive and very inefficient. However, at that time, few workable alternatives existed, to using monolithic systems, that appreciably eliminated both these outages and an eventual need to replace the entire system.

To efficiently address this need, over the past several years and continuing to the present, computer manufacturers are providi