This invention relates generally to wireless data synchronization between a mobile station and a server.
In recent years, numerous new features that have been traditionally available only at home are now becoming standards in cellular telecommunication networks. One of the most notable features is the availability of the Internet Protocol (“IP”) based services (e.g., push to talk services) through the use of cell phones. Today, with all these available features on cell phones, there is practically no difference between computer functionality and cell phones. To avoid confusion, the single term “mobile station” will be used to describe the various devices that can work with other multiple networks, such as the Internet. Specifically, mobile station will be used to refer to any mobile device, which may include, but is not limited to, a desktop computer, a laptop computer, a personal digital assistant, and/or a cell phone, that uses a specific network, such as a cellular network, for access to other networks.
Within the mobile networks, configuration data (e.g., service attributes, group lists, presence information, service related policies, and so forth) of these multiple IPs based services are typically stored in either the mobile station and/or the network via a server. Although data that are temporarily stored in the mobile station can be used to achieve the same user experience as in the case where the data are stored in the network, the data stored in the network may provide a more optimized usage of air interface resources. For example, when a service attribute of “incoming session barring” for a push to talk over cellular (“PoC”) is stored at the network, the usage of air interface resources tends to be more efficient, since the network, in this case, precludes the sending of a Session Initiation Protocol (“SIP”) invite to the mobile station. As a result, instantaneous synchronization of these types of information between the mobile station and the server may be desired, depending upon the type of the IP based services.
There are currently several prior methods available for data synchronization in wireless networks. These other prior methods, however, all use significant resources of the over the air interface and within the network. As an example, one method proposes to use the SIP registration method to set the PoC service attributes, such as a manual answer and incoming session barring in the PoC server. Another proposal is to use Extensible Markup Language Configuration Access Protocol (“XCAP”) to update service related configuration data. These proposed methods, however, consume a great deal of resources of the over the air interface and are generally very process-intensive on the mobile station and the network.
The above needs are at least partially met through provision of the wireless data synchronization described in the following detailed description, particularly when studied in conjunction with the drawings, wherein:
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of various embodiments of the present invention. Also, common and well-understood elements that are useful or necessary in a commercially feasible embodiment are typically not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention.
Generally speaking, pursuant to these various embodiments, a wireless data synchronization technique has been provided. Specifically, a data synchronization request is intercepted that wirelessly synchronizes data related to the request with a server. Synchronization information related to the data synchronization request is assessed to determine whether the synchronization information corresponds in at least a predetermined way to a predefined condition. The data related to the data synchronization request is synchronized with the server when the synchronization information corresponds in at least the predetermined way to the predefined condition.
According to various embodiments, the synchronization information includes a variety of information, such as a type of data to be synchronized, a total number of bytes needed to effectuate synchronizing the data related to the data synchronization request with the server, a total number of messages needed to effectuate synchronizing the data related to the data synchronization request with the server, historical information, learned user behavior, synchronization delay saving, profile information, signal condition, and pending synchronization operation. The predefined condition, on the other hand, may include at least one threshold, historical data, profile information, time duration, maximum number of requests per time duration, prospective savings, signal condition, a total number of data synchronization requests intercepted for a predefined time, pending synchronization operation, and synchronization forced by the user. In various teachings of the embodiments provided, the data synchronization request can include a push to talk session barring flag, a push to talk burst barring flag, changed data in contact lists, changed data in access lists, presence data, and service policy data.
In one embodiment, synchronization of the data related to the data synchronization request with the server is at least delayed when the synchronization information does not correspond in at least the predetermined way to the predefined condition. According to an embodiment, prior to the assessment of the synchronization information of the data synchronization request to the server, a data type of the data related to the data synchronization request is assessed to provide an assessed data type, wherein the predefined condition is based on the assessed data type. In one embodiment, a total number of the data synchronization requests of a same data type is further examined to determine whether it corresponds in at least a predetermined way to a seldom threshold, and if so, the data related to the data synchronization request is synchronized with the server. According to an embodiment, a determination of whether immediate data synchronization is required is made based on the assessed data type. Furthermore, the synchronization with the server further includes a determination as to whether other related data are required for synchronization and to prepare such other related data along with the data related to the data synchronization request when other related data are required for synchronization.
According to an embodiment of the determination of whether the synchronization corresponds in at least a predetermined way to the at least one predefined condition, a total number of messages needed to synchronize the data related to the data synchronization request is assessed. Next, a total number of messages to be blocked from the data synchronization request based on historical data is estimated. A determination is made as to whether the total number of messages to be blocked corresponds in at least a predetermined way to the total number of messages needed, and if not, the synchronization is delayed. In another embodiment, a total number of bytes needed to synchronize the data related to the data synchronization request is assessed, and a total number of bytes to be blocked from the data synchronization request based on historical data is estimated, followed by a determination of whether the total number of bytes to be blocked corresponds in at least a predetermined way to the total number of bytes needed. If not, the data synchronization with the server is again delayed. According to one embodiment, the determination of whether the synchronization corresponds in at least a predetermined way to the predefined condition includes a determination of whether a delay timer corresponds in at least a predetermined way to a timer threshold, and if not, synchronization is delayed. Another embodiment provides an assessment of memory required to synchronize the data related to the data synchronization request, and comparing this assessment to determine whether it corresponds in at least a predetermined way to a memory threshold. If not, data synchronization is again delayed.
According to various embodiments, an apparatus is further provided with an interception circuit that intercepts a data synchronization request to wirelessly synchronize data related to the request with a server and an assessor circuit that assesses synchronization information related to the data synchronization and compares the synchronization information with a predefined condition such that the data synchronization is synchronized with the server based on the comparison. In one embodiment, the apparatus further includes a synchronization circuit that synchronizes data requested by the data synchronization request with the server responsive to instructions from the assessor circuit or a user request. According to an embodiment, the assessor circuit further determines whether the synchronization information corresponds in at least a predetermined way to the predefined condition and instructs synchronization of the data related to the data synchronization request with the server when the synchronization information corresponds in at least the predetermined way to the predefined condition and at least delays the synchronization with the server, otherwise.
According to various embodiments, a computer-readable medium having computer-executable instructions is also provided. In particular, the computer-readable medium performs the steps of intercepting a data synchronization request to wirelessly synchronize data related to the data synchronization request with a server, assessing synchronization information of the data synchronization request, determining whether the synchronization information corresponds in at least a predetermined way to a predefined condition, and synchronizing the data related to the data synchronization request with the server when the synchronization information corresponds in at least the predetermined way to the predefined condition.
Through the embodiments of various teachings, the balance between the benefits of data synchronization with the server and the cost of such synchronization is optimized. As one example, service configuration data may be temporarily stored in the mobile station to achieve the expected user experience, while data synchronization with the server is done on a more efficient basis. Since, through the various teachings described, numerous characteristics (e.g., lifetime of the data based on policies and user behavior, magnitude of data, frequency of change, impact of storage location on the air interface resource usage) are considered, an optimized synchronization technique between the mobile station and the server via a wireless network is provided, as a result. With the various embodiments, historical information on the user behavior are maintained and used to further provide optimization of the data synchronization frequency between the mobile station and the server. Moreover, because such historical information is tracked, a more intelligent process can be developed to determine an optimized synchronization timing based on the tracked historical information and real time changes to this information. A more dynamic, efficient, and robust wireless data synchronization is thus provided through the numerous embodiments described.
Referring now to the drawings, and in particular to
Pursuant to this example, a mobile station (“MS”) 102 communicates with a base station (“BS”) 104 that is operably coupled to a radio network controller (“RNC”) 106 via a wireless network 108. As commonly known in the art, the RNC 106 typically controls multiple BSs 104 (one shown) for data transmission between the mobile station 102 and the serving BS 104. In this example, typical of a general communication network, the mobile station 102 sends requests and/or data to the serving BS 104, which, in turn, forwards the requests and/or data to the RNC for processing. The BS 104 and the RNC 106, as shown, cooperatively route data to multiple mobile stations 102 (one shown), but depending upon the system, the network may include other components with different arrangement of these components. Thus, the communication system 100 shown is only one of many typical exemplary structures of a cellular communication network that is suitable for use with various described embodiments. Moreover, the RNC 106 along with the BS 104 will herein be referred to as a server 110 to emphasize that the data synchronization may include communications with either or both the RNC and the BS, depending upon the configuration of the system.
Turning now to
A data synchronization request with the server 110 may be triggered from an action either by the user, the mobile station, and/or the server. The data synchronization request, for example, can include a number of items, such as a push to talk session barring flag, a push to talk burst barring flag, changed data in contact lists, changed data in access lists, presence data, and service policy data. Of course, other items of information may be represented and/or included with the data synchronization request, and these alternative embodiments are within the scope of the teachings described. Typically, this data synchronization request is serviced instantaneously by the mobile station substantially immediately sending data related to the data synchronization request to the server via the wireless network 108. In other words, data synchronization is substantially immediately effectuated via instant communication from the mobile station 200 to the server 110. In the present mobile station 200 shown, however, an interception circuit 202 is included to intercept such data synchronization requests before initiating any communication with the server 110 via the network.
Responsive to the data synchronization request, an assessor circuit 204 is used for assessing synchronization information related to the data synchronization request. The synchronization information may include a type of data to be synchronized, a total number of bytes needed to effectuate synchronizing the data related to the data synchronization request with the server, a total number of messages needed to effectuate synchronizing the data related to the data synchronization request with the server, historical information, learned user behavior, synchronization delay savings, profile information, signal condition, and pending synchronization operation. The assessor circuit 204 then compares this assessed synchronization information to a predefined condition, and the data synchronization request is synchronized with the server based on this comparison.
In particular, in one embodiment, the assessor determines whether the synchronization information corresponds in at least a predetermined way to the predefined condition, and if so, an instruction to service the data synchronization request is sent. Otherwise, according to one embodiment, the assessor circuit at least delays the synchronization of the data related to the data synchronization request with the server. Furthermore, in this specific embodiment shown, the instruction to synchronize with the server is specifically sent to a synchronization circuit 206 that ultimately synchronizes the data related to the data synchronization request with the server responsive to the instruction from the assessor circuit. In various embodiments, multiple predefined conditions can trigger the instruction to the synchronization circuit 206 for data synchronization with the server. For example, the predefined condition may include, but is not limited to, at least one threshold, historical data, profile information, time duration, maximum number of requests per time duration, prospective savings, signal condition, a total number of data synchronization requests intercepted for a predefined time, pending synchronization operation, and synchronization forced by the user. As one skilled in the art would readily appreciate, other predefined conditions, although not specifically identified, may also be used.
Aside from the assessor circuit 204, an instruction demanding data synchronization with the server can also be sent by a user. In this case, the user can forward such instruction to the synchronization circuit 206 through a user interface 208 that includes a user input 210, a display 212, and an audio output 214. Once the synchronization circuit 206 receives the instruction for data synchronization with the server, it accordingly synchronizes the data related to the data synchronization request with the server 110 via a transceiver circuit 216, which includes a transmitter circuit 218 and a receiver circuit 220. In various embodiments, a memory circuit 222, which includes a temporary memory circuit 224 and a permanent memory circuit 226, is further included to store or maintain the needed predefined condition and/or the synchronization information. Moreover, the memory circuit 222 can also be used as a computer-readable medium to store the computer-executable instructions implemented with the various embodiments of the invention.
Turning now to
In this particular example shown, the process is initiated 302 with an event triggering a data synchronization request from the mobile station to the server. The triggering events can varied. For example, they can include a direct request to synchronize from the user, a push to talk barred of incoming calls, a change in the data of a contact list or an access list on the mobile station, presence data regarding the availability of the user using the mobile station, or service policy data. The data synchronization request is intercepted 304 before any communication is initiated on the network. Responsive to the data synchronization request, synchronization information relating to the data synchronization request is assessed 306. Specifically, depending upon the type of data synchronization request or the configuration of the system, various types of synchronization information, particularly information that may be relevant or useful for optimizing data synchronization between the mobile station and the server, can be collected at this point. Some of these examples can include a type of data to be synchronized, a total number of bytes needed to effectuate synchronizing the data related to the data synchronization request with the server, a total number of messages needed to effectuate synchronizing the data related to the data synchronization request with the server, historical information, learned user behavior, synchronization delay savings, profile information, signal condition, and pending synchronization operation.
After the assessed synchronization information has been obtained 306, the assessed synchronization information is compared to determine 308 whether it corresponds to a predefined condition. If so, the data synchronization request is serviced. Specifically, the data related to the data synchronization request is synchronized 310 with the server. Otherwise, the data synchronization with the server is at least delayed 312. The process comes to an end 314 at this point. The predefined condition can also vary depending upon the type of synchronization information obtained. For example, the predefined condition can include at least one threshold, historical data, profile information, time duration, maximum number of requests per time duration, prospective savings, signal condition, a total number of data synchronization requests intercepted for a predefined time, pending synchronization operation, and synchronization forced by the user. More specific implementations of the types of predefined conditions will be described in the following
Turning now to
The seldom threshold is provided to set a predefined value to determine a minimum threshold of the frequency in which the data synchronization request of this type has been requested. For example, if the seldom threshold is set to one request per week, a value of being less than the seldom threshold indicates that the frequency of this type of data synchronization request is fairly rare. In this case, it may be more sufficient to accommodate requests that are not frequently requested. On the other hand, when a data synchronization request of a certain type has been requested ten times in the last five minutes, this may indicate that the user is browsing their contact list and that it would be inefficient to synchronize with the server until the user has finished browsing the contact list. The seldom threshold is implemented as a minimum allowance for instant synchronization based on the frequency of the data synchronization requests. Of course, the best optimized seldom threshold for a given configuration is readily appreciated by a skilled artisan, and thus a wide range of values can be used for the seldom threshold and these values are within the scope of the various teachings described.
Continuing with the synchronization process 400, if the number of data synchronization requests does not correspond to (e.g., is not less than) to the seldom threshold, specific synchronization information related to the data synchronization request is assessed 416 based on the data type of the request via a subroutine shown in
If, on the other hand, it has been determined that the data synchronization request should be serviced either based on an immediate data synchronization request from the user 406 or based on the data type 412, correspondence to the seldom threshold 414, and/or the output from the assessment subroutine process of no delay 418, it is next determined 424 whether other related data are required for the synchronization with the server. Depending upon the type of data being synchronized, the process may need to acquire more related data to effectuate the synchronization. For example, when data synchronization is invoked by a change in presence data, such as the user of the mobile station is now being available, this may require additional related information (e.g., policy and/or usage information) in order to synchronize the availability of the user with the server. In cases where such other related data are needed, data related to the data synchronization request are prepared 426 to include these other related data. The data related to the data synchronization request, either with or without the other related data, is accordingly synchronized 428 with the server.
Turning now to
Referring to
Turning now to
With these various teachings shown, a novel data synchronization technique has been provided. One of the numerous benefits provided is that the balance between the benefits of data synchronization with the server and the cost of such synchronization is optimized by the various embodiments shown. For example, rather than immediately sending the configuration data to the server, the data can be temporarily stored in the mobile station to achieve the expected user experience. Moreover, because numerous characteristics (e.g., lifetime of the data based on policies and user behavior, magnitude of data, frequency of change, impact of storage location on the air interface resource usage) are considered in the optimization, a more robust and efficient data synchronization technique between the mobile station and the server is provided. With the various embodiments described, historical information on the user behavior are maintained and can further provide additional considerations for optimizing the frequency in which data is being synchronized with the network. Moreover, with the use of such historical information, a more intelligent process can be developed to assess an optimized synchronization timing that is based on the historical information and real time changes of the system. Thus, a more dynamic, efficient, and robust wireless data synchronization technique has been provided with the various teachings provided.
Those skilled in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the spirit and scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the ambit of the inventive concept.