(57)【要約】      （修正有）【課題】サーバ装置が破損した場合に、クライアントに残存している情報資源を収集して簡便にサーバ装置の情報資源を復元する。【解決手段】クライアントが利用する情報資源及びその世代をサーバ装置が管理するプログラムであって、サーバ装置が、サーバ装置の現在の破損回数を特定し、情報資源をサーバ装置に保存する場合、情報資源に対応付けて、現在の破損回数、世代、及び破損前世代情報を保存するとともに、情報資源及び、情報資源に対応する破損回数、世代、及び破損前世代情報を、クライアントに提供する。クライアントに提供された世代、破損回数、及び破損前世代情報は、サーバ装置が破損から回復するために少なくとも利用されるものであり、破損前世代情報は、情報資源の更新の基礎とされた元情報資源であって、情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む。【選択図】図５
2014048750.tif 000002
【特許請求の範囲】
【請求項１】
クライアントが利用する情報資源及び前記情報資源の世代をサーバ装置が管理するプログラムであって、
前記サーバ装置が、
前記サーバ装置の現在の破損回数を特定し、
前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存し、
前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する、
処理を前記サーバ装置に実行させるプログラムであって、
前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、
前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、
プログラム。
【請求項２】
前記サーバ装置が破損から回復する際に、前記クライアントに存在する前記情報資源に対応する前記世代と、前記破損回数と、前記破損前世代情報とを含む情報に所定の第１の規則を適用した結果に従って、前記クライアントに存在する前記情報資源を収集する、
処理を更に前記サーバ装置に実行させる、請求項１記載のプログラム。
【請求項３】
前記破損前世代情報は、第１の情報資源を元に更新された第２の情報資源を前記サーバ装置に保存する場合、前記第２の情報資源に対応する第２の破損前世代情報は、前記第１の情報資源に対応する第１の破損前世代情報を含み、かつ、前記第１の情報資源に対応づけられた前記破損回数が、前記現在の破損回数よりも小さい場合、前記第２の情報資源の破損前世代情報は、前記第１の情報資源に対応する破損回数及び前記第１の情報資源の世代のペアを更に含むように生成される、
請求項２に記載のプログラム。
【請求項４】
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されているか否かと、
前記世代、前記破損回数、及び前記破損前世代情報に関して、前記クライアントに存在する前記情報資源と、前記サーバ装置に保存されている前記情報資源とを対比した結果と、
に基づいて、前記クライアントに存在する前記情報資源を、
そのまま前記サーバ装置に保存するか、または、
前記サーバ装置に格納されている前記情報資源とマージして前記サーバ装置に保存するか、
のいずれかを決定する、規則を含む、請求項２又は３に記載のプログラム。
【請求項５】
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数より大きく、
前記クライアントに存在する前記情報資源の持つ破損回数が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は大きく、かつ、
前記クライアントに存在する前記情報資源の持つ破損前世代情報が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損前世代情報を含む場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、請求項２ないし４のうちいずれか１項に記載のプログラム。
【請求項６】
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は小さく、
前記クライアントに存在する前記情報資源の持つ特定の世代が、前記サーバ装置に存在せず、かつ、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第２の規則を満たす場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、請求項２ないし５のうちいずれか１項に記載のプログラム。
【請求項７】
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の後の世代の破損前世代情報のうち最新のものと、前記クライアントに存在する前記情報資源の持つ破損回数及び世代のペアが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、請求項６に記載のプログラム。
【請求項８】
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記後の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、請求項６又は７に記載のプログラム。
【請求項９】
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数と、前記後の世代の破損回数とが一致し、かつ、
前記前の世代の破損前世代情報と、前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、請求項６ないし８のうちいずれか１項に記載のプログラム。
【請求項１０】
前記クライアントに存在する前記情報資源が更新されている場合であって、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第３の規則を満たす場合、
前記保存する処理は、前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存する、
処理を有する、請求項２記載のプログラム。
【請求項１１】
クライアントが利用する情報資源及び前記情報資源の世代をサーバ装置が管理する方法であって、
前記サーバ装置が、
前記サーバ装置の現在の破損回数を特定する工程と、
前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存する工程と、
前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する工程と、
を有する方法であって、
前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、
前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、
方法。
【請求項１２】
クライアントが利用する情報資源及び前記情報資源の世代を管理するサーバ装置であって、
前記サーバ装置の現在の破損回数を特定する破損回数特定部と、
前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存する情報保存部と、
前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する保存情報提供部と、
を有するサーバ装置であって、
前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、
前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、
サーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報資源を管理するプログラム、方法、及び装置に関する。
【背景技術】
【０００２】
近年のネットワークシステムやクラインアントサーバシステム等に係る技術の進展により、サーバ装置が、情報資源を世代とともに集中管理する技術が盛んに利用されている。例えば複数のクライアントによって更新された複数の情報資源を、その世代と共にサーバ装置によって統一的に管理することができる。世代によって管理される情報資源としては、例えばコンピュータプログラム開発におけるソースプログラムや、種々のドキュメントなどが挙げられる。なお、本発明の対象とする情報資源は、これらに限定されるものではない。
【０００３】
サーバ装置が情報資源を集中的に管理するシステムにおいては、サーバ装置の破損（ソフトウエア障害、ハードウエア障害）により、サーバ装置の管理する情報資源が消失する場合がある。コンピュータを用いたシステムにおいては、情報資源の喪失に対する対策が講じられる。この場合、消失した情報資源をどのように復元するかが課題となる。これに対する典型的な対策としては、データのバックアップ、ハードウエア資源の冗長化等がある。
【０００４】
しかしながら、従来の上記のような対策を講じても、データのバックアップ、及び冗長化されたハードウエアの全てが消失してしまう状況が発生することも皆無ではない。このような状況においては、クライアントに情報資源が残存していれば、その情報資源を収集し、破損したサーバ装置において消失した情報資源を復元する処理が行われることがある。
【０００５】
しかしながら、クライアントの持つ情報資源は、様々な世代の情報資源が存在する。しかも、世代が同じであっても、どの世代を元に修正された情報資源なのかは、完全に把握することは、非常に困難であった。たとえば、同じ世代であっても、サーバ装置が破損した回数（例えば、破損・リストアを何回経験した情報資源なのかなどの履歴）が異なっている場合がある。したがって、単純にクライアントから収集した情報資源をサーバ装置に世代順に格納したとしても、各世代の情報資源の履歴等（例えば、サーバ装置の破損回数等）に関しては一貫性を完全に担保することができない場合がある。このため、クライアントから情報資源を収集する復元処理においては、機械的な復元処理には限界がある。したがって、多くの場合オペレータが関与し、手作業によって復元処理が行われることが要求されていた。また、復元が一応完了し、運用が再開された後に、クライアントにおいて情報資源が発見された場合、既に手作業の介在した情報資源の復元作業が終了しているため、その発見された情報資源を単純にサーバ装置に格納することができるのか否かを判断することも非常に難しかった。
【０００６】
従来、資産を格納する実資産領域と、その資産に対するセキュリティ情報を格納するセキュリティ情報領域と、その資産の更新順序等の情報を格納する更新順序情報領域とを有する世代管理ライブラリを用いて、資産及びその世代を管理する技術が存在する（例えば、特許文献１参照）。
【０００７】
また、システム障害によって前記データファイルのページが破損したときに、そのページに関する更新履歴情報であって、データファイルに未反映の更新履歴情報を前記すべてのジャーナルファイルから収集する。そして、順序管理手段により管理される時系列的な順序にしたがって復旧していくページ復旧手段を具備し、ページ復旧手段は、更新履歴情報に抜けが発生したときに、その抜けている更新履歴情報以降の更新履歴情報を破棄してデータファイルへの反映を中断する技術が存在する（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−１６４４０号公報
【特許文献２】特開平１０−２２８４０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
一側面において、本発明は、サーバ装置が破損した場合に、クライアントに残存している情報資源を用いて簡便にサーバ装置の情報資源を復元することができる環境を構築することを目的とする。
【課題を解決するための手段】
【００１０】
一実施形態によれば、クライアントが利用する情報資源及び前記情報資源の世代をサーバ装置が管理するプログラムであって、前記サーバ装置が、前記サーバ装置の現在の破損回数を特定し、前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存し、前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する、処理を前記サーバ装置に実行させるプログラムであって、前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、プログラムが提供される。
【発明の効果】
【００１１】
一実施形態によって、サーバ装置が破損した場合に、クライアントに残存している情報資源を用いて簡便にサーバ装置の情報資源を復元することができる環境が構築される。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に従った、ソースプログラムの世代管理の概要を示す図である。
【図２】一実施形態に従った、サーバ装置の破損後においてクライアントの持つソースをマージ後サーバ装置に格納する処理を示す図である。
【図３】一実施形態に従った、サーバ装置の破損後においてクライアントの持つソースをそのままサーバ装置に格納する処理を示す図である。
【図４】クライアントに残存するソースを用いてサーバ装置を復元する概略のフローチャートである。
【図５】クライアントが持つ注目ソースが更新されていない場合の、サーバ装置における処理の詳細を示したフローチャートである。
【図６】クライアントが持つ注目ソースが更新されている場合の、サーバ装置における処理の詳細を示したフローチャートである。
【図７】一実施形態の機能ブロック図である。
【図８】一実施形態のハードウエアの構成例を示す図である。
【図９】一実施形態におけるサーバ装置でのソースの管理を示す図である。
【発明を実施するための形態】
【００１３】
以下に、図面を用いて本発明の実施形態を詳細に説明する。なお、以下の実施形態は、発明を理解するためのものであり、本発明の範囲を限定するためのものではない点に留意すべきである。また、以下の複数の実施形態は、相互に排他的なものではない。したがって、矛盾が生じない限り、異なる実施形態の各要素を組み合わせることも意図されていることに留意すべきである。また、請求項に記載された方法やプログラムに係る発明は、矛盾のない限り処理の順番を入れ替えてもよく、あるいは、複数の処理を同時に実施してもよい。そして、これらの実施形態も、請求項に記載された発明の技術的範囲に包含されることは言うまでもない。
【００１４】
また、コンピュータが読み出したプログラムコードを実行することにより、後述の実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどの他のプログラムが実際の処理の一部または全部を行ない、その処理によって実施形態の機能が実現される場合も、本発明に含まれることは言うまでもない。
【００１５】
本明細書では、コンピュータソフトエアにおけるソースプログラム及びその世代を、サーバ装置において管理する実施形態を主に示す。本明細書においては、ソースプログラムのことを単に「ソース」と呼ぶ場合がある。
【００１６】
なお、本発明は、ソース及びソースの世代を管理する点に限定されるものではない。一般的なドキュメント、設計書、定義体などの、少なくとも世代によって管理される情報資源全般に適用できる点に留意すべきである。したがって、本明細書及び図面に例示された実施形態は、本発明の理解を容易にするためのものであり、本発明を限定するためのものではない。
【実施例】
【００１７】
図９は、一実施形態におけるサーバ装置でのソースの管理を示す図である。クライアント９５０は、ソース９６２を利用している。クライアント９５０は、必要に応じてソース９６２を更新してもよい。クライアント９５０において、ソース９５２に関連する世代等の情報は、プロパティ９５４によって管理されてもよい。クライアント９５０は、必要に応じて、ソース９５２をサーバ装置９１０にアップロードしてもよい。サーバ装置９１０は、アップロードされたソース９５２を、ストレージ９２０の、ソース保存領域９２４に保存してもよい。ソース保存領域９２４に保存されたソースが、クライアント９５０において更新されたものである場合には、サーバ装置９１０は、新しい世代を付して、管理ファイル９２６に保存する。また、付与された世代情報等の管理情報は、クライアント９５０に提供されてもよい。これによって、クライアント９５０が持つ更新されたソース９５２に、サーバ装置の付与した世代が関連付けられ、その世代は、プロパティ９５４に保存されてもよい。
【００１８】
図９において、クライアント９６０は、サーバ装置のソース保存領域９２４に保存されたソースをダウンロードして利用してもよい。ダウンロードされたソース９６２及びソース９６２に関連した世代等の管理情報は、ソース９６２と共にサーバ装置からダウンロードされてもよい。ダウンロードされた世代等の管理情報は、クライアント９６０内において、ソース９６２と結びつけられたプロパティ９６４に格納されてもよい。クライアント９６０は、ソース９６２を更新せずに利用してもよい。或いは、必要に応じてソース９６２を更新してもよい。クライアント９９０において、ソース９９２及びそれに関連するプロパティ９９４が保存され利用されてもよい。
【００１９】
このように、サーバ装置９１０は、各クライアント（９５０、９６０、・・・９９０）が持つソースをストレージ９２０に保存して管理する。そして、各クライアント（９５０、９６０、・・・９９０）の要求に応じて、ソースをクライアントに提供する。また、クライアント（９５０、９６０、・・・９９０）がソースを更新した場合には、サーバ装置が、更新されたソースに新たな世代等の管理情報を付与して、ソース保存領域９２４に保存する。そして、管理ファイル９２６を更新する。また、新たに付与された世代等の管理情報は、サーバ装置９１０からクライアント（９５０、９６０、・・・９９０）に提供され、サーバ装置の持つソースと管理情報は、クライアントが持つソースとそのプロパティと整合するようにしてもよい。
【００２０】
また、サーバ装置９１０及び／又はストレージ９２０が破損し（ハードウエア障害、ソフトウエア障害等）、ソース保存領域９２４及び／又は管理ファイル９２６の情報の一部又は全部が消失した場合には、リストア処理（復元処理）が開始される。通常のリストア処理は、バックアップ９２２から、ソース保存領域９２４及び管理ファイル９２６を復元することによって実行される。バックアップ９２２は、地理的に離れた場所にそのコピーされたバックアップ９２３を保管してもよい。
【００２１】
なお、まれに、バックアップ９２２、及び保管されたコピーのバックアップ９２３の両者の情報が消失してしまうことがある。この場合、バックアップ９２２（コピーのバックアップ９２３）が利用できないため上述のバックアップ・リストア処理は行うことができない。幸いなことに、クライアント（９５０、９６０、・・・９９０）の各々は、ソース（９５２、９６２、・・・９９２）及び、対応するプロパティ（９５４，９６４、・・・９９４）を保持している場合がある。このため、クラアイント（９５０、９６０、・・・９９０）から、必用な情報を収集することで、サーバ装置９１０の管理するソース保存領域９２４及びその管理ファイル９２６が復元できる可能性がある。
【００２２】
以下の各実施形態では、クライアント（９５０、９６０、・・・９９０）から、必用な情報を収集することによって、サーバ装置９１０の管理するソース保存領域９２４及びその管理ファイル９２６が復元される場合に関して説明を行う。
【００２３】
なお、本明細書では、情報資源を更新する際の基礎とされた情報資源を元情報資源と呼ぶ。
【００２４】
図１は、一実施形態に従った、ソースプログラムの世代管理の概要を示す図である。
【００２５】
図１（Ａ）は、ソース及びソースの世代を管理するサーバ装置９１０が破損し、その破損から回復する際の、総破損回数のインクリメントを示すフローである。サーバ装置には、サーバ装置９１０が稼働を開始すると、ある確率で破損し（諸データの消失）、その後回復する（諸データの復元）。図１（Ａ）の処理は、サーバ装置が破損から回復したときに、サーバ装置が現在までの破損回数を「総破損回数」に保存する処理を示している。
【００２６】
ステップ１１２において、サーバ装置が破損から復元した際に、この処理が１回起動される。
【００２７】
ステップ１１４において、サーバ装置が管理する総破損回数がインクリメントされる。
【００２８】
ステップ１１６において、処理が、戻る。
【００２９】
総破損回数は、インクリメントする形で更新されてもよい。なお、総破損回数に関する情報自体も消失してしまう場合が想定される。この場合には、サーバ装置がオペレータに対して、総破損回数の設定処理を促してもよい。なお、オペレータが破損前の総破損回数を知ることができない場合には、総破損回数として、破損前の総破損回数よりも非常に大きい数値を総破損回数として設定してもよい。また、総破損回数の代替として、現在の日付時分秒などの、常に増大する数字を用いてもよい。このように、総破損回数は、例えば破損前の総破損回数よりも大きい数字を用いて、破損前と破損後との時間的な前後の区別ができる情報であればよい。
【００３０】
図１（Ｂ）は、サーバ装置に置かれる世代管理の例を示す図である。例えば、総破損回数１２１が保存されており、その値はＸ１０５である。世代管理テーブル１２０には、サーバ装置に保存されている複数のソースの管理情報が格納されている。例えば、エントリＥ１には、サーバ装置に保存されているソースがサーバ装置に保存されたときのサーバ装置の破損回数１２２としてＸ１０１、世代１２３としてＹ１０１、破損前世代情報１２４として、内容状態１２５に「有」が格納されている。ここで、破損前世代情報１２４の詳細は以下のエントリの更新の説明において後述する。内容状態１２５が「有」であれば、該当エントリのソースがサーバ装置に格納されていることを意味する。内容状態１２５が「空」であれば、該当エントリのソースがサーバ装置に格納されていないことを意味する。
【００３１】
世代管理テーブル１３０は、サーバ装置が新たなソースを格納し、その新たなソースに対応するエントリＥ３を追加した状態を示している。エントリＥ３の破損回数には、総破損回数と同じＸ１０５が保存されている。このように、新たなエントリＥ３が生成される場合、総破損回数には、現在のサーバ装置の総破損回数であるＸ１０５がそのまま格納されてもよい。エントリＥ３の世代は、エントリＥ２の世代であるＹ１０１＋１をインクリメントした値であるＹ１０１＋２が格納される。このように、新たなエントリの世代については、前のエントリの世代をインクリメントして格納してもよい。エントリＥ３の破損前世代情報には、前のエントリであるＥ２の破損前世代情報である（Ｘ１０１：Ｙ１０１）に加えて、エントリＥ３の破損回数Ｘ１０２とその世代Ｙ１０１＋１のペア（Ｘ１０２：Ｙ１０１＋１）が追加されている。破損前世代情報には、直前のエントリの破損前世代情報がそのままコピーされると共に、以下の規則に従って新たな情報が付加される。すなわち、直前のエントリＥ２の破損回数Ｘ１０２と総破損回数Ｘ１０５とが等しくない場合には、エントリＥ２の破損回数Ｘ１０２と世代Ｙ１０１＋１とのペアが追加され、直前のエントリＥ２の破損回数Ｘ１０２と総破損回数Ｘ１０５とが等しい値である場合には、何も追加されない。世代管理テーブル１３０の場合には、Ｘ１０２≠Ｘ１０５であったため、エントリＥ３の内容が（Ｘ１０１：Ｙ１０１，Ｘ１０２：Ｙ１０１＋１）となった。仮にＸ１０２＝Ｘ１０５であった場合には、エントリＥ３の破損前世代情報は、（Ｘ１０１：Ｙ１０１）となる（不図示）。
【００３２】
このように、新たに生成される破損前世代情報には、前の世代の破損前世代情報がそのままコピーされると共に、前の世代のエントリの破損回数と総破損回数が異なる場合には、前の世代のエントリの破損回数と世代のペアが、新たに生成される破損前世代情報に追加される。
【００３３】
なお、上記の説明において、前の世代とは、新に生成される世代Ｅ３の直前のエントリＥ２であることを前提としている。仮にエントリＥ３の更新の元となったソースがエントリＥ１に対応するソースである場合も想定される。この場合には、エントリＥ３のソースがエントリＥ２に含まれる更新内容を反映していない場合がある。このため、エントリＥ３のソースをサーバ装置に格納する際に、エントリＥ２の更新内容を反映するために、エントリＥ２のソースの更新内容をエントリＥ３のソースとマージして、サーバ装置に格納することが望ましい。マージの処理については、更新内容を把握することによって、サーバ装置によって自動的になされてもよい。マージ処理において、マージする内容が競合する場合が発見された場合には、オペレータにマージ処理の指示（及び対処）を促すようにしてもよい。マージの手法については、種々の手法が提案されている。詳細なマージの処理については、本発明の説明を明確化し簡潔にするために、本明細書においては説明を省略している。
【００３４】
図１（Ｃ）は、サーバ装置に更新された新たなソースを格納するための処理のフローチャートを示している。
【００３５】
ステップ１５２において、サーバ装置に、エントリＥ３に対応するソースを保存する。なお、上述のように、マージ処理が必要な場合には、マージ後のソースを格納するのが望ましい。
【００３６】
ステップ１５４において、世代管理テーブルの「エントリＥ２」の上に、以下の内容の「エントリＥ３」を生成するよう、一連の処理を行う。すなわち、
（１）エントリＥ３の破損回数に、総破損回数（Ｘ１０５）を格納する。
（２）エントリＥ３の世代に、エントリＥ２  の世代をインクリメントした値（Ｙ１０１＋２）を格納する。
（３）エントリＥ３の破損前世代情報に、エントリＥ２の破損前世代情報をコピーする。かつ、エントリＥ２の破損回数Ｘ１０２と総破損回数Ｘ１０５が等しくない場合には、このコピーされた破損前世代情報に加えて、エントリＥ２の破損回数Ｘ１０２と世代Ｙ１０１＋１とのペアを格納する。
（４）エントリＥ３の内容状態に「有」を格納する。
【００３７】
ステップ１５６において、クライアントに、破損回数、世代、破損前世代情報を提供することが望ましい。なお、ソースのマージ処理が行われた場合には、マージ後のソースをクライアントに提供することが望ましい。このステップにおいて、サーバ装置とクライアントで、同一のソースに関して、同一の管理情報が保持される。
【００３８】
図２は、一実施形態に従って、サーバ装置の破損後においてクライアントの持つソースをマージ後サーバ装置に格納する処理を示している。
【００３９】
図２（Ａ）は、新たなソースがクライアントで見つかった場合（このソースを以下「注目ソース」という）、クライアントが持つ注目ソースのプロパティとサーバ装置の持つ世代管理テーブルの更新の内容を示している。クライアントの持つ注目ソースのプロパティ２１０には、注目ソースの破損回数２１２としてＸ２、世代２１４としてＹ２、破損前世代情報２１６として（Ｘａ：Ｙｂ）、内容状態２１８として「未更新」又は「更新済」が格納されている。「未更新」とは、クライアントが保持するソースに更新を行っていないことを意味する。「更新済」とは、クライアントが保持するソースが更新されたことを意味する。
【００４０】
世代管理テーブル２５０には、内容状態として「空」が存在するため、注目ソースが「空」のエントリに該当する場合には、そのまま注目ソースのプロパティの情報を「空」のエントリに格納するとともに、注目ソースをサーバ装置に格納すればよい。この場合の例については、図３を用いて後述する。図２（Ａ）においては、注目ソースが、世代管理テーブルの「空」のエントリに対応しないことが分かったため、世代管理テーブルに新なエントリを生成する場合を説明する。なお、世代管理テーブルの「空」のエントリに格納できないことをどのようにチェックするかについては、図５を用いて後述する。
【００４１】
図２（Ａ）の世代管理テーブル２５０に示すように、内容状態には、「有」のエントリが幾つか存在する。このことは、サーバ装置が、既にクライアントから幾つかのソースを収集し、サーバ装置に格納し、世代管理テーブルに、それらのソースの情報を格納していることを示している。この状態において、プロパティ２１０を持つ新たな注目ソースがクライアントにおいて発見された場合を想定する。注目ソースは、最新世代エントリ（２５９）に対応するソースとマージされて、サーバ装置に格納される。そして、マージ後エントリ（２６９）が生成され、エントリ管理テーブル２６０に格納される。最新世代エントリ（２５９）は、破損回数２５２としてＸ１、世代２５４としてＹ１、破損前世代情報２５６として（Ｘ０：Ｙ０）、内容状態として「有」を持っている。この場合、注目ソースを最新世代エントリ（２５９）に対応するソースとマージして、マージ後のソースをサーバ装置に保存する。そして、マージ後のソースに対応するエントリとして、マージ後エントリ（２６９）を新たに生成する。マージ後エントリ（２６９）の内容としては、破損回数２６２として、総破損回数２５１の内容Ｘ３が格納される。世代２６４としては、前の世代である最新世代エントリ（２５９）の世代Ｙ１をインクリメントした値Ｙ１＋１が格納される。破損前世代情報２６６としては、最新世代エントリ（２６９）の破損回数Ｘ１と総破損回数２５１とを比較して、Ｘ１≠Ｘ３であったため、（Ｘ０：Ｙ０）に加えて、最新世代エントリ（２５９）の破損回数Ｘ１と世代Ｙ１のペアが追加され、（Ｘ０：Ｙ０、Ｘ１：Ｙ１）が格納されている。仮にＸ１＝Ｘ３であった場合には、マージ後エントリ（２６９）の破損前世代情報は、（Ｘ０：Ｙ０）のみが格納される（不図示）。そして、内容状態２６８として「有」が格納される。
【００４２】
図２（Ｂ）は、図２（Ａ）の上述の処理のフローチャートを示している。
【００４３】
ステップ２３２において、サーバ装置内の最新世代のソースの内容を、注目ソースとマージしたソースをサーバ装置に保存する。
【００４４】
ステップ２３４において、世代管理テーブルの「最新世代エントリ」の上に以下の内容の「マージ後エントリ」を生成する。
（１）破損回数  ←  総破損回数（Ｘ３）
（２）世代  ←  インクリメント（Ｙ１＋１）
（３）破損前世代情報  ←  最新世代エントリの破損前世代情報、及び最新世代エントリ（２５９）の破損回数Ｘ１と総破損回数Ｘ３が等しくない場合には、これに加えて、最新世代情報エントリの破損回数Ｘ１と世代Ｙ１とのペア
（４）内容状態  ←  「有」
ステップ２３６において、クライアントに、マージしたソース、マージしたソースに対応する破損回数、世代、破損前世代情報を提供することが望ましい。また、クライアントのプロパティの内容状態は、「未更新」に設定されることが望ましい。このステップによって、クライアントとサーバ装置とにおいて、同一のソースに関し、同一の管理情報が保持される。
【００４５】
図３は、一実施形態に従って、サーバ装置の破損後においてクライアントの持つソースをそのままサーバ装置に格納する処理を示している。
【００４６】
図３（Ａ）の世代管理テーブル３５０に示すように、内容状態には、「有」のエントリが幾つか存在する。このことは、サーバ装置が、既にクライアントから幾つかのソースを収集し、サーバ装置に格納し、世代管理テーブルに、それらのソースの情報を格納していることを示している。
【００４７】
図３（Ａ）において、注目ソースプロパティ３１０が示されている。この例では、注目ソースがクライアントにおいて未更新であると仮定する。サーバ装置に存在する世代管理テーブル３５０の内容状態が「空」のエントリの前後のエントリと、注目ソースのプロパティ３１０とが、条件αに合致するか条件判断３３５においてチェックする。条件αを満たせば、注目ソースプロパティは、世代管理テーブル３６０に示すように、内容状態が「空」のエントリに挿入され得る。そして、注目ソースがサーバ装置に保存される。なお、条件αについての詳細は、図５を用いて後述する（条件αは、例えば図５において、ステップ５２０に導かれる条件を意味している。なお、本発明はこれに限定されない。）。また、条件αを満足しない場合には、マージ処理５３０が行われる。マージ処理についての例は、図３において示した通りである。
【００４８】
図３（Ｂ）は、図３（Ａ）の処理のフローチャートを示している。
【００４９】
ステップ３３２において、サーバ装置の管理する世代管理テーブルに、注目ソースの持つ世代と同じ世代の空きエントリがあるか否かを判断する。その判断が「いいえ」であれば、マージ処理５３０を実施する。その判断が「はい」であれば、ステップ３３５に移動する。
【００５０】
ステップ３３５において、サーバ装置に存在する世代管理テーブル３５０の内容状態が「空」のエントリの前後のエントリと、注目ソースのプロパティ３１０とが、条件αに合致するか判断される。判断結果が「いいえ」であれば、マージ処理５３０が実施される。判断結果が「はい」であれば、ステップ３３６に移る。
【００５１】
ステップ３３６において、注目ソースをそのままサーバ装置に保存する。
【００５２】
ステップ３３８において、注目ソースプロパティ３１０を世代管理テーブル３６０の空エントリに挿入する。
【００５３】
図４は、クライアントに残存するソースを用いてサーバ装置を復元する概略のフローチャートを示している。なお、この処理は、一実施形態であり、本発明はこの実施形態に限定されるものではない。
【００５４】
ステップ４０２において、サーバ装置にログイン中の最初のクライアントを注目クライアントとする。このステップにおいて、サーバ装置にログイン中のクライアントのうち処理対象のクライアントを特定する。なお、ログインがなされた順番に、クライアントを処理してもよい。
【００５５】
ステップ４０４において、既にチェック済みのクライアントか否かをチェックする。既にチェック済みのクライアントに対しては、再度チェックをする必要が無い。したがって、サーバ装置は、この処理のために、チェック済みのクライアントを識別する情報を記憶しておいてもよい。判断結果が「はい」であれば、ステップ４１８に移る。
【００５６】
ステップ４１８において、最後のクライアントであるか否かがチェックされる。この判断結果が「はい」であれば、処理は終了する。この判断結果が「いいえ」であれば、ステップ４３０に移る。
【００５７】
ステップ４３０において、次のクライアントを注目クライアントとする。そして、ステップ４０４に戻る。
【００５８】
以上の一連の処理において、サーバ装置にログイン中のクライアントのうち、未処理のクライアントが選択され、処理されてゆく。ステップ４０４における判断が「いいえ」であれば、ステップ４０６に移る。
【００５９】
ステップ４０６において、注目クライアントに存在する最初のソースを取得し、注目ソースとする。この処理によって、まず、処理対象のソースの候補が特定される。
【００６０】
ステップ４０８において、注目ソースは既にチェック済みか否かが判断される。この処理を行うために、サーバ装置は、クライアント毎にチェック済みのソースを記憶しておいてもよい。この判断結果が「はい」であれば、ステップ４１６に移る。
【００６１】
ステップ４１６において、最後のソースであるか否かが判断される。最後のソースであれば、処理はステップ４１８に移る。判断結果が「いいえ」であれば、ステップ４２０に移る。
【００６２】
ステップ４２０において、次のソースを取得し注目ソースとする。そして処理はステップ４０８に戻る。
【００６３】
以上の一連の処理によって、注目クライアントが持つソースが網羅的に処理されることとなる。ステップ４０８において判断が「いいえ」であれば、処理はステップ４１０に移る。
【００６４】
ステップ４１０において、注目ソースが、クライアントにおいて更新済みか否かが判断される。判断結果が「はい」であれば処理はルーチンＢ６００に移行する。
【００６５】
ルーチンＢ６００については、図６を用いて詳述する。ステップ４１０において、判断結果が「いいえ」であれば、ステップ４１２に移る。
【００６６】
ステップ４１２において、注目ソースの世代及び破損回数は既にチェック済みか否かが判断される。その判断結果が「はい」であれば、ステップ４１６にバイパスしてもよい。ここで、バイパスする理由は、既に同じ世代及び同じ破損回数の注目ソースがチェックされている場合には、その注目ソースの情報は、サーバに反映済みで有り、再度チェックする必要がないからである。その判断結果が「いいえ」であれば、ルーチンＡ５００に移る。ルーチンＡ５００については、図５を用いて詳述する。その後ステップ４１４に移る
ステップ４１４において、注目ソースの世代及び破損回数をチェック済みリストに保存する。このリストは、上述のステップ４１２における判断において利用されてもよい。
【００６７】
以上の一連の処理によって、ログイン中の全てのクライアントに存在する全てのソースがチェックされる。
【００６８】
以上の処理は、全てのクライアントに対する全てのソースを網羅的にチェックするための一例である。網羅的にチェックするためのアルゴリズムは、その他にも当業者であれば、種々のものが考えられるため、本発明は、この実施形態に限定されるものではない。
【００６９】
図５は、クライアントが持つ注目ソースが更新されていない場合の、サーバ装置における処理の詳細を示したフローチャート５００である。
【００７０】
このフローチャートに、世代Ｖｃ、破損回数Ｘｃを持つ注目ソース５５０が投入された場合を想定する。図５に示した、例１ないし例１１は、本明細書において以下に示す例１ないし例１１に対応している。
【００７１】
ステップ５０２において、注目ソースの世代Ｖｃと、サーバ装置内の最新世代のソースの世代Ｖｓとが比較される。Ｖｃ≦Ｖｓであれば、ステップ５０８に移る。Ｖｃ＞Ｖｓであれば、ステップ５０４に移る。
【００７２】
ステップ５０４において、注目ソースの破損回数Ｘｃとサーバ装置内の最新世代のソースの破損回数Ｘｓとが比較される。Ｘｃ≧Ｘｓであれば、ステップ５０６に移る。Ｘｃ＜Ｘｓであれば、ステップ５３０に移る。この場合の例３を以下に示す。
【００７３】
ステップ５０６において、破損前世代情報に関し、注目ソースとサーバ装置内の最新世代のソースとを比較する。クライアント破損前世代情報がソースの破損前世代情報を包含しない場合には、ステップ５３０に移る。この場合の例を例２に示す。
【００７４】
ステップ５０６において、クライアント破損前世代情報がソースの破損前世代情報を包含する場合には、ステップ５２０に移る。この場合の例を例１に示す。
【００７５】
ステップ５０８において、サーバ装置の世代管理テーブルに、クライアントの注目ソースの世代Ｖｃの空きエントリがあるか否かがチェックされる。チェック結果が「いいえ」であれば、ステップ５３０に移る。この場合の例を例４に示す。
【００７６】
ステップ５０８において、判断結果が「はい」である場合には、ステップ５１０に移る。
【００７７】
ステップ５１０において、クライアントの注目ソースの破損回数と、世代管理テーブルの空きエントリの前後の世代の破損回数とが比較される。なお、世代管理テーブルの空きエントリの直前又は直後の世代のエントリが明きエントリである場合には、世代管理テーブルのうち、空きでない直近のエントリの内容との比較を行えばよい。空きエントリの前が全て空きエントリである場合には、ステップ５１０の前のエントリに関する判断が満たされたとして、処理してもよい。同様に空きエントリの後のエントリが全て明きである場合には、ステップ５１０の後のエントリに関する判断が満たされたとして処理してもよい。
【００７８】
ステップ５１０の判断において、クライアントの注目ソースの破損回数とサーバ装置内の空きエントリの前の世代の破損回数のみが一致している場合には、ステップ５１２に移る。
【００７９】
ステップ５１０の判断において、クライアントの注目ソースの破損回数とサーバ装置内の明きエントリの後の世代の破損回数のみが一致している場合には、ステップ５１４に移る。
【００８０】
ステップ５１０の判断において、クライアントの注目ソースの破損回数とサーバ装置内の明きエントリの前の世代及び後の世代の破損回数の両者が一致している場合には、ステップ５１６に移る。
【００８１】
ステップ５１０の判断において、クライアントの注目ソースの破損回数とサーバ装置内の明きエントリの前の世代の破損回数が一致せず、かつ、後の世代の破損回数とも一致していない場合には、ステップ５３０に移る。この場合の例を例１１に示す。
【００８２】
ステップ５１２において、世代管理テーブルの空きエントリの後世代の破損前世代情報とクライアントの注目ソースの世代Ｖｃ及び破損回数Ｘｃとが比較される。この比較が一致すれば、ステップ５２０に移る。この場合の例を例９に示す。
【００８３】
ステップ５１２の比較結果が不一致である場合には、ステップ５３０に移る。この場合の例を例１０に示す。
【００８４】
ステップ５１４において、破損前世代情報に関し、クライアントの注目ソースと、空きエントリの後世代とが比較される。その比較結果が一致していれば、ステップ５２０に移る。この場合の例を例７に示す。
【００８５】
ステップ５１４において、比較結果が不一致である場合には、ステップ５３０に移る。この場合の例を例８に示す。
【００８６】
ステップ５１６において、破損前世代情報に関し、クライアントの注目ソースと、空きエントリの前後の世代と比較する。この比較結果が一致した場合には、ステップ５２０に移る。この場合の例を例５に示す。
【００８７】
ステップ５１６において、比較結果が一致しない場合には、ステップ５３０に移る。この場合の例を例６に示す。
【００８８】
なお、ステップ５２０においては、上述のように、注目ソースをそのままサーバ装置に登録する。そして、世代管理テーブルを上述（図３）のように更新する。
【００８９】
ステップ５３０の場合には、注目ソースをサーバ装置の最新世代のソースとマージしてサーバ装置に保存する。そして世代管理テーブルを上述（図２）のように更新する。
【００９０】
図６は、クライアントが持つ注目ソースが更新されている場合の、サーバ装置における処理の詳細を示したフローチャート６００である。フローチャート６００においても、注目ソース５５０が投入された場合の処理を示している。
【００９１】
ステップ６０２において、クライアントの注目ソースの世代Ｖｃ及び破損回数Ｘｃと、サーバ装置内の最新世代のソースの世代Ｖｓ及び破損回数Ｘｓとが比較される。Ｖｃ≧Ｖｓ、かつＸｃ≧Ｘｓである場合には、ステップ６０４に移る。Ｖｃ＜Ｖｓ、又はＸｃ＜Ｘｓである場合には、ステップ６１０に移る。この場合の例を例１４に示す。
【００９２】
ステップ６０４において、破損前世代情報に関し、クライアントの注目ソースと、サーバ装置内の最新世代のソースとが比較される。クライアント破損前世代情報がソースの破損前世代情報を包含しない場合には、ステップ６１０に移る。この場合の例を例１３に示す。
【００９３】
ステップ６０４において、クライアント破損前世代情報がソースの破損前世代情報を包含する場合には、ステップ６０６に移る。
【００９４】
ステップ６０６では、世代管理テーブルが以下のように更新される。すなわち、
破損回数＝総破損回数、
世代数＝注目ソースの世代数＋１、
破損前世代情報＝破損前世代情報、及び注目ソースの（世代Ｖｃ：破損回数Ｘｃ）
そして、ステップ６０６の後、ステップ６０８に移る。この場合の例を例１２に示す。
【００９５】
ステップ６０８では、クライアントの注目ソースがそのままサーバ装置に保存されてもよい。
【００９６】
ステップ６１０では、クライアントのソースをサーバ装置の最新世代のソースとマージして、マージされたソースをサーバ装置に保存し、世代管理テーブルを更新する。
（例１）
表１に示すように、クライアントの注目ソースはサーバ装置に登録されているファイルの後世代にあたるファイルであると判断できる。このため、クライアントの注目ソースをそのままサーバ装置へ保存してもよい。なお、サーバ装置の世代管理テーブルの世代３は、空の状態とすればよい。なお、この表１においては、破損前世代情報にエントリが存在しないが、破損回数が０の場合のエントリが破損前世代である場合には破損前世代情報の内容を空としてもよい。
【００９７】
【表１】
2014048750.tif 000003
（例２）
表２に示すように、クライアントの注目ソースの破損前世代情報は（０：２）であり、世代管理テーブルの最新世代の破損前世代情報（０：１）とは異なる（包含していない）。したがって、クライアントの注目ソースは、サーバ装置の最新世代のソースを更新して作成した後世代のファイルではない。このため、注目ソースをそのままサーバ装置に登録することはできない。したがって、注目ソースとサーバ装置の世代２のソースをマージしたソースを世代３として登録することが望ましい。
【００９８】
【表２】
2014048750.tif 000004
（例３）
表３に示すように、クライアントの注目ソースは、世代３であるが、サーバ装置に登録されている世代２の破損回数が大きいため、サーバ装置に登録されている世代２の内容を反映していないファイルである。このため、そのままサーバ装置に登録することはできない。なぜなら、世代３の内容に世代２の内容が反映されないままとなるからである。したがって、注目ソースを、サーバ装置の世代２のソースとマージしたソースを世代３としてサーバ装置に保存することが望ましい。
【００９９】
【表３】
2014048750.tif 000005
（例４）
クライアントの注目ソースは、世代２であるが、既に世代２には破損回数１のファイルが登録されているため、サーバ装置に登録することができない。このため、クライアントの注目ソースと、サーバ装置の最新世代（世代３）のソースとをマージしたソースを世代４としてサーバ装置に保存することが望ましい。
【０１００】
【表４】
2014048750.tif 000006
（例５）
クライアントの注目ソースはサーバ装置に登録されている前後世代（世代２，４）と破損前世代情報が一致する。このため、矛盾は起きず、クライアントの注目ソースをそのままサーバ装置に保存してもよい。
【０１０１】
【表５】
2014048750.tif 000007
（例６）
クライアントの注目ソースの破損前世代情報とサーバ装置に登録されている世代２及び世代４の破損前世代情報が何れも一致していない。このため、注目ソースはサーバ装置に登録されている世代２の内容を反映していないファイルであると判断でき、加えて、サーバ装置の世代４の内容は、注目ソースを反映していないと判断できる。したがって、注目ソースをサーバ装置にそのまま登録することができない。このため、注目ソースをサーバ装置の最新世代のソースとマージしたソースを、世代５として、サーバ装置に保存することが望ましい。
【０１０２】
【表６】
2014048750.tif 000008
（例７）
クライアントの注目ソースの破損回数、破損前世代情報がサーバ装置に登録されている後世代（世代４）の破損回数、破損前世代情報と一致している。これにより、現在空いている世代３にはもともとクライアントの注目ソースが入っていたと判断できる。このため、クライアントの注目ソースをサーバ装置にそのまま登録してもよい。
【０１０３】
【表７】
2014048750.tif 000009
（例８）
クライアントの注目ソースの破損前世代情報がサーバ装置に登録されている後世代（世代４）の破損前世代情報と異なっている。このため、世代４はクライアントの注目ソースを編集して作成されたものではないと判断できる。したがって、クライアントの注目ソースをサーバ装置にそのまま登録すると矛盾が生じる。このため、クライアントの注目ソースを、サーバ装置の最新世代のソースとマージしたものを世代５としてサーバ装置に保存することが望ましい。
【０１０４】
【表８】
2014048750.tif 000010
（例９）
クライアントの注目ソースの破損回数と世代とが、サーバ装置に登録されている後世代（世代４）の破損前世代情報と一致している。このことは、サーバ装置に保存されている世代４のソースは、クライアントの注目ソースを編集して作成されたものであると判断できる。このため、注目ソースをサーバ装置の空のエントリにそのまま登録してもよい。また、クライアントの注目ソースプロパティを、サーバ装置の世代管理テーブルの空きエントリに格納してもよい。
【０１０５】
【表９】
2014048750.tif 000011
（例１０）
クライアントの注目ソースの破損回数と世代とが、サーバ装置に登録されている後世代（世代４）の破損前世代情報が一致しない。世代管理テーブルの世代３には、本来、破損回数：１、世代：３、破損前世代情報（０：２）となるようなデータが登録されるはずである。このまま、注目ソースをサーバ装置に登録すると矛盾が生じてしまう。このため、注目ソースと、サーバ装置の最新世代のソースとをマージしたソースを世代５としてサーバ装置に保存することが望ましい。
【０１０６】
【表１０】
2014048750.tif 000012
（例１１）
クライアントの注目ソースとサーバ装置に登録されている空きエントリの前後世代（世代２，４）の破損回数が一致していない。世代管理テーブルの世代３には、破損回数：０、世代：３、破損前世代情報：空、となるようなエントリが登録されるはずである。
しがって、クライアントの注目ソースを登録すると矛盾が生じてしまう。このため、クライアントの注目ソースと、サーバ装置の最新世代のソースとをマージして、マージされたソースを世代５としてサーバ装置に保存することが望ましい。
【０１０７】
【表１１】
2014048750.tif 000013
（例１２）
この場合、クライアントの注目ソースはサーバ装置の最新世代のソースを編集して作成されたものであるので、マージを行う必要はない。クライアントで更新されているため、注目ソースをサーバ装置に保存する際には、破損回数と破損前情報を次のように変更してサーバ装置に反映する。
【０１０８】
破損回数＝総破損回数、
世代数＝注目ソースの世代数＋１、
破損前世代情報＝破損前世代情報、及び注目ソースの（世代Ｖｃ：破損回数Ｘｃ）
【０１０９】
【表１２】
2014048750.tif 000014
（例１３）
クライアントの注目ソース破損前世代情報と、サーバ装置の最新世代のソースの破損前世代情報とが異なっているため、クライアントの注目ソースは、サーバ装置の最新世代のソースを編集して作成されたものではない。よってサーバ装置にそのまま登録することはできず、クライアントの注目ソースをサーバ装置の最新世代のソースとマージしたソースを世代５としてサーバ装置に保存することが望ましい。
【０１１０】
【表１３】
2014048750.tif 000015
（例１４）
サーバ装置の最新世代は、クライアントの注目ソースより大きく、このまま注目ソースをサーバ装置に保存するとサーバ装置の最新世代のソースの変更を破棄してしまうことになる。このため、クライアントの注目ソースと、サーバ装置の最新世代のソースとをマージしたマージ後のソースを世代５としてサーバ装置に登録することが望ましい。
【０１１１】
【表１４】
2014048750.tif 000016
図７は、一実施形態の機能ブロック図を示している。
【０１１２】
サーバ装置７００は、破損回数特定部７０２、情報保存部７０４、保存情報提供部７０６、情報収集部７０８を有し、少なくとも第１の規則、第２の規則、第３の規則７１０を利用する。また、サーバ装置７００は、記憶部７３０を利用する。記憶部７３０には、少なくとも、世代管理テーブル７３２、及び複数のソース７３４が保存される。記憶部は、サーバ装置の一部であってもよい。
【０１１３】
また、１つ以上のクライアント７５０が存在し、クライアント７５０には、少なくともソース７５４及びそのソースに関連するプロパティ７５２が保存されている。
【０１１４】
破損回数特定部７０２は、サーバ装置が過去から現在に至るまでの破損回数を特定する。情報保存部７０４は、ソースをサーバ装置に保存する場合、ソースに対応付けて、破損回数、世代、及び破損前世代情報をサーバ装置に保存する。
【０１１５】
保存情報提供部７０６は、ソース及び、ソースに対応する、破損回数、世代、及び破損前世代情報を、クライアントに提供する。
【０１１６】
情報収集部７０８は、サーバ装置が破損から回復する際に、クライアントに存在するソースに対応する世代と、破損回数と、破損前世代情報とを含む情報に所定の第１の規則７１０を適用した結果に従って、クライアントに存在するソースを収集する。
【０１１７】
また、第１の規則は、図４におけるステップ４１０，図５及び図６の各ステップの判断規則を含んでもよい。
【０１１８】
また、第２の規則は、図５におけるステップ５１０、５１２、５１４、５１６の判断規則を含んでもよい。
【０１１９】
加えて、第３の規則は、図６のステップ６０２、６１４の判断規則を含んでもよい。
【０１２０】
なお、以上の第１の規則、第２の規則、及び第３の規則は、上記の例示に限定されるものではない。
【０１２１】
サーバ装置は、世代管理テーブル７３２を用いてソース７３４を管理する。また、クライアントは、ソースのプロパティ７５２を用いてソース７５４を管理する。
【０１２２】
図８は、一実施形態のハードウエアの構成例を示す図である。ハードウエアは、プロセッサ８０２、メモリ８０４、表示制御部８０６、表示装置８０８、入出力装置８１０、通信制御部８１２、ドライブ装置８１４、ハードディスク８１８が含まれる。そして、それぞれの機器は、バス８２０によって接続されている。また、ドライブ装置８１４は、可搬記録媒体８１６を読み書きすることができる。そして通信制御部８１２には、ネットワーク（不図示）が接続されてもよい。このハードウエア構成は、クライアント及びサーバ装置の双方に採用されうるものである。ハードディスク８１８及び／又はメモリ８０４には、ソース及び、ソースに関連する世代等の管理情報が格納されてもよい。
【０１２３】
一実施形態におけるプログラムの一部又は全部は、メモリ８０４、ハードディスク８１８等に格納され、プロセッサ８０２によって、動作してもよい。
【０１２４】
なお、本実施形態の全部又は一部はプログラムによってインプリメントされ得る。このプログラムは、可搬記録媒体８１６に格納することができる。可搬記録媒体８１６とは、構造（ｓｔｒｕｃｔｕｒｅ）を有する１つ以上の非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）な、有形（ｔａｎｇｉｂｌｅ）な、記憶媒体を言う。例示として、可搬記録媒体８１６としては、磁気記録媒体、光ディスク、光磁気記録媒体、不揮発性メモリなどがある。磁気記録媒体には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。また、光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）などがある。可搬型記録媒体に格納されたプログラムが読み込まれ、プロセッサによって実行されることにより、本発明の実施形態の全部又は一部が実施され得る。
【０１２５】
以上の実施形態に関し、以下の付記を開示する。
（付記１）
クライアントが利用する情報資源及び前記情報資源の世代をサーバ装置が管理するプログラムであって、
前記サーバ装置が、
前記サーバ装置の現在の破損回数を特定し、
前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存し、
前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する、
処理を前記サーバ装置に実行させるプログラムであって、
前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、
前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、
プログラム。
（付記２）
前記サーバ装置が破損から回復する際に、前記クライアントに存在する前記情報資源に対応する前記世代と、前記破損回数と、前記破損前世代情報とを含む情報に所定の第１の規則を適用した結果に従って、前記クライアントに存在する前記情報資源を収集する、
処理を更に前記サーバ装置に実行させる、付記１記載のプログラム。
（付記３）
前記破損前世代情報は、第１の情報資源を元に更新された第２の情報資源を前記サーバ装置に保存する場合、前記第２の情報資源に対応する第２の破損前世代情報は、前記第１の情報資源に対応する第１の破損前世代情報を含み、かつ、前記第１の情報資源に対応づけられた前記破損回数が、前記現在の破損回数よりも小さい場合、前記第２の情報資源の破損前世代情報は、前記第１の情報資源に対応する破損回数及び前記第１の情報資源の世代のペアを更に含むように生成される、
付記２記載のプログラム。
（付記４）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されているか否かと、
前記世代、前記破損回数、及び前記破損前世代情報に関して、前記クライアントに存在する前記情報資源と、前記サーバ装置に保存されている前記情報資源とを対比した結果と、
に基づいて、前記クライアントに存在する前記情報資源を、
そのまま前記サーバ装置に保存するか、または、
前記サーバ装置に格納されている前記情報資源とマージして前記サーバ装置に保存するか、
のいずれかを決定する、規則を含む、付記２又は３に記載のプログラム。
（付記５）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数より大きく、
前記クライアントに存在する前記情報資源の持つ破損回数が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は大きく、かつ、
前記クライアントに存在する前記情報資源の持つ破損前世代情報が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損前世代情報を含む場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２ないし４のうちいずれか１項に記載のプログラム。
（付記６）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は小さく、
前記クライアントに存在する前記情報資源の持つ特定の世代が、前記サーバ装置に存在せず、かつ、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第２の規則を満たす場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２ないし５のうちいずれか１項に記載のプログラム。
（付記７）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の後の世代の破損前世代情報のうち最新のものと、前記クライアントに存在する前記情報資源の持つ破損回数及び世代のペアが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記６に記載のプログラム。
（付記８）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記後の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記６又は７に記載のプログラム。
（付記９）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数と、前記後の世代の破損回数とが一致し、かつ、
前記前の世代の破損前世代情報と、前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記６ないし８のうちいずれか１項に記載のプログラム。
（付記１０）
前記クライアントに存在する前記情報資源が更新されている場合であって、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第３の規則を満たす場合、
前記保存する処理は、前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存する、
処理を有する、付記２記載のプログラム。
（付記１１）
クライアントが利用する情報資源及び前記情報資源の世代をサーバ装置が管理する方法であって、
前記サーバ装置が、
前記サーバ装置の現在の破損回数を特定する工程と、
前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存する工程と、
前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する工程と、
を有する方法であって、
前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、
前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、
方法。
（付記１２）
前記サーバ装置が破損から回復する際に、前記クライアントに存在する前記情報資源に対応する前記世代と、前記破損回数と、前記破損前世代情報とを含む情報に所定の第１の規則を適用した結果に従って、前記クライアントに存在する前記情報資源を収集する工程、
を更に有する、付記１１記載の方法。
（付記１３）
前記破損前世代情報は、第１の情報資源を元に更新された第２の情報資源を前記サーバ装置に保存する場合、前記第２の情報資源に対応する第２の破損前世代情報は、前記第１の情報資源に対応する第１の破損前世代情報を含み、かつ、前記第１の情報資源に対応づけられた前記破損回数が、前記現在の破損回数よりも小さい場合、前記第２の情報資源の破損前世代情報は、前記第１の情報資源に対応する破損回数及び前記第１の情報資源の世代のペアを更に含むように生成される、
付記１２記載の方法。
（付記１４）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されているか否かと、
前記世代、前記破損回数、及び前記破損前世代情報に関して、前記クライアントに存在する前記情報資源と、前記サーバ装置に保存されている前記情報資源とを対比した結果と、
に基づいて、前記クライアントに存在する前記情報資源を、
そのまま前記サーバ装置に保存するか、または、
前記サーバ装置に格納されている前記情報資源とマージして前記サーバ装置に保存するか、
のいずれかを決定する、規則を含む、付記１２又は１３に記載の方法。
（付記１５）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数より大きく、
前記クライアントに存在する前記情報資源の持つ破損回数が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は大きく、かつ、
前記クライアントに存在する前記情報資源の持つ破損前世代情報が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損前世代情報を含む場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記１２ないし１４のうちいずれか１項に記載の方法。
（付記１６）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は小さく、
前記クライアントに存在する前記情報資源の持つ特定の世代が、前記サーバ装置に存在せず、かつ、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第２の規則を満たす場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記１２ないし１５のうちいずれか１項に記載の方法。
（付記１７）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の後の世代の破損前世代情報のうち最新のものと、前記クライアントに存在する前記情報資源の持つ破損回数及び世代のペアが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記１６に記載の方法。
（付記１８）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記後の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記１６又は１７に記載の方法。
（付記１９）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数と、前記後の世代の破損回数とが一致し、かつ、
前記前の世代の破損前世代情報と、前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記１６ないし１８のうちいずれか１項に記載の方法。
（付記２０）
前記クライアントに存在する前記情報資源が更新されている場合であって、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第３の規則を満たす場合、
前記保存する工程は、前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存する工程、
を更に有する、付記１２記載の方法。
（付記２１）
クライアントが利用する情報資源及び前記情報資源の世代を管理するサーバ装置であって、
前記サーバ装置の現在の破損回数を特定する破損回数特定部と、
前記情報資源を前記サーバ装置に保存する場合、前記情報資源に対応付けて、前記現在の破損回数、前記世代、及び破損前世代情報を前記サーバ装置に保存する情報保存部と、
前記情報資源及び、前記情報資源に対応する、前記破損回数、前記世代、及び前記破損前世代情報を、クライアントに提供する保存情報提供部と、
を有するサーバ装置であって、
前記クライアントに提供された前記世代、前記破損回数、及び前記破損前世代情報は、前記サーバ装置が破損から回復するために少なくとも利用されるものであり、
前記破損前世代情報は、前記情報資源の更新の基礎とされた元情報資源であって、前記情報資源の持つ破損回数よりも小さい破損回数を持つ元情報資源の破損回数及び世代を含む、
サーバ装置。
（付記２２）
前記サーバ装置が破損から回復する際に、前記クライアントに存在する前記情報資源に対応する前記世代と、前記破損回数と、前記破損前世代情報とを含む情報に所定の第１の規則を適用した結果に従って、前記クライアントに存在する前記情報資源を収集する情報収集部と、
を更に有する、付記２１記載のサーバ装置。
（付記２３）
前記破損前世代情報は、第１の情報資源を元に更新された第２の情報資源を前記サーバ装置に保存する場合、前記第２の情報資源に対応する第２の破損前世代情報は、前記第１の情報資源に対応する第１の破損前世代情報を含み、かつ、前記第１の情報資源に対応づけられた前記破損回数が、前記現在の破損回数よりも小さい場合、前記第２の情報資源の破損前世代情報は、前記第１の情報資源に対応する破損回数及び前記第１の情報資源の世代のペアを更に含むように生成される、
付記２２記載のサーバ装置。
（付記２４）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されているか否かと、
前記世代、前記破損回数、及び前記破損前世代情報に関して、前記クライアントに存在する前記情報資源と、前記サーバ装置に保存されている前記情報資源とを対比した結果と、
に基づいて、前記クライアントに存在する前記情報資源を、
そのまま前記サーバ装置に保存するか、または、
前記サーバ装置に格納されている前記情報資源とマージして前記サーバ装置に保存するか、
のいずれかを決定する、規則を含む、付記２２又は２３に記載のサーバ装置。
（付記２５）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数より大きく、
前記クライアントに存在する前記情報資源の持つ破損回数が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は大きく、（５０４、Ｘｃかつ、
前記クライアントに存在する前記情報資源の持つ破損前世代情報が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損前世代情報を含む場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２２ないし２４のうちいずれか１項に記載のサーバ装置。
（付記２６）
前記所定の第１の規則は、
前記クライアントに存在する前記情報資源が更新されておらず、
前記クライアントに存在する前記情報資源の持つ世代が、前記サーバ装置に保存されている最新の世代の前記情報資源の持つ破損回数と等しいか又は小さく、
前記クライアントに存在する前記情報資源の持つ特定の世代が、前記サーバ装置に存在せず、かつ、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第２の規則を満たす場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２２ないし２５のうちいずれか１項に記載のサーバ装置。
（付記２７）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の後の世代の破損前世代情報のうち最新のものと、前記クライアントに存在する前記情報資源の持つ破損回数及び世代のペアが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２６に記載のサーバ装置。
（付記２８）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記後の世代の破損回数のみが一致し、かつ、
前記サーバ装置の前記特定の世代の前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２６又は２７に記載のサーバ装置。
（付記２９）
前記第２の規則は、前記サーバ装置の前記特定の世代の前の世代の破損回数及び後の世代の破損回数のうち、前記クライアントに存在する前記情報資源の持つ破損回数と、前記前の世代の破損回数と、前記後の世代の破損回数とが一致し、かつ、
前記前の世代の破損前世代情報と、前記後の世代の破損前世代情報と、前記クライアントに存在する前記情報資源の持つ破損前世代情報とが一致する場合、
前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存することを決定する規則を含む、付記２６ないし２８のうちいずれか１項に記載のサーバ装置。
（付記３０）
前記クライアントに存在する前記情報資源が更新されている場合であって、
前記クライアントに存在する前記情報資源の持つ、前記破損回数と、前記破損前世代情報とが所定の第３の規則を満たす場合、
前記情報保存部は、前記クライアントに存在する前記情報資源を、そのまま前記サーバ装置に保存する、
付記２２記載のサーバ装置。
【符号の説明】
【０１２６】
７０２  破損回数特定部
７０４  情報保存部
７０６  保存情報提供部
７０８  情報収集部
７１０  第１、第２、第３の規則
７３０  記憶部
７３２  世代管理テーブル
７３４  ソース
７５０  クライアント
７５２  ソースのプロパティ
７５４  ソース
【図１】
2014048750.tif 000017
【図２】
2014048750.tif 000018
【図３】
2014048750.tif 000019
【図４】
2014048750.tif 000020
【図５】
2014048750.tif 000021
【図６】
2014048750.tif 000022
【図７】
2014048750.tif 000023
【図８】
2014048750.tif 000024
【図９】
2014048750.tif 000025