(57)【要約】【課題】端末の移動のたびにネットワークノードにプログラムを再投入する必要が生じていた。【解決手段】受信部４０がプログラムの添付されたパケットを受信すると、パケット処理部４６は、パケットに添付されたプログラムをパケットから切り離してプログラム記憶部５２に記憶した後、パケットをプロトコル処理し、送信部４２がパケットを隣接ノードに転送する。プログラム実行部４４は、プログラム記憶部５２に記憶されたプログラムを実行し、パケット処理部４６によるパケット転送処理の優先制御を行う。判断部４８が、プログラムの継続実行が適切でないと判断した場合、プログラム移動制御部５０は、プログラム記憶部５２に記憶されたプログラムを読み出して他のネットワークノードに転送する。【選択図】        図３
2004172910.tif 000002
【特許請求の範囲】
【請求項１】
端末により送受信されるパケットに対して特定の処理を施すためのプログラムを前記端末から受信する受信部と、
受信された前記プログラムを記憶する記憶部と、
記憶された前記プログラムをパケット処理に組み込んで実行する実行部と、
前記プログラムの継続実行の適否を判断する判断部と、
前記プログラムの継続実行が適切でないと判断された場合、記憶された前記プログラムを前記端末の通信経路上のネットワークノードにアップロードして前記プログラムを移動する移動制御部とを含むことを特徴とするパケット転送装置。
【請求項２】
前記判断部は、処理負荷が所定の閾値より大きくなった場合に前記プログラムの継続実行が適切でないと判断することを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記判断部は、前記端末との通信が切断されたことを検知することにより前記プログラムの継続実行が不要であることを判断し、前記移動制御部は、前記端末の新しい通信経路上のネットワークノードに前記プログラムをアップロードすることを特徴とする請求項１に記載のパケット転送装置。
【請求項４】
前記判断部は、前記端末から前記プログラムを移動すべき先のノードを指定する情報を取得し、前記移動制御部は、前記移動すべき先のノードに前記プログラムをアップロードすることを特徴とする請求項１から３のいずれかに記載のパケット転送装置。
【請求項５】
前記判断部は、前記端末の通信経路上のネットワークノードから前記プログラムを移動すべき先のノードを指定する情報を取得し、前記移動制御部は、前記移動すべき先のノードに前記プログラムをアップロードすることを特徴とする請求項１から３のいずれかに記載のパケット転送装置。
【請求項６】
前記判断部は、前記端末の新しい無線アクセスポイントを識別する情報を取得し、前記移動制御部は、前記新しい無線アクセスポイントに前記プログラムをアップロードすることを特徴とする請求項３から５のいずれかに記載のパケット転送装置。
【請求項７】
前記判断部は、前記端末の通信経路上で前記端末から所定のホップ数以内にあるネットワークノードを移動すべき先のノードと判断し、前記移動制御部は、前記移動すべき先のノードに前記プログラムをアップロードすることを特徴とする請求項１から３のいずれかに記載のパケット転送装置。
【請求項８】
端末により送受信されるパケットに対して特定の処理を施すためのプログラムを前記端末から受信してネットワークノードにおけるパケット処理に組み込むステップと、
端末の通信形態の変化を契機として、前記プログラムを前記端末の通信経路上の他のネットワークノードにアップロードして前記プログラムを移動するステップとを含むことを特徴とするプログラム移動方法。
【請求項９】
前記移動するステップは、前記端末の接続先の変化を契機として、前記プログラムを新たな接続先に適したネットワークノードに移動することを特徴とする請求項８に記載のプログラム移動方法。
【請求項１０】
前記移動するステップは、前記端末により送受信されるパケットの伝送路の変化を契機として、前記プログラムを新たな伝送路上のネットワークノードに移動することを特徴とする請求項８に記載のプログラム移動方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、アクティブネットワーク技術に関し、特にネットワークのノード間でプログラムを移動する方法と、その方法を利用可能なパケット転送装置に関する。
【０００２】
【従来の技術】
ブロードバンドのネットワークが一般ユーザに普及し、画像や音声を利用したピア・ツウ・ピアによるリアルタイム通信や、映像を用いたストリーミング配信などネットワーク資源を多用するサービスの利用が盛んになっている。それに伴い、ユーザのネットワークサービスの品質に対する意識が高まり、品質の劣化にはユーザはたいへん敏感になってきており、ベストエフォート型のサービスを提供してきたインターネットにも、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）の保証が強く求められている。また、ネットワークの利用形態としてパーソナルコンピュータ以外に、携帯電話やモバイル端末の利用も増えてきており、端末の通信形態に合わせて柔軟にサービスを提供することも必要である。このような状況にあって、ルータやスイッチなどのネットワークノードには、ネットワーク層における単純なパケットの転送処理だけでなく、アプリケーション層までを考慮したある種のインテリジェンスが求められるようになっている。
【０００３】
ネットワークに接続する端末はユーザのニーズや新しいネットワーク技術に合わせてモデルチェンジすることが容易であり、機種変更のサイクルが短くなってきているのに対して、ルータやスイッチなどの場合、接続性の保証や旧機種との互換性が要求されるため、仕様の変更には規格の標準化を待たねばならず、新技術に対応するには時間がかかる。これでは、多様化するネットワークサービスの要求に即座に対応することは難しい。そこで、ネットワークの機能の柔軟な変更を可能にする技術として、ネットワークノードにプログラムを投入することにより、ネットワークの動作を自由に制御することのできるアクティブネットワークの概念が提唱されている（たとえば、非特許文献１参照）。アクティブネットワークの仕組みを採用することによって、標準化に時間とコストを費やすことなく早期に新サービス機能をネットワークシステムに導入することができるようになるため、学会のみならず、産業界でもアクティブネットワークに対する期待が高まっている。
【０００４】
【非特許文献１】
山本幹、「アクティブネットワークの技術動向」、電子情報通信学会論文誌Ｂ、２００１年８月、Ｖｏｌ．Ｊ８４−Ｂ、Ｎｏ．８、ｐ．１４０１−１４１２
【０００５】
【発明が解決しようとする課題】
アクティブネットワークを実現するために、端末の送受信するパケットに対して特定の処理を行うプログラムが端末からネットワークノードに送信され、ネットワークノードに投入される。このような特定のプログラムが投入されたネットワークノードをアクティブノードという。どのノードをアクティブノードとするかは、端末で利用するサービスの種類や品質要求、端末の接続形態、ネットワークの処理負荷状況などを考慮して決められる。
【０００６】
しかしながら、いったんアクティブノードを決定し、プログラムを配置しても、ネットワークの負荷の変化や通信経路の変更によりネットワークの状態が変化するため、最初に決定したアクティブノードでは、サービス品質を維持することができなくなることがある。また、モバイル端末のように、ハンドオーバーにより無線アクセスポイントが変更になる場合や、ノートパソコンのように、ユーザが移動先でネットワークに接続して使用する場合など、端末側の接続形態に変化が生じることもあるため、一度設定したアクティブノードが全く意味をなさなくなることもある。
【０００７】
このような状況変化に対応して、新たにアクティブノードを決め直した場合、再びプログラムを新しいアクティブノードに投入する必要が生じる。アクティブノードにプログラムを投入するには、あらかじめ端末からノードにプログラムを転送しておく方法と、端末から送信されるパケットの一部にプログラムを付加して送信する方法とがあるが、いずれの方法でも端末からプログラムを転送することが必要になる。アクティブノードが変更になる度にプログラムを再転送するのは端末側に負担がかかり、また、サービスの利用を一時的に中断しなければならないという不都合が生じる。
【０００８】
本発明はこうした状況に鑑みてなされたもので、その目的は、ネットワークのノード間でプログラムを移動して、プログラムを適切なアクティブノードに配置することのできるネットワーク技術の提供にある。
【０００９】
【課題を解決するための手段】
本発明のある態様はパケット転送装置に関する。この装置は、端末により送受信されるパケットに対して特定の処理を施すためのプログラムを前記端末から受信する受信部と、受信された前記プログラムを記憶する記憶部と、記憶された前記プログラムをパケット処理に組み込んで実行する実行部と、前記プログラムの継続実行の適否を判断する判断部と、前記プログラムの継続実行を適切でないと判断した場合、記憶された前記プログラムを前記端末の通信経路上のネットワークノードにアップロードして前記プログラムを移動する移動制御部とを含む。
【００１０】
パケット転送装置は、一例としてルータ、スイッチ、無線アクセスポイントなどのノードであり、標準的なパケット処理を実行するとともに、特定のパケット処理を実行するための実行環境をもつ。この特定のパケット処理を行うためのプログラムは、端末のパケット転送に先立ち、あらかじめ端末からファイル転送プロトコルなどにより受信してもよい。あるいは、端末から受信するパケットの一部にプログラムが組み込まれていてもよい。
【００１１】
前記プログラムの継続実行の適否判断の契機となる事象には、端末の接続形態の変化やネットワークの通信経路の変化など外的要因によるものと、端末の品質要求の変化やネットワークノードの処理負荷の変化など内的要因によるものとがある。
【００１２】
プログラムを端末の通信経路上の他のネットワークノードにアップロードするために、端末の通信経路上のノードのリストを利用することができる。このリストはあらかじめ取得しておいてもよく、通信経路が変更になった際、あらためて取得してもよい。プログラムはファイル転送プロトコルなどにより他のネットワークノードに送信してもよい。あるいはプログラムを端末が転送するパケットの一部に組み込んで他のネットワークノードに送信してもよい。
【００１３】
本発明の別の態様はプログラム移動方法に関する。この方法は、端末により送受信されるパケットに対して特定の処理を施すためのプログラムを前記端末から受信してネットワークノードにおけるパケット処理に組み込むステップと、端末の通信形態の変化を契機として、前記プログラムを前記端末の通信経路上の他のネットワークノードにアップロードして前記プログラムを移動するステップとを含む。前記通信形態の変化には、端末の接続先の変更など端末側の要因によるものや、経路変更などネットワーク側の要因によるものなどがある。
【００１４】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００１５】
【発明の実施の形態】
図１は、実施の形態に係るアクティブネットワークの構成を示す。アクティブネットワークのノードＡ〜Ｅにはパケット転送装置１２ａ〜１２ｅ（以下、パケット転送装置１２と表記することもある）が設けられている。ノードＡとノードＤのパケット転送装置１２ａ、１２ｄは無線アクセスポイントであり、ノードＢ、Ｃ、Ｅのパケット転送装置１２ｂ、１２ｃ、１２ｅは有線のネットワークで相互接続されたルータである。アクティブネットワークに接続する端末装置１０ａ〜１０ｃ（以下、端末装置１０と表記することもある）は、たとえば、パーソナルコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）などの携帯電子機器、データ通信機能をもつ携帯電話などである。
【００１６】
通信元の端末装置１０ａはノードＡのパケット転送装置１２ａと無線で接続し、通信先の端末装置１０ｂとの間でデータの送受信を行う。このとき、ノードＡ、ノードＢ、ノードＥを経由する通信経路が形成される。無線アクセスポイントであるノードＡのパケット転送装置１２ａが通信元の端末装置１０ａに対するアクティブノードになったとする。通信元の端末装置１０ａからノードＡのパケット転送装置１２ａに特定のパケット処理を行うプログラムがアップロードされる。ノードＡのパケット転送装置１２ａはこのプログラムをパケット処理に組み込んで実行し、通信元の端末装置１０ａと通信先の端末装置１０ｂの間で送受信されるパケットに対する優先制御などを行う。
【００１７】
ここで、通信元の端末装置１０ａが移動して、ノードＤのパケット転送装置１２ｄと無線で接続したとする（以下、これを移動先の端末装置１０ｃと呼ぶ）。移動先の端末装置１０ｃが通信先の端末装置１０ｂとの間でデータの送受信を始めると、ノードＤ、ノードＣ、ノードＥを経由する通信経路が形成されるので、ノードＡはアクティブノードとしての役割を果たすことができなくなる。
【００１８】
移動先の端末装置１０ｃは、新しい無線アクセスポイントであるノードＤのパケット転送装置１２にアクティブノード用のプログラムの移動を指示するプログラム移動命令１６を送信する。このプログラム移動命令１６には、以前の無線アクセスポイントがノードＡであったことを示す情報が含まれる。ノードＤのパケット転送装置１２ｄは、ノードＤが新しいアクティブノードとなるべきであることを伝える情報をプログラム移動命令１６に含め、以前のアクセスポイントのノードＡのパケット転送装置１２ａに送信する。
【００１９】
プログラム移動命令１６を受信したノードＡのパケット転送装置１２ａは、プログラム１４をノードＤのパケット転送装置１２ｄに転送する。これによりノードＤのパケット転送装置１２ｄが新しいアクティブノードとなり、プログラムを実行する。
【００２０】
図２は、アクティブノードのプログラムの移動の別の形態を説明する図である。図２では、通信元の端末装置１０ａと通信先の端末装置１０ｂの通信経路上にあるノードＢがアクティブノードとなっている。通信元の端末装置１０ａが移動すると、ノードＢのパケット転送装置１２ｂは通信元の端末装置１０ａとの通信が切断されたことを検知し、アクティブノード用のプログラムの実行を中止し、端末装置１０ａの移動先を探索する旨のメッセージを上流のノードＥに通知する。
【００２１】
移動先の端末装置１０ｃが通信先の端末装置１０ｂとの間で通信を始めると、移動先の端末装置１０ｃと通信先の端末装置１０ｂの通信経路上にあるノードＣのパケット転送装置１２ｃが移動先の端末装置１０ｃとの接続を検知した旨のメッセージを上流のノードＥに通知する。上流のノードＥでは、ノードＢから通知された移動先の探索メッセージをノードＣに転送する。これによりノードＣは以前のアクティブノードがノードＢであったことを知り、ノードＣはプログラム移動命令１６をノードＢのパケット転送装置１２ｂに送信する。
【００２２】
プログラム移動命令１６を受信したノードＢのパケット転送装置１２ｂは、プログラム１４をノードＣのパケット転送装置１２ｃに転送する。これによりノードＣのパケット転送装置１２ｃが新しいアクティブノードとなり、プログラムを実行する。
【００２３】
図３は、パケット転送装置１２の機能構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたパケット処理機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２４】
受信部４０は、通信経路上の隣接ノードからパケットを受信する。受信部４０により通信データのパケットが受信された場合、パケット処理部４６はそのパケットをプロトコル処理し、送信部４２がパケットを隣接ノードに転送する。受信部４０によりプログラムが添付された通信データのパケットが受信された場合、パケット処理部４６はそのパケットに添付されたプログラムのデータをパケットから切り離してプログラム記憶部５２に記憶し、通信データのみとなったパケットをプロトコル処理し、送信部４２がパケットを隣接ノードに転送する。受信部４０によりプログラムのみを含むパケットが受信された場合は、パケット処理部４６は単にパケット内のプログラムのデータをプログラム記憶部５２に記憶する。
【００２５】
当該ノードがアクティブノードとなった場合、プログラム実行部４４は、プログラム記憶部５２に格納されたプログラムを実行し、パケット処理部４６によるパケット転送処理の優先制御などを行う。プログラム実行部４４は、このプログラムをパケット処理部４６におけるパケット処理の一部に組み込んでもよい。またパケット処理部４６におけるプロトコル処理の際、プログラム実行部４４に制御を渡して、プログラムが実行されるようにしてもよい。パケット処理部４６によりプロトコル処理され、プログラム実行部４４により優先制御等がなされたパケットは、送信部４２により隣接ノードに転送される。
【００２６】
判断部４８は、アクティブノードとしてプログラムの実行を継続することが適当かどうかを判断する。たとえば、判断部４８は、受信部４０および送信部４２による端末装置１０とのパケット通信が途絶えたことから、端末装置１０の移動を検知し、アクティブノードとしてのプログラムの継続実行が不要であると判断する。あるいは、判断部４８は、当該ノードの処理負荷が大きくなった場合に、アクティブノードとしてのプログラムの実行を中断すべきであると判断する。
【００２７】
このように判断部４８により、プログラムの継続実行が適切でないと判断された場合、プログラム移動制御部５０は、その判断を受けて、プログラム記憶部５２に記憶されたプログラムを読み出して、送信部４２がそのプログラムを他のネットワークノードに転送する。
【００２８】
以上の構成のパケット転送装置１２によるアクティブネットワークのプログラム移動方法を説明する。
【００２９】
図４は、端末主導型のプログラムの移動手順を説明するフローチャートである。端末装置１０からアクセスポイントのパケット転送装置１２にプログラムをアップロードし（Ｓ１０）、アクセスポイントのパケット転送装置１２は、パケット処理にこのプログラムを組み込んで実行する（Ｓ１２）。このアクセスポイントは、一例として無線アクセスポイントであり、アクティブノードとして、有線と無線の伝送帯域やエラーレートなどの通信品質の相違を考慮したパケット処理を行う。たとえば、無線リンクの伝送帯域に合わせてコンテンツの品質を落とすなどの制御を行う。
【００３０】
端末装置１０の移動によりアクセスポイントが変更された場合（Ｓ１４のＹ）、ステップＳ１６以降のプログラムの移動処理に移る。アクセスポイントが変更されない場合（Ｓ１４のＮ）、ステップＳ１２に戻り、同一のアクセスポイントがアクティブノードのプログラムの実行を継続する。
【００３１】
端末装置１０は新しいアクセスポイントへプログラムの移動を指示する（Ｓ１６）。この移動指示の際、端末装置１０は、古いアクセスポイントの識別情報を与える。新しいアクセスポイントのパケット転送装置１２は古いアクセスポイントのパケット転送装置１２へプログラム移動命令１６を送信する（Ｓ１８）。プログラム移動命令１６を受信した古いアクセスポイントのパケット転送装置１２は、新しいアクセスポイントのパケット転送装置１２へプログラムを転送する（Ｓ２０）。新しいアクセスポイントのパケット転送装置１２は、新たなアクティブノードとなり、転送されたプログラムをパケット処理に組み込んで実行する（Ｓ２２）。
【００３２】
図５は、ネットワーク主導型のプログラムの移動手順を説明するフローチャートである。端末装置１０からアクティブノードにプログラムをアップロードし（Ｓ３０）、アクティブノードのパケット転送装置１２は、パケット処理にこのプログラムを組み込んで実行する（Ｓ３２）。このアクティブポイントは、一例として通信経路上のルータであり、アクティブノードとして端末装置１０により送受信されるパケットの優先制御などを行う。
【００３３】
アクティブノードのパケット転送装置１２の判断部４８が端末装置１０との通信の切断を検知した場合（Ｓ３４のＹ）、ステップＳ３６以降のプログラムの移動処理に移る。端末装置１０との通信の切断が検知されない場合（Ｓ３４のＮ）、ステップＳ３２に戻り、同一のアクティブノードがプログラムの実行を継続する。
【００３４】
アクティブノードのパケット転送装置１２の判断部４８が端末装置１０の移動先を探索する（Ｓ３６）。判断部４８は、端末装置１０の新しい通信経路上のネットワークノードから端末装置１０の移動先に関する情報を取得する。
【００３５】
アクティブノードのパケット転送装置１２のプログラム移動制御部５０は、端末装置１０の移動先に近いノードのパケット転送装置１２にプログラムを転送する（Ｓ３８）。たとえば移動先から所定のホップ数以内にあるノードが新たにアクティブノードとなり、プログラムが実行される（Ｓ４０）。
【００３６】
図６は、別の端末主導型のプログラムの移動手順を説明するフローチャートである。端末装置１０からアクティブノードにプログラムをアップロードし（Ｓ５０）、アクティブノードのパケット転送装置１２は、パケット処理にこのプログラムを組み込んで実行する（Ｓ５２）。アクティブノードのパケット転送装置１２の処理負荷が所定の閾値より大きくなった場合（Ｓ５４のＹ）、パケット転送装置１２の判断部４８は、処理負荷により伝送遅延が生じるため、プログラムの継続実行が適切でないと判断し、ステップＳ５６以降のプログラムの移動処理に移る。パケット転送装置１２の処理負荷が大きくない場合（Ｓ５４のＮ）、ステップＳ５２に戻り、同一のアクティブノードがプログラムの実行を継続する。
【００３７】
端末装置１０が通信経路上の複数のノードからノード情報を収集する（Ｓ５６）。ノード情報には、ルータ、スイッチ、無線アクセスポイントなどノードの種別を示す情報、ノードにおける現在のフロー処理数やパケット処理速度など処理負荷に関する情報、ノードのハードウエア性能、最大フロー処理数、最大パケット処理速度などパケット処理能力に関する情報、ホップ数やＩＰアドレスなど端末から見たノードの相対位置に関する情報などが含まれる。
【００３８】
端末装置１０はこれらのノード情報にもとづいて新しいアクティブノードを決定する（Ｓ５８）。たとえば処理負荷が比較的小さいノード、処理能力に余裕があるノード、端末装置１０までのホップ数がより小さいノードなどが新しいアクティブノードに選ばれる。端末装置１０は、プログラム移動命令１６にプログラムの移動先を指定する情報として新しいアクティブノードの識別情報を含めて、古いアクティブノードのパケット転送装置１２へ送信する（Ｓ６０）。古いアクティブノードのパケット転送装置１２の判断部４８は、プログラム移動命令１６からプログラムの移動先の情報を取得し、プログラム移動制御部５０が、新しいアクティブノードのパケット転送装置１２へプログラムを転送する（Ｓ６２）。新しいアクティブノードでプログラムが実行される（Ｓ６４）。
【００３９】
図７は、別のネットワーク主導型のプログラム移動手順を説明するフローチャートである。ステップＳ７０、Ｓ７２、Ｓ７４はそれぞれ図６のステップＳ５０、Ｓ５２、Ｓ５４と同じであるから説明を省略する。
【００４０】
アクティブノードのパケット転送装置１２の判断部４８が、プログラムの継続実行が適切でないと判断すると、通信経路上の各ノードがアクティブノードになるか否かを決定する（Ｓ７６）。各ノードは現在の処理負荷と端末装置１０のネットワーク品質要求を考慮してアクティブノードとなって端末装置１０の要求する品質を満たすことができるかどうかを判断する。アクティブノードになると決定したノードが端末装置１０にノードの識別情報を送信する（Ｓ７８）。
【００４１】
新しいアクティブノードのパケット転送装置１２は、プログラム移動命令１６にプログラムの移動先を指定する情報として当該ノードの識別情報を含めて、古いアクティブノードのパケット転送装置１２へ送信する（Ｓ８０）。古いアクティブノードのパケット転送装置１２の判断部４８は、プログラム移動命令１６からプログラムの移動先の情報を取得し、プログラム移動制御部５０が、新しいアクティブノードのパケット転送装置１２へプログラムを転送する（Ｓ８２）。新しいアクティブノードでプログラムが実行される（Ｓ８４）。
【００４２】
以上述べたように、実施の形態のパケット転送装置１２によれば、端末装置１０の移動により新たにアクティブノードを設定する必要が生じた場合、ノード間でプログラムが移動するため、端末装置１０から新しいアクティブノードにプログラムを再度アップロードする必要がない。特に端末装置１０が無線経由でネットワークに接続している場合、ハンドオーバーによりアクセスポイントが変わっても、プログラムが新しいアクセスポイントに移動するため、サービスを継続して利用することができる。
【００４３】
また、端末の移動先に適したノード、たとえば端末から近い位置にあるノードを新たにアクティブノードとすることができるので、アクティブノードが常に端末の近隣に位置するようになり、アクティブノードと端末間のトラフィック状況の把握が容易となる。
【００４４】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４５】
そのような変形例として、上記の説明では、アクティブノードのプログラムの継続実行の適否判断の契機となる事象として、端末の移動による接続形態の変化とノードの処理負荷の変化を挙げたが、これ以外にも、ネットワークの通信経路の変化や端末の品質要求の変化に応じて、プログラムの継続実行の適否を判断し、プログラムを移動してもよい。たとえば、ネットワークの経路が変更されて、アクティブノードの位置が端末から遠くなった場合に、端末により近いノードにプログラムを移動する。またユーザが要求するネットワーク品質のレベルが上がった場合に、より適切なノードをアクティブノードとして選択してプログラムを移動する。
【００４６】
また、上記の説明では、ルータやアクセスポイントなどのネットワークノードの相互接続により構成されたネットワークをアクティブネットワークの例として挙げたが、アクティブネットワークは、アクセスポイントを使わずに中継機能をもつ移動端末間を無線で相互接続したアドホックネットワークであってもよい。このような無線アドホックネットワークでは、経路の変更が頻繁に生じるため、経路の変更を契機として、アクティブノードのプログラムを移動する方法が有効に利用できる。また、上記の説明では、アクティブノードとしてパケットの転送を行うルータやアクセスポイントを想定したが、コンテンツを提供するサーバ自身がアクティブノードとなってもよい。
【００４７】
【発明の効果】
本発明によれば、ネットワークノード間でプログラムを移動してネットワークサービスを継続することができる。
【図面の簡単な説明】
【図１】実施の形態に係るアクティブネットワークの構成と、アクティブノードのプログラムの移動の形態を説明する図である。
【図２】アクティブノードのプログラムの移動の別の形態を説明する図である。
【図３】図１のパケット転送装置の機能構成図である。
【図４】端末主導型のアクティブノードのプログラムの移動手順を説明するフローチャートである。
【図５】ネットワーク主導型のアクティブノードのプログラムの移動手順を説明するフローチャートである。
【図６】別の端末主導型のアクティブノードのプログラムの移動手順を説明するフローチャートである。
【図７】別のネットワーク主導型のアクティブノードのプログラムの移動手順を説明するフローチャートである。
【符号の説明】
１０  端末装置、  １２  パケット転送装置、  １４  プログラム、  １６  プログラム移動命令、  ４０  受信部、  ４２  送信部、  ４４  プログラム実行部、  ４６  パケット処理部、  ４８  判断部、  ５０  プログラム移動制御部、  ５２  プログラム記憶部。
【図１】
2004172910.tif 000003
【図２】
2004172910.tif 000004
【図３】
2004172910.tif 000005
【図４】
2004172910.tif 000006
【図５】
2004172910.tif 000007
【図６】
2004172910.tif 000008
【図７】
2004172910.tif 000009