説明

ネットワークデバイス

【課題】複数のプロトコルサービスが搭載されているネットワークデバイスにおいて、クライアントへサービスを提供する際に、途中でサービスが停止してしまうことを防止する。
【解決手段】プリンタ1は、WSD処理部15と、UPnP処理部17と、クライアント3からサービス要求を受け付けると、受け付けたサービス要求に係るプロトコルに基づいて、WSD処理部15またはUPnP処理部17へサービス要求を割り当てるHTTP処理部13と、を備える。WSD処理部15がサービスを提供できる上限クライアント数、及び、UPnP処理部17がサービスを提供できる上限クライアント数が予め定められているとき、HTTP処理部13は、WSD処理部15及びUPnP処理部17がサービスを提供するクライアント数が、それぞれの上限クライアント数を超えないようにクライアント数を管理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントからのサービス要求に応答して、そのクライアントへサービスを提供するネットワークデバイスに関し、特に複数種類のプロトコル処理部を有するネットワークデバイスに関する。
【背景技術】
【0002】
近年、家電機器などを相互接続し,自動設定するためのプロトコルであるUPnP(Universal Plug and Play)や、ネットワークに接続したさまざまなデバイスを簡易な手続きで利用可能とするWSD(Web Service on Device)などの種々の規格が提案されている。
【0003】
例えば、特許文献1には、UPnPをサポートするプリンタがクライアント端末に対してサービスを提供するサービス提供システムが記載されている。
【特許文献1】特開2006−24197号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、一つのネットワークデバイスに、UPnPやWSDなど複数のプロトコルサービスが搭載されている場合がある。このとき、あるプロトコルサービスに要求が集中することによって、そのネットワークデバイスのROM、RAMなどのリソースを使い切ってしまい、他のプロトコルサービスが動作できないということが起こりうる。これは、プリンタ、スキャナ、これらの複合機、デジタルカメラのような種々の組み込み機器などのようにリソースの容量が限られている場合には、特に問題となる。
【0005】
これに対して、各プロトコルサービスに上限数を定めるようにして、各プロトコルサービスが使用できるリソースを制限することによって、一つのプロトコルサービスに要求が集中することを抑制することができる。
【0006】
しかしながらこの場合には、以下のような問題がある。すなわち、クライアントが要求する一連のサービスでは、同時に複数のセッションが利用される場合がある。例えば、あるクライアントが、一つのプロトコルサービスに対して同時に3セッションを要する一連のサービスを要求する場合、そのサービスの一番目のセッションを確立したときに対象プロトコルサービスの上限セッション数に到達してしまったときは、同じサービスの二番目以降のセッションを確立できない。従って、二番目のセッション要求があった時点で一連のサービスが停止してしまう。これは、セッション数に上限を定めた場合に限らず、リソース不足のときにも起こりうる。
【0007】
そこで、本発明の目的は、複数のプロトコルサービスが搭載されているネットワークデバイスにおいて、クライアントへサービスを提供する際に、途中でサービスが停止してしまうことを防止することである。
【課題を解決するための手段】
【0008】
本発明の一つの実施態様に従うネットワークデバイスは、クライアントからのサービス要求に応答して、前記クライアントへサービスを提供するネットワークデバイスであって、第1のプロトコルに関する処理を提供する第1のプロトコル処理部と、第2のプロトコルに関する処理を提供する第2のプロトコル処理部と、前記クライアントからサービス要求を受け付けると、受け付けたサービス要求に係るプロトコルに基づいて、前記第1または第2のプロトコル処理部へ前記サービス要求を割り当てる割当手段と、を備え、前記第1のプロトコル処理部がサービスを提供できる第1の上限クライアント数、及び、前記第2のプロトコル処理部がサービスを提供できる第2の上限クライアント数が予め定められているとき、前記割当手段は、前記第1及び第2のプロトコル処理部がサービスを提供するクライアント数が、前記第1及び第2の上限クライアント数を超えないようにクライアント数を管理するクライアント数管理を行う。
【0009】
好適な実施形態では、前記第1のプロトコル処理部がサービスを提供できる第1の上限セッション数、及び、前記第2のプロトコル処理部がサービスを提供できる第2の上限セッション数が予め定められているとき、前記割当手段は、さらに、前記第1及び第2のプロトコル処理部のセッション数が、前記第1及び第2の上限セッション数を超えないようにセッション数を管理するセッション数管理を行うようにしてもよい。
【0010】
好適な実施形態では、前記割当手段は、
(1)前記クライアント数管理及び前記セッション数管理の双方を行う
(2)前記クライアント数管理のみを行う
(3)前記セッション数管理のみを行う
のいずれか一つを選択可能であってもよい。
【0011】
好適な実施形態では、前記割当手段は、HTTP(Hyper Text Transfer Protocol)サーバであってもよい。
【0012】
好適な実施形態では、前記第1のプロトコル処理部は、UPnP(Universal Plug and Play)に従う処理を行い、前記第2のプロトコル処理部は、WSD(Web Service on Device)に従う処理を行ってもよい。
【発明を実施するための最良の形態】
【0013】
以下、本発明の一実施形態に係るネットワークデバイスシステムについて、図面を参照して説明する。
【0014】
図1は、本実施形態に係るネットワークデバイスシステムのブロック図を示す。本実施形態では、ネットワークデバイスの一例としてプリンタを用いて説明するが、本発明はプリンタ以外のネットワークデバイスにも適用可能である。
【0015】
同図に示すように、本実施形態に係るネットワークデバイスシステムは、ネットワークに接続可能なプリンタ1と、プリンタ1にサービスを要求する一以上のクライアント3とを備え、それらがネットワーク5を介して接続されている。
【0016】
クライアント3は、例えば、プロセッサ及びメモリを備えた汎用的なコンピュータシステムにより構成され、以下に説明するクライアント3内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【0017】
クライアント3は、OS(Operating System)31と、WSD処理部33と、UPnP処理部35と、プリンタドライバ37と、アプリケーション39とを備える。
【0018】
OS31は、TCP/UDP/IPのプロトコルをサポートするオペレーティングシステムであり、例えばMicrosoft社のWindows(登録商標)でよい。
【0019】
アプリケーション39は、OS31上で実行可能な汎用的なアプリケーションである。
【0020】
プリンタドライバ37は、プリンタ1に対する種々のコマンドを生成して、プリンタ1を駆動する。例えば、アプリケーション39の指示に従って、プリンタ1に対する印刷コマンドを生成する。
【0021】
WSD処理部33は、WSDプロトコルによってプリンタ1と通信を行うために、WSDプロトコルに従う種々の処理を行う。
【0022】
UPnP処理部35は、UPnPプロトコルによってプリンタ1と通信を行うために、UPnPに従う種々の処理を行う。例えば、UPnP処理部35は、ネットワーク5に接続されていているネットワークデバイスの検出、ネットワークデバイスが提供するサービス情報の取得、ネットワークデバイスの制御などに関するコマンドを生成する。
【0023】
例えば、WSD処理部33またはUPnP処理部35は、それぞれのプロトコルによって定まる手順に従って、プリンタドライバ37が生成した印刷コマンドをOS31を介してプリンタ1へ転送するための処理を行う。
【0024】
プリンタ1は、プロセッサ及びメモリを備えたコンピュータ部10と、印刷ヘッド及び紙送り機構などを備えたプリントエンジン100とを備える。コンピュータ部10が所定のコンピュータプログラムを実行することにより、以下の各構成要素ないし機能が実現される。すなわち、コンピュータ部10は、プロトコルスタック11と、HTTP処理部13と、WSD処理部15と、UPnP処理部17と、プリンタコントローラ19とを備える。
【0025】
なお、本実施形態では、プロトコルサービス(プロトコル処理部)としてWSD処理部15及びUPnP処理部17を例にとって説明しているが、他のプロトコルサービスであっても良い。さらに、プリンタ1が備えるプロトコルサービスの数は、本実施形態では二つであるが、三つ以上であっても良い。
【0026】
プロトコルスタック11は、TCP/UDP/IPのプロトコルをスタックし、TCP/UDP/IPに従う処理を行う。
【0027】
HTTP処理部13は、HTTP(Hyper Text Transfer Protocol)に従う処理を行うHTTPサーバである。HTTP処理部13は、クライアント3からサービス要求を受け付けると、受け付けたサービス要求に係るロケーション情報に基づいて、WSD処理部15またはUPnP処理部17へサービス要求を割り当てる割当手段として機能する。HTTP処理部13は、セッションカウンタ131と、クライアントカウンタ133とを備え、プリンタ1が提供するサービスのセッション数の管理及びクライアント数の管理を行う。HTTP処理部13の詳細な処理は後述する。
【0028】
WSD処理部15は、WSDプロトコルによってクライアント3と通信を行うために、WSDプロトコルに従う種々の処理を行うプロトコル処理手段である。例えば、WSD処理部33によって送信された印刷コマンドを取得して、プリンタコントローラ19へ渡す。
【0029】
UPnP処理部17は、UPnPプロトコルによってクライアント3と通信を行うために、UPnPに従う種々の処理を行うプロトコル処理手段である。例えば、UPnP処理部35によって送信された印刷コマンドを取得して、プリンタコントローラ19へ渡す。
【0030】
プリンタコントローラ19は、プリントエンジン100を制御する。例えば、プリンタコントローラ19は、WSD処理部15またはUPnP処理部17から取得した印刷コマンドに従って、プリントエンジン100に印刷を実行させる。
【0031】
あらためてHTTP処理部13について説明する。HTTP処理部13は、例えば、クライアント3からのサービス要求に含まれるURI(Uniform Resource Identifier)からロケーション情報を取得して、これに基づいてWSD処理部15及びUPnP処理部17のいずれに対するサービス要求であるかを判定する。HTTP処理部13は、クライアント3のWSD処理部33によって処理された印刷要求はWSD処理部15へ割り当て、クライアント3のUPnP処理部35によって処理された印刷要求はUPnP処理部17へ割り当てる。
【0032】
セッションカウンタ131は、WSD処理部15が確立しているセッション数及びUPnP処理部17が確立しているセッション数をそれぞれカウントする。すなわち、セッションカウンタ131は、WSD処理部15がセッションを確立するとWSD処理部15のセッション数をカウントアップし、セッションが終了するとWSD処理部15のセッション数をカウントダウンする。同様に、セッションカウンタ131は、UPnP処理部17がセッションを確立するとUPnP処理部17のセッション数をカウントアップし、セッションが終了するとUPnP処理部17のセッション数をカウントダウンする。
【0033】
クライアントカウンタ133は、WSD処理部15とセッションを確立しているクライアント数、及びUPnP処理部17とセッションを確立しているクライアント数をそれぞれ、クライアントのIPアドレスに基づいてカウントする。すなわち、クライアントカウンタ133は、今までWSD処理部15とセッションを確立していないクライアントがWSD処理部15とセッションを確立すると、WSD処理部15のクライアント数をカウントアップし、あるクライアントとWSD処理部15とのセッションがすべて終了すると、WSD処理部15のクライアント数をカウントダウンする。同様に、クライアントカウンタ133は、今までUPnP処理部17とセッションを確立していないクライアントがUPnP処理部17とセッションを確立すると、UPnP処理部17のクライアント数をカウントアップし、あるクライアントとUPnP処理部17とのセッションがすべて終了すると、UPnP処理部17のクライアント数をカウントダウンする。
【0034】
セッションカウンタ131がカウントするWSD処理部15のセッション数、及びUPnP処理部17のセッション数は、それぞれ上限値となる上限セッション数が予め定められている。HTTP処理部13は、WSD処理部15のセッション数、及びUPnP処理部17のセッション数が、それぞれの上限セッション数を超えないように、セッション数管理を行う。例えば、あるクライアント3からWSD処理部15へのサービス要求を受け付けたとき、HTTP処理部13は、WSD処理部15のセッション数がその上限値を超えているときには、その要求を受け付けない。これは、HTTP処理部17に対するサービス要求のときも同様である。
【0035】
これにより、特定のプロトコルサービスにのみサービスが集中することを抑制できる。つまり、本実施形態によれば、一部のプロトコルサービスだけがサービスを提供し、これによってリソースを使い尽くしてしまい、リソース不足によって他のプロトコルサービスが動作できないという事態を回避できる。
【0036】
クライアントカウンタ133がカウントするWSD処理部15がサービスを提供するクライアント数、及びUPnP処理部17がサービスを提供するクライアント数は、それぞれ上限値となる上限クライアント数が予め定められている。HTTP処理部13は、WSD処理部15がサービスを提供するクライアント数、及びUPnP処理部17がサービスを提供するクライアント数が、それぞれの上限クライアント数を超えないように、クライアント数管理を行う。例えば、新たなクライアントからWSD処理部15へのサービス要求を受け付けたとき、HTTP処理部13は、WSD処理部15がサービスを提供するクライアント数がその上限値を超えているときには、その要求を受け付けない。これは、HTTP処理部17に対するサービス要求のときも同様である。
【0037】
このクライアント数管理により以下のような効果がある。例えば、1クライアントからの一連のサービスで、一つのプロトコルサービスについて複数のセッションを利用する場合、セッション数管理が行われていたとしても、上限クライアント数を適切に定め、同時に接続されるクライアント数を制限することによって、一連のサービスが途中で停止してしまうことを未然に防止できる。
【0038】
なお、クライアントカウンタ133は、WSD処理部15及びUPnP処理部17がサービスを提供しているクライアント数の合計について上限値を設定し、WSD処理部15及びUPnP処理部17がサービスを提供しているクライアント数がこの上限値を超えないようなクライアント数管理を行っても良い。
【0039】
次に、図2を参照して、上述のHTTP処理部13の処理について詳細に説明する。
【0040】
同図の例では、WSD処理部15の上限クライアント数を2,UPnP処理部17の上限クライアント数を3とし、WSD処理部15及びUPnP処理部17の上限セッション数をそれぞれ5とする。ここで、初期状態では、WSD処理部15及びUPnP処理部17が確立しているセッションは0である。
【0041】
例えば、図2Aに示すように、クライアントA(IP:192.168.1.10)から2つのサービス要求S1,S2を受け付けると、HTTP処理部13は、それぞれのサービス要求S1,S2から以下のようなクライアントAのIPアドレス及びロケーション情報を得る。
S1 IP:192.168.1.10/SessionID:UPnP
S2 IP:192.168.1.10/SessionID:WSD
従って、HTTP処理部13は、サービス要求S1をUPnP処理部17,サービス要求S2をWSD処理部15へ割り当てる。そして、セッションカウンタ131及びクライアントカウンタ133は、それぞれ図2Aに示すようになる。つまり、セッションカウンタ131は、WSD処理部15及びUPnP処理部17が確立したセッション数をカウントし、クライアントカウンタ133は、クライアントのIPアドレスに基づいて、WSD処理部15及びUPnP処理部17とセッションを確立しているクライアント数をカウントする。
【0042】
次に、この状態からさらに同図Bに示すように、クライアントB(IP:192.168.1.20)からサービス要求S3を受け付けると、HTTP処理部13は、サービス要求S3から以下のようなクライアントBのIPアドレス及びロケーション情報を得る。
S3 IP:192.168.1.20/SessionID:WSD
従って、HTTP処理部13は、サービス要求S3をWSD処理部15へ割り当て、セッションカウンタ131及びクライアントカウンタ133は、それぞれ図2Bに示すようになる。
【0043】
この状態からさらに同図Cに示すように、クライアントC(IP:192.168.1.30)からサービス要求S4を受け付けると、HTTP処理部13は、サービス要求S4から以下のようなクライアントCのIPアドレス及びロケーション情報を得る。
S4 IP:192.168.1.30/SessionID:WSD
ここで、HTTP処理部13は、WSD処理部15のクライアントカウンタ133が既に上限クライアント数である「2」に達しているので、新たなクライアントCからの要求を受け付けない。
【0044】
HTTP処理部13は、上述のクライアント数管理及びセッション数管理の両方を行ってもよいし、いずれか一方のみを行ってもよい。つまり、HTTP処理部13がクライアント数管理及びセッション数管理の両方を行うか、いずれか一方のみを行うかは選択可能である。
【0045】
また、HTTP処理部13がクライアント数管理及びセッション数管理のいずれを行うかは、それぞれの状況に応じて動的に変更しても良い。例えば、HTTP処理部13がセッション数管理を行い、クライアント数管理を行っていないときに、WSD処理部15またはUPnP処理部17のセッション数がそれぞれの上限セッション数より小さい所定の閾値以上になると、セッション数管理を止め、クライアント数管理へ移行するようにしてもよい。あるいは、HTTP処理部13がクライアント数管理を行い、セッション数管理を行っていないとき、WSD処理部15がサービスを提供するクライアント数が、その上限クライアント数より小さい所定の閾値以上になったときに、WSD処理部15のセッション数が上限セッション数よりも所定数以上残っていれば、クライアント数管理を止め、セッション数管理へ移行するようにしても良い。
【0046】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【0047】
【図1】本発明の一実施形態に係るネットワークデバイスシステムのブロック図。
【図2】HTTP処理部13が行う処理の説明図。
【符号の説明】
【0048】
1 プリンタ
3 クライアント
10 コンピュータ部
11 プロトコルスタック
13 HTTP処理部
15 WSD処理部
17 UPnP処理部
19 プリンタコントローラ
31 OS
33 WSD処理部
35 UPnP処理部
37 プリンタドライバ
39 アプリケーション
100 プリントエンジン
131 セッションカウンタ
133 クライアントカウンタ

【特許請求の範囲】
【請求項1】
クライアントからのサービス要求に応答して、前記クライアントへサービスを提供するネットワークデバイスであって、
第1のプロトコルに関する処理を提供する第1のプロトコル処理部と、
第2のプロトコルに関する処理を提供する第2のプロトコル処理部と、
前記クライアントからサービス要求を受け付けると、受け付けたサービス要求に係るプロトコルに基づいて、前記第1または第2のプロトコル処理部へ前記サービス要求を割り当てる割当手段と、を備え、
前記第1のプロトコル処理部がサービスを提供できる第1の上限クライアント数、及び、前記第2のプロトコル処理部がサービスを提供できる第2の上限クライアント数が予め定められているとき、
前記割当手段は、前記第1及び第2のプロトコル処理部がサービスを提供するクライアント数が、前記第1及び第2の上限クライアント数を超えないようにクライアント数を管理するクライアント数管理を行うことを特徴とするネットワークデバイス。
【請求項2】
前記第1のプロトコル処理部がサービスを提供できる第1の上限セッション数、及び、前記第2のプロトコル処理部がサービスを提供できる第2の上限セッション数が予め定められているとき、
前記割当手段は、さらに、前記第1及び第2のプロトコル処理部のセッション数が、前記第1及び第2の上限セッション数を超えないようにセッション数を管理するセッション数管理を行うことを特徴とする請求項1記載のネットワークデバイス。
【請求項3】
前記割当手段は、
(1)前記クライアント数管理及び前記セッション数管理の双方を行う
(2)前記クライアント数管理のみを行う
(3)前記セッション数管理のみを行う
のいずれか一つを選択可能であることを特徴とする請求項2記載のネットワークデバイス。
【請求項4】
前記割当手段は、HTTP(Hyper Text Transfer Protocol)サーバであることを特徴する請求項1〜3のいずれかに記載のネットワークデバイス。
【請求項5】
前記第1のプロトコル処理部は、UPnP(Universal Plug and Play)に従う処理を行い、前記第2のプロトコル処理部は、WSD(Web Service on Device)に従う処理を行うことを特徴する請求項1〜4のいずれかに記載のネットワークデバイス。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2010−154312(P2010−154312A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−330986(P2008−330986)
【出願日】平成20年12月25日(2008.12.25)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】