JP2012137864A - デバイス制御装置、デバイス制御方法、およびデバイス制御システム - Google Patents
デバイス制御装置、デバイス制御方法、およびデバイス制御システム Download PDFInfo
- Publication number
- JP2012137864A JP2012137864A JP2010288617A JP2010288617A JP2012137864A JP 2012137864 A JP2012137864 A JP 2012137864A JP 2010288617 A JP2010288617 A JP 2010288617A JP 2010288617 A JP2010288617 A JP 2010288617A JP 2012137864 A JP2012137864 A JP 2012137864A
- Authority
- JP
- Japan
- Prior art keywords
- information
- event
- client
- event information
- notification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】デバイスサーバが検知した状態変化に応じて、イベント通知の通知先のクライアントPCを選定することで、検知した状態変化に応じて、最適なクライアントPCからデバイスを制御できる手段を提供する。
【解決手段】デバイスサーバは、クライアントPCから送られてくるPC情報またはイベント情報を、情報テーブルに記憶しておき、ローカル接続されたデバイスまたは自装置の状態変化を検知すると、情報テーブルを参照して、状態変化に対応する該当イベント情報を特定し、そのイベント情報およびPC情報からイベント通知先のクライアントPCを選定して、イベント通知を行う。
【選択図】図9
【解決手段】デバイスサーバは、クライアントPCから送られてくるPC情報またはイベント情報を、情報テーブルに記憶しておき、ローカル接続されたデバイスまたは自装置の状態変化を検知すると、情報テーブルを参照して、状態変化に対応する該当イベント情報を特定し、そのイベント情報およびPC情報からイベント通知先のクライアントPCを選定して、イベント通知を行う。
【選択図】図9
Description
本発明は、ネットワークを介してデバイスを制御する機能を備えたデバイス制御装置、デバイス制御方法、及びデバイス制御システムに関するものである。
ネットワークの普及により、例えば、プリンタ、ストレージ、スキャナなどのデバイスを、ネットワーク上のクライアントPCからデバイスサーバを介して共有デバイスとして利用可能とするための実現方法がいくつか提案されている。
その実現方法として、本出願人は、デバイスサーバが自身に接続されているデバイスを監視し、デバイスの状態変化を検知すると、この検知を示す情報(以下、トリガ通知)をクライアントPCへ通知することで、クライアントPCとデバイスサーバ間でセッションを開始し、デバイスサーバを介してクライアントPCとデバイス間でデータ送受信が可能となるデバイス制御システムを提案している(特許文献1参照)。
このデバイス制御システムは、デバイスサーバがデバイスを監視するため、クライアントPCによるデバイスの監視(ポーリング)が不要となり、クライアントPCが必要となったときだけ当該デバイスを専有できるものである。
本発明は、出願人自らが先に提案した特許文献1のデバイス制御システムをさらに拡張・発展させ、デバイスサーバがデバイスおよびデバイスサーバ自身の状態変化を検知した場合、検知した状態変化の種類を識別し、その状態変化の種類に応じて、検知した状態変化の種類を示す情報(以下、イベント通知)の通知先を選定し、通知先に選定されたクライアントPCに対して、イベント通知を送信することで、検知した状態変化に応じて、最適なクライアントPCからデバイスを制御できるようにすることを目的とする。
また、本発明は、イベント通知の通知先に選定されたクライアントPCが非稼働であった場合、イベント通知の通知先を稼働中のクライアントPCに切り換えることで、システム上のいずれかのクライアントPCが稼働している限り、デバイスを制御できるようにすることを目的とする。
上記の課題を解決するために、請求項1に記載のデバイス制御装置は、デバイスとローカル接続し、クライアント装置とネットワークを介して接続されるデバイス制御装置であって、前記デバイスまたは自装置の状態変化に対応づけられた識別情報、イベント通知の通知先情報を含むイベント情報および前記クライアント装置の識別情報を含むPC情報を記憶する情報記憶手段と、前記デバイスおよび自装置の状態変化を監視するデバイス監視手段と、前記デバイス監視手段によって、前記デバイスまたは自装置の状態変化を検知した場合、前記情報記憶手段に記憶されたイベント情報の中から、前記デバイス監視手段によって検知された前記状態変化に対応する前記イベント情報を特定するイベント情報特定手段と、前記イベント情報特定手段で特定された当該イベント情報および前記PC情報に基づき、前記イベント通知の通知先となる前記クライアント装置を選定するイベント通知先選定手段と、前記イベント通知先選定手段で通知先に選定された前記クライアント装置に前記イベント通知を送信するイベント通知送信手段と、を備えることを特徴とする。
本発明によれば、デバイスサーバは、検知した状態変化に応じて、イベント通知の通知先のクライアントPCを選定することで、検知した状態変化に応じて、最適なクライアントPCからデバイスを制御することができる。
また、本発明によれば、イベント通知の通知先に選定されたクライアントPCが非稼働であった場合、イベント通知の通知先を稼働中のクライアントPCに切り換えることで、システム上のいずれかのクライアントPCが稼働している限り、デバイスを制御することができる。
以下、本発明の実施の形態について詳細に説明する。
実施例1に係る実施の形態を説明する。
<1.デバイス制御システムの構成>
図1は、本発明の第1の実施形態に係るデバイス制御システムの概略構成であり、クライアントPC100(100A、100B、100C)、デバイスサーバ200(200A、200B)、デバイス300(300A、300B)から構成される。
<1.デバイス制御システムの構成>
図1は、本発明の第1の実施形態に係るデバイス制御システムの概略構成であり、クライアントPC100(100A、100B、100C)、デバイスサーバ200(200A、200B)、デバイス300(300A、300B)から構成される。
このデバイス制御システムでは、デバイスサーバ200とデバイス300をUSB(Universal Serial Bus)などのインターフェースに準拠した接続ケーブル400で接続する。また、クライアントPC100とデバイスサーバ200は、有線または無線のネットワーク500で接続する。
デバイス300(デバイス300A,デバイス300B)は、USBインターフェースを持つ汎用的な入出力装置であり、例えば、カードリーダやスキャナなどの単機能周辺装置(SFP:Single Function Peripheral)、あるいは、プリント、スキャン、コピー、ストレージなどの複数または全部の機能を兼ね備えた多機能周辺機器(MFP:Multi Function Peripheral)である。ただし、これらに限定されるものでなく、別のデバイスであってもよい。なお、デバイス300が備えるインターフェースは、USBインターフェースに限定されるものではなく、IEEE1394など他のインターフェースに準拠したものであってもよい。
また、デバイスサーバ200、デバイス300をそれぞれ別体の装置として説明したが、これに限定されるものではなく、デバイスサーバ200をデバイス300のケーシング内に収まるように一体構造としても良い。
次に、デバイス制御システムを構成する各装置について順次説明する。
<2.クライアントPC100の構成>
クライアントPC100(クライアント装置)は、一般的なパーソナルコンピュータが備えるハードウェア構成として、CPU、入力部、表示部、メモリ、通信部、外部記憶部などが内部バスで接続されている。CPUはクライアントPC100内の各部を制御する中央処理装置である。入力部はキーボードやマウス等の操作装置である。表示部は液晶モニタ等の表示装置である。メモリは、RAM、ROM等の記憶装置である。通信部は、ネットワーク500(有線又は無線ネットワーク)に接続するためのインターフェースであり、デバイスサーバ200とデータ送受信が可能となる。外部記憶部は、ハードディスク等の記憶装置である。
クライアントPC100(クライアント装置)は、一般的なパーソナルコンピュータが備えるハードウェア構成として、CPU、入力部、表示部、メモリ、通信部、外部記憶部などが内部バスで接続されている。CPUはクライアントPC100内の各部を制御する中央処理装置である。入力部はキーボードやマウス等の操作装置である。表示部は液晶モニタ等の表示装置である。メモリは、RAM、ROM等の記憶装置である。通信部は、ネットワーク500(有線又は無線ネットワーク)に接続するためのインターフェースであり、デバイスサーバ200とデータ送受信が可能となる。外部記憶部は、ハードディスク等の記憶装置である。
なお、本システムでは、システム上の各装置の管理を行う装置(以下、管理用PC)が必要である。この管理用PCは、デバイスにおけるエラー発生時や処理終了時などにデバイスサーバ200からエラー情報やログ情報に関するイベント通知(後述)を受信し、エラー情報やログ情報を収集・記憶する点が特徴であり、クライアントPC100のうちの1台が管理用PCの機能を兼ねる構成であってもよいし、専用の装置であってもよい。
外部記憶部は、OS(不図示)、制御プログラム101、デバイスドライバ102、仮想化制御部103などのソフトウェアプログラムを格納している。これらのソフトウェアプログラムは、CPUの制御に従い、メモリ上に読み出されて実行される。なお、外部記憶部には、他の機能に関するソフトウェアプログラムも記憶されているが、本発明に関わるもののみを説明する。
制御プログラム101は、デバイスサーバ200に接続されたデバイス300のデバイス情報を取得し、取得したデバイス情報をもとに、デバイス300とのデータ送受信に必要なデバイスドライバ102および仮想化制御部103を一意に特定し、動的に生成するソフトウェアプログラムである。また、デバイス300に対して、デバイスドライバ102と仮想化制御部103を介して、データの送受信を要求するソフトウェアプログラムである。このデバイスドライバ102および仮想化制御部103がデバイス300の個体ごとに生成・起動されることによって、デバイス300個々に仮想化制御が実行される。
さらに、制御プログラム101は、PC情報やイベント情報を設定し、PC情報を含むPC情報登録要求パケットおよびイベント情報を含むイベント情報登録要求パケットを送信する。PC情報、イベント情報、PC情報登録要求パケットおよびイベント情報登録要求パケットの詳細は、後述する。
デバイスドライバ102は、OSや制御プログラム101などの上位層のソフトウェアプログラムの指示により、デバイス300に対する制御コマンドを生成・送信し、この制御コマンドに対する応答を受信すると、この応答を上位層のソフトウェアプログラムへ通知するソフトウェアプログラムである。
仮想化制御部103は、制御プログラム101からデバイスドライバ102を介して要求されるデバイス300へのデータ送受信に対して、デバイス300がクライアントPC100に直結しているときと同様の振る舞いを提供する仮想化制御ソフトウェアプログラムである。この「仮想化制御」によって、クライアントPC100からデバイス300をローカル接続したときと同じ状態でデータ送受信を行うことができる。
<3.デバイスサーバ200の構成>
デバイスサーバ200(デバイス制御装置)は、クライアントPCと同様に、CPU、入力部、表示部、メモリ、通信部、USBインターフェース、外部記憶部などから構成されており、これらが内部バスで接続されている。USBインターフェースは、接続ケーブル400でデバイス300と直結(ローカル接続)してデータ送受信をするためのインターフェースであり、その他の構成については、クライアントPC100と同様であるため、その説明については省略する。
デバイスサーバ200(デバイス制御装置)は、クライアントPCと同様に、CPU、入力部、表示部、メモリ、通信部、USBインターフェース、外部記憶部などから構成されており、これらが内部バスで接続されている。USBインターフェースは、接続ケーブル400でデバイス300と直結(ローカル接続)してデータ送受信をするためのインターフェースであり、その他の構成については、クライアントPC100と同様であるため、その説明については省略する。
デバイスサーバ200は、ネットワーク500を介してクライアントPC100と通信することが可能であり、接続ケーブル400でローカル接続されているデバイス300とデータ送受信が可能である。
外部記憶部は、仮想化制御部201、情報記憶部202、イベント制御部203などのソフトウェアプログラムを格納している。これらのソフトウェアプログラムは、CPUの制御に従い、メモリ上に読み出されて実行される。なお、外部記憶部には、他の機能に関するソフトウェアも記憶されているが、本発明に関わるもののみを説明する。
仮想化制御部201は、クライアントPC100との間のセッションを制御(開始、終了)するとともに、クライアントPC100と通信するための「ネットワークパケット」とデバイス300との間で送受信する「USBデータ」との変換処理を行い、クライアントPC100とデバイス300との間のデータ送受信を仲介(中継)するソフトウェアプログラムである。
情報記憶部202には、図6に例示するPC情報テーブルや図7に例示するイベント情報テーブルが記憶される。なお、PC情報テーブルおよびイベント情報テーブルの詳細は、後述する。
イベント制御部203は、クライアントPC100から受信したPC情報登録要求パケットに含まれるPC情報をPC情報テーブルに、イベント情報登録要求パケットに含まれるイベント情報をイベント情報テーブルに登録するソフトウェアプログラムである。また、ローカル接続されたデバイス300およびデバイスサーバ200自身に対して一定間隔で監視(ポーリング)を行い、状態変化を検知すると、イベント情報テーブル(後述)を参照して、検知した状態変化に対応づけられたイベント情報を特定し、そのイベントを通知するためのイベント通知パケット(後述)を生成して、指定されたイベント通知先に送信するソフトウェアプログラムである。
イベントとは、デバイスサーバ200またはデバイス300の状態変化に対応づけられ、当該状態変化の発生(検知)に伴いシステム上で実行される処理である。
状態変化とは、デバイスサーバ200やデバイス300の動作状態の変化であり、例えば、デバイスサーバ200またはデバイス300の操作ボタンが押下されたことなどである。この様な状態変化の検知を契機(トリガ)として、検知した状態変化に対応づけられたイベントID(後述)やイベントを実行するために必要な付加データを送信・通知する「イベント通知」を行う。
<4.PC情報またはイベント情報の設定・送信>
次に、前述のデバイス制御システムにおいて、クライアントPC100の制御プログラム101でPC情報やイベント情報を設定し、PC情報を登録するためのPC情報登録要求パケットまたはイベント情報を登録するためのイベント情報登録要求パケットをデバイスサーバ200に送信するまでの一連の流れを説明する。
次に、前述のデバイス制御システムにおいて、クライアントPC100の制御プログラム101でPC情報やイベント情報を設定し、PC情報を登録するためのPC情報登録要求パケットまたはイベント情報を登録するためのイベント情報登録要求パケットをデバイスサーバ200に送信するまでの一連の流れを説明する。
<4−1.PC情報>
初めに、クライアントPC100の制御プログラム101で設定するPC情報について説明する。図2は、パケットのデータ構成を例示する図である。PC情報は、図2(a)に示すPC情報登録要求パケットによってデバイスサーバ200に送信される。PC情報登録要求パケットは、署名データ211、電文サイズ212、コマンドID213、クライアントPC100のIPアドレス214、サブネットマスク215、コンピュータ名216、PCスペック情報217、クライアントPCの稼働状態を示す状態情報218、暗号化の有無や種類を示す暗号化情報219、データ圧縮の有無や種類を示すデータ圧縮情報220で構成される。このうちのIPアドレス214〜データ圧縮情報220までがPC情報である。以下にPC情報を構成する各項目(情報)について説明する。
初めに、クライアントPC100の制御プログラム101で設定するPC情報について説明する。図2は、パケットのデータ構成を例示する図である。PC情報は、図2(a)に示すPC情報登録要求パケットによってデバイスサーバ200に送信される。PC情報登録要求パケットは、署名データ211、電文サイズ212、コマンドID213、クライアントPC100のIPアドレス214、サブネットマスク215、コンピュータ名216、PCスペック情報217、クライアントPCの稼働状態を示す状態情報218、暗号化の有無や種類を示す暗号化情報219、データ圧縮の有無や種類を示すデータ圧縮情報220で構成される。このうちのIPアドレス214〜データ圧縮情報220までがPC情報である。以下にPC情報を構成する各項目(情報)について説明する。
PCスペック情報217は、クライアントPC100のスペック(OS、CPU、メモリなど)や通信設定(暗号化の種類やデータ圧縮の種類)などから決定される情報である。なお、PCスペック情報の決め方は、図3を用いて後述する。
状態情報218は、クライアントPC100の稼働状態を示す情報であり、稼働中か非稼働かの2種類の状態(情報)が格納される。暗号化情報219は、暗号化の有無および暗号化の種類を示す情報である。データ圧縮情報220は、データ圧縮に関する情報である。
ここで、稼働中とは、クライアントPC100が正常に動作しており、データ処理を実行することが可能な状態であり、非稼働とは、クライアントPC100がデータ処理を実行できない状態(例えば、電源OFF、スリープ、ハイバーネーション)である。
<4−1−1.PCスペック情報の算出方法>
図3は、クライアントPC100の制御プログラム101におけるPCスペック情報の算出方法を例示するフローチャートである。PCのスペック(OS、CPU、メモリ)や通信設定(データ暗号化の種類、データ圧縮の種類)に応じて、重みづけの値(以下、加算値)を算出し、それらを合計したものをPCスペック情報として設定する。なお、本フローチャート中に示す加算値は大きく(多く)なるほど性能が高い(良い)ことを示す。
図3は、クライアントPC100の制御プログラム101におけるPCスペック情報の算出方法を例示するフローチャートである。PCのスペック(OS、CPU、メモリ)や通信設定(データ暗号化の種類、データ圧縮の種類)に応じて、重みづけの値(以下、加算値)を算出し、それらを合計したものをPCスペック情報として設定する。なお、本フローチャート中に示す加算値は大きく(多く)なるほど性能が高い(良い)ことを示す。
制御プログラム101は、初めにクライアントPC100のOSの種類を判定する(ステップS301)。その後、OSの性能(種類)に応じて、加算値を算出し、加算する。例えば、OSの種類がOS1の場合は、0加算(加算なし)とし(ステップS302)、OS2の場合は、0.5を加算し(ステップS303)、OS3の場合は、1.0を加算する(ステップS304)。
次に、CPUの性能(クロック数)に応じて、加算値を算出し、加算する(ステップS305)。例えば、CPUが3.00GHzならば3.00を加算する。
さらに、メモリの性能(容量)に応じて、加算値を算出し、加算する(ステップS306)。例えば、メモリが1GBならば1.00を加算する。
その次に、クライアントPC100とデバイスサーバ200の間でネットワークを介して送受信されるデータの暗号化の種類を判定する(ステップS307)。その後、データ暗号化の種類に応じて、加算値を算出し、加算する。例えば、プロトコルaを用いて暗号化を行う場合は、0加算(加算なし)とし(ステップS308)、プロトコルbを用いて暗号化を行う場合は、0.2を加算し(ステップS309)、暗号化を行なわない場合は、0.5を加算する(ステップS310)。
さらに、クライアントPC100とデバイスサーバ200の間でネットワークを介して送受信されるデータの圧縮の有無を判別する(ステップS311)。その後、データ圧縮の有無に応じて、加算値を算出し、加算する。例えば、データ圧縮なしの場合、0加算(加算なし)とし(ステップS312)、データ圧縮ありの場合は、0. 1を加算する(ステップS313)。なお、データ圧縮の種類に応じて、加算値は異なる。
最後に、減算処理が必要か判断する(ステップS314)。例えば、自装置(クライアントPC100)で処理が集中している場合に減算処理が必要と判断する。
ステップS314において、減算処理が必要と判断した場合(ステップS314でYes)、所定値(例えば、0.1)の減算処理を行い(ステップS315)、本処理を終了する。
一方、ステップS314において、減算処理を不要と判断した場合(ステップS314でNo)、減算処理を行わずに本処理を終了する。この制御フローに基づく処理を行うことにより加算値の合計を算出し、この値をクライアントPC100のPCスペック情報として設定する。
<4−2.イベント情報>
次に、クライアントPC100の制御プログラム101で設定するイベント情報について説明する。
次に、クライアントPC100の制御プログラム101で設定するイベント情報について説明する。
イベント情報は、図2(b)に示すイベント情報登録要求パケットによってデバイスサーバ200に送信される。イベント情報登録要求パケットは、署名データ221、電文サイズ222、コマンドID223、イベントID224、イベント通知先情報225、結果通知先情報226、付加データ227で構成される。このうちのイベントID224〜付加データ227までがイベント情報である。以下にイベント情報を構成する各項目(情報)について説明する。
イベントID224は、イベントまたは状態変化を識別するための識別情報である。なお、イベントIDを指定せずに、具体的なイベントを識別するための名称(例えば、スキャン)を指定し、そのイベントの名称に対応づけられたイベントIDが指定されるようにしてもよい。
イベント通知先情報225は、デバイスサーバ200のイベント制御部203で検知した状態変化に対応づけられたイベントIDの通知先に関する情報である。「全登録PC」、「固定PC」、「PCスペック優先」、「応答時間優先」、「いずれかのPC」のいずれかを指定する。
イベント通知先が「全登録PC」の場合は、PC情報テーブルに登録されている全てのクライアントPC100にイベント通知を行う。「固定PC」の場合は、指定された固定PCにのみにイベント通知を行う。「PCスペック優先」の場合は、PC情報テーブルのPCスペック優先情報(後述)を参照し、該当のクライアントPC100にイベント通知を行う。「応答時間優先」の場合は、PC情報テーブルの応答時間優先情報(後述)を参照し、該当のクライアントPC100にイベント通知を行う。「いずれかのPC」の場合は、処理可能なクライアントPC100をデバイスサーバ200側で選定し、そのクライアントPC100にイベント通知を行う。
結果通知先情報226は、イベントの処理結果の通知先に関する情報である。例えば、クライアントPC100のコンピュータ名やIPアドレスを必要に応じて指定する。イベント通知先と結果通知先が同一の場合は、結果通知先情報に関する指定を省略することができる。
付加データ227は、デバイスサーバ200に対して、イベント情報の設定を行う際にイベント情報登録要求パケットに付加するデータであり、必要に応じて指定する。
ここで、イベントとイベント通知先の対応関係について図4を用いて説明する。
このイベントとイベント通知先の対応関係は、システム上で定めたルール(情報)であり、システム上のいずれかの装置で保持していて、この情報を参照すればよい。クライアントPC100にこの対応関係を保持していれば、制御プログラム101でイベント情報を設定する場合、この対応関係に従って、許可されている組み合わせ(イベントとイベント通知先)のみ設定できる。
例えば、イベントがプラグアンドプレイの場合、全登録PCにイベント通知を行う必要があるので、イベントの通知先として「全登録PC」に許可することを示している。なお、プラグアンドプレイとは、クライアントPC100にデバイスドライバがインストールされていない場合は、デバイスドライバのインストールを行って、デバイスを利用可能な状態にすることである。
イベントがスキャンの場合、1台のクライアントPCでデバイスを制御できればよいので、イベント通知先として「固定PC」、「PCスペック優先」、「応答時間優先」、「いずれかのPC」を許可し、「全登録PC」は許可しないことを示している。
イベントが音声通信の場合、特定のPCのみに音声を送信すればよいので、イベント通知先として「固定PC」のみを許可し、それ以外の通知先は許可しないことを示している。
上述したPC情報またはイベント情報の設定が完了すると、PC情報を含むPC情報登録要求パケットまたはイベント情報を含むイベント情報登録要求パケットをデバイスサーバ200に送信する。
なお、クライアントPC100は、ユーザからの設定・送信指示に基づいて、PC情報登録要求パケットまたはイベント情報登録要求パケットを送信するようにしてもよいし、PC情報またはイベント情報が変更される度にPC情報登録要求パケットまたはイベント情報を送信するようにしてもよい。
<5.デバイスサーバ200におけるPC情報またはイベント情報の登録>
デバイスサーバ200において、クライアントPC100から受信したPC情報・イベント情報を情報テーブルに登録するまでの一連の流れを説明する。
デバイスサーバ200において、クライアントPC100から受信したPC情報・イベント情報を情報テーブルに登録するまでの一連の流れを説明する。
<5−1.PC情報またはイベント情報の登録制御>
図5は、デバイスサーバ200におけるPC情報またはイベント情報の登録について説明するフローチャートである。
図5は、デバイスサーバ200におけるPC情報またはイベント情報の登録について説明するフローチャートである。
デバイスサーバ200において、クライアントPC100からPC情報登録要求パケットまたはイベント情報登録要求パケットを受信した場合、図5のフローが開始される。
イベント制御部203は、PC情報登録要求パケットに含まれるPC情報をPC情報テーブルに、イベント情報登録要求パケットに含まれるイベント情報をイベント情報テーブルに登録する(ステップS501)。
PC情報またはイベント情報の登録完了後、イベント制御部203は、PC情報登録要求パケットまたはイベント情報登録要求パケットを送信したクライアントPC100(送信元)に対して、PC情報またはイベント情報の登録が完了した旨(登録結果)を通知するためにPC情報登録応答パケットまたはイベント情報登録応答パケットを返送して(ステップS502)、本処理を終了する。
ここで、図2(c)に示すPC情報登録応答パケットと図2(d)に示すイベント情報登録応答パケットの詳細について説明する。
図2(c)に示すPC情報登録応答パケットは、署名データ231、電文サイズ232、コマンドID233、登録成否情報234、PCスペック優先フラグ235、応答時間優先フラグ236から構成される。
登録成否情報234は、PC情報の登録の成否に関する情報が格納される。PCスペック優先フラグ235は、PC情報テーブルのPCスペック優先情報612(後述)を参照し、イベント通知先が「スペック優先」で該当のクライアントPC100が選択される場合にフラグがONになる。また、応答時間優先フラグ236は、PC情報テーブルの応答時間優先情報613(後述)を参照し、イベント通知先が「応答時間優先」で該当のクライアントPC100が選択される場合にフラグがONになる。
図2(d)に示すイベント情報登録応答パケットは、署名データ241、電文サイズ242、コマンドID243、イベントID244、登録成否情報245から構成され、登録成否情報は、イベント情報の登録の成否に関する情報が格納される。
以下にデバイスサーバ200のPC情報テーブルとイベント情報テーブルについて説明する。
<5−2.PC情報テーブルの構成>
図6は、PC情報テーブルの一例を示したものであり、PC情報登録件数611、PCスペック優先情報612、応答時間優先情報613とクライアントPC100のPC情報(1〜N台)が格納されている。
図6は、PC情報テーブルの一例を示したものであり、PC情報登録件数611、PCスペック優先情報612、応答時間優先情報613とクライアントPC100のPC情報(1〜N台)が格納されている。
PC情報登録件数611には、PC情報テーブルに登録されているPC情報の数が格納される。
PCスペック優先情報612には、PC情報テーブルに登録されているクライアントPC100の中でPCスペック情報が一番高いクライアントPC100の識別情報が格納される。なお、PCスペック情報の高い順に複数のクライアントPC100の識別情報が格納されてもよい。
応答時間優先情報613には、PC情報テーブルに登録されているクライアントPC100の中で応答時間が一番短いクライアントPC100の識別情報が格納される。なお、応答時間の短い順に複数のクライアントPC100の識別情報が格納されてもよい。
上記で説明したPC情報登録件数611、PCスペック優先情報612、応答時間優先情報613は、PC情報の追加・削除・変更が行なわれるたびに更新される。
PC情報は、IPアドレス621、サブネットマスク622、コンピュータ名623、PCスペック情報624、状態情報625、暗号化情報626、データ圧縮情報627および応答時間情報628から構成される。このPC情報には、図2(a)に示すPC情報登録要求パケットに含まれるIPアドレス214からデータ圧縮情報220までの各情報が格納される。なお、応答時間情報628には、PC情報登録要求パケットの受信に応じてデバイスサーバ200からクライアントPC100へ送信されたベンチマーク(処理性能測定)テストの実行モジュールに対する、クライアントPC100の処理性能結果(演算時間)と、実行モジュールの送信と処理性能結果の受信に要する時間(通信時間)が格納される。
なお、PC情報テーブルには全クライアントPCではなく稼働中のクライアントPC100のPC情報のみを記憶(保持)するようにしてもよい。
<5−3.イベント情報テーブルの構成>
図7はイベント情報テーブルの一例を示したものであり、1以上のイベント情報で構成され、デバイスサーバ200が検知可能な状態変化数分(1からN種類)のイベント情報を登録可能である。
図7はイベント情報テーブルの一例を示したものであり、1以上のイベント情報で構成され、デバイスサーバ200が検知可能な状態変化数分(1からN種類)のイベント情報を登録可能である。
なお、イベント情報登録テーブルに登録されるイベント情報は、イベント情報登録要求パケットの受信に応じて登録するもの(例えば、状態変化がボタンの押下)と、予めイベント情報テーブルに登録しておくもの(例えば、状態変化がエラー発生の場合)がある。
イベント情報テーブルに登録するイベント情報は、イベントID711、サイズ712、イベント通知先情報713、結果通知先情報714、付加データ715から構成される。イベントID711は、イベントを識別するための識別情報であり、サイズ712は、イベント情報のサイズを示す情報である。なお、結果通知先情報714および付加データ715は必須の項目でないため、情報が格納されない場合もある。
イベント情報登録要求パケットの受信に応じて登録するイベント情報については、クライアントPC100から受信したイベント情報登録要求パケットに含まれるイベントID224から付加データ227までの各情報が格納される。
また、クライアントPC100およびデバイスサーバ200は、図8に示す状態変化とイベントの対応関係を示したリストを記憶する。
例えば、状態変化「エラー発生」、「イベント処理完了」、「プラグイン」、「スキャンボタンの押下」に対して、イベント「エラー通知」、「ログ情報通知」、「プラグイン」、「スキャン」がそれぞれ対応付けられて、各々にユニークな情報(イベントID)が割り振られている。
<6.実施例1に係るデバイスサーバ200におけるイベント通知の制御>
デバイスサーバ200におけるイベント通知について、図9のフローチャートを用いて説明する。
デバイスサーバ200におけるイベント通知について、図9のフローチャートを用いて説明する。
デバイスサーバ200のイベント制御部203において、デバイス300またはデバイスサーバ200自身の状態変化を監視し、状態変化を検知した場合、図9のフローが開始される。
イベント制御部203は、情報記憶部202に記憶されているイベント情報テーブルおよびPC情報テーブルを参照し、検知した状態変化に対応づけられたイベントIDからイベント情報を特定し、イベント通知先情報、結果通知先情報を確認する(ステップS901)。
イベント制御部203は、イベント通知先情報からイベント通知先を選定し(ステップS902)、イベント通知パケットを生成して、送信することで、イベント通知を行う(ステップS903)。
なお、イベントがプラグアンドプレイの場合、全登録PCにイベント通知を行うため(図4参照)、デバイスサーバ200は、ユニキャストによって各クライアントPCに順次、イベント通知を行う。
その後、イベント通知先のクライアントPCからイベント通知応答パケットを受信する(ステップS904)。なお、イベント通知応答パケット(後述)には、イベントの処理の成否に関する情報やデータが格納される。
イベント通知応答パケット受信後、イベントの処理結果の転送が必要かどうかを判断する(ステップS905)。
イベントの処理結果の転送が不要と判断した場合(ステップS905でYes)、本処理を終了する。
一方、イベントの処理結果の転送が必要と判断した場合(ステップS905でNo)、イベント情報の結果通知先情報から結果通知先を選定して(ステップS906)、イベントの処理結果を送信し(ステップS907)、本処理を終了する。なお、イベントの処理結果の転送が必要な例として、処理結果に転送を要する情報やデータが含まれ、かつ、イベント情報のイベント通知先情報と結果通知先情報が異なる場合がある。
ここで、図2(e)に示すイベント通知パケットと図2(f)に示すイベント通知応答パケットの詳細について説明する。
図2(e)に示すイベント通知パケットは、署名データ251、電文サイズ252、コマンドID253、イベントID254、付加データ255から構成される。付加データ255は、制御プログラム101で指定されたデータが付加される。
図2(f)に示すイベント通知応答パケットは、署名データ261、電文サイズ262、コマンドID263、イベントID264、処理結果情報265から構成される。処理結果情報265は、イベントの処理実行の成否に関する情報やデータが格納される。
<7.実施例1に係る概略シーケンス>
図10は、本デバイス制御システムにおけるPC情報・イベント情報の登録とイベント通知の過程を示すシーケンス図である。ここでは、クライアントPCc100Cを管理用PC、デバイス300をスキャナとし、クライアントPCa100Aがデバイスサーバa200Aを介してスキャンデータを取得する場合について説明する。
図10は、本デバイス制御システムにおけるPC情報・イベント情報の登録とイベント通知の過程を示すシーケンス図である。ここでは、クライアントPCc100Cを管理用PC、デバイス300をスキャナとし、クライアントPCa100Aがデバイスサーバa200Aを介してスキャンデータを取得する場合について説明する。
初めに、クライアントPCa100A〜クライアントPCc100CのPC情報をデバイスサーバa200Aに登録する場合について説明する。クライアントPCa100Aは、制御プログラム101によって、PC情報を設定し、デバイスサーバa200Aに対して、PC情報登録要求パケットを送信する(タイミングT1001)。デバイスサーバa200Aは、PC情報登録要求パケットを受信すると、PC情報登録要求パケットに含まれるPC情報をPC情報テーブルに登録し(タイミングT1002)、クライアントPCa100Aに対して、PC情報登録応答パケットを送信する(タイミングT1003)。
上述したクライアントPCa100AのPC情報登録要求パケットの送信からPC情報登録応答パケット送信の過程(タイミングT1001〜タイミングT1003)を、クライアントPCb100BおよびクライアントPCc100Cについても同様に行うので、図示を省略し、説明も省略する。
次に、デバイスサーバa200Aにおいて、プラグアンドプレイに関するイベント情報を登録する場合について説明する。クライアントPCa100Aは、制御プログラム101でイベント情報を設定する際に、図4に例示したイベントとイベント通知先の対応関係を示したリストと、図8に例示した状態変化、イベント、イベントIDの対応関係を示したリストを参照し、イベント情報を設定する。例えば、プラグアンドプレイに関するイベントを設定する場合、イベントIDを「3」、イベント通知先を「全登録PC」に設定したイベント情報登録要求パケットをデバイスサーバa200Aに送信する(タイミングT1004)。
デバイスサーバa200Aは、プラグアンドプレイに関するイベント情報登録要求パケットを受信すると、イベント情報登録要求パケットに含まれるイベント情報をイベント情報テーブルに登録し(タイミングT1005)、クライアントPCa100Aにイベント情報登録応答パケットを送信する(タイミングT1006)。この後、イベント制御部203は、プラグアンドプレイに対応するデバイス300の状態変化(プラグイン)の監視・検知を開始する。
デバイスa300Aがデバイスサーバa200Aに接続されると(タイミングT1007)、デバイスサーバa200Aのイベント制御部203は、プラグアンドプレイに該当する状態変化(プラグイン)を検知し(タイミングT1008)、デバイスa300Aからデバイス情報を取得する。
デバイスサーバa200Aの仮想化制御部201は、デバイスa300Aから取得したデバイス情報を外部記憶部またはメモリに登録する(タイミングT1009)。なお、デバイス情報にシリアル番号が格納されていない場合、デバイスサーバ200の有する固有情報(例:IPアドレス、MACアドレス)と、デバイスサーバ200の接続ポート固有情報(例:USBポートの番号)からシリアル番号を生成し、付与することで、シリアル番号が格納されていない同一機種のデバイス300が複数接続された場合でも、クライアントPC100から識別可能となる。
イベント制御部203は、検知した状態変化(プラグイン)から情報記憶部202に記憶されているイベント情報テーブルおよびPC情報テーブルを参照して、イベント情報を特定し、この状態変化(プラグイン)に関するイベント(プラグアンドプレイ)のイベント通知先を選定する(タイミングT1010)。ここでは、プラグアンドプレイのイベント通知先が全登録PC(図4参照)なので、ユニキャストにより、各クライアントPC100に順次、イベント通知を行うことになる。
イベント制御部203は、クライアントPCa100Aにプラグアンドプレイに関するイベント通知パケットを送信する(タイミングT1011)。このとき、イベント通知パケットの付加データ255として、デバイスa300Aのデバイスドライバとデバイス情報を格納する。
クライアントPC100の制御プログラム101は、デバイスサーバa200Aからイベント通知パケットを受信することで、デバイスa300Aのデバイス情報を取得する。なお、デバイスサーバ200がデバイス300から取得したデバイス情報にシリアル番号が格納されるが、デバイス情報にシリアル番号が記述されていない場合には、デバイスサーバ200の有する固有情報と、デバイスサーバ200の接続ポート固有情報から生成されたシリアル番号が格納される。
クライアントPC100は、取得したデバイスドライバおよびデバイス情報を元に、制御プログラム101によってデバイスドライバ102と仮想化制御部103が生成・起動され、「仮想化制御」が行なわれる(タイミングT1012)。
クライアントPCa100Aは、仮想化制御が行なわれ、デバイス300とデータ送受信ができる状態になった後、デバイスサーバa200Aに対して、イベント応答通知パケットを送信する(タイミングT1013)。
上述したクライアントPCa100Aに対するイベント通知送信からクライアントPCa100Aのイベント通知応答送信までの過程(タイミングT1011〜タイミングT1013)を、クライアントPCb100BおよびクライアントPCc100Cについても同様に行うので、図示を省略し、説明も省略する。
これまでの過程が完了すると、クライアントPCa100A〜クライアントPCc100Cにおいて、仮想化制御が行われ、デバイスa300Aでのスキャン実行の準備が整い、スキャンの実行が可能になる。
次に、スキャンに関するイベント登録について説明する。クライアントPCa100Aは、制御プログラム101でイベントIDを「4」、イベント通知先情報を「PCスペック優先」、結果通知先情報を「クライアントPCa100A」としてイベント情報を設定し、スキャンに関するイベント情報登録要求パケットをデバイスサーバa200Aに送信する(タイミングT1014)。
デバイスサーバa200Aは、スキャンに関するイベント情報登録要求パケットを受信すると、イベント情報登録要求パケットに含まれるイベント情報をイベント情報テーブルに登録し(タイミングT1015)、クライアントPCa100Aに対してイベント情報登録応答パケットを送信する(タイミングT1016)。この後、イベント制御部203は、スキャンに対応するデバイス300の状態変化(例:スキャンボタンの押下)の監視・検知を開始する。
デバイスサーバ200による状態変化の監視中にデバイスa300Aでエラーが発生した場合(タイミングT1017)、デバイスサーバa200Aのイベント制御部203は、デバイスa300Aでエラーが発生したことを検知し(タイミングT1018)、情報記憶部202に記憶されているイベント情報テーブルおよびPC情報テーブルを参照して、イベント通知先をクライアントPCc100C(管理用PC)に選定し(タイミングT1019)、エラーに関するイベント通知パケットを送信する(タイミングT1020)。
クライアントPCc100C(管理用PC)の制御プログラム101は、仮想化制御部103を介してデバイスサーバa200Aからイベント通知パケットを受信すると、イベント通知パケットのイベントIDからイベント(エラー通知)を特定する。さらに、デバイスa300Aの詳細なエラー情報を取得するために、デバイスサーバa200Aとのセッションを開始する(タイミングT1021)
クライアントPCc100C(管理用PC)は、デバイスサーバa200Aを介してデバイスa300Aから詳細なエラー情報を取得する(タイミングT1022)。
クライアントPCc100C(管理用PC)は、デバイスa300Aの詳細なエラー情報を取得後、デバイスサーバa200Aとのセッションを終了する(タイミングT1023)。
詳細なエラー情報を確認した後、システム管理者が、デバイスa300Aに移動して、復旧処置(操作)を施したり、クライアントPCc100C(管理用PC)からデバイスa300Aに復旧のコマンドや命令を送信することで、デバイスa300Aのエラーが解除(復旧)される(タイミングT1024)。
その後、ユーザによって、デバイスa300Aのスキャンボタンが押下されると(タイミングT1025)、デバイスサーバa200Aのイベント制御部203は、デバイス300における状態変化(スキャンボタンの押下)を検知し(タイミングT1026)、情報記憶部202に記憶されているイベント情報テーブルおよびPC情報テーブルを参照して、検知した状態変化からイベント情報を特定し、イベント通知先を選定する(タイミングT1027)。ここでは、検出した状態変化「デバイス300のスキャンボタン押下」からイベント情報を特定し、そのイベント情報のイベント通知先が「PCスペック優先」のとき、PC情報テーブルのPCスペック優先情報612を参照して、PCスペック情報が最も高いクライアントPCb100Bがイベント通知先として選定された場合について説明する。
デバイスサーバa200Aのイベント制御部203は、検出した状態変化(スキャンボタンの押下)に対応づけられたイベントIDを含むイベント通知パケットをクライアントPCb100Bに送信する(タイミングT1028)。
クライアントPCb100Bの制御プログラム101は、仮想化制御部103を介してデバイスサーバa200Aからイベント通知パケットを受信すると、イベント通知パケットのイベントIDからイベント(スキャン)を特定し、その後、クライアントPCb100B上で制御プログラム101が実行される(タイミングT1029)。
クライアントPCb100Bは、制御プログラム101によって、イベント通知パケット内のコマンドIDおよびイベントIDに応じて、デバイスa300Aとデータ送受信(スキャン)を行うことを決定し、仮想化制御部103を介して、デバイスサーバa200Aに接続要求を送信し、デバイスサーバa200Aとのセッションを開始する(タイミングT1030)。
クライアントPCb100Bの仮想化制御部103は、デバイスサーバa200Aを介してデバイスa300Aとの間でデータ送受信用パケットを用いてデータ送受信を実施し、デバイスa300Aにおける実行結果(スキャンデータ)を取得する(タイミングT1031)。
クライアントPCb100Bにおいてデータの送受信が終了した場合、制御プログラム101を終了し(タイミングT1032)、仮想化制御部103は、デバイスサーバa200Aとのセッションを終了し、スキャンデータを含むイベント応答通知パケットを送信する(タイミングT1033)。
デバイスサーバa200Aは、クライアントPCb100Bからスキャンデータを含むイベント応答通知パケットを受信後、イベント情報の結果通知先情報に指定されているクライアントPCa100Aに対して、転送する(タイミングT1034)。
デバイスサーバa200Aは、クライアントPCa100Aに処理結果通知パケットの送信に伴い、イベントの完了(状態変化)を検知(認識)し(タイミングT1035)、検知した状態変化からイベント情報を特定して、イベント通知先を選定し(タイミングT1036)、ログ情報を通知するためのイベント通知パケットをクライアントPCc100C(管理用PC)に送信する(タイミングT1037)。
なお、タイミングT1027において、イベント通知先に選定したクライアントPCb100Bが非稼働の場合は、PCスペック情報が2番目に高く、かつ、稼働中のクライアントPC100(例えば、クライアントPCa100A)にイベント通知先を切り換えて、イベント通知を行う。
また、タイミングT1027において、イベント通知先としてクライアントPCa100Aが選定され、イベント通知先と結果送信先が同一のクライアントPC(クライアントPCa100A)となる場合がある。この場合、タイミングT1033において、クライアントPC(クライアントPCa100A)は、イベント通知応答パケットにスキャンデータを付加せずに送信し、タイミングT1034において、デバイスサーバ200は、処理結果(スキャンデータ)の送信処理を行わなくてもよい。
上述したとおり、実施例1のデバイス制御システムでは、デバイスサーバ200は、クライアントPC100から送信されたPC情報をPC情報テーブルに、イベント情報をイベント情報テーブルに登録し、デバイス300またはデバイスサーバ200の状態変化を検知した場合に、PC情報テーブルおよびイベント情報テーブルを参照して、状態変化に対応づけられたイベント情報を特定し、そのイベント情報からイベント通知を行うクライアントPCを決定することで、検知した状態変化に応じて、最適なクライアントPCからデバイスを制御することができる。
また、イベント通知の通知先に選定されたクライアントPCが非稼働であった場合、イベント通知先を稼働中のクライアントPC100に切り換えるので、システム上のいずれかのクライアントPCが稼働している限り、稼働しているクライアントPCにイベント通知を行い、イベントを実行することができる。
さらに、クライアントPC100毎に異なる通信設定(暗号化やデータ圧縮の有無や種類など)をデバイスサーバ200に登録することで、複数のNIC(Network Interface Card)を備えなくとも1つのNICを備えるだけで、クライアントPC毎に異なる通信設定で通信することができる。
次に、本発明の実施例2に係る実施の形態について図面を参照して詳細に説明する。なお、本発明の第2の実施例に係るデバイス制御システムは、その構成が上記第1の実施例で説明した図1のデバイス制御システムと同じであり、上述した構成要素については同一の符号を付して、その説明を省略する。
実施例2に係る実施の形態では、デバイスサーバ200が、状態変化に対応したイベント情報に含まれるイベント情報参照先情報(後述)を参照して、あるイベント(親のイベント)を処理する前に、イベント情報参照先情報で指定されたイベント(子のイベント)を処理するというように、複数のイベント情報を用いて、イベント通知を行い、イベントの処理を行う点が特徴である。
<8.実施例2に係るイベント情報テーブル>
図11は、実施例2に係るイベント情報テーブルおよびイベント情報を例示したものである。実施例2に係るイベント情報は、実施例1で説明した結果通知先情報を含まずにイベント情報参照先情報1114を含む点が特徴である。
図11は、実施例2に係るイベント情報テーブルおよびイベント情報を例示したものである。実施例2に係るイベント情報は、実施例1で説明した結果通知先情報を含まずにイベント情報参照先情報1114を含む点が特徴である。
イベント情報参照先情報1114は、イベント情報内のイベント通知先情報1113で指定された通知先に対してイベント通知を行う前に、予め処理を行う必要があるイベントのイベント情報に関する情報である。例えば、イベント情報名、イベントIDなどが格納される。
<9.実施例2に係るデバイスサーバ200におけるイベント通知の制御>
図12は、実施例2に係るデバイスサーバのイベント通知について説明するフローチャートである。なお、実施例1と同様に、デバイスサーバ200のイベント制御部203において、デバイス300またはデバイスサーバ200自身の状態変化を監視し、状態変化を検知した場合、図12のフローが開始される。
図12は、実施例2に係るデバイスサーバのイベント通知について説明するフローチャートである。なお、実施例1と同様に、デバイスサーバ200のイベント制御部203において、デバイス300またはデバイスサーバ200自身の状態変化を監視し、状態変化を検知した場合、図12のフローが開始される。
これ以降は、スキャンに関するイベント通知を行う場合について説明する。なお、イベント情報テーブルに登録されているイベント情報1とイベント情報2が親子関係にあるものとし、イベント情報1(親のイベント情報)のイベント情報参照先情報には、イベント情報2(子のイベント情報)の識別情報が格納されているものとする。
イベント制御部203は、情報記憶部202に記憶されているイベント情報テーブルおよびPC情報テーブルを参照し、検知した状態変化(スキャンボタンの押下)からイベント情報を特定する(ステップS1201)。
イベント制御部203は、ステップS1201で特定したイベント情報(イベント情報1)にイベント情報参照先情報があるか判断する(ステップS1202)。
ステップS1202において、イベント情報にイベント情報参照先情報がない場合(ステップS1202でYes)、イベント制御部203は、イベント情報テーブルおよびPC情報テーブルを参照して、イベント情報(イベント情報1)からイベント通知先を選定し(ステップS1203)、イベント通知パケットを生成して、送信することで、イベント通知(スキャンに関するイベント通知)を行う(ステップS1204)。
その後、イベント通知先からイベントの処理結果を含むイベント通知応答パケットを受信し(ステップS1205)、本処理を終了する。なお、イベント通知が管理用PCに対するエラー通知やログ情報の通知の場合、管理用PCは、イベント通知応答パケットの送信を行なわないようにしてもよい。
一方、ステップS1202において、イベント情報(イベント情報1)にイベント情報参照先情報がある場合(ステップS1202でNo)、イベント制御部203は、イベント情報参照先情報から参照先のイベント情報(イベント情報2)を特定する(ステップS1206)。
ステップS1206で特定したイベント情報に基づいて、イベント制御部203は、イベント通知先を選定し(ステップS1207)、イベント通知パケットを生成して、送信することで、イベント通知を行う(ステップS1208)。その後、イベント通知先からイベントの処理結果(例えば、スキャンデータ)を含むイベント通知応答パケットを受信する(ステップS1209)。
イベント制御部203は、ステップS1209において、イベント通知応答パケットを受信した後、参照元のイベント情報(イベント情報1)に基づいて、イベント通知先を選定し(ステップS1203)、イベントの処理結果(例えば、スキャンデータ)を含むイベント通知を行う(ステップS1204)。その後、イベント通知先からイベント通知応答パケットを受信し(ステップS1205)、本処理を終了する。
なお、イベント情報に複数のイベント情報参照先情報が格納されている場合、その数に応じて、ステップS1206からステップS1209の処理を繰り返し行う。
また、イベント情報参照先情報は、クライアントPC100で設定してもよいし、デバイスサーバ200が登録してもよい。
上述したとおり、実施例2のデバイス制御システムでは、デバイスサーバ200がイベント情報のイベント参照先情報を参照してイベント通知を行うことで、検知した状態変化に応じた最適なクライアントPCからデバイスを制御することができる。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
デバイスサーバ200は、イベント情報テーブルにイベント情報を登録する際に、イベント通知の有効回数、有効期限、有効時間帯も併せて登録し、有効回数に達したイベント情報や有効期限が切れたイベント情報を削除してもよい。また、イベント通知の有効時間帯以外は、イベント通知を行なわないように制御してもよい。
クライアントPC100はPC情報またはイベント情報の削除を要求するパケット(以下、削除要求パケット)を送信し、デバイスサーバ200は、この削除要求パケットの受信に応じて、PC情報テーブルまたはイベント情報テーブルから該当のPC情報またはイベント情報を削除してもよい。
本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによっても達成することができる。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成しても良い。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
なお、プログラムコードを供給するため、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CDやDVDに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ROM等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
100(100A,100B,100C):クライアントPC
101:制御プログラム
102:デバイスドライバ
103:仮想化制御部
200(200A,200B):デバイスサーバ
201:仮想化制御部
202:情報記憶部
203:イベント制御部
300(300A,300B):デバイス
400:接続ケーブル
500:ネットワーク
101:制御プログラム
102:デバイスドライバ
103:仮想化制御部
200(200A,200B):デバイスサーバ
201:仮想化制御部
202:情報記憶部
203:イベント制御部
300(300A,300B):デバイス
400:接続ケーブル
500:ネットワーク
Claims (11)
- デバイスとローカル接続し、クライアント装置とネットワークを介して接続されるデバイス制御装置であって、
前記デバイスまたは自装置の状態変化に対応づけられた識別情報、イベント通知の通知先情報を含むイベント情報および前記クライアント装置の識別情報を含むPC情報を記憶する情報記憶手段と、
前記デバイスおよび自装置の状態変化を監視するデバイス監視手段と、
前記デバイス監視手段によって、前記デバイスまたは自装置の状態変化を検知した場合、
前記情報記憶手段に記憶されたイベント情報の中から、前記デバイス監視手段によって検知された前記状態変化に対応する前記イベント情報を特定するイベント情報特定手段と、
前記イベント情報特定手段で特定された当該イベント情報および前記PC情報に基づき、前記イベント通知の通知先となる前記クライアント装置を選定するイベント通知先選定手段と、
前記イベント通知先選定手段で通知先に選定された前記クライアント装置に前記イベント通知を送信するイベント通知送信手段と、
を備えることを特徴とするデバイス制御装置。 - 前記イベント情報は、他のイベント情報の参照先情報をさらに含み、
前記イベント情報特定手段によって特定された前記イベント情報に前記参照先情報が含まれている場合、
前記イベント通知先選定手段は、当該参照先情報により参照される前記イベント情報および前記PC情報に基づき、前記イベント通知の通知先となる前記クライアント装置をさらに選定することを特徴する請求項1に記載のデバイス制御装置。 - 前記クライアント装置から前記イベント情報およびPC情報の少なくとも一方を登録するための登録要求を受信する登録要求受信手段をさらに備え、
前記情報記憶手段は、前記登録要求受信手段で受信した当該登録要求に含まれる前記イベント情報および前記PC情報の少なくとも一方を記憶することを特徴とする請求項1または請求項2に記載のデバイス制御装置。 - 前記登録要求の登録結果を前記登録要求の送信元の前記クライアント装置に送信する登録応答送信手段をさらに備えることを特徴とする請求項3に記載のデバイス制御装置。
- 前記イベント通知を受信した前記クライアント装置からの接続要求に応じて、当該クライアント装置とのセッションを開始するセッション制御手段をさらに備えることを特徴する請求項1または請求項2に記載のデバイス制御装置。
- デバイスとローカル接続し、クライアント装置とネットワークを介して接続されるデバイス制御装置におけるデバイス制御方法であって、
前記デバイスまたは自装置の状態変化に対応づけられた識別情報とイベント通知の通知先情報を含むイベント情報および前記クライアント装置の識別情報を含むPC情報を記憶する情報記憶ステップと、
前記デバイスおよび自装置の状態変化を監視するデバイス監視ステップと、
前記デバイス監視ステップで前記デバイスまたは自装置の状態変化を検知した場合、前記情報記憶ステップで記憶されたイベント情報の中から、前記デバイス監視ステップによって検知された前記状態変化に対応する前記イベント情報を特定するイベント情報特定ステップと、
前記イベント情報特定ステップで特定された当該イベント情報および前記PC情報に基づき、前記イベント通知の通知先となる前記クライアント装置を選定するイベント通知先選定ステップと、
前記イベント通知先選定ステップで通知先に選定された前記クライアント装置に前記イベント通知を送信するイベント通知送信ステップと、
を備えることを特徴とするデバイス制御方法。 - 前記イベント情報は、他のイベント情報の参照先情報をさらに含み、
前記イベント情報特定ステップで特定された前記イベント情報に前記参照先情報が含まれている場合、
前記イベント通知先選定ステップは、当該参照先情報により参照される前記イベント情報および前記PC情報に基づき、前記イベント通知の通知先となる前記クライアント装置をさらに選定することを特徴する請求項6に記載のデバイス制御方法。 - 前記クライアント装置からの前記イベント情報および前記PC情報の少なくとも一方を登録するための登録要求を受信する登録要求受信ステップをさらに備え、
前記情報記憶ステップは、前記登録要求受信ステップで受信した当該登録要求に含まれる前記イベント情報および前記PC情報の少なくとも一方を記憶することを特徴とする請求項6または請求項7に記載のデバイス制御方法。 - 前記登録要求の登録結果を前記登録要求の送信元の前記クライアント装置に送信する登録応答送信ステップをさらに備えることを特徴とする請求項8に記載のデバイス制御方法。
- 前記イベント通知を受信した前記クライアント装置からの接続要求に応じて、当該クライアント装置とのセッションを開始するセッション制御ステップをさらに備えることを特徴する請求項6または請求項7に記載のデバイス制御方法。
- 請求項1乃至5のいずれか1項に記載のデバイス制御装置、前記デバイス制御装置とネットワークを介して接続されたクライアント装置と、前記デバイス制御装置にローカル接続されるデバイスから構成されるデバイス制御システムであって、
前記クライアント装置は、
前記デバイス制御装置から前記イベント通知を受信した場合、
当該イベント通知に基づいて、前記デバイス制御装置に前記接続要求を送信することを特徴とするデバイス制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010288617A JP2012137864A (ja) | 2010-12-24 | 2010-12-24 | デバイス制御装置、デバイス制御方法、およびデバイス制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010288617A JP2012137864A (ja) | 2010-12-24 | 2010-12-24 | デバイス制御装置、デバイス制御方法、およびデバイス制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012137864A true JP2012137864A (ja) | 2012-07-19 |
Family
ID=46675242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010288617A Pending JP2012137864A (ja) | 2010-12-24 | 2010-12-24 | デバイス制御装置、デバイス制御方法、およびデバイス制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012137864A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015056034A (ja) * | 2013-09-12 | 2015-03-23 | 株式会社リコー | 機器、情報処理端末、情報処理システム、情報処理方法、及びプログラム |
WO2021171754A1 (ja) * | 2020-02-27 | 2021-09-02 | パナソニックIpマネジメント株式会社 | 情報処理方法、情報処理装置、およびプログラム |
-
2010
- 2010-12-24 JP JP2010288617A patent/JP2012137864A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015056034A (ja) * | 2013-09-12 | 2015-03-23 | 株式会社リコー | 機器、情報処理端末、情報処理システム、情報処理方法、及びプログラム |
WO2021171754A1 (ja) * | 2020-02-27 | 2021-09-02 | パナソニックIpマネジメント株式会社 | 情報処理方法、情報処理装置、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563390B2 (en) | Communication apparatus, control method, and computer readable medium | |
JP2008071085A (ja) | 画像処理装置及びログ転送方法 | |
US11832317B2 (en) | Control method and information processing apparatus | |
US20180054536A1 (en) | Control method | |
US8849999B2 (en) | Device control apparatus and method for monitoring device, client apparatus, and device control system | |
JP5745424B2 (ja) | デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム | |
JP2012084124A (ja) | 機器管理装置及び機器管理プログラム | |
JP6031275B2 (ja) | 画像処理装置及びその制御方法とプログラム | |
JP2003216310A (ja) | キー操作監視方法、描画情報取得方法、キー操作再生方法、これらの方法をコンピュータに実行させるプログラムおよび画像形成装置 | |
JP2014075622A (ja) | 画像形成装置、情報処理端末装置、システム、情報処理方法及びプログラム | |
JP2016019127A (ja) | 端末装置、端末装置の制御方法、および端末装置の制御プログラム | |
US11172081B2 (en) | Information processing apparatus, control method, and non-transitory computer-readable storage medium that displays an authentication information input screen after a communication apparatus prints the authentication information | |
JP2013061778A (ja) | 情報処理システム、情報処理装置、及び情報処理方法 | |
JP2022073284A (ja) | 情報処理装置 | |
JP2012137864A (ja) | デバイス制御装置、デバイス制御方法、およびデバイス制御システム | |
JP2021189693A (ja) | 情報処理システム、情報処理装置、情報処理方法およびプログラム | |
US20110010718A1 (en) | Electronic device, information processing method, and computer program product having computer-readable information processing program | |
JP2006309595A (ja) | ネットワークシステム、情報処理装置、及び通信制御方法 | |
JP5702134B2 (ja) | デバイス制御装置、情報管理装置、及びその制御方法、デバイス制御システム | |
US10631150B2 (en) | Communication apparatus, information processing apparatus, and control methods | |
JP6973067B2 (ja) | データ処理プログラム、データ処理方法、及びデータ処理装置 | |
JP2011129111A (ja) | クライアント装置、デバイス制御方法、およびデバイス制御システム | |
CN110866743A (zh) | 提供装置、处理系统以及通信方法 | |
JP5315939B2 (ja) | 画像形成装置、情報処理システム、情報処理方法、及びプログラム | |
US20230385401A1 (en) | Communication apparatus, control method therefor, and non-transitory computer-readable storage medium storing program |