(57)【特許請求の範囲】
【請求項１】
少なくとも一つのアプリケーションプロセスと、該アプリケーションプロセスのユーザインタフェースとして機能する少なくとも二つの入出力制御プロセス（入出力制御プロセスＡ、Ｂとする）が動作可能な一又は複数の計算機を備えた計算機システムに用いられる入出力先切替システムにおいて、
変換テーブルと、
前記入出力制御プロセスＡと前記アプリケーションプロセスの両者に接続して、これらの間のメッセージ交換を実現する手段と、
前記メッセージ交換が行なわれている際に、交換されるメッセージを参照し、参照したメッセージに入出力制御プロセスＡ固有のデータが含まれているか否かを判定する手段と、
前記参照したメッセージに入出力制御プロセスＡ固有のデータが含まれていると判定された場合に、このデータを読み出して前記変換テーブルに登録する手段と、
切替指示を受け付ける手段と、
前記切替指示を受付けた場合に、前記入出力制御プロセスＢと前記アプリケーションプロセスの両者に接続し、該入出力制御プロセスＢに向けて初期処理用のメッセージを送信する手段と、
前記入出力制御プロセスＢから発せられた、前記初期処理用のメッセージの応答メッセージを取得し、取得したメッセージに、前記入出力制御プロセスＡ固有のデータに対応する、入出力制御プロセスＢ固有のデータが含まれているか否かを判定する手段と、
前記取得したメッセージに前記入出力制御プロセスＢ固有のデータが含まれていると判定された場合に、このデータを読み出して、前記変換テーブルに登録する手段と、
前記入出力制御プロセスＢと前記アプリケーションプロセスとの間でメッセージ交換を実現すると共に、その際、前記入出力制御プロセスＢから前記アプリケーションプロセスに向けて発せられるメッセージに、入出力制御プロセスＢ固有のデータが含まれている場合には、前記変換テーブルを参照して、該入出力制御プロセスＢ固有のデータに対応する入出力制御プロセスＡ固有のデータを該メッセージに格納し、かつ、前記アプリケーションプロセスから前記入出力制御プロセスＢに向けて発せられるメッセージに入出力制御プロセスＡ固有のデータが含まれている場合には、前記変換テーブルを参照して、該入出力制御プロセスＡ固有のデータに対応する入出力制御プロセスＢ固有のデータを該メッセージに格納すること
を特徴とする入出力先切替システム。
【請求項２】
請求項１に記載の入出力先切替システムおいて、
前記入出力制御プロセスＡと前記アプリケーションプロセスの両者に接続して、これらの間のメッセージ交換を実現する手段は、
前記アプリケーションプロセスに接続したのち、外部から与えられる接続許可を待ち、接続許可を待つ間、前記アプリケーションプロセスから発せられたメッセージに対して応答が必要か否かの判定を行い、該応答が必要であると判定した場合、応答メッセージを作成し、前記アプリケーションプロセスに送信する応答処理を実行する手段と、
前記接続許可を受けたのち、前記入出力制御プロセスＡに接続する手段と、を含むこと
を特徴とする入出力先切替システム。
【請求項３】
請求項１に記載の入出力先切替システムおいて、
前記アプリケーションプロセスから前記入出力制御プロセスＡに向けて送出されるメッセージには、前記入出力制御プロセスＡ向けの初期処理用のメッセージが含まれていて、
前記入出力制御プロセスＡと前記アプリケーションプロセスの両者に接続して、これらの間のメッセージ交換を実現する手段は、
前記アプリケーションプロセスから前記入出力制御プロセスＡに向けて送出されるメッセージのうち前記初期処理用のメッセージを少なくとも保管する手段を含み、
前記初期処理用のメッセージを送信する手段は、保管した前記初期処理用メッセージのうちの一部又は全部のメッセージを、データ部分をそのままの状態で又は該部分に変換処理を施して、前記入出力制御プロセスＢ向けの初期処理用のメッセージとして前記入出力制御プロセスＢに送信すること
を特徴とする入出力先切替システム。
【請求項４】
少なくとも一つのアプリケーションプロセスと、該アプリケーションプロセスのユーザインタフェースとして機能する少なくとも二つの入出力制御プロセスが動作可能な一又は複数の計算機を備えた計算機システムに用いられる入出力先切替システムにおいて、
接続要求メッセージを受け付け、前記二つの入出力制御プロセスのうちの一方の入出力制御プロセス、当該入出力先切替システム、および、前記アプリケーションプロセスを論理的に結合する手段と、
変換テーブルと、
前記接続要求メッセージの受け付けによる前記論理的な結合が行なわれたのち、前記一方の入出力制御プロセスと前記アプリケーションプロセスとの間で送受されるメッセージを参照し、参照したメッセージに予め定めた種類のデータが含まれているか否かを判定する手段と、
前記参照したメッセージに予め定めた種類のデータが含まれていると判定された場合に、そのデータを切替前データとして前記変換テーブルに登録する手段と、
切替指示を受け付ける手段と、
前記切替指示を受付けた場合に、前記一方の入出力制御プロセスと当該入出力先切替システムとの論理的な結合を解除するか又はそのままにした状態で、かつ、当該入出力先切替システムと前記アプリケーションプロセスとの論理的な結合はそのままにした状態で、前記二つの入出力制御プロセスのうちの他方の入出力制御プロセスと当該入出力先切替システムとを論理的に結合する手段と、
前記切替要求メッセージによる前記論理的な結合が行なわれたのち、前記他方の入出力制御プロセスから前記アプリケーションプロセスに向けて送出されるメッセージを取得して、それを参照し、参照したメッセージに前記予め定めた種類と同じ種類のデータが含まれているか否かを判定する手段と、
参照したメッセージに前記予め定めた種類と同じ種類のデータが含まれている場合に、そのデータを切替後データとして前記変換テーブルに登録する手段と、
前記切替後データの登録が行われたのち、前記アプリケーションプロセスから前記他方の入出力制御プロセスに向けて送出されるメッセージを取得して、それを参照し、参照したメッセージに前記切替前データと同一データが含まれているか否かを判定する手段と、
参照したメッセージに前記切替前データと同一データが含まれていると判定された場合に、該切替前データに対応する切替後データを前記変換テーブルから読み出し、読み出した切替後データで、取得したメッセージ内の切替前データを上書きするか、又は読み出した切替後データを該メッセージ内に追加して、このメッセージを送り先である前記他方の入出力制御プロセスに送信する手段とを備えること
を特徴とする入出力切り替えシステム。
【請求項５】
一又は複数のウィンドウを表示画面に表示し、表示画面に表示したウィンドウに対するデータの入出力を制御する入出力制御プロセスを備えた計算機が通信ネットワークを介して複数台接続され、これらの計算機又は該通信ネットワークに接続された別の計算機に搭載されたアプリケーションプロセスと前記複数の計算機のうちの何れかの入出力制御プロセスとの間でメッセージが送受される計算機システムに用いられる入出力先切替システムにおいて、
変換テーブルと、
前記複数の入出力制御プロセスのうちの一の入出力制御プロセス（入出力制御プロセスＡとする）と、前記アプリケーションプロセスとの間のメッセージの送受信を行うと共に、前記送受信が行われている際に、送受信されるメッセージを参照し、該参照したメッセージに入出力制御プロセスＡ固有のデータが含まれているか否かを判定し、前記参照したメッセージに入出力制御プロセスＡ固有のデータが含まれていると判定された場合に、このデータを前記変換テーブルに登録する第１の処理と、
前記複数の入出力制御プロセスのうちの前記入出力制御プロセスＡ以外の入出力制御プロセス（入出力制御プロセスＢとする）と、前記アプリケーションプロセスとの間のメッセージ交換を実現すると共に、その際、前記入出力制御プロセスＢから前記アプリケーションプロセスに向けて発せられるメッセージに、入出力制御プロセスＢ固有のデータがメッセージに含まれている場合には、このデータを前記変換テーブルに登録すると共に、前記変換テーブルを参照して、該入出力制御プロセスＢ固有のデータに対応する入出力制御プロセスＡ固有のデータを該メッセージに格納し、かつ、前記アプリケーションプロセスから前記入出力制御プロセスＢに向けて発せられるメッセージに、入出力制御プロセスＡ固有のデータがメッセージに含まれている場合には、前記変換テーブルを参照して、該入出力制御プロセスＡ固有のデータに対応する入出力制御プロセスＢ固有のデータを該メッセージに格納する第２の処理と、を実行可能な手段と、
与えられた指示に応じて、前記第１の処理と前記第２の処理を選択的に実行させる手段とを備えたこと
を特徴とする入出力先切替システム。
【請求項６】
請求項５に記載の入出力先切替システムにおいて、
前記第１の処理と前記第２の処理を切り替える際に、切り替え前のウィンドウの表示内容と同一の内容を切り替え後のウィンドウに表示する手段をさらに備えること
を特徴とする入出力先切替システム。
【請求項７】
一又は複数のウィンドウを表示画面に表示し、表示画面に表示したウィンドウに対するデータの入出力を制御する入出力制御プロセスを備えた計算機が通信ネットワークを介して複数台接続され、これらの計算機又は該通信ネットワークに接続された別の計算機に搭載されたアプリケーションプロセスと前記複数の計算機のうちの何れかの入出力制御プロセスとの間でメッセージが送受される計算機システムに用いられる入出力先切替プログラムを記録した記録媒体であって、
前記入出力先切替プログラムには、変換テーブルが含まれていて、
前記複数の入出力制御プロセスのうちの一の入出力制御プロセス（入出力制御プロセスＡとする）と、前記アプリケーションプロセスとの間のメッセージの送受信を行うと共に、前記送受信が行われている際に、送受信されるメッセージを参照し、該参照したメッセージに入出力制御プロセスＡ固有のデータが含まれているか否かを判定し、前記参照したメッセージに入出力制御プロセスＡ固有のデータが含まれていると判定された場合に、このデータを前記変換テーブルに登録する第１の処理と、
前記複数の入出力制御プロセスのうちの前記入出力制御プロセスＡ以外の入出力制御プロセス（入出力制御プロセスＢとする）と、前記アプリケーションプロセスとの間のメッセージ交換を実現すると共に、その際、前記入出力制御プロセスＢから前記アプリケーションプロセスに向けて発せられるメッセージに、入出力制御プロセスＢ固有のデータがメッセージに含まれている場合には、このデータを前記変換テーブルに登録すると共に、前記変換テーブルを参照して、該入出力制御プロセスＢ固有のデータに対応する入出力制御プロセスＡ固有のデータを該メッセージに格納し、かつ、前記アプリケーションプロセスから前記入出力制御プロセスＢに向けて発せられるメッセージに、入出力制御プロセスＡ固有のデータがメッセージに含まれている場合には、前記変換テーブルを参照して、該入出力制御プロセスＡ固有のデータに対応する入出力制御プロセスＢ固有のデータを該メッセージに格納する第２の処理とを、与えられた指示に応じて選択的に実行するための入出力先切替プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションプロセスのユーザインタフェースとして機能する入出力制御プロセスをアプリケーションプロセス側に影響を与えることなく任意時点で切り替えることができる入出力先切替システムに関する。
【０００２】
【従来の技術】
ユーザインタフェースの切り替えに関する技術としては、例えば、特開平２−２１３５４号公報に記載のリモートコントロールや、特開平５−２７４２４０号公報に記載のアプリケーションプログラム（ＡＰ）共有がある。リモートコントロールでは、ある計算機を別の計算機から操作できるようになり、対象画面は操作元の計算機に出力される。一方、ＡＰ共有では、ある計算機で動作しているＡＰの演算結果が複数計算機に出力されるため、複数ユーザの共同作業が可能となる。
【０００３】
また、特願平８−２２９６９１号の切替システムでは、出力先の計算機に合わせて画面表示サイズの拡大縮小変更や入力内容の変更が可能となる。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の切替システムは、ＡＰの入出力先がＡＰの起動時に指定されるため、途中で入出力先計算機を変更しようとした場合に、ＡＰを起動し直す必要があった。
【０００５】
例えば、ある計算機でプラントの運転監視画面を表示している際に、該計算機のウィンドウシステムに異常が発生し、画面表示ができなくなったとき、従来の切替システムでは、運転監視用のＡＰは正常に動作しているにもかかわらず、その後の運転監視画面表示を行うためには該ＡＰを起動し直す必要があった。この場合、ＡＰによるプラントの監視処理は一旦中断されることになる。
【０００６】
また、計算機に出力表示できるＡＰが１つに制限されるシステム構成において、あるＡＰの出力表示を行っている最中に別のＡＰの出力表示要求が発生した場合、従来の切替システムでは、出力中のＡＰと計算機のユーザインタフェース部分を一旦切断し、このユーザインタフェース部分に別のＡＰを接続する必要があった。つまり、出力先の計算機が同一であるにもかかわらず、出力表示するＡＰが切り替えられるたびに、ＡＰの接続をやり直さなければならなかった。
【０００７】
このように従来の切替システムは、ＡＰに通常動作をさせたまま、入出力先を変更することができないという問題を抱えていた。
【０００８】
このような問題点に鑑み、本発明は、アプリケーションプロセスのユーザインタフェースとして機能する入出力制御プロセスをアプリケーションプロセス側に影響を与えることなく任意時点で切り替えることができる入出力先切替システムを提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するための本発明の一態様によれば、少なくとも一つのアプリケーションプロセスと、該アプリケーションプロセスのユーザインタフェースとして機能する少なくとも二つの入出力制御プロセス（入出力制御プロセスＡ、Ｂとする）が動作可能な一又は複数の計算機を備えた計算機システムに用いられる入出力先切替システムにおいて、
変換テーブルと、
前記入出力制御プロセスＡと前記アプリケーションプロセスの両者に接続して、これらの間のメッセージ交換を実現する手段と、
前記メッセージ交換が為されている際に、交換されるメッセージを参照し、参照したメッセージに入出力制御プロセスＡ固有のデータが含まれているか否かを判定する手段と、
参照したメッセージに入出力制御プロセスＡ固有のデータが含まれていると判定された場合に、このデータを読み出して前記変換テーブルに登録する手段と、
切替指示を受け付け、前記入出力制御プロセスＢと前記アプリケーションプロセスの両者に接続し、該入出力制御プロセスＢに向けて初期処理用のメッセージを送信する手段と、
前記入出力制御プロセスＢから発せられた、前記初期処理用のメッセージの応答メッセージを取得し、取得したメッセージに、前記入出力制御プロセスＡ固有のデータに対応する、入出力制御プロセスＢ固有のデータが含まれているか否かを判定する手段と、
取得したメッセージに前記入出力制御プロセスＢ固有のデータが含まれていると判定された場合に、このデータを読み出して、前記変換テーブルに登録する手段と、
前記入出力制御プロセスＢと前記アプリケーションプロセスとの間でメッセージ交換を実現すると共に、その際、前記入出力制御プロセスＢから前記アプリケーションプロセスに向けて発せられるメッセージに、入出力制御プロセスＢ固有のデータが含まれている場合には、前記変換テーブルを参照して、該入出力制御プロセスＢ固有のデータに対応する入出力制御プロセスＡ固有のデータを該メッセージに格納し、かつ、前記アプリケーションプロセスから前記入出力制御プロセスＢに向けて発せられるメッセージに入出力制御プロセスＡ固有のデータが含まれている場合には、前記変換テーブルを参照して、該入出力制御プロセスＡ固有のデータに対応する入出力制御プロセスＢ固有のデータを該メッセージに格納することを特徴とする入出力先切替システムが提供される。
【００１０】
【発明の実施の形態】
以下、本発明の実施形態の幾つかを図面を参照しながら説明する。
【００１１】
＜第１の実施形態＞
図１は、第１の実施形態の入出力先切替システムが適用される計算機システムの構成図である。
【００１２】
同図において、複数の計算機（計算機＃１ １０ａ、計算機＃２ １０ｂ、プログラムサーバ＃１ １４ａ、プログラムサーバ＃２ １４ｂ）は、通信ネットワーク１５を介して接続されている。なお、以下の文章中、計算機１０ａと記載した場合には、計算機１０ａそのものを指し、計算機１０と記載した場合には、計算機１０ａ、１０ｂの両者を指すものとする。この記載方法は、その他の構成要素の説明の際にも使用する。
【００１３】
計算機１０は、ＣＰＵやメモリを内蔵した本体のほか、ディスプレイ装置１１、キーボード１２、および、マウス１３を備えている。プログラムサーバ１４は、本体のみから構成されるようなものであっても構わない。
【００１４】
図２は、図１の計算機システムを構成する各機器の機能構成を示した図である。
【００１５】
計算機１０およびプログラムサーバ１４は、それぞれ、プロセスの制御、タイマ管理、通信制御等を行うオペレーティングシステム（ＯＳ）２０３を有する。本実施形態の入出力先切替システム（入出力先切替システム２００）は、プログラムサーバ１４ｂに置かれている。入出力先切替システム２００が対象とするアプリケーションプログラム（対象ＡＰ２０１）は、プログラムサーバ１４ａに置かれている。対象ＡＰ２０１の入出力は計算機１０を通して行なわれ、この入出力用計算機は、任意時点で変更される。本実施形態では、この変更指示を指示プログラム２０４が発行する。指示プログラム２０４は、複数存在してもよく、ここでは、計算機１０ａに指示プログラム２０４ａが置かれ、プログラムサーバ１４ａに指示プログラム２０４ｂが置かれている。なお、プログラムは、一般に、ＯＳの管理下に置かれた際、プロセスと呼ばれることもあるが、本実施形態では、これらを明確に区別する必要はないので同義として扱う。例えば、入出力先切替システムは、換言すれば、入出力先切替プロセスであり、これを実現するプログラムについては、プログラムサーバ１４ｂに置かれている。入出力先切替システムを実現するためのプログラムは、通常のプロフラムと同様に、フロッピーディスク等の記憶媒体に格納して持ち運ぶことが可能である。
【００１６】
また、計算機１０は、入出力制御プロセスを持つ。本実施形態では、入出力制御プロセスとして、対象ＡＰ２０１からの表示命令に従い、ディスプレイ装置１１にウィンドウを表示したり、表示画面に生成されたウィンドウに対する、キーボード１２やマウス１３を用いた入力操作を受け付け、これを入力データとして対象ＡＰ２０１へ送信したりするウィンドウシステム２０２を用いている。
【００１７】
以上、図１および図２を用いて計算機システムの全体構成について説明したが、この計算機システムでは、対象ＡＰ２０１の入出力先となる計算機を一つに制限している。したがって、計算機１０ａを対象ＡＰ２０１の入出力先計算機として選択した場合、計算機１０ｂは、待機状態にしておくか又は対象ＡＰ２０１と関係のない処理をさせておく。このとき、対象ＡＰ２０１は、表示画面の設計や入力データに関して、ディスプレイ装置１１ａ、キーボード１２ａ、マウス１３ａを想定していることになる。
【００１８】
このような状況設定のもと、例えば、対象ＡＰ２０１の入出力先計算機を、計算機１０ａから計算機１０ｂに変更したい場合が生じたとする。変更理由は、システムの管理スケジュールによるもの、ウィンドウシステムの障害によるもの等、何でもよい。
【００１９】
入出力先切替システム２００は、このような場合、以下に述べる各種機能を用いて、対象ＡＰ２０１の入出力先計算機を、計算機１０ａから計算機１０ｂに変更する。
【００２０】
なお、入出力先の計算機が変更されると、対象ＡＰ２０１の出力データがディスプレイ装置１１ｂに表示され、かつ、キーボード１２ｂ、マウス１３ｂを用いた入力操作が行われ、これらの入出力環境は、対象ＡＰ２０１が当初想定していたものと異なることになる。
【００２１】
そこで、入出力先切替システム２００は、入出力先計算機の切り替えに伴う入出力環境の違いを吸収し、入出力先が変更されたことを動作中の対象ＡＰ２０１が認識する必要のないようにしている。
【００２２】
図３は、入出力先切替システム２００の構成を機能別に示した図である。
【００２３】
入出力先切替システム２００は、対象ＡＰ２０１およびウィンドウシステム２０２の両者に論理的に結合して、これらの仲介役を勤めるもので、具体的には、対象ＡＰ２０１側のインタフェースとして機能する出力メッセージ取得手段３０１および入力メッセージ送信手段３０３と、ウィンドウシステム２０２側のインタフェースとして機能する出力メッセージ送信手段３０２および入力メッセージ取得手段３０４と、各ウィンドウシステム固有のデータが登録される変換テーブル（出力環境データ変換テーブル３０９および入力環境データ変換テーブル３１０）と、出力環境データ変換テーブル３０９を参照しながらデータ変換を実施するデータ変換手段３０７と、入力環境データ変換テーブル３１０を参照しながらデータ変換を実施するデータ変換手段３０８と、指示プログラム２０４から出力された切替指示を受信する切替指示受信手段３０５と、切替指示の受信を契機にウィンドウシステムを切り替える接続先切替手段３０６とを有する。出力環境データ変換テーブル３０９には、主に、画面に表示するウィンドウに関する情報が登録される。入力環境データ変換テーブル３１０には、主に、キーボードやマウスなどの入力装置に関する情報が登録される。指示プログラム２０４は、対象ＡＰ２０１と別プログラムになっているが、これらは同一プログラムにしてもよい。また、入出力先切替システム２００内部で入出力先切替指示を発行するようにしてもよい。
【００２４】
出力メッセージ取得手段３０１は、対象ＡＰ２０１からのメッセージ（例えば、表示命令）を取得すると、これを変換手段３０７に渡す。変換手段３０７は、必要があれば、この表示命令の内容を変換テーブル３０９を用いて変換し、これを出力メッセージ送信手段３０２に渡す。出力メッセージ送信手段３０２は、渡された表示命令をウィンドウシステム２０２に向けて送信する。
【００２５】
入力メッセージ取得手段３０４は、ウィンドウシステム２０２からのメッセージ（例えば、入力データ）を取得すると、これを変換手段３０８に渡す。変換手段３０８は、必要があれば、この入力データの内容を変換テーブル３１０を用いて変換し、これを変換手段３０７に渡す。変換手段３０７は、必要があれば、渡された入力データの内容を変換テーブル３０９を用いて変換し、これを入力メッセージ送信手段３０３に渡す。入力メッセージ送信手段３０３は、渡された入力データを対象ＡＰ２０１に向けて送信する。
【００２６】
切替指示受信手段３０５で受信する指示メッセージは、２種類存在する。ひとつは、現入出力先ウィンドウシステムとの接続の解除を求める切断指示メッセージであり、もうひとつは、新入出力先ウィンドウシステムとの接続を求める接続指示メッセージである。指示に応じた処理は、接続先切替手段３０６が実行する。
【００２７】
図４に、変換テーブル３０９の構成例を示す。
【００２８】
変換テーブル３０９には、データ種別４０１と、対象ＡＰが最初に接続したウィンドウシステムのデータ（仮データ）４０２と、ウィンドウシステムの切り替えによって新たに接続したウィンドウシステムのデータ（実データ）４０３が登録される。データ種別４０１は、データの種類を表すもので、例えば、ウィンドウ識別子、ピクセル値、フォントＩＤなどが存在する。ウィンドウ識別子は、ウィンドウを生成した際に、そのウィンドウに与えられる識別子である。ピクセル値は、描画しようとする色に対して割り当てられる値である。フォントＩＤは、フォントをロードした際に返される識別子である。これらの値は、ウィンドウシステムによって異なる可能性が高い。
【００２９】
仮データ４０２は、対象ＡＰが、起動後、ウィンドウシステムとの最初の接続を行い、該ウィンドウシステムとＡＰとの間でメッセージ交換が為される間に登録され、実データ４０３は、入出力先切替指示を受けて新ウィンドウシステムに接続する際に登録される。これらの登録は、接続先切替手段３０６が行なう。なお、図示省略されているが、入力環境変換テーブル３１０も同様な構造になっている。入力環境変換テーブルのデータ種別には、例えば、キーボードの各キーとそのキーコードとの対応関係を表すマッピングや、マウスボタンの各ボタンと、その発生コードとの対応関係を表すマッピング等がある。これらも、ウィンドウシステムによって異なる可能性が高い。
【００３０】
図５は、入出力先切替システム２００の全体処理の流れを示す図である。
【００３１】
対象ＡＰ２０１では、あらかじめ、データの入出力先としてウィンドウシステム２０２ａ、２０２ｂの何れかが定義されている。対象ＡＰ２０１からは、まず、データの入出力先として予め定義されているウィンドウシステムとの接続要求が出力される。
【００３２】
入出力先切替システム２００は、対象ＡＰ２０１からの接続要求を受け付けると（ステップ５０１）、接続要求を出した対象ＡＰ２０１と、本入出力先切替システム２００と、接続が要求されているウィンドウシステムとを論理的に結合する（ステップ５０２）。論理的な結合とは、通信プロトコル（例えば、ＴＣＰ／ＩＰ）におけるコネクションの確立を意味する。接続が完了したら、入出力先切替システム２００は、対象ＡＰ２０１、指示プログラム２０４、および、ウィンドウシステムからのメッセージを待つ（ステップ５０３）。
【００３３】
メッセージを受信すると（ステップ５０４）、受信したメッセージの種別を判別する（ステップ５０５）。メッセージ種別としては、指示プログラム２０４から送出される切替指示メッセージ、対象ＡＰ２０１から送出される出力メッセージ、および、ウィンドウシステムから送出される入力メッセージの３つがある。入出力先切替システム２００では、メッセージの種別に応じて、入出力先切替処理５０６、出力メッセージ送信処理５０７、および、入力メッセージ送信処理５０８の何れかが実行される。受け付けたメッセージへの対応処理を行なった後は、再び、メッセージ受信待ち状態（ステップ５０３）となる。
【００３４】
以上が入出力先切替システム２００の全体処理の流れであるが、このフローによれば、例えば、ステップ５０１において、図２の対象ＡＰ２０１が入出力先として計算機１０ａを要求した場合、ステップ５０２にて、対象ＡＰ２０１、本入出力先切替システム２００、および、ウィンドウシステム２０２ａが接続され、その後、ステップ５０７、ステップ５０８において、入出力先切替システム２００を介した、対象ＡＰ２０１とウィンドウシステム２０２ａとのメッセージ交換が行なわれることになる。なお、このメッセージ交換の際、入出力先切替システム２００は、交換されるメッセージを参照し、参照したメッセージに、予め定めた種類のデータが含まれているか否かを判定し、参照したメッセージに予め定めた種類のデータが含まれている場合には、このデータを読み出し、これを仮データとして変換テーブル３０９、３１０に登録する。予め定めた種類のデータとは、前述した、ウィンドウ識別子、ピクセル値、フォントＩＤ、キーコードのマッピング等、ウィンドウシステム２０２ａ固有のデータであり、これらが仮データとして変換テーブル３０９、３１０に登録される。
【００３５】
図６は、入出力先切替処理５０６の詳細を示すフローチャートである。入出力先切替処理５０６では、ウィンドウシステムの切り替えが実施される。
【００３６】
接続先切替手段３０６は、切替指示受信手段３０５で受け付けた切替指示メッセージを受信すると（ステップ６０１）、指示内容を判別する（ステップ６０２）。現在接続しているウィンドウシステムとの切断を指示された場合は、まず、このウィンドウシステムに対して、ウィンドウ消去指示が発行されているか否かを判定する（ステップ６０３）。ウィンドウ消去指示は、必要に応じて対象ＡＰ２０１が発行するメッセージである。ウィンドウ消去指示がある場合、消去しようするウィンドウに関する情報を、図示省略したウィンドウ情報保管テーブルに保管する（ステップ６０４）。消去したウィンドウの表示内容を切り替え先のウィンドウシステムで再度表示する必要がある場合は、この保管テーブルの情報を利用する。接続先切替手段３０６は、その後、現在接続しているウィンドウシステムにウィンドウ消去指示を与え、該ウィンドウシステムのウィンドウを消去し（ステップ６０５）、このウィンドウシステムと入出力先切替システム２００とを切断する（ステップ６０６）。
【００３７】
ステップ６０３にて、ウィンドウ消去指示がないと判定した場合は、出力中のウィンドウの消去は行わなず、ウィンドウシステムとの接続もそのままにしておく。なお、ウィンドウシステムとの接続を維持していても、入出力先切替システム２００は、このウィンドウシステムからの入力メッセージは受け付けず、また、該ウィンドウシステムに対する出力メッセージの送信処理も行なわない。
【００３８】
一方、ステップ６０１にて、新たなウィンドウシステムとの接続指示を受け付けた場合、その旨がステップ６０２で判定され、以下に述べる処理が実行される。なお、前述したステップ６０３にてウィンドウ消去指示が無いと判断され、ステップ６０６がスキップされた場合は、この処理においても、旧ウィンドウシステムとの接続はそのまま維持される。
【００３９】
接続先切替手段３０６は、まず、対象ＡＰ２０１から送られた初期処理用のメッセージがメッセージ保管テーブル（図示省略）に保管されているか否かを判断する（ステップ６０７）。対象ＡＰ２０１は、入出力先切替システム２００を介してウィンドウシステムと接続する際、最初に、このウィンドウシステムに対して初期処理用のメッセージを送信する。初期処理用のメッセージには、例えば、ウィンドウの生成指示、ウィンドウを実際に画面上で見えるようにするためのマッピング指示、フォントのロード指示などがある。接続先切替手段３０６は、対象ＡＰ２０１から送られた初期処理用のメッセージをウィンドウシステムに転送しつつ、これらのメッセージをメッセージ保管テーブルに逐次保管しており、ステップ６０７では、切り替え前のウィンドウシステムに対して送出された初期処理用のメッセージがメッセージ保管テーブルに存在するかどうかをチェックする。
【００４０】
初期処理用のメッセージが保管されていない場合、接続先切替手段３０６は、ライブラリを使用して、初期処理用のメッセージを生成し、これを今回接続するウィンドウシステムに送出する（ステップ６０９）。一方、初期処理用のメッセージが保管されている場合は、このメッセージを直接あるいは加工して、ウィンドウシステムに送出する（ステップ６０８）。このように接続先切替手段３０６は、対象ＡＰ２０１の替わりに、接続対象のウィンドウシステムに向けて初期処理用のメッセージを送信する。
【００４１】
ステップ６０８、６０９の何れかの処理を行なった後は、切替前のウィンドウシステムが出力していたウィンドウの表示内容を新たに接続したウィンドウシステムの画面に表示せよという要求があるか否かを判定する（ステップ６１０）。この要求がある場合は、再表示指示を出力するよう、対象ＡＰ２０１に向けてメッセージを送信する（ステップ６１１）。
【００４２】
なお、特定のイベント発生させて、ウィンドウシステムの自動切替を実行するような場合は、入出力先切替システム２００内にあらかじめ切替先のウィンドウシステムを登録しておく。特定イベント（例えば、タイマをかけた場合のタイムアウト）発生時には、切断処理（ステップ６０３〜ステップ６０６）後、登録された出力先への接続処理（ステップ６０７〜ステップ６１１）を実行する。
【００４３】
図７は、初期処理用メッセージの送信処理の詳細を示すフローチャートである。
【００４４】
メッセージ保管テーブルに保管されている初期処理用メッセージは、前述したように、対象ＡＰ２０１がウィンドウシステムに最初に接続する際に送信したメッセージであるが、メッセージ保管テーブルに保管されている初期処理用メッセージの多くは、最初に接続するウィンドウシステム（つまり、対象ＡＰに予め定義されているウィンドウシステム）向けに作成されている。
【００４５】
したがって、新たなに接続するウィンドウシステムが、対象ＡＰ２０１が想定しているウィンドウシステムと環境が異なる場合は、そのメッセージの内容を、新たなウィンドウシステム向けに変換する必要がある。
【００４６】
そこで、接続先切替手段３０６は、メッセージ保管テーブルに保管されている初期処理用メッセージを逐次読み込み（ステップ７０１）、読み込んだメッセージの中に、出力環境に関して変換すべきデータが含まれているか否かを判断し（ステップ７０２）、変換すべきデータが存在する場合は、変換テーブル３０９を参照し（ステップ７０３）、メッセージ内のデータを変換テーブル３０９の実データで上書きし（ステップ７０４）、このメッセージを新たに接続するウィンドウシステムに送信する（ステップ７０５）。ステップ７０４で使用する実データについては、あらかじめ変換テーブル３０９に登録されているものとする。ステップ７０１からステップ７０５の処理は、保管メッセージがある限り繰り返す（ステップ７０６）。なお、ウィンドウシステム側でそれを判断できるようであれば、ステップ７０４では、変換テーブル３０９の実データを上書きでなくメッセージに追加するような形にしても構わない。
【００４７】
接続先切替手段３０６は、全保管メッセージを送信後、送信したメッセージに対するウィンドウシステムからの応答を待つ（ステップ７０７）。ウィンドウシステムからの応答メッセージを受信すると（ステップ７０８）、応答メッセージの中に、前述した予め定めた種類と同じ種類のデータ（具体的には、ウィンドウシステム２０２ｂ固有のデータ）が含まれているか否かを判定し（ステップ７０９）、ウィンドウシステム２０２ｂ固有のデータが含まれている場合には、それをデータ変換テーブル３０９、３１０へ実データとして登録する（ステップ７１０）。なお、受信した応答メッセージは廃棄する（ステップ７１１）。そして、ウィンドウシステムに送信したメッセージに対する応答メッセージを全て受信するまで、ステップ７０７〜７１１を繰り返す（ステップ７１２）。
【００４８】
図８は、出力メッセージ送信処理５０７の詳細を示すフローチャートである。
【００４９】
ここでは、対象ＡＰ２０１の入出力先がウィンドウシステム２０２ａとなっている切り替え前の状態と、入出力先がウィンドウシステム２０２ａからウィンドウシステム２０２ｂに変更された切り替え後の状態のそれぞれを例にとって説明する。
【００５０】
まず、切り替え前の状態について述べる。
【００５１】
入出力先切替システム２００は、対象ＡＰ２０１からのメッセージを受信すると（ステップ８０１）、メッセージ内に変換すべきデータが含まれているか否かを判別する（ステップ８０２）。変換すべきデータとは、ウィンドウシステム２０２ｂ向けに変換しなければならない、ウィンドウシステム２０２ａ固有のデータであるが、ここでは、入出力先がまだウィンドウシステム２０２ａであるため、ステップ８０２の次にステップ８０５が実行される。ステップ８０５では、ステップ８０１で受信したメッセージをそのままウィンドウシステム２０２ａに送信する。なお、受信したメッセージをそのまま送信する、とは、データ変換を施さずに送信するの意で、詳細には、宛先変更処理等が実行される。
【００５２】
つぎに、切り替え後の状態について述べる。
【００５３】
入出力先切替システム２００は、先程と同様、対象ＡＰ２０１からのメッセージを受信し（ステップ８０１）、メッセージ内に変換すべきデータ（具体的には、変換テーブル３０９の仮データと同一データ）が含まれているか否かを判別する（ステップ８０２）。ここでは、入出力先がウィンドウシステム２０２ｂであるため、メッセージ内に変換すべきデータが含まれている可能性がある。メッセージ内に変換すべきデータが含まれている場合、変換テーブル３０９を参照し（ステップ８０３）、メッセージ内の変換すべきデータを、対応する実データに変換し（ステップ８０４）、このメッセージをウィンドウシステムへ送信する（ステップ８０５）。実データは、変換すべきデータに上書きするようにしてもよいが、ウィンドウシステム側で対応可能であれば、メッセージ内に実データを追加するような形にしても構わない。
【００５４】
以上のような出力メッセージ送信処理を実行すれば、対象ＡＰ２０１は、ウィンドウシステムの切り替えを意識することなく通常通りのメッセージ送信を行なうことができるようになる。
【００５５】
図９は、入力メッセージ送信処理５０８を示すフローチャートである。ここでは、前述した変換処理と逆方向の変換が為されることになる。
【００５６】
入出力先切替システム２００は、ウィンドウシステムから送信されたメッセージを受信すると（ステップ９０１）、そのメッセージに、変換すべき、入力環境に関するデータが含まれているか否かを判別する（ステップ９０２）。変換すべきデータが含まれている場合、変換テーブル３０９を参照し（ステップ９０３）、メッセージ内のデータを、対応する仮データに変換する（ステップ９０４）。さらに、受信したメッセージに、変換すべき、出力環境に関するデータが含まれているか否かを判別する（ステップ９０５）。変換すべきデータが含まれている場合、変換テーブル３１０を参照し（ステップ９０６）、メッセージ内のデータを、対応する仮データに変換する（ステップ９０７）。その後、変換処理を施したメッセージ、又は、受信したメッセージそのものを対象ＡＰ２０１に送信する（ステップ９０８）。なお、受信したメッセージそのものを送信する、とは、データ変換を施さずに送信するの意で、詳細には、宛先変更処理等が実行される。
【００５７】
以上のような入力メッセージ送信処理を実行すれば、ウィンドウシステムの切り替えが行われても、対象ＡＰ２０１は通常通りの受信処理を行うことができるようになる。
【００５８】
以上説明したように、本入出力先切替システムによれば、切り替え先のウィンドウシステムに合わせてメッセージ内のデータが変換されるため、対象ＡＰ２０１は、入出力先の変更を意識することなく処理を続行できるようになる。
【００５９】
例えば、プログラムサーバ＃１に対象ＡＰとなるプラントの運転監視プログラムが置かれ、計算機＃１のディスプレイ装置で運転監視を行っている場合に、計算機＃１のウィンドウシステム、ＯＳ、その他プログラムのいずれかに障害が発生すると、プログラムサーバ＃１の指示プログラムから入出力先計算機の切替指示が発行される。切替指示が発行されると、プログラムサーバ＃２の本入出力先切替システムは、計算機＃１への表示命令の送信を停止して計算機＃１での監視作業を終了させ、計算機＃２へ出力先を変更する。このとき、プログラムサーバ＃１の対象ＡＰは、動作を停止することなく表示命令を計算機＃２に送信し、計算機＃２のウィンドウシステムには表示命令に応じた表示が為されることになる。したがって、ユーザは、この計算機＃２で引き続き監視作業を行うことができるようになる。
【００６０】
＜第２の実施形態＞：
本発明の第１の実施形態の変形例を図１０に示す。ここでは、図２において別個の計算機に配置されていた、対象ＡＰ２０１ａ、ウィンドウシステム２０２ａ、入出力先切替システム２００ａを同一の計算機（計算機＃１ １０ａ）に配置している。これらは、通信ネットワークを介さず計算機内通信を行う。また、計算機＃２ １０ｂには、対象ＡＰ２０１ｂ、入出力先切替システム２００ｂを配置する。入出力先切替システムの構成は、第１の実施形態と同様である。なお、本実施形態では、ウィンドウシステム２０２ａに接続されるＡＰが一つに制限されるものとする。
【００６１】
最初、この計算機システムでは、対象ＡＰ２０１ａの表示出力が許可されており、対象ＡＰ２０１ａ、入出力先切替システム２００ａ、および、ウィンドウシステム２０２ａのそれぞれは相互に接続してメッセージ交換を行い、計算機１０ａで対象ＡＰ２０１ａの出力表示を行っている。表示出力の許可は、指示プログラム２０４ａが発行する。
【００６２】
途中、対象ＡＰ２０１ｂの表示許可が発行されると、対象ＡＰ２０１ｂ、入出力先切替システム２００ｂ、および、ウィンドウシステム２０２ａのそれぞれが相互に接続し、ウィンドウシステム２０２ａと入出力先切替システム２００ａは切断される。このとき、対象ＡＰ２０１ａと入出力先切替システム２００ａは切断されない。その後、対象ＡＰ２０１ｂ、入出力先切替システム２００ｂ、および、ウィンドウシステム２０２ａの間でメッセージ交換が行われ、計算機１０ａで対象ＡＰ２０１ｂの出力表示が行われる。
【００６３】
そして再び対象ＡＰ２０１ａの表示許可が発行されたとき、ウィンドウシステム２０２ａと入出力先切替システム２００ｂが切断され、入出力先切替システム２００ａがウィンドウシステム２０２ａと接続する。
【００６４】
このように本実施形態によれば、対象ＡＰがウィンドウシステムから切り離されても、入出力先切替システムが、切り離された対象ＡＰの相手をするため、対象ＡＰがウィンドウシステムとの切断の影響で動作を中断するといった問題がない。
【００６５】
＜第３の実施形態＞
第３の実施形態別では、入出力先切替システムが仮想的に入出力システムになるというものである。
【００６６】
図２において、計算機＃１の入出力システム（ウィンドウシステム２０２ａ）への接続は、計算機＃１の指示プログラム２０４ａが許可した時点で可能となり、対象ＡＰ２０１は、ウィンドウシステムと接続して初めてその後の処理を行うような仕様の場合、計算機＃１の指示プログラム２０４ａが、ウィンドウシステム２０２ａへの接続許可を発行する以前に、本入出力先切替システム２００が仮想的に入出力ウィンドウシステムとなって対象ＡＰと接続する。そして、計算機＃１の指示プログラム２０４ａが接続を許可した時点で、本入出力先切替システム２００が計算機＃１のウィンドウシステム２０２ａと接続し、対象ＡＰの出力をこのウィンドウシステム２０２ａに送信する。
【００６７】
図１１は、仮接続処理を行う場合の本入出力先切替システム全体の処理を示すフローチャートである。
【００６８】
図５に示した第１の実施形態のフローと異なるところは、対象ＡＰ２０１からの接続要求を受信した（ステップ５０１）あと、入出力先となるウィンドウシステムに対する接続許可が出ているか否かを確認する（ステップ１１１）点にある。接続許可が出ていれば、通常の接続処理（ステップ５０２）を行う。接続許可がない場合は、仮接続要求受付処理（ステップ１１２）を行う。接続後の処理は、図５の全体処理と同様である（ステップ５０３〜ステップ５０８）。
【００６９】
図１２は、仮接続要求受付処理１１２のフローチャートを示す。
【００７０】
対象ＡＰ２０１からのメッセージを待ち（ステップ１２１）、メッセージを受信すると（ステップ１２２）、メッセージの種別を判別し（ステップ１２３）、該メッセージが対象ＡＰからの接続に関する初期処理用のメッセージの場合、該メッセージを保管する（ステップ１２４）。その後、該メッセージに対する応答が必要か否かを判定し（ステップ１２５）、必要な場合は、本入出力先切替システムで応答メッセージを作成し（ステップ１２６）、これを対象ＡＰ２０１に送信する（ステップ１２７）。接続許可メッセージを受信して、入出力先ウィンドウシステムと接続するまで、これらの処理（ステップ１２１〜ステップ１２７）を繰り返す。
【００７１】
一方、受信したメッセージが接続許可メッセージの場合は、初期処理用メッセージ送信処理（図７の６０８と同様の処理）を実行し、入出力先ウィドウシステムと接続する。
【００７２】
このように、本実施形態の入出力先切替システムは、ウィンドウシステムの代役として機能するため、対象ＡＰが実際のウィンドウシステムとの接続を待たずに処理を進めることができるようになる。
【００７３】
【発明の効果】
以上説明したように本発明の入出力先切替システムによれば、アプリケーションプログラム（ＡＰ）の動作を停止させることなく、ＡＰの入出力先を変更できるようになる。
【００７４】
また、複数のＡＰが存在し、かつ、入出力先に接続できるＡＰが１つに制限されるような場合は、本発明の入出力先切替システムが、入出力先に接続されていない方のＡＰに接続して応答処理を実行するため、この場合も、ＡＰは、入出力先との接続、切断を意識せずに動作を続行することができるようになる。
【００７５】
また、入出力先との接続を許可されるまで、入出力先と接続できないような場合は、本発明の入出力先切替システムが、まず、ＡＰと接続して接続許可が発行されるまでＡＰの相手をし、接続許可が発行された時点で、本入出力先切替システムが入出力先と接続するため、この場合も、 ＡＰは、入出力先との接続、切断を意識せずに動作を続行することができるようになる。なお、ＡＰは、既に動作中であるため、即時表示出力できるという効果もある。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の計算機システムのハードウエア構成を示す構成図である。
【図２】本発明の第１の実施形態の計算機システムのソフトウエア構成を示す構成図である。
【図３】本発明の第１の実施形態の切替システムの機能構成を示す構成図である。
【図４】本発明の第１の実施形態の変換テーブルの構成図である。
【図５】本発明の第１の実施形態における全体処理のフローチャートである。
【図６】本発明の第１の実施形態における入出力先切替処理のフローチャートである。
【図７】本発明の第１の実施形態における初期処理用のメッセージ送信処理のフローチャートである。
【図８】本発明の第１の実施形態における出力メッセージ送信処理のフローチャートである。
【図９】本発明の第１の実施形態における入力メッセージ送信処理のフローチャートである。
【図１０】本発明の第２の実施形態の計算機システムのソフトウエア構成を示す構成図である。
【図１１】本発明の第３の実施形態における全体処理のフローチャートである。
【図１２】本発明の第３の実施形態における仮接続要求受付処理のフローチャートである。
【符号の説明】
１０：計算機、１１：ディスプレイ装置、１２：キーボード、１３：マウス、１４：プログラムサーバ、１５：通信ネットワーク、２０１：対象ＡＰ、２０２：ウィンドウシステム、２０３：ＯＳ、２０４：指示プログラム、３０１：出力メッセージ取得手段、３０２：出力メッセージ送信手段、３０３：入力メッセージ送信手段、３０４：入力メッセージ取得手段、３０５：切替指示受信手段、３０６：接続先切替手段、３０７、３０８：変換手段、３０９、３１０：変換テーッブル
【図１】
0003792343.tif 000002
【図２】
0003792343.tif 000003
【図３】
0003792343.tif 000004
【図４】
0003792343.tif 000005
【図５】
0003792343.tif 000006
【図６】
0003792343.tif 000007
【図７】
0003792343.tif 000008
【図８】
0003792343.tif 000009
【図９】
0003792343.tif 000010
【図１０】
0003792343.tif 000011
【図１１】
0003792343.tif 000012
【図１２】
0003792343.tif 000013