JPH09106355A - 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム - Google Patents

複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム

Info

Publication number
JPH09106355A
JPH09106355A JP7264193A JP26419395A JPH09106355A JP H09106355 A JPH09106355 A JP H09106355A JP 7264193 A JP7264193 A JP 7264193A JP 26419395 A JP26419395 A JP 26419395A JP H09106355 A JPH09106355 A JP H09106355A
Authority
JP
Japan
Prior art keywords
instance
interface
control object
control
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7264193A
Other languages
English (en)
Inventor
Yoshihiro Kimura
芳弘 木村
Yutaka Hisamatsu
豊 久松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP7264193A priority Critical patent/JPH09106355A/ja
Priority to US08/711,716 priority patent/US6108717A/en
Priority to DE69621197T priority patent/DE69621197T2/de
Priority to EP96114176A priority patent/EP0762273B1/en
Priority to CA002184924A priority patent/CA2184924A1/en
Publication of JPH09106355A publication Critical patent/JPH09106355A/ja
Priority to HK98115556A priority patent/HK1014278A1/xx
Priority to US09/606,378 priority patent/US6292849B1/en
Priority to US09/819,217 priority patent/US6304922B2/en
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 複数のコモンオブジェクトから構成される制
御システムにおいて、よりフレキシブルに、また、容易
にカスタマイズ可能な制御システムおよびその構築方法
を提供する。 【解決手段】 コモンオブジェクトのインスタンスであ
る第1のOCX10にプロパティおよびメソッドを提供
するインタフェースに加え、イベントを発信するインタ
フェース12とイベントを受信するインタフェース13
とを設ける。そして、インタフェースオブジェクト15
によって第1のOCX10のインタフェース13のアド
レスを第2のOCX11のインタフェース12に渡し、
イベントに関するコネクションを成立させる。これによ
って、OCX10および11の間で双方向の通信が可能
となり、第1のOCX10から第2のOCXの機能をフ
ルに活用し、迅速な応答の得られるシステムを構築でき
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、共通に使用できる
複数のオブジェクトを備え、これらのオブジェクトを用
いてカスタマイズ可能な制御システム、その構築方法お
よび周辺装置制御システムに関するものである。
【0002】
【発明が解決しようとする課題】近年、コンピュータを
用いて多種多様の処理が行われ、コンピュータに接続可
能な外部入出力機器も多種多様なものが用意されてい
る。従って、コンピュータを中心として、ユーザーの環
境や目的などに合わせてフレキシブルに構築でき、カス
タマイズ可能なシステムを提供することが重要となって
いる。例えば、共通な規格のバスを用いて1つのコンピ
ュータに様々なタイプのプリンター、ディスプレイ、バ
ーコードリーダーを始めその他の入出力機器が接続可能
であり、コンピュータにはこれらの入出力機器を制御可
能なソフトウェアがインストールされる場合には、これ
らの機器を的確に制御するように制御システムが構築さ
れていなければならない。また、複数のコンピュータを
ネットワークで結んだ環境が簡単に構築できるので、個
々のコンピュータによって処理すべき対象およびその手
順を様々に変更できることが望ましい。
【0003】このようなフレキシブルなシステムをコン
ピュータ内に構築する1つの方法として、共通に用いる
ことのできる複数のオブジェクト(コモンオブジェク
ト)を作成し、これらを活用してオペレーティングシス
テムやアプリケーションプログラムを構築することが考
えられる。マイクロソフト社のOLE(ObjectL
inking and Embedding)およびO
LEプログラミング用に用意されたインタフェースを用
いたOLEオートメーションあるいOLEカスタムコン
トロール(OCX)といったシステムはその1つであ
る。
【0004】本発明においては、コモンオブジェクトを
活用して多種多様なオペレーティングシステムあるいは
アプリケーションプログラムを簡単に構築できるシステ
ムおよびその方法を提供することを目的としている。特
に、1つのコモンオブジェクトが他のコモンオブジェク
トの機能を充分に引き出し得る制御システムおよびその
構築方法を提供することを目的としている。さらに、多
種多様な周辺装置の制御などに適したカスタマイズの容
易なオープンなシステムでありながら処理速度の早い制
御システムを提供することも本発明の目的の1つであ
る。
【0005】
【課題を解決するための手段】本発明は、コモンオブジ
ェクトとしての機能を備えた制御オブジェクト、すなわ
ち、属性値を含むプロパティおよびインプリメントされ
たファンクションを呼び出すメソッドの少なくともいず
れかをアプリケーションプログラムや他の制御オブジェ
クトあるいはそのインスタンスに提供する機能と、非同
期に発生するアクションを含むイベントを発信する第1
のインタフェースとを備えた制御オブジェクトに、さら
に、イベントを受信する第2のインタフェースを設け、
複数のこれら制御オブジェクトを用いて制御システムを
構成するようにしている。
【0006】従って、本発明の制御システムでは、第1
の制御オブジェクトまたはそのインスタンスはイベント
を受信する第2のインタフェースを備えており、第2の
制御オブジェクトのインスタンスにおいて非同期に発生
するイベントを第1のインタフェースおよび第2のイン
タフェースを介して第1の制御オブジェクトまたはその
インスタンス、あるいは上流のアプリケーションプログ
ラムに遅滞なく伝達できる。このため、第1の制御オブ
ジェクトまたはそのインスタンスによって第2の制御オ
ブジェクトのインスタンスを作成し、それらの制御を行
うことによって多種多様な制御システムを簡単に構築で
き、処理速度の早い多機能の制御システムとすることが
できる。
【0007】第1の制御オブジェクトまたはそのインス
タンスの第2のインタフェースと、第2の制御オブジェ
クトのインスタンスの第1のインタフェースとの間にコ
ネクションを張るためには、少なくともいずれか一方の
識別子を他方に渡すことが必要である。本発明において
は、プロパティおよびメソッドの少なくともいずれかを
第1の制御オブジェクトまたはそのインスタンスと第2
の制御オブジェクトのインスタンスの間で伝える機能
と、上記の識別子を渡す機能とを備えたインタフェース
オブジェクトを設けるようにしている。従って、本発明
により、1つの制御オブジェクトまたはそのインスタン
スと他の制御オブジェクトまたはそのインスタンスとの
間でプロパティ、メソッドおよびイベントの全てを含ん
だ双方向の通信が可能となる。このため、制御オブジェ
クトとして提供された機能を充分に活用した制御システ
ムを簡単に構築できる。
【0008】さらに、複数のイベントが用意されている
場合に、第1の制御システムのイベントの第1の配列
と、第2の制御システムの第2の配列とが一致しなくて
もイベントの受渡しが可能なように、これらの配列を変
換する手段を設けておくことが望ましい。
【0009】本発明に係る複数の制御オブジェクトおよ
びそれらのインスタンスを備えた制御システムにより、
コンピューターの機種やそれに接続される周辺装置に対
しオープンな制御システムを構築できる。例えば、第2
の制御オブジェクトを複数の周辺装置の中の第1の周辺
装置に対応して用意することによって、第2の制御オブ
ジェクトに第1の周辺装置に固有な仕様に対応した属性
値を含んだプロパティと、命令を含んだメソッドと、さ
らに、第1の周辺装置において非同期に発生するアクシ
ョンを反映可能なイベントを設定することができる。そ
して、第2の制御オブジェクトのインスタンスと第1の
制御オブジェクトあるいはそのインスタンスをインタフ
ェースオブジェクトあるいはそのインスタンスを介して
接続できる。従って、第1の制御オブジェクトあるいは
そのインスタンスにおいて第2の制御オブジェクトのイ
ンスタンスのプロパティ、メソッドおよびイベントの少
なくともいずれかを複数の機種、メーカーあるいは複数
の種類の周辺装置に対して普遍的に規定された仕様に変
換できる。このため、周辺装置に依存しない共通のアプ
リケーションプログラムインタフェース(API)をア
プリケーションプログラムや上位の制御オブジェクトお
よびそのインスタンスに対し提供することができる。さ
らに、第1の制御オブジェクトのAPIをコンピュータ
の機種に依存しない普遍的なものにすることも可能であ
り、機種依存性がなく、汎用性の高いアプリケーション
プログラムとすることができる。従って、本発明の制御
システムにより、ユーザーは自己の環境に合わせたアプ
リケーションおよびハードウェアによってPOSシステ
ムなどの周辺装置を多く使用するシステムを簡単に、そ
してフレキシブルに構築できる。
【0010】
【発明の実施の形態】
〔OLEオートメーションをベースにした例〕以下にお
いて、マイクロソフト社の提供するプログラム開発環境
であるMicrosoft Foundation Class(MFC)環境下に
おいて本発明を実施した例に基づきさらに詳しく説明す
る。
【0011】MFCはOLEのプログラミングを容易に
行えるようにさまざまなライブラリーを提供しており、
オブジェクト指向のプログラミング言語であるMicrosof
t 社が提供するVisual C++(以下VC++)などによってO
LEオートメーション機能を用いたシステムの開発を行
うことができる。本例では、図1に示すように、アプリ
ケーション(コンテナアプリ)20と、システム内に共
通に活用できるように用意されたコモンオブジェクトあ
るいはそのインスタンス(OCX)10および11とを
階層的に結合して構築された制御システムについて先ず
説明する。
【0012】コモンオブジェクトは、他の実行型のソフ
トウェアを構成するオブジェクトとして提供されても良
く、あるいはダイナミックリンクライブラリ(DLL)
として提供されるオブジェクトであっても良い。コモン
オブジェクトを提供するこれらの実行型のソフトウェア
やDLLはEXEサーバーあるいはDLLサーバーと呼
ぶことができ、これらに対し、コンテナアプリ20をク
ライアントあるいはコントロールと呼ぶことができる。
OLEに対応したこれらのコモンオブジェクトは、例え
ば、MFCが提供しているCCmdTargetクラス
から派生させることができる。CCmdTargetク
ラスは、コモンオブジェクトを管理するためのIUnk
nownインタフェースや、その他のコモンオブジェク
トとして必要なインタフェース等をサポートするクラス
である。CCmdTargetクラスはコントローラ側
からデータを保持した構造体などを受け渡すためのIDis
patch インタフェースもサポートしており、このメンバ
関数Invokeをコールすることによってコモンオブジェク
ト側のプロパティあるいはメソッドを用いることができ
る。
【0013】プロパティは、コモンオブジェクトの属性
であり、カラー、テキスト、番号、フォントあるいはプ
ッシュボタンがプッシュされた時の動作などが含まれ
る。メソッドは、コモンオブジェクトにインプリメント
された、例えば編集機能などのファンクションであり、
メソッドをコールすることによってコモンオブジェクト
の機能を操作することができる。コモンオブジェクト
は、プロパティやメソッドを提供する機能に加え、コモ
ンオブジェクトに対する外部からのアクション、例えば
マウスボタンのクリックやキー入力、その他の非同期に
発生するアクションをイベントとして発信する機能を備
えることができる。これは通常、コントロール側がプロ
パティー等を用いるのと同様に、コモンオブジェクトに
おいてInvoke関数をコールすることによって行われる。
このとき、イベント用の結合点が有効なインタフェース
を保持していないとイベントの発生は無視されてしま
う。イベントの結合点を実現するインタフェースはICon
nectionPoint12である。
【0014】さらに、本発明においては、コモンオブジ
ェクトにイベントを受けるためのインタフェースとして
イベント用のIDispatch 13を設けてある。従って、O
CXの間でイベントの授受を行う場合は、イベントを発
信するOCXのインタフェースはIConnectionPoint12
に対し、イベントを処理するOCXのイベント用のIDis
patch 13をアドバイスする、すなわちアドレス等の識
別子を渡し、コネクションを張れば良い。もちろん、M
FCの環境下以外においては、その他の識別子であって
も良く、また、インタフェース12または13のいずれ
に側に対して他方の識別子を渡しても良い。
【0015】図1には、コンテナアプリ20があるコモ
ンオブジェクトあるいはそのインスタンスを用いている
制御システムを示してある。本図に示したシステムで
は、コンテナアプリ20が第1のオブジェクトのインス
タンス(OCX)10を作成し、さらに、その第1のO
CX10が別の第2のオブジェクトのインスタンス(O
CX)11を作成して制御する制御システムを示してあ
る。MFCライブラリーには、コンテナアプリやOCX
等からInvoke関数をコールする複雑さをカバーするため
にCOleDispatchDriverクラスが用意されており、OCX
10はこのクラスから派生させたオブジェクトのメンバ
ー関数をコールすることにより、他の制御オブジェクト
のインスタンス、例えば、OCX11を作成しOCX1
1のメソッド等を活用することができる。
【0016】サーバー内のコモンオブジェクトを用いる
場合、例えば、コンテナアプリの動作しているプロセッ
サーと異なるプロセッサーでそのコモンオブジェクトが
動作しているケースも考えられる。このようなケースで
は、本例のような制御システムを、コントロール側とサ
ーバー側で通信処理を行うことにより構築することがで
きる。また、1つのプロセッサーに活用するコモンオブ
ジェクトをコピーして制御システムを構築することも可
能である。いずれの場合も、用いられるコモンオブジェ
クトのコード自体には変更は全く加えられず、そのコモ
ンオブジェクトを活性化する毎にデータやスタックなど
の領域が用意され、それを用いてコモンオブジェクト
(サーバー側)とコントロール側が通信しながら制御シ
ステムを構築する。従って、同一のコモンオブジェクト
をコントロール側で複数用いることも可能であり、この
場合、コモンオブジェクトが複数コピーされるのではな
く、データやスタックなどの領域がそれぞれに用意され
る。このようにコモンオブジェクトが他のオブジェクト
等によって活用可能な状態になることを本明細書ではイ
ンスタンスと称する。
【0017】さて、第1のOCX10がコントロール側
となって第2のOCX11を呼び出して使用したい場
合、VC++のクラスウィザードを用いてCOleDispatchDriv
erクラスから派生されたインタフェースオブジェクトを
用いることが可能であることは上述した通りである。な
お、本明細書においては、インタフェースオブジェクト
とは、インタフェースオブジェクトおよびそのインスタ
ンスを含む概念で用いている。VC++2.0 のCOleDispatch
Driverクラスは、メソッドやプロパティをIDispatch イ
ンタフェースを介して提供する機能はサポートしている
が、第2のOCXが発信するイベントをとらえる機能を
サポートしていない。従って、コンテナアプリ20の側
が第1のOCX10の用いる第2のOCX11を識別
し、第2のOCX11のイベントを捕らえる機能をサポ
ートしている場合などの特殊なケースを除いて第2のO
CX11で発生したイベントをとらえることができな
い。
【0018】本例においては、OCX間の双方向通信を
可能とするためにOCXにイベント用のインタフェース
13を設けると共に、COleDispatchDriverクラスからイ
ベント用のインタフェースを結合できるインタフェース
オブジェクトを派生させている。すなわち、本例の制御
システムは、上述したイベントを発信するインタフェー
スであるIConnectionPoint12とイベントを受信するイ
ンタフェースであるイベント用のIDispatch 13を備え
たOCX10と、その下流に位置するイベントを発信す
るインタフェースであるIConnectionPoint12を備えた
OCX11を有しており、これらをインタフェースオブ
ジェクト15により接続している。本例のインタフェー
スオブジェクト15は、OCX11のプロパティおよび
イベントをOCX10に提供する機能に加え、OCX1
1のIConnectionPoint12にOCX10のイベント用の
IDispatch 13のアドレスを渡す機能を備えるようにし
ている。このため、OCX10が本例のインタフェース
オブジェクト15をインスタンスとして作成し、さら
に、インタフェースオブジェクト15がOCX10に基
づきOCX11を作成すると、OCX11のIConnectio
nPoint12とOCX10のイベント用のIDispatch 13
の間にコネクションが張られ、OCX11の発信したイ
ベントがOCX10によって受けれるようになる。従っ
て、OCX11とOCX10との間で双方向の通信が可
能となり、コンテナアプリ20の側は第2のOCX11
を認識する必要は全くなくなる。また、第2のOCX1
1もコンテナアプリ20に左右されないオブジェクトと
して提供することができる。
【0019】本例においては、インタフェースオブジェ
クト15は、COcxDispatchDriverクラスから派生されて
いる。このCOcxDispatchDriverは、CCmdTargetクラス
と、COleDispatchDriverクラスとを多重継承(Multiple
Inheritance)して派生したオブジェクトクラスであり、
次のようになる。
【0020】 class COcxDispatchDriver:public CCmdTarget,public COleDispatchDriver { .... }; CCmdTargetクラスは上述したように、サーバーとしての
機能を備えたオブジェクトを派生するクラスであり、ま
た、COleDispatchDriverクラスは、第2のOCXに対し
てクライアントあるいはコントロール側として動作し、
プロパティ/メソッドに対するアクセスを簡単に行なえ
る機能を備えたオブジェクトクラスである。従って、ク
ラスウィザードにより上記の2つのクラスから派生させ
たオブジェクトクラスであるCOcxDispatchDriverクラス
は、上記の2つの主な機能を備え、これらに加えそれぞ
れのクラスの機能を全て継承し、サポートされたオブジ
ェクトクラスなので、本発明に係るインタフェースオブ
ジェクト用のオブジェクトクラスとして適している。CC
mdTargetクラスとCOleDispatchDriverクラスには重複す
る部分がないため、全く問題なく多重継承が可能であ
る。
【0021】このように派生されたCOcxDispatchDriver
クラスの仕様は以下の通りである。
【0022】 Class COcxDispatchDriver : public CCmdTarget, public COleDispatchDriver COcxDisptchDriver::COcxDispatchDriver() // 生成 public: // メンバ変数 IID m _IIDEvents; // イベント インタフェース ID UNIT m _nEvents; // イベント数 CDWordArray m_dispID // ユーザが定義したディスパッチマップに対応して ディスパッチIDを変換するための配列 public: // メンバ関数 Bool PrecreateDispatch( REFCLISD clsid, CStringArray& EntryNames, CDWordArray& DispIDs, CSstringArray& ParamInfo, COleException* pError=NULL); // オブジェクトインスタンス を作成し、インタフェースの情報を格納する。
【0023】 Bool EstablishConnection( LPUNKNOWN pUnkSink, LPCDMENTRY pDispMap, CStringArray& EntryNames, CDWordArray& DispIDs, CStringArray& ParamInfo, COleException* pError=NULL); // イベントのインタフェース が受側と発行する側とで一致しているかを確認し 双方を結合する。
【0024】 void DestroyConnection(); // コネクションを開放し、オブジェクト インスタンスを削除する 本例のCOcxDispatchDriverクラスから派生されるインタ
フェースオブジェクトは、OCX双方のイベントのイン
タフェースのコネクションを張る機能を備えているだけ
なのでイベントの処理関数(イベントハンドラ)は含ん
でいない。イベントハンドラは、イベントを受け入れる
OCXの側に用意される。まず、イベントを発行する側
のOCXが返すイベントの外部名に合わせてディスパッ
チマップを記述する。ディスパッチマップの各イベント
の順番は任意で良く、後述するようにイベントとのコネ
クションをセットするときに実際に受信するイベントの
順番との対応付けがなされる。ただし、OCXの全部の
イベントを完全に記述しておく必要がある。
【0025】ディスパッチマップのエントリは例えば以
下のようになり、マクロのパラメータは、順に、ディス
パッチドライバクラス名、外部イベント名、イベントハ
ンドラ名、戻り値、パラメータ情報となる。
【0026】 DISP _FUNCTION( _DSoprn, "ControlCompleteEvent", ControlCompleteEvent , VT _EMPTY, VTS_I4 VTS_SCODE VTS _PBSTR VTS _I4) このような外部イベント名に合わせたディスパッチマッ
プを記述することにより、OCXで発生したイベントを
直観的に判りやすい形式で受け取ることができる。さら
に、イベントハンドラのプロトタイプ宣言は下記のよう
になるので、通常の関数の形式で記述でき、プログラム
開発が極めて容易となる。
【0027】 void _DSoprn::ControlCompleteEvent(long ControlID, SCODE Result, BSTR FAR*, pString, long data); 次に、COcxDispatchDriverクラスから派生されたインタ
フェースオブジェクト15によって第1のOCX10と
第2のOCX11とのコネクションを設定する処理を図
2および図3に示したフローチャートに基づき説明す
る。
【0028】図2に示すように、インタフェースオブジ
ェクトのインスタンス15が生成され、PrecreateDispa
tch がコールされると、ステップ31において、clsid
によって指定された第2のOCXであるオブジェクトイ
ンスタンス11が生成され、動作を開始する。変数clsi
d は作成するOCXを識別するための128ビットの値
が格納されている。ステップ32において第2のOCX
11が動作を開始すると、ステップ33においてこのO
CX11のIDispatch インタフェースを取得し保存す
る。インタフェースオブジェクト15は、このIDispatc
h を通じてInvoke関数をコールし、インスタンス11に
プロパティまたはメソッドを渡すことができる。ステッ
プ34において、第2のOCX11にプロパティあるい
はイベントを渡すインタフェースが確認されると、ステ
ップ35において、第2のOCX11のイベントのイン
タフェースがチェックされる。
【0029】ステップ36において、イベントに関する
インタフェースがあるとステップ37において、イベン
トに関する情報を格納する。第2のOCX11において
用意されているイベント名リストはEntryNamesに、ディ
スパッチIDリストはDispIDs に、 また、パラメータ情
報リストはParamInfo に格納される。ステップ38にお
いてこれらの処理が通常に終了すると次に図3に示した
イベントの対応付けを行う工程に移行する。一方、コネ
クションがセットできない場合はステップ39において
エラー処理を行う。
【0030】図3にイベントの対応付けを行う工程を示
してある。pUnkSinkにイベントの受入れ側となるOCX
10のインタフェースの識別子(本例ではOCX10の
イベント用IDispatch のアドレス)が設定され、Establ
ishConnection がコールされる。まず、ステップ41に
おいてカウンタfcntをゼロクリアーする。次にステップ
42においてカウンターfcntを確認し、ステップ43に
おいて第2のOCX11から得られたイベント名EntryN
ames(fcnt)がOCX10のイベントハンドラに予め用意
したマップpDispMapにあるか否かをチェックする。マッ
プpDispMapにある場合は、さらに、ステップ44におい
て、パラメータ情報ParamInfo (fcnt)がイベントハンド
ラに予め用意したマップpDispMapと一致するかを確認す
る。確認できた場合は、ステップ45において、第2の
OCX11から得られたイベントのディスパッチIDで
あるDispIDs (fcnt)をイベントハンドラに予め用意した
マップpDispMapでのインデックスに変換するための配列
m _dispIDを設定する。ステップ46において、カウン
タfcntをインクリメントし、すべてのイベントに対し、
これらのステップを繰り返す。予め用意したマップpDis
pMapとの対応が付くと、ステップ47において、pUnkSi
nkにある第1のOCX10のインタフェースの識別子を
第2のOCX11のイベントに関するインタフェースに
渡しコネクションを張る。本例では、MFC環境下にあ
るので、IConnectionPointにアドレスを渡し、イベント
に関するコネクションをセットする。これによって、第
2のOCX11においてInvoke関数をコールすると、イ
ベントがOCX10に渡される。すなわち、第1のOC
X10が第2のOCX11からイベントを受け取れるよ
うになる。
【0031】ステップ48においてコネクションが張ら
れると、ステップ49においてイベントのディスパッチ
IDを変換するための配列m _dispIDを保存する。ステ
ップ50において、上記のステップが全て正常に終了す
るとインタフェースオブジェクト15と第2のOCX1
1とのコネクションのセットが終了し、第1のOCX1
0に対し第2のOCX11のプロパティあるいはメソッ
ドを提供できるようになり、さらに、第2のOCX11
から第1のOCX10にイベントが伝えられるようにな
る。
【0032】このように、コモンオブジェクトにイベン
トを受け取るためのインタフェースを用意し、さらに、
インタフェースオブジェクト15によってインタフェー
ス間のコネクションを張れば、コモンオブジェクトある
いはそのインスタンス同士の間で双方向の通信が可能と
なる。従って、コモンオブジェクトあるいはそのインス
タンスを用いて処理の速いフレキシブルな制御システム
を構築することができる。さらに、本例のインタフェー
スオブジェクトにおいては、イベントに関するコネクシ
ョンをセットするときに、イベントを発信する側のイベ
ントの配列と、イベントを受け入れる側のイベントの配
列を確認し、対応付けるようにしている。従って、第1
のOCX10に対し、第2のOCX11のインタフェー
スが完全に既知となっていなくとも、イベントの種類と
数が合致していればコネクションをセットすることがで
きる。すなわち、プロパティ、メソッドおよびイベント
の名称が合致していれば複数のコモンオブジェクト間に
双方向のコネクションをセットすることができる。この
ため、コモンオブジェクトの開発が容易となり、バージ
ョンアップが行われたり、異なったオブジェクトが採用
された場合であっても、制御システムをフレキシブル
に、そして、安全、確実に構築することができる。
【0033】さらに、イベントを受け取ったときに起動
されるイベントハンドラも通常の関数の形式で記述する
ことができるので、オブジェクトの開発が極めて容易と
なり短時間で行えるようになる。
【0034】図4に、第2のOCX11から、インタフ
ェースオブジェクト15に用意されたIDispatch インタ
フェースのイベントを通知する呼び出し Invoke(EventI
D,....) がコールされた場合の処理を示してある。IDis
patch インタフェースは Invoke() および、それをサポ
ートする基本的な関数(AddRef(), Release(),QueryInt
erface(IID&, LPUNKNOWN*) 等) を提供しており、IDis
patch インタフェースが、相手のOCXが発生するイベ
ントの IID (Interface ID) にQueryInterface(...) を
介して応答する。 Invoke() がコールされると、この時
点でパラメータとしてイベントの種類を規定するdispat
ch ID やイベントのパラメータを保持する構造体などが
OCX10に渡される。イベントを受け入れる側のOC
X10では、ステップ60においてパラメータが正当か
否かをチェックする。正当の場合はステップ61におい
て、第2のOCX11から得られたイベントの配列disp
IDMemberを用意されたイベントハンドラのマップpDsipM
apに合わせて、変換用の配列m _dispIDに基づき変換す
る。ステップ62において、dispIDMemberに対応するイ
ベントハンドラをpDsipMapから取り出す。そして、ステ
ップ63において、イベントハンドラが有効か否かを確
認し、有効な場合はステップ64においてイベントに対
応するイベントハンドラを呼び出し、イベントハンドラ
に定義された処理、例えば、アプリケーション側にイベ
ントを発信するなどの処理を行う。
【0035】なお、上記では、OCX10に1つのOC
X11が繋がる場合を例に説明しているが、複数のOC
X11と繋げることももちろん可能である。イベントを
受け入れるインタフェースが単独の場合は、同一のイベ
ントの配列である必要があるので、OCX11のタイプ
は同一であることが望ましい。
【0036】このように、本発明のシステムにおいて
は、複数のコモンオブジェクトおよびそれらのインスタ
ンス、そしてインタフェースオブジェクトを用いること
により、フレキシブルな制御システムを簡単に構築する
ことができる。それぞれのコモンオブジェクトには、活
用する相手のコモンオブジェクトに関し最小限の情報を
用意しておけば良く、また、活用される相手のコモンオ
ブジェクトに関する情報も最小限で済む。従って、個々
のコモンオブジェクトのカプセル化をいっそう進めるこ
とができる。その一方で、本発明のシステムでは、OC
X同士の間でイベントも含めた双方向の通信が可能であ
り、活用する相手のOCXを完全に動作させることがで
き、それらの備えた機能を最大限に発揮させることがで
きる。
【0037】なお、本例においては、第1および第2の
OCXからなる2層の制御システムを用いて説明してい
るが、3層あるいはそれ以上の階層構造をもった制御シ
ステムであっても同様に構築することができる。また、
上記においては、マイクロソフト社の提供するMFC環
境下において本発明のオブジェクトインタフェースを実
現した例を用いて説明しているが、MFCライブラリを
用いなくとも、同等の機能を備えたオブジェクトインタ
フェースを作成することは可能である。さらに、共通し
て活用できるオブジェクトが用意されたシステム環境で
あれば、マイクロソフト社のOLEオートメーションで
なくとも上記と同様のコモンオブジェクトを用いたシス
テムを構築できる。このようなコモンオブジェクトを用
いたシステムは、1つのプロセッサーを備えたコンピュ
ータ単体で実現することもでき、また、ネットワーク環
境で接続された複数のプロセッサーを有するシステムに
おいても構築できることは上述した通りである。
【0038】また、本例では、インタフェースオブジェ
クトを採用することによって、より拡張性が高く、ま
た、プログラム開発の容易な制御システムをしている
が、インタフェースオブジェクトの機能と第1のOCX
の機能を備えたコモンオブジェクトを提供することもも
ちろん可能であり、そのようなOCXを用いたシステム
によってもイベントを含めた双方向通信の可能な制御シ
ステムを構築できることはもちろんである。
【0039】〔周辺装置の制御システム〕図5に、本発
明に係るインタフェースオブジェクトと、複数のコモン
オブジェクトおよびそのインスタンスによって周辺装置
の制御システムを構築した例を示してある。図5にはパ
ーソナルコンピュータ(パソコン)70を中心に構成さ
れたPOSシステムを示してある。パソコン70にはP
OSアプリケーションプログラム71がインストールさ
れており、パソコンのオペレーティングシステム(O
S)105の上で動作する。OS105は、キーボード
ドライバ106やモニタディスプレイドライバ107等
を介してパソコンとして通常必要な周辺装置を制御する
機能を備えており、アプリケーションプログラム71と
キーボードあるいはモニタディスプレイ(不図示)との
間のデータ転送はOS105を介して行われる。
【0040】POSシステムには、パソコンに通常用意
されるこれらの周辺機器に加えて、客先に金額等を表示
するカスタマディスプレイ110、レシート等の印刷を
行うレシートプリンタ112、チェックなどの印刷を行
うスリッププリンタ113、さらに、金銭を保管するキ
ャッシュドロワ115が必要となり、これらの周辺装置
はRS−232Cポート等の拡張用のポートに接続され
る。例えば、カスタマディスプレイ110がRS−23
2Cポートに接続され、カスタマディスプレイ110を
パススルーしてレシートプリンタ112およびスリップ
プリンタ113を備えたプリンタ111が接続される。
キャッシュドロワ115は、プリンタ111の下部に設
置され、プリンタ111の制御機構を介して操作され
る。これらの周辺装置は多くのメーカーから様々な機種
が市販されており、ユーザーは自己の環境に適したもの
を選択してPOSシステムを構築可能である。しかしな
がら、メーカーや機種の異なる周辺装置は個々に仕様が
異なるので、市販されている全ての周辺装置に適合した
アプリケーションプログラムの作成は不可能である。さ
らに、周辺装置がバージョンアップされると、これに伴
い仕様も変更になる。従って、従来は、ユーザーは自己
に都合の良い周辺機器によってPOSシステムを構築す
ることが困難なこともあり、さらに、周辺機器がバージ
ョンアップされても新しい機種を構築済のPOSシステ
ムにすぐに適用できるとは限らなかった。
【0041】これに対し、上述したOCXによって制御
システムを構築すると、非常にオープンなシステムを形
成できる。従って、どのような機種の周辺機器を用いた
POSシステムであっても簡単に構築できる。また、周
辺機器のバージョンアップに対しても簡単に対処でき
る。例えば、図5に示す本例の周辺機器の制御システム
72は、3つのレベルのOCXを備えている。第1のレ
ベルのOCXとして、レシートプリンタフォーマット変
換用OCX73と、スリッププリンタフォーマット変換
用OCX74が用意されている。これらのOCX73お
よび74では、例えば、アプリケーションプログラム7
1から送られた売上品リストや合計金額等のデータを所
定のフォーマットに配置する処理が行われる。所定のフ
ォーマットは、OCX73あるいは74の内部に設定さ
れていても良いし、下位レベルの制御用OCXであるレ
シートプリンタ制御用OCX75あるいはスリッププリ
ンタ制御用OCX76がプロパティとして有しており、
これらの制御用OCXのプロパティを得て変換用OCX
73あるいは74がフォーマットを設定しても良い。い
ずれにしろ、アプリケーションプログラム71は、出力
表示されるフォーマットに関係なく、出力用のデータを
変換用OCX73あるいは74に受け渡せば良い。従っ
て、インタフェースの形式を限定でき、汎用性の高いア
プリケーションプログラムとして提供することができ
る。また、アプリケーションプログラムから固有のフォ
ーマットで出力されたデータを、第1レベルのOCXに
よって下位のOCXに共通するフォーマットに変換する
ことも可能である。このように、OCXを用いて個別に
開発されたアプリケーションプログラムの汎用性を高め
ることも可能である。
【0042】第2のレベルのOCXとしてレシートプリ
ンタ制御用OCX75、スリッププリンタ制御用OCX
76、キャッシュドロワ制御用OCX77およびカスタ
マディスプレイ制御用OCX78が用いられている。こ
れらのOCX75〜78は、アプリケーションプログラ
ムあるいは上位のOCXに対し、所定の仕様のインタフ
ェース(API)を提供するOCXである。従って、P
OSシステムを構成するプリンタ等の周辺装置のメーカ
ーや機種に係わりなく、アプリケーションプログラムや
上位のOCXは所定の仕様でデータを提供すれば良い。
このレベルのOCX75〜78は、周辺装置固有の仕様
が反映された下位のドライバレベルのOCXのプロパテ
ィを得て、共通の仕様で入力されたデータを下位のOC
X、すなわち、実際にシステムを構築している周辺装置
の仕様に合わせたデータに変換する。
【0043】第3のレベルのOCXは、プリンタドライ
バOCX91および92と、キャッシュドロワドライバ
OCX93、およびディスプレイドライバOCX94で
ある。これらのOCX91〜94は、個々の周辺装置に
対応したコモンオブジェクトのインスタンスであり、通
常はメーカー毎あるいは機種毎に異なり周辺装置と共に
提供される。これらのドライバレベルのOCX91〜9
4は、例えば、最大印字行数や印字行ピッチと言ったプ
リンタ固有の仕様や設定状態(プリンタステータスと称
する)をプロパティとして備えており、これらのプロパ
ティは上位のOCXやアプリケーションプログラムで参
照できるようになっている。また、指定された位置に文
字列を印字する、すなわち、印字命令を出力するという
メソッドや、プリンタステータス等のプロパティなどを
備えている。従って、ドライバーレベルである第3レベ
ルのCOXからは、例えば、プリンタ用のOCXであれ
ば、送られた印字位置および印字文字列のデータに基づ
き、改行量(すなわち行ピッチ)、改行コマンド、印字
データおよび印字コマンド、オートカットコマンドが所
定の順序でポートドライバ100を介してプリンタに送
信される。
【0044】第3レベルのOCXは、プリンタから送信
される処理結果およびエラーステータス等の非同期に発
生するアクションも受け取る。そして、これらのアクシ
ョンの内容を対応する周辺装置の仕様に基づき解釈し、
普遍的な形式に変換してイベントとして上位のOCXに
返す。
【0045】本例の制御システムにおいては、少なくと
も第1および第2のレベルのOCXは上述したイベント
用をIDispatch インタフェースを備えたOCXである。
従って、本発明に係るインタフェースオブジェクト81
a、81b、82a〜82dを用いて上位のOCXと下
位のOCXを接続することにより、プロパティやメソッ
ドに加え、イベントを伝達するインタフェースを上位お
よび下位のOCXの結ぶことができる。従って、第2レ
ベルの制御用OCX75〜78は第3レベルのドライバ
クラスのOCX91〜94の発行するイベントを受け
て、そのまま、あるいはさらに普遍的な形式に変換し上
位のOCXやアプリケーションプログラムに伝達する。
これに基づき、アプリケーションシステムや上位のOC
Xは、ユーザーに対してメッセージを出力したりエラー
処理ルーチンを起動するなどの処理を行う。従って、本
例の制御システムにおいては、非同期に発生するアクシ
ョンに対して迅速にそして的確な処理を行うことができ
る。
【0046】このように、本例の制御システムは、OC
Xを用いているのでユーザーの採用する周辺装置に適合
したカスタマイズが容易に行えるシステムであり、ま
た、OCX間でプロパティ、メソッドおよびイベントの
双方向の通信が確保されているので、処理速度が早く的
確に処理が行える制御システムである。
【0047】レシート印字機能を例にとってさらに詳し
く説明する。第3レベルのOCXであるプリンタドライ
バOCX91は、レシートプリンタ112のプリンタス
テータスをプロパティとして備えている。また、プリン
タ112に印字命令を出力するメソッドを備えている。
さらに、プリンタ112からリアルタイムで送られてく
る用紙なし(ランアウト)やカバーオープンといったエ
ラーステータスに対応して非同期にイベントを発生す
る。
【0048】アプリケーションプログラム71からデー
タが第1レベルのレシートプリンタフォーマット変換用
OCX73に渡され、所定のフォーマットに変換された
のち、第2レベルの制御用OCX74に渡される。そし
て、制御用OCX74がドライバOCX91の印刷を実
行するメソッドをコールすると、ドライバOCX91が
レシートプリンタ112のプリンタステータスに合致し
た適当なコマンドおよびデータをレシートプリンタ11
2に対し送信し、レシート印字を実行する。レシートプ
リンタ112は、送信されたコマンドを実行し、所定の
ステータスをドライバOCX91に返す。ドライバOC
X91は、返されたステータスを解釈し、エラーステー
タスがアクティブでなければイベントを発生せず、印刷
処理は終了する。また、上位のOCXであるレシートプ
リンタ制御用OCX75は、プリンタステータスのプロ
パティを参照することによってプリンタ処理の結果を知
ることももちろん可能である。
【0049】一方、印刷実行のコマンドを実行した結
果、あるいは待機中にレシートプリンタ112にエラー
が発生してエラーステータスがアクティブになると、プ
リンタ112はエラーステータスをドライバOCX91
に送信する。この場合、ドライバOCX91はイベント
を発生し、エラーの発生を上位の制御用OCX74に伝
達する。制御用OCX74は、イベントに対応して特定
の処理を行うことも可能であるし、さらにフォーマット
変換用OCX74およびアプリケーションプログラム7
1にイベントを通知し、注意を喚起することによって所
定の処理を行わせることも可能である。
【0050】これらのプロパティ、メソッドおよびイベ
ントに加え、スリッププリンタ113に対応したドライ
バOCX92としては、スリップ印字に特有のプロパテ
ィおよびイベントを設けておくことが望ましい。例え
ば、プロパティにスリップ用紙の有無を加えることによ
って、上位のOCXやアプリケーションが印刷実行を指
示するタイミングの判断が可能となる。また、イベント
に用紙挿入検出、用紙終端検出を加えることにより、ア
プリケーションプログラムなどにスリップ印刷後の処理
やエラー処理をスムーズに行わせることができる。
【0051】キャッシュドロワ制御用OCX77はキャ
ッシュドロワドライバOCX93と通信する。キャッシ
ュドロワドライバOCX93はキャッシュドロワオープ
ンをメソッドとして備えており、キャッシュドロワのオ
ープン・クローズを含めたキャッシュドロワステータス
をプロパティとして備えている。また、イベントとして
キャッシュドロワエラーやキャッシュドロワオープン検
出を発生することができる。
【0052】カスタマディスプレイ制御用OCX78
は、ディスプレイドライバOCX94と通信し、このド
ライバOCX94は、表示位置や表示文字列を指定した
表示命令をメソッドとして備えている。また、プロパテ
ィとしては表示桁数や表示色などのディスプレイ仕様を
備えており、ディスプレイ制御用OCX78はこのプロ
パティに沿って表示データを与える。また、カスタマデ
ィスプレイはイベントに該当するエラー等の発生は少な
いので、イベントを発生する機能を削除することも可能
である。
【0053】このように、本発明の制御システムは、複
数のOCXを用いて階層的な構造を備えており、エラー
等を含めた非同期に発生するアクションに対しても迅速
に対処可能な制御システムである。また、本例の制御シ
ステムは、パソコンに接続される周辺装置に対しフレキ
シブルに対応できるオープンな制御システムである。例
えば、プリンタ111は、レシート印字機能112と、
スリップ印字機能113と、さらにドロワ115の制御
機能とを備えており、制御システムはそれぞれの機能毎
にOCX91〜93が用意されている。このプリンタ1
11に対し、スリップ印字機能の仕様(例えば、最大印
字桁数、実行可能なコマンドセット等)の異なるプリン
タに置き換える場合は、スリップ印字機能を制御するド
ライバ用のコモンオブジェクトを新しいプリンタの仕様
に対応するものに置き換えれば良い。周辺装置の制御シ
ステムにおいては、置き換えられた新しいドライバ用の
コモンオブジェクトからOCXを作成し新しいプリンタ
に適合した制御システムを自動的に形成する。プリンタ
がバージョンアップされて仕様が変わった場合でも、同
様にドライバ用のコモンオブジェクトを置き換えるだけ
で良く、その他のコモンオブジェクトやアプリケーショ
ンプログラムに変更を加える必要はない。
【0054】カスタマディスプレイについても同様であ
り、仕様が変更された場合等はドライバ用のコモンオブ
ジェクトを変更すれば良い。また、バーコードリーダ等
の他の周辺装置が加えてPOSシステムが構成される場
合は、それに対応した制御用のコモンオブジェクトとド
ライバ用のコモンオブジェクトがパソコンのシステム内
に用意されておれば、アプリケーションあるいは上記の
OCXによって、下位のOCXが作成され、バーコード
リーダ等を含めた周辺装置の制御システムが形成され
る。
【0055】同様に、アプリケーションプログラムとの
インタフェースを担当する上位のOCXがパソコンのハ
ード等に起因する仕様の違いを吸収し、アプリケーショ
ンに対し共通のインタフェースを与えるものであれば、
パソコンのハード等の相違とは無関係に共通のアプリケ
ーションプログラムを用いてシステムを構築することも
可能となる。パソコン内に用意されたコモンオブジェク
トから制御システムがアプリケーションプログラムによ
って作成され、制御システムを構成するOCXによって
パソコンおよびそれに接続された周辺装置に適合したシ
ステムが自動的に形成される。このように、本発明のO
CXを用いた制御システムはオープンなシステムであ
り、インタフェースの仕様を予め合意しておけば、アプ
リケーションを供給する側は、パソコンやそれに接続さ
れる周辺機器の仕様および接続方法等は一切考慮せずに
アプリケーションを開発し供給することができる。従っ
て、短期間で開発が可能となり、安価に提供できる。ま
た、ユーザーもパソコンや周辺装置に係わりなく、自己
の目的や環境に適したアプリケーションを自由に選択す
ることができる。
【0056】一方、周辺装置を提供する側も、供給する
周辺装置の仕様に対応したコモンオブジェクトを用意
し、例えば、周辺装置と共に供給することによって、パ
ソコンやアプリケーションに限定されない汎用的な周辺
装置を提供することができる。従って、ユーザーも自己
の目的や環境に適した周辺装置を自由に購入し、システ
ムを構築することができる。
【0057】さらに、本発明に係る制御システムでは、
インタフェースオブジェクトによってコモンオブジェク
トおよびそのインスタンス同士の間で双方向にプロパテ
ィ、メソッドおよびイベントの伝達が可能となってい
る。従って、本発明の基づく制御システムでは、システ
ムの応答が遅れたり、システムの機能が限定される等の
システムをオープン化する上での弊害は全くない。ま
た、制御システムの機能アップやバージョンアップも個
々の制御オブジェクト毎に行うことができるので、シス
テム開発を効率良く、短期間に行える。また、ユーザー
もシステムのグレードアップや変更等を簡単に行えるよ
うになる。
【0058】なお、上記では、用いられる周辺装置の種
類や数が多く、また、ユーザーの環境に合わせて様々な
機種の周辺装置が用いられる例としてPOSシステムを
説明しているが、POSシステムに限定されないことは
もちろんである。近年のパソコンを中心としたシステム
は、ユーザーの目的や能力に合わせて様々な仕様の周辺
装置が組み合わされるようになりつつある。本発明に係
る共通する制御オブジェクトを用いた制御システムは、
様々なユーザーの要望に対してフレキシブルに対応可能
なシステムであり、POSシステムに限らず、今後様々
なシステムに対して適用可能である。
【0059】
【発明の効果】以上に説明したように、本発明において
は、アプリケーションプログラム間で共通に活用できる
制御オブジェクト、すなわち、コモンオブジェクトおよ
びそのインスタンスを用いて制御システムを構築してお
り、さらに、これらコモンオブジェクトおよびそのイン
スタンスの間で双方向の通信を可能としている。従っ
て、コモンオブジェクトを活用して多種多様なオペレー
ティングシステムあるいはアプリケーションプログラム
を簡単に構築することができる。このように、本発明
は、入出力端末や、処理する対象などにより多種多様に
変化するコンピュータを中心とした近年のシステムにお
いて、いっそうフレキシブルに、そしてカスタマイズ可
能なシステムを実現するのに好適な制御システムおよび
その構築方法を提供するものである。
【0060】特に、上述したようなコンピューターの機
種やそれに接続される周辺装置の種類および数量がユー
ザーの環境に応じて多種多様に変化する制御システムを
構築するのに本発明は好適である。本発明に係る制御シ
ステムを用いることにより、アプリケーションプログラ
ムに対し周辺装置に依存しない共通のアプリケーション
プログラムインタフェースを提供可能である。さらに、
本発明に係る制御システムは、汎用性の非常に高い制御
システムでありながらエラー等の非同期に発生するアク
ションに対しても迅速にアプリケーションを作動させる
ことが可能である。従って、ユーザーに対し自己の目的
に対し最適な快適な動作環境を容易に構築できる制御シ
ステムを提供できる。
【図面の簡単な説明】
【図1】本発明の実施例の制御システムの概略構成を示
すブロック図である。
【図2】図1に示す制御システムにおいて、インタフェ
ースオブジェクトとオブジェクトインスタンスとの間で
コネクションを確認する過程を示すフローチャートであ
る。
【図3】図1に示す制御システムにおいて、インタフェ
ースオブジェクトとオブジェクトインスタンスとの間で
イベントの対応付け、コネクションを確立する過程を示
すフローチャートである。
【図4】図1に示す制御システムにおいて、オブジェク
トインスタンス側からイベントをインタフェースオブジ
ェクトに伝える過程を示すフローチャートである。
【図5】本発明の制御システムによって構築されたPO
Sシステムの周辺装置を制御するシステムを示すブロッ
ク図である。
【符号の説明】
10・・第1のOCX 11・・第2のOCX 15・・インタフェースオブジェクト 20・・アプリケーション 70・・パソコン 71・・POSアプリケーションプログラム 72・・制御オブジェクトによって構成された制御シス
テム 100・・ポートドライバ 110・・カスタマディスプレイ 111・・プリンタ 112・・レシート印字機構 113・・スリップ印字機構 115・・キャッシュドロワ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 属性値を含むプロパティおよびインプリ
    メントされたファンクションを呼び出すメソッドの少な
    くともいずれかを提供する機能と、非同期に発生したア
    クションを含むイベントを発信する第1のインタフェー
    スとを備えた複数の制御オブジェクトを有し、 第1の前記制御オブジェクトまたはそのインスタンスに
    よって第2の前記制御オブジェクトのインスタンスが作
    成され、前記第1の制御オブジェクトまたそのインスタ
    ンスから前記第2の制御オブジェクトのインスタンスの
    制御が行われるコンピュータ内のシステムであって、 前記第1の制御オブジェクトは、前記イベントを受信す
    る第2のインタフェースを備えており、さらに、 前記プロパティおよびメソッドの少なくともいずれかを
    前記第1の制御オブジェクトまたはそのインスタンスと
    前記第2の制御オブジェクトのインスタンスの間で伝達
    する機能と、前記第1の制御オブジェクトまたはそのイ
    ンスタンスの前記第2のインタフェースおよび前記第2
    の制御オブジェクトのインスタンスの前記第1のインタ
    フェースの少なくともいずれか一方の識別子を他方に渡
    す機能とを備えたインタフェースオブジェクトまたはそ
    のインスタンスを有することを特徴とする複数のオブジ
    ェクトを用いた制御システム。
  2. 【請求項2】 請求項1において、前記第2の制御オブ
    ジェクトは複数の前記イベントを第2の配列に従って発
    信し、前記第1の制御オブジェクトは受信した前記複数
    のイベントの配列を第1の配列に変換する手段を備えて
    いることを特徴とする複数のオブジェクトを用いた制御
    システム。
  3. 【請求項3】 属性値を含むプロパティおよびインプリ
    メントされたファンクションを呼び出すメソッドの少な
    くともいずれかを提供する機能と、非同期に発生するア
    クションを含むイベントを発信する第1のインタフェー
    スとを備えた複数の制御オブジェクトを有し、第1の前
    記制御オブジェクトまたはそのインスタンスによって第
    2の前記制御オブジェクトのインスタンスが作成され、
    前記第1の制御オブジェクトは前記イベントを受信する
    第2のインタフェースを備えており、さらに、 前記プロパティおよびメソッドの少なくともいずれかを
    前記第1の制御オブジェクトまたはそのインスタンスと
    前記第2の制御オブジェクトのインスタンスとの間で伝
    達する機能と、前記第1の制御オブジェクトまたはその
    インスタンスの前記第2のインタフェースおよび前記第
    2の制御オブジェクトのインスタンスの前記第1のイン
    タフェースの少なくともいずれか一方の識別子を他方に
    渡す機能とを備えたインタフェースオブジェクトまたは
    そのインスタンスを有する制御システムの構築方法であ
    って、 前記第1の制御オブジェクトまたはそのインスタンスが
    前記インタフェースオブジェクトのインスタンスを作成
    するステップと、 前記インタフェースオブジェクトのインスタンスが前記
    第2の制御オブジェクトのインスタンスを作成するステ
    ップと、 前記第1の制御オブジェクトまたはそのインスタンスの
    前記第2のインタフェースと、前記第2の制御オブジェ
    クトのインスタンスの前記第1のインタフェースとのコ
    ネクションを張るステップとを有することを特徴とする
    制御システムの構築方法。
  4. 【請求項4】 請求項3において、前記第1の制御オブ
    ジェクトは複数の前記イベントを受信する第1の配列を
    備えており、前記第2の制御オブジェクトは前記複数の
    イベントを発信する第2の配列を備えており、前記コネ
    クションを張るステップにおいて、前記第2の配列を前
    記第1の配列に変換する第3の配列を作成することを特
    徴とする制御システムの構築方法。
  5. 【請求項5】 アプリケーションシステムに対し周辺装
    置の管理を行う制御システムであって、 属性値を含むプロパティおよびインプリメントされたフ
    ァンクションを呼び出すメソッドの少なくともいずれか
    を提供する機能と、非同期に発生するアクションを含む
    イベントを発信する第1のインタフェースとを備えた複
    数の制御オブジェクトまたはそのインスタンスを有し、 これら複数の制御オブジェクトまたはそのインスタンス
    からなる制御オブジェクト群は、前記イベントを受信す
    る第2のインタフェースをさらに備えた第1の前記制御
    オブジェクトまたはそのインスタンスと、 これら第1の制御オブジェクトまたはそのインスタンス
    によって作成された第2の前記制御オブジェクトのイン
    スタンスと、 前記プロパティおよびメソッドの少なくともいずれかを
    前記第1の制御オブジェクトまたはそのインスタンスと
    前記第2の制御オブジェクトのインスタンスの間で伝達
    する機能と、前記第1の制御オブジェクトまたはそのイ
    ンスタンスの前記第2のインタフェースおよび前記第2
    の制御オブジェクトのインスタンスの前記第1のインタ
    フェースの少なくともいずれか一方の識別子を他方に渡
    す機能とを備えたインタフェースオブジェクトまたはそ
    のインスタンスとを有していることを特徴とする周辺装
    置の制御システム。
  6. 【請求項6】 請求項5において、前記第2の制御オブ
    ジェクトは、前記周辺装置の第1の周辺装置に対応して
    いることを特徴とする周辺装置の制御システム。
  7. 【請求項7】 請求項6において、前記第2の制御オブ
    ジェクトのプロパティは前記第1の周辺装置に固有な仕
    様に対応した属性値を含み、前記メソッドは前記第1の
    周辺装置に固有な命令を含み、さらに、前記イベントは
    前記第1の周辺装置において非同期に発生するアクショ
    ンを反映可能であることを特徴とする周辺装置の制御シ
    ステム。
  8. 【請求項8】 請求項6において、前記第1の制御オブ
    ジェクトは、前記インタフェースオブジェクトを介して
    伝達された前記第2の制御オブジェクトのプロパティ、
    メソッドおよびイベントの少なくともいずれかを普遍的
    な仕様に変換することを特徴とする周辺装置の制御シス
    テム。
  9. 【請求項9】 請求項6において、前記アプリケーショ
    ンシステムはPOS制御システムであり、前記第2の制
    御オブジェクトはPOSを構成可能な各種の外部周辺装
    置毎に用意されており、前記POS制御システムは前記
    第1の制御オブジェクトまたはそのインスタンスを介し
    て前記外部周辺装置を制御することを特徴とする周辺装
    置の制御システム。
JP7264193A 1995-09-06 1995-10-12 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム Pending JPH09106355A (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP7264193A JPH09106355A (ja) 1995-10-12 1995-10-12 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム
US08/711,716 US6108717A (en) 1995-09-06 1996-09-04 Control system using plural objects, a programming method therefor, and a peripheral devices control system
DE69621197T DE69621197T2 (de) 1995-09-06 1996-09-04 Peripheriegerätsteuerungssystem mit einer Mehrheit von Objekten
EP96114176A EP0762273B1 (en) 1995-09-06 1996-09-04 Peripheral device control system using a plurality of objects
CA002184924A CA2184924A1 (en) 1995-09-06 1996-09-05 Computer control system constructed using a plurality of common objects, and a method for constructing same
HK98115556A HK1014278A1 (en) 1995-09-06 1998-12-24 Peripheral device control system using a plurality of objects
US09/606,378 US6292849B1 (en) 1995-09-06 2000-06-28 Control system using plural objects, a programming method therefor, and a peripheral devices control system
US09/819,217 US6304922B2 (en) 1995-09-06 2001-03-27 Control system using plural objects, a programming method therefor, and a peripheral devices control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7264193A JPH09106355A (ja) 1995-10-12 1995-10-12 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム

Publications (1)

Publication Number Publication Date
JPH09106355A true JPH09106355A (ja) 1997-04-22

Family

ID=17399778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7264193A Pending JPH09106355A (ja) 1995-09-06 1995-10-12 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム

Country Status (1)

Country Link
JP (1) JPH09106355A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000089960A (ja) * 1998-07-31 2000-03-31 Sony United Kingdom Ltd デ―タ処理装置
JP2003512657A (ja) * 1999-05-06 2003-04-02 サン・マイクロシステムズ・インコーポレイテッド 動的インストールおよび設定ブローカ
US7055155B2 (en) 2000-12-28 2006-05-30 Seiko Epson Corporation Character string processing method, processing system, and object program therefor
WO2006114810A1 (ja) * 2005-03-31 2006-11-02 Mitsubishi Denki Kabushiki Kaisha 通信ドライバ
US9110615B2 (en) 2011-08-03 2015-08-18 Seiko Epson Corporation Point of sale control device, control method, and storage medium storing a program for a point of sale device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000089960A (ja) * 1998-07-31 2000-03-31 Sony United Kingdom Ltd デ―タ処理装置
JP2003512657A (ja) * 1999-05-06 2003-04-02 サン・マイクロシステムズ・インコーポレイテッド 動的インストールおよび設定ブローカ
US7055155B2 (en) 2000-12-28 2006-05-30 Seiko Epson Corporation Character string processing method, processing system, and object program therefor
WO2006114810A1 (ja) * 2005-03-31 2006-11-02 Mitsubishi Denki Kabushiki Kaisha 通信ドライバ
JPWO2006114810A1 (ja) * 2005-03-31 2008-12-11 三菱電機株式会社 通信ドライバ
JP4629729B2 (ja) * 2005-03-31 2011-02-09 三菱電機株式会社 通信ドライバ
US9110615B2 (en) 2011-08-03 2015-08-18 Seiko Epson Corporation Point of sale control device, control method, and storage medium storing a program for a point of sale device

Similar Documents

Publication Publication Date Title
EP0762273B1 (en) Peripheral device control system using a plurality of objects
CN101529382B (zh) 公共组件框架
CN101995860B (zh) 使用模板的系统配置
JP2722268B2 (ja) 同時に動作しているコンピュータプログラム間の情報伝達方法
US5838563A (en) System for configuring a process control environment
US5999728A (en) Method and apparatus for enhancing the portability of an object oriented interface among multiple platforms
US6856964B1 (en) System and methods for integrating a self-checkout system into an existing store system
EP1187022A2 (en) Method and apparatus allowing a limited client device to use the full resources of a networked server
KR100221374B1 (ko) 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
US20050144271A1 (en) Control system apparatus, method for setting control system and setting program
US8363247B2 (en) Printer control method
JP2009009560A (ja) 図形要素を用いてプロセスコントロール環境を構成するためのシステム
CA2391763A1 (en) System of reusable software parts and methods of use
CN110472413A (zh) 基于jenkins的设备管理方法、装置、存储介质及电子设备
JPH0683603A (ja) オブジェクト・クラスのバッチ登録の方法とシステム
US6275785B1 (en) Hardware simulator for a transaction processing system
CA2110417A1 (en) Message dispatching in an event-driven architecture
JPH09106355A (ja) 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム
US6182106B1 (en) Method and system for providing a common hardware system console interface in data processing systems
JPH0973395A (ja) 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム
TW411414B (en) Method and apparatus for monitoring and controlling real-time information in a building automation system
CN100419711C (zh) 一种服务调试命令发射器及其处理方法
JPH0973383A (ja) Hmi管理システム及び管理方法
CN114047974B (zh) 物联网设备配置方法、装置、配置终端及存储介质
JPH05334272A (ja) 複数電子計算機システムの監視操作方法