(57)【要約】【課題】  ダイナミックライブラリをランタイムでバージョンアップすることができる情報処理装置を提供する。【解決手段】  情報処理装置は、オブジェクトを外部装置から受信して、オブジェクトを格納手段の所定領域に保存し、記憶手段に保存されたフラグが有効だった場合、格納手段に格納されたオブジェクトを使って起動する。【選択図】  図３
2009265980.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトやライブラリを受信するための受信手段と、
オブジェクトやライブラリを格納するための複数の区画に分割可能な格納手段と、
フラグを保存するための記憶手段とを有する情報処理装置であって、
前記受信手段は前記オブジェクトを外部装置から受信して、該オブジェクトを前記格納手段の所定領域に保存し、
前記情報処理装置は、前記記憶手段に保存された前記フラグが有効だった場合、前記格納手段に格納された前記オブジェクトを使って起動することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、前記記憶手段に保存された前記フラグが有効だった場合は、再起動前に使われていたオブジェクトやライブラリが保存されていた領域をクリアし、前記受信手段により受信されたオブジェクトを前記クリアした領域に展開するよう前記記憶手段を制御する制御手段を有することを特徴とする情報処理装置。
【請求項３】
オブジェクトやライブラリを受信するための受信手段と、
オブジェクトやライブラリを格納するための複数の区画に分割可能な格納手段と、
各パーティションのラベルを保存するための記憶手段とを有する情報処理装置であって、
前記受信手段は前記オブジェクトを外部装置から受信して、該オブジェクトを前記格納手段の所定領域に保存し、
前記情報処理装置は、前記記憶手段に保存されたラベルが起動する区画を示す場合に、該ラベルが付いた区画に保存されたオブジェクトを使って起動することを特徴とする情報処理装置。
【請求項４】
オブジェクトやライブラリを受信するための受信手段と、
オブジェクトやライブラリを格納するための複数の区画に分割可能な格納手段とを有する情報処理装置であって、
前記受信手段は前記オブジェクトを外部装置から受信して、該オブジェクトを前記格納手段の所定領域に保存し、
前記情報処理装置は、前記所定領域に前記オブジェクトが保存されている場合は、該オブジェクトを使って起動することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
近年画像形成装置は多機能を実現するように進化しており、ネットワークに通じコンピュータを代表とする外部機器と連携し、顧客に対してTCOの削減等、コスト削減、事務処理速度の向上など様々な効果をもたらしている。コンピュータにおける外部機器（入出力装置や、蓄積装置）は、USB  I/Fを代表とする汎用I/Fを介して様々な機器が接続されるようになり、それと同様な外部機器を画像形成装置で使用したいという要望も多数上がるようになっている。
【０００３】
このような要望を実現するためには、コンピュータで使用しているオペレーティングシステムと呼ばれる基本ソフトを画像形成装置上で使用することにより、コンピュータで使用可能な外部機器を、画像形成装置で使用することが可能になる。
【０００４】
一般にオペレーティングシステムを、画像形成装置をはじめとする民生機器に搭載する技術が定着してきている。
【０００５】
前記オペレーティングシステムは、複数の実行ファイルから形成されており、カーネル（基本処理部）、ライブラリ（共通関数）等から形成されている。前記システムでは、アプリケーション（オペレーティングシステム上で、起動する任意のソフトウエア）が実行時に必要なライブラリをロードし使えるような仕組みを提供しており、アプリケーションの移植性や、開発の容易性を高め、共通ライブラリ化することによりシステム自体のサイズを小さくする仕組みを提供している。
【０００６】
上記の例として、下記特許文献１と特許文献２をあげることが出来る。
【特許文献１】特開２０００−３２６５９３号公報
【特許文献２】特開２００６−３２３８２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
オペレーティングシステムは、常に外界と接する場合に、コンピュータウィルス等の機器にさらされており、必要に応じてバージョンアップをすることにより対処している。前記システムを画像形成装置も同様で、必要に応じてバージョンアップすることが必要になる。システムでは、通常バージョンアップする場合は、システムを管理する専門的な知識を有した管理者が存在し、バージョンアップする場合は、シングルユーザーモードと呼ばれる特殊な状態にして、バージョンアップする。しかしながら画像形成装置の管理者は、一般にサービスマンと呼ばれる機械装置をメンテナンスすることを主な目的とした専門的な知識をもたない人であり、サービスマンがバージョンアップしなければならないという問題がある。
【０００８】
さらに、その中で、アプリケーションやカーネルがランダムに呼び出すライブラリを更新する仕組みを提供し、専門的な知識をもたない人でもバージョンアップする仕組みを提供しなければならない。
【０００９】
ところで、ライブラリは、実行オブジェクトとのリンク方法により、スタティックライブラリ、ダイナミックライブラリ、などの形態がある。スタティックライブラリは、オブジェクトのリンク時にライブラリの実体を結合し、リンク時にシンボル（関数名や大域定義）とアドレスの問題を解決する。ダイナミックライブラリは、オブジェクトのリンク時にライブラリ内のシンボル情報やアドレス情報のみを組み込み、オブジェクトがメモリに展開した時か、実際に実行された時にシンボルやアドレスを解決する。
【００１０】
スタティックライブラリの場合は、オブジェクトとライブラリが一体に配布されるため、実行するときにメモリ展開された後、上書きによる更新が可能になる。しかし、ダイナミックライブラリの場合は、実行される時にライブラリがメモリに展開されるため、どのオブジェクトからどのタイミングでライブラリが呼び出されるか分からず、すべてのオブジェクトを動かない状態にしてからでないとライブラリの更新ができない。
【００１１】
そのため、専門的な知識を持たない人がダイナミックライブラリを更新する場合、どのタイミングでライブラリを更新して良いか分からないためライブラリの更新が難しい。また、専門的な知識を持った人がダイナミックライブラリを更新した場合でも、更新に時間がかかり、画像形成装置のダウンタイムが伸びてしまう。
【００１２】
オブジェクトやライブラリを更新するための先行技術には、以下のものがある。
【００１３】
特許文献１は、ダウンロードした新オブジェクトをＲＡＭに保存して、新オブジェクトを使って印字動作を行い、印字が正常に動作することを確認した後に、新オブジェクトを旧オブジェクトが書き込まれている不揮発メモリに上書きする、バージョンアップ方法を提案している。先行技術はオブジェクトをメモリに展開した後は何時でも旧オブジェクトを上書きできるが、本提案は通常動作中に上書きできないオブジェクト（ダイナミックライブラリ）の更新方法で、先行技術の方法では更新できない。
【００１４】
特許文献２は、実行中のオブジェクトが使っているライブラリを更新するときに、ライブラリのメモリ上に展開されているアドレスを一括変更する方法を提案している。先行技術の問題点と本提案の問題点に類似はあるが、先行技術が提案しているオブジェクトが使っているライブラリのメモリ上に展開されているアドレスを一括変換すると、実行時にどのような動作になるかわからず、またプログラムは逐次実行であり実際の更新は一括にできないため、先行技術の方法は実現することが難しい。
【００１５】
ダイナミックライブラリは複数のオブジェクトから使われており、どのオブジェクトから、どのタイミングで使われるかが分からないため、いつでも更新できるわけではない。そのため、ランタイムにダイナミックライブラリを更新することが難しいことが課題になっている。
【課題を解決するための手段】
【００１６】
上記の課題を解決するために、本発明の情報処理装置は、オブジェクトやライブラリを受信するための受信手段と、オブジェクトやライブラリを格納するための複数の区画に分割可能な格納手段と、フラグを保存するための記憶手段とを有する情報処理装置であって、前記受信手段は前記オブジェクトを外部装置から受信して、該オブジェクトを前記格納手段の所定領域に保存し、前記情報処理装置は、前記記憶手段に保存された前記フラグが有効だった場合、前記格納手段に格納された前記オブジェクトを使って起動することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ダイナミックライブラリをランタイムでバージョンアップすることができるようになる。また、自動的にバージョンアップすることにより、専門的な知識を持った人が居なくても短時間に簡単にバージョンアップできるため、情報処理装置のダウンタイムを最小限にすることができる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の詳細を実施例の記述に従って説明する。
【００１９】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【実施例１】
【００２０】
実施例１は、コントローラボードとＨＤＤの構成を持つ画像形成装置の、ファームウェアを更新する方法に関する。
【００２１】
図１において、制御部110は、リーダー部200、プリンタ部300、操作部500、HDD(ハードディスクドライブ)600、電源部700、と電気的に接続され、さらにネットワーク400を介して、ホストコンピュータ410,420と接続されている。
【００２２】
リーダー部(画像入力装置)200は、原稿画像を光学的に読み取り、画像データに変換する。リーダー部200は、原稿を読取るための機能を持つスキャナユニット210と、原稿用紙を搬送するための機能を持つ原稿給紙ユニット220(以下フィーダと呼ぶ)とで構成される。
【００２３】
プリンタ部(画像出力装置)300は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。プリンタ部300は、複数種類の記録紙カセットを持つ給紙ユニット310と、画像データを記録紙に転写、定着させる機能を持つマーキングユニット320と、印字された記録紙をソート、ステイプルして機外へ出力する機能を持つ排紙ユニット330とで構成される。
【００２４】
制御部110は、リーダー部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピー機能を提供する。また、リーダー部200から読取った画像データを、コードデータに変換し、ネットワーク400を介してホストコンピュータへ送信するスキャナ機能、ホストコンピュータからネットワーク400を介して受信したコードデータを画像データに変換し、プリンタ部300に出力するプリンタ機能、送受信した画像データをHDD600に蓄積する文書保存機能を提供する。制御部110は、電源部700を制御し、リーダ部200、プリンタ部300、操作部500、HDD600などの各ユニットと、制御部110の電源を制御する。
【００２５】
図２において、制御部110には、BIOS、CPU、メモリ、不揮発メモリ、USB、ネットワーク送受信ユニット（以下NETWORK）などのハードウェアモジュールが搭載されている。HDD500は、複数のパーティションに分割されており、各パーティションには、ローダ、カーネル、ROOT、コントローラと呼ばれるコントローラボードを操作するソフトウェアを保存している。ROOTは、ダイナミックライブラリ、デバイスドライバ、デーモンプログラムやサーバプログラムなどが含まれる。コントローラ動作中には、バックエンドに前記デーモンプログラムやサーバプログラムが動作し、コントローラだけでなくデーモンプログラムやサーバプログラムもダイナミックライブラリにアクセスしている。コントローラは、NETWORKやUSBメモリからファームウェアをやり取りするための信号を受け取ったときに、ファームウェアをNETWORKやUSBメモリから画像形成装置に転送するための、ダウンロード動作（ダウンロードと呼ぶ）を行う。
【００２６】
第１実施形態の画像形成装置の起動方法は図３の通りである。まず、起動ステップ１（ファームウェア起動前処理と呼ぶ）として、BIOS、ローダ、カーネルが起動する。次に、起動ステップ２（ファームウェアと呼ぶ）として、デーモンやドライバを含むROOT、コントローラボードを動かすコントローラソフトウェア（コントローラと呼ぶ）が起動する。起動ステップ１の各オブジェクト（BIOS、ローダ、カーネル）は、動作開始時に関連するバイナリファイルをメモリに展開して動作する。それに対して、起動ステップ２の各オブジェクト（ROOT、コントローラ）は、実行中にダイナミックライブラリをメモリに展開して動作する。
【００２７】
第１実施形態は、不揮発メモリ上のフラグで、起動するパーティションを切り替える方法である。
【００２８】
図４は、フローチャートと、フローチャート実行時の各パーティションの状態を表したもので、ダイナミックライブラリが第一／第二／第三のどのパーティションで動作しているかを視覚化したものである。下記図のフローチャートについて説明する。
【００２９】
まず、コントローラが動作している時に、ファームウェアをダウンロード可能な状態にする。ファームウェアダウンロード可能な状態で、NETWORKやUSBメモリからの信号を受信すると、コントローラは新ファームウェアのダウンロードを開始する。ダウンロードしたファームウェアは、第二パーティションに仮起動用ファームウェアとして展開する。また同時に、不揮発メモリ上のダウンロードフラグを有効（ＯＮ）にする。最後に再起動する。
【００３０】
次に、ダイナミックライブラリを使わない状態であるファームウェア実行前処理（BIOS、ローダ、カーネル）で、ダウンロードフラグが有効（ＯＮ）かどうかを確認する。フラグが無効（ＯＦＦ）だった場合は第一パーティションの旧ファームウェアを使って通常起動し、フラグが有効（ＯＮ）だった場合は第二パーティションの新ファームウェアを使ってダウンロードモード起動する。ダウンロードモード起動した時は、第一パーティションをフォーマットして、新ファームウェアを第一パーティションに展開し、ダウンロードフラグを無効（ＯＦＦ）にして、再起動する。
【００３１】
最後に、ダウンロードが無効（ＯＦＦ）だった場合は、第一パーティションの新ファームウェアを使って起動する。実行時には、第二パーティションの更新後の再初期化や、第三パーティションの更新後のファイル削除、さらにエラー処理などがあるが、第１実施形態の本質に絡まないため割愛する。また、フラグの場所はＨＤＤ等でも良く、不揮発メモリ上に限定しない。
【００３２】
＜第２実施形態＞
第２実施形態は、パーティションラベルで、起動するパーティションを切り替える方法である。パーティションラベルとは、各パーティションの管理領域に、文字列等のラベルを付与し、パーティションを一意に識別するためのものである。ローダはカーネルの、カーネルはROOTの、ROOTはコントローラの、パーティションラベルを判別して、該当パーティションのモジュールを起動する。
【００３３】
図５は、フローチャートと、フローチャート実行時の各パーティションの状態を表したもので、ダイナミックライブラリが第一／第二／第三のどのパーティションで動作しているかを視覚化したものである。図５のフローチャートについて説明する。
【００３４】
まず、コントローラが動作している時に、ファームウェアをダウンロード可能な状態にする。ファームウェアダウンロード可能な状態で、NETWORKやUSBメモリからの信号を受信すると、コントローラは新ファームウェアのダウンロードを開始する。ダウンロードしたファームウェアは、第二パーティションに仮起動用ファームウェアとして展開する。また同時に、第二パーティションのラベルを起動パーティションと一意に判別できるラベル（例えば文字列ROOT）に付け替え、第一パーティションのラベルを起動パーティションと一意に判別されない特殊ラベル（例えば文字列OLD）に付け替える。最後に再起動する。
【００３５】
次に、ダイナミックライブラリを使わない状態であるファームウェア実行前処理（BIOS、ローダ、カーネル）と、ファームウェア（ROOT、コントローラ）をパーティションラベルに基づいて起動する。この時、起動パーティションと判別されない特殊ラベル（文字列OLD）の有無を確認する。もし特殊ラベルが無ければ第一パーティションの旧ファームウェアを使って通常起動し、もし特殊ラベルがあればダウンロードモード起動する。ダウンロードモード起動した時は、第一パーティションをフォーマットして、新ファームウェアを第一パーティションに展開し、第一パーティションのラベルをＲＯＯＴに、第二パーティションのラベルを“”（ブランク）に戻して、再起動する。
【００３６】
最後に、パーティションラベルに基づき、第一パーティションの新ファームウェアを使って起動する。第１実施形態と同様に、実行時には、第二パーティションの更新後の再初期化や、第三パーティションの更新後のファイル削除、さらにエラー処理などがあるが、第２実施形態の本質に絡まないため割愛する。
【００３７】
＜第３実施形態＞
第３実施形態は、ダウンロードしたファイルの有無で、起動するパーティションを切り替える方法である。第３実施形態は、第１実施形態のフラグの判別をファイルの有無に変えたものである。
【００３８】
図６は、フローチャートと、フローチャート実行時の各パーティションの状態を表したもので、ダイナミックライブラリが第一／第二／第三のどのパーティションで動作しているかを視覚化したものである。図６のフローチャートについて、第１実施形態の差分を説明する。
【００３９】
第１実施形態との違いは、ファームウェアをダウンロードし第二パーティションに展開した後にフラグを有効（ＯＮ）にすることや、ファームウェアを第一パーティションに展開した後にフラグを無効（ＯＦＦ）にすることなどの特殊な操作は行わない。また、1度目の再起動後、第三パーティションにアクセスして新ファームウェアのファイルの有無を確認した時に、ファイルが無かった場合は通常起動し、ファイルが無かった場合はダウンロードモード状態で起動する。さらに、2度目の再起動をして、第一パーティションにファイルを展開した後に、第三パーティションに置いたファイルを削除する。
【００４０】
実行時には、第二パーティションの更新後の再初期化や、第三パーティションの更新後のファイル削除、さらにエラー処理などがあるが、第３実施形態の本質に絡まないため割愛する。
【図面の簡単な説明】
【００４１】
【図１】画像形成装置の構成を示すブロック図である。
【図２】画像形成装置の構成を示すブロック図である。
【図３】第１実施形態を説明するフローチャートである。
【図４】第１実施形態を説明するフローチャートである。
【図５】第２実施形態を説明するフローチャートである。
【図６】第３実施形態を説明するフローチャートである。
【図１】
2009265980.tif 000003
【図２】
2009265980.tif 000004
【図３】
2009265980.tif 000005
【図４】
2009265980.tif 000006
【図５】
2009265980.tif 000007
【図６】
2009265980.tif 000008