(57)【特許請求の範囲】
【請求項１】
受信したパケットを当該パケットに付与された宛先に転送する少なくとも１つの通信ノードと、所定のサービスを提供する少なくとも１つのサービス提供サーバと、ディレクトリサーバとを有する通信ネットワークシステムであって、
前記ディレクトリサーバは、
サービス提供サーバのアドレスと当該サービス提供サーバが提供するサービスを受けるための条件との対応関係を示すサービス情報を記憶する第１のサービス情報記憶手段と、
サービス提供サーバのアドレスと前記通信ノードから通知された条件との対応関係を示すサービス情報を前記第１のサービス情報記憶手段から検索し、該検索したサービス情報を前記通信ノードに提供する情報提供手段と、を備え、
前記通信ノードは、
前記ディレクトリサーバより提供されたサービス情報を記憶する第２のサービス情報記憶手段と、
受信したパケットのうち、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、前記第２のサービス情報記憶手段に記憶されているサービス情報に従って当該パケットが満足する条件に対応するサービス提供サーバを特定し、該特定したサービス提供サーバに当該パケットを転送する特定パケット転送手段と、を備え、
前記特定パケット転送手段は、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、当該パケットが満足する条件が前記第２のサービス情報記憶手段に記憶されていない場合、当該パケットが満足する条件を前記ディレクトリサーバに通知してサービス情報を入手し、該入手したサービス情報を前記第２のサービス情報記憶手段に記憶すること
を特徴とする通信ネットワークシステム。
【請求項２】
請求項１に記載の通信ネットワークシステムであって、
前記通信ノードは、
ルーティングテーブルを記憶するルーティングテーブル記憶手段と、
受信したパケットのうち、宛先アドレスが自身の通信ノードのアドレス以外のアドレスであるパケットについて、前記ルーティングテーブル記憶手段に記憶されているルーティングテーブルに従って当該パケットの転送先を決定し、該決定した転送先に当該パケットを転送する通常パケット転送手段と、をさらに有すること
を特徴とする通信ネットワークシステム。
【請求項３】
請求項１または２に記載の通信ネットワークシステムであって、
前記特定パケット転送手段は、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、前記第２のサービス情報記憶手段に記憶されていない当該パケットが満足する条件を、前記ディレクトリサーバに通知したにもかかわらず、サービス情報を入手できなかった場合、当該パケットが満足する条件の前記ディレクトリサーバへの通知を一定期間行わないこと
を特徴とする通信ネットワークシステム。
【請求項４】
請求項１乃至３のいずれかに記載の通信ネットワークシステムであって、
前記サービス提供サーバが提供するサービスを受けるための条件は、パケットのプロトコル番号およびポート番号であること
を特徴とする通信ネットワークシステム。
【請求項５】
所定のサービスを提供する少なくとも１つのサービス提供サーバと、サービス提供サーバのアドレスと当該サービス提供サーバが提供するサービスを受けるための条件との対応関係を示すサービス情報を提供するディレクトリサーバと、を有する通信ネットワークシステムに用いられる、受信したパケットを当該パケットに付与された宛先に転送する通信ノードであって、
前記サービス情報を記憶するサービス情報記憶手段と、
受信したパケットのうち、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、前記サービス情報記憶手段に記憶されているサービス情報に従って当該パケットが満足する条件に対応するサービス提供サーバを特定し、該特定したサービス提供サーバに当該パケットを転送する特定パケット転送手段と、を備え、
前記特定パケット転送手段は、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、当該パケットが満足する条件が前記サービス情報記憶手段に記憶されていない場合、当該パケットが満足する条件を前記ディレクトリサーバに通知してサービス情報を入手し、該入手したサービス情報を前記サービス情報記憶手段に記憶すること
を特徴とする通信ノード。
【請求項６】
請求項５に記載の通信ノードであって、
ルーティングテーブルを記憶するルーティングテーブル記憶手段と、
受信したパケットのうち、宛先アドレスが自身の通信ノードのアドレス以外のアドレスであるパケットについて、前記ルーティングテーブル記憶手段に記憶されているルーティングテーブルに従って当該パケットの転送先を決定し、該決定した転送先に当該パケットを転送する通常パケット転送手段と、をさらに有すること
を特徴とする通信ノード。
【請求項７】
請求項５または６に記載の通信ノードであって、
前記特定パケット転送手段は、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、前記第２のサービス情報記憶手段に記憶されていない当該パケットが満足する条件を、前記ディレクトリサーバに通知したにもかかわらず、サービス情報を入手できなかった場合、当該パケットが満足する条件の前記ディレクトリサーバへの通知を一定期間行わないこと
を特徴とする通信ノード。
【請求項８】
請求項５乃至７のいずれかに記載の通信ノードであって、
前記サービス提供サーバが提供するサービスを受けるための条件は、パケットのプロトコル番号およびポート番号であること
を特徴とする通信ノード。
【請求項９】
受信したパケットを当該パケットに付与された宛先に転送する少なくとも１つの通信ノードと、所定のサービスを提供する少なくとも１つのサービス提供サーバと、ディレクトリサーバとを有する通信ネットワークシステムにおいて、前記通信ノードが前記サービス提供サーバが提供するサービスを受けるためのサービス管理方法であって、
前記ディレクトリサーバが、サービス提供サーバのアドレスと当該サービス提供サーバが提供するサービスを受けるための条件との対応関係を示すサービス情報を、前記通信ノードに提供し、
前記通信ノードが、受信したパケットのうち、宛先アドレスが自身の通信ノードのアドレスであるパケットについて、当該パケットが満足する条件を持つサービス情報が自身の記憶手段に記憶されているならば、当該サービス情報により特定されるサービス提供サーバに当該パケットを転送し、一方、当該パケットが満足する条件を持つサービス情報が自身の記憶手段に記憶されていないならば、当該パケットが満足する条件を前記ディレクトリサーバに通知して、当該条件を持つサービス情報を入手し、該入手したサービス情報を自身の記憶手段に記憶すると共に、当該サービス情報により特定されるサービス提供サーバに当該パケットを転送し、
前記サービス提供サーバが、受信したパケットを自身が提供するサービスにしたがい処理し、結果を前記パケットの送信元の通信ノードに通知すること
を特徴とするサービス管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のサービスを提供する通信ネットワークシステムに関し、特に、大規模なバックボーンを有するネットワークシステムにおける運用管理コストを低減するための技術に関する。
【０００２】
【従来の技術】
ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）などの出現により、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いたデータ通信が急速に普及しつつある。ＷＷＷを利用したＩＰによる通信では、従来のようなデータ中心の通信だけでなく、音声や映像などのマルチメディア情報を送受信することも可能である。このため、より大量のデータをより高速に転送できる大規模なバックボーンネットワークが求められている。
【０００３】
【発明が解決しようとする課題】
ところで、ネットワークが大規模化するにつれて、ネットワーク内の通信リソースをどう管理するかが問題となる。大量のデータをある一定の通信品質で送受信できるようにするためには、ネットワーク内のリソースを管理するためのサーバが必要になってくる。たとえば、高速な処理を必要とするパケット転送サービスを複数の通信ノードが実行し、経路制御や通信リソース管理など高機能で複雑な処理を必要とするサービスをサーバが実行するといいった機能分担を行う必要性が生じてくる。
【０００４】
大規模なネットワークサービスを提供する通信キャリアや大規模インターネットサービスプロバイダにとっては、このような機能分割によって高性能化と運用管理の低コスト化を両立することが必須になるものと思われる。
【０００５】
このようなサーバを使用することの利点は、情報を管理するポイントが限定されるため、ネットワーク運用管理者から見たときに管理対象となる装置が少なくなり運用コストが低減されることにある。
【０００６】
しかしながら、ネットワークがさらに大規模化し、そこで提供されるサービスの種類が増加するにつれ、通信ノードに各種サービスを提供するためのサーバの種類も増加する。この場合、新しいサービスを提供するサーバが設置されたり、あるいは、既存のサーバが提供するサービスの設定情報が変更される毎に、そのサービスを利用するすべての通信ノードに対して設定情報を新しいものに変更しなければならない。
【０００７】
たとえば、新しいサーバにアクセスするためのアドレス情報やサービスを利用するための設定情報などを、通信ノードに新たに設定しなければならない。
【０００８】
多くの通信ノードが稼働する大規模なネットワークシステムでは、このようなサービス導入や設定変更のための作業量が膨大となる。すなわち、提供されるサービスの種類が増加するにつれて、このような設定作業量が増加し、システム管理がより複雑になる。その結果、新サービスの導入に時間がかかり、運用のためのコストが増加してしまう。また、設定作業量が増加すれば、それだけ設定ミスも発生しやすくなるため、ネットワークシステムの信頼性が低下する。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、ネットワークシステムにおける運用管理コストを低減することにある。特に、多くの通信ノードが稼働する大規模なネットワークシステムにおいて、サービスを提供するサーバを新たに設置した場合や既存のサーバが提供するサービスを変更した場合でも、そのために必要となる設定作業の負担を低減させることで、運用管理コストを低減することにある。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、本発明では、ネットワーク内に設けられたサービスを提供するサーバの情報を、前記サービスを提供するサーバとは別個に設けられたディレクトリサーバで集中管理し、その情報をネットワーク内の各通信ノードに、自動的にあるいは各通信ノードからの依頼に応じて配布するようにしている。
【００１１】
具体的には、本発明は、受信したパケットを当該パケットに付与された宛先に転送する少なくとも１つの通信ノードと、所定のサービスを提供する少なくとも１つのサーバと、ディレクトリサーバとを有する通信ネットワークシステムであって、
前記ディレクトリサーバは、前記サーバが提供するサービスを受けるための条件に関するサービス情報を記憶する記憶手段と、前記記憶手段に記憶されたサービス情報を前記通信ノードに提供する情報提供手段と、を備え、
前記通信ノードは、受信したパケットのうち、特定の種類のパケットについて、当該パケットを処理すべきサーバを、前記ディレクトリサーバより提供されたサービス情報に基づいて決定する決定手段と、前記特定の種類のパケットを、前記決定手段で決定されたサーバに転送する特定パケット転送手段と、を備えることを特徴とする。
【００１２】
ここで、特定の種類のパケットとは、たとえば経路制御に関するパケットや通信品質の管理に関するパケットなど、ネットワークが提供するあるサービスに関するパケットを指す。このようなパケットには、通常、宛先アドレスとして、処理を要求する通信ノードのアドレスが付される。
【００１３】
本発明において、ディレクトリサーバは、特定のサービスに関するパケットの定義や、そのサービスを提供しているサーバのアドレスや、そのサービスを受信した通信ノードが行わなければならないパケット処理などを特定するサービス情報を一元管理している。そして、そのサービス情報をネットワーク内の各通信ノードに、自動的に、あるいは、各通信ノードからの依頼に応じて配布する。
【００１４】
一方、各通信ノードは、受信したパケットのうち、特定の種類のパケットについて、当該パケットを処理すべきサーバを、ディレクトリサーバにより提供されたサービス情報に基づいて決定する。そして、当該パケットを前記決定したサーバに転送することにより、そのサーバに処理させる。
【００１５】
したがって、本発明によれば、ネットワーク運用管理者は、ネットワークにサーバが新たに追加された場合や既存のサーバが提供するサービスを変更した場合でも、各通信ノードに対して設定作業を行う必要がなくなる。すなわち、ネットワーク運用管理者は、ディレクトリサーバに保持されているサービス情報のみを維持・管理し、必要に応じて変更すればよいので、ネットワークの運用管理コストを低減することができる。
【００１６】
【発明の実施の形態】
以下、本発明の一実施形態について説明する。
【００１７】
図１は、本発明の一実施形態が適用された統合サービスネットワークシステムの概略構成を示している。
【００１８】
図示するように、本実施形態の統合サービスネットワークシステムは、サービスディレクトリサーバ１００と、複数のサービス提供サーバ１１０（１１０−Ａ〜１１０−Ｃ）と、複数の通信ノード１２０（１２０−Ａ〜１２０−Ｃ）とが、相互に通信ネットワークで接続されて構成される。
【００１９】
ここで、サービスディレクトリサーバ１００は、本実施形態の特徴となるノードである。ネットワーク内に設置されている複数のサービス提供サーバ１１０各々について、当該サーバのアドレスや当該サーバが処理するパケットの定義などに関するサービス情報を一元管理しており、自動的にあるいは通信ノード１２０からの要求に応じて、管理しているサービス情報を提供する。
【００２０】
通信ノード１２０は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ルータとしての機能を備えており、受信したデータパケットを当該パケットに付与された宛先に転送する。加えて、サービスディレクトリサーバ１００への問合せを行うことによってサービス情報を取得し、その情報に基づいて、適切なサービス提供サーバ１１０にパケット処理を依頼する。
【００２１】
サービス提供サーバ１１０は、自身が担当するサービスのパケットを通信ノード１２０から受信して必要な処理を行う。
【００２２】
次に、本実施形態の統合サービスネットワークシステムを構成する各装置のハードウエア構成について説明する。
【００２３】
図２は、サービスディレクトリサーバ１００、サービス提供サーバ１１０および通信ノード１２０のハードウエア構成の一例を示す図である。
【００２４】
図示するように、本実施形態の統合サービスネットワークシステムを構成する各装置は、一般的な構成を備えた情報処理装置上に構築することが可能である。ここで、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２００は、メモリ２１０に格納されているプログラムを実行するためのプロセッサである。メモリ２１０には、装置全体を制御するためのオペレーティングシステム（ＯＳ）２１３と、本装置をサービスディレクトリサーバ１００やサービス提供サーバ１１０や通信ノード１２０として機能させるための制御プログラム２１５が格納されている。ネットワークコントローラ２２０は、ネットワークとの送受信を制御する。キーボードコントローラ２３０は、キーボード２３５からのキー入力を制御する。シリアルコントローラ２４０は、シリアルポートに接続されたマウス２４５などの入出力機器を制御する。ディスプレイコントローラ２５０は、ディスプレイモニタ２５５への画面表示を制御する。ディスクコントローラ２６０は、ディスク装置２６５への入出力を制御する。
【００２５】
図２に示すハードウエア構成例では、制御プログラム２１５として、サービスデイレクトリサーバ用制御プログラムを用いることで、後述する図３に示す機能構成を実現することができ、サービス提供サーバ用制御プログラムを用いることで、後述する図４に示す機能構成を実現することができる。また、通信ノード用制御プログラムを用いることで、後述する図５に示す機能構成を実現することができる。
【００２６】
なお、図２に示すハードウエア構成例は、あくまでも一例に過ぎない。たとえば、通信ノード１２０においては、パケットの転送処理を高速化するため、特別なハードウエア転送機構を設けるようにしてもよい。また、サービス提供サーバ１００においては、提供するサービスの内容に応じて付加的なハードウエア機構を追加するようにしてもよい。また、制御プログラム２１５は、ＣＤ−ＲＯＭなどの可搬性を有する記憶媒体により提供されるようにしてもよい。すなわち、図示していない読取り装置を介して、当該記憶媒体２１５からメモリ２１０上にロードするようにしてもよいし、あるいは、図示していない読み取り装置を介して、当該記憶媒体２１５からディスク装置２６５に格納し、それから、メモリ２１０上にロードするようにしてもよい。
【００２７】
次に、本実施形態の統合サービスネットワークシステムを構成する各装置の機能構成について説明する。
【００２８】
図３は、サービスディレクトリサーバ１００の機能構成図である。
【００２９】
図示するように、サービスディレクトリサーバ１００は、入出力制御部３１０と、ネットワークインタフェース部３５０と、サーバ通信部３６０と、クライアント通信部３４０と、クライアントデータベース（ＤＢ）３７０と、サービス要求受付部３３０と、サービスデータベース（ＤＢ）管理部３２０と、サービスデータベース（ＤＢ）３７０と、を備えている。
【００３０】
ここで、入出力制御部３１０は、キーボードなどの入力装置からの入力やディスプレイなどの出力装置への出力を制御する。
【００３１】
ネットワークインタフェース部３５０は、ネットワークから受信したパケットを適切な処理モジュールに渡したり、他の処理モジュールからの要求によりパケットをネットワークに送信するなど、ネットワークとのインターフェースとして機能する。
【００３２】
サービスデータベース３７０には、ネットワーク内に設置されている複数のサービス提供サーバ１１０各々についてのサービス情報が格納されている。
【００３３】
サービスデータベース管理部３２０は、サービスデータベース３７０を管理する。また、入出力制御部２１０を介して受け付けたネットワーク運用管理者よりの指示にしたがい、サービスデータベース３７０を更新する。
【００３４】
クライアントデータベース３８０には、ネットワーク内に設置されている複数の通信ノード１２０各々について、アドレスなどの登録情報が格納されている。
【００３５】
サーバ通信部３６０は、ネットワークインターフェース部３５０を介して、ネットワーク内に設置されている複数のサービス提供サーバ１１０各々との通信を制御・管理する。
【００３６】
クライアント通信部３４０は、ネットワークインターフェース部３５０を介して、ネットワーク内に設置されている複数の通信ノード１２０各々との通信を制御・管理する。たとえば、通信ノード毎のセッション管理を行う。
【００３７】
サービス要求受付部３３０は、ネットワークインターフェース部３５０およびクライアント通信部３４０を介して、サービス情報の提供要求を通信ノード１２０より受付ける。そして、必要に応じて、サービスデータベース管理部３２０を介してサービスデータベース３７０よりサービス情報を取得し、当該提供要求を送信した通信ノード１２０に送信する。
【００３８】
図４は、サービス提供サーバ１１０の機能構成図である。
【００３９】
図示するように、サービス提供サーバ１１０は、ネットワークインターフェース部４５０と、サーバ通信部４６０と、クライアント通信部４４０と、サービス処理部４３０と、を備えている。
【００４０】
ネットワークインターフェース部４５０は、ネットワークから受信したパケットを適切な処理モジュールに渡したり、他の処理モジュールからの要求によりパケットをネットワークに送信するなど、ネットワークとのインターフェースとして機能する。
【００４１】
サーバ通信部４６０は、ネットワークインターフェース部４５０を介して、サービスディレクトリサーバ１００との通信を制御・管理する。
【００４２】
クライアント通信部４４０は、ネットワークインターフェース部４５０を介して、ネットワーク内に設置されている複数の通信ノード１２０各々との通信を制御・管理する。具体的には、ネットワークインターフェース部４５０を介して受け取った通信ノード１２０からのパケットをサービス処理部４３０へ渡す。また、サービス処理部４３０より受け取ったパケットを、ネットワークインターフェース部４５０を介して通信ノード１２０へ送信する。
【００４３】
サービス処理部４３０は、クライアント通信部４４０から受け取ったパケットに対して特定の処理を行うことで、所定のサービスを提供する。ここで、所定の処理としては、たとえば、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）やＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）などの経路制御に関するプロトコルの処理や、ＲＳＶＰ（Ｒｅｓｏｕｒｃｅ  Ｒｅｓｅｒｖａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）などの通信品質に関するプロトコルの処理がある。
【００４４】
図５は、通信ノード１２０の機能構成図である。
【００４５】
図示するように、通信ノード１２０は、入出力制御部５０５と、制御・管理部５１０と、設定情報記憶部５５０と、ネットワークインタフェース部５３５と、パケット転送処理部５３０と、サービス振分部５２５と、経路表管理部５４５と、経路表記憶部５６５と、サーバ通信部５１５と、自律処理部５２０と、サービス管理部５４０と、サービス表記憶部５６０と、バックアップファイル記憶部５５５と、を備えている。
【００４６】
ここで、入出力制御部５０５は、キーボードなどの入力装置からの入力やディスプレイなどの出力装置への出力を制御する。
【００４７】
設定情報記憶部５５０には、通信ノード１２０のＩＰアドレス情報やパケットフィルタリングのための情報など通常のＩＰ転送に必要な設定情報が格納されている。加えて、サービスディレクトリサーバ１００のアドレスや後述するサービスディレクトリサーバ１００への問合せ抑止のためのタイマ情報なども設定情報として格納されている。
【００４８】
制御・管理部５１０は、設定情報記憶部５５０に格納されている設定情報を管理する。なお、この設定情報は、運用管理者よりあらかじめ設定される。制御・管理部５１０は、入出力制御部５０５を介して受け付けた運用管理者の指示にしたがい、設定情報記憶部５５０に設定情報を格納したり、設定情報記憶部５５０に格納されている設定情報を更新する。
【００４９】
ネットワークインタフェース部５３５は、ネットワークから受信したパケットを適切な処理モジュールに渡したり、他の処理モジュールからの要求によりパケットをネットワークに送信するなど、ネットワークとのインターフェースとして機能する。
【００５０】
経路表記憶部５６５には、パケット転送の際に用いる経路表（ルーティングテーブル）が記憶されている。なお、この経路表については後述する。
【００５１】
経路表管理部５４５は、経路表記憶部５６５に記憶されている経路表を管理する。
【００５２】
サービス表記憶部５６０には、サービスの種類とそのサービスに対応するサービス提供サーバのアドレスなどの情報とを関連付けたサービス表を記憶している。なお、このサービス表については後述する。
【００５３】
バックアップファイル記憶部５５５には、サービス表記憶部５６０に記憶されているサービス表のバックアップファイルを格納する。
【００５４】
パケット転送処理部５３０は、経路表管理部５４５を介して経路表記憶部５６５に記憶されている経路表を取得し、この経路表に基づいて、受信したパケットの宛先アドレスに応じたゲートウェイを決定し、ネットワークインターフェース部５３５を介して、受信したパケットを当該ゲートウェイに転送する。さらに、自身の通信ノード宛パケットをサービス振分部５２５に渡す。
【００５５】
サービス振分部５２５は、自身の通信ノード宛パケットを、当該パケットに対応するサービスを提供するサービス提供サーバ１１０に転送したり、自身の通信ノード内で処理するための振分処理を行う。具体的には、サービス管理部５４０を介してサービス表記憶部５６０に記憶されたサービス表を取得し、当該サービス表に基づいて、自身の通信ノード宛パケットをサービス提供サーバ１１０に転送するか、あるいは、自身の通信ノード内で処理するかを決定し、サービス提供サーバ１１０に転送する場合はサーバ通信部５１５に当該パケットを送り、自身の通信ノード内で処理を行う場合は自律処理部５２０に当該パケットを送る。
【００５６】
自律処理部５２０は、サービス振分部５２５からの指示により自身の通信ノード宛パケットを処理する。その処理内容は、通信ノードの設定によって異なる。また、自律処理部５２０は、パケット処理の結果に応じて、経路表管理部５４５を介して経路表記憶部５６５に記憶されている経路表を更新する。
【００５７】
サーバ通信部５１５は、サービス振分部５２５からの指示にしたがい、ネットワークインタフェース部５３５を介して、自身の通信ノード宛パケットを当該パケットに対応するサービスを提供するサービス提供サーバに転送する。また、サービス管理部５４０からの指示にしたがい、ネットワークインタフェース部５３５を介して、サービス情報の提供要求をサービスディレクトリサーバ１００に送信する。さらに、ネットワークインターフェース部５３０を介してサービスディレクトリサーバ１００より提供されたサービス情報を受信して、サービス管理部５４０へ渡す。
【００５８】
サービス管理部５４０は、サービス表記憶部５６０に記憶されているサービス表を管理する。また、制御・管理部４１０を介して設定情報記憶部５５０よりサービスディレクトリサーバ１００にアクセスするための情報を取得し、当該情報にしたがい、サービスディレクトリサーバ１００に対するサービス情報の提供要求をサーバ通信部５１５に渡す。さらに、サーバ通信部５１５より受け取ったサービス情報にしたがい、サービス表記憶部５６０に記憶されているサービス表を更新する。
【００５９】
次に、図５に示す通信ノード１２０のサービス表記憶部５６０に記憶されるサービス表について説明する。
【００６０】
図６は、サービス表記憶部５６０に記憶されるサービス表の内容を説明するための図である。
【００６１】
図示するように、サービス表には、サービスディレクトリサーバ１００より提供されたサービス情報がテーブル形式で格納される。
【００６２】
各サービス情報には、サービス情報を一意に識別するためのサービスＩＤ６１０と、サービスの種類を示すサービス名称６２０と、サービス振分部５２５での振り分け先を決定するための振分条件６３０と、サービスの提供を行うサービス提供サーバ１１０のアドレス６４０と、オプションとしてのクライアント処理スクリプト６５０と、を含んでいる。
【００６３】
ここで、振分条件６３０は、たとえば、パケットのプロトコル番号とポート番号との組合せで構成される。サービス振分部５２５は、パケットのプロトコル番号およびポート番号を抽出し、これらの情報を振分条件６３０と比較することで、振り分け先を決定する。なお、振分条件６３０として、パケットのプロトコル番号とポート番号との組合せに代えて、パケットに含まれる任意の情報を用いるようにしてもよい。
【００６４】
クライアント処理スクリプト６５０は、オプションとして設けられたものであり、クライアント処理スクリプト６５０を指定することにより、たとえば、パケットをサービス提供サーバ１１０に転送するに先立ち、自律処理部５２０において当該パケットから情報を取出したり、当該パケットを加工することが可能となる。
【００６５】
次に、図５に示す通信ノード１２０の経路表記憶部５６５に記憶される経路表について説明する。
【００６６】
図７は、経路表記憶部５６５に記憶される経路表の内容を説明するための図である。
【００６７】
図示するように、経路表には、複数の経路情報がテーブル形式で格納される。各経路情報には、宛先アドレス７１０と、ネットマスク７２０と、ゲートウェイアドレス７３０と、インタフェース７４０とが含まれる。
【００６８】
パケット転送処理部５３０は、受信したパケットに付与された宛先アドレスをキーとして経路表４６５を検索する。検索を行うときには、一般的なルータが行うのと同様にネットマスク情報を使用して、宛先アドレスと最長一致するアドレスを持つ経路情報が選択される。もし、宛先アドレスと一致する経路情報が見つからない場合、パケット転送処理部５３０は、パケットを破棄し、パケット送信元にエラー通知を行う。宛先アドレスと一致する経路情報が見つかると、パケット転送処理部５３０は、ゲートウェイアドレス６３０およびインタフェース６４０に基づいてパケットを転送する。
【００６９】
次に、以上説明した本実施形態の統合サービスネットワークシステムの動作について説明する。なお、本実施形態において、各装置間の通信は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）によるコネクションを設定した上で行う。
【００７０】
まず、通信ノード１２０の初期化処理について説明する。
【００７１】
図８は、通信ノード１２０の初期化処理シーケンスを示す図である。この図では、通信ノード１２０−Ａの初期化処理シーケンスを示しているが、他の通信ノード１２０も同様である。
【００７２】
図８において、ネットワーク管理者が通信ノード１２０に対してサービスディレクトリサーバ１００に関する設定情報の初期設定（この設定は、通信ノード１２０を最初に使用する場合に一度だけ行えばよい）を行うと（シーケンス８００）、通信ノード１２０は、サービスディレクトリサーバ１００に対してＯＰＥＮメッセージを送信し（シーケンス８０５）、自身の存在をサービスディレクトリサーバ１００に知らせる。これを受けて、サービスデーレクトリサーバ１００は、ＯＰＥＮメッセージを送信した通信ノード１２０の情報をクライアントデータベース３８０に登録する。
【００７３】
図９は、通信ノード１２０がサービスディレクトリサーバ１００へ送信するＯＰＥＮメッセージの内容を説明するための図である。ここで、ヘッダ１３０５は、メッセージタイプやメッセージ長を含むメッセージヘッダである。シーケンス番号１３１０はその後のセッションで使用されるシーケンス番号の初期値を示す。ノードＩＤ１３２０は、ＯＰＥＮメッセージを送信する通信ノード１２０を一意に識別するための番号である。ノードＩＤ１３２０は、ネットワーク内に設置された通信ノード１２０を一意に特定できるようあらかじめ各通信ノード１２０に割当てられている。認証情報１３３０は、受信したＯＰＥＮメッセージが、正しい通信ノード１２０が送信したものであるか否かをサービスディレクトリサーバ１００が確認するための情報である。
【００７４】
さて、図８に戻り、通信ノード１２０は、サービスディレクトリサーバ１００に対してサービス情報提供要求であるＱＵＥＲＹメッセージを送信する（シーケンス８１０）。これを受けて、サービスディレクトリサーバ１００は、サービス情報を含んだＲＥＰＬＹメッセージを、ＱＵＥＲＹメッセージ送信元の通信ノード１２０に返す（シーケンス８２０）。
【００７５】
図１０は、通信ノード１２０がサービスディレクトリサーバ１００へ送信するＱＵＥＲＹメッセージの内容を説明するための図である。ここで、ヘッダ１４０５は，メッセージタイプやメッセージ長を含むメッセージヘッダである。シーケンス番号１４１０は、通信ノード１２０が新たなＱＵＥＲＹメッセージを送信する毎に１つインクリメントされる番号である。このシーケンス番号１４１０は、後述するＲＥＰＬＹメッセージとの対応関係を確認するために使用される。プロトコル番号１４２０およびポート番号１４３０は、問合せ対象となるサービス、すなわち情報提供要求の対象となるサービスに対応するプロトコル番号とポート番号である。本実施形態では、全てのパケットに含まれているプロトコル番号と、サービスの種類によってはパケットに含まれるポート番号と呼ばれるフィールドとを見ることにより、そのパケットがどのサービスに関するものであるかを特定するようにしている。
【００７６】
通信ノード１２０がサービスディレクトリサーバ１００にサービス情報を問合せる場合、そのサービス情報に対応するプロトコル番号とポート番号とを指定する。ただし、プロトコル番号１４２０が０（ゼロ）である場合、特定のサービス情報を問合せるのではなく、サービスディレクトリサーバ１００が持つサービス情報を１個ずつ順番に返すように要求するものとする。また、ポート番号を使用しないサービスの場合には、ポート番号１４３０を０（ゼロ）に指定するものとする。
【００７７】
図１１は、サービスディレクトリサーバ１００が通信ノード１２０へ送信するＲＥＰＬＹメッセージの内容を説明するための図である。ここで、ヘッダ１５０５は、メッセージタイプやメッセージ長を含むメッセージヘッダである。シーケンス番号１５１０は、ＲＥＰＬＹメッセージがどのＱＵＥＲＹメッセージに対するものかを特定するための番号である。すなわち、ＲＥＰＬＹメッセージに含まれるシーケンス番号１５１０をＸとすると、このＲＥＰＬＹメッセージが、シーケンス番号ＸのＱＵＥＲＹメッセージに対する回答であることがわかる。プロトコル番号１５２０およびポート番号１５３０は、サービスに対応するプロトコル番号およびポート番号である。プロトコル番号１５２０およびポート番号１５３０については、図１０に示すＱＵＥＲＹメッセージに含まれるプロトコル番号１４２０およびポート番号１４３０と同じ意味を持っている。ただし、プロトコル番号１５２０が０（ゼロ）の場合は、該当するサービス情報がないことを示すものとする。サービス名１５４０は、サービスの種類を表す文字列であり、特定のサービス情報を管理するための便宜を図るために使用される。サーバ情報１５５０は、サービスを提供するサービス提供サーバ１１０に関する情報である。この情報には、少なくともサービス提供サーバ１１０のアドレスが含まれる。
【００７８】
クライアント処理スクリプト１５６０は、サービス提供サーバ１１０がサービスを受けるために、通信ノード１２０がパケットに対して行うべき一連の処理を表すプログラムである。クライアント処理を行わなくてよいサービスの場合にはクライアント処理スクリプト９６０は空欄となる。このように、サービス情報としてクライアント処理スクリプトを指定することを可能としているので、たとえば、簡単な処理は各通信ノード１２０が行い、残りの処理をサーバに依頼するといった木目細かいサービス定義が可能になる。
【００７９】
さて、図８に戻り、通信ノード１２０とサービスディレクトリサーバ１００は、このＲＥＰＬＹメッセージとＱＵＥＲＹメッセージとのやり取りを、通信ノード１２０がサービスディレクトリサーバ１００より所望のサービス情報を取得するまで繰り返す。
【００８０】
次に、図８に示す通信ノード１２０の初期化処理のシーケンスを、通信ノード１２０側での処理とサービスディレクトリサーバ１００側での処理とに分けて、より詳細に説明する。
【００８１】
まず、通信ノード１２０側での処理について説明する。
【００８２】
図１２は、図８に示すシーケンスにおける通信ノード１２０側での処理を説明するためのフロー図である。
【００８３】
図１２において、経路表管理部５４５は、経路表記憶部５６５に記憶されている経路表を初期化する（ステップ１７０５）。なお、通常の初期状態では、経路表には経路情報が含まれていないが、設定情報記憶部５５０に設定情報として経路情報がデフォルト設定されている場合には、その経路情報を経路表に設定する。
【００８４】
次に、サービス管理部５４０は、制御・管理部５１０を介して、設定情報記憶部５５０に記憶されている設定情報の中から、サービスディレクトリサーバ１００に関する情報を検索する（ステップ１７１０）。そして、サービスディレクトリサーバ１００に関する情報が含まれているか否かをチェックする（ステップ１７１５）。その結果、サービスディレクトリサーバ１００に関する情報が含まれていない場合は、ステップ１７３５に移行し、バックアップファイル記憶部５５５に情報が記憶されてれば、当該情報を用いてサービス表記憶部５６０に記憶されているサービス表を初期化する。
【００８５】
一方、サービスディレクトリサーバ１００に関する情報が含まれている場合、ステップ１７２０に移行し、サービス管理部５４０は、サーバ通信部５１５およびネットワークインターフェース部５３５を介して、当該情報により特定されるサービスディレクトリサーバ１００との接続を試みる。そして、サービスディレクトリサーバ１００との接続に成功したか否かをチェックする（ステップ１７２５）。その結果、サービスディレクトリサーバ１００との接続に失敗した場合は、ステップ１７３５に移行し、バックアップファイル記憶部５５５に情報が記憶されていれば、当該情報を用いてサービス表記憶部５６０に記憶されているサービス表を初期化する。
【００８６】
一方、サービスディレクトリサーバ１００との接続に成功した場合、サービス管理部５４０は、サーバ通信部５１５およびネットワークインターフェース部５３５を介して、上記のＯＰＥＮメッセージをサービスディレクトリサーバ１００に送信する（ステップ１７３０）。これを受けて、サービスディレクトリサーバ１００は、ＯＰＥＮメッセージを送信した通信ノード１２０のクライアント登録を行う。
【００８７】
次に、通信ノード１２０は、サービスディレクトリサーバ１００が持つすべてのサービス情報を取得するための処理（ステップ１７４０〜１７５５）を行う。上述したように、ＱＵＥＲＹメッセージのプロトコル番号を０（ゼロ）にすることで、サービスディレクトリサーバ１００が持つサービス情報を１個ずつ順番に取得することができる。通信ノード１２０は、この仕組みを使って、起動時に、サービスディレクトリサーバ１００が持つすべてのサービス情報を取得する。
【００８８】
このため、先ず、サービス管理部５４０は、プロトコル番号が０（ゼロ）のＱＵＥＲＹメッセージを作成し、サーバ通信部５１５およびネットワークインターフェース部５３５を介して、サービスディレクトリサーバ１００に送信する（ステップ１７４０）。ＱＵＥＲＹメッセージのプロトコル番号が０になっているため、サービスディレクトリサーバ１００は、自身が保持しているサービス情報を１つずつ取出してＲＥＰＬＹメッセージを返信する。
【００８９】
次に、サービス管理部５４０は、サーバ通信部５１５およびネットワークインターフェース部５３５を介して、サービスディレクトリサーバ１００からＲＥＰＬＹメッセージを受け取ると、そのメッセージに含まれているプロトコル番号が０か否かをチェックする（ステップ１７４５）。もし、０ならば、すべてのサービス情報を受信したことになるため処理を終了する。一方、０でなければ、受信したＲＥＰＬＹメッセージに含まれるサービス情報を、サービス表記憶部５６０に記憶しているサービス表に追加する（ステップ１７５０）。さらに、通信サーバ１２０を再起動した際に、サービスディレクトリサーバ１００に問合せなくても済むように、バックアップファイルを更新して（ステップ１７５５）、ステップ１７４０に戻る。
【００９０】
以上の処理により、通信ノード１２０は、サービスディレクトリサーバ１００が保持するすべてのサービス情報を取得することができ、このサービス情報に基づいてサービス表を初期化することができる。これにより、通信ノード１２０は、受信したパケットを、必要に応じて、適切なサービス提供サーバ１１０に転送することが可能となる。
【００９１】
次に、サービスディレクトリサーバ１００側での処理について説明する。
【００９２】
図１３および図１４は、図８に示すシーケンスにおけるサービスディレクトリサーバ１００側での処理を説明するためのフロー図である。図１３はＯＰＥＮメッセージを受信した際の処理を示しており、図１４はＱＵＥＲＹメッセージを受信した際の処理を示している。
【００９３】
図１３において、クライアント通信部３４０は、ネットワークインターフェース部３５０を介して、ＯＰＥＮメッセージを受け取ると、当該メッセージからノードＩＤおよび認証情報を取り出し、その内容を解析する（ステップ２５１０）。そして、当該メッセージがネットワーク内に設置された正規の通信ノード１２０から送られてきたメッセージであるか否かをチェックする（ステップ２５１５）。ここで、認証情報には、たとえば、サービスディレクトリサーバ１００と通信ノード１２０との間であらかじめ設定されている秘密情報に基づいて作成されたＯＰＥＮメッセージに対する電子署名を用いる。このようにすることで、受け取ったＯＰＥＮメッセージと、前記秘密情報を用いて電子署名より得たメッセージとが一致するか否かを検証することにより、当該メッセージが正規の通信ノード１２０から送られてきたメッセージであるか否かを認証することができる。
【００９４】
上記の結果、受信したＯＰＥＮメッセージが正当なものである場合、ステップ２５２０に移行し、当該メッセージに含まれるノードＩＤなどのクライアント情報をクライアントデータベース３８０に登録する（ステップ２５２０）。一方、受信したＯＰＥＮメッセージが不正なものである場合は、当該メッセージを破棄する（ステップ２５２５）。
【００９５】
また、図１４において、クライアント通信部３４０は、ネットワークインターフェース部３５０を介して、ＱＵＥＲＹメッセージを受け取ると、当該メッセージからプロトコル番号およびポート番号を取り出し、サービス要求受付部３３０に渡す。これを受けて、サービス要求受付部３３０は、プロトコル番号およびポート番号を解析し、問い合わせ内容を確認する（ステップ２６０５）。そして、サービスデータベース管理部３２０を介して、確認した問い合わせに対応するサービス情報をサービスデータベース３７０より検索する（ステップ２６１０）。その結果、問い合わせに対応するサービス情報がある場合は、その情報をクライアント通信部３４０に渡す。これを受けて、クライアント通信部３４０は、受け取ったサービス情報を含めてＲＥＰＬＹメッセージを作成し（ステップ２６２０）、ネットワークインターフェース部３５０を介して、ＱＵＥＲＹメッセージを送信した通信ノード１２０に送信する（ステップ２６３０）。一方、問い合わせに対応するサービス情報がない場合は、その旨をクライアント通信部３４０に知らせる。これを受けて、クライアント通信部３４０は、プロトコル番号をサービス情報がないことを示す０に設定したＲＥＰＬＹメッセージを作成し（ステップ２６２５）、ネットワークインターフェース部３５０を介して、ＱＵＥＲＹメッセージを送信した通信ノード１２０に送信する（ステップ２６３０）。
【００９６】
以上、通信ノード１２０の初期化処理について説明した。
【００９７】
次に、通信ノード１２０が、自身が保持するサービス表に登録されているサービスに関するパケットを受信した場合におけるパケット転送処理（登録済サービス処理）について説明する。
【００９８】
図１５は、通信ノード１２０が、自身が保持するサービス表に登録されているサービスに関するパケットを受信した場合における、当該通信ノード１２０およびサービス提供サーバ１１０間のパケット転送処理（登録済サービス処理）シーケンスを示す図である。この図では、通信ノード１２０−Ａおよびサービス提供サーバ１１０間の場合を示しているが、他の通信ノード１２０の場合も同様である。
【００９９】
通信ノード１２０−Ａは、パケットを受信すると、当該パケットに付与された宛先アドレスを調べ、自身宛のものか否かを調べる（シーケンス１０００）。自身宛のものである場合は、サービス表を参照して、前記パケットのプロトコル番号およびポート番号より転送先のサービス提供サーバ１１０を調べ、その転送先サービス提供サーバ１１０に転送する（シーケンス１０１０）。パケットを受信したサービス提供サーバ１１０は、当該パケットについて自身が提供するサービスに応じた処理を行い、その後、処理結果をパケット送信元の通信ノード１２０−Ａに通知する（シーケンス１０２０）。
【０１００】
次に、図１５に示す通信ノード１２０およびサービス提供サーバ１１０間のパケット転送処理（登録済サービス処理）のシーケンスを、通信ノード１２０側での処理とサービス提供サーバ１１０側での処理とに分けて、より詳細に説明する。
【０１０１】
まず、通信ノード１２０側での処理について説明する。
【０１０２】
図１６は、通信ノード１２０がパケットを受信した場合の処理を説明するためのフロー図である。
【０１０３】
まず、パケット転送処理部５３０は、ネットワークインターフェース部５３５を介して、受け取ったパケットの宛先アドレスを調べ、自身宛のパケットであるか否かをチェックする（ステップ１８１０）。自身宛のパケットでない場合は、ステップ１８３０に移行して、後述する通信ノード１２０間のパケット転送処理を行う。
【０１０４】
一方、自身宛のパケットである場合は、当該パケットをサービス振分部５２５に渡す。これを受けて、サービス振分部５２５は、サービス管理部５４０を介して、サービス表記憶部５６０に記憶されているサービス表を検索する（ステップ１８１０）。そして、受け取ったパケットのプロトコル番号およびポート番号と合致する振分条件を持つサービス情報がサービス表に登録されているか否かをチェックする（ステップ１８１５）。
【０１０５】
その結果、受け取ったパケットのプロトコル番号およびポート番号と合致する振分条件を持つサービス情報がサービス表に登録されていない場合は、ステップ１８２５に移行し、後述する未登録サービス処理を行う。
【０１０６】
一方、受け取ったパケットのプロトコル番号およびポート番号と合致する振分条件を持つサービス情報がサービス表に登録されている場合、ステップ１８２０に移行し、図１５に示すシーケンスにしたがって、登録済サービス処理を行う。
【０１０７】
図１７は、図１６のステップ１８２０での処理（登録済サービス処理）を説明するためのフロー図である。
【０１０８】
まず、サービス振分部５２５は、サービス管理部５４０を介して、サービス表記憶部５６０に記憶されたサービス表から、受信したパケットのプロトコル番号およびポート番号に合致する振分条件を持つサービス情報を取得すると（ステップ２００５）、当該情報にクライアント処理スクリプトが含まれるか否かをチェックする（ステップ２０１０）。クライアント処理が含まれる場合は、指定されたクライアント処理を自律処理部５２０に実行させ（ステップ２０１５）、そうでなければ次に進む。
【０１０９】
次に、サービス振分部５２５は、取得したサービス情報にサーバ情報が含まれているか否かをチェックし（ステップ２０２０）、含まれていない場合は処理を終了する。一方、含まれている場合は、そのサーバ情報により特定されるサービス提供サーバ１１０のアドレスをパケットとともにサーバ通信部５１５に渡す。これを受けて、サーバ通信部５１５は、ネットワークインターフェース部を介して、受け取ったアドレスにより特定されるサービス提供サーバ１１０へパケットを転送し、処理を依頼する（ステップ２０２５）。
【０１１０】
次に、サービス提供サーバ１１０側での処理（サービス提供処理）について説明する。
【０１１１】
図１８は、図１５に示すシーケンスでのサービス提供サーバ１１０側での処理を説明するためのフロー図である。
【０１１２】
まず、クライアント通信部４４０は、ネットワークインターフェース部４５０を介してパケットを受け取ると、当該パケットをサービス処理部４３０に渡す。これを受けて、サービス処理部４３０は、自身が提供するサービスにしたがい、受け取ったパケットを処理する（ステップ２０３０）。クライアント通信部４４０は、サービス処理部４３０での処理結果を、ネットワークインターフェース部４５０を介して、パケット送信元の通信ノード１２０へ通知する（ステップ２０３５）。
【０１１３】
以上、通信ノード１２０が、自身が保持するサービス表に登録されているサービスに関するパケットを受信した場合におけるパケット転送処理（登録済サービス処理）について説明した。
【０１１４】
次に、通信ノード１２０が、自身が保持するサービス表に未登録のサービスに関するパケットを受信した場合におけるパケット転送処理（未登録サービス処理）について説明する。
【０１１５】
図１９は、通信ノード１２０が、自身が保持するサービス表に未登録のサービスに関するパケットを受信した場合における、当該通信ノード１２０とサービスディレクトリサーバ１００およびサービス提供サーバ１１０との間のパケット転送処理（未登録サービス処理）シーケンスを示す図である。この図では、通信ノード１２０−Ａとサービスディレクトリサーバ１００およびサービス提供サーバ１１０との間の場合を示しているが、他の通信ノード１２０の場合も同様である。
【０１１６】
通信ノード１２０−Ａは、パケットを受信すると、当該パケットに付与された宛先アドレスを調べ、自身宛のものか否かを調べる（シーケンス１１００）。自身宛のものである場合は、サービス表を参照して、前記パケットのプロトコル番号およびポート番号より転送先のサービス提供サーバを調べる。その結果、パケットのプロトコル番号およびポート番号に対応する転送先サービス提供サーバ１１０がない場合、そのプロトコル番号とポート番号とを指定したＱＵＥＲＹメッセージをサービスディレクトリサーバ１００に送信し、当該パケットに関するサービス情報を問い合わせる（シーケンス１１１０）。
【０１１７】
これを受けて、サービスディレクトリサーバ１００は、受け取ったＱＵＥＲＹメッセージに指定されているプロトコル番号およびポート番号に対応するサービス情報があればこれを含めたＲＥＰＬＹメッセージを、対応するサービス情報がなければプロトコル番号を０に指定したＲＥＰＬＹメッセージを、ＱＵＥＲＹメッセージの送信元通信ノード１２０に返す（シーケンス１１２０）。
【０１１８】
通信ノード１２０−Ａは、受け取ったＲＥＰＬＹメッセージより特定される転送先のサービス提供サーバ１１０にパケットを転送する（シーケンス１０３０）。パケットを受信したサービス提供サーバ１１０は、当該パケットについて自身が提供するサービスに応じた処理を行い、その後、処理結果をパケット送信元の通信ノード１２０−Ａに通知する（シーケンス１１４０）。
【０１１９】
次に、図１９に示す通信ノード１２０とサービスディレクトリサーバ１００およびサービス提供サーバ１１０との間のパケット転送処理（未登録サービス処理）のシーケンスを、より詳細に説明する。
【０１２０】
なお、サービスディレクトリサーバ１００側での処理、および、サービス提供サーバ１１０側での処理は、それぞれ、図１４、図１８に示す処理と同様であるので、その説明を省略し、通信ノード１２０側での処理についてのみ、説明することとする。
【０１２１】
図２０は、図１６のステップ１８２５での処理（未登録サービス処理）を説明するためのフロー図である。このフローは、図１９に示すシーケンスでの通信ノード１２０側での処理に対応している。
【０１２２】
なお、本実施形態では、未登録のサービスに関するパケットを受信した場合、通信ノード１２０は、図１９に示すように、原則としてサービスディレクトリサーバ１００への問合せを行い、そのサービスを提供するサーバの情報の確認を行うようにしている。しかしながら、未登録のサービスに関するパケットを受信する毎に、このような問い合わせ処理を行うと、サービスディレクトリサーバ１００への問合せのためにパケット処理性能が大きく低下してしまうおそれがある。そこで、本実施形態では、ある未登録のサービスに関してサービスディレクトリサーバ１００への問合せを行った結果、そのサービスを提供するサーバの情報が得られなかった場合には、一定時間、同じサービスについてのパケットを問合せ抑止対象に設定することで、同じサービスに関する問合せを行わないようにしている。
【０１２３】
まず、サービス振分部５２５は、サービス表記憶部５６０に記憶されたサービス表に、受信したパケットのプロトコル番号およびポート番号に合致する振分条件を持つサービス情報が登録されていないことを確認すると、当該パケットに関するサービス情報のサービスディレクトリサーバ１００への問い合わせが、抑止の対象となっているか否かをチェックする（ステップ２１０５）。
【０１２４】
その結果、抑止対象である場合は、ステップ２１４０へ移行し、自律処理部５２０に後述する自律処理を行わせる。一方、抑止対象でない場合は、そのパケットのプロトコル番号およびポート番号をサーバ通信部５１５に通知する。これを受けて、サーバ通信部５１５は、受け取ったプロトコル番号およびポート番号を指定したＱＵＥＲＹメッセージを作成し、ネットワークインターフェース部５３５を介して、サービスディレクトリサーバ１００に送信する。これにより、サービス情報を問い合わせる（ステップ２１１０）。
【０１２５】
次に、サーバ通信部５１５は、ネットワークインターフェース部５３５を介して、サービスディレクトリインターフェース部５３５より、前記ＱＵＥＲＹメッセージに対するＲＥＰＬＹメッセージを受け取ると、当該メッセージに含まれるプロトコル番号を調べることで、前記受信した未登録サービスに関するパケットについて、サービス情報が得られたか否かをチェックする（ステップ２１１５）。サービス情報が得られなかった場合は、その旨をサービス振分部５２５に知らせる。これを受けて、サービス振分部５２５は、内蔵の抑止タイマを起動し、当該未登録サービスに関するパケットを、一定時間、問合せ抑止対象に設定する（ステップ２１３５）。その後、ステップ２１４０へ移行し、自律処理部５２０に後述する自律処理を行わせる。
【０１２６】
一方、ステップ２１１５において、前記受信した未登録サービスに関するパケットについて、サービス情報が得られた場合、サーバ通信部５１５は、サーバ管理部５４０を介して、ＲＥＰＬＹメッセージに含まれるサービス情報をサービス表記憶部５６０に記憶されているサービス表に登録し（ステップ２１２０）、さらにバックアップファイル記憶部５５５に記憶されているバックアップファイルにも登録する（ステップ２１２５）。その後、図１７に示すフローにしたがって、前記受信したパケットについて、登録済みサービス処理を行う（ステップ２１３０）。
【０１２７】
図２１は、図２０のステップ２１４０での処理（自律処理）を説明するためのフロー図である。
【０１２８】
図２０において、サービス表に登録されておらず、かつサービスディレクトリサーバ１００に問合せてもサービス情報が得られなかったサービスに関するパケットは、通信ノード１２０が自律的に処理しなければならない。そこで、本実施形態では、通信ノード１２０にそのようなパケットを処理するためのプログラムがあらかじめ組み込まれていればそれを使用し、組み込まれていなければ処理不能としてパケットを破棄することとしている。
【０１２９】
まず、サービス振分部５２５は、受信したパケットについて、当該パケットに関するサービス情報がサービス表に登録されておらず、かつサービスディレクトリサーバ１００に問合せても得られなかった場合、当該パケットを自律処理部５２０に渡す。これを受けて、自律処理部５２０は、受け取ったパケットのプロトコル番号およびポート番号に対応するサービスを処理するための自律処理プログラムが自身に設定されているか否かをチェックし（ステップ２２０５）、そのような自律処理プログラムがある場合は、当該プログラムにしたがってパケットを処理する（ステップ２２１０）。一方、そのような自律処理プログラムがない場合はパケットを破棄する（ステップ２２１５）。
【０１３０】
以上、通信ノード１２０が、自身が保持するサービス表に未登録のサービスに関するパケットを受信した場合におけるパケット転送処理（未登録サービス処理）について説明した。
【０１３１】
次に、通信ノード１２０間のパケット転送処理について説明する。
【０１３２】
図２２は、通信ノード１２０間のパケット転送処理シーケンスを示す図である。この図では、通信ノード１２０−Ａから通信ノード１２０−Ｂへパケットを転送する際の処理を示しているが、他の通信ノード１２０間の場合も同様である。
【０１３３】
通信ノード１２０−Ａは、パケットを受信すると、当該パケットに付与された宛先アドレスを調べ、自身宛のものか否かを調べる（シーケンス９００）。自身宛のものでない場合は、経路表を参照して、前記宛先アドレスより転送先のゲートウェイを調べ、その結果、転送先が通信ノード１２０−Ｂであれば、通信ノード１２０−Ｂに転送する（シーケンス９１０）。パケットを受信した通信ノード１２０−Ｂでも同様の処理を行い、当該パケットを宛先アドレスに向けて転送する（シーケンス９２０）。
【０１３４】
図２３は、図１６のステップ１８３０での処理（パケット転送処理）を説明するためのフロー図である。このフローは、図２２に示すシーケンスでの通信ノード１２０各々での処理に対応している。
【０１３５】
まず、パケット転送処理部５３０は、ネットワークインターフェース部５３５を介して受信したパケットの宛先アドレスをキーにして、経路表管理部５４５を介して、経路表記憶部５６５に記憶されている経路表を検索し（ステップ１９０５）、当該アドレスに対応する宛先ゲートウェイに関する情報があるか否かをを調べる（ステップ１９１０）。その結果、宛先ゲートウェイに関する情報がある場合、ネットワークインターフェース部５３５を介して、その宛先ゲートウェイにパケットを転送する（ステップ１９１５）。一方、宛先ゲートウェイに関する情報がない場合は、パケットを破棄し（ステップ１９２０）、当該パケットの送信元に対してエラーを通知する（ステップ１９２５）。
【０１３６】
以上、通信ノード１２０間のパケット転送処理について説明した。
【０１３７】
次に、ネットワークに新たに追加されたサービス提供サーバ１１０、あるいは、提供するサービスが変更されたサービス提供サーバ１１０が、自身に関するサービス情報をサービスディレクトリサーバ１００に登録する際の処理（サービス登録処理）について説明する。
【０１３８】
図２４は、ネットワークに新たに追加されたサービス提供サーバ１１０、あるいは、提供するサービスが変更されたサービス提供サーバ１１０が、自身に関するサービス情報をサービスディレクトリサーバ１００に登録する際の処理（サービス登録処理）シーケンスを示す図である。
【０１３９】
まず、ネットワーク内に新たにサービス提供サーバ１１０が設置されると、あるいは、あるサービス提供サーバ１１０について、自身が提供するサービスが変更されると、当該サービス提供サーバ１１０は、自身が提供するサービスについてのサービス情報をディレクトリサーバ１００に送信する（シーケンス１２００）。これを受けて、ディレクトリサーバ１００は、受け取ったサービス情報をサービスデータベースに登録するとともに、当該サービス情報を含んだＮＯＴＩＦＹメッセージを各通信ノード１２０−Ａ〜１２０−Ｃへ送信する（シーケンス１２１０〜１２２０）。
【０１４０】
図２５は、サービスディレクトリサーバ１００が各通信ノード１２０に送信するＮＯＴＩＦＹメッセージの内容を説明するための図である。ここで、ヘッダ１６０５は、メッセージタイプやメッセージ長を含むメッセージヘッダである。プロトコル番号１６１０およびポート番号１６２０は、サービスに対応するプロトコル番号およびポート番号である。プロトコル番号１６１０およびポート番号１６２０については、図１０に示すＱＵＥＲＹメッセージに含まれるプロトコル番号１４２０およびポート番号１４３０と同じ意味を持っている。サービス名１６３０は、サービスの種類を表す文字列であり、特定のサービス情報を管理するための便宜を図るために使用される。サーバ情報１６４０は、サービスを提供するサービス提供サーバ１１０に関する情報である。この情報には、少なくともサービス提供サーバ１１０のアドレスが含まれる。
【０１４１】
クライアント処理スクリプト１６５０は、サービス提供サーバ１１０がサービスを行うために、通信ノード１２０がパケットに対して行うべき一連の処理を表す一種のプログラムである。クライアント処理を行わなくてよいサービスの場合にはクライアント処理スクリプト１６５０は空欄となる。
【０１４２】
さて、図２４に戻り、ＮＯＴＩＦＹメッセージを受け取った各通信ノード１２０−Ａ〜１２０−Ｃは、当該メッセージに含められるサービス情報にしたがい、自身が所有するサービス表を更新する。
【０１４３】
次に、図２４に示すサービス登録処理シーケンスを、サービス提供サーバ１１０側での処理と、サービスディレクトリサーバ１１０側での処理と、通信ノード１２０側での処理とに分けて、より詳細に説明する。
【０１４４】
まず、サービス提供サーバ１１０側での処理について説明する。
【０１４５】
図２６は、図２４に示すシーケンスにおけるサービス提供サーバ１１０側での処理を説明するためのフロー図である。
【０１４６】
まず、サーバ通信部４６０は、サービス情報の通知イベントが発生するのを待つ（ステップ２０４０）。ここで、サービス情報の通知イベントとは、自身のサービス提供サーバ１１０がネットワーク内に設置されてから初めて使用される場合や、自身のサービス提供サーバ１１０が提供するサービスが変更された場合など、サービスディレクトリサーバ１００に対して自身のサービス情報を通知する必要が生じた場合を指す。サービス情報の通知イベントが発生すると、サーバ通信部４６０は、ネットワークインターフェース部４５０を介して、自身のサービス情報をサービスディレクトリサーバ１００に通知する（ステップ２０４５）。
【０１４７】
次に、サービスディレクトリサーバ１００側での処理について説明する。
【０１４８】
図２７は、図２４に示すシーケンスにおけるサービスディレクトリサーバ１００側での処理を説明するためのフロー図である。
【０１４９】
まず、サーバ通信部３６０は、ネットワークインターフェース部３５０を介して、サービス提供サーバ１１０よりサービス情報を受け取ると（ステップ２７０５）、サービスデータベース管理部３２０を介してサービスデータベース３７０に登録する（ステップ２７１０）。また、クライアント通信部３４０に当該サービス情報を渡す。これを受けて、クライアント通信部３４０は、サーバ通信部３４０からの指示にしたがい、クライアントデータベース３８０を検索し、クライアントデータベース３８０にクライアントとして登録されている通信ノード１２０の情報があるか否かをチェックする（ステップ２７１５）。そして、当該情報がある場合は、サービス提供サーバ１１０より受け取ったサービス情報を含めた上記のＮＯＴＩＦＹメッセージを、ネットワークインターフェース部３５０を介して、登録されている全ての通信ノード１２０各々に送信する（ステップ２７２０、２７２５）。
【０１５０】
次に、通信ノード１２０側での処理について説明する。
【０１５１】
図２８は、図２４に示すシーケンスにおける通信ノード１２０側での処理を説明するためのフロー図である。
【０１５２】
まず、サーバ通信部５１５は、ネットワークインターフェース部５３５を介して、サービスディレクトリサーバ１００よりＮＯＴＩＦＹメッセージを受け取ると、当該メッセージに含まれるサービス情報をサービス管理部５４０に渡す。これを受けて、サービス管理部５４０は、受け取ったサービス情報に基づいて、サービス表記憶部５６０に記憶されているサービス表を更新するとともに（ステップ２３１０）、バックアップファイル記憶部５５５に記憶されているバックアップファイルを更新する（ステップ２３２０）。
【０１５３】
以上、ネットワークに新たに追加されたサービス提供サーバ１１０、あるいは、提供するサービスが変更されたサービス提供サーバ１１０が、自身に関するサービス情報をサービスディレクトリサーバ１００に登録する際の処理（サービス登録処理）について説明した。
【０１５４】
最後に、サービスディレクトリサーバ１００の初期化処理について説明する。サービスディレクトリサーバ１００の初期化処理は、サービスディレクトリサーバ１００をネットワーク内に設置後、初めて使用する際に行われる。
【０１５５】
図２９は、サービスディレクトリサーバ１００の初期化処理について説明するためのフロー図である。
【０１５６】
サービスディレクトリサーバ１００が起動されると、サービスデータベース管理部３２０は、サービスデータベース３７０を初期化し、当該データベースにたとえばデフォルトのサービス情報を登録する（ステップ２４１０）。また、クライアント通信部３４０は、クライアントデータベース３８０を初期化し、当該データベースにたとえばデフォルトのクライアント情報を登録する（ステップ２４２０）。
【０１５７】
以上、本発明の一実施形態について説明した。
【０１５８】
本実施形態において、サービスディレクトリサーバ１００は、ネットワーク内に設置されている各サービス提供サーバ１１０のサービス情報を一元管理している。そして、そのサービス情報をネットワーク内の各通信ノード１２０に、自動的にあるいは各通信ノード１２０からの依頼に応じて配布している。たとえば、通信ノード１２０が新たに設置された場合は、当該通信ノード１２０からの問い合わせにより、自身が管理している各サービス提供サーバ１１０のサービス情報を当該通信サーバ１３０に送信する。また、サービス提供サーバ１１０よりサービス情報が通知された場合は、自身のクライアントデータベース３８０に登録されている各通信ノード１２０へ、前記通知されたサービス情報を送信する。
【０１５９】
一方、各通信ノード１２０は、受信したパケットのうち、自身宛のパケットについて、当該パケットを処理すべきサービス提供サーバ１１０を、サービスディレクトリサーバ１００により提供されたサービス情報に基づいて決定し、当該パケットを前記決定したサービス提供サーバ１１０に転送することにより、そのパケットをそのサービス提供サーバ１１０に処理させている。
【０１６０】
したがって、本実施形態によれば、ネットワーク運用管理者は、ネットワークにサービス提供サーバ１１０が新たに追加された場合や既存のサービス提供サーバ１１０が提供するサービスを変更した場合でも、従来のネットワークシステムと異なり、各通信ノード１２０に対して設定作業を行う必要がなくなる。すなわち、ネットワーク運用管理者は、サービスディレクトリサーバ１００に保持されているサービス情報のみを維持・管理し、必要に応じて変更すればよいので、ネットワークの運用管理コストを低減することができる。また、これにより、ネットワーク運用管理者の設定作業量を減らすことができるので、ネットワーク運用管理者の設定ミスを低減させることが期待できる。さらに、設定作業に要する時間を大幅に短縮することができる。
【０１６１】
また、本実施形態では、サービスディレクトリサーバ１００は、クライアント通信部３４０により、各通信ノード１２０とのセッションを管理するようにしているので、各通信ノード１２０毎に、提供するサービス情報を変えることもできる。たとえば、複数の通信ノード１２０をいくつかのグループに分類し、グループごとに異なるサービス提供サーバ１１０を使用するように提供するサービス情報を変えることも可能である。
【０１６２】
また、本実施形態では、サービスディレクトリサーバ１００が各通信ノード１２０へサービス情報を自動配布する場合、ＮＯＴＩＦＹメッセージにサービス情報を含めることで行っている。このように、ＮＯＴＩＦＹメッセージを使用することで、サービスディレクトリサーバ１００は、任意のタイミングで通信ノード１２０各々にサービス情報を通知することが可能になる。これにより、たとえば、通信ノード１２０各々が使用するサービス提供サーバ１１０を時間帯によって別のサービス提供サーバ１１０に変更したりすることができる。
【０１６３】
従来のネットワークシステムでも上記のような使い方は可能であるが、すべての通信ノード各々に対して情報設定を行わなければならないため、ネットワーク運用管理者に大きな負担がかかり、実際には困難であった。サービスディレクトリサーバ１００を利用すればサービスディレクトリサーバ１００に設定を行うだけで、関係するすべての通信ノードに適切なサービス情報を配布することができるため、ネットワーク運用管理者に大きな負担をかけることなく、上記のような新しい利用形態を提供することができる。
【０１６４】
さらに、本実施形態では、サービスディレクトリサーバ１００において、ＯＰＥＮメッセージに含まれる認証情報を用いて、通信ノード１２０のサービスディレクトリサーバ１００に対するアクセス権をチェックしている。
【０１６５】
このようにすることで、正当な権限を有する通信ノード１２０だけがサービスディレクトリサーバ１００よりサービス情報の提供を受けることができる。これにより、システムの安全性を高めることができる。
【０１６６】
なお、本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【０１６７】
たとえば、上記の実施形態では、サービスディレクトリサーバ１００において、ＯＰＥＮメッセージに含まれる認証情報を用いて、通信ノード１２０のサービスディレクトリサーバ１００に対するアクセス権をチェックしている。しかしながら、ネットワーク内に通信ノード１２０のサービスディレクトリサーバ１００に対するアクセス権をチェックするための認証サーバを別途設置し、サービスディレクトリサーバ１００は、通信ノード１２０からＯＰＥＮメッセージを受け取った場合に、当該メッセージに含まれる認証情報を前記認証サーバに転送し、前記認証サーバにて、受け取った認証情報を用いて、通信ノード１２０のサービスディレクトリサーバ１００に対するアクセス権をチェックするようにしてもよい。
【０１６８】
また、本実施形態では、サービス情報の定義やネットワーク経由でのサービス情報取得のために独自のプロトコルを定義して使用しているが、ＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）などのディレクトリアクセスプロトコルやＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの分散オブジェクト技術などを使用するようにしてもよい。
【０１６９】
また、本実施形態では、ネットワーク内に１つのサービスディレクトリサーバ１００を設置しているが、サービスディレクトリサーバ１００を２重化してもよい。そして、通常の運用時には、マスタ（運用系）のサービスディレクトリサーバ１００を稼働させ、マスタのサービスディレクトリサーバ１００に障害が発生した場合に、稼働対象をスレーブ（準備系）のサービスディレクトリサーバ１００に切り替えるようにしてもよい。
【０１７０】
【発明の効果】
以上説明したように、本発明によれば、ネットワークシステム、特に、多くの通信ノードが稼働する大規模なネットワークシステムにおいて、サービスを提供するサーバを新たに設置した場合や既存のサーバが提供するサービスを変更した場合でも、そのために必要となる設定作業の負担を低減させることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態が適用された統合サービスネットワークシステムの概略構成図である。
【図２】図１に示すサービスディレクトリサーバ１００、サービス提供サーバ１１０および通信ノード１２０のハードウエア構成の一例を示す図である。
【図３】図１に示すサービスディレクトリサーバ１００の機能構成図である。
【図４】図１に示すサービス提供サーバ１１０の機能構成図である。
【図５】図１に示す通信ノード１２０の機能構成図である。
【図６】図５に示すサービス表記憶部５６０に記憶されるサービス表の内容を説明するための図である。
【図７】図５に示す経路表記憶部５６５に記憶される経路表の内容を説明するための図である。
【図８】通信ノード１２０の初期化処理シーケンスを示す図である。
【図９】図８において、通信ノード１２０がサービスディレクトリサーバ１００へ送信するＯＰＥＮメッセージの内容を説明するための図である。
【図１０】図８において、通信ノード１２０がサービスディレクトリサーバ１００へ送信するＱＵＥＲＹメッセージの内容を説明するための図である。
【図１１】図８において、サービスディレクトリサーバ１００が通信ノード１２０へ送信するＲＥＰＬＹメッセージの内容を説明するための図である。
【図１２】図８に示すシーケンスにおける通信ノード１２０側での処理を説明するためのフロー図である。
【図１３】図８に示すシーケンスにおけるサービスディレクトリサーバ１００側での処理を説明するためのフロー図であり、ＯＰＥＮメッセージを受信した際の処理を示す図である。
【図１４】図８に示すシーケンスにおけるサービスディレクトリサーバ１００側での処理を説明するためのフロー図であり、ＱＵＥＲＹメッセージを受信した際の処理を示す図である。
【図１５】通信ノード１２０が、自身が保持するサービス表に登録されているサービスに関するパケットを受信した場合における、当該通信ノード１２０およびサービス提供サーバ１１０間のパケット転送処理（登録済サービス処理）シーケンスを示す図である。
【図１６】通信ノード１２０がパケットを受信した場合の処理を説明するためのフロー図である。
【図１７】図１６のステップ１８２０での処理（登録済サービス処理）を説明するためのフロー図である。
【図１８】図１５に示すシーケンスでのサービス提供サーバ１１０側での処理を説明するためのフロー図である。
【図１９】通信ノード１２０が、自身が保持するサービス表に未登録のサービスに関するパケットを受信した場合における、当該通信ノード１２０とサービスディレクトリサーバ１００およびサービス提供サーバ１１０との間のパケット転送処理（未登録サービス処理）シーケンスを示す図である。
【図２０】図１６のステップ１８２５での処理（未登録サービス処理）を説明するためのフロー図である。
【図２１】図２０のステップ２１４０での処理（自律処理）を説明するためのフロー図である。
【図２２】通信ノード１２０間のパケット転送処理シーケンスを示す図である。
【図２３】図１６のステップ１８３０での処理（パケット転送処理）を説明するためのフロー図である。
【図２４】ネットワークに新たに追加されたサービス提供サーバ１１０、あるいは、提供するサービスが変更されたサービス提供サーバ１１０が、自身に関するサービス情報をサービスディレクトリサーバ１００に登録する際の処理（サービス登録処理）シーケンスを示す図である。
【図２５】図２４において、サービスディレクトリサーバ１００が各通信ノード１２０に送信するＮＯＴＩＦＹメッセージの内容を説明するための図である。
【図２６】図２４に示すシーケンスにおけるサービス提供サーバ１１０側での処理を説明するためのフロー図である。
【図２７】図２４に示すシーケンスにおけるサービスディレクトリサーバ１００側での処理を説明するためのフロー図である。
【図２８】図２４に示すシーケンスにおける通信ノード１２０側での処理を説明するためのフロー図である。
【図２９】サービスディレクトリサーバ１００の初期化処理について説明するためのフロー図である。
【符号の説明】
１００：サービスディレクトリサーバ
１１０−Ａ〜１１０−Ｃ：サービス提供サーバ
１２０−Ａ〜１２０−Ｃ：通信ノード
２００：ＣＰＵ、  ２１０：メモリ、  ２１３：ＯＳ
２１５：制御プログラム、  ２２０：ネットワークコントローラ
２３０：キーボードコントローラ、  ２３５：キーボード
２４０：シリアルコントローラ、  ２４５：マウス
２５０：ディスプレイコントローラ、  ２５５：ディスプレイ
２６０：ディスクコントローラ、  ２６５：ディスク装置
３１０、５０５：入出力制御部、  ３２０：サービスデータベース管理部
３３０：サービス要求受付部、  ３４０，４４０：クライアント通信部
３５０，４５０，５３５：ネットワークインタフェース部
３６０，４６０，５１５：サーバ通信部、  ３７０：サービスデータベース
３８０：クライアントデータベース、  ４３０：サービス処理部
５１０：制御・管理部、  ５２０：自律処理部、  ５２５：サービス振分部
５３０：パケット転送処理部、  ５４０：サービス管理部
５４５：経路表管理部、  ５５０：設定情報記憶部
５５５：バックアップファイル記憶部、  ５６０：サービス表記憶部
５６５：経路表記憶部
【図１】
0003581589.tif 000002
【図２】
0003581589.tif 000003
【図３】
0003581589.tif 000004
【図４】
0003581589.tif 000005
【図５】
0003581589.tif 000006
【図６】
0003581589.tif 000007
【図７】
0003581589.tif 000008
【図８】
0003581589.tif 000009
【図９】
0003581589.tif 000010
【図１０】
0003581589.tif 000011
【図１１】
0003581589.tif 000012
【図１２】
0003581589.tif 000013
【図１３】
0003581589.tif 000014
【図１４】
0003581589.tif 000015
【図１５】
0003581589.tif 000016
【図１６】
0003581589.tif 000017
【図１７】
0003581589.tif 000018
【図１８】
0003581589.tif 000019
【図１９】
0003581589.tif 000020
【図２０】
0003581589.tif 000021
【図２１】
0003581589.tif 000022
【図２２】
0003581589.tif 000023
【図２３】
0003581589.tif 000024
【図２４】
0003581589.tif 000025
【図２５】
0003581589.tif 000026
【図２６】
0003581589.tif 000027
【図２７】
0003581589.tif 000028
【図２８】
0003581589.tif 000029
【図２９】
0003581589.tif 000030