WO2013168221A1 - 同期プログラム、同期サーバ、及び同期方法 - Google Patents

同期プログラム、同期サーバ、及び同期方法 Download PDF

Info

Publication number
WO2013168221A1
WO2013168221A1 PCT/JP2012/061717 JP2012061717W WO2013168221A1 WO 2013168221 A1 WO2013168221 A1 WO 2013168221A1 JP 2012061717 W JP2012061717 W JP 2012061717W WO 2013168221 A1 WO2013168221 A1 WO 2013168221A1
Authority
WO
WIPO (PCT)
Prior art keywords
component
application
synchronization
information
unit
Prior art date
Application number
PCT/JP2012/061717
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/061717 priority Critical patent/WO2013168221A1/ja
Priority to JP2014514251A priority patent/JPWO2013168221A1/ja
Publication of WO2013168221A1 publication Critical patent/WO2013168221A1/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
    • G06F9/4451User profiles; Roaming

Definitions

  • the present invention relates to a synchronization program, a synchronization server, 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 the identification accuracy of components of an application to be synchronized.
  • a synchronization program provides a component identification unit that identifies a component necessary for execution of an application from a computer, and component information acquisition that acquires component information indicating a component of the application from a synchronization server And a component transmission unit that transmits a component according to the identification result by the component identification unit and the component element information to the synchronization server.
  • the synchronization server includes: a component storage unit that stores an identifier of an application and a component necessary for executing the application in association with each other; and a configuration of the application from the first computer
  • a component element acquisition request receiving unit that receives a component element information acquisition request indicating an element, and refers to the component element storage unit in response to the component element acquisition request, and transmits the component element information to the first computer
  • a component information transmission unit a component reception unit that receives an application identifier and a component of the application from the first computer, and updates the component storage unit, and a configuration of the application from the second computer
  • a component acquisition request receiving unit that receives an element acquisition request, and a component storage unit in response to the component acquisition request Reference comprises a component transmitting unit that transmits the components to the second computer, a.
  • the computer specifies a component necessary for executing the application, acquires component information indicating the component of the application from the synchronization server, and specifies the component identification result. And the component according to the component information are transmitted to the synchronization server.
  • the synchronization server stores the identifier of the application and the component necessary for executing the application in the component storage unit in association with each other, from the first computer
  • Receiving the component element information acquisition request indicating the component element of the application referring to the component element storage unit in response to the component element information acquisition request, transmitting the component element information to the first computer
  • the application identifier and the application component are received from the computer to update the component storage unit
  • the application component acquisition request is received from the second computer
  • the component acquisition request is received. Then, referring to the component storage unit, the component is transmitted to the second computer.
  • 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 which is 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 a structure of the component-specific component memory
  • 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 components necessary for executing the application.
  • the application components include, for example, an execution file, a user file, setting information, and the like.
  • FIG. 2 is a block diagram illustrating an example of the functions of the synchronization server 10.
  • the synchronization server 10 includes an account information storage unit 30, a component storage unit 32, and a synchronization communication unit 34. 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 account information storage unit 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 component storage unit 32 stores components of a synchronization target application (synchronization application). As described above, the component is necessary for executing the synchronization application, and includes an execution file, a user file, setting information, and the like. As shown in FIG. 2, the component storage unit 32 can include a user-specific component storage unit 40 and a component information storage unit 42.
  • the user-specific component storage unit 40 stores the components of the synchronization application for each user.
  • FIG. 3 shows an example of the configuration of the user-specific component storage unit 40.
  • the user-specific component storage unit 40 includes a user-specific component table and data storage.
  • the user-specific component table stores a user ID, an application ID, an application file ID, a user file / file ID, synchronization setting information, and an update date / time, and the data storage stores an application and a user file. .
  • the user ID is used to identify each user, and the same information as that registered in the account information storage unit 30 is used.
  • the application ID is for identifying the synchronous application selected by each user. This application ID may be set, for example, when the user registers the synchronization application in the synchronization server 10 or may be generated on the synchronization server 10 side.
  • the application file is a file having application data for executing the synchronous 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 the application file of the synchronous application in the PC 20. Further, the application file includes information indicating a folder in which the application file is stored when the application is installed on the PC 20.
  • the application file ID indicates the storage location of the application file in the data storage.
  • the user file is a file having user data necessary for executing the synchronization 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 the user file for the synchronization application in the PC 20. Further, the user file includes information indicating a folder in which the user file is stored when the application is installed on the PC 20.
  • the user file / file ID indicates the storage location of the user file in the data storage.
  • the synchronization setting information is information necessary for executing the synchronization application, for example, information having the same content as the setting information stored in the registry of the PC 20.
  • the synchronization setting information also includes information for designating a folder for storing synchronization setting information for the synchronization application in the PC 20.
  • the synchronization setting information includes information indicating a location (registry key) where the setting information was stored when the application was installed in the PC 20. Note that the synchronization setting information may also be stored in the data storage in the same manner as the application file and user file.
  • the date and time when the application file, user file, or synchronization setting information is updated is set as the update date and time.
  • This update date and time is updated by, for example, transmitting an application file, a user file, or synchronization setting information from the PC 20 to the synchronization server 10.
  • the component information storage unit 42 stores component information indicating the components of the synchronization application for each application.
  • FIG. 4 shows an example of the configuration of the component element information storage unit 42.
  • the component ID information storage unit 42 stores an application ID and component information in association with each other.
  • the component information includes an application file ID, a user file / file ID, and a synchronization setting information ID.
  • Application file ID is information for identifying the application file of the synchronous application.
  • the application file ID can include information indicating a location where the application file is stored when the application is installed on the PC 20, that is, an original storage location.
  • User file / file ID is information for identifying the user file of the synchronous application.
  • the user file / file ID can include information indicating a location where the user file is stored when the application is installed on the PC 20, that is, an original storage location.
  • the synchronization setting information ID is information for identifying the synchronization setting information of the synchronization application.
  • the synchronization setting information ID can be information indicating a key of the registry, for example.
  • the component element information is obtained by collecting the component element information indicating the component elements stored in the user-specific component element storage unit 40 for each application.
  • FIG. 5 is a diagram for explaining an example of aggregation of component element information.
  • the application file ID of the user USER001 is A and B
  • the application file ID of the user USER002 is A and C.
  • the component element information for the application APL001 includes A, B, and C as application file IDs.
  • Other constituent element information such as user file / file ID and setting information ID is also aggregated in the same manner.
  • the component element information storage unit 42 stores, for each application, component element information indicating the component elements specified in the PCs 20 of a plurality of users, in order to complement the component leak of one user.
  • 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. As shown in FIG. 2, the synchronous communication unit 34 includes a user authentication unit 50, a component element information acquisition request reception unit 52, a component element information transmission unit 54, a component element reception unit 56, a component element acquisition request reception unit 58, and a configuration. An element transmission unit 60 can be included.
  • the user authentication unit 50 performs user authentication in response to an authentication request from the PC 20.
  • the authentication request includes, for example, account information such as a user ID and a password.
  • the user authentication unit 50 can perform user authentication by checking account information received from the PC 20 with account information stored in the account information storage unit 30.
  • the component information acquisition request reception unit 52 receives a component acquisition request from the PC 20.
  • the component acquisition request includes an application ID.
  • the component acquisition request may include a user ID instead of the application ID.
  • the component element information transmission unit 52 acquires the component element information corresponding to the application ID included in the component element information acquisition request from the component element information storage unit 42 and transmits it to the requesting PC 20.
  • the component information transmission unit 52 acquires the application ID associated with the user ID from the user-specific component storage unit 40, thereby obtaining the user ID.
  • the component element information corresponding to the application ID may be acquired from the component element information storage unit 42.
  • the component receiving unit 56 receives the component from the PC 20 and updates the component storage unit 32. Specifically, the component receiving unit 56 receives information associated with the user ID, application ID, and component from the PC 20. The component reception unit 56 updates the component corresponding to the user ID and application ID in the user-specific component storage unit 40. In addition, the component reception unit 56 updates the update date and time of the user-specific component table. Further, the component receiving unit 56 refers to the component element information storage unit 42, and when the component element information indicating the component is not associated with the application ID, the component element information indicating the component is It is stored in association with the application ID.
  • the component acquisition request reception unit 58 receives a component acquisition request from the PC 20.
  • the component acquisition request includes a user ID and an application ID.
  • the component acquisition request does not need to include the application ID.
  • the component transmission unit 60 acquires the component corresponding to the user ID and application ID included in the component acquisition request from the user-specific component storage unit 40, and transmits it to the requesting PC 20. If the application ID is not included in the component acquisition request, the component transmission unit 60 requests a plurality of application components corresponding to the user ID included in the component acquisition request in association with the application ID. It may be transmitted to the original PC 20.
  • FIG. 6 is a block diagram illustrating an example of functions that the PC 20 has.
  • the PC 20 includes a file storage unit 80, a setting information area 82, a file system driver 84, an application execution unit 86, a setting information reference unit 88, a synchronization setting unit 90, a synchronization application activation unit 92, and component identification.
  • Unit 94 and a synchronous communication unit 96 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 synchronization setting unit 90, the synchronization application activation unit 92, the component identification unit 94, and the synchronization communication unit 96 that are necessary for using the application synchronization system are realized by executing a program for the application synchronization system. Is done. It is assumed that this program is downloaded and installed in each PC 20 from, for example, the synchronization server 10.
  • the file storage unit 80 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 file storage unit 80 includes an application storage unit 100, a user file storage unit 102, a synchronization setting storage unit 104, a synchronization application storage unit 106, a synchronization user file storage unit 108, and a synchronization setting information storage unit 110. Can be included.
  • the application storage unit 100 stores execution files of various applications executed on the PC 20 and application files such as DLL.
  • the storage location of the application file is specified by the user when the application is installed on the PC 20, or predetermined by the installer, for example.
  • the user file storage unit 102 stores a user file that is a file including user data used in an application.
  • the user file can be stored, for example, in a folder for each application provided under a common folder for various applications. In this case, for example, information on the common folder can be set in the environment variable.
  • the application can specify the storage location of the user file by referring to the environment variable.
  • the user file may be stored in a location uniquely determined by the application, not under the common folder as described above.
  • the synchronization setting storage unit 104 stores synchronization settings that are settings for using the application synchronization system.
  • FIG. 7 is a diagram illustrating an example of the configuration of the synchronization setting storage unit 104.
  • the synchronization setting storage unit 104 stores information related to the synchronization application in addition to account information such as a user ID and a password. Examples of the information related to the synchronization application include application information, user file folder information, synchronization setting information folder information, and update date / time.
  • Account information such as a user ID and password is for using the application synchronization system, and is registered by the synchronization setting unit 90 at the start of use of the system, for example.
  • Application information includes, for example, information indicating the storage location of the executable file of the synchronous application.
  • the application file of the synchronous application is copied from the application storage unit 100 to the synchronous application storage unit 106 and used.
  • FIG. 8 shows an example of copying from the application storage unit 100 to the synchronous application storage unit 106.
  • the application file stored in the application storage unit 100 can be copied to the synchronous application storage unit 106, for example, in folder units.
  • the application information in the synchronization setting storage unit 104 can include, for example, information on a folder in the synchronization application storage unit 106 and information on an executable file stored in the folder.
  • the application information of the synchronization setting can include, for example, information indicating an application file storage location in the application storage unit 100, that is, an original storage location.
  • the user file used in the synchronization application is copied from the user file storage unit 102 to the synchronization user file storage unit 108 and used.
  • the user file stored in the user file storage unit 102 is used.
  • an application stored in the synchronous application storage unit 108 is activated by using this system, the user file stored in the synchronous user file storage unit 102 is used.
  • the user file folder information included in the synchronization setting can include information for specifying the storage location of the user file stored in the synchronization user file storage unit 108.
  • the user file folder information of the synchronization setting can include, for example, information indicating the storage location of the user file in the user file storage unit 102, that is, the original storage location.
  • the synchronization setting information stored in the synchronization setting information storage unit 110 is referred to instead of the setting information stored in the setting information area (registry) 82.
  • the setting information area 82 is a special data area such as a registry, for example, and stores various setting information generated at the time of application installation or application execution.
  • the synchronization setting information folder information in the synchronization setting storage unit 104 can include, for example, information on a folder in which the synchronization setting information is stored in the synchronization setting information storage unit 110.
  • the setting information stored in the setting information area 82 is used.
  • the synchronization setting information stored in the synchronization setting information storage unit 110 is used.
  • the information regarding the synchronization setting information folder included in the synchronization setting may include information for specifying the storage location of the synchronization setting information stored in the synchronization setting information storage unit 110.
  • the synchronization setting information can be a file having a predetermined data format including the same contents as the setting information stored in the setting information area 82.
  • the synchronization setting information can be structured data such as a serialized message pack. The synchronization setting information can be referred to without being restored to the setting information area 82.
  • the update date and time of the synchronization setting storage unit 104 information indicating the date and time when the application file and user file of the synchronization application and the synchronization setting information are updated is set.
  • the setting information area 82 is a special data area such as a registry, for example, and stores various setting information generated at the time of application installation or application execution.
  • the file system driver 84 is a driver for accessing various files stored in the file storage unit 80. Specifically, for example, if the OS of the PC 20 is Windows (registered trademark), an input / output request packet (IRP: I / O Request Packet) is issued when a process accesses a file. The By receiving this IRP from the process, the file system driver 84 executes access to the file specified by the IRP. In the present embodiment, the file system driver 84 is executed in the kernel mode.
  • IRP input / output request packet
  • the application execution unit 86 executes an application stored in the application storage unit 100 or the synchronous application storage unit 106 in accordance with a user operation.
  • the setting information reference unit 88 provides a function for referring to the setting information stored in the setting information area 82 when the application is executed.
  • the setting information reference unit 88 is realized by DLL, and can be dynamically linked when the application is activated.
  • the synchronization setting unit 90 performs settings for synchronizing applications among a plurality of PCs 20.
  • FIG. 9 shows an example of a screen displayed at the time of synchronization setting. This screen is displayed, for example, when an application synchronization system program is started. By using this screen, the user can register the synchronization application or start the synchronization application. For example, when the user moves a shortcut 210 of an application “APL001” on the desktop of the PC 20 to the display area 212 of the screen 200 by drag and drop, the synchronization setting unit 90 selects the application specified by the shortcut. Recognize as a synchronous application. In addition, not only drag and drop but the arbitrary methods for making the synchronous setting part 90 recognize a synchronous application can be used.
  • the application to be registered may be recognized by pressing the application addition button 214 to display a file reference interface. Then, the synchronization setting unit 90 stores information regarding the recognized synchronization application in the synchronization setting storage unit 104. Note that the synchronization setting unit 90 may store information on the synchronization application in the user-specific component storage unit 40 of the synchronization server 10 instead of storing the information about the synchronization application in the synchronization setting storage unit 104.
  • the synchronization setting unit 90 can copy the application file of this application from the application storage unit 100 to the synchronization application storage unit 106.
  • the synchronization setting unit 90 stores the application file “APL001” stored in the application storage unit 100 for each folder. 106 can be copied.
  • the synchronization setting unit 90 can update the update date and time of the synchronization setting stored in the synchronization setting storage unit 104.
  • the synchronization setting unit 90 can set the date and time when the synchronization application is registered as the initial information of the update date and time.
  • the synchronization setting unit 90 can update the update date and time included in the synchronization setting when the application file, the user file, or the synchronization setting information is updated by executing the synchronization application.
  • the synchronization application activation unit 92 activates the synchronization application in response to a user operation. For example, when the display area 220 assigned to the application “APL001” is selected on the screen 200 shown in FIG. 10, the synchronization application activation unit 92 refers to the synchronization setting stored in the synchronization setting storage unit 104, The synchronous application stored in the synchronous application storage unit 106 is activated.
  • the synchronization application activation unit 92 activates the synchronization application so that the reference destination of the user file is not the user file storage unit 102 but the synchronization user file storage unit 108.
  • the synchronization application activation unit 92 refers to the synchronization setting stored in the synchronization setting storage unit 104 and acquires user file folder information associated with the activation target application.
  • the synchronous application starting part 92 starts a synchronous application so that the folder shown with this information may become a reference destination of a user file.
  • the synchronous application activation unit 92 sets information of this folder as a reference destination of the user file in an environment variable when the synchronous application is executed.
  • the synchronization application activation unit 92 activates the synchronization application so that the setting information reference destination is not the setting information area 82 but the synchronization setting information storage unit 110.
  • a method for setting the reference destination of the setting information as the synchronization setting information storage unit 110 will be described later.
  • the component element specifying unit 94 can specify a component element that is required when the synchronization application is executed. As shown in FIG. 6, the component specifying unit 94 includes a folder specifying unit 120, a setting information detecting unit 122, and a file detecting unit 124.
  • the folder specifying unit 120 can specify a folder in which components necessary for executing the synchronization application are stored.
  • the folder specifying unit 120 can specify a folder in which application files, user files, and synchronization setting information are stored by referring to the synchronization setting storage unit 104. Then, the folder specifying unit 120 can specify the file stored in the folder specified in this way as a component.
  • the setting information detection unit 122 (synchronization setting information reference unit) can detect the setting information required when executing the synchronization application from the setting information stored in the setting information area 82.
  • the setting information detection unit 122 can store the detected setting information in the synchronization setting information storage unit 110 as synchronization setting information. Further, the setting information detection unit 122 can refer to the synchronization setting information stored in the synchronization setting information storage unit 110 when executing the synchronization application.
  • the setting information detection unit 122 is realized by, for example, a DLL like the setting information reference unit 88, and can be dynamically linked when the synchronous application is activated.
  • the setting information detection unit 122 is dynamically linked to the synchronization application instead of the setting information reference unit 88 when the synchronization application activation unit 92 activates the synchronization application.
  • the setting information detection unit 122 is activated, and the synchronization setting information storage unit
  • the setting information stored in 110 is referred to. That is, the setting information detection unit 122 hooks (interprets) a function call of the setting information reference unit 88 by the application execution unit 86 and executes processing instead of the setting information reference unit 88.
  • Such a method is generally called DLL injection.
  • the setting information detection unit 122 refers to the synchronization setting information storage unit 110 according to an instruction from the application execution unit 86, if the target setting information is not stored in the synchronization setting information storage unit 110, the setting information detection unit 122 performs this setting. Information can be acquired from the setting information area 82 and returned to the application execution unit 86. Then, the setting information detection unit 122 stores this setting information in the synchronization setting information storage unit 110 as synchronization setting information. This is because, when registering a synchronous application, it is impossible to specify where the setting information stored in the setting information area 82 is used by this application.
  • the setting information detection unit 122 extracts setting information designated at the time of executing the application from the setting information area 82 and stores it in the synchronization setting information storage unit 110.
  • the setting information detection unit 122 can call the setting information reference unit 88 when extracting setting information from the setting information area 82.
  • the file detection unit 124 detects a file accessed in the synchronization application.
  • the reason why the file is detected by the file detection unit 124 in this way is that it is not always possible to specify all the files used in the synchronization application by the file specified by the folder specifying unit 120 alone.
  • FIG. 11 shows an example of the configuration of the file detection unit 124.
  • the file detection unit 124 includes an application monitoring unit 150, an application information storage unit 152, a file system filter driver 154, an access information storage unit 156, a file specification unit 158, and a specific information storage unit 160. It is configured.
  • FIG. 12 is a diagram illustrating the relationship between the respective units constituting the file detection unit 124. The configuration of the file detection unit 124 will be described with reference to FIGS. 11 and 12.
  • the process of the synchronous application is referred to as the monitoring target process 100
  • the process of the other application is referred to as the non-monitoring process 310.
  • the application monitoring unit 150 monitors the execution state of the application on the PC 20.
  • the application monitoring unit 150 acquires the process ID of the application.
  • the application monitoring unit 150 uses the API (Application Program Interface) function such as ToolHelp32 to monitor the execution state of the application and obtain the process ID. It can be performed.
  • the application monitoring unit 150 generates application information in which the application ID is associated with the process ID, and stores the application information in the application information storage unit 152.
  • FIG. 13 shows an example of application information.
  • the application monitoring unit 150 when the process ID of the synchronous application is acquired, the application monitoring unit 150 notifies the file system filter driver 154 of the process ID. Note that the application monitoring unit 150 does not notify the file system filter driver 154 of the process ID, but the file system filter driver 154 may refer to the application information storage unit 152.
  • the file system filter driver 154 specifies a file accessed from the monitoring target process 300 by filtering an access request for the file.
  • the file system filter driver 154 is executed in the kernel mode. For example, if the OS of the PC 20 is Windows (registered trademark), an input / output request packet (IRP: I / O Request Packet) is issued when a file is accessed from a process.
  • IRP input / output request packet
  • the IRP includes information that can specify the file to be accessed and the process ID of the process making the access request. Note that the file ID and process ID itself do not need to be included in the IRP, and it is sufficient that the file ID and process ID can be specified based on the information included in the IRP.
  • IRP is described as an example of an access request. However, the access request is not limited to the IRP, and can be in any format according to the OS.
  • file access is executed by outputting the IRP to the file system driver 84.
  • the file system filter driver 154 can intercept the IRP output to the file system driver 84 and specify the file accessed in the monitored process 300. Specifically, when the process ID of the process that issued the IRP is included in the process ID notified from the application monitoring unit 150, the file system filter driver 154 specifies the file ID of the file to be accessed by the IRP. .
  • the file system filter driver 154 can store the process ID notified from the application monitoring unit 150. Then, the file system filter driver 154 generates access information in which the process ID and the file ID are associated with each other, and stores the access information in the access information storage unit 156.
  • FIG. 14 shows an example of access information.
  • the file system filter driver 154 outputs the IRP to the file system driver 84 after generating the access information. If the process ID of the process that issued the IRP is not included in the process ID notified from the application monitoring unit 150, that is, if the process that issued the IPR is the non-monitoring process 310, the file system filter driver 154 Outputs the IRP to the file system driver 84 without generating access information.
  • the file specifying unit 158 specifies a file accessed in the synchronous application based on the application information stored in the application information storage unit 152 and the access information stored in the access information storage unit 156. Specifically, the file specifying unit 158 determines the correspondence between the application ID and the file ID based on the correspondence between the application ID and the process ID in the application information and the correspondence between the process ID and the file ID in the access information. To do. Then, the file specifying unit 158 generates specific information in which the application ID and the file ID are associated with each other, and stores the specific information in the specific information storage unit 160. FIG. 15 shows an example of the specific information.
  • the synchronous communication unit 96 performs data communication for synchronizing applications among a plurality of PCs 20.
  • the synchronous communication unit 96 includes an authentication request unit 130, a component element information acquisition unit 132, a component element information storage unit 134, a component element transmission unit 136, and a component element reception unit 138. Can do.
  • the authentication request unit 130 transmits an authentication request for using the application synchronization system to the synchronization server 10 by using the account information stored in the synchronization setting storage unit 104. Note that the authentication request unit 130 does not acquire the account information from the synchronization setting storage unit 104, but may accept the account information from the user, for example, by outputting a screen for inputting the account information.
  • the component information acquisition unit 132 acquires the component information indicating the components of the synchronization application from the synchronization server 10 at the timing of performing the synchronization process, and stores the component information in the component information storage unit 134.
  • the constituent element information acquisition unit 132 can acquire constituent element information indicating the constituent elements of the synchronization application by transmitting a constituent element information acquisition request including the application ID of the synchronous application to the synchronization server 10.
  • this component information is a collection of information indicating components transmitted by a plurality of users to the synchronization server 10.
  • the component information can include information indicating a storage location of the component in a state where the application is installed on the PC 20.
  • the component transmission unit 136 transmits the component of the synchronization application to the synchronization server 10 at the timing of performing the synchronization process. Specifically, the component transmission unit 136 transmits a component according to the identification result by the component identification unit 94 and the component element information acquired from the synchronization server 10 to the synchronization server 10.
  • FIG. 16 is a diagram illustrating an example of a component transmitted by the component transmission unit 136.
  • the constituent elements specified by the constituent element specifying unit 94 include A, B, and C.
  • the constituent elements indicated by the constituent element information acquired from the synchronization server 10 include A, B, and D.
  • the component transmission unit 136 sets both the component indicated by the specific result and the component indicated by the component information (A, B, C, D) as transmission targets to the synchronization server 10. Can do.
  • the component transmission unit 136 can transmit to the synchronization server 10 not only the component specified in the PC 20 of a certain user but also the component specified in the PC 20 of another user. Thereby, compared with the case where only the component specified in PC20 of a certain user is transmitted to the synchronous server 10, the specific precision of the component of a synchronous application can be improved.
  • the component reception unit 138 receives the component from the synchronization server 10 at the timing of performing the synchronization process, and updates the synchronization application storage unit 106, the synchronization user file storage unit 108, and the synchronization setting information storage unit 110.
  • the component reception unit 138 can acquire the component of the synchronization application by transmitting a component acquisition request including the application ID of the synchronization application to the synchronization server 10.
  • FIG. 17 is a diagram showing the relationship between each part in the PC 20.
  • FIG. 18 is a flowchart illustrating an example of a processing flow in the PC 20.
  • FIG. 19 is a flowchart illustrating an example of synchronization processing in the PC 20.
  • FIG. 20 is a flowchart illustrating an example of application execution processing in the PC 20. Application synchronization processing will be described with reference to FIGS.
  • the synchronization communication unit 96 accesses the synchronization server 10 and executes synchronization processing (S1801).
  • the state of the components of the synchronization application in the PC 20 is synchronized with the synchronization server 10 by the synchronization process. That is, the states of the components of the synchronization application are synchronized among a plurality of PCs 20 possessed by a certain user.
  • the application execution unit 86 executes the synchronization application (S1802).
  • the synchronization communication unit 96 accesses the synchronization server 10 and executes synchronization processing (S1803).
  • the synchronization communication unit 96 can transmit components such as user files and setting information updated by the execution of the synchronization application to the synchronization server 10.
  • the component element information acquisition unit 132 transmits a component element information acquisition request for acquiring the component element information of the synchronization application to the synchronization server 10 (S1901).
  • the component information acquisition unit 132 receives the update date and component information of the synchronization application transmitted from the synchronization server 10 in response to the request (S1802).
  • the update date and time of the synchronization application transmitted from the synchronization server 10 indicates the update date and time stored in the user-specific component storage unit 40.
  • the component element information acquisition unit 132 stores the received component element information in the component element information storage unit 134.
  • the component receiving unit 138 compares the update date and time received from the synchronization server 10 with the update date and time stored in the synchronization setting storage unit 104 for the synchronization application (S1903). When these are the same (S1903: A), the component reception unit 138 determines that the component of the synchronization application in the PC 20 is synchronized with the component stored in the synchronization server 10, and performs synchronization processing. Exit.
  • the component reception unit 138 determines that the component of the synchronization application in the PC 20 is not up-to-date. Therefore, the component receiving unit 138 transmits a component acquisition request for acquiring the component of the synchronization application to the synchronization server 10 (S1904).
  • the component reception unit 138 receives the synchronization application components transmitted from the synchronization server 10 in response to the request, and receives the synchronization setting storage unit 104, the synchronization application storage unit 106, the synchronization user file storage unit 108, and
  • the synchronization setting information storage unit 110 is updated (S1905).
  • the component transmission unit 136 is such that the component of the synchronization application in the PC 20 is more than the component stored in the synchronization server 10.
  • the component of the synchronization application in the PC 20 is transmitted to the synchronization server 10 (S1906).
  • the component transmission unit 136 converts the component corresponding to the component information stored in the component information storage unit 134 into the configuration of the synchronization application. It transmits to the synchronous server 10 as an element. That is, the component transmission unit 136 can transmit the component specified in the PC 20 of another user to the synchronization server 10 in addition to the component specified in the PC 20 of a certain user. Thereby, the identification precision of the component of a synchronous application can be improved.
  • the synchronous application starting unit 92 sets the reference destination of the user file and the setting information for synchronization and starts the synchronous application (S2001). Specifically, for example, as shown in FIG. 17, the synchronization application activation unit 92 sets the folder storing the synchronization user file in the synchronization user file storage unit 108 in the environment variable indicating the storage location of the user file. be able to. Further, the synchronous application activation unit 92 can dynamically link the setting information detection unit 122 to the synchronous application instead of the setting information reference unit 88.
  • the application monitoring unit 150 acquires the process ID (PID) of the application by monitoring the execution state of the application started by the synchronous application starting unit 92 (S2002). Note that the application monitoring unit 150 can set a synchronization application set in the synchronization setting storage unit 104 as a monitoring target application.
  • PID process ID
  • the application monitoring unit 150 generates application information in which the application ID (AID) and the process ID are associated with each other, and stores the generated application information in the application information storage unit 152 (S2003).
  • the application monitoring unit 150 notifies the file system filter driver 154 of the acquired process ID (S2004).
  • the application execution unit 86 executes the application until the processing is completed (S2005, S2006).
  • the setting information detection unit 124 refers to the synchronization setting information storage unit 110 instead of the setting information area 82. If there is target synchronization setting information in the synchronization setting information storage unit 110, the setting information detection unit 124 executes processing using the synchronization setting information (S2007: N).
  • the setting information detection unit 124 acquires the target setting information from the setting information area 82 and stores it in the synchronization setting information storage unit 110.
  • the synchronization setting information storage unit 110 stores the synchronization setting information used by the synchronization application.
  • the file system filter driver 154 stores the process ID notified from the application monitoring unit 150 (S2010).
  • the file system filter driver 154 receives an IRP (access request) (S2011: Y)
  • the file system filter driver 154 acquires the process ID of the application being executed based on the information included in the IRP (S2012).
  • the acquired process ID is included in the process ID notified from the application monitoring unit 150, that is, when it is a process to be monitored (S2013: Y)
  • the file system filter driver 154 is based on information included in the IRP.
  • the file ID (FID) of the file to be accessed is acquired (S2014).
  • the file system filter driver 154 generates access information in which the process ID and the file ID are associated with each other and stores the access information in the access information storage unit 156 (S2015). Thereafter, the file system filter driver 154 outputs the IRP to the file system driver 84 (S2016). If the process is not a monitoring target process (S2013: N), the file system filter driver 154 outputs the IRP to the file system driver 84 without generating access information (S2016).
  • the file specifying unit 158 When the execution of the synchronous application ends (S2006: Y), the file specifying unit 158, based on the application information stored in the application information storage unit 152 and the access information stored in the access information storage unit 156, A file accessed in the synchronization application is specified (S2020). Then, the file specifying unit 158 generates specific information in which the application ID and the file ID are associated with each other, and stores the specific information in the specific information storage unit 160 (S2021).
  • setting information and files used by the synchronization application can be specified as components of the synchronization application.
  • the constituent elements of the synchronization application can be specified also by the constituent element information acquired from the synchronization server 10. Thereby, the identification precision of the component of a synchronous application can be improved.
  • 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 setting information is extracted from the setting information area 82 and stored in the synchronization setting information storage unit 110.
  • all setting information stored in the setting information area 82 may be extracted and stored in the synchronization setting information storage unit 110 in the PC that first registers the synchronization application.
  • the setting information is extracted from the setting information area 82 and stored in the synchronization setting information storage unit 110, thereby synchronizing setting. It becomes possible to reduce the data size of information.
  • synchronization processing is performed between the PC 20 and the synchronization server 10 at the timing when the application synchronization system program is started or when the synchronization application is terminated.
  • the timing of the synchronization processing is not limited to this, and any timing can be adopted.
  • one update date and time is held for all of the application file, user file, and setting information, and synchronization processing is executed based on this update date and time.
  • the update date and time may be individually determined for each of the application file, the user file, and the setting information, and the synchronization process may be individually executed.
  • the update date / time may be determined in units of files. Note that the update date and time information is not held as information included in the synchronization setting, but information indicating the update date and time of a folder or file that is held by the OS may be used.

Abstract

 同期対象のアプリケーションの構成要素の特定精度を向上させる。コンピュータが、アプリケーションの実行時に必要となる構成要素を特定し、アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、構成要素の特定結果と構成要素情報とに応じた構成要素を同期サーバに送信する。

Description

同期プログラム、同期サーバ、及び同期方法
 本発明は、同期プログラム、同期サーバ、及び同期方法に関する。
 パーソナルコンピュータ(PC)や携帯端末等の情報処理装置では、文書作成ソフトウェアやウェブブラウザなどの様々なアプリケーションを実行することが可能である。通常、このようなアプリケーションは、情報処理装置ごとにインストールされたうえで使用される。そのため、例えば複数のPCを保有しているユーザが、これら複数のPC上で同じアプリケーションを使用する場合は、各PCに対して個別にアプリケーションをインストールする必要がある。さらに、アプリケーションを使用する際のユーザ設定についても、各PCにおいて個別に行う必要がある。このように、複数のPCで同一のアプリケーションを使用するのは非常に煩雑となる場合が多い。
 また、近年普及しつつある、SaaS(Software as a Service)などのサービスを用いることにより、各PCに対して個別にアプリケーションをインストールしない構成も考えられる(例えば、特許文献1)。しかしながら、このようなサービスを用いる場合、利用可能なアプリケーションはサービス事業者から提供されるものに限られてしまう。
特開2009-277089号公報
 そこで、例えば、各PCに対して個別にアプリケーションをインストールするのではなく、1台のPCにインストールされたアプリケーションを複数のPC間で同期させることが考えられる。この場合、同期対象のアプリケーションを実行する際に必要となる、実行ファイルやデータファイル、設定情報などの構成要素をPC間で同期させなければならない。しかしながら、構成要素は様々なフォルダやレジストリなどに格納されていることが多く、全ての構成要素を特定することが困難な場合がある。
 そこで、本発明は、同期対象のアプリケーションの構成要素の特定精度を向上させることを目的とする。
 本発明の一側面に係る同期プログラムは、コンピュータを、アプリケーションの実行時に必要となる構成要素を特定する構成要素特定部、アプリケーションの構成要素を示す構成要素情報を同期サーバから取得する構成要素情報取得部、構成要素特定部による特定結果と、構成要素情報とに応じた構成要素を同期サーバに送信する構成要素送信部、として機能させる。
 また、本発明の一側面に係る同期サーバは、アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて記憶する構成要素記憶部と、第1のコンピュータから、アプリケーションの構成要素を示す構成要素情報の取得要求を受信する構成要素情報取得要求受信部と、構成要素情報の取得要求に応じて、構成要素記憶部を参照し、構成要素情報を第1のコンピュータに送信する構成要素情報送信部と、第1のコンピュータから、アプリケーションの識別子と、該アプリケーションの構成要素とを受信して構成要素記憶部を更新する構成要素受信部と、第2のコンピュータから、アプリケーションの構成要素の取得要求を受信する構成要素取得要求受信部と、構成要素の取得要求に応じて、構成要素記憶部を参照し、構成要素を第2のコンピュータに送信する構成要素送信部と、を備える。
 また、本発明の一側面に係る同期方法では、コンピュータが、アプリケーションの実行時に必要となる構成要素を特定し、アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、構成要素の特定結果と構成要素情報とに応じた構成要素を同期サーバに送信する。
 また、本発明の一側面に係る同期方法では、同期サーバが、アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて構成要素記憶部に記憶し、第1のコンピュータから、アプリケーションの構成要素を示す構成要素情報の取得要求を受信し、構成要素情報の取得要求に応じて、構成要素記憶部を参照し、構成要素情報を第1のコンピュータに送信し、第1のコンピュータから、アプリケーションの識別子と、該アプリケーションの構成要素とを受信して構成要素記憶部を更新し、第2のコンピュータから、アプリケーションの構成要素の取得要求を受信し、構成要素の取得要求に応じて、構成要素記憶部を参照し、構成要素を第2のコンピュータに送信する。
 なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や装置が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や装置の機能が1つの物理的手段や装置により実現されてもよい。
 本発明によれば、同期対象のアプリケーションの構成要素の特定精度を向上させることができる。
本発明の一実施形態であるアプリケーション同期システムの構成例を示す図である。 同期サーバが有する機能の一例を示すブロック図である。 ユーザ別構成要素記憶部の構成の一例を示す図である。 構成要素情報記憶部の構成の一例を示す図である。 構成要素情報の集約の一例を説明するための図である。 PCが有する機能の一例を示すブロック図である。 同期設定記憶部の構成の一例を示す図である。 アプリケーション記憶部から同期アプリケーション記憶部へのコピーの一例を示す図である。 同期設定の際に表示される画面の一例を示す図である。 同期アプリケーションを起動する際に表示される画面の一例を示す図である。 ファイル検出部の構成の一例を示す図である。 ファイル検出部を構成する各部の関連を示す図である。 アプリケーション情報の一例を示す図である。 アクセス情報の一例を示す図である。 特定情報の一例を示す図である。 構成要素送信部によって送信される構成要素の一例を示す図である。 PCにおける各部の関連を示す図である。 PCにおける処理の流れの一例を示すフローチャートである。 PCにおける同期処理の一例を示すフローチャートである。 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は、アカウント情報記憶部30、構成要素記憶部32、及び同期通信部34を含んで構成される。これらの各部は、例えば、メモリや記憶装置等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。
 アカウント情報記憶部30は、アプリケーション同期システムを利用するユーザのアカウント情報を記憶するものである。例えば、アカウント情報には、ユーザIDやパスワード、メールアドレスなどが含まれる。
 構成要素記憶部32は、同期対象のアプリケーション(同期アプリケーション)の構成要素を記憶するものである。構成要素は、前述したように、同期アプリケーションを実行するために必要となるものであり、実行ファイルやユーザファイル、設定情報などを含む。図2に示すように、構成要素記憶部32は、ユーザ別構成要素記憶部40及び構成要素情報記憶部42を含むことができる。
 ユーザ別構成要素記憶部40は、同期アプリケーションの構成要素をユーザ別に記憶する。図3には、ユーザ別構成要素記憶部40の構成の一例が示されている。図3に示す例では、ユーザ別構成要素記憶部40は、ユーザ別構成要素テーブル及びデータストレージを含んで構成されている。
 ユーザ別構成要素テーブルには、ユーザID、アプリケーションID、アプリケーション・ファイルID、ユーザファイル・ファイルID、同期設定情報、及び更新日時が格納され、データストレージには、アプリケーション及びユーザファイルが格納されている。
 ユーザIDは、各ユーザを識別するためのものであり、アカウント情報記憶部30に登録されている情報と同じものが使用されている。アプリケーションIDは、各ユーザが選択した同期アプリケーションを識別するためのものである。このアプリケーションIDは、例えば、ユーザが同期アプリケーションを同期サーバ10に登録する際に設定することとしてもよいし、同期サーバ10側で生成されることとしてもよい。
 アプリケーションファイルは、同期アプリケーションを実行するためのアプリケーションデータを有するファイルであり、実行ファイルやDLL(Dynamic Link Library)などを含んでいる。また、アプリケーションファイルには、PC20において同期アプリケーションのアプリケーションファイルを格納するフォルダを指定するための情報も含まれている。さらに、アプリケーションファイルには、PC20においてアプリケーションがインストールされた際にアプリケーションファイルが格納されていたフォルダを示す情報も含まれる。アプリケーション・ファイルIDは、データストレージ内におけるアプリケーションファイルの格納場所を示すものである。
 ユーザファイルは、同期アプリケーションの実行時に必要となるユーザデータを有するファイルである。ここで、ユーザデータとは、アプリケーションの実行時に参照されるユーザごとのデータであり、例えば、電子メールの送受信を行うための電子メールアプリケーションにおける各ユーザの電子メールデータや、Webブラウザにおける各ユーザのブックマークデータなどである。また、ユーザファイルには、PC20において同期アプリケーション用のユーザファイルを格納するフォルダを指定するための情報も含まれている。さらに、ユーザファイルには、PC20においてアプリケーションがインストールされた際にユーザファイルが格納されていたフォルダを示す情報も含まれる。ユーザファイル・ファイルIDは、データストレージ内におけるユーザファイルの格納場所を示すものである。
 同期設定情報は、同期アプリケーションの実行に必要な情報であり、例えば、PC20のレジストリに格納される設定情報と同等の内容を有する情報である。また、同期設定情報には、PC20において同期アプリケーション用の同期設定情報を格納するフォルダを指定するための情報も含まれている。さらに、同期設定情報には、PC20においてアプリケーションがインストールされた際に設定情報が格納されていた場所(レジストリキー)を示す情報も含まれる。なお、同期設定情報についても、アプリケーションファイルやユーザファイルと同様にデータストレージに格納されていることとしてもよい。
 更新日時には、アプリケーションファイル、ユーザファイル、または同期設定情報が更新された日時が設定される。この更新日時は、例えば、アプリケーションファイル、ユーザファイル、または同期設定情報がPC20から同期サーバ10に送信されることにより更新される。
 図2に戻り、構成要素情報記憶部42は、同期アプリケーションの構成要素を示す構成要素情報をアプリケーションごとに記憶する。図4には、構成要素情報記憶部42の構成の一例が示されている。図4に示す例では、構成要素情報記憶部42には、アプリケーションIDと構成要素情報とが対応づけられて記憶されている。そして、構成要素情報には、アプリケーション・ファイルID、ユーザファイル・ファイルID、及び同期設定情報IDが含まれている。
 アプリケーション・ファイルIDは、同期アプリケーションのアプリケーションファイルを識別するための情報である。なお、アプリケーション・ファイルIDは、PC20においてアプリケーションがインストールされた際にアプリケーション・ファイルが格納されていた場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
 ユーザファイル・ファイルIDは、同期アプリケーションのユーザファイルを識別するための情報である。なお、ユーザファイル・ファイルIDは、PC20においてアプリケーションがインストールされた際にユーザファイルが格納されていた場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
 同期設定情報IDは、同期アプリケーションの同期設定情報を識別するための情報である。例えば、同期設定情報がレジストリに格納されたデータに対応する情報である場合、同期設定情報IDは、例えば、レジストリのキーを示す情報とすることができる。
 なお、構成要素情報は、ユーザ別構成要素記憶部40に記憶されている構成要素を示す構成要素情報を、アプリケーションごとに集約したものである。図5は、構成要素情報の集約の一例を説明するための図である。図5に示す例では、アプリケーションAPL001について、ユーザUSER001のアプリケーション・ファイルIDがA,B、ユーザUSER002のアプリケーション・ファイルIDがA,Cとなっている。そして、ユーザUSER001の構成要素情報とユーザUSER002の構成要素情報とが集約されることにより、アプリケーションAPL001に対する構成要素情報には、アプリケーション・ファイルIDとして、A,B,Cが含まれることとなる。ユーザファイル・ファイルIDや設定情報IDなどの他の構成要素情報についても同様に集約される。
 このように、同一アプリケーションであってもユーザによって構成要素が一致していないことがあるのは、後述する構成要素の特定手法では、各PC20においてアプリケーションの構成要素を全て特定することができるとは限らないからである。そこで、構成要素情報記憶部42は、1ユーザにおける構成要素の特定もれを補完するために、複数のユーザのPC20において特定された構成要素を示す構成要素情報をアプリケーションごとに記憶する。
 同期通信部34は、ネットワークを介してPC20等の他の情報処理装置との間でデータの送受信を行うことが可能である。そして、同期通信部34は、複数のPC20間でアプリケーションを同期させるための各種制御を行うことが可能である。図2に示すように、同期通信部34は、ユーザ認証部50、構成要素情報取得要求受信部52、構成要素情報送信部54、構成要素受信部56、構成要素取得要求受信部58、及び構成要素送信部60を含むことができる。
 ユーザ認証部50は、PC20からの認証要求に応じてユーザ認証を行う。認証要求には、例えば、ユーザIDやパスワードなどのアカント情報が含まれる。ユーザ認証部50は、PC20から受信するアカウント情報を、アカウント情報記憶部30に記憶されているアカウント情報と照合することによりユーザ認証を行うことができる。
 構成要素情報取得要求受信部52は、PC20から構成要素取得要求を受信する。構成要素取得要求には、アプリケーションIDが含まれている。また、構成要素取得要求には、アプリケーションIDの代わりにユーザIDが含まれていてもよい。
 構成要素情報送信部52は、構成要素情報取得要求に含まれるアプリケーションIDに対応する構成要素情報を構成要素情報記憶部42から取得し、要求元のPC20に送信する。なお、構成要素取得要求にユーザIDが含まれている場合、構成要素情報送信部52は、該ユーザIDと対応づけられているアプリケーションIDをユーザ別構成要素記憶部40から取得することにより、該アプリケーションIDに対応する構成要素情報を構成要素情報記憶部42から取得することとしてもよい。
 構成要素受信部56は、PC20から構成要素を受信し、構成要素記憶部32を更新する。具体的には、構成要素受信部56は、ユーザID、アプリケーションID、及び構成要素が対応づけられた情報をPC20から受信する。構成要素受信部56は、ユーザ別構成要素記憶部40における、該ユーザID及びアプリケーションIDに対応する構成要素を更新する。また、構成要素受信部56は、ユーザ別構成要素テーブルの更新日時を更新する。さらに、構成要素受信部56は、構成要素情報記憶部42を参照し、該構成要素を示す構成要素情報が該アプリケーションIDと対応づけられていない場合は、該構成要素を示す構成要素情報を該アプリケーションIDと対応づけて記憶する。
 構成要素取得要求受信部58は、PC20から構成要素取得要求を受信する。構成要素取得要求には、ユーザID及びアプリケーションIDが含まれている。なお、構成要素取得要求には、アプリケーションIDが含まれていなくてもよい。
 構成要素送信部60は、構成要素取得要求に含まれるユーザID及びアプリケーションIDに対応する構成要素をユーザ別構成要素記憶部40から取得し、要求元のPC20に送信する。なお、構成要素取得要求にアプリケーションIDが含まれていない場合、構成要素送信部60は、構成要素取得要求に含まれるユーザIDに対応する複数のアプリケーションの構成要素を、アプリケーションIDと対応づけて要求元のPC20に送信することとしてもよい。
 図6は、PC20が有する機能の一例を示すブロック図である。図6に示すように、PC20は、ファイル記憶部80、設定情報領域82、ファイルシステムドライバ84、アプリケーション実行部86、設定情報参照部88、同期設定部90、同期アプリケーション起動部92、構成要素特定部94、及び同期通信部96を含んで構成される。これらの各部は、例えば、メモリや記憶装置等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。特に、アプリケーション同期システムを利用するために必要となる、同期設定部90、同期アプリケーション起動部92、構成要素特定部94、及び同期通信部96は、アプリケーション同期システム用のプログラムを実行することにより実現される。各PC20には、このプログラムが例えば同期サーバ10からダウンロードされ、インストールされていることとする。
 ファイル記憶部80は、PC20において用いられる各種ファイルを記憶している。各種ファイルには、例えば、オペレーティングシステム(OS)やアプリケーションで用いられるプログラムやデータが含まれる。各ファイルは、ファイルパス名やファイル名などを含むファイルID(ファイル識別子)により識別することができる。
 図6に示すように、ファイル記憶部80は、アプリケーション記憶部100、ユーザファイル記憶部102、同期設定記憶部104、同期アプリケーション記憶部106、同期ユーザファイル記憶部108、及び同期設定情報記憶部110を含むことができる。
 アプリケーション記憶部100には、PC20において実行される各種アプリケーションの実行ファイルやDLLなどのアプリケーションファイルが格納される。アプリケーションファイルの格納場所は、例えば、アプリケーションがPC20にインストールされる際にユーザによって指定されたり、インストーラによってあらかじめ定められていたりする。
 ユーザファイル記憶部102には、アプリケーションで用いられるユーザデータを含むファイルであるユーザファイルが格納される。ユーザファイルは、例えば、各種アプリケーション用の共通のフォルダの下に設けられた、アプリケーションごとのフォルダに格納することができる。この場合、例えば、共通のフォルダの情報は、環境変数に設定されていることとすることができる。アプリケーションは、環境変数を参照することにより、ユーザファイルの格納場所を特定することができる。また、このように共通のフォルダの配下ではなく、アプリケーションで独自に定められた場所にユーザファイルが格納されることとしてもよい。
 同期設定記憶部104には、アプリケーション同期システムを利用するための設定である同期設定が記憶される。図7は、同期設定記憶部104の構成の一例を示す図である。図7に示す例では、同期設定記憶部104は、ユーザIDやパスワードなどのアカウント情報に加えて、同期アプリケーションに関する情報を記憶する。同期アプリケーションに関する情報としては、例えば、アプリケーション情報や、ユーザファイルフォルダ情報、同期設定情報フォルダ情報、更新日時が含まれる。
 ユーザIDやパスワードなどのアカウント情報は、アプリケーション同期システムを用いるためのものであり、例えば、本システムの利用開始時に同期設定部90により登録される。
 アプリケーション情報は、例えば、同期アプリケーションの実行ファイルの格納場所を示す情報を含んでいる。本実施形態では、同期アプリケーションのアプリケーションファイルは、アプリケーション記憶部100から同期アプリケーション記憶部106にコピーされて使用される。図8には、アプリケーション記憶部100から同期アプリケーション記憶部106へのコピーの一例が示されている。図8に示すように、アプリケーション記憶部100に格納されているアプリケーションファイルを、例えばフォルダ単位で、同期アプリケーション記憶部106にコピーすることができる。同期設定記憶部104のアプリケーション情報は、例えば、同期アプリケーション記憶部106におけるフォルダの情報や、該フォルダ内に格納されている実行ファイルの情報を含むことができる。また、同期設定のアプリケーション情報は、例えば、アプリケーション記憶部100におけるアプリケーションファイルの格納場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
 また、本実施形態では、同期アプリケーションで用いられるユーザファイルは、ユーザファイル記憶部102から同期ユーザファイル記憶部108にコピーされて使用される。例えば、アプリケーション記憶部100に格納されているアプリケーションを、本システムを用いずに通常通り起動した場合、ユーザファイル記憶部102に格納されているユーザファイルが用いられる。一方、本システムを用いることにより同期アプリケーション記憶部108に格納されているアプリケーションが起動される場合は、同期ユーザファイル記憶部102に格納されているユーザファイルが用いられる。同期設定に含まれるユーザファイルフォルダ情報は、同期ユーザファイル記憶部108に格納されているユーザファイルの格納場所を特定するための情報を含むことができる。また、同期設定のユーザファイルフォルダ情報は、例えば、ユーザファイル記憶部102におけるユーザファイルの格納場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
 また、本実施形態では、同期アプリケーションの実行時には、設定情報領域(レジストリ)82に格納されている設定情報のかわりに、同期設定情報記憶部110に格納されている同期設定情報が参照される。設定情報領域82は、例えばレジストリなどの特殊なデータ領域であり、アプリケーションのインストール時やアプリケーションの実行時に生成される各種設定情報が格納される。同期設定記憶部104の同期設定情報フォルダ情報は、例えば、同期設定情報記憶部110において同期設定情報が格納されているフォルダの情報を含むことができる。
 例えばアプリケーション記憶部100に格納されているアプリケーションを、本システムを用いずに通常通り起動した場合、設定情報領域82に格納されている設定情報が用いられる。一方、本システムを用いることにより同期アプリケーション記憶部106に格納されているアプリケーションが起動される場合は、同期設定情報記憶部110に格納されている同期設定情報が用いられる。同期設定に含まれる同期設定情報フォルダに関する情報は、同期設定情報記憶部110に格納されている同期設定情報の格納場所を特定するための情報を含むことができる。なお、同期設定情報は、設定情報領域82に格納されている設定情報と同等の内容を含む所定のデータ形式のファイルとすることができる。例えば、同期設定情報は、シリアライズされたメッセージパックなど、構造化されたデータとすることができる。なお、同期設定情報は、設定情報領域82にリストアすることなく参照することができる。
 同期設定記憶部104の更新日時には、同期アプリケーションのアプリケーションファイルやユーザファイル、同期設定情報が更新された日時を示す情報が設定される。
 図6に戻り、設定情報領域82は、例えばレジストリなどの特殊なデータ領域であり、アプリケーションのインストール時やアプリケーションの実行時に生成される各種設定情報が格納される。
 ファイルシステムドライバ84は、ファイル記憶部80に格納されている各種ファイルにアクセスするためのドライバである。具体的には、例えば、PC20のOSがWindows(登録商標)の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット(IRP:I/O Request Packet)が発行される。ファイルシステムドライバ84はこのIRPをプロセスから受け取ることにより、IRPによって特定されるファイルへのアクセスを実行する。なお、本実施形態では、ファイルシステムドライバ84は、カーネルモードで実行されることとする。
 アプリケーション実行部86は、ユーザ操作に応じて、アプリケーション記憶部100または同期アプリケーション記憶部106に格納されているアプリケーションを実行する。
 設定情報参照部88は、アプリケーション実行時に設定情報領域82に格納されている設定情報を参照するための機能を提供する。例えば、設定情報参照部88は、DLLによって実現されるものであり、アプリケーションの起動時に動的にリンクすることが可能である。
 同期設定部90は、複数のPC20間でアプリケーションを同期させるための設定を行うものである。図9には、同期設定の際に表示される画面の一例が示されている。この画面は、例えば、アプリケーション同期システム用のプログラムが起動されることにより表示される。ユーザは、この画面を用いることにより、同期アプリケーションを登録したり、同期アプリケーションを起動したりすることができる。例えば、ユーザが、PC20のデスクトップ等にある、あるアプリケーション「APL001」のショートカット210をドラッグアンドドロップによって画面200の表示領域212に移動させると、同期設定部90は、このショートカットにより特定されるアプリケーションを同期アプリケーションとして認識する。なお、ドラッグアンドドロップに限らず、同期アプリケーションを同期設定部90に認識させるための任意の手法を用いることができる。例えば、図9に示すように、アプリケーション追加ボタン214を押下してファイル参照用のインタフェースを表示させることにより、登録対象のアプリケーションが認識されることとしてもよい。そして、同期設定部90は、認識した同期アプリケーションに関する情報を同期設定記憶部104に格納する。なお、同期設定部90は、同期アプリケーションに関する情報を同期設定記憶部104に格納するのではなく、同期サーバ10のユーザ別構成要素記憶部40に格納することとしてもよい。
 例えば、同期設定部90は、図9に示した画面200で同期対象のアプリケーションが指定されると、このアプリケーションのアプリケーションファイルをアプリケーション記憶部100から同期アプリケーション記憶部106にコピーすることができる。例えば、図9に示すように、アプリケーション「APL001」が同期対象として指定された場合、同期設定部90は、アプリケーション記憶部100に記憶されている「APL001」のアプリケーションファイルをフォルダごと同期アプリケーション記憶部106にコピーすることができる。
 なお、あるユーザが複数のPC20を保有する場合に、アプリケーション記憶部100にアプリケーションファイルが格納されている必要があるのは1台のPC20のみである。すなわち、はじめにユーザがアプリケーションを同期対象として登録するPC20においてアプリケーション記憶部100にアプリケーションデータが格納されていればよい。ユーザファイルおよび設定情報についても同様である。
 また、同期設定部90は、同期設定記憶部104に格納されている同期設定の更新日時を更新することができる。例えば、同期設定部90は、同期アプリケーションが登録された際の日時を更新日時の初期情報として設定することができる。また、同期設定部90は、同期アプリケーションの実行によって、アプリケーションファイル、ユーザファイル、または同期設定情報が更新された際には、同期設定に含まれる更新日時を更新することができる。
 図6に戻り、同期アプリケーション起動部92は、ユーザ操作に応じて同期アプリケーションを起動する。例えば、同期アプリケーション起動部92は、図10に示す画面200において、アプリケーション「APL001」に割り当てられた表示領域220が選択されると、同期設定記憶部104に格納されている同期設定を参照し、同期アプリケーション記憶部106に格納されている同期アプリケーションを起動する。
 このとき、同期アプリケーション起動部92は、ユーザファイルの参照先が、ユーザファイル記憶部102ではなく、同期ユーザファイル記憶部108となるように、同期アプリケーションを起動する。具体的には、同期アプリケーション起動部92は、同期設定記憶部104に格納されている同期設定を参照し、起動対象のアプリケーションに対応づけられているユーザファイルフォルダ情報を取得する。そして、同期アプリケーション起動部92は、この情報によって示されるフォルダがユーザファイルの参照先となるように同期アプリケーションを起動する。例えば、同期アプリケーション起動部92は、同期アプリケーションが実行される際の環境変数に、ユーザファイルの参照先としてこのフォルダの情報を設定する。
 また、同期アプリケーション起動部92は、設定情報の参照先が、設定情報領域82ではなく、同期設定情報記憶部110となるように、同期アプリケーションを起動する。設定情報の参照先を同期設定情報記憶部110とするための手法については後述する。
 構成要素特定部94は、同期アプリケーションの実行時に必要となる構成要素を特定することができる。図6に示すように、構成要素特定部94は、フォルダ特定部120、設定情報検出部122、及びファイル検出部124を含んで構成される。
 フォルダ特定部120は、同期アプリケーションの実行時に必要となる構成要素が格納されたフォルダを特定することができる。例えば、フォルダ特定部120は、同期設定記憶部104を参照することにより、アプリケーションファイルやユーザファイル、同期設定情報が格納されたフォルダを特定することができる。そして、フォルダ特定部120は、このように特定されたフォルダに格納されているファイルを構成要素として特定することができる。
 設定情報検出部122(同期設定情報参照部)は、設定情報領域82に格納されている設定情報の中から、同期アプリケーションの実行時に必要となる設定情報を検出することができる。設定情報検出部122は、検出した設定情報を同期設定情報として同期設定情報記憶部110に格納することができる。また、設定情報検出部122は、同期アプリケーションの実行時に、同期設定情報記憶部110に格納されている同期設定情報を参照することができる。設定情報検出部122は、例えば、設定情報参照部88と同様にDLLによって実現されるものであり、同期アプリケーションの起動時に動的にリンクすることが可能である。
 例えば、設定情報検出部122は、同期アプリケーション起動部92が同期アプリケーションを起動する際に、設定情報参照部88の代わりに同期アプリケーションに動的にリンクされることとなる。これにより、アプリケーション実行部86において実行される処理で、設定情報領域82に格納されている設定情報にアクセスするための関数が呼び出されると、設定情報検出部122が起動され、同期設定情報記憶部110に格納されている設定情報が参照されることとなる。つまり、設定情報検出部122は、アプリケーション実行部86による設定情報参照部88の関数の呼び出しをフック(横取り)し、設定情報参照部88の代わりに処理を実行することとなる。このような手法は一般的にDLLインジェクションと言われている。
 また、設定情報検出部122は、アプリケーション実行部86からの指示により同期設定情報記憶部110を参照した際に、対象の設定情報が同期設定情報記憶部110に格納されていない場合は、この設定情報を設定情報領域82から取得してアプリケーション実行部86に返すことができる。そして、設定情報検出部122は、この設定情報を同期設定情報記憶部110に同期設定情報として格納する。これは、同期アプリケーションを登録する際には、設定情報領域82のどこに格納されている設定情報がこのアプリケーションで用いられるかを特定することができないからである。そのため、設定情報検出部122は、アプリケーションの実行時に指定された設定情報を設定情報領域82から抽出して同期設定情報記憶部110に格納する。なお、設定情報検出部122は、設定情報領域82から設定情報を抽出する際に、設定情報参照部88を呼び出すことができる。
 ファイル検出部124は、同期アプリケーションにおいてアクセスされたファイルを検出する。このようにファイル検出部124によってファイルを検出するのは、フォルダ特定部120によって特定されるファイルだけでは、同期アプリケーションで使用されるファイルを全て特定することができるとは限らないからである。
 図11には、ファイル検出部124の構成の一例が示されている。図11に示す例では、ファイル検出部124は、アプリケーション監視部150、アプリケーション情報記憶部152、ファイルシステムフィルタドライバ154、アクセス情報記憶部156、ファイル特定部158、及び特定情報記憶部160を含んで構成されている。図12は、ファイル検出部124を構成する各部の関連を示す図である。図11及び図12を参照して、ファイル検出部124の構成について説明する。なお、本実施形態では、同期アプリケーションのプロセスを監視対象プロセス100、それ以外のアプリケーションのプロセスを監視対象外プロセス310という。
 アプリケーション監視部150は、PC20におけるアプリケーションの実行状態を監視する。アプリケーション監視部150は、同期設定記憶部104に登録されている同期アプリケーションが実行されている場合には、当該アプリケーションのプロセスIDを取得する。例えば、PC20のOSがWindows(登録商標)の場合であれば、アプリケーション監視部150は、ToolHelp32等のAPI(Application Program Interface)関数を用いることによって、アプリケーションの実行状態の監視や、プロセスIDの取得を行うことができる。同期アプリケーションのプロセスIDが取得された場合、アプリケーション監視部150は、アプリケーションIDとプロセスIDとを対応づけたアプリケーション情報を生成し、アプリケーション情報記憶部152に格納する。図13には、アプリケーション情報の一例が示されている。
 また、アプリケーション監視部150は、同期アプリケーションのプロセスIDが取得された場合、当該プロセスIDを、ファイルシステムフィルタドライバ154に通知する。なお、アプリケーション監視部150がプロセスIDをファイルシステムフィルタドライバ154に通知するのではなく、ファイルシステムフィルタドライバ154がアプリケーション情報記憶部152を参照することとしてもよい。
 ファイルシステムフィルタドライバ154(アクセス情報出力部)は、ファイルに対するアクセス要求をフィルタリングすることにより、監視対象プロセス300からアクセスされたファイルを特定する。本実施形態では、ファイルシステムフィルタドライバ154は、カーネルモードで実行されることとする。例えば、PC20のOSがWindows(登録商標)の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット(IRP:I/O Request Packet)が発行される。IRPには、アクセス対象のファイルと、アクセス要求を行っているプロセスのプロセスIDとを特定可能な情報が含まれている。なお、ファイルIDやプロセスIDそのものがIRPに含まれている必要はなく、IRPに含まれる情報に基づいて、ファイルIDやプロセスIDを特定可能であればよい。また、本実施形態ではIRPをアクセス要求の一例として説明するが、アクセス要求はIRPに限定されず、OSに応じた任意の形式とすることができる。
 ファイルシステムフィルタドライバ154が存在しない構成においては、IRPがファイルシステムドライバ84に出力されることにより、ファイルアクセスが実行される。ファイルシステムフィルタドライバ154は、ファイルシステムドライバ84に出力されるIRPを横取りし、監視対象プロセス300においてアクセスされたファイルを特定することができる。具体的には、ファイルシステムフィルタドライバ154は、IRPを発行したプロセスのプロセスIDが、アプリケーション監視部150から通知されたプロセスIDに含まれる場合、当該IRPによるアクセス対象のファイルのファイルIDを特定する。なお、ファイルシステムフィルタドライバ154は、アプリケーション監視部150から通知されたプロセスIDを記憶しておくことができる。そして、ファイルシステムフィルタドライバ154は、プロセスID及びファイルIDを対応づけたアクセス情報を生成し、アクセス情報記憶部156に格納する。図14には、アクセス情報の一例が示されている。
 ファイルシステムフィルタドライバ154は、アクセス情報の生成後に、IRPをファイルシステムドライバ84に出力する。また、IRPを発行したプロセスのプロセスIDが、アプリケーション監視部150から通知されたプロセスIDに含まれない場合、すなわち、IPRを発行したプロセスが監視対象外プロセス310である場合、ファイルシステムフィルタドライバ154は、アクセス情報を生成せずにIRPをファイルシステムドライバ84に出力する。
 ファイル特定部158は、アプリケーション情報記憶部152に記憶されているアプリケーション情報と、アクセス情報記憶部156に記憶されているアクセス情報とに基づいて、同期アプリケーションにおいてアクセスされたファイルを特定する。具体的には、ファイル特定部158は、アプリケーション情報におけるアプリケーションID及びプロセスIDの対応関係と、アクセス情報におけるプロセスID及びファイルIDの対応関係とに基づいて、アプリケーションID及びファイルIDの対応関係を判定する。そして、ファイル特定部158は、アプリケーションID及びファイルIDを対応づけた特定情報を生成し、特定情報記憶部160に格納する。図15には、特定情報の一例が示されている。
 図6に戻り、同期通信部96は、複数のPC20の間でアプリケーションを同期させるためのデータ通信を行うものである。図6に示すように、同期通信部96は、認証要求部130、構成要素情報取得部132、構成要素情報記憶部134、構成要素送信部136、及び構成要素受信部138を含んで構成することができる。
 認証要求部130は、同期設定記憶部104に記憶されているアカウント情報を用いることにより、アプリケーション同期システムを利用するための認証要求を同期サーバ10に送信する。なお、認証要求部130は、同期設定記憶部104からアカウント情報を取得するのではなく、例えば、アカウント情報を入力するための画面を出力することにより、アカウント情報をユーザから受け付けることとしてもよい。
 構成要素情報取得部132は、同期処理を行うタイミングにおいて、同期アプリケーションの構成要素を示す構成要素情報を同期サーバ10から取得し、構成要素情報記憶部134に格納する。例えば、構成要素情報取得部132は、同期アプリケーションのアプリケーションIDを含む、構成要素情報取得要求を同期サーバ10に送信することにより、同期アプリケーションの構成要素を示す構成要素情報を取得することができる。前述したように、この構成要素情報は、複数のユーザが同期サーバ10に送信した構成要素を示す情報を集約したものである。構成要素情報は、PC20においてアプリケーションがインストールされた状態における構成要素の格納場所を示す情報を含むことができる。
 構成要素送信部136は、同期処理を行うタイミングにおいて、同期アプリケーションの構成要素を同期サーバ10に送信する。具体的には、構成要素送信部136は、構成要素特定部94による特定結果と、同期サーバ10から取得する構成要素情報とに応じた構成要素を同期サーバ10に送信する。
 図16は、構成要素送信部136によって送信される構成要素の一例を示す図である。図16に示す例では、構成要素特定部94により特定された構成要素には、A,B,Cが含まれている。また、同期サーバ10から取得された構成要素情報によって示される構成要素には、A,B,Dが含まれている。この場合、構成要素送信部136は、特定結果によって示される構成要素と、構成要素情報によって示される構成要素との両方(A,B,C,D)を同期サーバ10への送信対象とすることができる。
 つまり、構成要素送信部136は、あるユーザのPC20において特定された構成要素に加えて、他のユーザのPC20において特定された構成要素についても同期サーバ10に送信することができる。これにより、あるユーザのPC20において特定された構成要素のみを同期サーバ10に送信する場合と比較して、同期アプリケーションの構成要素の特定精度を向上させることができる。
 構成要素受信部138は、同期処理を行うタイミングにおいて、同期サーバ10から構成要素を受信し、同期アプリケーション記憶部106、同期ユーザファイル記憶部108、及び同期設定情報記憶部110を更新する。例えば、構成要素受信部138は、同期アプリケーションのアプリケーションIDを含む構成要素取得要求を同期サーバ10に送信することにより、同期アプリケーションの構成要素を取得することができる。
 図17は、PC20における各部の関連を示す図である。図18は、PC20における処理の流れの一例を示すフローチャートである。図19は、PC20における同期処理の一例を示すフローチャートである。図20は、PC20におけるアプリケーション実行処理の一例を示すフローチャートである。図17~図20を参照して、アプリケーション同期処理について説明する。
 アプリケーション同期システム用のプログラムが起動されると、同期通信部96は、同期サーバ10にアクセスして同期処理を実行する(S1801)。同期処理によってPC20内の同期アプリケーションの構成要素の状態が同期サーバ10と同期される。つまり、あるユーザが有する複数のPC20間において、同期アプリケーションの構成要素の状態が同期されることとなる。同期処理が行われた後、アプリケーション実行部86は、同期アプリケーションを実行する(S1802)。同期アプリケーションの実行終了後、同期通信部96は、同期サーバ10にアクセスして同期処理を実行する(S1803)。同期アプリケーションの実行後に同期処理を実行することにより、同期通信部96は、同期アプリケーションの実行によって更新されたユーザファイルや設定情報などの構成要素を同期サーバ10に送信することができる。
 図19を参照して、同期処理の一例について説明する。構成要素情報取得部132は、同期アプリケーションの構成要素情報を取得するための構成要素情報取得要求を同期サーバ10に送信する(S1901)。構成要素情報取得部132は、該要求に応じて同期サーバ10から送信されてくる、同期アプリケーションの更新日時及び構成要素情報を受信する(S1802)。ここで、同期サーバ10から送信されてくる、同期アプリケーションの更新日時は、ユーザ別構成要素記憶部40に記憶されている更新日時を示すものである。なお、構成要素情報取得部132は、受信した構成要素情報を構成要素情報記憶部134に格納する。
 構成要素受信部138は、同期アプリケーションについて、同期サーバ10から受信した更新日時と、同期設定記憶部104に記憶されている更新日時とを比較する(S1903)。これらが同じ場合(S1903:A)、構成要素受信部138は、PC20内の同期アプリケーションの構成要素が同期サーバ10に記憶されている構成要素と同期された状態になっている判断し、同期処理を終了する。
 一方、PC20における更新日時が同期サーバ10における更新日時より古い場合(S1903:B)、構成要素受信部138は、PC20内の同期アプリケーションの構成要素が最新の状態になっていないと判断する。そこで、構成要素受信部138は、当該同期アプリケーションの構成要素を取得するための構成要素取得要求を同期サーバ10に送信する(S1904)。構成要素受信部138は、該要求に応じて同期サーバ10から送信されてくる、同期アプリケーションの構成要素を受信し、同期設定記憶部104、同期アプリケーション記憶部106、同期ユーザファイル記憶部108、及び同期設定情報記憶部110を更新する(S1905)。
 PC20における更新日時が同期サーバ10における更新日時より新しい場合(S1903:C)、構成要素送信部136は、PC20内の同期アプリケーションの構成要素の方が、同期サーバ10に記憶されている構成要素よりも新しいと判断し、PC20内の同期アプリケーションの構成要素を同期サーバ10に送信する(S1906)。このとき、構成要素送信部136は、構成要素特定部94によって特定された構成要素に加えて、構成要素情報記憶部134に記憶されている構成要素情報に対応する構成要素を、同期アプリケーションの構成要素として同期サーバ10に送信する。つまり、構成要素送信部136は、あるユーザのPC20において特定された構成要素に加えて、他のユーザのPC20において特定された構成要素も同期サーバ10に送信することができる。これにより、同期アプリケーションの構成要素の特定精度を向上させることができる。
 図20を参照して、アプリケーション実行処理の一例について説明する。同期アプリケーション起動部92は、ユーザファイル及び設定情報の参照先を同期用に設定して同期アプリケーションを起動する(S2001)。具体的には、例えば図17に示すように、同期アプリケーション起動部92は、ユーザファイルの格納先を示す環境変数に、同期ユーザファイル記憶部108内の同期ユーザファイルが格納されたフォルダを設定することができる。また、同期アプリケーション起動部92は、設定情報参照部88の代わりに設定情報検出部122を同期アプリケーションに動的にリンクすることができる。
 アプリケーション監視部150は、同期アプリケーション起動部92により起動されたアプリケーションの実行状態を監視することにより、当該アプリケーションのプロセスID(PID)を取得する(S2002)。なお、アプリケーション監視部150は、同期設定記憶部104に設定されている同期アプリケーションを監視対象のアプリケーションとすることができる。
 続いて、アプリケーション監視部150は、アプリケーションID(AID)及びプロセスIDを対応づけたアプリケーション情報を生成し、アプリケーション情報記憶部152に格納する(S2003)。また、アプリケーション監視部150は、取得したプロセスIDをファイルシステムフィルタドライバ154に通知する(S2004)。
 アプリケーション実行部86は、処理が終了するまでアプリケーションを実行する(S2005,S2006)。
 ここで、アプリケーションの実行中に設定情報領域82に格納された設定情報が必要となった場合、設定情報検出部124が、設定情報領域82ではなく、同期設定情報記憶部110を参照する。そして、同期設定情報記憶部110に対象の同期設定情報があれば、設定情報検出部124は、該同期設定情報を用いて処理を実行する(S2007:N)。
 一方、同期設定情報記憶部110に対象の同期設定情報がない場合(S2007:Y)、設定情報検出部124は、設定情報領域82から対象の設定情報を取得し、同期設定情報記憶部110に同期設定情報として格納する(S2008)。これにより、同期設定情報記憶部110には、同期アプリケーションによって使用される同期設定情報が格納されることとなる。
 ファイルシステムフィルタドライバ154は、アプリケーション監視部150から通知されたプロセスIDを記憶する(S2010)。そして、ファイルシステムフィルタドライバ154は、IRP(アクセス要求)を受信すると(S2011:Y)、当該IRPに含まれる情報に基づいて、実行中のアプリケーションのプロセスIDを取得する(S2012)。取得したプロセスIDが、アプリケーション監視部150から通知されたプロセスIDに含まれる場合、すなわち、監視対象プロセスである場合(S2013:Y)、ファイルシステムフィルタドライバ154は、IRPに含まれる情報に基づいて、アクセス対象のファイルのファイルID(FID)を取得する(S2014)。そして、ファイルシステムフィルタドライバ154は、プロセスID及びファイルIDを対応づけたアクセス情報を生成し、アクセス情報記憶部156に格納する(S2015)。その後、ファイルシステムフィルタドライバ154は、IRPをファイルシステムドライバ84へ出力する(S2016)。なお、監視対象プロセスではない場合(S2013:N)、ファイルシステムフィルタドライバ154は、アクセス情報を生成せずにIRPをファイルシステムドライバ84へ出力する(S2016)。
 同期アプリケーションの実行が終了すると(S2006:Y)、ファイル特定部158は、アプリケーション情報記憶部152に格納されているアプリケーション情報と、アクセス情報記憶部156に記憶されているアクセス情報とに基づいて、同期アプリケーションにおいてアクセスされたファイルを特定する(S2020)。そして、ファイル特定部158は、アプリケーションID及びファイルIDを対応づけた特定情報を生成し、特定情報記憶部160に格納する(S2021)。
 このように、本実施形態によれば、同期アプリケーションによって使用された設定情報やファイルを同期アプリケーションの構成要素として特定することができる。さらに、前述したように、本実施形態によれば、同期サーバ10から取得した構成要素情報によっても、同期アプリケーションの構成要素を特定することができる。これにより、同期アプリケーションの構成要素の特定精度を向上させることができる。
 なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。
 例えば、本実施形態では、アプリケーション同期システムにおいてアプリケーションを実行するクライアントをPCとしたが、クライアントはPCに限られず、携帯端末等の任意の情報処理装置を用いることが可能である。
 また、例えば、本実施形態では、参照対象となった同期設定情報が同期設定情報記憶部110に格納されていない場合に、設定情報領域82から設定情報が抽出されて同期設定情報記憶部110に格納されることとしたが、はじめに同期アプリケーションを登録するPCにおいて、設定情報領域82に格納されている全ての設定情報を抽出して同期設定情報記憶部110に格納することとしてもよい。ただし、本実施形態に示したように、同期設定情報へのはじめての参照が発生したタイミングで、設定情報領域82から設定情報を抽出して同期設定情報記憶部110に格納することにより、同期設定情報のデータサイズを小さくすることが可能となる。
 また、例えば、本実施形態では、図18に示した処理において、アプリケーション同期システム用のプログラムが起動されたタイミングや、同期アプリケーションが終了されるタイミングでPC20と同期サーバ10との間で同期処理が実行されることとしたが、同期処理のタイミングはこれに限られず任意のタイミングを採用することができる。
 また、例えば、本実施形態では、図7に示したように、アプリケーションファイル、ユーザファイル、及び設定情報の全てに対して1つの更新日時を保持し、この更新日時に基づいて同期処理が実行されることとしたが、アプリケーションファイル、ユーザファイル、及び設定情報の各々について個別に更新日時が判定され、個別に同期処理が実行されることとしてもよい。また、ファイル単位で更新日時の判定が行われることとしてもよい。なお、更新日時の情報は、同期設定に含まれる情報として保持するのではなく、OSによって保持されている、フォルダやファイルの更新日時を示す情報を用いることとしてもよい。
 10 同期サーバ
 20 パーソナルコンピュータ
 30 アカウント情報記憶部
 32 構成要素記憶部
 34 同期通信部
 40 ユーザ別構成要素記憶部
 42 構成要素情報記憶部
 50 ユーザ認証部
 52 構成要素情報取得要求受信部
 54 構成要素情報送信部
 56 構成要素受信部
 58 構成要素取得要求受信部
 60 構成要素送信部
 80 ファイル記憶部
 82 設定情報領域
 84 ファイルシステムドライバ
 86 アプリケーション実行部
 88 設定情報参照部
 90 同期設定部
 92 同期アプリケーション起動部
 94 構成要素特定部
 96 同期通信部
 100 アプリケーション記憶部
 102 ユーザファイル記憶部
 104 同期設定記憶部
 106 同期アプリケーション記憶部
 108 同期ユーザファイル記憶部
 110 同期設定情報記憶部
 120 フォルダ特定部
 122 設定情報検出部
 124 ファイル検出部
 130 認証要求部
 132 構成要素情報取得部
 134 構成要素情報記憶部
 136 構成要素送信部
 138 構成要素受信部
 150 アプリケーション監視部
 152 アプリケーション情報記憶部
 154 ファイルシステムフィルタドライバ
 156 アクセス情報記憶部
 158 ファイル特定部
 160 特定情報記憶部

Claims (8)

  1.  コンピュータを、
     アプリケーションの実行時に必要となる構成要素を特定する構成要素特定部、
     前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得する構成要素情報取得部、
     前記構成要素特定部による特定結果と、前記構成要素情報とに応じた構成要素を前記同期サーバに送信する構成要素送信部、
     として機能させるためのプログラム。
  2.  前記コンピュータを、さらに、
     他のコンピュータから前記同期サーバに送信されたアプリケーションの構成要素を該同期サーバから受信する構成要素受信部、
     前記同期サーバから受信した構成要素に基づいてアプリケーションを実行するアプリケーション実行部、
     として機能させるためのプログラム。
  3.  請求項1または2に記載のプログラムであって、
     前記コンピュータを、さらに、前記アプリケーションの実行時に使用されるファイルを検出するファイル検出部として機能させ、
     前記構成要素特定部は、検出された前記ファイルを前記アプリケーションの構成要素として特定する、
     プログラム。
  4.  請求項1~3の何れか一項に記載のプログラムであって、
     前記コンピュータを、さらに、前記アプリケーションの実行時に使用される設定情報を検出する設定情報検出部として機能させ、
     前記構成要素特定部は、検出された前記設定情報を前記アプリケーションの構成要素として特定する、
     プログラム。
  5.  アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて記憶する構成要素記憶部と、
     第1のコンピュータから、前記アプリケーションの前記構成要素を示す構成要素情報の取得要求を受信する構成要素情報取得要求受信部と、
     前記構成要素情報の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素情報を前記第1のコンピュータに送信する構成要素情報送信部と、
     前記第1のコンピュータから、前記アプリケーションの識別子と、該アプリケーションの構成要素とを受信して前記構成要素記憶部を更新する構成要素受信部と、
     第2のコンピュータから、前記アプリケーションの構成要素の取得要求を受信する構成要素取得要求受信部と、
     前記構成要素の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素を前記第2のコンピュータに送信する構成要素送信部と、
     を備える同期サーバ。
  6.  請求項5に記載の同期サーバであって、
     前記構成要素記憶部は、
     前記アプリケーションの識別子と前記構成要素とをユーザ別に対応づけて記憶するユーザ別構成要素記憶部と、
     前記アプリケーションの識別子と前記構成要素情報とを複数のユーザ分集約して記憶する構成要素情報記憶部と、
     を含み、
     前記構成要素情報送信部は、前記構成要素情報の取得要求に応じて、前記構成要素情報記憶部を参照し、前記構成要素情報を前記第1のコンピュータに送信する、
     同期サーバ。
  7.  コンピュータが、
     アプリケーションの実行時に必要となる構成要素を特定し、
     前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、
     前記構成要素の特定結果と前記構成要素情報とに応じた構成要素を前記同期サーバに送信する、
     同期方法。
  8.  同期サーバが、
     アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて構成要素記憶部に記憶し、
     第1のコンピュータから、前記アプリケーションの前記構成要素を示す構成要素情報の取得要求を受信し、
     前記構成要素情報の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素情報を前記第1のコンピュータに送信し、
     前記第1のコンピュータから、前記アプリケーションの識別子と、該アプリケーションの構成要素とを受信して前記構成要素記憶部を更新し、
     第2のコンピュータから、前記アプリケーションの構成要素の取得要求を受信し、
     前記構成要素の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素を前記第2のコンピュータに送信する、
     同期方法。
PCT/JP2012/061717 2012-05-08 2012-05-08 同期プログラム、同期サーバ、及び同期方法 WO2013168221A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2012/061717 WO2013168221A1 (ja) 2012-05-08 2012-05-08 同期プログラム、同期サーバ、及び同期方法
JP2014514251A JPWO2013168221A1 (ja) 2012-05-08 2012-05-08 同期プログラム、同期サーバ、及び同期方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/061717 WO2013168221A1 (ja) 2012-05-08 2012-05-08 同期プログラム、同期サーバ、及び同期方法

Publications (1)

Publication Number Publication Date
WO2013168221A1 true WO2013168221A1 (ja) 2013-11-14

Family

ID=49550306

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/061717 WO2013168221A1 (ja) 2012-05-08 2012-05-08 同期プログラム、同期サーバ、及び同期方法

Country Status (2)

Country Link
JP (1) JPWO2013168221A1 (ja)
WO (1) WO2013168221A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534473A (ja) * 2014-08-12 2016-11-04 シャオミ・インコーポレイテッド ルータ・プラグ・インを制御するための方法およびデバイス

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008065409A (ja) * 2006-09-05 2008-03-21 Fujitsu Ltd ソフトウェア管理プログラム、ソフトウェア管理方法およびソフトウェア管理装置
JP2009064115A (ja) * 2007-09-04 2009-03-26 Vision Arts Kk 携帯端末装置とサーバ装置との間のファイル同期
JP2009525513A (ja) * 2006-01-17 2009-07-09 キダロ (イスラエル) リミテッド 複数のコンピューティング環境のシームレスな統合
JP2009277089A (ja) 2008-05-15 2009-11-26 Hitachi Ltd アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912916B2 (en) * 2006-06-02 2011-03-22 Google Inc. Resolving conflicts while synchronizing configuration information among multiple clients

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009525513A (ja) * 2006-01-17 2009-07-09 キダロ (イスラエル) リミテッド 複数のコンピューティング環境のシームレスな統合
JP2008065409A (ja) * 2006-09-05 2008-03-21 Fujitsu Ltd ソフトウェア管理プログラム、ソフトウェア管理方法およびソフトウェア管理装置
JP2009064115A (ja) * 2007-09-04 2009-03-26 Vision Arts Kk 携帯端末装置とサーバ装置との間のファイル同期
JP2009277089A (ja) 2008-05-15 2009-11-26 Hitachi Ltd アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534473A (ja) * 2014-08-12 2016-11-04 シャオミ・インコーポレイテッド ルータ・プラグ・インを制御するための方法およびデバイス

Also Published As

Publication number Publication date
JPWO2013168221A1 (ja) 2015-12-24

Similar Documents

Publication Publication Date Title
US10740299B2 (en) Systems and methods for providing continuing access to a remote computer program
EP2682863A1 (en) Installing applications remotely
RU2586878C2 (ru) Система и способ для удаленного управления веб-браузером
WO2017050146A1 (zh) 终端应用app的加载方法及装置
EP4303707A1 (en) Application sharing method and apparatus
WO2014012449A1 (zh) 桌面同步方法、装置、处理中心及系统
US10209976B2 (en) Automated application installation
EP1787198A1 (en) Device-to-device software distribution
US9990214B2 (en) Dynamic agent delivery
JP5500704B2 (ja) アプリケーション同期方法及びプログラム
US20110106876A1 (en) Client server application manager
JP2017107307A (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP2017219961A (ja) 情報処理装置、制御方法、及びプログラム
JP2016186777A (ja) マッシュアップ方法、マッシュアッププログラム、及び端末
US8935402B2 (en) Resource launch from application within application container
JP2011227674A (ja) 管理装置、その制御方法およびプログラム
JP6478026B2 (ja) 情報処理装置、プログラム、及び記録媒体
JPWO2014156825A1 (ja) ログ出力制御装置、方法及びプログラム
US20120300247A1 (en) Image processing system including image forming apparatus having touch panel
WO2013168221A1 (ja) 同期プログラム、同期サーバ、及び同期方法
US20190129670A1 (en) Information processing apparatus
WO2013183099A1 (ja) 同期プログラム及び同期方法
WO2013183159A1 (ja) 同期プログラム及び同期方法
JP2014229056A (ja) 電子機器、制御方法およびプログラム
JP2014135070A (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: 12876324

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014514251

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012876324

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE