(57)【要約】【課題】複数のプロトコルサービスが搭載されているネットワークデバイスにおいて、クライアントへサービスを提供する際に、途中でサービスが停止してしまうことを防止する。【解決手段】プリンタ１は、ＷＳＤ処理部１５と、ＵＰｎＰ処理部１７と、クライアント３からサービス要求を受け付けると、受け付けたサービス要求に係るプロトコルに基づいて、ＷＳＤ処理部１５またはＵＰｎＰ処理部１７へサービス要求を割り当てるＨＴＴＰ処理部１３と、を備える。ＷＳＤ処理部１５がサービスを提供できる上限クライアント数、及び、ＵＰｎＰ処理部１７がサービスを提供できる上限クライアント数が予め定められているとき、ＨＴＴＰ処理部１３は、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７がサービスを提供するクライアント数が、それぞれの上限クライアント数を超えないようにクライアント数を管理する。【選択図】図１
2010154312.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからのサービス要求に応答して、前記クライアントへサービスを提供するネットワークデバイスであって、
第１のプロトコルに関する処理を提供する第１のプロトコル処理部と、
第２のプロトコルに関する処理を提供する第２のプロトコル処理部と、
前記クライアントからサービス要求を受け付けると、受け付けたサービス要求に係るプロトコルに基づいて、前記第１または第２のプロトコル処理部へ前記サービス要求を割り当てる割当手段と、を備え、
前記第１のプロトコル処理部がサービスを提供できる第１の上限クライアント数、及び、前記第２のプロトコル処理部がサービスを提供できる第２の上限クライアント数が予め定められているとき、
前記割当手段は、前記第１及び第２のプロトコル処理部がサービスを提供するクライアント数が、前記第１及び第２の上限クライアント数を超えないようにクライアント数を管理するクライアント数管理を行うことを特徴とするネットワークデバイス。
【請求項２】
前記第１のプロトコル処理部がサービスを提供できる第１の上限セッション数、及び、前記第２のプロトコル処理部がサービスを提供できる第２の上限セッション数が予め定められているとき、
前記割当手段は、さらに、前記第１及び第２のプロトコル処理部のセッション数が、前記第１及び第２の上限セッション数を超えないようにセッション数を管理するセッション数管理を行うことを特徴とする請求項１記載のネットワークデバイス。
【請求項３】
前記割当手段は、
（１）前記クライアント数管理及び前記セッション数管理の双方を行う
（２）前記クライアント数管理のみを行う
（３）前記セッション数管理のみを行う
のいずれか一つを選択可能であることを特徴とする請求項２記載のネットワークデバイス。
【請求項４】
前記割当手段は、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバであることを特徴する請求項１〜３のいずれかに記載のネットワークデバイス。
【請求項５】
前記第１のプロトコル処理部は、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に従う処理を行い、前記第２のプロトコル処理部は、ＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅ）に従う処理を行うことを特徴する請求項１〜４のいずれかに記載のネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントからのサービス要求に応答して、そのクライアントへサービスを提供するネットワークデバイスに関し、特に複数種類のプロトコル処理部を有するネットワークデバイスに関する。
【背景技術】
【０００２】
近年、家電機器などを相互接続し，自動設定するためのプロトコルであるＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）や、ネットワークに接続したさまざまなデバイスを簡易な手続きで利用可能とするＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅ）などの種々の規格が提案されている。
【０００３】
例えば、特許文献１には、ＵＰｎＰをサポートするプリンタがクライアント端末に対してサービスを提供するサービス提供システムが記載されている。
【特許文献１】特開２００６−２４１９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、一つのネットワークデバイスに、ＵＰｎＰやＷＳＤなど複数のプロトコルサービスが搭載されている場合がある。このとき、あるプロトコルサービスに要求が集中することによって、そのネットワークデバイスのＲＯＭ、ＲＡＭなどのリソースを使い切ってしまい、他のプロトコルサービスが動作できないということが起こりうる。これは、プリンタ、スキャナ、これらの複合機、デジタルカメラのような種々の組み込み機器などのようにリソースの容量が限られている場合には、特に問題となる。
【０００５】
これに対して、各プロトコルサービスに上限数を定めるようにして、各プロトコルサービスが使用できるリソースを制限することによって、一つのプロトコルサービスに要求が集中することを抑制することができる。
【０００６】
しかしながらこの場合には、以下のような問題がある。すなわち、クライアントが要求する一連のサービスでは、同時に複数のセッションが利用される場合がある。例えば、あるクライアントが、一つのプロトコルサービスに対して同時に３セッションを要する一連のサービスを要求する場合、そのサービスの一番目のセッションを確立したときに対象プロトコルサービスの上限セッション数に到達してしまったときは、同じサービスの二番目以降のセッションを確立できない。従って、二番目のセッション要求があった時点で一連のサービスが停止してしまう。これは、セッション数に上限を定めた場合に限らず、リソース不足のときにも起こりうる。
【０００７】
そこで、本発明の目的は、複数のプロトコルサービスが搭載されているネットワークデバイスにおいて、クライアントへサービスを提供する際に、途中でサービスが停止してしまうことを防止することである。
【課題を解決するための手段】
【０００８】
本発明の一つの実施態様に従うネットワークデバイスは、クライアントからのサービス要求に応答して、前記クライアントへサービスを提供するネットワークデバイスであって、第１のプロトコルに関する処理を提供する第１のプロトコル処理部と、第２のプロトコルに関する処理を提供する第２のプロトコル処理部と、前記クライアントからサービス要求を受け付けると、受け付けたサービス要求に係るプロトコルに基づいて、前記第１または第２のプロトコル処理部へ前記サービス要求を割り当てる割当手段と、を備え、前記第１のプロトコル処理部がサービスを提供できる第１の上限クライアント数、及び、前記第２のプロトコル処理部がサービスを提供できる第２の上限クライアント数が予め定められているとき、前記割当手段は、前記第１及び第２のプロトコル処理部がサービスを提供するクライアント数が、前記第１及び第２の上限クライアント数を超えないようにクライアント数を管理するクライアント数管理を行う。
【０００９】
好適な実施形態では、前記第１のプロトコル処理部がサービスを提供できる第１の上限セッション数、及び、前記第２のプロトコル処理部がサービスを提供できる第２の上限セッション数が予め定められているとき、前記割当手段は、さらに、前記第１及び第２のプロトコル処理部のセッション数が、前記第１及び第２の上限セッション数を超えないようにセッション数を管理するセッション数管理を行うようにしてもよい。
【００１０】
好適な実施形態では、前記割当手段は、
（１）前記クライアント数管理及び前記セッション数管理の双方を行う
（２）前記クライアント数管理のみを行う
（３）前記セッション数管理のみを行う
のいずれか一つを選択可能であってもよい。
【００１１】
好適な実施形態では、前記割当手段は、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバであってもよい。
【００１２】
好適な実施形態では、前記第１のプロトコル処理部は、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に従う処理を行い、前記第２のプロトコル処理部は、ＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅ）に従う処理を行ってもよい。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態に係るネットワークデバイスシステムについて、図面を参照して説明する。
【００１４】
図１は、本実施形態に係るネットワークデバイスシステムのブロック図を示す。本実施形態では、ネットワークデバイスの一例としてプリンタを用いて説明するが、本発明はプリンタ以外のネットワークデバイスにも適用可能である。
【００１５】
同図に示すように、本実施形態に係るネットワークデバイスシステムは、ネットワークに接続可能なプリンタ１と、プリンタ１にサービスを要求する一以上のクライアント３とを備え、それらがネットワーク５を介して接続されている。
【００１６】
クライアント３は、例えば、プロセッサ及びメモリを備えた汎用的なコンピュータシステムにより構成され、以下に説明するクライアント３内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１７】
クライアント３は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３１と、ＷＳＤ処理部３３と、ＵＰｎＰ処理部３５と、プリンタドライバ３７と、アプリケーション３９とを備える。
【００１８】
ＯＳ３１は、ＴＣＰ／ＵＤＰ／ＩＰのプロトコルをサポートするオペレーティングシステムであり、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）でよい。
【００１９】
アプリケーション３９は、ＯＳ３１上で実行可能な汎用的なアプリケーションである。
【００２０】
プリンタドライバ３７は、プリンタ１に対する種々のコマンドを生成して、プリンタ１を駆動する。例えば、アプリケーション３９の指示に従って、プリンタ１に対する印刷コマンドを生成する。
【００２１】
ＷＳＤ処理部３３は、ＷＳＤプロトコルによってプリンタ１と通信を行うために、ＷＳＤプロトコルに従う種々の処理を行う。
【００２２】
ＵＰｎＰ処理部３５は、ＵＰｎＰプロトコルによってプリンタ１と通信を行うために、ＵＰｎＰに従う種々の処理を行う。例えば、ＵＰｎＰ処理部３５は、ネットワーク５に接続されていているネットワークデバイスの検出、ネットワークデバイスが提供するサービス情報の取得、ネットワークデバイスの制御などに関するコマンドを生成する。
【００２３】
例えば、ＷＳＤ処理部３３またはＵＰｎＰ処理部３５は、それぞれのプロトコルによって定まる手順に従って、プリンタドライバ３７が生成した印刷コマンドをＯＳ３１を介してプリンタ１へ転送するための処理を行う。
【００２４】
プリンタ１は、プロセッサ及びメモリを備えたコンピュータ部１０と、印刷ヘッド及び紙送り機構などを備えたプリントエンジン１００とを備える。コンピュータ部１０が所定のコンピュータプログラムを実行することにより、以下の各構成要素ないし機能が実現される。すなわち、コンピュータ部１０は、プロトコルスタック１１と、ＨＴＴＰ処理部１３と、ＷＳＤ処理部１５と、ＵＰｎＰ処理部１７と、プリンタコントローラ１９とを備える。
【００２５】
なお、本実施形態では、プロトコルサービス（プロトコル処理部）としてＷＳＤ処理部１５及びＵＰｎＰ処理部１７を例にとって説明しているが、他のプロトコルサービスであっても良い。さらに、プリンタ１が備えるプロトコルサービスの数は、本実施形態では二つであるが、三つ以上であっても良い。
【００２６】
プロトコルスタック１１は、ＴＣＰ／ＵＤＰ／ＩＰのプロトコルをスタックし、ＴＣＰ／ＵＤＰ／ＩＰに従う処理を行う。
【００２７】
ＨＴＴＰ処理部１３は、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に従う処理を行うＨＴＴＰサーバである。ＨＴＴＰ処理部１３は、クライアント３からサービス要求を受け付けると、受け付けたサービス要求に係るロケーション情報に基づいて、ＷＳＤ処理部１５またはＵＰｎＰ処理部１７へサービス要求を割り当てる割当手段として機能する。ＨＴＴＰ処理部１３は、セッションカウンタ１３１と、クライアントカウンタ１３３とを備え、プリンタ１が提供するサービスのセッション数の管理及びクライアント数の管理を行う。ＨＴＴＰ処理部１３の詳細な処理は後述する。
【００２８】
ＷＳＤ処理部１５は、ＷＳＤプロトコルによってクライアント３と通信を行うために、ＷＳＤプロトコルに従う種々の処理を行うプロトコル処理手段である。例えば、ＷＳＤ処理部３３によって送信された印刷コマンドを取得して、プリンタコントローラ１９へ渡す。
【００２９】
ＵＰｎＰ処理部１７は、ＵＰｎＰプロトコルによってクライアント３と通信を行うために、ＵＰｎＰに従う種々の処理を行うプロトコル処理手段である。例えば、ＵＰｎＰ処理部３５によって送信された印刷コマンドを取得して、プリンタコントローラ１９へ渡す。
【００３０】
プリンタコントローラ１９は、プリントエンジン１００を制御する。例えば、プリンタコントローラ１９は、ＷＳＤ処理部１５またはＵＰｎＰ処理部１７から取得した印刷コマンドに従って、プリントエンジン１００に印刷を実行させる。
【００３１】
あらためてＨＴＴＰ処理部１３について説明する。ＨＴＴＰ処理部１３は、例えば、クライアント３からのサービス要求に含まれるＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）からロケーション情報を取得して、これに基づいてＷＳＤ処理部１５及びＵＰｎＰ処理部１７のいずれに対するサービス要求であるかを判定する。ＨＴＴＰ処理部１３は、クライアント３のＷＳＤ処理部３３によって処理された印刷要求はＷＳＤ処理部１５へ割り当て、クライアント３のＵＰｎＰ処理部３５によって処理された印刷要求はＵＰｎＰ処理部１７へ割り当てる。
【００３２】
セッションカウンタ１３１は、ＷＳＤ処理部１５が確立しているセッション数及びＵＰｎＰ処理部１７が確立しているセッション数をそれぞれカウントする。すなわち、セッションカウンタ１３１は、ＷＳＤ処理部１５がセッションを確立するとＷＳＤ処理部１５のセッション数をカウントアップし、セッションが終了するとＷＳＤ処理部１５のセッション数をカウントダウンする。同様に、セッションカウンタ１３１は、ＵＰｎＰ処理部１７がセッションを確立するとＵＰｎＰ処理部１７のセッション数をカウントアップし、セッションが終了するとＵＰｎＰ処理部１７のセッション数をカウントダウンする。
【００３３】
クライアントカウンタ１３３は、ＷＳＤ処理部１５とセッションを確立しているクライアント数、及びＵＰｎＰ処理部１７とセッションを確立しているクライアント数をそれぞれ、クライアントのＩＰアドレスに基づいてカウントする。すなわち、クライアントカウンタ１３３は、今までＷＳＤ処理部１５とセッションを確立していないクライアントがＷＳＤ処理部１５とセッションを確立すると、ＷＳＤ処理部１５のクライアント数をカウントアップし、あるクライアントとＷＳＤ処理部１５とのセッションがすべて終了すると、ＷＳＤ処理部１５のクライアント数をカウントダウンする。同様に、クライアントカウンタ１３３は、今までＵＰｎＰ処理部１７とセッションを確立していないクライアントがＵＰｎＰ処理部１７とセッションを確立すると、ＵＰｎＰ処理部１７のクライアント数をカウントアップし、あるクライアントとＵＰｎＰ処理部１７とのセッションがすべて終了すると、ＵＰｎＰ処理部１７のクライアント数をカウントダウンする。
【００３４】
セッションカウンタ１３１がカウントするＷＳＤ処理部１５のセッション数、及びＵＰｎＰ処理部１７のセッション数は、それぞれ上限値となる上限セッション数が予め定められている。ＨＴＴＰ処理部１３は、ＷＳＤ処理部１５のセッション数、及びＵＰｎＰ処理部１７のセッション数が、それぞれの上限セッション数を超えないように、セッション数管理を行う。例えば、あるクライアント３からＷＳＤ処理部１５へのサービス要求を受け付けたとき、ＨＴＴＰ処理部１３は、ＷＳＤ処理部１５のセッション数がその上限値を超えているときには、その要求を受け付けない。これは、ＨＴＴＰ処理部１７に対するサービス要求のときも同様である。
【００３５】
これにより、特定のプロトコルサービスにのみサービスが集中することを抑制できる。つまり、本実施形態によれば、一部のプロトコルサービスだけがサービスを提供し、これによってリソースを使い尽くしてしまい、リソース不足によって他のプロトコルサービスが動作できないという事態を回避できる。
【００３６】
クライアントカウンタ１３３がカウントするＷＳＤ処理部１５がサービスを提供するクライアント数、及びＵＰｎＰ処理部１７がサービスを提供するクライアント数は、それぞれ上限値となる上限クライアント数が予め定められている。ＨＴＴＰ処理部１３は、ＷＳＤ処理部１５がサービスを提供するクライアント数、及びＵＰｎＰ処理部１７がサービスを提供するクライアント数が、それぞれの上限クライアント数を超えないように、クライアント数管理を行う。例えば、新たなクライアントからＷＳＤ処理部１５へのサービス要求を受け付けたとき、ＨＴＴＰ処理部１３は、ＷＳＤ処理部１５がサービスを提供するクライアント数がその上限値を超えているときには、その要求を受け付けない。これは、ＨＴＴＰ処理部１７に対するサービス要求のときも同様である。
【００３７】
このクライアント数管理により以下のような効果がある。例えば、１クライアントからの一連のサービスで、一つのプロトコルサービスについて複数のセッションを利用する場合、セッション数管理が行われていたとしても、上限クライアント数を適切に定め、同時に接続されるクライアント数を制限することによって、一連のサービスが途中で停止してしまうことを未然に防止できる。
【００３８】
なお、クライアントカウンタ１３３は、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７がサービスを提供しているクライアント数の合計について上限値を設定し、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７がサービスを提供しているクライアント数がこの上限値を超えないようなクライアント数管理を行っても良い。
【００３９】
次に、図２を参照して、上述のＨＴＴＰ処理部１３の処理について詳細に説明する。
【００４０】
同図の例では、ＷＳＤ処理部１５の上限クライアント数を２，ＵＰｎＰ処理部１７の上限クライアント数を３とし、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７の上限セッション数をそれぞれ５とする。ここで、初期状態では、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７が確立しているセッションは０である。
【００４１】
例えば、図２Ａに示すように、クライアントＡ（ＩＰ：１９２．１６８．１．１０）から２つのサービス要求Ｓ１，Ｓ２を受け付けると、ＨＴＴＰ処理部１３は、それぞれのサービス要求Ｓ１，Ｓ２から以下のようなクライアントＡのＩＰアドレス及びロケーション情報を得る。
Ｓ１  ＩＰ：１９２．１６８．１．１０／ＳｅｓｓｉｏｎＩＤ：ＵＰｎＰ
Ｓ２  ＩＰ：１９２．１６８．１．１０／ＳｅｓｓｉｏｎＩＤ：ＷＳＤ
従って、ＨＴＴＰ処理部１３は、サービス要求Ｓ１をＵＰｎＰ処理部１７，サービス要求Ｓ２をＷＳＤ処理部１５へ割り当てる。そして、セッションカウンタ１３１及びクライアントカウンタ１３３は、それぞれ図２Ａに示すようになる。つまり、セッションカウンタ１３１は、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７が確立したセッション数をカウントし、クライアントカウンタ１３３は、クライアントのＩＰアドレスに基づいて、ＷＳＤ処理部１５及びＵＰｎＰ処理部１７とセッションを確立しているクライアント数をカウントする。
【００４２】
次に、この状態からさらに同図Ｂに示すように、クライアントＢ（ＩＰ：１９２．１６８．１．２０）からサービス要求Ｓ３を受け付けると、ＨＴＴＰ処理部１３は、サービス要求Ｓ３から以下のようなクライアントＢのＩＰアドレス及びロケーション情報を得る。
Ｓ３  ＩＰ：１９２．１６８．１．２０／ＳｅｓｓｉｏｎＩＤ：ＷＳＤ
従って、ＨＴＴＰ処理部１３は、サービス要求Ｓ３をＷＳＤ処理部１５へ割り当て、セッションカウンタ１３１及びクライアントカウンタ１３３は、それぞれ図２Ｂに示すようになる。
【００４３】
この状態からさらに同図Ｃに示すように、クライアントＣ（ＩＰ：１９２．１６８．１．３０）からサービス要求Ｓ４を受け付けると、ＨＴＴＰ処理部１３は、サービス要求Ｓ４から以下のようなクライアントＣのＩＰアドレス及びロケーション情報を得る。
Ｓ４  ＩＰ：１９２．１６８．１．３０／ＳｅｓｓｉｏｎＩＤ：ＷＳＤ
ここで、ＨＴＴＰ処理部１３は、ＷＳＤ処理部１５のクライアントカウンタ１３３が既に上限クライアント数である「２」に達しているので、新たなクライアントＣからの要求を受け付けない。
【００４４】
ＨＴＴＰ処理部１３は、上述のクライアント数管理及びセッション数管理の両方を行ってもよいし、いずれか一方のみを行ってもよい。つまり、ＨＴＴＰ処理部１３がクライアント数管理及びセッション数管理の両方を行うか、いずれか一方のみを行うかは選択可能である。
【００４５】
また、ＨＴＴＰ処理部１３がクライアント数管理及びセッション数管理のいずれを行うかは、それぞれの状況に応じて動的に変更しても良い。例えば、ＨＴＴＰ処理部１３がセッション数管理を行い、クライアント数管理を行っていないときに、ＷＳＤ処理部１５またはＵＰｎＰ処理部１７のセッション数がそれぞれの上限セッション数より小さい所定の閾値以上になると、セッション数管理を止め、クライアント数管理へ移行するようにしてもよい。あるいは、ＨＴＴＰ処理部１３がクライアント数管理を行い、セッション数管理を行っていないとき、ＷＳＤ処理部１５がサービスを提供するクライアント数が、その上限クライアント数より小さい所定の閾値以上になったときに、ＷＳＤ処理部１５のセッション数が上限セッション数よりも所定数以上残っていれば、クライアント数管理を止め、セッション数管理へ移行するようにしても良い。
【００４６】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態に係るネットワークデバイスシステムのブロック図。
【図２】ＨＴＴＰ処理部１３が行う処理の説明図。
【符号の説明】
【００４８】
１           プリンタ
３           クライアント
１０       コンピュータ部
１１       プロトコルスタック
１３       ＨＴＴＰ処理部
１５       ＷＳＤ処理部
１７       ＵＰｎＰ処理部
１９       プリンタコントローラ
３１       ＯＳ
３３       ＷＳＤ処理部
３５       ＵＰｎＰ処理部
３７       プリンタドライバ
３９       アプリケーション
１００    プリントエンジン
１３１    セッションカウンタ
１３３    クライアントカウンタ
【図１】
2010154312.tif 000003
【図２】
2010154312.tif 000004