This application claims priority under 35 U.S.C. §119(a) to Korean Application Serial Nos. 10-2011-0087253 and 10-2012-0093565, which were filed in the Korean Intellectual Property Office on Aug. 30, 2011 and Aug. 27, 2012, respectively, the content of each of which is incorporated herein by reference.
1. Field of the Invention
The present invention relates generally to a terminal and method for managing application data in the terminal, and in particular, to a terminal and method for simultaneously updating multiple applications.
2. Description of the Related Art
Mobile terminals, such as smartphones, run various applications such as email, Social Network Services (SNSs), and Instant Messaging (IM) applications. Such applications are capable of synchronizing application data through a network. Generally, each application operates with a data synchronization period set to an appropriate value. Typically the synchronization period can be set to a time value such as every 5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, etc. When configuring the application update period, a user who wants to receive real time data updates in sets the synchronization period to a short time value.
Accordingly, the terminal requests the network for updated data at the synchronization period of the corresponding application. In response to the request, the network transmits the requested data to the terminal.
Whenever each of the individual applications performs update, the terminal transitions from the idle mode to the active mode. Accordingly, if the multiple applications have different synchronization periods, the terminal will transition from the idle mode to the active mode more frequently.
Referring to
Accordingly, the present invention is designed to address at least the problems and/or disadvantages described above and to provide at least the advantages described below.
An aspect of the present invention is to provide a method and apparatus for efficiently controlling data update periods of applications running on a terminal.
In accordance with an aspect of the present invention, an application synchronization method of a terminal is provided, which includes acquiring a synchronization timing of a previously registered synchronization target application or a common synchronization timing of previously registered synchronization target applications, when an application to be synchronized is added; and adjusting the synchronization timing of the added application in consideration of the previous synchronization timing or the common synchronization timing.
In accordance with another aspect of the present invention, a terminal for performing application synchronization is provided. The terminal includes a memory; and a controller that acquires a synchronization timing of a previously registered synchronization target application or a common synchronization timing of previously registered synchronization target applications from the memory, when an application to be synchronized is added, and adjusts the synchronization timing of the added application in consideration of the previous synchronization timing or the common synchronization timing.
The above and other aspects, features, and advantages of certain embodiments of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
Various embodiments of the present invention will now be described in detail with reference to the accompanying drawings. In the following description, specific details such as detailed configuration and components are merely provided to assist the overall understanding of these embodiments of the present invention. Therefore, it should be apparent to those skilled in the art that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present invention. In addition, descriptions of well-known functions and constructions are omitted for clarity and conciseness.
In the following description, the term “terminal” denotes an information processing device capable of generating data and processing data received from an outside source. For example, the terminal can be any of a desktop computer, a laptop computer, a tablet Personal Computer (PC), a portable terminal, a smartphone, etc.
Referring to
Herein, synchronizing an application includes exchanging messages for maintaining a connection (e.g., a keep-alive message) and transmitting and receiving changed data to and from an external entity.
The control unit 220 controls conditions and operations of all components of the terminal. Particularly, in accordance with an embodiment of the present invention, the control unit 220 synchronizes the update periods of the applications requiring periodic data updates from among the applications running on the terminal.
The control unit 220 first determines whether a synchronization period should be set. That is, the control unit 220 determines whether a synchronization period configuration mode is selected. The application synchronization period configuration mode is for registering an application for which data is updated periodically or for changing the update period in the settings of an already installed application.
For example, applications requiring periodic updates are those which user profile information of the data received from a counterpart through a network should be updated periodically, such as email and organizer applications. SNS applications also operate better with more periodic updates.
If the application synchronization configuration mode is selected, i.e., if the synchronization period of an application is to be set or changed, the control unit 220 synchronizes the update period of the application with the update periods of other applications using an optimal synchronization period calculator 225 and a synchronization scheduler 227.
Alternatively, the control unit 220 is capable of scheduling the application update period of the corresponding application at installation or activation time or at a separately designated time.
The optimal synchronization period calculator 225 checks an update period selected by the user. The optimal synchronization period calculator 225 checks a predetermined synchronization update period according to the update periods of all of the other applications running on the terminal. That is, if the application synchronization period configuration mode is enabled, the optimal synchronization period calculator 225 calculates the scheduling synchronization period based on the other applications.
The optimal synchronization period generator 225 calculates the update period of the application registered and a greatest common divisor of the previously stored synchronization update periods. The synchronization update period is the synchronized update period of the applications that can be run on the current terminal. Whenever a period update is registered for an application, the optimal synchronization period calculator 225 compares the synchronization update period and the update periods of the previously registered applications to calculate the greatest common divisor.
For example, when update periods of the applications A and B are Ta and Tb, respectively, the greatest common divisor (Tgcd) of the update periods of the applications is calculated by Equation (1).
T
gcd=gcd(Ta, Tb) (1)
After determining the synchronization update period with the greatest common divisor, if the update period (Tx) of a new application is added, the greatest common divisor is calculated by equation (2).
T
gcd=gcd(Tgcd
In Equation (2), Tx denotes the update period of the newly added application and Tgcd
The synchronization scheduler 227 adjusts the update period of the application selected for registration using the greatest common divisor calculated by the optimal synchronization period calculator 225. The synchronization scheduler 227 schedules the update period according to the calculated scheduling synchronization period.
The synchronization scheduler 227 first determines whether the update period of the application selected to be registered and the previously stored synchronization update period are relatively prime. If the update period of the application selected to be registered and the previously stored synchronization update period are relatively prime, the synchronization scheduler 227 sets the minimum value of the application selected for registration and the previously stored synchronization update period as a basic synchronization unit.
For example, when the update period of the application selected for registration is 6 minutes and the previously stored synchronization update period is 7 minutes, the greatest common divisor of the update period of the application selected for registration and the previously stored synchronization update period is 1. Accordingly, the update period of the application selected to be registered and the previously stored synchronization update period are relatively prime. In this case, the synchronization scheduler 227 sets the basic synchronization unit to 6 minutes as the minimum value of the update period of the application selected to be registered and the previously stored synchronization update period. This basic synchronization unit is then stored in the storage unit 230 as the new synchronization update period.
After setting the basic synchronization unit, the synchronization scheduler 227 determines whether the update period of the application selected for registration is greater than the previously stored synchronization update period. If the update period of the application selected for registration is greater than the previously stored synchronization update period and the two values are relatively prime, the synchronization scheduler 227 selects the multiple nearest to the update period, among the multiples of the basic synchronization unit, as the scheduling synchronization period. That is, the synchronization scheduler 227 selects the scheduling synchronization period using Equation (3).
In Equation (3), Tx denotes the scheduling synchronization period of the currently selected application. If the update period of the current application (Tx) is greater than the stored synchronization update period (Tgcd
However, if the update period of the application selected for registration is less than or equal to the previously stored synchronization update period, the synchronization scheduler 227 changes the synchronization update period by referencing the configured basic synchronization unit to set the scheduling synchronization periods of other applications, using Equation (4).
In Equation (4), Tgcd
If the update period of the application selected for registration and the previously stored synchronization update period are not relatively prime, the synchronization scheduler 227 sets the calculated greatest common divisor as the basic synchronization unit. The basic synchronization unit configured above is stored in the storage unit 230 as the new synchronization update period. At this time, the synchronization scheduler 227 determines whether the update period of the application selected for registration is greater than the previously stored synchronization update period. If the update period of the application selected for registration is greater than the previously stored synchronization update period, the synchronization scheduler 227 sets the multiple nearest to the update period among the basic synchronization unit, i.e., the greatest common divisor, as the new scheduling synchronization period.
However, if the update period of the application selected for registration is less than or equal to the previously stored synchronization update period, the synchronization scheduler 227 selects the basic synchronization unit, i.e., the greatest common divisor, as a new scheduling synchronization period.
The synchronization scheduler 227 changes the start time of the initial update of the application to be registered corresponding to the scheduling synchronization periods of other applications. That is, the synchronization scheduler 227 schedules such that the initial start time of the update period of the application equals the updates of the other applications.
Although
The control unit 220 controls such that the scheduling synchronization period and the synchronization update period as the basic synchronization unit that are configured per application by the optimal synchronization period calculator 225 and the synchronization scheduler 227 are stored in the storage unit 230.
If the update period of an application is alarmed by the synchronization scheduler 227, the control unit 220 updates the corresponding application. That is, the control unit 220 checks at least one application of which scheduling synchronization period is updated according to the scheduling synchronization period and updates the at least one application.
The storage unit 230 stores various data processed in the terminal and programs for functional operation of the terminal. Additionally, the storage unit 230 stores an alarm list 231 under the control of the control unit 220. The alarm list 231 includes the information on the scheduling synchronization period per application. The scheduling synchronization period is configured when registering an application and changing the update period of the corresponding application using the synchronized update period of all applications and update period of the application to be registered. The storage unit 230 stores the synchronization update period as the basic synchronization unit under the control of the control unit 220.
Although not illustrated in
As described above, a terminal in accordance with an embodiment of the present invention is capable of setting update periods of multiple applications to a value. Consequently, the terminal can simultaneously update a plurality of applications simultaneously according of the configured update period, thereby reducing power consumption.
Referring to
The application layer 310 runs an application 315. The application framework layer 320 is a set of classes and libraries for implementing application program standard structure for a specific operating system. That is, the application framework 320 manages the life cycle of the application and is responsible for processing events and controlling applications. Here, the application framework 320 includes an alarm manager 325 for alarming the update period synchronization of the application.
The system library 330 is a set of the data sets and files retaining the parts of the operating system. Here, the system library 330 includes a synchronization scheduler 335 for synchronizing the update periods of the applications running on the application layer 310.
The kernel 340 is responsible for interrupt processing, process management, memory management, system management, programming interface, and basic functions of the operating system. Accordingly, the kernel 340 is loaded onto the memory to which normal access is prohibited. That is, the kernel 340 can be seen as an application for controlling hardware.
The application layer 310 first requests the alarm manager 325 of the application framework 320 for synchronization period registration to the application 315 in step 350. The alarm manager 325 requests the synchronization scheduler 335 to add the alarm to the alarm list in step 355. This process is repeated, as denoted by reference number 357, whenever an application is registered.
The synchronization scheduler 335 calculates the scheduling synchronization period of the corresponding application through the optimal synchronization calculator 360 and adds the calculated scheduling synchronization period to the alarm list 365 in step 363.
In step 367, the synchronization scheduler 335 checks the scheduling synchronization period stored in the alarm list and then the alarm period for alarming the update to the application layer 310 through the alarm processor 370. If the alarm period arrives, the synchronization scheduler 335 notifies the application layer 310 of the scheduling synchronization period of the application in step 375.
Referring to
The start time 417 denotes the time of the initial update, after the registration of the application. The scheduling synchronization period 419 is the information on the update interval of the corresponding application and configured based on the basic synchronization unit set for synchronization with the update period of other applications.
Referring to
Referring to
Referring to
If the application synchronization configuration mode is selected, the terminal calculates the scheduling synchronization period according to the applications in step 720. Basically, the terminal compares the previously stored synchronization update period according to the update period of the application with the update period of the application selected in the application synchronization period configuration mode to calculate the greatest common divisor. The terminal synchronizes the update period of the selected application with the update period of the other applications using the calculated greatest common divisor. This operation will be described in more detail below with reference to
In step 725, the terminal changes the start time of the update of the application for the new start time determined according to the calculated scheduling synchronization period. That is, the terminal controls such that the update start time of the selected application is synchronized to that of the other applications of which update periods have been synchronized already. The terminal then stores the scheduling synchronization period of the selected application in step 730.
If the application synchronization configuration mode is not selected in step 715, the terminal determines whether an application update mode is selected in step 735. That is, the terminal determines whether there is an update scheduled at current time.
When the application update mode is selected, the terminal checks at least one application to be updated at the current time in step 740. In step 745, the terminal updates the checked applications. That is, the terminal requests the connected network for data to execute the application and stores the data received form the network. Next, the terminal displays the stored data or performs the corresponding function in execution of the corresponding application.
When the application update mode is not selected in step 735, the terminal determines whether an application execution mode is selected in step 750. If the application execution mode is selected, the terminal executes the corresponding application in step 755. If the application execution mode is not selected, the terminal remains in the idle mode in step 710
As described above, a terminal in accordance with an embodiment of the present invention is capable of synchronizing update periods of applications installed therein. Because the applications perform updates at the synchronized update period, it is possible to regulate the transitions between the idle and the active mode, thereby minimizing power consumption.
Referring to
Referring to
In step 915, the terminal determines whether the update period and the synchronization update are relatively prime. If the update period and the synchronization update are relatively prime, the terminal sets the minimum value between the update period and the synchronization period as the basic synchronization unit in step 920.
However, if the update period and the synchronization update period are not relatively prime in step 915, the terminal sets the calculated greatest common divisor as the basic synchronization in step 925.
After setting the basic synchronization unit, the terminal determines whether the update period is greater than the synchronization update period in step 930. If the update period is greater than the synchronization update period, in step 935, the terminal selects a multiple nearest to the update period, among multiples of the basic synchronization unit, as the scheduling synchronization period. The previously stored synchronization update period is changed for the basic synchronization unit.
However, if the update period is less than or equal to the synchronization update period in step 930, the terminal selects the basic synchronization unit as the scheduling synchronization period in step 940. That is, the terminal changes the scheduling synchronization period of the registered applications for the configured basic synchronization unit. The update period of the applications registered with the terminal is changed for the multiple nearest to the synchronization update period among the multiples of the basic synchronization unit, and the previously stored synchronization update period is changed for the basic synchronization unit.
Referring to
Again, the application A 1010 performs updates at intervals of 10 minutes, the application B 1020 at intervals of 20 minutes, and the application C 1030 at intervals of 5 minutes. Because the application A 1010, application B 1020, and application C 1030 are synchronized in a basic synchronization unit of 5 minutes, all of the application A 1010, application B 1020, and application C 1030 perform updates at the initial start time. The application C 1030, which has the shortest synchronization period starts updating again after 5 minutes elapses, at its next interval time. Five minutes later, i.e., 10 minutes after the initial start time, the applications A and C 1010 and 1030 perform updates simultaneously. The application C 1030 then performs another update 5 minutes later.
The applications A, B, and C 1010, 1020, and 1030, then simultaneously perform updates five minutes later, i.e., 20 minutes after the initial start time.
As illustrated in
Referring to
Referring to
However, in accordance with an embodiment of the present invention, 15 minutes is the greatest common divisor of the synchronization period of the application A (30 minutes) and the synchronization period of the application B (15 minutes) and becomes the unit synchronization period. This period can be expressed as common synchronization period, which is applied commonly. Similarly, the synchronization timing at which an application is synchronized according to the unit synchronization period can be expressed as common synchronization timing.
According to the conventional method, the alarm of application B would be issued at 20 minutes elapsed time after 15 minutes from the 5 minutes elapsed time. However, according to this embodiment, the first alarm timing is changed from 20 minutes elapsed time to the 15 minutes elapsed time as denoted by reference number 1130.
While
Alternatively, the change of the synchronization timing for the newly added application can be performed after the initial synchronization period passes. For example, the initial synchronization of the application B is executed at 20 minutes, but then the second synchronization timing is changed from the minutes, i.e., 15 minutes later, to the 30 minutes elapsed time to be synchronized with application A. According to this alternative embodiment, the original synchronization timing is maintained when there is no actual gain of the synchronization timing change but changed when there is the gain of the synchronization timing change.
Referring to
According to the conventional method, the first alarm generation timing of the application C would be at 19 minutes elapsed time. The 15 minutes elapsed time as the previous unit synchronization 15 before the time point as denoted by reference number 1140 and the 8 minutes elapsed time as the synchronization period of the application C are relatively prime. In accordance with an embodiment of the present invention, if the original unit synchronization period and the synchronization period of the newly added application are relatively prime, both the unit synchronization period and the synchronization period of the newly added application are maintained. However, the first synchronization timing of the application C is changed by referencing the synchronization timing according to the conventional unit synchronization period.
According to the conventional method, the application C would perform initial synchronization at 19 minutes elapsed time. However, according to this embodiment, the first synchronization timing of the application C is changed for the 15 minutes elapsed time. However, because the unit synchronization period and the synchronization period of application C are not changed, the two synchronizations are not simultaneously performed again until 135 minutes have elapsed. However, because changing the synchronization period semi-persistently may be opposed to the feature of application, the synchronization period is not changed in this embodiment. Due to the change of the first synchronization timing of the application C, the other applications may perform the synchronization at every 120 minutes at the same timing.
Referring to
In step 1240, the terminal determines whether the synchronization configuration is requested with the same identifier (or by the same application). If the synchronization configuration is not requested with the same identifier, the terminal ends the synchronization procedure and performs the synchronization at the period determined according to the application and the changed synchronization timing.
However, if the synchronization configuration is requested with the same identifier in step 1240, the terminal determines whether the start time of the new synchronization configuration is identical with the start time of the previous synchronization configuration in step 1250.
If the two start times are identical with each other, the terminals maintain the start time of the synchronization start time as the application has requested without change in step 1260.
For example, if the corresponding application requests for the alarm set to 20 minutes elapsed time from the start time and the terminal adjusts the start time of the synchronization is adjusted to the 15 minutes elapsed time, the corresponding application receives the alarm at the 15 minutes elapsed time. However, because the corresponding application wants to receive alarm at the minutes elapsed time, it resets the synchronization start time to the 20 minutes elapsed time again and requests for start of the synchronization. In this case, because the start time of the new synchronization configuration becomes identical with the start time of the previous synchronization configuration which is recorded at step 1220, the terminals maintains the start time of the synchronization start time as the application has requested without change.
If the start time of the new synchronization configuration is not identical with the start time of the previous synchronization configuration which has been recorded in step 1220, the terminal changes and registers the synchronization start time, e.g., as described above with reference to
The terminal is capable of retaining the synchronization alarm identifiers (or corresponding application identifiers) in the form a list for performing synchronization without changing the synchronization start time in such a way. Afterward, if the synchronization alarm request for the corresponding identifier is detected, the terminal maintains the alarm start time without change.
Referring to
In step 1320, the terminal determines whether the corresponding application is the application allowing for synchronization timing change. The applications allowing for synchronization timing change or not can be discriminated among each other in various ways.
For example, the storage unit 230 can store a list of the applications allowed for the synchronization timing change, i.e., a white list. In this case, the control unit 220 is capable of performing the synchronization timing adjustment according to the procedure described with reference to
The storage unit 230 is also capable of storing a list of applications not allowed for the synchronization timing change, i.e., a black list. In this case, the control unit 220 is capable of performing the synchronization timing adjustment according to the procedure described with reference to
The black list and/or the white list can be configured by the user. The user can manage the applications included in the black list and/or white list using normal expression states or by inputting the identifiers and names of the application to be included in the black list and/or white list and other information. The user may include the applications requiring the periodic traffic and synchronization in the white list to adjust the synchronization timings efficiently. Likewise, the user may include the applications that do not require the periodic traffic and synchronization in the black list to adjust the synchronization timing efficiently.
According to another embodiment of the present invention, the control unit 220 includes an application registered with an account manager or a synchronization manager of the OS of the terminal in the white list. The applications registered with the account manager or the synchronization manager is register alarms without providing the control unit 220 with the period information. However, most of the applications registered with the account manager or the synchronization manager perform synchronization procedures periodically. In this case, the actual period can be the time from the registration time of the alarm to the start time of the alarm. The control unit 220 estimates the period in this manner and adjusts the alarm timing as described with reference to
According to another embodiment of the present invention, the control unit 220 provides a list of applications installed or a list of the currently running application on a display unit. The user selects the applications to be included in the black list or the white list using an input device. In order to help the user's selection, the control unit 220 is capable of displaying the applications periodically generating traffic and the applications generating more traffic than a predetermined threshold amount on the background, in order to distinguish these applications from other applications.
According to another embodiment of the present invention, the terminal receives the black list and/or the white list from an external entity through the communication unit. For example, the black list and/or the white list stored in the external entity can be managed by the operator.
According to the above-described embodiments, if it is determined to change the synchronization timing and/or period of the application, the control unit 220 provides an interface through which a user determines whether to change the synchronization timing and/or period. For example, if it is determined to change the synchronization timing and/or period of the application, the control unit 220 displays a notification message “it is possible to save system power by changing the synchronization period of the application from a minute elapsed time to b minute elapsed time. Would you like to change? (y/n)” and changing the synchronization timing and/or period of the application or not according to the user input.
According to another embodiment of the present invention, the control unit 220 sorts applications into groups according to synchronization periods of the applications. For example, the applications having the synchronization periods of multiples of 7 (i.e. 7, 14, 21, 28, . . . ) are sorted into the group 7. The applications having the synchronization periods of multiples of 5 (i.e., 5, 10, 15, 20, . . . ) are sorted into the group 5. Each group is represented by the shortest synchronization period in the group. The shortest synchronization period is a prime. For example, there can be the groups 2, 3, 5, 7, 11, 13, 17, etc., If the synchronization period is 6, it can be logically sorted into both the group 2 and the group 3.
According to an embodiment of the present invention, however, a certain period can be sorted into only one group according to a predetermined rule. For example, the period of 6 minutes is sorted into the group 3, and the period of 35 minutes is sorted into the group 7. The predetermined rule specifies the primary group, which a certain period is sorted into.
According to another embodiment of the present invention, the predetermined rule can be of predetermining the priorities of the groups such that an application having a certain period is sorted into the group assigned the highest priority. For example, if the priority of the group 7 is higher than the priority of the group 5, the application having the priority of 35 minutes is sorted into group 7. The periods of the applications sorted into the same group are adjusted to match with each other according to the procedures described with reference to
As described above, the application management method of present invention adjusts synchronization start times and periods of applications having different synchronization periods to match with each other, thereby minimizing the number of transitions between idle mode and active mode, and reducing power consumption.
While the present invention has been particularly shown and described with reference to certain embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2011-0087253 | Aug 2011 | KR | national |
10-2012-0093585 | Aug 2012 | KR | national |