[0001] This application claims priority under 35 U.S.C. §120 to copending U.S. patent application Ser. No. 09/872,753, filed Jun. 1, 2001, entitled “System And Method For Progressive And Hierarchical Caching,” which application is incorporated entirely herein by reference. This application also claims priority under 35 U.S.C. §119(e) to copending U.S. Provisional Patent Application No. 60/376,962, filed on Apr. 30, 2002, entitled “Adaptive Synchronization Of Service Data,” which application is incorporated entirely herein by reference as well.
[0002] Various aspects of the present invention relate to a method and device for adaptively changing the synchronization parameters for synchronizing service data between an institutional data store associated with a user and a service provider providing telecommunication services for the user.
[0003] Many telecommunication service users obtain their services for or through a corporation or other institution. Thus, a user may obtain a wireless telephone service, electronic mail service, voice dialing service or the like for his or her use as an employee of a corporation. With this arrangement, the institution, the user or both may want the service provider to provide its services using specific data, hereafter referred to as service data, which includes data stored in the institution's database. For example, a user may subscribe to a voice activated dialing (VAD) service for work. The user or the user's employer might then want the service provider to provide the service using service data that includes the contact information stored in the employer's corporate database.
[0004] Service providers face a “firewall challenge,” however, when trying to provide services to end users based upon proprietary institutional databases. Specifically, the service providers must deploy their services using infrastructure housed within their data centers and/or networks, but these data centers and networks are situated outside of the security systems or “firewalls” that many institutions use to protect their propriety networks and infrastructure from unauthorized access. Thus, with the example of a voice activated dialing (VAD) service noted above, the employer's contact information may be stored and maintained in a server such as Microsoft Exchange® server or a Lotus Domino® server situated behind the employer's corporate firewall.
[0005] For the end user in this example, the simplest solution would be to have the service provider's VAD system directly access the employer's Microsoft Exchange® or Lotus Domino® server and extract the user's contact information directly, without requiring the user's involvement (other than, perhaps, to provide the user's username and password in order to give the provider initial access to the employer's Microsoft Exchange® or Lotus Domino® server). This approach, however, while easiest for the end user and desirable from the service provider's point-of-view, is not one that that will typically meet with the institution's approval. On one hand, the institution will not want its end users to be storing corporate credentials (used to access the institution's servers) on a system located outside the institution's domain. On the other hand, if a service provider's single system attempts to access data within an institution's server on behalf of multiple end users, the institution may have difficulty distinguishing this legitimate access from a hacker's attack, as they have similar characteristics.
[0006] One conventional solution to this “firewall challenge” is to deploy a Virtual Private Network (VPN) that securely bridges the service provider's network and infrastructure to the institution's network and infrastructure. Virtual Private Networks have a disadvantage, however, in that they require the institution's participation and significant resources to deploy and support. This disadvantage can be especially cumbersome for larger companies or institutions that are likely to have relationships with several different service providers and/or multiple networks (e.g., for different geographic regions, business units, subsidiaries, etc.).
[0007] Still another disadvantage associated with Virtual Private Networks is that they are based on “tunneling” a secure communication session within an insecure communication session that is transported over the public Internet. While this technique avoids the costs associated with building large private networks, it can lead to performance issues, as the “tunneling” process induces additional latency on top of the latency already inherent in communication over the Internet. Further, because Virtual Private Networks are built on top of the Internet, over which neither the service provider nor the institution can have total control, performance of Virtual Private Networks can vary significantly based on time-of-day, geography, and a number of other external
[0008] Another conventional solution to the “firewall challenge” uses synchronization technology. With this technique, the data normally stored and managed in the institution's platforms, like Microsoft Exchange® servers and Lotus Domino® servers, situated behind the institution's firewall, is replicated in one or more platforms maintained by the service provider. More particularly, a device behind the institution's firewall periodically connects to the service provider's system in order to (1) communicate changes made to the user's data through the user's normal interaction with the institution's systems, (2) determine if changes have been made to the user's service data as a result of the end user's interaction with the service provider, and (3), as needed, transfer data between the institution's system and the service provider's system and otherwise synchronize multiple instances of the user's service data. This approach overcomes the “firewall challenge” because the synchronization process can be initiated by a system operating within the institution's domain using an approved data transfer protocol, such as HTTP, its encrypted variant, HTTPS, or any other suitable data transfer protocol.
[0009] This approach relies on these periodic connections, or “polling”, because the institution's firewall prevents the service provider's systems from sending “change requests” to the institution's systems exactly when such change events occur. In other words, because the service provider's systems cannot directly communicate changes to the service data when and only when such changes occur, the institution's systems must instead periodically “check in” with the service provider's systems to determine if changes have occurred, even if none have. Failure to regularly make a periodic check could leave important changes un-synchronized, leading to user confusion or worse. For example, a time-critical electronic mail message initiated through the service provider's systems may go undelivered to one or more recipients for an unacceptable period of time, or a meeting initiated through the service provider's systems may not be reflected in the institution's systems in a timely fashion leading to a “double-booking” or other conflict in the user's schedule.
[0010] The conventional synchronization solution does have some problems, however. Because the synchronization process is initiated by a device or system operating behind the institution's firewall and within the institution's domain, it is necessary for such solutions to employ a “polling” approach where the institution's system periodically polls the service provider's system, as noted above. The selection of the polling interval or “synchronization interval” offers significant tradeoffs. This is because each concurrent connection has both a fixed and recurring cost component and the shorter the synchronization interval the greater the peak number of concurrent connections will be over a given period of time.
[0011] The selection of how much and the type of data to be synchronized during each synchronization process also presents significant tradeoffs. Like the synchronization operation, data storage also has fixed and recurring costs, so it is not desirable to store any more data than is needed. Also, the amount of synchronized data is related to the synchronization interval because it takes a finite amount of time to synchronize one or more data sets. Thus the larger the size of each synchronized data set and/or the greater the number of such sets, the longer the required synchronization interval. Otherwise, the number of concurrent synchronization communication sessions required to service every end user would approach the number of overall end users, which would be cost-prohibitive.
[0012] Still further, the synchronization interval and the amount of synchronized data both impact the end user's satisfaction. The shorter the synchronization interval, the more closely the synchronization process emulates the responsiveness of a direct access model where the service provider is able to access data in real-time directly from the institution's applications and systems. Similarly, the greater the quantity of data synchronized the synchronization process, the more closely the synchronization process emulates the responsiveness of the service provider accessing all available data by interfacing directly with institution's applications and systems.
[0013] The standard solution to these synchronization tradeoffs is to take one of the following approaches: (1) fixed synchronization interval, fixed synchronization data quantity, (2) fixed synchronization interval, user-defined synchronization data quantity, (3) user-defined synchronization interval, fixed synchronization data quantity, or (4) user-defined synchronization interval, user-defined synchronization data quantity. Each of these approaches has drawbacks, however. For example, the fixed synchronization interval, fixed synchronization data quantity approach offers predictable costs and is simple in that no end-user decision-making or configuration is required, but this approach uses an arbitrary synchronization interval and an arbitrary synchronization data quantity that may not meet the needs of all end users.
[0014] With the fixed synchronization interval, user-defined synchronization data quantity arrangement, the storage costs are not predictable, and the end-user must be involved in deciding upon and configuring the synchronization data quantity. Moreover, users will tend to “maximize” the synchronized data quantities, thereby driving up storage costs. With the user-defined synchronization interval, fixed synchronization data quantity approach, the connection costs are not predictable, and the end-user must be involved in deciding upon and configuring the synchronization interval. Further, users will tend to “minimize” their synchronization intervals, thereby driving up concurrent connection costs. Lastly, with the user-defined synchronization interval, user-defined synchronization data quantity arrangement, both the connection costs and the storage costs are unpredictable and the end-user must be involved in a significant amount of decision-making and configuration to determine both the synchronization interval and the synchronization data quantities. Moreover, users will tend to minimize the synchronization interval and maximize the synchronized data quantities, driving up both connection costs and the storage costs.
[0015] Accordingly, there is a need for synchronization techniques that allow a service provider to obtain more efficient synchronization parameters for synchronizing its service data between service data stored in an institutional data store associated with a user. Various examples of the present invention advantageously offer a synchronization method and device that adaptively adjusts synchronization parameters, such as the synchronization interval and quantity of synchronized data, on a per-end-user basis in response to actual end-user behavior. In particular, heavy users of service data are rewarded with improved synchronization parameters, such as a combination of shorter synchronization intervals and increased synchronization data quantities, which provides closer to “direct access” performance. Light users of service, on the other hand, are assigned lower cost synchronization parameters, such as longer synchronization intervals and/or decreased synchronization data quantities.
[0016] The various embodiments of the invention thus allow synchronization resources that would otherwise be wasted on light users to be conserved and allocated to heavy users. According to the invention, the synchronization parameters continually change as user behavior changes, such as when a light user begins to use service more heavily, so as to constantly optimize the resources employed by the service provider on both an individual and aggregate basis.
[0017]
[0018]
[0019]
[0020]
[0021] As is well known in the art, telecommunication service data used to provide telecommunication services, such as wireless telephone service, electronic mail, voice mail and the like, is conventionally stored and manipulated by programmable computers. This type of computer can be embodied by, for example, an electronic mail account server, a wireless application protocol (WAP) gateway device, or a voice mail services server. Further, this type of computer can be used to implement an adaptive synchronization device according to various embodiments of the invention.
[0022]
[0023] A basic input/output system
[0024] A number of program modules may be stored on the ROM
[0025] In order to access both the computing systems employed by one or more service providers and one or more data stores associated with an end user, the computer system
[0026]
[0027] Similarly, the service provider infrastructure system
[0028] Referring back to
[0029] As will be explained in detail below, the adaptive synchronization device
[0030]
[0031] As will be appreciated by those of ordinary skill in the art, one or more components of the adaptive synchronization device
[0032] The input unit
[0033] The synchronization unit
[0034] Accordingly, the synchronization unit
[0035] The user service data retrieval detection unit
[0036] The synchronization adaptation unit
[0037] Further, if the synchronization adaptation unit
[0038] Alternately, the synchronization adaptation unit
[0039] In alternate embodiments of the invention, the synchronization adaptation unit
[0040] For example, if the retrieved service data for the user is electronic mail messages, the value of the quantity of retrieved service data could be determined based upon the number of retrieved electronic mail file folders. With alternate embodiments of the invention, the value of the quantity of retrieved service data could be determined based upon the specific period of time (e.g., five days) over which the retrieved messages were received. For still other embodiments of the invention, the value of the quantity of retrieved service data could be determined based simply upon the number of retrieved messages (e.g., 50 electronic mail messages). As will be appreciated by those of ordinary skill in the art, the particular method for determining the quantity of the retrieved service data for a user can be determined according to any technique suitable to the desired application of the invention.
[0041] In still other embodiments of the invention, the synchronization adaptation unit
[0042] According to still other embodiments of the invention, the synchronization adaptation unit
[0043] As previously noted, the synchronization adaptation unit
[0044] In addition to determining the retrieval amount of retrieved service data for a user and whether this retrieval amount is an increase or a decrease over the previously determined retrieval amount, the synchronization adaptation unit
[0045] As used herein, the term synchronization amount includes any synchronization parameter that, when increased, improves the operation of the synchronization process. (e.g., the quantity of data synchronized during a synchronization process). The term synchronization amount includes the inverse of any synchronization parameter that, when decreased, improves the operation of the synchronization process (e.g., the inverse of the interval between synchronization processes, or the synchronization frequency).
[0046] Thus synchronization adaptation unit
[0047] It should be noted that the synchronization adaptation unit
[0048] With still other embodiments of the invention, the synchronization adaptation unit
[0049] It should also be noted that the synchronization adaptation unit
[0050] As seen in this figure, the degree to which the synchronization amount is increased significantly as the value of the retrieval amount increases from zero to a threshold value X. Then, as the value of the retrieval amount continues to increase from the threshold value X to a maximum, the degree to which the synchronization amount is increased declines to zero. For example, a “light” end user whose telecommunication use requires his or her service provider to have a relatively low service data retrieval amount for the user's service data may have an initial synchronization interval of 45 minutes. As the user's service data retrieval amount increased, the synchronization adaptation unit
[0051] Advantageously, this arrangement accounts for abrupt changes in user behavior. One such change in behavior that is particularly risky is the “trade show effect,” or light users who on occasion quickly become heavy users for short periods of time (the risk being that they have a poor user experience because the synchronization parameters have adjusted to be very high). For example, an end user who is a product manager for his or her employer may generally be a light user (i.e., who requires his or her service provider to infrequently retrieve his or her service data from the synchronization service data store
[0052] According to some embodiments of the invention, the synchronization adaptation unit
[0053] The present invention has been described above by way of specific exemplary embodiments, and the many features and advantages of the present invention are apparent from the written description. Thus, it is intended that the appended claims cover all such features and advantages of the invention. Further, because numerous modifications and changes will readily occur to those skilled in the art, the specification is not intended to limit the invention to the exact construction and operation as illustrated and described. For example, the invention may include any one or more elements from the apparatus and methods described herein in any combination or subcombination. Accordingly, there are any number of alternative combinations for defining the invention, which incorporate one or more elements from the specification (including the drawings, claims, and summary of the invention) in any combinations or subcombinations. Hence, all suitable modifications and equivalents may be considered as falling within the scope of the appended claims.