(57)【要約】【課題】同一の通信ポートを使用する仮想ポートドライバーが複数存在する通信環境において、通信ポートを占有している仮想ポートドライバー以外の仮想ポートドライバーが通信ポートを使用して通信を行う。【解決手段】一の仮想ポートドライバーが、自己が対応する前記デバイスドライバーとの間で所定の通信ポートに対応するものとしてエミュレートし通信処理を行う過程と、少なくとも他の仮想ポートドライバーが前記通信ポートを占有している場合に、前記一の仮想ポートドライバーが、前記他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートし通信処理を行う過程と、を含む。【選択図】図３
2011022918.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスドライバーとそれぞれ対応するもので、同一の通信ポートを使用する仮想ポートドライバーが複数存在し、前記仮想ポートドライバーと前記通信ポートを介して被制御装置と通信を行う制御装置の通信制御方法であって、
一の仮想ポートドライバーが、自己が対応する前記デバイスドライバーとの間で所定の通信ポートとしてエミュレートし通信処理を行う過程と、
少なくとも他の仮想ポートドライバーが前記通信ポートを占有している場合に、前記一の仮想ポートドライバーが、前記他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートし通信処理を行う過程と、
を含むことを特徴とする通信制御方法。
【請求項２】
請求項１記載の通信制御方法において、
前記一の仮想ポートドライバーは前記他の仮想ポートドライバーに対応する通信モジュールを備えており、前記通信モジュールを介して前記所定のデバイスドライバーとしてエミュレートし通信処理を行う過程と、
を含むことを特徴とする通信制御方法。
【請求項３】
請求項１または２に記載の通信制御方法において、
前記一の仮想ポートドライバーが前記通信ポートに対して通信要求処理を行う過程と、
前記通信要求処理に対する前記通信ポートによる通信許可の応答が得られなかった場合に、前記他の仮想ポートドライバーが前記通信ポートを占有しているものと判断して、当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートする通信処理に移行する過程と、
を含むことを特徴とする通信制御方法。
【請求項４】
複数のデバイスドライバーとそれぞれ対応するもので、同一の通信ポートを使用する仮想ポートドライバーが複数存在し、前記仮想ポートドライバーと前記通信ポートを介して被制御装置と通信を行う制御装置をコンピューターにより制御するための制御プログラムであって、
一の仮想ポートドライバーに、当該仮想ポートドライバーが対応する前記デバイスドライバーとの間で所定の通信ポートとしてエミュレートして通信処理を行わせる手段、
少なくとも他の仮想ポートドライバーが前記通信ポートを占有している場合に、前記一の仮想ポートドライバーが、前記他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートして通信処理を行わせる手段、
として前記コンピューターにより処理させることを特徴とする制御プログラム。
【請求項５】
請求項４記載の制御プログラムにおいて、
前記一の仮想ポートドライバーは前記他の仮想ポートドライバーに対応する通信モジュールを備えており、前記通信モジュールを介して前記所定のデバイスドライバーとしてエミュレートし通信処理を行わせる手段、
として前記コンピューターにより処理させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御方法および制御プログラムに係り、特に特定の通信インターフェースに対応したアプリケーションプログラムを特定の通信インターフェースとは異なる他の通信インターフェースに接続することが可能な通信制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
従来、アプリケーションプログラムにおいては、オペレーティングシステム上で様々な周辺機器を利用するために、オペレーティングシステムの内部において、周辺装置を制御するためのモジュールとしてデバイスドライバーを組み込むようにされていた（例えば、特許文献１参照）。
このデバイスドライバーは、グラフィックディスプレイ、プリンターやイーサネット（登録商標）ボードなど、ある特定の入出力デバイス（拡張カードや周辺機器などのハードウェア）を制御し、アプリケーションソフトウェアに対して入出力するためのソフトウェアである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１５８７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、デバイスドライバーを効率的に作成したり使用するため、主に通信プロトコルの制御等を行う仮想ポートドライバーを介して、通信ポート（物理ポート）と通信を行う構成や方法がある。ここで、同一の通信ポートを使用する仮想ポートドライバーが複数存在する通信環境においては、複数の仮想ポートドライバーが同時に同一の通信ポートを使用しようとすることにより、競合が発生することとなる。あるいは、使用しようとする期間が重複してしまう場合がある。
この場合において、仮想ポートドライバーの種類や仕様によっては、一旦通信ポートを確保すると自己が接続している通信ポートを占有し続けるものがある。
具体的には、このような種類の仮想ポートドライバーとしては、通信確立した後、接続状態を常時確認するような仮想ポートドライバーが考えられる。この種の仮想ポートドライバーは、自己が対応する通信ポートに被制御装置が接続されているか否かを常時判別する必要があるため、当該通信ポートを解放することがないのである。
【０００５】
このように他の仮想ポートドライバーが通信ポートを占有している場合には、一の仮想ポートドライバーが当該通信ポートを使用しようとしても、当該通信ポートを使用することができず、ひいては、当該一の他の仮想ポートドライバーを介して接続するデバイスドライバー（アプリケーションプログラム）も当該通信ポートを利用することができなくなってしまうと言う不具合が生じることとなる。
そこで、本発明の目的は、同一の通信ポートを使用する仮想ポートドライバーが複数存在する通信環境において、当該通信ポートを占有している仮想ポートドライバーが存在する場合でも、当該通信ポートを占有している仮想ポートドライバー以外の仮想ポートドライバーが通信ポートを使用して通信を行うことが可能となる通信制御方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、複数のデバイスドライバーとそれぞれ対応するもので、同一の通信ポートを使用する仮想ポートドライバーが複数存在し、前記仮想ポートドライバーと前記通信ポートを介して被制御装置と通信を行う制御装置の通信制御方法であって、一の仮想ポートドライバーが、自己が対応する前記デバイスドライバーとの間で所定の通信ポートに対応するものとしてエミュレートし通信処理を行う過程と、少なくとも他の仮想ポートドライバーが前記通信ポートを占有している場合に、前記一の仮想ポートドライバーが、前記他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートし通信処理を行う過程と、を含むことを特徴としている。
また、前記一の仮想ポートドライバーは前記他の仮想ポートドライバーに対応する通信モジュールを備えており、前記通信モジュールを介して前記所定のデバイスドライバーとしてエミュレートし通信処理を行う過程と、を含むことを特徴とする。
【０００７】
上記構成によれば、一の仮想ポートドライバーは、自己が対応するデバイスドライバーとの間で所定の通信ポートとしてエミュレートし通信処理を行うとともに、少なくとも他の仮想ポートドライバーが通信ポートを占有している場合に、一の仮想ポートドライバーが、通信ポートを占有している他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートし通信処理を行う。
したがって、一の仮想ポートドライバーに対応するデバイスドライバー、ひいては、このデバイスドライバーを利用して通信ポートを介した通信を行うアプリケーションは、他の仮想ポートドライバーが当該通信ポートを占有しているか否かにより影響を受けることなく当該通信ポートを利用した通信を行うことが可能となる。
【０００８】
この場合において、前記一の仮想ポートドライバーが前記通信ポートに対して通信要求処理を行う過程と、前記通信要求処理に対する前記通信ポートによる通信許可の応答が得られなかった場合に、前記他の仮想ポートドライバーが前記通信ポートを占有しているものと判断して、当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートする通信処理に移行する過程と、を備えたことを特徴としている。
上記構成によれば、一の仮想ポートドライバーが通信ポートに対して行った通信要求処理に対する通信許可の応答が得られなかった場合に、他の仮想ポートドライバーが通信ポートを占有しているものとして、他の仮想ポートドライバーが対応する所定のデバイスドライバーをエミュレートする通信処理に移行するので、アプリケーション側、ひいては、ユーザー側では占有の有無を意識することなく、通信処理を行うことが可能となる。
【０００９】
また、本発明は、複数のデバイスドライバーとそれぞれ対応するもので、同一の通信ポートを使用する仮想ポートドライバーが複数存在し、前記仮想ポートドライバーと前記通信ポートを介して被制御装置と通信を行う制御装置をコンピューターにより制御するための制御プログラムであって、一の仮想ポートドライバーに、当該仮想ポートドライバーが対応する前記デバイスドライバーとの間で所定の通信ポートとしてエミュレートし通信処理を行わせる手段、少なくとも他の仮想ポートドライバーが前記通信ポートを占有している場合に、前記一の仮想ポートドライバーが、前記他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応する所定のデバイスドライバーとしてエミュレートし通信処理を行わせる手段、として前記コンピューターにより処理させることを特徴としている。
また、前記一の仮想ポートドライバーは前記他の仮想ポートドライバーに対応する通信モジュールを備えており、前記通信モジュールを介して前記所定のデバイスドライバーとしてエミュレートし通信処理を行わせる手段、として前記コンピューターにより処理させることを特徴とする。
【００１０】
上記構成によれば、一の仮想ポートドライバーに対応するデバイスドライバー、ひいては、このデバイスドライバーを利用して通信ポートを介した通信を行うアプリケーションは、他の仮想ポートドライバーが当該通信ポートを占有しているか否かにより影響を受けることなく当該通信ポートを利用した通信を行うことが可能となる。
【発明の効果】
【００１１】
本発明によれば、同一の通信ポートを使用する仮想ポートドライバーが複数存在する通信環境において、通信ポートを占有している仮想ポートドライバーが存在する場合でも、通信ポートを占有している仮想ポートドライバー以外の仮想ポートドライバーが当該占有されている通信ポートを介して通信を行える。
したがって、同一の通信ポートを使用する仮想ポートドライバーが複数存在する場合に、アプリケーションプログラムは、いずれかの仮想ポートドライバーを使用するデバイスドライバーのいずれを使用しても同一の通信ポートを介した通信を行うことが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施形態のＰＯＳシステムの概要構成ブロック図である。
【図２】ＰＯＳ端末装置の概要構成ブロック図である。
【図３】ＰＯＳ端末装置における通信制御系の機能説明図である。
【図４】デバイスドライバーＤＤ１と、仮想ポートドライバーＶＰＤ１の詳細構成説明図である。
【図５】仮想ポートドライバーＶＰＤ２の詳細構成説明図である。
【図６】実施形態の印刷時のシーケンスフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態について説明する。
図１は、実施形態のＰＯＳシステムの概要構成ブロック図である。
ＰＯＳシステム１０は、例えば、スーパーマーケットなどの小売業者などに導入される販売管理システムであり、大別すると、レシートあるいはクーポンなどを印刷するプリンター１１が接続された複数のＰＯＳ端末装置１２と、複数のＰＯＳ端末装置１２とイントラネットなどの通信ネットワーク１３を介して接続され、複数のＰＯＳ端末装置１２の管理およびＰＯＳ端末装置１２を介して収集した販売データなどの各種データ管理を行うＰＯＳサーバー装置１４と、を備えている。
ここで、プリンター１１は、被制御装置として機能し、ＰＯＳ端末装置１２は、この被制御装置を制御する制御装置として機能している。
【００１４】
図２は、ＰＯＳ端末装置の概要構成ブロック図である。
ＰＯＳ端末装置１２は、商品に関する情報（金額、商品コード、割引率など）や顧客に関する情報（性別、年代）などをオペレーターが手入力するためのキーボード２１と、商品等に付されたバーコードを読み取り、商品に関する情報を入力するバーコードリーダー２２と、顧客のクレジットカードや会員カードを読み取り、クレジット清算に関する情報や会員番号等の会員に関する情報を取得するカードリーダー２３と、ＰＯＳサーバー装置１４から送信される商品データや、キーボード２１、バーコードリーダー２２あるいはカードリーダー２３からの入力情報に基づいてレシート印刷情報やクーポン印刷情報を生成し、プリンター１１に出力する端末装置本体２４と、ＰＯＳサーバー装置１４から送信された商品データを元に生成した商品情報や、顧客に対して購入商品の金額等を提示するためのディスプレイ２５と、を備えている。
【００１５】
上記構成において、端末装置本体２４は、図示しないＭＰＵ、ＲＯＭ、ＲＡＭなどを備えたコンピューターとして構成され、ＲＯＭに格納した制御プログラムに基づいて制御を行っている。
また、プリンター１１と、ＰＯＳ端末装置１２とは、コネクターＣ１、Ｃ２および通信ケーブルＣＡを介して接続されている。
ＰＯＳサーバー装置１４は、図示しないＭＰＵ、ＲＯＭ、ＲＡＭ、データベースを格納したハードディスク装置などを備えたコンピューターとして構成されている。
【００１６】
図３は、ＰＯＳ端末装置における通信制御系の機能説明図である。
ＰＯＳ端末装置１２のオペレーティングシステム（ＯＳ）ＯＰＳ上で動作するアプリケーションプログラムＡＰ（例えば、ＰＯＳ端末制御用プログラム）を設計する段階では、ＰＯＳ端末装置１２の周辺機器として接続されるプリンター１１の具体的な種類については未定であることもある。このため、実際にプリンター１１を接続した段階で、プリンター１１を制御するためのプロトコルに対応したデバイスドライバーＤＤ１を導入することもある。
この場合において、デバイスドライバーＤＤ１は、実際の通信ポート（例えば、ＬＰＴポートやＣＯＭ１、ＵＳＢポートなどの物理ポート）を制御する機能を含めたものである場合、通信可能な通信ポートは固定的に特定されており、変更に柔軟に対応することはできない。
このため、例えば、デバイスドライバーＤＤ１が対応する通信ポートが存在しないシステムなどにおいて、デバイスドライバーＤＤ１を組み込むような場合には、デバイスドライバーＤＤ１が通信可能な通信ポートに対応するプロトコルを、実際に周辺機器が接続されている通信ポートに対応するプロトコルに変換するために、仮想ポートドライバーＶＰＤ１がデバイスドライバーＤＤ１と通信ポートとの間に導入されることとなる。
また、通信ポートのサポートが変更する毎にデバイスドライバーを作成したり、また使用する場合においてもデバイスドライバーを都度変更する必要がある。通信ポートに対応するプロトコル部分は各デバイスや各通信ポート種類の間で共通化ができるため、仮想ポートドライバーとして取り出して構成すれば、デバイスドライバーの作成や使用が効率的になる。デバイスドライバーから仮想ポートドライバーへは、簡単な通信プロトコルで済む。変更も簡単である。異なる通信プロトコルが設定されていても、変換も可能である。
【００１７】
例えば、デバイスドライバーＤＤ１が対応する通信ポートがＬＰＴポートであり、実際にプリンター１１が接続されている通信ポートが通信ポートＣＯＭ１である場合には、仮想ポートドライバーＶＰＤ１は、ＬＰＴポートに対応するプロトコルをＣＯＭポートに対応するプロトコルに変換することで、すなわち、仮想ポートドライバーＶＰＤ１がデバイスドライバーＤＤ１に対しては、ＬＰＴポートをエミュレートし、通信ポートＣＯＭ１に対しては、通信ポートＣＯＭ１に対応したデバイスドライバーをエミュレートすることにより、デバイスドライバーＤＤ１がＣＯＭポートを介してプリンター１１を制御可能な状態とするのである。
ここで、ＬＰＴポート（通信ポート）をエミュレートするとは、通信相手（上記例の場合デバイスドライバーＤＤ１）があたかもＬＰＴポートと通信を行っているように“Ｈ”レベル、“Ｌ”レベルのディジタル信号の入出力を行うという意味であり、デバイスドライバーをエミュレートするとは、通信相手（上記例の場合、通信ポートＣＯＭ１）があたかもデバイスドライバーとデータのやりとりを行っているようにデータの送受信（コマンド及び実データを含む）を行うことを言う。以下、他のエミュレート動作についても同様である。
【００１８】
ところで、デバイスドライバーＤＤ１の導入前に通信ポートに他の種類のプリンターあるいは他の周辺機器を接続していた場合には、当該他の種類のプリンターあるいは周辺機器に対応するデバイスドライバーＤＤ２が既に導入されている場合がある。
この場合においても、デバイスドライバーＤＤ２は、特定の通信ポートを制御するものであるため、通信可能な通信ポートは固定であり、変更に柔軟に対応することはできないので、デバイスドライバーＤＤ２が通信可能な通信ポートに対応するプロトコルを、実際に周辺機器が接続されている通信ポートに対応するプロトコルに変換するために、仮想ポートドライバーＶＰＤ２がデバイスドライバーＤＤ２と通信ポートとの間に導入されていることがある。すなわち、仮想ポートドライバーＶＰＤ２がデバイスドライバーＤＤ２に対しては、デバイスドライバーＤＤ２が対応する通信ポートをエミュレートし、通信ポートＣＯＭ１に対しては、通信ポートＣＯＭ１に対応したデバイスドライバーをエミュレートすることにより、デバイスドライバーＤＤ１が通信ポートＣＯＭ１を介してプリンター１１を制御可能な状態とするのである。
このような状況下において、仮想ポートドライバーＶＰＤ２が、通信ポートＣＯＭ１を占有したままとなっている場合がある。
このような状況となる原因としては、様々あるが、仮想ポートドライバーＶＰＤ２が、例えば、入出力データを送ることはないのだが、通信ポートに被制御装置が接続されているか否かを常時監視する必要があるような場合がある。
【００１９】
このように通信ポートＣＯＭ１が占有されたままである場合には、その後に導入（インストール）される仮想ポートドライバーＶＰＤ１は、通信ポートＣＯＭ１にアクセスすることができず、通信を行うことができず、ひいては、仮想ポートドライバーＶＰＤ１を利用するデバイスドライバーＤＤ１、ひいては、アプリケーションプログラムＡＰが処理を行えなくなってしまうという不具合が生じる。
そこで、本実施形態においては、仮想ポートドライバーＶＰＤ１を導入（インストール）する時点で、すでに通信ポートを占有している仮想ポートドライバーＶＰＤ２が存在する場合には、当該仮想ポートドライバーＶＰＤ１は、仮想ポートドライバーＶＰＤ２を介して通信ポートとの間で通信を行うように動作するようにしているのである。
【００２０】
具体的には、仮想ポートドライバーＶＰＤ２が、デバイスドライバーＤＤ２に対応するプロトコルを、占有している通信ポートに対応するプロトコルに変換するものである場合には、仮想ポートドライバーＶＰＤ１は、デバイスドライバーＤＤ１に対応するプロトコルを、デバイスドライバーＤＤ２に対応するプロトコルに変換するように動作する。
すなわち、仮想ポートドライバーＶＰＤ１がデバイスドライバーＤＤ１に対しては、通信ポートＣＯＭ１をエミュレートし、仮想ポートドライバーＶＰＤ２に対しては、通信ポートＣＯＭ１に対応したデバイスドライバーＤＤ２をエミュレートすることにより、デバイスドライバーＤＤ１が通信ポートＣＯＭ１を介してプリンター１１を制御可能な状態とするのである。
これにより仮想ポートドライバーＶＰＤ１は、仮想ポートドライバーＶＰＤ２からみると仮想的には、デバイスドライバーＤＤ２と等価となり、アプリケーションプログラムＡＰは、仮想ポートドライバーＶＰＤ２が通信ポートを占有しているか否かに拘わらず、通信ポートを介してプリンター１１を制御することが可能となるのである。
【００２１】
ここで、デバイスドライバーと仮想ポートドライバーの動作についてより詳細に説明する。
この場合において、仮想ポートドライバーＶＰＤ１は、デバイスドライバーＤＤ１のドライバー制御モジュール３１の制御下で、通信ポートＣＯＭ１を介して通信を行うように設定されていたとする。
アプリケーションプログラムＡＰから通信要求がなされると、デバイスドライバーＤＤ１のドライバー制御モジュール３１は、仮想ポートドライバーＶＰＤ１に対して、自己が対応している通信プロトコルを用いて通信要求を行う。
これにより、仮想ポートドライバーＶＰＤ１は、デバイスドライバーＤＤ１のドライバー制御モジュール３１が対応している通信プロトコルを用いる通信ポートをエミュレートする。
【００２２】
図４は、デバイスドライバーＤＤ１と、仮想ポートドライバーＶＰＤ１の詳細構成説明図である。
この場合において、仮想ポートドライバーＶＰＤ１は、図４に示すように、シリアル通信を行う通信ポートＣＯＭ（ＣＯＭ１、ＣＯＭ２、…）と通信可能なＣＯＭポート通信モジュール４１、パラレル通信を行う通信ポートＬＰＴ（ＬＰＴ１、ＬＰＴ２、…）と通信可能なＬＰＴポート通信モジュール４２、ユニバーサルシリアルバス（ＵＳＢ）通信を行う通信ポートＵＳＢ（ＵＳＢ１、ＵＳＢ２、…）と通信可能なＵＳＢポート通信モジュール４３、ＬＡＮ用通信規格に準じたイーサネット（登録商標）ポートと通信可能なイーサネット（登録商標）ポート通信モジュール４４、無線ＬＡＮ用通信規格に準じたワイヤレスポートと通信可能なワイヤレスポート通信モジュール４５、及び、仮想ポートドライバーＶＰＤ２に対して、仮想ポートドライバーＶＰＤ２が対応しているデバイスドライバーＤＤ２をエミュレートする仮想ポート通信モジュール４６、を備えている。
【００２３】
そして、仮想ポートドライバーＶＰＤ１は、デバイスドライバーＤＤ１のドライバー制御モジュールに対しては、通信ポートＣＯＭ１を介した通信を行うように設定されているので、本来は図４に破線矢印で示すように、ＣＯＭポート通信モジュール４１を介して通信を行うはずである。
しかしながら、上述したように、通信ポートＣＯＭ１は、仮想ポートドライバーＶＰＤ２により占有されているので、仮想ポートドライバーＶＰＤ１は、図４に実線矢印で示すように、仮想ポート通信モジュール４６を介して仮想ポートドライバーＶＰＤ２に対して、デバイスドライバーＤＤ２の図示しないドライバー制御モジュールをエミュレートして、通信要求を行う。
【００２４】
図５は、仮想ポートドライバーＶＰＤ２の詳細構成説明図である。
この場合において、仮想ポートドライバーＶＰＤ２は、図５に示すように、シリアル通信を行う通信ポートＣＯＭ（ＣＯＭ１、ＣＯＭ２、…）と通信可能なＣＯＭポート通信モジュール５１、パラレル通信を行う通信ポートＬＰＴ（ＬＰＴ１、ＬＰＴ２、…）と通信可能なＬＰＴポート通信モジュール５２、ユニバーサルシリアルバス（ＵＳＢ）通信を行う通信ポートＵＳＢ（ＵＳＢ１、ＵＳＢ２、…）と通信可能なＵＳＢポート通信モジュール５３、ＬＡＮ用通信規格に準じたイーサネット（登録商標）ポートと通信可能なイーサネット（登録商標）ポート通信モジュール５４、及び、無線ＬＡＮ用通信規格に準じたワイヤレスポートと通信可能なワイヤレスポート通信モジュール５５、を備えている。
そして、仮想ポートドライバーＶＰＤ２は、デバイスドライバーＤＤ２の図示しないドライバー制御モジュールに対しては、通信ポートＣＯＭ１を介した通信を行うように設定されているので、図５に実線矢印で示すように、ＣＯＭポート通信モジュール５１及び通信ポートＣＯＭ１を介して通信を行い、ひいては、デバイスドライバーＤＤ１がプリンター１１と通信を行えるようにしている。
【００２５】
次に具体的な通信制御処理についてＣＯＭポートに接続されたプリンターにより印刷を行う場合を例として説明する。
図６は、実施形態の印刷時のシーケンスフローチャートである。
まず、ＰＯＳ端末装置１２上で動作するアプリケーションプログラムＡＰに対応するデバイスドライバーＤＤ１は、アプリケーションプログラムＡＰが印刷開始要求を行うと（ステップＳ１１）、当該アプリケーションプログラムが対応する通信ポート（例えば、ＬＰＴポート）のプロトコルに変換し、仮想ポートドライバーＶＰＤ１に対し印刷開始要求を転送する（ステップＳ１２）。
【００２６】
印刷開始要求を転送された仮想ポートドライバーＶＰＤ１は、見かけ上、仮想ポートドライバーＶＰＤ２に対応する上位のデバイスドライバーＤＤ２と同様に機能し、仮想ポート通信モジュール４６を介して、転送された印刷開始要求をデバイスドライバーＤＤ２が対応する通信ポート（例えば、ＵＳＢポート）のプロトコルに変換し、仮想ポートドライバーＶＰＤ２に転送する（ステップＳ１３）。すなわち、仮想ポートドライバーＶＰＤ１は、デバイスドライバーＤＤ１に対しては当該デバイスドライバーＤＤ１が対応する通信ポートをエミュレートし、仮想ポートドライバーＶＰＤ２に対してはデバイスドライバーＤＤ２をエミュレートすることとなる。
【００２７】
これにより仮想ポートドライバーＶＰＤ２は、転送された印刷開始要求を、ＣＯＭポート通信モジュールを介して通信ポートＣＯＭ１に対応する通信プロトコルに変換して通信ポートＣＯＭ１に送出し、通信ポートＣＯＭ１、コネクターＣ１、通信ケーブル、コネクターＣ２を介してプリンター１１に対して印刷開始要求がなされることとなる（ステップＳ１４）。すなわち、仮想ポートドライバーＶＰＤ２は、仮想ポートドライバーＶＰＤ１に対しては、通信ポートＣＯＭ１をエミュレートし、通信ポートＣＯＭ１に対しては、デバイスドライバーＤＤ２をエミュレートすることとなる。
【００２８】
印刷開始要求を受けたプリンター１１は、印刷データの受け入れが可能である場合には、印刷開始受諾をＰＯＳ端末装置１２の通信ポートＣＯＭ１に対し、コネクターＣ２、通信ケーブル、コネクターＣ１を介して送信する（ステップＳ１５）。
通信ポートＣＯＭ１を介して印刷開始受諾を受信した仮想ポートドライバーＶＰＤ２は、通信ポートＣＯＭ１に対応する通信プロトコルを仮想ポートドライバーＶＰＤ１が対応する通信プロトコルに変換し、仮想ポートドライバーＶＰＤ１に転送する（ステップＳ１６）。すなわち、仮想ポートドライバーＶＰＤ２は、通信ポートＣＯＭ１に対しては、デバイスドライバーＤＤ２をエミュレートし、デバイスドライバーＤＤ１に対しては、通信ポートＣＯＭ１をエミュレートすることとなる。
【００２９】
これにより、見かけ上、通信ポートＣＯＭ１から印刷開始受諾を受信した仮想ポートドライバーＶＰＤ１は、通信プロトコルをデバイスドライバーＤＤ１が対応する通信プロトコルに変換し、デバイスドライバーＤＤ１に転送する（ステップＳ１７）。すなわち、仮想ポートドライバーＶＰＤ１は、仮想ポートドライバーＶＰＤ２に対しては、デバイスドライバーＤＤ２をエミュレートし、デバイスドライバーＤＤ１に対しては、当該デバイスドライバーＤＤ１が対応している通信ポートをエミュレートすることとなる。
【００３０】
デバイスドライバーＤＤ１は、受信した印刷開始受諾をアプリケーションプログラムＡＰが対応するデータフォーマットに変換するプロトコル変換を行い、アプリケーションプログラムに転送する（ステップＳ１８）。
デバイスドライバーＤＤ１より印刷開始受諾を受信したアプリケーションプログラムＡＰは、印刷制御コマンド、実印刷データなどの印刷に必要な印刷データをデバイスドライバーＤＤ１に転送する（ステップＳ１９）。
これによりデバイスドライバーＤＤ１は、当該アプリケーションプログラムが対応する通信ポート（例えば、ＬＰＴポート）のプロトコルに変換し、仮想ポートドライバーＶＰＤ１に対し印刷データを転送する（ステップＳ２０）。
【００３１】
印刷データを転送された仮想ポートドライバーＶＰＤ１は、仮想ポート通信モジュール４６を介して、転送された印刷開始要求をデバイスドライバーＤＤ２が対応する通信ポート（例えば、ＵＳＢポート）のプロトコルに変換し、仮想ポートドライバーＶＰＤ２に印刷データを転送する（ステップＳ２１）。すなわち、仮想ポートドライバーＶＰＤ１は、デバイスドライバーＤＤ１に対しては当該デバイスドライバーＤＤ１が対応する通信ポートをエミュレートし、仮想ポートドライバーＶＰＤ２に対してはデバイスドライバーＤＤ２をエミュレートすることとなる。
【００３２】
これにより仮想ポートドライバーＶＰＤ２は、転送された印刷データを、ＣＯＭポート通信モジュールを介して通信ポートＣＯＭ１に対応する通信プロトコルに変換して通信ポートＣＯＭ１に送出し、通信ポートＣＯＭ１、コネクターＣ１、通信ケーブル、コネクターＣ２を介してプリンター１１に対して印刷データが転送されることとなる（ステップＳ２２）。すなわち、仮想ポートドライバーＶＰＤ２は、仮想ポートドライバーＶＰＤ１に対しては、通信ポートＣＯＭ１をエミュレートし、通信ポートＣＯＭ１に対しては、デバイスドライバーＤＤ２をエミュレートすることとなる。
これらの結果、プリンター１１は、転送された印刷データに含まれる印刷制御コマンドおよび印刷データを解釈して印刷処理を行うこととなる（ステップＳ２３）。
【００３３】
以上の説明のように、本実施形態によれば、同一の通信ポートを使用する仮想ポートドライバーが複数存在する通信環境で、一の仮想ポートドライバーが通信を行うとし、他の仮想ポートドライバーが使用しようとする通信ポートを占有している場合に、一の仮想ポートドライバーが、占有状態にある当該他の仮想ポートドライバーとの間で当該他の仮想ポートドライバーが対応するデバイスドライバーをエミュレートして当該通信ポートを介して接続された被制御装置と通信を行うことが可能となる。
【００３４】
以上の説明においては、仮想ポートドライバーＶＰＤ１のインストール時に通信ポートＣＯＭ１を占有している仮想ポートドライバーＶＰＤ２の存在により、以降は仮想ポートドライバーＶＰＤ１が仮想ポートドライバーＶＰＤ２を介して通信ポートＣＯＭ１と通信を行うものとして説明したが、仮想ポートドライバーＶＰＤ１のインストール後に、一の仮想ポートドライバーである仮想ポートドライバーＶＰＤ１が通信ポートＣＯＭ１に対して、ＣＯＭポート通信モジュール４１を介して通信要求処理を行い、この通信要求処理に対する通信ポートＣＯＭ１による応答が得られなかった場合に、他の仮想ポートドライバーである仮想ポートドライバーＶＰＤ２が通信ポートＣＯＭ１を占有しているものとして、当該他の仮想ポートドライバーである仮想ポートドライバーＶＰＤ２が対応するデバイスドライバー（本実施形態の場合、デバイスドライバーＤＤ２）をエミュレートする通信処理に移行するように構成することも可能である。
【００３５】
以上の説明においては、通信ポートとして、通信ポートＣＯＭ１を通信に用いる場合について説明したが、他の種類の通信ポート（例えば、ＬＰＴポート、ＵＳＢポート、イーサネット（登録商標）ポート、ワイヤレスポート）であっても同様に適用が可能である。
【符号の説明】
【００３６】
１０…ＰＯＳシステム、１１…プリンター、１２…ＰＯＳ端末装置、１３…通信ネットワーク、１４…ＰＯＳサーバー装置、２４…端末装置本体、３１…ドライバー制御モジュール、４６…仮想ポート通信モジュール、５１…ＣＯＭポート通信モジュール、ＡＰ…アプリケーションプログラム、ＣＯＭ１…通信ポート、ＤＤ１、ＤＤ２…デバイスドライバー、ＶＰＤ１、ＶＰＤ２…仮想ポートドライバー。
【図１】
2011022918.tif 000003
【図２】
2011022918.tif 000004
【図３】
2011022918.tif 000005
【図４】
2011022918.tif 000006
【図５】
2011022918.tif 000007
【図６】
2011022918.tif 000008