(57)【要約】【課題】常時接続されないような不安定な通信リンクを使用する通信環境であっても、サービスの提供および享受を円滑に行い得る分散処理システムを提供すること。【解決手段】本発明による分散処理システムは、利用者側ノードと、利用者側ノードにアクセスしようとした相手ノードに対して、利用者側ノードに代わって、安定的に接続されるネットワークを介して応答することが可能な代理ノードとを有する。代理ノードは、相手ノードからパケット信号を受信する受信手段と、パケット信号に含まれる通信セッション識別子に基づいて、代理ノード上で動作するプログラムにパケット信号内のデータを受け渡す手段と、利用者側ノードに対してパケット信号を転送する転送手段を有する。利用者側ノードは、パケット信号に含まれる通信セッション識別子に基づいて、利用者側ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段を有する。【選択図】　　図１
2004080277.tif 000002
【特許請求の範囲】
【請求項１】
利用者側ノードと、前記利用者側ノードにアクセスしようとした相手ノードに対して、前記利用者側ノードに代わって、安定的に接続されるネットワークを介して応答することが可能な代理ノードとを有する分散処理システムであって、前記代理ノードが、
前記相手ノードからパケット信号を受信する受信手段と、
前記パケット信号に含まれる通信セッション識別子に基づいて、前記代理ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段と、
前記利用者側ノードに対して前記パケット信号を転送する転送手段
を有し、前記利用者側ノードが、
前記パケット信号に含まれる通信セッション識別子に基づいて、前記利用者側ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段
を有することを特徴とする分散処理システム。
【請求項２】
請求項１記載の分散処理システムにおいて、前記利用者側ノードの発するパケット信号の発信元、および前記代理ノードの発するパケット信号の発信元として、前記代理ノードのノード識別アドレスが指定されており、前記相手ノードの発する信号の発信先に代理ノードのノード識別アドレスが指定されていることを特徴とする分散処理システム。
【請求項３】
請求項１記載の分散処理システムにおいて、更に、前記代理ノードと前記利用者側ノードのデータを同期させ、両ノードのプログラムから同一のデータを取り扱うことを可能にする手段を有することを特徴とする分散処理システム。
【請求項４】
請求項１記載の分散処理システムにおいて、更に、前記代理ノードを経由せずに、前記相手ノードと前記利用者側ノードが通信することを可能にする手段を有することを特徴とする分散処理システム。
【請求項５】
請求項１記載の分散処理システムにおいて、前記利用者ノードと前記代理ノードとの間の通信リンクの状態を監視および制御し、所定の状態変化が生じたことを所定のプログラムに通知するイベント監視制御手段を有することを特徴とする分散処理システム。
【請求項６】
請求項１記載の分散処理システムにおいて、前記利用者側ノードおよび前記代理ノードの処理能力に関する情報を管理するノード情報管理手段を有することを特徴とする分散処理システム。
【請求項７】
利用者側ノードにアクセスしようとした相手ノードに対して、前記利用者側ノードに代わって、安定的に接続されるネットワークを介して応答することが可能な代理ノードであって、
前記相手ノードからパケット信号を受信する受信手段と、
前記パケット信号に含まれる通信セッション識別子に基づいて、前記代理ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段と、
前記利用者側ノードが、前記パケット信号に含まれる通信セッション識別子に基づいて、前記利用者側ノード上で動作するプログラムに前記パケット信号内のデータを受け渡すように、前記利用者側ノードに前記パケット信号を転送する転送手段
を有することを特徴とする代理ノード。
【請求項８】
請求項７記載の代理ノードにおいて、前記利用者側ノードの発するパケット信号の発信元、および前記代理ノードの発するパケット信号の発信元として、前記代理ノードのノード識別アドレスが指定されており、前記相手ノードの発する信号の発信先に代理ノードのノード識別アドレスが指定されていることを特徴とする代理ノード。
【請求項９】
請求項７記載の代理ノードにおいて、更に、前記代理ノードと前記利用者側ノードのデータを同期させ、両ノードのプログラムから同一のデータを取り扱うことを可能にする手段を有することを特徴とする代理ノード。
【請求項１０】
請求項７記載の代理ノードにおいて、更に、前記代理ノードを経由せずに、前記相手ノードと前記利用者側ノードが通信することを可能にする手段を有することを特徴とする代理ノード。
【請求項１１】
請求項７記載の代理ノードにおいて、前記利用者ノードと前記代理ノードとの間の通信リンクの状態を監視および制御し、所定の状態変化が生じたことを所定のプログラムに通知するイベント監視制御手段を有することを特徴とする代理ノード。
【請求項１２】
請求項７記載の代理ノードにおいて、前記利用者側ノードおよび前記代理ノードの処理能力に関する情報を管理するノード情報管理手段を有することを特徴とする代理ノード。
【請求項１３】
アクセスして来た相手ノードと通信を行うことが可能な利用者側ノードであって、
安定的に接続される固定ネットワークを介して前記利用者側ノードに代わって前記相手ノードに応答することが可能な代理ノードを経由して、パケット信号を受信する受信手段と、
前記パケット信号に含まれる通信セッション識別子に基づいて、利用者側ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段
より成ることを特徴とする利用者側ノード。
【請求項１４】
請求項１３記載の利用者側ノードにおいて、前記利用者側ノードの発するパケット信号の発信元、および前記代理ノードの発するパケット信号の発信元として、前記代理ノードのノード識別アドレスが指定されており、前記相手ノードの発する信号の発信先に代理ノードのノード識別アドレスが指定されていることを特徴とする利用者側ノード。
【請求項１５】
請求項１３記載の利用者側ノードにおいて、更に、前記代理ノードと前記利用者側ノードのデータを同期させ、両ノードのプログラムから同一のデータを取り扱うことを可能にする手段を有することを特徴とする利用者ノード。
【請求項１６】
請求項１３記載の利用者側ノードにおいて、更に、前記代理ノードを経由せずに、前記相手ノードと前記利用者側ノードが通信することを可能にする手段を有することを特徴とする利用者ノード。
【請求項１７】
請求項１３記載の利用者側ノードにおいて、前記利用者ノードと前記代理ノードとの間の通信リンクの状態を監視および制御し、所定の状態変化が生じたことを所定のプログラムに通知するイベント監視制御手段を有することを特徴とする利用者側ノード。
【請求項１８】
請求項１３記載の利用者側ノードにおいて、前記利用者側ノードおよび前記代理ノードの処理能力に関する情報を管理するノード情報管理手段を有することを特徴とする利用者側ノード。
【請求項１９】
利用者側ノードと、前記利用者側ノードにアクセスしようとした相手ノードに対して、前記利用者側ノードに代わって、安定的に接続されるネットワークを介して応答することが可能な代理ノードとを有する分散処理システムにおいて使用される方法であって、
前記代理ノードが、前記ネットワークを介して、前記相手ノードからパケット信号を受信するステップと、
前記パケット信号に含まれる通信セッション識別子に基づいて、前記代理ノード上で動作するプログラムに前記パケット信号内のデータを受け渡すステップと、　前記利用者側ノードに前記パケット信号を転送するステップと、
前記利用者側ノードが、前記パケット信号に含まれる通信セッション識別子に基づいて、前記利用者側ノード上で動作するプログラムに前記パケット信号内のデータを受け渡すステップ
より成ることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散処理システム並びに分散処理システムにおける代理ノード、利用者側ノードおよび方法に関する。
【０００２】
【従来の技術】
この種の技術分野における従来の通信モデルとして、クライアント・サーバ・モデルやピァ・トゥ・ピァ・モデルのようなエンド・トゥ・エンド・モデルがある。これらは、主に両端のエンド・ノードにて通信セッションの管理が行われ、ネットワークの中継ノードにおける通信セッション毎の管理や制御を必要としない。このため、エンドノードとなり得る多くの通信端末が、様々なサービスを提供および享受することが可能になる。したがって、エンド・ノードとなり得る移動端末も、サービスを提供および享受することが可能である。
【０００３】
しかしながら、移動端末の使用する無線リンクは、通信端末が移動可能であることおよび電波品質が頻繁に変化すること等に起因して、切断されやすいという不安定な性質を有する。また、無線リンクの特徴として、一般的に有線で固定的なリンクより通信帯域が狭い。通信リンクが切断されると、サービスの提供および享受ができなくなる又は中断されてしまうという問題が生じる。更に、移動端末の場合に限らず、エンド・ノードの一方が常時接続されていない場合も、サービスの提供および享受が妨げられる。例えば、サービス提供者側が常時接続していないために、サービスの要求に提供者側が応答しなかった場合には、その要求者はサービスの提供を受けることはできない。
【０００４】
このように、ノード間が常時接続されていない不安定な通信リンクを使用する通信環境では、サービスの提供および享受が必ずしも円滑に行われないことが懸念される。
【０００５】
一方、無線リンクのような特に不安定な通信環境に対処するために、移動計算機のためのＷｅｂサーバや携帯ファイルサーバといった手法等も存在するが、これらは特定のサービス形態やプロトコルに特化したものである。したがって、これらの手法を、上述したような通信環境にそのまま応用することは困難である。
【０００６】
【発明が解決しようとする課題】
本願の一般的課題は、利用者が不安定で狭帯域な通信リンクを介してネットワークに接続されていても、サービスの提供および享受を円滑に行い得る分散処理システム並びに分散処理システムにおける代理ノード、利用者側ノードおよび方法を提供することである。
【０００７】
本願の具体的課題は、不安定で狭帯域な通信リンクと安定的で広帯域な通信リンクを通信モデルとして分離することによって、不安定な通信リンクの状態の影響を受けずに、円滑なサービス提供等を行う分散処理システム並びに分散処理システムにおける代理ノード、利用者側ノードおよび方法を提供することである。
【０００８】
本願の具体的課題は、不安定な通信リンクの接続状況を利用者自身またはユーザ・プログラムが確認するための統一的な仕組みを用意することによって、または確認する必要性を排除することによって、円滑なサービス提供等を行う分散処理システム並びに分散処理システムにおける代理ノード、利用者側ノードおよび方法を提供することである。
【０００９】
本願の具体的課題は、不安定で狭帯域な通信リンクと安定的で広帯域な通信リンクを通信モデルとして分離することによって狭帯域な通信リンクにおける通信の効率化を図り、円滑なサービスの提供および享受を行う分散処理システム並びに分散処理システムにおける代理ノード、利用者ノードおよび方法を提供することである。
【００１０】
【課題を解決するための手段】
本発明によれば、
利用者側ノードと、前記利用者側ノードにアクセスしようとした相手ノードに対して、前記利用者側ノードに代わって、安定的に接続されるネットワークを介して応答することが可能な代理ノードとを有する分散処理システムであって、前記代理ノードが、
前記相手ノードからパケット信号を受信する受信手段と、
前記パケット信号に含まれる通信セッション識別子に基づいて、前記代理ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段と、
前記利用者側ノードに対して前記パケット信号を転送する転送手段
を有し、前記利用者側ノードが、
前記パケット信号に含まれる通信セッション識別子に基づいて、前記利用者側ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段
を有することを特徴とする分散処理システムが提供される。
【００１１】
【作用】
請求項１，７，１３又は１９記載の発明では、特に、利用者側ノードにアクセスしようとした相手ノードに対して、前記利用者側ノードに代わって、安定的に接続されるネットワークを介して応答することが可能な代理ノードを利用し、前記代理ノードが、前記パケット信号に含まれる通信セッション識別子に基づいて、前記代理ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段と、前記代理ノードが前記利用者ノードに前記パケット信号を転送する転送手段を有し、前記利用者ノードが、前記パケット信号に含まれる通信セッション識別子に基づいて、前記利用者ノード上で動作するプログラムに前記パケット信号内のデータを受け渡す手段とを有する。利用者側ノードの不安定な通信リンクが切断されていたとしても、代理ノードが安定的に接続されるネットワークを介して相手ノードに応答するので、サービスの提供および享受を円滑に行うことが可能になる。
【００１２】
請求項２，８又は１４記載の発明によれば、利用者側ノードの発するパケット信号の発信元、および前記代理ノードの発するパケット信号の発信元として、前記代理ノードのノード識別アドレスが指定されている。外部の相手ノードの側から見ると、利用者側ノードおよび代理ノードは１つのノードとして見える。相手ノードは、アクセス先が、利用者側ノードそのものであるか代理ノードであるかを意識することなしに、利用者側ノードとのサービス提供等を行うことが可能になる。
【００１３】
請求項３，９又は１５記載の発明によれば、代理ノードと前記利用者側ノードのデータを同期させ、両ノードのプログラムから同一のデータを取り扱うことが可能になる。
【００１４】
請求項４，１０又は１６記載の発明によれば、前記代理ノードを経由せずに、前記相手ノードと前記利用者側ノードが通信することが可能になる。
【００１５】
請求項５，１１又は１７記載の発明によれば、通信リンクの状態を監視および制御し、所定の状態変化が生じたことを所定のプログラムに通知するイベント監視制御手段が利用される。これにより、例えば、利用者自身またはユーザ・プログラムが確認するための統一的な仕組みを用意することが可能となり、また独自に確認する必要性を排除することが可能になる。
【００１６】
請求項６，１２又は１８記載の発明によれば、前記利用者側ノードおよび前記代理ノードの処理能力に関する情報を管理するノード情報管理手段が利用される。これにより、通信リンクにおける通信量の効率化を図ることが可能になる。例えば、利用者側ノードである携帯電話機の処理することが可能なデータ・サイズやデータ形式に配慮して、相手ノードからのデータを代理ノードで変換して転送するようなユーザ・プログラムを動作させることができる。これにより、過剰なデータを無駄に携帯電話機に配信してしまうことが回避される。
【００１７】
【発明の実施の形態】
図１は、本発明の実施例による分散処理システムの概略図を示す。概して、分散処理システムは、図中右側の利用者側ノード１０２と、図中左側の相手ノード１０４と、利用者側ノード１０２に代わって相手ノード１０４と通信を行うことが可能な代理ノード１０６を有する。利用者側ノード１０２は、例えば携帯電話機のような移動端末であり、代理ノード１０６は例えばパーソナル・コンピュータのような通信端末である。
【００１８】
利用者側ノード１０２および代理ノード１０６は、１以上の通信リンクを通じて通信を行うことが可能である。通信リンクとしては、セルラ通信システム、パーソナル・ハンディフォン・システム（ＰＨＳ）、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ等の無線ＬＡＮシステムのような任意の通信システムにおける通信リンクとすることが可能である。本実施例では無線リンクを想定している。各通信リンクに対して、その接続状況等を監視するモジュールが、各ノードに設けられている。すなわち、利用者側ノード１０２の側には、利用者側モニタ１〜Ｎ（ＵｓＭ：Ｕｓｅｒ　Ｓｉｄｅ　Ｍｏｎｉｔｏｒ）が設けられ、代理ノード１０６の側には、ネットワーク側モニタ１〜Ｎ（ＮｓＭ：Ｎｅｔｗｏｒｋ　Ｓｉｄｅ　Ｍｏｎｉｔｏｒ）が設けられている。これらのモジュールＮｓＭ，ＵｓＭは、各通信のためのインターフェースとして機能することに加えて、通信リンクに関する情報を提供し、通信リンクを制御することが可能である。その情報には、例えば、通信リンクの種類や最大通信速度等のような静的な（不変な）情報と、通信リンクの接続および切断、通信モードのような動的な（変動し得る）情報とが含まれる。一般に、ＵｓＭは、利用者側ノードと物理的に一体である。
【００１９】
一方、代理ノード１０６と相手ノード１０４は、固定ネットワーク１０８を介して結合される。固定ネットワーク１０８は、利用者側ノード１０２および代理ノード１０６間で使用される通信リンクに比べて、それ以上に安定的に接続される通信リンクであり、例えば固定の有線リンクである。利用者側ノード１０２および代理ノード１０６間の通信リンクは、常時接続されない不安定なものであり得るが、相手ノード１０４および代理ノード１０６間の通信リンクはそれよりも安定したものが使用される。
【００２０】
利用者側ノード１０２および代理ノード１０６は、互いに協調するためのミドルウエアを搭載している。各々のミドルウエアが適切に動作することによって、外部からは（例えば相手ノード１０４からは）、両者が全体として１つのノード（仮想ノード）１１０を形成しているように見える。説明の便宜上、代理ノード１０６におけるミドルウェアをＮｓＡ（Ｎｅｔｗｏｒｋ　Ｓｉｄｅ　Ａｇｅｎｔ）と呼び、利用者側ノード１０２におけるミドルウエアをＵｓＡ（Ｕｓｅｒ　Ｓｉｄｅ　Ａｇｅｎｔ）と呼ぶ。
【００２１】
図２は、ＮｓＡを含む代理ノード１０６の機能ブロック図を示す。代理ノード１０６は、アプリケーション２０２と、アプリケーション２０２およびオペレーティング・システム（ＯＳ）２０６の間のソフトウエアであるミドルウエア（ＮｓＡ）２０４と、物理デバイス２０８より成る。アプリケーション２０２には、利用者（又は権限を有する者）により設けられたユーザ・プログラム２１０が含まれる。このユーザ・プログラム２１０は、利用者が希望する動作を実行させるよう任意に作成されることが可能である。なお、後述するように、利用者側ノード１０２は、ＮｓＡの機能と同様な機能を有するＵｓＡを含む。
【００２２】
ミドルウエア２０４には、ユーザ・プログラムと共に各種の機能を実現するための手段が設けられている。それらの手段として、処理判断手段２１２、ストレージ共有手段２１４、代理ノード情報管理手段２１６、利用者側ノード情報管理手段２１８、リンク情報管理手段２２０、イベント取得手段２２２、制御情報通信手段２２４、および共通機能提供手段２２６が明示されている。しかしながら、必要に応じて、代替的に又はそれに加えて他の手段を設けることも可能である。
【００２３】
処理判断手段２１２は、相手ノード１０４からの要求（例えばサービス提供の要求）に対して、代理ノード１０６および利用者側ノード１０２がどのように処理を行うべきかを判断する。仮想ノード１１０のノードを特定するアドレス（ノード識別アドレス）は、代理ノード１０６のアドレスである。このため、相手ノード１０４からの要求は、先ず、代理ノード１０６が受信する。処理判断手段２１２は、仮想ノード１１０に到着した相手ノード１０４からのパケット信号内のデータを、代理ノード１０６および／または利用者側ノード１０２上のどのユーザ・プログラムに引き渡すかを判別して、適切なユーザ・プログラムにパケット信号内のデータを引き渡す。言い換えれば、各ユーザ・プログラムは、各自が必要とする（処理する）データの種類と、各自のポート番号のような通信セッション識別子とを処理判断手段２１２に登録し、その登録内容に合致するパケット信号が自身に配信されるようにする。
【００２４】
処理判断手段２１２は、相手ノード１０４からのパケット信号内のデータを、代理ノード１０６または利用者側ノード１０２の中のどのユーザ・プログラムに引き渡すべきかを判別するだけでなく、利用者側ノード１０２にパケット信号を転送することが可能であるか否かも判断する。すなわち、利用者側ノード１０２との通信リンクが接続されている場合であって、パケット信号の示すポート番号が、利用者側ノード１０２のユーザ・プログラムにより登録されている場合に、代理ノード１０６から利用者側ノード１０２へそのパケット信号が転送される。また、ユーザ・プログラムが処理判断手段２１２に登録するポート番号が、複数のユーザ・プログラムの間で重複する際は、利用者により事前に設定可能な優先順位に従ってパケット信号の転送を行わせることが可能である。
【００２５】
ストレージ共有手段２１４は、利用者側ノード１０６で管理および保存されているデータを、利用者ノード１０２で利用することを可能にし、また利用者ノード１０２管理および保存されているデータを、代理ノード１０６上で利用することを可能にする。ストレージ共有手段２１４は、ローカル・ストレージ手段２２８に格納されているデータを、利用者側ノード１０２に対して、ファイル単位、ボリューム単位その他所望の単位で提供する。また、ストレージ共有手段２１４は、利用者ノード１０２から、ファイル単位、ボリューム単位、その他所望の単位でデータを読み込み、ローカル・ストレージ手段２２８に格納する。これにより、以後、利用者側ノード１０２との通信リンクが切断されたとしても、格納しているデータを利用して相手ノード１０４との通信を維持することが可能になる。
【００２６】
代理ノード１０６および利用者側ノード１０２の間で、データの一貫性を維持するために、一方が他方の内容の全部又は一部を変更できないようにロックすることも可能である。例えば、利用者側ノード１０２が読み込んだ代理ノード１０６のデータを、その後に代理ノード１０６が自由に書き換えることを禁止することが可能である。ただし、適切なタイミングでロックを解除して、データを更新することが好ましい。そのようなタイミングとしては任意のものを採用し得るが、例えば、切断された通信リンクが復旧した時点を採用することが可能であり、また、定期的に更新を行うことも可能である。
【００２７】
代理ノード情報管理手段２１６は、代理ノードの資源に関連する情報を管理する。管理される情報には、ストレージ容量（記憶容量）、ＣＰＵの処理能力、固定ネットワークへのリンク速度等のような静的な（不変な）情報が含まれる。また、ストレージの残量、ＣＰＵの使用率、ネットワークの使用率（占有率）等のような動的な（変化する）情報も含まれる。管理される情報はこれらに限定されず必要に応じて他の情報を包含することも可能である。これらの情報は、制御情報通信手段２２４を通じて、利用者側ノード１０２へ提供することも可能である。代理ノード管理手段で管理される情報は、共通機能提供手段２２６のアプリケーション・プログラム・インターフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ　Ｉｎｔｅｒｆａｃｅ）を通じて、ユーザ・プログラムにより利用され又は制御される。
【００２８】
利用者側ノード情報管理手段２１８は、利用者側ノードの資源に関連する情報を管理する。これは、ノードに関連する情報を管理する点で、代理ノード情報管理手段２１６と同様であるが、管理の対象となる情報が、利用者側ノードのものである点で異なる。管理される情報には、ストレージ容量、ＣＰＵの処理能力、利用可能な通信リンクの種類、利用可能な入出力装置等のような静的な情報が含まれる。また、ストレージの残量、ＣＰＵの使用率、ネットワークの使用率、電池の残量、画面の表示その他の利用者側ノード装置特有の情報等のような動的な情報も含まれる。これらの情報は、制御情報通信手段２２４を通じて、定期的に又は必要に応じて利用者側ノード１０２から取得される。利用者側ノード情報管理手段２１８で管理される情報は、共通手段２２６のＡＰＩを通じて、ユーザ・プログラムにより利用され又は制御される。
【００２９】
リンク情報管理手段２２０は、利用者側ノード１０２との間で利用可能な通信リンク毎に存在するネットワーク・サイド・モニタＮｓＭ−１〜Ｎを管理する。具体的には、各ＮｓＭから通知される通信リンクの接続／切断状況、実際の通信速度、電波強度、通信品質（ＱｏＳ）、モビリティ等が制御され得る。これらの情報も、共通機能提供手段２２６のＡＰＩを通じて、ユーザ・プログラムにより利用又は制御される。利用者側ノード１０２は、１以上の通信リンクを利用することが可能であるので、複数の通信リンクを使用して通信の効率化を図ることも可能である。例えば、ＰＨＳ通信を行いながら、無線ＬＡＮカードを使用することも可能である。
【００３０】
イベント取得手段２２２は、各種のイベントをユーザ・プログラムに通知する。例えば、ＮｓＭ−１で監視している通信リンクが接続されたこと（イベント）の通知を、第１のユーザ・プログラム２１０が必要とする場合に、そのようなイベントを待機し、そのイベントの発生を検出して、ユーザ・プログラム２１０に通知する。この通知を契機として、ユーザ・プログラム２１０は、例えば、中断していた処理を再開することが可能である。希望するイベントとしては利用者が任意に作成することが可能である。例えば、通信リンクの単なる接続や切断だけではなく、更に、切断後一定期間経過後に通知する、所定回数切断された場合に通知する等のように必要に応じてイベントの内容を設定することが可能である。更に、複数のイベントを待機する場合に、各イベントに優先順位を設定しておくことも可能である。また、イベントの発生に応答して、通知を行うユーザ・プログラムも１つであるとは限らず、複数のユーザ・プログラムに通知することも可能である。
【００３１】
共通機能提供手段２２６は、上述したような各種の機能や手段を利用するためのＡＰＩを提供する。例えば、利用者ノードのキー入力情報を取得する手段、画面に表示する手段等をユーザ・プログラムに提供する。
【００３２】
ＮｓＭ−１〜Ｎは、利用者側ノード１０２に対して使用することが可能な通信リンクの各々に対して、接続状況等を監視する。ＮｓＭとしては、例えば、セルラ通信リンクに関するものであれば、セルラ基地局とすることが可能である。各ＮｓＭは、通信リンクの状態を通知する機能を有する。この機能を実行するリンクチェッカは、通信リンクの接続性、電波強度、通信速度等の情報を代理ノード１０６のリンク情報管理手段２２０に通知する。また、各ＮｓＭは、通信リンクを制御する機能も有する。この機能は、リンク情報管理手段２２０からの命令により、電波出力強度の制御、通信品質（ＱｏＳ）制御、モビリティ制御等を行うことが可能である。
【００３３】
代理ノード１０６には、代理ノードにおけるシステム管理と、利用者の基本的な操作環境を提供するオペレーティング・システム（ＯＳ）が用意されている。ＯＳで提供される基本機能も、ＡＰＩを通じてユーザ・プログラムが利用することも可能である。
【００３４】
代理ノード１０６は、物理デバイスとして、ローカル・ストレージ２２８、電源２３０、ＣＰＵ２３２、メモリ２３４、入出力装置２３６、位置測定機器２３８を有する。必要に応じて、これらに加えて又は代替的に他の機器を包含することも可能である。ローカル・ストレージ２２８には、ネットワーク・ストレージ２１４の制御の下に格納した利用者側ノード１０２側の情報が格納されている。また、ローカル・ストレージ２２８には、利用者の個人情報に加えて利用者が作成したデータ等も格納されている。
【００３５】
図３は、ＵｓＡを含む利用者側ノード１０２の機能ブロック図を示す。利用者側ノード１０２は、アプリケーション３０２と、ミドルウエア３０６と、オペレーティング・システム（ＯＳ）３０６と、物理デバイス３０８より成る。アプリケーション３０２には、利用者（又は権限を有する者）により設けられたユーザ・プログラム３１０が含まれる。このユーザ・プログラム３１０は、利用者が希望する動作を実行させるよう任意に作成されることが可能である。
【００３６】
ミドルウエア（ＵｓＡ）３０４には、ユーザ・プログラムと共に各種の機能を実現するための手段が設けられている。利用者側ノード１０２は、概ね代理ノード１０６と同様なミドルウエアを有するので、共通する事項の説明をなるべく省略する。ミドルウエア３０４に含まれる手段として、処理判断手段３１２、ストレージ共有手段３１４、代理ノード情報管理手段３１６、利用者側ノード情報管理手段３１８、リンク情報管理手段３２０、イベント取得手段３２２、制御情報通信手段３２４、および共通機能提供手段３２６が明示されている。しかしながら、必要に応じて、代替的に又はそれに加えて他の手段を設けることも可能である。
【００３７】
処理判断手段３１２は、受け取ったパケット信号の宛先通信セッション識別番号に応じてユーザ・プログラムにパケット信号内のデータを引き渡す手段に加えて、相手ノード１０４からの要求（例えばサービス提供の要求）に対して、代理ノード１０６を経由して通信を行うか又は経由せずに直接通信を行うかを判断する手段を有する。
【００３８】
代理ノード１０６と利用者側ノード１０２との通信リンクが接続されている場合であって、相手ノード１０４からのパケット信号の示すポート番号が、利用者側ノード１０２のユーザ・プログラムにより登録されている場合には、代理ノード１０６から利用者側ノード１０２へそのパケット信号が転送される。このパケット信号は、処理判断手段３１２で受信され、該当するユーザ・プログラム３１０にパケット信号内のデータが引き渡され、そのユーザ・プログラム３１０による処理が行われる。
【００３９】
ストレージ共有手段３１４は、利用者側ノード１０２で管理および保存されているデータを、代理ノード１０６上で利用することを可能とし、また代理ノード１０６で管理および保存されているデータを、利用者ノード１０２上で利用することを可能にする。ストレージ共有手段３１４は、ローカル・ストレージ手段３２８に格納されているデータを、代理ノード１０６に対して、ファイル単位、ボリューム単位その他所望の単位で提供する。またストレージ共有手段３１４は、代理ノード１０６から、ファイル単位、ボリューム単位その他所望の単位でデータを読み込み、ローカル・ストレージ手段３２８に格納する。これにより、以後、代理ノード１０６との通信リンクが切断されたとしても、格納している代理ノード１０６のデータを利用することが可能になる。なお、実施形態にも依存するが、一般に移動端末のような利用者側ノード１０２のローカル・ストレージ３２８の容量は、パーソナル・コンピュータやサーバである代理ノード１０６のそれと比較して非常に小さい。そこで、利用者に関する情報管理を主に代理ノード１０６に行わせ、利用者側ノード１０２が必要に応じて利用者データを取り込む（キャッシュする）ようにすることが有利である。
【００４０】
代理ノード情報管理手段３１６は、代理ノードの資源に関連する情報を管理する。管理される情報には、ストレージ容量（記憶容量）のような静的な情報、およびストレージの残量のような動的な情報も含まれる。これらの情報は、制御情報通信手段３２４を通じて、定期的に又は必要に応じて代理ノード１０６から取得される。
【００４１】
利用者側ノード情報管理手段３１８は、利用者側ノードの資源に関連する情報を管理する。管理される情報には、ストレージ容量、利用可能な通信リンクの種類、利用可能な入出力装置等のような静的、およびストレージの残量、電池の残量、画面の表示その他の利用者側ノード装置特有の情報等のような動的な情報が含まれる。これらの情報は、制御情報通信手段３２４を通じて、定期的に又は必要に応じて取得される。
【００４２】
リンク情報管理手段３２０は、代理ノード１０６との間で利用可能な通信リンク毎に存在するネットワーク・サイド・モニタＵｓＭ−１〜Ｎを管理する。具体的には、各ＮｓＭから通知される通信リンクの接続／切断状況、実際の通信速度、電波強度、通信品質（ＱｏＳ）、モビリティ等が制御され得る。更に、複数の通信リンクを使用することが可能な場合に、利用者の意志により又は自動的に、複数のリンクを利用することによって、通信リンク当たりの負荷を分散させたり、高速通信を行わせたりすることが可能である。また、ある通信リンクが切断された場合や、他に有利な通信リンクが見出された等の場合に、他の通信リンクに切り替えることも可能である。
【００４３】
イベント取得手段３２２は、イベント取得手段２２２と同様に、各種のイベントをユーザ・プログラムに通知する。
【００４４】
共通機能提供手段３２６も、共通機能提供手段２２６と同様に、上述したような各種の機能や手段に共通して使用されるＡＰＩを提供する。
【００４５】
ＵｓＭ−１〜Ｎも、ＮｓＭ−１〜Ｎと同様に、代理ノード１０６に対して使用することが可能な通信リンクの各々に対して、接続状況等を監視する。ＵｓＭは、移動端末のような利用者側ノードに一体的に構成されることが可能であるが、利用者側ノードと分離して構成することも可能である。
【００４６】
利用者側ノード１０２にも、利用者側ノードにおけるシステム管理と、利用者の基本的な操作環境を提供するオペレーティング・システム（ＯＳ）が用意されている。ＯＳで提供される基本機能も、ＡＰＩを通じてユーザ・プログラムが利用することも可能である。
【００４７】
利用者側ノード１０２は、物理デバイスとして、ローカル・ストレージ３２８、電源３３０、ＣＰＵ３３２、メモリ３３４、入出力装置３３６、位置測定機器３３８を有する。必要に応じて、これらに加えて又は代替的に他の機器を包含することも可能である。ローカル・ストレージ３２８には、ネットワーク・ストレージ３１４の制御の下に格納した代理ノード１０６側の情報が格納されている。また、ローカル・ストレージ３２８には、利用者の個人情報に加えて利用者が作成したデータ等も格納されている。
【００４８】
図４は、本願実施例における分散処理システムの動作例を示す概念図である。分散処理システムの構成は、図１に説明したものと同様であるので、詳細な説明を省略する。この例では、携帯電話機である利用者側ノード１０２および代理ノード１０６は、無線リンクを通じて当初は良好な通信を行い、各々のローカル・ストレージ２２８，３２８に互いの最新のデータを格納している。その後、無線リンクが切断されたことを想定している。更に、無線リンクが切断された状態で、相手ノード１０４が、携帯電話機１０２のアドレス帳の閲覧を要求する（４０２）。携帯電話機１０２および代理ノード１０６は１つの仮想ノードを形成しているので、要求４０２は、仮想ノードと同一のアドレスで指定される代理ノード１０６で受信される。代理ノード１０６は、この要求を処理するユーザ・プログラムに要求を引き渡す。本実施例では、代理ノード１０６内のユーザ・プログラム３１０に引き渡され、アドレス帳へのアクセスの認証その他の所定の条件を充足することが確認された後に、ローカル・ストレージ２２８内の利用者の情報に基づいて、要求されるアドレス帳を相手ノード１０４に返信する（４０４）。このように、利用者側ノード１０２との通信リンクが切断されていたとしても、相手ノード１０４の要求に円滑に応答することが可能である。無線リンクが切断されている間に、何らかの情報を代理ノード１０６がローカル・ストレージ２２８に書き込むような場合は、無線リンクが再び接続された場合にデータの同期をとることによって利用者側ノード１０２のデータを更新することが可能である。また、アドレス帳の閲覧要求だけでなく、任意の要求を処理することが可能である。
【００４９】
本実施例で説明した動作は１例にすぎず、様々な他の動作を行わせることが可能である。例えば、代理サーバ１０６が認証を行う際に利用者側ノード１０２の承認を要求することも可能である。このような場合は、無線リンクが切断されていると要求に完全に応じることはできないので、その旨を相手ノード１０４に返送することになる。
【００５０】
また、利用者側ノード１０２および相手ノード１０４が、ビデオ会議の出席者である場合も、利用者側ノード１０２および代理ノード１０６の間の通信リンクが切断されると、ビデオ会議サービスを継続することは不可能である。このような場合に、例えば、無線リンクが切断されたことによって、通信をすることができないことを相手ノード１０４に通知することが可能である。代理ノード１０６がこのような応答を行うことによって、ビデオ会議本来のサービスを提供することはできないが、少なくとも現状その他の格納済みの関連情報を相手ノード１０４に報告することは可能である。この点、通信リンクの切断と同時に一切の情報が途絶えてしまっていた従来の技術と大きく相違する。
【００５１】
このように、代理ノード１０６および利用者側ノード１０２のユーザ・プログラム２１０，３１０の内容を自由に作成することができるので、任意の手順を実行させることが可能である。
【００５２】
図５は、本願実施例における分散処理システムの他の動作例を示す概念図である。利用者側ノード１０２は、代理ノード１０６を経由することなしに、相手ノード１０４と直接的に通信を行うことが本来可能である（５０２）。したがって、本発明による代理ノード１０６を経由して通信を行うか否かを、利用者側ノード１０２が状況に応じて選択することも可能である。他方への通信が直接的であって、他方から一方へは代理ノード１０６を経由するようにすることも可能である。どのような通信形態を可能にするかについても、ユーザ・プログラム２１０，３１０により任意に設定することが可能である。
【００５３】
例えば、利用者側ノード１０２が送信するパケット信号の送信元として代理ノードのアドレスが示されているが、このパケット信号のオプションに利用者側ノード１０２のノード識別アドレスを指定することができる。この場合、相手ノード１０４がそのオプションを解読可能である場合には、そのオプションを解読して利用者側ノード１０２のアドレスを知ることができ、代理ノード１０６を経由せずに利用者側ノード１０２に直接応答することが可能である（５０４）。一方、相手ノード１０４がそのオプションを解読不能である場合には、パケット信号自体は解読できるもののオプションは解読できないので、パケット信号に記された発信元である代理ノード１０６のアドレスに対して応答する（５０６）。代理ノード１０６はこの返答信号を利用者側ノード１０２に転送する。このように、利用者側ノード１０２が、通信経路を適宜選択することも可能である。
【００５４】
ところで、利用者側ノード１０２に関する通信リンクが切断されている場合は、利用者側ノード１０２にアクセすることはできない。逆に、利用者側ノード１０２が例えば電子メールを送信しようとしても、通信リンクが切断されていたならば、その送信を行うことができない。通信リンクが復旧すれば送信可能であるが、いつ復旧したかは不明であるので、従来、利用者又はユーザ・プログラムは定期的に送信を試みることによって通信リンクの接続性を確認していた。しかしながら、本実施例によれば、次の手順を実行する。
【００５５】
先ず、ＵｓＭおよびリンク情報管理手段２２０により、通信リンクが切断されていることが判明する。次に、通信リンクが復旧した場合にその旨をメール配信プログラム（利用者側ノード１０２のユーザ・プログラム３１０）に通知するようイベント取得手段２２２のリンク接続キューに登録し、待機する。所望のイベント（通信リンクの復旧）が起こると、メール配信プログラムが作動し、中断していた送信を実行する。これにより、利用者又はメール配信プログラムによる接続性確認の必要性を排除することによって、円滑にメールを配信することが可能になる。従来とは異なり、本実施例は、下位の階層（レイヤ）から上位の階層にリンクの復旧を通知することができるので、上位階層のメール配信プログラムがリンクの接続性に配慮する必要性を排除することができる。
【００５６】
図６は、本願実施例における分散処理システムの他の動作例を示す概念図である。この例では、利用者側ノード１０２と複数の相手ノード１０４が、例えばオンライン・ゲームに関する複数者間の通信を行う場合を想定している。この通信に必要な処理のうち、データの入出力処理を利用者側ノード１０２が行い、データの演算処理および通信処理を代理ノード１０６が行う。利用者側ノード１０２および代理ノード１０６間の無線リンクでは比較的通信量が少なく、代理ノード１０６および相手ノード１０４間の固定リンクでは比較的通信量が多くなる。このように、通信に必要な処理負担を、仮想ノード１１０内で分散させることによって、通信の効率化を図ることが可能になる。更に、実体的な演算処理は代理ノード１０６で行われるので、移動端末のような利用者側ノード１０２では行うことが困難な複雑な演算処理を行うことも可能になる。
【００５７】
また、通信の効率化の観点から、代理ノード１０６が利用者側ノード１０２と通信する（中継する）際に、利用者側ノード１０２の通信能力に合わせて、データ形式およびデータ・サイズ等を変換することも有利である。例えば、利用者側ノード１０２が、代理ノード１０６を介して所望の相手ノード１０４のウェブ・ページにアクセスする場合を想定する。この場合、代理ノード１０６がウェブ・ページを取得する毎に、利用者側ノード情報管理手段２１８およびローカル・ストレージ２２８の内容（画面サイズ等）に基づいて、適切なデータ変換を行った後に、利用者側ノード１０２にデータを送信する。これにより、過剰なデータが無駄に利用者側ノード１０２に伝送されることなく、通信の効率化を図ることが可能になる。
【００５８】
【発明の効果】
以上のように本発明によれば、常時接続されないような不安定な通信リンクを使用する通信環境であっても、サービスの提供および享受を円滑に行うことが可能になる。
【００５９】
【図面の簡単な説明】
【図１】図１は、本発明による分散処理システムの概略図を示す。
【図２】図２は、代理ノード１０６の機能ブロック図を示す。
【図３】図３は、利用者側ノード１０２の機能ブロック図を示す。
【図４】図４は、本願実施例における分散処理システムの通信形態を示す概念図である。
【図５】図５は、本願実施例における分散処理システムの他の通信形態を示す概念図である。
【図６】図６は、本願実施例における分散処理システムの他の通信形態を示す概念図である。
【符号の説明】
１０２　利用者側ノード
１０４　相手ノード
１０６　代理ノード
１０８　固定ネットワーク
１１０　仮想ノード
２０２，３０２　アプリケーション
２０４，３０４　ミドルウエア
２０６，３０６　オペレーティング・システム
２０８，３０８　物理デバイス
２１０，３１０　ユーザ・プログラム
２１２，３１２　処理判断手段
２１４，３１４　ストレージ共有手段
２１６，３１６　代理ノード情報管理手段
２１８，３１８　利用者側ノード情報管理手段
２２０，３２０　リンク情報管理手段
２２２，３２２　イベント取得手段
２２４，３２４　制御情報通信手段
２２６，３２６　共通機能提供手段
ＮｓＭ−１〜Ｎ　ネットワーク・サイド・モニタ
ＵｓＭ−１〜Ｎ　利用者サイド・モニタ
ＮｓＡ　ネットワーク・サイド・エージェント
ＵｓＡ　利用者サイド・エージェント
【図１】
2004080277.tif 000003
【図２】
2004080277.tif 000004
【図３】
2004080277.tif 000005
【図４】
2004080277.tif 000006
【図５】
2004080277.tif 000007
【図６】
2004080277.tif 000008