LOAD BALANCING VIA MESSAGE SOURCE SELECTION
Field of The Invention The field of the invention is computer networks.
Background of The Invention
In a typical electronic mail system, when a user sends a mail message to an external address, the following typically occurs: first, the user interacts with a user agent (such as "sendmail" on UNIX systems or Microsoft Outlook® on Microsoft Windows® systems) which accepts text and a request to send the text; second, upon receipt of the request to send, the text is converted into an electronic mail (e-mail) message and transferred to a local mail transfer agent (MTA) (such as "mailhost" on a UNIX systems or "Microsoft Exchange Server®" on Microsoft Windows® systems); finally, the local MTA, either directly or through a relay MTA, transfers the message to a receiving MTA ("mailhost" or "Microsoft Exchange Server®"). Details regarding mail systems as implemented on TCP IP networks can be found in the series TCP/IP Illustrated published by Addison Wesley Longman, Inc., herein incorporated by reference in its entirety, and particularly Volume 1 of the series by W. Richard Stevens.
The step of transferring the message from the local MTA to the receiving MTA often involves choosing a route from the local MTA to the receiving MTA. Route selection is typically accomplished via low level protocols and "quasi-static" routing tables. Routing tables are "quasi-static" in the sense that they only change when the topography of the network changes, or when manually modified by an operator. Such tables are typically used to implement "cost based" routing in that each link in a table has an assigned cost and route selection is done so as to minimize the cost.
For a system which generates large amounts of long e-mail messages, the local MTA (or the relay MTA if one is used) can become overwhelmed due to the volume of traffic to be handled. For very high volumes of traffic, there may be a significant delay between the time when a message is originally "sent" (given to the user agent) and when it actually gets delivered (transferred by the local or relay MTA to a receiving MTA).
One method that might be applied to help prevent overwhelming an MTA is load balancing. Although load balancing mechanisms are known, they are generally limited to handling high volumes of incoming requests for data files such as requests for "web" pages. In such systems, an incoming request is initially directed to a "traffic cop"' such as a load balancing router which then directs the request for data file and/or connection to an available computer or other device. Although such systems may be advantageous in the proper circumstances, there existence does not provide a mechanism for balancing the load caused by a high volume of outgoing mail messages.
A modified form of cost based routing replaces the cost figure with a desired relative frequency as is described in U.S.Patent No. 5,872,930 herein incorporated by reference in its entirety. Although this form achieves a type of load balancing, it is still based on quasi-static tables.
Quasi-static tables are not always sufficient because they do not take into account variations in network traffic or the capabilities of individual links. For example, a route over which a message is to travel based on the routing tables may be overburdened and acting as a bottleneck. Such bottlenecks can be particularly troubling when a mail message includes large amounts of data.
Summary of the Invention
Methods and devices for load balancing via gateway and source selection are described herein. More specifically, one such method comprises: providing a mail network having an initiator and at least two gateways, the initiator identifying a mail message recipient and identifying advertising material to be mailed to the recipient; selecting a gateway from the at least two gateways; requesting the selected gateway to generate an e-mail message which includes the identified advertising material; and the selected gateway generating and sending the requested message to the mail message recipient.
Various objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of preferred embodiments of the invention, along with the accompanying drawings in which like numerals represent like components.
Brief Description of The Drawings
Fig. 1 is a schematic view of a network embodying the invention.
Fig. 2 is a diagram of a procedure embodying the invention.
Detailed Description Referring first to figure 1. a load balanced mail network 1 (LBM net) comprises at least two gateways 10 and 20, each gateway having a message transfer agent (12 and 22) capable of generating and sending electronic mail message to a plurality of external computers (40, 50, 60); at least one initiator 30 comprising an initiating agent 32, the initiating agent 32 capable of obtaining information on available gateways (10 and 20), identifying a mail recipient, identifying advertising material to be mailed to the recipient, choosing a gateway (10 or 20) based on the obtained information and/or the identified recipient and advertising material, and transferring a request to generate an electronic mail message to the chosen gateway (10 or 20). The selected gateway generates and sends an e- mail message containing the identified advertising material to the identified recipient's account on one of the external computers (40, 50, or 60).
As used herein, the term "mail network" means the initiator, the gateways, and the communication paths among them. A load balanced mail network is a mail network in which at least some of the various components cooperate to balance the load on the network to maximize throughput. Any computer, routers, bridges, or other devices which are not part of the mail network are referred to as being "external" to the mail network. Thus, an "external computer" is a computer which is not an initiator, a gateway, or part of the communication pathway between the initiator and gateway. External devices may be interconnected so as to form one or more external networks such as the INTERNET. As an example, on an office LAN which has a single computer to connect the LAN to the INTERNET and to host an MTA for accepting e-mail messages from user agents on individual machines, the LAN is the mail network and the INTERNET is an external network comprising many external devices.
The gateways provide a clean point of separation between the mail network and the external network. In most embodiments, the separation will be a physical one in which the only physical connection between the mail network and the external network is the gateway. Thus, in the office LAN example previously discussed, the gateway and any device or
communication path on the LAN side of the gateway is part of the mail network and any device or communication path which is on the INTERNET side of the gateway is an external device. However, not all embodiments need have physically separation between the mail network and external network, such as where one or more communication paths in the mail network are shared with the external network. In such embodiments, the separation is based more on separation of device functions and flow of data than on physical separation with any data/packets destined for the external network flowing through the gateway as though the mail network and external network were physically distinct.
As was the case in the office LAN example, it is preferred that the gateway be a computer coupling the mail network to the INTERNET and via the INTERNET to a plurality of recipient mail hosts/destinations. In such an embodiment, the INTERNET is an external network and the recipient mail hosts are external devices.
Gateways 10 and 20 are preferred to be computers which can accept requests from the initiator to assemble and disseminate mail messages from the initiating agent 32 running on the initiator 30, and to perform the requested assembly and dissemination. Gateways 10 and 20 may include any combination of hardware and software which allow them to accomplish their tasks, however, in preferred embodiments, the initiating agent 32 and MTAs 12 and 22 will have a client-server type relationship with the MTAs 12 and 22 acting as the server side.
It is contemplated that the gateways 10 and 20 might each have a set of multimedia files stored on them for inclusion in outgoing mail messages where the set on each gateway is identical with the sets on the other gateways. By storing a set of multimedia files on each gateway, the initiating agent need not send large amounts of data to each gateway, but instead need only send a request specifying the recipient of the message and what to include in the message.
One advantage of having the initiating agent send requests to "assemble and mail" rather than complete messages is that it helps prevent the network connecting the initiator to the gateways from carrying excess traffic, as the message is assembled from data located on the gateway. Thus, even though the system as a whole might require gigabytes per second of bandwidth, internal links do not correspond in size as the requests to "assemble and mail" take relatively little bandwidth.
Each gateway is also preferred to be connected to different points of an external network such as the INTERNET. In such a case, any outgoing mail or mail requests could be directed to a particular gateway. If information pertinent to message delivery were maintained for each gateway, it would be possible to use that information for choosing a "preferred" gateway for a given message or message request. Thus, it might be possible to choose a gateway because using that particular gateway will minimize the time needed to transfer a particular message to its recipient. The information collected may include but is not necessarily limited to the following: delivery time, round trip time, gateway response time, and files available on the gateway.
The step of having the initiating agent choose the gateway to use from among several possible gateways, can be viewed as providing a second layer of routing to the network. Such application layer routing allows the initial choice of routes to be based on information generally not available to lower level protocols. The ability to perform application layer routing is at least partially supported by maintaining a plurality of gateways having similar capabilities. It is contemplated that the concept of application can have many embodiments. The concept might best be described as, in a network comprising at least two layers or levels of protocols where one layer is a routing layer, using at least one layer other than the routing layer to route packets from one machine to another.
Initiator 10 and initiating agent 12 are preferred to maintain a list of recipients, data indicating preferences of the recipients, and available advertising materials. The initiator periodically sends requests to one of at least two gateways capable of generating e-mail messages containing selected advertising materials and sending such generated messages in response to requests received from the initiator. As with gateways 10 and 20, initiator 30 may comprise a combination of hardware and software which provides the necessary capabilities.
As used herein, "advertising materials" includes any material designed to cause someone to think or act in a particular way such as to vote for a particularly political candidate or purchase a particular product. The term includes pictures, graphics, sound, and video either individually or in combination, particularly electronically stored versions of such works. The term "multimedia file" as used herein includes computer files containing one or more such works.
Related methods of routing, load balancing, and additional information on possible relationships between the initiator and gateways can be found in U.S. Patent Applications titled "Message content based routing", "Dynamic Routing via Shortest Delivery Time", and "Historical Delivery Time Based Routing Tables" having inventors identical to this application and filed concurrently with this application, all of which are hereby incorporated by reference in their entireties.
Thus, specific embodiments and applications of methods and devices for load balancing via gateway selection have been disclosed. It should be apparent, however, to those skilled in the art that many more modifications besides those already described are possible without departing from the inventive concepts herein. The inventive subject matter, therefore, is not to be restricted except in the spirit of the appended claims. Moreover, in interpreting both the specification and the claims, all terms should be interpreted in the broadest possible manner consistent with the context. In particular, the terms "comprises" and "comprising" should be interpreted as referring to elements, components, or steps in a non-exclusive manner, indicating that the referenced elements, components, or steps may be present, utilized, or combined with other elements, components, or steps that are not expressly referenced.