説明

コマンド実行方法及びミドルデバイス

【課題】 端末にデバイスのドライバがインストールされていなくても、当該デバイスにコマンドを実行させることができること。
【解決手段】 端末が、デバイスのデバイス識別子及びデバイスへのコマンドをデバイス管理システムに送信し、デバイス管理システムが、端末から受信したデバイス識別子と受信したコマンドとを関連付けてデバイス管理システムの記憶手段に記憶し、デバイスが、デバイスのデバイス識別子とデバイスへのコマンドとが関連付けてデバイス管理システムの記憶手段に記憶されている場合に、コマンドをデバイス管理システムに要求して取得して実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コマンド実行方法に係り、特に、端末にデバイスのドライバをインストールしていなくても、当該デバイスにコマンドを実行させることができる方法等に関する。
【背景技術】
【0002】
従来、ファイルを印刷して別のユーザに提供する方法として、ファイルを開いたPC(Personal Computer)がドライバを持つ通信ネットワーク上のプリンタを指定して印刷し、それを手渡しする、という方法があった。また、ファイルを通信ネットワーク経由で相手のPCがアクセスできるところに置き、それを相手のPCで開いてもらい、そのPCがドライバを持つプリンタで印刷する、という方法もあった。
【0003】
しかしながら、PC等の端末にドライバがインストールされていなければ、プリンタ等のデバイスにコマンドを実行させることができなかった。また、デバイスを抽象的に指定する方法がなかった。
【0004】
これらに関して記述された先行技術文献を出願人は知らない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、かかる従来例の有する不都合を改善し、特に、端末にデバイスのドライバがインストールされていなくても、当該デバイスにコマンドを実行させることができることを課題とする。また、デバイスを抽象的に指定する方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明では次のような構成を採っている。
【0007】
第一の発明は、コマンドを送信する端末と、前記コマンドを管理するデバイス管理システムと、前記コマンドを実行するデバイスとを備えたコンピュータシステムにおいて用いられるコマンド実行方法である。前記端末が、前記デバイスのデバイス識別子及び当該デバイスへのコマンドを前記デバイス管理システムに送信するステップを実行する。そして、前記デバイス管理システムが、前記デバイス識別子及び前記デバイスへのコマンドを前記端末から受信するステップと、当該受信したデバイス識別子と当該受信したコマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶するステップと、を実行する。また、前記デバイスが、当該デバイスのデバイス識別子と当該デバイスへのコマンドとが関連付けて前記デバイス管理システムの記憶手段に記憶されている場合に、当該コマンドを前記デバイス管理システムに要求して取得するステップと、当該取得したコマンドを実行するステップと、を実行する。ここで、デバイス識別子とは、デバイスを識別する識別子であって、例えば、デバイス名、IPアドレス(Internet Protocol Address)、MACアドレス(Media Access Control address)等が該当する。また、コマンドとは、デバイスに対する命令であって、例えば、当該デバイスに出力する命令、当該デバイスの主電源をON又はOFFにする命令等が該当する。
【0008】
第二の発明は、コマンドを送信する端末と、前記コマンドを管理するデバイス管理システムと、デバイスを接続したミドルデバイスと、を備えたコンピュータシステムにおいて用いられるコマンド実行方法である。前記端末が、前記デバイスのデバイス識別子及び当該デバイスへのコマンドを前記デバイス管理システムに送信するステップを実行する。そして、前記デバイス管理システムが、前記デバイスのデバイス識別子及び当該デバイスへのコマンドを前記端末から受信するステップと、当該受信したデバイスのデバイス識別子と当該受信したコマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶するステップと、を実行する。また、前記ミドルデバイスが、当該ミドルデバイスに接続されたデバイスから当該デバイスのデバイス識別子を取得するステップと、当該ミドルデバイスのデバイス識別子及び当該取得したデバイスのデバイス識別子をデバイス管理システムに送信するステップと、を実行する。そして、デバイス管理システムが、前記ミドルデバイスのデバイス識別子及び前記デバイスのデバイス識別子を受信するステップと、当該受信したミドルデバイスのデバイス識別子と、当該受信したデバイスのデバイス識別子とを関連付けてデバイス管理システムの記憶手段に記憶するステップと、実行する。また、前記ミドルデバイスが、当該ミドルデバイスのデバイス識別子とデバイスのデバイス識別子とが関連付けてデバイス管理システムの記憶手段に記憶されており、かつ、当該デバイスのデバイス識別子とコマンドとが関連付けてデバイス管理システムの記憶手段に記憶されている場合に、当該コマンド及び当該デバイスのデバイス識別子を前記デバイス管理システムに要求して取得するステップと、当該取得したコマンドを当該取得したデバイス識別子に対応するデバイスに送信するステップと、を実行する。そして、前記デバイスが、前記コマンドを受信するステップと、当該受信したコマンドを実行するステップと、を実行する。
【0009】
第三の発明は、デバイスを接続するためのミドルデバイスであって、前記ミドルデバイスのデバイス識別子が記憶された記憶手段と、外部のデバイス管理システムと通信する通信手段と、当該ミドルデバイスのデバイス識別子とデバイスのデバイス識別子とが関連付けてデバイス管理システムの記憶手段に記憶されており、かつ、当該デバイスのデバイス識別子とコマンドとが関連付けてデバイス管理システムの記憶手段に記憶されている場合に、当該コマンド及び当該デバイスのデバイス識別子を前記デバイス管理システムに要求して取得する処理手段と、前記取得したコマンドを前記取得したデバイス識別子に対応するデバイスに送信する接続手段と、を備えている。
【0010】
第四の発明は、コマンドを送信する端末と、前記コマンドを管理するデバイス管理システムと、前記コマンドを実行するデバイスとを備えたコンピュータシステムにおいて用いられるコマンド実行方法である。前記端末が、前記デバイスのエイリアス及び当該デバイスへのコマンドを前記デバイス管理システムに送信するステップを実行する。そして、前記デバイス管理システムが、前記デバイスのエイリアス及び当該デバイスへのコマンドを前記端末から受信するステップと、当該受信したエイリアスに関連付けられたデバイス識別子を前記デバイス管理システムの記憶手段から読み出すステップと、当該読み出したデバイス識別子と前記受信したコマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶するステップと、を実行する。また、前記デバイスが、当該デバイスのデバイス識別子と当該デバイスへのコマンドとが関連付けて前記デバイス管理システムの記憶手段に記憶されている場合に、当該コマンドを前記デバイス管理システムに要求して取得するステップと、当該取得したコマンドを実行するステップと、を実行する。ここで、エイリアスとは、デバイスの別名であって、デバイス識別子と異なるものをいう。
【0011】
第五の発明は、前記端末の利用者がデバイス識別子に対応するデバイスにコマンドを実行させる権限を有する場合にのみ、当該デバイス識別子と当該コマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶することが許可されること特徴とした第一の発明、第二の発明又は第四の発明に対応するコマンド実行方法である。
【発明の効果】
【0012】
本願発明によれば、デバイスが端末と直接通信することなく実行するコマンドをデバイス管理システムに要求して取得するので、端末にデバイスのドライバがインストールされていなくても、デバイスにコマンドを実行させることができる。また、デバイス管理システムがデバイスのエイリアスに関連付けられたデバイス識別子を特定するので、デバイスを抽象的に指定することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照しながら、本発明の実施形態について説明する。
(実施形態1)
【0014】
図1は、本実施形態のコンピュータシステムの全体構成を示すブロック図である。コマンドを送信する端末10と、コマンドを管理するデバイス管理システム20と、コマンドを実行するデバイス30とが、通信ネットワークに接続されている。ここで、端末10、デバイス管理システム20、及びデバイス30と、通信ネットワーク40との接続は有線であるか無線であるかを問わない。また、通信ネットワーク40としては、例えば、インターネット、WAN、LAN等が該当する。端末10とデバイス管理システム20との間の通信及びデバイス管理システム20とデバイス30との間の通信はHTTP(HyperText Transfer Protocol)に基づいて行われるようになっている。また、図1では、端末及びデバイスはそれぞれ1つだけ図示しているが、複数あってもよい。
【0015】
図2は、端末10の構成図である。当該端末10はコンピュータであって、処理手段としてのCPUと、記憶手段としてのメモリ及びHDD(Hard Disk Drive)と、入力手段としてのキーボード及びマウスと、表示手段としてのディスプレイと、通信手段としてのNIC(Network Interface Card)と、を備えている。端末10としては、例えば、PC、インターネット接続機能を有する携帯電話等が該当する。
【0016】
図3は、デバイス管理システム20の構成図である。当該デバイス管理システム20はコンピュータであって、処理手段としてのCPUと、記憶手段としてのメモリ及びHDDと、通信手段としてのNICを備えている。ここで、HDDには、コマンド情報ファイル、ドライバ情報ファイル等が記憶されている。デバイス管理システム20としては、例えば、一般的なウェブサーバ、PCなどが該当する。
【0017】
図4は、コマンド情報ファイルの構造図である。当該コマンド情報ファイルには、デバイス識別子と、当該デバイス識別子に対応するデバイスへのコマンドとが関連付けて記憶されるようになっている。詳細については後述する。
【0018】
図5は、ドライバ情報ファイルの構造図である。当該ドライバ情報ファイルには、デバイス識別子と、当該デバイス識別子に対応するデバイスにコマンドを実行させるために必要なドライバのドライバ識別子とが関連付けて予め記憶されている。
【0019】
図6は、デバイス30の構成図である。当該デバイス30は、処理手段としてのCPUと、記憶手段としてのメモリと、通信手段としてのNIC又は通信回路を備えている。デバイスとしては、例えば、PC、プリンタ等が該当する。
【0020】
次に、本実施形態のコンピュータシステムの動作について説明する。
【0021】
端末10のCPUは、キーボードからデバイス30のデバイス識別子及び当該デバイスへのコマンドを受付ける(S10)。続いて、端末10のCPUは、受付けたデバイス30のデバイス識別子及び当該デバイス30へのコマンドをHTTPのPOSTリクエストの引数としてデバイス管理システム20に送信する(S15)。ここで、デバイス30がプリンタ等の出力装置の場合には、デバイス30へのコマンドに出力データが含まれる。
【0022】
デバイス管理システム20のCPUは、デバイス30のデバイス識別子及び当該デバイス30へのコマンドを端末10から受信する(S20)。続いて、デバイス管理システム20のCPUは、当該受信したデバイス識別子と、当該受信したデバイス30へのコマンドとを関連付けてコマンド情報ファイルに記憶する(S25)。そして、デバイス管理システム20のCPUは、デバイス識別子とデバイス30へのコマンドとを関連付けて記憶した旨の通知をレスポンスとしてリクエストのあった端末10へ送信する(S30)。
【0023】
一方、デバイスのCPUは、デバイス30のメモリに予め記憶された当該デバイス30のデバイス識別子を読み出す(S40)。例えば、デバイス識別子がMACアドレスの場合には、デバイス30のNICに割り当てられたMACアドレスをデバイスのメモリに予め記憶しておき、それを読み出すようにすればよい。続いて、デバイス30のCPUは、当該デバイス30のデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されているか否かを定期的にデバイス管理システム20に一定時間ごとに問い合わせ(ポーリング)を開始する(S45)。このとき、デバイス30のCPUは、当該デバイスのデバイス識別子をHTTPのGETリクエストの引数としてデバイス管理システム20に送信する(S50)。
【0024】
デバイス管理システム20のCPUは、上記問い合わせに係るデバイス30のデバイス識別子を端末10から受信する(S55)。続いて、デバイス管理システム20のCPUは、当該受信したデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されている場合に、その旨の通知をレスポンスとしてリクエストのあったデバイス30へ送信する(S60)。
【0025】
デバイス30のCPUは、当該デバイス30のデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されている旨の通知をデバイス管理システム20から受信する(S65)。続いて、デバイス30のCPUは、当該通知を受信した場合に、当該デバイス30のデバイス識別子に関連付けられたコマンドの取得要求と当該デバイス30のデバイス識別子とをGETリクエストの引数としてデバイス管理システム20に送信する(S70)。
【0026】
デバイス管理システム20のCPUは、デバイス識別子に関連付けられたコマンドの取得要求と当該デバイス30のデバイス識別子とをデバイス30から受信する(S75)。続いて、デバイス管理システム20のCPUは、当該受信した取得要求に基づいて、当該受信したデバイス識別子に関連付けられたドライバ識別子をドライバ情報ファイルから読み出す(S80)。デバイス管理システム20のCPUは、上記読み出したドライバ識別子に対応するドライバをデバイス管理システム20のHDDから読み出して実行する(S85)。ここで、ドライバ識別子に対応するドライバがデバイス管理システム20のHDDに記憶されていない場合には、デバイス管理システム20のCPUは、当該ドライバを提供する所定の外部サーバから取得するようにしてもよい。続いて、デバイス管理システム20のCPUは、当該実行したドライバにより制御を行う旨の通知をレスポンスとしてリクエストのあったデバイス30に送信する(S90)。
【0027】
デバイス30のCPUは、ドライバにより制御を行う旨の通知をデバイス管理システム20から受信する(S95)。続いて、デバイス30のCPUは、ドライバにより制御されるためのプログラムを実行する(S100)。そして、デバイス30のCPUは、ドライバにより制御された旨の通知と当該デバイス30のデバイス識別子とをGETリクエストの引数としてデバイス管理システム20に送信する(S105)。
【0028】
デバイス管理システム20のCPUは、ドライバにより制御された旨の通知と当該デバイス30のデバイス識別子とをデバイス30から受信する(S110)。続いて、デバイス管理システム20のCPUは、当該受信したデバイス識別子に関連付けられたコマンドをコマンド情報ファイルから読み出す(S115)。そして、デバイス管理システム20のCPUは、当該読み出したコマンドをデバイス30が解釈できるコマンドに変換する(S120)。ここで、デバイスがプリンタ等の出力装置の場合には、コマンドに含まれる出力データについても当該デバイス30で出力することができるデータに変換される。なお、コマンド等の変換は、デバイス管理システムのOS(Operating System)のプロセスがコマンドに対して一次加工を行い、当該一次加工されたものをデバイスのドライバが二次加工を行っている(以下、同じ)。続いて、デバイス管理システム20のCPUは、当該変換したコマンドをレスポンスとしてリクエストのあったデバイス30に送信する(S125)。
【0029】
デバイス30のCPUは、当該デバイス30が解釈できるコマンドをデバイス管理システム20から受信する(S130)。続いて、デバイス30のCPUは、当該受信したコマンドを実行する(S135)。そして、デバイス30のCPUは、当該コマンドを実行した後、実行が完了した旨の通知と当該デバイス30のデバイス識別子とをGETリクエストの引数としてデバイス管理システム20に送信する(S140)。
【0030】
デバイス管理システム20のCPUは、コマンドの実行が完了した旨の通知と当該デバイス30のデバイス識別子とをデバイス30から受信する(S145)。続いて、デバイス管理システム20のCPUは、当該受信したデバイス識別子と当該デバイス識別子に関連付けられたコマンドとの組み合わせをコマンド情報ファイルから削除する(S150)。そして、デバイス管理システム20のCPUは、デバイス識別子と、当該デバイス識別子に関連付けられたコマンドとの組み合わせを削除した旨の通知をレスポンスとしてリクエストのあったデバイス30へ送信する(S155)。
【0031】
デバイス30のCPUは、デバイス識別子と、当該デバイス識別子に関連付けられたコマンドとの組み合わせを削除した旨の通知をデバイス管理システム20から受信する(S160)。
【0032】
本実施形態によると、端末10にデバイス30のドライバをインストールしていなくても、当該デバイスにコマンドを実行させることができる。また、端末10の利用者以外の所有するデバイスにも自由に出力することができる。
(実施形態2)
【0033】
図7は、本実施形態のコンピュータシステムの全体構成を示すブロック図である。コマンドを送信する端末10と、コマンドを管理するデバイス管理システム20と、デバイスを接続するミドルデバイスとが通信ネットワークに接続されている。ここで、ミドルデバイスには、さらに、USB等のインターフェースを通じてPC、プリンタ、電源タップ等のデバイスが接続されるようになっている。ミドルデバイスの詳細については後述する。また、端末10、デバイス管理システム20、及びミドルデバイスと、通信ネットワークとの接続は有線であるか無線であるかを問わない。通信ネットワークとしては、例えば、インターネット、WAN、LAN等が該当する。さらに、端末10とデバイス管理システム20との間の通信及びデバイス管理システム20とミドルデバイスとの間の通信はHTTPに基づいて行われるようになっている。また、図7では、端末、ミドルデバイスはそれぞれ1つだけ図示しているが、複数あってもよい。
【0034】
図8は、ミドルデバイスの構成図である。当該ミドルデバイスは、処理手段としてのCPUと、記憶手段としてのメモリと、通信手段としてのNICと、接続手段としてのデバイスとのインターフェースと、を備えている。また、ミドルデバイスのメモリには、第二のドライバ情報ファイルが記憶されている。ドライバ情報ファイルの構造については、実施形態1のドライバ情報ファイルの構造と同様であるので説明を省略する。デバイスとのインターフェースとしては、例えば、PC、プリンタ等と接続する場合の、USB、SCSI等や、電源タップと接続する特殊なインターフェース(電源タップのプラグごとに備えているスイッチの制御情報をやりとりするための電源管理用配線と接続するためのインターフェース)が該当する。ここで、当該電源タップは、複数のプラグを備え、それぞれが当該プラグに対応するスイッチを備えている。
【0035】
一方、端末10及びデバイス管理システム20の構成は、実施形態1と同様なので説明を省略する。
【0036】
次に、本実施形態のコンピュータシステムの動作について説明する。
【0037】
端末10のCPUは、キーボードからミドルデバイスのデバイス識別子及び当該ミドルデバイスへのコマンド並びに当該ミドルデバイスに接続されたデバイスのデバイス識別子を受付ける。続いて、端末10のCPUは、受付けたミドルデバイスのデバイス識別子及び当該ミドルデバイスへのコマンド並びに当該ミドルデバイスに接続されたデバイスのデバイス識別子をHTTPのPOSTリクエストの引数としてデバイス管理システム20に送信する。ここで、ミドルデバイスにプリンタ等の出力装置が接続されている場合には、ミドルデバイスへのコマンドに出力データが含まれる。
【0038】
デバイス管理システム20のCPUは、ミドルデバイスのデバイス識別子及び当該ミドルデバイスへのコマンド並びに当該ミドルデバイスに接続されたデバイスのデバイス識別子を端末10から受信する。続いて、デバイス管理システム20のCPUは、当該受信したミドルデバイスのデバイス識別子と、当該受信したミドルデバイスへのコマンドとを関連付けてコマンド情報ファイルに記憶する。また、デバイス管理システム20のCPUは、当該受信したミドルデバイスのデバイス識別子と、デバイスのデバイス識別子とを関連付けてコマンド情報ファイルに記憶する。そして、デバイス管理システム20のCPUは、ミドルデバイスのデバイス識別子とミドルデバイスへのコマンドとを関連付けて記憶し、ミドルデバイスのデバイス識別子とデバイスのデバイス識別子とを関連付けて記憶した旨の通知をレスポンスとしてリクエストのあった端末10へ送信する。
【0039】
一方、ミドルデバイスのCPUは、ミドルデバイスのメモリに予め記憶された当該ミドルデバイスのデバイス識別子を読み出す。例えば、デバイス識別子がMACアドレスの場合には、デバイスのNICに割り当てられたMACアドレスをミドルデバイスのメモリに予め記憶しておき、それを読み出すようにすればよい。続いて、ミドルデバイスのCPUは、当該ミドルデバイスのデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されているか否かを定期的にデバイス管理システム20に一定時間ごとに問い合わせ(ポーリング)を開始する。このとき、ミドルデバイスのCPUは、当該ミドルデバイスのデバイス識別子をHTTPのGETリクエストの引数としてデバイス管理システム20に送信する。
【0040】
デバイス管理システム20のCPUは、上記問い合わせに係るミドルデバイスのデバイス識別子を端末10から受信する。続いて、デバイス管理システム20のCPUは、当該受信したデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されている場合に、その旨の通知をレスポンスとしてリクエストのあったミドルデバイスへ送信する。
【0041】
ミドルデバイスのCPUは、当該ミドルデバイスのデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されている旨の通知をデバイス管理システム20から受信する。続いて、ミドルデバイスのCPUは、当該通知を受信した場合に、当該ミドルデバイスのデバイス識別子に関連付けられたコマンドの取得要求と当該ミドルデバイスのデバイス識別子とをGETリクエストの引数としてデバイス管理システム20に送信する。
【0042】
デバイス管理システム20のCPUは、デバイス識別子に関連付けられたコマンドの取得要求と当該ミドルデバイスのデバイス識別子とをミドルデバイスから受信する。続いて、デバイス管理システム20のCPUは、当該受信した取得要求に基づいて、当該受信したミドルデバイスのデバイス識別子に関連付けられたドライバ識別子をデバイス管理システム20のドライバ情報ファイル(以下、第一のドライバ情報ファイルという。)から読み出す。デバイス管理システム20のCPUは、上記読み出したドライバ識別子に対応するドライバをデバイス管理システム20のHDDから読み出して実行する。ここで、ドライバ識別子に対応するドライバがデバイス管理システム20のHDDに記憶されていない場合には、デバイス管理システム20のCPUは、当該ドライバを提供する所定の外部サーバから取得するようにしてもよい。続いて、デバイス管理システム20のCPUは、当該実行したドライバにより制御を行う旨の通知をレスポンスとしてリクエストのあったミドルデバイスに送信する。
【0043】
ミドルデバイスのCPUは、ドライバにより制御を行う旨の通知をデバイス管理システム20から受信する。続いて、ミドルデバイスのCPUは、ドライバにより制御されるためのプログラムを実行する。そして、ミドルデバイスのCPUは、ドライバにより制御された旨の通知と当該ミドルデバイスのデバイス識別子とをGETリクエストの引数としてデバイス管理システム20に送信する。
【0044】
デバイス管理システム20のCPUは、ドライバにより制御された旨の通知と当該ミドルデバイスのデバイス識別子とをミドルデバイスから受信する。続いて、デバイス管理システム20のCPUは、当該受信したデバイス識別子に関連付けられたコマンドをコマンド情報ファイルから読み出す。そして、デバイス管理システム20のCPUは、当該読み出したコマンドをミドルデバイスが解釈できるコマンドに変換する。また、デバイス管理システム20のCPUは、上記受信したデバイス識別子に関連付けられたデバイスのデバイス識別子をコマンド情報ファイルから読み出す。続いて、デバイス管理システム20のCPUは、上記変換したコマンド及び上記読み出したデバイスのデバイス識別子をレスポンスとしてリクエストのあったミドルデバイスに送信する。
【0045】
ミドルデバイスのCPUは、当該ミドルデバイスが解釈できるコマンド及びデバイスのデバイス識別子をデバイス管理システム20から受信する。続いて、ミドルデバイスのCPUは、当該受信したデバイスのデバイス識別子に関連付けられたドライバ識別子を第二のドライバ情報ファイルから読み出す。そして、ミドルデバイスのCPUは、上記読み出したドライバ識別子に対応するドライバをミドルデバイスのメモリから読み出して実行する。ここで、ドライバ識別子に対応するドライバがミドルデバイスのメモリに記憶されていない場合には、ミドルデバイスのCPUは、当該ドライバを提供する外部サーバから取得するようにしてもよい。続いて、ミドルデバイスのCPUは、上記受信したミドルデバイスが解釈できるコマンドをデバイスが解釈できるコマンドに変換する。ここで、デバイスがプリンタ等の出力装置の場合には、ミドルデバイスが解釈できるコマンドに含まれる出力データについても当該デバイスで出力することができるデータに変換される。そして、ミドルデバイスのCPUは、当該変換したコマンドを上記受信したデバイス識別子に対応するデバイスへ送信する。
【0046】
デバイスのCPUは、当該デバイスが解釈することができるコマンドをミドルデバイスから受信する。続いて、デバイスのCPUは、当該受信したコマンドを実行する。そして、デバイスのCPUは、当該コマンドを実行した後、実行が完了した旨の通知をミドルデバイスに送信する。例えば、デバイスが電源タップであって、コマンドが「n番目のプラグに対応するスイッチをONにする」という内容である場合には、電源タップは、電源管理用配線により当該コマンドに基づいて、n番目のプラグに対応するスイッチをONにし、当該スイッチをONにした旨の通知を行う。
【0047】
ミドルデバイスのCPUは、コマンドの実行が完了した旨の通知をデバイスから受信する。続いて、ミドルデバイスのCPUは、コマンドの実行が完了した旨の通知と当該ミドルデバイスのデバイス識別子とをGETリクエストの引数としてデバイス管理システム20に送信する。
【0048】
デバイス管理システム20のCPUは、コマンドの実行が完了した旨の通知と当該ミドルデバイスのデバイス識別子とをミドルデバイスから受信する。続いて、デバイス管理システム20のCPUは、当該受信したミドルデバイスのデバイス識別子と当該ミドルデバイスのデバイス識別子に関連付けられたコマンドとの組み合わせをコマンド情報ファイルから削除する。また、デバイス管理システム20のCPUは、当該受信したミドルデバイスのデバイス識別子と当該ミドルデバイスのデバイス識別子に関連付けられたデバイスのデバイス識別子との組み合わせを削除する。そして、デバイス管理システム20のCPUは、ミドルデバイスのデバイス識別子と当該ミドルデバイスのデバイス識別子に関連付けられたコマンドとの組み合わせを削除し、ミドルデバイスのデバイス識別子とデバイスのデバイス識別子との組み合わせを削除した旨の通知をレスポンスとしてリクエストのあったミドルデバイスへ送信する。
【0049】
ミドルデバイスのCPUは、ミドルデバイスのデバイス識別子と当該ミドルデバイスのデバイス識別子に関連付けられたコマンドとの組み合わせを削除し、ミドルデバイスのデバイス識別子と当該ミドルデバイスのデバイス識別子に関連付けられたデバイスのデバイス識別子との組み合わせを削除した旨の通知をデバイス管理システム20から受信する。
【0050】
本実施形態によると、デバイスがデバイス管理システム20との通信手段を持たなくても、デバイスごとの差異が抽象化され、吸収されるので、ミドルデバイスを介して間接的に当該デバイスの動作を制御することができる。そのため、デバイスごとにデバイス管理システム20側にプロトコルの変更などの特別な対応は不要となる。また、ミドルデバイスにPCを接続した場合には、端末10で作成したファイルを、別のフォーマットのファイルに変換して当該ミドルデバイスに接続されたPCに保存することができる。ここで、PCは、あらかじめ所定のコマンドに関連付けられた所定のファイル作成ソフトを実行して、端末10で作成したファイルを別のフォーマットのファイルに変換している。
(実施形態2の変形例)
【0051】
本実施形態は、実施形態2の変形例であるので、コンピュータシステムの動作において実施形態2と異なる動作について主に説明する。
【0052】
ミドルデバイスのCPUは、デバイスが接続された場合に、当該デバイスのデバイス識別子とそのデバイスタイプをデバイスに問い合わせる(S200)。ここで、デバイスタイプとは、デバイスを駆動するドライバを識別する識別子である。また、デバイスのデバイス識別子は、当該デバイスのメモリ等の記憶手段に記憶されているものとする。
【0053】
デバイスのCPUは、ミドルデバイスからの問い合わせに対して、当該デバイスのデバイス識別子とそのデバイスタイプをミドルデバイスに送信する(S205)。
【0054】
ミドルデバイスのCPUは、デバイスのデバイス識別子とそのデバイスタイプをデバイスから受信する(S210)。続いて、ミドルデバイスのCPUは、当該ミドルデバイスのデバイス識別子と、当該受信したデバイスのデバイス識別子とをデバイス管理システムに送信する(S215)。ここで、ミドルデバイスのデバイス識別子は、当該ミドルデバイスのメモリ等の記憶手段に記憶されているものとする。また、ミドルデバイスのCPUは、上記受信したデバイス識別子とそのデバイスタイプとを関連付けて当該ミドルデバイスのメモリ等の記憶手段に記憶する(S220)。
【0055】
デバイス管理システムのCPUは、ミドルデバイスのデバイス識別子と、デバイスのデバイス識別子をミドルデバイスから受信する(S225)。続いて、デバイス管理システムのCPUは、当該受信したデバイスのデバイス識別子とミドルデバイスのデバイス識別子を関連付けてメモリ等の記憶手段に記憶する(S230)。
【0056】
一方、端末のCPUは、操作対象となるデバイスのデバイス識別子と、当該デバイスへのコマンドを、デバイス管理システムに送信する(S235)。
【0057】
デバイス管理システムのCPUは、デバイス識別子とコマンドとを受信する。続いて、デバイス管理システムのCPUは、当該受信したデバイス識別子とコマンドとを関連付けてメモリ等の記憶手段に記憶する(S240)。
【0058】
他方、ミドルデバイスのCPUは、ポーリングで実行待ちのコマンドがないかデバイス管理システムに確認する(S245)。このとき、ミドルデバイスのCPUは、当該ミドルデバイスのデバイス識別子をデバイス管理システムに送信する(S250)。
【0059】
デバイス管理システムのCPUは、ミドルデバイスのデバイス識別子を受信する(S255)。続いて、デバイス管理システムのCPUは、当該受信したミドルデバイスのデバイス識別子に関連付けられたデバイスのデバイス識別子を記憶手段から読み出して、当該読み出したデバイスのデバイス識別子に関連付けられたコマンドが記憶手段に記憶されている場合に、当該デバイスのデバイス識別子と、当該コマンドとを問い合わせのあったミドルデバイスに送信する(S260)。
【0060】
ミドルデバイスのCPUは、デバイスのデバイス識別子とコマンドとをデバイス管理システムから受信する(S265)。続いて、ミドルデバイスのCPUは、当該受信したデバイス識別子に関連付けられたデバイスタイプをミドルデバイスの記憶手段から読み出す(S270)。そして、ミドルデバイスのCPUは、当該読み出したデバイスタイプに対応するドライバを実行して、ミドルデバイスのプロセスにより上記受信したコマンドを上記受信したデバイス識別子に対応するデバイスが解釈し得るコマンドに変換する(S275)。続いて、ミドルデバイスのCPUは、当該変換したコマンドを上記受信したデバイス識別子に対応するデバイスに送信する(S280)。
【0061】
上記実施形態において、コマンドを変換する方法は次のようにしてもよい。すなわち、S215において、ミドルデバイスのCPUが、さらに、デバイスタイプをデバイス管理システムに送信するようにする。続いて、デバイス管理システムのCPUは、ミドルデバイスのデバイス識別子と、デバイスのデバイス識別子と、そのデバイスタイプとをミドルデバイスから受信する。そして、デバイス管理システムのCPUは、当該受信したデバイスのデバイス識別子とミドルデバイスのデバイス識別子及びデバイスタイプとを関連付けてメモリ等の記憶手段に記憶する。
【0062】
その後、S260において、デバイス管理システムのCPUは、デバイスのデバイス識別子に関連付けられたデバイスタイプを記憶手段から読み出して、当該デバイス管理システムのCPUが、当該デバイスタイプに対応するドライバを実行する。そして、デバイス管理システムのプロセスによりコマンドをデバイスが解釈し得るコマンドに変換する。そうすると、S215において送信されるコマンドは、デバイスが解釈し得るコマンドをミドルデバイスが解釈し得るコマンドにカプセル化したものとなる。
【0063】
上記実施形態2の変形例によると、端末を利用する利用者が操作したいデバイスがどのミドルデバイスに接続されているかを知らなくても、デバイスを操作することができる。
(実施形態3)
【0064】
本実施形態は、実施形態1において、デバイス管理システム20のHDDに、さらに、エイリアス情報ファイルを記憶している。
【0065】
図9は、エイリアス情報ファイルの構造図である。当該エイリアス情報ファイルには、デバイスを識別するデバイス識別子と、そのエイリアスとが関連付けて記憶されている。デバイス管理システム20のCPUは、上記エイリアス情報ファイルを参照することにより、エイリアスに対応するデバイスのデバイス識別子を特定することができる。
【0066】
次に、本実施形態のコンピュータシステムの動作について説明する。
【0067】
端末10のCPUは、キーボードからデバイスのエイリアス及び当該デバイスへのコマンドを受付ける。続いて、端末10のCPUは、受付けたデバイスのエイリアス及び当該デバイスへのコマンドをHTTPのPOSTリクエストの引数としてデバイス管理システム20に送信する。ここで、デバイスがプリンタ等の出力装置の場合には、デバイスへのコマンドに出力データが含まれる。
【0068】
デバイス管理システム20のCPUは、デバイスのエイリアス及び当該デバイスへのコマンドを端末10から受信する。続いて、デバイス管理システム20のCPUは、当該受信したエイリアスに関連付けられたデバイス識別子をエイリアス情報ファイルから読み出す。そして、デバイス管理システム20のCPUは、当該読み出したデバイス識別子と、上記受信したデバイスへのコマンドとを関連付けてコマンド情報ファイルに記憶する。この後の動作は、実施形態1のS30以降の動作と同様であるので説明を省略する。
【0069】
本実施形態によると、端末10の利用者がデバイスの物理的あるいはIPネットワーク上での所在地やデバイス識別子を知らなくても、そのエイリアスを指定することによって、コマンド(例えば、印刷コマンド)を実行することができる。当該デバイスの所有者にとっては、端末10を利用するユーザにデバイスのデバイス識別子を通知しないで済むので、セキュリティが保てる。例えば、ユーザ識別子が「user001」であるユーザが最近利用したプリンタのエイリアスを「current_printer@user001」、デフォルトプリンタのエイリアスを「default_printer@user001」、一番近いプリンタを「nearest_printre@user001」として、デバイス識別子と関連付けてエイリアス情報ファイルに記憶することにより、端末10の利用者は、印刷物の出力先を抽象化して指定することができる。また、デバイスのデバイス識別子が変更されても、変更後のデバイス識別子と従来のエイリアスとを関連付けてエイリアス情報ファイルに記憶しておくことにより、端末10のユーザは従来利用していたエイリアスをそのまま利用することができる。ユーザ識別子を自由に指定できるので、端末10の利用者以外の所有するデバイスにも自由に出力することができる。
(実施形態4)
【0070】
本実施形態は、実施形態1において、デバイス管理システム20のHDDに、さらに、権限情報ファイルを記憶している。
【0071】
図10は権限設定情報ファイルの構造図である。当該権限設定情報ファイルには、ユーザを識別するユーザ識別子と、当該ユーザに与えられる権限とが関連付けて記憶されている。ここで、ユーザ識別子としては、例えば、ユーザID等が該当する。また、ユーザに与えられる権限としては、例えば、「特定のデバイス識別子に対応するデバイスにコマンドを実行させることを許可する」といった内容が該当する。
【0072】
次に、本実施形態のコンピュータシステムの動作について説明する。
【0073】
端末10のCPUは、キーボードからデバイスのデバイス識別子、当該デバイスへのコマンド及び当該端末10を利用するユーザのユーザ識別子を受付ける。続いて、端末10のCPUは、受付けたデバイスのデバイス識別子、当該デバイスへのコマンド及び当該端末10を利用するユーザのユーザ識別子をHTTPのPOSTリクエストの引数としてデバイス管理システム20に送信する。ここで、デバイスがプリンタ等の出力装置の場合には、デバイスへのコマンドに出力データが含まれる。
【0074】
デバイス管理システム20のCPUは、デバイスのデバイス識別子、当該デバイスへのコマンド及び当該端末10を利用するユーザのユーザ識別子を端末10から受信する。続いて、デバイス管理システム20のCPUは、当該受信したユーザ識別子に関連付けられた「ユーザに与えられる権限」を権限情報設定ファイルから読み出す。そして、上記読み出した「ユーザに与えられる権限」が当該読み出したデバイス識別子に対応するデバイスにコマンドを実行させることを許可するものであった場合に、デバイス管理システム20のCPUは、上記受信したデバイス識別子と、上記受信したデバイスへのコマンドとを関連付けてコマンド情報ファイルに記憶する。この後の動作は、実施形態1のS30以降の動作と同様であるので説明を省略する。
【0075】
本実施形態によると、端末10を利用するユーザがデバイスにコマンドを実行させる権限を有する場合にのみ、当該デバイスにコマンドを実行させることができる。
【0076】
以上、本発明の実施形態について説明してきたが、本発明はこれに限定されるものではなく、様々な変更が可能である。例えば、実施形態の紹介では端末10が入力手段からの入力を受けてデバイスでの出力のためのコマンドを送信したが、端末10が定期的にログファイル内容の印刷をデバイスを指定して行うといった場合では、端末10の入力手段からの入力は必須ではない。入力装置の代わりに、端末10がNICから受信した信号をトリガとすることも考えられる。また、デバイスが音楽再生装置で、コマンド実行時に端末10で指定された音楽ファイルをデバイスで再生するといったことも考えられる。さらに、一つのエイリアスに対して互いに異なる2以上のデバイス識別子を関連付けてエイリアス情報ファイルに記憶してもよい。これによると、一つのエイリアスに関連付けられた2以上のデバイス識別子に対応するデバイスに対して所定のコマンドを実行させることができる。実施形態1ではデバイス管理システム20のCPUは、デバイス識別子に関連付けられたコマンドの取得要求と当該デバイス30のデバイス識別子とをデバイス30から受信したときにドライバを起動して当該デバイスの制御を開始した(S80からS110)が、すでに当該デバイスにコマンドを実行させた後、そのまま継続してデバイスを制御し続けていた場合であればこのステップを省略してレスポンスとして変換したコマンドを即座にリクエストのあったデバイス30に送信するようにしてもよい。当該デバイス30からのポーリングに対して、実行するコマンドがない場合でも制御を開始してもよい。デバイス管理システム20からセッション情報が送信され、当該デバイス30は当該セッション情報を受信してからはデバイス識別子の代わりに当該セッション情報を送信するようにしてもよい。その場合、デバイス30は、当該セッション情報を受信した後は、当該セッション情報を記憶装置に記憶し、必要に応じて読み出す構成となる。実施形態2でミドルデバイスにPCを接続した場合の実施例としてPCは、あらかじめ所定のコマンドに関連付けられた所定のファイル作成ソフトを実行して、端末10で作成したファイルを別のフォーマットのファイルに変換しているとしたが、当該変換はデバイス管理システム20で行われるようにしてもよい。PCをミドルデバイスを挟まず、デバイス管理システムと20と直接ネットワーク経由で接続する構成ももちろん考えられる。エイリアス情報ファイル、権限設定情報ファイルの更新方法は種々考えられ、例えば、デバイス所有者がデバイス管理システム20にPC等から接続して行う、実施形態3のプリンタの例であれば、最後にuser001が印刷を実行されたデバイスの識別子が、エイリアス情報ファイルでエイリアスcurrent_device@user001となるよう、印刷完了の通知を受け取った段階でデバイス管理システム20のCPUが自動的に更新するといった方法が一例としてあげられる。実施形態1では、デバイス管理システム20は、コマンドの実行が完了した旨の通知を受けると受信したデバイス識別子と当該デバイス識別子に関連付けられたコマンドとの組み合わせをコマンド情報ファイルから削除する構成としたが(S150)、コマンド情報ファイルにはコマンド実行が完了した旨のフラグを当該組み合わせに関連付けて記憶する構成とし、S60において、当該受信したデバイス識別子に関連付けられたコマンドがコマンド情報ファイルに記憶されており、さらに完了フラグや実行中フラグが関連付けられていない場合に、未実行のコマンドがある旨の通知をレスポンスとしてリクエストのあったデバイス30へ送信する構成としてもよい。その場合、デバイス管理システム20のCPUは、S125のステップでデバイスが解釈しうるコマンドをレスポンスとしてリクエストのあったデバイス30に送信したあと、当該組み合わせにコマンド実行中であることを示すフラグを関連付けて記憶するようにしてもよい。これによれば、実行されたコマンドの履歴をデバイス管理システム20に保存することができる。
【図面の簡単な説明】
【0077】
【図1】実施形態1のコンピュータシステムの全体構成を示すブロック図である。
【図2】端末の構成図である。
【図3】デバイス管理システムの構成図である。
【図4】コマンド情報ファイルの構造図である。
【図5】ドライバ情報ファイルの構造図である。
【図6】デバイスの構成図である。
【図7】実施形態2のコンピュータシステムの全体構成を示すブロック図である。
【図8】ミドルデバイスの構成図である。
【図9】エイリアス情報ファイルの構造図である。
【図10】権限設定情報ファイルの構造図である。
【符号の説明】
【0078】
10 端末
11 CPU(処理手段)
12 メモリ(記憶手段)
13 HDD(記憶手段)
14 キーボード(入力手段)
15 マウス(入力手段)
16 ディスプレイ(表示手段)
17 NIC(通信手段)
20 デバイス管理システム
21 CPU(処理手段)
22 メモリ(記憶手段)
23 HDD(記憶手段)
24 NIC(通信手段)
30 デバイス
31 CPU(処理手段)
32 メモリ(記憶手段)
33 NIC(通信手段)
40 通信ネットワーク
50 ミドルデバイス
51 CPU(処理手段)
52 メモリ(記憶手段)
53 NIC(通信手段)
54 デバイスとのI/F(接続手段)

【特許請求の範囲】
【請求項1】
コマンドを送信する端末と、前記コマンドを管理するデバイス管理システムと、前記コマンドを実行するデバイスとを備えたコンピュータシステムにおいて用いられるコマンド実行方法であって、
前記端末が、
前記デバイスのデバイス識別子及び当該デバイスへのコマンドを前記デバイス管理システムに送信するステップを実行し、
前記デバイス管理システムが、
前記デバイス識別子及び前記デバイスへのコマンドを前記端末から受信するステップと、当該受信したデバイス識別子と当該受信したコマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶するステップと、を実行し、
前記デバイスが、
当該デバイスのデバイス識別子と当該デバイスへのコマンドとが関連付けて前記デバイス管理システムの記憶手段に記憶されている場合に、当該コマンドを前記デバイス管理システムに要求して取得するステップと、当該取得したコマンドを実行するステップと、を実行することを特徴としたコマンド実行方法。
【請求項2】
コマンドを送信する端末と、前記コマンドを管理するデバイス管理システムと、デバイスを接続したミドルデバイスと、を備えたコンピュータシステムにおいて用いられるコマンド実行方法であって、
前記端末が、
前記デバイスのデバイス識別子及び当該デバイスへのコマンドを前記デバイス管理システムに送信するステップを実行し、
前記デバイス管理システムが、
前記デバイスのデバイス識別子及び当該デバイスへのコマンドを前記端末から受信するステップと、当該受信したデバイスのデバイス識別子と当該受信したコマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶するステップと、を実行し、
前記ミドルデバイスが、
当該ミドルデバイスに接続されたデバイスから当該デバイスのデバイス識別子を取得するステップと、当該ミドルデバイスのデバイス識別子及び当該取得したデバイスのデバイス識別子をデバイス管理システムに送信するステップと、を実行し、
デバイス管理システムが、
前記ミドルデバイスのデバイス識別子及び前記デバイスのデバイス識別子を受信するステップと、当該受信したミドルデバイスのデバイス識別子と、当該受信したデバイスのデバイス識別子とを関連付けてデバイス管理システムの記憶手段に記憶するステップと、を実行し、
前記ミドルデバイスが、
当該ミドルデバイスのデバイス識別子とデバイスのデバイス識別子とが関連付けてデバイス管理システムの記憶手段に記憶されており、かつ、当該デバイスのデバイス識別子とコマンドとが関連付けてデバイス管理システムの記憶手段に記憶されている場合に、当該コマンド及び当該デバイスのデバイス識別子を前記デバイス管理システムに要求して取得するステップと、当該取得したコマンドを当該取得したデバイス識別子に対応するデバイスに送信するステップと、を実行し、
前記デバイスが、
前記コマンドを受信するステップと、当該受信したコマンドを実行するステップと、を実行することを特徴としたコマンド実行方法。
【請求項3】
デバイスを接続するためのミドルデバイスであって、
前記ミドルデバイスのデバイス識別子が記憶された記憶手段と、
外部のデバイス管理システムと通信する通信手段と、
当該ミドルデバイスのデバイス識別子とデバイスのデバイス識別子とが関連付けてデバイス管理システムの記憶手段に記憶されており、かつ、当該デバイスのデバイス識別子とコマンドとが関連付けてデバイス管理システムの記憶手段に記憶されている場合に、当該コマンド及び当該デバイスのデバイス識別子を前記デバイス管理システムに要求して取得する処理手段と、
前記取得したコマンドを前記取得したデバイス識別子に対応するデバイスに送信する接続手段と、
を備えたミドルデバイス。
【請求項4】
コマンドを送信する端末と、前記コマンドを管理するデバイス管理システムと、前記コマンドを実行するデバイスとを備えたコンピュータシステムにおいて用いられるコマンド実行方法であって、
前記端末が、
前記デバイスのエイリアス及び当該デバイスへのコマンドを前記デバイス管理システムに送信するステップを実行し、
前記デバイス管理システムが、
前記デバイスのエイリアス及び当該デバイスへのコマンドを前記端末から受信するステップと、当該受信したエイリアスに関連付けられたデバイス識別子を前記デバイス管理システムの記憶手段から読み出すステップと、当該読み出したデバイス識別子と前記受信したコマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶するステップと、を実行し、
前記デバイスが、
当該デバイスのデバイス識別子と当該デバイスへのコマンドとが関連付けて前記デバイス管理システムの記憶手段に記憶されている場合に、当該コマンドを前記デバイス管理システムに要求して取得するステップと、当該取得したコマンドを実行するステップと、を実行することを特徴としたコマンド実行方法。
【請求項5】
前記端末の利用者がデバイス識別子に対応するデバイスにコマンドを実行させる権限を有する場合にのみ、当該デバイス識別子と当該コマンドとを関連付けて前記デバイス管理システムの記憶手段に記憶することが許可されること特徴とした請求項1、請求項2又は請求項4に記載のコマンド実行方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−310532(P2008−310532A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−156899(P2007−156899)
【出願日】平成19年6月13日(2007.6.13)
【出願人】(399014484)ヴィジョンアーツ株式会社 (19)
【Fターム(参考)】