図1はパーソナルコンピュータ1、3および移行管理サーバ2を含むシステムの全体的な構成の例を示す図、図2はパーソナルコンピュータ1、3のハードウェア構成の例を示す図、図3はパーソナルコンピュータ1、3のプラットフォームの構成の例を示す図、図4は移行管理サーバ2のハードウェア構成の例を示す図である。
図1に示すように、パーソナルコンピュータ1、移行管理サーバ2、およびパーソナルコンピュータ3は、通信回線4を介して互いに接続されている。
移行管理サーバ2は、一方のパーソナルコンピュータに記憶されているアプリケーションを、他方のパーソナルコンピュータへ移行するための処理を行う。
アプリケーションとして、ワープロソフト、表計算ソフト、描画ソフト、プレゼンテーション用のソフトウェア、動画像の再生用のソフトウェア、メーラ、およびウェブブラウザなど、様々なソフトウェアが例示される。
また、移行管理サーバ2は、これらのアプリケーションで再現することができる文書、図表、イラスト、スライド、動画像、電子メール、またはウェブページなど様々な種類のコンテンツのファイルをも、一方のパーソナルコンピュータから他方のパーソナルコンピュータへ移行することができる。
さらに、移行管理サーバ2は、一方のパーソナルコンピュータに設定されている環境を他方のパーソナルコンピュータに移行することができる。
以下、アプリケーション、コンテンツのファイル、および環境を、パーソナルコンピュータ1からパーソナルコンピュータ3へ移行する場合を例に、説明する。
一般に、1つのアプリケーションは、1つの実行ファイルのみで成り立っていることもあれば、複数のファイルによって成り立っていることもある。後者の場合は、アプリケーションは、実行ファイル、Dynamic Link Library(DLL)ファイル、環境ファイル、およびヘルプファイルなど、様々な種類のファイルによって成り立っている。以下、アプリケーションを形成するこれらのファイルを「構成ファイル」と総称する。一方、コンテンツのファイルを「コンテンツファイル」と総称する。
例えば、「SAMPLE1.pdf」のように「pdf」の拡張子の付いたファイル名を有するファイルは、アドビシステムズ社のAdobe Reader(商標)のコンテンツファイルである。また、「SAMPLE2.htm」のように「htm」の拡張子の付いたファイル名を有するファイルは、ウェブブラウザのコンテンツファイルである。
パーソナルコンピュータ1は、図2に示すように、Central Processing Unit(CPU)10a、Random Access Memory(RAM)10b、Read Only Memory(ROM)10c、ハードディスク10d、Network Interface Card(NIC)10e、グラフィックカード10f、液晶ディスプレイ10g、キーボード10h、ポインティングデバイス10i、およびDigital Versatile Disc(DVD)−ROMドライブ10jのほか種々のハードウェアを有する。
NIC10eは、移行管理サーバ2などの他の装置と通信回線4を介して通信を行うための装置である。
グラフィックカード10fは、CPU10aからの指令に基づいて描画を行い、液晶ディスプレイ10gへ映像(動画像)の信号を出力する。
液晶ディスプレイ10gには、グラフィックカード10fからの信号に基づいて、様々な画面を表示する。
ハードディスク10dには、Operating System(OS)のほか、上述の種々のアプリケーションおよび移行管理ツール5TCがインストールされている。
移行管理ツール5TCは、2台のパーソナルコンピュータの間で移行管理サーバ2を介してアプリケーションなどの移行を行うためのソフトウェアであって、図3に示すような移行元処理部1Aおよび移行先処理部1Bの機能を実現するためのソフトウェアである。移行管理ツール5TCの詳細については、後述する。そのほか、コンテンツファイルも、ハードディスク10dに記憶されている。
ハードディスク10dにインストールされているプログラムは、適宜、RAM10bにロードされ、CPU10aによって実行される。
DVD−ROMドライブ10jは、DVD−ROMおよびCompact Disc(CD)−ROMなどの記録媒体からデータを読み取る。
パーソナルコンピュータ3のハードウェア構成も、パーソナルコンピュータ1のハードウェア構成と基本的に同じである。また、ハードディスクには、パーソナルコンピュータ1と同様に、移行管理ツール5TCがインストールされている。
なお、移行管理ツール5TCをパーソナルコンピュータ1およびパーソナルコンピュータ3にインストールするタイミングについては、後述する。
移行管理サーバ2は、図4に示すように、CPU20a、RAM20b、ROM20c、ハードディスク20d、NIC20e、グラフィックカード20f、DVD−ROMドライブ20g、およびUniversal Serial Bus(USB)インタフェース20hのほか種々のハードウェアを有する。また、移行管理サーバ2には、ディスプレイ2D、キーボード2K、およびマウス2Mが繋がれている。
NIC20eは、パーソナルコンピュータ1、3など他の装置と通信を行うための装置である。
ハードディスク20dには、OSのほか、移行管理ツール5TSがインストールされている。
移行管理ツール5TSは、2台のパーソナルコンピュータの間でのアプリケーションの移行などを中継するためのソフトウェアである。移行管理ツール5TSの詳細については、後述する。
ハードディスク20dにインストールされているプログラムは、適宜、RAM20bにロードされ、CPU20aによって実行される。
グラフィックカード20fは、CPU20aからの指令に基づいて描画を行い、ディスプレイ2Dへ映像(動画像)の信号を出力する。
USBインタフェース20hは、USB機器と通信するために用いられるが、本実施形態では特に、ユーザがキーボード2Kまたはマウス2Mに対して入力した情報を取得するために用いられる。
DVD−ROMドライブ20gは、DVD−ROMおよびCD−ROMなどの記録媒体からデータを読み取る。
図5は移行元処理部1Aの構成の例を示す図、図6は移行先処理部1Bの構成の例を示す図、図7は移行管理サーバ2の機能的構成の例を示す図である。
次に、パーソナルコンピュータ1、3の移行管理ツール5TCおよび移行管理サーバ2の移行管理ツール5TSについて、詳細に説明する。
上述の通り。移行管理ツール5TCは、移行元処理部1Aおよび移行先処理部1Bの機能を実現する。
移行元処理部1Aは、アプリケーションなどの移行元のパーソナルコンピュータを制御するための処理を行う。一方、移行先処理部1Bは、移行先のパーソナルコンピュータを制御するための処理を行う。したがって、本例では、移行元処理部1Aはパーソナルコンピュータ1において用いられ、移行先処理部1Bはパーソナルコンピュータ3において用いられる。
移行元処理部1Aは、図5に示すように、アプリケーション環境特定通知部101、使用履歴記録通知部102、データ一覧取得通知部103、ファイル転送制御部104、およびユーザ通知制御部105などを有する。
一方、移行先処理部1Bは、図6に示すように、ファイル保存制御部301、未転送アプリケーション登録部302、オンデマンド転送処理部303、未転送ファイル登録部304、実ファイル置換部305などを有する。
移行管理ツール5TSによると、図7に示すような移行制御部211、データ一覧取得部212、使用頻度算出部213、転送順序決定部214、転送制御部215、通知制御部216、通知条件判定部217、未転送アプリケーション登録制御部221、未転送ファイル登録制御部222、使用履歴データベース231、アプリケーション等一覧データベース232、アプリケーションファイル関連付データベース233、アプリケーション環境データベース234、転送済データベース235、使用頻度データベース236、および転送順序表データベース237などの機能が実現される。
以下、図5に示す移行元処理部1Aの各部、図6に示す移行先処理部1Bの各部、および図7に示す移行管理サーバ2の各部を順次説明する。
〔移行の作業の開始前の処理〕
図8はアプリケーション環境データ7Aの例を示す図、図9は使用履歴データ7Bの例を示す図である。
ユーザは、予めパーソナルコンピュータ1に移行管理ツール5TCをインストールしておく。パーソナルコンピュータ1を購入しまたはリカバリした後、すぐにインストールすることが望ましいが、パーソナルコンピュータ1の使用を開始してから相当の月日が経ってからであってもよい。
移行管理ツール5TCは、いわゆる常駐プログラムであって、OSとともに起動し、パーソナルコンピュータ1がシャットダウンしまたは再起動するまで有効に機能する。
パーソナルコンピュータ1のアプリケーション環境特定通知部101は、アプリケーションごとに、必要なファイルおよび設定情報(いわゆるレジストリ情報)を特定する。
アプリケーションに必要なファイルとして、上述の通り、実行ファイル、DLLファイル、環境ファイル、およびヘルプファイルなどの構成ファイルが挙げられる。そこで、アプリケーション環境特定通知部101は、これらの構成ファイルを特定する。アプリケーション環境特定通知部101は、さらに、そのアプリケーションを使用してユーザが作成したコンテンツのコンテンツファイルをも、特定する。
必要なファイルおよびレジストリ情報の特定は、アプリケーションの起動時およびアプリケーションの使用中にアプリケーションからのアクセス先を監視するなどして、行うことができる。例えば、アプリケーションがリード(Read)しまたはライト(Write)したファイルおよびレジストリ情報を監視することによって、行うことができる。
なお、単にアクセスされるかどうかを監視するだけでは、アプリケーション自体の構成ファイルであるのかコンテンツファイルであるのかの区別は付かない。しかし、コンテンツファイルも含むアプリケーション環境をできるだけそのまま転送することが目的なので、ここでは、ファイルの種類の区別を付ける必要は、ない。
そのほか、アプリケーションの構成ファイルおよびレジストリ情報がどれであるかは、そのアプリケーションのインストーラまたはアンインストーラから求めてもよい。
また、ユーザが作成したコンテンツのコンテンツファイルの特定は、アプリケーションの使用中に新規に作成するようにそのアプリケーションからOSに対して要求されたコンテンツファイルを監視することによって、行うことができる。
または、作成者が誰であるのかに関わらず、所定の拡張子を有するファイルをすべて、ユーザが作成したコンテンツのコンテンツファイルとみなしてもよい。または、ユーザが作成したコンテンツのコンテンツファイルでなくても、パーソナルコンピュータ1のアプリケーションによって更新されたコンテンツファイルを、ユーザが作成したものとみなしてもよい。
アプリケーション環境特定通知部101は、アプリケーションごとにアプリケーション環境データ7Aを1つずつ生成する。1つのアプリケーションのアプリケーション環境データ7Aには、図8のように、そのアプリケーションについて特定したファイルおよびレジストリ情報ごとのレコードが含まれる。レコードは、複数のカラムを有する。以下、図8に示す各レコードのカラムを左から順に「第一のカラム」、「第二のカラム」、…と記載する。または、カラム名によってカラムを指す場合も、ある。他の図に示す各レコードの各カラムについても、同様である。
ファイルのレコードにおいて、第一のカラムには、そのファイルが用いられるアプリケーションの識別情報(例えば、そのアプリケーションの名前)が示される。第二のカラムには、そのファイルの保存場所(例えば、パス)が示される。
一方、レジストリ情報のレコードにおいて、第一のカラムには、そのレジストリ情報アプリケーションの識別情報およびそのレジストリ情報の保存場所(例えば、レジストリ内の位置および名前)が示される。
さらに、各レコードには、「ユーザ作成」というカラム名のカラムが含まれる。ユーザが作成したコンテンツのコンテンツファイルのレコードの「ユーザ作成」にのみ「Yes」が示され、それ以外のレコードのユーザ作成」には「No」が示される。
そして、アプリケーション環境特定通知部101は、アプリケーション環境データ7Aを移行管理サーバ2へ送信する。これにより、パーソナルコンピュータ1で使用されるアプリケーションの環境に関する情報が移行管理サーバ2へ通知される。
アプリケーション環境データ7Aは、移行管理サーバ2において、アプリケーション環境データベース234に記憶される。
使用履歴記録通知部102は、アプリケーションおよびコンテンツファイルの使用を監視し、使用の履歴を示す使用履歴データ7Bを生成する。
使用履歴データ7Bには、図9に示すように、複数のレコードが含まれている。使用履歴記録通知部102は、アプリケーションが起動しまたはアプリケーションによってコンテンツファイルがリードされるごとに、レコードを1つずつ生成する。
アプリケーションが起動した場合は、使用履歴記録通知部102は、そのアプリケーションの名称が第一のカラムに示されかつ起動の日時が第二のカラムに示されるレコードを生成する。
一方、コンテンツファイルがリードされた場合は、使用履歴記録通知部102は、そのコンテンツファイルのパスが第一のカラムに示されかつリードされた日時が第二のカラムに示されるレコードを生成する。
なお、起動の日時の代わりにアプリケーションが閉じられた日時(終了の日時)が第二のカラムに示されるようにしてもよい。コンテンツファイルも同様に、コンテンツファイルが閉じられた日時が第二のカラムに示されるようにしてもよい。また、コンテンツファイルがライトされた場合にも、そのコンテンツファイルのパスが第一のカラムに示されかつライトされた日時が第二のカラムに示されるレコードが生成され、使用履歴データ7Bに追加されるようにしてもよい。
そして、使用履歴記録通知部102は、使用履歴データ7Bを移行管理サーバ2へ送信する。これにより、パーソナルコンピュータ1におけるアプリケーションおよびコンテンツファイルの使用履歴が移行管理サーバ2へ通知される。
使用履歴データ7Bは、移行管理サーバ2において、使用履歴データベース231に記憶される。
なお、アプリケーション環境データ7Aおよび使用履歴データ7Bを移行管理サーバ2へ送信するタイミングは、予め次のように決めておくことができる。
例えば、アプリケーション環境特定通知部101は、移行の処理の開始の直前までアプリケーション環境データ7Aを移行管理サーバ2へ送信せずに記憶しておき、移行の処理の開始時にアプリケーション環境データ7Aを送信してもよい。使用履歴データ7Bについても、同様である。
または、アプリケーション環境特定通知部101は、アプリケーション環境データ7Aを、生成したら直ちに送信してもよい。そして、アプリケーション環境データ7Aに追加すべきレコードを生成するごとに、そのレコードを移行管理サーバ2へ送信してもよい。アプリケーション環境データベース234は、アプリケーション環境データ7Aを記憶した後、レコードが送信されてくるごとに、そのレコードをアプリケーション環境データ7Aに追加すればよい。使用履歴データ7Bについても、同様である。
〔移行の作業時の処理〕
図10はアプリケーション等一覧データ7Cの例を示す図、図11はアプリケーション関連付けデータ7Dの例を示す図、図12は使用頻度データ7Eの例を示す図、図13および図14は転送順決定処理の流れの例を説明するフローチャート、図15はアプリケーション順序表6Aの例を示す図、図16はコンテンツファイル順序表6Bの例を示す図、図17はファイル転送順序表60の例を示す図、図18は転送結果データ7Fの例を示す図、図19はフォルダ移行進捗更新処理の流れの例を説明するためのフローチャートである。
ユーザは、パーソナルコンピュータ3を新たに入手し、パーソナルコンピュータ1の代わりにパーソナルコンピュータ3を使用することに決める。
ユーザは、パーソナルコンピュータ3を入手したら、パーソナルコンピュータ3を通信回線4に繋ぐとともに、移行管理ツール5TCをパーソナルコンピュータ3にインストールする。そして、移行管理ツール5TCを実行させる。
さらに、ユーザは、パーソナルコンピュータ1の移行管理ツール5TCに対して、移行の処理の開始のコマンドを入力する。この際に、移行先であるパーソナルコンピュータ3を指定する。
すると、コマンドがパーソナルコンピュータ1から移行管理サーバ2へ送信される。この際に、指定されたパーソナルコンピュータ3が移行管理サーバ2に対して通知される。これにより、移行管理サーバ2は、パーソナルコンピュータ1のファイルをパーソナルコンピュータ3へ移行する処理を開始すべきであると、認識する。
移行管理サーバ2において、移行制御部211は、データ一覧取得部212、使用頻度算出部213、転送順序決定部214、および転送制御部215を次のように制御することによって、アプリケーションなどの移行の処理を実行する。
移行制御部211は、アプリケーション、ファイル、およびフォルダの一覧(以下、「アプリケーション等一覧」と記載する。)と、アプリケーションとファイルの種類との関連付けの情報(以下、「アプリケーション関連付け情報」と記載する。)を取得するようにデータ一覧取得部212に対して要求する。
すると、データ一覧取得部212は、アプリケーション等一覧およびアプリケーション関連付け情報を送信するように、パーソナルコンピュータ1に対して要求する。
パーソナルコンピュータ1において、データ一覧取得部212からの要求が受け付けられると、データ一覧取得通知部103は、パーソナルコンピュータ1にインストールされているアプリケーションおよび記憶されているファイルおよびフォルダを、OSのツールなどを用いて検索する。
例えば、データ一覧取得部212は、アプリケーションを、コントロールパネルの「プログラムの登録と削除」のツールによって検索することができる。または、スタートメニューの「プログラム」のカラムの中からショートカットを検索することによって、アプリケーションを検索することもできる。なお、「プログラム」のカラムには、さらに、ディレクトリ構造の箇所が含まれていることが、ある。この場合は、ディレクトリ(フォルダ)の中の、アプリケーションのメインプログラムに対応するショートカットを検索すればよい。
また、ファイルおよびフォルダは、「エクスプローラ」のツールによって検索することができる。
そして、データ一覧取得通知部103は、図10のような、検索したアプリケーションの名前、ファイルのパス、およびフォルダのパスを示すアプリケーション等一覧データ7Cを生成し、移行管理サーバ2へ送信する。
さらに、データ一覧取得通知部103は、ファイルの各種類がどのアプリケーションに関連付けられているのかを、OSに問い合わせるなどして、チェックする。なお、ファイルの種類は、拡張子によって表される。
そして、データ一覧取得通知部103は、図11のような、ファイルの種類ごとに、拡張子が第二のカラムに示されかつ関連するアプリケーションの名前が第一のカラムに示されるアプリケーション関連付けデータ7Dを生成し、移行管理サーバ2へ送信する。
移行管理サーバ2において、データ一覧取得部212は、アプリケーション関連付けデータ7Dを取得すると、このアプリケーション関連付けデータ7Dをアプリケーションファイル関連付データベース233に記憶させる。
また、データ一覧取得部212は、パーソナルコンピュータ1からアプリケーション等一覧データ7Cを取得(受信)すると、このアプリケーション等一覧データ7Cをアプリケーション等一覧データベース232に記憶させる。ただし、データ一覧取得部212は、アプリケーション環境データ7Aの「ユーザ作成」カラムの値が「No」のファイルのレコードを、アプリケーション等一覧データ7Cから削除しておく。
なお、前に述べたように、アプリケーション環境データ7Aおよび使用履歴データ7Bも、移行の処理の開始のコマンドが入力された後で、パーソナルコンピュータ1から移行管理サーバ2へ送信されるようにしてもよい。この場合は、データ一覧取得部212がこれらのデータを取得し各データベースに記憶させる処理を行えばよい。
さらに、移行制御部211は、各アプリケーションおよび各コンテンツファイルの使用の頻度を算出するように使用頻度算出部213に対して要求する。
すると、使用頻度算出部213は、アプリケーション等一覧データ7Cに示されるアプリケーション、コンテンツファイル、およびフォルダのそれぞれが使用された頻度(以下、「使用頻度」と記載する。)を次のように算出する。
使用頻度算出部213は、使用履歴データベース231に記憶されている使用履歴データ7B(図9参照)の中から、アプリケーション等一覧データ7Cに示される任意の1つのアプリケーションのレコードをすべて抽出する。そして、(1)式に基づいて、現在の日時と抽出した各レコードに示される使用日時との差の逆数の合計に係数cを掛けた値を、そのアプリケーションの使用頻度として算出する。
使用頻度算出部213は、アプリケーション等一覧データ7Cに示される残りのアプリケーションの使用頻度も同様に、(1)式に基づいて算出する。アプリケーション等一覧データ7Cに示される各コンテンツファイルの使用頻度も同様に、算出することができる。なお、リードによる使用だけでなくライトによる使用も使用履歴データ7Bに示される場合は、(2)式に基づいて、両者の逆数を別々に合計し、両合計値に別々の係数を掛け、その合計をそのコンテンツファイルの使用頻度として算出してもよい。
また、使用頻度算出部213は、フォルダの使用頻度として、そのフォルダの配下にあるすべてのコンテンツファイルの使用頻度のうちの最高値を選出する。ルートから遠いフォルダから順に使用頻度を求めたほうが、効率的であり、好ましい。なお、「フォルダの配下にあるコンテンツファイル」には、そのフォルダの直下にあるコンテンツファイルだけでなく、そのフォルダの配下のいずれかのサブフォルダにあるコンテンツファイルも、該当する。
そして、使用頻度算出部213は、図12のような、アプリケーション、コンテンツファイル、およびフォルダそれぞれの使用頻度を示す使用頻度データ7Eを生成し、使用頻度データベース236に記憶させる。
さらに、移行制御部211は、各ファイルをパーソナルコンピュータ1からパーソナルコンピュータ3へ転送する順序(以下、「ファイル転送順序」と記載する。)を決定するように転送順序決定部214に対して要求する。
すると、転送順序決定部214は、ファイル転送順序表60を、図13および図14のフローチャートに示す手順で生成する。
転送順序決定部214は、まず、使用頻度データベース236に記憶されている使用頻度データ7Eに基づいて、使用頻度の高い順にアプリケーションの名前を並べることによって、アプリケーションの転送の順序を示すアプリケーション順序表6Aを生成する(図13の#701)。
アプリケーション順序表6Aには、図15のように、アプリケーションごとの名前および追加済フラグが、使用頻度の高い順に示されている。すべての追加済フラグの初期値は「0」である。追加済フラグの使い方は、後述する。
使用頻度が同じであるアプリケーションが複数ある場合は、転送順序決定部214は、関連するコンテンツファイルが多い方の順位を上にする。あるアプリケーションに関連するコンテンツファイルの個数は、次のようにして求めることができる。そのアプリケーションに関連付けられているコンテンツファイルの種類の拡張子を、アプリケーションファイル関連付データベース233に記憶されているアプリケーション関連付けデータ7Dから検索する。そして、アプリケーション等一覧データベース232に記憶されているアプリケーション等一覧データ7Cに示されるコンテンツファイルのうちの検索した種類の拡張子を有するコンテンツファイルの個数を計数する。それでも順序が付けられない場合、サイズの小さいアプリケーションほど順位を上にすればよい。
転送順序決定部214は、アプリケーション順序表6Aの生成と並行してまたは前後して、使用頻度データベース236に記憶されている使用頻度データ7Eに基づいて、使用頻度の高い順にコンテンツファイルを並べることによって、コンテンツファイルの転送の順序を示すコンテンツファイル順序表6Bを生成する(#702)。
コンテンツファイル順序表6Bには、図16のように、コンテンツファイルごとのパスおよび追加済フラグが、示されている。使用頻度の高い順に示されている。アプリケーション順序表6Aの場合と同様、すべての追加済フラグの初期値は「0」である。
なお、コンテンツファイルが順序付けの対象であり、構成ファイルは、順序付けの対象外である。あるファイルがコンテンツファイルであるか否かは、そのファイルの拡張子がアプリケーション関連付けデータ7Dに示されるか否かをチェックすることによって、判別することができる。
ただし、使用頻度が同じであるコンテンツファイルが複数ある場合は、サイズが小さいものほど順位を高くすればよい。
転送順序決定部214は、ファイル転送順序表60を用意する(#703)。ファイル転送順序表60には、図17のように、転送する順番にアプリケーションの名前またはファイルのパスが示される。ただし、この時点では、いずれのアプリケーションの名前もファイルのパスも、示されていない。
転送順序決定部214は、アプリケーション順序表6Aおよびコンテンツファイル順序表6Bのほか、ユーザによる指定などに基づいて、ファイル転送順序表60にアプリケーションの名前およびファイルのパスを書き込んでいく。
ユーザが特定のアプリケーションを予め指定している場合は(#704でYes)、転送順序決定部214は、この特定のアプリケーションの名前をファイル転送順序表60に書き込む(#705)。そして、アプリケーション順序表6Aの中の、この特定のアプリケーションの追加フラグを「1」に更新する(#706)。
ユーザが特定のフォルダを予め指定している場合は(#707)、転送順序決定部214は、この特定のフォルダの配下にあるコンテンツファイルのパスを、ファイル転送順序表60の最下位に追加する(#708)。そして、コンテンツファイル順序表6Bの中の、パスを追記した各コンテンツファイルの追加フラグを「1」に更新する(#709)。
転送順序決定部214は、追加フラグが未だ「0」であるコンテンツファイルのパスを、ファイル転送順序表60の最下位に追加する(#710)。ただし、そのようなコンテンツファイルが複数ある場合は、コンテンツファイル順序表6Bにおける順位に従って追加する。そして、パスを追記した各コンテンツファイルの追加フラグを「1」に更新する(#711)。
転送順序決定部214は、追加フラグが「0」であるアプリケーションのうち、現在、最上位であるアプリケーションを、アプリケーション順序表6Aの中から検索する(図14の#712)。見つかったら(#713でYes)、アプリケーション関連付けデータ7Dを参照し、ファイル転送順序表60の中から、検索したアプリケーションに関連付けられている1番目のコンテンツファイルを検索する(#714)。見つかったら(#715でYes)、検索したアプリケーションの名前を、ファイル転送順序表60の中の、検索したコンテンツファイルの直前に追加し(#716)、検索したアプリケーションの追加フラグを「1」に更新する(#718)。見つからなかったら(#715でNo)、検索したアプリケーションの名前をファイル転送順序表60の最下位に追加し(#717)、検索したアプリケーションの追加フラグを「1」に更新する(#718)。
また、ステップ#716でファイル転送順序表60に追加したアプリケーションよりもアプリケーション順序表6Aにおける順位が高い他のアプリケーションが、ファイル転送順序表60の、追加位置より下位にある場合は(#719、#720でYes)、転送順序決定部214は、ファイル転送順序表60における当該他のアプリケーションの順位を、当該検索したアプリケーションの直前に変更する(#721)。
ステップ#712に戻って、転送順序決定部214は、追加フラグが「0」であるアプリケーションがなくなるまでステップ#714〜#721の処理を適宜、実行する。このようにして、ファイル転送順序表60が生成される。
図5〜図7に戻って、移行制御部211は、ファイル転送順序表60が生成されたら、ファイルなどの転送を開始するように転送制御部215に対して要求する。
すると、転送制御部215は、ファイルの転送のための処理を、次のような手順で行う。
転送制御部215は、アプリケーション等一覧データベース232に記憶されているアプリケーション等一覧データ7C(図10参照)をコピーし各レコードに「転送済」カラムを設けることによって、図18のような転送結果データ7Fを生成する。そして、転送結果データ7Fを転送済データベース235に記憶させる。各レコードの「転送済」カラムの初期値は、すべて「第0段階」である。第0段階は、転送が開始していないことを、意味する。
転送制御部215は、次に、転送順序表データベース237に記憶されているファイル転送順序表60の中の各レコードを、順位の高いものから順に選出する。そして、選出したレコードのアプリケーションまたはコンテンツファイルをパーソナルコンピュータ3へ送信するように、パーソナルコンピュータ1に対して要求する。また、パーソナルコンピュータ1からファイルを受信し保存するように、パーソナルコンピュータ3に対して要求する。この際に、転送制御部215は、抽出したレコードに示されるアプリケーションの名前またはコンテンツファイルのパスをパーソナルコンピュータ1、3それぞれに通知する。
パーソナルコンピュータ1には、転送の要求とともに、移行管理サーバ2から次々にアプリケーションの名前またはコンテンツファイルのパスが通知されてくる。
ファイル転送制御部104は、通知されてきた順に、次のようにパーソナルコンピュータ3への転送の処理を行う。
アプリケーションの名前が通知されてきた場合は、ファイル転送制御部104は、そのアプリケーションの構成ファイルおよびレジストリ情報をハードディスク10dから読み出し、パーソナルコンピュータ3へ送信する。アプリケーションの構成ファイルおよびレジストリ情報のメンバは、アプリケーション環境データ7Aを参照すれば、分かる。
なお、アプリケーション環境データ7Aにコンテンツファイルが示される場合があるが、コンテンツファイルは別のタイミングで送信することができるので、ここではコンテンツファイルを送信しなくてもよい。また、キャッシュファイルおよびテンポラリファイルも、送信しなくてもよい。
一方、コンテンツファイルのパスが通知されてきた場合は、ファイル転送制御部104は、そのコンテンツファイルをハードディスク10dから読み出し、パーソナルコンピュータ3へ送信する。
なお、ファイル転送制御部104は、構成ファイルを送信する場合もコンテンツファイルを送信する場合も、パーソナルコンピュータ1におけるパスをパーソナルコンピュータ3へ通知する。ただし、レジストリ情報については、レジストリにおける保存場所を通知する。
パーソナルコンピュータ3において、ファイル保存制御部301は、パーソナルコンピュータ1からのファイル(構成ファイルまたはコンテンツファイル)を受信すると、通知されたパスに従ってファイルをハードディスクに保存する。また、レジストリ情報を受信すると、通知された保存場所に従ってレジストリにそのレジストリ情報を書き込む。
そして、ファイル保存制御部301は、転送が完了した対象物(アプリケーションまたはコンテンツファイル)をパーソナルコンピュータ1へ報告する。
なお、ファイル保存制御部301は、通知されたパスのファイルが既にパーソナルコンピュータ3のハードディスクに保存されている場合は、原則として、パーソナルコンピュータ1から送信されてきたファイルを保存することなく破棄する。パーソナルコンピュータ3の環境を壊さないようにするためである。レジストリ情報についても、同様である。ただし、転送が完了したものとみなして、報告は実行される。
通知制御部216は、転送結果をパーソナルコンピュータ1へ通知するための処理を、次のように行う。
通知制御部216は、パーソナルコンピュータ3からの報告に基づいて転送結果データ7Fを更新するように、通知条件判定部217に対して要求する。
通知条件判定部217は、1つのアプリケーションの構成ファイルのおよびレジストリ情報の転送が完了するごとに、転送済データベース235に記憶されている転送結果データ7Fの中の、そのアプリケーションのレコードの「転送済」カラムの値を「済」に更新する。
同様に、1つのコンテンツファイルの転送が完了するごとに、通知条件判定部217は、転送済データベース235に記憶されている転送結果データ7Fの中の、そのコンテンツファイルのレコードの「転送済」カラムの値を「済」に更新する。
また、通知条件判定部217は、転送結果データ7Fの中のフォルダのレコードの「転送済」カラムの値を、図19に示すような手順で更新する。
パーソナルコンピュータ1からパーソナルコンピュータ3へ転送されたファイルがコンテンツファイルでない場合は(図19の#731でNo)、通知条件判定部217は、「転送済」カラムのいずれも更新しない。
転送されたファイルがコンテンツファイルである場合は(#731でYes)、通知条件判定部217は、そのファイルが格納されているフォルダつまり親フォルダを検索し(#732)、検索した親フォルダの配下にある他のすべてのコンテンツファイルの転送が済んでいるか否かを、転送結果データ7Fに基づいてチェックする(#733)。
すべての転送が済んでいる場合は(#734でYes)、通知条件判定部217は、検索した親フォルダの「転送済」カラムを「済」に更新する(#735)。
一方、当該他のコンテンツファイルのうちのいずれか1つでも転送が完了していない場合は(#734でNo)、通知条件判定部217は、当該他のコンテンツファイルのうちの、使用頻度が所定の値以上であるコンテンツファイルに限定して、転送が済んでいるか否かをチェックする(#736)。なお、使用頻度は、使用頻度データ7Eを参照すれば、分かる。
当該他のコンテンツファイルのうちの使用頻度が所定の値以上であるコンテンツファイルのすべての転送が済んでいる場合は(#737でYes)、通知条件判定部217は、検索した親フォルダの「転送済」カラムを「第1段階」に更新する(#738)。そうでない場合は、「転送済」カラムを更新しない。
図5〜図7に戻って、移行管理サーバ2の通知制御部216は、転送結果データ7Fの中のいずれかのレコードの「転送済」カラムの値が更新されたら、そのレコードに係るアプリケーションまたはコンテンツファイルと更新後の値とを、パーソナルコンピュータ1へ通知する。
パーソナルコンピュータ1のユーザ通知制御部105は、通知制御部216からの報告の内容を、表示し、音声で出力し、または電子メールで送信するなどして、ユーザに対して通知する。
〔ユーザインタフェース画面の先行移行およびオンデマンド転送〕
アプリケーションおよびコンテンツファイルよりも前に、パーソナルコンピュータ1のユーザインタフェースをパーソナルコンピュータ3へ移行してもよい。特に、スタートメニューおよびデスクトップの構成を移行しておくのが、望ましい。そして、ユーザがスタートメニューまたはデスクトップから選択したショートカットに対応するアプリケーションまたはコンテンツファイルが優先的に移行されるようにしてもよい。
移行管理サーバ2において、未転送アプリケーション登録制御部221は、パーソナルコンピュータ1のスタートメニューおよびデスクトップそれぞれの構成を示すユーザインタフェース構成データ7Gをパーソナルコンピュータ1から取得する。そして、パーソナルコンピュータ3へユーザインタフェース構成データ7Gを転送する。
パーソナルコンピュータ3において、未転送アプリケーション登録部302は、ユーザインタフェース構成データ7Gに基づいて、自らのスタートメニューおよびデスクトップに、パーソナルコンピュータ1に備わっているアプリケーションなどのショートカットを追加する。
ただし、追加したショートカットのリンク先(参照先)をオンデマンド転送処理部303の実行ファイルにする。そして、オンデマンド転送処理部303の実行ファイルを呼び出す際のパラメータとして、そのショートカットがアプリケーションに対応する場合はそのアプリケーションの名前または実行ファイルのパスが、用いられる。一方、コンテンツファイルに対応する場合は、そのコンテンツファイルのパスが、用いられる。
通知制御部216は、転送結果データ7F(図18参照)の中の、パーソナルコンピュータ3のスタートメニューまたはデスクトップにショートカットが追加されたアプリケーションおよびコンテンツファイルそれぞれの「転送済」カラムの値を「オンデマンド転送待ち」に更新する。
未転送ファイル登録制御部222は、アプリケーション等一覧データ7C(図10参照)に基づいて、パーソナルコンピュータ1のすべてのフォルダおよびファイルのディレクトリ構造を示すディレクトリ構造データ7Hを生成する。そして、ディレクトリ構造データ7Hをパーソナルコンピュータ3へ送信する。
パーソナルコンピュータ3の未転送ファイル登録部304は、ディレクトリ構造データ7Hを受信すると、パーソナルコンピュータ1のフォルダおよびファイルすべてのショートカットを生成しハードディスク10dに記憶させる。ショートカット同士の関係は、ディレクトリ構造データ7Hに示されるディレクトリ構造の関係を引き継ぐ。
各ショートカットのリンク先(参照先)は、オンデマンド転送処理部303の実行ファイルである。そして、オンデマンド転送処理部303の実行ファイルを呼び出す際のパラメータとして、そのショートカットに対応するフォルダまたはファイルのパスが用いられる。
そして、通知制御部216は、転送結果データ7Fの中の、フォルダおよびファイルそれぞれの「転送済」カラムの値を、「オンデマンド転送待ち」に更新する。
その後、パーソナルコンピュータ1とパーソナルコンピュータ3との間で移行の処理が進むと、ショートカットに対応するコンテンツファイルがパーソナルコンピュータ3に転送される。実ファイル置換部305は、ショートカットに対応するコンテンツファイルがパーソナルコンピュータ3のハードディスクに保存されたら、このショートカットをこのコンテンツファイルに置き換える。
また、ショートカットに対応するフォルダの配下のすべてのコンテンツファイルが転送されてきたら、実ファイル置換部305は、このフォルダのショートカットのアイコンを、普通のフォルダのアイコンに置き換える。
そして、パーソナルコンピュータ3には、スタートメニューおよびデスクトップが表示される。スタートメニューおよびデスクトップには、ショートカットが配置されている。また、ディレクトリ構造を示すフォルダのショートカットも、表示される。
ユーザがショートカットをクリックするなどして指定した場合は、パーソナルコンピュータ3において、オンデマンド転送処理部303の実行ファイルが起動する。
オンデマンド転送処理部303は、指定されたショートカットがアプリケーションに対応する場合は、パーソナルコンピュータ1に対してそのアプリケーションを要求する。なお、要求は、転送制御部215を介してパーソナルコンピュータ1へ行われるようにしてもよい。
すると、パーソナルコンピュータ1のファイル転送制御部104は、そのアプリケーションの構成ファイルを、他のアプリケーションよりも優先的にパーソナルコンピュータ3へ転送する。
または、指定されたショートカットがファイルに対応する場合は、パーソナルコンピュータ1に対してそのファイルを要求する。なお、要求は、転送制御部215を介してパーソナルコンピュータ1へ行われるようにしてもよい。
すると、パーソナルコンピュータ1のファイル転送制御部104は、そのファイルを他のファイルよりも優先的にパーソナルコンピュータ3へ転送する。なお、転送制御部215を介す場合は、そのファイルの拡張子に関連付けられたアプリケーションを、アプリケーションファイル関連付データベース233で検索し、そのアプリケーションが未転送の場合は、そのアプリケーションの構成ファイルを、他のアプリケーションよりも優先的にパーソナルコンピュータ3へ転送するのが望ましい。
〔移行の処理中にユーザがパーソナルコンピュータ1を使用する場合〕
移行の処理が開始された後は、ユーザはパーソナルコンピュータ3を使用するのが望ましい。しかし、移行がある程度進むまでは、パーソナルコンピュータ3よりもパーソナルコンピュータ1を使用するほうが便利である。
よって、移行の処理中にユーザがパーソナルコンピュータ1を使用することが、あり得る。しかし、そうすると、パーソナルコンピュータ1において、既にパーソナルコンピュータ3へ移行されたファイルが更新されたり、新たなコンテンツファイルが生成されたりすることが、ある。
そこで、パーソナルコンピュータ1の各部およびパーソナルコンピュータ3の各部は、次のように処理を行う。
転送済のファイルが更新された場合は、ファイル転送制御部104は、このファイルを再度、パーソナルコンピュータ3へ送信する。この際に、ファイル転送制御部104は、このファイルのパスおよびこのファイルが更新されたものであることをパーソナルコンピュータ3へ通知する。
すると、パーソナルコンピュータ3のファイル保存制御部301は、例外的に、このファイルと同じパスの古いファイルを削除し、新たに受信したファイルを保存する。
または、新たにファイルが生成された場合は、ファイル転送制御部104は、このファイルを、パーソナルコンピュータ3へ送信する。この際に、ファイル転送制御部104は、このファイルのパスをパーソナルコンピュータ3へ通知する。
すると、パーソナルコンピュータ3のファイル保存制御部301は、通知されたパスに従ってこのファイルを保存する。
なお、ファイルが更新された場合も新たに生成された場合も、このファイルの更新または生成に用いられたアプリケーションが閉じられた後で、このファイルを送信するのが望ましい。
図20はパーソナルコンピュータ1の全体的な処理の流れの例を説明するフローチャート、図21は移行管理サーバ2の全体的な処理の流れの例を説明するフローチャート、図22はパーソナルコンピュータ3の全体的な処理の流れの例を説明するフローチャートである。
次に、パーソナルコンピュータ1、移行管理サーバ2、およびパーソナルコンピュータ3の全体的な処理を、図20〜図22に示すフローチャートを参照しながら説明する。
パーソナルコンピュータ1は、移行の処理の開始のコマンドが入力されるまでの間、適宜、アプリケーション環境データ7Aおよび使用履歴データ7Bを生成し移行管理サーバ2へ送信する(図20の#601)。移行管理サーバ2は、それを受信し、所定のデータベースによって記憶する(図21の#621)。
パーソナルコンピュータ1は、移行の処理の開始のコマンドが入力されると(#602でYes)、移行管理サーバ2に対してそれを通知する(#603)。
すると、移行管理サーバ2は、パーソナルコンピュータ1に対してアプリケーション等一覧データ7C、アプリケーション関連付けデータ7D、および使用頻度データ7Eを要求し、それらを取得する(#623)。このとき、パーソナルコンピュータ1は、アプリケーション等一覧データ7C、アプリケーション関連付けデータ7D、および使用頻度データ7Eを移行管理サーバ2へ送信する(#604)。
移行管理サーバ2は、スタートメニューおよびデスクトップの移行を、アプリケーションなどの移行よりも先行して行う(#624)。この際に、移行管理サーバ2は、ユーザインタフェース構成データ7Gを生成しパーソナルコンピュータ3へ送信する。
パーソナルコンピュータ3は、移行管理サーバ2からのユーザインタフェース構成データ7Gを受信すると、それに基づいて、自らのスタートメニューまたはデスクトップに、パーソナルコンピュータ1に備わっているアプリケーションなどのショートカットを登録する(図22の#641)。
移行管理サーバ2は、アプリケーションおよびコンテンツファイルの転送の順番を決定する(#625)。決定の手順は、前に図13および図14で説明した通りである。
そして、移行管理サーバ2は、決定した順番に、アプリケーションおよびコンテンツファイルの転送の指令をパーソナルコンピュータ1、3に対して行う(#626)。
パーソナルコンピュータ1は、転送するように移行管理サーバ2から指令されたアプリケーションまたはコンテンツファイルを、パーソナルコンピュータ3へ転送する(#606)。指令は次々に送られてくるので、パーソナルコンピュータ1は、順次、アプリケーションまたはコンテンツファイルを、パーソナルコンピュータ3へ転送する。
パーソナルコンピュータ3は、パーソナルコンピュータ1から送信されてくるアプリケーションおよびコンテンツファイルをハードディスクに保存する(#643)。そして、移行管理サーバ2に対して報告を行う(#644)。
移行管理サーバ2は、報告を受信するごとに(#627)、転送が完了したアプリケーションまたはコンテンツファイルの「転送済」カラム(図18参照)の値を「済」に更新する(#628)。さらに、フォルダの「転送済」カラムの値を更新する処理を行う(#629)。この処理の手順は、前に図19で説明した通りである。そして、移行の進捗をユーザに対して通知する(#630)。
パーソナルコンピュータ3は、ユーザがパーソナルコンピュータ3においてショートカットを選択した場合は(#645でYes)、そのショートカットに対応するアプリケーションまたはコンテンツファイルをパーソナルコンピュータ1に対して要求する。
すると(#607でYes)、パーソナルコンピュータ1は、要求されたアプリケーションまたはコンテンツファイルを優先的にパーソナルコンピュータ3へ転送する(#608)。
また、パーソナルコンピュータ1は、ユーザが送信済のファイルを更新しまたは新たなファイルを生成した場合は(#609でYes)、更新されまたは生成されたファイルをパーソナルコンピュータ3へ転送する(#610)。パーソナルコンピュータ3は、更新されまたは生成されたファイルをハードディスクに保存する。
移行の対象であるアプリケーションおよびコンテンツファイルのすべての転送が完了するまで、上述の処理が適宜、実行される。
本実施形態によると、使用の頻度の高いアプリケーションおよびコンテンツファイルを優先的にパーソナルコンピュータ1からパーソナルコンピュータ3へ移行する。よって、パーソナルコンピュータ3の使用を従来よりも早く開始することができる。
また、アプリケーションおよびコンテンツファイルのショートカットを先行してパーソナルコンピュータ3に表示し、ユーザが選択したショートカットに対応するアプリケーションまたはコンテンツファイルを優先的に移行する。よって、パーソナルコンピュータ3の使用をさらに早く開始することができる。
本実施形態では、いずれかの「転送済」カラムの値が変わるごとに、進捗の通知をユーザに対して行ったが、他のタイミングで行ってもよい。例えば、ユーザが予め指定したアプリケーションまたはコンテンツファイルの転送が完了したときに、通知を行ってもよい。または、特定のフォルダの「転送済」カラムの値が「第1段階」になったときに、通知を行ってもよい。
移行を開始した後、移行管理サーバ2は、パーソナルコンピュータ1およびパーソナルコンピュータ3のいずれを使用すべきかをユーザに対して通知してもよい。例えば、移行の処理中、ユーザがパーソナルコンピュータ1で使用しているアプリケーションがパーソナルコンピュータ3へ転送されたら、パーソナルコンピュータ3を使ったほうがよい旨を通知してもよい。
既にパーソナルコンピュータ3に転送されたアプリケーションをユーザがパーソナルコンピュータ1で使用しようとした場合も同様に、パーソナルコンピュータ3を使ったほうがよい旨を通知してもよい。または、パーソナルコンピュータ1でそのアプリケーションを使用し続けるのか再考すべき旨のメッセージを提示してもよい。パーソナルコンピュータ3での使用が可能になった旨を通知し、パーソナルコンピュータ1、3のどちらを使用するのかをユーザに選ばせてもよい。この際に、パーソナルコンピュータ3に保存されているそのアプリケーションのショートカットをパーソナルコンピュータ1に設けるなどして、パーソナルコンピュータ1から遠隔的にそのアプリケーションをパーソナルコンピュータ3で起動できるようにしてもよい。
転送済のアプリケーションをパーソナルコンピュータ3で使用することを促進するために、転送後はアプリケーションをパーソナルコンピュータ1から速やかに削除し、その代わりにそのアプリケーションのショートカットをパーソナルコンピュータ1に設けてもよい。
また、ユーザがショートカットを使用して、未転送のアプリケーションをパーソナルコンピュータ3で起動しようした場合は、転送が完了するまでの間はパーソナルコンピュータ1において一時的にそのアプリを使用するように促してもよい。この際に、アプリケーションのサイズおよび転送速度に基づいて、そのアプリケーションの転送の所要時間を算出し、ユーザに提示してもよい。
なお、ユーザに対する上述の通知および提示は、ダイアログボックスを用いて行ってもよいし、いわゆるバルーンヒントを用いて行ってもよい。または、音声を出力することによって行ってもよい。
図23は優先度の変更の方法を説明するための図である。使用頻度を、次のように算出してもよい。一般的に、特定のアプリケーションまたはコンテンツファイルが、特定の時期(例えば、年末、年度末、月末、または週末など)に特に使用されることが、ある。
そこで、ユーザは、このようなアプリケーションおよびコンテンツファイルを予めチェックし、移行管理サーバ2に登録しておく。または、使用履歴データ7Bに基づいて移行管理サーバ2に判断させてもよい。例えば、あるコンテンツファイルの使用日時が図23(A)に示す通りである場合は、移行管理サーバ2は、隣り合う使用日同士の間隔を算出することにより(図23(B)参照)、このコンテンツファイルがほぼ1週間の間隔であると、特定できる(図23(C)参照)。
移行のタイミングが特定の時期に含まれる場合は、移行管理サーバ2は、この特定の時期に使用されるコンテンツファイルの転送の優先度を高くする。例えば、移行管理サーバ2は、このコンテンツファイルの使用頻度(図12参照)に、(3)式の重み付け値Wを加算することによって、優先度を高くする。
ただし、βは、正の係数である。ABS(x)は、xの絶対値である。「次の使用日時」は、使用履歴に表れる使用の間隔に基づいて推測することができる。
パーソナルコンピュータ1からパーソナルコンピュータ3へのアプリケーション等の転送の速度(単位時間当たりの量)を、適宜調整してもよい。例えば、ユーザがパーソナルコンピュータ1、3を使用していない間は、速度を速くし、使用している間は遅くしてもよい。または、ユーザが速度を指定できるようにしてもよい。または、転送する時間帯をユーザが指定できるようにしてもよい。
使用頻度が所定の値以下であるアプリケーションおよびコンテンツファイルについては、パーソナルコンピュータ3のスタートメニューまたはデスクトップへのショートカットの移行のみに留めておいてもよい。そして、ショートカットが選択されたときに転送を行えばよい。
本実施形態では、使用頻度の算出およびファイル転送順序表60の生成を移行管理サーバ2が行ったが、パーソナルコンピュータ1が行い、パーソナルコンピュータ1とパーソナルコンピュータ3とをピアトゥピア接続してアプリケーション等を移行できるようにしてもよい。
アプリケーション等の移行の完了後は、パーソナルコンピュータ3において、移行先処理部1Bが無効になり、今度は、移行元処理部1Aが有効になる。そして、次の移行のための準備の処理を行う。
本実施形態では、パーソナルコンピュータ同士で移行を行う場合を例に説明したが、サーバ機同士、Personal Digital Assistant(PDA)同士、スマートフォン同士、または携帯電話端末同士など、他の種類のコンピュータ同士で移行を行う場合にも、本発明を適用することができる。
その他、パーソナルコンピュータ1、移行管理サーバ2、パーソナルコンピュータ3の全体または各部の構成、処理内容、処理順序、データの構成などは、本発明の趣旨に沿って適宜変更することができる。