(57)【要約】【課題】画像形成装置が提供する機能の拡張性を高める制御装置、画像形成装置、及び制御プログラムを提供する。【解決手段】画像形成装置２が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けて格納するソフトウェア配布情報テーブル１０３と、画像形成装置２がきどうされると、物理計算機を複数の論理区画に分割し、各論理区画上で、画像形成装置２が起動された目的に関連付けられたオペレーティングシステムを起動する起動部１０１と、ソフトウェア配布情報テーブル１０３において画像形成装置２が起動された目的に関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部１０２と、を備える。【選択図】図４
2011192131.tif 000002
【特許請求の範囲】
【請求項１】
制御対象となる装置が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けて格納する格納部と、
前記制御対象となる装置が起動されると、物理計算機を複数の論理区画に分割し、各論理区画上で、前記制御対象が起動された目的に関連付けられたオペレーティングシステムを起動する起動部と、
前記格納部において前記制御対象が起動された目的に関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部と、
を備える制御装置。
【請求項２】
前記起動部は、前記制御対象が起動された目的に関連付けられたオペレーティングシステムが複数ある場合に、各オペレーティングシステムの起動タイミングを調整することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記ソフトウェアは、前記制御対象となる装置が起動された後の前記制御対象となる装置の動作モードと対応付けられており、
前記格納部において、各オペレーティングシステムに配布すべきソフトウェアは、前記制御対象となる装置で実現される動作モードに合わせて変更されることを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
画像形成装置が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けて格納する格納部と、
前記制御対象となる装置が起動されると、物理計算機を複数の論理区画に分割し、各論理区画上で、前記判別部が判別した目的に関連付けられたオペレーティングシステムを起動する起動部と、
前記格納部において、前記起動部により起動されたオペレーティングシステムに関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部と、
を有する制御装置と、
前記ソフトウェアにより制御される装置と、
を備える画像形成装置。
【請求項５】
制御対象となる装置が起動されると、物理計算機を複数の論理区画に分割し、各論理区画上で、前記制御対象となる装置が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けられたソフトウェア配布情報において前記制御対象が起動された目的に関連付けられたオペレーティングシステムを起動する起動ステップと、
前記ソフトウェア配布情報において、前記起動ステップにより起動されたオペレーティングシステムに関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部ステップと、
を、コンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、画像形成装置、及び制御プログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）の高機能化に伴い、一つの物理計算機上で複数の仮想計算機を実現し、各仮想計算機上でそれぞれＯＳ（Operating System）を動作させる仮想化技術が注目されている。具体的には、ハイパーバイザなどのファームウェア（または、ミドルウェア）によって、一つの物理計算機を複数の論理区画に分割し、各論理区画に対してＣＰＵ、メモリ、及び入出力装置等のハードウェア資源を割当て、各論理区画上でそれぞれＯＳを動作させる。
【０００３】
一方、複合機のような画像形成装置では、スキャナ等の画像読取装置や、プリンタ等の画像出力装置の制御といったリアルタイム性が要求される処理（リアルタイム処理）と、画像形成装置がサーバとして機能する際の通信処理、ユーザインタフェースへのデータ出力といった時間制約がない処理（非リアルタイム処理）とが混在している。ここで、複合機とは、プリント機能、スキャナ機能、ファクシミリ（以後、ＦＡＸと記載）機能およびコピー機能のうちいずれかを複合的に有する画像形成装置のことをいう。
【０００４】
上述の仮想化技術を使えば、リアルタイム処理を行うアプリケーションを動作させるＯＳと、非リアルタイム処理を行うアプリケーションを動作させるＯＳとを分けることができるため、画像形成装置において仮想化技術が提供する環境に対する期待が高まっている。
【０００５】
特許文献１には、仮想化技術において、複数のオペレーティングシステムのうち、起動に要する時間（起動時間）が短い第１オペレーティングシステムにより特定デバイスを制御し、起動時間が長い第２オペレーティングシステムがエミュレートされた特定デバイスを制御するように管理する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−９３４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、画像形成装置が提供する機能の拡張性を高める制御装置、画像形成装置、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載の制御装置は、制御対象となる装置が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けて格納する格納部と、前記制御対象となる装置が起動されると、物理計算機を複数の論理区画に分割し、各論理区画上で、前記制御対象が起動された目的に関連付けられたオペレーティングシステムを起動する起動部と、前記格納部において前記制御対象が起動された目的に関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部と、を備えることを特徴とする。
【０００９】
請求項２に記載の制御装置は、請求項１に記載の制御装置において、前記起動部は、前記制御対象が起動された目的に関連付けられたオペレーティングシステムが複数ある場合に、各オペレーティングシステムの起動タイミングを調整することを特徴とする。
【００１０】
請求項３に記載の制御装置は、請求項１又は２に記載の制御装置において、前記ソフトウェアは、前記制御対象となる装置が起動された後の前記制御対象となる装置の動作モードと対応付けられており、前記格納部において、各オペレーティングシステムに配布すべきソフトウェアは、前記制御対象となる装置で実現される動作モードに合わせて変更されることを特徴とする。
【００１１】
請求項４に記載の画像形成装置は、画像形成装置が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けて格納する格納部と、前記制御対象となる装置が起動されると、物理計算機を複数の論理区画に分割し、各論理区画上で、前記判別部が判別した目的に関連付けられたオペレーティングシステムを起動する起動部と、前記格納部において、前記起動部により起動されたオペレーティングシステムに関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部と、を有する制御装置と、前記ソフトウェアにより制御される装置とを備えることを特徴とする。
【００１２】
請求項５に記載の制御プログラムは、制御対象となる装置が起動されると、物理計算機を複数の論理区画に分割し、各論理区画上で、前記制御対象となる装置が起動される目的別に、起動すべきオペレーティングシステムと、各オペレーティングシステムに配布すべきソフトウェアとを関連付けられたソフトウェア配布情報において前記制御対象が起動された目的に関連付けられたオペレーティングシステムを起動する起動ステップと、前記ソフトウェア配布情報において、前記起動ステップにより起動されたオペレーティングシステムに関連付けられたソフトウェアを、各オペレーティングシステムに配布する配布部ステップと、を、コンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
請求項１に記載の制御装置によれば、画像形成装置が提供する機能の拡張性が高まる。
【００１４】
請求項２に記載の制御装置によれば、各オペレーティングシステムのハードウェアリソースへのアクセスが、起動部により排他制御される。
【００１５】
請求項３に記載の制御装置によれば、起動後の画像形成装置の動作を簡易に変更することができる。
【００１６】
請求項４に記載の画像形成装置によれば、画像形成装置が提供する機能の拡張性が高まる。
【００１７】
請求項５に記載の制御プログラムによれば、画像形成装置が提供する機能の拡張性が高まる。
【図面の簡単な説明】
【００１８】
【図１】本発明が適用される画像形成装置を含むシステム構成の一例を示す図である。
【図２】制御装置のハードウェア構成の一例を示す図である。
【図３】画像形成装置に仮想化技術を適用した場合の、ソフトウェア構成の一例を示す図である。
【図４】ハイパーバイザが実現する機能の一例を示す機能ブロック図である。
【図５】ソフトウェア配布情報テーブルの一例を示す図である。
【図６】起動モードと、起動されるＯＳ及び配布されるソフトウェアの関係を説明するための図である。
【図７】ハイパーバイザが実行する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について、添付図面を参照しつつ説明する。
【００２０】
図１は、本発明が適用される画像形成装置を含む画像形成システムのシステム構成の一例を示す図である。画像形成システムは、ユーザ端末１と、画像形成装置２とを備える。
【００２１】
ユーザ端末１は、例えばＰＣ（パーソナルコンピュータ）であり、ユーザインタフェースとして機能する。ユーザは、ユーザ端末１を介して、画像形成装置２に画像データを送信したり、画像処理を要求したりできる。また、ユーザは、画像形成装置２で読み取った原稿情報を、ユーザ端末１が備える表示装置に表示させることもできる。
【００２２】
画像形成装置２は、入出力部３、制御装置４、操作表示部５、画像読取装置（ＩＩＴ：Image Input Terminal）６、画像出力装置（ＩＯＴ：Image Output Terminal）７、及びＦＡＸ装置８を備える。なお、本実施例では画像形成装置２が複合機であるとして説明を行うが、画像形成装置２は、複写機やプリンタであってもよい。
【００２３】
入出力部３は、ユーザ端末１が送信した画像データを受付ける。入出力部３は、ＬＡＮ（Local Area Network）、ＷＡＮ(Wide Area Network)等のネットワークに接続された情報処理装置、スキャナ等の画像入力装置等から画像データを受付けることもできる。また、入出力部３は、ユーザ端末１を介して、画像形成装置２に対するユーザの指示情報を受付ける。入出力部３は、受付けた画像データ及び指示情報を、制御装置４へ出力する。
【００２４】
制御装置４は、入出力部３、操作表示部５、画像読取装置６、画像出力装置７０、及びＦＡＸ装置８との間で、信号及びデータの送受信を行い、画像形成装置（制御対象の装置）２の全体の動作を制御する。具体的には、制御装置４は、入出力部３から画像データを受付ける。制御装置４は、受付けた画像データを、画像出力装置７が出力できる形式に変換すると、画像出力装置７を制御して、画像形成装置２に設置された用紙（記録媒体）に、受付けた画像データに基づいた画像を形成させる。また、制御装置４は、画像読取装置６が読み取った原稿の画像データを、入出力部３を介してユーザ端末１に表示させる。また、制御装置４は、ＦＡＸ装置８を制御し、ユーザ端末１から受付けた画像データや、画像読取装置６が読み取った原稿の画像データを、ＦＡＸ送信させる。
【００２５】
操作表示部５は、ユーザインタフェースとして機能する。操作表示部５は、ユーザから、例えば、画像形成に係る操作入力を受付ける。操作表示部５は、入力された操作に係る情報を制御装置４に出力する。また、操作表示部５は、制御装置４の制御に基づいて、例えば、画像形成に係る情報や、画像処理の結果等を表示する。
【００２６】
画像読取装置６は、例えば、スキャナ装置であり、制御装置４の制御に基づいて画像読取装置６に配置された原稿を読み取り、読み取った原稿の画像データを制御装置４に出力する。
【００２７】
画像出力装置７は、出力対象の画像データを制御装置４から受付け、制御装置４の制御に基づいて、用紙に画像を出力する。
【００２８】
ＦＡＸ装置８は、送信対象の画像データを制御装置４から受付け、制御装置４の制御に基づいてＦＡＸを送信する。
【００２９】
次に、制御装置４のハードウェア構成の一例について説明する。図２は、制御装置４のハードウェア構成の一例を示す図である。制御装置４は、入出力部４１、ＲＯＭ（Read Only Memory）４２、ＣＰＵ４３、ＲＡＭ（Random Access Memory）４４、及びハードディスク（ＨＤＤ：Hard Disk Drive）４５を備える。
【００３０】
入出力部４１は、入出力部３、操作表示部５、画像読取装置６、画像出力装置７、及びＦＡＸ装置８との間でデータおよび信号の入出力を行なう。ＲＯＭ４２は、ハイパーバイザの機能を実現するためのプログラム（詳細は後述する）等を格納する。ＣＰＵ４３は、ＲＯＭ４２に格納されたプログラムを読み込んで実行する。ＲＡＭ４４は、プログラムを実行する際に使用される一時的なデータを保存する。ＨＤＤ４５は、画像データを含む各種データを格納する。
【００３１】
次に、ＲＯＭ４２に格納されたプログラムのＣＰＵ４３による演算によって実現される、制御装置４のソフトウェアシステムの構成について説明する。まず、図３を用いて、画像形成装置２に仮想化技術を適用した場合のソフトウェア構成の一例について説明する。
【００３２】
図３に示すように、制御装置４のソフトウェアシステムは、ハイパーバイザ１００、第１の仮想計算機２００、第２の仮想計算機３００、及び第３の仮想計算機４００を備える。
【００３３】
ハイパーバイザ１００は、上述した制御装置４のハードウェア上にＯＳ１が動作する第１の仮想計算機２００、ＯＳ２が動作する第２の仮想計算機３００、及びＯＳ３が動作する第３の仮想計算機４００を生成する。ハイパーバイザ１００は、制御装置４のハードウェアリソースの各ＯＳへの割り当てを制御する。また、各ＯＳには、画像形成装置２に備えられた各種デバイス（例えば、画像読取装置６、画像出力装置７等）、及び画像形成装置２と接続された外部装置を制御するための制御ソフトウェア（デバイスドライバ：以後、ドライバとも記載する）が実装されている。
【００３４】
第１の仮想計算機２００では、ＯＳ１が動作する。本説明では、ＯＳ１は、ＶｘＷｏｒｋｓ（登録商標）、ＱＮＸ（登録商標）等、リアルタイム処理の実行に適したリアルタイムＯＳであるものとする。ＯＳ１には、ファイルシステム２０１、プロトコルスタック２０２が実装されている。また、ＯＳ１には、後述するＯＳ２に実装されたＩＤＥドライバ３０２を介してＨＤＤ４５へのデータの書き込み・読み出しを行うための仮想ＩＤＥドライバ２０３、ＯＳ３に実装されたＮＥＴドライバ４０４を介して外部装置との通信を制御する仮想Ｎｅｔドライバ２０４が実装されている。さらに、ＯＳ１には、ＩＯＴドライバ２０５、ＩＩＴドライバ２０６、ＦＡＸドライバ２０７、及びＬＣＤドライバ２０８が実装されている。
【００３５】
ＯＳ１上では、印刷処理部２０９、コピー処理部２１０、ＦＡＸ処理部２１１が動作する。また、ＯＳ１上では、ジョブの登録、削除、ジョブの実行等を各処理部に対して指示するジョブ制御部２１２も動作する。なお、本説明では、ユーザから要求された処理をジョブという。なお、印刷処理部２０９、コピー処理部２１０、ＦＡＸ処理部２１１、及びジョブ制御部２１２は、ＯＳ１上で動作するアプリケーションプログラムのＣＰＵ４３による演算によって実現される。
【００３６】
ファイルシステム２０１は、ＨＤＤ４５に画像データ等のファイルを書き込む、又は、ＨＤＤ４５からファイルを読み出すための仕組みである。ＯＳ１上で動作する印刷処理部２０９、コピー処理部２１０、ＦＡＸ処理部２１１、及びジョブ制御部２１２は、このファイルシステムを利用できる。例えば、印刷処理部２０９は、ファイルシステム２０１を利用して、ＨＤＤ４５から画像データを取得することができる。また、例えば、ＦＡＸ処理部２１１は、ファイルシステム２０１を利用して、ＦＡＸ８で受信した画像データをＨＤＤ４５に格納できる。仮想ＩＤＥドライバ２０３は、実際にＨＤＤ４５へのデータの書き込み・読み出しを制御できる実ドライバ（ＩＤＥドライバ３０２）を操作するための仮想ドライバである。ファイルシステム２０１は、仮想ＩＤＥドライバ２０３を操作することで、ＯＳ２のＩＤＥドライバ３０２を操作し、ＨＤＤ４５へのファイルの書き込み、及び、ファイルの読み出しを行う。
【００３７】
プロトコルスタック２０２は、ジョブ制御部２１２、印刷処理部２０９等の各アプリケーションに対してＩＦ（Interface）を公開する。各アプリケーションは、このＩＦを操作して、各種プロトコルで外部の情報処理装置と通信できる。例えば、印刷処理部２０９は、外部から伝送される画像データを受信するために、このＩＦを利用する。プロトコルスタック２０２は、仮想Ｎｅｔドライバ２０４を操作することで、ＮＥＴドライバ４０４を操作し、外部の情報処理装置と通信を行う。なお、ＮＥＴドライバ４０４は、入出力部３に備えられた、外部の情報処理装置との通信を制御するネットワークコントローラ（Ｎｅｔ）９を制御する。
【００３８】
ＩＯＴドライバ２０５は、画像出力装置（ＩＯＴ）７を制御する。ＩＩＴドライバ２０６は、画像読取装置（ＩＩＴ）６を制御する。ＦＡＸドライバ２０７は、ＦＡＸ装置（ＦＡＸ）８を制御する。ＬＣＤドライバ２０８は、ユーザ端末１、操作表示部５を含むユーザインタフェース（ＵＩ：User Interface）１，５を制御する。
【００３９】
次に、ＯＳ１上で動作する各アプリケーションについて説明する。印刷処理部２０９は、ＩＯＴ７を制御するＩＯＴドライバ２０５を操作することで、各種画像データを紙面上に印刷する。ここで、印刷される画像データは、ジョブ制御部２１２で指定される
【００４０】
コピー処理部２１０は、ジョブ制御部２１２からの指示に従って、ＩＩＴ６を制御するＩＩＴドライバ２０６を操作することによって、ＩＩＴ６にセットされた原稿を読み取り、画像データを生成する。また、コピー処理部２１０は、生成した画像データを、ファイルシステム２０１を利用してＨＤＤ４５に書き込む。また、コピー処理部２１０は、ＩＯＴドライバ２０５を操作することで、取得した画像データの印刷を実行する。
【００４１】
ＦＡＸ処理部２１１は、ジョブ制御部２１２等からの指示、ＦＡＸ８を制御するＦＡＸドライバ２０７から発行される着呼イベントに従って動作する。例えば、ジョブ制御部２１２からファックス送信が指示されると、ＩＩＴ６を制御するＩＩＴドライバ２０６を操作して、ＩＩＴ６にセットされた原稿を読み取る。次に、ＦＡＸ処理部２１１は、ＦＡＸ８を制御するＦＡＸドライバ２０７を操作して、読み取った画像データを指定された番号にＦＡＸ送信する。また、ＦＡＸデバイスドライバ２０７から着呼イベントが発行された場合には、ＦＡＸ処理部２１１は、ＦＡＸ８から受信した画像データをファイルシステム２０１を利用して、ＨＤＤ４５へ書き込む。
【００４２】
第２の仮想計算機３００では、ＯＳ２が動作する。本説明では、ＯＳ２は、Ｌｉｎｕｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）等の汎用ＯＳ（いわゆる非リアルタイムＯＳ）とする。ＯＳ２には、画像データ等のファイルのＨＤＤ４５への読み出し・書き込みを制御するためのファイルシステム３０１及びＩＤＥドライバ３０２が実装されている。また、ＯＳ２上では、ジョブの登録、削除、ジョブの実行等を行うジョブ制御部３０３が動作する。ジョブ制御部３０３は、ＯＳ２上で動作するアプリケーションプログラムのＣＰＵ４３による演算によって実現される。
【００４３】
ファイルシステム３０１は、ＨＤＤ４５へのファイルの書き込み・読み出しを制御するＩＤＥドライバ３０２を操作し、ＨＤＤ４５に対しファイルの書き込み・読み出しを行う。ジョブ制御部３０３は、ファイルシステム３０１を利用して、ＨＤＤ４５からファイルの読み出し・書き込みを行う。
【００４４】
第３の仮想計算機４００では、ＯＳ３が動作する。本説明では、ＯＳ３は、ＯＳ２と同様、汎用ＯＳであるとする。ＯＳ３には、ファイルシステム４０１、仮想ＩＤＥドライバ４０２、プロトコルスタック４０３、ＮＥＴドライバ４０４、及び仮想ＬＣＤドライバ４０５が実装されている。また、ＯＳ３上で、ＵＩ制御部４０６、画像処理部４０７、及びジョブ制御部４０８が動作する。ＵＩ制御部４０６、画像処理部４０７、及びジョブ制御部４０８は、ＯＳ３上で動作するアプリケーションプログラムのＣＰＵ４３による演算によって実現される。
【００４５】
ファイルシステム４０１は、ＨＤＤ４５に画像データ等のファイルを書き込む、又は、ＨＤＤ４５からファイルを読み出すための仕組みである。ＯＳ３上で動作する画像処理部４０７、及びジョブ制御部４０８は、このファイルシステムを利用できる。例えば、画像処理部４０７は、ファイルシステム４０１を利用して、ＨＤＤ４５から画像データを取得することができる。そして、画像処理部４０７は、ファイルシステム４０１を利用して、画像処理が終了した画像データをＨＤＤ４５に書き込むことができる。仮想ＩＤＥドライバ４０２は、ＯＳ３上から実際にＨＤＤ４５のデータの書き込み・読み出しを実施するためのソフトウェアであり、実ドライバ（ＩＤＥドライバ３０２）を経由してＨＤＤ４５へのファイルの書き込み、及び、ファイルの読み出しを行う。なお、ＯＳ１にも仮想ＩＤＥドライバ２０３が実装されているが、ＯＳ１とＯＳ３とはＯＳの種類が異なるため、仮想ＩＤＥドライバ２０３と、仮想ＩＤＥドライバ４０２とはソフトウェアが異なる。
【００４６】
プロトコルスタック４０３は、画像処理部４０７、及びジョブ制御部４０８の各アプリケーションに対してＩＦを公開する。各アプリケーションは、このＩＦを操作して、各種プロトコルで外部の情報処理装置と通信できる。例えば、画像処理部４０７は、外部から伝送される画像データを受信するために、このＩＦを利用する。また、画像処理部４０７は、このＩＦを利用して、画像処理が終了した画像データを外部の情報処理装置に送信する。プロトコルスタック４０３は、Ｎｅｔ９を制御するＮＥＴドライバ４０４を操作することで、外部の情報処理装置と通信を行う。
【００４７】
ＵＩ制御部４０６は、ＵＩ１，５に対する描画処理等を制御する。ＵＩ制御部４０６は、仮想ＬＣＤドライバ４０５を操作することによって、ＬＣＤドライバ２０８を操作し、ＵＩ１，５に画像データを表示させる。ここで、仮想ＬＣＤドライバ４０５は、実際にＵＩ１，５を制御できる実ドライバ（ＬＣＤドライバ２０８）を操作するための仮想ドライバである。また、ＵＩ制御部４０６は、ユーザが操作表示部５に対して行った操作で入力されるコマンドを受信して、そのユーザの操作に従った画面の更新や、またジョブ制御部４０８に対してユーザが所望する動作の実行を指示する。
【００４８】
ジョブ制御部４０８は、プロトコルスタック４０３に対し、外部の情報処理装置との通信を命令する。また、ジョブ制御部４０８は、ファイルシステム４０１に対して、ＨＤＤ４５へのデータの書き込み・読み出しを指示する。
【００４９】
図３において、ＯＳ１〜ＯＳ３に実装された各種ドライバは、ＯＳ１〜ＯＳ３の起動後、ハイパーバイザ１００によって配布される。すなわち、ＯＳ１〜ＯＳ３が起動された時点では、ＯＳ１〜ＯＳ３にはデバイスドライバが実装されていない。
【００５０】
次に、ハイパーバイザ１００による、各種ドライバの配布処理の概要について、図４を用いて説明する。本説明では、説明を簡素化するために、ハイパーバイザ１００が、ＨＤＤ４５を制御するデバイスドライバを配布する場合について説明する。図４は、ハイパーバイザ１００が実現する機能の一例を示す機能ブロック図である。なお、図中、各ＯＳ上で動作する各種アプリケーション（例えば、ＯＳ３であれば、ＵＩ制御部４０６、画像処理部４０７、及びジョブ制御部４０８）については、まとめて「アプリケーション」として表示している。ハイパーバイザ１００は、起動部１０１、配布部１０２、及びソフトウェア配布情報テーブル（格納部）１０３を備える。
【００５１】
まず、ソフトウェア配布情報テーブル１０３について説明する。ソフトウェア配布情報テーブル１０３は、画像形成装置２が起動される場合に、その起動目的を表す起動モードに対し、起動すべきＯＳ、及び、起動したＯＳに対して配布する制御ソフトウェアをデバイスごとに関連付ける。図５は、ソフトウェア配布情報テーブルの一例を示している。本説明では、ＨＤＤ４５のドライバを配布する処理について説明するため、図５には、ＨＤＤ４５のドライバのみが配布すべき制御ソフトウェアとして記載されている。しかし、実際には、ＵＩ１，５、ＩＩＴ６、ＩＯＴ７、ＦＡＸ８、及びＮｅｔ９などのデバイスごとに、配布すべき制御ソフトウェアが、ソフトウェア配布情報テーブル１０３に格納される。
【００５２】
図５において、「起動モード」とは、画像形成装置２が起動された際の目的を表すものである。図５では、起動モードの項目には、画像形成装置２としての使用を目的とした通常起動、特定のデバイス（例えば、ＨＤＤ４５）を制御するプログラムの更新を目的としたファームウェア更新モード（ＦＷ(FirmWare)更新）、特定のデバイスの診断を目的とした診断モードが格納されている。
【００５３】
「起動対象」の項目には、画像形成装置２が起動された際の起動モードに対し、ハイパーバイザ１００が起動すべきＯＳが丸印で示されている。例えば、起動モードが通常起動モードである場合には、ＯＳ１〜ＯＳ３の全てに丸印が付されているので、ハイパーバイザ１００は、ＯＳ１〜ＯＳ３の全てのＯＳを起動する。また、起動モードがＦＷ更新モードである場合には、ＯＳ１及びＯＳ３に丸印が付されているので、ハイパーバイザ１００は、ＯＳ１及びＯＳ３を起動する。また、起動モードが診断モードである場合には、ＯＳ１にのみ丸印が付されているので、ハイパーバイザ１００は、ＯＳ３のみを起動する。
【００５４】
「ＨＤＤ制御ソフトウェア」の項目には、ハイパーバイザ１００が、各ＯＳの起動後に配布する、ＨＤＤ４５を制御するソフトウェアの情報が格納される。例えば、ハイパーバイザ１００は、起動モードが通常起動モードである場合には、ＨＤＤ４５のドライバとして、ＯＳ１には仮想ドライバ（Ｒ）、ＯＳ２には実ドライバ（Ｎ）、ＯＳ３には仮想ドライバ（Ｎ）を配布する。また、起動モードがＦＷ更新モードである場合には、ハイパーバイザ１００は、ＯＳ１に実ドライバ（Ｒ）、ＯＳ３に実ドライバ（Ｎ）を配布する。起動モードが診断モードである場合、ハイパーバイザ１００は、ＯＳ１に実ドライバ（Ｎ）を配布する。なお、（Ｒ）は、リアルタイムＯＳであるＯＳ１で動作するドライバであることを示し、（Ｎ）は、非リアルタイムＯＳであるＯＳ２又はＯＳ３で動作するドライバであることを示す。
【００５５】
図４に戻り説明を続ける。起動部１０１は、画像形成装置２の起動モードを取得し、ソフトウェア配布情報テーブル１０３から起動対象のＯＳを取得する。起動部１０１は、起動対象のＯＳを起動する。画像形成装置２の起動モードが通常起動であったとすると、起動部１０１は、ＯＳ１〜ＯＳ３の全てを起動する（図４（Ａ））。
【００５６】
配布部１０２は、起動されたＯＳに対して、ソフトウェア配布情報テーブル１０３で指定されたドライバを配布する。起動モードが通常起動であった場合には、配布部１０２は、ＯＳ１に仮想ドライバ（Ｒ）、ＯＳ２に実ドライバ（Ｎ）、ＯＳ３に仮想ドライバ（Ｎ）を配布する（図４（Ｂ））。なお、図４（Ｂ）の仮想ドライバ（Ｒ）が図３の仮想ＩＤＥドライバ２０３に相当し、実ドライバ（Ｎ）がＩＤＥドライバ３０２に相当し、仮想ドライバ（Ｎ）が仮想ＩＤＥドライバ４０２に相当する。ドライバが配布された各ＯＳは、配布されたドライバをロードし、ＯＳに実装する。
【００５７】
ＨＤＤ４５は、異なるＯＳ間で共有されるハードウェアであり、各種データは、ＨＤＤ４５にファイルという形で格納される。なお、各種データとは、印刷対象の画像データであるプリントデータ、ＩＩＴ６によって読み取った原稿画像であるスキャンデータ、ファームウェア更新プログラムを含む。これらのファイルに、異なるＯＳ上で動作するアプリケーションからアクセスする場合、一般的には、排他制御が必要である。そのため、通常起動モードでは、図４に示すように、ＨＤＤ４５を直接制御する実ドライバ（ＩＤＥドライバ３０２）と、実ドライバを介してＨＤＤ４５のファイルにアクセスするための仮想ドライバ（仮想ＩＤＥドライバ２０３、及び４０２）を使用し、実ドライバであるＩＤＥドライバ３０２が排他制御を実行するようになっている。
【００５８】
次に、図６を用いて、画像形成装置２の起動モードが、ＦＷ更新モード、及び、診断モードである場合について説明する。
【００５９】
まず、起動モードがＦＷ更新モードである場合について説明する。ここで、ＦＷ更新モードでは、ネットワーク、あるいは、ＵＳＢ（Universal Serial Bus）メモリ等からファームウェア更新プログラムを取得し、ＯＳ１のアプリケーションがＨＤＤ４５のファームウェアを更新するものとする。
【００６０】
図５のソフトウェア配布情報テーブルにおいて、ＦＷ更新モードにおける起動対象のＯＳは、ＯＳ１及びＯＳ３となっている。また、各ＯＳに配布するドライバとして、ＯＳ１において実際にＨＤＤ４５を制御する実ドライバ（Ｒ）と、ＯＳ３において実際にＨＤＤ４５を制御する実ドライバ（Ｎ）が設定されている。そこで、ハイパーバイザ１００は、図６（Ａ）に示すように、ＯＳ１及びＯＳ３を起動し、ＯＳ１に実ドライバであるＩＤＥドライバ２０３´、ＯＳ３に実ドライバであるＩＤＥドライバ４０２´を配布する。
【００６１】
各ＯＳにドライバが配布されると、ＯＳ３上のアプリケーションが、ネットワーク（ＵＳＢでもよい）から、ファームウェア更新プログラムを受信し、ＩＤＥドライバ４０２´を操作してＨＤＤ４５の所定領域に格納する。ＯＳ３はこれ以降ＨＤＤ４５にアクセスする必要がないので、ＯＳ１に対してその旨を通知する。通知を受けたＯＳ１は、ＯＳ１上のアプリケーションがＩＤＥドライバ２０３´を操作してＨＤＤ４５に格納されたファームウェア更新プログラムを取得し、更新作業を実施する。上述の例では、ＨＤＤ４５のファームウェアの更新において、ＯＳ２を起動する必要がなく、最低限の構成で必要な機能を提供することができる。
【００６２】
次に、画像形成装置２が診断モードで起動された場合について説明する。ＨＤＤ４５の診断は、第１の仮想計算機２００〜第３の仮想計算機４００のいずれか１つの仮想計算機により実行できる。図４において、診断モードでは、起動対象のＯＳは、ＯＳ１のみとなっている。また、ＯＳ１に配布するドライバとしては、実ドライバ（Ｒ）が設定されている。そこで、ハイパーバイザ１００は、ＯＳ１のみを起動し、ＯＳ１に実ドライバ（Ｒ）であるＩＤＥドライバ２０３´を配布する。ＯＳ１は、ＩＤＥドライバ２０３´を介して、直接ＨＤＤ４５を制御し、ＨＤＤ４５の診断を実行できる。
【００６３】
次に、ハイパーバイザ１００が実行する制御ソフトウェアの配布処理について説明する。図７は、ハイパーバイザ１００が実行するソフトウェアの配布処理の一例を示すフローチャートである。画像形成装置２が起動されると、ハイパーバイザ１００が起動され、本処理が実行される。
【００６４】
起動部１０１は、画像形成装置２の起動モードを確認する（ステップＳ１１）。画像形成装置２が起動モードと対応付けられた操作ボタンを備えている場合、起動部１０１は、例えば、画像形成装置２の起動時にどのボタンが操作されたかを確認することで、起動モードを確認することができる。あるいは、画像形成装置２の電源が切られる際に次回起動時に動作する起動モードが指定された場合、起動部１０１は、例えばＨＤＤ４５や不揮発性のメモリに記憶された起動モードを読み込んで、起動モードを確認してもよい。
【００６５】
次に、起動部１０１及び配布部１０２は、ソフトウェア配布情報テーブル１０３を参照し、確認した起動モードにおいて起動すべきＯＳ及び、起動したＯＳに配布するソフトウェアの情報を取得する（ステップＳ１２）。
【００６６】
次に、起動部１０１は、ステップＳ１１で取得した情報に基づいて、各ＯＳを起動する（ステップＳ１３）。起動部１０１がＯＳを起動すると、配布部１０２は、各ＯＳに対しソフトウェア配布情報テーブルで関連付けられたソフトウェアを配布する（ステップＳ１４）。ソフトウェアの配布が終わると、配布部１０２は、ソフトウェアの配布処理を終了する。
【００６７】
通常、デバイスドライバはＯＳに組み込まれており、そのデバイスドライバがデバイスに対して行う制御は予め定められている。そのため、ＨＤＤ４５に直接アクセスするデバイスドライバ(実ドライバ)と、仮想ドライバを経由してアクセスするデバイスドライバ(仮想ドライバ)は本質的に異なる。従って、実ドライバを持たないＯＳで、ＨＤＤ４５の診断を実現したい場合には、診断用に実デバイスドライバを組み込んだＯＳを別途準備しておく必要がある。しかしながら、上述の実施例によれば、ソフトウェア配布情報テーブル１０３に基づいて、起動部１０１が、画像形成装置２の起動モードに関連付けられたオペレーティングシステムを起動し、配布部１０２が、起動モードと関連付けられたソフトウェアを各ＯＳに配布する。つまり、画像形成装置２を起動する目的に合わせて、必要最小限のＯＳを起動し、かつ実現したい機能にあわせたドライバを配布するため、機能毎にＯＳを準備する必要がない。
【００６８】
また、ＯＳに予めデバイスドライバが組み込まれている場合、ＵＩ１，５、ＩＩＴ６、ＩＯＴ７、ＦＡＸ８、ＨＤＤ４５、又はＮｅｔ９の構成が変わると、各デバイスを制御するデバイスドライバも変更する必要があるため、新たにＯＳを作り直さなければならない。あるいは、画像形成装置２が各デバイスを使用して新たな機能を提供する場合にも、各デバイスを制御するデバイスドライバを変更する必要があるため、ＯＳを作り直す必要がある。しかしながら、本実施例によれば、起動時のＯＳには、デバイスドライバが組み込まれておらず、新たな機能の実現に必要なデバイスドライバを配布部１０２が配布する。従って、ＯＳの再構築を行う必要がなく、また、画像形成装置２が提供する機能の拡張性が高まる。
【００６９】
また、例えば、ＯＳ１でＨＤＤ４５を制御する可能性があり、ＯＳ２でもＨＤＤ４５を制御する可能性がある場合には、各ＯＳにＨＤＤ４５へのファイルの書き込み・読み込みを制御するデバイスドライバを予め組み込んでおく必要がある。しかしながら、本実施例によれば、ＨＤＤ４５を制御するためのデバイスドライバを各ＯＳに予め組み込んでおく必要がないので、各ＯＳのプログラムサイズが削減される。
【００７０】
なお、上述の実施例において、起動部１０１は、ＦＷ更新モードでＯＳ３とＯＳ１を同時に起動していた。しかし、起動部１０１は、ソフトウェア配布情報テーブル１０３において指定されたＯＳを同時に起動しなくてもよい。例えば、ＯＳ３がハイパーバイザ１００にファームウェア更新プログラムのダウンロードが終了したことを通知し、その通知を受けて、起動部１０１がＯＳ１を起動するようにしてもよい。これにより、各ＯＳからのハードウェアリソースへのアクセスが、起動部１０１により排他制御される。
【００７１】
ソフトウェア配布情報テーブル１０３の内容は、書き換え可能である。例えば、上述の説明では、ＯＳ２がＨＤＤ４５を実際に制御できる実ドライバを備え、ＯＳ１及びＯＳ３は仮想ドライバを備えていた。ここで、例えば、第２の仮想計算機３００で実現していた機能を、第３の仮想計算機４００で実現したい場合には、ソフトウェア配布情報テーブル１０３の内容を書き換えればよい。すなわち、ＯＳ２に仮想ドライバを配布し、ＯＳ３に実ドライバを配布するようにソフトエウェア配布情報テーブルを書き換えることによって、ＯＳの再構築を行うことなく、容易に各仮想計算機が提供する機能を切替えることができる。
【００７２】
また、ソフトウェア配布情報テーブル１０３において配布するデバイスドライバの情報を変更することで、簡易に画像形成装置２の動作を変更することができる。例えば、画像形成装置２が待機時の消費電力を抑える節電モード（動作モード）を複数有しているとする。各節電モードでは、制御対象となるハードウェア（デバイス）が異なるため、デバイスドライバが異なる。例えば、節電モード１はＣＰＵの動作まで停止させるモードであり、節電モード２は、節電モード１よりも消費電力は高くなるが再起動時の応答時間を短縮するためＣＰＵの動作は停止させないモードであるとする。この場合、節電モード１を実現したい場合には節電モード１に対応するデバイスドライバを、節電モード２を実現したい場合には節電モード２に対応するデバイスドライバをソフトウェア配布情報テーブル１０３に登録すればよい。これにより、簡単に、画像形成装置２の待機時の動作が変更される。また、各節電モードを実現するために、ＯＳを複数準備する必要もない。
【００７３】
また、上述の実施例では、ハイパーバイザ１００は、第１の仮想計算機２００〜第３の仮想計算機４００を生成していたが、ハイパーバイザ１００により生成される仮想計算機の数は、これに限定されるものではない。例えば、第４の仮想計算機を用いて、画像形成装置２に新たな機能を実装したい場合に、ソフトウェア配布情報テーブル１０３に第４の仮想計算機の情報を追加することで、ハイパーバイザ１００は、第４の仮想計算機を生成できる。ソフトウェア配布情報テーブル１０３のへの第４の仮想計算機の追加は、ユーザがテーブルに直接行ってもよいし、例えば、新たな機能に対して発行されるライセンスキーの入力により追加されるようにしてもよい。
【００７４】
上述した実施の形態は、本発明の実施形態の一部である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００７５】
なお、上記の制御装置及び画像処理装置が有する機能は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えるコンピュータによって実現することができる。その場合、制御装置及び画像処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００７６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【００７８】
１…ユーザ端末
２…画像形成装置
４…制御装置
５…操作表示部
６…画像読取装置（ＩＩＴ）
７…画像出力装置（ＩＯＴ）
８…ＦＡＸ装置
１００…ハイパーバイザ
１０１…起動部
１０２…配布部
１０３…ソフトウェア配布情報テーブル
２００…第１の仮想計算機
３００…第２の仮想計算機
４００…第３の仮想計算機
【図１】
2011192131.tif 000003
【図２】
2011192131.tif 000004
【図３】
2011192131.tif 000005
【図４】
2011192131.tif 000006
【図５】
2011192131.tif 000007
【図６】
2011192131.tif 000008
【図７】
2011192131.tif 000009