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