(57)【特許請求の範囲】
【請求項１】
デバイスの機能に対応する第１のメソッドを呼び出す第１のオブジェクト、前記第１のメソッドを起動して処理を実行する第２のオブジェクト、及び前記第１のオブジェクトと前記第２のオブジェクトとの間に介在する第３のオブジェクトを有し、
前記第１のオブジェクトが前記第１のメソッドを呼び出したときに前記第３のオブジェクトが呼び出され、前記第３のオブジェクトにより前記第２のオブジェクトを呼び出すか否かを判別し、
前記第１のメソッドに対して前記第２のオブジェクトが対応していない場合、
前記第３のオブジェクトが、第２のメソッドを起動して処理を実行し、前記第２のメソッドで処理を実行した後に前記第２のオブジェクトに対して前記第１のメソッドを呼び出させ、
前記第２のオブジェクトが前記第１のメソッドを起動して処理を実行し、
前記第１のメソッドに対して前記第２のオブジェクトが対応する場合、
前記第３のオブジェクトが、前記第２のオブジェクトに対して前記第１のメソッドを呼び出させ、
前記第２のオブジェクトが前記第１のメソッドを起動して処理を実行することを特徴とする制御装置の制御方法。
【請求項２】
前記第３のオブジェクトは、前記第２のオブジェクトが前記第１のオブジェクトに対し提供するインターフェースに介在する請求項１記載の制御装置の制御方法。
【請求項３】
前記第１のオブジェクトは前記デバイスに対して提供されるコントロールオブジェクトであり、前記第２のオブジェクトは前記デバイスの機種に対して提供されるサービスオブジェクトである請求項１または２記載の制御装置の制御方法。
【請求項４】
前記制御装置は、前記第１のオブジェクトに前記第１のメソッドを呼び出すＰＯＳアプリケーションプログラムを有し、
前記第１のオブジェクトは、前記ＰＯＳアプリケーションプログラムの要求に応じてプリンターを制御するコントロールオブジェクトであり、
前記第２のオブジェクトは、前記ＰＯＳアプリケーションプログラムの要求に応じてプリンターを制御するサービスオブジェクトであり、
前記第１のメソッドは、所定の文字コードセットのプリントメソッドであり、
前記第３のオブジェクトの第２のメソッドは、前記第１のオブジェクトが前記所定の文字コードセットのプリントメソッドを呼び出した場合に、前記所定の文字コードセットから他の文字コードセットへの変換を行う請求項３に記載の制御装置の制御方法。
【請求項５】
前記所定の文字コードセットはUnicodeであり、前記他の文字コードセットはバイトコードである請求項４に記載の制御装置の制御方法。
【請求項６】
前記第１のオブジェクトはＯＰＯＳ準拠のコントロールオブジェクトである請求項４または５に記載の制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンター等のデバイスを制御する制御装置の制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
オブジェクト指向プログラミングによるコンポーネントベースのプログラムあるいはソフトウェア（以降においてはオブジェクト）は、オペレーティングシステム上で稼動する再利用可能なソフトウェアであり、オブジェクトを用いて多種多様なシステムが開発されている。例えば、マイクロソフト（登録商標）社が提供する．ＮＥＴ  Ｆｒａｍｅｗｏｒｋを基盤としたオペレーティングシステム（ＯＳ）では、クライアントであるアプリケーションプログラム（コンテナアプリケーション）がオブジェクトを使用可能とする環境を提供する広範囲な機能を有するオペレーティングシステムである。
例えば、ＰＯＳシステムは多種多様な周辺装置により組み立てられるシステムの１つであり、パーソナルコンピューターなどの中心となるホストコンピューターにディスプレイ、プリンター、スキャナー、ドロワー、カードリーダーなど様々な入デバイスが接続されることによりシステムが構築される（例えば、特許文献１参照）。特許文献１には、オブジェクトを用い構築されたＰＯＳシステムであってパーソナルコンピューターベースのフレキシブルな構成のＰＯＳシステムが開示されている。
【０００３】
オブジェクト分散型のＰＯＳシステムでは、様々なメーカーにより提供されるＰＯＳアプリケーションプログラムと、プリンター、スキャナー、ドロワーなどの周辺装置（デバイス）の種類単位（デバイスクラス単位）に供給されるコントロールオブジェクトと、周辺装置毎、すなわち、デバイス毎に供給されるサービスオブジェクトとを備えている。例えばＰＯＳアプリケーションプログラムがプリンターから出力するときは、データがプリンターのコントロールオブジェクト（ＣＯ）に渡され、さらに、出力するプリンターのメーカーおよび機種に対応したサービスオブジェクト（ＳＯ）に渡され、ＯＳを介してプリンターに供給される。
【０００４】
ＯＰＯＳ（OLE for Retail POS）システムでは、ＰＯＳアプリケーションプログラムに対して、ＯＰＯＳ標準仕様に準拠したデバイスクラス毎のコントロールオブジェクトおよびサービスオブジェクトを備えたオブジェクト制御システムが、アプリケーションプログラムに対して標準化されたインターフェースを提供するとともに、プリンターなどの周辺機器に対して機種依存性のないインターフェースを提供する。アプリケーションプログラムがデバイスクラス毎に定義されたメソッドを呼び出すと、コントロールオブジェクトがサービスオブジェクトのメソッドを、デバイスの機種に依存しないインターフェース（例えば、マイクロソフト社のIDispatchインターフェース）を介して呼び出す。サービスオブジェクトはＯＳが提供するデバイス毎のデバイスドライバーを利用してリクエストを実行し、実行結果をイベントとしてコントロールオブジェクトを通じてアプリケーションプログラムに通知する。
コントロールオブジェクトは、周辺機器のデバイスクラス毎に詳細な仕様が規定されていて、実質的にＯＰＯＳ仕様により標準化されているが、一方のサービスオブジェクトは個々のデバイスの仕様に合わせて開発される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１０６３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、デバイスの仕様変更や新機種開発にあたっては、当然のことながら変更後のデバイスに適合したサービスオブジェクトを開発する必要があるが、デバイスの多機能化によってコントロールオブジェクトが呼び出すメソッドはきわめて多く、その全てに対応するようにサービスオブジェクトを新規に開発することは大きな労力を要する。
本発明は、上述した事情に鑑みてなされたものであり、デバイス制御プログラムにおいてデバイスに依存するオブジェクトの開発に係る労力の軽減を図ることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、デバイスの機能に対応する第１のメソッドを呼び出す第１のオブジェクト、前記第１のメソッドを起動して処理を実行する第２のオブジェクト、及び前記第１のオブジェクトと前記第２のオブジェクトとの間に介在する第３のオブジェクトを有し、前記第１のオブジェクトが前記第１のメソッドを呼び出したときに前記第３のオブジェクトが呼び出され、前記第３のオブジェクトにより前記第２のオブジェクトを呼び出すか否かを判別し、前記第１のメソッドに対して前記第２のオブジェクトが対応していない場合、前記第３のオブジェクトが、第２のメソッドを起動して処理を実行し、前記第２のメソッドで処理を実行した後に前記第２のオブジェクトに対して前記第１のメソッドを呼び出させ、前記第２のオブジェクトが前記第１のメソッドを起動して処理を実行し、前記第１のメソッドに対して前記第２のオブジェクトが対応する場合、前記第３のオブジェクトが、前記第２のオブジェクトに対して前記第１のメソッドを呼び出させ、前記第２のオブジェクトが前記第１のメソッドを起動して処理を実行することを特徴とする。
本発明によれば、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置が、第２のオブジェクトが対応していない一部のメソッドが呼び出された場合に第３のオブジェクトにより処理を実行できる。これにより、第２のオブジェクトが有する全てのメソッドがデバイスに適合していない場合であっても、この第２のオブジェクトを利用してデバイスを制御できる。従って、第２のオブジェクトの機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたって第２のオブジェクトの全体を新規に作成しなくても、旧来の第２のオブジェクトの資産を利用して必要なシステムを構築できる。
【０００８】
また、本発明は、上記制御装置の制御方法において、前記第３のオブジェクトは、前記第２のオブジェクトが前記第１のオブジェクトに対し提供するインターフェースに介在する。
本発明によれば、第２のオブジェクト及び第１のオブジェクトの構成に影響を与えないように、第２のオブジェクトを補完できる。
【０００９】
また、本発明は、上記制御装置の制御方法において、前記第１のオブジェクトは前記デバイスに対して提供されるコントロールオブジェクトであり、前記第２のオブジェクトは前記デバイスの機種に対して提供されるサービスオブジェクトである。
本発明によれば、例えばデバイスの仕様変更や新機種のデバイスの開発にあたって、当該デバイスの種類に対応するコントロールオブジェクトに対する互換性を確保した上で、デバイス毎に用意されるサービスオブジェクトの機能を補完することで、旧来のサービスオブジェクトの資産を利用できる。
【００１０】
また、本発明は、上記制御装置の制御方法において、前記制御装置は、前記第１のオブジェクトに前記第１のメソッドを呼び出すＰＯＳアプリケーションプログラムを有し、前記第１のオブジェクトは、前記ＰＯＳアプリケーションプログラムの要求に応じてプリンターを制御するコントロールオブジェクトであり、前記第２のオブジェクトは、前記ＰＯＳアプリケーションプログラムの要求に応じてプリンターを制御するサービスオブジェクトであり、前記第１のメソッドは、所定の文字コードセットのプリントメソッドであり、前記第３のオブジェクトの第２のメソッドは、前記第１のオブジェクトが前記所定の文字コードセットのプリントメソッドを呼び出した場合に、前記所定の文字コードセットから他の文字コードセットへの変換を行う。
本発明によれば、第２のオブジェクトが文字コードの変換機能を持たない場合であっても、この変換機能を第３のオブジェクトが補完することで、第２のオブジェクトが対応していない文字コードセットのデータを処理できる。
また、本発明は、上記制御装置の制御方法において、前記所定の文字コードセットはunicodeであり、前記他の文字コードセットはバイトコードである。
アプリケーションからUnicodeで指定された文字が送られて来たとき、デバイスであるプリンターがUnicodeに対応していない場合、第３のオブジェクトがバイトコードに変換して印刷することができる。
【００１１】
また、本発明は、上記制御装置の制御方法において、前記第１のオブジェクトはＯＰＯＳ準拠のコントロールオブジェクトである。
本発明によれば、ＯＰＯＳに準拠したサービスオブジェクトの機能を、ＯＰＯＳ準拠のコントロールオブジェクトに影響を与えることなく補完できる。
【００１２】
また、上記目的を達成するために、本発明は、複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第１のオブジェクトと、前記第１のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第２のオブジェクトとを、オペレーティングシステムの下で動作させ、前記第１のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第２のオブジェクトに代わって第３のオブジェクトにより処理を実行し、実行後の結果に基づき前記第２のオブジェクトのメソッドを呼び出す一方、前記第１のオブジェクトが他のメソッドを呼び出した場合は前記第２のオブジェクトのメソッドを呼び出すことを特徴とする。
本発明の制御方法を実行することにより、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置が、第２のオブジェクトが対応していない一部のメソッドが呼び出された場合に第３のオブジェクトにより処理を実行できる。これにより、第２のオブジェクトが有する全てのメソッドがデバイスに適合していない場合であっても、この第２のオブジェクトを利用してデバイスを制御できる。従って、第２のオブジェクトの機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたって第２のオブジェクトの全体を新規に作成しなくても、旧来の第２のオブジェクトの資産を利用して必要なシステムを構築できる。
【００１３】
また、上記目的を達成するために、本発明は、複数種類のデバイスを制御可能なアプリケーションプログラムと、前記アプリケーションプログラムに対してインターフェースを提供するオブジェクトを、オペレーティングシステムの下で実行するコンピューターを、複数種類のデバイスを制御可能なアプリケーションプログラムに対し前記デバイスの種類毎のインターフェースを提供する第１のオブジェクトと、前記第１のオブジェクトに対し前記デバイスの種類毎のインターフェースを提供するとともに前記デバイス単位の処理を実行する第２のオブジェクトと、前記第１のオブジェクトが呼び出す少なくとも一部のメソッドについては前記第２のオブジェクトに代わって処理を実行し、実行後の結果に基づき前記第２のオブジェクトのメソッドを呼び出す一方、前記第１のオブジェクトが他のメソッドを呼び出した場合は前記第２のオブジェクトのメソッドを呼び出す第３のオブジェクトとして機能させることを特徴とする。
本発明のプログラムを実行することにより、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置が、第２のオブジェクトが対応していない一部のメソッドが呼び出された場合に第３のオブジェクトにより処理を実行できる。これにより、第２のオブジェクトが有する全てのメソッドがデバイスに適合していない場合であっても、この第２のオブジェクトを利用してデバイスを制御できる。従って、第２のオブジェクトの機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたって第２のオブジェクトの全体を新規に作成しなくても、旧来の第２のオブジェクトの資産を利用して必要なシステムを構築できる。
また、本発明は、上記プログラムを記憶した記憶媒体として実現してもよい。
【発明の効果】
【００１４】
本発明によれば、アプリケーションプログラムが出力するデータに基づいてデバイスを制御する制御装置において、例えばデバイスの仕様変更や新機種開発等にあたってオブジェクトの全体を新規に作成しなくても、旧来の資産を利用して必要なシステムを構築できる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係るＰＯＳシステムの機能的構成を示すブロック図である。
【図２】ＯＰＯＳドライバーの構成を示す図である。
【図３】ＯＰＯＳドライバーの具体的な動作例を示す図である。
【図４】ＰＯＳシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係るＰＯＳシステム１の概要構成を示すブロック図である。
ＰＯＳシステム１は、図示しないＰＯＳサーバーに通信回線を介して接続されたホストコンピューター１０（制御装置）を備え、このホストコンピューター１０には、ディスプレイ５１、キーボード５２、プリンター５３、スキャナー５４、及びドロワー５５の各種デバイスが接続されている。
ホストコンピューター１０は、プリンター５３とともにスーパーやコンビニエンス・ストア等の店舗において、ユーザーが会計処理をする近くに設置され、オペレーターによって入力された商品販売に関する入力情報に基づいてレシートを発行する。プリンター５３は、直接ホストコンピューター１０に接続されるローカルプリンターであり、プリンター５３とインターフェースを介して有線又は無線で接続され、図１にはコネクターを介して有線接続された例を示す。ホストコンピューター１０は、顧客に渡すクーポンやキッチンでの調理指示用の伝票などを印刷するための１または複数のプリンター５３を制御し、ホストコンピューター１０が生成した印刷データに基づいて、レシートや伝票を印刷出力させる。
【００１７】
ホストコンピューター１０は、商品情報を入力する入力デバイスとしてキーボード５２及びスキャナー５４を備え、キーボード５２による入力またはスキャナー５４による商品のバーコードの読み取り結果によって商品に関する入力情報を取得する。ＰＯＳサーバー（図示略）は、ホストコンピューター１０が送信する入力情報に基づいて、商品マスタから商品コード、商品名、金額に関する情報を抽出して返信する。
ホストコンピューター１０は、ＰＯＳサーバーから受信した情報に基づき、レシートや伝票の印刷を実行する。また、ホストコンピューター１０は、ＰＯＳサーバーから送信された商品データを元に生成した商品情報を表示するディスプレイ５１を有し、このディスプレイ５１における表示によって、顧客に対して購入商品の金額等を掲示する。ドロワー５５は、商品販売に伴い授受される金銭を収容し、ホストコンピューター１０により会計処理がされる毎に開閉される。
【００１８】
ホストコンピューター１０は、例えば、マイクロソフト社が提供する．ＮＥＴ  Ｆｒａｍｅｗｏｒｋを基盤とした、ウィンドウズ（登録商標）等のオペレーティングシステム１２を実行し、このオペレーティングシステム１２上でＰＯＳアプリケーションプログラム１１、及びＯＰＯＳドライバー２０を稼働させる。ＯＰＯＳドライバー２０は、オペレーティングシステム１２上で稼動するプリンタードライバーOLE for Retail POS（以下ＯＰＯＳドライバーという）であって、オペレーティングシステム１２上で各種デバイスを制御する。
【００１９】
ＯＰＯＳドライバー２０は、オペレーティングシステム１２上で稼動するＰＯＳアプリケーションプログラム１１に対して、プリンター５３、スキャナー５４、及びドロワー５５の各デバイスとの機種依存性のないインターフェースを提供するものであり、プリンターなどデバイスのカテゴリー毎に対応したコントロールオブジェクト（ＣＯ）とデバイスの機種毎の仕様に対応したサービスオブジェクト（ＳＯ）とによって構成されている。コントロールオブジェクトは、ＯＰＯＳにより規格化された仕様に準拠して作成されたもので、通常、オペレーティングシステム１２とともにＰＯＳシステムのプラットホームの一部として提供される。
【００２０】
これに対し、サービスオブジェクトはプリンター５３、スキャナー５４及びドロワー５５の機種毎に開発、作成されるもので、各デバイスのメーカー等により提供される。サービスオブジェクトは各デバイスの機種間で異なる機能や仕様に合わせて異なった機能を有しており、デバイスの機種毎の特性に合わせた制御を行う。例えば、プリンターＣＯ２１は、オペレーティングシステム１２による分類に従って、ＰＯＳアプリケーションプログラム１１に対してプリンターのデバイスカテゴリーに属するデバイスに共通のインターフェースを提供する。プリンターＣＯ２１（第１のオブジェクト）は、ＯＰＯＳ仕様に準拠した方法により、ＰＯＳアプリケーションプログラム１１が出力したデータに基づいて、プリンターＳＯ２２のメソッドを呼び出す。プリンターＳＯ２２（第１のオブジェクト）は、プリンター５３の機種に適合するように作成され、プリンターＣＯ２１によりメソッドが呼び出されると処理を実行し、プリンター５３を制御し、処理結果をイベントとしてプリンターＣＯ２１に通知する。
【００２１】
また、ＯＰＯＳドライバー２０は、スキャナー５４のデバイスカテゴリーに対応したスキャナーＣＯ４１と、スキャナー５４の機種に対応して用意されたスキャナーＳＯ４２とを備え、これらによりスキャナー５４の制御とバーコードの読み取りを可能としている。ＯＰＯＳドライバー２０は、ドロワー５５のデバイスカテゴリーに対応したドロワーＣＯ４３と、ドロワー５５の機種に対応して用意されたドロワーＳＯ４４とを備え、これらによりドロワーＳＯ４４の開閉制御を可能としている。ディスプレイ５１及びキーボード５２は、オペレーティングシステム１２が提供するデバイスドライバーにより、ＰＯＳアプリケーションプログラム１１から制御可能となっている。
なお、ホストコンピューター１０は、入力デバイスとして、カード型記録媒体に記録された磁気情報を読み取るカードリーダーを備えていてもよく、この場合、ＯＰＯＳドライバー２０は、カードリーダーのデバイスカテゴリーに対応するコントロールオブジェクト及びカードリーダーの機種に対応するサービスオブジェクトを備えた構成とすればよい。
【００２２】
図２は、ＯＰＯＳドライバー２０の概念的な構成を詳細に示す図である。
この図２に示すように、プリンターＳＯ２２は、プリンターＣＯ２１からのメソッドの呼び出しやデータを受け取るためのインターフェースとして、IDispatchインターフェース２３を提供する。プリンターＳＯ２２が実現するプリンター５３の制御に係る様々な処理は、処理の種類（機能）毎に区分され、各機能に対応するメソッド２４がある。また、それらに対応するIDispatchインターフェース２３が設けられている。IDispatchインターフェースは、マイクロソフト社がオブジェクト間の通信のために提供するインターフェースである。例えば、プリンターＣＯ２１が、プリンターＳＯ２２の機能Ｂを実行させる場合、この機能Ｂを含むメソッド２４が、そのメソッド２４に対応するIDispatchインターフェース２３を介して呼び出されて起動する。
【００２３】
ところで、プリンターＳＯ２２はプリンター５３の様々な機能に対応してメソッド２４を備えているため、プリンター５３の機能や設定項目が複雑であるほどプリンターＳＯ２２の構成も複雑化する。例えば、一般的なサーマルプリンターに対応するサービスオブジェクトが、１００を超えるメソッドに対応していることも珍しくない。
プリンターの新機種の開発、或いは従来機種の仕様変更を行う場合、プリンターＳＯ２２の開発も必要になるが、例えば従来使用していたプリンターＳＯ２２に対して一部の機能のみを変更あるいは追加すれば済む場合がある。しかしながら、プリンターＳＯ２２においては、各々の機能を備える必要があり、また、IDispatchインターフェース２３の構成とプリンターＳＯ２２の機能との整合が保たれることが必要である。上述したようにプリンターＣＯ２１はデバイスカテゴリー毎に共通のものを使用することになっている。
そこで、本実施形態のＯＰＯＳドライバー２０は、プリンターＣＯ２１とプリンターＳＯ２２に加え、ラッパーＳＯ３０（第３のオブジェクト）を備え、このラッパーＳＯ３０によりプリンターＳＯ２２の機能を補完する構成となっている。
【００２４】
ラッパーＳＯ３０は、プリンターＣＯ２１とプリンターＳＯ２２との間に介在し、プリンターＳＯ２２がプリンターＣＯ２１に対して提供するIDispatchインターフェース２３への呼び出しを検出する。ここで、ラッパーＳＯ３０は、プリンターＣＯ２１に対してIDispatchインターフェース２３と同様に識別されるIDispatchインターフェース３１を備えており、プリンターＣＯ２１がプリンターＳＯ２２のメソッドを呼び出すと、IDispatchインターフェース３１を介してラッパーＳＯ３０が呼び出される。
ラッパーＳＯ３０は、特定の機能に関するメソッド３２を有している。このメソッド３２は、プリンターＳＯ２２が有していない機能や、プリンターＳＯ２２の機能を改良、拡張、変更した機能に対応している。ラッパーＳＯ３０は、プリンターＣＯ２１からの呼び出しに対し、ラッパーＳＯ３０自身が有するメソッド３２が制御を行うか、或いは、プリンターＳＯ２２のメソッド２４を呼び出すかを判別する。そして、プリンターＳＯ２２のメソッド２４で処理すればよい場合には、プリンターＣＯ２１からの呼び出しを、IDispatchインターフェース２３に対して行う。プリンターＳＯ２２のメソッドからイベントが通知された場合、ラッパーＳＯ３０はIDispatchインターフェース３１を介して、プリンターＣＯ２１に対してイベントを通知する。また、ラッパーＳＯ３０は、ラッパーＳＯ３０のメソッド３２を実行した場合には、その結果をイベントとしてプリンターＣＯ２１に通知する機能を有する。
【００２５】
このように、ラッパーＳＯ３０は、プリンターＳＯ２２で実行すべきで無いメソッドが呼び出された場合に、プリンターＳＯ２２に代わって当該メソッドを実行するものであり、ラッパーＳＯ３０を用いることでプリンターＳＯ２２の機能の追加、拡張、改変等を実現できる。また、ラッパーＳＯ３０はIDispatchインターフェース３１を備え、プリンターＣＯ２１からはプリンターＳＯ２２の一部のように振る舞うため、プリンターＣＯ２１の仕様変更や改変等を伴わずに適用できるという利点がある。
【００２６】
図３は、ＯＰＯＳドライバー２０の具体的な動作例を示す図であり、（Ａ）はラッパーＳＯ３０がプリンターＳＯ２２のメソッドを呼び出す場合を示し、（Ｂ）はラッパーＳＯ３０のメソッドが呼び出される場合を示す。
図３（Ａ）に示すように、ＰＯＳアプリケーションプログラム１１が、コードページを指定するデータで構成される文字データとともに、「PrintNormal」メソッドを呼び出すと、プリンターＣＯ２１は、プリンターＳＯ２２に対して「PrintNormal」メソッドの呼び出しを行う。ＰＯＳアプリケーションプログラム１１が出力したデータはプリンター５３が内蔵するフォントデータの中から文字を指定する情報であり、このデータの形態がコードページを指定する情報となっているため、プリンター５３は当該データに基づいて一つのフォントを取得して印刷できる。この場合、ラッパーＳＯ３０は、この呼び出しをプリンターＳＯ２２が実行可能であると判別して、プリンターＳＯ２２の「PrintNormal」メソッドを呼び出し、プリンター５３を制御させる。
【００２７】
一方、図３（Ｂ）に示すように、ＰＯＳアプリケーションプログラム１１がUnicodeで文字を指定するデータとともに、「PrintNormal」メソッドを呼び出し、プリンターＣＯ２１がプリンターＳＯ２２の「PrintNormal」メソッドの呼び出しを行った場合、ラッパーＳＯ３０は、この呼び出しをプリンターＳＯ２２が実行できないと判別して、ラッパーＳＯ３０が備えるMBCS（Multibyte Character Set）／Unicodeの変換を行うメソッド３２を呼び出す。これは、プリンター５３、及びプリンターＳＯ２２がUnicodeに対応していないため、プリンターＳＯ２２のメソッドを呼び出しても印刷できないためである。ラッパーＳＯ３０は、呼び出したメソッドによりＰＯＳアプリケーションプログラム１１が出力したデータの文字コードセットを変換して、マルチバイトコードの文字データを生成し、このデータに基づきプリンターＳＯ２２の「PrintNormal」メソッドを呼び出す。これにより、プリンターＳＯ２２の制御によって印刷が実行される。
【００２８】
図４は、ＰＯＳシステム１の動作を示すフローチャートである。
この図４を参照して、ＰＯＳシステム１の動作の流れについてまとめると、ＰＯＳアプリケーションプログラム１１が印刷すべきデータと、印刷を実行させるため「PrintNormal」メソッドを呼び出すと（ステップＳ１１）、プリンターＣＯ２１がメソッドを呼び出す（ステップＳ１２）。
ラッパーＳＯ３０は、プリンターＣＯ２１が呼び出したメソッドをプリンターＳＯ２２に対して呼び出すか、ラッパーＳＯ３０自身が有するメソッド３２で実行するかを判別し（ステップＳ１３）、ラッパーＳＯ３０自身が実行する場合（ステップＳ１３；Ｙｅｓ）、メソッド３２を呼び出して処理を行い、処理後のデータに基づいてプリンターＳＯ２２のメソッド２４を呼び出す（ステップＳ１４）。また、ラッパーＳＯ３０自身が有するメソッドを実行しない場合（ステップＳ１３；Ｎｏ）、プリンターＳＯ２２のメソッド２４を呼び出す（ステップＳ１６）。
その後、プリンターＳＯ２２がプリンター５３を制御して印刷を実行し（ステップＳ１５）、印刷の正常終了を示すイベントを通知して、本処理を終了する。
【００２９】
以上のように、本発明を適用した実施形態に係るＰＯＳシステム１は、プリンター５３を含む複数種類のデバイスを制御可能なＰＯＳアプリケーションプログラム１１に対しデバイスの種類毎のインターフェースを提供するプリンターＣＯ２１と、プリンターＣＯ２１に対しデバイスの種類毎のインターフェースを提供するとともにデバイス単位の処理を実行するプリンターＳＯ２２とを有し、これらのオブジェクトがオペレーティングシステム１２の下で動作するホストコンピューター１０は、プリンターＣＯ２１が呼び出す少なくとも一部のメソッドについてはプリンターＳＯ２２に代わって処理を実行し、実行後の結果に基づきプリンターＳＯ２２のメソッドを呼び出す一方、プリンターＣＯ２１が他のメソッドを呼び出した場合はプリンターＳＯ２２のメソッドを呼び出すラッパーＳＯ３０を有し、プリンターＳＯ２２が対応していない一部のメソッドが呼び出された場合にラッパーＳＯ３０により処理を実行する。これにより、プリンターＳＯ２２が有する全てのメソッドがデバイスに適合していない場合であっても、このプリンターＳＯ２２を利用してデバイスを制御できる。従って、プリンターＳＯ２２の機能の一部について変更や拡張が容易になるため、例えばデバイスの仕様変更や新機種開発等にあたってプリンターＳＯ２２の全体を新規に作成しなくても、旧来のプリンターＳＯ２２の資産を利用して必要なシステムを構築できる。
【００３０】
また、ラッパーＳＯ３０は、プリンターＳＯ２２がプリンターＣＯ２１に対し提供するインターフェースに介在して、プリンターＣＯ２１により呼び出されたメソッドを実行し、インターフェースを介してプリンターＳＯ２２のメソッドを呼び出すので、プリンターＳＯ２２及びプリンターＣＯ２１の構成に影響を与えないように、プリンターＳＯ２２を補完できる。ここで、プリンターＣＯ２１はパーソナルコンピューターのデバイスの種類毎に提供されるコントロールオブジェクトであり、プリンターＳＯ２２はデバイス毎に提供されるサービスオブジェクトであるため、例えばデバイスの仕様変更や新機種のデバイスの開発にあたって、当該デバイスの種類に対応するコントロールオブジェクトに対する互換性を確保した上で、デバイス毎に用意されるサービスオブジェクトの機能を補完することで、旧来のサービスオブジェクトの資産を利用できる。
【００３１】
また、プリンターＣＯ２１及びプリンターＳＯ２２は、ＰＯＳアプリケーションプログラム１１の要求に応じてプリンターを制御するオブジェクトとして構成され、ラッパーＳＯ３０は、プリンターＣＯ２１が所定の文字コードセットのプリントメソッドを呼び出した場合に、所定の文字コードセットから他の文字コードセットへの変換を行い、変換後の文字コードセットに基づきプリンターＳＯ２２のプリントメソッドを呼び出すので、プリンターＳＯ２２が文字コードの変換機能を持たない場合であっても、この変換機能をラッパーＳＯ３０が補完することで、プリンターＳＯ２２が対応していない文字コードセットのデータを処理できる。
さらに、プリンターＣＯ２１はＯＰＯＳ準拠のコントロールオブジェクトとして構成され、プリンターＳＯ２２がプリンターＣＯ２１に対し提供するインターフェースはIDispatchインターフェースとして構成され、ラッパーＳＯ３０は、プリンターＣＯ２１に対しIDispatchインターフェースを提供する一方、プリンターＳＯ２２のIDispatchインターフェースを介してプリンターＳＯ２２のメソッドを呼び出すので、ＯＰＯＳに準拠したサービスオブジェクトの機能を、ＯＰＯＳ準拠のコントロールオブジェクトに影響を与えることなく補完できる。
【００３２】
なお、上記各実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、ＰＯＳシステム１が備えるデバイスはディスプレイ５１、キーボード５２、プリンター５３、スキャナー５４及びドロワー５５に限定されず、他のデバイスを使用することが可能であるし、例えばホストコンピューター１０が複数台のプリンター５３を制御して印刷を実行させる場合に本発明を適用することも可能である。また、上記実施形態ではプリンター５３を制御するプリンターＳＯ２２の機能を補完するためラッパーＳＯ３０を設けた構成を例に挙げて説明したが、例えばスキャナーＳＯ４２やドロワーＳＯ４４の機能の拡張、変更等を行うために、スキャナー５４やドロワー５５に対応するラッパーＳＯを設けることも可能である。
さらに、本発明はオペレーティングシステム１２上で実行される全てのアプリケーションプログラムに対してインターフェースを提供するオブジェクトを対象として、適用することが可能であり、アプリケーションプログラムはＰＯＳアプリケーションプログラムに限定されないし、制御対象のデバイスも上述したように特に限定されない。
【００３３】
また、図１〜図３に示した各機能部は機能的構成を示すものであって、各機能部を独立したハードウェアにより構成する必要はなく、ソフトウェアとハードウェアとの協働により、複数の機能部の機能を１つのハードウェアに集約して実現することも、一つの機能部を複数のハードウェアにより実現することも勿論可能である。また、上述の動作を行うホストコンピューター１０が実行するプログラムは、ホストコンピューター１０を構成するＲＯＭ等の不揮発性記憶装置が記憶する構成に限らず、可搬型の記録媒体に記憶されている構成であってもよいし、或いは、通信回線を介して接続された他の装置にダウンロード可能に記憶され、これらの装置からホストコンピューター１０が上記プログラムをダウンロードして実行してもよく、その他の構成についても任意に変更可能である。
【符号の説明】
【００３４】
１…ＰＯＳシステム、１０…ホストコンピューター（制御装置）、１１…ＰＯＳアプリケーションプログラム、１２…オペレーティングシステム、２０…ＯＰＯＳドライバー、２１…プリンターＣＯ（第１のオブジェクト）、２２…プリンターＳＯ（第２のオブジェクト）、２３…IDispatchインターフェース２３、２４…メソッド、３０…ラッパーＳＯ（第３のオブジェクト）、３１…IDispatchインターフェース、３２…メソッド、４１…スキャナーＣＯ、４２…スキャナーＳＯ、４３…ドロワーＣＯ、４４…ドロワーＳＯ、５３…プリンター（デバイス）、５４…スキャナー（デバイス）、５５…ドロワー（デバイス）。
【図１】
0005906620.tif 000002
【図２】
0005906620.tif 000003
【図３】
0005906620.tif 000004
【図４】
0005906620.tif 000005