(57)【特許請求の範囲】
【請求項１】
自装置にローカル接続された第一のデバイスの状態変化を監視するためのトリガ検知アルゴリズム及び／又は定義ファイルに基づいて、当該第一のデバイスを監視するデバイス監視手段と、
前記デバイス監視手段によって、前記第一のデバイスの状態変化を検知した場合、当該検知を示すトリガ通知を、ネットワークを介して接続されている情報管理装置に送信するトリガ通知送信手段と、
前記トリガ通知を受信した情報管理装置からの接続要求に応じて当該情報管理装置との第１のセッションを開始する第１のセッション制御手段と、
前記状態変化を検知した第一のデバイスから前記第１のセッションを介してユーザを特定するための固有情報であるユーザＩＤを取得するユーザＩＤ取得手段と、
前記ユーザＩＤ取得手段で取得した前記ユーザＩＤを前記第１のセッションを介して前記情報管理装置に対して送信するユーザＩＤ送信手段と、
前記ユーザＩＤと関連付けられた制御情報であって、ネットワークを介して接続されているクライアント装置を識別するための第一の識別情報及び当該クライアント装置が制御する第二のデバイスを識別するための第二の識別情報を含んだ制御情報を、前記情報管理装置から取得する制御情報取得手段と、
前記制御情報取得手段で取得した制御情報の第一の識別情報によって識別したクライアント装置に対して、当該制御情報の第二の識別情報を含んだ接続要求を生成して送信する接続要求手段と、
を備えることを特徴とするデバイス制御装置。
【請求項２】
前記制御情報に前記第一の識別情報及び／又は第二の識別情報が複数含まれている場合、
一以上の前記第一の識別情報又は前記第二の識別情報を選択する識別情報選択手段を更に備え、
前記接続要求手段は、前記識別情報選択手段で選択された前記第一の識別情報で識別されるクライアント装置へ前記識別情報選択手段で選択された前記第二の識別情報を含んだ接続要求を送信する
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報管理装置であって、
ユーザを特定するための固有情報であるユーザＩＤと関連付けられた制御情報を記憶している制御情報記憶手段と、
前記デバイスの状態変化を検知した前記デバイス制御装置から当該状態変化の検知を示すトリガ通知を受信するトリガ通知受信手段と、
前記トリガ通知受信手段によって受信された前記トリガ通知に応じて、前記デバイス制御装置とのセッションを開始するセッション制御手段と、
前記デバイス制御装置とのセッションを介して、前記ローカル接続されているデバイスからユーザを特定するための固有情報であるユーザＩＤを取得するユーザＩＤ取得手段と、
前記制御情報記憶手段に記憶されている制御情報の中から、前記ユーザＩＤ取得手段によって取得された前記ユーザＩＤに関連付けられている制御情報を検索する制御情報検索手段と、
前記デバイスの状態変化を検知した前記デバイス制御装置に対して、当該制御情報を送信する制御情報送信手段と、を備えること
を特徴とする情報管理装置。
【請求項４】
前記制御情報は、制御対象の前記デバイスを識別するためのデバイス識別情報を含むことを特徴とする請求項３に記載の情報管理装置。
【請求項５】
請求項１又は請求項２に記載のデバイス制御装置と、請求項３に記載の情報管理装置と、クライアント装置とがネットワークを介して接続されたデバイス制御システムにおいて、
前記情報管理装置の前記制御情報は、前記ネットワークを介して接続されているクライアント装置を識別するための第一の識別情報及び当該クライアント装置が制御する第二のデバイスを識別するための第二の識別情報を含んでおり、
前記クライアント装置は、
前記デバイス制御装置から接続要求を受信した場合、
当該受信した接続要求に含まれる第二の識別情報によって識別したデバイスを直接接続されているようにシミュレートするとともに、当該識別したデバイスが接続されているデバイス制御装置に対してセッションを開始するための接続開始要求を送信し、
前記接続開始要求を送信したデバイス制御装置とセッションが開始されると、当該デバイス制御装置を介して前記識別したデバイスとデータ送受信すること
を特徴とするデバイス制御システム。
【請求項６】
デバイス監視手段が自装置にローカル接続された第一のデバイスの状態変化を監視するためのトリガ検知アルゴリズム及び／又は定義ファイルに基づいて、当該第一のデバイスを監視するデバイス監視ステップと、
トリガ通知送信手段が前記デバイス監視ステップにおいて、前記第一のデバイスの状態変化を検知した場合、当該検知を示すトリガ通知を、ネットワークを介して接続されている情報管理装置に送信するトリガ通知送信ステップと、
第１のセッション制御手段が前記トリガ通知を受信した情報管理装置からの接続要求に応じて当該情報管理装置との第１のセッションを開始する第１のセッション制御ステップと、
ユーザＩＤ取得手段が前記状態変化を検知した第一のデバイスからユーザを特定するための固有情報であるユーザＩＤを前記第１のセッションを介して取得するユーザＩＤ取得ステップと、
ユーザＩＤ送信手段が前記ユーザＩＤ取得ステップで取得した前記ユーザＩＤを前記情報管理装置に対して送信するユーザＩＤ送信ステップと、
制御情報取得手段が前記ユーザＩＤと関連付けられた制御情報であって、ネットワークを介して接続されているクライアント装置を識別するための第一の識別情報及び当該クライアント装置が制御する第二のデバイスを識別するための第二の識別情報を含んだ制御情報を、前記情報管理装置から取得する制御情報取得ステップと、
接続要求手段が前記制御情報取得ステップで取得した制御情報の第一の識別情報によって識別したクライアント装置に対して、当該制御情報の第二の識別情報を含んだ接続要求を生成して送信する接続要求ステップと、
を備えたデバイス制御方法。
【請求項７】
前記制御情報に前記第一の識別情報及び／又は第二の識別情報が複数含まれている場合、
識別情報選択手段が一以上の前記第一の識別情報又は前記第二の識別情報を選択する識別情報選択ステップを更に備え、
前記接続要求ステップは、前記識別情報選択ステップで選択された前記第一の識別情報で識別されるクライアント装置へ前記識別情報選択ステップで選択された前記第二の識別情報を含んだ接続要求を送信する
ことを特徴とする請求項６に記載のデバイス制御方法。
【請求項８】
デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報管理装置における制御方法であって、
トリガ通知受信手段が前記デバイスの状態変化を検知した前記デバイス制御装置から当該状態変化の検知を示すトリガ通知を受信するトリガ通知受信ステップと、
セッション制御手段が前記トリガ通知受信ステップによって受信された前記トリガ通知に応じて、前記デバイス制御装置とのセッションを開始するセッション制御ステップと、
ユーザＩＤ取得手段が前記デバイス制御装置とのセッションを介して、前記ローカル接続されているデバイスからユーザを特定するための固有情報であるユーザＩＤを取得するユーザＩＤ取得ステップと、
制御情報検索手段が自装置の情報記憶手段に記憶されている制御情報の中から、前記ユーザＩＤ取得ステップによって取得された前記ユーザＩＤに関連付けられている制御情報を検索する制御情報検索ステップと、
前記デバイスの状態変化を検知した前記デバイス制御装置に対して、制御情報送信手段が当該制御情報を送信する制御情報送信ステップと、
を備えることを特徴とする制御方法。
【請求項９】
前記制御情報は、制御対象の前記デバイスを識別するためのデバイス識別情報を含むことを特徴とする請求項８に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデバイスを制御する機能を備えたデバイス制御装置、情報管理装置、及びその制御方法、デバイス制御システムに関するものである。
【背景技術】
【０００２】
ネットワークの普及により、例えば、プリンタ、ストレージ、スキャナなどのデバイスを、ネットワーク上のクライアントＰＣからデバイスサーバを介して共有デバイスとして利用可能とするための実現方法がいくつか提案されている。
【０００３】
その実現方法として、本出願人は、デバイスサーバが自身に接続されているデバイスを監視し、デバイスの状態変化を検知すると、この検知を示す情報（以下、トリガ通知）をクライアントＰＣへ通知することで、クライアントＰＣとデバイスサーバ間でセッションを開始し、デバイスサーバを介してクライアントＰＣとデバイス間でデータ送受信が可能となるデバイス制御システムを提案している（特許文献１参照）。
【０００４】
このデバイス制御システムは、デバイスサーバがデバイスを監視するため、クライアントＰＣによるデバイスの監視（ポーリング）が不要となり、クライアントＰＣが必要となったときだけ当該デバイスを専有できるものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２００９−２５３３９５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、出願人自らが先に提案した特許文献１のデバイス制御システムをさらに拡張・発展させ、デバイスサーバからネットワークを介してトリガ通知を受信した所定のクライアントＰＣが、ネットワーク上にある別のクライアントＰＣに関する識別情報をデバイスサーバへ返送し、デバイスサーバが、受信した識別情報で特定されるクライアントＰＣに対してトリガ通知を行うことで、状態変化を検知したデバイスと最初にトリガ通知を受信したクライアントＰＣ（前記所定のクライアントＰＣ）との間だけでなく、ネットワークに接続されている任意のクライアントＰＣと任意のデバイス間でデータ送受信を実行させることを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載のデバイス制御装置は、自装置にローカル接続された第一のデバイスの状態変化を監視するためのトリガ検知アルゴリズム及び／又は定義ファイルに基づいて、当該第一のデバイスを監視するデバイス監視手段と、前記デバイス監視手段によって、前記第一のデバイスの状態変化を検知した場合、当該検知を示すトリガ通知を、ネットワークを介して接続されている情報管理装置に送信するトリガ通知送信手段と、前記状態変化を検知した第一のデバイスからユーザを特定するための固有情報であるユーザＩＤを取得するユーザＩＤ取得手段と、前記ユーザＩＤ取得手段で取得した前記ユーザＩＤを前記情報管理装置に対して送信するユーザＩＤ送信手段と、前記ユーザＩＤと関連付けられた制御情報であって、ネットワークを介して接続されているクライアント装置を識別するための第一の識別情報及び当該クライアント装置が制御する第二のデバイスを識別するための第二の識別情報を含んだ制御情報を、前記情報管理装置から取得する制御情報取得手段と、前記制御情報取得手段で取得した制御情報の第一の識別情報によって識別したクライアント装置に対して、当該制御情報の第二の識別情報を含んだ接続要求を生成して送信する接続要求手段と、を備えることを特徴とする。
【０００８】
また、上記の課題を解決するために、請求項３に記載の情報管理装置は、デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報管理装置であって、ユーザを特定するための固有情報であるユーザＩＤと関連付けられた制御情報記憶している制御情報記憶手段と、前記デバイスの状態変化を検知した前記デバイス制御装置から当該状態変化の検知を示すトリガ通知を受信するトリガ通知受信手段と、前記トリガ通知受信手段によって受信された前記トリガ通知に応じて、前記デバイス制御装置とのセッションを開始するセッション制御手段と、前記デバイス制御装置とのセッションを介して、前記ローカル接続されているデバイスからユーザを特定するための固有情報であるユーザＩＤを取得するユーザＩＤ取得手段と、前記制御情報記憶手段に記憶されている制御情報の中から、前記ユーザＩＤ取得手段によって取得された前記ユーザＩＤに関連付けられている制御情報を検索する制御情報検索手段と、前記制御情報検索手段で検索した前記制御情報の前記第二の識別情報で識別されるデバイスが接続されているデバイス制御装置に対して、当該制御情報を送信する制御情報送信手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、デバイス制御装置が自装置に接続された特定のデバイス（第一のデバイス）の状態変化を契機（トリガ）として、ネットワーク上の情報管理装置から制御情報を取得し、当該制御情報に含まれる識別情報によって識別されるクライアント装置とデバイス（第二のデイバス）との間でデータ送受信を実行させることができるので、例えば、デバイスサーバに接続されたカードリーダにカードをかざすだけで、ユーザの手近にあるマウスやキーボードにより、ネットワークを介して接続されている遠隔地のクライアントＰＣをリモート操作するというようなことが可能になる。
【図面の簡単な説明】
【００１０】
【図１】実施例１に係るデバイス制御システムの概略構成を示す図である。
【図２】ユーザＩＤリストの一例を示す説明図である。
【図３】実施例１に係るデバイス制御システムの動作シーケンスを示す図である。
【図４】リモート接続要求のパケットにおけるデータ構成を例示する図である。
【図５】本発明のデバイス制御システムの適用例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、詳細に説明する。
【実施例１】
【００１２】
＜１．デバイス制御システムの構成＞
図１は、実施例１に係るデバイス制御システムの概略構成であり、情報管理ＰＣ１００、クライアントＰＣ１１０（１１０Ａ、１１０Ｂ）、デバイスサーバ２００（２００Ａ、２００Ｂ）、トリガ用デバイス３００、デバイス３１０（３１０Ａ、３１０Ｂ）から構成されている。
【００１３】
トリガ用デバイス３００及びデバイス３１０は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースに準拠した接続ケーブル４００でデバイスサーバ２００に接続（ローカル接続）されている。ただし、ＵＳＢに限定されるものではなく、ＩＥＥＥ１３９４など他のインターフェースに準拠したものであってもよい。一方、情報管理ＰＣ１００及びクライアントＰＣ１１０は、デバイスサーバ２００と有線又は無線のネットワーク５００を介して接続されている。
【００１４】
次に、デバイス制御システムを構成する各装置、機器の構成について順次説明する。
＜２．情報管理ＰＣ１００の構成＞
情報管理ＰＣ１００は、本発明の「情報管理装置」の実施形態の一例であり、ＣＰＵ、入力部、表示部、メモリ、通信部、外部記憶部などが内部バスで接続されている。ネットワーク５００を介してデバイスサーバ２００と通信することが可能な装置であり、後述する監視情報と制御情報を保有している点が特徴である。
【００１５】
外部記憶部には、アプリケーションプログラムやＯＳ（共に不図示）、制御プログラム１０１、デバイスドライバ１０２、仮想化制御部１０３、通信制御部１０４などのソフトウェア部品が格納されるとともに各種データがデータ記憶部１０５に格納される。これらソフトウェア部品及び各種データは、ＣＰＵの制御に従い、メモリ上に読み出されて各種制御が実行される。
【００１６】
制御プログラム１０１は、トリガ用デバイス３００を制御するソフトウェア部品であり、（１）デバイスサーバ２００にローカル接続される機器（以下、「デバイス」）の個体を識別するためのデバイス個体情報を取得する機能、（２）デバイス個体情報によって「デバイス」の機種などを個体ごとに識別する機能、（３）トリガ用デバイス３００との間のデータ送受信に必要となるデバイスドライバ１０２及び仮想化制御部１０３を一意に特定し、動的に生成・起動する機能、（４）通信制御部１０４に対してデバイスサーバ２００とのセッションの開始・切断を指示する機能、（５）デバイスサーバとのセッションが開始されると、デバイスドライバ１０２及び仮想化制御部１０３を用いて、トリガ用デバイス３００との間のデータ送受信を制御する機能を備えている。
【００１７】
さらに、（６）デバイスサーバ２００からのトリガ通知（後述）の受信に応じて、トリガ用デバイス３００から「ユーザＩＤ」（後述）を取得する機能、（７）トリガ用デバイス３００の機種に応じた定義ファイル１０６、トリガ検知アルゴリズム１０７をデータ記憶部１０５の中から選択する機能、（７）「ユーザＩＤ」をもとにしてユーザＩＤリスト１０８（後述）の中から該当する「ＩＤ情報」（後述）を検索する機能、（８）前述の（６）、（７）の機能によって選択／検索された情報（データ）の送信を指示する機能を備えている。
【００１８】
デバイスドライバ１０２は、アプリケーションプログラムやＯＳ、制御プログラム１０１など（以下、上位層のソフトウェアプログラム）の指示により、トリガ用デバイス３００に応じたデータ形式のデータ（以下、制御コマンド）に変換し、この制御コマンドを仮想化制御部１０３に送り、この制御コマンドに対する応答を上位層のソフトウェアプログラムへ通知するソフトウェア部品である。
【００１９】
仮想化制御部１０３は、デバイスドライバ１０３で制御コマンドに変換されたデータ入出力要求をＵＳＢのデータ形式に準拠したパケットデータ（以下、ＵＳＢデータ）に変換し、通信制御部１０４から送られてくるＵＳＢデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ１０３へ送るソフトウェア部品である。また、トリガ用デバイス３００に対するデータ送受信要求に対して、トリガ用デバイス３００が情報管理ＰＣ１００に直結（ローカル接続）しているときと同様の振る舞いをシミュレートする機能（以下、仮想化制御）を備えたソフトウェア部品である。この「仮想化制御」によって、トリガ用デバイス３００をローカル接続したときと同じ状態でデータ送受信することができるようになる。
【００２０】
通信制御部１０４は、仮想化制御部１０３を経由して送られてくる「ＵＳＢデータ」とネットワーク５００を介してデバイスサーバ２００と通信するときの「ネットワークパケット」との変換処理を行い、デバイスサーバ２００との間のデータ送受信を制御するソフトウェア部品である。また、仮想化制御部１０３を経由して送られてくる上位層のソフトウェアプログラムやデバイスドライバ１０２からのデータ送受信要求に応じて、デバイスサーバ２００との間のセッションの開始・切断の制御を行う。
【００２１】
データ記憶部１０５には、以下で説明する定義ファイル１０６、トリガ検知アルゴリズム１０７、ユーザＩＤリスト１０８などの各種データが格納される。
【００２２】
定義ファイル１０６は、デバイスサーバ２００において、トリガ用デバイス３００の監視を実行する際、トリガ検知アルゴリズム１０７に必要な命令・情報等を格納しているデータファイルである。
【００２３】
トリガ検知アルゴリズム１０７は、デバイスサーバ２００において、トリガ用デバイス３００を監視し、その状態変化を検知するための実行手順が記述されたプログラムコードであり、定義ファイル１０６を読み込むことで、本実行手順に従って、トリガ用デバイス３００の監視処理（以下、トリガ検知処理）が行われる。
【００２４】
定義ファイル１０６とトリガ検知アルゴリズム１０７は、トリガ用デバイス３００の監視を行うための１組の「監視情報」（監視プログラム）であり、トリガ用デバイス３００の機種ごとで異なる。このため、情報管理ＰＣ１００は、様々なトリガ用デバイス３００の機種に対応するため、定義ファイル１０６とトリガ検知アルゴリズム１０７をそれぞれ１つ以上格納している。図１では、Ｎ機種分（Ｎ：整数）の定義ファイル１０６とトリガ検知アルゴリズム１０７を格納している状態を示している。
【００２５】
ユーザＩＤリスト１０８は、ユーザを特定するための固有情報であるユーザＩＤと、制御対象のクライアントＰＣ１１０、デバイス３１０、デバイス３１０が接続されているデバイスサーバ２００を識別するための識別情報（機器情報、宛先情報など）を関連付けた「制御情報」（以下、「ＩＤ情報」）が登録されている。
【００２６】
図２は、ユーザＩＤリスト１０８の一例を示したものであり、ユーザＩＤリストサイズ、ユーザＩＤ登録数、ＩＤ情報（１〜Ｎ個）から構成されている。ユーザＩＤリストサイズはリスト全体のデータサイズ、ユーザＩＤ登録数はリストに登録されているＩＤ情報の個数を示す情報である。各ＩＤ情報（１〜Ｎ）は、以下で説明する「ユーザＩＤ」、「ＰＣ情報」、「デバイス識別情報」を関連付けた情報である。
【００２７】
「ユーザＩＤ」は、例えば、ＩＤカードなどの記録媒体の固有ＩＤやユーザに割り当てたユニークなＩＤ、若しくは、これらを組み合わせた情報などであり、ユーザを特定するための固有情報であれば、これらに限定されるものではない。「ＰＣ情報」は、デバイス３１０を制御するクライアントＰＣ１１０を識別するための宛先情報（ＩＰアドレス、サブネットマスクなど）などが含まれた識別情報（第一の識別情報）である。「デバイス識別情報」は、クライアントＰＣ１１０の制御対象となるデバイス３１０の個体を識別するための「機器情報」（ベンダーＩＤ、製品ＩＤ、シリアル番号など）と、デバイス３１０が接続されているデバイスサーバ２００を識別するための宛先情報（ＭＡＣアドレス等）などの「デバイスサーバ情報」が含まれた識別情報（第二の識別情報）である。
【００２８】
なお、情報管理ＰＣ１００に可搬型記憶媒体を接続したり、ネットワーク経由でアクセスするなどの方法によって、ユーザＩＤリスト１０８に登録される「ＩＤ情報」を更改（追加・変更・削除）することも可能である。
【００２９】
＜３．クライアントＰＣ１１０の構成＞
クライアントＰＣ１１０（１００Ａ、１００Ｂ）は、本発明の「クライアント装置」の実施形態の一例で、ＣＰＵ、入力部、表示部、メモリ、通信部、外部記憶部などが内部バスで接続されており、ネットワーク５００を介してデバイスサーバ２００と通信することが可能な装置である。上述した情報管理ＰＣ１００と同等の機能を備えており、その構成の違いは、「監視情報」及び「制御情報」を外部記憶部に格納（保有）していない点である。
【００３０】
外部記憶部には、アプリケーションプログラムやＯＳ（共に不図示）、制御プログラム１１１、デバイスドライバ１１２、仮想化制御部１１３、通信制御部１１４などのソフトウェア部品が格納され、ＣＰＵの制御に従い、メモリ上に読み出されて各種制御が実行される。上述した情報管理ＰＣ１００の各ソフトウェア部品（制御プログラム１０１、デバイスドライバ１０２、仮想化制御部１０３、通信制御部１０４）と同等の構成を備えており、定義ファイル１０６、トリガ検知アルゴリズム１０７、ユーザＩＤリスト１０８を保有していない点のみが異なるため、これらの詳細な説明は省略し、以下、相違点のみを説明する。
【００３１】
クライアントＰＣ１１０の制御プログラム１１１は、デバイス３１０を制御するソフトウェア部品であり、デバイスサーバ２００からの「接続要求」（後述）を受信すると、これに基づき制御対象となるデバイス３１０とのデータ送受信に必要なデバイスドライバ１１２及び仮想化制御部１１３を一意に特定し、動的に生成・起動する。これに続き、通信制御部１１４に対してデバイスサーバ２００との間でセッションを開始させ、デバイスドライバ１１２及び仮想化制御部１１３を用いることで、デバイスサーバ２００を介して、当該デバイス３１０との間のデータ送受信を制御する。また、定義ファイル１０６、トリガ検知アルゴリズム１０７、ユーザＩＤリスト１０８などのデータを保有していないため、これらのデータを用いた制御は行われない。
【００３２】
＜４．デバイスサーバ２００の構成＞
デバイスサーバ２００（２００Ａ、２００Ｂ）は、本発明における「デバイス制御装置」の実施形態の一例であり、ＣＰＵ、メモリ、通信部、ＵＳＢインターフェース、外部記憶部などが内部バスで接続され、ネットワーク５００を介して情報管理ＰＣ１００、クライアントＰＣ１１０と通信し、又、接続ケーブル４００でローカル接続されているトリガ用デバイス３００やデバイス３１０（以下、総称して「デバイス」）とデータ送受信が可能な装置である。
【００３３】
外部記憶部には、ＯＳ（不図示）、通信制御部２０１、デバイス制御部２０２などのソフトウェア部品が格納されるとともに各種データがデータ記憶部２０３に格納される。これらソフトウェア部品及び各種データは、ＣＰＵの制御に従い、メモリ上に読み出されて各種制御が実行される。
【００３４】
通信制御部２０１は、ＯＳの制御に従ってネットワーク５００経由で接続されている情報管理ＰＣ１００やクライアントＰＣ１１０との間のセッションを制御（開始、切断）するとともに、情報管理ＰＣ１００、クライアントＰＣ１１０と通信するための「ネットワークパケット」とトリガ用デバイス３００やデバイス３１０との間で送受信する「ＵＳＢデータ」との変換処理を行い、デバイス制御部２０２と連携して情報管理ＰＣ１００とトリガ用デバイス３００間並びにクライアントＰＣ１１０とデバイス３１０間のデータ送受信を仲介（中継）するための機能部である。
【００３５】
デバイス制御部２０２は、「デバイス」を制御するための機能部である。また、通信制御部２０１を介してデバイス個体情報２０４、定義ファイル２０５、トリガ検知アルゴリズム２０６、ＩＤ情報を取得し、取得したこれらの情報（データ）に基づいて、以下で説明する処理を実行するための機能を備えている。
【００３６】
（１）「デバイス」から取得したデバイス個体情報２０４を情報管理ＰＣ１００に送信する機能、（２）情報管理ＰＣ１００から定義ファイル１０６／トリガ検知アルゴリズム１０７を受信（取得）する機能、（３）定義ファイル２０５及びトリガ検知アルゴリズム２０６（後述）を用いてトリガ用デバイス３００を一定間隔で監視（ポーリング）する「トリガ検知処理」を実行し、状態変化を検知すると、当該検知を示す情報（以下、トリガ通知）を情報管理ＰＣ１００へ送信する機能、（４）トリガ用デバイス３００から「ユーザＩＤ」を取得して、これを情報管理ＰＣ１００に送信し、当該「ユーザＩＤ」に応じた「ＩＤ情報」（後述）を取得する機能、（５）「ＩＤ情報」に含まれるユーザＩＤとトリガ用デバイス３００から取得した「ユーザＩＤ」とを照合する機能、（６）「ＩＤ情報」の中の「デバイス識別情報」を含んだ「接続要求」（後述）を生成し、同「ＩＤ情報」の中の「ＰＣ情報」によって識別されるクライアントＰＣ１１０に対して送信する機能を備えている。
【００３７】
データ記憶部２０３には、以下で説明するデバイス個体情報２０４、定義ファイル２０５、トリガ検知アルゴリズム２０６、ＩＤ情報２０７などの各種データが格納される。
【００３８】
デバイス個体情報２０４は、「デバイス」を個体ごとに識別するための情報であって、メーカーを識別するために機器を製造したメーカーごとに割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種ごとに割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために個々の機器に割り当てられたシリアル番号などである。「デバイス」が接続されたときなどに、デバイス制御部２０２によって「デバイス」から取得する情報である。
【００３９】
定義ファイル２０５とトリガ検知アルゴリズム２０６は、デバイスサーバ２００自身に接続されたトリガ用デバイス３００の監視（ポーリング）に必要な情報であり、デバイス個体情報２０４をもとに情報管理ＰＣ１００から取得する。情報管理ＰＣ１００のデータ記憶部１０５に格納されているＮ組の定義ファイル１０６、トリガ検知アルゴリズム１０７の中からトリガ用デバイス３００の機種に応じた組み合わせが選択されるもので、選択される組み合わせの数は１つに限らず、複数であってもよい。なお、上述した定義ファイル１０６、トリガ検知アルゴリズム１０７の中から選択されたものであるため、詳細な説明は省略する。
【００４０】
ＩＤ情報２０７は、トリガ用デバイス３００から取得した「ユーザＩＤ」をもとに情報管理ＰＣ１００から取得する情報である。上述した情報管理ＰＣ１００のデータ記憶部１０５に格納されているユーザＩＤリスト１０８の中から選択されたＩＤ情報であるため、その詳細な説明は省略する。
【００４１】
上述した構成を備えたデバイス制御装置は、本発明のデバイス制御システムに少なくとも１台設置されていればよい。本実施例では、図１に示すデバイスサーバａ２００Ａがこれに該当する。一方、デバイスサーバｂ２００Ｂは、トリガ用デバイス３００を接続していないため、上述したデバイス制御部２０２の（１）〜（６）の機能については、動作しない、若しくは、同機能を具備していないものとして説明する。
【００４２】
＜５．トリガ用デバイス３００の構成＞
トリガ用デバイス３００は、本発明の「第一のデバイス」の実施形態の一例で、ＵＳＢインターフェースを持ち、「ユーザＩＤ」を取得するためのユーザＩＤ取得手段（機能）を備えた機器（デバイス）である。「ユーザＩＤ」は、ユーザが手動で入力操作を行う、ユーザＩＤが記録されている可搬型記録媒体を機器に接続又は接触させる、近づける（かざす）などの方法で取得されるが、これらに限定されるものではない。
【００４３】
例えば、トリガ用デバイス３００がカードリーダのような機器である場合、ＩＣカードがかざされ、カードリーダが読み取り処理を実行すると、この読み取り処理の動作がデバイスの状態変化としてデバイスサーバ２００で検知され、情報管理ＰＣ１００に通知される。
【００４４】
ここで、トリガ用デバイス３００の状態変化とは、機器の動作状態の変化のことであり、カードリーダに対してカードの読み取り操作（ユーザＩＤの取得）が行われたことや、操作ボタンが押下されたことなどによって生じるものであるが、これらに限定されるものではない。
【００４５】
＜６．デバイス３１０の構成＞
デバイス３１０（３１０Ａ、３１０Ｂ）は、ＵＳＢインターフェースを持つ汎用的な入出力機器（デバイス）である。例えば、キーボード、マウスのような入力機器、ディスプレイなどの表示（出力）機器、プリンタなどの単機能周辺機器（ＳＦＰ：Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）、或いは、プリント機能の他にスキャン機能やコピー機能、ストレージ機能などを兼ね備えた多機能周辺機器（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である。ただし、これらに限定されるものでなく、別のデバイスであってもよい。なお、デバイス３１０は、上述したトリガ用デバイス３００の機能（構成）を具備した機器であってもよい。
【００４６】
なお、上述したデバイスサーバ２００、トリガ用デバイス３００、デバイス３１０は、それぞれ別体の装置、機器として説明したが、これに限定されるものではなく、デバイスサーバ２００をトリガ用デバイス３００又はデバイス３１０と一体構造としても良い。
【００４７】
＜７．デバイス制御システムの概略シーケンス＞
次に、上述したデバイス制御システムの動作シーケンスについて説明する。図３は、トリガ用デバイス３００における状態変化の検知を契機に、クライアントＰＣ１１０とデバイス３１０（３１０Ａ又は３１０Ｂ）との間でデータ送受信が実行されるまでの過程を示したシーケンス図である。
【００４８】
＜７−１．トリガ検知処理を開始するまでの動作＞
デバイスサーバａ２００Ａは、「デバイス」が接続されると、当該「デバイス」のデバイス個体情報を取得し、デバイス個体情報２０４としてデータ記憶部２０３に格納する（タイミングＴ３０１、Ｔ３０２）。
【００４９】
このとき、取得したデバイス個体情報にシリアル番号が格納されているか否かを判断し、シリアル番号が格納されていない場合は、デバイスサーバａ２００Ａの有する固有情報（例えば、ＭＡＣアドレスなど）及びトリガ用デバイス３００が接続されているポートの固有情報（例えば、ポート番号など）からシリアル番号に相当する固有情報を生成し、デバイス個体情報に追加することで、シリアル番号が格納されていない同一機種が複数接続された場合でも識別可能となる。
【００５０】
情報管理ＰＣ１００の制御プログラム１０１は、デバイスサーバａ２００Ａにローカル接続された「デバイス」を確認するために、通信制御部１０４を介して、デバイスサーバａ２００Ａに対して検索パケットを送信する。例えば、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などのプロトコルを用いて、デバイスサーバａ２００Ａに対する検索（問い合わせ）を行う。デバイスサーバａ２００Ａは、検索パケットを受信すると、データ記憶部２０３に格納しているデバイス個体情報２０４を情報管理ＰＣ１００に送信する。
【００５１】
情報管理ＰＣ１００の制御プログラム１０１は、デバイスサーバａ２００Ａからデバイス個体情報２０４を取得すると、デバイス個体情報２０４に含まれているベンダーＩＤ（ＶＩＤ）と製品ＩＤ（ＰＩＤ）、シリアル番号などにより「デバイス」の識別処理を行う。識別処理の結果、「デバイス」がトリガ用デバイス３００である場合、当該デバイス個体情報２０４に含まれている個体を識別するための情報に基づいて、デバイスドライバ１０２、仮想化制御部１０３などのソフトウェア部品を一意に特定し、順次、動的に生成して起動する（タイミングＴ３０３、Ｔ３０４）。これらのソフトウェア部品によって、トリガ用デバイス３００との間で仮想化制御が可能な状態となる。
【００５２】
また、情報管理ＰＣ１００の制御プログラム１０１は、データ記憶部１０５に格納している定義ファイル、トリガ検知アルゴリズムの中から、デバイス個体情報２０４に基づいて識別したトリガ用デバイス３００の機種に対応した定義ファイル１０６、トリガ検知アルゴリズム１０７を特定する。
【００５３】
そして、特定した定義ファイル１０６、トリガ検知アルゴリズム１０７を含んだインストール用パケットを生成し、通信制御部１０４によってデバイスサーバａ２００Ａとの間でセッションを開始させて、生成したインストール用パケットをデバイスサーバａ２００Ａに対して送信する（タイミングＴ３０５、Ｔ３０６）。
【００５４】
なお、応答がない（タイムアウト）、接続拒否など、何らかの理由でセッションを開始することができない場合、デバイスサーバａ２００Ａは、エラー処理（例えば、トリガ用デバイス３００に対してエラー通知する、自装置でアラーム報知するなど）を実行し、処理を終了させる。
【００５５】
デバイスサーバａ２００Ａは、インストール用パケットを受信すると、このパケットに含まれる定義ファイル１０６とトリガ検知アルゴリズム１０７をインストールし、それぞれ定義ファイル２０５とトリガ検知アルゴリズム２０６としてデータ記憶部２０３に格納する（タイミングＴ３０７）。情報管理ＰＣ１００の制御プログラム１０１は、インストール用パケットの送信後、通信制御部１０４によってデバイスサーバａ２００Ａとのセッションを切断させる（タイミングＴ３０８）。
【００５６】
なお、情報管理ＰＣ１００の制御プログラム１０１は、デバイス個体情報２０４による識別処理の結果、トリガ用デバイス３００以外の「デバイス」であると識別した場合、ソフトウェア部品の生成処理は実行しない。
【００５７】
＜７−２．トリガ検知処理＞
デバイスサーバａ２００Ａのデバイス制御部２０２は、データ記憶部２０３に格納した定義ファイル２０５とトリガ検知アルゴリズム２０６を用いて、トリガ用デバイス３００のトリガ検知処理（監視処理）を開始する。
【００５８】
デバイスサーバａ２００Ａのデバイス制御部２０２は、トリガ用デバイス３００の状態変化が生じる（例えば、「ユーザＩＤ」の入力（取得）操作が行われる）と、これをデバイスの状態変化として検知し、この検知を示すトリガ通知を、通信制御部２０１を介して情報管理ＰＣ１００に送信する（タイミングＴ３０９、Ｔ３１０）。
【００５９】
情報管理ＰＣ１００の制御プログラム１０１は、デバイスサーバａ２００Ａからトリガ通知を受信すると、通信制御部１０４によってデバイスサーバａ２００Ａとセッションを開始させて、デバイスサーバａ２００Ａを介してトリガ用デバイス３００から「ユーザＩＤ」を取得する（タイミングＴ３１１、Ｔ３１２）。そして、この「ユーザＩＤ」をもとに、データ記憶部１０５に格納しているユーザＩＤリスト１０８を検索し、該当する「ＩＤ情報」をデバイスサーバａ２００Ａへ送信する（タイミングＴ３１３）。なお、ユーザＩＤリスト１０８を検索しても、該当する「ＩＤ情報」が見つからない場合、デバイスサーバａ２００Ａに「該当なし」を示す情報を通知する。
【００６０】
デバイスサーバａ２００Ａは、情報管理ＰＣ１００からの「ＩＤ情報」を受信すると、これをＩＤ情報２０７としてデータ記憶部２０３に格納する（タイミングＴ３１４）。情報管理ＰＣ１００の制御プログラム１０１は、「ＩＤ情報」の送信後、通信制御部１０４によってデバイスサーバａ２００Ａとのセッションを切断させる（タイミングＴ３１５）。
【００６１】
なお、応答がない（タイムアウト）、接続拒否など、何らかの理由でセッションを開始することができない場合、デバイスサーバａ２００Ａは、エラー処理（例えば、トリガ用デバイス３００に対してエラー通知する、自装置からアラームを報知するなど）を実行し、処理を終了させる。
【００６２】
＜７−３．クライアントＰＣとデバイスのデータ送受信（１）＞
デバイスサーバａ２００Ａのデバイス制御部２０２では、取得した「ＩＤ情報」に基づいて「接続要求」を生成し、当該「接続要求」をＩＤ情報２０７に格納されている「ＰＣ情報」により識別したクライアントＰＣａ１１０Ａに対して送信する（タイミングＴ３１６）。
【００６３】
図４は、デバイスサーバａ２００Ａが、クライアントＰＣ１１０に対して送信する「接続要求」のパケットのデータ構造を例示したものである。ヘッダ部には、本システムのプロトコルであることを識別するための「署名データ」、当該パケットのデータサイズを示す「電文サイズ」、クライアントＰＣ１１０への接続要求であることを示す「コマンドＩＤ」が格納される。データ部には、ＩＤ情報２０７の「デバイス識別情報」に含まれている「機器情報」（「ベンダーＩＤ」、「製品ＩＤ」、「シリアル番号」）と「デバイスサーバ情報」が格納される。ここでは、デバイスａ３１０Ａの「機器情報」、デバイスａ３１０Ａが接続されているデバイスサーバａ２００Ａの「デバイスサーバ情報」が格納される。
【００６４】
クライアントＰＣａ１１０Ａの制御プログラム１１１は、デバイスサーバａ２００Ａから「接続要求」を受信すると、当該「接続要求」に格納されている「デバイス識別情報」によって、制御対象となるデバイス及びデバイスサーバを識別する。ここでは、「機器情報」としてデバイスａ３１０Ａ、「デバイスサーバ情報」としてデバイスサーバａ２００Ａの情報が格納されている。
【００６５】
そして、「機器情報」により識別されたデバイスａ３１０Ａの制御に必要となるソフトウェア部品（デバイスドライバ１１２、仮想化制御部１１３など）を生成する（タイミングＴ３１７）。このソフトウェア部品の生成・起動によって、デバイスａ３１０Ａに対する仮想化制御が可能になる。
【００６６】
続いて、クライアントＰＣａ１１０Ａは、「デバイスサーバ情報」により識別したデバイスサーバａ２００Ａに対して接続開始要求を送ってセッションを開始し、デバイスサーバａ２００Ａを介して、デバイスａ３１０ａとの間でデータ送受信（制御／処理）が実行される（タイミングＴ３１８、Ｔ３１９）。そして、クライアントＰＣａ１１０Ａの通信制御部１０４によって、データ送受信の完了が検知される（例えば、ユーザの終了操作の検知など）と、デバイスサーバａ２００Ａとのセッションが切断される（タイミングＴ３２０）。
【００６７】
なお、応答がない（タイムアウト）、接続拒否など、何らかの理由でセッションを開始することができない場合、デバイスサーバａ２００Ａは、エラー処理（例えば、トリガ用デバイス３００に対してエラー通知する、自装置でアラーム報知するなど）を実行し、処理を終了させる。
【００６８】
上述した通り、本発明のデバイス制御装置に該当するデバイスサーバ２００（２００Ａ）は、自装置に接続されたトリガ用デバイス３００に対するユーザＩＤの入力を契機にして、当該ユーザＩＤに関連付けられたネットワーク上の所望（任意）のクライアントＰＣ１１０と所望（任意）のデバイス３１０との間でデータ送受信を実行（開始）させることができる。
【００６９】
＜７−４．クライアントＰＣとデバイスのデータ送受信（２）＞
また、デバイスサーバａ２００Ａは、図１に示すクライアントＰＣｂ１１０Ｂとデバイスｂ３１０Ｂとの間でデータ送受信を実行させることも可能である。
【００７０】
この場合、上述した図３のタイミングＴ３１３において、デバイスサーバａ２００Ａが情報管理ＰＣ１００から取得するＩＤ情報２０７には、クライアントＰＣｂ１１０Ｂの「ＰＣ情報」、「デバイス識別情報」であるデバイスｂ３１０Ｂの「機器情報」、デバイスサーバｂ２００Ｂの「デバイスサーバ情報」が格納されている。
【００７１】
デバイスサーバａ２００Ａは、このＩＤ情報２０７に格納されている「ＰＣ情報」で識別したクライアントＰＣｂ１１０Ｂに対して、デバイスｂ３１０Ｂの「機器情報」及びデバイスサーバｂ２００Ｂの「デバイスサーバ情報」を格納した「接続要求」を送信する（タイミングＴ３２１）。
【００７２】
クライアントＰＣｂ１１０Ｂでは、受信した「接続要求」の「機器情報」により識別したデバイスｂ３１０Ｂのソフトウェア部品（デバイスドライバ１１２、仮想化制御部１１３など）を生成し、「デバイスサーバ情報」で識別したデバイスサーバｂ２００Ｂとの間でセッションを開始することにより、デバイスサーバｂ２００Ｂを介して、クライアントＰＣｂ１１０Ｂとデバイスｂ３１０ｂとの間でデータ送受信が行われる。データ送受信が完了すると、クライアントＰＣｂ１１０Ｂがセッションを切断する（タイミングＴ３２２〜Ｔ３２５）。
【００７３】
上述のように、本発明のデバイスサーバ２００（２００Ａ）は、自装置以外のデバイスサーバｂ２００Ｂに接続されているデバイスｂ３１０ＢとクライアントＰＣｂ１１０Ｂとの間でデータ送受信を実行（開始）させることも可能である。
【００７４】
また、１台のクライアントＰＣで複数のデバイスを制御させたり、複数のクライアントＰＣにそれぞれ別のデバイスを制御させることも可能である。
【００７５】
例えば、図２に示すＩＤ情報［２］は、クライアントＰＣａ１１０Ａ（１台）によって、それぞれ別のデバイスサーバ２００Ａ、２００Ｂに接続されているデバイスａ３１０Ａ、デバイスｂ３１０Ｂを制御させるため「ＩＤ情報」であり、１つの「ユーザＩＤ」に対して、クライアントＰＣａ１１０Ａの「ＰＣ情報」が関連付けられ、この「ＰＣ情報」に対して２つのデバイス３１０（３１０Ａ、３１０Ｂ）の「機器情報」が関連付けられ、さらに、それぞれの接続先となるデバイスサーバ２００（２００Ａ、２００Ｂ）の「デバイスサーバ情報」が関連付けられている。
【００７６】
また、図２に示すＩＤ情報［３］は、各クライアントＰＣがそれぞれ別のデバイスサーバに接続されているデバイスを制御する場合の「ＩＤ情報」の一例であり、１つの「ユーザＩＤ」に対して、２つのクライアントＰＣ１１０（１１０Ａ、１００Ｂ）の「ＰＣ情報」が関連付けられ、それぞれの「ＰＣ情報」に制御対象となるデバイス３１０（３１０Ａ、３１０Ｂ）の「機器情報」が関連付けられ、さらに、それぞれの接続先となるデバイスサーバ２００（２００Ａ、２００Ｂ）の「デバイスサーバ情報」が関連付けられている。
【００７７】
このように、「ユーザＩＤ」に関連付ける「ＰＣ情報」、「デバイス識別情報」を変えることにより、ネットワークに接続されているクライアントＰＣとデバイスの組み合わせを変えて、多種多様な処理／制御を実現させることができる。
【００７８】
例えば、「ユーザＩＤ」が異なるＩＣカードを使い分けることにより、目的に応じたクライアントＰＣとデバイスの組み合わせを指定して、所望の処理／制御を実行させることも可能となる。
【００７９】
また、「ＩＤ情報」に、複数の「ＰＣ情報」、「デバイス識別情報」を関連付けておくことで、クライアントＰＣやデバイスを選択したり、切り替えることも可能となる。
【００８０】
例えば、デバイスサーバ２００やデバイス３１０に「ＩＤ情報」で識別したクライアントＰＣやデバイスの情報（名称など）を表示させて、ユーザに切り替え対象を選択させる表示／選択機能を設ける。また、別の方法として、「ＩＤ情報」を登録する際に、最初にデータ送受信を開始させるクライアントＰＣ１１０とデバイス３１０を指定（設定）しておき、データ送受信が開始された後、デバイスサーバ２００やデバイス３１０からの指示（操作）によって、クライアントＰＣ１１０に選択／切り替えの要求を送り、この要求に従ってクライアントＰＣ１１０が選択／切り替えの制御を行うようにすることも可能である。
【００８１】
なお、所望のクライアントＰＣ１１０、デバイス３１０によってデータ送受信が実行できない場合に備えて、「ＩＤ情報」に、代替先となるクライアントＰＣ１１０、デバイス３１０の「ＰＣ情報」、「デバイス識別情報」を関連付けておき、エラー発生が検知されると、デバイスサーバ２００又はデバイス３１０からの指示（操作）、若しくは、自動的に代替先への選択／切り替えを実行させることも可能である。  
【００８２】
＜８．デバイス制御システムの適用例＞
図５は、情報管理ＰＣ１００、クライアントＰＣ１１０、デバイスサーバ２００、カードリーダ３００ａ、入力機器３１１、表示機器３１２、出力機器３１３から構成されている。これは、図１のデバイス制御システムのデバイスサーバａ２００Ａをデバイスサーバ２００、トリガ用デバイス３００をカードリーダ３００ａ、デバイスａ３１０Ａを３台のデバイス（入力機器３１１、表示機器３１２、出力機器３１３）に置き換えた構成である。図１とは異なり、情報管理ＰＣ１００及びクライアントＰＣ１１０がデバイスサーバ２００と同一のネットワーク５００には接続されておらず、ネットワーク５００を経由した外部ネットワーク６００（例えば、インターネットなど）に接続されている。
【００８３】
なお、外部ネットワーク６００に接続されている点を除き、各装置や機器の構成及びその機能、接続形態などについては、上述した図１における説明と同じであり、また、入力機器３１１はキーボードやマウス、表示機器３１２はディスプレイ、出力機器３１３はプリンタや複合機など汎用的（一般的）な機器（デバイス）であるため、これらの詳細な説明は省略する。
【００８４】
＜８−１．システムの概略シーケンス＞
次に、図５のデバイス制御システムのシーケンスについて、図３を参照しながら説明するが、重複する箇所については簡略化して説明する。なお、ここでは、クライアントＰＣ１１０が３台のデバイス（入力機器３１１、表示機器３１２、出力機器３１３）すべてとデータ送受信（接続）するものとして説明する。
【００８５】
＜８−２．トリガ検知処理＞
トリガ検知処理の実行開始までは、図３のタイミングＴ３０１〜Ｔ３０８と同じシーケンスであり、デバイスサーバ２００は、情報管理ＰＣ１００から取得した定義ファイル２０５、トリガ検知アルゴリズム２０６を用いて、カードリーダ３００ａのトリガ検知処理（監視処理）を実行する（タイミングＴ３０１〜Ｔ３０８）。
【００８６】
＜８−３．トリガ検知＞
ここで、カードリーダ３００ａにＩＤカードがかざされると、ユーザＩＤの読み取り処理が実行される。これをデバイスサーバ２００が状態変化として検知し、トリガ通知を情報管理ＰＣ１００へ送信する（タイミングＴ３０９、Ｔ３１０）。
【００８７】
情報管理ＰＣ１００は、トリガ通知を受信すると、デバイスサーバ２００とセッションを開始し、デバイスサーバ２００を介して、カードリーダ３００ａで読み取られた「ユーザＩＤ」を取得する。そして、この「ユーザＩＤ」をもとにユーザＩＤリスト１０８を検索し、該当する「ＩＤ情報」をデバイスサーバ２００へ送信し、その後、セッションを切断する。（タイミングＴ３１０〜Ｔ３１５）。なお、「ＩＤ情報」には、３台分のデバイス（入力機器３１１、表示機器３１２、出力機器３１３）の「デバイス識別情報」が関連付けられている。
【００８８】
なお、応答がない（タイムアウト）、接続拒否など、何らかの理由でセッションを開始することができない場合、デバイスサーバ２００は、エラー処理（例えば、トリガ用デバイス３００に対してエラー通知する、自装置でアラーム報知するなど）を実行し、処理を終了させる。
【００８９】
＜８−４．クライアントＰＣとデバイスのデータ送受信＞
デバイスサーバ２００では、「接続要求」を生成し、情報管理ＰＣ１００から受信したＩＤ情報２０７に含まれる「ＰＣ情報」により識別したクライアントＰＣ１１０に対して送信（発行）する（タイミングＴ３１６）。
【００９０】
クライアントＰＣ１１０は、受信した「接続要求」に含まれている「機器情報」により識別したデバイス３１０の仮想化制御に必要となるソフトウェア部品（デバイスドライバ１１２、仮想化制御部１１３など）を生成する（タイミングＴ３１７）。なお、「接続要求」には、３台分のデバイス（入力機器３１１、表示機器３１２、出力機器３１３）の「機器情報」が格納されているので、３つのソフトウェア部品（不図示）が生成される。
【００９１】
次に、クライアントＰＣ１１０は、「接続要求」に格納されている「デバイス識別情報」により識別したデバイスサーバ２００と外部ネットワーク６００及びネットワーク５００を経由してセッションを開始し、各ソフトウェア部品（不図示）によって、デバイスサーバ２００を介して３台のデバイス（入力機器３１１、表示機器３１２、出力機器３１３）との間でデータ送受信が可能となる（タイミングＴ３１９）。
【００９２】
ここで、例えば、入力機器３１１（キーボード又はマウスなど）を操作してクライアントＰＣ１１０内のアプリケーションプログラム（不図示）を使って所望の処理を実行させ、その実行結果を表示機器３１２（ディスプレイ）に表示させたり、出力機器３１３（プリンタ又は複合機など）に出力させる、というような処理／制御（データ送受信）が可能となる。そして、入力機器３１１（キーボード又はマウスなど）によって終了操作を行うと、クライアントＰＣ１１０がセッションを切断し、データ送受信が終了する（タイミングＴ３２０）。
【００９３】
本発明のデバイス制御システムでは、ネットワークに接続されている所望（任意）のクライアントＰＣとデバイスを組み合わせて利用することができるので、上述のような、外部ネットワーク６００（例えば、インターネットなど）を経由した構成も可能であり、柔軟にシステムを構築できる。
【００９４】
また、別の実施形態として、本発明のデバイス制御システムをテレビ会議システムに適用した場合、図５で説明したデバイスサーバ２００に接続するデバイスをカメラとマイクロフォン（入力機器３１１）、ディスプレイ（表示機器３１２）とし、デバイスサーバ２００、カードリーダ３００ａと併せて遠隔地の拠点にそれぞれ設置しておけば、各拠点のカードリーダ３００ａにＩＤカードをかざすだけで、デバイスサーバ２００に必要なデバイスすべてがマウントされ、拠点間でデータ通信可能な状態となるので、システムのセッティングを簡単に行うことができる。
【００９５】
さらに、本発明のデバイス制御システムをクラウド・コンピューティング（以下、クラウド）の技術を用いて構成することも可能である。クラウドとは、サービスやストレージなどのコンピュータリソースを組み合わせて、あるひとつのリソース（資源）を構成し、ユーザがこのリソース（資源）の所在を意識することなく、インターネットなどのネットワークを通じて利用できるという概念である。以下、ネットワークを介してアクセス可能なハードウェア／ソフトウェア資源の集合体を「クラウド」と定義して説明する。
【００９６】
「クラウド」を利用して本発明のデバイス制御システムを構成する場合は、図１で説明した情報管理ＰＣ１００に相当する機能（サービス）を「クラウド」内に導入（構築）しておく。また、デバイスサーバ２００、トリガ用デバイス３００、デバイス３１０、クライアントＰＣ１１０を「クラウド」と接続するためのネットワーク上に所望の形態で接続（配置）する。そして、「クラウド」内（の情報管理ＰＣ１００相当）に「ＩＤ情報」を登録することによって、実施例（図１）と同等のシステムを実現できる。「クラウド」を利用することによって、装置や機器をネットワーク上に任意に配置することが可能となるため、システムを柔軟に構成（変更・拡張）することができるようになる。
【００９７】
なお、本発明は、上述した実施の形態に限定されるものではなく、以下に説明する実施の形態も可能であり、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
【００９８】
＜複数のデバイスサーバによるユーザＩＤリストの保持＞
情報管理ＰＣ１００のデータ記憶部１０５に格納しているユーザＩＤリスト１０８を複数のデバイスサーバ２００が保持する構成も可能である。この場合、各デバイスサーバ２００が同一のユーザＩＤリストを保持する、若しくは、それぞれのデバイスサーバ２００が自装置に接続されているデバイス３１０に関係している「ＩＤ情報」のみをユーザＩＤリストとして保持する構成とし、情報管理ＰＣ１００は、「ユーザＩＤ」のみを管理（保持）するようにする。
【００９９】
そして、情報管理ＰＣ１００は、トリガ用デバイス３００から取得された「ユーザＩＤ」の照合のみを行い、その照合結果を該当するデバイスサーバ２００に返送する。デバイスサーバ２００は、情報管理ＰＣ１００における「ユーザＩＤ」の照合結果が正常であるとき、自装置が保持しているユーザＩＤリストを参照し、当該「ユーザＩＤ」に対応する「ＩＤ情報」に従って、クライアントＰＣ１１０とデバイス３１０との間のデータ送受信を実行させる。
【０１００】
＜定義ファイル／アルゴリズムの別の取得（インストール）方法＞
デバイスサーバ２００は、定義ファイルとトリガ検知アルゴリズムを情報管理ＰＣ１００からではなく、可搬型記憶媒体から取得するようにしてもよい。
【０１０１】
＜定義ファイル／アルゴリズムをすでに保持している場合＞
また、デバイスサーバ２００は、以前に同一機種のトリガ用デバイス３００が接続されたときに、該当する定義ファイルとトリガ検知アルゴリズムを取得、格納（インストール）している場合は、改めて取得・格納を行わなくてもよい。さらに、情報管理ＰＣ１００に対して、定義ファイルとトリガ検知アルゴリズムの送信が不要である旨を通知してもよい。
【０１０２】
＜トリガ通知先が複数の場合＞
また、複数台の情報管理ＰＣ１００を配置するシステム構成も可能である。この場合、デバイスサーバ２００は、複数の情報管理ＰＣ１００に対してトリガ通知を送信し、最初にセッションの接続開始要求を送信してきた情報管理ＰＣ１００に対して、トリガ用デバイス３００との接続（データ送受信）を許可すればよい。或いは、接続開始要求を送信した複数の情報管理ＰＣ１００のうち、任意の台数のみ、トリガ用デバイス３００との接続を許可するように制御してもよい。また、特定の１台の情報管理ＰＣ１００が、電源オフや故障などでトリガ通知の受信が不可能な場合には、別の情報管理ＰＣ１００を代替の宛先としてトリガ通知を送信するように制御してもよい。
【０１０３】
＜定義ファイルとトリガ検知アルゴリズムについて＞
図１の情報管理ＰＣ１００には、トリガ用デバイス３００に対応した定義ファイル１０６とトリガ検知アルゴリズム１０７が両方ともに格納されており、デバイスサーバ２００が情報管理ＰＣ１００から定義ファイル１０６とトリガ検知アルゴリズム１０７を受信する方法（構成）を説明したが、下記のような方法（構成）も可能である。
【０１０４】
（１）デバイスサーバ２００に予め必要なトリガ検知アルゴリズム１０７を格納させておき、情報管理ＰＣ１００には、定義ファイル１０６のみを格納させる。この場合、デバイスサーバ２００は、情報管理ＰＣ１００から、機器情報によって特定されるトリガ用デバイス３００の機種に対応した定義ファイル１０６のみを受信することになる。
【０１０５】
例えば、ソフトウェア・ハードウェアの仕様・設計に依拠する場合やシステムの運用・管理上の理由などから、デバイスサーバ２００へのアクセスが制限されており、トリガ検知アルゴリズム（プログラムコード）を受信して実行（又はインストール）できない場合に適用できる構成である。本構成は、トリガ検知アルゴリズム（プログラムコード）がデバイスサーバに予め格納されているため、改竄が困難であるというメリットがある。
【０１０６】
（２）デバイスサーバ２００は、特定したトリガ用デバイス３００の機種に対応するトリガ検知アルゴリズムや定義ファイルを保持していない場合にのみ、情報管理ＰＣ１００などから必要なトリガ検知アルゴリズムや定義ファイルを取得するようにしてもよい。
【０１０７】
さらに、デバイスサーバ２００若しくは情報管理ＰＣ１００でトリガ検知アルゴリズムや定義ファイルを管理して、これらの追加・更新などが必要か否かを判断させるようにしてもよい。このような構成とすることで、デバイスサーバ２００は、追加・更新などの必要性が生じたときだけ、トリガ検知アルゴリズムや定義ファイルの全部又は一部を取得できるようになる。
【０１０８】
また、上述した実施例のように、デバイスサーバ２００が情報管理ＰＣ１００からトリガ検知アルゴリズムや定義ファイルを受信するのではなく、デバイスサーバ２００が情報管理ＰＣ１００にアクセスしてダウンロード（取得）するように構成してもよい。この場合、情報管理ＰＣ１００は、該当するトリガ検知アルゴリズムや定義ファイルを保持していることだけをデバイスサーバ２００に通知すればよい。
【０１０９】
上述したトリガ検知アルゴリズム１つに対して複数の定義ファイルを対応付けることで、複数のトリガ用デバイス３００を連携させて制御することも可能である。例えば、デバイスＡとデバイスＢを連携させて制御する場合、両方のデバイスからのトリガ通知を受信した後、デバイスＡの動作を開始させる、というような制御を行うことができる。
【０１１０】
なお、本発明は、デバイスサーバ２００に対して機種の異なる複数のトリガ用デバイス３００が接続される場合にも適用可能である。この場合、デバイスサーバ２００には、各デバイスに応じた定義ファイルとトリガ検知アルゴリズムが機種ごとに格納される（複数組が格納される）。そして、各デバイスに適ったトリガ検知アルゴリズムと定義ファイルの組み合わせに基づきトリガ検知処理が実行され、それぞれのトリガ用デバイス３００ごとの状態変化を検知することができる。
【０１１１】
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによっても達成することができる。
【０１１２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【０１１３】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現されるように構成しても良い。
【０１１４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【０１１５】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標)ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。又は、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【０１１６】
１００：情報管理ＰＣ
１０１：制御プログラム
１０２：デバイスドライバ
１０３：仮想化制御部
１０４：通信制御部
１０５：データ記憶部
１０６：定義ファイル
１０７：トリガ検知アルゴリズム
１０８：ユーザＩＤリスト
１１０（１１０Ａ，１１０Ｂ）：クライアントＰＣ
１１１：制御プログラム
１１２：デバイスドライバ
１１３：仮想化制御部
１１４：通信制御部
２００（２００Ａ，２００Ｂ）：デバイスサーバ
２０１：通信制御部
２０２：デバイス制御部
２０３：データ記憶部
２０４：デバイス個体情報
２０５：定義ファイル
２０６：トリガ検知アルゴリズム 
２０７：ＩＤ情報
３００：トリガ用デバイス／３００ａ：カードリーダ
３１０Ａ，３１０Ｂ：デバイス
３１１：入力機器
３１２：表示機器
３１３：出力機器
４００：接続ケーブル
５００：ネットワーク
６００：外部ネットワーク
【図１】
0005901810.tif 000002
【図２】
0005901810.tif 000003
【図３】
0005901810.tif 000004
【図４】
0005901810.tif 000005
【図５】
0005901810.tif 000006