(57)【要約】【課題】複数のコンピュータ間でアプリケーションの操作環境を同期させる。【解決手段】  ＰＣ１がアプリケーションを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成する（２０１）。ファイルを不揮発性記憶装置に保存する前に操作環境を同期させるための指示を受け取る（２０５）。同期の指示を受けたときに、メイン・メモリ上に存在し不揮発性記憶装置に保存する前のファイルに関連する操作コンテキストをＰＣ１からＰＣ２に転送する。ＰＣ２が操作コンテキストを受信する。ＰＣ２がアプリケーションを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成したときにＰＣ１から受信した操作コンテキストを作業領域にロードする。【選択図】図６
2011107853.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータが実行している第１のアプリケーション・プログラムの操作環境を第２のコンピュータが実行する第２のアプリケーション・プログラムに移行する方法であって、
前記第１のコンピュータがアプリケーション・プログラムを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成するステップと、
前記第１のコンピュータが前記ファイルを不揮発性記憶装置に保存する前に操作環境を同期させるための指示を受け取るステップと、
前記指示を受け取るステップに応答して前記メイン・メモリ上に存在し前記不揮発性記憶装置に保存する前の前記ファイルに関連する操作コンテキストを前記第１のコンピュータが前記第２のコンピュータに転送するステップと、
前記第２のコンピュータが前記操作コンテキストを受信するステップと、
前記第２のコンピュータが前記第２のアプリケーション・プログラムを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成するステップと、
前記形成するステップに応答して前記第２のコンピュータが前記受信した操作コンテキストを前記作業領域にロードするステップと
を有する方法。
【請求項２】
前記操作コンテキストが、前記第１のアプリケーション・プログラムを実行して作成されたデータを含む請求項１に記載の方法。
【請求項３】
前記転送するステップが、前記メイン・メモリ上で作成されたデータを前記ディフォルトのファイル名とは異なるファイル名の仮ファイルとして定期的に前記第１のコンピュータの前記不揮発性記憶装置に保存するステップを含む請求項１または請求項２に記載の方法。
【請求項４】
前記操作コンテキストが、作成中のページ位置、カーソル位置、曲名、音声の再生位置、動画の再生位置およびＷｅｂサイトのＵＲＬからなるグループから選択された１または複数の要素で構成された操作情報を含む請求項１から請求項３のいずれに記載の方法。
【請求項５】
前記第２のアプリケーション・プログラムは、前記操作コンテキストに含まれる操作情報を前記メイン・メモリ上の前記ファイルに設定する請求項４に記載の方法。
【請求項６】
前記ロードするステップが、前記第２のアプリケーション・プログラムが付与したディフォルトのファイル名を前記第１のアプリケーション・プログラムが付与したディフォルトのファイル名に一致させるステップを含む請求項１から請求項５のいずれかに記載の方法。
【請求項７】
前記受信するステップに応答して、すでに前記第２のアプリケーション・プログラムが実行されているときは前記第２のアプリケーション・プログラムを終了してから再実行する旨の表示を前記第２のコンピュータに行うステップを有する請求項１から請求項６のいずれかに記載の方法。
【請求項８】
前記転送するステップが、可搬式記録媒体を通じて前記操作コンテキストを転送するステップを含む請求項１から請求項７のいずれかに記載の方法。
【請求項９】
第１のファイルを保存する第１のコンピュータが実行する第１のアプリケーション・プログラムの操作環境を前記第１のファイルに同期した第２のファイルを保存する第２のコンピュータが実行する第２のアプリケーション・プログラムに移行する方法であって、
前記第１のコンピュータが前記第１のアプリケーション・プログラムを実行して前記第１のファイルを修正するステップと、
前記第１のコンピュータが前記第１のファイルを不揮発性記憶装置に保存する前に操作環境を同期させるための指示を受け取るステップと、
前記指示を受け取るステップに応答して前記メイン・メモリ上に存在し前記不揮発性記憶装置に保存する前の前記第１のファイルに関連する操作コンテキストを前記第１のコンピュータが前記第２のコンピュータに転送するステップと、
前記第２のコンピュータが前記操作コンテキストを受信するステップと、
前記第２のコンピュータが前記第２のアプリケーション・プログラムを実行して前記第２のファイルのロードを開始するステップと、
前記ロードを開始するステップに応答して前記第２のコンピュータが前記第２のアプリケーション・プログラムの作業領域に前記第２のファイルに代えて前記操作コンテキストをロードするステップと
を有する方法。
【請求項１０】
前記受信するステップに応答して、前記第２のアプリケーション・プログラムが実行されているか否かを判断するステップと、
実行されている場合に、前記第２のアプリケーション・プログラムを終了してから再実行する旨の表示を前記第２のコンピュータに行うステップを有する請求項９に記載の方法。
【請求項１１】
第２のコンピュータとデータ交換が可能でアプリケーション・プログラムを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成した第１のコンピュータに、
データが入力された前記ファイルを不揮発性記憶装置に保存する前に前記第１のアプリケーション・プログラムの操作環境を同期させるための指示を受け取るステップと、
前記指示を受け取るステップに応答して前記メイン・メモリ上に存在し前記不揮発性記憶装置に保存する前の前記ファイルに関連する操作コンテキストを取得するステップと、
前記操作コンテキストを前記第２のコンピュータに転送するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項１２】
第１のコンピュータとデータ交換が可能な第２のコンピュータに、
前記第１のコンピュータが第１のアプリケーション・プログラムを実行してメイン・メモリ上にディフォルトのファイル名を付与して作成したファイルを前記不揮発性記憶装置に保存する前に取得した前記ファイルに関連する操作コンテキストを前記第１のコンピュータから受信するステップと、
第２のアプリケーション・プログラムを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成するステップと、
前記形成するステップに応答して前記受信した操作コンテキストを前記作業領域にロードするステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項１３】
第２のファイルを保存する第２のコンピュータとデータ交換が可能で前記第２のファイルと同期した第１のファイルを第１のアプリケーション・プログラムを実行して修正する第１のコンピュータに、
修正された前記第１のファイルを不揮発性記憶装置に保存する前に前記第１のアプリケーション・プログラムの操作環境を同期させるための指示を受け取るステップと、
前記指示を受け取るステップに応答して前記メイン・メモリ上に存在し前記不揮発性記憶装置に保存する前の前記第１のファイルに関連する操作コンテキストを取得するステップと、
前記操作コンテキストを前記第２のコンピュータに転送するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項１４】
第１のファイルを保存する第１のコンピュータとデータ交換が可能で前記第１のファイルと同期した第２のファイルを保存している第２のコンピュータに、
前記第１のコンピュータが第１のアプリケーション・プログラムを実行して修正したメイン・メモリ上に存在する前記第１のファイルを不揮発性記憶装置に保存する前に取得した前記第１のファイルに関連する操作コンテキストを前記第１のコンピュータから受信するステップと、
前記第２のアプリケーション・プログラムを実行して前記第２のファイルのロードを開始するステップと、
前記ロードを開始するステップに応答して前記第２のアプリケーション・プログラムの前記メイン・メモリ上の作業領域に前記第２のファイルに代えて前記操作コンテキストをロードするステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項１５】
他のコンピュータとデータ交換が可能なコンピュータであって、
不揮発性記憶装置と、
メイン・メモリと、
前記メイン・メモリにディフォルトのファイル名を付与したファイルを作成するための作業領域を形成する機能を前記コンピュータに実現させるアプリケーション・プログラムと、
前記作業領域にデータを入力する入力手段と、
前記アプリケーション・プログラムの操作環境を同期させる指示を受け取ったときに前記メイン・メモリ上に存在し前記不揮発性記憶装置に保存する前の前記ファイルに関連する操作コンテキストを作成する操作コンテキスト作成手段と、
前記操作コンテキストを前記他のコンピュータに転送する転送手段と
を有するコンピュータ。
【請求項１６】
前記操作コンテキスト作成手段が、前記アプリケーション・プログラムにより提供される前記ファイルの操作情報を取得する操作情報取得手段と、前記メイン・メモリ上の実データから前記ディフォルトのファイル名とは異なるファイル名の仮ファイルを作成する仮ファイル管理手段とを含む請求項１５に記載のコンピュータ。
【請求項１７】
前記他のコンピュータで作成された前記操作コンテキストを受信する受信手段と、
前記アプリケーション・プログラムが実行されたときに前記受信した操作コンテキストを前記アプリケーション・プログラムの作業領域にロードするファイル切替手段と
を有する請求項１４または請求項１６に記載のコンピュータ。
【請求項１８】
他のコンピュータが保存するファイルに同期したファイルを保存し前記他のコンピュータとデータ交換が可能なコンピュータであって、
不揮発性記憶装置と、
メイン・メモリと、
前記メイン・メモリ上に作業領域を形成して前記ファイルを修正する機能を前記コンピュータに実現させるアプリケーション・プログラムと、
前記ファイルを修正するデータを入力する入力手段と、
前記アプリケーション・プログラムの操作環境を同期させる指示を受け取ったときに前記メイン・メモリ上に存在し不揮発性記憶装置に記憶される前の前記ファイルに関連する操作コンテキストを作成する操作コンテキスト作成手段と、
前記操作コンテキストを前記他のコンピュータに転送する転送手段と
を有するコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のコンピュータ間でアプリケーション・プログラムの操作環境を同期させる技術に関する。
【背景技術】
【０００２】
近年、コンピュータのユーザはオフィスでは豊富な機能と性能を備えたデスクトップ型パーソナル・コンピュータ（以下、デスクトップＰＣという。）を使用し、外出先では機動性に優れたノートブック型パーソナル・コンピュータ（以下、ノートＰＣという。）を使用するというように使用場所に応じて複数のコンピュータを使い分けることが多くなってきている。この場合、たとえば、ノートＰＣでアプリケーション・プログラム（以下、アプリケーションという。）を実行して作業をしているときに、その作業の状態をそのままデスクトップＰＣに移行できれば２台のコンピュータを使用する上での利便性が向上する。
【０００３】
特許文献１の発明は、利用者が異なる場所で異なるコンピュータを使用しても、同じコンピュータ作業環境で仕事ができるようにする技術を開示する。利用者がコンピュータ環境携帯装置を異なるコンピュータに接続すると、コンピュータ環境ソフトウウエアが自動的にインストールされ、当該コンピュータの作業環境を変換することができる。ここに作業環境としては、電子メールの設定、ウェブブラウザのブックマーク、履歴、クッキー、デスクトップ、ショートカット、または作業関係のドキュメントおよびファイルなどの個人設定が例示されている。
【０００４】
特許文献２は、第１のデバイスと第２のデバイスの間でソフトウエア・プログラムを同期させる技術を開示する。また、同文献には、スクリーンサイズ、計算能力、オペレーティング・システム、無線アプリケーションパートユーザプロファイル作業部会による無線アプリケーションパートのバージョンなど、ユーザに依存しないようなデバイスの機能を同期させることや、電子カレンダー入力、アドレス帳入力、または電子メールのようなユーザデータを、複数デバイス間で同期させることが記載されている。
【０００５】
非特許文献１は、ネットワークで接続された複数のコンピュータ間でファイルを同期させる技術を開示する。ユーザは各コンピュータにDropboxというソフトウエアをインストールしてMy Dropboxというフォルダを作成する。作成したファイルをMy Dropboxにいれるだけで複数のコンピュータ間で同期させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１４６９１２号公報
【特許文献２】特表２００８−５１０２０７号公報
【非特許文献】
【０００７】
【非特許文献１】ＵＲＬがhttp://web-tan.forum.impressrd.jp/e/2008/11/13/4371のＷｅｂサイト
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数のコンピュータの間で同期させる情報の対象には、アプリケーションの操作環境というものが存在する。操作環境はたとえば、文書作成ソフトウエアであれば現在メイン・メモリ上で作成している保存前のデータ、作成中のページ、およびカーソルの位置などである。ノートＰＣにおいて存在する操作環境をデスクトップＰＣにマイグレーションし、また、デスクトップＰＣの操作環境をノートＰＣにマイグレーションするといったように２台のコンピュータ間で操作環境の同期をとることができれば、デスクトップＰＣとノートＰＣ間の間で使用するコンピュータを変更する上で都合がよい。しかし、操作環境を同期させる場合には主として２つの場面で課題が発生する。
【０００９】
１つ目の課題は、ユーザがたとえばノートＰＣで文書作成ソフトウエアにより付与されるディフォルトのファイル名のファイルとして新規に文書を作成しハードディスク・ドライブ（ＨＤＤ）に保存する前の操作環境を、デスクトップＰＣに同期させる場合に発生する。この場合、操作環境を同期させるには、デスクトップＰＣで同じ文書作成ソフトウエアを実行したときに、ノートＰＣと同一のファイル名でノートＰＣが作成した文書を開くようにする必要がある。２つ目の課題は、ノートＰＣとデスクトップＰＣが同一名称の同期したファイルをすでに保有しているときに、たとえばノートＰＣで修正したファイルをＨＤＤに保存する前の操作環境をデスクトップＰＣに同期させる場合に発生する。
【００１０】
デスクトップＰＣにおいて同じ文書作成ソフトウエアを実行してそれまで保存していた同一名称のファイルを開いたときには、ノートＰＣで修正されたファイルを開くようにする必要がある。また、デスクトップＰＣで同じ文書作成ソフトウエアを実行しているときに、ノートＰＣから更新されたファイルを受け取ったときには更新されたファイルを開いて修正を継続できるようにする必要がある。前述のように複数のコンピュータ間において作業環境やファイルを同期させる技術は存在していたが、これらは一旦ＨＤＤに記録されたデータが対象となっているのに対し、操作環境を示すデータは、同期の瞬間にＨＤＤに保存されていない場合があるためこれらと同様の方法で同期させることはできない。いいかえると、従来の方法では、メイン・メモリに存在するデータを一旦ＨＤＤに保存してから保存したデータを同期させることはできるが、保存する前のデータである操作環境を同期させることはできない。
【００１１】
そこで本発明の目的は、複数のコンピュータ間でアプリケーションの操作環境を同期させる方法を提供することにある。さらに本発明の目的は、複数のコンピュータ間でユーザが作成した保存前のデータを同期させる方法を提供することにある。さらに本発明の目的は、複数のコンピュータ間でアプリケーションの操作状態を同期させる方法を提供することにある。さらに本発明の目的は、そのような方法を実行するコンピュータおよびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、第１のコンピュータから第２のコンピュータにアプリケーションの操作環境を同期させる方法を提供する。アプリケーションの操作環境は、ユーザが作成したデータと実行状態にあるアプリケーションの操作情報で構成された操作コンテキストとしてコンピュータ間で転送される。操作コンテキストは、メイン・メモリ上に存在しており不揮発性記憶装置に保存する前にメイン・メモリの電源を遮断したりアプリケーションを終了したりすると消失するデータである。
【００１３】
本発明の第１の態様は、第１のコンピュータで新規にファイルを作成している場合に、第１のコンピュータで実行している第１のアプリケーションの操作環境を第２のコンピュータの第２のアプリケーションに移行する場合に適用することができる。第１のアプリケーションと第２のアプリケーションは、種類が同一で相互に作成したファイルを交換できる程度にバージョンが整合していることが前提になっている。
【００１４】
第１のコンピュータがアプリケーションを実行すると、メイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域が形成される。第１のコンピュータがデータの入力されたファイルを不揮発性記憶装置に保存する前に操作環境を同期させるための指示を受け取ると、メイン・メモリ上に存在し不揮発性記憶装置に保存する前の作成中のファイルに関連する操作コンテキストを第１のコンピュータが第２のコンピュータに転送する。不揮発性記憶装置に保存する前とは、同期の指示があった瞬間に未保存のデータがメイン・メモリに存在していることを意味しており同期の指示がある以前に保存されたことがあってもよい。
【００１５】
第２のコンピュータは当該操作コンテキストを受信し第２のアプリケーションを実行してメイン・メモリ上にディフォルトのファイル名を付与したファイルを作成するための作業領域を形成する。最初に第２のアプリケーションを実行するときに生成されるディフォルトのファイル名のファイルには何らデータが入力されていないが、本発明では、第２のアプリケーションを実行したときに第１のコンピュータから受信した操作コンテキストを第２アプリケーションの作業領域にロードする。その結果、第２のコンピュータでアプリケーションを実行するだけでユーザは同期の指示をしたときの第１のコンピュータの操作環境を第２のコンピュータに再現して作業を継続することができる。
【００１６】
操作コンテキストには、第１のアプリケーションを実行して作成されたデータを含むことができる。第１のアプリケーションによりメイン・メモリ上で作成されたデータをディフォルトのファイル名とは異なるファイル名の仮ファイルとして定期的に第１のコンピュータの不揮発性記憶装置に保存するようにすれば、同期の指示があったときに操作コンテキストを前回の保存からの差分だけ取得すればよいので転送時間の短縮を図ることができる。操作コンテキストには、作成中のページ位置、カーソル位置、曲名、音声の再生位置、動画の再生位置およびＷｅｂサイトのＵＲＬからなるグループから選択された１または複数の要素で構成された操作情報を含むことができる。操作情報は、第１のアプリケーションを終了する前にファイルを保存しても第１のコンピュータに保存されない情報を含むようにすることができる。操作情報は、関連するファイルが保存されても一緒に保存されたり、アプリケーションのレジストリに保存されたりしない情報を含む。
【００１７】
第２のアプリケーションは操作コンテキストが作業領域にロードされたときに、操作コンテキストに含まれる操作情報を前記メイン・メモリ上のファイルに設定することで、データだけでなく作成中のページやカーソルの位置まで第２のコンピュータに再現することができる。第２のコンピュータが操作コンテキストを受信したときに、すでに第２のアプリケーションが実行されているときは、操作コンテキストが到着しているので第２のアプリケーションを停止させて再実行する旨の表示を第２のコンピュータに行うことができる。ユーザがその表示に従って第２のアプリケーションを再実行することで、第１のコンピュータの操作環境を再現することができる。操作コンテキストは、同期の指示に応じてネットワークを通じて転送することもできるし、可搬式記録媒体に保存して転送することもできる。
【００１８】
本発明の第２の態様では、第１のファイルを保存する第１のコンピュータが実行する第１のアプリケーションの操作環境を、第１のファイルに同期した第２のファイルを保存する第２のコンピュータが実行する第２のアプリケーションに移行する場合に適用することができる。第１のコンピュータが第１のアプリケーションを実行して第１のファイルを修正する。第１のコンピュータが第１のファイルを不揮発性記憶装置に保存する前に操作環境を同期させるための指示があると、メイン・メモリ上に存在し不揮発性記憶装置に保存する前の修正された第１のファイルに関連する操作コンテキストを第１のコンピュータが第２のコンピュータに転送する。
【００１９】
第２のコンピュータでは、操作コンテキストを受信すると第２のアプリケーションを実行して第２のファイルのロードを開始する。このとき第２のコンピュータは第２のアプリケーションの作業領域に第２のファイルに代えて第１のコンピュータから受信した操作コンテキストをロードする。その結果、第２のコンピュータでは、同期したファイルを最初に第１のコンピュータで修正し、同期の指示があったときにファイルの修正作業にかかる操作環境を第２のコンピュータに再現することができる。操作コンテキストを受信したときにすでに第２のアプリケーションが実行されている場合は、操作コンテキストを第２のアプリケーションに提供するために、操作コンテキストが到着しているので第２のアプリケーションを停止させてから再実行する旨の表示を第２のコンピュータに行うことができる。
【発明の効果】
【００２０】
本発明により、複数のコンピュータ間でアプリケーションの操作環境を同期させる方法を提供することができた。さらに本発明により、複数のコンピュータ間でユーザが作成した保存前のデータを同期させる方法を提供することができた。さらに本発明により、複数のコンピュータ間でアプリケーションの操作状態を同期させる方法を提供することができた。さらに本発明により、そのような方法を実行するコンピュータおよびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【００２１】
【図１】文書作成ソフトエアを使用して新規にファイルを作成し同期データを作成するときの様子を示す図である。
【図２】本実施の形態にかかるコンピュータ・システムの主要なハードウエア構成を示す機能ブロック図である。
【図３】本実施の形態にかかるソフトウエアの構成を説明する図である。
【図４】アプリケーションを実行して新規なデータを作成している間にＰＣ１からＰＣ２にアプリケーションの操作環境を移行する手順を示すフローチャートである。
【図５】アプリケーションを実行して新規なデータを作成している間にＰＣ１からＰＣ２にアプリケーションの操作環境を移行させる手順を示すフローチャートである。
【図６】図４、図５の手順におけるファイルの状態を示した図である。
【図７】操作コンテキストのデータ構造体の一例を示す図である。
【図８】ＰＣ１とＰＣ２との間で同期したファイルをＰＣ１で修正してから保存する前に、ＰＣ１からＰＣ２にアプリケーションの操作環境を移行する手順を示すフローチャートである。
【図９】ＰＣ１とＰＣ２との間で同期させたファイルをＰＣ１で修正してから保存する前に、ＰＣ１からＰＣ２にアプリケーションの操作環境を移行する手順を示すフローチャートである。
【図１０】図８、図９の手順におけるファイルの状態を示した図である。
【発明を実施するための形態】
【００２２】
［操作コンテキスト］
操作コンテキストとは、ユーザがアプリケーションを実行して新規にファイルを作成したり既存のファイルを修正したりしているときにメイン・メモリ上に存在するデータおよびその時点での当該アプリケーションの動作状態を示す情報をいう。以後本明細書においては、ユーザが作成したデータを実データといい、アプリケーションの動作状態を示す情報を操作情報ということにする。操作コンテキストは、アプリケーションの通常の利用方法においてメイン・メモリの電源を遮断したり、不揮発性記憶装置に保存しないでアプリケーションを終了したりするとコンピュータから消失するか少なくともユーザが当該アプリケーションを通じて取得できないデータである。本発明では操作コンテキストを同期のタイミングで取得して同期データとして転送する方法を提供する。
【００２３】
操作コンテキストを構成する実データは、文書作成ソフトウエアにおける作成データ、音声再生ソフトウエアにおける再生コンテンツに対するユーザによる評価点数などの付加データ、Ｗｅｂ閲覧ソフトウエアにおける入力データ、およびクリップボードに保存されてデータなどのメイン・メモリの電源が維持されている間だけ存在するデータである。操作コンテキストを構成する操作情報には、文書作成ソフトウエアにおける作成中のページ位置または当該ページにおけるカーソルの位置（ラインおよびカラム）に関する情報、音声または動画再生ソフトウエアにおける再生中の曲名または再生位置に関する情報、Ｗｅｂ閲覧ソフトウエアにおける閲覧中のサイトのＵＲＬまたは設定したタブの構成に関する情報などを含む。
【００２４】
また、各アプリケーションに共通する操作情報として、ウインドウがフォアグランドで表示されているか否かを示す情報またはデータを作成するアプリケーションを開いたときに自動的に付与するファイル名称などを含む。アプリケーションの操作環境を設定する情報やコンピュータの画面を設定する情報も利用形態からみると本発明の操作情報に類似するが、そのような情報は不揮発性記憶装置のレジストリというフォルダに記憶される点で本発明の操作情報とは異なるものである。本発明の操作情報は、ページ位置やカーソルの位置などのようなアプリケーションが作成したファイルを保存しても保存されない情報も含むことができる。
【００２５】
図１は、文書作成ソフトウエアを使用して新規にファイルを作成し同期対象データを作成するときの様子を説明する図である。時刻ｔ０でユーザが文書作成ソフトウエアを実行すると、最初に無題Ａというディフォルトのファイル名が当該ソフトウエアにより付与されてメイン・メモリ上にファイルを作成する作業領域が確保される。ＨＤＤには、無題Ａという名称のファイルを格納するスペースが確保される。ユーザは無題Ａのファイルにデータを入力し、時刻ｔ３で作業を終了するときにユーザ設定名というファイル名を付与してＨＤＤに保存する。このときある種類の文書作成ソフトウエアは、バックアップのために定期的に作成中のデータを当該ソフトウエアが定めた仮のファイル名でＨＤＤに保存する。
【００２６】
時刻ｔ３の直前にメイン・メモリの電源を遮断すると、直前の時刻ｔ１にＨＤＤに保存されたデータを復元することはできる。また、他の種類の文書作成ソフトウエアは、時刻ｔ３まで何ら自動的な保存作業をしないため、そのようなソフトウエアでは時刻ｔ３の直前にメイン・メモリの電源を遮断したり、保存しないでプログラムを終了したりするとそれまで作成したデータは消失する。無題Ａという名称のファイルは、そのファイル名でユーザまたはシステムが保存操作をしない限りＨＤＤには保存されない。
【００２７】
ここで、このコンピュータの操作コンテキストを他のコンピュータにマイグレーションするために時刻ｔ３より前の時刻である時刻ｔ２で同期操作を行うときに、時刻ｔ１と時刻ｔ２の間に入力された実データはＨＤＤに保存されていない。さらに、時刻ｔ２の瞬間にメイン・メモリに存在する操作情報は保存する方法がない。したがって、同期のタイミングに存在する操作環境をマイグレーションさせるためには、時刻ｔ２の操作コンテキストを取得する必要がある。
【００２８】
本発明においては、マイグレーションの対象に、操作コンテキスト以外のファイルやシステムの操作情報などのデータも含めることができる。システムの操作情報は、たとえば、デスクトップ画面の表示内容や各アプリケーションの画面構成などのようなレジストリに格納されたデータである。本明細書ではマイグレーションの対象が操作コンテキスト以外のデータを含む場合は同期データということにする。
【００２９】
［コンピュータ・システムの構成］
図２は、本実施の形態にかかるコンピュータ・システム１０の主要なハードウエア構成を示す機能ブロック図である。コンピュータ・システム１０は、バス２７に接続されたＣＰＵ１１、メイン・メモリ１３、入力デバイス１５、無線モジュール１７、ＨＤＤ１９、液晶表示装置（ＬＣＤ）２１、ＢＩＯＳ＿ＲＯＭ２３およびＵＳＢポート２５などを含んでいる。本実施の形態にかかるプログラムはＨＤＤ１９に格納され、メイン・メモリ１３にロードされてＣＰＵ１１により実行される。入力デバイス１５は、キーボードやマウスで構成され、ユーザがアプリケーションを実行してデータを入力するために使用される。
【００３０】
ＬＣＤ２１には、作業中のデータ、ページ位置、およびカーソル位置などが表示される。無線モジュール１７は、コンピュータ１０と他のコンピュータを同期させる際に操作コンテキストを無線通信ネットワークで転送するために使用することができる。ＵＳＢポート２５は、操作コンテキストをここに接続された可搬式のＵＳＢメモリで転送するために使用することができる。なお、本実施の形態においてハードウエアの構成は周知であるため詳細な説明は省略する。
【００３１】
［ソフトウエアの構成］
図３は、本実施の形態にかかるソフトウエアの構成を説明する図である。図３には、本発明にかかる新規なソフトウエアである同期システム１００と、その他の周知のソフトウエアおよびハードウエアを示している。アプリケーション５１は、文書作成ソフトウエア、アプリケーション５３は音声再生ソフトウエア、およびアプリケーション５５はＷｅｂサイト閲覧ソフトウエアである。オペレーティング・システム（ＯＳ）５７は、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）またはＭａｃＯＳ（登録商標）などを採用することができる。ＯＳ５７は、ＨＤＤ１９およびその他の記憶装置のファイルおよびディレクトリの作成、変更、移動、および削除の管理などを行うファイル・システム５８を含む。
【００３２】
ＨＤＤ１９には、特に本発明との関連で記録媒体に操作コンテキスト格納部５９、ユーザ・ファイル格納部６１、および更新リスト格納部６３というデータ記憶領域が定義されている。操作コンテキスト格納部５９は、ユーザが直接アクセスする必要のない記憶領域で、同期システム１００が作成したマイグレーションの対象となる操作コンテキストを格納する。ユーザ・ファイル格納部６１は、各アプリケーション５１、５３、５５が作成したファイルを格納する。更新リスト格納部６３は、ユーザ・ファイル格納部６１に格納されたファイルの中で、前回の同期から現在までの間に更新されたファイルのリストを格納する。
【００３３】
操作情報取得部１０１は、同期イベント生成部１１１から同期イベントを受け取ったときに、フォアグランドまたはバックグランドで動作しているアプリケーション５１、５３、５５から操作情報を取得して、ＯＳ５７を通じて操作コンテキスト格納部５９に保存する。操作情報取得部１０１は保存した操作情報を同期データ処理部１１３に送る。操作情報は操作コンテキストの一部である。仮ファイル管理部１０３は、フィルタ・ドライバ１０７からアプリケーション５１、５３、５５が新規にファイルを作成したり既存のファイルを更新したりしていることの通知を受け取ったときに、アプリケーション５１、５３、５５にアクセスしてメイン・メモリ１３にある実データが入力されたファイルのコピーを仮ファイルとして作成し、別のファイル名を付与して操作コンテキスト格納部５９に保存する。仮ファイル管理部１０３は、以後メイン・メモリ１３にファイルがある限り定期的に仮ファイルを更新する。仮ファイルは、操作コンテキストの一部である。
【００３４】
仮ファイル管理部１０３は、メイン・メモリ１３上で新規に作成されているかまたは修正されているファイルのファイル名をアプリケーション５１、５３、５５に問い合わせて、操作コンテキスト格納部５９に格納する仮ファイルとメイン・メモリ上のファイルに両者を関連付けた識別子を付与する。識別子は、アプリケーションが同時に複数の異なるディフォルトのファイル名のファイルを作成したときは、それぞれのディフォルトのファイル名を識別できるように構成されている。識別子は、ファイルおよび仮ファイルのヘッダに設定することができる。仮ファイル管理部１０３は、識別子を操作情報取得部１０１と共用して操作コンテキスト格納部５９に保存する。
【００３５】
仮ファイル管理部１０３は、同期イベント生成部１１１から同期イベントを受け取ったときに、アプリケーション５１、５３、５５にアクセスして、次回の更新のタイミングがくる前に操作コンテキスト格納部５９に保存されていた仮ファイルを更新する。仮ファイル管理部１０３は、同期イベントに応じて作成または更新した仮ファイルを同期データ処理部１１３に送る。操作情報取得部１０１および仮ファイル管理部１０３はアプリケーションにアクセスする際に、アプリケーション５１に公開されたＣＯＭ（Component Object Model）に基づいたオートメーションと呼ばれるプログラミング・インターフェースを利用することができる。仮ファイル管理部１０３は、メイン・メモリ１３上のファイルがユーザ・ファイル格納部６１に保存されたときに、フィルタ・ドライバ１０７からその通知を受けて操作コンテキスト格納部５９に保存されていた同一識別子の仮ファイルを削除する。仮ファイル管理部１０３は、同一の識別子を備える新しい仮ファイルが保存されたときに、操作コンテキスト格納部５９から古い仮ファイルを削除することができる。
【００３６】
フィルタ・ドライバ１０７は、ファイル・システム５８とアプリケーション５１、５３、５５との間で交換されるＡＰＩ関数やデータを監視して、アプリケーション５１、５３、５５が新規にメイン・メモリ１３にファイルを作成したり、ユーザ・ファイル格納部６１に保存されていたファイルをロードしたりしたことを検知すると、仮ファイル管理部１０３、ファイル切替部１０９または更新ファイル管理部１１５に通知する。ファイル切替部１０９は、同期データ処理部１１３から受け取った仮ファイルの識別子と同一の識別子のファイルがアプリケーション５１、５３、５５によりロードされようとしていることの通知をフィルタ・ドライバ１０７から受け取ったときに、当該ファイルに代えて仮ファイルを含む操作コンテキストをフィルタ・ドライバ１０７経由でアプリケーション５１、５３、５５に渡す。ファイル切替部１０９は、同期データ処理部から受け取った仮ファイルの識別子から、操作コンテキストがディフォルトのファイル名が付与されたファイルに関連する仮ファイルを含むと判断した場合は、当該仮ファイルを作成したアプリケーションに対応するアプリケーションが実行されてディフォルトのファイル名のファイルがメイン・メモリに作成されたときに、当該仮ファイルを含む操作コンテキストをフィルタ・ドライバ１０７経由でアプリケーションに渡す。
【００３７】
同期イベント生成部１１１は、入力デバイス１５を通じてユーザが行った同期操作に応じて生成した同期イベントを、操作情報取得部１０１、仮ファイル管理部１０３および同期データ処理部１１３に送る。ユーザ・インターフェース部１０５は、ユーザに同期に関連する情報を提供するためにＬＣＤ２１に画面を表示する。ユーザ・インターフェース部１０５は、同期データ処理部１１３がネットワーク６５またはＵＳＢメモリ６７を通じて他のコンピュータから同期データを受け取ったときにＬＣＤ２１に画面を表示してユーザに知らせる。同期データ処理部１１３は、同期イベントが生成されたときに操作情報取得部１０１から操作情報を受け取り、仮ファイル管理部１０３から仮ファイルを受け取ってそれらをネットワーク６５またはＵＳＢメモリ６７を通じて他のコンピュータに転送する。同期データ処理部１１３は他のコンピュータから操作コンテキストを受信したときに、ユーザ・インターフェース部１０５、仮ファイル管理部１０３、およびファイル切替部１０９に識別子を通知し、さらに操作コンテキストを操作コンテキスト格納部５９に保存する。
【００３８】
同期データ処理部１１３は他のコンピュータから、当該他のコンピュータで保存されたファイルを同期データとして受け取ったときには、ユーザ・インターフェース１０５、仮ファイル管理部１０３、およびファイル切替部１０９に識別子を通知し、さらにファイルをユーザ・ファイル格納部６１に保存する。同期データ処理部１１３は、他のコンピュータから同期データとして転送されたファイルがユーザ・ファイル格納部６１に保存されたとき、操作コンテキスト格納部５９を検索してみつけた同一識別子の仮ファイルを削除する。同期データ処理部１１３は、他のコンピュータから受信した操作コンテキストがフォアグランドで動作していたアプリケーションに関するものであると判断したときに、対応するアプリケーションを自動的に実行する。
【００３９】
更新ファイル管理部１１５は、フィルタ・ドライバ１０７から、ユーザ・ファイル格納部６１に保存されたファイルが前回の同期以降に更新されたことの通知を受けたときに、更新リスト格納部６３のファイル・リストを更新する。同期システム１００の各要素は、ＨＤＤ１９に格納されたプログラムがメイン・メモリ上にロードされ、ＣＰＵ１１で実行されたときにコンピュータ１１で実現される。また、各要素は独立したプログラム・モジュールで構成してもよいし、複数の要素を１つのプログラム・モジュールとして統合してもよい。
【００４０】
［新規なデータを作成している間の同期］
図４、図５は、アプリケーションを実行して新規なデータを作成している間にＰＣ１からＰＣ２にアプリケーションの操作環境を移行する手順を示すフローチャートである。図６は、図４、図５の手順におけるファイルの状態を示した図である。ここにＰＣ１とＰＣ２はいずれも図２および図３に示したハードウエアおよびソフトウエアの構成を備えており、同一のまたは互換性のあるバージョンのアプリケーションが導入されている。ユーザはアプリケーションを実行して、アプリケーションにより付与されたディフォルトのファイル名のファイルに実データを入力しているときに、ＨＤＤ１９に作成中のファイルを保存する前にＰＣ２で同一の操作環境を再現してファイルの作成を継続させることを意図している。
【００４１】
ブロック２０１では、ＰＣ１でユーザがアプリケーション５１のアイコンをクリックして新規に文書を作成する作業を開始する。アプリケーション５１は、当該作業に対してディフォルトとして用意している無題Ａ（Ｎｕｌｌ）というファイル名を自動的に割り当てて、メイン・メモリ１３にデータを作成する作業領域を確保する。なお、図６において（Ｎｕｌｌ）という記載は、ファイル名の一部としての表示ではなく当該ファイルに実データが存在しないことを示しており、（５０１）、（５０３）といった記載は当該ファイルの実データの状態を示している。たとえば、無題（５０１）のファイルと無題（５０３）のファイルはファイル名が同一で実データが異なり、無題Ａ（５０３）のファイルと仮題名Ａ（５０３）のファイルはファイル名が異なり実データが同じであることを意味している。
【００４２】
アプリケーション５１はＨＤＤ１９のユーザ・ファイル格納部６１に、無題Ａ（Ｎｕｌｌ）というファイル名でデータを格納するための領域を確保する。ブロック２０３でユーザは、入力デバイス１５を通じてメイン・メモリ１３に確保された無題Ａというファイル名のファイルにデータの入力を開始する。フィルタ・ドライバ１０７から、アプリケーション５１が実行されたことの通知を受け取った仮ファイル管理部１０３は、ブロック２０３でアプリケーション５１に問い合わせてアプリケーション５１が無題Ａという名称のファイルを作成したことを認識すると、無題Ａのファイルに対応する識別子を付与した仮題名Ａという仮ファイルを作成して、操作コンテキスト格納部５９に保存する。識別子は、仮ファイルのヘッダに設定される。仮ファイルはユーザが認識する必要のないデータであるため、ユーザからみえないように保存してもよい。
【００４３】
ユーザ・ファイル格納部６１に保存された無題Ａ（Ｎｕｌｌ）のファイルは、アプリケーション５１が無題Ａというファイル名でメイン・メモリ１３上のデータに対する保存動作をしない限り空（Ｎｕｌｌ）の状態である。また、操作コンテキスト格納部５９に保存された仮ファイルは、メイン・メモリ１３上の無題Ａのファイルが同一または別のファイル名でユーザ・ファイル格納部６１に保存されたときに、フィルタ・ドライバ１０７からその通知を受けた仮ファイル管理部１０３が自動的に削除する。
【００４４】
アプリケーション５１は、ユーザが実データを入力している間に自動的にバックグランドでバックアップ・データを作成してよいが、仮ファイルはそのようなバックアップ・データとは別に作成される。無題Ａのファイルがメイン・メモリ１３上に存在する間、仮ファイル管理部１０３はアプリケーション５１が実行されているメイン・メモリ１３に定期的にアクセスして操作コンテキスト格納部５９の仮ファイルを更新し図６に示すように仮題名Ａ（５００）という仮ファイルを保存する。ユーザは作成中のデータが仮ファイルとして定期的に保存されていることを認識しない状態で実データを入力し無題Ａ（５０１）というファイルを作成している。仮題名Ａ（５００）のファイルは無題Ａ（５０１）のファイルよりも遅れて作成されるため若干実データの内容が異なっている。
【００４５】
ブロック２０５では、ユーザはＰＣ１でアプリケーション５１を実行してその時点で作成していたメイン・メモリ１３上の無題Ａ（５０３）のファイルの作成に関する操作環境をＰＣ２で再現してファイルの作成を行うために、入力デバイス１５からＰＣ１に対して同期の指示をする。同期の指示を受け取った同期イベント生成部１１１は同期イベントを生成し、操作情報取得部１０１、仮ファイル管理部１０３および同期データ処理部１１３に送る。
【００４６】
ブロック２０７では、同期イベントを受け取った操作情報取得部１０１はアプリケーション５１にアクセスして、その時点でメイン・メモリ１３に存在する操作状態に関する操作コンテキストを取得し、操作コンテキスト格納部５９に保存してから同期データ処理部１１３に送る。また、同期イベントを受け取った仮ファイル管理部１０３はアプリケーション５１にアクセスして、定期的に行っている次回の仮ファイルを更新するタイミングを待たないで、現在のメイン・メモリ１３の無題Ａ（５０３）のファイルを仮題名Ａ（５０３）の仮ファイルとして操作コンテキスト格納部５９に保存してから同期データ処理部１１３に送る。仮ファイル管理部１０３は、クリップボードの実データも操作コンテキスト格納部５９に保存してから同期データ処理部１１３に送る。
【００４７】
仮ファイルは定期的に操作コンテキスト格納部５９に格納されているので、仮題名Ａ（５０３）の仮ファイルを作成する際に、仮ファイル管理部１０３は前回の更新と今回の更新の差分だけを更新すればよく短時間で仮ファイルの保存作業を終了することができるので、アプリケーションが多くなっても短時間で作業を終了することができる。同期イベントに基づく操作コンテキストの作成のための時間が問題にならない場合は、仮ファイルを定期的に更新する必要はなく、仮ファイル管理部１０３は同期イベントを受け取った時点でファイル全体に対する仮ファイルを作成するようにしてもよい。また、操作情報および操作コンテキストは、操作コンテキスト格納部５９に保存しないでメイン・メモリ１３に存在する状態で同期データ処理部１１３が受け取るようにしてもよい。
【００４８】
ブロック２０９では、操作コンテキストを受け取った同期データ処理部１１３は、無線モジュール１７による無線のネットワークまたは図２に示していない有線のネットワークでＰＣ１とＰＣ２が通信可能な状態になっているか否かを判断する。通信が可能であれば、ブロック２０７で受け取った仮題名Ａ（５０３）の仮ファイルと操作情報からなる操作コンテキストを、ネットワーク６５を通じてＰＣ２に転送する。同期データ処理部１１３がネットワークの通信ができないと判断した場合は、ブロック２１１に移行する。なお、本発明においては、マイグレーションの対象となるデータは後に説明するように保存されたファイルも含むので、操作コンテキストと保存されたファイルを含めて同期対象データということにする。
【００４９】
ブロック２１１では、同期データ処理部１１３は、今回の同期操作で作成された操作コンテキストを示すデータ構造体をキューに登録する。ブロック２１３では、同期データ処理部１１３は、キューに送信待ちの操作コンテキストが保存されていることをユーザ・インターフェース部１０５に通知する。ユーザ・インターフェース部１０５は、ＬＣＤ２１にプロンプト画面を表示して、キューに同期データが存在するのでＰＣ１とＰＣ２のネットワーク通信を確立したり、ＵＳＢポート２５にＵＳＢメモリ６７を挿入したりすることをユーザに促す。ブロック２１４では、ネットワーク６５またはＵＳＢメモリ６７によりＰＣ１からＰＣ２への通信が確立され、ブロック２１５で操作コンテキストが送信される。図４に示した手順は各アプリケーション５１、５３、５５について実行され、１回の同期のタイミングでそれぞれのアプリケーション５１、５３、５５から作成された操作コンテキストが一括してＰＣ２に送信される。
【００５０】
図７は操作コンテキスト格納部５９に一回の同期操作で保存される操作コンテキストのデータ構造体１５０の一例を示す。データ構造体１５０には、各アプリケーションについて操作コンテキストと操作コンテキストのメタ情報で構成されている。アプリケーション５１については、仮題名Ａの仮ファイルとクリップボードのデータが実データとして保存されている。また、同期時のページ位置、カーソル位置、およびフォアグランドか否かの情報が操作情報として保存されている。アプリケーション５３については、仮題名Ｂ−１と仮題名Ｂ−２の２つの仮ファイルが実データとして保存されている。また、同期時に再生していた曲名と再生位置を示す情報が操作情報として保存されている。アプリケーション５３については、仮題名Ｃの仮ファイルが実データとして保存されている。また同期時に参照していたサイトのＵＲＬとブラウザの画面を構成するタグ情報が操作情報として保存されている。そして、アプリケーションにより付与されたディフォルトのファイル名に対応する識別子と操作コンテキストの作成時刻からなる操作コンテキストのメタ情報が保存されている。なお、以下の説明においては、特に言及しない限り操作コンテキストと表現したときにはメタ情報も含んでいるものとする。
【００５１】
つぎに、転送された操作コンテキストを受け取ったＰＣ２で、ＰＣ１の操作環境を再現して作業を継続する手順を図５のフローチャートで説明する。ＰＣ２では、アプリケーション５１は終了しているものとする。ブロック２５１ではネットワーク６５またはＵＳＢメモリ６７によりＰＣ２が操作コンテキストを受信すると、ＰＣ２の同期システム１００が動作して以後の手順を行う。同期データ処理部１１３は、ネットワーク６５を通じて操作コンテキストを受信したことを検出すると、ユーザ・インターフェース部１０５、仮ファイル管理部１０３およびファイル切替部１０９に仮ファイルの識別子を通知しさらに受信した操作コンテキストを操作コンテキスト格納部５９に保存する。ユーザ・インターフェース部１０５は、ブロック２５３でＬＣＤ２１に操作コンテキストを受け取ったことおよび同期の対象となるアプリケーションの名称を表示してユーザに通知する。
【００５２】
ＵＳＢポート２５にＵＳＢメモリ６７が挿入されたときには、同期データ処理部１１３は同様にユーザ・インターフェース部１０５に通知する。ユーザ・インターフェース部１０５は、ＬＣＤ２１に操作コンテキストを受け取ったことおよび同期の対象となるアプリケーションの名称を表示してユーザに操作コンテキストを保存するように通知する。ユーザが保存操作を行うと、操作コンテキストは操作コンテキスト格納部５９に保存される。
【００５３】
操作コンテキストをネットワーク６５経由で受信したときは、ブロック２５５で同期データ処理部１１３は、操作情報を検索してＰＣ１において同期のタイミングのときにフォアグランドで表示されていたウインドウを保有するアプリケーションを検出し、ＯＳ５７を通じて自動的に実行する。操作コンテキストをネットワーク６５経由で受信したときに、ＰＣ１において同期のタイミングのときにバックグランドで表示されていたウインドウを保有するアプリケーションと、操作コンテキストをＵＳＢメモリ６７経由で受信したときのすべてのアプリケーションはＰＣ２を操作するユーザが手動で実行する。
【００５４】
ブロック２５５では、アプリケーション５１が自動または手動で実行されるものとする。アプリケーション５１は、当該作業に対してディフォルトとして用意している無題Ａというファイル名を自動的に割り当てて、メイン・メモリ１３にデータを作成する作業領域を確保する。アプリケーション５１はＨＤＤ１９のユーザ・ファイル格納部６１に、無題Ａ（Ｎｕｌｌ）というファイル名でデータを格納するための領域を確保する。
【００５５】
このときアプリケーション５１が実行されたことの通知をフィルタ・ドライバ１０７から受け取ったファイル切替部１０９は、ＰＣ１から受け取った操作コンテキストを操作コンテキスト格納部５９から読み出してフィルタ・ドライバ１０７経由でアプリケーション５１の作業領域にロードする。アプリケーション５１は、仮題名Ａ（５０３）の仮ファイルの実データが無題Ａのファイルに入力された状態となり、当該無題Ａのファイルに対して操作コンテキストに含まれる操作情報を設定する。ファイル切替部１０９はＰＣ２で実行されたアプリケーション５１が付与したディフォルトのファイル名が、ＰＣ１から受信した操作コンテキストに含まれるディフォルトのファイル名に一致しない場合は、仮ファイルの識別子に基づいて一致させるようにアプリケーション５１に設定する。ＰＣ２では、同期のタイミングでアプリケーション５１が作成していたファイルの実データとページ位置およびカーソル位置などの操作状態が再現される。
【００５６】
ブロック２５７では、ユーザがＰＣ２で無題Ａ（５０３）のファイルのデータ作成を開始して無題Ａ（５０５）というファイルを作成する。仮ファイル管理部１０３は仮題名Ａ（５０４）という仮ファイルを作成して操作コンテキスト格納部５９に保存している。仮ファイル管理部１０３は、仮題名（５０４）という新しい仮ファイルを保存したときに同一識別子の仮題名Ａ（５０３）という古い仮ファイルを操作コンテキスト格納部５９から削除することができる。ユーザはＰＣ２で作業が終了すると、ブロック２５７で無題Ａ（５０７）のファイルに自らが題名Ａ（５０７）というファイル名を付与してユーザ・ファイル格納部６１に保存する。
【００５７】
題名Ａ（５０７）のファイルのヘッダには、ＰＣ１の仮ファイル管理部１０３により仮題名Ａ（５０３）のファイルに付与された識別子と同じ識別子が付与される。アプリケーション５１が題名Ａ（５０７）のファイルを保存したことの通知をフィルタ・ドライバ１０７から受け取った仮ファイル管理部１０３は、操作コンテキスト格納部５９に保存した仮題名Ａ（５０４）の仮ファイルは最新のファイルが別名で保存されて不要になったため削除する。また、仮ファイル管理部１０３は、ユーザ・ファイル格納部６１に保存されていた無題Ａ（Ｎｕｌｌ）のファイルを削除する。
【００５８】
ブロック２５９では、ユーザがＰＣ２のユーザ・ファイル格納部６１に保存した題名Ａ（５０７）というファイルをＰＣ１にマイグレーションするために同期操作を行う。同期イベント生成部１０１から同期イベントを受け取った同期データ処理部１１３は、ブロック２６１で更新リスト格納部６３を参照して各アプリケーション５１、５３、５５が前回の同期から今回の同期までの間に更新してユーザ・ファイル格納部６１に保存したファイルが存在するか否かを判断する。更新されたファイルが存在する場合はブロック２６７に移行する。更新されたファイルが存在しない場合は、ブロック２６３に移行して同期データ処理部１１３は、操作情報取得部１０１および仮ファイル管理部１０３からブロック２０７の手順に基づいて操作コンテキストを受け取っているか否かを判断する。
【００５９】
操作コンテキストを受け取っていないときは、ブロック２６５に移行して同期データ処理部１１３は、同期対象データが存在しない旨をユーザ・インターフェース１０５に通知する。ユーザ・インターフェース１０５は、ＬＣＤ２１に同期操作に対する同期対象データがないことを示す画面を表示する。操作コンテキストを受け取っているときは、ブロック２６７に移行する。ブロック２６７では、同期データ処理部１１３が、更新されてユーザ・ファイル格納部６１保存されたファイルおよび操作コンテキスト格納部５９に保存された操作コンテキストまたはそのいずれか一方をネットワーク６５またはＵＳＢメモリ６７を通じてＰＣ１に送信する。
【００６０】
ここでは、マイグレーションの対象になる操作コンテキストは存在せず、同期対象データとしてユーザ・ファイル格納部６１に保存された題名Ａ（５０７）のファイルだけが送信されることにする。ブロック２７１の作業は再びＰＣ１で行われる。ブロック２７１では、同期対象データを受け取ったＰＣ１の同期データ処理部１１３は、ユーザ・インターフェース１０５、仮ファイル管理部１０３、およびファイル切替部１０９に同期データの受信を通知するとともに題名Ａ（５０７）のファイルからなる同期対象データを操作コンテキスト格納部５９ではなくユーザ・ファイル格納部６１に保存する。
【００６１】
同期データ処理部１１３は、操作コンテキスト格納部５９を検索して、題名Ａ（５０７）のファイルと同一の識別子で関連付けられた仮題名Ａ（５０３）の仮ファイルが存在することを確認すると関連する操作情報も含めてそれを削除する。さらに同期データ処理部１１３は、ユーザ・ファイル格納部６１に保存されていた無題Ａ（Ｎｕｌｌ）のファイルを削除する。したがって、ＰＣ１とＰＣ２の間で同期を複数回繰り返しても新しいファイルがユーザ・ファイル格納部６１に保存されたときに不要になった仮ファイルや無題（Ｎｕｌｌ）のファイルを削除することができる。
【００６２】
［同期後に修正したファイルの同期］
図８、図９は、ＰＣ１とＰＣ２との間で同期させたファイルをＰＣ１で修正してから保存する前に、ＰＣ２にアプリケーションの操作環境を移行する手順を示すフローチャートである。図１０は、図８、図９の手順におけるファイルの状態を示した図である。ＰＣ１とＰＣ２は、同一の識別子を備えファイル名が題名Ａ（６０１）のファイルをそれぞれのユーザ・ファイル格納部６１に保存している。ユーザはＰＣ１で題名Ａ（６０１）のファイルを修正して保存する前にＰＣ２に操作環境を移行し、ＰＣ２でさらに修正した後に保存することを意図している。
【００６３】
ブロック３０１では、ＰＣ１でユーザがアプリケーション５１を実行して題名Ａ（６０１）のファイルをメイン・メモリ１３にロードする。ブロック３０３でユーザは、題名Ａ（６０１）のファイルを修正して題名Ａ（６０３）のファイルを作成する。フィルタ・ドライバ１０７からアプリケーション５１が題名Ａのファイルをロードしたことの通知を受け取った仮ファイル管理部１０３は、メイン・メモリ１３にロードされている題名Ａのファイルと同じ識別子を付与したファイル名が仮題名Ａの仮ファイルを作成して操作コンテキスト格納部５９に保存する。仮ファイルは、仮ファイル管理部１０３により定期的に更新され、図１０では仮題名Ａ（６０２）の仮ファイルが保存されている。
【００６４】
ブロック３０７では、ユーザが入力デバイス１５からＰＣ１に同期の指示をする。同期の指示を受け取った同期イベント生成部１１１は同期イベントを生成し、操作情報取得部１０１、仮ファイル管理部１０３および同期データ処理部１１３に送る。そしてブロック３０９では、図４のブロック２０５〜２１５と同じ手順で操作コンテキスト格納部５９に保存された操作コンテキストがＰＣ２に送信される。
【００６５】
つぎに、操作コンテキストを受け取ったＰＣ２で、ＰＣ１の操作状態を再現する手順を図９のフローチャートで説明する。以後の手順は、ＰＣ２の同期システム１００が実行する。ブロック３５１ではＰＣ２が操作コンテキストを受信すると、図５のブロック２５１と同様の手順を実行して、同期データ処理部１１３はユーザ・インターフェース部１０５、仮ファイル管理部１０３およびファイル切替部１０９に仮ファイルの識別子を通知し受信した操作コンテキストを操作コンテキスト格納部５９に保存する。ブロック３５３でユーザ・インターフェース部１０５は、ＬＣＤ２１に操作コンテキストを受け取ったことおよび同期の対象となるアプリケーションの名称を示す画面表示してユーザに通知する。
【００６６】
ブロック３５５では、受信した操作コンテキストの仮ファイルに関連するアプリケーションが現在同一の識別子を備えるファイルをメイン・メモリ１３にロードして実行しているか否かをフィルタ・ドライバ１０７に問い合わせる。実行している仮ファイルについてはブロック３５７に移行して処理する。実行していない仮ファイルについてはブロック３６１に移行して処理する。ブロック３５７では、操作コンテキストに含まれる仮ファイルと同一の識別子を備える題名Ａのファイルがアプリケーション５１によりメイン・メモリ１３にロードされていることを同期データ処理部１１３はユーザ・インターフェース１０５に通知する。
【００６７】
通知を受け取ったユーザ・インターフェース１０５は、現在修正している題名Ａのファイルよりも実データが新しい仮題名Ａ（６０５）の仮ファイルが同期対象データとして到着しているため、修正中の題名Ａのファイルを一旦閉じて再度題名ＡのファイルをロードするようにＬＣＤ２１に表示する。このとき、ユーザは閉じる前に修正中の題名Ａのファイルをユーザ・ファイル格納部６１に保存しても保存しなくてもよい。ユーザは、ブロック３５９で修正中の題名Ａのファイルを閉じてブロック３６１に移行する。
【００６８】
ブロック３６１では、ユーザがアプリケーション５１を実行してメイン・メモリ１３に当初からＰＣ２のユーザ・ファイル格納部６１に保存されていた題名Ａ（６０１）のファイルまたはブロック３５９でアプリケーション５１を終了する前に保存された題名Ａ（＊＊）のファイルのロードを行う。ファイル・システム５８とアプリケーション５１との間の通信を監視しているフィルタ・ドライバ１０７から、同期データ処理部１１３から受け取った識別子のファイルをアプリケーション５１がロードしようとしていることの通知を受け取ったファイル切替部１０９は、ユーザ・ファイル格納部６１に保存されていた題名Ａ（６０１）または題名Ａ（＊＊）のファイルに代えて、操作コンテキスト格納部５９に保存された同一識別子の仮題名Ａ（６０５）の仮ファイルと操作情報からなる操作コンテキストを、フィルタ・ドライバ１０７を経由してアプリケーション５１に渡す。
【００６９】
操作コンテキストは、メイン・メモリ１３に形成されたアプリケーション５１の作業領域にロードされる。アプリケーション５１は、ユーザ・ファイル格納部６１に保存した題名Ａのファイルにアクセスしたのであるが、実際にはＰＣ１で作成された操作コンテキストの仮ファイルを開くことになる。そして、アプリケーション５１は、題名ＡのファイルにＰＣ１における同期のタイミングで取得された実データと操作状態を設定する。その結果、ＰＣ１で同期イベントが生成されるタイミングにおいてアプリケーション５１で作成されていた実データが、ＰＣ２で題名Ａ（６０５）のファイルとしてメイン・メモリ１３にロードされ、さらにカーソルの位置および作成中のページもＰＣ１と同じになるようにＰＣ２のＬＣＤ２１に表示される。
【００７０】
ブロック３６３では、ユーザが題名Ａ（６０５）というファイルの修正を開始して題名Ａ（６０７）のファイルを作成すると、仮ファイル管理部１０３は仮題名Ａ（６０６）という仮ファイルを作成して操作コンテキスト格納部５９に保存する。仮ファイル管理部１０３は仮ファイルを定期的に更新する。仮ファイル管理部１０３は、仮題名Ａ（６０６）の仮ファイルを作成したときに、ＰＣ１から転送された操作コンテキストを操作コンテキスト格納部５９から削除することができる。ユーザはＰＣ２で修正作業が終了すると、題名Ａ（６０７）のファイルをＰＣ２のユーザ・ファイル格納部６１に保存する。このとき題名Ａ（６０７）のファイルは、当初からＰＣ２のユーザ・ファイル格納部６１に保存されていた題名Ａ（６０１）のファイルまたは途中まで更新された題名Ａ（＊＊）のファイルに上書きされる。
【００７１】
ブロック３６５では、ユーザがユーザ・ファイル格納部６１に保存された題名Ａ（６０７）のファイルをＰＣ１に転送するため同期操作を行う。ブロック３６７では図５のブロック２６１〜２６７の手順に基づいて同期データ処理部１１３が同期対象データをＰＣ１に送信する。以後の手順は、ＰＣ１の同期システム１００で実行される。ブロック３６９ではＰＣ１の同期データ処理部１１３は、同期対象データのうち操作コンテキストがあれば操作コンテキスト格納部５９に保存し、ＰＣ２で保存されていた題名Ａ（６０７）のファイルがあればユーザ・ファイル格納部６１に保存する。同期データ処理部１１３は、保存する前にユーザ・ファイル格納部６１に同一名称の題名Ａのファイルがあることを検出すると、ユーザ・インターフェース１０５に通知する。
【００７２】
ユーザ・インターフェース１０５は更新された題名Ａ（６０７）のファイルで題名Ａ（６０１）のファイルを上書きしてよいか否かを問い合わせる画面をＬＣＤ２１に表示する。ユーザが上書きに同意すると、題名Ａ（６０１）のファイルは題名Ａ（６０７）のファイルに置き換わる。同期データ処理部１１３は、操作コンテキスト格納部５９を検索して、題名Ａ（６０７）のファイルと同一の識別子を備える仮題名Ａ（６０５）の仮ファイルが存在することを確認すると関連する操作情報も含めてそれを削除する。
【００７３】
図５のブロック２５５では、操作コンテキストを受信したときにアプリケーション５１は実行されていないことを前提にして説明したが、アプリケーション５１が実行されている間にＰＣ２が操作コンテキストを受信したときは、図９のブロック３５５〜３５９の手順に従って、ユーザに一旦アプリケーション５１を終了して再実行するように通知することができる。
【００７４】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００７５】
１０…コンピュータ
１００…同期システム
１５０…操作コンテキストのデータ構造体
【図１】
2011107853.tif 000003
【図２】
2011107853.tif 000004
【図３】
2011107853.tif 000005
【図４】
2011107853.tif 000006
【図５】
2011107853.tif 000007
【図６】
2011107853.tif 000008
【図７】
2011107853.tif 000009
【図８】
2011107853.tif 000010
【図９】
2011107853.tif 000011
【図１０】
2011107853.tif 000012