(57)【要約】【課題】バイトコードを含んだ１つのパッケージをインストールするだけで、ハードウェア環境が様々でも、接続された外部デバイスに対応するデバイスドライバをインストール出来るパッケージの提供。【解決手段】電子機器ごとの互いに異なるハードウェア環境に対応させてネーティブコードによりプログラミングされ、電子機器のＯＳ上で稼働する互いに異なる複数のデバイスドライバを含むデバイスドライバ群と、電子機器を環境判断部、デバイスドライバ検索部、およびデバイスドライバインストール部として機能させる電子機器の仮想環境上で稼働するバイトコードを備え、環境判断部は、電子機器のハードウェア環境に関する情報を取得し、デバイスドライバ検索部は、デバイスドライバ群の中から、取得したハードウェア環境に合ったデバイスドライバを検索し、デバイスドライバインストール部は、検索されたデバイスドライバをＯＳにインストールする。【選択図】図１
2016207123.tif 000002
【特許請求の範囲】
【請求項１】
電子機器ごとの互いに異なるハードウェア環境に対応させてネーティブコードによりプログラミングされ、前記電子機器のオペレーティングシステム上で稼働する互いに異なる複数のデバイスドライバーを含むデバイスドライバー群と、
前記電子機器を環境判断部、デバイスドライバー検索部、およびデバイスドライバーインストール部として機能させる前記電子機器の仮想環境上で稼働するバイトコードを備え、
前記環境判断部は、
前記電子機器のハードウェア環境に関する情報を取得し、
前記デバイスドライバー検索部は、
前記デバイスドライバー群の中から、取得したハードウェア環境に合ったデバイスドライバーを検索し、
前記デバイスドライバーインストール部は、
検索された前記デバイスドライバーを前記オペレーティングシステムにインストールする
アプリケーションパッケージ。
【請求項２】
請求項１に記載のアプリケーションパッケージであって、
前記アプリケーションパッケージは、
プロセッサーの種別およびオペレーティングシステムのバージョンと、
前記プロセッサーの種別および前記オペレーティングシステムのバージョンに対応するデバイスドライバーの識別子との組が複数記述されたハードウェア環境テーブルをさらに備え、
前記デバイスドライバー検索部は、
前記ハードウェア環境テーブルに基づいて、前記デバイスドライバー群の中から、取得したハードウェア環境に合ったデバイスドライバーを検索する
アプリケーションパッケージ。
【請求項３】
電子機器ごとの互いに異なるハードウェア環境に対応させてネーティブコードによりプログラミングされ、前記電子機器のオペレーティングシステム上で稼働する互いに異なるデバイスドライバー複数個を含んだデバイスドライバー群と、
前記電子機器の仮想環境上で稼働するバイトコードを実行することにより形成される、環境判断部、デバイスドライバー検索部、およびデバイスドライバーインストール部とを備え、
前記環境判断部は、
前記電子機器のハードウェア環境に関する情報を取得し、
前記デバイスドライバー検索部は、
前記デバイスドライバー群の中から、取得したハードウェア環境に合ったデバイスドライバーを検索し、
前記デバイスドライバーインストール部は、
検索された前記デバイスドライバーを前記オペレーティングシステムにインストールする
アプリケーションパッケージが起動されたとき、
前記環境判断部、前記デバイスドライバー検索部、および前記デバイスドライバーインストール部を実行可能な前記仮想環境と、
前記デバイスドライバー群の中の少なくとも１つのデバイスドライバーに合ったハードウェア環境と
を備えた電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアに依存するプログラムをインストールして使用する電子機器およびプログラムに関する。
【背景技術】
【０００２】
従来、電子機器に接続される様々な仕様のハードウェアを制御し、汎用的なＯＳ（Operating System）から使用できるようにするためのプログラムとして、デバイスドライバーが用いられてきた。
【０００３】
以前は、電子機器に新しくハードウェアを追加する際には、ユーザーがデバイスドライバーを入手しインストールしなければならなかったが、現在では、ＯＳが接続されたハードウェアを認識し、適切なデバイスドライバーを取得しインストールするので、ユーザーの手間が軽減されてきている。
【０００４】
しかし、デバイスドライバーを使用する上での問題点もあり、様々な工夫がなされてきた。
【０００５】
例えば、従来、画像形成装置に、マウスやキーボードなどのＨＩＤ(Human Interface Device)をＵＳＢ(Universal Serial Bus)経由で接続した時に、デフォルトではＯＳの標準デバイスドライバーが使用されてしまい、ＨＩＤをＪａｖａ（登録商標）アプリケーションから直接制御することは出来なかった。
【０００６】
そのため、特許文献１において開示されている技術では、標準デバイスドライバーの使用をキャンセルし、改めてＪａｖａアプリケーションから直接制御するためのデバイスドライバーをインストールすることにより、ＪａｖａアプリケーションによるＨＩＤの直接制御を可能にしている。
【０００７】
また、例えば、ホストコンピューターからプリンターに印刷指示を出す場合、プリンターの機種ごとの識別子が異なっていても同じプリンタードライバーを用いることが出来る場合があっても、これまでは、識別子が異なると別のプログラムを用意しなければならなかった。
【０００８】
そのため、特許文献２の技術では、接続された新しい機種のプリンターが持つ識別子をホストコンピューターに伝えて使用するプリンタードライバーを選択する際に、同じプリンタードライバーを使用できる古いプリンターの機種の識別子を代わりに用いることにより、不整合の発生を防止している。
【０００９】
また、従来、例えばウィンドウズ（登録商標）の機能として、サーバーコンピューターに格納してあるデバイスドライバーを、必要な時にクライアントコンピューターにダウンロードしてインストールし使用できる状態にすることは出来たが、ダウンロードしたドライバーと一緒に用いられるアプリケーションプログラム等のダウンロードやインストールは自動的に行われなかった。
【００１０】
そのため、特許文献３の技術では、デバイスドライバーと、そのデバイスドライバーと一緒に用いられるアプリケーションプログラム等を１つのインストールセットにまとめ、クライアントコンピューターにおいてデバイスドライバーが必要な時は、インストールセットをダウンロードし、デバイスドライバーおよびアプリケーションプログラム等の両方をインストールして使える状態とする。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−９５９４０号公報
【特許文献２】特開２００１−２５１５２５号公報
【特許文献３】特開２００５−３３８９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、上述した技術では、様々なハードウェア環境に対応するバイトコードを含んだ１つのパッケージをインストールするだけで、ハードウェア環境が様々な電子機器に接続された外部デバイスに対応するデバイスドライバーをインストールすることは出来なかった。
【００１３】
以上のような事情に鑑み、本発明の目的は、様々なハードウェア環境に対応するバイトコードを含んだ１つのパッケージをインストールするだけで、電子機器のハードウェア環境が様々であっても、電子機器に接続された外部デバイスに対応するデバイスドライバーをインストールすることが出来るアプリケーションパッケージおよび電子機器を提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の一形態に係るアプリケーションパッケージは、電子機器ごとの互いに異なるハードウェア環境に対応させてネーティブコードによりプログラミングされ、前記電子機器のオペレーティングシステム上で稼働する互いに異なる複数のデバイスドライバーを含むデバイスドライバー群と、前記電子機器を環境判断部、デバイスドライバー検索部、およびデバイスドライバーインストール部として機能させる前記電子機器の仮想環境上で稼働するバイトコードを備え、前記環境判断部は、前記電子機器のハードウェア環境に関する情報を取得し、前記デバイスドライバー検索部は、前記デバイスドライバー群の中から、取得したハードウェア環境に合ったデバイスドライバーを検索し、前記デバイスドライバーインストール部は、検索された前記デバイスドライバーを前記オペレーティングシステムにインストールする。そのため、様々なハードウェア環境に対応するバイトコードを含んだ１つのパッケージをインストールするだけで、電子機器のハードウェア環境が様々であっても、電子機器に接続された外部デバイスに対応するデバイスドライバーをインストールすることが出来る。
【００１５】
上記目的を達成するため、本発明の一形態に係るアプリケーションパッケージは、プロセッサーの種別およびオペレーティングシステムのバージョンと、前記プロセッサーの種別および前記オペレーティングシステムのバージョンに対応するデバイスドライバーの識別子との組が複数記述されたハードウェア環境テーブルをさらに備え、前記デバイスドライバー検索部は、前記ハードウェア環境テーブルに基づいて、前記デバイスドライバー群の中から、取得したハードウェア環境に合ったデバイスドライバーを検索する構成でもよい。
【００１６】
上記目的を達成するため、本発明の一形態に係る電子機器は、電子機器ごとの互いに異なるハードウェア環境に対応させてネーティブコードによりプログラミングされ、前記電子機器のオペレーティングシステム上で稼働する互いに異なるデバイスドライバー複数個を含んだデバイスドライバー群と、前記電子機器の仮想環境上で稼働するバイトコードを実行することにより形成される、環境判断部、デバイスドライバー検索部、およびデバイスドライバーインストール部とを備え、前記環境判断部は、前記電子機器のハードウェア環境に関する情報を取得し、前記デバイスドライバー検索部は、前記デバイスドライバー群の中から、取得したハードウェア環境に合ったデバイスドライバーを検索し、前記デバイスドライバーインストール部は、検索された前記デバイスドライバーを前記オペレーティングシステムにインストールするアプリケーションパッケージが起動されたとき、前記環境判断部、前記デバイスドライバー検索部、および前記デバイスドライバーインストール部を実行可能な前記仮想環境と、前記デバイスドライバー群の中の少なくとも１つのデバイスドライバーに合ったハードウェア環境とを備える。
【発明の効果】
【００１７】
以上のように、本発明によれば、様々なハードウェア環境に対応するバイトコードを含んだ１つのパッケージをインストールするだけで、電子機器のハードウェア環境が様々であっても、電子機器に接続された外部デバイスに対応するデバイスドライバーをインストールすることが出来る。
【図面の簡単な説明】
【００１８】
【図１】概要を説明するための図である。
【図２】画像形成装置２０の構成を概略的に示す構成図である。
【図３】画像形成装置２０のハードウェア環境テーブル１ｅの例を示す図である。
【図４】画像形成装置２０にデバイスドライバーを設定する際の処理の流れについて説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照しながら、本発明の実施形態を説明する。なお、以下の説明では、電子機器の例として画像形成装置（ＭＦＰ、Multifunction Peripheral）を挙げて説明する。
【００２０】
［概要］
最初に、概要を説明する。図１は、概要を説明するための図である。
【００２１】
画像形成装置の制御部（後述）ではＯＳ（Operating System）５が稼働しており、ＯＳ５の上では、ＯＳ５のバージョンおよびＯＳ５等が稼働するＣＰＵ（Central Processing Unit、プロセッサー）の種類に対応してネーティブコードでプログラミングされたネーティブアプリケーション４と、ＯＳ５のバージョンおよびＣＰＵの種類に関係なく機能するようにバイトコードでプログラミングされたＪａｖａ（登録商標）アプリケーションを稼働させるＪａｖａプラットフォーム３とが稼働する。
【００２２】
Ｊａｖａプラットフォーム３は、画像形成装置のＯＳ５上に、ハードウェアに依存しないでバイトコードを実行可能な仮想環境を提供するものである。
【００２３】
本発明の一実施形態に係るアプリケーションパッケージ１は、Ｊａｖａプラットフォーム上で稼働するバイトコード１ｄと、１つの画像形成装置の環境（ＯＳ５のバージョンとＣＰＵ種類）に対応させたネーティブコードでプログラミングされた互いに異なる複数のデバイスドライバー２ａ、２ｂ、２ｃが含まれたデバイスドライバー群２と、ハードウェア環境テーブル１ｅとを含んでいる。
【００２４】
なお、電子機器としてＰＣ（Personal Computer）を用いる場合は、ＯＳ５やＣＰＵの種類が非常に多く、それらの環境にそれぞれ対応するデバイスドライバーを用意してアプリケーションパッケージ１に含めることは難しい。
【００２５】
しかし、電子機器として１つのメーカーの画像形成装置を想定した場合、ＯＳ５やＣＰＵの種類の組み合わせは限定されたものとなり、それら全ての組み合わせに対応する数のデバイスドライバーを用意し、アプリケーションパッケージ１に含めることは現実的である。
【００２６】
アプリケーションパッケージ１のバイトコード１ｄ部分は、画像形成装置を環境判断部１ａ、デバイスドライバー検索部１ｂ、およびデバイスドライバーインストール部１ｃとして機能させるバイトコードを含んでいる。
【００２７】
環境判断部１ａは、アプリケーションパッケージ１がＪａｖａプラットフォーム３上で起動されると、アプリケーションパッケージ１が稼働するハードウェア環境（ＯＳ５のバージョンやＣＰＵの種類）に関する情報を取得する。
【００２８】
デバイスドライバー検索部１ｂは、取得されたハードウェア環境に合うデバイスドライバーを、ハードウェア環境テーブル１ｅ（後述）に基づいて、デバイスドライバー群２の中から選択し特定する。
【００２９】
デバイスドライバーインストール部１ｃは、特定されたデバイスドライバー（例えば２ａ）をＪＮＩ（Java Native Interface）等を用いて、ＯＳ５にインストールする。
【００３０】
デバイスドライバー２ａがインストールされると、ネーティブアプリケーション４は、デバイスドライバー２ａを介して、画像形成装置に接続された外部デバイス６にアクセスすることが出来る。
【００３１】
以上のように、様々なハードウェア環境（ＯＳ５のバージョンやＣＰＵ種類）に対応するバイトコードを含んだ１つのアプリケーションパッケージ１を画像形成装置にインストールするだけで、画像形成装置のハードウェア環境が様々なものであっても、画像形成装置に接続された外部デバイスに対応するデバイスドライバーをインストールすることが出来る。
【００３２】
以上、概要について説明した。
【００３３】
［画像形成装置の構成］
次に、画像形成装置の構成を説明する。図２は画像形成装置２０の構成を概略的に示す構成図である。
【００３４】
画像形成装置２０は、制御部２１を備える。制御部２１は、ＣＰＵ、ＲＡＭ、ＲＯＭ、および専用のハードウェア回路等から構成され、画像形成装置２０の全体的な動作制御を司る。
【００３５】
概要において述べたアプリケーションパッケージ１、Ｊａｖａプラットフォーム３、ネーティブアプリケーション４、ＯＳ５、および対応するデバイスドライバー２ａ、２ｂ、または２ｃは、制御部２１において動作する。
【００３６】
制御部２１は、画像読取部２２、画像処理部２３、画像メモリー２４、画像形成部２５、操作部２７、ファクシミリ通信部２８、ネットワークインターフェイス部２９、記憶部３０等と接続されている。制御部２１は、接続されている上記各部の動作制御や、各部との間での信号又はデータの送受信を行う。
【００３７】
なお、図２では、外部デバイス６が制御部２１と接続された状態を示している。
【００３８】
制御部２１は、ユーザーから、操作部２７またはネッワーク接続されたＰＣ等を通じて入力されるジョブの実行指示に従って、スキャナ機能、印刷機能、コピー機能、およびファクシミリ送受信機能などの各機能についての動作制御を実行するために必要な機構の駆動及び処理を制御する。
【００３９】
画像読取部２２は、原稿から画像を読み取る。
【００４０】
画像処理部２３は、画像読取部２２で読み取られた画像の画像データを必要に応じて画像処理する。例えば、画像処理部２３は、画像読取部２２により読み取られた画像が画像形成された後の品質を向上させるために、シェーディング補正等の画像処理を行う。
【００４１】
画像メモリー２４は、画像読取部２２による読み取りで得られた原稿画像のデータを一時的に記憶したり、画像形成部２５での印刷対象となるデータを一時的に記憶したりする領域である。
【００４２】
画像形成部２５は、画像読取部２２で読み取られた画像データ等の画像形成を行う。
【００４３】
操作部２７は、画像形成装置２０が実行可能な各種動作及び処理についてユーザーからの指示を受け付けるタッチパネル部および操作キー部を備える。タッチパネル部は、タッチパネルが設けられたＬＣＤ（Liquid Crystal Display）等の表示部２７ａを備えている。
【００４４】
ファクシミリ通信部２８は、図示しない符号化／復号化部、変復調部、およびＮＣＵ（Network Control Unit）を備え、公衆電話回線網を用いてのファクシミリの送信を行う。
【００４５】
ネットワークインターフェイス部２９は、ＬＡＮボード等の通信モジュールから構成され、ネットワークインターフェイス部２９に接続されたＬＡＮ等を介して、ローカルエリア内の装置(ＰＣ等)と種々のデータの送受信を行う。
【００４６】
記憶部３０は、画像読取部２２によって読み取られた原稿画像等を記憶する、ＨＤＤ（Hard Disk Drive）などの大容量の記憶装置である。
【００４７】
外部デバイス６は、例えば、ユーザーの要求により後付けされたＩＣカードリーダーなどであり、画像形成装置２０の標準機能として備えられたネーティブアプリケーション４である、ユーザー認証プログラムなどから利用される。
【００４８】
以上、画像形成装置２０の構成について説明した。
【００４９】
［ハードウェア環境テーブルの例］
次に、画像形成装置２０のハードウェア環境テーブル１ｅの例について説明する。図３は、画像形成装置２０のハードウェア環境テーブル１ｅの例を示す図である。
【００５０】
ハードウェア環境テーブル１ｅには、例えば、「ＣＰＵ種別」および「ＯＳバージョン」の組み合わせに対応したデバイスドライバーのファイル名（ドライバーファイル名、デバイスドライバー識別子）が記載されている。
【００５１】
例えば、ＣＰＵ種別がＡＲＭ（登録商標）であり、ＯＳバージョンが3.12.37-rt51である場合は、外部デバイス６のデバイスドライバーとして選択されるデバイスドライバーのファイル名は、driver_arm_3_12_51.koになる。
【００５２】
また、ＣＰＵ種別がＰｏｗｅｒＰＣ（登録商標）であり、ＯＳバージョンが2.6.33.9-rt31である場合は、外部デバイス６のデバイスドライバーとして選択されるデバイスドライバーのファイル名は、driver_ppc_2_6_33_9.koになる。
【００５３】
以上、画像形成装置２０のハードウェア環境テーブル１ｅの例について説明した。
【００５４】
［処理の流れ］
次に、画像形成装置２０にデバイスドライバーを設定する際の処理の流れについて説明する。図４は、画像形成装置２０にデバイスドライバーを設定する際の処理の流れについて説明するためのフローチャートである。
【００５５】
なお、本実施形態では、画像形成装置２０に後付けされた外部デバイスが何であるかを認識し、対応する適切なアプリケーションパッケージ１をＪａｖａプラットフォーム３上で起動する処理はユーザーが行う事を想定している。
【００５６】
アプリケーションパッケージ１が起動されると、まずアプリケーションパッケージ１の環境判断部１ａが、アプリケーションパッケージ１が起動された画像形成装置２０のハードウェア環境、すなわちＣＰＵ種別とＯＳ５のバージョンを、Ｊａｖａプラットフォーム３から取得する（ステップＳ１およびＳ２）。
【００５７】
次に、アプリケーションパッケージ１のデバイスドライバー検索部１ｂが、環境判断部１ａにより取得されたＣＰＵ種別およびＯＳ５のバージョンを用いてハードウェア環境テーブル１ｅを検索し、アプリケーションパッケージ１が起動されたハードウェア環境に合ったデバイスドライバーのファイル名を特定する（ステップＳ３）。
【００５８】
次に、アプリケーションパッケージ１のデバイスドライバーインストール部１ｃが、デバイスドライバー検索部１ｂにより特定されたファイル名のファイルを、アプリケーションパッケージ１に含まれている複数のデバイスドライバー２ａ、２ｂ、２ｃの中から選択し、ＪＮＩ等の仕組みを用いて、Ｊａｖａプラットフォーム３を介してＯＳ５にインストールする（ステップＳ４、Ｓ４．１、Ｓ４．１．１）
【００５９】
以上、画像形成装置２０にデバイスドライバーを設定する際の処理の流れについて説明した。
【００６０】
［補足事項］
その他、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００６１】
１  …  アプリケーションパッケージ
１ａ…  環境判断部
１ｂ…  デバイスドライバー検索部
１ｃ…  デバイスドライバーインストール部
１ｄ…  バイトコード
１ｅ…  ハードウェア環境テーブル
２ａ、２ｂ、２ｃ…  デバイスドライバー
３  …  Ｊａｖａプラットフォーム
４  …  ネーティブアプリケーション
５  …  ＯＳ
６  …  外部デバイス
２０  …  画像形成装置
２１  …  制御部
２２  …  画像読取部
２３  …  画像処理部
２４  …  画像メモリー
２５  …  画像形成部
２７  …  操作部
２７ａ…  表示部
２８  …  ファクシミリ通信部
２９  …  ネットワークインターフェイス部
３０  …  記憶部
【図１】
2016207123.tif 000003
【図２】
2016207123.tif 000004
【図３】
2016207123.tif 000005
【図４】
2016207123.tif 000006