(57)【要約】【課題】ホストOSとゲストOSとが安定的にシリアルポート通信を行う。【解決手段】仮想化装置１０はホストOS１と仮想化制御手段２と仮想マシン３とゲストOS４を有する。ホストOS１は仮想化装置１０上で動作する。仮想化制御手段２はホストOS１上に構成される。仮想マシン３は仮想化制御手段２上に構成される。ゲストOS４は仮想マシン３上で動作する。ホスト側通信手段１１はホストOS１上でシリアルポート通信によるデータ入出力を行う。ゲスト側通信手段４１はゲストOS４上でシリアルポート通信によるデータ入出力を行う。通信路確保手段４０はゲストOS４の起動と同時にホスト側通信手段１１とゲスト側通信手段４１との通信路６を確立する。【選択図】図３
2014149698.tif 000002
【特許請求の範囲】
【請求項１】
ホストOSと、
前記ホストOS上で動作する少なくとも１つのゲストOSと、
前記ホストOS上でシリアルポート通信によるデータ入出力を行うホスト側通信手段と、
前記ゲストOS上でシリアルポート通信によるデータ入出力を行うゲスト側通信手段と、
前記ゲストOSの起動と同時に前記ホスト側通信手段と前記ゲスト側通信手段との通信路を確立する通信路確保手段と、
を有する仮想化装置。
【請求項２】
請求項１に記載の仮想化装置であって、
前記通信路確保手段は、前記ゲストOSに組み込まれたデバイスドライバである
ことを特徴とする仮想化装置。
【請求項３】
請求項１または２に記載の仮想化装置であって、
予め定めた時間間隔ごとに前記ゲストOSの状態を収集し前記ゲスト側通信手段を用いて前記ゲストOSの状態を前記ホストOSへ送信する情報収集手段
を有する仮想化装置。
【請求項４】
請求項１から３のいずれかに記載の仮想化装置であって、
前記ゲスト側通信手段は、前記ゲストOSへ構成された仮想的なシリアルポートであり、
前記ホスト側通信手段は、前記ゲストOSに対応して当該ホスト側通信手段を一意に識別する文字列が設定された名前付きパイプである
ことを特徴とする仮想化装置。
【請求項５】
ホストOSと当該ホストOS上で動作する少なくとも１つのゲストOSとが通信する通信方法であって、
通信路確保手段が、前記ゲストOSの起動と同時にホスト側通信手段とゲスト側通信手段との通信路を確立する通信路確保ステップと、
ホスト側通信手段が、シリアルポート通信によるデータ入出力を行うホスト側通信ステップと、
ゲスト側通信手段が、シリアルポート通信によるデータ入出力を行うゲスト側通信ステップと、
を含む通信方法。
【請求項６】
請求項１から４のいずれかに記載の仮想化装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想化技術に関し、特に、ホストOS上のソフトウェアとゲストOS上のソフトウェアとが通信する技術に関する。
【背景技術】
【０００２】
物理計算機を論理的に分割して複数の論理計算機として使用する仮想化技術が知られている。従来の仮想化技術の一例は、物理計算機にインストールされた基本ソフトウェア上で動作する仮想化制御プログラムにより複数の論理計算機を制御する技術である。このような仮想化技術の実装には、例えば非特許文献１や非特許文献２の技術がある。
【０００３】
仮想化技術では、物理計算機は「物理マシン」、論理計算機は「仮想マシン」とも呼ばれる。物理マシン上で動作する基本ソフトウェアは「ホストOS（Operating System）」と呼ばれる。仮想マシン上で動作する基本ソフトウェアは「ゲストOS（Operating System）」と呼ばれる。仮想化制御プログラムは「仮想マシンモニタ」や「ハイパーバイザー」などと呼ばれる。仮想化技術を適用した１台もしくは複数台の装置により構成された情報処理システムを仮想化環境と呼ぶこともある。
【０００４】
仮想化環境において、ホストOS上で動作するサーバプロセスとゲストOS上で動作するクライアントアプリケーションとが通信する場合がある。例えば、ゲストOS内のソフトウェア資産管理やパッチ適用状況の管理などを外部から統合的に実施するような場合が考えられる。従来、ホストOSとゲストOSとが通信する方式では、TCP/IPなどの通信プロトコルによるネットワーク通信が利用される場合と、シリアルポートを用いたシリアルポート通信が利用される場合とがあった。
【０００５】
図１にホストOSとゲストOSとがネットワーク通信により疎通する従来の仮想化装置８０の一例を示す。ゲストOS４が動作する仮想マシン３には仮想ネットワークアダプタ（仮想NIC、Network Interface Card）５が構成されており、ゲストOS４には仮想ネットワークアダプタ５を利用するためのネットワークドライバ４９がインストールされ、適切なネットワークパラメータの設定を行う。ゲストOS４内のクライアントアプリケーション４２は仮想ネットワークアダプタ５を利用してホストOS１内のサーバプロセス１２とネットワーク通信により疎通する。
【０００６】
図２にホストOSとゲストOSとがシリアルポート通信により疎通する従来の仮想化装置９０の一例を示す。ゲストOS４が動作する仮想マシン３には仮想シリアルポートデバイス６が構成されており、ゲストOS４には仮想シリアルポートデバイス６を利用するためのシリアルポートドライバ４１がインストールされ、適切なポート設定を行う。一方、ホストOS１には名前付きパイプ１１が構成されており、仮想シリアルポートデバイス６と名前付きパイプ１１とが関連付けて設定される。ゲストOS４内のクライアントアプリケーション４２は仮想シリアルポートデバイス６を利用してホストOS１内のサーバプロセス１２とシリアルポート通信により疎通する。
【０００７】
シリアルポートによる通信では１つの通信で１つのポートを専有してしまう制約がある。しかし、現在では多くのアプリケーションがTCP/IP等によるネットワーク通信を行っており、シリアルポートを利用する頻度は減っているため、ネットワークリソースを利用しなくても済むという利点がある。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】ヴイエムウェア株式会社、“VMware vSphere”、[online]、［平成25年1月30日検索］、インターネット<URL: http://www.vmware.com/jp/products/datacenter-virtualization/vsphere/small-business.html>
【非特許文献２】Linux KVM、“Kernel Based Virtual Machine”、[online]、［平成25年1月30日検索］、インターネット<URL: http://www.linux-kvm.org/page/Main_Page>
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ホストOSとゲストOSとがネットワーク通信を行う場合には、利用する通信プロトコルに則ってネットワーク疎通が可能となるような設定が必要となる。特にゲストOSのネットワーク設定が正しくなければ正しくネットワーク通信を行うことができない。
【００１０】
また、ゲストOSが属するネットワークセグメントとホストOSが属するネットワークセグメントが異なりセグメント間のネットワーク疎通が許されない場合には、ネットワーク通信による方式は利用することができない。この状況の一例は、IaaS（Infrastructure as a Service）事業である。IaaSとは、コンピュータシステムを構築および稼動させるための基盤（コンピュータやネットワークなどのインフラ）を仮想化し、インターネットや仮想プライベートネットワーク（Virtual Private Network、VPN）経由のサービスとして提供するクラウドコンピューティングの一形態である。IaaS事業においては、ゲストOSは顧客企業のプライベートネットワークに属し、ホストOSはサービス提供事業者の管理用ネットワークに属し、両者のネットワーク接続がサービスの性格上許されない場合が多い。このような場合にはホストOSとゲストOSとがネットワーク通信による疎通ができない。
【００１１】
ネットワーク通信による方式を利用できない他の一例は、既存の他システムから仮想化環境へサーバーを集約する状況などである。この場合には、既存システム利用者の設定変更を回避するためにゲストOSのIPアドレスを既存システムから変更しないことがあり、複数のゲストOSが重複するIPアドレスを保持したりゲストOSのIPアドレスがホストOSのIPアドレスと重複したりする状況になる可能性がある。この場合にはホストOSと各ゲストOSとが属するネットワークを相互接続することはできない。
【００１２】
ホストOSとゲストOSとがシリアルポート通信を行う場合にはネットワーク通信自体を利用しないため上記の問題は回避できる。しかし、仮想シリアルポートは同時には１つのアプリケーションからしか利用できない先取優先制御が行われているため、他のアプリケーションが仮想シリアルポートを先に利用している場合にはシリアルポート通信に失敗する。
【００１３】
この発明は、ホストOSとゲストOSとが安定的にシリアルポート通信を行うことができる通信技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、この発明の仮想化装置は、ホストOSと、ホストOS上で動作する少なくとも１つのゲストOSと、ホストOS上でシリアルポート通信によるデータ入出力を行うホスト側通信手段と、ゲストOS上でシリアルポート通信によるデータ入出力を行うゲスト側通信手段と、ゲストOSの起動と同時にホスト側通信手段とゲスト側通信手段との通信路を確立する通信路確保手段とを有する。
【発明の効果】
【００１５】
この発明によれば、ホストOSとゲストOSとがシリアルポート通信を行う場合に、他のアプリケーションによってシリアルポートを先取りされることがなく、通信に失敗する状況を防止することができる。したがって、ホストOSとゲストOSとが安定的にシリアルポート通信を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】従来の仮想化装置の機能構成を例示する図。
【図２】従来の仮想化装置の機能構成を例示する図。
【図３】第一実施形態の仮想化装置の基本的な機能構成を例示する図。
【図４】第一実施形態の仮想化装置の具体的な機能構成を例示する図。
【図５】通信路オープン・クローズの処理フローを例示する図。
【図６】データ入出力の処理フローを例示する図。
【図７】第二実施形態の仮想化装置の機能構成を例示する図。
【図８】第二実施形態の仮想化装置の機能構成を例示する図。
【図９】情報収集・コマンド処理の処理フローを例示する図。
【発明を実施するための形態】
【００１７】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１８】
［第一実施形態］
この発明の第一実施形態は、通信路確保手段として構成された通信路確保ドライバを用いて、ゲストOS上で動作するクライアントアプリケーションがシリアルポート通信によりホストOS上で動作するサーバプロセスと通信する。
【００１９】
＜構成＞
図３に、第一実施形態の仮想化装置の基本的な機能構成を示す。第一実施形態の基本的な構成例である仮想化装置１０はホストOS１、仮想化制御手段２、仮想マシン３、ゲストOS４、通信路６を含む。ホストOS１はホスト側通信手段１１、サーバプロセス１２を含む。ゲストOS４は通信路確保手段４０、ゲスト側通信手段４１、クライアントアプリケーション４２を含む。
【００２０】
ホストOS１は仮想化装置１０上で動作する。仮想化制御手段２はホストOS１上に構成される。仮想マシン３は仮想化制御手段２上に少なくとも１つ構成される。図３では図示しないが仮想マシン３は複数含まれていてもよい。ゲストOS４は仮想マシン３上で動作する。ホスト側通信手段１１はホストOS１上でシリアルポート通信によるデータ入出力を行う。ゲスト側通信手段４１はゲストOS４上でシリアルポート通信によるデータ入出力を行う。通信路確保手段４０はゲストOS４の起動と同時にホスト側通信手段１１とゲスト側通信手段４１との通信路６を確立する。
【００２１】
図４に、第一実施形態の仮想化装置の機能構成をより具体的に示す。第一実施形態のより具体的な構成例である仮想化装置１５では、仮想化制御手段２はホストOS１上で仮想マシン３の構成管理を統合的に行うハイパーバイザーである。通信路６は仮想マシン３内に仮想的に構成された仮想シリアルポートデバイスである。ホスト側通信手段１１はホストOS１内に構成された名前付きパイプである。名前付きパイプ１１には、ゲストOS４に対応してその名前付きパイプを一意に識別する文字列が設定される。名前付きパイプに設定される文字列の書式はホストOSの通信仕様により規定されるが、例えば「\\.\pipe\com_1」のように「\」記号を区切り文字として階層的に表現されることが一般的である。ゲスト側通信手段４１は仮想シリアルポートデバイス６に適合するように構成されたシリアルポートドライバである。通信路確保手段４０は通信路確保ドライバと呼ばれ、ゲストOS４に組み込まれたデバイスドライバである。
【００２２】
通信路確保ドライバ４０はシリアルポートハンドル４０１とオープンフラグ４０２と受信バッファ４０３を含む。シリアルポートハンドル４０１は仮想シリアルポートデバイス６をオープンした際にシリアルポートドライバ４１が返却するハンドルを格納する領域である。オープンフラグ４０２は仮想シリアルポートデバイス６がオープンしているかクローズしているかを示すフラグである。受信バッファ４０３は仮想シリアルポートデバイス６に入力されるデータを一時的に蓄積するバッファである。バッファのサイズはサーバプロセス１２とクライアントアプリケーション４２とが通信するデータ量を勘案して任意の大きさに設定すればよい。
【００２３】
＜処理＞
図５を参照して、仮想化装置１５の実行する通信路開設・閉鎖処理の動作例を手続きの順に従って説明する。
【００２４】
図５(A)は、ゲストOS４の起動時に実行される初期化処理である。ゲストOS４が起動するとデバイスドライバとしてインストールされた通信路確保ドライバ４０も同時に起動する。通信路確保ドライバ４０は仮想シリアルポートデバイス６をオープンする（ステップS1-1）。仮想シリアルポートデバイス６がオープンするとシリアルポートドライバ４１から仮想シリアルポートデバイス６のハンドルが返却される。通信路確保ドライバ４０はハンドルをシリアルポートハンドル４０１へ格納する（ステップS1-2）。続いて、通信路確保ドライバ４０はオープンフラグ４０２をOFFに設定する（ステップS1-3）。そして、通信路確保ドライバ４０は受信バッファ４０３をクリアする（ステップS1-4）。
【００２５】
図５(B)は、通信路確保ドライバ４０が起動時に実行するオープン処理である。通信路確保ドライバ４０はオープンフラグ４０２がONであるかOFFであるかを確認する（ステップS2-1）。オープンフラグ４０２がOFFであればオープンフラグ４０２をONに設定する（ステップS2-2）。オープンフラグ４０２がONであれば異常終了を返却する（ステップS2-3）。オープンフラグ４０２をONに設定した場合には、正常終了を返却する（ステップS2-4）。
【００２６】
図５(C)は、通信路確保ドライバ４０が終了時に実行するクローズ処理である。通信路確保ドライバ４０はオープンフラグ４０２がONであるかOFFであるかを確認する（ステップS3-1）。オープンフラグ４０２がONであればオープンフラグ４０２をOFFに設定する（ステップS3-2）。
【００２７】
図６を参照して、仮想化装置１５の実行するデータ入出力処理の動作例を手続きの順に従って説明する。
【００２８】
図６(A)は、クライアントアプリケーション４２から仮想シリアルポートデバイス６へデータを書き込む際に実行されるデータ書き込み処理である。通信路確保ドライバ４０はオープンフラグ４０２がONであるかOFFであるかを確認する（ステップS4-1）。オープンフラグ４０２がONであればクライアントアプリケーション４２が書き込んだデータをそのまま仮想シリアルポートデバイス６へ書き込む（ステップS4-2）。オープンフラグ４０２がOFFであればそのまま処理を終了する。
【００２９】
図６(B)は、クライアントアプリケーション４２が仮想シリアルポートデバイス６からデータを読み込む際に実行されるデータ読み込み処理である。通信路確保ドライバ４０はオープンフラグ４０２がONであるかOFFであるかを確認する（ステップS5-1）。オープンフラグ４０２がONであれば受信バッファ４０３の先頭から指定されたバイト数を読み込み、クライアントアプリケーション４２へ返却する（ステップS5-2）。オープンフラグ４０２がOFFであればそのまま処理を終了する。
【００３０】
図６(C)は、サーバプロセス１２から仮想シリアルポートデバイス６へデータが書き込まれた際に実行されるシリアル入力処理である。通信路確保ドライバ４０はシリアルポートドライバ４１により仮想シリアルポートデバイス６からの入力があったことを検知すると、入力されたデータを仮想シリアルポートデバイス６から読み込む（ステップS6-1）。通信路確保ドライバ４０は読み込んだデータを受信バッファ４０３の末尾に追記する（ステップS6-2）。
【００３１】
＜効果＞
第一実施形態の仮想化装置によれば、ホストOSとゲストOSとが通信する際にネットワーク通信を用いないため、ゲストOSが所属するネットワークの設定について関知する必要がなくなる。例えば、上述のIaaS事業のようにゲストOSの属するプライベートネットワークとホストOSの属する管理用ネットワークとの疎通が一切認められない場合であってもゲストOSとホストOSとが通信することが可能である。また例えば、すでに構築済みの仮想化環境において新たにゲストOSとホストOSとが通信する必要が出てきた場合でもネットワーク設計を変更することなくゲストOSとホストOSとの通信を実現することができる。
【００３２】
また、ゲストOSの起動と同時に通信路確保手段が通信路を確立するため、ゲストOS上の他のアプリケーションが仮想シリアルポートを先取りし、クライアントアプリケーションが通信に失敗する状況を防止することができる。
【００３３】
［第二実施形態］
この発明の第二実施形態は、通信路確保手段とクライアントアプリケーションの機能を兼有するドライバ型クライアントがゲストOS上で動作し、シリアルポート通信によりホストOS上で動作するサーバプロセスと通信する。この際、ゲストOS上で動作するタイマーが発生するタイマーイベントを契機として定期的にゲストOS内の状態を収集しホストOSへ送信する機能を追加する。
【００３４】
＜構成＞
図７に、第二実施形態の仮想化装置の基本的な機能構成を示す。第二実施形態の基本的な構成例である仮想化装置２０は、第一実施形態の仮想化装置１０と同様に、ホストOS１、仮想化制御手段２、仮想マシン３、通信路６を含む。仮想化装置２０はゲストOS４の替わりにゲストOS７を含む。ゲストOS７はゲストOS４と同様にゲスト側通信手段４１を含み、さらに通信路確保手段４３、タイマー手段４４を含む。
【００３５】
通信路確保手段４３はゲストOS７上で動作しゲストOS７の起動と同時に通信路６を確立する。通信路確保手段４３が起動するとタイマー手段４４が起動する。タイマー手段４４は予め定めた時間間隔ごとにタイマーイベントを発生させ、通信路確保手段４３へ通知する。タイマー手段４４はゲストOS７が停止されるまで、もしくはタイマー手段４４が個別に停止されるまで、繰り返しタイマーイベントを発生させる。
【００３６】
図８に、第二実施形態の仮想化装置の機能構成をより具体的に示す。第二実施形態のより具体的な構成例である仮想化装置２５では、第一実施形態の仮想化装置１５と同様に、仮想化制御手段２はホストOS１上で仮想マシン３の構成管理を統合的に行うハイパーバイザーである。通信路６は仮想マシン３内に仮想的に構成された仮想シリアルポートデバイスである。ホスト側通信手段１１はホストOS１内に構成された名前付きパイプである。ゲスト側通信手段４１は仮想シリアルポートデバイス６に適合するように構成されたシリアルポートドライバである。
【００３７】
この実施形態の通信路確保手段はドライバ型クライアント４３である。ドライバ型クライアント４３はゲストOS７に組み込まれたデバイスドライバである。ドライバ型クライアント４３はシリアルポートハンドル４０１と情報収集手段４０４とコマンド処理手段４０５を含む。シリアルポートハンドル４０１は仮想シリアルポートデバイス６をオープンした際にシリアルポートドライバ４１が返却するハンドルを格納する領域である。情報収集手段４０４はタイマー手段４４により通知されるタイマーイベントにより起動され、ゲストOS７の状態を収集し、仮想シリアルポートデバイス６を用いて収集したゲストOS７の状態に関する情報をホストOS１へ送信する。コマンド処理手段４０５はホストOS１から仮想シリアルポートデバイス６を介して入力されるコマンドを解析し、コマンドで指定された処理を実行する。
【００３８】
＜処理＞
図９を参照して、仮想化装置２５の実行する情報収集・コマンド処理の動作例を手続きの順に従って説明する。
【００３９】
図９(A)は、ゲストOS７の起動時に実行される初期化処理である。ゲストOS７が起動するとデバイスドライバとしてインストールされたドライバ型クライアント４３も同時に起動する。ドライバ型クライアント４３は仮想シリアルポートデバイス６をオープンする（ステップS7-1）。仮想シリアルポートデバイス６がオープンするとシリアルポートドライバ４１から仮想シリアルポートデバイス６のハンドルが返却される。ドライバ型クライアント４３はハンドルをシリアルポートハンドル４０１へ格納する（ステップS7-2）。タイマー手段４４はタイマーを開始する（ステップS7-3）。
【００４０】
図９(B)は、タイマーイベント発生時に情報収集手段４０４が実行する情報収集処理である。タイマー手段４４は予め定めた時間間隔ごとにタイマーイベントを発生させ、ドライバ型クライアント４３に含まれる情報収集手段４０４へ通知する。情報収集手段４０４はゲストOS７の状態を収集する（ステップS8-1）。情報収集手段４０４が収集する情報はゲストOS７がアクセスできる情報であればどのようなものでもよいが、例えばOS管理情報などである。情報収集手段４０４は収集した情報を仮想シリアルポートデバイス６へ書き込む（ステップS8-2）。
【００４１】
図９(C)は、サーバプロセス１２から仮想シリアルポートデバイス６へコマンド文字列が書き込まれた際に実行されるコマンド実行処理である。ドライバ型クライアント４３はシリアルポートドライバ４１により仮想シリアルポートデバイス６からの入力があったことを検知すると、入力されたデータを仮想シリアルポートデバイス６から読み込む（ステップS9-1）。ドライバ型クライアント４３は読み込んだデータを検証し、正しい書式のコマンドであるかを確認する（ステップS9-2）。読み込んだデータが正しいコマンドであれば、コマンドの内容に従って指定された処理を実行する（ステップS9-3）。読み込んだデータが正しいコマンドでなければそのまま処理を終了する。ステップS9-3で処理を実行した場合には、処理の実行結果を仮想シリアルポートデバイス６から送信する（ステップS9-4）。
【００４２】
＜効果＞
第二実施形態の仮想化装置によれば、クライアントアプリケーションがゲストOSに組み込まれたデバイスドライバとして構成されているため、特定のアプリケーションプロセスとして存在することがない。そのため、人為的な操作によりクライアントアプリケーションが停止されるなどによる外乱を防止することができ、さらに安定的な通信を行うことができる。
【００４３】
さらに、定期的にゲストOS側からホストOS側へ通信が発生するため、ホストOS側でその通信の欠落の有無を監視することでゲストOSの動作状況を確認することができる。また、ゲストOS側からホストOS側への通信路の正常性確認が定期的に行われるため、異常があった場合に迅速に検知することができ、すみやかに対策を行うことが可能となる。
［応用例］
上述の実施形態では、シリアルポートによる上り下り一対の通信路のみの構成となっていた。しかし、例えばPPP（Point to Point Protocol）等のような、シリアル通信上に通信パケットを疎通させる技術と組み合わせることにより、シリアルポートを用いてTCP/IP等の通信を疎通させることできる。このように構成すれば、TCP/IP通信を行うクライアントアプリケーションが、この発明の通信路を利用することができるようになる。
【００４４】
例えば、TCP/IP通信においてトンネル接続を行うトンネリング技術は従来から知られており、IP通信によるトンネリング技術において通信相手先やポート単位での疎通制御を可能とした技術も存在する。そのような従来技術におけるトンネル接続をこの発明のシリアルポート通信上に構成することで、ゲストOSとホストOSとの通信において通信相手先単位やポート単位での疎通制御を行うことも可能となる。
【００４５】
［プログラム、記録媒体］
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００４６】
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００４７】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００４８】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００４９】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００５０】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００５１】
１０，１５，２０，２５，８０，９０  仮想化装置
１  ホストOS
２  仮想化制御手段（ハイパーバイザー）
３  仮想マシン
４，７  ゲストOS
５  仮想ネットワークアダプタ
６  通信路（仮想シリアルポートデバイス）
１１  ホスト側通信手段（名前付きパイプ）
１２  サーバプロセス
１９  ネットワークドライバ
４０  通信路確保手段（通信路確保ドライバ）
４１  ゲスト側通信手段（シリアルポートドライバ）
４２  クライアントアプリケーション
４３  通信路確保手段（ドライバ型クライアント）
４４  タイマー手段
４０１  シリアルポートハンドル
４０２  オープンフラグ
４０３  受信バッファ
４０４  情報収集手段
４０５  コマンド処理手段
【図１】
2014149698.tif 000003
【図２】
2014149698.tif 000004
【図３】
2014149698.tif 000005
【図４】
2014149698.tif 000006
【図５】
2014149698.tif 000007
【図６】
2014149698.tif 000008
【図７】
2014149698.tif 000009
【図８】
2014149698.tif 000010
【図９】
2014149698.tif 000011