|
Claims  |
|
|
I claim:
1. An apparatus for balancing a plurality of received processing requests
among a plurality of servers of a processing system network, said
processing system network further including at least one network node,
said apparatus comprising:
a plurality of communication ports, wherein a subset of said plurality of
communication ports are in operative communication with at least a first
server, a second server and a first network node;
storage means for storing one or more measurable characteristics for at
least each of said first server and said second server, wherein at least
each of said first server and said second server are operative to run a
plurality of common applications, said one or more measurable
characteristics comprising network node measurable characteristics related
to a number of network nodes being serviced by each of said first server
and said second server and common application measurable characteristics
related to a number of network nodes requesting each of said plurality of
common applications; and
a control circuit operative to receive a first processing request to run a
selected one of said plurality of common applications from said first
network node and, in response to said processing request, to determine
which of said first server and said second server are capable of running
said selected common application as a function of said network node
measurable characteristics and said common application measurable
characteristics and to select at least one of said first server and said
second server to run said selected common application, said selection
causing said selected at least one of said first server and said second
server to run said selected common application.
2. The apparatus as set forth in claim 1 wherein said storage means is
further operative to store a plurality of processing instructions and said
control circuit comprises a processing unit operative to retrieve and
execute at least a subset of said plurality of processing instructions
from said storage means, said subset of processing instructions directing
said control circuit to allocate at least one of said first server and
said second server to run said selected common application.
3. The apparatus as set forth in claim 1 wherein said first network node is
one of a processing system, a local area network and a wide area network.
4. The apparatus as set forth in claim 1 wherein at least one of said one
or more stored measurable characteristics is selected from the group
consisting of server processing capacity, server remaining processing
capacity, server memory capacity, server remaining memory capacity, server
capacity, server priority, server on/off, current network nodes servicing,
current common application requests servicing, and application priority.
5. The apparatus as set forth in claim 1 wherein at least one of said one
or more measurable characteristics is stored in said storage means using a
subset of a plurality of linked list data cells.
6. The apparatus as set forth in claim 5 wherein said control circuit
further comprises means for traversing ones of said subset of linked list
data cells to retrieve said one or more linked measurable characteristics.
7. The apparatus as set forth in claim 1 wherein said control circuit is
further operative to receive a signal indicating that said selected at
least one of said first and second server is unavailable to run said
selected common application, and, in response to said received signal, to
select at least one of said first server and said second server to run
said selected common application as a function of said one or more
measurable characteristics.
8. The apparatus as set forth in claim 1 wherein said control circuit is
further operative, in response to said first processing request, to select
at least one of said first server and said second server as a function of
at least one of balancing ones of said plurality of processing requests
among ones of said plurality of servers and overall server response time.
9. A method for balancing a plurality of received processing requests among
a plurality of servers of a processing system network, said processing
system network further including at least one network node, said method
comprising the steps of:
receiving a first processing request to run a selected common application
from a first network node, wherein at least each one of a first server and
a second server is operative to run a plurality of common applications;
in response to said first processing request, determining which of said
first server and said second server are capable of running said selected
common application as a function of one or more measurable
characteristics, said one or more measurable characteristics comprising
network node measurable characteristics related to a number of network
nodes being serviced by each of said first server and said second server
and common application measurable characteristics related to a number of
network nodes requesting each of said plurality of common applications;
and
selecting at least one of said first server and said second server to run
said selected common application, said step of selecting causing said
selected at least one of said first server and said second server to run
said selected common application.
10. The method as set forth in claim 9 further comprising the step of
storing one or more of said plurality of measurable characteristics for at
least a subset of said plurality of servers.
11. The method as set forth in claim 10 further comprising the step of
retrieving said subset of said plurality of measurable characteristics.
12. The method as set forth in claim 9 further comprising the steps of:
storing a plurality of processing instructions; and
retrieving and executing at least a subset of said plurality of stored
processing instructions to allocate at least one of said first server and
said second server to run said selected common application.
13. The method as set forth in claim 9 wherein at least one of said
plurality of stored measurable characteristics is selected from the group
consisting of server processing capacity, server remaining processing
capacity, server memory capacity, server remaining memory capacity, server
capacity, server priority, server on/off, current network nodes servicing,
current application requests servicing, and application priority.
14. The method as set forth in claim 9 further comprising the step of
utilizing a subset of a plurality of linked list data cells to store at
least one of said plurality of stored measurable characteristics.
15. The method as set forth in claim 14 further comprising the step of
traversing ones of said subset of linked list data cells to retrieve at
least one of said subset of linked measurable characteristics.
16. The method as set forth in claim 9 further comprising the steps of:
receiving a signal indicating that at least one of said selected at least
one of said first server and said second server is unavailable to run said
selected common application; and
selecting, in response to said received signal, at least one of said first
server and said second server to run said selected common application as a
function of at least one of said measurable characteristics.
17. The method as set forth in claim 9 further comprising the step of
selecting, in response to said first processing request, at least one of
said first server and said second server as a function of at least one of
balancing ones of said plurality of processing requests among ones of said
plurality of servers and overall server response time.
18. An apparatus for balancing a plurality of processing requests among a
plurality of servers, said plurality of processing requests received from
a plurality of network nodes, said apparatus comprising:
storage means for storing one or more measurable characteristics for at
least a subset of said plurality of servers, wherein at least a first
server and a second server are members of said subset and are operative to
run a selected one of a plurality of common applications, and wherein said
one or more stored measurable characteristics comprises network node
measurable characteristics related to a number of network nodes being
serviced by each of said first server and said second server and common
application measurable characteristics related to a number of network
nodes requesting each of said plurality of common applications; and
processing means for determining, in response to a first processing
request, which of said first server and said second server are capable of
running said selected common application as a function of said one or more
measurable characteristics and selecting at least one of said first server
and said second server to run said selected common application, said
selection causing said selected at least one of said first server and said
second server to run said selected common application.
19. The apparatus as set forth in claim 18 wherein said processing means
further includes means for receiving a first request to run said selected
common application.
20. The apparatus as set forth in claim 18 wherein said processing means is
further operative to direct said selected at least one of said first
server and said second server to run said selected common application.
21. The apparatus as set forth in claim 18 wherein said storage means is
further operative to store a plurality of processing instructions and said
processing means is further operative to retrieve and execute a subset of
said plurality of processing instructions from said storage means, said
subset of processing instructions directing said processing means to
select at least one of said first server and said second server to run
said selected common application.
22. The apparatus as set forth in claim 18 wherein at least a subset of
said plurality of network nodes is one of a processing system, a local
area network and a wide area network.
23. The apparatus as set forth in claim 18 wherein at least one of said one
or more measurable characteristics is stored in said storage means using a
plurality of linked list data cells.
24. The apparatus as set forth in claim 23 wherein said processing means
includes means for traversing said subset of said plurality of linked list
data cells to retrieve said one or more linked measurable characteristics.
25. The apparatus as set forth in claim 18 wherein said processing means
further comprises:
means for receiving a signal indicating that said selected at least one of
said first server and said second server is unavailable to run said
selected common application; and
means, responsive to said received signal, for selecting at least one of
said first server and said second server to run said selected common
application as a function of said one or more measurable characteristics.
26. The apparatus as set forth in claim 18 wherein said processing means is
further operative, in response to said first processing request, to select
at least one of said first server and said second server as a further
function of at least one of balancing ones of said plurality of processing
requests among ones of said plurality of servers and overall server
response time. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
A portion of the disclosure of this patent document contains material that
is subject to copyright protection. The copyright owner has no objection
to the facsimile reproduction by anyone of this patent document or the
patent disclosure, as it appears in the Patent and Trademark Office patent
files or records, but otherwise reserves all copyright rights whatsoever.
TECHNICAL FIELD OF THE INVENTION
The present invention relates generally to processing system network
connectivity, and more particularly, to apparatus and methods for
balancing processing requests among a plurality of servers in a processing
system network.
BACKGROUND
A processing system network, such as a computer network, is a combination
of network nodes and servers that are capable of communicating with one
another over one or more communication paths or links. Each network node,
as well as each server, is either an individual processing system, such as
a computer, or another processing system network. Network nodes and
servers communicate in order to share resources, such as databases and
data files, processing applications, hardware peripherals, communication
links and the like.
Each server typically performs at least one of three general functions or
services, namely, file management, printing or communications. Network
portal devices are typically used to couple network nodes and servers
together to facilitate resource sharing. The portal device functions as a
junction point through which the aforementioned server functions are
requested, accessed and utilized by one or more network nodes.
Assume for example that a particular application, APPL.sub.-- X, is
resident to a single server. A user wishing to access APPL.sub.-- X simply
identifies it by name through a particular portal device. This is commonly
referred to as "session establishment." This procedure is used to
"name-access" (i.e., identify) APPL.sub.-- X during "log-on" to the
server. In the event the server and the application are available, the
network node gains access to APPL.sub.-- X and utilizes it. Otherwise,
access is denied.
It is often desirable to make multiple copies of a particular application
available on a single processing system network. Assume APPL.sub.-- X is a
popular application and that the server upon which it resides does not
have the processing capacity to efficiently support all the network nodes
wishing to access and utilize it. In response to such circumstances,
additional copies of APPL.sub.-- X are typically made available on other
servers.
While these additional copies of APPL.sub.-- X should increase server
efficiency, as well as over-all processing system network throughput, this
has rarely been the case in practice. This is due largely because the
procedures for accessing a particular copy of APPL.sub.-- X have become
significantly more complicated.
Assume APPL.sub.-- X is resident on two or more servers. If a user wishes
to request, access and utilize APPL.sub.-- X, the name of the particular
copy of the application must be identified. One approach requires that
each duplicate copy of the particular application be given a different
name (e.g., APPL.sub.-- X1, APPL.sub.-- X2, . . . , APPL.sub.-- Xn). The
varied names are then associated with each of their respective servers. A
user wishing to utilize this particular application is thus required to
know the specific name of any duplicate copy that might be accessed.
Maintaining this information is at best difficult. Nonetheless it often
becomes necessary to do so in the event a current server running one or
more copies of an application fails or, alternately, if the processing
response time of the current server is unacceptable. Users typically, and
understandably so, have trouble remembering the various names of the
applications. Accessing a particular application often becomes a time
consuming and annoying process as the burden of selecting a server running
the application, which hopefully provides an acceptable response time,
falls upon the user. The user's selection of servers becomes a trial and
error process. This difficulty is compounded when considering that one or
more application copies are sometimes moved from one server to another.
There accordingly exists a need in the art to simplify the requirements for
a user to gain access to a single one of multiple copies of a particular
application on a processing system network, wherein the multiple copies
reside on different servers.
There exists a further need to substantially minimize a user's involvement
in selecting a server to run a particular application with as prompt a
processing response time as is then available.
SUMMARY OF THE INVENTION
Broadly, the present invention is directed to apparatus and methods which
provide processing system network connectivity, and more particularly,
which balance processing requests across a plurality of servers of a
processing system network with little or no user involvement.
The principles of the present invention are particularly advantageous when
utilized in connection with Server-based or Peer-to-Peer Networking, as
well as in connection with other suitable connectivity strategies.
Server-based Networking is a connectivity strategy which dedicates one or
more servers to providing one or more of the server functions of file
management, printing or communications. Peer-to-Peer Networking is a
connectivity strategy which distributes server functions among a number of
different processing systems. These processing systems perform server
operations part of the time, and perform non-server operations otherwise.
An exemplary apparatus in accordance with the principles of the present
invention concerns balancing a plurality of received processing requests
among a plurality of servers. The processing requests are received from
one or more network nodes. The apparatus includes a plurality of
communication ports, a storage means and a control circuit. A subset of
the communication ports are in operative communication with at least a
first server, a second server and a first network node. At least each of
the first and the second servers are operative to run a common
application.
The storage means is operative to store one or more measurable
characteristics for at least each of the first and the second servers. The
control circuit is operative to receive a processing request to run the
common application from the first network node. In response to this
request, the control circuit is further operative to allocate at least one
of the first server and the second server to run the common application as
a function of the one or more measurable characteristics.
An important aspect of any apparatus, and in particular any control
circuit, in accordance with the principles of the present invention is
that it may be processing system, firmware or hardware based.
A method in accordance with the principles of the present invention
concerns balancing a plurality of received processing requests among a
plurality of servers of a processing system network. The processing system
network also includes at least one network node. One or more of a
plurality of measurable characteristics are stored for at least a subset
of the plurality of servers.
At least each of a first and a second server is operative to run a
particular application. A first processing request to run this application
is received from a first network node. In response to the first processing
request at least one of the first or the second server is allocated to run
the application as a function of a subset of the plurality of measurable
characteristics.
One embodiment for using and/or distributing the present invention is as
software. The software includes a plurality of processing unit
instructions which are stored to a conventional storage medium. The
instructions are readable and executable by one or more processing units.
The instructions, upon execution, operate to control the one or more
processing units to balance a plurality of processing requests among a
plurality of servers. Preferred storage media include without limitation,
magnetic, optical, and semiconductor, as well as suitably arranged
combinations thereof.
Advantageously, the present invention simplifies the requirements for a
user to gain access to one out of a plurality of copies of a particular
application on a processing system network, wherein the multiple copies of
the application reside on different servers.
Another advantage is that the present invention substantially minimizes a
user's involvement in selecting a server to run a particular application,
and further, that the selected server has as prompt a processing response
time as is available.
BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, and the
advantages thereof, reference is now made to the following Detailed
Description of the Invention taken in conjunction with the accompanying
drawings in which like numbers designate like parts, and in which:
FIG. 1 illustrates a block diagram of an exemplary processing system
network;
FIG. 2 illustrates an isometric view of an exemplary processing system
capable of functioning as a network node within the processing system
network of FIG. 1;
FIG. 3 illustrates a block diagram of a microprocessing system which may be
utilized in conjunction with the processing system of FIG. 2;
FIG. 4 illustrates a block diagram of an exemplary circuit operable to
balance a plurality of received processing requests among a plurality of
servers of a processing system network in accordance with the principles
of the present,invention;
FIG. 5 illustrates a block diagram of an exemplary conventional memory
device that may be utilized in conjunction with the exemplary control
circuit of FIG. 5; and
FIG. 6 illustrates a flow diagram for balancing a plurality of received
processing requests among a plurality of servers of a processing system
network in accordance with the principles of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates a block diagram of an exemplary processing system
network in which the principles of the present invention are particularly
advantageous. An application router ("Router") 100, which is a network
portal device, is shown suitably coupled via communication bus 101 with a
plurality of processing system network servers 102a to 102n. In a
preferred exemplary embodiment, Router 100 is a Comten 56XX Front End
Processor available from AT&T Global Information Solutions Co. ("AT&T
GIS") located in Dayton, Ohio, U.S.A.; communication bus 101 is a
conventional ethernet card, such as a model no. 5919-F110, available from
AT&T GIS, located in Roseville, Minn., U.S.A.; and each of servers 102a to
102n may be any suitable conventional processing system-based server, such
as, for example, an AT&T GIS 3525, available from AT&T GIS, located in
Columbia, S.C., U.S.A.
Router 100 is further coupled via communication buses 103a to 103n to one
or more wide area networks ("WANs") 104a to 104n. Each WAN 104 is a
collection of independent and distinct network nodes. WAN network nodes
work together over communication links that are typically relatively long.
These communication links are routinely provided by third-party carriers
such as by long-distance telephone companies. The InterNet is an example
of a worldwide WAN. Communications between WAN network nodes are generally
characterized by relatively slow signal transfer rates.
Router 100 is also coupled via communication buses 105a to 105n to a
plurality of local area networks ("LANs") 106a to 106n. Each LAN 105 is a
group of communicating network nodes that are located relatively close to
one another, such as within the same building or building complex. The
communication links between LAN network nodes are typically characterized
by relatively high-speed data transfer rates as compared with
communications between WAN network nodes.
Each of Router 100, WANs 104, and LANs 106 are coupled with a plurality of
network nodes 108a to 108n via conventional data buses. Each network node
108 may in point of fact be a processing system (e.g., a personal
computer) or another processing system network (e.g., a LAN or a WAN). The
processing system may suitably be operated by one or more human users. In
alternate embodiments, the processing system may suitably be arranged to
operate automatically with little or no user intervention.
Router 100 provides network connectivity between a plurality of servers 102
and a plurality of network nodes 108. This facilitates the sharing of
resources, and in particular the balancing of processing requests, which
involves the transfer and reception of large amounts of information. This
information is typically divided into packets, frames, groups, etc. ("data
packets"). Each data packet being a collection of related data items
including discrete data, address and/or instruction objects. Included
within these discrete objects is information necessary to route the data
packet between various network nodes 108 and servers 102.
FIG. 2 illustrates an isometric view of an exemplary processing system 200
capable of functioning as either a network node 108 or a server 102.
Processing system 200 is a suitably equipped conventional personal
computer, such as an AT&T Globalyst 3356, model no. 1006, available from
AT&T GIS, located in Dayton, Ohio, U.S.A., for example.
Processing system 200 includes a monitor 201, a housing 202 and a keyboard
203. Monitor 201 and keyboard 203 may suitably be replaced by other
conventional output and input devices, respectively. Housing 202 includes
both a floppy disk drive 204 and a hard disk drive 205. Floppy disk drive
204 is suitably operative to receive, read and write to external disks and
hard disk drive 205 is suitably operative for fast access storage and
retrieval. Floppy disk drive 204 may be replaced by or combined with other
conventional structures operative to receive and transmit data and/or
instructions, including without limitation, tape and compact disc drives,
telephony systems and devices (including videophone, paging and facsimile
technologies), and serial and parallel ports.
Housing 202 is illustrated having a cut-away portion which includes a
battery 206, a clock 207, a processing unit 208 and a memory storage
device 209. Processing unit 208 is suitably coupled with memory storage
device 209. Although processing system 200 is illustrated having a single
processing unit, a single hard disk drive and a single memory storage
device, processing system 200 may be equipped with a plurality of
processing units and/or suitably arranged memory storage devices.
It should be noted that any conventional processing system having at least
one processing unit which is suitable to function as one of a network node
or a server may suitably replace, or be utilized in conjunction with,
processing system 200, including without limitation, videophones,
telephones, televisions, sophisticated calculators, and hand-held,
laptop/notebook, mini, mainframe and super computers, including RISC and
parallel processing architectures, as well as within processing system
network combinations of the foregoing. Conventional processing system
architecture is more fully discussed in Computer Organization and
Architecture, by William Stallings, MacMillan Publishing Co. (3rd ed.
1993), which is incorporated herein by reference. Alternate processing
system embodiments may be firmware or hardware based.
FIG. 3 illustrates a block diagram of one exemplary microprocessing system
which may suitably be utilized in conjunction with processing system 200
of FIG. 2. The microprocessing system includes a single processing unit
208 coupled via data bus 301 with a single memory storage device 209.
Memory storage device 209 is suitably operative to store data and/or one
or more processing system instructions which processing unit 208 is
operative to retrieve and execute. Memory storage device 209 may be any
suitable conventional memory storage device. Processing unit 208 includes
a control unit 302, an arithmetic logic unit ("ALU") 303, and a local
memory storage device 304 (e.g., stackable cache, a plurality of
registers, etc.). Control unit 302 is operative to fetch processing system
instructions from memory storage device 209. ALU 303 is operative to
perform a plurality of operations, including addition and Boolean AND,
needed to carry out those instructions. Local memory storage device 304 is
operative to provide local high speed storage used for storing temporary
results and control information.
FIG. 4 illustrates a block diagram of an exemplary Router 100 in accordance
with the principles of the present invention. Router 100 is operative
generally to route a plurality of discrete data, address and/or
instruction objects around a processing system network. Router 100, more
particularly, is operative to receive a plurality of processing requests
from one or more network nodes 108 and to balance at least a subset of
these requests among a plurality of servers 102. Recall that each network
node 108 and each server 102 may in point of fact be any of a processing
system, a LAN or a WAN.
As previously discussed, in one preferred exemplary embodiment, Router 100
is a Comten 56XX Front End Processor which is available from AT&T GIS. The
Comten 56XX Front End Processor is more fully disclosed in the "Comten
5630 Communications Processor--Maintenance Guide," NCR Document No.
D2-576-A, which is incorporated herein by reference. This documentation is
available upon request from AT&T GIS by contacting AT&T GIS Information
Products Publishing which is located in Dayton, Ohio, U.S.A. Alternate
preferred exemplary embodiments of Router 100 include without limitation
other suitably arranged processing systems, programmable logic devices,
such as PALs (programmable array logic) and PLAs (programmable logic
arrays), DSPs (digital signal processors), FPGAs (field programmable gate
arrays), ASICs (application specific integrated circuits), and the like.
Router 100 includes a control circuit 401, a conventional me | | |