JP2005258712A - オブジェクト管理システム - Google Patents

オブジェクト管理システム Download PDF

Info

Publication number
JP2005258712A
JP2005258712A JP2004067969A JP2004067969A JP2005258712A JP 2005258712 A JP2005258712 A JP 2005258712A JP 2004067969 A JP2004067969 A JP 2004067969A JP 2004067969 A JP2004067969 A JP 2004067969A JP 2005258712 A JP2005258712 A JP 2005258712A
Authority
JP
Japan
Prior art keywords
name
management system
peripheral device
shared
names
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
JP2004067969A
Other languages
English (en)
Inventor
Koji Hatanaka
耕治 畑中
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004067969A priority Critical patent/JP2005258712A/ja
Publication of JP2005258712A publication Critical patent/JP2005258712A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】
一台のホスト機器に同じ種類の周辺機器が複数台、同時に接続された場合に、障害が発生しないようにする。
【解決手段】
デバイスドライバ80は、デバイス管理システム40に問い合わせて、ポート名とデバイス名を取得し、これらを含む一意な共有オブジェクト名称を作成する。アプリケーションは、画像入出力管理システム70に問い合わせて、アクセスしている周辺機器デバイスの接続ポート名と名称を取得し、これらを含む一意な共有オブジェクト名称を作成する。オブジェクト作成コマンドに対し、OSは、その名称のオブジェクトが存在しない場合には、新たにその名前のオブジェクトを作成して、そのオブジェクトのハンドラを返し、オブジェクトが存在する場合には、そのオブ塾とのハンドラを返す。
【選択図】
図2

Description

本発明は、オブジェクト管理システムに関し、特に、複数のモジュール間で共有するオブジェクトの名称を生成する処理に関する。
近年、パーソナルコンピュータ(PC)のオペレーティングシステム(OS)が、標準でデジタルカメラ等の周辺機器デバイスをサポートするようになってきた。例えば、米国Microsoft社がPC用に提供するオペレーティングシステムにおけるWIAが挙げられる。
この場合、周辺機器デバイスのデバイスドライバは、OSがサポートする規格に準拠したインターフェースを備えて作成されなければならない。これにより、周辺機器デバイスにアクセスするアプリケーションなどから見れば、様々な種類の周辺機器デバイスに対して一意のインターフェースが提供されることになる。つまり、周辺機器デバイスにアクセスするアプリケーションは、OSが提供するインターフェースにアクセスするように作られていれば、様々な周辺機器デバイスに一意にアクセスできることになる。
しかし、アプリケーションによっては、OSが提供しているインターフェースだけでは不十分で、周辺機器デバイスの機能でOSがサポートしていない機能を使用するために、デバイスドライバと直接、コミュニケーションする必要があるものもある。このような場合、一つの方法として、従来は、ドライバとアプリケーションとの間で共有する共有オブジェクトや共有メモリの名前を予め決めておき、それらを経由して、データのやり取りなどのコミュニケーションを図っていた。
この様な周辺機器とのインターフェースに関する技術が、例えば特許文献1に記載されている。
特開2003−348287公報
しかし、予め決められた名前の共有メモリ又は共有オブジェクトを使う方法には、次のような問題点がある。例えば、アプリケーションが対応する複数種類の周辺機器デバイスがコンピュータに同時に複数台、接続された場合、異なる周辺機器のデバイスドライバとコミュニケーションするための共有オブジェクトが同じ名前で生成され、コミュニケーションに障害が生じることがある。これを防ぐには、周辺機器の種類ごとに異なる名前を共有オブジェクトの名前に決めておけば、異なる周辺機器が複数接続されても障害を発生させないようにできる。しかし、この場合でも、一台のコンピュータに同じ種類の周辺機器が複数台、同時に接続された場合には、やはり同じような障害が発生する。
本発明は、このような不都合を解消し、複数のモジュール間で共通のオブジェクトを容易に生成可能とすることを目的とする。
上記問題を解決するために、本発明に係る周辺機器と、前記周辺機器に接続可能なホストとからなり、前記周辺機器に対してアクセスするモジュール間で共有するオブジェクトを動的に生成するシステムにおいて、前記周辺機器に固有の情報を自動取得し、取得した情報を前記オブジェクトの名称に含めることを特徴とする。
本発明によれば、複数のモジュールから共通に参照されるオブジェクト名を動的かつ固有のものにすることができる。これにより、いかなる種類の複数の周辺機器が同時に一台のコンピュータに接続された場合でも、それにアクセスするアプリケーションやドライバーの動作を安定して動作させることが可能になる。
以下、図面を参照して、本発明の実施例を詳細に説明する。
図1は、本発明の一実施例の概略構成図を示す。ホスト機器としてのコンピュータ本体10には、コンピュータ本体10の出力を画像として表示するモニタ12、マウス14及びキーボード18が接続する。マウス14は、マウスボタン16を具備する。周辺機器デバイスであるカメラ20は、USB(ユニバーサル・シリアル・バス)データ転送ケーブル22を介してコンピュータ本体10と接続する。
図2は、本実施例の機能ブロック図を示す。コンピュータ本体10では、周知の通り、ハードウエア内にオペレーティングシステム(OS)があり、その上にアプリケーションソフトウェアが位置する。実施例の構成を理解する上で直接、必要とされない要素、例えば、CPU、及びオペレーティングシステムのメモリ管理システムなどは、省略してある。
30は補助記憶装置としてのハードディスク、32はオペレーティングシステムを構成するファイルシステムである。ファイルシステム32は、アプリケーションソフトウェアがハードウエアを直接制御すること無しにファイルの入出力を可能にする機能を具備する。このようなファイルシステムは周知である。34は、ファイルシステム32がハードディスク30にデータを読み書きするためのディスク入出力インターフェースである。
36は、オペレーティングシステムに含まれる描画管理システムであり、アプリケーションソフトウェアがハードウエアを直接制御することなく画像を生成する機能を具備する。38は、描画管理システム36で生成される画像データをモニタ12に適合するビデオ信号に変換するビデオインターフェースである。
40は、オペレーティングシステムを構成するデバイス管理システムである。デバイス管理システム40は、接続されているデバイスに適切なデバイスドライバを自動的に割り振り、また、デバイスドライバがハードウエアを直接制御することなく、ユーザの入力と周辺機器デバイスからの入出力を管理する手段を提供する。デバイス管理システム40には、USB機器を使用するときのホストとなるUSBホストシステムも含まれる。42はキーボード18が接続するキーボードインターフェース、44はマウス14が接続するマウスインターフェース、46はUSBインターフェースである。
電子カメラ20は、USBケーブル22を介してUSBインターフェース46に接続し、デバイス管理システム40を介して、電子カメラ用のデバイスドライバとの間で制御コマンド、状態信号及び画像データ等をやり取りできる。
50は電子カメラ20からの画像を取得するアプリケーションソフトウエアである。ソフトウエア50は、後述する画像入出力管理システム70にアクセスすることで電子カメラ20と通信し、電子カメラ20で撮影された画像を取得するカメラ画像取得手段52、電子カメラ20からの画像及びその他の情報をモニタ12の画面上に表示させるデータ表示手段56、並びに、電子カメラ20から転送された撮影画像データをハードディスク30に格納し管理するファイル管理手段58を具備する。
60はアプリケーションとドライバーで共有する共有オブジェクトで、具体的には、共有メモリ及び同期オブジェクトなどである。本実施例では、OSの一部である画像入出力管理システム70が提供しているインターフェースで実現可能な処理以外の処理も行うために、デバイスドライバ80とアプリケーションソフトウェア50との間でこの共有オブジェクト60を介してコミュニケーションする。
OSが提供する画像入出力管理システム70には、基本的な処理を実現するためのインターフェースが提供されている。それには、アプリケーションとのインターフェースであるアプリケーションインターフェース71と、デバイスドライバとのインターフェースであるデバイスインターフェース72がある。画像入出力管理システムを使用するためには、ドライバはデバイスインターフェース72の仕様に沿って作られていなければならない。また、アプリケーションは、画像入出力管理システム70を使用して様々なデバイスにアクセスするためには、画像入出力管理システム70が提供するアプリケーションインターフェース71に対応して作られていなければならない。それらのインターフェースには、例えば、画像一覧を取得するためのインターフェース、画像を取得するためのインターフェース、及び、画像を消去するためのインターフェースなど、画像を操作するために必要となる基本的なものが定義されている。
このように、画像入出力管理システム70により定義又は提供されているインターフェースを使用すると、アプリケーションは、画像を取り込む基本的な機能を実現できる。
しかし、これ以外の特別なことをしようとした場合、及び、カメラの機能のうち、画像デバイス管理システムで定義されていないような機能を使用する場合には、デバイスドライバとアプリケーションとが直接、コミュニケーションする必要がある。そのひとつの方法として、互いに共通してアクセスするメモリなどの共有オブジェクト60を定義し、それを経由してデータのやり取りなどのコミュニケーションを行う方法がある。このときに問題となるのが、共有オブジェクト60などに双方からアクセスする手段である。最も簡単な方法としては、予め共有オブジェクト60の名前を決めておけば良いのだが、その場合、複数台の周辺機器が接続されると、それぞれのデバイスドライバが同じオブジェクトにアクセスし、その結果、障害が発生することがある。周辺機器ごとに予め異なった共有オブジェクトの名前を決めておく方法もあるが、その場合でも、周辺機器の種類が増えた場合の対応が面倒だったり、あるいは、同一種類の周辺機器が複数台接続された場合に、障害が発生したりすることになる。
そこで、本実施例では、共有オブジェクト60の名前を動的に決定する共通のルールをデバイスドライバ80とアプリケーションソフトウェア50とで決めておくことにし、そのルールに従って、名前を生成する。そして、この名前でオブジェクトを作成し、このオブジェクトに互いがアクセスすることで互いのコミュニケーションを実現する。このルールでは、共有オブジェクト60の名前がシステムで一意になるように、周辺機器デバイスが接続されているポート名及び周辺機器のシリアル番号から名前を生成する。
本実施例でのオブジェクト命名ルールでは、図6に示すように、共有オブジェクトの名前に、周辺機器が接続されているポート名と周辺機器名称を含める。
ポート名と周辺機器デバイス名を取得するために、デバイスドライバ80はデバイス管理システム40にこれらを問い合わせて調べる、アプリケーションソフトウェア50は、画像入出力管理システム70に問い合わせることで、これらの名前を取得が可能である。
本実施例での具体例を図3に示す。図3に示す例では、ポート名と周辺機器名の前に、修飾詞をつけている。この修飾詞は、用途によって変わる。修飾詞を変えることにより、複数の共有オブジェクトを作成できる。図3に示す例では、ドライバとアプリケーションとで共有するメモリオブジェクトであることを表す修飾詞「APP−DRVR−SHARE−MEM」、ポート名「USB0001」及び周辺機器名「PS10」から、共有メモリオブジェクト名「APP−DRVR−SHARE−MEM USB0001 PS10」を作成している。
アプリケーションソフトウェア50とデバイスドライバ80の双方が、このルールに従い共有メモリオブジェクト名を作成し、この名称の共有メモリオブジェクトを作成する。アプリケーションソフトウェア50では、図2に示す共有オブジェクト管理手段53で、デバイスドライバー80では、共有オブジェクト管理手段81でこれらの処理が行われる。
本実施例でのOSでは、名前付きオブジェクト作成のコマンドを実行した場合、その名前のオブジェクトが存在していないときには、新規にオブジェクトを作成した上で、そのハンドルを返し、指定した名前のオブジェクトが既に存在するときには、その既存のオブジェクトのハンドルを返す。この仕組みにより、アプリケーションとデバイスドライバのどちらが先に共有オブジェクトの作成コマンドを実行しても、互いに共通のオブジェクトのハンドルを取得できる。この機能により、対象のオブジェクトが既に存在しているか否かはは、気にする必要はがい。この方法により作成されえた共有オブジェクトを経由することで、アプリケーションとデバイスドライバの間、ひいてはアプリケーションとカメラとのコミュニケーションが可能になる。
図4は、以上に説明した動作を示すフローチャートである。図4は、デバイスドライバ80での共有オブジェクト管理手段81の動作であって、デバイスドライバ80がロードされて共有オブジェクト60を作成するときの動作を示す。なお、デバイスドライバ80のロードは、プラグ・アンド・プレイによりOSにより行われる。アプリケーションとのコミュニケーションを早急に可能にするため、共有オブジェクトの作成は、ドライバの初期化処理中の、可能な限り早い段階で行われる。
まず、ステップS1で、デバイス管理システム40に問い合わせて、ポート名を取得する。ステップS2において、デバイス管理システム40に問い合わせて、デバイス名を取得する。ステップS3において、図6に示したルールに則り、共有オブジェクト名称を作成する。ステップS4では、ステップS3で作成した名称で共有オブジェクトを作成する。
図5は、周辺機器デバイスにアクセスするアプリケーションでの動作フローを示す。アプリケーションは、周辺機器デバイスへのアクセスを開始後、できるだけ早い段階で以下の処理を行い、共有オブジェクトの作成を試みる。
ステップS11では、まず、画像入出力管理システム70に問い合わせて、アクセスしている周辺機器デバイスが接続されているポート名を取得する。ステップS12において、同じく画像入出力管理システム70から、接続中の周辺機器デバイスの名称を取得する。ステップS13では、ステップS11とステップS12で取得したポート名及び周辺機器デバイス名を使い、図6に示すルールに従い、共有オブジェクト名称を生成する。ステップS14では、ステップS13で作成した名称で、共有オブジェクト60の作成を試みる。
図4のステップS4及び図5のステップS14ともに、同じ名称で共有オブジェクトを作成しようとすることになる。しかし、先にも述べたとおり、本実施例では、OSの機能として、作成しようとする名称のオブジェクトが存在しない場合には、新規にオブジェクトを作成してそのハンドルを返し、作成しようとする名称のオブジェクトが既に存在する場合には、その名称のオブジェクトのハンドルを返すという機能があるため、結局、ドライバとアプリケーションは同じオブジェクトのハンドルを持つことになり、その結果、そのオブジェクトを共有できることになる。
このような機能がないOSの場合には、ドライバの動作を示す図4のステップS4では、オブジェクトを新規に作成し、アプリケーションの動作を示す図5のステップS14では、指定した名称のオブジェクトのハンドルを取得する処理を行えばよい。なぜならば、プラグ・アンド・プレイで必ずドライバのロードが先に行われ、図4の処理が図5の処理より先に行われるからである。
以上、説明してきたように、本実施例では、周辺機器に関係する複数のドライバとアプリケーションから共通に参照されるオブジェクトの名称を周辺機器のポート名や機種名などを含めて動的に共通のルールで決めるようにしている。これにより、システム固有のオブジェクト名を動的に生成でき、その名前のオブジェクトをお互いに参照することにより、アプリケーションとデバイスドライバとの間のコミュニケーションを実現できる。
なお、本実施例では、周辺機器のポート名と機種名を共有オブジェクトの名称に含めるルールとしてあるが、本発明は、このの限りではなく、周辺機器のシリアル番号などの周辺機器に固有な情報をオブジェクト名に含めても良い。
本発明の一実施例でのシステムの概略構成図である。 本実施例でのシステムの機能ブロック図を示す。 本実施例での共有オブジェクト名の例を示す。 本実施例でのデバイスドライバーでの共有オブジェクト生成時の動作を示すフローチャートである。 本実施例でのアプリケーションソフトウェアでの共有オブジェクト生成時の動作を示すフローチャートである。 本実施例での共有オブジェクト名生成のルールを示す。
符号の説明
10:コンピュータ本体(ホスト機器)
12:モニタ
14:マウス
16:マウスボタン
18:キーボード
20:カメラ
22:USB(ユニバーサル・シリアル・バス)データ転送ケーブル
30:ハードディスク
32:ファイルシステム
34:ディスク入出力インターフェース
36:描画管理システム
38:ビデオインターフェース
40:デバイス管理システム
42:キーボードインターフェース
44:マウスインターフェース
46:USBインターフェース
50:アプリケーションソフトウエア
52:カメラ画像取得手段
53:共有オブジェクト管理手段
56:データ表示手段
58:ファイル管理手段
60:共有オブジェクト
70:画像入出力管理システム
80:デバイスドライバ
71:アプリケーションインターフェース
72:デバイスインターフェース

Claims (5)

  1. 周辺機器と、前記周辺機器に接続可能なホストとからなり、前記周辺機器に対してアクセスするモジュール間で共有するオブジェクトを動的に生成するシステムにおいて、
    前記周辺機器に固有の情報を自動取得し、取得した情報を前記オブジェクトの名称に含めることを特徴とするオブジェクト管理システム。
  2. 前記固有の情報は、前記周辺機器が接続されているポート名を含むことを特徴とする請求項1に記載のオブジェクト管理システム。
  3. 前記固有の情報は、周辺機器の名称又はID(識別番号)を含むことを特徴とする請求項1に記載のオブジェクト管理システム。
  4. 前記複数のモジュールは、前記周辺機器の動作を制御するためのデバイスドライバモジュールと、前記周辺機器を利用した機能を実現するためのアプリケーションモジュールとを含むことを特徴とする請求項1に記載のオブジェクト管理システム。
  5. 前記デバイスドライバモジュールと前記アプリケーションモジュールの一方において前記共通のオブジェクトが生成されている場合に、他方によるオブジェクト名の生成処理を停止することを特徴とする請求項4に記載のオブジェクト管理システム。
JP2004067969A 2004-03-10 2004-03-10 オブジェクト管理システム Pending JP2005258712A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004067969A JP2005258712A (ja) 2004-03-10 2004-03-10 オブジェクト管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004067969A JP2005258712A (ja) 2004-03-10 2004-03-10 オブジェクト管理システム

Publications (1)

Publication Number Publication Date
JP2005258712A true JP2005258712A (ja) 2005-09-22

Family

ID=35084375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004067969A Pending JP2005258712A (ja) 2004-03-10 2004-03-10 オブジェクト管理システム

Country Status (1)

Country Link
JP (1) JP2005258712A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140281A (ja) * 2008-12-11 2010-06-24 Canon Inc アプリケーションプログラムとプリンタドライバとの間のデータ通信方法およびプログラム
CN101072478B (zh) * 2006-05-08 2010-09-29 宇瞻科技股份有限公司 携带式资料储存装置
JP2014178743A (ja) * 2013-03-13 2014-09-25 Toshiba Corp 制御プログラム、記録媒体および制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000200192A (ja) * 1998-11-17 2000-07-18 Sun Microsyst Inc 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構
JP2000242454A (ja) * 1999-02-17 2000-09-08 Brother Ind Ltd 画像処理システム及び記録媒体
JP2000348215A (ja) * 1999-06-02 2000-12-15 Fujitsu Ltd 仮想現実感マルチウィンドウシステムおよび表計算アプリケーションソフトウェア
WO2003045639A2 (en) * 2001-11-28 2003-06-05 Evolution Robotics, Inc. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000200192A (ja) * 1998-11-17 2000-07-18 Sun Microsyst Inc 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構
JP2000242454A (ja) * 1999-02-17 2000-09-08 Brother Ind Ltd 画像処理システム及び記録媒体
JP2000348215A (ja) * 1999-06-02 2000-12-15 Fujitsu Ltd 仮想現実感マルチウィンドウシステムおよび表計算アプリケーションソフトウェア
WO2003045639A2 (en) * 2001-11-28 2003-06-05 Evolution Robotics, Inc. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072478B (zh) * 2006-05-08 2010-09-29 宇瞻科技股份有限公司 携带式资料储存装置
JP2010140281A (ja) * 2008-12-11 2010-06-24 Canon Inc アプリケーションプログラムとプリンタドライバとの間のデータ通信方法およびプログラム
US9298522B2 (en) 2008-12-11 2016-03-29 Canon Kabushiki Kaisha Method of data communication between application program and printer driver, and program therefor
JP2014178743A (ja) * 2013-03-13 2014-09-25 Toshiba Corp 制御プログラム、記録媒体および制御方法

Similar Documents

Publication Publication Date Title
US6901455B2 (en) Peripheral sharing device with unified clipboard memory
US7322035B2 (en) Simplified device drivers for hardware devices of a computer system
US7133938B2 (en) Hub controller with connected first and second device wherein second device contains drivers and first device in disable state before driver read from second device
US6832269B2 (en) Apparatus and method for supporting multiple graphics adapters in a computer system
US7617400B2 (en) Storage partitioning
US20070245347A1 (en) Installation method and communication apparatus
CN109033328B (zh) 一种访问请求处理方法、装置、设备及可读存储介质
US6976073B2 (en) Transparent remote data storage device and method
US20060047604A1 (en) Methods and apparatus providing portable application and data
CN111259441B (zh) 设备控制方法、装置、存储介质及电子设备
US7165124B2 (en) Data transfer control system, electronic instrument, program, and data transfer control method
US7689728B2 (en) Method and apparatus for describing ACPI machine language in computer having multibridge PCI structure, and program thereof
JP2005258712A (ja) オブジェクト管理システム
US9450910B2 (en) Network address allocation
US6539441B1 (en) Multi-instance input device control
US20040230734A1 (en) Data transfer control system, electronic instrument, and data transfer control method
JP2006146839A (ja) 装置を管理するシステム及び方法
JP5135696B2 (ja) 電子機器、及びオブジェクト管理方法
US10530980B2 (en) Apparatus for managing video data and method the same
JP5104320B2 (ja) コンピュータシステム、コンピュータ本体、起動方法、および初期化プログラム
JP2005316670A (ja) 識別情報設定方法
JP5099232B2 (ja) 情報共有化システム
US20100333103A1 (en) Information processor and information processing method
JP5398418B2 (ja) 撮像装置、情報処理装置、プログラム
JP2008077389A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110208