(57)【要約】【課題】ネットワークの大幅な構成変更を抑制しつつ、サービス・ロケーション・プロトコルを利用して、異なるネットワークセグメント上で動作するサービスを検出する。【解決手段】本発明に係るネットワークサービス検出プログラムは、マルチキャストパケットを送信することができないネットワークセグメント上のサーバコンピュータにリモートログインし、そのサーバコンピュータ上で可動するユーザ・エージェントに対して、サービスを検出するよう指示する。【選択図】図１
2015216452.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して提供されるサービスをサービス・ロケーション・プロトコルによって検出する処理をコンピュータに実行させるネットワークサービス検出プログラムであって、前記コンピュータに、
前記サービスを検出するよう指示するユーザコマンドを受け取るステップ、
前記コンピュータからマルチキャストパケットを送信することができない第１ネットワークセグメント上に配置されたサーバコンピュータにリモートログインするステップ、
前記サーバコンピュータにリモートログインした状態で、前記サーバコンピュータ上で稼動しているサービス・ロケーション・プロトコルに準拠するユーザ・エージェントに対して、前記第１ネットワークセグメント上において提供されている前記サービスを検出するよう要求する検出コマンドを発行する要求ステップ、
前記ユーザ・エージェントから前記検出コマンドに対する返信を受信して出力装置上に出力する出力ステップ、
を実行させることを特徴とするネットワークサービス検出プログラム。
【請求項２】
前記サーバコンピュータは、ＳＳＨサーバを稼動させており、
前記要求ステップにおいては、前記コンピュータに、
ＳＳＨプロトコルを用いて前記サーバコンピュータにリモートログインし、ＳＳＨプロトコルを用いて前記サーバコンピュータに対して前記ユーザ・エージェントを動作させるよう指示することにより、前記検出コマンドを発行させる
ことを特徴とする請求項１記載のネットワークサービス検出プログラム。
【請求項３】
前記ネットワークサービス検出プログラムは、前記コンピュータに、
前記ユーザコマンドにしたがって、マルチキャストパケットを送信することができる第２ネットワークセグメント上で提供されている前記サービスを検出するステップを実行させ、
前記出力ステップにおいては、前記コンピュータに、
前記第１ネットワークセグメント上における前記サービスの検出結果とともに、前記第２ネットワークセグメント上における前記サービスの検出結果を出力させる
ことを特徴とする請求項１または２記載のネットワークサービス検出プログラム。
【請求項４】
請求項１から３のいずれか１項記載のネットワークサービス検出プログラム、
前記ユーザ・エージェント、
前記ユーザ・エージェントから前記サービスを検出するよう要求を受け取るとその要求に応じて前記第１ネットワークセグメント上で提供されている前記サービスを検出して前記ユーザ・エージェントに対して通知するサービス・エージェント、
を有することを特徴とするネットワークサービス検出システム。
【請求項５】
前記ネットワークサービス検出プログラムと前記ユーザ・エージェントは、マルチキャストパケットを通過させないネットワークルータを介して互いに接続された２つのコンピュータ上にそれぞれ配置されている
ことを特徴とする請求項４記載のネットワークサービス検出システム。
【請求項６】
前記ネットワークルータは、サービス・ロケーション・プロトコルに準拠したディレクトリ・エージェントが使用するＴＣＰポートの通信をブロックするように構成されている
ことを特徴とする請求項５記載のネットワークサービス検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット技術タスクフォース（ＩＥＴＦ）のドキュメント（ＲＦＣ）によって標準化されているサービス・ロケーション・プロトコル（ＳＬＰ）に関し、ネットワーク上で提供されるＳＬＰに準拠したサービスを検出する技術に関するものである。
【背景技術】
【０００２】
サービス・ロケーション・プロトコルは、ネットワーク内である操作を必要とする場合において、その操作を実装するサービスを検出するためのプロトコルである。サービス・ロケーション・プロトコルは、ユーザ・エージェント（ＵＡ）とサービス・エージェント（ＳＡ）によって実装される。サービス・ロケーション・プロトコルのクライアントであるユーザ・エージェントは、同一ネットワーク上で稼働する各サービスの中でサービス・ロケーション・プロトコルのサービス・エージェントに準拠したサービスから、サービスの種類、サービス属性などの情報を取得する。ユーザは、ユーザ・エージェントが取得した情報の中から目的とするサービスを発見することができる。
【０００３】
サービス・ロケーション・プロトコルの仕様については、インターネット技術タスクフォースのドキュメントとして、下記非特許文献１と２が公開されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】（ＲＦＣ２１６５）Ｓｅｒｖｉｃｅ  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ
【非特許文献２】（ＲＦＣ２６０８）Ｓｅｒｖｉｃｅ  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ，Ｖｅｒｓｉｏｎ２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サービス・ロケーション・プロトコルのユーザ・エージェントとサービス・エージェントとの間の通信は、マルチキャスト通信が用いられる。マルチキャストパケットは基本的に、同じネットワークセグメント上の全端末に対して送信されるので、ユーザ・エージェントは同じネットワークセグメントに属する全てのサービス・エージェントからサービス情報を取得することができる。
【０００６】
これに対し、ユーザ・エージェントが属するネットワークセグメントとは異なるネットワークセグメント上で動作するサービス・エージェントからサービス情報を取得する場合は、以下のようにネットワーク構成を変更することにより対応することが一般的である。
【０００７】
まず、ユーザ・エージェントが動作するネットワークセグメントと、サービス・エージェントが動作するネットワークセグメントとの間を繋ぐルータ機器において、ユーザ・エージェントとサービス・エージェントとの間のマルチキャスト通信を許可するマルチキャスト・ルーティングの設定が施されている必要がある。マルチキャスト・ルーティングの設定は一般に難易度が高く、ネットワーク構成に詳しい管理者に当該ネットワークの仕様に準じた設定変更を依頼する必要がある。
【０００８】
マルチキャスト・ルーティングに対応できないネットワークにおいて同様の機能を実現するためには、サービス・ロケーション・プロトコルのディレクトリ・エージェント（ＤＡ）を宛先ネットワークセグメント内に配置する。ディレクトリ・エージェントは、サービス・エージェントが取得できるサービス情報を集中的に管理するキャッシュ的な役割を持っている。サービス・エージェントは、自身が検出したサービス情報をあらかじめディレクトリ・エージェントに登録しておく。ユーザ・エージェントは、サービス・エージェントの代わりにディレクトリ・エージェントと通信することにより、ディレクトリ・エージェントと同じネットワークセグメント上で動作する全てのサービス・エージェントが保有するサービス情報を取得することができる。
【０００９】
ユーザ・エージェントとディレクトリ・エージェントは１対１のユニキャスト通信によって互いに通信するので、マルチキャスト・ルーティングに対応できないネットワークであっても上記と同様の機能を実現することができる。ただしこの場合、サービスを検出しようとする各ネットワークセグメント内にディレクトリ・エージェントを配置して構成する作業が必要である。また、ユーザ・エージェントは各ディレクトリ・エージェントが稼働する端末を個別に把握しておく必要がある。
【００１０】
上記のようなネットワークの構成変更は、サービス・ロケーション・プロトコルの機能を利用することが予定されたネットワークセグメントであれば格別の問題は生じないと考えられる。しかしサービス・ロケーション・プロトコルを利用することが予定されていないネットワークセグメントにおいては、一般にネットワーク構成変更はさまざまなリスクをともなうため、十分な時間とコストをかけて慎重に構成変更する必要がある。
【００１１】
本発明は、上記のような課題に鑑みてなされたものであり、ネットワークの大幅な構成変更を抑制しつつ、サービス・ロケーション・プロトコルを利用して、異なるネットワークセグメント上で動作するサービスを検出することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るネットワークサービス検出プログラムは、マルチキャストパケットを送信することができないネットワークセグメント上のサーバコンピュータにリモートログインし、そのサーバコンピュータ上で可動するユーザ・エージェントに対して、サービスを検出するよう指示する。
【発明の効果】
【００１３】
本発明に係るネットワークサービス検出プログラムによれば、ネットワーク構成を大きく変更することなく、他のネットワークセグメント上で提供されているサービスをサービス・ロケーション・プロトコルによって検出することができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態１に係るネットワークサービス検出システム１０００の構成図である。
【図２】ユーザが入力装置１１４を介して入力するコマンド例を示す図である。
【図３】接続先情報格納部１１２が保持する接続先情報の構成とデータ例を示す図である。
【図４】各サービス・エージェントが返信するサービス情報の１例を示す図である。
【図５】マルチキャストパケットを適切にルーティングすることによりサービス情報を収集するネットワーク構成例を示す図である。
【図６】サービス・ロケーション・プロトコルのディレクトリ・エージェントを用いることによりサービス情報を収集する構成例を示す図である。
【発明を実施するための形態】
【００１５】
＜本発明の実施形態＞
図１は、本発明の実施形態１に係るネットワークサービス検出システム１０００の構成図である。ネットワークサービス検出システム１０００は、ネットワーク内の全てのネットワークセグメント上で動作するサービス・エージェントに問い合わせを発行し、目的とするサービス情報を取得するためのシステムである。
【００１６】
ネットワークサービス検出システム１０００は、第１ネットワークセグメント１００と第２ネットワークセグメント２００に分かれて構成されている。各ネットワークセグメントはネットワークルータ３００を介して接続されている。ネットワークルータ３００は、各ネットワークセグメント間でマルチキャストパケットを通過させないように設定されている。
【００１７】
ユーザ・エージェント１１０（ネットワークサービス検出プログラム）は、クライアント端末上で動作する。クライアント端末は、ユーザが操作入力するための入力装置１１４、処理結果を出力するための出力装置１１５、ユーザ・エージェント１１０を実行するプロセッサ（図示せず）を備える。以下では記載の便宜上、ユーザ・エージェント１１０などのプログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのは各コンピュータ上のプロセッサであることを付言しておく。
【００１８】
サービス・エージェント１２０は、第１ネットワークセグメント１００に属するコンピュータ上に配置されており、ユーザ・エージェント１１０からの問い合わせに応じて第１ネットワークセグメント１００上のサービス情報を返信する。
【００１９】
第２ネットワークセグメント２００は、サーバコンピュータ２１０とサービス・エージェント２２０を有する。サーバコンピュータ２１０は、ＳＳＨサーバを常駐的に稼動させており、さらにユーザ・エージェント２１１を備える。サービス・エージェント２２０は、第２ネットワークセグメント２００に属するコンピュータ上に配置されており、ユーザ・エージェント２１１からの問い合わせに応じて第２ネットワークセグメント２００上のサービス情報を返信する。
【００２０】
ユーザ・エージェント１１０および２１１、サービス・エージェント１２０および２２０は、それぞれサービス・ロケーション・プロトコルに準拠したユーザ・エージェントおよびサービス・エージェントである。
【００２１】
ユーザ・エージェント１１０は、コマンド実行部１１１とＳＳＨ（Ｓｅｃｕｒｅ  ＳＨｅｌｌ）クライアントを備えている。ＳＳＨクライアントはさらに、接続先情報格納部１１２とリモートコマンド実行部１１３を備える。各機能部の詳細については後述する。以下図１を用いて、各構成要素の動作手順について説明する。
【００２２】
（図１：ステップ１：コマンド入力）
クライアント端末のユーザは、入力装置１１４を介して、ユーザ・エージェント１１０に対してサービス・ロケーション・プロトコルを用いてネットワーク上のサービスを検出するよう指示する。このときユーザが入力するコマンド例については後述する。ユーザ・エージェント１１０は、そのコマンドを受け取り以下のステップを実行する。
【００２３】
（図１：ステップ２：第１ネットワークセグメント１００に対する問い合わせ）
コマンド実行部１１１は、クライアント端末が属するネットワークセグメント（ここでは第１ネットワークセグメント１００）上に配置されているサービス・エージェント（ここではサービス・エージェント１２０）に対して、マルチキャスト通信によりサービス情報を問い合わせる。サービス・エージェント１２０は、第１ネットワークセグメント１００上において提供されているサービスについての情報を返信する。本ステップにおける問い合わせはネットワークルータ３００にも到達するが、ネットワークルータ３００はマルチキャストパケットを通過させないので、この問い合わせは第２ネットワークセグメント２００には到達しない。
【００２４】
（図１：ステップ３：リモートログイン）
リモートコマンド実行部１１３は、ステップ１〜ステップ２と並行して、またはこれらステップに前後して、ＳＳＨプロトコルを用いてサーバコンピュータ２１０にリモートログインする。サーバコンピュータ２１０のＩＰアドレス、ログインのためのユーザＩＤおよびパスワードについては、あらかじめ接続先情報格納部１１２が保持しておくものとする。接続先情報格納部１１２が保持する情報は例えば事前設定してもよいし、ステップ１においてユーザが入力装置１１４を介して与えてもよい。
【００２５】
（図１：ステップ４：第２ネットワークセグメント２００に対する問い合わせ）
リモートコマンド実行部１１３は、ＳＳＨプロトコルを介して、サーバコンピュータ２１０に対して、ステップ１でユーザが入力したコマンドと同様のコマンドをユーザ・エージェント２１１に対して発行する（すなわちユーザ・エージェント２１１をリモート実行する）。ユーザ・エージェント２１１はそのコマンドに応じて、サーバコンピュータ２１０が属するネットワークセグメント（ここでは第２ネットワークセグメント２００）上に配置されているサービス・エージェント（ここではサービス・エージェント２２０）に対して、マルチキャスト通信によりサービス情報を問い合わせる。サービス・エージェント２２０は、第２ネットワークセグメント２００上において提供されているサービスについての情報を返信する。
【００２６】
（図１：ステップ４：第２ネットワークセグメント２００に対する問い合わせ：補足）
サーバコンピュータ２１０上のユーザ・エージェント２１１のコマンドパスがクライアント端末上のものと異なる場合は、サーバコンピュータ２１０上におけるコマンドパスについてあらかじめ接続先情報格納部１１２に格納しておくこともできる。これにより、ユーザ・エージェント２１１をリモートコマンドとして確実に実行することができる。
【００２７】
（図１：ステップ５：結果出力）
コマンド実行部１１１とリモートコマンド実行部１１３は、それぞれの問い合わせ結果を出力装置１１５上に出力する。ユーザ・エージェント１１０は、各結果をいったん集約してから出力してもよいし、各実行部が問い合わせ結果を受け取るごとに逐次的に出力してもよい。
【００２８】
（図１：ステップ５：結果出力：補足）
出力装置１１５は、例えば問い合わせ結果を画面表示するディスプレイデバイスであってもよいし、問い合わせ結果を記述したデータを格納する記憶装置であってもよい。その他適当な出力デバイスであってもよい。各実行部は出力装置１１５の仕様に応じた形式で問い合わせ結果を出力する。
【００２９】
図２は、ユーザが入力装置１１４を介して入力するコマンド例を示す図である。図２に示す「ｓｌｐｔｏｏｌ」は、クライアント端末上におけるユーザ・エージェント１１０の実行ファイルである。第１引数はサービスを検出するよう指示するパラメータである。第２引数は検出したいサービスタイプである。ここではサービスタイプとして「ｗｂｅｍ」を指定している。
【００３０】
図３は、接続先情報格納部１１２が保持する接続先情報の構成とデータ例を示す図である。接続先情報は、リモートコマンド実行部１１３がサーバコンピュータ２１０にリモートログインするため必要な情報として、先に説明したような各パラメータを保持する。さらにサーバコンピュータ２１０上におけるユーザ・エージェント２１１の実行ファイルの絶対パスを保持することもできる。
【００３１】
図４は、各サービス・エージェントが返信するサービス情報の１例を示す図である。各サービス・エージェントは、自身が属するネットワークセグメント上において提供されているサービスのＵＲＬを、サービス情報として返信する。図４に示すサービス情報は１例であり、その他必要な情報を返信することもできる。
【００３２】
＜従来技術におけるサービス検出：例１＞
以下では本発明と比較するため、従来技術においてネットワークルータをまたがってサービスを検出するために必要なネットワーク構成について説明する。
【００３３】
図５は、マルチキャストパケットを適切にルーティングすることによりサービス情報を収集するネットワーク構成例を示す図である。説明の便宜上、図１とは異なる部分のみ新たな参照符号を付与した。図５に示すシステムは、図１とは異なり、ユーザ・エージェント１１０はＳＳＨクライアントを備えておらず、サーバコンピュータ２１０も存在していない。
【００３４】
図５において、ユーザ・エージェント１１０は図１と同様に、マルチキャスト通信によりサービス・エージェントに対してサービス情報を問い合わせる。ネットワークルータ３００は、マルチキャストパケットをそのまま通過させることはできないが、適切なマルチキャスト・ルーティング設定をネットワークルータ３００へ施すことにより、マルチキャストパケットを第２ネットワークセグメント２００へ中継することができる。これによりサービス・エージェント２２０は第２ネットワークセグメント２００上のサービス情報をユーザ・エージェント１１０へ返信することができるので、ユーザ・エージェント１１０は第２ネットワークセグメント２００上のサービスを検出することができる。
【００３５】
ただし図５に示すような構成を実現するためには、ネットワークルータ３００が適切なマルチキャスト・ルーティングを実施する必要がある。図５においてはルータは１段のみであるが、ルータが多段にわたる場合におけるマルチキャスト・ルーティングの設定は煩雑であり、またマルチキャスト・ルーティング・プロトコルをサポートするルータでなければこれを実現することができない。さらには、一般的にネットワークルータはマルチキャスト・ルーティングを許可していないので、図５のような設定変更をネットワーク管理者に依頼する必要があり、ネットワーク管理者にとっての作業負担が増す。
【００３６】
以上のような現況に鑑みると、マルチキャストパケットを通過（または中継）させるようなネットワーク構成変更によって各ネットワークセグメント上のサービスを検出できるようにすることは、現実的ではない。本発明によれば、そのようなネットワーク構成変更をすることなく同様の機能を実現できる点において有利である。
【００３７】
＜従来技術におけるサービス検出：例２＞
図６は、サービス・ロケーション・プロトコルのディレクトリ・エージェントを用いることによりサービス情報を収集する構成例を示す図である。図５と同様に、図１とは異なる部分のみ新たな参照符号を付与した。図６に示すシステムにおいて、ユーザ・エージェント１１０はＳＳＨクライアントに代えてディレクトリ・エージェントロケーション格納部１１６を備える。またサーバコンピュータ２１０は、ユーザ・エージェント２１１に代えてディレクトリ・エージェント２１２を備える。
【００３８】
ディレクトリ・エージェント２１２は、サービス情報を集中管理する機能を備える。サービス・エージェント２２０は、あらかじめディレクトリ・エージェント２１２に対して自身が検出したサービスを登録する。ユーザ・エージェント１１０は、ディレクトリ・エージェントロケーション格納部１１６が格納している、ディレクトリ・エージェント２１２のネットワークアドレスなどを用いて、ユニキャスト通信によりディレクトリ・エージェント２１２と通信し、ディレクトリ・エージェント２１２が管理しているサービス情報を取得することができる。
【００３９】
図６に示すシステムにおいては、ネットワークルータ３００はマルチキャストパケットを通過（または中継）する必要はない。ただしサーバコンピュータ２１０上にディレクトリ・エージェント２１２を新規に構成する必要があり、さらにはサービス・エージェント２２０がディレクトリ・エージェント２１２に対してあらかじめサービス情報を登録する作業も必要になる。したがって第２ネットワークセグメント２００におけるネットワーク管理者の作業負担が生じる。
【００４０】
これに対し本発明によれば、サーバコンピュータ２１０が通常は標準的に備えているリモートログイン機能によって同様の機能を実現することができるので、第２ネットワークセグメント２００における構成変更が必要ない点において有利である。また本発明においては、ネットワークルータ３００はディレクトリ・エージェント２１２にアクセスするためのＴＣＰポート番号の通信を許可する必要はないので、ＴＣＰポートを不用意にオープンせずに同様の機能を実現することができる点において、図６に示すシステムよりもネットワークセキュリティの観点から好ましい。
【００４１】
＜本発明のまとめ＞
以上のように、本発明に係るユーザ・エージェント１１０は、第２ネットワークセグメント２００に属するサーバコンピュータ２１０にリモートログインし、サーバコンピュータ２１０上のユーザ・エージェント２１１に対してサービス検出を指示する。ユーザ・エージェント１１０とサーバコンピュータ２１０との間の通信はユニキャスト通信であるため、ネットワークルータ３００がマルチキャストパケットを通過させない場合であっても第２ネットワークセグメント２００上のサービス情報を収集することができる。
【００４２】
また本発明に係るユーザ・エージェント１１０は、サーバコンピュータ２１０が標準的に提供するリモートログイン機能を用いてユーザ・エージェント２１１に対してサービス検出を指示する。これにより、サーバコンピュータ２１０上に例えばディレクトリ・エージェント２１２などの追加的機能を構成する必要がなくなるので、ネットワーク管理者などの作業負担を軽減することができる。
【００４３】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【００４４】
例えば以上の実施形態においては、ユーザ・エージェント１１０はＳＳＨを用いてサーバコンピュータ２１０と通信することを説明したが、同様の機能を実現できればＳＳＨに限られるものではない。例えばリモートシェル（ｒｓｈ）コマンド、ｔｅｌｎｅｔ、などのリモートコマンドプロトコルを用いることも考えられる。
【００４５】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【符号の説明】
【００４６】
１００：第１ネットワークセグメント、１１０：ユーザ・エージェント、１１１：コマンド実行部、１１２：接続先情報格納部、１１３：リモートコマンド実行部、１２０：サービス・エージェント、２００：第２ネットワークセグメント、２１０：サーバコンピュータ、２１１：ユーザ・エージェント、２２０：サービス・エージェント、３００：ネットワークルータ、１０００：ネットワークサービス検出システム。
【図１】
2015216452.tif 000003
【図２】
2015216452.tif 000004
【図３】
2015216452.tif 000005
【図４】
2015216452.tif 000006
【図５】
2015216452.tif 000007
【図６】
2015216452.tif 000008