(57)【特許請求の範囲】
【請求項１】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムであって、
前記通信中継システムは、サーバ側コンピュータとデバイス収容端末とを備え、
前記サーバ側コンピュータは、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成される第２のデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記第２のデバイスファイルと第１のデバイスファイルを生成し、当該第１のデバイスファイルを介して前記アプリケーションと接続し、前記第２のデバイスファイルを介して前記サーバ部と接続する疑似デバイスドライバと、を備え、
前記デバイス収容端末は、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部と、を備え、
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末を識別するための識別情報を前記サーバ側コンピュータに通知し、
前記疑似デバイスドライバは、前記サーバ側コンピュータにおける第１のデバイスファイルとして、前記識別情報を含む名前を有する第１のデバイスファイルを生成する
ことを特徴とする通信中継システム。
【請求項２】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムであって、
前記通信中継システムは、サーバ側コンピュータとデバイス収容端末とを備え、
前記サーバ側コンピュータは、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成される第２のデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記第２のデバイスファイルと第１のデバイスファイルを生成し、当該第１のデバイスファイルを介して前記アプリケーションと接続し、前記第２のデバイスファイルを介して前記サーバ部と接続する疑似デバイスドライバと、を備え、
前記デバイス収容端末は、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部と、を備え、
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末において前記デバイスを接続するポートの情報を前記サーバ側コンピュータに通知し、
前記疑似デバイスドライバは、前記サーバ側コンピュータにおける第１のデバイスファイルとして、前記ポートの情報を含む名前を有する第１のデバイスファイルを生成する
ことを特徴とする通信中継システム。
【請求項３】
前記アプリケーションが前記第１のデバイスファイルに対してデータの読み書きを行い、前記サーバ部が前記第２のデバイスファイルに対してデータの読み書きを行うことにより、前記アプリケーションは前記デバイスとデータ通信を行う
ことを特徴とする請求項１又は２に記載の通信中継システム。
【請求項４】
前記サーバ側コンピュータにおける前記サーバ部は、前記アプリケーションにより設定される属性情報を前記デバイス収容端末における前記クライアント部に通知し、
前記クライアント部は、前記属性情報に基づいて前記デバイスとの通信に関するパラメータの設定を行う
ことを特徴とする請求項１ないし３のうちいずれか１項に記載の通信中継システム。
【請求項５】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記アプリケーションを備えるサーバ側コンピュータに接続されるデバイス収容端末であって、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部とを備え、
前記クライアント部は、前記デバイス収容端末において前記デバイスを接続するポートの情報を前記サーバ側コンピュータに通知し、
前記サーバ側コンピュータにおいて、前記アプリケーションがデータの読み書きを行うデバイスファイルとして、前記ポートの情報を含む名前を有するデバイスファイルが生成される
ことを特徴とするデバイス収容端末。
【請求項６】
コンピュータを、請求項５に記載のデバイス収容端末における前記クライアント部として機能させるためのプログラム。
【請求項７】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記デバイスと接続されるデバイス収容端末とデータ通信を行うサーバ側コンピュータであって、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成される第２のデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記第２のデバイスファイルと第１のデバイスファイルを生成し、当該第１のデバイスファイルを介して前記アプリケーションと接続し、前記第２のデバイスファイルを介して前記サーバ部と接続する疑似デバイスドライバと、を備え、
前記サーバ側コンピュータは、前記デバイス収容端末から、当該デバイス収容端末を識別するための識別情報を受信し、
前記疑似デバイスドライバは、前記サーバ側コンピュータにおける第１のデバイスファイルとして、前記識別情報を含む名前を有する第１のデバイスファイルを生成する
ことを特徴とするサーバ側コンピュータ。
【請求項８】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記デバイスと接続されるデバイス収容端末とデータ通信を行うサーバ側コンピュータであって、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成される第２のデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記第２のデバイスファイルと第１のデバイスファイルを生成し、当該第１のデバイスファイルを介して前記アプリケーションと接続し、前記第２のデバイスファイルを介して前記サーバ部と接続する疑似デバイスドライバと、を備え、
前記サーバ側コンピュータは、前記デバイス収容端末から、当該デバイス収容端末において前記デバイスを接続するポートの情報を受信し、
前記疑似デバイスドライバは、前記サーバ側コンピュータにおける第１のデバイスファイルとして、前記ポートの情報を含む名前を有する第１のデバイスファイルを生成する
ことを特徴とするサーバ側コンピュータ。
【請求項９】
コンピュータを、請求項７又は８に記載のサーバ側コンピュータにおける前記サーバ部及び前記疑似デバイスドライバとして機能させるためのプログラム。
【請求項１０】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムが実行する通信中継方法であって、
前記通信中継システムは、前記アプリケーションを備えるサーバ側コンピュータと、前記デバイスを接続するデバイス収容端末とを備え、
前記デバイス収容端末が前記サーバ側コンピュータに接続要求を送信することにより、前記デバイス収容端末と前記サーバ側コンピュータとの間でコネクションを確立するステップと、
前記サーバ側コンピュータが、前記アプリケーションによりデータの読み書きを行うサーバ側デバイスファイルを生成するステップと、
前記アプリケーションが、前記サーバ側デバイスファイルと、前記デバイス収容端末における前記デバイスに対応するクライアント側デバイスファイルとを介して、前記デバイスとデータ通信を行うステップとを備え、
前記サーバ側デバイスファイルを生成するステップにおいて、前記サーバ側コンピュータは、前記デバイス収容端末から受信した識別情報であって、当該デバイス収容端末を識別するための識別情報を含む名前を有するサーバ側デバイスファイルを生成する
ことを特徴とする通信中継方法。
【請求項１１】
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムが実行する通信中継方法であって、
前記通信中継システムは、前記アプリケーションを備えるサーバ側コンピュータと、前記デバイスを接続するデバイス収容端末とを備え、
前記デバイス収容端末が前記サーバ側コンピュータに接続要求を送信することにより、前記デバイス収容端末と前記サーバ側コンピュータとの間でコネクションを確立するステップと、
前記サーバ側コンピュータが、前記アプリケーションによりデータの読み書きを行うサーバ側デバイスファイルを生成するステップと、
前記アプリケーションが、前記サーバ側デバイスファイルと、前記デバイス収容端末における前記デバイスに対応するクライアント側デバイスファイルとを介して、前記デバイスとデータ通信を行うステップとを備え、
前記サーバ側デバイスファイルを生成するステップにおいて、前記サーバ側コンピュータは、前記デバイス収容端末から受信したポートの情報であって、当該デバイス収容端末において前記デバイスを接続するポートの情報を含む名前を有するサーバ側デバイスファイルを生成する
ことを特徴とする通信中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遠隔に設置された端末に接続される機器とセンタ側のサーバとの間の通信を中継する技術に関連するものである。
【背景技術】
【０００２】
近年ＩｏＴやＭ２Ｍの市場が成長しており、インターネットやＶＰＮといったＩＰネットワークに接続できるディジタルカメラやセンサなどの非ＰＣ（パソコン）端末も普及してきた。しかしながら、ＩＰネットワークに接続できない旧来の機器も多く存在している。
【０００３】
特に安価なセンサやＧＰＳチップ、Ｚｉｇｂｅｅ（登録商標）チップなど小型ワンチップマイコンでは入出力用として２端子のシリアルインタフェースが割り当てられているのみであり、Ｅｔｈｅｒｎｅｔ（登録商標）コントローラなどは実装されていないものが多数ある。これらの機器を利用する場合、ＲＳ−２３２ＣやＵＳＢシリアル変換ＩＣを介してホストコンピュータに接続される。
【０００４】
上記ホストコンピュータとなる端末１０とシリアルインタフェースを持つ機器２０（後述するように、これをＴＴＹ機器と呼ぶ）とが接続されたシステム構成の例を図１に示す。図１に示す構成において、ＴＴＹ機器２０がインタフェース１４（ＵＳＢ、ＤＢ９等）を介して端末１０に接続されている。
【０００５】
端末１０は、一般的なオペレーティングシステム（Ｌｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ等）を有するコンピュータであり、ＲＳ−２３２ＣやシリアルＵＳＢ変換ＩＣに対応したデバイスドライバ１３がインストールされている。
【０００６】
当該デバイスドライバ１３に論理的に対応付られているデバイスファイル１２が存在している。このデバイスファイルはＴＴＹ（ＴｅｌｅＴｙｐｅＷｒｉｔｅｒ）と呼ばれ、例えばＬｉｎｕｘ（登録商標）では／ｄｅｖ／ｔｔｙ．ＵＳＢ０などという名前になる。
【０００７】
端末１０には、シリアルインタフェースを持つ機器を制御するアプリケーション１１がインストールされている。アプリケーション１１はデバイスファイル１２に対してｒｅａｄ／ｗｒｉｔｅすることでシリアルインタフェースを持つ機器２０に接続される。このため、このシリアルインタフェースを持つ機器をＴＴＹ機器と呼ぶ。
【０００８】
ＴＴＹ機器２０と接続されるアプリケーション１１はＴＴＹ機器２０に固有であり、ＴＴＹ機器２０が小型コンピュータのようなものであれば、ログインプロンプトが表示されユーザ名やパスワードを入力するためにｍｉｎｉｃｏｍのようなユーザ対話型の通信ソフトウェアが使われる。一方Ｚｉｇｂｅｅ（登録商標）チップへの入力はそのチップで規定されたバイナリデータ形式データになっていなければならず、一般的には専用のソフトウェアが使われてｍｉｎｉｃｏｍのようなユーザ対話型ソフトウェアは使用できない。また、モデムのようなＴＴＹ機器２０が接続されていれば、通信電文はＰＰＰ形式が要求される。このように、アプリケーション１１はＴＴＹ機器２０の種類によって専用の機能をもち、共通的に使用できるソフトウェアは存在しない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０６−１７５８２８号公報
【特許文献２】特開２０１３−００５１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記のＴＴＹ機器２０はＩＰネットワークインタフェースを持たないため、端末１０により収集されたデータをネットワーク経由でデータセンタなどに送信する場合、アプリケーション１１に通信機能を組む必要がある。上述のとおり、ＴＴＹ機器２０に応じた専用のソフトウェアが使用されるので、通信機能を組み込む場合にもそれぞれのソフトウエアごとに通信機能を組み込む必要がある。
【００１１】
ＩＰネットワークインタフェースを持たない複数のＴＴＹ機器２０をネットワーク化してデータ集約を行おうとする場合、例えば図２に示すような構成をとる。図２の構成では、センター側データ集約装置３０が備えられる。センター側データ集約装置３０は、アプリケーション３１を備え、例えばデータベース３２等にデータを格納する処理を行う。
【００１２】
このようなネットワーク化を行うためには、ＴＴＹ機器２０を収容する端末１０の中にインストールされているアプリケーション１１にＩＰ通信機能を具備させなければならない。ＴＴＹ機器２０を収容する端末１０で動作するアプリケーション１１は、ＴＴＹ機器２０専用のソフトウェアであるため、通信機能の追加はＴＴＹ機器２０に対応する当該ソフトウェアごとに行うことが必要となる。また、図２の構成のように複数拠点にＴＴＹ機器収容端末１０が配置される場合、ＴＴＹ機器２０の種類を変更したり１つの端末１０に異なる種類のＴＴＹ機器２０を接続追加したりする場合には、端末１０毎にアプリケーション１１の変更、追加が必要となる。
【００１３】
すなわち、従来技術では、デバイスファイルを介してアプリケーションとデバイスとの間の通信を中継する際に、いままでのソフトウェア資産をそのまま流用することができず、ソフトウェアの改造や煩雑な運用が必要となり、効率的に中継を行うことができなかった。
【００１４】
本発明は上記の点に鑑みてなされたものであり、デバイスファイルを介したアプリケーションとデバイスとの間の通信を効率的に中継することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の実施の形態によれば、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムであって、
前記通信中継システムは、サーバ側コンピュータとデバイス収容端末とを備え、
前記サーバ側コンピュータは、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成される第２のデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記第２のデバイスファイルと第１のデバイスファイルを生成し、当該第１のデバイスファイルを介して前記アプリケーションと接続し、前記第２のデバイスファイルを介して前記サーバ部と接続する疑似デバイスドライバと、を備え、
前記デバイス収容端末は、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部と、を備え、
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末を識別するための識別情報を前記サーバ側コンピュータに通知し、
前記疑似デバイスドライバは、前記サーバ側コンピュータおける第１のデバイスファイルとして、前記識別情報を含む名前を有する第１のデバイスファイルを生成する
ことを特徴とする通信中継システムが提供される。
【００１６】
また、本発明の実施の形態によれば、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記アプリケーションを備えるサーバ側コンピュータに接続されるデバイス収容端末であって、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部とを備え、
前記クライアント部は、前記デバイス収容端末において前記デバイスを接続するポートの情報を前記サーバ側コンピュータに通知し、
前記サーバ側コンピュータにおいて、前記アプリケーションがデータの読み書きを行うデバイスファイルとして、前記ポートの情報を含む名前を有するデバイスファイルが生成される
ことを特徴とするデバイス収容端末が提供される。
【００１７】
また、本発明の実施の形態によれば、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記デバイスと接続されるデバイス収容端末とデータ通信を行うサーバ側コンピュータであって、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成される第２のデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記第２のデバイスファイルと第１のデバイスファイルを生成し、当該第１のデバイスファイルを介して前記アプリケーションと接続し、前記第２のデバイスファイルを介して前記サーバ部と接続する疑似デバイスドライバと、を備え、
前記サーバ側コンピュータは、前記デバイス収容端末から、当該デバイス収容端末を識別するための識別情報を受信し、
前記疑似デバイスドライバは、前記サーバ側コンピュータおける第１のデバイスファイルとして、前記識別情報を含む名前を有する第１のデバイスファイルを生成する
ことを特徴とするサーバ側コンピュータが提供される。
【００１８】
また、本発明の実施の形態によれば、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムが実行する通信中継方法であって、
前記通信中継システムは、前記アプリケーションを備えるサーバ側コンピュータと、前記デバイスを接続するデバイス収容端末とを備え、
前記デバイス収容端末が前記サーバ側コンピュータに接続要求を送信することにより、前記デバイス収容端末と前記サーバ側コンピュータとの間でコネクションを確立するステップと、
前記サーバ側コンピュータが、前記アプリケーションによりデータの読み書きを行うサーバ側デバイスファイルを生成するステップと、
前記アプリケーションが、前記サーバ側デバイスファイルと、前記デバイス収容端末における前記デバイスに対応するクライアント側デバイスファイルとを介して、前記デバイスとデータ通信を行うステップとを備え、
前記サーバ側デバイスファイルを生成するステップにおいて、前記サーバ側コンピュータは、前記デバイス収容端末から受信した識別情報であって、当該デバイス収容端末を識別するための識別情報を含む名前を有するサーバ側デバイスファイルを生成する
ことを特徴とする通信中継方法が提供される。
【発明の効果】
【００１９】
本発明の実施の形態によれば、デバイスファイルを介したアプリケーションとデバイスとの間の通信を効率的に中継することを可能とする技術が提供される。
【図面の簡単な説明】
【００２０】
【図１】従来技術におけるＴＴＹ機器を接続した端末の例を示す図である。
【図２】複数のＴＴＹ機器収容端末を集約する場合の構成を示す図である。
【図３】本発明の実施の形態に係る通信中継システムの構成図である。
【図４】拠点側のデバイスファイルをセンタ側に移動させたように見える効果を説明するための図である。
【図５】ＴＴＹクライアント２０１とＴＴＹサーバ１０１の機能構成図である。
【図６】疑似ＴＴＹデバイスドライバ１０２の機能構成図である。
【図７】本実施の形態に係る通信中継システムの動作を説明するためのフローチャートである。
【図８】通信中継システムにおける構成と、図７のフローチャートのステップ番号とを示す図である。
【図９】ＴＴＹサーバ１０１が複数のＴＴＹクライアントと接続される場合の通信中継システムの構成図である。
【図１０】分散配置された複数のＴＴＹ機器がセンタ側のコンピュータに直接接続されているように見える効果を説明するための図である。
【図１１】ＩＤを用いて接続先を識別する例を説明するための図である。
【図１２】ＩＤとポート番号を用いて接続先を識別する例を説明するための図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００２２】
（システム構成、機能概要）
図３に、本発明の実施の形態に係る通信中継システムの構成図を示す。図３に示すとおり、本実施の形態に係る通信中継システムは、サーバ側コンピュータ１００、ＴＴＹ機器収容端末２００を有し、ＴＴＹ機器収容端末２００にはＴＴＹ機器２０が接続される。
【００２３】
サーバ側コンピュータ１００は、一例として、センター側データ集約装置に相当する装置である。図３では、１つのＴＴＹ機器収容端末２００がサーバ側コンピュータ１００に接続されているが、一般には複数のＴＴＹ機器収容端末２００がサーバ側コンピュータ１００に接続される。ただし、サーバ側コンピュータ１００が集約機能を持たない装置であってもよく、その場合、複数のＴＴＹ機器収容端末２００ではなく１つのＴＴＹ機器収容端末２００がサーバ側コンピュータ１００に接続される構成であってもよい。
【００２４】
本実施の形態において、サーバ側コンピュータ１００とＴＴＹ機器収容端末２００は、例えばＩＰネットワーク（例：インターネット）により接続される。ＴＴＹ機器２０は、前述したシリアルインタフェースを持つ機器（デバイス）であり、ＴＴＹ機器収容端末２００とインタフェース２０４を介して、例えばＵＳＢシリアル変換ケーブル等により接続される。
【００２５】
サーバ側コンピュータ１００は、Ｌｉｎｕｘ（登録商標）等のＯＳを有するコンピュータである。また、ＴＴＹ機器収容端末２００もＬｉｎｕｘ（登録商標）等のＯＳを有するコンピュータである。
【００２６】
図３に示す構成では、ＴＴＹ機器をネットワーク化するために、アプリケーションソフトウェアにネットワーク機能を追加するのではなく、ＴＴＹ機器２０の種類に依存しない汎用的なソフトウェアが通信機能を受け持つこととしている。具体的には、図３に示すＴＴＹサーバ１０１、疑似ＴＴＹデバイスドライバ１０２、ＴＴＹクライアント２０１が備えられることで、このような通信機能を実現している。
【００２７】
図３に示すように、サーバ側コンピュータ１００は、ＴＴＹサーバ１０１、疑似ＴＴＹデバイスドライバ１０２、アプリケーション１０３を含む。ここでのアプリケーション１０３は、図１に示した従来のＴＴＹ機器制御用アプリケーション１１に相当する。すなわち、本実施の形態では、既存のアプリケーション１１の変更・改造を行うことなく、サーバ側コンピュータ１００において使用することを可能としている。例として、当該アプリケーション１０３は、データを記憶装置１０４（データベース等）に格納したり、データを記憶装置１０４から読み出す機能を含む。また、図３では、アプリケーション１０３を１つだけ示しているが、集約するＴＴＹ機器の種類に応じて、複数種類のアプリケーションを備えてもよい。
【００２８】
ＴＴＹ機器収容端末２００は、ＴＴＹクライアント２０１、ＴＴＹデバイスドライバ２０３を含む。ＴＴＹデバイスドライバ２０３は、既存のＴＴＹデバイスドライバ１３に相当する。
【００２９】
図３に示すＴＴＹサーバ１０１、疑似ＴＴＹデバイスドライバ１０２、及びＴＴＹクライアント２０１は、従来技術にはない構成要素である。これらのソフトウェア（プログラム）は、ＴＴＹ機器収容端末２００に現れるデバイスファイル２０２（例：図中の／ｄｅｖ／ｔｔｙ．ＵＳＢ０）を発見すると、そのインタフェースをサーバ側コンピュータ１００に生成されるＴＴＹデバイスファイル１０５（例：図中の／ｄｅｖ／ｔｔｙ．Ｈｏｓｔ）と結びつける。ＴＴＹクライアント２０１により／ｄｅｖ／ｔｔｙ．ＵＳＢ０から読み出されたデータはサーバ側コンピュータ１００に転送され、アプリケーション１０３により／ｄｅｖ／ｔｔｙ．Ｈｏｓｔから読みだすことができ、逆に／ｄｅｖ／ｔｔｙ．Ｈｏｓｔに書き込まれたデータはＴＴＹ機器収容端末２００に転送され、／ｄｅｖ／ｔｔｙ．ＵＳＢ０に書き出される。
【００３０】
これにより、サーバ側コンピュータ１００にインストールされているＴＴＹ機器制御用のアプリケーション１０３は、自コンピュータ内で生成されている／ｄｅｖ／ｔｔｙ．Ｈｏｓｔをオープンして読み書きすることで、遠隔に設置されたＴＴＹ機器収容端末２００を制御できる。
【００３１】
これは図４に示すように、サーバ側コンピュータ１００にインストールされたＴＴＹ機器制御用のアプリケーション１０３から見れば、ＴＴＹ機器収容端末２００側に生成されたデバイスファイル／ｄｅｖ／ｔｔｙ．ＵＳＢ０が仮想的にサーバ側コンピュータ１００側の／ｄｅｖ／ｔｔｙ．Ｈｏｓｔに移動してきているように見える。これにより、ＴＴＹ機器制御用のアプリケーション１０３には通信機能を具備する必要はなく、もともとＴＴＹ機器収容端末側で動作していたソフトウェア（例：図１のアプリケーション１１）をそのままサーバ側コンピュータ１００で動作させることができる。
【００３２】
（機能、動作の詳細）
以下、図３に示した本実施の形態に係る通信中継システムを機能及び動作をより詳細に説明する。
【００３３】
＜全体の機能の詳細説明＞
図３に示すとおり、ＴＴＹクライアント２０１（プログラム）はＴＴＹ機器収容端末２００にインストールされる。一方、サーバ側コンピュータ１００にはＴＴＹサーバ１０１（プログラム）と擬似ＴＴＹデバイスドライバ１０２（プログラム）がインストールされている。
【００３４】
本実施の形態におけるＴＴＹ機器収容端末２００は、物理的なシリアルポート（インタフェース２０４、ここでは例としてＵＳＢポート）を有しており、／ｄｅｖ／ｔｔｙで始まる名前のファイルが生成されている。
【００３５】
当該インタフェース２０４（ここではＵＳＢポート）に、ＵＳＢシリアル変換ＩＣ（ＵＳＢシリアル変換ケーブル等）が接続されるとする。ＴＴＹ機器収容端末２００には、当該ＵＳＢシリアル変換ＩＣのデバイスドライバ２０３がインストールされており、ＵＳＢのＰｎＰ機能によりその時点で／ｄｅｖ／ｔｔｙ．ＵＳＢ０などの名前を持つデバイスファイル２０２が生成される。
【００３６】
ＴＴＹクライアント２０１は、自分が転送を行うべきデバイスファイル名を初期設定等に基づき保持しており（例えば／ｄｅｖ／ｔｔｙ．ＵＳＢ＊など）、そのファイルが存在したり出現したりすると、ＴＴＹサーバ１０１に対してコネクションを確立する。また、一例として、ＴＴＹ機器収容端末２００においてインタフェース２０４（例：ＵＳＢポート）が２つあり、それぞれにＴＴＹ機器が接続された場合にはデバイスファイル２０２も２つ生成される。ＴＴＹクライアント２０１はデバイスファイル１つにつき、１つのコネクションを生成しようとする。このため２つのＴＴＹ機器が接続されるとそれぞれに対応した２つのコネクションが生成される。
【００３７】
本実施の形態におけるコネクションの種類は特定のものに限定されないが、例えば、ＴＣＰコネクション、ＨＴＴＰコネクション等を用いることができる。
【００３８】
ＴＴＹサーバ１０１はＴＴＹクライアント２０１からの接続要求を待ち受ける。接続要求に基づきコネクションが確立するとＴＴＹサーバ１０１は擬似ＴＴＹデバイスドライバ１０２に対して、ＴＴＹデバイスファイル１０５、キャラクタデバイスファイル１０６の生成を要求する。
【００３９】
サーバ側コンピュータ１００における擬似ＴＴＹデバイスドライバ１０２は、ＯＳのカーネル空間で動作するモジュールであり、ＴＴＹサーバ１０１からの上記指示によりＴＴＹデバイスファイル１０５、キャラクタデバイスファイル１０６を生成する。
【００４０】
一般的には、ＴＴＹデバイスファイルは物理的なシリアルインタフェースに対応付けられており、アプリケーションはこのデバイスファイルにデータをリードライトすることで、シリアルポートに接続されたＴＴＹ機器とデータをやり取りする。
【００４１】
一方、本実施の形態における擬似ＴＴＹデバイスドライバ１０２は、実際には物理的シリアルポートを持たず、その代わりに、キャラクタデバイスファイル１０６（／ｄｅｖ／ＸＸＸ）を生成して、ＴＴＹデバイスファイル１０５（ブロックデバイスファイル）とキャラクタデバイスファイル１０６との間を接続する。これにより、アプリケーション１０３がＴＴＹ機器２０に向けて、ＴＴＹデバイスファイル１０５に書き込んだデータはキャラクタデバイスファイル１０６から読み取ることができて、逆にキャラクタデバイスファイル１０６に書き込まれたデータはあたかもＴＴＹ機器２０が出力したかのように、ＴＴＹデバイスファイル１０５からアプリケーション１０３によって読み込まれる。
【００４２】
１つの擬似ＴＴＹデバイスドライバ１０２は複数のＴＴＹデバイスファイル１０５と、複数のキャラクタデバイスファイル１０６を生成することが可能であり、その間を１対１で接続する。
【００４３】
図中では簡単のために一組のデバイスファイルしか描いていないが、ＴＴＹサーバ１０１が複数のＴＴＹクライアント２０１との間でコネクションを確立する場合、デバイスファイルも確立されたコネクションと同数の組だけ生成される。ＴＴＹ機器収容端末２００で生成されたデバイスファイル１つに付きコネクションが１つ確立されるので、結局、ＴＴＹ機器収容端末２００側の実際のＴＴＹ機器１つにつきサーバ側コンピュータ１００のＴＴＹデバイスファイル１０５が１つ生成されることになる。なお、複数コネクションを有する場合の構成例については後により具体的に説明する。
【００４４】
サーバ側コンピュータ１００でＴＴＹデバイスファイル１０５が生成されると、アプリケーション１０３はそのファイルをオープンできる。それはあたかもローカルマシンに制御対象のＴＴＹ機器２０が接続されている場合の動作に相当する。
【００４５】
ＴＴＹデバイスファイル１０５のオープン後は、通信速度やパリティビット長などのＴＴＹインタフェース属性をアプリケーション１０３から設定してデータの読み書きが開始される。例えばＬｉｎｕｘ（登録商標）では、アプリケーション１０３はｉｏｃｔｌなどのシステムコールで疑似ＴＴＹデバイスドライバ１０２へ属性情報を通知する。疑似ＴＴＹデバイスドライバ１０２は、例えばｉｏｃｔｌにより、通信属性がセットされるとＴＴＹサーバ１０１経由でＴＴＹクライアント２０１に対してその属性情報を伝える。するとＴＴＹクライアント２０１は、その属性のとおり、ＴＴＹ機器収容端末２００のＴＴＹインタフェース属性（通信パラメータ）を設定する。これにより、サーバ側コンピュータ１００のアプリケーション１０３の設定がＴＴＹ機器収容端末２００側（拠点側）のＴＴＹインタフェース２０４に反映され、サーバ側アプリケーション１０３と拠点側ＴＴＹ機器２０との間でデータのやり取りがなされる。
【００４６】
本実施の形態に係るサーバ側コンピュータ１００は、例えば、Ｌｉｎｕｘ（登録商標）等のＯＳを備えるコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、サーバ側コンピュータ１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００４７】
また、本実施の形態に係るＴＴＹ機器収容端末２００は、例えば、Ｌｉｎｕｘ（登録商標）等のＯＳを備えるコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、ＴＴＹ機器収容端末２００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００４８】
＜ＴＴＹクライアントとＴＴＹサーバの機能構成＞
図５に、ＴＴＹクライアント２０１とＴＴＹサーバ１０１の機能構成例を示す。図５に示すように、ＴＴＹクライアント２０１は、デバイスファイル管理部２１０、コネクション確立部２２０、データ通信部２３０、属性設定部２４０を含む。
【００４９】
デバイスファイル管理部２１０は、ＴＴＹクライアント２０１がデータの送受信（読み書き）を行うデバイスファイル名を保持する。例えば、複数のコネクションが設定される場合に、コネクション１で送受信されるデータの読み書きを行うデバイスファイル名が「デバイスファイル１」であれば、コネクション１（を示す識別情報）とデバイスファイル１とを対応付けて保持する。
【００５０】
コネクション確立部２２０は、ＴＴＹサーバ１０１との間でコネクションを確立するための機能部であり、接続要求の送信、接続要求に対する応答受信等を経て、コネクションを確立させる。データ通信部２３０は、ＴＴＹサーバ１０１との間に設定されたコネクションを利用してＴＴＹサーバ１０１との間でデータ通信を行うとともに、アプリケーション１０３とＴＴＹ機器２０間のデータに関しては、デバイスファイルへの読み書きを実施する。例えばＬｉｎｕｘ（登録商標）の場合、ｒｅａｄ／ｗｒｉｔｅのシステムコールをデータ通信部２３０が発行することでデータの読み書きを実施する。また、ＩＤ送信等のためのコントロールデータを送信する際にはコントロールデータであることを示すヘッダを付加して送信する。また、コントロールデータであることを示すヘッダを付加したデータを受信した際には、ヘッダ（例：ＴＴＹ属性であることを示すヘッダ）に対応するコントロール（例：属性設定）のための処理を行う。
【００５１】
属性設定部２４０は、上記のようにしてＴＴＹ属性を受信した場合に、データ通信部２３０からＴＴＹ属性のデータを受け取り、当該ＴＴＹ属性の設定を実施する。例えばＬｉｎｕｘ（登録商標）の場合、属性設定部２４０がｉｏｃｔｌを発行することでＴＴＹ属性の設定を実施する。例えば、当該ＴＴＹ属性に示される通信速度で、ＴＴＹ機器２０とＴＴＹクライアント２０１が通信できるように、ＴＴＹクライアント２０１、ＴＴＹデバイスドライバ２０３、ＴＴＹ機器２０等の設定を行う。
【００５２】
図５に示すように、ＴＴＹサーバ１０１は、コネクション確立部１１０、デバイスファイル生成要求部１２０、データ通信部１３０を含む。
【００５３】
コネクション確立部１１０は、ＴＴＹクライアント２０１との間でコネクションを確立するための機能部であり、接続要求の受信、接続要求に対する応答送信等を経て、コネクションを確立させる。
【００５４】
デバイスファイル生成要求部１２０は、コネクション確立部１１０により確立したコネクションに対応するデバイスファイル（ＴＴＹデバイスファイルとキャラクタデバイスファイル）の生成を疑似ＴＴＹデバイスドライバ１０２に要求する。例えば、デバイスファイル生成要求部１２０から疑似ＴＴＹデバイスドライバ１０２への要求は、疑似ＴＴＹデバイスドライバ１０２の生成する特殊ファイル／ｐｒｏｃ／ｔｔｙ（１０７）に対するｗｒｉｔｅで実行される。
【００５５】
データ通信部１３０は、ＴＴＹクライアント２０１との間に設定されたコネクションを利用してＴＴＹクライアント２０１との間でデータ通信を行うとともに、キャラクタデバイスファイル１０６へのデータ読み書きを実施する。また、ＴＴＹ属性送信等のためのコントロールデータを送信する際にはコントロールデータであることを示すヘッダを付加して送信する。また、コントロールデータであることを示すヘッダを付加したデータを受信した際には、ヘッダ（例：ＩＤ等であることを示すヘッダ）に対応するコントロール（例：疑似ＴＴＹデバイスドライバ１０２に対する、ＩＤを含むデバイスファイル名生成指示等）のための処理を行う。
【００５６】
＜疑似ＴＴＹデバイスドライバの機能構成＞
図６に、疑似ＴＴＹデバイスドライバ１０２の機能構成を示す。図６に示すように、疑似ＴＴＹデバイスドライバ１０２は、デバイスファイル生成部１５０、デバイスファイル間接続部１６０、及び属性情報通知部１７０を含む。更に、疑似ＴＴＹデバイスドライバ１０２は、キャラクタデバイスファイル１０６に対する入出力を行うキャラクタデバイス入出力機能、及び、ＴＴＹデバイスファイル１０５に対する入出力を行うＴＴＹデバイス入出力機能を含む。
【００５７】
例えば、疑似ＴＴＹデバイスドライバ１０２はカーネルモジュールとして実装され、カーネルにインストールされた時点で、デバイスファイル生成部１５０が特殊ファイル／ｐｒｏｃ／ｔｔｙ（１０７）を生成する。デバイスファイル生成部１５０は、／ｐｒｏｃ／ｔｔｙを経由して得られたＴＴＹサーバ１０１からの指示に従って、ＴＴＹデバイスファイル１０５、及びキャラクタデバイスファイル１０６の生成を行う。デバイスファイル間接続部１６０は、ＴＴＹデバイスファイル１０５から、アプリケーション１０３によりｗｒｉｔｅシステムコールで書き込まれたデータを読み取り、当該データを、対応するキャラクタデバイスファイル１０６に書き込む処理や、キャラクタデバイスファイル１０６から、ＴＴＹサーバ１０１により書き込まれたデータを読み取り、当該データを、ｒｅａｄシステムコールに応じて、対応するＴＴＹデバイスファイル１０５に書き込む処理等を行う。
【００５８】
属性情報通知部１７０は、アプリケーション１０３からｉｏｃｔｌシステムコールにより設定されるＴＴＹ属性をＴＴＹクライアント２０１に通知するよう、ＴＴＹサーバ１０１に指示する。
【００５９】
＜動作フロー＞
次に、図７のフローチャートの手順に従って、本実施の形態における図３に示した通信中継システムの動作例について説明する。図８には、図３に示す通信中継システムにおいて、図７で使用しているステップ番号を付したものを示す。以下、図８を参照して、図７のフローチャートを説明する。
【００６０】
サーバ側コンピュータ１００において、疑似ＴＴＹデバイスドライバ１０２をインストールして、ＴＴＹサーバ１０１を起動する（ステップＳ１）。ＴＴＹ機器収容端末２００において、ＴＴＹクライアント２０１を起動すると（ステップＳ２）、ＴＴＹクライアント２０１は、データの転送を行うＴＴＹデバイスファイル２０２を発見する（ステップＳ３）。
【００６１】
ＴＴＹクライアント２０１は、ＴＴＹサーバ１０１との間でコネクションの確立のための処理（接続要求等）を行い（ステップＳ４）、ＴＴＹサーバ１０１は、ＴＴＹクライアント２０１からのコネクションが確立すると擬似ＴＴＹデバイスドライバ１０２にデバイスファイル生成を指示する（ステップＳ５）。
【００６２】
指示を受けた擬似ＴＴＹデバイスドライバ１０２は、ＴＴＹデバイスファイル１０５とキャラクタデバイスファイル１０６を生成する（ステップＳ６）。そして、アプリケーション１０３により、ＴＴＹデバイスファイル１０５がオープンされて、ＴＴＹ属性が設定される（ステップＳ７）。
【００６３】
設定されたＴＴＹ属性は疑似ＴＴＹデバイスドライバ１０２、及びＴＴＹサーバ１０１経由でＴＴＹクライアント２０１に伝えられる（ステップＳ８）。ＴＴＹ属性を受信したＴＴＹクライアント２０１は、当該ＴＴＹ属性で、ＴＴＹ機器２０側の処理部（デバイスファイル２０２、ＴＴＹデバイスドライバ２０３、インタフェース２０４、ＴＴＹ機器２０等）を初期化する（ステップＳ９）。
【００６４】
以上の処理により、サーバ側コンピュータ１００のＴＴＹデバイスファイル１０５とＴＴＹ機器収容端末２００側のデバイスファイル２０２が対応付けされ、アプリケーション１０３はＴＴＹ機器２０と接続される（ステップＳ１０）。
【００６５】
（複数コネクションを持つ構成について）
＜複数コネクションを持つ場合の基本構成＞
一般的なＴＣＰ／ＩＰクライアントサーバソフトウェアと同様に、本実施の形態におけるＴＴＹサーバ１０１は複数のＴＴＹクライアント２０１と接続し、通信する機能を有する。
【００６６】
ＴＴＹサーバ１０１が、複数のＴＴＹクライアント２０１と接続される場合の通信中継システムの構成例を図９に示す。図９の構成では、ＴＴＹサーバ１０１と１つのＴＴＹクライアント２０１との間のコネクションが確立する度に、図７、図８で説明した手順により、サーバ側コンピュータ１００において、当該コネクションに対応するＴＴＹデバイスファイルとキャラクタデバイスファイルとが生成され、これらが接続される。
【００６７】
各コネクションに対応付けて、ＴＴＹデバイスファイルとキャラクタデバイスファイルの名前が決められ、アプリケーション１０３は、コネクションに対応したデバイスファイルを用いてデータの読み書きを行うことで、所望の拠点のＴＴＹ機器２０と通信することができる。図９の例では、例えば、コネクション０に対応して、ＴＴＹデバイスファイル／ｄｅｖ／ｔｔｙ．０とキャラクタデバイスファイル／ｄｅｖ／ｘｘｘ．０が生成されている。
【００６８】
このような機能を備えるＴＴＹサーバクライアントソフトウェアを用いることで、図１０に示すように、センタ側データ集約装置として機能するサーバ側コンピュータ１００は仮想的に複数のシリアルインタフェースポートを持ち、各拠点に分散配置された多数のＴＴＹ機器２０はすべてその仮想ポートに直接接続されているように見える。これにより、ＴＴＹ機器２０に固有のアプリケーション１０３にはネットワーク機能を具備するような改変は必要とされず、従来の機能のままサーバ側コンピュータ１００で動作させることができる。これにより、従来のＴＴＹ機器２０に関するソフトウェア資産をそのまま流用できることになる。
【００６９】
また、ＴＴＹ機器収容端末２００に接続されるＴＴＹ機器２０が変更されたり追加されたとしても、ＴＴＹ機器収容端末２００内のソフトウェアの追加変更は必要がなく、サーバ側コンピュータ１００で動作するアプリケーション１０３を変更したり追加して、各々のソフトウェアが自分の担当するＴＴＹデバイスファイルに接続する。これによりＴＴＹ機器収容端末２００に対するソフトウェア操作が不要になり、オペレーションの煩雑さも軽減される。
【００７０】
＜拠点の識別について＞
上記のようにサーバ側コンピュータ１００では、コネクション毎に複数のデバイスファイルが生成され、ＴＴＹサーバ１０１は複数のＴＴＹクライアント２０１からのコネクションを収容することが可能である。
【００７１】
このとき、サーバ側コンピュータ１００のアプリケーション１０３はどのようにして、目的とする拠点に対応するＴＴＹデバイスファイル（例：図１０に示した／ｄｅｖ／ｔｔｙ．０等）を見つけ出すのかという問題がある。単にコネクションが生成された順番にデバイスファイルの名前を／ｄｅｖ／ｔｔｙ．０、／ｄｅｖ／ｔｔｙ．１、／ｄｅｖ／ｔｔｙ．２、のように命名していたのでは、どの拠点に接続されたＴＴＹ機器２０に対応しているのかが分からない。
【００７２】
そこで、ＴＴＹサーバ１０１は、ＴＴＹクライアント２０１とコネクションを確立したときに何らかの識別子をＴＴＹクライアント２０１側から受け取り、疑似ＴＴＹデバイスドライバ１０２は、デバイスファイル生成時に、当該識別子をデバイスファイル名に付加することとしてよい。例えば、生成されるデバイスファイルの名称は、ＴＴＹサーバ１０１が／ｐｒｏｃ／ｔｔｙに書き込むデータに含められる。疑似ＴＴＹデバイスドライバ１０２は／ｐｒｏｃ／ｔｔｙから読み取った名前でデバイスファイルを生成する。このため、ＴＴＹサーバ１０１が決めた任意の文字列を持つ名前のデバイスファイルを生成することができる。
【００７３】
一例として、デバイスファイル名にＴＴＹクライアント２０１の発信元ＩＰアドレス（識別情報の例）を埋め込む方法がある。すなわち、デバイスファイル名に／ｄｅｖ／ｔｔｙ．１９２．１６８．０．１のようにＩＰアドレスを組み込むのである。この方法は、発信元ＩＰアドレスが変化しない環境において有効な方法である。
【００７４】
しかし、インターネット環境では拠点側（ＴＴＹ機器収容端末２００側）のＩＰアドレスはその時々で変化して、コネクションが切断、再確立すると同じ拠点でも異なる発信元ＩＰアドレスになることがある。これを防止するために、例えば、ＩＰ−ＶＰＮを利用する方法がある（例：特許文献２）。ＩＰ−ＶＰＮは端末の認証と通信の暗号化が主な目的である。通信ではＩＰ−ｉｎ−ＩＰ形式のトンネリング通信プロトコルが使われており、カプセル化される内側のＩＰアドレスはＩＰ−ＶＰＮの認証時に固定的に割り当てることが可能である。そうすると、切断再接続を行っても同じ発信元ＩＰアドレスとなり、デバイスファイル名から拠点を検索できるようになる。
【００７５】
拠点（ＴＴＹ機器収容端末２００）を識別するための識別子としてＩＰアドレスを使用することは一例に過ぎない。ＩＰアドレス以外の識別子を用いてもよい。
【００７６】
一例として、拠点（ＴＴＹ機器収容端末２００）を識別するためのＩＤを、ＴＴＹクライアント２０１からＴＴＹサーバ１０１に通知し、ＴＴＹサーバ１０１が当該ＩＤを疑似ＴＴＹデバイスドライバ１０２に通知することで、疑似ＴＴＹデバイスドライバ１０２が、当該ＩＤを埋め込んだ名前を持つＴＴＹデバイスファイルとキャラクタデバイスファイルを生成することとしてもよい。
【００７７】
図１１は、上記のようにして生成されたＴＴＹデバイスファイルを介してＴＴＹクライアント２０１がサーバ側コンピュータ１００に接続される構成を示す図である。なお、図１１では、接続を分かり良く示すために、図１０と同様の記載方法を用いている。
【００７８】
図１１に示すように、例えば、ｉｄ０で識別される拠点に対してｉｄ０を埋め込んだ名前を持つＴＴＹデバイスファイル（／ｄｅｖ／ｔｔｙ．ｉｄ０）が生成される。アプリケーション１０３は、ｉｄ０で識別される拠点との通信を行う際に、／ｄｅｖ／ｔｔｙ．ｉｄ０のＴＴＹデバイスファイルに対する読み書きを行う。このようにして、アプリケーション１０３は、通信の目的とする拠点のＴＴＹ機器２０を探し出すことができるようになる。
【００７９】
ところで、近年のパソコンや、小型Ｌｉｎｕｘ（登録商標）サーバＢＯＸには、複数のＵＳＢポートを搭載するのものも珍しくはなく、同一のＴＴＹ機器収容端末２００に複数のＴＴＹ機器２０が接続される可能性もある。この場合、ＴＴＹ機器収容端末２００内のデバイスドライバ２０３は１つであっても、ＴＴＹ機器２０ごとにデバイスファイル２０２が生成されるため、複数のデバイスファイル２０２が生成される。
【００８０】
そして、ＴＴＹクライアント２０１からＴＴＹサーバ１０１へのコネクションをデバイスファイルごとに生成することで、１つのＴＴＹクライアント２０１からＴＴＹサーバ１０１に向けて複数のコネクションを開設することもできる。
【００８１】
この場合、図７、図８に示した手順がコネクション毎に実行されることで、サーバ側コンピュータ１００におけるＴＴＹデバイスファイル及びキャラクタデバイスファイルもコネクション毎に生成される。
【００８２】
従って、サーバ側コンピュータ１００におけるアプリケーション１０３は、同一ＴＴＹクライアント２０１に収容される異なる複数のＴＴＹ機器を、異なる複数のＴＴＹデバイスファイル名で識別できる必要がある。
【００８３】
この場合、単にＴＴＹクライアント２０１の識別子やＩＰアドレスだけでＴＴＹデバイスファイルを命名した場合には、ＴＴＹクライアント２０１における複数のＴＴＹ機器２０を識別できないため、例えば、ＴＴＹデバイスファイル名にＴＴＹ機器が接続されるポート番号を付加する。また、ＴＴＹクライアント２０１のＩＤをコネクション毎に異なるように設定しておくこととしてもよい。
【００８４】
例えば、ＩＰアドレスとＵＳＢポート番号で／ｄｅｖ／ｔｔｙ．１９２．１６８．０．１．０と／ｄｅｖ／ｔｔｙ．１９２．１６８．０．１．１のようにＴＴＹデバイスファイルを命名することで、それらのファイルが同一のＴＴＹ機器収容端末２００に接続された異なるＴＴＹ機器２０に対応していることが分かる。
【００８５】
図１２に、１つのＴＴＹ機器収容端末２００（ｉｄ０で識別）に、４つのＴＴＹ機器２０が接続される場合における接続構成例を示す。図１２に示すように、ＴＴＹデバイスファイル名として、ｉｄ０に加えて、ＴＴＹ機器２０を接続するポート番号（ｐｏｒｔ０等）が付加されることで、アプリケーション１０３は、目的とするＴＴＹ機器２０と通信を行うことができる。例えば、アプリケーション１０３は、ｉｄ０の拠点におけるｐｏｒｔ０に接続されるＴＴＹ機器２０と通信を行う場合、／ｄｅｖ／ｔｔｙ．ｉｄ０．ｐｏｒｔ０のＴＴＹデバイスファイルに対して読み書きを実施する。
【００８６】
（ＴＴＹクライアント２０１とＴＴＹサーバ１０１間のシグナリングについて）
ＴＴＹクライアント２０１とＴＴＹサーバ１０１との間の通信は、ＴＴＹ機器２０とアプリケーション１０３間のデータに加え、ＴＴＹクライアント２０１とＴＴＹサーバ１０１間でやり取りするデータも含む。
【００８７】
例えば、前述したように、ＴＴＹクライアント２０１からＴＴＹサーバ１０１に向けてＴＴＹクライアント２０１側のＩＤ、ポート番号等を送信する。また、認証情報を送信してもよい。これにより、不正な端末の接続を防いだり、デバイスファイル名にＴＴＹクライアントＩＤ等を埋め込むことが可能になる。
【００８８】
また、例えば、ＴＴＹ機器２０の設置場所をＩＤとして、／ｄｅｖ／ｔｔｙ．ｔｏｋｙｏや／ｄｅｖ／ｔｔｙ．ｏｓａｋａといった命名が可能になる。また、図１２の構成を実現する際には、ＩＤに加えて、ポート番号を含める。
【００８９】
また、ＴＴＹサーバ１０１からＴＴＹクライアント２０１に向けては、ＴＴＹ機器２０とＴＴＹクライアント２０１間の属性情報（通信パラメータ）をアプリケーション１０３から指示することが可能になる。例えば、ＴＴＹ機器２０によってはシリアル通信速度が９６００ｂｐｓであったり、１１５２００ｂｐｓだったりとさまざまであるが、収容機器の設置されている現場で個別に設定するのではなく、アプリケーション１０３からＴＴＹサーバ１０１を介してＴＴＹクライアント２０１に指示を出して、遠隔で通信パラメータを設定することが可能である。
【００９０】
本実施の形態では、上記のようなＴＴＹサーバ１０１とＴＴＹクライアント２０１間のシグナリングを実現するために、ＴＴＹクライアント２０１とＴＴＹサーバ１０１間で疎通しているデータがＴＴＹ機器２０とアプリケーション１０３間のいわゆる通信データなのか、それともＴＴＹクライアント２０１／ＴＴＹサーバ１０１間でやり取りされるいわゆるコントロールデータなのかを識別するための機能が組み込まれている。具体的には、ＴＴＹサーバ１０１は、ＴＴＹクライアント２０１に対してデータを送信する際に、当該データが、コントロールデータであるか通信データであるかを示すパケットヘッダを付加する。また、ＴＴＹクライアント２０１は、ＴＴＹサーバ１０１に対してデータを送信する際に、当該データが、コントロールデータであるか通信データであるかを示すパケットヘッダを付加する。
【００９１】
ヘッダ付きのデータを受信したＴＴＹクライアント２０１／ＴＴＹサーバ１０１は、当該ヘッダに基づき、例えば、ＩＤのデバイスファイル名への設定のための処理や、ＴＴＹ属性（通信パラメータ等）の設定のための処理を行うことができる。
【００９２】
（その他の例）
これまでに説明した例は、シリアルインタフェースで端末１０に接続されるＴＴＹ機器を対象としているが、本発明の適用範囲はシリアルインタフェースで通信する機器に限定されるわけではない。すなわち、汎用オペレーティングシステムで生成されるデバイスファイルであれば、他のタイプのものでも適用可能である。
【００９３】
例えば、パラレルインタフェースで接続される機器にも本発明を適用可能である。具体的には、例えば、これまでに説明した方式を適用することで、拠点側のパラレルポート（パラレルインタフェースで接続される機器に対応するデバイスファイル）をセンタ側のコンピュータに仮想的に移動させることで、センタ側コンピュータから拠点側のコンピュータに接続されたプリンタ／ｄｅｖ／ｐｒｎに対して印字を指示したり、また、拠点側のコンピュータに接続されているハードディスクデバイス／ｄｅｖ／ｓｄａをあたかも自ホストに接続されているようにマウントすることも可能である。また、パラレルポートにプリンタ以外の機器を接続している場合には、遠隔印刷のアプリケーションではその機器をネットワーク化することは困難であり、本発明に係るデバイスファイル転送が有効になる。
【００９４】
（実施の形態のまとめ）
以上、説明したように、本実施の形態により、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムであって、前記通信中継システムは、サーバ側コンピュータとデバイス収容端末とを備え、前記サーバ側コンピュータは、前記アプリケーションと、前記サーバ側コンピュータにおいて生成されたデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、前記デバイスファイルを生成して、前記アプリケーションと前記サーバ部とを接続する疑似デバイスドライバと、を備え、前記デバイス収容端末は、前記デバイスと接続するインタフェースと、前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部と、を備える通信中継システムが提供される。
【００９５】
前記疑似デバイスドライバは、前記サーバ側コンピュータにおける前記デバイスファイルとして、第１のデバイスファイルと第２のデバイスファイルを生成し、当該第１のデバイスファイルと当該第２のデバイスファイルとを接続し、前記アプリケーションが前記第１のデバイスファイルに対してデータの読み書きを行い、前記サーバ部が前記第２のデバイスファイルに対してデータの読み書きを行うことにより、前記アプリケーションは前記デバイスとデータ通信を行うように構成してもよい。
【００９６】
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末を識別するための識別情報を前記サーバ側コンピュータに通知し、前記サーバ側コンピュータは、当該サーバ側コンピュータおけるデバイスファイルとして、前記識別情報を含む名前を有するデバイスファイルを生成するようにしてもよい。
【００９７】
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末において前記デバイスを接続するポート情報を前記サーバ側コンピュータに通知し、前記サーバ側コンピュータは、前記サーバ側コンピュータおけるデバイスファイルとして、前記ポート情報を含む名前を有するデバイスファイルを生成するようにしてもよい。
【００９８】
前記サーバ側コンピュータおける前記サーバ部は、前記アプリケーションにより設定される属性情報を前記デバイス収容端末における前記クライアント部に通知し、前記クライアント部は、前記属性情報に基づいて前記デバイスとの通信に関するパラメータの設定を行うこととしてもよい。
【００９９】
また、本実施の形態により、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記アプリケーションを備えるサーバ側コンピュータに接続されるデバイス収容端末であって、前記デバイスと接続するインタフェースと、前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部とを備えるデバイス収容端末が提供される。
【０１００】
また、本実施の形態により、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記デバイスと接続されるデバイス収容端末とデータ通信を行うサーバ側コンピュータであって、前記アプリケーションと、前記サーバ側コンピュータにおいて生成されたデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、前記デバイスファイルを生成して、前記アプリケーションと前記サーバ部とを接続する疑似デバイスドライバとを備えるサーバ側コンピュータが提供される。
【０１０１】
また、本実施の形態により、アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムが実行する通信中継方法であって、前記通信中継システムは、前記アプリケーションを備えるサーバ側コンピュータと、前記デバイスを接続するデバイス収容端末とを備え、前記デバイス収容端末が前記サーバ側コンピュータに接続要求を送信することにより、前記デバイス収容端末と前記サーバ側コンピュータとの間でコネクションを確立するステップと、前記サーバ側コンピュータが、前記アプリケーションによりデータの読み書きを行うサーバ側デバイスファイルを生成するステップと、前記サーバ側デバイスファイルと、前記デバイス収容端末における前記デバイスに対応するクライアント側デバイスファイルとを介して、前記アプリケーションと前記デバイスとの間のデータ通信の中継を行うステップとを備える通信中継方法が提供される。
【０１０２】
（第１項）
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムであって、
前記通信中継システムは、サーバ側コンピュータとデバイス収容端末とを備え、
前記サーバ側コンピュータは、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成されたデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記デバイスファイルを生成して、前記アプリケーションと前記サーバ部とを接続する疑似デバイスドライバと、を備え、
前記デバイス収容端末は、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部と、を備える
ことを特徴とする通信中継システム。
（第２項）
前記疑似デバイスドライバは、前記サーバ側コンピュータにおける前記デバイスファイルとして、第１のデバイスファイルと第２のデバイスファイルを生成し、当該第１のデバイスファイルと当該第２のデバイスファイルとを接続し、
前記アプリケーションが前記第１のデバイスファイルに対してデータの読み書きを行い、前記サーバ部が前記第２のデバイスファイルに対してデータの読み書きを行うことにより、前記アプリケーションは前記デバイスとデータ通信を行う
ことを特徴とする第１項に記載の通信中継システム。
（第３項）
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末を識別するための識別情報を前記サーバ側コンピュータに通知し、
前記サーバ側コンピュータは、当該サーバ側コンピュータおけるデバイスファイルとして、前記識別情報を含む名前を有するデバイスファイルを生成する
ことを特徴とする第１項又は第２項に記載の通信中継システム。
（第４項）
前記デバイス収容端末における前記クライアント部は、当該デバイス収容端末において前記デバイスを接続するポート情報を前記サーバ側コンピュータに通知し、
前記サーバ側コンピュータは、前記サーバ側コンピュータおけるデバイスファイルとして、前記ポート情報を含む名前を有するデバイスファイルを生成する
ことを特徴とする第１項ないし第３項のうちいずれか１項に記載の通信中継システム。
（第５項）
前記サーバ側コンピュータおける前記サーバ部は、前記アプリケーションにより設定される属性情報を前記デバイス収容端末における前記クライアント部に通知し、
前記クライアント部は、前記属性情報に基づいて前記デバイスとの通信に関するパラメータの設定を行う
ことを特徴とする第１項ないし第４項のうちいずれか１項に記載の通信中継システム。
（第６項）
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記アプリケーションを備えるサーバ側コンピュータに接続されるデバイス収容端末であって、
前記デバイスと接続するインタフェースと、
前記デバイス収容端末において生成されたデバイスファイルを介して前記デバイスと接続するとともに、前記サーバ側コンピュータとデータ通信を行うクライアント部と
を備えることを特徴とするデバイス収容端末。
（第７項）
コンピュータを、第６項に記載のデバイス収容端末における前記クライアント部として機能させるためのプログラム。
（第８項）
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムにおいて、前記デバイスと接続されるデバイス収容端末とデータ通信を行うサーバ側コンピュータであって、
前記アプリケーションと、
前記サーバ側コンピュータにおいて生成されたデバイスファイルと接続するとともに、前記デバイス収容端末とデータ通信を行うサーバ部と、
前記デバイスファイルを生成して、前記アプリケーションと前記サーバ部とを接続する疑似デバイスドライバと
を備えることを特徴とするサーバ側コンピュータ。
（第９項）
コンピュータを、第８項に記載のサーバ側コンピュータにおける前記サーバ部及び前記疑似デバイスドライバとして機能させるためのプログラム。
（第１０項）
アプリケーションとデバイスとの間でデータ通信の中継を行う通信中継システムが実行する通信中継方法であって、前記通信中継システムは、前記アプリケーションを備えるサーバ側コンピュータと、前記デバイスを接続するデバイス収容端末とを備え、
前記デバイス収容端末が前記サーバ側コンピュータに接続要求を送信することにより、前記デバイス収容端末と前記サーバ側コンピュータとの間でコネクションを確立するステップと、
前記サーバ側コンピュータが、前記アプリケーションによりデータの読み書きを行うサーバ側デバイスファイルを生成するステップと、
前記サーバ側デバイスファイルと、前記デバイス収容端末における前記デバイスに対応するクライアント側デバイスファイルとを介して、前記アプリケーションと前記デバイスとの間のデータ通信の中継を行うステップと
を備えることを特徴とする通信中継方法。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１０３】
１０  端末
１１  アプリケーション
１２  デバイスファイル
１３  ＴＴＹデバイスドライバ
１４  インタフェース
２０  ＴＴＹ機器
３０  センター側データ集約装置
１００  サーバ側コンピュータ
１０１  ＴＴＹサーバ
１０２  疑似ＴＴＹデバイスドライバ
１０３  アプリケーション
１０４  記憶装置
１０５  ＴＴＹデバイスファイル
１０６  キャラクタデバイスファイル
１０７  特殊ファイル（／ｐｒｏｃ／ｔｔｙ）
１１０  コネクション確立部
１２０  デバイスファイル生成要求部
１３０  データ通信部
１５０  デバイスファイル生成部
１６０  デバイスファイル間接続部
１７０  属性情報通知部
２００  ＴＴＹ機器収容端末
２０１  ＴＴＹクライアント
２０２  デバイスファイル
２０３  ＴＴＹデバイスドライバ
２０４  インタフェース
２１０  デバイスファイル管理部
２２０  コネクション確立部
２３０  データ通信部
２４０  属性設定部
【図１】
0006539497.tif 000002
【図２】
0006539497.tif 000003
【図３】
0006539497.tif 000004
【図４】
0006539497.tif 000005
【図５】
0006539497.tif 000006
【図６】
0006539497.tif 000007
【図７】
0006539497.tif 000008
【図８】
0006539497.tif 000009
【図９】
0006539497.tif 000010
【図１０】
0006539497.tif 000011
【図１１】
0006539497.tif 000012
【図１２】
0006539497.tif 000013