説明

制御装置の制御方法、及び、プログラム

【課題】デバイス制御プログラムにおいてデバイスに依存するオブジェクトの開発に係る労力の軽減を図る。
【解決手段】POSアプリケーションプログラム11に対しデバイスの種類毎のインターフェースを提供するプリンターCO21と、プリンターCO21に対しデバイスの種類毎のインターフェースを提供するとともにデバイス単位の処理を実行するプリンターSO22とを有し、これらのオブジェクトがオペレーティングシステム12の下で動作するホストコンピューター10であって、プリンターCO21が呼び出す少なくとも一部のメソッドについてはプリンターSO22に代わって処理を実行し、実行後の結果に基づきプリンターSO22のメソッドを呼び出す一方、プリンターCO21が他のメソッドを呼び出した場合はプリンターSO22のメソッドを呼び出すラッパーSO30を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンター等のデバイスを制御する制御装置の制御方法、及び、プログラムに関する。
【背景技術】
【0002】
オブジェクト指向プログラミングによるコンポーネントベースのプログラムあるいはソフトウェア(以降においてはオブジェクト)は、オペレーティングシステム上で稼動する再利用可能なソフトウェアであり、オブジェクトを用いて多種多様なシステムが開発されている。例えば、マイクロソフト(登録商標)社が提供する.NET Frameworkを基盤としたオペレーティングシステム(OS)では、クライアントであるアプリケーションプログラム(コンテナアプリケーション)がオブジェクトを使用可能とする環境を提供する広範囲な機能を有するオペレーティングシステムである。
例えば、POSシステムは多種多様な周辺装置により組み立てられるシステムの1つであり、パーソナルコンピューターなどの中心となるホストコンピューターにディスプレイ、プリンター、スキャナー、ドロワー、カードリーダーなど様々な入デバイスが接続されることによりシステムが構築される(例えば、特許文献1参照)。特許文献1には、オブジェクトを用い構築されたPOSシステムであってパーソナルコンピューターベースのフレキシブルな構成のPOSシステムが開示されている。
【0003】
オブジェクト分散型のPOSシステムでは、様々なメーカーにより提供されるPOSアプリケーションプログラムと、プリンター、スキャナー、ドロワーなどの周辺装置(デバイス)の種類単位(デバイスクラス単位)に供給されるコントロールオブジェクトと、周辺装置毎、すなわち、デバイス毎に供給されるサービスオブジェクトとを備えている。例えばPOSアプリケーションプログラムがプリンターから出力するときは、データがプリンターのコントロールオブジェクト(CO)に渡され、さらに、出力するプリンターのメーカーおよび機種に対応したサービスオブジェクト(SO)に渡され、OSを介してプリンターに供給される。
【0004】
OPOS(OLE for Retail POS)システムでは、POSアプリケーションプログラムに対して、OPOS標準仕様に準拠したデバイスクラス毎のコントロールオブジェクトおよびサービスオブジェクトを備えたオブジェクト制御システムが、アプリケーションプログラムに対して標準化されたインターフェースを提供するとともに、プリンターなどの周辺機器に対して機種依存性のないインターフェースを提供する。アプリケーションプログラムがデバイスクラス毎に定義されたメソッドを呼び出すと、コントロールオブジェクトがサービスオブジェクトのメソッドを、デバイスの機種に依存しないインターフェース(例えば、マイクロソフト社のIDispatchインターフェース)を介して呼び出す。サービスオブジェクトはOSが提供するデバイス毎のデバイスドライバーを利用してリクエストを実行し、実行結果をイベントとしてコントロールオブジェクトを通じてアプリケーションプログラムに通知する。
コントロールオブジェクトは、周辺機器のデバイスクラス毎に詳細な仕様が規定されていて、実質的にOPOS仕様により標準化されているが、一方のサービスオブジェクトは個々のデバイスの仕様に合わせて開発される。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平9−106355号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、デバイスの仕様変更や新機種開発にあたっては、当然のことながら変更後のデバイスに適合したサービスオブジェクトを開発する必要があるが、デバイスの多機能化によってコントロールオブジェクトが呼び出すメソッドはきわめて多く、その全てに対応するようにサービスオブジェクトを新規に開発することは大きな労力を要する。
本発明は、上述した事情に鑑みてなされたものであり、デバイス制御プログラムにおいてデバイスに依存するオブジェクトの開発に係る労力の軽減を図ることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明は、複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第1のオブジェクトと、前記第1のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第2のオブジェクトとを有し、これらのオブジェクトがオペレーティングシステムの下で動作する制御装置の制御方法であって、第3のオブジェクトが、前記第1のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第2のオブジェクトに代わって処理を実行し、実行後の結果に基づき前記第2のオブジェクトのメソッドを呼び出す一方、前記第1のオブジェクトが他のメソッドを呼び出した場合は前記第2のオブジェクトのメソッドを呼び出すことを特徴とする。
本発明によれば、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置が、第2のオブジェクトが対応していない一部のメソッドが呼び出された場合に第3のオブジェクトにより処理を実行できる。これにより、第2のオブジェクトが有する全てのメソッドがデバイスに適合していない場合であっても、この第2のオブジェクトを利用してデバイスを制御できる。従って、第2のオブジェクトの機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたって第2のオブジェクトの全体を新規に作成しなくても、旧来の第2のオブジェクトの資産を利用して必要なシステムを構築できる。
【0008】
また、本発明は、上記制御装置の制御方法において、前記第3のオブジェクトは、前記第2のオブジェクトが前記第1のオブジェクトに対し提供する前記インターフェースに介在して、前記第1のオブジェクトにより呼び出されたメソッドを実行し、前記インターフェースを介して前記第2のオブジェクトのメソッドを呼び出すことを特徴とする。
本発明によれば、第2のオブジェクト及び第1のオブジェクトの構成に影響を与えないように、第2のオブジェクトを補完できる。
【0009】
また、本発明は、上記制御装置の制御方法において、前記第1のオブジェクトはパーソナルコンピューターのデバイスの種類毎に提供されるコントロールオブジェクトであり、前記第2のオブジェクトは前記デバイス毎に提供されるサービスオブジェクトであることを特徴とする。
本発明によれば、例えばデバイスの仕様変更や新機種のデバイスの開発にあたって、当該デバイスの種類に対応するコントロールオブジェクトに対する互換性を確保した上で、デバイス毎に用意されるサービスオブジェクトの機能を補完することで、旧来のサービスオブジェクトの資産を利用できる。
【0010】
また、本発明は、上記制御装置の制御方法において、前記アプリケーションプログラムはPOSアプリケーションプログラムであり、前記第1のオブジェクト及び前記第2のオブジェクトは、前記POSアプリケーションプログラムの要求に応じてプリンターを制御するオブジェクトとして構成され、前記第3のオブジェクトは、前記第1のオブジェクトが所定の文字コードセットのプリントメソッドを呼び出した場合に、前記所定の文字コードセットから他の文字コードセットへの変換を行い、変換後の文字コードセットに基づき前記第2のオブジェクトのプリントメソッドを呼び出すことを特徴とする。
本発明によれば、第2のオブジェクトが文字コードの変換機能を持たない場合であっても、この変換機能を第3のオブジェクトが補完することで、第2のオブジェクトが対応していない文字コードセットのデータを処理できる。
また、本発明は、上記制御装置の制御方法において、前記所定の文字コードセットはUnicodeで示されるものであり、前記他の文字コードセットはバイトコードで示されるものであることを特徴とする。
アプリケーションからUnicodeで指定された文字が送られて来たとき、デバイスであるプリンターがUnicodeに対応していない場合、第3のオブジェクトがバイトコードに変換して印刷することができる。
【0011】
また、本発明は、上記制御装置の制御方法において、前記第1のオブジェクトはOPOS準拠のコントロールオブジェクトとして構成され、前記第2のオブジェクトが前記第1のオブジェクトに対し提供する前記インターフェースはIDispatchインターフェースとして構成され、前記第3のオブジェクトは、前記第1のオブジェクトに対しIDispatchインターフェースを提供する一方、前記第2のオブジェクトのIDispatchインターフェースを介して前記第2のオブジェクトのメソッドを呼び出すことを特徴とする。
本発明によれば、OPOSに準拠したサービスオブジェクトの機能を、OPOS準拠のコントロールオブジェクトに影響を与えることなく補完できる。
【0012】
また、上記目的を達成するために、本発明は、複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第1のオブジェクトと、前記第1のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第2のオブジェクトとを、オペレーティングシステムの下で動作させ、前記第1のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第2のオブジェクトに代わって第3のオブジェクトにより処理を実行し、実行後の結果に基づき前記第2のオブジェクトのメソッドを呼び出す一方、前記第1のオブジェクトが他のメソッドを呼び出した場合は前記第2のオブジェクトのメソッドを呼び出すことを特徴とする。
本発明の制御方法を実行することにより、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置が、第2のオブジェクトが対応していない一部のメソッドが呼び出された場合に第3のオブジェクトにより処理を実行できる。これにより、第2のオブジェクトが有する全てのメソッドがデバイスに適合していない場合であっても、この第2のオブジェクトを利用してデバイスを制御できる。従って、第2のオブジェクトの機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたって第2のオブジェクトの全体を新規に作成しなくても、旧来の第2のオブジェクトの資産を利用して必要なシステムを構築できる。
【0013】
また、上記目的を達成するために、本発明は、複数種類のデバイスを制御可能なアプリケーションプログラムと、前記アプリケーションプログラムに対してインターフェースを提供するオブジェクトを、オペレーティングシステムの下で実行するコンピューターを、複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第1のオブジェクトと、前記第1のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第2のオブジェクトと、前記第1のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第2のオブジェクトに代わって処理を実行し、実行後の結果に基づき前記第2のオブジェクトのメソッドを呼び出す一方、前記第1のオブジェクトが他のメソッドを呼び出した場合は前記第2のオブジェクトのメソッドを呼び出す第3のオブジェクトとして機能させることを特徴とする。
本発明のプログラムを実行することにより、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置が、第2のオブジェクトが対応していない一部のメソッドが呼び出された場合に第3のオブジェクトにより処理を実行できる。これにより、第2のオブジェクトが有する全てのメソッドがデバイスに適合していない場合であっても、この第2のオブジェクトを利用してデバイスを制御できる。従って、第2のオブジェクトの機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたって第2のオブジェクトの全体を新規に作成しなくても、旧来の第2のオブジェクトの資産を利用して必要なシステムを構築できる。
また、本発明は、上記プログラムを記憶した記憶媒体として実現してもよい。
【発明の効果】
【0014】
本発明によれば、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置において、例えばデバイスの仕様変更や新機種開発等にあたってオブジェクトの全体を新規に作成しなくても、旧来の資産を利用して必要なシステムを構築できる。
【図面の簡単な説明】
【0015】
【図1】実施形態に係るPOSシステムの機能的構成を示すブロック図である。
【図2】OPOSドライバーの構成を示す図である。
【図3】OPOSドライバーの具体的な動作例を示す図である。
【図4】POSシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態について説明する。
図1は、本発明を適用した実施形態に係るPOSシステム1の概要構成を示すブロック図である。
POSシステム1は、図示しないPOSサーバーに通信回線を介して接続されたホストコンピューター10(制御装置)を備え、このホストコンピューター10には、ディスプレイ51、キーボード52、プリンター53、スキャナー54、及びドロワー55の各種デバイスが接続されている。
ホストコンピューター10は、プリンター53とともにスーパーやコンビニエンス・ストア等の店舗において、ユーザーが会計処理をする近くに設置され、オペレーターによって入力された商品販売に関する入力情報に基づいてレシートを発行する。プリンター53は、直接ホストコンピューター10に接続されるローカルプリンターであり、プリンター53とインターフェースを介して有線又は無線で接続され、図1にはコネクターを介して有線接続された例を示す。ホストコンピューター10は、顧客に渡すクーポンやキッチンでの調理指示用の伝票などを印刷するための1または複数のプリンター53を制御し、ホストコンピューター10が生成した印刷データに基づいて、レシートや伝票を印刷出力させる。
【0017】
ホストコンピューター10は、商品情報を入力する入力デバイスとしてキーボード52及びスキャナー54を備え、キーボード52による入力またはスキャナー54による商品のバーコードの読み取り結果によって商品に関する入力情報を取得する。POSサーバー(図示略)は、ホストコンピューター10が送信する入力情報に基づいて、商品マスタから商品コード、商品名、金額に関する情報を抽出して返信する。
ホストコンピューター10は、POSサーバーから受信した情報に基づき、レシートや伝票の印刷を実行する。また、ホストコンピューター10は、POSサーバーから送信された商品データを元に生成した商品情報を表示するディスプレイ51を有し、このディスプレイ51における表示によって、顧客に対して購入商品の金額等を掲示する。ドロワー55は、商品販売に伴い授受される金銭を収容し、ホストコンピューター10により会計処理がされる毎に開閉される。
【0018】
ホストコンピューター10は、例えば、マイクロソフト社が提供する.NET Frameworkを基盤とした、ウィンドウズ(登録商標)等のオペレーティングシステム12を実行し、このオペレーティングシステム12上でPOSアプリケーションプログラム11、及びOPOSドライバー20を稼働させる。OPOSドライバー20は、オペレーティングシステム12上で稼動するプリンタードライバーOLE for Retail POS(以下OPOSドライバーという)であって、オペレーティングシステム12上で各種デバイスを制御する。
【0019】
OPOSドライバー20は、オペレーティングシステム12上で稼動するPOSアプリケーションプログラム11に対して、プリンター53、スキャナー54、及びドロワー55の各デバイスとの機種依存性のないインターフェースを提供するものであり、プリンターなどデバイスのカテゴリー毎に対応したコントロールオブジェクト(CO)とデバイスの機種毎の仕様に対応したサービスオブジェクト(SO)とによって構成されている。コントロールオブジェクトは、OPOSにより規格化された仕様に準拠して作成されたもので、通常、オペレーティングシステム12とともにPOSシステムのプラットホームの一部として提供される。
【0020】
これに対し、サービスオブジェクトはプリンター53、スキャナー54及びドロワー55の機種毎に開発、作成されるもので、各デバイスのメーカー等により提供される。サービスオブジェクトは各デバイスの機種間で異なる機能や仕様に合わせて異なった機能を有しており、デバイスの機種毎の特性に合わせた制御を行う。例えば、プリンターCO21は、オペレーティングシステム12による分類に従って、POSアプリケーションプログラム11に対してプリンターのデバイスカテゴリーに属するデバイスに共通のインターフェースを提供する。プリンターCO21(第1のオブジェクト)は、OPOS仕様に準拠した方法により、POSアプリケーションプログラム11が出力したデータに基づいて、プリンターSO22のメソッドを呼び出す。プリンターSO22(第1のオブジェクト)は、プリンター53の機種に適合するように作成され、プリンターCO21によりメソッドが呼び出されると処理を実行し、プリンター53を制御し、処理結果をイベントとしてプリンターCO21に通知する。
【0021】
また、OPOSドライバー20は、スキャナー54のデバイスカテゴリーに対応したスキャナーCO41と、スキャナー54の機種に対応して用意されたスキャナーSO42とを備え、これらによりスキャナー54の制御とバーコードの読み取りを可能としている。OPOSドライバー20は、ドロワー55のデバイスカテゴリーに対応したドロワーCO43と、ドロワー55の機種に対応して用意されたドロワーSO44とを備え、これらによりドロワーSO44の開閉制御を可能としている。ディスプレイ51及びキーボード52は、オペレーティングシステム12が提供するデバイスドライバーにより、POSアプリケーションプログラム11から制御可能となっている。
なお、ホストコンピューター10は、入力デバイスとして、カード型記録媒体に記録された磁気情報を読み取るカードリーダーを備えていてもよく、この場合、OPOSドライバー20は、カードリーダーのデバイスカテゴリーに対応するコントロールオブジェクト及びカードリーダーの機種に対応するサービスオブジェクトを備えた構成とすればよい。
【0022】
図2は、OPOSドライバー20の概念的な構成を詳細に示す図である。
この図2に示すように、プリンターSO22は、プリンターCO21からのメソッドの呼び出しやデータを受け取るためのインターフェースとして、IDispatchインターフェース23を提供する。プリンターSO22が実現するプリンター53の制御に係る様々な処理は、処理の種類(機能)毎に区分され、各機能に対応するメソッド24がある。また、それらに対応するIDispatchインターフェース23が設けられている。IDispatchインターフェースは、マイクロソフト社がオブジェクト間の通信のために提供するインターフェースである。例えば、プリンターCO21が、プリンターSO22の機能Bを実行させる場合、この機能Bを含むメソッド24が、そのメソッド24に対応するIDispatchインターフェース23を介して呼び出されて起動する。
【0023】
ところで、プリンターSO22はプリンター53の様々な機能に対応してメソッド24を備えているため、プリンター53の機能や設定項目が複雑であるほどプリンターSO22の構成も複雑化する。例えば、一般的なサーマルプリンターに対応するサービスオブジェクトが、100を超えるメソッドに対応していることも珍しくない。
プリンターの新機種の開発、或いは従来機種の仕様変更を行う場合、プリンターSO22の開発も必要になるが、例えば従来使用していたプリンターSO22に対して一部の機能のみを変更あるいは追加すれば済む場合がある。しかしながら、プリンターSO22においては、各々の機能を備える必要があり、また、IDispatchインターフェース23の構成とプリンターSO22の機能との整合が保たれることが必要である。上述したようにプリンターCO21はデバイスカテゴリー毎に共通のものを使用することになっている。
そこで、本実施形態のOPOSドライバー20は、プリンターCO21とプリンターSO22に加え、ラッパーSO30(第3のオブジェクト)を備え、このラッパーSO30によりプリンターSO22の機能を補完する構成となっている。
【0024】
ラッパーSO30は、プリンターCO21とプリンターSO22との間に介在し、プリンターSO22がプリンターCO21に対して提供するIDispatchインターフェース23への呼び出しを検出する。ここで、ラッパーSO30は、プリンターCO21に対してIDispatchインターフェース23と同様に識別されるIDispatchインターフェース31を備えており、プリンターCO21がプリンターSO22のメソッドを呼び出すと、IDispatchインターフェース31を介してラッパーSO30が呼び出される。
ラッパーSO30は、特定の機能に関するメソッド32を有している。このメソッド32は、プリンターSO22が有していない機能や、プリンターSO22の機能を改良、拡張、変更した機能に対応している。ラッパーSO30は、プリンターCO21からの呼び出しに対し、ラッパーSO30自身が有するメソッド32が制御を行うか、或いは、プリンターSO22のメソッド24を呼び出すかを判別する。そして、プリンターSO22のメソッド24で処理すればよい場合には、プリンターCO21からの呼び出しを、IDispatchインターフェース23に対して行う。プリンターSO22のメソッドからイベントが通知された場合、ラッパーSO30はIDispatchインターフェース31を介して、プリンターCO21に対してイベントを通知する。また、ラッパーSO30は、ラッパーSO30のメソッド32を実行した場合には、その結果をイベントとしてプリンターCO21に通知する機能を有する。
【0025】
このように、ラッパーSO30は、プリンターSO22で実行すべきで無いメソッドが呼び出された場合に、プリンターSO22に代わって当該メソッドを実行するものであり、ラッパーSO30を用いることでプリンターSO22の機能の追加、拡張、改変等を実現できる。また、ラッパーSO30はIDispatchインターフェース31を備え、プリンターCO21からはプリンターSO22の一部のように振る舞うため、プリンターCO21の仕様変更や改変等を伴わずに適用できるという利点がある。
【0026】
図3は、OPOSドライバー20の具体的な動作例を示す図であり、(A)はラッパーSO30がプリンターSO22のメソッドを呼び出す場合を示し、(B)はラッパーSO30のメソッドが呼び出される場合を示す。
図3(A)に示すように、POSアプリケーションプログラム11が、コードページを指定するデータで構成される文字データとともに、「PrintNormal」メソッドを呼び出すと、プリンターCO21は、プリンターSO22に対して「PrintNormal」メソッドの呼び出しを行う。POSアプリケーションプログラム11が出力したデータはプリンター53が内蔵するフォントデータの中から文字を指定する情報であり、このデータの形態がコードページを指定する情報となっているため、プリンター53は当該データに基づいて一つのフォントを取得して印刷できる。この場合、ラッパーSO30は、この呼び出しをプリンターSO22が実行可能であると判別して、プリンターSO22の「PrintNormal」メソッドを呼び出し、プリンター53を制御させる。
【0027】
一方、図3(B)に示すように、POSアプリケーションプログラム11がUnicodeで文字を指定するデータとともに、「PrintNormal」メソッドを呼び出し、プリンターCO21がプリンターSO22の「PrintNormal」メソッドの呼び出しを行った場合、ラッパーSO30は、この呼び出しをプリンターSO22が実行できないと判別して、ラッパーSO30が備えるMBCS(Multibyte Character Set)/Unicodeの変換を行うメソッド32を呼び出す。これは、プリンター53、及びプリンターSO22がUnicodeに対応していないため、プリンターSO22のメソッドを呼び出しても印刷できないためである。ラッパーSO30は、呼び出したメソッドによりPOSアプリケーションプログラム11が出力したデータの文字コードセットを変換して、マルチバイトコードの文字データを生成し、このデータに基づきプリンターSO22の「PrintNormal」メソッドを呼び出す。これにより、プリンターSO22の制御によって印刷が実行される。
【0028】
図4は、POSシステム1の動作を示すフローチャートである。
この図4を参照して、POSシステム1の動作の流れについてまとめると、POSアプリケーションプログラム11が印刷すべきデータと、印刷を実行させるため「PrintNormal」メソッドを呼び出すと(ステップS11)、プリンターCO21がメソッドを呼び出す(ステップS12)。
ラッパーSO30は、プリンターCO21が呼び出したメソッドをプリンターSO22に対して呼び出すか、ラッパーSO30自身が有するメソッド32で実行するかを判別し(ステップS13)、ラッパーSO30自身が実行する場合(ステップS13;Yes)、メソッド32を呼び出して処理を行い、処理後のデータに基づいてプリンターSO22のメソッド24を呼び出す(ステップS14)。また、ラッパーSO30自身が有するメソッドを実行しない場合(ステップS13;No)、プリンターSO22のメソッド24を呼び出す(ステップS16)。
その後、プリンターSO22がプリンター53を制御して印刷を実行し(ステップS15)、印刷の正常終了を示すイベントを通知して、本処理を終了する。
【0029】
以上のように、本発明を適用した実施形態に係るPOSシステム1は、プリンター53を含む複数種類のデバイスを制御可能なPOSアプリケーションプログラム11に対しデバイスの種類毎のインターフェースを提供するプリンターCO21と、プリンターCO21に対しデバイスの種類毎のインターフェースを提供するとともにデバイス単位の処理を実行するプリンターSO22とを有し、これらのオブジェクトがオペレーティングシステム12の下で動作するホストコンピューター10は、プリンターCO21が呼び出す少なくとも一部のメソッドについてはプリンターSO22に代わって処理を実行し、実行後の結果に基づきプリンターSO22のメソッドを呼び出す一方、プリンターCO21が他のメソッドを呼び出した場合はプリンターSO22のメソッドを呼び出すラッパーSO30を有し、プリンターSO22が対応していない一部のメソッドが呼び出された場合にラッパーSO30により処理を実行する。これにより、プリンターSO22が有する全てのメソッドがデバイスに適合していない場合であっても、このプリンターSO22を利用してデバイスを制御できる。従って、プリンターSO22の機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたってプリンターSO22の全体を新規に作成しなくても、旧来のプリンターSO22の資産を利用して必要なシステムを構築できる。
【0030】
また、ラッパーSO30は、プリンターSO22がプリンターCO21に対し提供するインターフェースに介在して、プリンターCO21により呼び出されたメソッドを実行し、インターフェースを介してプリンターSO22のメソッドを呼び出すので、プリンターSO22及びプリンターCO21の構成に影響を与えないように、プリンターSO22を補完できる。ここで、プリンターCO21はパーソナルコンピューターのデバイスの種類毎に提供されるコントロールオブジェクトであり、プリンターSO22はデバイス毎に提供されるサービスオブジェクトであるため、例えばデバイスの仕様変更や新機種のデバイスの開発にあたって、当該デバイスの種類に対応するコントロールオブジェクトに対する互換性を確保した上で、デバイス毎に用意されるサービスオブジェクトの機能を補完することで、旧来のサービスオブジェクトの資産を利用できる。
【0031】
また、プリンターCO21及びプリンターSO22は、POSアプリケーションプログラム11の要求に応じてプリンターを制御するオブジェクトとして構成され、ラッパーSO30は、プリンターCO21が所定の文字コードセットのプリントメソッドを呼び出した場合に、所定の文字コードセットから他の文字コードセットへの変換を行い、変換後の文字コードセットに基づきプリンターSO22のプリントメソッドを呼び出すので、プリンターSO22が文字コードの変換機能を持たない場合であっても、この変換機能をラッパーSO30が補完することで、プリンターSO22が対応していない文字コードセットのデータを処理できる。
さらに、プリンターCO21はOPOS準拠のコントロールオブジェクトとして構成され、プリンターSO22がプリンターCO21に対し提供するインターフェースはIDispatchインターフェースとして構成され、ラッパーSO30は、プリンターCO21に対しIDispatchインターフェースを提供する一方、プリンターSO22のIDispatchインターフェースを介してプリンターSO22のメソッドを呼び出すので、OPOSに準拠したサービスオブジェクトの機能を、OPOS準拠のコントロールオブジェクトに影響を与えることなく補完できる。
【0032】
なお、上記各実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、POSシステム1が備えるデバイスはディスプレイ51、キーボード52、プリンター53、スキャナー54及びドロワー55に限定されず、他のデバイスを使用することが可能であるし、例えばホストコンピューター10が複数台のプリンター53を制御して印刷を実行させる場合に本発明を適用することも可能である。また、上記実施形態ではプリンター53を制御するプリンターSO22の機能を補完するためラッパーSO30を設けた構成を例に挙げて説明したが、例えばスキャナーSO42やドロワーSO44の機能の拡張、変更等を行うために、スキャナー54やドロワー55に対応するラッパーSOを設けることも可能である。
さらに、本発明はオペレーティングシステム12上で実行される全てのアプリケーションプログラムに対してインターフェースを提供するオブジェクトを対象として、適用することが可能であり、アプリケーションプログラムはPOSアプリケーションプログラムに限定されないし、制御対象のデバイスも上述したように特に限定されない。
【0033】
また、図1〜図3に示した各機能部は機能的構成を示すものであって、各機能部を独立したハードウェアにより構成する必要はなく、ソフトウェアとハードウェアとの協働により、複数の機能部の機能を1つのハードウェアに集約して実現することも、一つの機能部を複数のハードウェアにより実現することも勿論可能である。また、上述の動作を行うホストコンピューター10が実行するプログラムは、ホストコンピューター10を構成するROM等の不揮発性記憶装置が記憶する構成に限らず、可搬型の記録媒体に記憶されている構成であってもよいし、或いは、通信回線を介して接続された他の装置にダウンロード可能に記憶され、これらの装置からホストコンピューター10が上記プログラムをダウンロードして実行してもよく、その他の構成についても任意に変更可能である。
【符号の説明】
【0034】
1…POSシステム、10…ホストコンピューター(制御装置)、11…POSアプリケーションプログラム、12…オペレーティングシステム、20…OPOSドライバー、21…プリンターCO(第1のオブジェクト)、22…プリンターSO(第2のオブジェクト)、23…IDispatchインターフェース23、24…メソッド、30…ラッパーSO(第3のオブジェクト)、31…IDispatchインターフェース、32…メソッド、41…スキャナーCO、42…スキャナーSO、43…ドロワーCO、44…ドロワーSO、53…プリンター(デバイス)、54…スキャナー(デバイス)、55…ドロワー(デバイス)。

【特許請求の範囲】
【請求項1】
複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第1のオブジェクトと、前記第1のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第2のオブジェクトとを有し、これらのオブジェクトがオペレーティングシステムの下で動作する制御装置の制御方法であって、
第3のオブジェクトが、前記第1のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第2のオブジェクトに代わって処理を実行し、実行後の結果に基づき前記第2のオブジェクトのメソッドを呼び出す一方、前記第1のオブジェクトが他のメソッドを呼び出した場合は前記第2のオブジェクトのメソッドを呼び出すこと、
を特徴とする制御装置の制御方法。
【請求項2】
前記第3のオブジェクトは、前記第2のオブジェクトが前記第1のオブジェクトに対し提供する前記インターフェースに介在して、前記第1のオブジェクトにより呼び出されたメソッドを実行し、前記インターフェースを介して前記第2のオブジェクトのメソッドを呼び出すことを特徴とする請求項1記載の制御装置の制御方法。
【請求項3】
前記第1のオブジェクトはパーソナルコンピューターのデバイスの種類毎に提供されるコントロールオブジェクトであり、前記第2のオブジェクトは前記デバイス毎に提供されるサービスオブジェクトであることを特徴とする請求項1または2記載の制御装置の制御方法。
【請求項4】
前記アプリケーションプログラムはPOSアプリケーションプログラムであり、
前記第1のオブジェクト及び前記第2のオブジェクトは、前記POSアプリケーションプログラムの要求に応じてプリンターを制御するオブジェクトとして構成され、
前記第3のオブジェクトは、前記第1のオブジェクトが所定の文字コードセットのプリントメソッドを呼び出した場合に、前記所定の文字コードセットから他の文字コードセットへの変換を行い、変換後の文字コードセットに基づき前記第2のオブジェクトのプリントメソッドを呼び出すことを特徴とする請求項1から3のいずれかに記載の制御装置の制御方法。
【請求項5】
前記所定の文字コードセットはUnicodeで示されるものであり、前記他の文字コードセットはバイトコードで示されるものであることを特徴とする請求項1から4のいずれかに記載の制御装置の制御方法。
【請求項6】
前記第1のオブジェクトはOPOS準拠のコントロールオブジェクトとして構成され、 前記第2のオブジェクトが前記第1のオブジェクトに対し提供する前記インターフェースはIDispatchインターフェースとして構成され、
前記第3のオブジェクトは、前記第1のオブジェクトに対しIDispatchインターフェースを提供する一方、前記第2のオブジェクトのIDispatchインターフェースを介して前記第2のオブジェクトのメソッドを呼び出すことを特徴とする請求項1から5のいずれかに記載の制御装置の制御方法。
【請求項7】
複数種類のデバイスを制御可能なアプリケーションプログラムと、前記アプリケーションプログラムに対してインターフェースを提供するオブジェクトを、オペレーティングシステムの下で実行するコンピューターを、
複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第1のオブジェクトと、
前記第1のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第2のオブジェクトと、
前記第1のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第2のオブジェクトに代わって処理を実行し、実行後の結果に基づき前記第2のオブジェクトのメソッドを呼び出す一方、前記第1のオブジェクトが他のメソッドを呼び出した場合は前記第2のオブジェクトのメソッドを呼び出す第3のオブジェクトと、
して機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate