(57)【特許請求の範囲】
【請求項１】
ジョブ処理を要求するクライアントと、ポーリング方式で状態を通知するＮＳＩ(Network Service Interface)対応のジョブ処理サーバとを有するシステムにおける状態通知方法であって、
前記システムは、メッセージを中継して転送するメッセージングサーバを更に有し、
前記クライアントが、クライアント名＠ドメイン名から構成されたクライアントアカウントを、前記メッセージングサーバへ登録する第１のステップと、
前記クライアントが、前記クライアントアカウントを含むジョブ要求メッセージを、前記ジョブ処理サーバへ送信する第２のステップと、
前記ジョブ処理サーバが、前記ジョブ要求メッセージに対応するジョブを生成し、該ジョブに対応する、対象設備識別子＠ドメイン名から構成されたジョブアカウントを、前記メッセージングサーバへ登録する第３のステップと、
前記ジョブ処理サーバが、前記メッセージングサーバへ、前記ジョブアカウントのコンタクトリストに前記クライアントアカウントを登録する第４のステップと、
前記ジョブ処理サーバが、前記ジョブアカウントに対する状態通知メッセージを、前記メッセージングサーバへ送信する第５のステップと、
前記メッセージングサーバが、前記状態通知メッセージを、前記クライアントアカウントへ転送する第６のステップと
を有することを特徴とする状態通知方法。
【請求項２】
前記メッセージングサーバは、ＸＭＰＰ(eXtensible Messaging and Presence Protocol)に対応したインスタントメッセージングサーバである
ことを特徴とする請求項１に記載の状態通知方法。
【請求項３】
ジョブ処理を要求するクライアントと、ポーリング方式で状態を通知するＮＳＩ対応のジョブ処理サーバとを有する状態通知システムであって、
メッセージを中継して転送するメッセージングサーバを更に有し、
前記クライアントは、
クライアント名＠ドメイン名から構成されたクライアントアカウントを、前記メッセージングサーバへ登録するクライアントアカウント登録手段と、
前記クライアントアカウントを含むジョブ要求メッセージを、前記ジョブ処理サーバへ送信するジョブ要求手段とを有し、
前記ジョブ処理サーバは、
前記ジョブ要求メッセージに対応するジョブを生成するジョブ生成手段と、
前記ジョブに対応する、対象設備識別子＠ドメイン名から構成されたジョブアカウントを、前記メッセージングサーバへ登録するジョブアカウント登録手段と、
前記メッセージングサーバへ、前記ジョブアカウントのコンタクトリストに前記クライアントアカウントを設定するクライアントアカウント設定手段と、
前記ジョブアカウントに対する状態通知メッセージを、前記メッセージングサーバへ送信する状態通知送信手段とを有し、
前記メッセージングサーバが、前記状態通知メッセージを、前記クライアントアカウントへ転送する
ことを特徴とする状態通知システム。
【請求項４】
前記メッセージングサーバは、ＸＭＰＰに対応したインスタントメッセージングサーバである
ことを特徴とする請求項３に記載の状態通知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントが、サーバにおける処理状態を確認する技術に関する。
【背景技術】
【０００２】
従来、クライアントがサーバにおける処理状態を確認するために、「ポーリング(polling)」技術がある。この技術によれば、クライアントが、ポーリング（問合せ）メッセージをサーバへ定期的に送信し、これに対し、サーバが、現時点の処理状態を含む応答メッセージをクライアントへ返信する。
【０００３】
このようなポーリング技術を大規模に用いた用途として、資源管理システムがある。近年、地理的に分散した計算資源を、高速なネットワーク資源で相互に結ぶことによって、大規模高性能計算システムを構築することが可能となってきた。これを実現するためには、通信における遅延・帯域の不安定、及び／又は、計算機における過負荷等を引き起こさないように、必要なネットワーク資源及び／又は計算資源（及びストレージ資源）を予め確保しておかなければならない。資源管理システムによれば、これら資源を、エンドツーエンドのサービスレベルの通信品質に応じて、予約管理することができる。
【０００４】
図１は、対象設備システムに資源管理サーバを備えたシステム構成図である。
【０００５】
図１によれば、資源管理サーバとしてのジョブ処理サーバ１が、ネットワーク資源及び計算資源からなる対象設備システム３を管理している。ジョブ処理サーバ１は、ユーザによって操作されるクライアント２からの要求に応じて、対象設備システム３における資源の確保／開放／変更等の管理をする。
【０００６】
クライアント２は、所望の資源が所望の状態（例えば予約状態、利用可能状態又は利用終了状態）になったことを確認するために、ジョブ処理サーバ１へ定期的にポーリング（問合せ）メッセージを送信する。ジョブ処理サーバ１は、そのポーリングメッセージに対して、当該資源における現時点の状態を含む状態通知メッセージを、クライアント２へ応答する。これによって、クライアント２は、要求した資源の状態が、どのような状態であるかを知ることができる。
【０００７】
このような技術によれば、多数のクライアント２が定期的にポーリングするために、ジョブ処理サーバ１に処理負荷が集中すると共に、やりとりされるポーリングメッセージの数も多くなる。また、ジョブ確保の緊急度に応じて、クライアント２が、ジョブ処理サーバ１に対する問合せメッセージを送信する時間間隔（周期）も短くなり（送信頻度が増加し）、結果的にポーリングメッセージの数も膨大となってしまう。
【０００８】
これに対し、対象設備としてのネットワーク機器の状態を監視するために、メッセージングサーバを用いてクライアント−サーバ間のメッセージングを簡素化する技術がある（例えば特許文献１参照）。この技術によれば、状態通知メッセージを送信するネットワーク機器が、通知先となるクライアント（ＥＭＳ(Element Management System)／ＮＭＳ(Network Management System)）を予め登録しており、そのクライアントへ向けてメッセージを送信する。
【０００９】
また、状態を更新するサーバが、プレゼンスサーバに対して、情報公開者(publisher)として登録する技術もある（例えば特許文献２参照）。この技術によれば、状態通知メッセージを受信するクライアントが、プレゼンスサーバに対して、その情報公開者が更新した情報を取得するように購読者(subscriber)として登録する。これによって、情報公開者としてのサーバから送信された状態通知メッセージは、プレゼンスサーバを介して、購読者としてのクライアントへ迅速に転送される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２００７−５２０７８６号公報
【特許文献２】特表２００６−５１２６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に記載された技術によれば、状態を更新する対象設備（ネットワーク機器）は、状態通知メッセージを送信すべきクライアント（ＥＭＳ／ＮＭＳ）を予め登録しておく必要がある。そのために、不特定多数のクライアントが、サーバに処理を要求する場合、対象設備が事前にクライアントを把握しておくことはできない。
【００１２】
また、特許文献２に記載された技術によれば、購読者(subscriber)となるクライアントが、情報公開者(publisher)となるサーバを事前に知っておく必要がある。しかしながら、ジョブ処理のように、特定のクライアントのみに通知したい場合、subscriber毎にpublisherを新設しなくてはならない。そのため、クライアントが事前にサーバのpublisherを把握しておくことはできない。
【００１３】
そこで、本発明は、ポーリング技術を用いることなく、クライアントがジョブ要求メッセージをジョブ処理サーバへ送信するだけで、そのジョブにおける状態が更新された際に、クライアントが状態通知メッセージを迅速に受信することができる状態通知方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明によれば、ジョブ処理を要求するクライアントと、ポーリング方式で状態を通知するＮＳＩ(Network Service Interface)対応のジョブ処理サーバとを有するシステムにおける状態通知方法であって、
システムは、メッセージを中継して転送するメッセージングサーバを更に有し、
クライアントが、クライアント名＠ドメイン名から構成されたクライアントアカウントを、メッセージングサーバへ登録する第１のステップと、
クライアントが、クライアントアカウントを含むジョブ要求メッセージを、ジョブ処理サーバへ送信する第２のステップと、
ジョブ処理サーバが、ジョブ要求メッセージに対応するジョブを生成し、該ジョブに対応する、対象設備識別子＠ドメイン名から構成されたジョブアカウントを、メッセージングサーバへ登録する第３のステップと、
ジョブ処理サーバが、メッセージングサーバへ、ジョブアカウントのコンタクトリストにクライアントアカウントを登録する第４のステップと、
ジョブ処理サーバが、ジョブアカウントに対する状態通知メッセージを、メッセージングサーバへ送信する第５のステップと、
メッセージングサーバが、状態通知メッセージを、クライアントアカウントへ転送する第６のステップと
を有することを特徴とする。
【００１６】
本発明の状態通知方法における他の実施形態によれば、
メッセージングサーバは、ＸＭＰＰ(eXtensible Messaging and Presence Protocol)に対応したインスタントメッセージングサーバであることも好ましい。
【００１７】
本発明によれば、ジョブ処理を要求するクライアントと、ポーリング方式で状態を通知するＮＳＩ対応のジョブ処理サーバとを有する状態通知システムであって、
メッセージを中継して転送するメッセージングサーバを更に有し、
クライアントは、
クライアント名＠ドメイン名から構成されたクライアントアカウントを、メッセージングサーバへ登録するクライアントアカウント登録手段と、
クライアントアカウントを含むジョブ要求メッセージを、ジョブ処理サーバへ送信するジョブ要求手段とを有し、
ジョブ処理サーバは、
ジョブ要求メッセージに対応するジョブを生成するジョブ生成手段と、
ジョブに対応する、対象設備識別子＠ドメイン名から構成されたジョブアカウントを、メッセージングサーバへ登録するジョブアカウント登録手段と、
メッセージングサーバへ、ジョブアカウントのコンタクトリストにクライアントアカウントを設定するクライアントアカウント設定手段と、
ジョブアカウントに対する状態通知メッセージを、メッセージングサーバへ送信する状態通知送信手段とを有し、
メッセージングサーバが、状態通知メッセージを、クライアントアカウントへ転送する
ことを特徴とする。
【００１９】
本発明の状態通知システムにおける他の実施形態によれば、
メッセージングサーバは、ＸＭＰＰに対応したインスタントメッセージングサーバであることも好ましい。
【発明の効果】
【００２０】
本発明の状態通知方法及びシステムによれば、ポーリング技術を用いることなく、クライアントがジョブ要求メッセージをジョブ処理サーバへ送信するだけで、そのジョブにおける状態が更新された際に、クライアントが状態通知メッセージを迅速に受信することができる、また、クライアントは、状態を更新する対象設備システムにおける特定の識別情報を知ること無く、メッセージングサーバから状態通知メッセージを受信することができる。
【図面の簡単な説明】
【００２１】
【図１】従来技術におけるシステム構成図である。
【図２】本発明におけるシステム構成図である。
【図３】本発明におけるシーケンス図である。
【図４】図３のシーケンスに伴うメッセージ内容を表す説明図である。
【図５】本発明におけるクライアント及びジョブ処理サーバの機能構成図である。
【発明を実施するための形態】
【００２２】
以下では、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２３】
図２は、本発明におけるシステム構成図である。
【００２４】
図２によれば、図１と比較して、メッセージングサーバ４を更に有する。「メッセージングサーバ」とは、例えばSkype（登録商標）やWindows Messenger（登録商標）に代表されるＩＭ（インスタント・メッセージング）サーバである。特に、メッセージングサーバは、相手側クライアントが接続しているか否かの状態（ステータス）を、自側クライアントへ通知することもできる。
【００２５】
メッセージングサーバのプロトコルとして、RFC3920及びRFC3921で規格化されたＸＭＬベースのＸＭＰＰ(eXtensible Messaging and Presence Protocol)がある。これは、メールサーバと同様に、username@domainの形式のアカウントを利用する。
【００２６】
図２によれば、対象設備システムにおける資源管理の状態変化を検出した資源管理サーバ（ジョブ処理サーバ）１は、メッセージングサーバ４へ、状態通知メッセージを送信する。メッセージングサーバ４は、受信した状態通知メッセージを、登録したクライアント２へ転送する。即ち、本発明によれば、ジョブ処理サーバ１における状態通知メッセージは、ポーリング方式ではなく、メッセージング方式によって、クライアント２へ通知される。
【００２７】
図３は、本発明におけるシーケンス図である。
図４は、図３のシーケンスに伴うメッセージ内容を表す説明図である。
【００２８】
（Ｓ１）クライアント２は、クライアントアカウントを、メッセージングサーバ４へ登録する。例えば、XMPPサーバがejabberdの場合、以下のようなコマンドで登録することができる。
$ ejabberdctl register juliet example.com password
"ejabberdctl"は、XMPPを実装したソフトウェアであるejabberdのコマンドの１つである。"ejabberdctl register"は、「アカウントの登録」を意味するコマンドであり、アカウント"juliet"及びドメイン"examle.com"の登録が要求されている。これによって、メッセージングサーバ４は、juliet@examle.comのアカウントを登録する。
【００２９】
（Ｓ２）次に、クライアント２は、クライアントアカウントを含むジョブ要求メッセージを、ジョブ処理サーバ１へ送信する。「ジョブ要求メッセージ」は、要求するジョブの内容情報に加えて、当該クライアント２のアカウントjuliet@examle.comも含む。
【００３０】
ここで、ジョブ処理サーバ１がネットワーク資源管理サーバである場合、ジョブ要求メッセージは、例えばOpen Grid Forumによって規定されているＮＳＩ(Network
Service Interface)に基づく。ＮＳＩによれば、クライアントのアカウントを、"RequesterNSA"と称する名前で設定することができる。この場合、ジョブ要求メッセージは、ＮＳＩのreserve（予約）メッセージであってもよい。ネットワーク資源管理サーバに対するreserveメッセージには、確保すべきネットワークパスの端点や帯域、予約時間を指定すると共に、クライアントのアカウントを含む。
【００３１】
（Ｓ３）ジョブ処理サーバ１は、受信したジョブ要求メッセージに対応するジョブを生成し、そのジョブに対応するジョブアカウントを作成する。そして、ジョブ処理サーバ１は、そのジョブアカウントを、メッセージングサーバ４へ登録する。
【００３２】
ネットワーク資源管理サーバとしてのジョブ処理サーバ１が、例えばreserveメッセージを受信した場合、それに対応するジョブを生成する。ここで、対象設備システムにおけるネットワークパスには、ユニークな"connection ID"が割り当てられている。そこで、ネットワーク資源管理サーバ１は、管理対象となるネットワークパスの"connection ID"と、その対象設備システムのドメイン"example.com"とを組み合わせて、例えばＸＭＰＰのアカウントとして、"connectionID@domain"を生成する。
【００３３】
次に、ジョブ処理サーバ１は、生成したアカウントをメッセージングサーバ４へ登録する。例えば、XMPPサーバがejabberdの場合、以下のようなコマンドで登録することができる。
$ ejabberdctl register connectionID domain password
【００３４】
（Ｓ４）次に、ジョブ処理サーバ１は、メッセージングサーバ４へ、ジョブアカウントのコンタクトリストにクライアントアカウントを設定する。ジョブアカウントのコンタクトリストとは、メッセージの通知先の一覧を意味する。ＸＭＰＰの場合、以下のようなメッセージのシーケンスが実行される。NRMはジョブ処理サーバ１を表し、MSSはメッセージングサーバ４を表す。
【００３５】
最初に、ジョブ処理サーバ１が、メッセージングサーバ４へ、jabberのクライアントとしての登録開始メッセージを送信し、ログインする。
次に、メッセージングサーバ４が、ジョブ処理サーバ１へ、対応可能な認証方式を返信する。
これに対し、ジョブ処理サーバ１は、メッセージングサーバ４へ、"PLAIN"を選択して、その旨を送信する。
これに対し、メッセージングサーバ４は、ジョブ処理サーバ１へ、成功（対応可能）応答を返信する。
次に、ジョブ処理サーバ１は、プレゼンスコマンド"presence"を用いて、ジョブアカウント"connectID@examle.com"のコンタクトリストに、クライアントアカウント"juliet@example.com"を設定する。ここでは、タイプ"subscribe"とすることによって、ジョブアカウント"connectID@examle.com"からのメッセージを、クライアントアカウント"juliet@example.com"が購読することを意味する。
これに対し、メッセージングサーバ４は、ジョブ処理サーバ１へ、クライアントアカウント"juliet@example.com"が登録された旨の応答メッセージを返信する。
これによって、メッセージングサーバ４は、ジョブアカウントからのメッセージを、登録されたクライアントアカウントへ転送するように機能する。
【００３６】
（Ｓ５）そして、ジョブ処理サーバ１は、ジョブ処理を実行する。その後、ジョブにおける状態た変化した際に、ジョブ処理サーバ１は、ジョブにおける状態通知メッセージを、メッセージングサーバ４へ送信する。コマンド"presence"によって、送信元アカウントはジョブアカウント"connectID@examle.com"であり、状態は"Status"で表される。
【００３７】
（Ｓ６）これに対し、メッセージングサーバ４が、ジョブ処理サーバ１から状態通知メッセージを受信した際に、その送信元アカウント（ジョブアカウント）を認識する。そして、その送信元アカウントからのメッセージを購読すべきリストに登録されたアカウント（クライアントアカウント）を検索する。そして、メッセージングサーバ４は、その状態通知メッセージを、クライアントアカウントに対応するクライアント２へ転送する。
【００３８】
これによって、クライアント２は、ジョブアカウントに対応する状態を知ることができる。また、ジョブ処理サーバ１のジョブの状態が変化した場合、ジョブ処理サーバ１が、そのジョブアカウントから状態通知メッセージを送信するだけで、メッセージングサーバ４からその状態を知りたいクライアントへ転送される。
【００３９】
図５は、本発明におけるクライアント及びジョブ処理サーバの機能構成図である。
【００４０】
図５によれば、クライアント２は、アプリケーション処理部２０と、クライアントアカウント登録部２１と、ジョブ要求部２２と、状態通知受信部２３とを有する。
【００４１】
クライアントアカウント登録部２１は、クライアントアカウントを、メッセージングサーバ４へ登録する（図３及び図４のＳ１参照）。メッセージングサーバ４が、ＸＭＰＰに対応している場合、クライアントアカウントは、クライアント名＠ドメイン名から構成される。
【００４２】
ジョブ要求部２２は、アプリケーション処理部２０からの指示に応じて、クライアントアカウントを含むジョブ要求メッセージを、ジョブ処理サーバ１へ送信する（図３及び図４のＳ２参照）。ジョブ処理サーバ１がネットワーク資源管理サーバである場合、ジョブ要求メッセージは、ＮＳＩの予約(Reserve)要求メッセージであってもよい。
【００４３】
状態通知受信部２３は、メッセージングサーバ４から状態通知メッセージを受信し、その内容をアプリケーション処理部２０へ出力する（図３及び図４のＳ６参照）。
【００４４】
ジョブ処理サーバ１は、ジョブ処理部１０と、ジョブ生成部１１と、ジョブアカウント登録部１２と、クライアントアカウント設定部１３と、状態通知送信部１４とを有する。
【００４５】
ジョブ生成部１１は、クライアント２から受信したジョブ要求メッセージに対応するジョブ処理部１０を生成する（図３及び図４のＳ３参照）。
【００４６】
ジョブアカウント登録部１２は、ジョブに対応するジョブアカウントを、メッセージングサーバ４へ登録する（図３及び図４のＳ３参照）。メッセージングサーバ４が、ＸＭＰＰに対応している場合、ジョブアカウントは、ネットワーク資源のコネクションＩＤを用いて、対象設備識別子＠ドメイン名から構成される。
【００４７】
クライアントアカウント設定部１３は、メッセージングサーバ４へ、ジョブアカウントのコンタクトリストにクライアントアカウントを設定する（図３及び図４のＳ４参照）。
【００４８】
状態通知送信部１４は、ジョブ処理部１０における状態が更新された際に、当該ジョブに対する状態通知メッセージを、メッセージングサーバ４へ送信する（図３及び図４のＳ５参照）。
【００４９】
以上、詳細に説明したように、本発明の状態通知方法及びシステムによれば、ポーリング技術を用いることなく、クライアントがジョブ要求メッセージをジョブ処理サーバへ送信するだけで、そのジョブにおける状態が更新された際に、クライアントが状態通知メッセージを迅速に受信することができる、また、クライアントは、状態を更新する対象設備システムにおける特定の識別情報を知ること無く、メッセージングサーバから状態通知メッセージを受信することができる。
【００５０】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００５１】
１  ジョブ処理サーバ、資源管理サーバ
１０  ジョブ処理部
１１  ジョブ生成部
１２  ジョブアカウント登録部
１３  クライアントアカウント設定部
１４  状態通知送信部
２  クライアント
２０  アプリケーション処理部
２１  クライアントアカウント登録部
２２  ジョブ要求部
２３  状態通知受信部
３  対象設備システム
４  メッセージングサーバ
【図１】
0005798075.tif 000002
【図２】
0005798075.tif 000003
【図３】
0005798075.tif 000004
【図４】
0005798075.tif 000005
【図５】
0005798075.tif 000006