CHANNEL LOAD BALANCING

Abstract: A method of channel routing. The method includes receiving an incoming connection, determining an amount of processing resources required to handle the incoming connection, and selecting a remote access server to handle the incoming connection, responsive to the determined amount of processing resources.

Description: CHANNEL LOAD BALANCING FIELD OF THE INVENTION The present invention relates to communication systems and in particular to systems for handling remote access connections. BACKGROUND OF THE INVENTION Many providers of communication services employ a plurality of remote-access servers, such as modems, Fax handlers and voice Internet Protocol (VoIP) services connected to telephone switches. A channel router receives incoming communication requests and determines which remote-access server is to handle each incoming request. Some remote access servers are multi-channel servers which have a capacity to handle concurrently a plurality of connections up to a predetermined maximal number. In addition, some remote- access servers which are implemented mainly in software, such as the Surf Multi-access Pool (SMP) from Surf Communication Solutions Ltd., and servers 3Com, Ascend, Access, ADI, Connexent, Telogy, and Hothaus, can handle different types of connections concurrently. When an incoming connection is received by the channel router, the router finds a remote-access server which can handle the type of the incoming connection and which is handling less than the maximal number of connections of its capacity. If no such server is found, a busy signal is returned in response to the incoming connection. The processing power required for handling a single connection depends on the type of the connection. For example, handling a modem connection usually requires more processing power than a Fax connection, and therefore a multi-channel multi-connection-type remote access server can handle concurrently different numbers of connections according to the types of the connections. In some cases, the exact processing power needed to handle a connection is not known until the handling of the connection actually begins. In order not to overload a server beyond its capacity, existing channel routers usually assume conservative numbers for the number of channels which can be handled concurrently by a multi-channel server, for example, assuming that all the connections the server handles require a maximal processing power required by any connection. This causes waste in the usage of the multi-channel remote access servers in a multi-service system. This waste, however, provides additional assurance that the servers will be able to handle the connections they are assigned. SUMMARY OF THE INVENTION An aspect of some embodiments of the present invention relates to a channel router which routes incoming connections to multi-access servers based on the actual processing resources (e.g., processing power, memory) required for the connection and the available resources of the servers. Possibly, the channel router keeps track not only of the number of connections handled at any specific moment by each remote access server, but of the type of the connections and/or the resources that these connections require. Alternatively or additionally, the channel router is constantly updated by the remote access servers of their available unused resources, or of data from which the amount of available resources may be determined. Accordingly, the channel router selects, for each incoming connection, a server which handles the connection. The selection is possibly performed in a manner which maximizes the number of connections which are handled concurrently by the system. In some embodiments of the invention, the selection is performed using packing theory algorithms. An aspect of some embodiments of the present invention relates to a channel router which keeps track of the processing resources of the remote access servers by receiving from at least some of the servers updates relating to the available resources of the servers. Possibly, the updates state the unused processing resources of the servers. Alternatively or additionally, the updates state the numbers and/or types of connections currently being handled by the servers. In some embodiments of the present invention, the router re-routes connections between servers while the connections are in progress. In some cases an incoming connection requires an amount of resources which is not available on any of the servers but is available on two or more servers together. Possibly, the router re-routes one or more connections which require less resources than the incoming connection between the servers in order to make a single server have sufficient resources to handle the incoming connection. There is therefore provided in accordance with an embodiment of the present invention, a method of channel routing, including receiving an incoming connection, determining an amount of processing resources required to handle the incoming connection, and selecting a remote access server to handle the incoming connection, responsive to the determined amount of processing resources. Possibly, determining the amount of processing resources includes determining an amount of processing power and/or an amount of memory. Possibly, determining the amount of processing power includes selecting an amount of processing power from a look up table. Alternatively or additionally, determining the amount of processing resources includes determining a plurality of suitable combinations of resources. Possibly, determining the amount of processing resources includes determining responsive to a type of the received incoming connection and/or to a quality of service of the received incoming connection. Possibly, determining the amount of processing resources includes determining separately for each remote access server responsive to capabilities of the remote access server. Possibly, selecting the remote access server includes determining an amount of available processing resources for each of a plurality of remote access servers. Possibly, determining the amount of available processing resources for each of the remote access servers includes receiving indications of the available processing power from the remote access servers. Possibly, receiving indications of the available processing resources includes receiving indications periodically irrespective of the receiving of the incoming connection. Possibly, determining the amount of available processing resources for each of the remote access servers includes keeping track of the assignment of connections to be handled by the servers. Possibly, selecting the remote access server includes selecting based on packing theory. Possibly, selecting the remote access server includes selecting according to a priority of the received incoming connection. Possibly, the method includes requesting from the selected remote access server to lower the amount of processing resources assigned to one or more currently handled connections in order to vacate resources for the received incoming connection. There is further provided in accordance with some embodiments of the present invention, a method of managing a plurality of remote access servers by a channel router, including receiving by the channel router from at least one of the remote access servers, data on the current usage of the server, and determining available processing resources of the at least one server responsive to the received data. Possibly, receiving the data includes receiving indication of the available processing power. Possibly, receiving the data includes receiving data on of the connections currently handled by the server. Possibly, receiving the data includes receiving an indication of the number of connections currently handled by the server. Possibly, receiving the data includes receiving the data periodically. Possibly, receiving the data periodically includes receiving at periods determined responsive to attributes of the servers sending the updates. Possibly, receiving the data includes receiving the data responsive to prompting the servers for the data. There is further provided in accordance with some embodiments of the present invention, a method of channel routing, including receiving an incoming connection, selecting a remote access server to handle the incoming connection, and instructing the selected remote access server to reduce the amount of processing resources assigned to one or more currently handled connections of the server in order to vacate resources for the received incoming connection. There is further provided in accordance with some embodiments of the present invention, a switch system which handles incoming connections, including a plurality of remote access servers, and a channel router which determines for each incoming connection an amount of processing resources required to handle the incoming connection and which selects one of the remote access servers to handle the connection, responsive to the determined amount of processing resources. Possibly, the plurality of remote access servers includes at least one software based server. Possibly, the plurality of remote access servers includes at least one server which can handle connections of a plurality of different types. Possibly, at least one of the plurality of remote access servers sends updates relating to the available resources of the at least one server to the channel router. Possibly, the channel router manages a table of the available resources of each of the plurality of servers. Possibly, at least one of the servers includes an array of servers managed by an internal channel router. BRIEF DESCRIPTION OF FIGURES The invention will be more clearly understood by reference to the following description of embodiments thereof in conjunction with the figures, in which: Fig. 1 is a schematic illustration of an automatic connection handling system, in accordance with an exemplary embodiment of the present invention; and Fig. 2 is a flow chart of the actions performed by a channel router in handling an incoming connection, in accordance with an exemplary embodiment of the present invention. DETAILED DESCRIPTION OF EMBODIMENTS Fig. 1 is a schematic illustration of an automatic connection handling system 20, in accordance with an exemplary embodiment of the present invention. System 20 comprises a plurality of remote-access servers 24 and a channel router 22 which directs incoming connections to specific servers 24. Servers 24 may be of any type known in the art including single channel and multi-channel servers, servers which can handle one type of connection and servers which can handle a plurality of connections and both software based and hardware based servers. Servers 24 included in system 20 may all be of the same type or may be of different types, and may have the same or different processing resources. Optionally, servers 24 which process a plurality of connections may have a single processing cycle time in which all the handled connections must be processed or may have different processing cycle times for different handled connections, for example as described in US patent application 09/501,078, filed February 9, 2000, the disclosure of which is incorporated herein by reference. In some embodiments of the invention, at least some of servers 24 are multi-channel servers which can handle a plurality of different connection types. Servers 24 may be located within a single box or may be located in a plurality of separate locations. In some embodiments of the invention, a server 24 may comprise an array of a plurality of servers connected by a router, such as a router 22 in accordance with any of the embodiments of the present invention or any router known in the art. Thus, routers 22 may be implemented in a hierarchy of routers and servers. Table 1 is an example of a table of servers 24 in system 20 managed by channel router 22, in accordance with an embodiment of the present invention. For each remote access server 24, channel router 22 possibly lists information on the capabilities of the server, such as the types of connections the server can handle (line 1). For multi-channel multi-connection-type servers, such as software based servers, the table possibly also lists the total processing resources of the server (lines 2, 3 and 4). For other servers, the table possibly lists the number of connections which can be handled concurrently by the server (line 2, server D). Table 1 Possibly, channel router 22 also comprises a list of the processing resources required for each type of connection. In an embodiment of the invention, each server has a separate list of required processing resources (possibly part of table 1) according to the particular capabilities of the server (not shown). Table 1 possibly includes for each server 24 a list of the connections currently handled by the server (line 5, the numbers represent identities of connections) and/or the number of connections of each type handled by the server. Alternatively or additionally, table 1 lists the utilized and/or available (line 4) processing power of the server. In some embodiments of the invention, each time a connection is assigned to a server 24 and each time a connection is terminated, channel router 22 updates the server table so as to keep track of the available processing resources of each server 24. Possibly, servers 24 send updates also when the resources required to handle a currently handled connection change, for example, when the rate of a modem connection changes. Alternatively or additionally, some or all of servers 24 send updates to router 22, which updates are used to update the server table. Possibly, the updates include the currently available processing resources of the server. Alternatively or additionally, the updates include listings of the connections currently handled by the servers 24. In some embodiments of the invention, the updates are sent periodically every predetermined amount of time, such as every few seconds or minutes. Alternatively or additionally, the updates are sent each time there is a substantial change in the available processing resources of a server and/or in the number of connections handled by the server. Further alternatively or additionally, servers 24 send updates at rates determined according to the importance of their updates to the routing decisions made by router 22. The importance of the updates may be a function of the types of connections handled by the servers 24 and/or of the available processing resources of the servers. For example, in an exemplary embodiment of the invention, servers which have little available processing resources send frequent updates to channel router 24 while servers which have a large amount of available processing resources send updates less frequently. In some embodiments of the invention, channel router 22 prompts servers 24 for the updates. Optionally, each time an incoming connection is received, router 22 prompts for updates those servers 24 which are candidates to handle the connection. Alternatively or additionally, router 22 prompts servers 24 without relation to the incoming connections. Fig. 2 is a flow chart of the actions performed by channel router 22 for an incoming connection, in accordance with an embodiment of the present invention. In some embodiments of the invention, upon receiving (50) an incoming connection by channel router 22, the router determines (52) the processing resources required to handle the incoming connection. Responsive to the required processing resources, channel router 22 possibly selects (54) a server 24 to handle the incoming connection. In some embodiments of the invention, the required processing resources are determined based on the type of the incoming connection, e.g., Fax, voice, Fax over IP (FoIP), VoIP , video, modem, and xDSL. Optionally, the required processing resources are determined based on other connection attributes, such as, connection speeds, allowed delays (average, maximal), quality of service (QoS), class of service and encoding schemes of the data on the connection. The type of connection is possibly determined using any method known in the art, such as by automatic call identification and/or by using different telephone numbers for different types of connections and/or for connections with different attributes. In some embodiments of the present invention, incoming connections are referred to a temporary server 24 which begins handling the connection. Router 22 monitors the connection in order to determine the type of the connection and/or the processing resources required to handle the connection. After a server 24 to handle the connection is selected (54), the connection is re-routed to the selected server, while the connection is being handled. In an embodiment of the invention, the processing resources include one or more of processing power, memory, and connection bandwidth. The processing power required to handle a connection refers to a number of instructions per second which need to be performed in order to handle the connection and/or to an amount of time required to handle the connection per time unit. The processing power may be measured, for example, in MIPS, clock cycles and/or time. The processing power of a server 24 refers to the number of instructions the server can perform per second or to a similar measure. The connection bandwidth of a server 24 refers to the maximal amount of bandwidth the connection may receive along the links entering the server. The bandwidth may be referred to in some systems using numbers of PCM time slots. It is noted that in some embodiments of the invention there are a plurality different combinations of processing resources which can handle the same connection. In some embodiments of the present invention, the processing power required to handle a connection is a function of the memory allocated to the handling of the connection. That is, a certain connection may require x processing power if the connection is allocated y memory bytes and 2x processing power if the connection is allocated y/2 memory bytes. In this embodiment, the determining (52) of the processing resources comprises determining a plurality of resource combinations which are sufficient to handle the connection. In some embodiments of the invention, router 22 determines (52) the required processing resources by consulting a look up table. Alternatively or additionally, the required processing resources are calculated as a function of the type of the connection and the other attributes of the connection. In some embodiments of the invention, all of servers 24 require substantially the same amount of processing resources to handle the same connection. In this embodiment, channel router 22 possibly manages a single look up table from which the required processing resources are determined. In another embodiment of the invention, for example in which one or more of servers 24 are optimized for specific types of connections, the server-table lists for each server, the processing power required for each type of connection and for each different attribute value. Referring in more detail to selecting (54) a server 24 to handle the incoming connection, the selected server 24 is possibly one which can handle the specific type of the incoming connection, and has sufficient available processing resources to do so (at least the determined processing resources of the incoming connection). In some embodiments of the invention, the selection is performed using theoretical models, such as packing theory methods, in order to maximize the chances that at least one of servers 24 will have sufficient processing resources to handle subsequent incoming connections. For example, in an embodiment of the present invention, channel router 22 gives first precedence to selecting a server 24 which has sufficient available processing power to handle the incoming connection but does not have sufficient available processing power to handle connections which require more processing power. In some embodiments of the invention, router 22 attempts to leave available resources on servers 24 which are handling connections which are not utilizing maximal resources. For example, a server 24 which is handling a plurality of modem connections which are not working at their maximal speed is optionally left (if possible) with available resources to allow for higher modem rates, if required at a later time. In some embodiments of the present invention, router 22 stores incoming connection statistics, for example as a function of the time and/or date, and accordingly router 22 performs the connection assignments to servers 24. For example, if it is known that during the night most incoming connections are mode connections router 24 will attempt to leave room in servers 24 for as many as possible modem connections rather than leaving room for Fax and voice connections. In some embodiments of the present invention, the selection of a server 24 is performed based on the priorities of the various incoming connections. That is, router 22 maximizes the chances that connections of high priority will be handled. Connections of high priority, may be for example, connections of a certain type or connections from a certain caller. Alternatively or additionally, the selection of server 24 is performed to meet required QoS and classes of service of incoming connections. In some embodiments of the present invention, the selection of servers 24 to handle the incoming connections is performed in a manner which attempts to achieve an even distribution of the connections between the servers. An even distribution distributes the damage in case one of servers 24 suddenly fails. Alternatively to attempting to achieve an even distribution of all the connections, those connections which require high classes of service, e.g., high reliability, are divided evenly between servers 24 and the rest of the connections are divided according to other criterions. High reliability connections are possibly defined according to QoS and/or according to the type of the connection. For example, failure of VoIP connections is usually considered more annoying than failure of Fax connections and therefore VoIP connections require higher reliability. Alternatively to dividing some or all of the connections evenly, servers 24 are graded according to their reliability, and the number of connections assigned to specific servers 24 is determined according to the reliability of the servers. In some embodiments of the present invention, incoming connections may be serviced at different levels of service resulting in different usage levels of the resources of server 24. For example, modem connections may be handled at different rates. Possibly, in times when a large number of connections are expected, router 22 assigns lower levels of service to connections of low QoS and/or of types which are less urgent. Thus, router 22 leaves resources for incoming high priority connections. In some cases, none of servers 22 have sufficient available resources to handle an incoming connection. In an exemplary embodiment of the invention, upon receiving a connection of high priority when none of servers 24 have sufficient available resources to handle the connection, router 22 instructs one of servers 24 to lower the rate of one or more connections to make room for the newly coming high priority connection. Alternatively or additionally, upon receiving a connection which requires an amount of resources which is not available on any of servers 24, router 22 re-routes between the servers one or more connections which are in progress, in order to accumulate free resources on a single server which could handle the newly received connection. For example, two servers 24 may each have available resources which equal half the available resources required for a modem connection. Assuming a Fax connection requires half the resources of a modem connection, each one of these two servers 24 could handle an additional Fax connection. Therefore, router 22 possibly re-routes a Fax connection from one of the two servers to the other, freeing the required resources on the former server 24 to handle the incoming modem connection. In some embodiments of the invention, some or all of servers 24 have a common memory (not shown) in which status information of the connections, is stored. When a router 22 determines that a connection is to be transferred from a first server 24 to a second server 24 while the connection is being handled, router 22 instructs the first server 24 to stop processing the connection. The first server 24 optionally performs a final handling session of the connection and then acknowledges to the router that it is not handling the connection. Alternatively, the first server 24 immediately acknowledges that it is not handling the connection. Optionally in this alternative, if the first server 24 is in the middle of a handling session of the connection it first finishes the handling session. Thereafter, router 22 instructs the second server 24 to handle the connection. Optionally, the second server 24 immediately performs a processing session of the newly received connection. Alternatively, the connection is posted to wait its turn according to regular scheduling methods. Alternatively or additionally, other methods for transferring a connection between servers 24 may be used, such as described in relation to processors of a DSL modem pool in PCT application PCT/IL00/00266, filed May 9, 2000, the disclosure of which is incorporated herein by reference. Possibly, the methods described above for selecting (54) a server 24 for handling incoming connections, apply also to selecting servers for re-routed connections. The connections for which a server 24 is chosen may be re-routed for any reason, such as to make room for an incoming connection as described above and/or in case a server 24 fails and some or all of the connections it handled are re-routed. In some embodiments of the invention, router 22 determines periodically for each of servers 24 to which other servers its connections will be re-routed in case the server fails. Possibly, router 22 may operate in a backup mode in which servers 24 have at any time sufficient resources to handle the connections of one of the servers which fails and there exists a re-routing scheme which can re-route the connections of the failed server to the other servers. Possibly, in the backup mode router 22 routes the incoming connections accordingly and declines connections if necessary. Possibly, in the backup mode there is a re-routing scheme for the failure of any of servers 24. Alternatively, there is a re-routing scheme only for a sub-group of servers 24. Possibly, high priority connections are routed to servers 24 in the sub-group. In some embodiments of the invention, only a predetermined percentage of the connections on any single server 24 are included in the re-routing scheme in the backup mode. That is, router 22 will ensure that in case a server 24 fails while the router operates in the backup mode, that at least the predetermined percentage of the connections of the failing server will be able to be re-routed to other servers 24. It will be appreciated that the above described methods may be varied in many ways, including, changing the order of steps, and the exact implementation used. It should also be appreciated that the above described description of methods and apparatus are to be interpreted as including apparatus for carrying out the methods and methods of using the apparatus. The present invention has been described using non-limiting detailed descriptions of embodiments thereof that are provided by way of example and are not intended to limit the scope of the invention. Variations of embodiments described will occur to persons of the art. Furthermore, the terms "comprise," "include," "have" and their conjugates, shall mean, when used in the claims, "including but not necessarily limited to." The scope of the invention is limited only by the following claims:

Claims: CLAIMS 1. A method of channel routing, comprising: receiving an incoming connection; determining an amount of processing resources required to handle the incoming connection; and selecting a remote access server to handle the incoming connection, responsive to the determined amount of processing resources. 2. A method according to claim 1, wherein determining the amount of processing resources comprises determining an amount of processing power. 3. A method according to claim 2, wherein determining the amount of processing power comprises selecting an amount of processing power from a look up table. 4. A method according to any of claims 1-3, wherein determining the amount of processing resources comprises determining an amount of memory. 5. A method according to any of the preceding claims, wherein determining the amount of processing resources comprises determining a plurality of suitable combinations of resources. 6. A method according to any of the preceding claims, wherein determining the amount of processing resources comprises determining responsive to a type of the received incoming connection. 7. A method according to any of the preceding claims, wherein determining the amount of processing resources comprises determining responsive to a quality of service of the received incoming connection. 8. A method according to any of the preceding claims, wherein determining the amount of processing resources comprises determining separately for each remote access server responsive to capabilities of the remote access server. 9. A method according to any of the preceding claims, wherein selecting the remote access server comprises determining an amount of available processing resources for each of a plurality of remote access servers. 10. A method according to claim 9, wherein determining the amount of available processing resources for each of the remote access servers comprises receiving indications of the available processing power from the remote access servers. 11. A method according to claim 10, wherein receiving indications of the available processing resources comprises receiving indications periodically irrespective of the receiving of the incoming connection. 12. A method according to any of claims 9-11, wherein determining the amount of available processing resources for each of the remote access servers comprises keeping track of the assignment of connections to be handled by the servers. 13. A method according to any of the preceding claims, wherein selecting the remote access server comprises selecting based on packing theory. 14. A method according to any of the preceding claims, wherein selecting the remote access server comprises selecting according to apriority of the received incoming connection. 15. A method according to any of the preceding claims, comprising requesting from the selected remote access server to lower the amount of processing resources assigned to one or more currently handled connections in order to vacate resources for the received incoming connection. 16. A method of managing a plurality of remote access servers by a channel router, comprising: receiving by the channel router from at least one of the remote access servers, data on the current usage of the server; and determining available processing resources of the at least one server responsive to the received data. 17. A method according to claim 16, wherein receiving the data comprises receiving indication of the available processing power. 18. A method according to claim 16 or claim 17, wherein receiving the data comprises receiving data on of the connections currently handled by the server. 19. A method according to any of claims 16-18, wherein receiving the data comprises receiving an indication of the number of connections currently handled by the server. 20. A method according to any of claims 16-19, wherein receiving the data comprises receiving the data periodically. 21. A method according to any of claims 16-20, wherein receiving the data periodically comprises receiving at periods determined responsive to attributes of the servers sending the updates. 22. A method according to any of claims 16-21, wherein receiving the data comprises receiving the data responsive to prompting the servers for the data. 23. A method of channel routing, comprising: receiving an incoming connection; selecting a remote access server to handle the incoming connection; and instructing the selected remote access server to reduce the amount of processing resources assigned to one or more currently handled connections of the server in order to vacate resources for the received incoming connection. 24. A switch system which handles incoming connections, comprising: a plurality of remote access servers; and a channel router which determines for each incoming connection an amount of processing resources required to handle the incoming connection and which selects one of the remote access servers to handle the connection, responsive to the determined amount of processing resources. 25. A system according to claim 24, wherein the plurality of remote access servers comprises at least one software based server. 26. A system according to claim 24 or claim 25, wherein the plurality of remote access servers comprises at least one server which can handle connections of a plurality of different types. 27. A system according to any of claims 24-26, wherein at least one of the plurality of remote access servers sends updates relating to the available resources of the at least one server to the channel router. 28. A system according to any of claims 24-27, wherein the channel router manages a table of the available resources of each of the plurality of servers. 29. A system according to any of claims 24-28, wherein at least one of the servers comprises an array of servers managed by an internal channel router.

Inventors: BRIDGER JACOB, NETZER ARNON, BRIDGER, JACOB, NETZER, ARNON
Applicants: BRIDGER JACOB, NETZER ARNON, SURF COMM SOLUTIONS LTD, BRIDGER, JACOB, NETZER, ARNON, SURF COMMUNICATION SOLUTIONS, LTD.
Application year: 2000
Main classification: H04L12
IPC codes: H04L12, H04M11