(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
<実施の形態>
〔画像形成装置1のシステム構成〕
次に、
図1により、画像形成装置1のシステム構成について説明する。なお、以下の説明において、アプリとはアプリケーション(Application Software)のことである。画像形成装置1は、画像処理部11、原稿読取部12、原稿給送部13、搬送部14、ネットワーク送受信部15、操作パネル部16、画像形成部17、FAX送受信部18、記憶部19、及び外部機器接続部20等が、制御部10に接続されている。各部は、制御部10によって動作制御される。
【0012】
制御部10は、GPP(General Purpose Processor)、CPU(Central Processing Unit、中央処理装置)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、ASIC(Application Specific Processor、特定用途向けプロセッサー)等の情報処理部である。
制御部10は、記憶部19のROMやHDDに記憶されている制御プログラムを読み出して、この制御プログラムをRAMに展開させて実行することで、後述する機能ブロックの各部として動作させられる。また、制御部10は、図示しない外部の端末や操作パネル部16から入力された指示情報に応じて、装置全体の制御を行う。
【0013】
画像処理部11は、DSP(Digital Signal Processor)やGPU(Graphics Processing Unit)等の制御演算部である。画像処理部11は、各種の画像データに対して特定の画像処理を実行する。画像処理部11は、例えば、拡大縮小、濃度調整、階調調整、画像改善等の各種画像処理を行う。
画像処理部11は、原稿読取部12で読み取られた画像を、記憶部19に印刷データとして記憶する。この際、画像処理部11は、印刷データをPDFやTIFF等のフォーマットのファイル単位に変換することも可能である。
【0014】
原稿読取部12は、セットされた原稿を読み取る(スキャン)。
原稿給送部13は、原稿読取部12で読み取られる原稿を搬送する。
搬送部14は、給紙カセットから記録紙を搬送し、画像形成部17で画像形成させ、その後にスタックトレイへ搬送する。
画像形成部17は、ユーザーの出力指示により、記憶部19に記憶され、原稿読取部12で読み取られ、又は外部の端末から取得されたデータから記録紙への画像形成を行わせる。
【0015】
ネットワーク送受信部15は、LAN、無線LAN、WAN、携帯電話網等の外部ネットワークに接続するためのLANボードや無線送受信機等を含むネットワーク接続部である。
ネットワーク送受信部15は、データ通信用の回線ではデータを送受信し、音声電話回線では音声信号を送受信する。
ネットワーク送受信部15は、ネットワークを介して、図示しないPC(Personal Computer)やスマートフォンやPDA(Personal Data Assistant)や携帯電話等の外部の端末、サーバー等に接続されていてもよい。
【0016】
操作パネル部16は、LCD等の表示部と、テンキー、スタート、キャンセル、コピー(複写)、FAX送信、スキャナー等の動作モードの切り換えのボタンと、選択された文書の印刷、送信、保存、記録等に関するジョブの実行に係る指示を行うためのボタン若しくはタッチパネル等の入力部とを備えている。
操作パネル部16は、ユーザーの指示を取得する。このユーザーの指示は、後述する拡張アプリ400(
図2)(Application Software、アプリケーション)のインストールや使用の指示を含む。また、ユーザーの指示により、各ユーザーの情報を入力、変更することも可能である。このため、操作パネル部16は、専用の制御部とROMやRAM等の記憶媒体を備えて、制御部10と連携してGUI(Graphical User Interface)の制御を行ってもよい。拡張アプリ400のインストールや使用時の操作パネル部16の制御の詳細については後述する。
【0017】
FAX送受信部18は、ファクシミリの送受信を行うFAXボード等である。
FAX送受信部18は、原稿読取部12で読み取られた画像データやネットワーク送受信部15から受信したファイル等を描画してファクシミリ送信する。また、FAX送受信部18は、記憶部19に記憶され、ファクシミリ受信された画像データを画像形成部17で画像形成させ、ネットワーク送受信部15から外部の端末へ送信する。
【0018】
記憶部19は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリー等の半導体メモリーやHDD(Hard Disk Drive)等の記憶媒体と、このコントローラー等を含む。
記憶部19のROMやフラッシュメモリーやHDDには、画像形成装置1の動作制御を行うための制御プログラム及びデータが記憶されている。これらの制御プログラム及びデータは、ファームウェアのような形式で提供されていてもよい。また、このファームウェアは、画像形成装置1の既存の構成における各種制御プログラムとデータがセットになった標準ファームウェアを含んでいてもよい。また、これらの制御プログラムとデータとは、実行時にRAM等に展開されて、制御部10により実行される。
また、記憶部19は、各種ジョブデータ、原稿読取部12でスキャンされた画像データ、画像処理部11で画像処理された画像データ、他の端末(図示せず)から送信された印刷文書等のファイル、接続された記憶媒体から読み出された各種ファイル、サムネイル画像のデータ等を記憶してもよい。
また、記憶部19は、ユーザーのアカウント設定も記憶してもよい。また、記憶部19には、ユーザー毎の文書ボックスの領域が含まれていてもよい。
【0019】
外部機器接続部20は、スキャナーやデジタルカメラ等の外部機器30やUSBメモリー31が接続されるインターフェイスである。外部機器接続部20は、例えば、プラグアンドプレイと呼ばれる機能を有したUSBインターフェイスで構成されている。
【0020】
なお、画像形成装置1において、制御部10及び画像処理部11は、GPU内蔵CPU等やチップ・オン・モジュールパッケージのように、一体的に形成されていてもよい。
また、制御部10及び画像処理部11は、RAMやROMやフラッシュメモリー等を内蔵していてもよい。
【0021】
〔画像形成装置1の制御構成〕
次に、
図2により、画像形成装置1の制御構成について説明する。
画像形成装置1は、三つの階層的なブロック構造として、標準アプリ実行部100(標準アプリケーション実行部)、機器制御プラットフォーム200、拡張アプリプラットフォーム300(拡張アプリケーションプラットフォーム)がある。制御部10が本発明の制御プログラムを実行することにより、標準アプリ実行部100、機器制御プラットフォーム200、拡張アプリプラットフォーム300が実現される。更に、制御部10は、
図2に示す制御構成に基づいて、拡張アプリ400、標準アプリ120、汎用OS230を実行することができる。また、制御部10は、
図2に示す制御構成に基づいて、拡張アプリプラットフォーム300上で拡張アプリ400が実行される構成となっている。
【0022】
標準アプリ実行部100は、機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリ120を実行する。標準アプリ実行部100は、機器制御プラットフォーム200上にインストールされた標準アプリ120と、この標準アプリ120に対応するサービスを備えている。
【0023】
機器制御プラットフォーム200は、汎用OS230(Operating System、オペレーティングシステム)上で、画像形成装置1全体のハードウェア資源を管理し、機能単位で各部を制御する。
機器制御プラットフォーム200は、標準アプリ120の実行基盤となるAPI(Application Programming Interface)やミドルウェアやランタイムやリンカー等(以下、「API等」という。)、汎用OS230上のサービス(Service、Daemon、以下「サービス等」という。)、スクリプト言語や中間言語の翻訳や実行を行うインタプリター(Interpreter)やJIT(Just In Time compiler)やバーチャルマシン等(以下、「バーチャルマシン等」という。)を含むプログラムやデータである。また、拡張アプリプラットフォーム300自体も、汎用OS230上で動作している。
【0024】
拡張アプリプラットフォーム300は、標準アプリ120を呼び出して機能を利用し、機器制御プラットフォーム200を呼び出してハードウェア資源を利用し、拡張アプリ400を管理し実行させる。
拡張アプリプラットフォーム300は、拡張アプリ400の実行基盤となるAPI等やサービス等やバーチャルマシン等を含むプログラムやデータである。また、拡張アプリプラットフォーム300自体も、汎用OS230上で動作している。
【0025】
拡張アプリ400は、拡張アプリプラットフォーム300上で各種処理を行うアプリのプログラム及びデータである。拡張アプリ400には、外部機器30である例えばスキャナーの動作モードに対応したアプリa、アプリbなどが含まれている。
ここで、動作モードとは、例えばスキャナー側で操作された印刷指示やOCR処理などを示すものである。
これらのアプリaとアプリbは、後述のインストールサービス330により、インストールされたものである。また、アプリaとアプリbは、後述のデバイスドライバー350からの要求を受け付けるインターフェースを備えている。
アプリaは、例えば、OCR(Optical Character Recognition、光学文字認識)処理、文字を抽出してサーバー(図示せず)に送る処理などを示すプログラムである。なお、文字の抽出とは、印刷に好ましくない文字(「企業秘」など)を抽出することである。このような文字(「企業秘」など)が抽出された場合、アプリaは印刷などを行わず、上述した操作パネル部16などに印刷不可能であることを表示させたりする。
アプリbは、OCR処理、読み取り原稿内のQRコード(登録商標)を読み取り、QR(quick response)コード(登録商標)内の情報で示したサイトから画像を取得する処理などを示すプログラムである。
なお、ここでは、例えばスキャナーの動作モードに対応したものとして、アプリaとアプリbの2つとしているが、これらのアプリaとアプリbを1つに集約してもよいし、3つ以上に分割してもよい。
また、拡張アプリ400には、外部機器30である例えばデジタルカメラの動作モードに対応したアプリcなどが含まれている。
ここで、動作モードとは、例えばデジタルカメラ側で操作された印刷指示などの処理を示すものである。
アプリcは、例えばデジタルカメラ内の画像を表示し、任意に選択された画像を印刷する処理などを示すプログラムである。
【0026】
より詳しく説明すると、標準アプリ実行部100は、標準アプリ120、及び標準アプリサービスIF部110(標準アプリケーションサービスインターフェイス部)を備えている。
【0027】
標準アプリ120は、機器制御プラットフォーム200上で各種処理を行うアプリのプログラム及びデータである。
標準アプリ120は、ユーザーの指示を取得し、このユーザーの指示により画像形成装置の各種機能を利用する。また、標準アプリ120は、例えば、Java(登録商標)等の中間言語のアプリや、各種スクリプト言語等で記載されていてもよい。
【0028】
標準アプリ120は、例えば、コピーアプリ121、プリンターアプリ122、FAXアプリ123、各種標準アプリ124等が、工場出荷状態で既にインストールされていてもよい。
コピーアプリ121は、操作パネル部16からのユーザーによるコピーの指示を取得すると、原稿読取部12から原稿を読み取って、画像形成部17により画像形成させる。
プリンターアプリ122は、外部の端末(図示せず)からの指示等により、ネットワーク送受信部15で受信したPDL(Page Description Language)等のファイルを描画して、画像形成部17により画像形成させる。また、プリンターアプリ122は、操作パネル部16によるユーザーの指示により、記憶部19の文書ボックス内のファイル等を描画して、画像形成部17により画像形成させてもよい。
FAXアプリ123は、ユーザーの操作パネル部16からのファクシミリ送信の指示を取得すると、原稿読取部12から原稿を読み取って、FAX送受信部18によりファクシミリ送信する。また、FAXアプリ123は、外部の端末から受信したファイル等を描画して、FAX送受信部18により送信してもよい。また、FAXアプリ123は、FAX送受信部18により受信されたファクシミリの画像データを、画像形成部17により画像形成させる。また、FAXアプリ123は、受信されたファクシミリの画像データを記憶部19の文書ボックスに記憶してもよい。
各種標準アプリ124は、後述の送信アプリ等を含んでいる。この送信アプリは、ネットワーク送受信部15を介して画像データ等を送信したりするものである。
なお、画像形成装置1の使用開始後に標準アプリ120がインストールされてもよい。つまり、例えば、FAX送受信部のFAXボードが取り付けられた際に、FAXアプリ123がインストールされる等の処理が行われてもよい。
また、ハードウェアの構成に関わらず、独自の標準アプリ120をユーザーがインストールすることも可能である。
【0029】
標準アプリサービスIF部110は、アプリ実行部の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する。
標準アプリサービスIF部110は、例えば、Java(登録商標)等のクラス、Java(登録商標)言語上のインターフェイス、ルーチン、関数、ヘッダーファイル、オブジェクト、ライブラリー等として提供されていてもよい。また、標準アプリサービスIF部110は、汎用OS230上のサービス等として提供されていてもよい。また、標準アプリサービスIF部110は、標準アプリ120毎に異なるインターフェイスを提供していてもよい。
また、標準アプリサービスIF部110は、標準アプリ120の実行、インストール、設定の変更、削除等を行うことも可能である。
【0030】
機器制御プラットフォーム200は、プラットフォームサービスIF部210(プラットフォームサービスインターフェイス部)、各部制御用サービス220、及び汎用OS230を備えている。
【0031】
プラットフォームサービスIF部210は、機器制御プラットフォーム200の外部からハードウェア資源を利用するためのインターフェイスを提供する。
プラットフォームサービスIF部210は、各部制御用サービス220を呼び出して、画像形成装置1の各部のハードウェア資源を利用させる。プラットフォームサービスIF部210は、例えば、API等、又は汎用OS230上のサービス等として提供されていてもよい。また、プラットフォームサービスIF部210は、C言語の構造体、C++言語のクラス、その他のオブジェクト、ルーチン、関数、ヘッダーファイル、オブジェクト、ライブラリー等(以下、「クラス等」という。)として提供されていてもよい。また、プラットフォームサービスIF部210は、例えば、Java(登録商標)等の中間言語で提供されていてもよい。
【0032】
各部制御用サービス220は、画像形成装置1の機能に対応する各部を適切な方式で制御するサービス等である。
各部制御用サービス220は、例えば、プラットフォームサービスIF部210からの呼び出しに対応して、画像処理部11、操作パネル部16、ネットワーク送受信部15等を操作する。また、各部制御用サービス220は、コピー機能、ネットワークスキャン機能、文書ボックス機能等を呼び出すことができる。
また、各部制御用サービス220は、製品系列別に、異なるサービス等、API等、クラス等を組み合わせたものがファームウェアに含まれていてもよい。
【0033】
各部制御用サービス220は、画像処理サービス221、デバイス操作サービス222、ネットワーク通信サービス223を含んでいる。
【0034】
画像処理サービス221は、画像処理のデータの作成や変換や出力に関するサービスを提供する。画像処理サービス221は、例えば、原稿読取部12で解像度や色等を設定して原稿読取した画像データを記憶部19に記憶させ、画像処理部11に記憶部19の画像データや文書データ(図示せず)を画像処理させる。また、画像処理サービス221は、ファイル等から、画像形成部17で画像形成する画像データを描画する。
【0035】
デバイス操作サービス222は、各部のデバイスを制御するためのサービス等を提供する。デバイス操作サービス222は、例えば、原稿読取部12から取得した画像データを記憶部19に記憶し、操作パネル部16の表示部に表示されるブラウザー上に画像を描画し、描画された画像データを画像形成部17に送信して画像形成させ、記憶部19に記憶された画像データをFAX送受信部18でファクシミリ送信させる。また、デバイス操作サービス222は、例えば搬送部のモーターの一つを駆動させるといった、より機器のハードウェアの構成に近い制御を行ってもよい。
【0036】
ネットワーク通信サービス223は、ネットワークの送受信に関するサービス等を提供する。ネットワーク通信サービス223は、例えば、ネットワーク送受信部15(
図1)から、TCP/IPやUDPの各種プロトコルにより、他の画像形成装置(図示せず)やサーバーや端末等の間でファイル等の送受信を行う。たとえば、ネットワーク通信サービス223は、スキャンした画像データ、文書ボックスのファイル等を送受信することも可能である。なお、ネットワーク通信サービス223は、FAX送受信部18によるファクシミリ送受信の画像データの送受信、ユーザー認証部が存在した場合はユーザー認証結果、デジタルカメラが存在した場合は映像データの送受信等を行うことも可能である。また、ネットワーク通信サービス223は、画像形成装置1の各部の状態、各部の機能の呼び出しの結果等についても、送受信可能である。
【0037】
汎用OS230は、画像形成装置1の各部を制御する。汎用OS230としては、例えば、Linux(登録商標)等の汎用OS、組み込み(Embedded)向けの汎用OS、リアルタイム汎用OS等を使用することができる。また、汎用OS230のカーネルやコア等のスケジュール管理や基本ハードウェアを管理するプログラムやデータ等はファームウェアに含まれていてもよい。
【0038】
拡張アプリプラットフォーム300は、標準機能サービス310、拡張機能サービス320、インストールサービス330(インストールサービス)、拡張アプリ管理部340(拡張アプリケーション管理部)、デバイスドライバー350を備えている。
【0039】
標準機能サービス310は、標準アプリサービスIF部110に対応した標準アプリ120の機能を利用させるサービス等である。
標準機能サービス310は、拡張アプリ400からの各標準アプリ120の各機能を指定した呼び出しを受け、標準アプリサービスIF部110に送信して、当該標準アプリ120の当該機能を実行させる。
【0040】
拡張機能サービス320は、プラットフォームサービスIF部210に対応したハードウェア資源を利用させるサービス等である。
拡張機能サービス320は、拡張アプリ400からの画像形成装置1の各部の機能を指定した呼び出しを受け、プラットフォームサービスIF部210に送信して、当該各部の当該機能を実行させる。
【0041】
拡張アプリ管理部340は、標準機能サービス310及び拡張機能サービス320を呼び出し可能な拡張アプリ400を管理し実行する。
拡張アプリ管理部340は、拡張アプリ400のインストール、画像形成装置1から使用可能な状態とするアクティベーション、実行、実行終了、アンインストール等を拡張アプリプラットフォーム300のAPIにより管理する(以下、これらの処理を拡張アプリ400の「ライフサイクル」の管理という。)。
また、拡張アプリ管理部340は、操作パネル部16等から認証情報を取得した場合、拡張アプリ400をアクティベーションして、使用可能な状態としてもよい。
【0042】
インストールサービス330は、記憶部19に記憶された標準ファームウェアの構成を変更せずに、標準機能サービス310では提供していない機能を拡張アプリプラットフォーム300や汎用OS230等に追加するサービス等である。
インストールサービス330は、デバイスドライバー350をインストールする。このデバイスドライバー350は、外部機器30である例えばスキャナー又はデジタルカメラのいずれから対応するものである。ここでは、説明の都合上、スキャナーに対応させたものとする。よって、デジタルカメラに対応するデバイスドライバー350が必要な場合は、別途、デジタルカメラに対応するデバイスドライバー350がインストールされることになる。
また、このデバイスドライバー350は、USBメモリー31などの記憶媒体からインストールされたものである。
また、インストールサービス330は、上述したアプリa〜アプリcをインストールする。これらのアプリa〜cは、例えばUSBメモリー31などの記憶媒体からインストールされたものである。
【0043】
また、インストールサービス330は、汎用OS230及び拡張アプリプラットフォーム300に対応したデバイスドライバー350やスクリプト等の制御プログラムをインストールする。この場合、インストールサービス330は、ROMやフラッシュメモリー等に記憶された標準ファームウェアは変更せず、追加的な変更を行う。
また、インストールサービス330は、汎用OS230の設定ファイルの内容を変更することも可能である。この場合、インストールサービス330は、例えば、「var」等のディレクトリーに保存されたファイルを作成、変更、削除等したり、レジストリー等のデータベースを変更したりしてもよい。
また、インストールサービス330は、ファームウェア自体の一部又は全体を変更又はアップデート等することも可能である。
【0044】
デバイスドライバー350は、上述したスキャナーやデジタルカメラ等の外部機器30との連携をもたらすためのものであり、外部機器30が上述した外部機器接続部20に接続されると、上述したアプリa、アプリb、アプリcに対して外部機器30の種別や動作モードなどを含む要求を出す。
【0045】
拡張アプリ400は、拡張アプリプラットフォーム300上で実行されるアプリケーションのプログラム及びデータである。拡張アプリ400は、標準機能サービス310を呼び出して標準アプリ120の機能を利用し、拡張機能サービス320を呼び出して画像形成装置1の各部の機能を利用し、又はインストールサービス330を呼び出して汎用OS230への追加の機能をインストールする等の処理を実行することが可能である。このため、拡張アプリ400により、画像形成装置1単体では使用できない各種処理を行わせることが可能となる。
また、拡張アプリ400は、拡張アプリプラットフォーム300上で動作する実行ファイルと、クラス情報を含む各種データとを含んで構成されてもよい。この場合、拡張アプリ400の実行ファイルは、例えば、各種スクリプト言語のファイルや、Java(登録商標)アプリの中間言語のファイルや、「ネイティブ」の実行ファイル等からなるアプリのバイナリのファイルであってもよい。拡張アプリ400は、処理スピードや必要メモリー容量等のリソースの制限が少ない場合はスクリプト言語のファイルや中間言語のファイルで記載されていてもよい。また、拡張アプリ400は、リソースの制限がある場合にはパフォーマンスに優れるC言語やC++言語やアセンブラ言語等で記載されていてもよい。拡張アプリ400は、この他にも、必要なデータを含んでいてもよい。
拡張アプリ400は、上述したアプリaとアプリbに加え、例えば、OCR(Optical Character Recognition、光学文字認識)、監視デジタルカメラアプリ、ウォーターマーク作成、請求書作成、社員名簿管理、伝票管理、契約書管理、名刺管理、PDF作成、帳簿管理、グループ管理等の実用アプリを含む。
また、複数の拡張アプリ400が備えられていてもよい。また、拡張アプリ400は、画像形成装置1や他の端末等(図示せず)からインストールされて記憶部19に記憶されてもよい。また、拡張アプリ400は、外部の記憶媒体に記憶されていてもよい。また、拡張アプリ400は、画像形成装置1の機種固有情報に対応して実行可能か否かが選択されてもよい。また、各拡張アプリ400をインストールや実行する場合、当該画像形成装置1と対応付けられて使用可能な状態にする「アクティベーション」が必要であってもよい。なお、画像形成装置1の機種毎に別々の拡張アプリ400がインストールされてもよい。
【0046】
〔画像形成装置1による画像処理〕
次に、
図3〜
図4により、本発明の実施形態に係る画像形成装置1による画像処理の説明を行う。なお、
図3においては、スキャナー又はデジタルカメラに対応するデバイスドライバー350を記憶しているUSBメモリー31、スキャナーに対応するアプリaを記憶しているUSBメモリー31、スキャナーに対応するアプリbを記憶しているUSBメモリー31、デジタルカメラに対応するアプリcを記憶しているUSBメモリー31のいずれかが外部機器接続部20に接続されるものとして説明する。また、
図4においては、外部機器30であるスキャナー又はデジタルカメラのUSBコネクタ(図示せず)が外部機器接続部20に接続されるものとして説明する。
また、USBメモリー31かUSBコネクタであるかの判断、USBメモリー31に記憶されているプログラムの内容の判断、外部機器接続部20に接続された外部機器30の機種の判断、外部機器30の動作モードの判断は、いずれも外部機器接続部20が有するプラグアンドプレイ機能によって行われるものとする。
【0047】
まず、
図3に示すように、上述した外部機器接続部20へのUSBメモリー31又はUSBコネクタの接続待ちとなっている状態で(ステップS1:NO)、外部機器接続部20にUSBメモリー31又はUSBコネクタが接続されると、外部機器接続部20は、USBメモリー31又はUSBコネクタの接続有りと判断する(ステップS1:YES)。
次いで、外部機器接続部20が接続されたものがUSBメモリー31であるかどうかを判断する(ステップS2)。ここで、USBメモリー31でなければ(ステップS2:NO)、以降の処理が終了となる。
これに対し、USBメモリー31であれば(ステップS2:YES)、外部機器接続部20がUSBメモリー31に記憶されているプログラムの内容を判断する(ステップS3)。ここで、USBメモリー31に記憶されているプログラムがデバイスドライバーであれば、外部機器接続部20がインストールサービス330に対してデバイスドライバーのインストールの要求を出す。
これにより、インストールサービス330がUSBメモリー31に記憶されているデバイスドライバー350をインストールする。
なお、このデバイスドライバー350は、例えばスキャナーに対応するものであるとする。よって、デジタルカメラに対応するデバイスドライバー350のインストールが必要であれば、上記同様に、デジタルカメラに対応するデバイスドライバー350を記憶しているUSBメモリー31を外部機器接続部20に接続することで、デジタルカメラに対応するデバイスドライバー350のインストールが行われる。
【0048】
一方、ステップS3でデバイスドライバー350でなければ、外部機器接続部20がUSBメモリー31に記憶されているプログラムの内容からアプリであるかどうかを判断する(ステップS5)。ここで、アプリであれば、インストールサービス330に対してアプリのインストールの要求を出す。
これにより、インストールサービス330がUSBメモリー31に記憶されているアプリをインストールする。
なお、アプリには、上述したように、アプリa〜cがある。これらのアプリa〜cが1つのUSBメモリー31に記憶されている場合は、アプリa〜cが連続してインストールされる。これに対し、アプリa〜cが個々にUSBメモリー31に記憶されている場合は、それぞれのUSBメモリー31を外部機器接続部20に接続することで、個々のアプリa〜cがインストールされることになる。
以上の手順により、デバイスドライバー350とアプリa〜cのインストールが行われる。
【0049】
なお、インストールサービス330がデバイスドライバー350とアプリa〜cのインストールを行うと、デバイスドライバー350及びアプリa〜cのそれぞれの要求などを示すインターフェイスを、拡張機能サービス320に設定する。この際、インストールサービス330は、標準ファームウェアの書き換えを行わずに、これらの設定を行うことができる。
また、インストールサービス330は、デバイスドライバー350を、汎用OS230の機能等により拡張アプリプラットフォーム300に設定する。その後、インストールサービス330は、汎用OS230の設定を変更等する。
これらの処理により、外部機器接続部20に接続された外部機器30の動作モードに応じたアプリa〜cの実行が可能となる。
【0050】
このような外部機器30の動作モードに応じたアプリa〜cの実行について、
図4により説明する。
まず、上述した外部機器接続部20へのUSBメモリー31又はUSBコネクタの接続待ちとなっている状態で(ステップS10:NO)、外部機器接続部20にUSBメモリー31又はUSBコネクタが接続されると、外部機器接続部20はUSBメモリー31又はUSBコネクタの接続が有ると判断する(ステップS10:YES)。
次いで、外部機器接続部20が接続されたものがUSBコネクタであるかどうかを判断する(ステップS11)。ここで、USBコネクタでなければ(ステップS11:NO)、以降の処理が終了となる。
これに対し、USBコネクタであれば(ステップS11:YES)、外部機器接続部20が外部機器30の機種を判断する(ステップS12)。ここで、外部機器接続部20に接続された外部機器30がスキャナーであれば(ステップS12:YES)、スキャナーの動作モードに対応したアプリa又はbを実行する(ステップS13)。
【0051】
これに対し、外部機器接続部20に接続された外部機器30がスキャナーではなく(ステップS12:NO)、デジタルカメラであれば(ステップS14:YES)、デジタルカメラの動作モードに対応したアプリcを実行する(ステップS15)。
なお、ステップS14において、デジタルカメラでなければ、以降の処理が終了となる。
また、アプリa〜cのいずれかが実行される場合、拡張機能サービス320がアプリa〜cのいずれかの要求が標準ハードウェアの機能の呼び出しであるかを判断し、プラットフォームサービスIF部210に通知する。
プラットフォームサービスIF部210は、拡張アプリプラットフォーム300の拡張機能サービス320から呼び出されると、呼び出された機能に対応する各部制御用サービス220の各機能を呼び出して、画像形成装置1のハードウェア資源を利用させる。
【0052】
プラットフォームサービスIF部210は、例えば、画像処理サービスに対応した機能を呼び出す場合、外部機器30からの画像データ等を取得し、画像処理の機能を特定して実行させる。
この場合、アプリaが、例えば、OCR(Optical Character Recognition、光学文字認識)処理、文字を抽出してサーバー(図示せず)に送る処理などを示すものであるとき、プラットフォームサービスIF部210は、例えば、画像処理サービス221及びデバイス操作サービス222に対応した機能を呼び出す。
また、アプリbが、OCR処理、読み取り原稿内のQRコード(登録商標)を読み取り、QR(quick response)コード(登録商標)内の情報で示したサイトから画像を取得する処理などを示すものであるとき、プラットフォームサービスIF部210は、例えば、画像処理サービス221、デバイス操作サービス222及びネットワーク通信サービス223に対応した機能を呼び出す。
また、アプリcが、例えばデジタルカメラ内の画像を表示し、任意に選択された画像を印刷する処理などを示すものであるとき、プラットフォームサービスIF部210は、例えば、画像処理サービス221及びデバイス操作サービス222に対応した機能を呼び出す。
【0053】
このように、本実施形態では、機器制御プラットフォーム200によりオペレーティングシステム(汎用OS230)上でハードウェア資源が管理され、標準アプリケーション実行部(標準アプリ実行部100)により機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリケーション(標準アプリ120)が実行され、拡張アプリケーションプラットフォーム(拡張アプリプラットフォーム300)に含まれる拡張アプリケーション管理部(拡張アプリ管理部340)により、標準アプリケーション実行部(標準アプリ実行部100)により実行される標準アプリケーション(標準アプリ120)の機能を利用させる標準機能サービス、ハードウェア資源を利用させる拡張機能サービス、及び標準機能サービス並びに拡張機能サービスをそれぞれ呼び出し可能な拡張アプリケーション(拡張アプリ400)が管理されて実行され、インストールサービス330により、標準ファームウェアの構成を変更せずに、標準機能サービス310では提供していない機能に対応したインターフェイスが拡張機能サービス320に追加され、拡張アプリケーションプラットフォーム(拡張アプリプラットフォーム300)から利用され、外部機器30又は該外部機器30に対応したデバイスドライバー350を記憶している第1の外部記憶媒体又は該外部機器30の動作モードに対応した動作モード対応アプリケーションを記憶している第2の外部記憶媒体が接続される外部機器接続部20により、外部機器30の機種及び動作モードの判断と、第1の外部記憶媒体及び第2の外部記憶媒体のアプリケーションの内容の判断とが行われるようにした。
【0054】
そして、インストールサービス330により、外部機器接続部20によるプラグアンドプレイ機能による判断に基づき、第1の外部記憶媒体に記憶されているデバイスドライバー350と、第2の外部記憶媒体に記憶されている動作モード対応アプリケーションとがインストールされ、拡張機能サービス320により、外部機器30の動作モードに対応する動作モード対応アプリケーションが実行される。
ここで、第1の外部記憶媒体とは、デバイスドライバー350を記憶しているUSBメモリー31である。また、第2の外部記憶媒体とは、上述したアプリa〜cを記憶しているUSBメモリー31である。動作モード対応アプリケーションとは、アプリa〜cである。
なお、アプリa〜cのそれぞれは、個別にUSBメモリー31に記憶されていてもよいし、同一のUSBメモリー31に記憶されていてもよい。
また、アプリa〜cやデバイスドライバー350は、USBメモリー31に限らず、メモリカード等の他の外部記憶媒体に記憶されていてもよい。さらには、アプリa〜cやデバイスドライバー350は、携帯端末やパーソナルコンピュータ等の端末から画像形成装置1に送信されるようにしてもよい。
このように、インストールサービス330により、外部機器接続部20によるプラグアンドプレイ機能による判断に基づき、第1の外部記憶媒体(USBメモリー31)に記憶されているデバイスドライバー350と、第2の外部記憶媒体(USBメモリー31)に記憶されている動作モード対応アプリケーション(アプリa〜c)とがインストールされ、拡張機能サービス320により、外部機器30の動作モードに対応する動作モード対応アプリケーション(アプリa〜c)が実行されるので、標準ファームウェアの構成を変更せずに、外部機器30の動作モードに応じた処理を実行させることができる。
【0055】
また、本実施形態では、既存の機器制御プラットフォーム200を変更しないため、機能の追加による影響範囲が明確になり、追加の機能に絞ってデバッグやテスト等が可能になり、評価時間を短縮することができる。同様に、標準ファームウェアを変更せずに機能を追加することも可能となり、標準ファームウェア更新によるテスト等の費用等を削減できる。
つまり、追加される機能の開発を容易にし、開発効率を向上させ、開発期間を短縮させることが可能となり、開発コストを削減することができる。
また、機能を追加する度にファームウェア全体を更新する必要もなくなり、ユーザーの使い勝手を向上させることができる。
また、本実施形態では、標準アプリ実行部100の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する標準アプリサービスIF部110を備えている。これにより、機器制御プラットフォーム200の間で統一した形式のインターフェイスを提供することが容易となり、拡張アプリ400を統一した開発環境で作成しやすくなり、開発コストを削減することができる。
また、機器制御プラットフォーム200により利用されるハードウェア資源を容易に拡張アプリ400から実行可能となる。このため、拡張アプリ400の実行時のスピード等のパフォーマンスを向上させることができる。
【0056】
なお、本実施形態での画像形成装置1の記憶部19には、標準アプリ120や拡張アプリ400とは異なる種類のアプリを記憶させることも可能である。たとえば、記憶部19には、拡張アプリ400以外のWebアプリ等(以下「外部アプリ」という。)や、ユーザーのデータ等を記憶させてもよい。外部アプリは画像形成装置1の操作パネル部16のユーザーの指示で呼び出して、画像形成装置1に読み込んで実行させてもよい。
このように構成することで、拡張アプリプラットフォーム300のアプリと標準アプリ120とを柔軟に使い分けでき、ユーザーの使い勝手をよくすることができる。