The present invention relates to the field of electronic mail (e-mail). More particularly, the present invention relates to a mail client that is cognizant of data link characteristics.
Typical electronic mail (e-mail) systems utilize a mail server, often controlled by the Internet Service Provider (ISP) or other manager of email service, as well as a mail client located on each user's machine. The mail server typically has permanent access to the Internet, as well as other external networks and public data communications networks. The mail server stores and manages user electronic mails. Mail for each authorized user on the system is maintained within an individual storage architecture, commonly known as an inbox.
Mail received at the mail server is typically processed based on a recipient address identified within the electronic mail. Each user then may utilize a mail client to retrieve electronic mail from the mail server. The mail client can have only periodic access to the Internet, or other external networks and public data communications networks. The mail client may maintain local copies of selected electronic mails corresponding to the user. The mail client accesses the server to retrieve mail from the inbox. This is accomplished by providing authorization credentials to the authorized mail box. This may be repeated periodically to allow the mail client to download and/or copy newly received electronic mails into local storage. This is typically known as “polling”.
Typically, polling involves the mail client requesting a full listing of all the email header information. This full listing of all headers is then compared to the local storage record of the client. If there are any discrepancies, the client may then initiate data transfer(s) to synchronize the mail client's record with the mail server's record. This may include downloading new mail items that exist on the mail server but not on the mail client, as well as deleting old mail items that exist on the mail client but no longer exist on the mail server (for example, if an email has been recalled).
Each such polling event results in a large amount of data transferring between the mail server and the mail client. Furthermore, each polling event requires small but significant computational resources from the mail server. Frequent polling is required to ensure a short delay between the time when the mail server receives new mail and the time when the mail client is aware of the arrival of new mail. However, frequent polling increases the traffic capacity requirement of the network, as well as the computational resource usage on the mail server. On a wireless connection, bandwidth is of increased importance and thus this problem takes on even more relevance.
The mail client typically must be configured to balance the trade-off between timely notification of new mail and overloading of the data communications system and server. As such, the mail client typically configures its operation to best match the trade-off appropriate for the underlying data link characteristics (e.g., high bandwidth vs. low bandwidth). This has not been much of a concern with low-bandwidth links typically being circuit switched, as these links often do not suffer much overloading if high-bandwidth characteristics are assumed by the mail client. However, with the advent of packet switched radio data networks, mobile/portable devices can be continuously attached. The low-bandwidth of these networks will result in a highly inefficient operation of techniques used on high-bandwidth links are deployed.
What is needed is a solution that allows the prompt notification of new mail arrival while making the most efficient and effective use of the underlying data channel.
The present invention provides a solution wherein the underlying data network characteristics are detected by a mail client, which may then select the most efficient and effective use of the underlying data channel. In an embodiment of the present invention, the use of the data channel may be made more efficient by selecting a synchronization strategy based on the underlying data network characteristics. For example, in a high-bandwidth data network, full synchronization may be used, but in a low-bandwidth network, only partial and/or select synchronization may be used. This prevents the email user from having to reconfigure the mail client to ensure the most efficient synchronization process when the portable device is attached to a different network. This also reduces the possibility of inefficient usage of low-bandwidth data networks, thus improving network capacity and scalability.
The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more embodiments of the present invention and, together with the detailed description, serve to explain the principles and implementations of the invention.
In the drawings:
Embodiments of the present invention are described herein in the context of a system of computers, servers, and software. Those of ordinary skill in the art will realize that the following detailed description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of this disclosure. Reference will now be made in detail to implementations of the present invention as illustrated in the accompanying drawings. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts.
In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will, of course, be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made in order to achieve the developer's specific goals, such as compliance with application- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure.
In accordance with the present invention, the components, process steps, and/or data structures may be implemented using various types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein.
The present invention provides a solution wherein the underlying data network characteristics are detected by a mail client, which may then select the most efficient and effective use of the underlying data channel. In an embodiment of the present invention, the use of the data channel may be made more efficient by selecting a synchronization strategy based on the underlying data network characteristics. For example, in a high-bandwidth data network, full synchronization may be used, but in a low-bandwidth network, only partial and/or select synchronization may be used. This prevents the email user from having to reconfigure the mail client to ensure the most efficient synchronization process when the portable device is attached to a different network. This also reduces the possibility of inefficient usage of low-bandwidth data networks, thus improving network capacity and scalability.
There may be many different ways to effectively use an underlying data channel. Some of these ways will be discussed in this document. However, one of ordinary skill in the art will recognize that there may be other ways than those described herein. Furthermore, any combination of these ways may be used.
Full synchronization represents the typical synchronization process. In this process, a mail client requests full listings of mail headers from the mail server. The mail server then sends the full listing of mail records. The mail client may then examine the full listing of mail headers and select all the new mail records to download from the mail server. The mail client then requests the new mail records one at a time, and the server complies by sending the records one at a time. The mail client then disconnects from the mail server. Full synchronization is best used in high-bandwidth networks due to the amount of traffic it generates.
In an embodiment of the present invention, partial synchronization represents the downloading of only portions of the new mail records. In this process, a mail client may request full listings of mail headers from the mail server. The mail server may then send the full listing of mail records. The mail client may then examine the full listing of mail headers and select the new mail records to download from the mail server. Rather than download each new mail record in its entirety, however, the mail client may only download a portion of each new mail record. This may be referred to as a preview portion, and it could represent, for example, the first 3 lines of the mail record, or the first 200 characters, or the subject line only, etc. Attachments on the mail records may not be downloaded. The mail client then may request the partial new mail records one at a time, and the server complies by sending the records one at a time. The mail client may then disconnect from the mail server. The user, upon viewing the preview portion of the new email, may determine that he wishes to view the remainder of the new email. He may then request the full version of the new email from the mail server.
In another embodiment of the present invention, select synchronization represents the downloading of only certain new mail records. In this process, a mail client may request full listings of mail headers from the mail server. The mail server may then send the full listing of mail records. The mail client may then examine the full listing of mail headers and select the new mail records to download from the mail server. Rather than download each new mail record, however, the mail client may only request some of the new mail records based on some selection criteria. The selection criteria may include one or more of the following:
The mail client then may request the selected new mail records one at a time, and the server complies by sending the records one at a time. The mail client may then disconnect from the mail server.
In another embodiment of the present invention, select synchronization may be combined with partial and/or full synchronization for even more flexibility. For example, mail records marked as urgent may be downloaded using full synchronization, whereas mail records sent by specific correspondents may be downloaded using partial synchronization. One of ordinary skill in the art will recognize that these synchronization types may be mixed and matched to best suit the particular types of networks involved.
For purposes of this document, the term “abbreviated synchronization” may be used collectively to refer to all synchronization methods that involve the downloading of anything less than all the new mail records in their entirety. Therefore, partial and select synchronization may both be considered abbreviated synchronization. Additionally, synchronization methods where, for example, select synchronization is combined with full synchronization, would also be considered abbreviated synchronization, as in such cases not all new mail records are downloaded.
At 206, it may be determined if the connection between the mail client and the mail server is high bandwidth. It should be noted that the determination need not be an active step of “checking the connection”. It may be passive, such as receiving information from an outside source as to what type of connection it is. If the connection is high bandwidth, then at 208 a full synchronization procedure may be performed. Once this has been performed, then at 210 a short timer may be set for the next synchronization event or the client may be set to automatically synchronize on the next connection. One of ordinary skill in the art will recognize that a short timer need not be a specialized timer, but may simply be a timer set to a short amount of time.
If at 206 it was determined that the connection between the mail client and the mail server is not high bandwidth, then at 212 an abbreviated synchronization procedure may be performed. Once this has been performed, or if at 202 it was determined that the user does not request a synchronization, then at 214 a long timer may be set for the next synchronization event or the client may be set to automatically synchronize on the next connection. One of ordinary skill in the art will recognize that a long timer need not be a specialized timer, but may simply be a timer set to a long amount of time. It may be the same timer used as the short timer described above. The determination of whether a time period is short or long will depend on the configuration of the system and in an embodiment of the present invention is made in a way to maximize the efficiency of the system. In another embodiment of the present invention, a short period of time is defined to be 5 minutes or less and a long period of time is defined to be in excess of 5 minutes.
A high bandwidth deteminer 406 coupled to the connection determiner 400 may determine if the connection between the mail client and the mail server is high bandwidth. It should be noted that the determination need not be an active step of “checking the connection”. It may be passive, such as receiving information from an outside source as to what type of connection it is. If the connection is high bandwidth, then a full synchronization performer 408 coupled to the high bandwidth determiner 406 may perform a full synchronization procedure. Once this has been performed, then a short synchronization timer setter 410 coupled to the full synchronization process performer 408 may set a short timer for the next synchronization event or the client may be set to automatically synchronize on the next connection. One of ordinary skill in the art will recognize that a short timer need not be a specialized timer, but may simply be a timer set to a short amount of time.
If it was determined that the connection between the mail client and the mail server is not high bandwidth, then an abbreviated synchronization process performer 412 coupled to the high bandwidth determiner 406 may perform an abbreviated synchronization procedure. This may include performing partial synchronization using a partial synchronization process performer 414 and/or performing select synchronization using a select synchronization process performer 416. Once this has been performed, or it was determined that the user does not request a synchronization, then a long synchronization timer setter 418 coupled to the synchronization skipper 404 and to the abbreviated synchronization process performer 412 may set a long timer for the next synchronization event or the client may be set to automatically synchronize on the next connection. One of ordinary skill in the art will recognize that a long timer need not be a specialized timer, but may simply be a timer set to a long amount of time. It may be the same timer used as the short timer described above. The determination of whether a time period is short or long will depend on the configuration of the system and in an embodiment of the present invention is made in a way to maximize the efficiency of the system. In another embodiment of the present invention, a short period of time is defined to be 5 minutes or less and a long period of time is defined to be in excess of 5 minutes.
While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art having the benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.