(57)【特許請求の範囲】
【請求項１】
遠隔地に配置された複数のサーバ装置と、
前記複数のサーバ装置を遠隔操作するためのキーボードを備えた情報処理装置と、
前記情報処理装置と接続すると共に前記複数のサーバ装置のそれぞれと接続し、前記情報処理装置の前記キーボードで入力を受け付け、前記情報処理装置から送られた操作情報を、選択されたサーバ装置に送信する切替装置とを備え、
前記情報処理装置は、前記キーボードで入力を受け付けたスキャンコードを、対応するキーコードに変換するコード変換手段と、前記コード変換手段で前記キーコードに変換されたスキャンコード、又は前記キーボードで入力を受け付けたスキャンコードを、パケットデータに変換するデータ変換手段と、サーバ装置を操作するアプリケーションソフトウェアの起動操作の入力を検出する検出手段と、前記検出手段によって前記アプリケーションソフトウェアの起動操作の入力が検出された場合に、前記キーボードで入力を受け付けたスキャンコードの送り先を、前記コード変換手段から前記データ変換手段に切り替え、前記サーバ装置を操作するために入力されたスキャンコードを、対応するキーコードに変換せずにパケットデータに変換させる切替手段と、前記データ変換手段によって変換されたパケットデータを前記切替装置に送信する送信手段とを備え、
前記切替装置は、前記情報処理装置から送られたパケットデータを受信して、受信したパケットデータからスキャンコード又はキーコードを取り出し、前記複数のサーバ装置のうち、対応するサーバ装置に送信することを特徴とする遠隔操作システム。
【請求項２】
前記切替装置は、該切替装置と前記複数のサーバ装置のそれぞれとの接続の仕様に関する情報を記憶する記憶手段と、
前記記憶手段の記憶する情報を参照して、前記パケットデータから取り出されたスキャンコード又はキーコードを、前記スキャンコード又はキーコードを送る送り先のサーバ装置との接続の仕様に応じたデータ形式に変換するデータ形式変換手段と、
前記データ形式変換手段で前記送り先のサーバ装置との接続の仕様に応じたデータ形式に変換されたスキャンコード又はキーコードを、前記送り先のサーバ装置に送信する送信手段と、
を備えることを特徴とする請求項１記載の遠隔操作システム。
【請求項３】
前記切替手段は、前記情報処理装置の具備する表示手段に、他のアプリケーションソフトウェアの制御により表示している情報の表示領域から、前記サーバ装置を操作するアプリケーションソフトウェアの制御により表示している情報の表示領域に操作入力デバイスが移動したことを前記検出手段で検出すると、前記キーボード入力されるスキャンコードの送信先を、前記コード変換手段から前記データ変換手段に切り替えることを特徴とする請求項１記載の遠隔操作システム。
【請求項４】
遠隔地に配置された複数のサーバ装置と、前記複数のサーバ装置を遠隔操作するためのキーボードを備えた情報処理装置と、前記情報処理装置と接続すると共に前記複数のサーバ装置のそれぞれと接続し、前記情報処理装置の前記キーボードで入力を受け付け、前記情報処理装置から送られた操作情報を、選択されたサーバ装置に送信する切替装置とを備える遠隔操作システムにおける遠隔操作方法であって、
前記情報処理装置において、前記情報処理装置の備えるキーボードで入力を受け付けたスキャンコードを、変換手段で対応するキーコードに変換するステップと、
前記サーバ装置を操作するアプリケーションソフトウェアの起動操作の入力を検出するステップと、
前記アプリケーションソフトウェアの起動操作の入力が検出された場合に、前記キーボードで入力を受け付けたスキャンコードを、パケットデータに変換するステップと、
前記アプリケーションソフトウェアの起動操作の入力が検出されなかった場合に、前記キーボードで入力を受け付けたスキャンコードを、対応するキーコードに変換してからパケットデータに変換するステップと、
変換されたパケットデータを前記切替装置宛てに送信するステップとを有し、
前記切替装置において、前記情報処理装置から送られたパケットデータを受信するステップと、
受信したパケットデータからスキャンコード又はキーコードを取り出して、前記複数のサーバ装置のうち、対応するサーバ装置に送信するステップとを有することを特徴とする遠隔操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続された複数のサーバをＫＶＭ（Ｋｅｙｂｏａｒｄ／Ｖｉｄｅｏ／Ｍｏｕｓｅ）装置を介して制御用のパソコン（以下、制御ＰＣと呼ぶ）によって操作する技術に関する。
【背景技術】
【０００２】
ネットワーク上の複数のサーバを、例えば１組の入力装置（キーボードやポインティングデバイスなど）で切り替えて操作する場合、図１に示すようなＫＶＭ装置２００が用いられる。このシステムにおいて、キーボード１１０およびポインティングデバイス１１１を操作することによって発生するデータは、制御ＰＣ１００でパケット変換され、ＴＣＰ／ＩＰなどのネットワークによりＫＶＭ装置２００に送信される。パケットデータを受信したＫＶＭ装置２００は、パケットデータからキーボードおよびポインティングデバイスのデータを取得してサーバ（１、２、３、・・・Ｎ）に送信する。このような処理によって、遠隔地からの操作が実行される。
【０００３】
制御ＰＣ１００は汎用的なＰＣであり、キーボード１１０から入力されたデータは図２のような流れで処理される。キーボード１１０のキー入力により制御ＰＣ１００に送信されるキーデータは、スキャンコードと呼ばれ、各キーによって異なるデータ値を持つ。キーボード１１０から入力されたスキャンコードは、図２に示すように制御ＰＣのインターフェース処理部１０７で受信し、キーボードドライバ１０４でキーコードに変換され、ＯＳ（Operating System）（コード解析）１０２に出力される。キーコードとは、あらかじめ定義されたＯＳの標準コード、すなわちＯＳで認識、処理可能なコードデータである。スキャンコードは、キーボードによって異なるため（例えばＵＳ１０１キーボードと、ＯＡＤＧ１０９キーボードの“＠”など）その違いを補正するための変換処理が行われ、キーコードとしてＯＳ１０２に渡される。
【０００４】
ＯＳ１０２で受信したキーコードは、アプリケーションソフトウェアによって実現されるデータ検出モジュール１０１に送信される。データ検出モジュール１０１で受信したキーコードは、データ変換部１０５に出力され、ここでパケットに変換される。そして、通信処理部１０８に出力され、通信処理部１０８からネットワークに送信される。
【０００５】
特許文献１は、サーバ装置のキーボード操作によって発生したキー入力を、キーコードに変換してクライアント装置に送信するシステムであって、クライアント装置は、クライアント装置で扱うキーコードと、サーバ装置で扱うキーコードとを対応させたディスプレイキー情報テーブルを、複数のサーバ装置ごとに設けて格納している。さらに、該当するディスプレイキー情報テーブルを参照して、サーバ装置から入力されたキーコードをクライアント装置で扱うキーコードに変換するディスプレイキーライブラリを備えている。
【０００６】
また特許文献２は、ネットワークで接続された情報端末間で、一台の管理情報端末が他の管理対象情報端末を遠隔制御するリモートコントロールに関するものである。管理情報端末と管理対象情報端末のキーボードの物理的な種類または論理的なレイアウトが異なる場合に、管理情報端末端末側のキーボードが発生する実スキャンコードを一旦仮想スキャンコードに変換し、その後、仮想スキャンコードを管理対象情報端末側のキーボードの実スキャンコードに変換している。
【０００７】
【特許文献１】特開平６−２８９９７１号公報
【特許文献２】特開２０００−２５０６９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
スキャンコードからキーコードへの変換において、Ｌｅｆｔ−ｓｈｉｆｔキーと、Ｒｉｇｈｔ−Ｓｈｉｆｔキーは同じキーコードになる。このようにキーボード入力によるスキャンコードは異なるにも関わらず、同じキーコードに変換されてしまうことがある。
【０００９】
制御ＰＣ１００で動作するアプリケーションで遠隔地のサーバを操作する場合、キーボードデータは必ず制御ＰＣ１００のＯＳを経由して送信される。このため、サーバ側には、キーコードに変換されたデータしか扱うことができないシステムもある。そのようなシステムにおいて、サーバに、Ｌｅｆｔ−ｓｈｉｆｔキーとＲｉｇｈｔ−Ｓｈｉｆｔキーの入力を識別させて、異なる機能を実行するアプリケーションがある場合、サーバ側ではこれらのキー入力の識別ができないため、機能を実行できないという問題が生じる。
【００１０】
また、全てのシステムにおいて、Ｃｔｒｌ−Ａｌｔ−Ｄｅｌｅｔｅキーのような特殊キー入力は、制御ＰＣ１００のＯＳ１０２で捕捉されるため、制御ＰＣ１００からサーバには送信されない。このため、ＫＶＭ装置２００を用いたシステムにおいて、制御ＰＣ１００から特殊キーを遠隔地のサーバに送信するためには、特殊キーボタンのＧＵＩをアプリケーションに持たせ、そのＧＵＩボタンをマウスでクリックすることにより、特殊キーデータを発生させている（例えば、Ａｖｏｃｅｎｔ社製、商品名、ＤＳＲシリーズなど）。この方法は、すべてのキー入力をキーボードから実行できないため、ユーザにとっては不便である。
【００１１】
また、特許文献１及び２の開示技術はいずれも、変換テーブルを備えて、一方の端末で発生したキーコードやスキャンコードを、他方の端末で扱うことのできるキーコードやスキャンコードに変換するものである。そのため、変換を担当する装置の資源（リソース）を消費しなければならない。また、変換のための処理に時間を要したり、サーバ側に新たなドライバソフトウェアのインストールが必要になるなどの問題がある。
【００１２】
本発明は上記事情に鑑みてなされたものであり、キーボードからのキー入力を有効にサーバに認識させることができる情報処理装置、切替器、遠隔操作システム、スキャンコード送信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
かかる目的を達成するために本発明の遠隔操作システムは、遠隔地に配置された複数のサーバ装置と、前記複数のサーバ装置を遠隔操作するためのキーボードを備えた情報処理装置と、前記情報処理装置と接続すると共に前記複数のサーバ装置のそれぞれと接続し、前記情報処理装置の前記キーボードで入力を受け付け、前記情報処理装置から送られた操作情報を、選択されたサーバ装置に送信する切替装置とを備え、前記情報処理装置は、前記キーボードで入力を受け付けたスキャンコードを、対応するキーコードに変換するコード変換手段と、前記コード変換手段で前記キーコードに変換されたスキャンコード、又は前記キーボードで入力を受け付けたスキャンコードを、パケットデータに変換するデータ変換手段と、サーバ装置を操作するアプリケーションソフトウェアの起動操作の入力を検出する検出手段と、前記検出手段によって前記アプリケーションソフトウェアの起動操作の入力が検出された場合に、前記キーボードで入力を受け付けたスキャンコードの送り先を、前記コード変換手段から前記データ変換手段に切り替え、前記サーバ装置を操作するために入力されたスキャンコードを、対応するキーコードに変換せずにパケットデータに変換させる切替手段と、前記データ変換手段によって変換されたパケットデータを前記切替装置に送信する送信手段とを備え、前記切替装置は、前記情報処理装置から送られたパケットデータを受信して、受信したパケットデータからスキャンコード又はキーコードを取り出し、前記複数のサーバ装置のうち、対応するサーバ装置に送信することを特徴としている。
本発明によれば、サーバ装置を操作するアプリケーションソフトウェアの起動を検出した場合には、キーボードで入力を受け付けたスキャンコードをキーコードに変換することなくパケットデータに変換し、切替装置を介して選択されたサーバ装置に送ることができる。また、このアプリケーションソフトウェアが起動していない場合には、スキャンコードをキーコードに変換してからパケットデータに変換し、切替装置を介して選択されたサーバ装置に送ることができる。
【００１４】
上記遠隔操作システムにおいて、前記切替装置は、該切替装置と前記複数のサーバ装置のそれぞれとの接続の仕様に関する情報を記憶する記憶手段と、前記記憶手段の記憶する情報を参照して、前記パケットデータから取り出されたスキャンコード又はキーコードを、前記スキャンコード又はキーコードを送る送り先のサーバ装置との接続の仕様に応じたデータ形式に変換するデータ形式変換手段と、前記データ形式変換手段で前記送り先のサーバ装置との接続の仕様に応じたデータ形式に変換されたスキャンコード又はキーコードを、前記送り先のサーバ装置に送信する送信手段とを備えているとよい。
【００１５】
上記遠隔操作システムにおいて、前記切替手段は、前記情報処理装置の具備する表示手段に、他のアプリケーションソフトウェアの制御により表示している情報の表示領域から、前記サーバ装置を操作するアプリケーションソフトウェアの制御により表示している情報の表示領域に操作入力デバイスが移動したことを前記検出手段で検出すると、前記キーボード入力されるスキャンコードの送信先を、前記コード変換手段から前記データ変換手段に切り替えるとよい。
【００１６】
本発明の遠隔操作方法は、遠隔地に配置された複数のサーバ装置と、前記複数のサーバ装置を遠隔操作するためのキーボードを備えた情報処理装置と、前記情報処理装置と接続すると共に前記複数のサーバ装置のそれぞれと接続し、前記情報処理装置の前記キーボードで入力を受け付け、前記情報処理装置から送られた操作情報を、選択されたサーバ装置に送信する切替装置とを備える遠隔操作システムにおける遠隔操作方法であって、前記情報処理装置において、前記情報処理装置の備えるキーボードで入力を受け付けたスキャンコードを、変換手段で対応するキーコードに変換するステップと、前記サーバ装置を操作するアプリケーションソフトウェアの起動操作の入力を検出するステップと、前記アプリケーションソフトウェアの起動操作の入力が検出された場合に、前記キーボードで入力を受け付けたスキャンコードを、パケットデータに変換するステップと、前記アプリケーションソフトウェアの起動操作の入力が検出されなかった場合に、前記キーボードで入力を受け付けたスキャンコードを、対応するキーコードに変換してからパケットデータに変換するステップと、変換されたパケットデータを前記切替装置宛てに送信するステップとを有し、前記切替装置において、前記情報処理装置から送られたパケットデータを受信するステップと、受信したパケットデータからスキャンコード又はキーコードを取り出して、前記複数のサーバ装置のうち、対応するサーバ装置に送信するステップとを有している。
【発明の効果】
【００２６】
本発明は、コンソールからの入力を有効にサーバに認識させることができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明を実施するための最良の形態を説明する。
【実施例１】
【００２８】
まず、本実施例の構成について図１を参照しながら説明する。本実施例は、コンソールとしてキーボード１１０とポインティングデバイス１１１とを備えた制御ＰＣ（本発明の情報処理装置に該当する）１００と、制御ＰＣ１００とネットワークを介して接続したＫＶＭ装置（本発明の切替器に該当する）２００と、ＫＶＭ装置２００を介してネットワークに接続された複数のサーバ１、２、３・・・Ｎ（Ｎは任意の自然数）とを備えている。
【００２９】
図３を参照しながら制御ＰＣ１００の構成を説明する。図３に示すように制御ＰＣ１００は、制御部１２０、データ変換部１０５、メモリ１０６、インターフェイス処理部１０７、通信処理部１０８等を主な構成として備えている。制御部１２０は、制御プログラムを記録したＲＯＭ、演算装置としてのＣＰＵ、ＣＰＵのワークエリアとして使用されるＲＡＭ等を備えており、ＲＯＭから読み出したプログラムに従った演算をＣＰＵで行うことにより、図３に示すデータ検出モジュール（アプリケーションソフトウェア）１０１、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１０２、ポインティングデバイスドライバ１０３、キーボードドライバ１０４が実現される。また、制御ＰＣ１００には、インターフェイス処理部１０７を介してキーボード１１０と、ポインティングデバイス１１１とが接続され、通信処理部１０８は、ネットワークに接続している。
【００３０】
データ検出モジュール１０１は、アプリケーションソフトウェアの備える機能の一部であって、データ変換部１０５に対して指示データを送信する。指示データとは、インターフェイス処理部１０７がスキャンコードを受信した場合に、データ変換部１０５に受信したスキャンコードを送信するように指示するフラグ情報である。また、データ検出モジュール１０１は、ＯＳ１０２から受信したポインティングデバイスデータをデータ変換部１０５に送信する。さらに、データ検出モジュール１０１は、データ変換部１０５にネットワーク送信情報を送信する。ネットワーク送信情報とは、通信処理部１０８がＫＶＭ装置２００宛てにパケットデータを送信するための設定情報である。
【００３１】
データ変換部（本発明のデータ変換手段に該当する）１０５は、データ検出モジュール１０１から指示データを受け取ると、このデータをインターフェイス処理部１０７に出力する。また、データ変換部１０５は、データ検出モジュール１０１からネットワーク送信情報を受け取ると、この情報を通信処理部１０８に出力する。さらに、データ変換部１０５は、インターフェイス処理部１０７からスキャンコードを受け取ると、このスキャンコードをパケット変換して通信処理部１０８に出力する。また、データ変換部１０５は、データ検出モジュール１０１からポインティングデバイスデータを受け取ると、このデータをパケット変換して通信処理部１０８に出力する。
【００３２】
インターフェイス処理部（本発明の切替手段に該当する）１０７は、データ変換部１０５から指示データを受け取って、このデータをメモリ１０６に格納する。また、インターフェイス部１０７は、キーボード１１０からスキャンコードを受信すると、メモリ１０６を参照して指示データに従ってスキャンコードを送信する。
【００３３】
指示データには、通常“０”をセットする。指示データが“０”の場合、インターフェイス処理部１０７は、スキャンコードをキーボードドライバ１０４に送信する。キーボードドライバ１０４に出力されたスキャンコードは、ここでキーコードに変換される。また、データ検出モジュール１０１によって指示データ“１”がセットされた場合には、インターフェイス処理部１０７はスキャンコードをデータ変換部１０５へ送信する。データ変換部１０５でパケット変換され、通信処理部１０８からネットワークに出力されるので、スキャンコードがそのまま制御ＰＣ１００から出力されることになる。
【００３４】
さらに、インターフェイス処理部１０７は、ポインティングデバイスからポインティングデバイスデータを受信すると、このデータをポインティングデバイスドライバ１０３に送信する。
【００３５】
キーボードドライバ（本発明のコード変換手段に該当する）１０４は、インターフェイス処理部１０７からスキャンコードを入力し、このスキャンコードをキーコードに変換してＯＳ１０２に出力する。ポインティングデバイスドライバ１０３は、インターフェイス処理部１０７からポインティングデバイスデータを受信し、ＯＳ１０２に出力する。
【００３６】
ＯＳ１０２は、ポインティングデバイスドライバ１０３からポインティンングデバイスデータを受け取って、データ検出モジュール１０１に出力する。また、キーボードドライバ１０４からキーコードを受け取って、キーコードをデータ検出モジュール１０１に出力する。
【００３７】
通信処理部１０８は、データ変換部１０５からネットワーク送信情報を受信し、このネットワーク送信情報の設定に従って、データ変換部１０５から受け取ったパケットデータをネットワークに送信する。また、ネットワークからパケットデータを受信し、データ変換部１０５に出力する。
【００３８】
次に、図４を参照しながらＫＶＭ装置２００の構成について説明する。図４に示すようにＫＶＭ装置２００は、通信処理部２０１と、メイン制御部２０２と、データ変換部２０３と、メモリ（請求項６、９に記載の記憶手段に該当する）２０４と、スキャンコード処理部２０５と、ポインティングデバイスデータ処理部２０６とを備えている。
【００３９】
通信処理部２０１は、ネットワークを介して受信したパケットデータをメイン制御部２０２に転送する。また、メイン制御部２０２から転送されたパケットデータをネットワークに出力する。
【００４０】
メイン制御部２０２は、通信処理部２０１からパケットデータを受け取って、データ変換部２０３に出力する。またデータ変換部２０３によってパケットデータに変換されたデータを通信処理部２０１に出力する。
【００４１】
データ変換部２０３は、メイン制御部２０２からパケットデータを受け取って、このパケットデータからポインティングデバイスデータやスキャンコードを取り出す。取得したスキャンコードデータは、スキャンコード処理部２０５に出力され、ポインティングデバイスデータは、ポインティングデバイスデータ処理部２０６に出力される。
【００４２】
スキャンコード処理部２０５は、データ変換部２０３から入力したスキャンコードをサーバＮ（以下では、サーバ１、２、３・・・Ｎのうちのいずれのサーバであってもよい場合には、代表してサーバＮと記す）に送信する。またポインティングデバイスデータ処理部２０６は、データ変換部２０３から入力したポインティングデバイスデータをサーバＮに送信する。
【００４３】
図５に示すフローチャートを参照しながら制御ＰＣ１００の動作手順を説明する。制御ＰＣ１００上で遠隔地のサーバＮを操作するためのアプリケーションを起動すると（ステップＳ１）、アプリケーションのデータ検出モジュール１０１は、指示データをデータ変換部１０５に出力する（ステップＳ２）。データ変換部１０５は、入力した指示データをインターフェイス処理部１０７に出力する（ステップＳ３）。インターフェイス処理部１０７は、入力した指示データをメモリ１０６に格納する（ステップＳ４）。
【００４４】
次に、図６に示すフローチャートを参照しながら、キーボード１１０によりキー入力があった場合の動作を説明する。
サーバＮを操作するためのアプリケーションが立ち上げられると、データ検出モジュール１０１が指示データ“１”を出力し、メモリ１０６に指示データ“１”がセットされる。この状態で、キーボード１１０からキー入力が行われると（ステップＳ１１）、スキャンコードをインターフェイス処理部１０７から入力する（ステップＳ１２）。インターフェイス部１０７は、メモリ１０６に格納された指示データを参照して（ステップＳ１３）、スキャンコードの出力先を決定する。
【００４５】
指示データが“０”であった場合（ステップＳ１４／ＮＯ）、インターフェイス処理部１０７は、図８に示すように指示データに従ってスキャンコードをキーボードドライバ１０４に出力する（ステップＳ１８）。キーボードドライバ１０４では、スキャンコードをキーコードに変換し（ステップＳ１９）、変換したキーコードをＯＳ１０２に出力する（ステップＳ２０）。
【００４６】
また、指示データが“１”であった場合（ステップＳ１４／ＹＥＳ）、インターフェイス処理部１０７は、図８に示すように指示データに従ってスキャンコードをデータ変換部１０５に出力する（ステップＳ１５）。データ変換部１０５は、インターフェイス処理部１０７から入力したスキャンコードをパケット変換し、通信処理部１０８に出力する（ステップＳ１６）。通信処理部１０８は、入力したパケットデータをＫＶＭ装置２００宛てに送信する（ステップＳ１７）。
【００４７】
遠隔地のサーバＮを操作するためのアプリケーションを終了させると、データ検出モジュール１０１は、指示データ“０”を出力する。この指示データは、上述した手順に従ってメモリ１０６に格納される。データ検出モジュール１０１が出力する指示データにより、スキャンコードをキーコードに変換する通常経路と、スキャンコードをキーコードに変換しない経路とに切り替えられる。
【００４８】
次に、図７に示すフローチャートを参照しながらＫＶＭ装置２００の動作手順を説明する。
ＫＶＭ装置２００は、制御ＰＣ１００から送信されたパケットデータを通信処理部２０１で受信する（ステップＳ２１／ＹＥＳ）。通信処理部２０１は、受信したパケットデータをメイン制御部２０２に出力する（ステップＳ２２）。メイン制御部２０２は、パケットデータを受け取って、データ変換部２０３に転送する（ステップＳ２３）。データ変換部２０３は、パケットデータを受け取り、そのパケットデータからスキャンコードを取り出す（ステップＳ２４）。取り出したスキャンコードは、スキャンコード処理部２０５へ転送される（ステップＳ２４）。スキャンコード処理部２０５はスキャンコードを受け取ると、このコードをサーバＮに送信する（ステップＳ２５）。
【００４９】
このように本実施例は、スキャンコードを直接サーバＮに送信することができるので、スキャンコードをキーコードに変換し、ＫＶＭ装置２００で再びキーコードをスキャンコードに戻してサーバに渡すという処理を省くことができる。このため、処理時間を短縮し、データの信頼性を高めることができる。また、遠隔地のサーバＮを操作する場合に、制御ＰＣ１００においてスキャンコードはキーボードドライバ１０４を経由せずにＫＶＭ装置２００にそのまま送信される。従って、Ｃｔｒｌ−Ａｌｔ−Ｄｅｌｅｔｅキーのような特殊キーもサーバＮに送信することが可能となり、サーバへのキー操作をすべて制御ＰＣ１００のキーボードから行うことができる。
【００５０】
なお、ビデオ信号の送受信に関する構成については詳細な説明を省くが、以下に動作概略を述べる。ＫＶＭ装置２００は、サーバＮからのビデオ信号を受信し、そのビデオ信号をアナログ−デジタル変換し、パケットに変換して制御ＰＣ１００に送信する。また、制御ＰＣ１００は、ＫＶＭ装置２００からのパケットデータを受信し、そのパケットデータからビデオ信号を取得し、操作ウィンドウ上に表示する。このようにして遠隔地のサーバＮのポインティングデバイス動作やキー入力を表示することができる。
【００５１】
なお、上述した実施例では、遠隔地のサーバＮを操作するアプリケーションが起動しているか否かによって指示データを切り替えるようにしていた。これ以外に、図９に示すように前述アプリケーションによって起動する操作画面の領域にマウス等のポインティングデバイス１１１のカーソルがある場合には、スキャンデータをデータ変換部１０５に出力して、変換を行わないような経路に変更し、操作画面の領域にポインティングデバイス１１１のカーソルがない場合には、スキャンデータをキーボードドライバ１０４によってキーコードに変換してから送信する経路に変更するようにしてもよい。
【００５２】
上記判断を行うために、まずポインティングデバイス１１１で発生するイベントを受け取るようにＯＳ１０２に登録する。そして、ポインティングデバイス１１１のカーソルが前述操作画面に存在する状態で発生するイベントを、ＯＳ１０２からデータ検出モジュール１０１に通知して、データ検出モジュール１０１が捕捉するようにプログラムする。
【００５３】
図９に示すカーソル位置Ａのように、アプリケーションの操作画面上にカーソルがある場合、ＯＳ１０２はデータ検出モジュール１０１に通知を行う。通知を受けたデータ検出モジュール１０１は、指示データ“１”をメモリ１０６にセットする。この手順は上述した通りである。一方、カーソル位置Ｂのように、アプリケーションの操作画面上からカーソルが外れると、ＯＳ１０２からの通知がデータ検出モジュール１０１で捕捉されなくなるので、データ検出モジュール１０１は、指示データ“０”をセットする。このようにして、ポインティングデバイスのカーソル位置に応じて、スキャンコードの送信経路を切り替えることが可能となる。
【００５４】
また、アプリケーションによって提供される操作画面上に切り替えボタンを表示させ、そのボタンがポインティングデバイス１１１で押下されると、データ検出モジュールは、指示データ“１”をセットするようにしてもよい。
【実施例２】
【００５５】
添付図面を参照しながら本発明の第２実施例を説明する。図１０には、第２実施例の制御ＰＣ１００の構成が示されている。
上述した第１実施例では、キーボード１１０からスキャンコードが入力されると、インターフェイス処理部１０７によってスキャンコードの出力先を切り替えていた。すなわち、インターフェイス処理部１０７にスキャンコードの出力先を切り替える機能を設けていた。これに対し本実施例は、図１０に示すようにフィルタドライバ（本発明の切替手段に該当）１２１をインストールして、ソフトウェアの制御によってスキャンコードの出力先を切り替える。キーボードドライバ１０４等のドライバソフトウェアは、単一ではなく複数のプログラムにより階層化された構造になっており、命令やデータはそれぞれの上位、下位に渡され処理される。このような既存のドライバにフィルタドライバを追加、挿入することで、階層化されたドライバ群の一部の動作を変更することができる。
【００５６】
フィルタドライバ１２１は、データ検出モジュール１０１から出力された指示データを、データ変換部１０５を介して取得し、メモリ１０６に格納する。フィルタドライバ１２１は、インターフェイス処理部１０７からスキャンコードを入力すると、メモリ１０６に格納した指示データに従って、所定の出力先に出力する。すなわち、指示データが“０”であった場合には、スキャンコードをキーボードドライバ１０４に出力する。また指示データが“１”であった場合には、スキャンコードをデータ変換部１０５に出力する。
【００５７】
このように本実施例では、制御ＰＣ１００に、フィルタドライバ１２１を追加することで、スキャンコードをキーコードに変換せずにＫＶＭ装置２００に送信することができる。
【実施例３】
【００５８】
添付図面を参照しながら本発明の第３実施例を説明する。
キーボード１１０からの入力により発生するスキャンコードは、ＰＳ／２キーボードのスキャンコードセット１〜３、およびＵＳＢキーボードのスキャンコードなど複数の種類がある。これらのスキャンコードのうち、どのスキャンコードセットが使用されるのかは、使用するサーバの接続状態、ＢＩＯＳおよびドライバソフトウェアなどに依存する。
【００５９】
例えば、制御ＰＣ１００側でＵＳＢキーボードによる入力を行った場合、ＫＶＭ装置２００には、ＵＳＢのスキャンコードが送信される。このとき、サーバＮとＫＶＭ装置２００とがＰＳ／２で接続しており、サーバＮはＰＳ／２キーボードのスキャンコードセット１で動作するものとする。このとき、ＫＶＭ装置２００がこのままＵＳＢのスキャンコードをサーバＮに送信しても、キーボード１１０の入力はサーバＮで認識されず、実行されない。そこで、サーバＮに適したスキャンコードをＫＶＭ装置２００に送信しなければならない。
【００６０】
図１１に、ＫＶＭ装置２００の構成を示す。本実施例のＫＶＭ装置２００は、図１１に示すようにＵＳＢデバイスデータ処理部２０７が新たに設けられている。ＵＳＢデバイスデータ処理部２０７は、メイン制御部２０２から出力されたＵＳＢスキャンコードをサーバＮに送信する。また、ＵＳＢ接続によるサーバＮとのエニュメレーション開始時に、サーバＮから送信されるエニュメレーションデータを受信して、メイン制御部２０２に出力する。
【００６１】
サーバＮとＫＶＭ装置２００とがＰＳ／２で接続されている場合、ＫＶＭ装置２００は、ＰＳ／２接続のネゴシエーション時にサーバＮから送信されるネゴシエーションデータをスキャンコード処理部２０５で受信する。このネゴシエーションデータは、メイン制御部２０２に送られる。メイン制御部２０２は、ネゴシエーションデータに含まれるＰＳ／２スキャンコードセット１〜３のいずれかを取り出し、メモリ２０４にスキャンコードセット情報（本発明の接続仕様情報に該当する）として保存する。
【００６２】
またサーバＮとＫＶＭ装置２００とがＵＳＢで接続されている場合、ＫＶＭ装置２００は、ＵＳＢ接続のエニュメレーション時にサーバＮから送信されるエニュメレーションデータをＵＳＢデバイスデータ処理部２０７で受信する。このエニュメレーションデータは、メイン制御部２０２に送られる。メイン制御部２０２は、エニュメレーションデータに含まれるＵＳＢスキャンコードを取り出し、メモリ２０４にスキャンコードセット情報として保存する。
【００６３】
データ変換部２０３は、メモリ２０４に格納されているスキャンコードセット情報を参照し、制御ＰＣ１００から取得したスキャンコードを、メモリ２０４に格納されているスキャンコードセット情報が示す形式のデータに変換する。すなわち、ＫＶＭ装置２００とサーバＮとの接続仕様に応じたスキャンコードに変換する。変換したＰＳ／２スキャンコードは、メイン制御部２０２によってスキャンコード処理部２０５に出力される。また変換したＵＳＢスキャンコードは、メイン制御部２０２によってＵＳＢデバイスデータ処理部２０７に出力される。
【００６４】
制御ＰＣ１００とＫＶＭ装置２００との間で送受信されるパケットデータのフォーマットの一例を図１２に示す。図１２に示すようにパケットデータのデータ部には、識別データと、データＩＤと、データ長と、実データとが含まれている。識別データは、本システムにおける処理によって送信されたことを示す任意のデータである。この識別データが存在しないパケットデータをＫＶＭ装置２００で受信した場合、ＫＶＭ装置２００は、制御ＰＣ１００から既存の方法（例えば、ＲｅａｌＶＮＣ社製、商品名ＶＮＣ（Virtual Network Computing）によって送信されたデータであると判定する。
【００６５】
データＩＤは、制御ＰＣ１００からＫＶＭ装置２００に送信するデータの種類を示し、以下のように定義されている。
０ｘ０１：  ＰＳ／２スキャンコードセット１
０ｘ０２：  ＰＳ／２スキャンコードセット２
０ｘ０４：  ＰＳ／２スキャンコードセット３
０ｘ０８：  ＵＳＢスキャンコード
０ｘ１０：  ＰＳ／２ポインティングデバイスデータ
０ｘ２０：  ＵＳＢポインティングデバイスデータ
０ｘ４０：  コマンド
【００６６】
データ長は、実データのバイト数を示す。また、実データは、制御ＰＣ１００からのキーボード、ポインティングデバイスのデータである。すなわち、この実データに、スキャンコードが含まれる。さらに、データＩＤがコマンドを示す場合の実データには、以下のデータが含まれる。
（１）スキャンコードセットの変更指示
（２）スキャンコードセット情報（ＫＶＭ装置のメモリに保存しているデータ）
（３）スキャンコードセット情報の送信要求
データＩＤがコマンドを示し（すなわち、０ｘ４０が入力され）、実データが上述した（１）及び（２）のデータであったとする。この場合、ＫＶＭ装置２００で、このパケットデータを受信すると、メイン制御部２０２でデータＩＤ、実データを判断し、メモリ２０４に保存しているスキャンコードセット情報を変更する。
データＩＤがコマンドを示し、実データが上述した（３）のデータであったとする。この場合、ＫＶＭ装置２００のメモリ２０４に保存しているスキャンコードセット情報の送信要求となる。
さらに、ＫＶＭ装置２００から制御ＰＣ１００へ送信されるパケットデータのデータＩＤがコマンドを示し、実データが上述した（２）のデータであると、制御ＰＣ１００は、サーバＮのスキャンコードセット情報を取得することができる。
【００６７】
次に、サーバＮとＫＶＭ装置２００とをＰＳ／２で接続している場合のサーバ電源投入時の動作を図１３に示すフローチャートを参照しながら説明する。
サーバＮの電源がＯＮすると（ステップＳ３１）、ＰＳ／２キーボードインターフェイスのネゴシエーション（初期設定）が開始される（ステップＳ３２）。スキャンコード処理部２０５は、サーバＮからネゴシエーションデータを取得し（ステップＳ３３）、メイン制御部２０２に出力する（ステップＳ３４）。メイン制御部２０２は、受け取ったネゴシエーションデータから、ＰＳ／２スキャンコードセット１〜３のいずれかを取り出し、スキャンコードセットとしてメモリ２０４に保存する（ステップＳ３５）。この状態で、制御ＰＣ１００からパケットデータを受信する準備が完了する（ステップＳ３６）。
【００６８】
次に、サーバＮとＫＶＭ装置２００とをＵＳＢ装置で接続している場合のサーバ電源投入時の動作を図１４に示すフローチャートを参照しながら説明する。
サーバＮの電源がＯＮすると（ステップＳ４１）、ＵＳＢキーボードインターフェイスのエニュメレーションが開始される（ステップＳ４２）。エニュメレーションとは、ホストがバスにどのようなデバイスが接続されたのかを知るためにデバイスから情報を取得し、取得した情報を元にデバイスの設定を行うものである。すなわち、ＵＳＢデバイスの接続認識のプロセスである。ＵＳＢデバイスデータ処理部２０７がサーバＮからエニュメレーションデータを取得し（ステップＳ４３）、取得したエニュメレーションデータをメイン制御部２０２に送信する（ステップＳ４４）。メイン制御部２０２は、取得したエニュメレーションデータから、ＵＳＢスキャンコードをスキャンコードセット情報としてメモリ２０４に保存する（ステップＳ４５）。この状態で、ＫＶＭ装置２００は、制御ＰＣからのパケットデータを受信する準備が完了する（ステップＳ４６）。
【００６９】
なおサーバＮとＫＶＭ装置２００との間をＰＳ／２およびＵＳＢの両方で接続している場合も考えられる。このような場合には、いずれか一方、例えばＵＳＢ接続を優先させることもできる。従って、スキャンコードセット情報には、ＵＳＢスキャンコードを保存する。また、制御ＰＣ１００側からコマンドを送信することにより、ＰＳ／２とＵＳＢの優先順位を切り替えることもできる。切り替えの方法の一例として、制御ＰＣのキーボードからホットキー入力、あるいはアプリケーションソフトウェアによって表示されるＧＵＩボタンによって切り替えることが可能である。
【００７０】
次に、図１５に示すフローチャートを参照しながらＫＶＭ装置２００のデータ処理手順を説明する。
ＫＶＭ装置２００のメイン制御部２０２は、通信処理部２０１からパケットデータを受け取ると（ステップＳ５１／ＹＥＳ）、パケットデータから図１２に示すデータ部を取り出して、識別データの有無を確認する（ステップＳ５２）。識別データがある場合には（ステップＳ５２／ＹＥＳ）、データＩＤの確認を行う（ステップＳ５４）。また、識別データがなかった場合には（ステップＳ５２／ＮＯ）、本システムによって制御ＰＣ１００から送信されたデータではないと判断し、既存のプロトコル（例えば、ＶＮＣなど）に従った処理を行い（ステップＳ５３）、サーバＮにキーボード及びポインティングデバイスのデータを送信する。
【００７１】
次に、メイン制御部２０２は、パケットデータに含まれるデータＩＤの判定を行う（ステップＳ５４）。パケットデータに書き込まれたスキャンコードセット情報がＰＳ／２ポインティングデバイスデータであった場合（ステップＳ５５／ＹＥＳ）、メイン制御部２０２は、ポインティングデバイスデータ処理部２０６にデータ部から取り出したポインティグデバイスデータを送信する（ステップＳ５６）。ポインティグデバイスデータ処理部２０６は、受け取ったＰＳ／２ポインティングデバイスデータをサーバＮへ送信する（ステップＳ５７）。
【００７２】
また、データＩＤが、ＵＳＢポインティングデバイスデータであった場合には（ステップＳ５８／ＹＥＳ）、メイン制御部２０２は、ＵＳＢデバイスデータ処理部２０７にデータ部から取り出したＵＳＢポインティングデバイスデータを送信する（ステップＳ６４）。ＵＳＢデバイスデータ処理部２０７は、受け取ったＵＳＢポインティングデバイスデータをサーバＮへ送信する（ステップＳ６５）。
【００７３】
パケットデータから取り出したデータＩＤが、ＰＳ／２ポインティングデバイスデータでもなく（ステップＳ５５／ＮＯ）、ＵＳＢポインティングデバイスデータでもなかった場合（ステップＳ５８／ＮＯ）、メイン制御部２０２は、データＩＤがスキャンコードセット情報と一致しているか否かを判定する（ステップＳ５９）。メモリ２０４に格納されているスキャンコードセット情報は、ＫＶＭ装置２００とサーバＮとの接続に対応したスキャンコードセット情報となる。データＩＤが、格納されているスキャンコードセット情報と一致していない場合、そのままスキャンコードをサーバＮに送信してもサーバＮで認識されない。そこで、データＩＤがスキャンコードセット情報と一致していない場合には（ステップＳ５９／ＮＯ）、データ変換部２０３で対応するデータ形式となるようにデータ変換を行う。データ変換部２０３でのデータ変換は、メモリ（ＲＯＭ）に格納している変換表に従って行う。ＲＯＭには全スキャンコードセット情報（ＰＳ／２のスキャンコードセット１〜３、ＵＳＢスキャンコードセット）ごとに変換表が格納されている。データ変換部２０３は、メモリ２０４に登録されたスキャンコードセット情報が示すデータの形式となるようにパケットから取り出したスキャンコードを変換する（ステップＳ６０）。
【００７４】
データＩＤとスキャンコードセット情報とが一致する場合（ステップＳ５９／ＹＥＳ）、又はデータ変換が完了すると（ステップＳ６０）、スキャンコードを該当する送信部に出力する。スキャンコードがＰＳ／２スキャンコードであった場合には（ステップＳ６１／ＹＥＳ）、メイン制御部２０２は、スキャンコード処理部２０５にＰＳ／２スキャンコードを出力する（ステップＳ６２）。スキャンコード処理部２０５は、受け取ったＰＳ／２スキャンコードをサーバＮへ送信する。またスキャンコードがＵＳＢスキャンコードであった場合（ステップＳ６１／ＮＯ）、メイン制御部２０２は、ＵＳＢデバイスデータ処理部２０７へＵＳＢスキャンコードを出力する。ＵＳＢデバイスデータ処理部２０７は、受け取ったＵＳＢスキャンコードをサーバＮへ送信する（ステップＳ６５）。
【００７５】
このように本実施例は、制御ＰＣ１００側のキーボード入力がいかなる形式であっても、サーバＮに対して適切なスキャンコードに変換して送信することができる。
【００７６】
上述した実施例では、ＫＶＭ装置２００でデータ変換を行ってサーバＮに送信していた。本実施例の他の形態として、制御ＰＣ１００がＫＶＭ装置２００よりスキャンコードセット情報を取得して、制御ＰＣ１００側でデータ変換したスキャンコードを送信してもよい。この場合、制御ＰＣ１００とＫＶＭ装置２００との間にスキャンコードセット情報取得コマンドを定義し、制御ＰＣ１００がスキャンコードセット情報を取得できるようにする。
【実施例４】
【００７７】
添付図面を参照しながら本発明の第４実施例を説明する。本実施例は、スキャンコードを暗号化し、ネットワークを介してＫＶＭ装置２００に送信する。ＫＶＭ装置２００は、受信したスキャンコードを復元化して、サーバＮに送信する。
【００７８】
図１６制御ＰＣ１００の構成を示し、図１７にＫＶＭ装置２００の構成を示す。図１６に示すように制御ＰＣ１００には暗号化処理部１３０が新たに設けられ、ＫＶＭ装置２００には復号化処理部２０８が新たに設けられる。
【００７９】
制御ＰＣ１００の暗号化処理部１３０は、データ変換部２０３から送られたデータを暗号化し、暗号化したデータをデータ変換部２０３に転送する。データ変換部２０３は、暗号化されたスキャンコードをパケット変換し、通信処理部１０８に出力する。通信処理部１０８によって暗号化されたパケットデータがＫＶＭ装置２００に送信される。
【００８０】
またＫＶＭ装置２００は、ネットワークを介して送信されたパケットデータを通信処理部２０１で受信し、データ変換部２０３に転送する。データ変換部２０３では、パケットデータから暗号化されたスキャンコードを取り出す。取り出されたスキャンコードは、復号化処理部２０８に出力され、ここで復号化処理される。復号化処理されたスキャンコードは、復号化処理部２０８からデータ変換部２０３に戻され、データ変換部２０３からスキャンコード処理部２０５に出力される。スキャンコード処理部２０５は、スキャンコードをサーバＮに出力する。
【００８１】
このようにして本実施例は、キーボードデータを暗号化してネットワークに出力し、ＫＶＭ装置２００で暗号化されたキーボードデータを復号化してサーバＮに送信することができる。従って、情報の漏洩を防止し、安全性を高めることができる。
【００８２】
上述した実施例は本発明の好適な実施例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。例えば、上述したデータ検出モジュール１０１は、ハードウェアとして構成することも可能であるし、データ変換部１０５は、ソフトウェアで構成することも可能である。
【図面の簡単な説明】
【００８３】
【図１】システム構成を示す図である。
【図２】制御ＰＣ内でのデータの流れを示す図である。
【図３】実施例１の制御ＰＣの構成を示す図である。
【図４】実施例１のＫＶＭ装置の構成を示す図である。
【図５】指示データをメモリに登録する手順を示すフローチャートである。
【図６】指示データに従ってスキャンコードをＫＶＭ装置に送信するまでの手順を示すフローチャートである。
【図７】ＫＶＭ装置の動作手順を示すフローチャートである。
【図８】データの流れを示す図である。
【図９】アプリケーションによって提供される画面を示す図である。
【図１０】実施例２の制御ＰＣの構成を示す図である。
【図１１】実施例３のＫＶＭ装置の構成を示す図である。
【図１２】パケットのフォーマットを示す図である。
【図１３】サーバＮとＫＶＭ装置とをＰＳ／２で接続している場合のサーバ電源投入時の動作を示すフローチャートである。
【図１４】サーバＮとＫＶＭ装置とをＵＳＢ装置で接続している場合のサーバ電源投入時の動作を示すフローチャートである。
【図１５】パケットデータを受信したＫＶＭ装置の判定手順を示すフローチャートである。
【図１６】実施例４の制御ＰＣの構成を示す図である。
【図１７】実施例４のＫＶＭ装置の構成を示す図である。
【符号の説明】
【００８４】
１００  制御ＰＣ            １０１  データ検出モジュール
１０２  ＯＳ                １０３  ポインティングデバイスドライバ
１０４  キーボードドライバ  １０５  データ変換部
１０６  メモリ              １０７  インターフェイス処理部
１０８  通信処理部          １１０  キーボード
１１１  ポインティングデバイス
１２０  制御部              １２１  フィルタドライバ
２００  ＫＶＭ装置          ２０１  通信処理部
２０２  メイン制御部        ２０３  データ変換部
２０４  メモリ              ２０５  スキャンコード処理部
２０６  ポインティングデバイスデータ処理部
２０７  スキャンコード処理部
【図１】
0004611147.tif 000002
【図２】
0004611147.tif 000003
【図３】
0004611147.tif 000004
【図４】
0004611147.tif 000005
【図５】
0004611147.tif 000006
【図６】
0004611147.tif 000007
【図７】
0004611147.tif 000008
【図８】
0004611147.tif 000009
【図９】
0004611147.tif 000010
【図１０】
0004611147.tif 000011
【図１１】
0004611147.tif 000012
【図１２】
0004611147.tif 000013
【図１３】
0004611147.tif 000014
【図１４】
0004611147.tif 000015
【図１５】
0004611147.tif 000016
【図１６】
0004611147.tif 000017
【図１７】
0004611147.tif 000018