(57)【要約】  同期対象のアプリケーションの構成要素の特定精度を向上させる。コンピュータが、アプリケーションの実行時に必要となる構成要素を特定し、アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、構成要素の特定結果と構成要素情報とに応じた構成要素を同期サーバに送信する。
2013168221.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
アプリケーションの実行時に必要となる構成要素を特定する構成要素特定部、
前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得する構成要素情報取得部、
前記構成要素特定部による特定結果と、前記構成要素情報とに応じた構成要素を前記同期サーバに送信する構成要素送信部、
として機能させるためのプログラム。
【請求項２】
前記コンピュータを、さらに、
他のコンピュータから前記同期サーバに送信されたアプリケーションの構成要素を該同期サーバから受信する構成要素受信部、
前記同期サーバから受信した構成要素に基づいてアプリケーションを実行するアプリケーション実行部、
として機能させるためのプログラム。
【請求項３】
請求項１または２に記載のプログラムであって、
前記コンピュータを、さらに、前記アプリケーションの実行時に使用されるファイルを検出するファイル検出部として機能させ、
前記構成要素特定部は、検出された前記ファイルを前記アプリケーションの構成要素として特定する、
プログラム。
【請求項４】
請求項１〜３の何れか一項に記載のプログラムであって、
前記コンピュータを、さらに、前記アプリケーションの実行時に使用される設定情報を検出する設定情報検出部として機能させ、
前記構成要素特定部は、検出された前記設定情報を前記アプリケーションの構成要素として特定する、
プログラム。
【請求項５】
アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて記憶する構成要素記憶部と、
第１のコンピュータから、前記アプリケーションの前記構成要素を示す構成要素情報の取得要求を受信する構成要素情報取得要求受信部と、
前記構成要素情報の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素情報を前記第１のコンピュータに送信する構成要素情報送信部と、
前記第１のコンピュータから、前記アプリケーションの識別子と、該アプリケーションの構成要素とを受信して前記構成要素記憶部を更新する構成要素受信部と、
第２のコンピュータから、前記アプリケーションの構成要素の取得要求を受信する構成要素取得要求受信部と、
前記構成要素の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素を前記第２のコンピュータに送信する構成要素送信部と、
を備える同期サーバ。
【請求項６】
請求項５に記載の同期サーバであって、
前記構成要素記憶部は、
前記アプリケーションの識別子と前記構成要素とをユーザ別に対応づけて記憶するユーザ別構成要素記憶部と、
前記アプリケーションの識別子と前記構成要素情報とを複数のユーザ分集約して記憶する構成要素情報記憶部と、
を含み、
前記構成要素情報送信部は、前記構成要素情報の取得要求に応じて、前記構成要素情報記憶部を参照し、前記構成要素情報を前記第１のコンピュータに送信する、
同期サーバ。
【請求項７】
コンピュータが、
アプリケーションの実行時に必要となる構成要素を特定し、
前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、
前記構成要素の特定結果と前記構成要素情報とに応じた構成要素を前記同期サーバに送信する、
同期方法。
【請求項８】
同期サーバが、
アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて構成要素記憶部に記憶し、
第１のコンピュータから、前記アプリケーションの前記構成要素を示す構成要素情報の取得要求を受信し、
前記構成要素情報の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素情報を前記第１のコンピュータに送信し、
前記第１のコンピュータから、前記アプリケーションの識別子と、該アプリケーションの構成要素とを受信して前記構成要素記憶部を更新し、
第２のコンピュータから、前記アプリケーションの構成要素の取得要求を受信し、
前記構成要素の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素を前記第２のコンピュータに送信する、
同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期プログラム、同期サーバ、及び同期方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）や携帯端末等の情報処理装置では、文書作成ソフトウェアやウェブブラウザなどの様々なアプリケーションを実行することが可能である。通常、このようなアプリケーションは、情報処理装置ごとにインストールされたうえで使用される。そのため、例えば複数のＰＣを保有しているユーザが、これら複数のＰＣ上で同じアプリケーションを使用する場合は、各ＰＣに対して個別にアプリケーションをインストールする必要がある。さらに、アプリケーションを使用する際のユーザ設定についても、各ＰＣにおいて個別に行う必要がある。このように、複数のＰＣで同一のアプリケーションを使用するのは非常に煩雑となる場合が多い。【０００３】
また、近年普及しつつある、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）などのサービスを用いることにより、各ＰＣに対して個別にアプリケーションをインストールしない構成も考えられる（例えば、特許文献１）。しかしながら、このようなサービスを用いる場合、利用可能なアプリケーションはサービス事業者から提供されるものに限られてしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７７０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、例えば、各ＰＣに対して個別にアプリケーションをインストールするのではなく、１台のＰＣにインストールされたアプリケーションを複数のＰＣ間で同期させることが考えられる。この場合、同期対象のアプリケーションを実行する際に必要となる、実行ファイルやデータファイル、設定情報などの構成要素をＰＣ間で同期させなければならない。しかしながら、構成要素は様々なフォルダやレジストリなどに格納されていることが多く、全ての構成要素を特定することが困難な場合がある。【０００６】
そこで、本発明は、同期対象のアプリケーションの構成要素の特定精度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る同期プログラムは、コンピュータを、アプリケーションの実行時に必要となる構成要素を特定する構成要素特定部、アプリケーションの構成要素を示す構成要素情報を同期サーバから取得する構成要素情報取得部、構成要素特定部による特定結果と、構成要素情報とに応じた構成要素を同期サーバに送信する構成要素送信部、として機能させる。【０００８】
また、本発明の一側面に係る同期サーバは、アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて記憶する構成要素記憶部と、第１のコンピュータから、アプリケーションの構成要素を示す構成要素情報の取得要求を受信する構成要素情報取得要求受信部と、構成要素情報の取得要求に応じて、構成要素記憶部を参照し、構成要素情報を第１のコンピュータに送信する構成要素情報送信部と、第１のコンピュータから、アプリケーションの識別子と、該アプリケーションの構成要素とを受信して構成要素記憶部を更新する構成要素受信部と、第２のコンピュータから、アプリケーションの構成要素の取得要求を受信する構成要素取得要求受信部と、構成要素の取得要求に応じて、構成要素記憶部を参照し、構成要素を第２のコンピュータに送信する構成要素送信部と、を備える。【０００９】
また、本発明の一側面に係る同期方法では、コンピュータが、アプリケーションの実行時に必要となる構成要素を特定し、アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、構成要素の特定結果と構成要素情報とに応じた構成要素を同期サーバに送信する。【００１０】
また、本発明の一側面に係る同期方法では、同期サーバが、アプリケーションの識別子と、該アプリケーションの実行時に必要となる構成要素とを対応づけて構成要素記憶部に記憶し、第１のコンピュータから、アプリケーションの構成要素を示す構成要素情報の取得要求を受信し、構成要素情報の取得要求に応じて、構成要素記憶部を参照し、構成要素情報を第１のコンピュータに送信し、第１のコンピュータから、アプリケーションの識別子と、該アプリケーションの構成要素とを受信して構成要素記憶部を更新し、第２のコンピュータから、アプリケーションの構成要素の取得要求を受信し、構成要素の取得要求に応じて、構成要素記憶部を参照し、構成要素を第２のコンピュータに送信する。【００１１】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や装置の機能が１つの物理的手段や装置により実現されてもよい。
【発明の効果】
【００１２】
本発明によれば、同期対象のアプリケーションの構成要素の特定精度を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態であるアプリケーション同期システムの構成例を示す図である。
【図２】同期サーバが有する機能の一例を示すブロック図である。
【図３】ユーザ別構成要素記憶部の構成の一例を示す図である。
【図４】構成要素情報記憶部の構成の一例を示す図である。
【図５】構成要素情報の集約の一例を説明するための図である。
【図６】ＰＣが有する機能の一例を示すブロック図である。
【図７】同期設定記憶部の構成の一例を示す図である。
【図８】アプリケーション記憶部から同期アプリケーション記憶部へのコピーの一例を示す図である。
【図９】同期設定の際に表示される画面の一例を示す図である。
【図１０】同期アプリケーションを起動する際に表示される画面の一例を示す図である。
【図１１】ファイル検出部の構成の一例を示す図である。
【図１２】ファイル検出部を構成する各部の関連を示す図である。
【図１３】アプリケーション情報の一例を示す図である。
【図１４】アクセス情報の一例を示す図である。
【図１５】特定情報の一例を示す図である。
【図１６】構成要素送信部によって送信される構成要素の一例を示す図である。
【図１７】ＰＣにおける各部の関連を示す図である。
【図１８】ＰＣにおける処理の流れの一例を示すフローチャートである。
【図１９】ＰＣにおける同期処理の一例を示すフローチャートである。
【図２０】ＰＣにおけるアプリケーション実行処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の一実施形態について説明する。図１は、本発明の一実施形態であるアプリケーション同期システムの構成例を示す図である。図１に示すように、アプリケーション同期システムは、同期サーバ１０、及び複数台のパーソナルコンピュータ（ＰＣ）２０を含んで構成される。同期サーバ１０は、ユーザに対してアプリケーションを複数のＰＣ２０間で同期可能とするためのサービスを提供するものであり、１台または複数台の情報処理装置を用いて構成される。ＰＣ２０は、ユーザがアプリケーションを実行させるための情報処理装置であり、同期サーバ１０とインターネット等のネットワークを介して通信可能である。
【００１５】
ここで、例えばユーザ「ＵＳＥＲ００１」は、ＰＣ２０−１及びＰＣ２０−２の２台のＰＣを保有しているとする。このユーザ「ＵＳＥＲ００１」は、同期サーバ１０により提供されるアプリケーション同期システムを用いることにより、各ＰＣに個別にアプリケーションをインストールしたり、手動でデータを同期させたりする必要なく、ＰＣ２０−１及びＰＣ２０−２において同期された状態でアプリケーションを実行することが可能である。ここで、アプリケーションの同期とは、アプリケーションの実行環境を同一の状態にすることをいう。なお、実行環境には、アプリケーションを実行するために必要となる構成要素が含まれる。アプリケーションの構成要素には、例えば、実行ファイルやユーザファイル、設定情報などが含まれる。複数のＰＣ間でアプリケーションが同期されることにより、ユーザはどのＰＣを用いる場合においても同じ状態でアプリケーションを実行することが可能となる。
【００１６】
図２は、同期サーバ１０が有する機能の一例を示すブロック図である。図２に示すように、同期サーバ１０は、アカウント情報記憶部３０、構成要素記憶部３２、及び同期通信部３４を含んで構成される。これらの各部は、例えば、メモリや記憶装置等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。
【００１７】
アカウント情報記憶部３０は、アプリケーション同期システムを利用するユーザのアカウント情報を記憶するものである。例えば、アカウント情報には、ユーザＩＤやパスワード、メールアドレスなどが含まれる。
【００１８】
構成要素記憶部３２は、同期対象のアプリケーション（同期アプリケーション）の構成要素を記憶するものである。構成要素は、前述したように、同期アプリケーションを実行するために必要となるものであり、実行ファイルやユーザファイル、設定情報などを含む。図２に示すように、構成要素記憶部３２は、ユーザ別構成要素記憶部４０及び構成要素情報記憶部４２を含むことができる。
【００１９】
ユーザ別構成要素記憶部４０は、同期アプリケーションの構成要素をユーザ別に記憶する。図３には、ユーザ別構成要素記憶部４０の構成の一例が示されている。図３に示す例では、ユーザ別構成要素記憶部４０は、ユーザ別構成要素テーブル及びデータストレージを含んで構成されている。
【００２０】
ユーザ別構成要素テーブルには、ユーザＩＤ、アプリケーションＩＤ、アプリケーション・ファイルＩＤ、ユーザファイル・ファイルＩＤ、同期設定情報、及び更新日時が格納され、データストレージには、アプリケーション及びユーザファイルが格納されている。
【００２１】
ユーザＩＤは、各ユーザを識別するためのものであり、アカウント情報記憶部３０に登録されている情報と同じものが使用されている。アプリケーションＩＤは、各ユーザが選択した同期アプリケーションを識別するためのものである。このアプリケーションＩＤは、例えば、ユーザが同期アプリケーションを同期サーバ１０に登録する際に設定することとしてもよいし、同期サーバ１０側で生成されることとしてもよい。
【００２２】
アプリケーションファイルは、同期アプリケーションを実行するためのアプリケーションデータを有するファイルであり、実行ファイルやＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）などを含んでいる。また、アプリケーションファイルには、ＰＣ２０において同期アプリケーションのアプリケーションファイルを格納するフォルダを指定するための情報も含まれている。さらに、アプリケーションファイルには、ＰＣ２０においてアプリケーションがインストールされた際にアプリケーションファイルが格納されていたフォルダを示す情報も含まれる。アプリケーション・ファイルＩＤは、データストレージ内におけるアプリケーションファイルの格納場所を示すものである。
【００２３】
ユーザファイルは、同期アプリケーションの実行時に必要となるユーザデータを有するファイルである。ここで、ユーザデータとは、アプリケーションの実行時に参照されるユーザごとのデータであり、例えば、電子メールの送受信を行うための電子メールアプリケーションにおける各ユーザの電子メールデータや、Ｗｅｂブラウザにおける各ユーザのブックマークデータなどである。また、ユーザファイルには、ＰＣ２０において同期アプリケーション用のユーザファイルを格納するフォルダを指定するための情報も含まれている。さらに、ユーザファイルには、ＰＣ２０においてアプリケーションがインストールされた際にユーザファイルが格納されていたフォルダを示す情報も含まれる。ユーザファイル・ファイルＩＤは、データストレージ内におけるユーザファイルの格納場所を示すものである。
【００２４】
同期設定情報は、同期アプリケーションの実行に必要な情報であり、例えば、ＰＣ２０のレジストリに格納される設定情報と同等の内容を有する情報である。また、同期設定情報には、ＰＣ２０において同期アプリケーション用の同期設定情報を格納するフォルダを指定するための情報も含まれている。さらに、同期設定情報には、ＰＣ２０においてアプリケーションがインストールされた際に設定情報が格納されていた場所（レジストリキー）を示す情報も含まれる。なお、同期設定情報についても、アプリケーションファイルやユーザファイルと同様にデータストレージに格納されていることとしてもよい。
【００２５】
更新日時には、アプリケーションファイル、ユーザファイル、または同期設定情報が更新された日時が設定される。この更新日時は、例えば、アプリケーションファイル、ユーザファイル、または同期設定情報がＰＣ２０から同期サーバ１０に送信されることにより更新される。
【００２６】
図２に戻り、構成要素情報記憶部４２は、同期アプリケーションの構成要素を示す構成要素情報をアプリケーションごとに記憶する。図４には、構成要素情報記憶部４２の構成の一例が示されている。図４に示す例では、構成要素情報記憶部４２には、アプリケーションＩＤと構成要素情報とが対応づけられて記憶されている。そして、構成要素情報には、アプリケーション・ファイルＩＤ、ユーザファイル・ファイルＩＤ、及び同期設定情報ＩＤが含まれている。
【００２７】
アプリケーション・ファイルＩＤは、同期アプリケーションのアプリケーションファイルを識別するための情報である。なお、アプリケーション・ファイルＩＤは、ＰＣ２０においてアプリケーションがインストールされた際にアプリケーション・ファイルが格納されていた場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
【００２８】
ユーザファイル・ファイルＩＤは、同期アプリケーションのユーザファイルを識別するための情報である。なお、ユーザファイル・ファイルＩＤは、ＰＣ２０においてアプリケーションがインストールされた際にユーザファイルが格納されていた場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
【００２９】
同期設定情報ＩＤは、同期アプリケーションの同期設定情報を識別するための情報である。例えば、同期設定情報がレジストリに格納されたデータに対応する情報である場合、同期設定情報ＩＤは、例えば、レジストリのキーを示す情報とすることができる。
【００３０】
なお、構成要素情報は、ユーザ別構成要素記憶部４０に記憶されている構成要素を示す構成要素情報を、アプリケーションごとに集約したものである。図５は、構成要素情報の集約の一例を説明するための図である。図５に示す例では、アプリケーションＡＰＬ００１について、ユーザＵＳＥＲ００１のアプリケーション・ファイルＩＤがＡ，Ｂ、ユーザＵＳＥＲ００２のアプリケーション・ファイルＩＤがＡ，Ｃとなっている。そして、ユーザＵＳＥＲ００１の構成要素情報とユーザＵＳＥＲ００２の構成要素情報とが集約されることにより、アプリケーションＡＰＬ００１に対する構成要素情報には、アプリケーション・ファイルＩＤとして、Ａ，Ｂ，Ｃが含まれることとなる。ユーザファイル・ファイルＩＤや設定情報ＩＤなどの他の構成要素情報についても同様に集約される。
【００３１】
このように、同一アプリケーションであってもユーザによって構成要素が一致していないことがあるのは、後述する構成要素の特定手法では、各ＰＣ２０においてアプリケーションの構成要素を全て特定することができるとは限らないからである。そこで、構成要素情報記憶部４２は、１ユーザにおける構成要素の特定もれを補完するために、複数のユーザのＰＣ２０において特定された構成要素を示す構成要素情報をアプリケーションごとに記憶する。
【００３２】
同期通信部３４は、ネットワークを介してＰＣ２０等の他の情報処理装置との間でデータの送受信を行うことが可能である。そして、同期通信部３４は、複数のＰＣ２０間でアプリケーションを同期させるための各種制御を行うことが可能である。図２に示すように、同期通信部３４は、ユーザ認証部５０、構成要素情報取得要求受信部５２、構成要素情報送信部５４、構成要素受信部５６、構成要素取得要求受信部５８、及び構成要素送信部６０を含むことができる。
【００３３】
ユーザ認証部５０は、ＰＣ２０からの認証要求に応じてユーザ認証を行う。認証要求には、例えば、ユーザＩＤやパスワードなどのアカント情報が含まれる。ユーザ認証部５０は、ＰＣ２０から受信するアカウント情報を、アカウント情報記憶部３０に記憶されているアカウント情報と照合することによりユーザ認証を行うことができる。
【００３４】
構成要素情報取得要求受信部５２は、ＰＣ２０から構成要素取得要求を受信する。構成要素取得要求には、アプリケーションＩＤが含まれている。また、構成要素取得要求には、アプリケーションＩＤの代わりにユーザＩＤが含まれていてもよい。
【００３５】
構成要素情報送信部５２は、構成要素情報取得要求に含まれるアプリケーションＩＤに対応する構成要素情報を構成要素情報記憶部４２から取得し、要求元のＰＣ２０に送信する。なお、構成要素取得要求にユーザＩＤが含まれている場合、構成要素情報送信部５２は、該ユーザＩＤと対応づけられているアプリケーションＩＤをユーザ別構成要素記憶部４０から取得することにより、該アプリケーションＩＤに対応する構成要素情報を構成要素情報記憶部４２から取得することとしてもよい。
【００３６】
構成要素受信部５６は、ＰＣ２０から構成要素を受信し、構成要素記憶部３２を更新する。具体的には、構成要素受信部５６は、ユーザＩＤ、アプリケーションＩＤ、及び構成要素が対応づけられた情報をＰＣ２０から受信する。構成要素受信部５６は、ユーザ別構成要素記憶部４０における、該ユーザＩＤ及びアプリケーションＩＤに対応する構成要素を更新する。また、構成要素受信部５６は、ユーザ別構成要素テーブルの更新日時を更新する。さらに、構成要素受信部５６は、構成要素情報記憶部４２を参照し、該構成要素を示す構成要素情報が該アプリケーションＩＤと対応づけられていない場合は、該構成要素を示す構成要素情報を該アプリケーションＩＤと対応づけて記憶する。
【００３７】
構成要素取得要求受信部５８は、ＰＣ２０から構成要素取得要求を受信する。構成要素取得要求には、ユーザＩＤ及びアプリケーションＩＤが含まれている。なお、構成要素取得要求には、アプリケーションＩＤが含まれていなくてもよい。
【００３８】
構成要素送信部６０は、構成要素取得要求に含まれるユーザＩＤ及びアプリケーションＩＤに対応する構成要素をユーザ別構成要素記憶部４０から取得し、要求元のＰＣ２０に送信する。なお、構成要素取得要求にアプリケーションＩＤが含まれていない場合、構成要素送信部６０は、構成要素取得要求に含まれるユーザＩＤに対応する複数のアプリケーションの構成要素を、アプリケーションＩＤと対応づけて要求元のＰＣ２０に送信することとしてもよい。
【００３９】
図６は、ＰＣ２０が有する機能の一例を示すブロック図である。図６に示すように、ＰＣ２０は、ファイル記憶部８０、設定情報領域８２、ファイルシステムドライバ８４、アプリケーション実行部８６、設定情報参照部８８、同期設定部９０、同期アプリケーション起動部９２、構成要素特定部９４、及び同期通信部９６を含んで構成される。これらの各部は、例えば、メモリや記憶装置等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。特に、アプリケーション同期システムを利用するために必要となる、同期設定部９０、同期アプリケーション起動部９２、構成要素特定部９４、及び同期通信部９６は、アプリケーション同期システム用のプログラムを実行することにより実現される。各ＰＣ２０には、このプログラムが例えば同期サーバ１０からダウンロードされ、インストールされていることとする。
【００４０】
ファイル記憶部８０は、ＰＣ２０において用いられる各種ファイルを記憶している。各種ファイルには、例えば、オペレーティングシステム（ＯＳ）やアプリケーションで用いられるプログラムやデータが含まれる。各ファイルは、ファイルパス名やファイル名などを含むファイルＩＤ（ファイル識別子）により識別することができる。
【００４１】
図６に示すように、ファイル記憶部８０は、アプリケーション記憶部１００、ユーザファイル記憶部１０２、同期設定記憶部１０４、同期アプリケーション記憶部１０６、同期ユーザファイル記憶部１０８、及び同期設定情報記憶部１１０を含むことができる。
【００４２】
アプリケーション記憶部１００には、ＰＣ２０において実行される各種アプリケーションの実行ファイルやＤＬＬなどのアプリケーションファイルが格納される。アプリケーションファイルの格納場所は、例えば、アプリケーションがＰＣ２０にインストールされる際にユーザによって指定されたり、インストーラによってあらかじめ定められていたりする。
【００４３】
ユーザファイル記憶部１０２には、アプリケーションで用いられるユーザデータを含むファイルであるユーザファイルが格納される。ユーザファイルは、例えば、各種アプリケーション用の共通のフォルダの下に設けられた、アプリケーションごとのフォルダに格納することができる。この場合、例えば、共通のフォルダの情報は、環境変数に設定されていることとすることができる。アプリケーションは、環境変数を参照することにより、ユーザファイルの格納場所を特定することができる。また、このように共通のフォルダの配下ではなく、アプリケーションで独自に定められた場所にユーザファイルが格納されることとしてもよい。
【００４４】
同期設定記憶部１０４には、アプリケーション同期システムを利用するための設定である同期設定が記憶される。図７は、同期設定記憶部１０４の構成の一例を示す図である。図７に示す例では、同期設定記憶部１０４は、ユーザＩＤやパスワードなどのアカウント情報に加えて、同期アプリケーションに関する情報を記憶する。同期アプリケーションに関する情報としては、例えば、アプリケーション情報や、ユーザファイルフォルダ情報、同期設定情報フォルダ情報、更新日時が含まれる。
【００４５】
ユーザＩＤやパスワードなどのアカウント情報は、アプリケーション同期システムを用いるためのものであり、例えば、本システムの利用開始時に同期設定部９０により登録される。
【００４６】
アプリケーション情報は、例えば、同期アプリケーションの実行ファイルの格納場所を示す情報を含んでいる。本実施形態では、同期アプリケーションのアプリケーションファイルは、アプリケーション記憶部１００から同期アプリケーション記憶部１０６にコピーされて使用される。図８には、アプリケーション記憶部１００から同期アプリケーション記憶部１０６へのコピーの一例が示されている。図８に示すように、アプリケーション記憶部１００に格納されているアプリケーションファイルを、例えばフォルダ単位で、同期アプリケーション記憶部１０６にコピーすることができる。同期設定記憶部１０４のアプリケーション情報は、例えば、同期アプリケーション記憶部１０６におけるフォルダの情報や、該フォルダ内に格納されている実行ファイルの情報を含むことができる。また、同期設定のアプリケーション情報は、例えば、アプリケーション記憶部１００におけるアプリケーションファイルの格納場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
【００４７】
また、本実施形態では、同期アプリケーションで用いられるユーザファイルは、ユーザファイル記憶部１０２から同期ユーザファイル記憶部１０８にコピーされて使用される。例えば、アプリケーション記憶部１００に格納されているアプリケーションを、本システムを用いずに通常通り起動した場合、ユーザファイル記憶部１０２に格納されているユーザファイルが用いられる。一方、本システムを用いることにより同期アプリケーション記憶部１０８に格納されているアプリケーションが起動される場合は、同期ユーザファイル記憶部１０２に格納されているユーザファイルが用いられる。同期設定に含まれるユーザファイルフォルダ情報は、同期ユーザファイル記憶部１０８に格納されているユーザファイルの格納場所を特定するための情報を含むことができる。また、同期設定のユーザファイルフォルダ情報は、例えば、ユーザファイル記憶部１０２におけるユーザファイルの格納場所、すなわちオリジナルの格納場所を示す情報を含むことができる。
【００４８】
また、本実施形態では、同期アプリケーションの実行時には、設定情報領域（レジストリ）８２に格納されている設定情報のかわりに、同期設定情報記憶部１１０に格納されている同期設定情報が参照される。設定情報領域８２は、例えばレジストリなどの特殊なデータ領域であり、アプリケーションのインストール時やアプリケーションの実行時に生成される各種設定情報が格納される。同期設定記憶部１０４の同期設定情報フォルダ情報は、例えば、同期設定情報記憶部１１０において同期設定情報が格納されているフォルダの情報を含むことができる。
【００４９】
例えばアプリケーション記憶部１００に格納されているアプリケーションを、本システムを用いずに通常通り起動した場合、設定情報領域８２に格納されている設定情報が用いられる。一方、本システムを用いることにより同期アプリケーション記憶部１０６に格納されているアプリケーションが起動される場合は、同期設定情報記憶部１１０に格納されている同期設定情報が用いられる。同期設定に含まれる同期設定情報フォルダに関する情報は、同期設定情報記憶部１１０に格納されている同期設定情報の格納場所を特定するための情報を含むことができる。なお、同期設定情報は、設定情報領域８２に格納されている設定情報と同等の内容を含む所定のデータ形式のファイルとすることができる。例えば、同期設定情報は、シリアライズされたメッセージパックなど、構造化されたデータとすることができる。なお、同期設定情報は、設定情報領域８２にリストアすることなく参照することができる。
【００５０】
同期設定記憶部１０４の更新日時には、同期アプリケーションのアプリケーションファイルやユーザファイル、同期設定情報が更新された日時を示す情報が設定される。
【００５１】
図６に戻り、設定情報領域８２は、例えばレジストリなどの特殊なデータ領域であり、アプリケーションのインストール時やアプリケーションの実行時に生成される各種設定情報が格納される。
【００５２】
ファイルシステムドライバ８４は、ファイル記憶部８０に格納されている各種ファイルにアクセスするためのドライバである。具体的には、例えば、ＰＣ２０のＯＳがＷｉｎｄｏｗｓ（登録商標）の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット（ＩＲＰ：Ｉ／Ｏ  Ｒｅｑｕｅｓｔ  Ｐａｃｋｅｔ）が発行される。ファイルシステムドライバ８４はこのＩＲＰをプロセスから受け取ることにより、ＩＲＰによって特定されるファイルへのアクセスを実行する。なお、本実施形態では、ファイルシステムドライバ８４は、カーネルモードで実行されることとする。
【００５３】
アプリケーション実行部８６は、ユーザ操作に応じて、アプリケーション記憶部１００または同期アプリケーション記憶部１０６に格納されているアプリケーションを実行する。
【００５４】
設定情報参照部８８は、アプリケーション実行時に設定情報領域８２に格納されている設定情報を参照するための機能を提供する。例えば、設定情報参照部８８は、ＤＬＬによって実現されるものであり、アプリケーションの起動時に動的にリンクすることが可能である。
【００５５】
同期設定部９０は、複数のＰＣ２０間でアプリケーションを同期させるための設定を行うものである。図９には、同期設定の際に表示される画面の一例が示されている。この画面は、例えば、アプリケーション同期システム用のプログラムが起動されることにより表示される。ユーザは、この画面を用いることにより、同期アプリケーションを登録したり、同期アプリケーションを起動したりすることができる。例えば、ユーザが、ＰＣ２０のデスクトップ等にある、あるアプリケーション「ＡＰＬ００１」のショートカット２１０をドラッグアンドドロップによって画面２００の表示領域２１２に移動させると、同期設定部９０は、このショートカットにより特定されるアプリケーションを同期アプリケーションとして認識する。なお、ドラッグアンドドロップに限らず、同期アプリケーションを同期設定部９０に認識させるための任意の手法を用いることができる。例えば、図９に示すように、アプリケーション追加ボタン２１４を押下してファイル参照用のインタフェースを表示させることにより、登録対象のアプリケーションが認識されることとしてもよい。そして、同期設定部９０は、認識した同期アプリケーションに関する情報を同期設定記憶部１０４に格納する。なお、同期設定部９０は、同期アプリケーションに関する情報を同期設定記憶部１０４に格納するのではなく、同期サーバ１０のユーザ別構成要素記憶部４０に格納することとしてもよい。
【００５６】
例えば、同期設定部９０は、図９に示した画面２００で同期対象のアプリケーションが指定されると、このアプリケーションのアプリケーションファイルをアプリケーション記憶部１００から同期アプリケーション記憶部１０６にコピーすることができる。例えば、図９に示すように、アプリケーション「ＡＰＬ００１」が同期対象として指定された場合、同期設定部９０は、アプリケーション記憶部１００に記憶されている「ＡＰＬ００１」のアプリケーションファイルをフォルダごと同期アプリケーション記憶部１０６にコピーすることができる。
【００５７】
なお、あるユーザが複数のＰＣ２０を保有する場合に、アプリケーション記憶部１００にアプリケーションファイルが格納されている必要があるのは１台のＰＣ２０のみである。すなわち、はじめにユーザがアプリケーションを同期対象として登録するＰＣ２０においてアプリケーション記憶部１００にアプリケーションデータが格納されていればよい。ユーザファイルおよび設定情報についても同様である。
【００５８】
また、同期設定部９０は、同期設定記憶部１０４に格納されている同期設定の更新日時を更新することができる。例えば、同期設定部９０は、同期アプリケーションが登録された際の日時を更新日時の初期情報として設定することができる。また、同期設定部９０は、同期アプリケーションの実行によって、アプリケーションファイル、ユーザファイル、または同期設定情報が更新された際には、同期設定に含まれる更新日時を更新することができる。
【００５９】
図６に戻り、同期アプリケーション起動部９２は、ユーザ操作に応じて同期アプリケーションを起動する。例えば、同期アプリケーション起動部９２は、図１０に示す画面２００において、アプリケーション「ＡＰＬ００１」に割り当てられた表示領域２２０が選択されると、同期設定記憶部１０４に格納されている同期設定を参照し、同期アプリケーション記憶部１０６に格納されている同期アプリケーションを起動する。
【００６０】
このとき、同期アプリケーション起動部９２は、ユーザファイルの参照先が、ユーザファイル記憶部１０２ではなく、同期ユーザファイル記憶部１０８となるように、同期アプリケーションを起動する。具体的には、同期アプリケーション起動部９２は、同期設定記憶部１０４に格納されている同期設定を参照し、起動対象のアプリケーションに対応づけられているユーザファイルフォルダ情報を取得する。そして、同期アプリケーション起動部９２は、この情報によって示されるフォルダがユーザファイルの参照先となるように同期アプリケーションを起動する。例えば、同期アプリケーション起動部９２は、同期アプリケーションが実行される際の環境変数に、ユーザファイルの参照先としてこのフォルダの情報を設定する。
【００６１】
また、同期アプリケーション起動部９２は、設定情報の参照先が、設定情報領域８２ではなく、同期設定情報記憶部１１０となるように、同期アプリケーションを起動する。設定情報の参照先を同期設定情報記憶部１１０とするための手法については後述する。
【００６２】
構成要素特定部９４は、同期アプリケーションの実行時に必要となる構成要素を特定することができる。図６に示すように、構成要素特定部９４は、フォルダ特定部１２０、設定情報検出部１２２、及びファイル検出部１２４を含んで構成される。
【００６３】
フォルダ特定部１２０は、同期アプリケーションの実行時に必要となる構成要素が格納されたフォルダを特定することができる。例えば、フォルダ特定部１２０は、同期設定記憶部１０４を参照することにより、アプリケーションファイルやユーザファイル、同期設定情報が格納されたフォルダを特定することができる。そして、フォルダ特定部１２０は、このように特定されたフォルダに格納されているファイルを構成要素として特定することができる。
【００６４】
設定情報検出部１２２（同期設定情報参照部）は、設定情報領域８２に格納されている設定情報の中から、同期アプリケーションの実行時に必要となる設定情報を検出することができる。設定情報検出部１２２は、検出した設定情報を同期設定情報として同期設定情報記憶部１１０に格納することができる。また、設定情報検出部１２２は、同期アプリケーションの実行時に、同期設定情報記憶部１１０に格納されている同期設定情報を参照することができる。設定情報検出部１２２は、例えば、設定情報参照部８８と同様にＤＬＬによって実現されるものであり、同期アプリケーションの起動時に動的にリンクすることが可能である。
【００６５】
例えば、設定情報検出部１２２は、同期アプリケーション起動部９２が同期アプリケーションを起動する際に、設定情報参照部８８の代わりに同期アプリケーションに動的にリンクされることとなる。これにより、アプリケーション実行部８６において実行される処理で、設定情報領域８２に格納されている設定情報にアクセスするための関数が呼び出されると、設定情報検出部１２２が起動され、同期設定情報記憶部１１０に格納されている設定情報が参照されることとなる。つまり、設定情報検出部１２２は、アプリケーション実行部８６による設定情報参照部８８の関数の呼び出しをフック（横取り）し、設定情報参照部８８の代わりに処理を実行することとなる。このような手法は一般的にＤＬＬインジェクションと言われている。
【００６６】
また、設定情報検出部１２２は、アプリケーション実行部８６からの指示により同期設定情報記憶部１１０を参照した際に、対象の設定情報が同期設定情報記憶部１１０に格納されていない場合は、この設定情報を設定情報領域８２から取得してアプリケーション実行部８６に返すことができる。そして、設定情報検出部１２２は、この設定情報を同期設定情報記憶部１１０に同期設定情報として格納する。これは、同期アプリケーションを登録する際には、設定情報領域８２のどこに格納されている設定情報がこのアプリケーションで用いられるかを特定することができないからである。そのため、設定情報検出部１２２は、アプリケーションの実行時に指定された設定情報を設定情報領域８２から抽出して同期設定情報記憶部１１０に格納する。なお、設定情報検出部１２２は、設定情報領域８２から設定情報を抽出する際に、設定情報参照部８８を呼び出すことができる。
【００６７】
ファイル検出部１２４は、同期アプリケーションにおいてアクセスされたファイルを検出する。このようにファイル検出部１２４によってファイルを検出するのは、フォルダ特定部１２０によって特定されるファイルだけでは、同期アプリケーションで使用されるファイルを全て特定することができるとは限らないからである。
【００６８】
図１１には、ファイル検出部１２４の構成の一例が示されている。図１１に示す例では、ファイル検出部１２４は、アプリケーション監視部１５０、アプリケーション情報記憶部１５２、ファイルシステムフィルタドライバ１５４、アクセス情報記憶部１５６、ファイル特定部１５８、及び特定情報記憶部１６０を含んで構成されている。図１２は、ファイル検出部１２４を構成する各部の関連を示す図である。図１１及び図１２を参照して、ファイル検出部１２４の構成について説明する。なお、本実施形態では、同期アプリケーションのプロセスを監視対象プロセス１００、それ以外のアプリケーションのプロセスを監視対象外プロセス３１０という。
【００６９】
アプリケーション監視部１５０は、ＰＣ２０におけるアプリケーションの実行状態を監視する。アプリケーション監視部１５０は、同期設定記憶部１０４に登録されている同期アプリケーションが実行されている場合には、当該アプリケーションのプロセスＩＤを取得する。例えば、ＰＣ２０のＯＳがＷｉｎｄｏｗｓ（登録商標）の場合であれば、アプリケーション監視部１５０は、ＴｏｏｌＨｅｌｐ３２等のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）関数を用いることによって、アプリケーションの実行状態の監視や、プロセスＩＤの取得を行うことができる。同期アプリケーションのプロセスＩＤが取得された場合、アプリケーション監視部１５０は、アプリケーションＩＤとプロセスＩＤとを対応づけたアプリケーション情報を生成し、アプリケーション情報記憶部１５２に格納する。図１３には、アプリケーション情報の一例が示されている。
【００７０】
また、アプリケーション監視部１５０は、同期アプリケーションのプロセスＩＤが取得された場合、当該プロセスＩＤを、ファイルシステムフィルタドライバ１５４に通知する。なお、アプリケーション監視部１５０がプロセスＩＤをファイルシステムフィルタドライバ１５４に通知するのではなく、ファイルシステムフィルタドライバ１５４がアプリケーション情報記憶部１５２を参照することとしてもよい。
【００７１】
ファイルシステムフィルタドライバ１５４（アクセス情報出力部）は、ファイルに対するアクセス要求をフィルタリングすることにより、監視対象プロセス３００からアクセスされたファイルを特定する。本実施形態では、ファイルシステムフィルタドライバ１５４は、カーネルモードで実行されることとする。例えば、ＰＣ２０のＯＳがＷｉｎｄｏｗｓ（登録商標）の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット（ＩＲＰ：Ｉ／Ｏ  Ｒｅｑｕｅｓｔ  Ｐａｃｋｅｔ）が発行される。ＩＲＰには、アクセス対象のファイルと、アクセス要求を行っているプロセスのプロセスＩＤとを特定可能な情報が含まれている。なお、ファイルＩＤやプロセスＩＤそのものがＩＲＰに含まれている必要はなく、ＩＲＰに含まれる情報に基づいて、ファイルＩＤやプロセスＩＤを特定可能であればよい。また、本実施形態ではＩＲＰをアクセス要求の一例として説明するが、アクセス要求はＩＲＰに限定されず、ＯＳに応じた任意の形式とすることができる。
【００７２】
ファイルシステムフィルタドライバ１５４が存在しない構成においては、ＩＲＰがファイルシステムドライバ８４に出力されることにより、ファイルアクセスが実行される。ファイルシステムフィルタドライバ１５４は、ファイルシステムドライバ８４に出力されるＩＲＰを横取りし、監視対象プロセス３００においてアクセスされたファイルを特定することができる。具体的には、ファイルシステムフィルタドライバ１５４は、ＩＲＰを発行したプロセスのプロセスＩＤが、アプリケーション監視部１５０から通知されたプロセスＩＤに含まれる場合、当該ＩＲＰによるアクセス対象のファイルのファイルＩＤを特定する。なお、ファイルシステムフィルタドライバ１５４は、アプリケーション監視部１５０から通知されたプロセスＩＤを記憶しておくことができる。そして、ファイルシステムフィルタドライバ１５４は、プロセスＩＤ及びファイルＩＤを対応づけたアクセス情報を生成し、アクセス情報記憶部１５６に格納する。図１４には、アクセス情報の一例が示されている。
【００７３】
ファイルシステムフィルタドライバ１５４は、アクセス情報の生成後に、ＩＲＰをファイルシステムドライバ８４に出力する。また、ＩＲＰを発行したプロセスのプロセスＩＤが、アプリケーション監視部１５０から通知されたプロセスＩＤに含まれない場合、すなわち、ＩＰＲを発行したプロセスが監視対象外プロセス３１０である場合、ファイルシステムフィルタドライバ１５４は、アクセス情報を生成せずにＩＲＰをファイルシステムドライバ８４に出力する。
【００７４】
ファイル特定部１５８は、アプリケーション情報記憶部１５２に記憶されているアプリケーション情報と、アクセス情報記憶部１５６に記憶されているアクセス情報とに基づいて、同期アプリケーションにおいてアクセスされたファイルを特定する。具体的には、ファイル特定部１５８は、アプリケーション情報におけるアプリケーションＩＤ及びプロセスＩＤの対応関係と、アクセス情報におけるプロセスＩＤ及びファイルＩＤの対応関係とに基づいて、アプリケーションＩＤ及びファイルＩＤの対応関係を判定する。そして、ファイル特定部１５８は、アプリケーションＩＤ及びファイルＩＤを対応づけた特定情報を生成し、特定情報記憶部１６０に格納する。図１５には、特定情報の一例が示されている。
【００７５】
図６に戻り、同期通信部９６は、複数のＰＣ２０の間でアプリケーションを同期させるためのデータ通信を行うものである。図６に示すように、同期通信部９６は、認証要求部１３０、構成要素情報取得部１３２、構成要素情報記憶部１３４、構成要素送信部１３６、及び構成要素受信部１３８を含んで構成することができる。
【００７６】
認証要求部１３０は、同期設定記憶部１０４に記憶されているアカウント情報を用いることにより、アプリケーション同期システムを利用するための認証要求を同期サーバ１０に送信する。なお、認証要求部１３０は、同期設定記憶部１０４からアカウント情報を取得するのではなく、例えば、アカウント情報を入力するための画面を出力することにより、アカウント情報をユーザから受け付けることとしてもよい。
【００７７】
構成要素情報取得部１３２は、同期処理を行うタイミングにおいて、同期アプリケーションの構成要素を示す構成要素情報を同期サーバ１０から取得し、構成要素情報記憶部１３４に格納する。例えば、構成要素情報取得部１３２は、同期アプリケーションのアプリケーションＩＤを含む、構成要素情報取得要求を同期サーバ１０に送信することにより、同期アプリケーションの構成要素を示す構成要素情報を取得することができる。前述したように、この構成要素情報は、複数のユーザが同期サーバ１０に送信した構成要素を示す情報を集約したものである。構成要素情報は、ＰＣ２０においてアプリケーションがインストールされた状態における構成要素の格納場所を示す情報を含むことができる。
【００７８】
構成要素送信部１３６は、同期処理を行うタイミングにおいて、同期アプリケーションの構成要素を同期サーバ１０に送信する。具体的には、構成要素送信部１３６は、構成要素特定部９４による特定結果と、同期サーバ１０から取得する構成要素情報とに応じた構成要素を同期サーバ１０に送信する。
【００７９】
図１６は、構成要素送信部１３６によって送信される構成要素の一例を示す図である。図１６に示す例では、構成要素特定部９４により特定された構成要素には、Ａ，Ｂ，Ｃが含まれている。また、同期サーバ１０から取得された構成要素情報によって示される構成要素には、Ａ，Ｂ，Ｄが含まれている。この場合、構成要素送信部１３６は、特定結果によって示される構成要素と、構成要素情報によって示される構成要素との両方（Ａ，Ｂ，Ｃ，Ｄ）を同期サーバ１０への送信対象とすることができる。
【００８０】
つまり、構成要素送信部１３６は、あるユーザのＰＣ２０において特定された構成要素に加えて、他のユーザのＰＣ２０において特定された構成要素についても同期サーバ１０に送信することができる。これにより、あるユーザのＰＣ２０において特定された構成要素のみを同期サーバ１０に送信する場合と比較して、同期アプリケーションの構成要素の特定精度を向上させることができる。
【００８１】
構成要素受信部１３８は、同期処理を行うタイミングにおいて、同期サーバ１０から構成要素を受信し、同期アプリケーション記憶部１０６、同期ユーザファイル記憶部１０８、及び同期設定情報記憶部１１０を更新する。例えば、構成要素受信部１３８は、同期アプリケーションのアプリケーションＩＤを含む構成要素取得要求を同期サーバ１０に送信することにより、同期アプリケーションの構成要素を取得することができる。
【００８２】
図１７は、ＰＣ２０における各部の関連を示す図である。図１８は、ＰＣ２０における処理の流れの一例を示すフローチャートである。図１９は、ＰＣ２０における同期処理の一例を示すフローチャートである。図２０は、ＰＣ２０におけるアプリケーション実行処理の一例を示すフローチャートである。図１７〜図２０を参照して、アプリケーション同期処理について説明する。
【００８３】
アプリケーション同期システム用のプログラムが起動されると、同期通信部９６は、同期サーバ１０にアクセスして同期処理を実行する（Ｓ１８０１）。同期処理によってＰＣ２０内の同期アプリケーションの構成要素の状態が同期サーバ１０と同期される。つまり、あるユーザが有する複数のＰＣ２０間において、同期アプリケーションの構成要素の状態が同期されることとなる。同期処理が行われた後、アプリケーション実行部８６は、同期アプリケーションを実行する（Ｓ１８０２）。同期アプリケーションの実行終了後、同期通信部９６は、同期サーバ１０にアクセスして同期処理を実行する（Ｓ１８０３）。同期アプリケーションの実行後に同期処理を実行することにより、同期通信部９６は、同期アプリケーションの実行によって更新されたユーザファイルや設定情報などの構成要素を同期サーバ１０に送信することができる。
【００８４】
図１９を参照して、同期処理の一例について説明する。構成要素情報取得部１３２は、同期アプリケーションの構成要素情報を取得するための構成要素情報取得要求を同期サーバ１０に送信する（Ｓ１９０１）。構成要素情報取得部１３２は、該要求に応じて同期サーバ１０から送信されてくる、同期アプリケーションの更新日時及び構成要素情報を受信する（Ｓ１８０２）。ここで、同期サーバ１０から送信されてくる、同期アプリケーションの更新日時は、ユーザ別構成要素記憶部４０に記憶されている更新日時を示すものである。なお、構成要素情報取得部１３２は、受信した構成要素情報を構成要素情報記憶部１３４に格納する。
【００８５】
構成要素受信部１３８は、同期アプリケーションについて、同期サーバ１０から受信した更新日時と、同期設定記憶部１０４に記憶されている更新日時とを比較する（Ｓ１９０３）。これらが同じ場合（Ｓ１９０３：Ａ）、構成要素受信部１３８は、ＰＣ２０内の同期アプリケーションの構成要素が同期サーバ１０に記憶されている構成要素と同期された状態になっている判断し、同期処理を終了する。
【００８６】
一方、ＰＣ２０における更新日時が同期サーバ１０における更新日時より古い場合（Ｓ１９０３：Ｂ）、構成要素受信部１３８は、ＰＣ２０内の同期アプリケーションの構成要素が最新の状態になっていないと判断する。そこで、構成要素受信部１３８は、当該同期アプリケーションの構成要素を取得するための構成要素取得要求を同期サーバ１０に送信する（Ｓ１９０４）。構成要素受信部１３８は、該要求に応じて同期サーバ１０から送信されてくる、同期アプリケーションの構成要素を受信し、同期設定記憶部１０４、同期アプリケーション記憶部１０６、同期ユーザファイル記憶部１０８、及び同期設定情報記憶部１１０を更新する（Ｓ１９０５）。
【００８７】
ＰＣ２０における更新日時が同期サーバ１０における更新日時より新しい場合（Ｓ１９０３：Ｃ）、構成要素送信部１３６は、ＰＣ２０内の同期アプリケーションの構成要素の方が、同期サーバ１０に記憶されている構成要素よりも新しいと判断し、ＰＣ２０内の同期アプリケーションの構成要素を同期サーバ１０に送信する（Ｓ１９０６）。このとき、構成要素送信部１３６は、構成要素特定部９４によって特定された構成要素に加えて、構成要素情報記憶部１３４に記憶されている構成要素情報に対応する構成要素を、同期アプリケーションの構成要素として同期サーバ１０に送信する。つまり、構成要素送信部１３６は、あるユーザのＰＣ２０において特定された構成要素に加えて、他のユーザのＰＣ２０において特定された構成要素も同期サーバ１０に送信することができる。これにより、同期アプリケーションの構成要素の特定精度を向上させることができる。
【００８８】
図２０を参照して、アプリケーション実行処理の一例について説明する。同期アプリケーション起動部９２は、ユーザファイル及び設定情報の参照先を同期用に設定して同期アプリケーションを起動する（Ｓ２００１）。具体的には、例えば図１７に示すように、同期アプリケーション起動部９２は、ユーザファイルの格納先を示す環境変数に、同期ユーザファイル記憶部１０８内の同期ユーザファイルが格納されたフォルダを設定することができる。また、同期アプリケーション起動部９２は、設定情報参照部８８の代わりに設定情報検出部１２２を同期アプリケーションに動的にリンクすることができる。
【００８９】
アプリケーション監視部１５０は、同期アプリケーション起動部９２により起動されたアプリケーションの実行状態を監視することにより、当該アプリケーションのプロセスＩＤ（ＰＩＤ）を取得する（Ｓ２００２）。なお、アプリケーション監視部１５０は、同期設定記憶部１０４に設定されている同期アプリケーションを監視対象のアプリケーションとすることができる。
【００９０】
続いて、アプリケーション監視部１５０は、アプリケーションＩＤ（ＡＩＤ）及びプロセスＩＤを対応づけたアプリケーション情報を生成し、アプリケーション情報記憶部１５２に格納する（Ｓ２００３）。また、アプリケーション監視部１５０は、取得したプロセスＩＤをファイルシステムフィルタドライバ１５４に通知する（Ｓ２００４）。
【００９１】
アプリケーション実行部８６は、処理が終了するまでアプリケーションを実行する（Ｓ２００５，Ｓ２００６）。
【００９２】
ここで、アプリケーションの実行中に設定情報領域８２に格納された設定情報が必要となった場合、設定情報検出部１２４が、設定情報領域８２ではなく、同期設定情報記憶部１１０を参照する。そして、同期設定情報記憶部１１０に対象の同期設定情報があれば、設定情報検出部１２４は、該同期設定情報を用いて処理を実行する（Ｓ２００７：Ｎ）。
【００９３】
一方、同期設定情報記憶部１１０に対象の同期設定情報がない場合（Ｓ２００７：Ｙ）、設定情報検出部１２４は、設定情報領域８２から対象の設定情報を取得し、同期設定情報記憶部１１０に同期設定情報として格納する（Ｓ２００８）。これにより、同期設定情報記憶部１１０には、同期アプリケーションによって使用される同期設定情報が格納されることとなる。
【００９４】
ファイルシステムフィルタドライバ１５４は、アプリケーション監視部１５０から通知されたプロセスＩＤを記憶する（Ｓ２０１０）。そして、ファイルシステムフィルタドライバ１５４は、ＩＲＰ（アクセス要求）を受信すると（Ｓ２０１１：Ｙ）、当該ＩＲＰに含まれる情報に基づいて、実行中のアプリケーションのプロセスＩＤを取得する（Ｓ２０１２）。取得したプロセスＩＤが、アプリケーション監視部１５０から通知されたプロセスＩＤに含まれる場合、すなわち、監視対象プロセスである場合（Ｓ２０１３：Ｙ）、ファイルシステムフィルタドライバ１５４は、ＩＲＰに含まれる情報に基づいて、アクセス対象のファイルのファイルＩＤ（ＦＩＤ）を取得する（Ｓ２０１４）。そして、ファイルシステムフィルタドライバ１５４は、プロセスＩＤ及びファイルＩＤを対応づけたアクセス情報を生成し、アクセス情報記憶部１５６に格納する（Ｓ２０１５）。その後、ファイルシステムフィルタドライバ１５４は、ＩＲＰをファイルシステムドライバ８４へ出力する（Ｓ２０１６）。なお、監視対象プロセスではない場合（Ｓ２０１３：Ｎ）、ファイルシステムフィルタドライバ１５４は、アクセス情報を生成せずにＩＲＰをファイルシステムドライバ８４へ出力する（Ｓ２０１６）。
【００９５】
同期アプリケーションの実行が終了すると（Ｓ２００６：Ｙ）、ファイル特定部１５８は、アプリケーション情報記憶部１５２に格納されているアプリケーション情報と、アクセス情報記憶部１５６に記憶されているアクセス情報とに基づいて、同期アプリケーションにおいてアクセスされたファイルを特定する（Ｓ２０２０）。そして、ファイル特定部１５８は、アプリケーションＩＤ及びファイルＩＤを対応づけた特定情報を生成し、特定情報記憶部１６０に格納する（Ｓ２０２１）。
【００９６】
このように、本実施形態によれば、同期アプリケーションによって使用された設定情報やファイルを同期アプリケーションの構成要素として特定することができる。さらに、前述したように、本実施形態によれば、同期サーバ１０から取得した構成要素情報によっても、同期アプリケーションの構成要素を特定することができる。これにより、同期アプリケーションの構成要素の特定精度を向上させることができる。
【００９７】
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るととともに、本発明にはその等価物も含まれる。
【００９８】
例えば、本実施形態では、アプリケーション同期システムにおいてアプリケーションを実行するクライアントをＰＣとしたが、クライアントはＰＣに限られず、携帯端末等の任意の情報処理装置を用いることが可能である。
【００９９】
また、例えば、本実施形態では、参照対象となった同期設定情報が同期設定情報記憶部１１０に格納されていない場合に、設定情報領域８２から設定情報が抽出されて同期設定情報記憶部１１０に格納されることとしたが、はじめに同期アプリケーションを登録するＰＣにおいて、設定情報領域８２に格納されている全ての設定情報を抽出して同期設定情報記憶部１１０に格納することとしてもよい。ただし、本実施形態に示したように、同期設定情報へのはじめての参照が発生したタイミングで、設定情報領域８２から設定情報を抽出して同期設定情報記憶部１１０に格納することにより、同期設定情報のデータサイズを小さくすることが可能となる。
【０１００】
また、例えば、本実施形態では、図１８に示した処理において、アプリケーション同期システム用のプログラムが起動されたタイミングや、同期アプリケーションが終了されるタイミングでＰＣ２０と同期サーバ１０との間で同期処理が実行されることとしたが、同期処理のタイミングはこれに限られず任意のタイミングを採用することができる。
【０１０１】
また、例えば、本実施形態では、図７に示したように、アプリケーションファイル、ユーザファイル、及び設定情報の全てに対して１つの更新日時を保持し、この更新日時に基づいて同期処理が実行されることとしたが、アプリケーションファイル、ユーザファイル、及び設定情報の各々について個別に更新日時が判定され、個別に同期処理が実行されることとしてもよい。また、ファイル単位で更新日時の判定が行われることとしてもよい。なお、更新日時の情報は、同期設定に含まれる情報として保持するのではなく、ＯＳによって保持されている、フォルダやファイルの更新日時を示す情報を用いることとしてもよい。
【符号の説明】
【０１０２】
１０  同期サーバ
２０  パーソナルコンピュータ
３０  アカウント情報記憶部
３２  構成要素記憶部
３４  同期通信部
４０  ユーザ別構成要素記憶部
４２  構成要素情報記憶部
５０  ユーザ認証部
５２  構成要素情報取得要求受信部
５４  構成要素情報送信部
５６  構成要素受信部
５８  構成要素取得要求受信部
６０  構成要素送信部
８０  ファイル記憶部
８２  設定情報領域
８４  ファイルシステムドライバ
８６  アプリケーション実行部
８８  設定情報参照部
９０  同期設定部
９２  同期アプリケーション起動部
９４  構成要素特定部
９６  同期通信部
１００  アプリケーション記憶部
１０２  ユーザファイル記憶部
１０４  同期設定記憶部
１０６  同期アプリケーション記憶部
１０８  同期ユーザファイル記憶部
１１０  同期設定情報記憶部
１２０  フォルダ特定部
１２２  設定情報検出部
１２４  ファイル検出部
１３０  認証要求部
１３２  構成要素情報取得部
１３４  構成要素情報記憶部
１３６  構成要素送信部
１３８  構成要素受信部
１５０  アプリケーション監視部
１５２  アプリケーション情報記憶部
１５４  ファイルシステムフィルタドライバ
１５６  アクセス情報記憶部
１５８  ファイル特定部
１６０  特定情報記憶部
【図１】
2013168221.tif 000003
【図２】
2013168221.tif 000004
【図３】
2013168221.tif 000005
【図４】
2013168221.tif 000006
【図５】
2013168221.tif 000007
【図６】
2013168221.tif 000008
【図７】
2013168221.tif 000009
【図８】
2013168221.tif 000010
【図９】
2013168221.tif 000011
【図１０】
2013168221.tif 000012
【図１１】
2013168221.tif 000013
【図１２】
2013168221.tif 000014
【図１３】
2013168221.tif 000015
【図１４】
2013168221.tif 000016
【図１５】
2013168221.tif 000017
【図１６】
2013168221.tif 000018
【図１７】
2013168221.tif 000019
【図１８】
2013168221.tif 000020
【図１９】
2013168221.tif 000021
【図２０】
2013168221.tif 000022
【手続補正書】
【提出日】平成24年12月13日(2012.12.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータを、
アプリケーションの実行時に必要となる構成要素を特定する構成要素特定部、
前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得する構成要素情報取得部、
前記構成要素特定部による特定結果と、前記構成要素情報とに応じた構成要素を前記同期サーバに送信する構成要素送信部、
として機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記コンピュータを、さらに、
他のコンピュータから前記同期サーバに送信されたアプリケーションの構成要素を該同期サーバから受信する構成要素受信部、
前記同期サーバから受信した構成要素に基づいてアプリケーションを実行するアプリケーション実行部、
として機能させるためのプログラム。
【請求項３】
請求項１または２に記載のプログラムであって、
前記コンピュータを、さらに、前記アプリケーションの実行時に使用されるファイルを検出するファイル検出部として機能させ、
前記構成要素特定部は、検出された前記ファイルを前記アプリケーションの構成要素として特定する、
プログラム。
【請求項４】
請求項１〜３の何れか一項に記載のプログラムであって、
前記コンピュータを、さらに、前記アプリケーションの実行時に使用される設定情報を検出する設定情報検出部として機能させ、
前記構成要素特定部は、検出された前記設定情報を前記アプリケーションの構成要素として特定する、
プログラム。
【請求項５】
アプリケーションの識別子と、該アプリケーションの実行時に必要となる、ファイルを含む構成要素とを対応づけて記憶する構成要素記憶部と、
第１のコンピュータから、前記アプリケーションの前記構成要素を示す構成要素情報の取得要求を受信する構成要素情報取得要求受信部と、
前記構成要素情報の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素情報を前記第１のコンピュータに送信する構成要素情報送信部と、
前記第１のコンピュータから、前記アプリケーションの識別子と、該アプリケーションの構成要素とを受信して前記構成要素記憶部を更新する構成要素受信部と、
第２のコンピュータから、前記アプリケーションの構成要素の取得要求を受信する構成要素取得要求受信部と、
前記構成要素の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素を前記第２のコンピュータに送信する構成要素送信部と、
を備える同期サーバ。
【請求項６】
請求項５に記載の同期サーバであって、
前記構成要素記憶部は、
前記アプリケーションの識別子と前記構成要素とをユーザ別に対応づけて記憶するユーザ別構成要素記憶部と、
前記アプリケーションの識別子と前記構成要素情報とを複数のユーザ分集約して記憶する構成要素情報記憶部と、
を含み、
前記構成要素情報送信部は、前記構成要素情報の取得要求に応じて、前記構成要素情報記憶部を参照し、前記構成要素情報を前記第１のコンピュータに送信する、
同期サーバ。
【請求項７】
コンピュータが、
アプリケーションの実行時に必要となる構成要素を特定し、
前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、
前記構成要素の特定結果と前記構成要素情報とに応じた構成要素を前記同期サーバに送信する、
同期方法。
【請求項８】
同期サーバが、
アプリケーションの識別子と、該アプリケーションの実行時に必要となる、ファイルを含む構成要素とを対応づけて構成要素記憶部に記憶し、
第１のコンピュータから、前記アプリケーションの前記構成要素を示す構成要素情報の取得要求を受信し、
前記構成要素情報の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素情報を前記第１のコンピュータに送信し、
前記第１のコンピュータから、前記アプリケーションの識別子と、該アプリケーションの構成要素とを受信して前記構成要素記憶部を更新し、
第２のコンピュータから、前記アプリケーションの構成要素の取得要求を受信し、
前記構成要素の取得要求に応じて、前記構成要素記憶部を参照し、前記構成要素を前記第２のコンピュータに送信する、
同期方法。
【手続補正書】
【提出日】平成26年9月19日(2014.9.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータを、
アプリケーションの実行時に必要となる構成要素を特定する構成要素特定部、
前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得する構成要素情報取得部、
前記構成要素特定部による特定結果と、前記構成要素情報とに応じた構成要素を前記同期サーバに送信する構成要素送信部、
として機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記コンピュータを、さらに、
他のコンピュータから前記同期サーバに送信されたアプリケーションの構成要素を該同期サーバから受信する構成要素受信部、
前記同期サーバから受信した構成要素に基づいてアプリケーションを実行するアプリケーション実行部、
として機能させるためのプログラム。
【請求項３】
請求項１または２に記載のプログラムであって、
前記コンピュータを、さらに、前記アプリケーションの実行時に使用されるファイルを検出するファイル検出部として機能させ、
前記構成要素特定部は、検出された前記ファイルを前記アプリケーションの構成要素として特定する、
プログラム。
【請求項４】
請求項１〜３の何れか一項に記載のプログラムであって、
前記コンピュータを、さらに、前記アプリケーションの実行時に使用される設定情報を検出する設定情報検出部として機能させ、
前記構成要素特定部は、検出された前記設定情報を前記アプリケーションの構成要素として特定する、
プログラム。
【請求項５】
コンピュータが、
アプリケーションの実行時に必要となる構成要素を特定し、
前記アプリケーションの構成要素を示す構成要素情報を同期サーバから取得し、
前記構成要素の特定結果と前記構成要素情報とに応じた構成要素を前記同期サーバに送信する、
同期方法。
【国際調査報告】
2013168221.tif 000023
2013168221.tif 000024
2013168221.tif 000025