WO2013183159A1 - 同期プログラム及び同期方法 - Google Patents

同期プログラム及び同期方法 Download PDF

Info

Publication number
WO2013183159A1
WO2013183159A1 PCT/JP2012/064771 JP2012064771W WO2013183159A1 WO 2013183159 A1 WO2013183159 A1 WO 2013183159A1 JP 2012064771 W JP2012064771 W JP 2012064771W WO 2013183159 A1 WO2013183159 A1 WO 2013183159A1
Authority
WO
WIPO (PCT)
Prior art keywords
synchronization
application
priority
data
size
Prior art date
Application number
PCT/JP2012/064771
Other languages
English (en)
French (fr)
Inventor
那由他 石井
泰大 山本
恭平 倉世古
拓嗣 島田
Original Assignee
株式会社Synclogue
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Synclogue filed Critical 株式会社Synclogue
Priority to PCT/JP2012/064771 priority Critical patent/WO2013183159A1/ja
Priority to JP2014519775A priority patent/JPWO2013183159A1/ja
Publication of WO2013183159A1 publication Critical patent/WO2013183159A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the present invention relates to a synchronization program and a synchronization method.
  • An information processing apparatus such as a personal computer (PC) or a mobile terminal can execute various applications such as document creation software and a web browser.
  • applications such as document creation software and a web browser.
  • an application is used after being installed for each information processing apparatus. Therefore, for example, when a user who has a plurality of PCs uses the same application on the plurality of PCs, it is necessary to individually install the application on each PC. Further, user settings for using the application need to be individually made in each PC. As described above, it is often very complicated to use the same application on a plurality of PCs.
  • an object of the present invention is to improve convenience when synchronizing applications between a plurality of computers.
  • a synchronization program is a size storage that stores a size of synchronization data for synchronizing a component necessary for execution of an application with a synchronization server for each of a plurality of applications.
  • a communication speed measuring unit for measuring the communication speed between the computer and the synchronization server, and the priority for transmitting / receiving the synchronization data to / from the synchronization server based on the size of the synchronization data and the communication speed for each application.
  • a synchronization communication unit that transmits and receives synchronization data to and from the synchronization server according to the determined priority.
  • the computer stores the size of the synchronization data for synchronizing the components necessary for executing the application with the synchronization server for each of the plurality of applications.
  • synchronization data is transmitted / received to / from the synchronization server.
  • the “unit” does not simply mean a physical means, but includes a case where the function of the “unit” is realized by software. Also, even if the functions of one “unit” or device are realized by two or more physical means or devices, the functions of two or more “units” or devices are realized by one physical means or device. May be.
  • FIG. 1 It is a figure which shows the structural example of the application synchronization system in one Embodiment of this invention. It is a block diagram which shows an example of the function which a synchronous server has. It is a figure which shows an example of synchronous data. It is a block diagram which shows an example of the function which PC has. It is a figure which shows an example of the screen displayed in the case of a synchronous setting. It is a figure which shows an example of a synchronous setting. It is a figure which shows an example of the screen which starts the application of a synchronous object. It is a figure which shows an example of size information. It is a figure which shows an example of starting information. It is a flowchart which shows an example of the synchronous process of an application.
  • FIG. 1 is a diagram illustrating a configuration example of an application synchronization system according to an embodiment of the present invention.
  • the application synchronization system includes a synchronization server 10 and a plurality of personal computers (PCs) 20.
  • the synchronization server 10 provides a service for enabling a user to synchronize an application among a plurality of PCs 20, and is configured using one or a plurality of information processing apparatuses.
  • the PC 20 is an information processing apparatus that allows a user to execute an application, and can communicate with the synchronization server 10 via a network such as the Internet.
  • the application synchronization means that the execution environment of the application is in the same state.
  • the execution environment includes an application execution file itself, user data, setting information, and the like. That is, by synchronizing applications among a plurality of PCs, the user can execute the applications in the same state regardless of which PC is used.
  • FIG. 2 is a block diagram illustrating an example of the functions of the synchronization server 10.
  • the synchronization server 10 includes a user account database (DB) 30, a synchronization data storage unit 32, a synchronization communication unit 34, and a size detection unit 36.
  • DB user account database
  • a synchronization data storage unit 32 stores data and data.
  • a synchronization communication unit 34 receives data from the synchronization server 10.
  • a size detection unit 36 can be realized, for example, by using a storage area such as a memory or a storage device, or by executing a program stored in the storage area by a processor.
  • the user account DB 30 stores account information of users who use the application synchronization system.
  • the account information includes a user ID, a password, an email address, and the like.
  • the synchronization data storage unit 32 stores synchronization data that is data for synchronizing a user's application execution environment among a plurality of PCs.
  • FIG. 3 shows an example of the structure of the synchronization data.
  • the synchronization data includes data stored in the synchronization table and data stored in the data storage.
  • the synchronization table stores a user ID, an application ID, an application file ID, a user file ID, an update date and time, and a size
  • the data storage stores an application file and a user file.
  • the user ID is for identifying each user, and the same information as that registered in the user account DB 30 is used.
  • the application ID is for identifying an application selected as a synchronization target by each user. For example, the application ID may be set when the user registers an application to be synchronized with the synchronization server 10 or may be generated on the synchronization server 10 side.
  • the application file is application data for executing the synchronization target application, and includes an execution file, a DLL (Dynamic Link Library), and the like.
  • the application file also includes information for designating a folder for storing application data in the PC 20.
  • the application file ID indicates the storage location of the application file in the data storage.
  • User file is user data required when executing application.
  • the user data is data for each user that is referred to when the application is executed.
  • each user's e-mail data in an e-mail application for sending and receiving e-mails and each user's data in a web browser For example, bookmark data.
  • the user file also includes information for designating a folder for storing user data in the PC 20.
  • the user file ID indicates the storage location of the user file in the data storage.
  • the update date / time is set to the date / time when the application file or user file was updated.
  • Application file and user file are necessary components for executing the application.
  • Information other than application files and user files may be included in the constituent elements.
  • setting information stored in the registry may be included in the component.
  • the size is information indicating the size of the synchronization data for each application.
  • the size of the synchronization data can be, for example, the size when the synchronization communication unit 34 converts the application file and the user file into a format to be transmitted to the PC 20.
  • the synchronous communication unit 34 transmits / receives not all of the application file and user file, but part of them as synchronous data to / from the PC 20, the size stored in the synchronous data storage unit 32 is the same as that of the PC 20.
  • the size of the synchronous data transmitted / received between them can be set.
  • the synchronous communication unit 34 can transmit and receive data to and from other information processing apparatuses such as the PC 20 via the network. And the synchronous communication part 34 can perform various control for synchronizing an application between several PC20. Specifically, the synchronization communication unit 34 can receive synchronization data for synchronizing the synchronization target application among the plurality of PCs 20 and store the synchronization data in the synchronization data storage unit 32. Further, the synchronization communication unit 34 can transmit the synchronization data stored in the synchronization data storage unit 32 to the PC 20 in response to a request from the PC 20. Further, before transmitting the synchronization data to the PC 20, the synchronization communication unit 34 can refer to the synchronization data storage unit 32 and transmit the size of the synchronization data to the PC 20.
  • the synchronization communication unit 34 does not transmit / receive all application files and user files in order to synchronize applications with the PC 20, but the PC 20 with a part of application files and user files as synchronization data. It is good also as transmitting / receiving.
  • the synchronization communication unit 34 may identify the synchronization data by detecting a file whose state is different between the synchronization server 10 and the PC 20 among the application files and user files of the synchronization target application.
  • the size detection unit 36 detects the data size of the synchronization data for each application. Then, the size detection unit 36 stores the detected data size in the synchronous data storage unit 32 (size storage unit) in association with the user ID and the application ID. For example, if the synchronous communication unit 34 transmits / receives all of the application file and the user file as synchronization data to / from the PC 20, the size detection unit 36 generates the synchronization data from all of the application file and the user file. The size of the synchronization data can be detected based on the data size in the case.
  • the size detection unit 36 synchronizes from the part of the application file and the user file.
  • the size of the synchronization data can be detected based on the data size when the data is generated.
  • FIG. 4 is a block diagram illustrating an example of functions that the PC 20 has.
  • the PC 20 includes a file storage unit 50, an application execution unit 52, a synchronization setting unit 54, a synchronization setting storage unit 56, an application activation unit 58, a size detection unit 60, a size storage unit 62, and an activation information generation unit. 64, an activation information storage unit 66, a communication speed measurement unit 68, a priority determination unit 70, and a synchronous communication unit 72.
  • These units can be realized, for example, by using a storage area such as a memory or a storage device, or by executing a program stored in the storage area by a processor.
  • the file storage unit 50 stores various files used in the PC 20.
  • Various files include, for example, programs and data used in an operating system (OS) and applications.
  • OS operating system
  • Each file can be identified by a file ID (file identifier) including a file path name and a file name.
  • the application execution unit 52 executes an application (application program) stored in the file storage unit 50. Specifically, the application execution unit 52 executes the application by generating a “process” that is an instance of the program. Each process is assigned a process ID (process identifier) for identifying the process.
  • process ID process identifier
  • the synchronization setting unit 54 performs settings for synchronizing applications among a plurality of PCs 20.
  • FIG. 5 shows an example of a screen displayed at the time of synchronization setting. This screen is displayed when the application synchronization system program is started. By using this screen, the user can register an application to be synchronized or start an application in a synchronized state. For example, when the user moves a shortcut 110 of a certain application “APL001” on the desktop of the PC 20 to the display area 112 of the screen 100 by drag and drop, the synchronization setting unit 54 selects the application specified by the shortcut. Register as a synchronization target application. In addition, not only drag and drop but the arbitrary methods for making the synchronous setting part 54 recognize the application of synchronous object can be used.
  • the application to be registered may be specified by pressing the application addition button 114 to display a file reference interface.
  • the synchronization setting unit 54 stores information related to the synchronization target application in the synchronization setting storage unit 56. Note that the synchronization setting unit 54 may store information on the synchronization target application in the synchronization data storage unit 32 of the synchronization server 10 instead of storing the information in the synchronization setting unit 56.
  • FIG. 6 shows an example of the synchronization setting stored in the synchronization setting storage unit 56.
  • the synchronization setting includes information indicating a user ID, a password, an application ID, an application file ID, a user file ID, and an update date.
  • the user ID and password are for using the application synchronization system.
  • the user ID and password are registered by the synchronization setting unit 54 at the start of use of the system.
  • the application ID, application file ID, user file ID, and update date / time are the same as the information stored in the synchronization data storage unit 32 of the synchronization server 10.
  • the application activation unit 58 activates the synchronization target application in response to a user operation. For example, when the display area 120 assigned to the application APL001 is selected on the screen 100 shown in FIG. 7, the application activation unit 58 refers to the synchronization setting stored in the synchronization setting storage unit 56 and sets the application APL001. to start.
  • the application activated by the application activation unit 58 is executed by the application execution unit 52 in the same manner as other applications.
  • the size detection unit 60 detects the size of synchronization data transmitted / received to / from the synchronization server 10 in order to synchronize application components (application files and user files) with the synchronization server 10 for each application.
  • FIG. 8 shows an example of size information stored in the size storage unit 62.
  • the size information includes an application ID and a size. Note that the size of the synchronization data may be stored in the synchronization setting storage unit 56 in association with the application ID.
  • the size detection unit 60 may detect the size of the synchronization data when the application file and the user file are all the synchronization data by referring to the synchronization setting stored in the synchronization setting storage unit 56. Good.
  • the size detection unit 60 can also detect the size of the synchronization data when a part of the files specified by the synchronization communication unit 72 among the application file and the user file is set as the synchronization data.
  • the size detection unit 60 may receive the size of the synchronization data from the synchronization server 10.
  • the activation information generation unit 64 generates activation information indicating the activation results of the synchronization target application and stores the activation information in the activation information storage unit 66.
  • the activation results include, for example, the number of activations, activation time, activation date / time, activation time zone, activation interval, and the like.
  • the activation information generation unit 64 can generate the activation information by monitoring the execution of the synchronization target application. Specifically, for example, the activation information generation unit 64 can detect the number of application activations by detecting an application activation instruction on the screen 100 illustrated in FIG. 7.
  • the activation information generation unit 64 can detect the activation time of the application by monitoring the execution of the synchronization target application and detecting the time during which the process is executed.
  • the application activation time may be, for example, a cumulative activation time or an average.
  • the period for counting the number of activations and the activation time may be, for example, a predetermined period such as the past one month, or a period from the most recently synchronized timing to the present.
  • the activation information generation unit 64 may generate the activation information by referring to log information output by the OS of the PC 20, for example.
  • FIG. 9 is a diagram illustrating an example of activation information stored in the activation information storage unit 66.
  • the activation information includes an application ID, the number of activations, and an activation time.
  • the activation number of the application ID “APL001” is “3 times”
  • the activation time is “3 hours 25 minutes 42 seconds”
  • the activation number of the application ID “APL002” is “5 times”
  • the activation The time is “0 hour 15 minutes 39 seconds”.
  • various types of information indicating activation results such as activation date / time and activation time zone can be similarly stored in the activation information storage unit 66 for each application.
  • the communication speed measurement unit 68 measures the communication speed between the PC 20 and the synchronization server 10 before the synchronization communication unit 72 transmits / receives synchronization data to / from the synchronization server 10. For example, the communication speed measuring unit 68 transmits dummy data of a predetermined size to the synchronization server 10 and measures the time until the transmission of the dummy data is completed, whereby the communication speed between the PC 20 and the synchronization server 10 is measured. Can be measured.
  • the priority determination unit 70 establishes communication with the synchronization server 10 based on the size of the synchronization data that the synchronization communication unit 72 transmits / receives to / from the synchronization server 10 and the communication speed between the PC 20 and the synchronization server 10.
  • the priority for transmission / reception of synchronous data can be determined for each application.
  • the priority determination unit 70 may increase the priority of an application having a large synchronous data size as the communication speed increases.
  • the priority determination unit 70 may increase the priority of an application whose synchronous data size is equal to or larger than a predetermined size. In other words, if the communication speed is less than a predetermined speed, the priority determination unit 70 may increase the priority of an application whose synchronization data size is less than the predetermined size.
  • the priority determination unit 70 can increase the priority of an application having a relatively large synchronous data size.
  • the priority determination unit 70 can increase the priority of an application having a relatively small size of synchronization data.
  • the priority determination unit 70 can take into account the startup results of each application when determining the priority. As an example, a case is assumed in which two pieces of activation information illustrated in FIG. 9 are stored in the activation information storage unit 66. In this case, the priority determination unit 70 can consider the activation information in addition to the size of the synchronous data and the communication speed when considering the priorities of the application “APL001” and the application “APL002”.
  • the priority determination unit 70 determines the priority (size priority) based on the size of the synchronous data and the communication speed, and determines the priority (activation result priority) based on the activation record. Also good. And the priority determination part 70 is good also as determining final priority based on a size priority and starting performance priority.
  • the priority determination unit 70 can increase the activation result priority of an application having a large number of activations.
  • the number of activations of the application “APL001” is “3 times”, and the number of activations of the application “APL002” is “5 times”. Therefore, for example, the priority determination unit 70 may set the activation record priority of the application “APL002” with a large number of activations higher than the activation record priority of the application “APL001”.
  • the priority determination unit 70 can increase the activation result priority of an application having a long activation time.
  • the activation time of the application “APL001” is “3 hours 25 minutes 42 seconds”
  • the activation time of the application “APL002” is “0 hours 15 minutes 39 seconds”. Therefore, for example, the priority determination unit 70 may set the activation record priority of the application “APL001” having a long activation time higher than the activation record priority of the application “APL002”.
  • the priority determination part 70 is good also as determining a starting performance priority based on the some parameter
  • the activation result priority of each application may be calculated by calculating the score of each index included in the activation information and summing the scores of a plurality of indices. Note that weighting may be set for each index when the scores of the indexes are totaled. For example, the priority of the index may be set. As an example, when the activation information includes the number of activations and the activation time, the priority of the number of activations may be set high. In this case, the priority determination unit 70 can first determine the application activation result priority based on the activation count. If the number of activations is the same, the priority determination unit 70 can further determine the activation result priority of the application based on the activation time.
  • the synchronous communication unit 72 performs data communication for synchronizing applications among a plurality of PCs 20.
  • the synchronization communication unit 72 refers to the synchronization setting storage unit 56 and can synchronize the application file and user file of the synchronization target application with the synchronization server 10.
  • the synchronization communication unit 72 compares the content of the synchronization setting stored in the synchronization setting storage unit 56 with the content of the synchronization data stored in the synchronization data storage unit 32 of the synchronization server 10, thereby The contents of the file and the user file can be adjusted to the latest state for each application ID.
  • the synchronous communication unit 72 can determine which of the files in the synchronization server 10 or the files in the PC 20 is new by comparing the update date and time for each application. When the file in the synchronization server 10 is newer, the synchronization communication unit 72 can synchronize the application by downloading the application file and the user file of the application from the synchronization server 10. If the file in the PC 20 is newer, the synchronous communication unit 72 can synchronize the application by uploading the application file and user file of the application to the synchronization server 10. In this way, data transmitted and received between the synchronization server 10 and the PC 20 is synchronization data. Note that the synchronization data does not need to be all of the application file and the user file, but may be a part of files necessary for synchronizing the application.
  • the synchronous communication unit 72 can transmit and receive synchronous data to and from the synchronization server 10 according to the priority determined by the priority determination unit 70.
  • the synchronous communication unit 72 can synchronize applications in descending order of priority.
  • the synchronization communication unit 72 synchronizes the applications in the descending order of priority for applications having a priority level equal to or higher than a predetermined level, and a synchronization instruction is input from the user for an application having a priority level lower than the predetermined level. It is good also as synchronizing with.
  • the synchronization communication unit 72 may store the synchronization state of each application in the synchronization setting storage unit 56.
  • the synchronization communication unit 72 may store, in the synchronization setting storage unit 56, information indicating that synchronization processing has not been completed for the synchronization target application.
  • the synchronization state of each application may be displayed on a screen for starting the synchronization target application (for example, the screen 100 in FIG. 7). Further, for example, a synchronization instruction may be input for each application on this screen.
  • the synchronous communication unit 72 may synchronize a plurality of applications in parallel instead of sequentially synchronizing the applications. Specifically, the synchronous communication unit 72 may synchronize two applications in parallel, for example. Thus, even when synchronizing a some application in parallel, the synchronous communication part 72 is good also as controlling the synchronization of an application according to a priority. For example, the synchronous communication unit 72 may control the synchronization of the application so that the proportion of the communication time of the high priority application among the applications synchronized in parallel increases.
  • timing at which the synchronization communication unit 72 communicates with the synchronization server 10 is, for example, a predetermined value set by a timer when the application activation unit 58 activates the screen 100 or when the synchronization target application ends. Any timing such as an interval may be used.
  • the synchronous communication unit 72 may determine the timing for synchronizing the application based on the priority. For example, the synchronous communication unit 72 synchronizes the application at a predetermined short interval for an application with a relatively high priority, and for the application with a relatively low priority, the application when the application activation unit 58 is activated. It is good also as synchronizing.
  • the synchronous communication unit 72 When the number of activations, activation time, etc. included in the activation information are information indicating the activation results in the period from the most recently synchronized timing to the present, the synchronous communication unit 72 initially sets the activation information of the application that has performed the synchronization process. Can be reset to a value.
  • FIG. 10 is a flowchart illustrating an example of the synchronization process.
  • the activation information generation unit 64 generates activation information for each application and stores it in the activation information storage unit 66 (S1001).
  • the activation information generation unit 64 can generate activation information by monitoring the activation state of the synchronization target application or referring to log information output from the OS of the PC 20.
  • the activation information generation unit 64 repeatedly generates activation information until a synchronization instruction is issued (S1002: N).
  • the synchronization instruction is issued at an arbitrary timing such as a predetermined interval set by a timer when the application activation unit 58 activates the screen 100 or when the synchronization target application ends.
  • the synchronization communication unit 72 specifies synchronization data for each synchronization target application (S1003). For example, the synchronization communication unit 72 communicates with the synchronization server 10 to identify a file that needs to be transmitted to the synchronization server 10 or received from the synchronization server among application files and user files of each application. The file specified in this way becomes synchronization data transmitted and received between the PC 20 and the synchronization server 10. Note that the synchronization data can be converted into a format suitable for communication, not the application file or the user file itself.
  • the size detection unit 60 detects the size of the synchronization data and stores it in the size storage unit 62 (S1004). Note that, for example, when the synchronization data is specified in advance, such as when all application files and user files of each application are targeted for synchronization data, the size detection unit 60 issues a synchronization instruction. The size of the synchronization data may be detected before the synchronization.
  • the communication speed measuring unit 68 measures the communication speed between the PC 20 and the synchronization server 10 (S1005).
  • the communication speed measuring unit 68 can measure the communication speed by transmitting dummy data of a predetermined size to the synchronization server 10.
  • the communication speed measuring unit 68 may transmit a plurality of dummy data having different sizes to the synchronization server 10 in order to measure the communication speed.
  • the priority determination unit 70 determines the priority of each application based on the communication speed, the size of the synchronization data, and the activation information (S1006). For example, the priority determination unit 70 may increase the priority of an application having a large synchronous data size as the communication speed increases. Furthermore, the priority determination unit 70 may increase the priority of an application with a large number of communications or an application with a long activation time.
  • the synchronization communication unit 72 executes synchronization processing of the synchronization target application according to the determined priority (S1007). Specifically, the synchronization communication unit 72 refers to the synchronization setting unit storage unit 56, and synchronizes the components (application file and user file) of the synchronization target application between the synchronization server 10 and the PC 20. Synchronization data is transmitted to and received from the synchronization server 10. At this time, for example, the synchronous communication unit 72 can execute the synchronization processing in order from the application with the highest priority.
  • the priority of the synchronization processing of each application can be determined based on the size of the synchronization data and the communication speed. Therefore, for example, in a narrow band environment, it is possible to increase the priority of synchronization processing for an application having a relatively small size of synchronization data. As a result, the time to complete synchronization processing for an application with a relatively small synchronization data size is reduced compared to when the synchronization processing for an application with a relatively large synchronization data size is performed preferentially in narrowband. It becomes possible to do. On the other hand, for example, in a broadband environment, it is possible to increase the priority of synchronization processing for an application having relatively large synchronization data size. This makes it possible to improve convenience when synchronizing applications between a plurality of computers.
  • the priority of the synchronization processing of each application can be determined according to the startup results of the application in addition to the size of the synchronization data and the communication speed. Therefore, for example, an application with a large number of activations or an application with a long activation time can be preferentially synchronized. Thus, an application with a large number of activations and an application with a long activation time are considered to be applications that are frequently used by users. Therefore, by preferentially performing such application synchronization processing, the waiting time until such an application can be used can be reduced.
  • this embodiment is for making an understanding of this invention easy, and is not for limiting and interpreting this invention.
  • the present invention can be changed / improved without departing from the spirit thereof, and the present invention includes equivalents thereof.
  • a client that executes an application in the application synchronization system is a PC.
  • the client is not limited to a PC, and any information processing apparatus such as a mobile terminal can be used.
  • the priority for synchronizing the application is determined based on the number of activations and the activation time, but the index for determining the priority is not limited thereto.
  • the activation information may include information indicating the activation date and time, the activation time zone, and the activation interval.
  • the priority determination part 70 is good also as determining a priority based on the starting date and time of an application, a starting time slot
  • the priority determination unit 70 may increase the priority of an application having a high execution frequency near the time when the synchronization process is executed.
  • synchronization server 20 PC 30 User Account DB 32 synchronization data storage unit 34 synchronization communication unit 36 size detection unit 50 file storage unit 52 application execution unit 54 synchronization setting unit 56 synchronization setting storage unit 58 application activation unit 60 size detection unit 62 size storage unit 64 activation information generation unit 66 activation information Storage unit 68 Communication speed measuring unit 70 Priority determining unit 72 Synchronous communication unit

Abstract

 複数のコンピュータ間でアプリケーションを同期させる際の利便性を向上させる。コンピュータが、複数のアプリケーションのそれぞれについて、アプリケーションの実行時に必要となる構成要素を同期サーバとの間で同期させるための同期データのサイズをサイズ記憶部に記憶し、コンピュータと同期サーバとの間の通信速度を測定し、同期データのサイズと、通信速度とに基づいて、同期サーバとの間で同期データの送受信を行う優先度をアプリケーションごとに決定し、決定された優先度に従って、同期サーバとの間で同期データの送受信を行う。

Description

同期プログラム及び同期方法
 本発明は、同期プログラム及び同期方法に関する。
 パーソナルコンピュータ(PC)や携帯端末等の情報処理装置では、文書作成ソフトウェアやウェブブラウザなどの様々なアプリケーションを実行することが可能である。通常、このようなアプリケーションは、情報処理装置ごとにインストールされたうえで使用される。そのため、例えば複数のPCを保有しているユーザが、これら複数のPC上で同じアプリケーションを使用する場合は、各PCに対して個別にアプリケーションをインストールする必要がある。さらに、アプリケーションを使用する際のユーザ設定についても、各PCにおいて個別に行う必要がある。このように、複数のPCで同一のアプリケーションを使用するのは非常に煩雑となる場合が多い。
 また、近年普及しつつある、SaaS(Software as a Service)などのサービスを用いることにより、各PCに対して個別にアプリケーションをインストールしない構成も考えられる(例えば、特許文献1)。しかしながら、このようなサービスを用いる場合、利用可能なアプリケーションはサービス事業者から提供されるものに限られてしまう。
特開2009-277089号公報
 そこで、例えば、各PCに対して個別にアプリケーションをインストールするのではなく、1台のPCにインストールされたアプリケーションの実行ファイルやデータファイルなどの関連ファイルを複数のPC間で共有する、すなわち、アプリケーションを同期させることも考えられる。ここで、同期対象のアプリケーションが複数存在する場合、どのような順序でアプリケーションを同期させるかが問題となる。単純に、アプリケーション名の順序や、同期対象として登録された順序に従ってアプリケーションを同期させることも可能であるが、ネットワーク環境によっては好ましくない場合もある。例えば、最初に同期させるアプリケーションの同期データのサイズが大きい場合、このアプリケーションの同期が完了するまでの時間が長くなってしまう。そのため、他のアプリケーションの同期完了までの時間も長くなってしまい、利便性が低下する可能性がある。
 そこで、本発明は、複数のコンピュータ間でアプリケーションを同期させる際の利便性を向上させることを目的とする。
 本発明の一側面に係る同期プログラムは、コンピュータを、複数のアプリケーションのそれぞれについて、アプリケーションの実行時に必要となる構成要素を同期サーバとの間で同期させるための同期データのサイズを記憶するサイズ記憶部、コンピュータと同期サーバとの間の通信速度を測定する通信速度測定部、同期データのサイズと、通信速度とに基づいて、同期サーバとの間で同期データの送受信を行う優先度をアプリケーションごとに決定する優先度決定部、決定された優先度に従って、同期サーバとの間で同期データの送受信を行う同期通信部、として機能させるためのものである。
 また、本発明の一側面に係る同期方法では、コンピュータが、複数のアプリケーションのそれぞれについて、アプリケーションの実行時に必要となる構成要素を同期サーバとの間で同期させるための同期データのサイズをサイズ記憶部に記憶し、コンピュータと同期サーバとの間の通信速度を測定し、同期データのサイズと、通信速度とに基づいて、同期サーバとの間で同期データの送受信を行う優先度をアプリケーションごとに決定し、決定された優先度に従って、同期サーバとの間で同期データの送受信を行う。
 なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や装置が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や装置の機能が1つの物理的手段や装置により実現されてもよい。
 本発明によれば、複数のコンピュータ間でアプリケーションを同期させる際の利便性を向上させることが可能となる。
本発明の一実施形態におけるアプリケーション同期システムの構成例を示す図である。 同期サーバが有する機能の一例を示すブロック図である。 同期データの一例を示す図である。 PCが有する機能の一例を示すブロック図である。 同期設定の際に表示される画面の一例を示す図である。 同期設定の一例を示す図である。 同期対象のアプリケーションを起動する画面の一例を示す図である。 サイズ情報の一例を示す図である。 起動情報の一例を示す図である。 アプリケーションの同期処理の一例を示すフローチャートである。
 以下、図面を参照して本発明の一実施形態について説明する。図1は、本発明の一実施形態であるアプリケーション同期システムの構成例を示す図である。図1に示すように、アプリケーション同期システムは、同期サーバ10、及び複数台のパーソナルコンピュータ(PC)20を含んで構成される。同期サーバ10は、ユーザに対してアプリケーションを複数のPC20間で同期可能とするためのサービスを提供するものであり、1台または複数台の情報処理装置を用いて構成される。PC20は、ユーザがアプリケーションを実行させるための情報処理装置であり、同期サーバ10とインターネット等のネットワークを介して通信可能である。
 ここで、例えばユーザ「USER001」は、PC20-1及びPC20-2の2台のPCを保有しているとする。このユーザ「USER001」は、同期サーバ10により提供されるアプリケーション同期システムを用いることにより、各PCに個別にアプリケーションをインストールしたり、手動でデータを同期させたりする必要なく、PC20-1及びPC20-2において同期された状態でアプリケーションを実行することが可能である。ここで、アプリケーションの同期とは、アプリケーションの実行環境を同一の状態にすることをいう。なお、実行環境には、アプリケーションの実行ファイルそのものや、ユーザデータ、設定情報などが含まれる。すなわち、複数のPC間でアプリケーションが同期されることにより、ユーザはどのPCを用いる場合においても同じ状態でアプリケーションを実行することが可能となる。
 図2は、同期サーバ10が有する機能の一例を示すブロック図である。図2に示すように、同期サーバ10は、ユーザアカウントデータベース(DB)30、及び同期データ記憶部32、同期通信部34、及びサイズ検出部36を含んで構成される。これらの各部は、例えば、メモリや記憶装置等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。
 ユーザアカウントDB30は、アプリケーション同期システムを利用するユーザのアカウント情報を記憶するものである。例えば、アカウント情報には、ユーザIDやパスワード、メールアドレスなどが含まれる。
 同期データ記憶部32は、複数のPC間でユーザのアプリケーション実行環境を同期させるためのデータである同期データを記憶するものである。図3には、同期データの構造の一例が示されている。図3に示す例では、同期データは、同期用テーブルに格納されるデータと、データストレージに格納されるデータとにより構成されている。同期用テーブルには、ユーザID、アプリケーションID、アプリケーションファイルID、ユーザファイルID、更新日時、及びサイズが格納され、データストレージには、アプリケーションファイル及びユーザファイルが格納されている。
 ユーザIDは、各ユーザを識別するためのものであり、ユーザアカウントDB30に登録されている情報と同じものが使用されている。アプリケーションIDは、各ユーザが同期対象として選択したアプリケーションを識別するためのものである。このアプリケーションIDは、例えば、ユーザが同期対象のアプリケーションを同期サーバ10に登録する際に設定することとしてもよいし、同期サーバ10側で生成されることとしてもよい。
 アプリケーションファイルは、同期対象のアプリケーションを実行するためのアプリケーションデータであり、実行ファイルやDLL(Dynamic Link Library)などを含んでいる。また、アプリケーションファイルには、PC20においてアプリケーションデータを格納するフォルダを指定するための情報も含まれている。そして、アプリケーションファイルIDは、データストレージ内におけるアプリケーションファイルの格納場所を示すものである。
 ユーザファイルは、アプリケーションの実行時に必要となるユーザデータである。ここで、ユーザデータとは、アプリケーションの実行時に参照されるユーザごとのデータであり、例えば、電子メールの送受信を行うための電子メールアプリケーションにおける各ユーザの電子メールデータや、Webブラウザにおける各ユーザのブックマークデータなどである。また、ユーザファイルには、PC20においてユーザデータを格納するフォルダを指定するための情報も含まれている。そして、ユーザファイルIDは、データストレージ内におけるユーザファイルの格納場所を示すものである。
 更新日時には、アプリケーションファイルまたはユーザファイルが更新された日時が設定される。
 アプリケーションファイル及びユーザファイルは、アプリケーションを実行するために必要な構成要素である。また、アプリケーションファイルやユーザファイル以外の情報が構成要素に含まれることとしてもよい。例えば、レジストリに格納された設定情報が構成要素に含まれることとしてもよい。
 サイズは、アプリケーションごとの同期データのサイズを示す情報である。同期データのサイズは、例えば、同期通信部34がアプリケーションファイル及びユーザファイルをPC20に送信する形式に変換した場合のサイズとすることができる。なお、同期通信部34が、アプリケーションファイル及びユーザファイルの全てではなく、それらの一部を同期データとしてPC20との間で送受信する場合、同期データ記憶部32に記憶されるサイズは、PC20との間で送受信される同期データのサイズとすることができる。
 同期通信部34は、ネットワークを介してPC20等の他の情報処理装置との間でデータの送受信を行うことが可能である。そして、同期通信部34は、複数のPC20間でアプリケーションを同期させるための各種制御を行うことが可能である。具体的には、同期通信部34は、同期対象のアプリケーションを複数のPC20間で同期させるための同期データをPC20から受信して、同期データ記憶部32に格納することができる。また、同期通信部34は、PC20からの要求に応じて、同期データ記憶部32に格納されている同期データをPC20に送信することができる。また、同期通信部34は、同期データをPC20に送信する前に、同期データ記憶部32を参照し、同期データのサイズをPC20に送信することができる。
 なお、同期通信部34は、PC20との間でアプリケーションを同期させるために、アプリケーションファイル及びユーザファイルの全てを送受信するのではなく、アプリケーションファイル及びユーザファイルの一部を同期データとしてPC20との間で送受信することとしてもよい。例えば、同期通信部34は、同期対象のアプリケーションのアプリケーションファイル及びユーザファイルのうち、同期サーバ10とPC20との間で状態が異なるファイルを検出することにより、同期データを特定することとしてもよい。
 サイズ検出部36は、アプリケーションごとに、同期データのデータサイズを検出する。そして、サイズ検出部36は、検出されたデータサイズをユーザID及びアプリケーションIDと対応づけて同期データ記憶部32(サイズ記憶部)に格納する。例えば、同期通信部34が、アプリケーションファイル及びユーザファイルの全てを同期データとしてPC20との間で送受信する場合であれば、サイズ検出部36は、アプリケーションファイル及びユーザファイルの全てから同期データを生成した場合のデータサイズに基づいて、同期データのサイズを検出することができる。また例えば、同期通信部34が、アプリケーションファイル及びユーザファイルの一部を同期データとしてPC20との間で送受信する場合であれば、サイズ検出部36は、当該一部のアプリケーションファイル及びユーザファイルから同期データを生成した場合のデータサイズに基づいて、同期データのサイズを検出することができる。
 図4は、PC20が有する機能の一例を示すブロック図である。図4に示すように、PC20は、ファイル記憶部50、アプリケーション実行部52、同期設定部54、同期設定記憶部56、アプリケーション起動部58、サイズ検出部60、サイズ記憶部62、起動情報生成部64、起動情報記憶部66、通信速度測定部68、優先度決定部70、及び同期通信部72を含んで構成される。これらの各部は、例えば、メモリや記憶装置等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。
 ファイル記憶部50は、PC20において用いられる各種ファイルを記憶している。各種ファイルには、例えば、オペレーティングシステム(OS)やアプリケーションで用いられるプログラムやデータが含まれる。各ファイルは、ファイルパス名やファイル名などを含むファイルID(ファイル識別子)により識別することができる。
 アプリケーション実行部52は、ファイル記憶部50に記憶されているアプリケーション(アプリケーションプログラム)を実行する。具体的には、アプリケーション実行部52は、プログラムのインスタンスである「プロセス」を生成することにより、アプリケーションを実行する。各プロセスには、プロセスを識別するためのプロセスID(プロセス識別子)が割り当てられる。
 同期設定部54は、複数のPC20間でアプリケーションを同期させるための設定を行うものである。図5には、同期設定の際に表示される画面の一例が示されている。この画面は、アプリケーション同期システム用のプログラムが起動されることにより表示される。ユーザは、この画面を用いることにより、同期対象のアプリケーションを登録したり、同期された状態のアプリケーションを起動したりすることができる。例えば、ユーザが、PC20のデスクトップ等にある、あるアプリケーション「APL001」のショートカット110をドラッグアンドドロップによって画面100の表示領域112に移動させると、同期設定部54は、このショートカットにより特定されるアプリケーションを同期対象のアプリケーションとして登録する。なお、ドラッグアンドドロップに限らず、同期対象のアプリケーションを同期設定部54に認識させるための任意の手法を用いることができる。例えば、図5に示すように、アプリケーション追加ボタン114を押下してファイル参照用のインタフェースを表示させることにより、登録対象のアプリケーションが特定されることとしてもよい。そして、同期設定部54は、同期対象のアプリケーションに関する情報を同期設定記憶部56に格納する。なお、同期設定部54は、同期対象のアプリケーションに関する情報を同期設定部56に格納するのではなく、同期サーバ10の同期データ記憶部32に格納することとしてもよい。
 図6には、同期設定記憶部56に記憶される同期設定の一例が示されている。図6に示すように、同期設定には、ユーザID、パスワード、アプリケーションID、アプリケーションファイルID、ユーザファイルID、及び更新日時を示す情報が含まれている。ユーザID及びパスワードは、アプリケーション同期システムを用いるためのものであり、例えば、本システムの利用開始時に同期設定部54により登録される。アプリケーションID、アプリケーションファイルID、ユーザファイルID、及び更新日時は、同期サーバ10の同期データ記憶部32に格納されている情報と同等のものである。
 図4に戻り、アプリケーション起動部58は、ユーザ操作に応じて同期対象のアプリケーションを起動する。例えば、アプリケーション起動部58は、図7に示す画面100において、アプリケーションAPL001に割り当てられた表示領域120が選択されると、同期設定記憶部56に格納されている同期設定を参照し、アプリケーションAPL001を起動する。アプリケーション起動部58により起動されたアプリケーションは、他のアプリケーションと同様に、アプリケーション実行部52により実行される。
 サイズ検出部60は、アプリケーションの構成要素(アプリケーションファイル及びユーザファイル)を同期サーバ10との間で同期させるために同期サーバ10との間で送受信する同期データのサイズをアプリケーションごとに検出し、サイズ記憶部62に格納する。図8には、サイズ記憶部62に記憶されるサイズ情報の一例が示されている。図8に示す例では、サイズ情報は、アプリケーションID及びサイズを含んでいる。なお、同期データのサイズは、同期設定記憶部56において、アプリケーションIDと対応づけられて記憶されることとしてもよい。
 サイズ検出部60は、例えば、同期設定記憶部56に記憶されている同期設定を参照することにより、アプリケーションファイル及びユーザファイルの全てを同期データとした場合の同期データのサイズを検出することとしてもよい。また、サイズ検出部60は、アプリケーションファイル及びユーザファイルのうち、同期通信部72により特定された一部のファイルを同期データとした場合の同期データのサイズを検出することも可能である。また、サイズ検出部60は、同期データのサイズを同期サーバ10から受信することとしてもよい。
 図4に戻り、起動情報生成部64は、同期対象のアプリケーションの起動実績を示す起動情報を生成し、起動情報記憶部66に格納する。起動実績には、例えば、起動回数や起動時間、起動日時、起動時間帯、起動間隔などが含まれる。起動情報生成部64は、例えば、同期対象のアプリケーションの実行を監視することにより、起動情報を生成することができる。具体的には、例えば、起動情報生成部64は、図7に示した画面100におけるアプリケーションの起動指示を検出することにより、アプリケーションの起動回数を検出することができる。また例えば、起動情報生成部64は、同期対象のアプリケーションの実行を監視し、そのプロセスが実行されている時間を検出することにより、アプリケーションの起動時間を検出することができる。アプリケーションの起動時間は、例えば、起動時間の累計であってもよいし、平均であってもよい。また、起動回数や起動時間を集計する期間は、例えば、過去1か月間などの所定期間であってもよいし、直近に同期したタイミングから現在までの期間であってもよい。また、起動情報生成部64は、例えば、PC20のOSが出力するログ情報を参照することによって、起動情報を生成することとしてもよい。
 図9は、起動情報記憶部66に記憶される起動情報の一例を示す図である。図9に示す例では、起動情報には、アプリケーションID、起動回数、及び起動時間が含まれている。図9に示す例では、アプリケーションID「APL001」の起動回数が「3回」、起動時間が「3時間25分42秒」であり、アプリケーションID「APL002」の起動回数が「5回」、起動時間が「0時間15分39秒」となっている。図9に示す例では示していないが、起動日時や起動時間帯等の起動実績を示す様々な情報についても同様に、アプリケーションごとに起動情報記憶部66に記憶することができる。
 図4に戻り、通信速度測定部68は、同期通信部72が同期サーバ10との間で同期データの送受信を行う前に、PC20と同期サーバ10との間の通信速度を測定する。例えば、通信速度測定部68は、所定サイズのダミーデータを同期サーバ10に送信し、このダミーデータの送信が完了するまでの時間を計測することにより、PC20と同期サーバ10との間の通信速度を測定することができる。
 優先度決定部70は、同期通信部72が同期サーバ10との間で送受信する同期データのサイズと、PC20と同期サーバ10との間の通信速度とに基づいて、同期サーバ10との間で同期データの送受信を行う優先度をアプリケーションごとに決定することができる。例えば、優先度決定部70は、通信速度が速くなるに従って、同期データのサイズが大きいアプリケーションの優先度を高くすることとしてもよい。
 より具体的には、例えば、優先度決定部70は、通信速度が所定速度以上であれば、同期データのサイズが所定サイズ以上のアプリケーションの優先度を高くすることとしてもよい。換言すると、優先度決定部70は、通信速度が所定速度未満であれば、同期データのサイズが所定サイズ未満のアプリケーションの優先度を高くすることとしてもよい。
 すなわち、優先度決定部70は、PC20と同期サーバ10との間のネットワークがブロードバンドである場合であれば、同期データのサイズが比較的大きいアプリケーションの優先度を高くすることができる。一方、優先度決定部70は、PC20と同期サーバ10との間のネットワークがナローバンドである場合であれば、同期データのサイズが比較的小さいアプリケーションの優先度を高くすることができる。
 また、優先度決定部70は、優先度を決定する際に、各アプリケーションの起動実績を考慮することもできる。一例として、起動情報記憶部66に、図9に示した2件の起動情報が格納されている場合を想定する。この場合、優先度決定部70は、アプリケーション「APL001」と、アプリケーション「APL002」の優先度を考慮する際に、同期データのサイズと通信速度に加えて、起動情報を考慮することができる。
 例えば、優先度決定部70は、同期データのサイズと通信速度とに基づいて優先度(サイズ優先度)を決定するとともに、起動実績に基づいて優先度(起動実績優先度)を決定することとしてもよい。そして、優先度決定部70は、サイズ優先度と起動実績優先度とに基づいて、最終的な優先度を決定することとしてもよい。
 例えば、優先度決定部70は、起動回数が多いアプリケーションの起動実績優先度を高くすることができる。図9に示した2件の場合、アプリケーション「APL001」の起動回数は「3回」、アプリケーション「APL002」の起動回数は「5回」である。したがって、優先度決定部70は、例えば、起動回数の多いアプリケーション「APL002」の起動実績優先度を、アプリケーション「APL001」の起動実績優先度より高くすることとしてもよい。
 また例えば、優先度決定部70は、起動時間が長いアプリケーションの起動実績優先度を高くすることができる。図9に示した2件の場合、アプリケーション「APL001」の起動時間は「3時間25分42秒」、アプリケーション「APL002」の起動時間は「0時間15分39秒」である。したがって、優先度決定部70は、例えば、起動時間の長いアプリケーション「APL001」の起動実績優先度を、アプリケーション「APL002」の起動実績優先度より高くすることとしてもよい。
 なお、優先度決定部70は、起動情報に含まれる複数の指標に基づいて起動実績優先度を決定することとしてもよい。例えば、起動情報に含まれる各指標のスコアを算出し、複数の指標のスコアを合計することにより、各アプリケーションの起動実績優先度を算出してもよい。なお、各指標のスコアを合計する際に、指標ごとに重みづけが設定されることとしてもよい。また例えば、指標の優先度が設定されていることとしてもよい。一例として、起動情報に起動回数及び起動時間が含まれる場合、起動回数の優先度が高く設定されていることとしてもよい。この場合、優先度決定部70は、まず起動回数に基づいて、アプリケーションの起動実績優先度を決定することができる。そして、起動回数が同一である場合には、優先度決定部70は、さらに、起動時間に基づいてアプリケーションの起動実績優先度を決定することができる。
 図4に戻り、同期通信部72は、複数のPC20間でアプリケーションを同期させるためのデータ通信を行うものである。具体的には、同期通信部72は、同期設定記憶部56を参照し、同期対象のアプリケーションのアプリケーションファイル及びユーザファイルを、同期サーバ10との間で同期させることができる。例えば、同期通信部72は、同期設定記憶部56に記憶されている同期設定の内容と、同期サーバ10の同期データ記憶部32に記憶されている同期データの内容とを比較することにより、アプリケーションファイル及びユーザファイルの内容を、アプリケーションIDごとに最新の状態に合わせることができる。
 例えば、同期通信部72は、アプリケーションごとに更新日時を比較することにより、同期サーバ10内のファイルまたはPC20内のファイルの何れが新しいかを判定することができる。同期サーバ10内のファイルの方が新しい場合、同期通信部72は、該アプリケーションのアプリケーションファイル及びユーザファイルを同期サーバ10からダウンロードすることにより、アプリケーションを同期させることができる。また、PC20内のファイルの方が新しい場合、同期通信部72は、該アプリケーションのアプリケーションファイル及びユーザファイルを同期サーバ10にアップロードすることにより、アプリケーションを同期させることができる。このように、同期サーバ10とPC20との間で送受信されるデータが同期データである。なお、同期データは、アプリケーションファイル及びユーザファイルの全てである必要はなく、アプリケーションを同期させるために必要な一部のファイルであってもよい。
 また、同期通信部72は、優先度決定部70によって決定された優先度に従って、同期サーバ10との間で同期データの送受信を行うことができる。例えば、同期通信部72は、優先度の高いアプリケーションから順に、アプリケーションを同期させることができる。また例えば、同期通信部72は、優先度が所定レベル以上のアプリケーションについては、優先度の高い順にアプリケーションを同期させ、優先度が所定レベル未満のアプリケーションについては、ユーザから同期指示が入力された場合に同期させることとしてもよい。
 同期通信部72は、各アプリケーションの同期状態を同期設定記憶部56に記憶することとしてもよい。例えば、同期通信部72は、同期対象のアプリケーションについて、同期処理の未済を示す情報を同期設定記憶部56に記憶することとしてもよい。この場合、例えば、同期対象のアプリケーションを起動する画面(例えば図7の画面100)において、各アプリケーションの同期状態が表示されることとしてもよい。また例えば、この画面において、アプリケーションごとに同期指示を入力可能であることとしてもよい。
 なお、同期通信部72は、アプリケーションを逐次的に同期させるのではなく、複数のアプリケーションを並列的に同期させることとしてもよい。具体的には、同期通信部72は、例えば、2つのアプリケーションを並列に同期させることとしてもよい。このように複数のアプリケーションを並列的に同期させる場合においても、同期通信部72は、優先度に従ってアプリケーションの同期を制御することとしてもよい。例えば、同期通信部72は、並列的に同期されているアプリケーションのうち、優先度の高いアプリケーションの通信時間の割合が大きくなるように、アプリケーションの同期を制御することとしてもよい。
 なお、同期通信部72が同期サーバ10との間で通信を行うタイミングは、例えば、アプリケーション起動部58が画面100を起動した際や、同期対象のアプリケーションが終了した際、タイマにより設定される所定間隔など、任意のタイミングであってよい。
 また、同期通信部72は、アプリケーションを同期させるタイミングを優先度に基づいて決定することとしてもよい。例えば、同期通信部72は、優先度が比較的高いアプリケーションについては、所定の短い間隔でアプリケーションを同期させ、優先度が比較的低いアプリケーションについては、アプリケーション起動部58によって起動された際にアプリケーションを同期させることとしてもよい。
 起動情報に含まれる起動回数や起動時間等が、直近に同期したタイミングから現在までの期間における起動実績を示す情報である場合、同期通信部72は、同期処理を行ったアプリケーションの起動情報を初期値にリセットすることができる。
 次に、PC20における同期処理の流れについて説明する。図10は、同期処理の一例を示すフローチャートである。起動情報生成部64は、アプリケーションごとに起動情報を生成し、起動情報記憶部66に格納する(S1001)。例えば、起動情報生成部64は、同期対象のアプリケーションの起動状態を監視したり、PC20のOSから出力されるログ情報を参照したりすることにより、起動情報を生成することができる。起動情報生成部64は、同期指示が発行されるまで(S1002:N)、起動情報の生成を繰り返し実行する。なお、同期指示は、例えば、アプリケーション起動部58が画面100を起動した際や、同期対象のアプリケーションが終了した際、タイマにより設定される所定間隔など、任意のタイミングで発行される。
 同期指示が発行されると(S1002:Y)、同期通信部72は、同期対象のアプリケーションごとに同期データを特定する(S1003)。例えば、同期通信部72は、同期サーバ10と通信を行うことにより、各アプリケーションのアプリケーションファイル及びユーザファイルのうち、同期サーバ10への送信または同期サーバからの受信が必要なファイルを特定する。このように特定されたファイルが、PC20と同期サーバ10との間で送受信される同期データとなる。なお、同期データは、アプリケーションファイルやユーザファイルそのものではなく、通信に適した形式に変換されたものとすることができる。
 同期データが特定されると、サイズ検出部60は、同期データのサイズを検出し、サイズ記憶部62に格納する(S1004)。なお、例えば、各アプリケーションのアプリケーションファイル及びユーザファイルの全てが同期データの対象とされる場合のように、同期データがあらかじめ特定されている場合においては、サイズ検出部60は、同期指示が発行される前に同期データのサイズを検出することとしてもよい。
 続いて、通信速度測定部68は、PC20と同期サーバ10との間の通信速度を測定する(S1005)。例えば、通信速度測定部68は、所定サイズのダミーデータを同期サーバ10に送信することにより、通信速度を測定することができる。なお、通信速度測定部68は、通信速度を測定するために、サイズが異なる複数のダミーデータを同期サーバ10に送信することとしてもよい。
 そして、優先度決定部70は、通信速度、同期データのサイズ、及び起動情報に基づいて、各アプリケーションの優先度を決定する(S1006)。例えば、優先度決定部70は、通信速度が速くなるに従って、同期データのサイズが大きいアプリケーションの優先度を高くすることとしてもよい。さらに、優先度決定部70は、通信回数が多いアプリケーションや、起動時間の長いアプリケーションの優先度を高くすることとしてもよい。
 同期通信部72は、決定された優先度に従って、同期対象のアプリケーションの同期処理を実行する(S1007)。具体的には、同期通信部72は、同期設定部記憶部56を参照し、同期対象のアプリケーションの構成要素(アプリケーションファイル及びユーザファイル)を同期サーバ10とPC20との間で同期させるために、同期サーバ10との間で同期データを送受信する。この際に、同期通信部72は、例えば、優先度が高いアプリケーションから順に同期処理を実行することができる。
 以上、本実施形態のアプリケーション同期システムについて説明した。本実施形態によれば、同期データのサイズと通信速度とに基づいて、各アプリケーションの同期処理の優先度を決定することができる。したがって、例えば、ナローバンドの環境においては、同期データのサイズが比較的小さいアプリケーションの同期処理の優先度を高くすることができる。そのため、ナローバンドにおいて、同期データのサイズが比較的大きいアプリケーションの同期処理が優先的に実行された場合と比較して、同期データのサイズが比較的小さいアプリケーションの同期処理が完了するまでの時間を削減することが可能となる。一方、例えば、ブロードバンドの環境においては、同期データのサイズが比較的大きいアプリケーションの同期処理の優先度を高くすることができる。これにより、複数のコンピュータ間でアプリケーションを同期させる際の利便性を向上させることが可能となる。
 また、本実施形態によれば、同期データのサイズ及び通信速度に加えて、アプリケーションの起動実績に応じて、各アプリケーションの同期処理の優先度を決定することができる。したがって、例えば、起動回数が多いアプリケーションや、起動時間が長いアプリケーションを優先的に同期させることができる。このように、起動回数が多いアプリケーションや、起動時間が長いアプリケーションは、ユーザが良く利用するアプリケーションであると考えられる。そのため、このようなアプリケーションの同期処理を優先的に行うことにより、このようなアプリケーションが使用可能となるまでの待ち時間を削減することができる。
 なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。
 例えば、本実施形態では、アプリケーション同期システムにおいてアプリケーションを実行するクライアントをPCとしたが、クライアントはPCに限られず、携帯端末等の任意の情報処理装置を用いることが可能である。
 また例えば、本実施形態では、起動回数や起動時間に基づいてアプリケーションを同期させる際の優先度を決定することとしたが、優先度を決定する際の指標はこれに限られない。例えば、起動情報には、起動日時や起動時間帯、起動間隔を示す情報が含まれることとしてもよい。そして、優先度決定部70は、例えば、アプリケーションの起動日時や起動時間帯、起動間隔に基づいて優先度を決定することとしてもよい。具体的には、例えば、優先度決定部70は、同期処理を実行する時刻近辺での実行頻度が高いアプリケーションの優先度を高くすることとしてもよい。
 10 同期サーバ
 20 PC
 30 ユーザアカウントDB
 32 同期データ記憶部
 34 同期通信部
 36 サイズ検出部
 50 ファイル記憶部
 52 アプリケーション実行部
 54 同期設定部
 56 同期設定記憶部
 58 アプリケーション起動部
 60 サイズ検出部
 62 サイズ記憶部
 64 起動情報生成部
 66 起動情報記憶部
 68 通信速度測定部
 70 優先度決定部
 72 同期通信部

Claims (6)

  1.  コンピュータを、
     複数のアプリケーションのそれぞれについて、アプリケーションの実行時に必要となる構成要素を同期サーバとの間で同期させるための同期データのサイズを記憶するサイズ記憶部、
     前記コンピュータと前記同期サーバとの間の通信速度を測定する通信速度測定部、
     前記同期データのサイズと、前記通信速度とに基づいて、前記同期サーバとの間で前記同期データの送受信を行う優先度をアプリケーションごとに決定する優先度決定部、
     前記決定された優先度に従って、前記同期サーバとの間で前記同期データの送受信を行う同期通信部、
     として機能させるためのプログラム。
  2.  請求項1に記載のプログラムであって、
     前記優先度決定部は、前記通信速度が速くなるに従って前記同期データのサイズが大きいアプリケーションの前記優先度を高くする、
     プログラム。
  3.  請求項1または2に記載のプログラムであって、
     前記コンピュータを、さらに、前記複数のアプリケーションのそれぞれの起動実績を示す起動情報を記憶する起動情報記憶部として機能させ、
     前記優先度決定部は、前記同期データのサイズ、前記通信速度、及び前記起動実績に基づいて、前記優先度をアプリケーションごとに決定する、
     プログラム。
  4.  請求項3に記載のプログラムであって、
     前記起動情報には、アプリケーションの起動回数を示す情報が含まれ、
     前記優先度決定部は、起動回数が多くなるに従って前記優先度を高くする、
     プログラム。
  5.  請求項3または4に記載のプログラムであって、
     前記起動情報には、アプリケーションの起動時間を示す情報が含まれ、
     前記優先度決定部は、起動時間が長くなるに従って前記優先度を高くする、
     プログラム。
  6.  コンピュータが、
     複数のアプリケーションのそれぞれについて、アプリケーションの実行時に必要となる構成要素を同期サーバとの間で同期させるための同期データのサイズをサイズ記憶部に記憶し、
     前記コンピュータと前記同期サーバとの間の通信速度を測定し、
     前記同期データのサイズと、前記通信速度とに基づいて、前記同期サーバとの間で前記同期データの送受信を行う優先度をアプリケーションごとに決定し、
     前記決定された優先度に従って、前記同期サーバとの間で前記同期データの送受信を行う、
     同期方法。
PCT/JP2012/064771 2012-06-08 2012-06-08 同期プログラム及び同期方法 WO2013183159A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2012/064771 WO2013183159A1 (ja) 2012-06-08 2012-06-08 同期プログラム及び同期方法
JP2014519775A JPWO2013183159A1 (ja) 2012-06-08 2012-06-08 同期プログラム及び同期方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/064771 WO2013183159A1 (ja) 2012-06-08 2012-06-08 同期プログラム及び同期方法

Publications (1)

Publication Number Publication Date
WO2013183159A1 true WO2013183159A1 (ja) 2013-12-12

Family

ID=49711575

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/064771 WO2013183159A1 (ja) 2012-06-08 2012-06-08 同期プログラム及び同期方法

Country Status (2)

Country Link
JP (1) JPWO2013183159A1 (ja)
WO (1) WO2013183159A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016038802A (ja) * 2014-08-08 2016-03-22 キヤノン株式会社 情報処理端末、その制御方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004187228A (ja) * 2002-12-06 2004-07-02 Nec Corp ユーザ端末の個人情報管理システム
JP2011237950A (ja) * 2010-05-07 2011-11-24 Fujitsu Ltd 情報処理装置、バックアップサーバ、バックアッププログラム、バックアップ方法及びバックアップシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004187228A (ja) * 2002-12-06 2004-07-02 Nec Corp ユーザ端末の個人情報管理システム
JP2011237950A (ja) * 2010-05-07 2011-11-24 Fujitsu Ltd 情報処理装置、バックアップサーバ、バックアッププログラム、バックアップ方法及びバックアップシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016038802A (ja) * 2014-08-08 2016-03-22 キヤノン株式会社 情報処理端末、その制御方法及びプログラム

Also Published As

Publication number Publication date
JPWO2013183159A1 (ja) 2016-01-28

Similar Documents

Publication Publication Date Title
US20220103612A1 (en) Application Recommendation Method, Device, and System
EP3480816B1 (en) Method for voice recognition and electronic device for performing the same
CN112214260B (zh) 终端应用app的加载方法及装置
US10591324B2 (en) Electronic device and hardware diagnosis result-based process execution method thereof
US10268515B2 (en) Releasing resources from processes in a particular order to provide required resources to start an application
WO2020226813A1 (en) Automated application updates during operating system upgrades
US9823819B1 (en) Method for launching remote applications from a mobile device using cloud cache
WO2014012449A1 (zh) 桌面同步方法、装置、处理中心及系统
WO2014089734A1 (zh) 终端和应用程序恢复方法
TW201351163A (zh) 元件間之無縫瀏覽
WO2016112226A1 (en) Techniques for sharing applications
KR20170033121A (ko) 서비스 처리 방법 및 이를 구현하는 전자 장치
US20180026778A1 (en) Electronic device and system for synchronizing playback time of sound source
JP5500704B2 (ja) アプリケーション同期方法及びプログラム
EP3026670A1 (en) Method and electronic device for storing audio data
EP3022691A1 (en) Mobile application optimization platform
US20170109710A1 (en) Method for providing schedule and electronic device supporting the same
EP3131031A1 (en) Content security processing method and electronic device supporting the same
EP3455712B1 (en) Electronic device and control method therefor
US10210104B2 (en) Apparatus and method for providing handoff thereof
WO2013183159A1 (ja) 同期プログラム及び同期方法
EP3330856A1 (en) Text input method and electronic device supporting the same
CN111679842B (zh) 应用程序热更新处理方法、装置及系统
EP3005101B1 (en) Coordination of system readiness tasks
WO2013183099A1 (ja) 同期プログラム及び同期方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12878458

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014519775

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12878458

Country of ref document: EP

Kind code of ref document: A1