(57)【要約】【課題】  より高速にかつ安全に不正なメモリ領域へのアクセスを防ぎながらデータの継承を行うこと。【解決手段】  メモリ継承マネージャ７０２は、コピー元ソフトウェア上でデータを保持しているメモリ領域を、コピー先ソフトウェアからの要求により指定された方法によってコピー先ソフトウェアに受け渡す。メモリ継承マネージャ７０２は、コピー元ソフトウェア上でのデータのメモリ領域の大きさのみを把握している。コピー先ソフトウェアによるコピー要求は、コピー先ソフトウェア上でのデータのメモリ領域の大きさを含めることができる。要求を受けたメモリ継承マネージャ７０２は、コピー元ソフトウェアとのメモリ領域の大きさの相違を検知し、コピー先ソフトウェアで解釈可能な形式でメモリ内容を応答する。【選択図】  図７
2016110365.tif 000002
【特許請求の範囲】
【請求項１】
分散型計算機システムであって、
コピー先メモリ管理部を有するコピー先計算機と、
メモリ継承マネージャと、コピー元メモリ管理部とを有するコピー元計算機と、
を備え、
前記コピー先計算機の前記コピー先メモリ管理部は、前記コピー元計算機に対して、コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に前記メモリ継承マネージャで実行してもよい第１の処理定義と、前記コピー先計算機でのコピー内容の一要素が占めるコピー先メモリ領域の前記第１のサイズと、前記コピー元計算機におけるコピー元メモリ領域の位置情報とを含む第１のコピー要求を送信し、
前記メモリ継承マネージャは、受信した前記第１のコピー要求に含まれる前記位置情報を含む第２のコピー要求を、前記コピー元メモリ管理部に送信し、
前記コピー元メモリ管理部は、前記位置情報に従い作成した、コピー元メモリ領域のコピー内容の要素を複数含む第１のコピー応答を前記メモリ継承マネージャに送信し、
前記メモリ継承マネージャは、前記第１のコピー応答を受信すると、前記第１のサイズと予め定められた前記第２のサイズとの差分を求め、前記第１のコピー要求の前記第１の処理定義に含まれるいずれかの第２の処理定義に従って、コピー内容の各要素について、前記差分を拡張したコピー拡張内容の各要素を作成し、
前記メモリ継承マネージャは、前記メモリ継承マネージャが実行した前記第２の処理定義と、前記コピー元計算機でのコピー内容の一要素が占めるメモリ領域の第２のサイズと、前記コピー拡張内容の複数要素とを含む第２のコピー応答を、前記コピー先計算機の前記コピー先メモリ管理部に送信し、
前記コピー先計算機の前記コピー先メモリ管理部は、受信した前記第２のコピー応答に基づき、前記コピー拡張内容を内部メモリにコピーする
分散型計算機システム。
【請求項２】
請求項１に記載の分散型計算機システムにおいて、
前記コピー先計算機により前記第１のコピー要求に含まれる前記第１の処理定義は、メモリ領域の差分の領域が予め定められたダミー値によって埋める処理を定義し、
前記メモリ継承マネージャは、前記第２の処理定義に従って、前記第１のコピー応答に含まれるコピー内容の各要素について、前記ダミー値を付加して、前記コピー拡張内容の各要素を作成する
ことを特徴とする分散型計算機システム。
【請求項３】
請求項１に記載の分散型計算機システムにおいて、
前記コピー先計算機により前記第１のコピー要求に含まれる前記第１の処理定義は、コピー実行を中断処理する定義であり、
前記メモリ継承マネージャは、前記第１の処理定義に従って、コピー処理を中断することことを特徴とする分散型計算機システム。
【請求項４】
請求項１に記載の分散型計算機システムにおいて、
前記コピー先メモリ管理部は、前記第２のコピー応答に基づき、前記コピー拡張内容の各要素を、前記コピー先計算機のメモリ領域に直接コピーすることを特徴とする分散型計算機システム。
【請求項５】
請求項１に記載の分散型計算機システムにおいて、
前記コピー先メモリ管理部は、前記第２のコピー応答に基づき、
前記第１の処理定義と前記第２の処理定義とを比較して、前記第２の処理定義による処理が許容できるかを確認したら、前記コピー拡張内容の各要素を、前記コピー先計算機のメモリ領域に直接コピーすることを特徴とする分散型計算機システム。
【請求項６】
請求項１に記載の分散型計算機システムにおいて、
前記コピー先メモリ管理部は、前記第２のコピー応答に基づき、
前記第１のサイズと前記第２のサイズとを比較して、差分があること、及び、差分の量を確認したら、前記コピー拡張内容の各要素を、前記コピー先計算機のメモリ領域に直接コピーすることを特徴とする分散型計算機システム。
【請求項７】
請求項１に記載の分散型計算機システムにおいて、
前記第２のコピー要求は、
前記コピー元計算機におけるコピー元メモリ領域の先頭番地と一対一に対応する文字列であるメモリ定義シンボル文字列と、
メモリ定義シンボル文字列の長さと、
連続したメモリ領域の内容を一括して要求するための値である総コピー個数と、
を含むことを特徴とする分散型計算機システム。
【請求項８】
請求項１に記載の分散型計算機システムにおいて、
前記第１のコピー応答は、
実際に応答したメモリ領域の内容の要素の数である総コピー個数と、
コピー元メモリ領域のコピー内容の複数要素と
を含むことを特徴とする分散型計算機システム。
【請求項９】
分散型計算機システムにおけるメモリ内容コピー方法であって、
前記分散型計算機は、
コピー先メモリ管理部を有するコピー先計算機と、
メモリ継承マネージャと、コピー元メモリ管理部とを有するコピー元計算機と、
を備え、
前記コピー先計算機の前記コピー先メモリ管理部は、前記コピー元計算機に対して、コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に前記メモリ継承マネージャで実行してもよい第１の処理定義と、前記コピー先計算機でのコピー内容の一要素が占めるコピー先メモリ領域の前記第１のサイズと、前記コピー元計算機におけるコピー元メモリ領域の位置情報とを含む第１のコピー要求を送信し、
前記メモリ継承マネージャは、受信した前記第１のコピー要求に含まれる前記位置情報を含む第２のコピー要求を、前記コピー元メモリ管理部に送信し、
前記コピー元メモリ管理部は、前記位置情報に従い作成した、コピー元メモリ領域のコピー内容の要素を複数含む第１のコピー応答を前記メモリ継承マネージャに送信し、
前記メモリ継承マネージャは、前記第１のコピー応答を受信すると、前記第１のサイズと予め定められた前記第２のサイズとの差分を求め、前記第１のコピー要求の前記第１の処理定義に含まれるいずれかの第２の処理定義に従って、コピー内容の各要素について、前記差分を拡張したコピー拡張内容の各要素を作成し、
前記メモリ継承マネージャは、前記メモリ継承マネージャが実行した前記第２の処理定義と、前記コピー元計算機でのコピー内容の一要素が占めるメモリ領域の第２のサイズと、前記コピー拡張内容の複数要素とを含む第２のコピー応答を、前記コピー先計算機の前記コピー先メモリ管理部に送信し、
前記コピー先計算機の前記コピー先メモリ管理部は、受信した前記第２のコピー応答に基づき、前記コピー拡張内容を内部メモリにコピーする
メモリ内容コピー方法。
【請求項１０】
分散型計算機であって、
メモリ継承マネージャと、
コピー元メモリ管理部と
を備え、
コピー先計算機のコピー先メモリ管理部から、コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に前記メモリ継承マネージャで実行してもよい第１の処理定義と、前記コピー先計算機でのコピー内容の一要素が占めるコピー先メモリ領域の前記第１のサイズと、前記分散型計算機におけるコピー元メモリ領域の位置情報とを含む第１のコピー要求を受信すると、
前記メモリ継承マネージャは、受信した前記第１のコピー要求に含まれる前記位置情報を含む第２のコピー要求を、前記コピー元メモリ管理部に送信し、
前記コピー元メモリ管理部は、前記位置情報に従い作成した、コピー元メモリ領域のコピー内容の要素を複数含む第１のコピー応答を前記メモリ継承マネージャに送信し、
前記メモリ継承マネージャは、前記第１のコピー応答を受信すると、前記第１のサイズと予め定められた前記第２のサイズとの差分を求め、前記第１のコピー要求の前記第１の処理定義に含まれるいずれかの第２の処理定義に従って、コピー内容の各要素について、前記差分を拡張したコピー拡張内容の各要素を作成し、
前記メモリ継承マネージャは、前記メモリ継承マネージャが実行した前記第２の処理定義と、前記コピー元計算機でのコピー内容の一要素が占めるメモリ領域の第２のサイズと、前記コピー拡張内容の複数要素とを含む第２のコピー応答を、前記コピー先計算機の前記コピー先メモリ管理部に送信し、
前記コピー先計算機の前記コピー先メモリ管理部に、受信した前記第２のコピー応答に基づき、前記コピー拡張内容を内部メモリにコピーさせる
分散型計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型計算機システム及び装置、メモリ内容コピー方法に係り、特に、それぞれの計算機において異なるバージョンのソフトウェアが動作することがある分散型計算機システム及び装置、分散型計算機システムにおけるメモリ内容のコピー方法に関する。
【背景技術】
【０００２】
メモリ内容をコピーする際には、不正なメモリアクセスとならないように考慮する必要がある。この分野の背景技術として、特開２００６―１１６９２号公報（特許文献１）がある。この公報には、「プログラム実行環境において、メモリ保護機構だけでは検出できない不正メモリアクセスを検出し情報を提示する」と記載されている。この技術では、条件の組み合わせによって不正メモリアクセスを判定している。また、他の背景技術として特許第５３３３２３２号公報がある。この特許では、「プログラムの検査実行時にトレースされた個々のメモリアクセスが、メモリ割当に整合する有効なアクセスであるか、不正なアクセスであるかを判定する方法を提供する」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６―１１６９２号公報
【特許文献２】特許第５３３３２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
分散型計算機システムにおいては、機能の追加・向上や不具合の修正などを目的として各計算機上で実行されるソフトウェアを更新することがある。このとき、異なるバージョンのソフトウェアではデータとして用いるためのメモリ領域の使い方が変わり、特に新しいバージョンのソフトウェアで古いバージョンのデータを使用する場合は、メモリ領域の拡張を伴うことがある。
【０００５】
本発明は、以上の点に鑑み、メモリ内容のコピーにおいてメモリ領域の拡張を伴うときに、より高速にかつ安全に不正なメモリ領域へのアクセスを防ぎながらデータの継承を行うことを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の解決手段によれば、
分散型計算機システムであって、
コピー先メモリ管理部を有するコピー先計算機と、
メモリ継承マネージャと、コピー元メモリ管理部とを有するコピー元計算機と、
を備え、
前記コピー先計算機の前記コピー先メモリ管理部は、前記コピー元計算機に対して、コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に前記メモリ継承マネージャで実行してもよい第１の処理定義と、前記コピー先計算機でのコピー内容の一要素が占めるコピー先メモリ領域の前記第１のサイズと、前記コピー元計算機におけるコピー元メモリ領域の位置情報とを含む第１のコピー要求を送信し、
前記メモリ継承マネージャは、受信した前記第１のコピー要求に含まれる前記位置情報を含む第２のコピー要求を、前記コピー元メモリ管理部に送信し、
前記コピー元メモリ管理部は、前記位置情報に従い作成した、コピー元メモリ領域のコピー内容の要素を複数含む第１のコピー応答を前記メモリ継承マネージャに送信し、
前記メモリ継承マネージャは、前記第１のコピー応答を受信すると、前記第１のサイズと予め定められた前記第２のサイズとの差分を求め、前記第１のコピー要求の前記第１の処理定義に含まれるいずれかの第２の処理定義に従って、コピー内容の各要素について、前記差分を拡張したコピー拡張内容の各要素を作成し、
前記メモリ継承マネージャは、前記メモリ継承マネージャが実行した前記第２の処理定義と、前記コピー元計算機でのコピー内容の一要素が占めるメモリ領域の第２のサイズと、前記コピー拡張内容の複数要素とを含む第２のコピー応答を、前記コピー先計算機の前記コピー先メモリ管理部に送信し、
前記コピー先計算機の前記コピー先メモリ管理部は、受信した前記第２のコピー応答に基づき、前記コピー拡張内容を内部メモリにコピーする
分散型計算機システムが提供される。
【０００７】
本発明の第２の解決手段によれば、
分散型計算機システムにおけるメモリ内容コピー方法であって、
前記分散型計算機は、
コピー先メモリ管理部を有するコピー先計算機と、
メモリ継承マネージャと、コピー元メモリ管理部とを有するコピー元計算機と、
を備え、
前記コピー先計算機の前記コピー先メモリ管理部は、前記コピー元計算機に対して、コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に前記メモリ継承マネージャで実行してもよい第１の処理定義と、前記コピー先計算機でのコピー内容の一要素が占めるコピー先メモリ領域の前記第１のサイズと、前記コピー元計算機におけるコピー元メモリ領域の位置情報とを含む第１のコピー要求を送信し、
前記メモリ継承マネージャは、受信した前記第１のコピー要求に含まれる前記位置情報を含む第２のコピー要求を、前記コピー元メモリ管理部に送信し、
前記コピー元メモリ管理部は、前記位置情報に従い作成した、コピー元メモリ領域のコピー内容の要素を複数含む第１のコピー応答を前記メモリ継承マネージャに送信し、
前記メモリ継承マネージャは、前記第１のコピー応答を受信すると、前記第１のサイズと予め定められた前記第２のサイズとの差分を求め、前記第１のコピー要求の前記第１の処理定義に含まれるいずれかの第２の処理定義に従って、コピー内容の各要素について、前記差分を拡張したコピー拡張内容の各要素を作成し、
前記メモリ継承マネージャは、前記メモリ継承マネージャが実行した前記第２の処理定義と、前記コピー元計算機でのコピー内容の一要素が占めるメモリ領域の第２のサイズと、前記コピー拡張内容の複数要素とを含む第２のコピー応答を、前記コピー先計算機の前記コピー先メモリ管理部に送信し、
前記コピー先計算機の前記コピー先メモリ管理部は、受信した前記第２のコピー応答に基づき、前記コピー拡張内容を内部メモリにコピーする
メモリ内容コピー方法が提供される。
【０００８】
本発明の第３の解決手段によれば、
分散型計算機であって、
メモリ継承マネージャと、
コピー元メモリ管理部と
を備え、
コピー先計算機のコピー先メモリ管理部から、コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に前記メモリ継承マネージャで実行してもよい第１の処理定義と、前記コピー先計算機でのコピー内容の一要素が占めるコピー先メモリ領域の前記第１のサイズと、前記分散型計算機におけるコピー元メモリ領域の位置情報とを含む第１のコピー要求を受信すると、
前記メモリ継承マネージャは、受信した前記第１のコピー要求に含まれる前記位置情報を含む第２のコピー要求を、前記コピー元メモリ管理部に送信し、
前記コピー元メモリ管理部は、前記位置情報に従い作成した、コピー元メモリ領域のコピー内容の要素を複数含む第１のコピー応答を前記メモリ継承マネージャに送信し、
前記メモリ継承マネージャは、前記第１のコピー応答を受信すると、前記第１のサイズと予め定められた前記第２のサイズとの差分を求め、前記第１のコピー要求の前記第１の処理定義に含まれるいずれかの第２の処理定義に従って、コピー内容の各要素について、前記差分を拡張したコピー拡張内容の各要素を作成し、
前記メモリ継承マネージャは、前記メモリ継承マネージャが実行した前記第２の処理定義と、前記コピー元計算機でのコピー内容の一要素が占めるメモリ領域の第２のサイズと、前記コピー拡張内容の複数要素とを含む第２のコピー応答を、前記コピー先計算機の前記コピー先メモリ管理部に送信し、
前記コピー先計算機の前記コピー先メモリ管理部に、受信した前記第２のコピー応答に基づき、前記コピー拡張内容を内部メモリにコピーさせる
分散型計算機が提供される。
【発明の効果】
【０００９】
本発明によると、メモリ内容のコピーにおいて、メモリ領域の拡張を伴うときに、より高速にかつ安全に不正なメモリ領域へのアクセスを防ぎながらデータの継承を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】分散型計算機システム構成図。
【図２】本実施の形態の関連技術の機能ブロック構成図。
【図３】本実施の形態の関連技術の処理シーケンス図。
【図４】図３におけるコピー先ソフトウェアによるコピー要求のメッセージフォーマットの説明図。
【図５】図３におけるコピー元ソフトウェアによるコピー応答のメッセージフォーマットの説明図。
【図６】本実施の形態の機能ブロック構成図。
【図７】本実施の形態の処理シーケンス図。
【図８】図７におけるコピー先ソフトウェアによるコピー要求のメッセージフォーマットの説明図。
【図９】図７におけるコピー元ソフトウェアによるコピー応答のメッセージフォーマットの説明図。
【図１０】コピー対象となるデータテーブルの例の説明図。
【図１１】分散型計算機のハードウェア構成図。
【図１２】図７における処理のフローチャート。
【発明を実施するための形態】
【００１１】
Ａ．概要
本実施の形態の特徴のひとつとして、コピー元ソフトウェアとしてメモリ継承マネージャが動作する。メモリ継承マネージャは、コピー元ソフトウェア上でデータを保持しているメモリ領域の内容を、コピー先ソフトウェアからの要求により指定された方法によってコピー先ソフトウェアに応答する。
メモリ継承マネージャは、コピー元ソフトウェア上でのデータのメモリ領域の大きさのみを把握している。コピー先ソフトウェアによるコピー要求は、コピー先ソフトウェア上でのデータのメモリ領域の大きさを含めることができる。要求を受けたメモリ継承マネージャは、コピー元ソフトウェアとのメモリ領域の大きさの相違を検知し、コピー先ソフトウェアで解釈可能な形式でメモリ領域の内容を応答する。
【００１２】
Ｂ．実施の形態
図１に、一般的な分散型計算機システムの概念を示す。分散型計算機システムにおいては、入力を複数のいずれかの計算機１、２、３、４、・・・・に処理として割り当て、処理を割り当てられた計算機１、２、３、４、・・・・が出力として結果を返す。このときそれぞれの計算機１、２、３、４、・・・・は独立して動作しており、同じ目的を達成するために動作している計算機１、２、３、４、・・・・内のソフトウェアは必ずしも全て同一である必要性はない。
【００１３】
図１１に、図１で示した分散型計算機システムの中の１つの計算機のハードウェア構成例を示す。ＣＰＵ１１０３はメモリ１１０２およびＰＨＹ１１０４と接続されている。ＰＨＹ１１０４は他の計算機と接続するインターフェースである。
【００１４】
図２に、本実施の形態の関連技術の機能ブロック構成図を示す。分散型計算機システムではそれぞれの計算機内にメモリ領域を持っているが、メモリの内容を他の計算機内のメモリ領域の内容と同一にしておきたいケースがある。一例として、ある入力データが任意の計算機のいずれかに割り当てられた場合でも常に一定の出力データが得られるような処理内容が期待されているとする。ただしコピー先ソフトウェア２０１とコピー元ソフトウェア２０３が同一でない場合、同じ目的のために保持しているメモリの内容であっても、コピー先メモリ領域２０２とコピー元メモリ領域２０４とで大きさに差分２０５がある可能性がある。このときにコピー先メモリ領域の大きさ分をコピー元メモリ領域からコピーすると、コピー先ソフトウェアは有効なメモリ領域の範囲を区別できないため、差分の領域に含まれるメモリ内容は意図しない内容となっている可能性があり、コピー先ソフトウェアは意図しない内容によって不正な動作をする可能性がある。
【００１５】
図３に、本実施の形態の関連技術の処理シーケンス図を示す。コピー先ソフトウェアのメモリ管理部３０１がコピー元ソフトウェアのメモリ管理部３０２へ直接コピー要求３０３を行い、コピー元ソフトウェアのメモリ管理部３０２がコピー先ソフトウェアのメモリ管理部３０１へ直接コピー応答３０４を返す。
【００１６】
図４に、図３におけるコピー要求３０３のフォーマットを示す。メモリ定義シンボル文字列４０２とは、コピー元ソフトウェアにおけるコピー元メモリ領域の先頭番地と一対一に対応する文字列である。メモリ定義シンボル文字列は可変長であるため、その長さ４０１も通知する。総コピー個数４０３は、連続したメモリ領域の内容を一括して要求するための値で、自然数を値域とする。
【００１７】
図５に、図３におけるコピー応答３０４のフォーマットを示す。総コピー個数５０１は実際に応答したメモリ領域の内容の要素の数であり、コピー要求における総コピー個数４０３以下の自然数を値域とする。メモリ領域の内容を５０２〜５０４にて応答する。
【００１８】
つぎに、図６に、本実施の形態を適用した機能ブロック構成図を示す。メモリ継承マネージャ６０６はコピー元ソフトウェア６０３の機能の一部である。メモリ継承マネージャはコピー元ソフトウェア６０３におけるメモリ領域の内容の要素の大きさ（又は数等）を知っている。
【００１９】
図７に、本実施の形態を適用した処理シーケンス図を示す。
コピー先ソフトウェアのメモリ管理部７０１によるコピー要求７０４はメモリ継承マネージャ７０２によって中継され、その要素の一部分がコピー要求３０３としてコピー元ソフトウェアのメモリ管理部７０３に到達する。コピー元ソフトウェアのメモリ管理部７０３によるメモリ内容の応答３０４はメモリ継承マネージャ７０２によって中継され、コピー応答７０５としてコピー先ソフトウェアのメモリ管理部７０１に到達する。
【００２０】
このとき、メモリ継承マネージャ７０２はコピー先ソフトウェアの要求７０４に応じてコピー元ソフトウェアの応答７０５を、コピー先メモリ領域にコピーされたソフトウェア（コピー先ソフトウェア）が不正な動作をしないように変化させることができる。一例として、コピー先ソフトウェアが、メモリ領域の差分の値が特定のダミー値によって埋めていても実行を継続することが可能である実行条件であれば、メモリ継承マネージャはこの指示に従って応答内容をダミー値が付加されるように変化させることができる。また一例として、コピー先ソフトウェアの要求としてコピー実行を中断させることもできる。
【００２１】
図１２に、図７の処理シーケンス図に従って動作するシステムのフローチャートを示す。以下、本フローチャートに従い詳細動作を説明する。
コピー先ソフトウェアのメモリ管理部７０１は、コピー元ソフトウェアに対してコピー要求７０４を送信する（１２０１）。
【００２２】
図８に、コピー先ソフトウェアによるコピー要求７０４のメッセージフォーマットを示す。差分発生時にメモリ継承マネージャで行ってもよい処理の定義８０１は任意に設定可能な定義で、一例として、特定のダミー値によってメモリ領域の差分を埋めることを指示することもできる。コピー先ソフトウェアでのコピー内容の一要素が占めるメモリ領域のサイズ８０２は、メモリ継承マネージャ７０２がコピー元ソフトウェアにおける一要素が占めるメモリ領域のサイズとの差分の有無を知らせるために通知する。コピー元ソフトウェアのメモリ継承マネージャはこの差分の有無を直接把握することができるが、コピー先ソフトウェアはこの差分の有無を把握していない。なお、コピー要求７０４は、全体として図４の要素に８０１と８０２を付加した形式となっている（図８の８０３〜８０５が、図４の４０１〜４０３に対応する。なお、これらを総称して、コピー元メモリ領域の位置情報と呼ぶことがある。）。
【００２３】
コピー元ソフトウェアのメモリ継承マネージャ７０２はコピー要求７０４を受信すると（１２０２）、８０１と８０２のデータを削除して、図４に示したコピー要求３０３を作成し、それをメモリ管理部７０３に送信する（１２０３）。
【００２４】
メモリ管理部７０３は、コピー要求３０３を受信するとコピー元ソフトウェアについて、例えば公知又は周知の処理により、図５に示したコピー応答３０４を作成し、それを、メモリ継承マネージャ７０２に送信する（１２０４）。なお、コピー応答３０４は、図５に示した形式となっている。
【００２５】
コピー元ソフトウェアのメモリ継承マネージャ７０２はコピー応答３０４を受信すると、コピー先ソフトウェアのコピー要求７０４に含まれていた処理の定義（差分発生時にメモリ継承マネージャで行ってもよい処理の定義８０１）のいずれか又は複数又は全部から処理可能な処理の定義を予め定められた手順（例えば、順番、予め定めた優先順位等）で選択し、選択した処理の定義に従ってコピー応答７０５の内容を処理して作成する（１２０５）。
【００２６】
図９に、コピー元ソフトウェアのメモリ継承マネージャによるコピー応答のメッセージフォーマットを示す。
【００２７】
コピー元ソフトウェアとコピー先ソフトウェアとの間の一要素が含めるメモリ領域のサイズの差分発生時に、メモリ承継マネージャ７０２は、「差分発生時にメモリ継承マネージャで行った処理の定義９０１」によって、実際にメモリ継承マネージャが行った処理による、総コピー数９０３と、コピー元メモリ領域の拡張内容１  ９０４〜ｎ  ９０６を、コピー先ソフトウェアに応答することができる。また、コピー元ソフトウェアでのコピー内容の一要素が占めるメモリ領域のサイズ９０２の通知によって、コピー先ソフトウェアでも差分の有無を知ることができる。全体として図５に示したような形式に９０１と９０２を付加した形式となっている。ただし、各コピー元メモリ領域の拡張内容１  ９０４〜ｎ  ９０６のサイズは、例えば、それぞれのコピー元メモリ領域の内容１  ５０２〜ｎ  ５０４のサイズに差分量を拡張したサイズである。また、図９の９０３が図５の５０１に対応する。
【００２８】
コピー要求７０４の「差分発生時にメモリ継承マネージャで行ってもよい処理の定義８０１」として、例えば、差分量のメモリ領域の拡張（例えば、差分量のダミー値の追加）等が含まれており、それを処理の定義として選択した場合、差分発生時にメモリ承継マネージャー７０２は、それぞれのコピー元メモリ領域の内容１  ５０２〜ｎ  ５０４のサイズについて差分量のメモリ領域の拡張（例えば、差分量のダミー値の追加）等を実行する。なお、差分量は、図８の８０２の値と、自装置に予め定められた図９の９０２の値とにより求めることができる。
そして、メモリ承継マネージャ７０２は、図９の「差分発生時にメモリ継承マネージャで行った処理の定義９０１」として、差分量のメモリ領域の拡張（例えば、差分量のダミー値の追加）等を設定する。また、メモリ承継マネージャ７０２は、図９の「コピー元メモリ領域の拡張内容１  ９０４〜ｎ  ９０６」として、差分量のメモリ領域を拡張（例えば、差分量のダミー値の追加）等を実行した内容を記憶する。
そして、コピー元ソフトウェアのメモリ継承マネージャ７０２は、コピー先ソフトウェアのメモリ管理部７０１にコピー応答７０５を送信する（１２０６）。
【００２９】
コピー先ソフトウェアのメモリ管理部７０１は、コピー応答７０５を受信し、コピー応答７０５に基づき、コピー元ソフトウェアをコピーする（１２０７）。
【００３０】
このとき、例えば、コピー先のメモリ管理部７０１では、コピー応答７０５を参照し、以下の処理を実行する。すなわち、
・「差分発生時にメモリ承継マネージャで行ってもよい処理の定義８０１」と、実際に、「差分発生時にメモリ承継マネージャで行った処理の定義９０１」とを比較して、その処理が許容できるかどうかを確認する。
・「コピー先ソフトウェアでの一要素が占めるメモリ領域のサイズ８０２」と、「コピー元ソフトウェアでの一要素が占めるメモリ領域のサイズ９０２」とを比較して、差分があったか、また、その差分量を確認する。
・返却されてきた、コピー元メモリ領域の拡張内容１  ９０４〜ｎ  ９０６の内容をコピー先ソフトウェアのメモリ領域にコピーする。
なお、上述の処理が許容できるかどうかを確認すること、及び／又は、差分量を確認することを省略して、コピー先ソフトウェアのメモリ領域へのコピーを実行してもよい。
【００３１】
図１０に、コピー対象となるデータテーブルの例を示す。コピー元メモリ領域が連続している場合でも、コピー先メモリ領域との大きさの差がある場合、個々のメモリ領域について差分１００２を逐一考慮してコピーを行う必要がある。一例として、コピー元メモリ領域には一定の長さのバイト列が連続的に格納されているとする。このとき、コピー先ソフトウェアはコピー元メモリ領域の大きさに関係なく、コピー先メモリ領域の大きさ分のコピーをコピー元ソフトウェアに要求することができる。しかしその通りにコピー元ソフトウェアが応答すると、本来コピーすべきでない次のメモリ領域に格納された値までがコピー先メモリ領域にコピーされてしまう。これを防ぐため、差分１００２にコピーする値として特定のダミー値を格納することができ、コピー先ソフトウェアは特定のダミー値を検知することによって不正な動作をせずに動作を継続することができる。
【００３２】
Ｃ．実施の形態の効果
本発明及び／又は本実施の形態によらない方法として、各ソフトウェアの全ての組み合わせについてメモリ領域の大きさおよびメモリ領域の大きさに応じた動作をコピー先ソフトウェアで定義する方法があるが、本発明及び／又は本実施の形態を適用すれば、それらの全ての組み合わせをコピー先ソフトウェアで定義する必要がなくなる。コピー先ソフトウェアはコピー元ソフトウェアよりも後から開発されることが想定される。あるいは、メモリ内容にバージョン情報を付加してコピー先ソフトウェアでバージョン情報に応じた処理を行う方法もあるが、異常を検知して処理を停止することは容易だが、例外処理のまま処理を継続することは難しいことが想定される。あるいは、コピー元ソフトウェアであらかじめ将来の拡張に備えて冗長なメモリ領域を予約しておく方法も考えられるが、メモリの使用効率が下がり、コピー元ソフトウェア作成時に予測不可能だった拡張への対応に限界がある。
【００３３】
本実施の形態によれば、新旧ソフトウェアのバージョン間でメモリ領域の拡張があった場合でも、新ソフトウェアでは旧ソフトウェアにおけるメモリ領域の定義との相違による不正なメモリ領域へのアクセスを防止することができる。また、新ソフトウェアが領域の大きさのみを考慮したような要求を行った場合は、より高速にデータの継承を行うことができる。
また本実施の形態によれば、新ソフトウェアを作成する際に、過去全てのソフトウェアバージョンにおけるメモリ領域の定義との条件の組み合わせを網羅しなくてもよいため、新ソフトウェアを比較的容易に設計することができる。
【００３４】
Ｄ．付記
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれている。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００３５】
２０１、６０１：コピー先ソフトウェア  ２０２、６０２、６０１、６０３、１００１、１００３：コピー先メモリ領域  ２０３、６０３：コピー元ソフトウェア  ２０４、６０４：コピー元メモリ領域  ２０５、６０５、６０２：差分  ３０１、７０１：コピー先ソフトウェアメモリ管理部  ３０２、７０３：コピー元ソフトウェアメモリ管理部  ３０３：コピー要求  ３０４：コピー応答  ４０１、８０３：メモリ定義シンボル文字列の文字列長  ４０２、８０４：メモリ定義シンボル文字列  ４０３、５０１、８０５、９０３：総コピー個数  ５０２、５０３、５０４：コピー元メモリ領域の値  ６０６、７０２：メモリ継承マネージャ  ７０４：メモリ継承マネージャ向けコピー要求  ７０５：メモリ継承マネージャによるコピー応答  ８０１：差分発生時にメモリ継承マネージャで行ってもよい処理の定義  ８０２：コピー先ソフトウェアでの一要素が占めるメモリ領域のサイズ  ９０１：差分発生時にメモリ継承マネージャで行った処理の定義  ９０２：コピー元ソフトウェアでの一要素が占めるメモリ領域のサイズ １１０１：計算機  １１０２：メモリ  １１０３：ＣＰＵ  １１０４：ＰＨＹ
【図１】
2016110365.tif 000003
【図２】
2016110365.tif 000004
【図３】
2016110365.tif 000005
【図４】
2016110365.tif 000006
【図５】
2016110365.tif 000007
【図６】
2016110365.tif 000008
【図７】
2016110365.tif 000009
【図８】
2016110365.tif 000010
【図９】
2016110365.tif 000011
【図１０】
2016110365.tif 000012
【図１１】
2016110365.tif 000013
【図１２】
2016110365.tif 000014