(57)【要約】【課題】  別アドレス空間において分散処理を実行可能な分散処理システムを提供する。【解決手段】  分散処理システムは、確保装置１００と書込装置１５０とを含む。確保装置１００は、データの書込要求を出力する確保側モジュール１４２と、確保装置１００におけるアドレスと書込装置１５０におけるアドレスとを対応付けて記憶したアドレス対応表１１６を備える確保側メモリ管理部１１２と、確保側モジュール１４２に書込装置１５０におけるデータの書込を要求する書込側モジュール１８２を代理する書込側モジュール代理部１１８とを含む。書込装置１５０は、データの書込要求を出力する書込側モジュール１８２と、確保側モジュール１４２を代理する確保側モジュール代理部１６６と、確保側メモリ管理部１１２を代理する確保側メモリ代理部１６２とを含む。【選択図】        図１
2006023997.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報通信装置と第２の情報通信装置とを備え、
前記第１の情報通信装置は、
通信回線を介して、前記第２の情報通信装置と通信する第１の通信手段と、
データを書き込む領域の確保を要求する確保側モジュールと、前記データを格納する記憶手段とを含み、
前記第２の情報通信装置は、
前記通信回線を介して、前記第１の情報通信装置と通信する第２の通信手段と、
データの書込を要求する書込側モジュールとを含み、
前記第１の情報通信装置はさらに、
前記確保側モジュールに対して、前記記憶手段を代理するメモリ管理手段と、
前記確保側モジュールに対して、前記書込側モジュールを代理する第１のモジュール代理手段とを含み、
前記第２の情報通信装置はさらに、
前記書込側モジュールに対して、前記記憶手段を代理するメモリ代理手段と、
前記書込側モジュールに対して、前記確保側モジュールを代理する第２のモジュール代理手段とを含む、分散処理システム。
【請求項２】
前記メモリ管理手段は、
前記確保側モジュールにより出力される領域の確保要求に基づいて、前記記憶手段に第１の記憶領域を排他的に確保する確保手段と、
前記第１の通信手段に、前記確保要求を、前記第２の情報通信装置に対して送信させる手段とを含み、
前記第２の情報通信装置は、データを格納するデータ記憶手段をさらに含み、
前記メモリ代理手段は、
前記第１の情報通信装置により送信された情報から、前記確保要求を取得する手段と、
前記確保要求に基づいて、前記データ記憶手段に第２の記憶領域を排他的に確保する手段と、
前記第２の通信手段に、前記第２の記憶領域の位置を特定するための位置情報を、前記第１の情報通信装置に対して送信させる手段と、
前記第１の情報通信装置により送信された情報から、前記位置情報を有する処理要求を取得する手段と、
前記処理要求に基づいて前記書込側モジュールから出力される指令に応答して、前記位置情報に基づいて、前記第２の記憶領域にデータを格納する手段とを含み、
前記メモリ管理手段はさらに、
前記第２の情報通信装置により送信された情報から、前記第２の記憶領域において更新された差分データを取得する手段と、
前記第１の記憶領域に、前記差分データを格納する手段とを含む、請求項１に記載の分散処理システム。
【請求項３】
データを書き込む領域の確保を要求する確保側モジュールと前記データを格納する記憶手段と、
通信回線を介して、データの書込を要求する書込側モジュールとデータを格納するデータ記憶手段を備えるデータ処理装置と通信する通信手段と、
前記確保側モジュールに対して、前記記憶手段を代理するメモリ管理手段と、
前記確保側モジュールに対して、前記書込側モジュールを代理するモジュール代理手段とを含む、情報通信装置。
【請求項４】
前記メモリ管理手段は、
前記確保側モジュールにより出力される領域の確保要求に基づいて、前記記憶手段に第１の記憶領域を排他的に確保する確保手段と、
前記通信手段に、前記確保要求を前記データ処理装置に対して送信させる手段と、
前記データ処理装置により送信された情報から、前記確保要求に基づいて前記データ記憶手段において更新された差分データを取得する手段と、
前記第１の記憶領域に、前記差分データを格納する手段とを含む、請求項３に記載の情報通信装置。
【請求項５】
前記確保手段は、前記確保要求に基づいて前記第１の記憶領域を確保し、そして、前記第１の記憶領域の他の確保要求による確保を禁止する、請求項４に記載の情報通信装置。
【請求項６】
前記確保要求は、前記第１の記憶領域の大きさを特定するための情報を含む、請求項４に記載の情報通信装置。
【請求項７】
前記メモリ管理手段はさらに、
前記第１の記憶領域の位置を特定するための第１の位置情報を取得する手段と、
前記データ処理装置により送信された情報から、前記確保要求に応じて前記データ記憶手段において排他的に確保された第２の記憶領域の位置を特定するための第２の位置情報を取得する手段と、
前記第１の位置情報と前記第２の位置情報とを関連付けて格納する手段とを含み、
前記モジュール代理手段は、
前記第１の記憶領域にデータを格納するために前記確保側モジュールにより出力される第１の処理要求に基づいて、前記第２の位置情報を有する第２の処理要求を生成する生成手段と、
前記通信手段に、前記第２の処理要求を前記データ処理装置に対して送信させる手段とを含む、請求項４に記載の情報通信装置。
【請求項８】
前記第１の処理要求は、前記第１の位置情報と、前記記憶手段に確保が要求される領域の大きさを表わすためのサイズ情報とを含み、
前記生成手段は、前記サイズ情報を有する前記第２の処理要求を生成する、請求項７に記載の情報通信装置。
【請求項９】
前記第１の処理要求は、前記第１の位置情報を含み、
前記生成手段は、前記メモリ管理手段に、前記第１の位置情報を前記データ処理装置における位置情報に変換する要求を出力し、
前記メモリ管理手段は、前記要求に基づいて、前記生成手段に、前記第１の位置情報に関連付けられている前記第２の位置情報を出力する、請求項７に記載の情報通信装置。
【請求項１０】
通信回線を介して、データを書き込む領域の確保を要求する確保側モジュールとデータとを格納する記憶手段を備えるデータ処理装置と通信する通信手段と、
データの書込を要求する書込側モジュールとデータとを格納するデータ記憶手段と、
前記書込側モジュールに対して、前記記憶手段を代理するメモリ代理手段と、
前記書込側モジュールに対して、前記確保側モジュールを代理するためのモジュール代理手段とを含む、情報通信装置。
【請求項１１】
前記メモリ代理手段は、
前記データ処理装置により送信された情報から、前記確保側モジュールにより出力される領域の確保要求を取得する手段と、
前記確保要求に基づいて、前記データ記憶手段に記憶領域を排他的に確保する確保手段と、
前記通信手段に、前記データ記憶手段における前記記憶領域の位置を特定するための位置情報を、前記データ処理装置に対して送信させる手段と、
前記データ処理装置により送信された情報から、前記位置情報を有する処理要求を取得する手段と、
前記処理要求に基づいて前記書込側モジュールから出力される指令に応答して、前記位置情報に基づいて、前記記憶領域にデータを格納する手段とを含み、
前記モジュール代理手段は、前記データの格納の完了に基づいて、前記データ記憶手段において更新されたデータを、前記データ処理装置に対して出力する転送手段を含む、請求項１０に記載の情報通信装置。
【請求項１２】
前記確保手段は、前記確保要求に基づいて前記記憶領域を確保し、そして、前記記憶領域の他の確保要求による確保を禁止する、請求項１１に記載の情報通信装置。
【請求項１３】
前記確保要求は、前記記憶領域の大きさを特定するための情報を含む、請求項１１に記載の情報通信装置。
【請求項１４】
前記転送手段は、
前記書込側モジュールにより出力される前記データの格納の完了通知に基づいて、前記データ処理装置に対して前記更新されたデータを転送する転送要求を生成する手段と、
前記メモリ代理手段に、前記転送要求を出力する手段とを含み、
前記メモリ代理手段は、前記転送要求に基づいて、前記通信手段に、前記更新されたデータを前記データ処理装置に対して送信させる差分データ転送手段をさらに含む、請求項１１に記載の情報通信装置。
【請求項１５】
前記転送要求は、前記データ記憶手段において排他的に確保された領域を特定するための位置情報を含み、
前記差分データ転送手段は、前記位置情報に基づいて、前記データ記憶手段から前記更新されたデータを読み出し、そして、読み出された前記データを前記通信手段に出力する、請求項１４に記載の情報通信装置。
【請求項１６】
データを格納する記憶手段を有するコンピュータを情報通信装置として機能させるためのプログラムであって、前記プログラムは前記コンピュータに、
前記記憶手段から、データを書き込む領域の確保を要求する確保側モジュールを読み出すステップと、
通信回線を介して、データの書込を要求する書込側モジュールとデータとを格納するデータ記憶手段を備えるデータ処理装置と通信する通信ステップと、
前記確保側モジュールに対して、前記記憶手段を代理するメモリ管理ステップと、
前記確保側モジュールに対して、前記書込側モジュールを代理するモジュール代理ステップとを実行させる、プログラム。
【請求項１７】
データを格納するデータ記憶手段を有するコンピュータを情報通信装置として機能させるためのプログラムであって、前記プログラムは前記コンピュータに、
通信回線を介して、データを書き込む領域の確保を要求する確保側モジュールとデータとを格納する記憶手段を備えるデータ処理装置と通信するステップと、
前記データ記憶手段から、データの書込を要求する書込側モジュールとデータとを読み出すステップと、
前記書込側モジュールに対して、前記記憶手段を代理するメモリ代理ステップと、
前記書込側モジュールに対して、前記確保側モジュールを代理するモジュール代理ステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理技術に関し、特に、情報通信装置間のデータを同期化することができる分散処理システム、そのシステムに含まれる情報通信装置およびコンピュータを情報通信装置として機能させるためのプログラムに関する。
【背景技術】
【０００２】
近年、オブジェクト指向ベースの分散処理を用いて遠隔制御システムを構築することが多い。オブジェクト指向では、複数モジュール間のデータ授受をメッセージ（イベント）で行うため、モジュール間の結合度が低く、分散処理に適したソフトウェア構成とすることが可能である。
【０００３】
たとえば特開２００３−１９５９３８号公報（特許文献１）は、分散型制御システムの構築あるいはシステム構成の変更のための負荷を軽減することができる分散型制御システムを開示する。このシステムにおいて、制御装置は、自装置の制御対象である被制御機器を制御して得られたデータを、当該データに付与された固有の識別情報で管理するデータ管理部と、他の制御装置から受信した識別情報を特定したデータ要求に応じて、該当するデータを当該他の制御装置に返送する応答部とを備える。特許文献１に開示されたシステムによると、オブジェクト指向によるデータ管理が行なわれ、上記の負荷が軽減される。
【０００４】
ところで、携帯電話などに組込まれるソフトウェアの分野では、小さな筐体、安い価格を実現するため、少ないメモリで所定の動作をさせることが望ましい。上記特許文献１に開示されたシステムは、多くのメモリを必要とするため、携帯電話などの組込みソフトウェアの開発においては用いられることは少ない。そのため、そのようなソフトウェアは、複数モジュールが一つの記憶装置内の同一の記憶領域を直接、確保したり書込したりする形態（この形態のモジュールを「密結合しているモジュール」あるいは、「メモリを共有している」モジュールと呼ぶ）で設計されることが多い。例えば、確保側モジュールと書込側モジュールが同一アドレス空間に存在する場合、確保側モジュールで領域確保しておき、書込側モジュールで前記確保された領域に処理結果を書き込む、といったオブジェクト指向と異なる処理方法が頻繁に利用される。その理由は、決められた記憶領域を共有することで、データの授受における記憶領域の使用量を削減し、ひいては製品で用いる記憶領域を小さくしてコスト削減を図るためである。
【特許文献１】特開２００３−１９５９３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような密結合している２モジュールを、分散配置させたい場合（ニーズ）がある。第１の例として、携帯電話の場合、確保側モジュールとして、ブラウザなどのアプリ層があり、書込側のモジュールとして通信プロトコル層がある。アプリ層を国内に配置し、通信プロトコル層を海外に分散配置し、両モジュールをインターネットなど通信網で結んで全体として一つの携帯電話として動作させることにより、国内において海外の電波を用いた試験を実現することができるようになる。
【０００６】
第２の例として、ロボットの制御システムの場合、確保側モジュールとして、Graphical User Interface部分があり、書込側モジュールとして、ロボット制御部分がある。本来は同一アドレス空間上に存在していた確保側と書込側の両モジュールを、それぞれ別アドレス空間にて動作可能とさせることで、ロボットの遠隔制御システムを実現できるようになる。
【０００７】
第１の従来技術、すなわちオブジェクト指向に基づく分散処理を前提として設計されたモジュールの場合、それらの間のメッセージを遠隔に伝達し、個々に実行する環境（すなわち演算素子と前記演算素子とバス接続されたメモリ）を用意すれば、分散実行は可能である。しかしながら、密結合されたモジュールを分散実行させるのは容易ではない。なぜならば、密結合されたモジュールは同一の記録領域（アドレス空間）を直接アクセス（アドレスを指定してアクセス）しているのであり、それを分散処理、すなわち各モジュールをそれぞれ別の演算素子で実行させ、かつ２つのモジュールを連携させるには、２つの演算素子が１つのメモリをアクセスする形態を取らねばならないからである。一般のメモリは１つの演算素子のみからアクセスされることを前提として作られており、２つの演算素子からアクセス可能なようには作られていないので、２つの演算素子からアクセス可能とする代理機能が別途必要となる。また、演算素子とメモリとの接続は、通常、１つの筐体に収まる程度の距離を想定して作られているため、２つの演算素子の距離を遠隔地とする場合、遠距離からのアクセスを可能とするための「橋渡し」であるリレー機能が別途必要となる。さらに、上述の代理機能により２つの演算素子からのアクセスを可能とし、リレー機能により遠隔地からのアクセスを可能としたとしても、代理機能やリレー機能による処理時間分だけ演算素子からメモリへのアクセス速度は低下してしまう。
また、既に密結合する形態で開発されたモジュールを第１の従来技術の方法に変更するのは、設計のやり直しに等しくなり、大幅な工数を要することになる。
【０００８】
本発明は、上述の問題点を解決するためになされたものであって、その目的は、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して処理を実行可能な分散処理システムを提供することである。
【０００９】
本発明の他の目的は、情報通信装置間のデータを同期化することができる分散処理システムを提供することである。
【００１０】
本発明の他の目的は、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して処理を実行可能な分散処理システムを構成するための情報通信装置を提供することである。
【００１１】
本発明の他の目的は、物理的に遠隔地に配置された他の情報通信装置との間で、データを同期化することができる情報通信装置を提供することである。
【００１２】
本発明の他の目的は、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して処理を実行可能な分散処理システムを構成するための情報通信装置として、コンピュータを機能させるためのプログラムを提供することである。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、この発明のある局面に従うと、分散処理システムは、第１の情報通信装置と第２の情報通信装置とを備える。第１の情報通信装置は、通信回線を介して、第２の情報通信装置と通信する第１の通信手段と、データを書き込む領域の確保を要求する確保側モジュールと、データを格納する記憶手段とを含む。第２の情報通信装置は、通信回線を介して、第１の情報通信装置と通信する第２の通信手段と、データの書込を要求する書込側モジュールとを含む。第１の情報通信装置はさらに、確保側モジュールに対して、記憶手段を代理するメモリ管理手段と、確保側モジュールに対して、書込側モジュールを代理する第１のモジュール代理手段とを含む。第２の情報通信装置はさらに、書込側モジュールに対して、記憶手段を代理するメモリ代理手段と、書込側モジュールに対して、確保側モジュールを代理する第２のモジュール代理手段とを含む。
【００１４】
好ましくは、メモリ管理手段は、確保側モジュールにより出力される領域の確保要求に基づいて、記憶手段に第１の記憶領域を排他的に確保する確保手段と、第１の通信手段に、確保要求を、第２の情報通信装置に対して送信させる手段とを含む。第２の情報通信装置は、データを格納するデータ記憶手段をさらに含む。メモリ代理手段は、第１の情報通信装置により送信された情報から、確保要求を取得する手段と、確保要求に基づいて、データ記憶手段に第２の記憶領域を排他的に確保する手段と、第２の通信手段に、第２の記憶領域の位置を特定するための位置情報を、第１の情報通信装置に対して送信させる手段と、第１の情報通信装置により送信された情報から、位置情報を有する処理要求を取得する手段と、処理要求に基づいて書込側モジュールから出力される指令に応答して、位置情報に基づいて、第２の記憶領域にデータを格納する手段とを含む。メモリ管理手段はさらに、第２の情報通信装置により送信された情報から、第２の記憶領域において更新された差分データを取得する手段と、第１の記憶領域に、差分データを格納する手段とを含む。
【００１５】
この発明の他の局面に従うと、情報通信装置は、データを書き込む領域の確保を要求する確保側モジュールとデータを格納する記憶手段と、通信回線を介して、データの書込を要求する書込側モジュールとデータを格納するデータ記憶手段を備えるデータ処理装置と通信する通信手段と、確保側モジュールに対して、記憶手段を代理するメモリ管理手段と、確保側モジュールに対して、書込側モジュールを代理するモジュール代理手段とを含む。
【００１６】
好ましくは、メモリ管理手段は、確保側モジュールにより出力される領域の確保要求に基づいて、記憶手段に第１の記憶領域を排他的に確保する確保手段と、通信手段に、確保要求をデータ処理装置に対して送信させる手段と、データ処理装置により送信された情報から、確保要求に基づいてデータ記憶手段において更新された差分データを取得する手段と、第１の記憶領域に、差分データを格納する手段とを含む。
【００１７】
好ましくは、確保手段は、確保要求に基づいて第１の記憶領域を確保し、そして、第１の記憶領域の他の確保要求による確保を禁止する。
【００１８】
好ましくは、確保要求は、第１の記憶領域の大きさを特定するための情報を含む。
【００１９】
好ましくは、メモリ管理手段はさらに、第１の記憶領域の位置を特定するための第１の位置情報を取得する手段と、データ処理装置により送信された情報から、確保要求に応じてデータ記憶手段において排他的に確保された第２の記憶領域の位置を特定するための第２の位置情報を取得する手段と、第１の位置情報と第２の位置情報とを関連付けて格納する手段とを含む。モジュール代理手段は、第１の記憶領域にデータを格納するために確保側モジュールにより出力される第１の処理要求に基づいて、第２の位置情報を有する第２の処理要求を生成する生成手段と、通信手段に、第２の処理要求をデータ処理装置に対して送信させる手段とを含む。
【００２０】
好ましくは、第１の処理要求は、第１の位置情報と、記憶手段に確保が要求される領域の大きさを表わすためのサイズ情報とを含む。生成手段は、サイズ情報を有する第２の処理要求を生成する。
【００２１】
好ましくは、第１の処理要求は、第１の位置情報を含む。生成手段は、メモリ管理手段に、第１の位置情報をデータ処理装置における位置情報に変換する要求を出力する。メモリ管理手段は、要求に基づいて、生成手段に、第１の位置情報に関連付けられている第２の位置情報を出力する。
【００２２】
この発明の他の局面に従うと、情報通信装置は、通信回線を介して、データを書き込む領域の確保を要求する確保側モジュールとデータとを格納する記憶手段を備えるデータ処理装置と通信する通信手段と、データの書込を要求する書込側モジュールとデータとを格納するデータ記憶手段と、書込側モジュールに対して、記憶手段を代理するメモリ代理手段と、書込側モジュールに対して、確保側モジュールを代理するためのモジュール代理手段とを含む。
【００２３】
好ましくは、メモリ代理手段は、データ処理装置により送信された情報から、確保側モジュールにより出力される領域の確保要求を取得する手段と、確保要求に基づいて、データ記憶手段に記憶領域を排他的に確保する確保手段と、通信手段に、データ記憶手段における記憶領域の位置を特定するための位置情報を、データ処理装置に対して送信させる手段と、データ処理装置により送信された情報から、位置情報を有する処理要求を取得する手段と、処理要求に基づいて書込側モジュールから出力される指令に応答して、位置情報に基づいて、記憶領域にデータを格納する手段とを含む。モジュール代理手段は、データの格納の完了に基づいて、データ記憶手段において更新されたデータを、データ処理装置に対して出力する転送手段を含む。
【００２４】
好ましくは、確保手段は、確保要求に基づいて記憶領域を確保し、そして、記憶領域の他の確保要求による確保を禁止する。
【００２５】
好ましくは、確保要求は、記憶領域の大きさを特定するための情報を含む。
【００２６】
好ましくは、転送手段は、書込側モジュールにより出力されるデータの格納の完了通知に基づいて、データ処理装置に対して更新されたデータを転送する転送要求を生成する手段と、メモリ代理手段に、転送要求を出力する手段とを含む。メモリ代理手段は、転送要求に基づいて、通信手段に、更新されたデータをデータ処理装置に対して送信させる差分データ転送手段をさらに含む。
【００２７】
好ましくは、転送要求は、データ記憶手段において排他的に確保された領域を特定するための位置情報を含む。差分データ転送手段は、位置情報に基づいて、データ記憶手段から更新されたデータを読み出し、そして、読み出されたデータを通信手段に出力する。
【００２８】
この発明の他の局面に従うと、プログラムは、データを格納する記憶手段を有するコンピュータを情報通信装置として機能させる。このプログラムはコンピュータに、記憶手段から、データを書き込む領域の確保を要求する確保側モジュールを読み出すステップと、通信回線を介して、データの書込を要求する書込側モジュールとデータとを格納するデータ記憶手段を備えるデータ処理装置と通信する通信ステップと、確保側モジュールに対して、記憶手段を代理するメモリ管理ステップと、確保側モジュールに対して、書込側モジュールを代理するモジュール代理ステップとを実行させる。
【００２９】
この発明のさらに他の局面に従うと、プログラムは、データを格納するデータ記憶手段を有するコンピュータを情報通信装置として機能させる。このプログラムはコンピュータに、通信回線を介して、データを書き込む領域の確保を要求する確保側モジュールとデータとを格納する記憶手段を備えるデータ処理装置と通信するステップと、データ記憶手段から、データの書込を要求する書込側モジュールとデータとを読み出すステップと、書込側モジュールに対して、記憶手段を代理するメモリ代理ステップと、書込側モジュールに対して、確保側モジュールを代理するモジュール代理ステップとを実行させる。
【発明の効果】
【００３０】
本発明に係る分散処理システムによると、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して処理を実行することができる。また、そのシステムに含まれる情報通信装置間のデータを同期化することができる。
【００３１】
本発明に係る情報通信装置によると、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して処理を実行可能な分散処理システムを構成することができる。
【００３２】
本発明に係る情報通信装置によると、物理的に遠隔地に配置された他の情報通信装置との間で、データを同期化することができる。
【００３３】
本発明に係るプログラムによると、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して処理を実行可能な分散処理システムを構成するための情報通信装置として、コンピュータを機能させることができる。
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３５】
図１を参照して、本発明の実施の形態に係る分散処理システムについて説明する。図１は、分散処理システムの構成の一態様を概念的に表わす図である。
【００３６】
図１に示されるように、分散処理システムは、確保装置１００と書込装置１５０とを備える。確保装置１００および書込装置１５０は、たとえば携帯電話により実現されるが、通信機能を有するその他の情報通信装置あるいはコンピュータであってもよい。
【００３７】
確保装置１００は、データとプログラムとを格納するための記憶部１４０と、格納されているデータおよびプログラムと外部から入力されるデータとに基づいて予め定められた処理を実行するための制御部１１０と、通信路１９０を介して外部とデータを通信するための通信制御部１３０とを含む。
【００３８】
記憶部１４０は、データの書込を要求するための指令を出力し得る確保側モジュール１４２を格納している。制御部１１０は、メモリ１１４と、確保装置１００におけるデータのアドレスおよび書込装置１５０におけるアドレスとを対応付けて記憶したアドレス対応表１１６を備える確保側メモリ管理部１１２と、確保側モジュール１４２に対して書込装置１５０におけるデータの書込を要求する書込側モジュール１８２を代理するための書込側モジュール代理部１１８とを含む。通信制御部１３０は、通信路１９０に接続され、制御部１１０と通信路１９０との間でデータを通信するための確保側通信インタフェース１３２を含む。
【００３９】
図１を再び参照して、書込装置１５０は、データおよびプログラムを格納するための記憶部１８０と、記憶部１８０に格納されているデータおよびプログラムと、外部から入力されるデータとに基づいて予め定められた処理を実行するための制御部１６０と、通信路１９０に接続され制御部１６０と通信路１９０との間でデータを通信するための通信制御部１７０とを含む。
【００４０】
記憶部１８０は、データの書込要求を生成して出力する書込側モジュール１８２を格納している。制御部１６０は、書込側モジュール１８２に対して確保装置１００における確保側モジュール１４２を代理するための確保側モジュール代理部１６６と、書込側モジュール１８２に対して確保装置１００における確保側メモリ管理部１１２を代理するための確保側メモリ代理部１６２とを含む。確保側メモリ代理部１６２は、メモリ１６４を含む。
【００４１】
図２を参照して、確保装置１００あるいは書込装置１５０を実現する通信機器の一態様である携帯電話２００について説明する。図２は、携帯電話２００のハードウェア構成を表わすブロック図である。
【００４２】
図２に示されるように、携帯電話２００は、アンテナ２０８と、アンテナ２０８を介してデータを通信するための通信部２０２と、外部から指示の入力を受け付けるための操作部２２０と、データを記憶するためのフラッシュメモリ２４４と、ＲＡＭ（Random Access Memory）２４６と、外部から入力されるデータおよびフラッシュメモリ２４４あるいはＲＡＭ２４６に予め格納されているデータに基づいて予め定められた処理を実行するための制御部２１０と、マイク２７２と、スピーカ２７４と、マイク２７２を介して入力される音声信号および制御部２１０が出力する信号を所定の処理に基づいて変換するための音声信号処理部２７０と、画像を表示するためのディスプレイ２５０と、ＬＥＤ（Light Emitting Diode）２７６と、外部とデータを通信するためのデータ通信ＩＦ（Interface）２７８とを含む。
【００４３】
図１および図２を参照して、確保装置１００において、確保側モジュール１４２は、たとえば携帯電話２００のフラッシュメモリ２４４に格納される。確保側メモリ管理部１１２と書込側モジュール代理部１１８とは、携帯電話２００の制御部２１０により実現される。確保側通信インタフェース１３２は、データ通信ＩＦ２７８により実現される。
【００４４】
書込装置１５０において、書込側モジュール１８２は、たとえば携帯電話２００のフラッシュメモリ２４４に格納される。確保側メモリ代理部１６２と確保側モジュール代理部１６６とは、制御部２１０により実現される。書込側通信インタフェース１７２は、データ通信ＩＦ２７８により実現される。
【００４５】
ここで、図３および図４を参照して、同一アドレス空間におけるデータ授受について説明する。図３は、確保側モジュール１４２と書込側モジュール１８２とにより行なわれるデータの授受の概念を説明するための図である。
【００４６】
確保側モジュール１４２と書込側モジュール１８２とが同一アドレス空間に存在する場合、確保側モジュール１４２は、メモリ３００に対して所定の記憶領域を確保する要求を出力する。メモリ３００は、その要求に応じて所定のデータ領域を確保する。書込側モジュール１８２は、メモリ３００における領域の確保の通知に応答して、書込むべきデータをその領域に格納する。これにより、確保側モジュール１４２と書込側モジュール１８２との間でメモリ３００の記憶領域が共有される。ここで、メモリ３００は、図２の例では、フラッシュメモリ２４４に相当する。
【００４７】
図４は、確保側モジュール１４２と書込側モジュール１８２とにより行なわれるデータの授受のための手順を表わす図である。
【００４８】
ステップＳ４１０にて、領域確保要求は、確保側モジュール１４２からメモリ３００に対して出力される。その要求は、必要とされる領域のサイズを含む。このサイズは、たとえば確保側モジュール１４２の処理により予め定められた定義に基づいて算出される。たとえば、このサイズは、特定のアプリケーションごとに、生成されるデータに応じて算出される。このアプリケーションには、たとえば携帯電話においてディスプレイに所定の画面を表示させ、サービスを提供する装置にアクセスしてデータを取得するためのプログラムが含まれるが、その他のプログラムであってもよい。
【００４９】
ステップＳ４２０にて、確保された領域の先頭アドレスは、メモリ３００から確保側モジュール１４２に通知される。ステップＳ４３０にて、処理要求が、確保側モジュール１４２から書込側モジュール１８２に通知される。この処理要求は、データを書込むべき領域の先頭アドレスおよびそのデータのサイズ５８０を含む。
【００５０】
ステップＳ４４０にて、書込側モジュール１８２は、その要求に応答して、メモリ３００の通知された先頭アドレスから、書込が指定されたデータを格納する。ステップＳ４５０にて、処理の完了通知が、書込側モジュール１８２から確保側モジュール１４２に送信される。これにより、確保側モジュール１４２は、メモリ３００に対するデータの書込の完了を検知する。
【００５１】
図５および図６を参照して、本実施の形態に係る分散処理システムにおいて通信されるデータの構造について説明する。図５および図６は、それぞれ確保装置１００と書込装置１５０との間で通信されるデータを概念的に表わす図である。
【００５２】
図５（Ａ）に示されるように、確保装置１００から書込装置１５０に送信されるデータは、送信先アドレス５００と送信元アドレス５１０と領域確保要求５２０とデータのサイズ５３０とを含む。送信先アドレス５００は、書込装置１５０の通信路１９０におけるアドレスである。送信元アドレス５１０は、確保装置１００の通信路１９０におけるアドレスである。領域確保要求５２０は、予め定められた領域の確保を指令するためのコードである。データのサイズ５３０は、領域確保要求５２０により格納することが求められているデータの大きさを表わす。
【００５３】
図５（Ｂ）に示されるように、書込装置１５０において領域が確保された後に送信されるデータは、送信先アドレス５４０と送信元アドレス５５０と処理要求５６０と書込領域の先頭アドレス５７０とデータのサイズ５８０とを含む。処理要求５６０は、通知される先頭アドレスから通知されるデータサイズの分だけ所定のデータ領域にそのデータを格納する処理を表わすためのコードである。先頭アドレス５７０は、書込装置１５０の記憶領域において確保されたデータの書込が可能なアドレスの最初の値である。
【００５４】
図６（Ａ）に示されるように、確保装置１００からの領域確保要求５２０に応答して記憶領域が確保されると、書込装置１５０は確保装置１００に確保された領域の先頭アドレスを通知する。すなわち、書込装置１５０が送信するデータは、送信先アドレス６００と送信元アドレス６１０と先頭アドレス通知６２０とそのアドレスの値６３０とを含む。送信先アドレス６００は、すなわち、確保装置１５０のアドレスである。送信元アドレス６１０は、このデータを送信する書込装置１５０のアドレスである。先頭アドレス通知６２０は、このデータ送信が先頭のアドレスを通知するための送信であることを表わす。アドレスの値６３０は、記憶領域が確保された場合のその先頭のアドレスを表わす。
【００５５】
その後、確保装置１００がこの通知に応答して書込装置１５０に処理要求（図５（Ｂ））を送信すると、書込装置１５０は確保装置１００に格納されるデータの差分を送信する。すなわち、書込装置１５０が送信するデータは、図６（Ｂ）に示されるように、送信先アドレス６００と送信元アドレス６１０とメモリ差分転送コード６６０と先頭アドレス６７０とデータのサイズ６８０とデータの本体６９０とを含む。メモリ差分転送コード６６０は、このデータ送信がメモリの差分を転送するための送信であることを表わす。データのサイズ６８０は、転送されるデータの差分の大きさを表わす。
【００５６】
図７を参照して、本実施の形態に係る分散処理システムにおける確保装置１００のアドレス対応表１１６について説明する。図７は、確保側メモリ管理部１１２に作成されるアドレス対応表１１６を表わす図である。
【００５７】
この表は、確保装置１００におけるアドレスと書込装置１５０におけるアドレスとの対応関係を維持するためのものである。すなわち確保装置１００におけるアドレスＭａは、データ領域７１０に格納される。このアドレスが対応付けられているデータが格納されているアドレスを表わすデータは、領域７２０に格納される。すなわち図７の例では「１１１１」が格納されている。この値は、領域７３０の先頭アドレスである「１１１１」に対応する。領域７３０には、アドレスＭｂの値が格納されている。これにより、確保装置１００におけるアドレスＭａは、書込装置１５０におけるアドレスＭｂと対応付けられる。
【００５８】
図８を参照して、本実施の形態に係る分散処理システムにおける確保装置１００の制御構造について説明する。図８は、確保装置１００の確保側メモリ管理部１１２が実行する処理の手順を表わすフローチャートである。
【００５９】
ステップＳ８０１にて、確保側メモリ管理部１１２は、イベントｅの入力を受け付ける。ステップＳ８０２にて、確保側メモリ管理部１１２は、そのイベントが確保側モジュール１４２からの領域確保要求であるか否かを判断する。この判断は、たとえば入力されたイベントに含まれるデータに基づいて行なわれる。そのイベントが領域確保要求である場合には（ステップＳ８０２にてＹＥＳ）、処理はステップＳ８０６に移される。そうでない場合には（ステップＳ８０２にてＮＯ）、処理はステップＳ８０３に移される。
【００６０】
ステップＳ８０３にて、確保側メモリ管理部１１２は、その入力が確保側通信インタフェース１３２から先頭アドレス（Ｍｂ）であるか否かを判断する。この判断は、イベントに含まれるデータの送信元あるいはデータに基づいて行なわれる。その入力が先頭アドレスであると判断すると（ステップＳ８０３にてＹＥＳ）、処理はステップＳ８０８に移される。そうでない場合には（ステップＳ８０３にてＮＯ）、処理はステップＳ８０４に移される。
【００６１】
ステップＳ８０４にて、確保側メモリ管理部１１２は、書込側モジュール代理部１１８からアドレス変換要求を受信したか否かを判断する。その要求を受信した場合には（ステップＳ８０４にてＹＥＳ）、処理はステップＳ８１０に移される。そうでない場合には（ステップＳ８０４にてＮＯ）、処理はステップＳ８０５に移される。
【００６２】
ステップＳ８０５にて、確保側メモリ管理部１１２は、確保側通信インタフェース１３２からメモリの差分データの転送分を受信したか否かを判断する。この判断は、たとえば受信データに含まれるデータに基づいて行なわれる。データの差分を受信したと判断すると（ステップＳ８０５にてＹＥＳ）、処理はステップＳ８１１に移される。そうでない場合には（ステップＳ８０５にてＮＯ）、処理はステップＳ８０１に戻される。
【００６３】
ステップＳ８０６にて、確保側メモリ管理部１１２は、指定されたサイズの領域を確保し、確保した先頭アドレス（Ｍａ）を返信する。ステップＳ８０７にて、確保側メモリ管理部１１２は、確保側通信インタフェース１３２へ指定された大きさ分の領域確保要求を送信する。
【００６４】
ステップＳ８０８にて、確保側メモリ管理部１１２は、確保側および書込側のそれぞれのアドレスをアドレス対応表１１６に関連付けて格納する。ステップＳ８０９にて、確保側メモリ管理部１１２は、確保側モジュール１４２に先頭アドレスＭａを送信する。
【００６５】
ステップＳ８１０にて、確保側メモリ管理部１１２は、アドレスＭａに基づいて、書込側モジュール１８２のアドレス空間に対応するアドレス（Ｍｂ）をアドレス対応表１１６から取出し、確保側通信インタフェース１３２を介して、書込側モジュール代理部１１８に送信する。
【００６６】
ステップＳ８１１にて、確保側メモリ管理部１１２は、アドレス対応表１１６に格納されているアドレスＭｂを確保側アドレスＭａに変換し、受信したデータの内容（ｄａｔａｂｏｄｙ）をメモリ１１４に格納する。ステップＳ８１２にて、確保側メモリ管理部１１２は、アドレスＭａが含まれる処理完了通知を表わすＡＣＫを生成して、確保側モジュール１４２に、そのＡＣＫを送信する。
【００６７】
図９を参照して、本実施の形態に係る分散処理システムに含まれる確保装置１００の制御構造についてさらに説明する。図９は、確保装置１００の確保側通信インタフェース１３２が実行する処理の手順を表わすフローチャートである。
【００６８】
ステップＳ９０１にて、確保側通信インタフェース１３２は、イベントｅの入力を受け付ける。ステップＳ９０２にて、確保側通信インタフェース１３２は、そのイベントが確保側メモリ管理部１１２から出力された領域確保要求であるか否かを判断する。この判断は、たとえばそのイベントに含まれているデータに基づいて行なわれる。そのイベントが領域確保要求である場合には（ステップＳ９０２にてＹＥＳ）、処理はステップＳ９０６に移される。そうでない場合には（ステップＳ９０２にてＮＯ）、処理はステップＳ９０３に移される。
【００６９】
ステップＳ９０３にて、確保側通信インタフェース１３２は、書込装置１５０の書込側通信インタフェース１７２から先頭アドレスを受信したか否かを判断する。この判断は、たとえば通信データに含まれるデータが有する属性に基づいて行なわれる。先頭アドレスを受信した場合には（ステップＳ９０３にてＹＥＳ）、処理はステップＳ９０７に移される。そうでない場合には（ステップＳ９０３にてＮＯ）、処理はステップＳ９０４に移される。
【００７０】
ステップＳ９０４にて、確保側通信インタフェース１３２は、書込側モジュール代理部１１８から処理要求を受信したか否かを判断する。ここで、処理要求とは、指定されるアドレスにデータを格納する指令をいう。この判断は、たとえば入力されたイベントに含まれるデータに基づいて行なわれる。処理要求を受信した場合には（ステップＳ９０４にてＹＥＳ）、処理はステップＳ９０８に移される。そうでない場合には（ステップＳ９０４にてＮＯ）、処理はステップＳ９０５に移される。
【００７１】
ステップＳ９０５にて、確保側通信インタフェース１３２は、書込側通信インタフェース１７２からメモリ差分転送データを受信したか否かを判断する。この判断は、たとえば受信したデータに含まれる項目の属性に基づいて行なわれる。受信したデータがメモリ差分データの転送である場合には（ステップＳ９０５にてＹＥＳ）、処理はステップＳ９０９に移される。そうでない場合には（ステップＳ９０５にてＮＯ）、処理はステップＳ９０１に戻される。
【００７２】
ステップＳ９０６にて、確保側通信インタフェース１３２は、書込側通信インタフェース１７２に領域確保要求を送信する。この要求は、少なくとも領域の確保がされるべきデータのサイズを含む。ステップＳ９０７にて、確保側通信インタフェース１３２は、確保側メモリ管理部１１２に受信した先頭アドレスＭｂを送信する。
【００７３】
ステップＳ９０８にて、確保側通信インタフェース１３２は、書込側通信インタフェース１７２に処理要求を送信する。この要求は、先頭アドレスＭｂとデータサイズ（ｓｉｚｅ）を含む。
【００７４】
ステップＳ９０９にて、確保側通信インタフェース１３２は、確保側メモリ管理部１１２へメモリ差分データを送信する。送信されるデータは、先頭アドレスＭｂとデータサイズ（ｓｉｚｅ）と差分データの内容（ｄａｔａｂｏｄｙ）を含む。
【００７５】
図１０を参照して、本実施の形態に係る分散処理システムに含まれる確保装置１００の制御構造についてさらに説明する。図１０は、確保装置１００の書込側モジュール代理部１１８が実行する処理の手順を表わすフローチャートである。
【００７６】
ステップＳ１００１にて、書込側モジュール代理部１１８は、イベントｅの入力を受け付ける。ステップＳ１００２にて、書込側モジュール代理部１１８は、そのイベントが確保側モジュール１４２からの処理要求であるか否かを判断する。この判断は、たとえばそのイベントに含まれるデータに基づいて行なわれる。そのイベントが処理要求である場合には（ステップＳ１００２にてＹＥＳ）、処理はステップＳ１００４に移される。そうでない場合には（ステップＳ１００２にてＮＯ）、処理はステップＳ１００３に移される。
【００７７】
ステップＳ１００３にて、書込側モジュール代理部１１８は、確保側メモリ管理部１１２から先頭アドレスＭｂを受信したか否かを判断する。この判断は、そのイベントに含まれるデータに基づいて行なわれる。先頭アドレスを受信した場合には（ステップＳ１００３にてＹＥＳ）、処理はステップＳ１００５に移される。そうでない場合には（ステップＳ１００３にてＮＯ）、処理はステップＳ１００１に戻される。
【００７８】
ステップＳ１００４にて、書込側モジュール代理部１１８は、確保側メモリ管理部１１２に先頭アドレスＭａの変換要求を送信する。ステップＳ１００５にて、書込側モジュール代理部１１８は、確保側通信インタフェース１３２へ処理要求を送信する。この要求は、先頭アドレスＭｂとデータのサイズ（ｓｉｚｅ）とを含む。
【００７９】
図１１を参照して、本実施の形態に係る分散処理システムに含まれる書込装置１５０の制御構造について説明する。図１１は、書込装置１５０の書込側通信インタフェース１７２が実行する処理の手順を表わすフローチャートである。
【００８０】
ステップＳ１１０１にて、書込側通信インタフェース１７２は、イベントｅの入力を受け付ける。ステップＳ１１０２にて、書込側通信インタフェース１７２は、そのイベントが確保装置１００の確保側通信インタフェース１３２からの領域確保要求であるか否かを判断する。この判断は、たとえばそのイベントに含まれるデータに基づいて行なわれる。そのイベントが領域確保要求である場合には（ステップＳ１１０２にてＹＥＳ）、処理はステップＳ１１０６に移される。そうでない場合には（ステップＳ１１０２にてＮＯ）、処理はステップＳ１１０３に移される。
【００８１】
ステップＳ１１０３にて、書込側通信インタフェース１７２は、確保側メモリ代理部１６２から先頭アドレスＭｂを受信したか否かを判断する。この判断は、たとえば入力されたイベントデータに先頭アドレスを表わすデータが含まれる否かに基づいて行なわれる。先頭アドレスを受信したと判断すると（ステップＳ１１０３にてＹＥＳ）、処理はステップＳ１１０７に移される。そうでない場合には（ステップＳ１１０３にてＮＯ）、処理はステップＳ１１０４に移される。
【００８２】
ステップＳ１１０４にて、書込側通信インタフェース１７２は、確保側通信インタフェース１３２から処理要求を受信したか否かを判断する。この要求は、先頭アドレスＭｂと領域の大きさを表わすデータ（ｓｉｚｅ）とを含む。この判断は、たとえば受信データに含まれるデータに基づいて行なわれる。処理要求を受信したと判断すると（ステップＳ１１０４にてＹＥＳ）、処理はステップＳ１１０８に移される。そうでない場合には（ステップＳ１１０４にてＮＯ）、処理はステップＳ１１０５に移される。
【００８３】
ステップＳ１１０５にて、書込側通信インタフェース１７２は、確保側メモリ代理部１６２からメモリ差分転送データを受信したか否かを判断する。ここで、メモリ差分データとは、メモリ１６４において更新されることにより内容が変更されたデータをいう。このデータを受信したと判断すると（ステップＳ１１０５にてＹＥＳ）、処理はステップＳ１１０９に移される。そうでない場合には（ステップＳ１１０５にてＮＯ）、処理はステップＳ１１０１に戻される。
【００８４】
ステップＳ１１０６にて、書込側通信インタフェース１７２は、確保側メモリ代理部１６２へ領域確保要求を送信する。この要求は、データとしてデータのサイズ（ｓｉｚｅ）を含む。ステップＳ１１０７にて、書込側通信インタフェース１７２は、確保側通信インタフェース１３２にメモリ１６４における先頭アドレス（Ｍｂ）を送信する。ステップＳ１１０８にて、書込側通信インタフェース１７２は、書込側モジュール１８２に処理要求を送信する。この要求は、メモリ１６４における先頭アドレスＭｂとデータのサイズ（ｓｉｚｅ）を含む。ステップＳ１１０９にて、書込側通信インタフェース１７２は、確保側通信インタフェース１３２へメモリ差分転送のデータを送信する。このデータは、先頭アドレス（Ｍｂ）とデータのサイズ（ｓｉｚｅ）とデータの本体（ｄａｔａｂｏｄｙ）とを含む。
【００８５】
図１２を参照して、本実施の形態に係る分散処理システムに含まれる書込装置１５０の制御構造についてさらに説明する。図１２は、書込装置１５０の確保側メモリ代理部１６２が実行する処理の手順を表わすフローチャートである。
【００８６】
ステップＳ１２０１にて、確保側メモリ代理部１６２は、イベントｅの入力を受け付ける。ステップＳ１２０２にて、確保側メモリ代理部１６２は、入力されたイベントが確保側通信インタフェース１３２からの領域確保要求であるか否かを判断する。この判断は、たとえばそのイベントに含まれるデータの中にそのような要求が含まれているか否かを検知することにより行なわれる。イベントが領域確保要求である場合には（ステップＳ１２０２にてＹＥＳ）、処理はステップＳ１２０５に移される。そうでない場合には（ステップＳ１２０２にてＮＯ）、処理はステップＳ１２０３に移される。
【００８７】
ステップＳ１２０３にて、確保側メモリ代理部１６２は、イベントが書込側モジュール１８２からの処理結果の書込であるか否かを判断する。イベントがその処理結果の書込である場合には（ステップＳ１２０３にてＹＥＳ）、処理はステップＳ１２０７に移される。そうでない場合には（ステップＳ１２０３にてＮＯ）、処理はステップＳ１２０４に移される。
【００８８】
ステップＳ１２０４にて、確保側メモリ代理部１６２は、確保側モジュール代理部１６６からメモリ差分転送要求を受信したか否かを判断する。この判断は、入力されるデータに含まれる項目に基づいて行なわれる。その要求を受信したと判断すると（ステップＳ１２０４にてＹＥＳ）、処理はステップＳ１２０８に移される。そうでない場合には（ステップＳ１２０４にてＮＯ）、処理はステップＳ１２０１に戻される。
【００８９】
ステップＳ１２０５にて、確保側メモリ代理部１６２は、メモリ１６４において指定されたサイズの領域を確保する。この場合、その領域の先頭アドレスはＭｂである。ステップＳ１２０６にて、確保側メモリ代理部１６２は、書込側通信インタフェース１７２にその領域の先頭アドレス（Ｍｂ）を送信する。
【００９０】
ステップＳ１２０７にて、確保側メモリ代理部１６２は、書込側アドレス空間に確保した領域に処理結果を書込む。このとき書込まれた連続領域は、先頭アドレスとサイズとの組からなるリストＬとして保持される。ステップＳ１２０８にて、確保側メモリ代理部１６２は、書込側通信インタフェース１７２に対し、先頭アドレスＭｂとデータサイズ（ｓｉｚｅ）の領域においてデータの書込があった箇所のみを、先に作成されたリストＬに基づいて送信する。
【００９１】
図１３を参照して、書込装置１５０の制御構造についてさらに説明する。図１３は、確保側モジュール代理部１６６が実行する処理の手順を表わすフローチャートである。
【００９２】
ステップＳ１３０１にて、確保側モジュール代理部１６６は、イベントｅの入力を受け付ける。ステップＳ１３０２にて、確保側モジュール代理部１６６は、そのイベントが書込側モジュール１８２からの処理完了の通知であるか否かを判断する。この判断はイベントに含まれるデータに基づいて行なわれる。そのイベントが処理完了通知である場合には（ステップＳ１３０２にてＹＥＳ）、処理はステップＳ１３０４に移される。そうでない場合には（ステップＳ１３０２にてＮＯ）、処理はステップＳ１３０３に移される。
【００９３】
ステップＳ１３０３にて、確保側モジュール代理部１６６は、確保側メモリ代理部１６２からメモリの差分データの転送を表わすメモリ差分転送ＡＣＫを受信したか否かを判断する。この判断は、たとえば入力されたイベントにそのようなＡＣＫが含まれているか否かを検知することにより行なわれる。ＡＣＫを受信したと判断すると（ステップＳ１３０３にてＹＥＳ）、処理はステップＳ１３０５に移される。そうでない場合には（ステップＳ１３０３にてＮＯ）、処理はステップＳ１３０１に戻される。
【００９４】
ステップＳ１３０４にて、確保側モジュール代理部１６６は、確保側メモリ代理部１６２にメモリ差分転送要求を送信する。ステップＳ１３０５にて、確保側モジュール代理部１６６は、書込側通信インタフェース１７２に処理完了通知ＡＣＫを送信する。
【００９５】
以上のような構造およびフローチャートに基づく、本実施の形態に係る分散処理システムの動作について図１４を参照しつつ説明する。図１４は、確保装置１００と書込装置１５０とが実行する処理を説明するための図である。
【００９６】
確保側モジュール１４２が確保側メモリ管理部１１２に領域確保要求を出力すると（ステップＳ８０２）、確保側メモリ管理部１１２は、その要求に含まれるデータのサイズ（ｓｉｚｅ）に基づいて領域を確保する（ステップＳ８０６）。この領域の先頭アドレスは、Ｍａである。
【００９７】
確保側メモリ管理部１１２が確保側通信インタフェース１３２に領域確保要求を送信すると（ステップＳ８０７，Ｓ９０２）、確保側通信インタフェース１３２は、通信路１９０を介して書込装置の書込側通信インタフェース１７２にその要求を送信する（ステップＳ９０６，Ｓ１１０２）。
【００９８】
書込装置１５０において、書込側通信インタフェース１７２は、受信した領域確保要求を確保側メモリ代理部１６２に送信すると（ステップＳ１１０６，Ｓ１２０２）、確保側メモリ代理部１６２は、その要求に含まれるデータのサイズ（ｓｉｚｅ）に基づいてメモリ１６４に領域を確保する（ステップＳ１２０５）。この領域の先頭アドレスは、Ｍｂである。確保側メモリ代理部１６２が書込側通信インタフェース１７２にその先頭アドレス（Ｍｂ）を通知すると（ステップＳ１２０６，Ｓ１１０３）、書込側通信インタフェース１７２は、通信路１９０を介して確保装置１００の確保側通信インタフェース１３２に、そのアドレスを送信する（ステップＳ１１０７，Ｓ９０３）。
【００９９】
確保装置１００において、確保側通信インタフェース１３２が確保側メモリ管理部１１２にそのアドレス（Ｍｂ）を送信すると（ステップＳ９０７，Ｓ８０３）、確保側メモリ管理部１１２は、先に取得したアドレスＭａと受信したアドレスＭｂとを対応付けてアドレス対応表１１６に格納する（ステップＳ８０８）。確保側メモリ管理部１１２が先頭アドレスＭａを確保側モジュール１４２に送信すると（ステップＳ８０９）、処理要求が確保側モジュール１４２から書込側モジュール代理部１１８に出力される（ステップＳ１００２）。書込側モジュール代理部１１８がその要求に応答して確保側メモリ管理部１１２にアドレス変換要求を出力すると（ステップＳ１００４，Ｓ８０４）、確保側メモリ管理部１１２は、アドレス対応表１１６に格納されているアドレスＭａとＭｂとの対応関係に基づいてアドレスＭｂを取得し書込側モジュール代理部１１８にそのアドレスを通知する（ステップＳ８１０，Ｓ１００３）。書込側モジュール代理部１１８が確保側通信インタフェース１３２に処理要求を送信すると（ステップＳ１００５，Ｓ９０４）、確保側通信インタフェース１３２は、通信路１９０を介して書込側通信インタフェース１７２に処理要求（ステップＳ９０８，Ｓ１１０４）を送信する。
【０１００】
書込装置１５０において、書込側通信インタフェース１７２が書込側モジュール１８２に処理要求を送信すると（ステップＳ１１０８）、書込側モジュール１８２はその要求に応答して処理結果を書込む（ステップＳ１２０３）。ここで、処理結果とは、たとえばアプリケーションプログラムの実行によって生成されるデータである。その書込が完了すると、書込側モジュール１８２は、確保側モジュール代理部１６６に処理完了通知を送信する。確保側モジュール代理部１６６は、その通知に応答して確保側メモリ代理部１６２にメモリ差分転送を要求する（ステップＳ１２０４）。確保側メモリ代理部１６２が書込側通信インタフェース１７２にメモリ差分転送を実行すると（ステップＳ１２０８，Ｓ１１０５）、書込側通信インタフェース１７２は、通信路１９０を介して、確保側通信インタフェース１３２に差分データを転送する（ステップＳ１１０９，Ｓ９０５）。
【０１０１】
確保装置１００において、確保側通信インタフェース１３２が確保側メモリ管理部１１２にメモリ差分転送を実行すると（ステップＳ９０９，Ｓ８０５）、確保側メモリ管理部１１２は、転送データに含まれている差分データをメモリ１１４に格納する（ステップＳ８１１）。メモリ１１４に対するデータの更新が完了すると（ステップＳ８１１）、確保側メモリ管理部１１２は、確保側モジュール１４２に処理完了通知ＡＣＫを送信する（ステップＳ８１２）。
【０１０２】
ここで、図１５を参照して、本実施の形態に係る分散処理システムにおけるデータの書込について説明する。図１５は、メモリ１１４におけるデータの書込を説明するための図である。
【０１０３】
以下、第１のデータと第２のデータとをメモリ１１４に書込む場合について説明する。第１のデータは、メモリ１１４の先頭アドレスから第１のオフセットすなわち１００バイトずれた位置から１４０バイトの領域だけ格納される。第２のデータは、先頭領域から３００バイトずれた位置にある第２のオフセットから６０バイトの領域に格納される。
【０１０４】
図１６を参照して、本実施の形態において通信される差分データの構成について説明する。図１６は、書込装置１５０から確保装置１００に送信されるデータの構造を概念的に表わす図である。
【０１０５】
送信ヘッダは、領域１６１０に格納される。この送信ヘッダは、データの送信先である確保装置１００のアドレスとデータの送信元である書込装置１５０のアドレスとを含む。更新されるデータの件数を表わすデータは、領域１６２０に格納される。第１のデータが格納されるアドレス、すなわちメモリの先頭アドレスからのオフセット量は、領域１６３０に格納される。第１のデータのサイズは、領域１６４０に格納される。第２のデータが格納されるアドレスは、領域１６５０に格納される。第２のデータのサイズは、領域１６６０に格納される。第１のデータの実データ（すなわちｄａｔａｂｏｄｙ）は、領域１６７０に格納される。第２のデータの実データは、領域１６８０に格納される。
【０１０６】
図１６の例では、送信データは、２件の更新されたデータ（領域１６２０）を含む。１件目のデータは、１００バイト目から１４０バイトの記憶領域に格納される。２件目のデータは、３００バイト目から６０バイトの記憶領域に格納される。
【０１０７】
このように、送信データの構成は、更新されるべきデータの件数およびサイズに応じて変わるため、分散処理システムにおけるデータの転送時に、転送時間を必要最小限に短くすることができる。
【０１０８】
ここで、図１７を参照して、本発明の実施の形態に係る分散処理システムの具体的な構成について説明する。図１７は、携帯電話１７０２，１７０４により構成される分散処理システムの構成を表わす図である。このシステムは、携帯電話１７０２と携帯電話１７０４とを遠隔地（たとえば、日本と欧州の一カ国）に配置し、インターネットを介して、各携帯電話を接続することにより構成される。ここで、携帯電話１７０２は、たとえば図１における確保装置１００として機能する。携帯電話１７０４は、図１における書込装置１５０として機能する。
【０１０９】
一般に、物理的に遠隔地に配置された情報通信システムにより構成されるシステムでは、各々の携帯電話が、物理的に遠隔地に配置されているため、通信データの伝送速度が、実際の使用環境における速度よりも遅くなる場合がある。このとき、いずれかの携帯電話におけるデータの更新に時間を要したり、データが更新される前のデータに基づいて、処理がさらに実行されたりする場合がある。この場合、各々の携帯電話のメモリのデータは、通信前に同一であったものが、携帯電話による処理の実行に応じて、異なるデータになる場合がある。すなわち、各携帯電話のメモリにおけるデータの同期が失われる場合が生じる。このような場合、本発明に係る分散処理システムを構成することにより、物理的に遠隔地に配置された携帯電話におけるデータの同期を維持することができる。
【０１１０】
図１７に示されるように、携帯電話１７０２は、ネットワーク１７９２を介して携帯電話１７０４に接続されている。携帯電話１７０４は、ネットワーク１７９０を介して、外部からのアクセスに応じて情報を出力可能なサービス１７００と通信可能である。
【０１１１】
携帯電話１７０２は、ブラウザ１７１０と、ソケットリレーモジュール１７２０と、通信層１７３０と、ネットワーク１７９２に接続されたケーブル（図示しない）を接続するための端子（図示しない）とを含む。ブラウザ１７１０は、たとえばモニタ（図示しない）においてメモリ（図示しない）に格納されているプログラムにより実現される。ブラウザ１７１０は、ユーザの操作に応答して、そのモニタに、その操作に対応した情報、あるいは外部から受信した情報を表示する。ソケットリレーモジュール１７２０は、たとえばそのメモリに格納されており、後述するデータの通信のための各処理を実現する。
【０１１２】
このモジュールは、上述の実施の形態における確保側モジュール１４２あるいは書込側モジュールとして機能する。また、このソケットリレーモジュール１７２０は、携帯電話１７０２の通信テストが実行される間、メモリに格納されており、そのテストの終了後は、そのメモリから削除されるものであるが、削除されなくてもよい。この場合、テスト後（すなわち、実際の使用時）に、そのモジュールによる機能が実行されないように、特定のパラメータを外部から入力可能な構成にしてもよい。
【０１１３】
携帯電話１７０４は、ブラウザ１７４０と、ソケットリレーモジュール１７５０と、通信層１７６０と、アンテナ１７７０と、ネットワーク１７９２に接続されたケーブル（図示しない）を接続するための端子（図示しない）とを含む。ブラウザ１７４０は、ブラウザ１７１０と同様の機能を実現するためのソフトウェアである。
【０１１４】
携帯電話１７０２において、ブラウザ１７１０に対する指令が、ボタン、数字キー等の入力部（図示しない）を介して携帯電話１７０２に入力されると、その指令は、ソケットリレーモジュール１７２０と称されるソフトウェアインタフェースを介して、ネットワーク１７９２に出力される。このネットワーク１７９２は、たとえばインターネットである。この場合、ブラウザ１７１０の機能を実現するためのプログラムは、その操作に応答して、通常の通信処理を実行する指令を出力する。すなわち、携帯電話１７０２において、ブラウザ１７１０は、通信層１７３０が本来有する通信機能によりサービス１７００に接続するかのように、通常の指令を出力する。
【０１１５】
ソケットリレーモジュール１７２０は、指令の出力に応答して、サービス１７００にアクセスするための情報を生成して、携帯電話１７０４に送信する。携帯電話１７０４は、その情報に基づいて、サービス１７００にアクセスする。このとき、携帯電話１７０４が実行中の処理により生成されたデータをメモリ（図示しない）に格納する場合、携帯電話１７０２は、携帯電話１７０４に領域の確保要求を送信する。携帯電話１７０４は、その要求に応答して、自己のメモリに要求に応じたサイズの領域を排他的に確保する。すなわち、新たな確保要求が出力されても、その領域は、その新たな要求によって確保されない。携帯電話１７０４はさらに、携帯電話１７０２に、その領域のアドレスを送信する。
【０１１６】
携帯電話１７０２は、そのアドレスと、自己の内部に確保した領域のアドレスとを関連付けて、メモリ（図示しない）の所定の領域に格納する。携帯電話１７０２は、携帯電話１７０４に対して、携帯電話１７０４において確保された領域のアドレスを有する処理要求を送信する。
【０１１７】
携帯電話１７０４は、処理要求に応じて、先に確保した領域のアドレスを参照して、データを格納する。携帯電話１７０４は、格納されたデータの中から、内容が更新されたデータを読み出して、携帯電話１７０２に、そのデータを転送する。携帯電話１７０２は、そのデータの受信に応じて、先に確保した領域のアドレスを参照して、転送されたデータを格納する。
【０１１８】
これにより、物理的に遠隔地に配置された携帯電話１７０２，１７０４は、処理の実行中にデータを更新する場合、各々が有するメモリに排他的に確保した領域のアドレスを、通信相手の携帯電話に送信して、その領域におけるデータの更新を、排他的に実行する。また、このとき、そのアドレスに格納されるデータのすべてが通信されるわけではなく、実際に更新されたデータ（差分データ）が送信される。その結果、携帯電話１７０２，１７０４におけるデータの同期が維持されるとともに、データ通信による時間を必要最小限にすることができる。
【０１１９】
以上のようにして、本実施の形態に係る分散処理システムによると、本来、同一アドレス空間に属する確保側モジュールと書込側モジュールとを変更することなく、別アドレス空間にそれぞれ分散して配置したり、分散して実行することができる。これにより、通信装置から遠隔の地にしか存在しないサービスを利用したテスト、たとえばデバッグ・テストなどを実行することができる。
【０１２０】
なお、本実施の形態においては、分散処理システムは、たとえば携帯電話により実現可能なものとして説明したが、その他の情報処理装置によっても実現され得る。たとえば、ネットワークに接続可能なコンピュータにより、本発明に係る分散処理システムを構成することができる。
【０１２１】
ここで、図１８を参照して、本実施の形態に係る確保装置１００あるいは書込装置１５０を実現するためのコンピュータシステム１８００について説明する。図１８は、コンピュータシステム１８００のハードウェア構成を表わすブロック図である。
【０１２２】
図１８に示されるように、コンピュータシステム１８００は、相互にデータバスで接続された他のハードウェアの動作を制御するためのＣＰＵ１８１０と、外部から指示あるいはデータの入力を受け付けるためのマウス１８２０、キーボード１８３０と、演算用のデータを一時的に格納するためのメモリ１８４０と、固定ディスク１８５０と、ＦＤ（Flexible Disk）駆動装置１８６０と、ＣＤ−ＲＯＭ駆動装置１８７０と、モニタ１８９０と、ネットワーク（図示しない）を介して他の通信装置と接続され所定のプロトコルに基づいて情報通信を行なうための通信ＩＦ１８８０とを含む。ＦＤ駆動装置１８６０には、ＦＤ１８６２が装着される。ＣＤ−ＲＯＭ駆動装置１８７０には、ＣＤ−ＲＯＭ１８７２が装着される。
【０１２３】
コンピュータシステム１８００が確保装置１００として機能する場合には、制御部１１０は、ＣＰＵ１８１０により実現される。確保側通信インタフェース１３２は、ＣＰＵ１８１０と通信ＩＦ１８８０とメモリ１８４０に格納されたプログラムとにより実現される。記憶部１４０は、メモリ１８４０あるいは固定ディスク１８５０などの記憶装置により実現される。
【０１２４】
同様にコンピュータシステム１８００が書込装置１５０として機能する場合には、確保側メモリ代理部１６２と確保側モジュール代理部１６６とを有する制御部１６０は、ＣＰＵ１８１０により実現される。書込側通信インタフェース１７２は、ＣＰＵ１８１０と通信ＩＦ１８８０とメモリ１８４０その他の記録媒体に格納されたプログラムとにより実現される。記憶部１８０は、メモリ１８４０あるいは固定ディスク１８５０により実現される。
【０１２５】
このように確保装置１００を実現するコンピュータシステム１８００における処理は、各ハードウェアおよびＣＰＵ１８１０により実行されるソフトウェアによって実現される。このようなソフトウェアは、メモリ１８４０あるいは固定ディスク１８５０に予め記憶されている場合がある。また、ＦＤ１８６２あるいはＣＤ−ＲＯＭ１８７２その他の記録媒体に格納されて流通し、ＦＤ駆動装置１８６０あるいはＣＤ−ＲＯＭ駆動装置１８７０によりその記録媒体から読取られて、固定ディスク１８５０に一旦格納される場合もある。そのソフトウェアは、メモリ１８４０あるいは固定ディスク１８５０から読出されて、ＣＰＵ１８１０によって実行される。図１８に示したコンピュータシステム１８００のハードウェア自体は、一般的なものである。各ハードウェアの動作は周知である。したがって、ここではそれらについての説明は繰り返さない。
【０１２６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１２７】
本発明は、複数の情報通信装置により構成される通信システム、たとえば遠隔地に配置された複数の携帯電話により構成されるシステムに適用可能である。
【図面の簡単な説明】
【０１２８】
【図１】本発明の実施の形態に係る分散処理システムの構成の一態様を概念的に表わす図である。
【図２】図１に含まれる確保装置あるいは書込装置を実現する携帯電話のハードウェア構成を表わすブロック図である。
【図３】確保側モジュールと書込側モジュールとにより行なわれるデータの授受の概念を説明するための図である。
【図４】確保側モジュールと書込側モジュールとにより行なわれるデータの授受のための手順を表わす図である。
【図５】確保装置と書込装置との間で通信されるデータを概念的に表わす図（その１）である。
【図６】確保装置と書込装置との間で通信されるデータを概念的に表わす図（その２）である。
【図７】確保側メモリ管理部に作成されるアドレス対応表を表わす図である。
【図８】確保装置が実行する処理の手順を表わすフローチャート（その１）である。
【図９】確保装置が実行する処理の手順を表わすフローチャート（その２）である。
【図１０】確保装置が実行する処理の手順を表わすフローチャート（その３）である。
【図１１】書込装置が実行する処理の手順を表わすフローチャート（その１）である。
【図１２】書込装置が実行する処理の手順を表わすフローチャート（その２）である。
【図１３】書込装置が実行する処理の手順を表わすフローチャート（その３）である。
【図１４】確保装置と書込装置とが実行する処理を説明するための図である。
【図１５】確保装置のメモリにおけるデータの書込を説明するための図である。
【図１６】書込装置から確保装置に送信されるデータの構造を概念的に表わす図である。
【図１７】本発明の実施の形態に係る携帯電話により構成される分散処理システムの構成を表わす図である。
【図１８】本発明の実施の形態に係る確保装置あるいは書込装置を実現するためのコンピュータシステムのハードウェア構成を表わすブロック図である。
【符号の説明】
【０１２９】
１００  確保装置、１１０，１６０  制御部、１１４，１６４，３００，１７８０  メモリ、１１６  アドレス対応表、１１８  書込側モジュール代理部、１３０，１７０  通信制御部、１３２  確保側通信インタフェース、１４０，１８０  記憶部、１４２  確保側モジュール、１５０  書込装置、１６２  確保側メモリ代理部、１６６  確保側モジュール代理部、１８２  書込側モジュール、１７２  書込側通信インタフェース、１９０  通信路、２００  携帯電話、２０２  通信部、２０８  アンテナ、２２０  操作部、２４４  フラッシュメモリ、２４６  ＲＡＭ、２７０  音声信号処理部、２７２  マイク、２７４  スピーカ、２５０  ディスプレイ、２７６  ＬＥＤ、２７８  データ通信ＩＦ、１７０２，１７０４  携帯電話、１７１０，１７４０  ブラウザ、１７２０，１７５０  ソケットリレーモジュール、１７３０，１７６０  通信層、１７７０  アンテナ、１７８０  基地局、１７９０，１７９２  ネットワーク、１８００  コンピュータシステム、１８１０  ＣＰＵ、１８２０  マウス、１８３０  キーボード、１８５０  固定ディスク、１８６０  ＦＤ駆動装置、１８６２  ＦＤ、１８７０  ＣＤ−ＲＯＭ駆動装置、１８７２  ＣＤ−ＲＯＭ、１８８０  通信ＩＦ、１８９０  モニタ。
【図１】
2006023997.tif 000003
【図２】
2006023997.tif 000004
【図３】
2006023997.tif 000005
【図４】
2006023997.tif 000006
【図５】
2006023997.tif 000007
【図６】
2006023997.tif 000008
【図７】
2006023997.tif 000009
【図８】
2006023997.tif 000010
【図９】
2006023997.tif 000011
【図１０】
2006023997.tif 000012
【図１１】
2006023997.tif 000013
【図１２】
2006023997.tif 000014
【図１３】
2006023997.tif 000015
【図１４】
2006023997.tif 000016
【図１５】
2006023997.tif 000017
【図１６】
2006023997.tif 000018
【図１７】
2006023997.tif 000019
【図１８】
2006023997.tif 000020