(58)【調査した分野】(Int.Cl.,DB名)
前記標準アプリケーション実行部の外部から前記標準アプリケーションの機能を利用するためのインターフェイスを提供する標準アプリケーションサービスインターフェイス部と、
前記機器制御プラットフォームの外部から前記ハードウェア資源を利用するためのインターフェイスを提供するプラットフォームサービスインターフェイス部とを備えることを特徴とする請求項1又は2に記載の画像形成装置。
前記標準アプリケーション実行部の外部から前記拡張機能サービスに対応した前記標準アプリケーションの機能を利用するためのインターフェイスを提供する標準アプリケーションサービスインターフェイス部を備える
ことを特徴とする請求項5に記載の画像形成装置。
前記拡張アプリケーションプラットフォームとは別に、ユーザーの指示を取得する操作パネル部に対応する処理、複数の前記標準アプリケーション間での共通の処理、及び前記標準アプリケーションを呼び出す処理を実行するパネル処理実行部とを備える
ことを特徴とする請求項1乃至7のいずれか1項に記載の画像形成装置。
前記標準アプリケーション実行部の外部から前記標準アプリケーションの機能を利用するためのインターフェイスを提供する標準アプリケーションサービスインターフェイス部を備え、
前記パネル処理実行部は、前記標準アプリケーションサービスインターフェイス部により前記標準アプリケーションを呼び出す
ことを特徴とする請求項8に記載の画像形成装置。
前記拡張アプリケーションの管理と実行とは別に、ユーザーの指示を取得する操作パネル部に対応する処理、複数の前記標準アプリケーション間での共通の処理、及び前記標準アプリケーションを呼び出す処理を実行する
ことを特徴とする請求項10乃至13のいずれか1項に記載の画像形成方法。
【発明を実施するための形態】
【0010】
<第一実施形態>
〔第一実施形態の画像形成装置1のシステム構成〕
次に、
図1により、本発明の第一実施形態に係る画像形成装置1のシステム構成について説明する。画像形成装置1は、画像処理部11、原稿読取部12、原稿給送部13、搬送部14、ネットワーク送受信部15、操作パネル部16、画像形成部17、FAX送受信部18、及び記憶部19等が、制御部10に接続されている。各部は、制御部10によって動作制御される。
【0011】
制御部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から入力された指示情報に応じて、装置全体の制御を行う。
【0012】
画像処理部11は、DSP(Digital Signal Processor)やGPU(Graphics Processing Unit)等の制御演算部である。画像処理部11は、各種の画像データに対して特定の画像処理を実行する。画像処理部11は、例えば、拡大縮小、濃度調整、階調調整、画像改善等の各種画像処理を行う。
画像処理部11は、原稿読取部12で読み取られた画像を、記憶部19に印刷データとして記憶する。この際、画像処理部11は、印刷データをPDFやTIFF等のフォーマットのファイル単位に変換することも可能である。
【0013】
原稿読取部12は、セットされた原稿を読み取る(スキャン)。
原稿給送部13は、原稿読取部12で読み取られる原稿を搬送する。
搬送部14は、給紙カセットから記録紙を搬送し、画像形成部17で画像形成させ、その後にスタックトレイへ搬送する。
画像形成部17は、ユーザーの出力指示により、記憶部19に記憶され、原稿読取部12で読み取られ、又は外部の端末から取得されたデータから記録紙への画像形成を行わせる。
【0014】
ネットワーク送受信部15は、LAN、無線LAN、WAN、携帯電話網等の外部ネットワークに接続するためのLANボードや無線送受信機等を含むネットワーク接続部である。
ネットワーク送受信部15は、データ通信用の回線ではデータを送受信し、音声電話回線では音声信号を送受信する。
ネットワーク送受信部15は、ネットワークを介して、図示しないPC(Personal Computer)やスマートフォンやPDA(Personal Data Assistant)や携帯電話等の外部の端末、サーバー等に接続されていてもよい。
【0015】
操作パネル部16は、ユーザーの指示を取得し、各種情報を表示する。
操作パネル部16は、ユーザーの指示を取得する。このユーザーの指示は、後述する拡張アプリ400(
図2)(Application Software、アプリケーション)のインストールや使用の指示を含む。また、ユーザーの指示により、各ユーザーの情報を入力、変更することも可能である。このため、操作パネル部16は、専用の制御部とROMやRAM等の記憶媒体を備えて、制御部10と連携してGUI(Graphical User Interface)の制御を行ってもよい。拡張アプリ400のインストールや使用時の操作パネル部16の制御の詳細については後述する。
また、操作パネル部16には、USBメモリーやフラッシュメモリーカードの記憶媒体や記憶媒体を内蔵した外部機器を接続するための接続部が備えられていてもよい。
【0016】
また、操作パネル部16は、入力部20と、表示部21とを備えている。
入力部20は、タッチパネルやボタン等によりユーザーの指示を取得する。入力部20のボタンは、スタートキー、キャンセルキー、テンキーを含んでいてもよい。また、入力部20のボタンは、コピー(複写)、FAX送信、スキャナー等の動作モードの切り換えのボタン、選択された文書の印刷、送信、記録等に関するジョブの実行に係る指示のボタンを含んでいてもよい。また、入力部20のタッチパネルは、抵抗膜方式や静電容量方式により、ユーザーが押下した座標や押圧等を検出してもよい。また、入力部20は、表示部21と一体的に形成されていてもよい。この場合、入力部20は表示部21上の座標を検出してもよい。また、タッチパネルがマルチタッチ対応の場合には、複数の座標や押圧等を検出してもよい。入力部20は、静電容量方式のタッチパネルの場合、所定距離だけ離れた位置でも、ユーザーの指等を動かしたことを検知してもよい。また、入力部20は、ユーザーの指等の移動による指示であるジェスチャー(gesture)による指示を取得してもよい。
入力部20により入力されたユーザーの指示は、後述するパネルアプリ520(
図2)や標準アプリ120や拡張アプリ400のインストールや呼び出し等の指示を含む。また、ユーザーの指示により、各ユーザーの情報を入力、変更することも可能である。
【0017】
表示部21は、LCD(Liquid Crystal Display)、OEL(Organic Electro-Luminescence)、FED(Field Emission Display)等の平面ディスプレイパネル、プロジェクタ、ステータス表示用LED等である。入力部20と表示部21とが、一体的に形成されている場合、表示部21は、上述の入力部20のボタンを、いわゆる「ソフトウェアボタン」として表示してもよい。
表示部21は、専用のブラウザー等で描画されたGUIの各種画面を表示する。また、表示部21は、記憶部19(
図2参照)に記憶された画像等も表示可能である。
【0018】
FAX送受信部18は、ファクシミリの送受信を行うFAXボード等である。
FAX送受信部18は、原稿読取部12で読み取られた画像データやネットワーク送受信部15から受信したファイル等を描画してファクシミリ送信する。また、FAX送受信部18は、記憶部19に記憶され、ファクシミリ受信された画像データを画像形成部17で画像形成させ、ネットワーク送受信部15から外部の端末へ送信する。
【0019】
記憶部19は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリー等の半導体メモリーやHDD(Hard Disk Drive)等の記憶媒体と、このコントローラー等を含む。
記憶部19のROMやフラッシュメモリーやHDDには、画像形成装置1の動作制御を行うための制御プログラム及びデータが記憶されている。これらの制御プログラム及びデータは、ファームウェアのような形式で提供されていてもよい。また、これらの制御プログラムとデータとは、実行時にRAM等に展開されて、制御部10により実行される。
また、記憶部19は、各種ジョブデータ、原稿読取部12でスキャンされた画像データ、画像処理部11で画像処理された画像データ、他の端末(図示せず)から送信された印刷文書等のファイル、接続された記憶媒体から読み出された各種ファイル、サムネイル画像のデータ等を記憶してもよい。
また、記憶部19は、ユーザーのアカウント設定も記憶してもよい。また、記憶部19には、ユーザー毎の文書ボックスの領域が含まれていてもよい。
【0020】
なお、画像形成装置1において、制御部10及び画像処理部11は、GPU内蔵CPU等やチップ・オン・モジュールパッケージのように、一体的に形成されていてもよい。
また、制御部10及び画像処理部11は、RAMやROMやフラッシュメモリー等を内蔵していてもよい。
【0021】
〔画像形成装置1の制御構成〕
次に、
図2により、画像形成装置1の制御構成について説明する。
画像形成装置1は、三つの階層的なブロック構造として、制御部10の回路上で、標準アプリ実行部100(標準アプリケーション実行部)、機器制御プラットフォーム200、拡張アプリプラットフォーム300(拡張アプリケーションプラットフォーム)があり、拡張アプリプラットフォーム300上で拡張アプリ400が実行される構成となっている。制御部10が本発明の制御プログラムを実行することにより、標準アプリ実行部100、機器制御プラットフォーム200、拡張アプリプラットフォーム300が実現される。更に、制御部10は、
図2に示す制御構成に基づいて、拡張アプリ400、標準アプリ120、OS230を実行することができる。
【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上で各種処理を行うアプリのプログラム及びデータである。
【0026】
より詳しく説明すると、標準アプリ実行部100は、標準アプリ120、及び標準アプリサービスIF部110(標準アプリケーションサービスインターフェイス部)を備えている。
【0027】
標準アプリ120は、機器制御プラットフォーム200上で各種処理を行うアプリのプログラム及びデータである。
標準アプリ120は、ユーザーの指示を取得し、このユーザーの指示により画像形成装置の各種機能を利用する。また、標準アプリ120は、例えば、Java(登録商標)等の中間言語のアプリや、各種スクリプト言語等で記載されていてもよい。
【0028】
標準アプリ120は、例えば、コピーアプリ121、プリンターアプリ122、FAXアプリ123等が、工場出荷状態で既にインストールされていてもよい。
コピーアプリ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の文書ボックスに記憶してもよい。
なお、画像形成装置1の使用開始後に標準アプリ120がインストールされてもよい。つまり、例えば、FAX送受信部のFAXボードが取り付けられた際に、FAXアプリ123がインストールされる等の処理が行われてもよい。
また、ハードウェアの構成に関わらず、独自の標準アプリ120をユーザーがインストールすることも可能である。
【0029】
標準アプリサービスIF部110は、標準アプリ実行部100の外部から標準アプリ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の表示部21に表示されるブラウザー上に画像を描画し、描画された画像データを画像形成部17に送信して画像形成させ、記憶部19に記憶された画像データをFAX送受信部18でファクシミリ送信させる。
また、デバイス操作サービス222は、画像形成装置1にオプション機器、例えばフィニッシャーが存在した場合は製本やステープル等、ICカードや生体認証によるユーザー認証部が存在した場合は当該ユーザー認証部によるユーザー認証、カメラが存在した場合はカメラ画像の取得や視線検出等の各機能を呼び出すことも可能である。また、デバイス操作サービス222は、例えば搬送部のモーターの一つを駆動させるといった、より機器のハードウェアの構成に近い制御を行ってもよい。また、デバイス操作サービス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のカーネルやコア等のスケジュール管理や基本ハードウェアを管理するプログラムやデータ等はファームウェアに含まれていてもよい。また、OS230は、別途、デバイスドライバーやスクリプト等の制御プログラムを追加可能であってもよい。このデバイスドライバーは、パフォーマンスを重視した言語であるC言語、C++言語、アセンブラ言語等で作成されていてもよい。
【0038】
拡張アプリプラットフォーム300は、標準機能サービス310、拡張機能サービス320、OSインストールサービス330(オペレーティングシステムインストールサービス)、及び拡張アプリ管理部340(拡張アプリケーション管理部)を備えている。
【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】
OSインストールサービス330は、OS230に機能を追加するためのサービス等である。
OSインストールサービス330は、OS230上にデバイスドライバーやスクリプト等の制御プログラムをインストールする。この場合、OSインストールサービス330は、ROMやフラッシュメモリー等に記憶されたファームウェアは変更せず、追加的な変更を行ってもよい。この上で、OSインストールサービス330は、OS230の設定ファイルの内容を変更することも可能である。このため、OSインストールサービス330は、例えば、「var」等のディレクトリーに保存されたファイルを作成、変更、削除等したり、レジストリー等のデータベースを変更したりしてもよい。
なお、OSインストールサービス330は、ファームウェアの一部又は全体を変更又はアップデート等することも可能である。
【0043】
拡張アプリ400は、拡張アプリプラットフォーム300上で実行されるアプリケーションのプログラム及びデータである。拡張アプリ400は、標準機能サービス310を呼び出して標準アプリ120の機能を利用し、拡張機能サービス320を呼び出して画像形成装置1の各部の機能を利用し、又はOSインストールサービス330を呼び出してOS230への追加の機能をインストールする等の処理を実行することが可能である。このため、拡張アプリ400により、画像形成装置1単体では使用できない各種処理を行わせることが可能となる。
また、拡張アプリ400は、拡張アプリプラットフォーム300上で動作する実行ファイルと、クラス情報を含む各種データとを含んで構成されてもよい。この場合、拡張アプリ400の実行ファイルは、例えば、各種スクリプト言語のファイルや、Java(登録商標)アプリの中間言語のファイルや、「ネイティブ」の実行ファイル等のアプリのバイナリのファイルであってもよい。拡張アプリ400は、処理スピードや必要メモリー容量等のリソースの制限が少ない場合はスクリプト言語のファイルや中間言語のファイルで記載されていてもよい。また、拡張アプリ400は、リソースの制限がある場合にはパフォーマンスに優れるC言語やC++言語やアセンブラ言語等で記載されていてもよい。拡張アプリ400は、この他にも、必要なデータを含んでいてもよい。
拡張アプリ400は、例えば、OCR(Optical Character Recognition、光学文字認識)、監視カメラアプリ、ウォーターマーク作成、請求書作成、社員名簿管理、伝票管理、契約書管理、名刺管理、PDF作成、帳簿管理、グループ管理等の実用アプリを含む。また、拡張アプリ400は、OS230上のデバイスドライバーやファームウェア等の追加変更を行うインストーラーアプリ、その他の管理アプリ等であってもよい。
また、複数の拡張アプリ400が備えられていてもよい。また、拡張アプリ400は、画像形成装置1や他の端末等(図示せず)からインストールされて記憶部19に記憶されてもよい。また、拡張アプリ400は、外部の記憶媒体に記憶されていてもよい。また、拡張アプリ400は、画像形成装置1の機種固有情報に対応して実行可能か否かが選択されてもよい。また、各拡張アプリ400をインストールや実行する場合、当該画像形成装置1と対応付けられて使用可能な状態にする「アクティベーション」が必要であってもよい。なお、画像形成装置1の機種毎に別々の拡張アプリ400がインストールされてもよい。
【0044】
なお、
図2に示す各部は、記憶部19のHDDやフラッシュメモリー等に記憶された制御プログラムをRAM等に読み出して、制御部10が実行することで実現することが可能である。
また、
図2に示す各部は、
図1に示すハードウェア資源である各部にアクセスして制御したり、各種データの読み書き、送受信等を行うことが可能である。
【0045】
〔画像形成装置1による拡張アプリ実行処理〕
次に、
図3〜
図6を参照して、本発明の実施形態に係る画像形成装置1による拡張アプリ実行処理の説明を行う。
本実施形態の拡張アプリ実行処理は、拡張アプリ400を実行し、呼び出される標準アプリ120やハードウェア資源の機能に対応した処理を行う。また、拡張アプリ実行処理にて、OS230上へのデバイスドライバーのインストール等も行う。
本実施形態に係る拡張アプリ実行処理は、主に画像形成装置1の制御部10が、記憶部19に記憶されたプログラムを、各部と協働し、ハードウェア資源を用いて実行する。
以下で、
図3のフローチャートを参照して、拡張アプリ実行処理の詳細をステップ毎に説明する。
【0046】
(ステップS101)
まず、拡張アプリ管理部340が、拡張アプリ実行開始処理を行う。
拡張アプリ管理部340は、接続された記憶媒体、図示しないサーバーや端末等から拡張アプリ400がインストールされ、ユーザーから実行の指示があった場合、この拡張アプリ400の実行を開始させる。
なお、拡張アプリ管理部340は、デバイスドライバーのインストーラーアプリであった場合に、インストールせずに実行させてもよい。
【0047】
(ステップS102)
ここで、標準機能サービス310が、標準アプリ120を呼び出すか否かを判断する。標準機能サービス310は、拡張アプリ400が標準アプリ120の機能を利用するための呼び出しを行う場合にYes、それ以外の場合はNoと判断する。
Yesの場合、標準機能サービス310は、処理をステップS103に進める。
Noの場合、標準機能サービス310は、処理をステップS104に進める。
【0048】
(ステップS103)
標準アプリ120の呼び出しを行う場合、標準機能サービス310及び標準アプリサービスIF部110が、標準アプリ機能利用処理を行う。
図4によると、標準機能サービス310は、拡張アプリ400からの拡張アプリ管理部340を介した標準機能サービス310の呼び出しがあった場合、これを標準アプリサービスIF部110に通知する。
標準アプリサービスIF部110は、拡張アプリプラットフォーム300の標準機能サービス310から呼び出された機能に対応する標準アプリ120の機能を呼び出して、実行させる。
標準アプリサービスIF部110は、例えば、コピーアプリ121を呼び出す場合、コピーの開始の画面を操作パネル部16に表示してもよい。また、標準アプリサービスIF部110は、コピーの解像度や色等のプロパティーを表示する等、アプリの一部を呼び出して当該機能を利用させてもよい。また、標準アプリサービスIF部110は、プリンターアプリ122を呼び出す場合、拡張アプリ400が取得したり指定したりした各種ジョブデータやファイル等を出力させてもよい。また、標準アプリサービスIF部110は、FAXアプリ123を呼び出す場合、受信したファクシミリの画像データを指定して拡張アプリ400に取得させたり、拡張アプリ400に指定されたファイル等を送信させたりしてもよい。また、標準アプリサービスIF部110は、拡張アプリ400から標準アプリ120をインストールしたり、削除したり、設定変更をしたりしてもよい。
【0049】
(ステップS104)
ここで、拡張機能サービス320が、画像形成装置1の各部の機能を呼び出すか否かを判断する。拡張機能サービス320は、拡張アプリ400が画像形成装置1のハードウェア資源を利用するため各部の機能を呼び出す場合にYes、それ以外の場合はNoと判断する。
Yesの場合、拡張機能サービス320は、処理をステップS105に進める。
Noの場合、拡張機能サービス320は、処理をステップS106に進める。
【0050】
(ステップS105)
各部の機能を呼び出す場合、拡張機能サービス320及びプラットフォームサービスIF部210が、各部制御用サービス利用処理を行う。
図5によると、拡張機能サービス320は、拡張アプリ400からの拡張アプリ管理部340を介した拡張機能サービス320の呼び出しがあった場合、これをプラットフォームサービスIF部210に通知する。
プラットフォームサービスIF部210は、拡張アプリプラットフォーム300の拡張機能サービス320から呼び出されると、呼び出された機能に対応する各部制御用サービス220の各機能を呼び出して、画像形成装置1のハードウェア資源を利用させる。
プラットフォームサービスIF部210は、例えば、画像処理機能サービスに対応した機能を呼び出す場合、拡張アプリ400から画像データ等を取得して、又は原稿読取部12から原稿を読み出して画像データとして記憶し、又は記憶された画像データを記憶部19から読み出し、画像処理の機能を特定して実行させる。この場合、プラットフォームサービスIF部210は、例えば、画像処理機能サービス221に対応した機能を呼び出す場合、画像データの拡大、縮小、回転、色変換、ノイズ除去、フォーマット変換、文字認識、透かし認識等の処理を画像処理機能サービス221により実行させる。また、プラットフォームサービスIF部210は、例えば、デバイス操作サービス222に対応した機能を呼び出す場合、操作パネル部16への描画、FAX送受信部18の制御、ユーザー認証、搬送部14の駆動、各部のステータスの取得等の処理をデバイス操作サービス222により実行させる。また、プラットフォームサービスIF部210は、ネットワーク通信サービス223に対応した機能を呼び出す場合、ネットワーク送受信部15により、各種プロトコルを用いたファイルの送受信、ストリーミング、認証データの送受信等をネットワーク通信サービス223により実行させる。
【0051】
(ステップS106)
ここで、OSインストールサービス330が、デバイスドライバーのインストール等を行うか否かを判断する。OSインストールサービス330は、OS230上にデバイスドライバー等のインストール等を行う場合にYes、それ以外の場合はNoと判断する。
Yesの場合、OSインストールサービス330は、処理をステップS107に進める。
Noの場合、OSインストールサービス330は、拡張アプリ実行処理を終了する。
【0052】
(ステップS107)
デバイスドライバー等のインストール等を行う場合、OSインストールサービス330が、機能追加処理を行う。
図6によると、OSインストールサービス330は、デバイスドライバー等をインストールする場合、拡張アプリ400から、拡張アプリ管理部340、拡張機能サービス320を介して取得したデバイスドライバー等を記憶部19に記憶する。OSインストールサービス330は、その後、OS230の設定を変更等する。これにより、OS230上に機能を追加可能となる。
なお、OSインストールサービス330は、ファームウェアの書き換えを行ってもよい。この場合、OSインストールサービス330は、拡張アプリ400から、上述のデバイスドライバーと同様に取得したファームウェアを、フラッシュメモリーやHDDに書き込む。
以上により、本実施形態に係る拡張アプリ実行処理を終了する。
【0053】
以上のように構成することで、以下のような効果を得ることができる。
近年、スマートフォンやタブレット等のモバイル向端末のビジネス活用の進展、クラウド・サービスやソーシャル・ネットワーキング・サービス(SNS)の普及等によりIT基盤自体が激変し、IT技術の進化のスピードに対応することが必要となっている。
しかしながら、特許文献1に記載されたような従来のプラットフォームでは、カスタマイズや拡張が容易ではなく、開発コストがかかっていた。
これに対して、本実施形態の画像形成装置1は、OS230上でハードウェア資源を管理する機器制御プラットフォーム200と、機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリ120を実行する標準アプリ実行部100と、標準アプリ実行部100により実行される標準アプリ120から標準アプリサービスIF部110に対応した機能を利用させる標準機能サービス310、プラットフォームサービスIF部210に対応したハードウェア資源を利用させる拡張機能サービス320、及び標準機能サービス310並びに拡張機能サービス320を呼び出し可能な拡張アプリ400を管理し実行させる拡張アプリ管理部340を含む拡張アプリプラットフォーム300とを備えることを特徴とする。
このように構成することで、階層化された拡張アプリプラットフォーム300により、拡張アプリ400から、標準アプリ120の機能又は各部に対応するハードウェア資源をそれぞれ利用可能となる。このため、顧客に合わせて構成を変更するカスタマイズが容易となり、開発コストを低減する画像形成装置を提供できる。
つまり、本実施形態の画像形成装置1は、標準アプリ120の機能を利用するだけでよい場合は、スクリプト言語等で素早く開発を行うことができる。逆に、ハードウェア資源を直接制御するカスタマイズの必要がある場合、標準アプリ120を経由せず、各部の機能を呼び出すことが可能となる。このように、本実施形態の画像形成装置1は、様々な顧客の要望に対応して、必要なカスタマイズのレベルの違いを、階層化された拡張アプリプラットフォーム300で吸収する。これにより、必要なカスタマイズのレベルの違いに容易に対応できる。また、階層化したサービスの拡張を行うことで、カスタマイズの対応範囲を明確にして、拡張アプリ400の開発を容易にすることが可能である。また、わざわざレベルの異なるSDK(Software Development Kit)とNDK(Native Development Kit)等を用意する必要もなくなる。
また、本実施形態の画像形成装置1は、プラットフォームを階層化するソフトウェアアーキテクチャーであるため、顧客の所望する新しいサービスへの対応した製品に対応した画像形成装置1を、開発期間を短くして提供できる。つまり、顧客が求める新しい技術をいち早く反映させ、最適な性能と機能を備えた画像形成装置の製品を安く早く提供することが可能となる。
【0054】
また、本実施形態に係る画像形成装置1は、拡張アプリプラットフォーム300が、OS230に機能を追加するためのOSインストールサービス330を更に備えることを特徴とする。
このように構成することで、OS230上の機能をファームウェアを変更せずに拡張することも可能となり、ファームウェア更新によるテスト等の開発費用等を削減できる。また、OS230に機能を追加する度にファームウェア全体を更新する必要もなくなり、ユーザーの使い勝手を向上させられる。
【0055】
また、本実施形態に係る画像形成装置1は、標準アプリ実行部100の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する標準アプリサービスIF部110と、機器制御プラットフォーム200の外部からハードウェア資源を利用するためのインターフェイスを提供するプラットフォームサービスIF部210とを更に備えることを特徴とする。
このように構成することで、標準アプリ120と機器制御プラットフォーム200とで統一した形式のインターフェイスを提供することが容易となり、拡張アプリ400を統一した開発環境で作成しやすくなり、開発コストを削減することができる。
また、標準アプリ120の機能と、機器制御プラットフォーム200により利用されるハードウェア資源とを別々に拡張アプリ400から実行可能となる。このため、拡張アプリ400の実行時のスピード等のパフォーマンスを向上させることができる。
【0056】
なお、上述の実施形態では、拡張アプリ400から標準アプリ120等が呼び出される例について説明したものの、標準アプリ120や各部制御用サービス220やOS230等からそれぞれ拡張アプリ400が呼び出されてもよい。また、標準アプリサービスIF部110により、標準アプリ120間で機能を呼び出してもよい。
【0057】
また、拡張アプリ400は、画像形成装置1の各機能を呼び出して所望の機能を実現させるための「一般アプリ」と、これらの一般アプリを管理する「管理アプリ」とを含んでいてもよい。
このように構成することで、拡張アプリ400により画像形成装置1を柔軟に制御することが可能となり、又、セキュリティを高めることができる。
【0058】
また、上述の実施形態では、標準アプリ120及び拡張アプリ400は既に記憶部19に記憶されている状態であるように説明した。
しかしながら、画像形成装置1に接続した外部の記憶媒体(図示せず)、外部のサーバーに接続した記憶媒体、ネットワーク経由で接続された外部の端末等から、別途、標準アプリ120及び拡張アプリ400をインストールして記憶部19に記憶させることも可能である。この場合、当該標準アプリ120及び拡張アプリ400は、インストールしたユーザー、画像形成装置1、又は端末からのみ使用可能なように設定してもよい。
このように構成することで、機能拡張を柔軟に実現することができ、管理コストを低減できる。
【0059】
また、画像形成装置1の記憶部19には、標準アプリや拡張アプリ400とは異なる種類のアプリを記憶させることも可能である。たとえば、記憶部19には、拡張アプリ400以外のWebアプリ等(以下「外部アプリ」という。)や、ユーザーのデータ等を記憶させてもよい。外部アプリは画像形成装置1の操作パネル部16のユーザーの指示で呼び出して、画像形成装置1に読み込んで実行させてもよい。
このように構成することで、拡張アプリプラットフォーム300のアプリと外部アプリとを柔軟に使い分けて、ユーザーの使い勝手をよくすることができる。
【0060】
<第二実施形態>
次に、
図7〜
図9により、本発明の第二実施形態に係る画像形成装置について説明する。
まず、
図7により、本発明の第二実施形態に係る画像形成装置の制御構成について説明する。
第二実施形態の画像形成装置は、第一実施形態の画像形成装置1(
図1)と同様のシステム構成である。また、第二実施形態の画像形成装置において、第一実施形態の画像形成装置1(
図2)と同一の番号は同一の構成要素を示す。
図7によると、第二実施形態の画像形成装置では、標準アプリ120に、各種標準アプリ124が、例えば、工場出荷状態で既にインストールされている。
【0061】
各種標準アプリ124は、後述の送信アプリ等を含んでいる。この送信アプリは、機能を拡張させたものであり、詳細は後述するが、例えば、送信した原稿を控えとして印刷するなどの機能を追加したものである。
【0062】
第二実施形態の画像形成装置において、コピーアプリ121、プリンターアプリ122、FAXアプリ123、各種標準アプリ124等は、次の(1)〜(5)の汎用インターフェイスを有し、後述の拡張機能サービス320による設定によってそれぞれの汎用インターフェイスの利用がON/OFFされるようになっている。また、以下のデバイスとは、ハードウェア資源である。
(1)アプリケーションサービス側が提供するインターフェイスは、1デバイス入力−複数デバイス出力とする単位で構成するが、中断/継続を繰り返すことにより、複数デバイス入力−複数デバイス出力を可能とするインターフェイスとすること。
(2)使用者側からサービスへの要求は、入出力デバイスを指定するが、その入力デバイス指定に“指定なし”を指定ことで、入力済み画像の編集のみを実施可能とするインターフェイスとすること。
(3)中断オプションを備え、画像入力後に出力を開始することなく、サービスの中断を可能とする構成とすること。
(4)終了オプションを備え、先に要求したサービス内容が終了しても、終了判断をサービスの使用者側でコントロールできる構成とすること。
(5)出力先補正オプションを備え、使用者側で指定した出力先に対して何らかのシステム上の都合により出力できなかった場合、適切な出力先にシステム側で自動的に補正するかどうかを、使用者側で指定できる構成とすること。
なお、汎用インターフェイスの詳細については後述する。
また、第二実施形態に係る画像形成装置の使用開始後に標準アプリ120がインストールされてもよい。つまり、例えば、FAX送受信部のFAXボードが取り付けられた際に、FAXアプリ123がインストールされる等の処理が行われてもよい。
また、ハードウェアの構成に関わらず、独自の標準アプリ120をユーザーがインストールすることも可能である。
【0063】
〔第二実施形態の画像形成装置による画像処理〕
次に、
図8〜
図9により、本発明の第二実施形態に係る画像形成装置による画像処理の説明を行う。なお、以下においては、例えば、
図7に示した標準アプリ120内のコピーアプリ121による処理の場合で説明する。また、
図8ではコピーアプリの標準機能について説明し、
図9ではコピーアプリの標準機能に、例えば原稿を継ぎ足し複数枚の原稿を読み込ませてコピーする機能を追加(拡張)した場合として説明する。
【0064】
まず、
図8に示すように、ユーザーは操作パネル部16でコピー設定を行い、操作パネル部16のスタートボタンを押下すると(ステップS201)、サービス開始となる(ステップS202)。ここでのコピー設定は、例えば操作パネル部16でコピーを選択したりすることである。ここで、コピーアプリ121から提供される汎用インターフェイスは、(Scan To Print)となっているものとする。すなわち、入力がScanで出力がPrintとなることを示している。
【0065】
次いで、機器制御プラットフォーム200の各部制御用サービス220の画像処理機能サービス221の処理に伴って提供されるインターフェイス(Scan To Print)により、画像処理開始となる(ステップS203)。
このとき、原稿読取部12が原稿の読み込み(スキャン)を開始する(ステップS204)。ここで読み込まれた画像データは、例えば、上述した記憶部19の文書ボックス内に保存される。画像形成部17は、保存された画像データに基づいて画像形成し、さらに記録紙に印刷(印刷開始)する(ステップS205)。
印刷が完了すると、各部制御用サービス220の画像処理機能サービス221の処理が終了となり(ステップS206)、コピーアプリ121の処理も終了となる(ステップS207)。
なお、原稿読取部12による原稿の読み込み(スキャン)、画像形成部17により画像形成等は、各部制御用サービス220の画像処理機能サービス221及びデバイス操作サービス222から提供される制御に関わるサービスによって行われる。
【0066】
以上がコピーアプリ121の標準機能である。
次に、
図9を参照し、この標準機能に対し、例えば原稿を継ぎ足し複数枚の原稿を読み込ませてコピーする機能を追加(拡張)した場合の画像処理について説明する。なお、この場合の機能は、上述した(1)〜(5)のうち、(1)の汎用インターフェイスの利用が拡張機能サービス320によりONされることにより追加(拡張)されるものである。
【0067】
まず、
図9に示すように、ユーザーは操作パネル部16でコピー設定を行う。ここでのコピー設定は、操作パネル部16でコピーを選択したりすることであるが、上述した機能の追加(拡張)の利用を選択したりすることも含まれる。
すなわち、例えば上述した機能の追加(拡張)により、操作パネル部16に連続読み込みモードのON/OFFを選択できる内容が表示されるようになっているものとする。この場合、ユーザーが連続読み込みモードのONを選択することで、連続読み込みモードにすることができる(ステップS210)。
そして、原稿をセットし、操作パネル部16のスタートボタンを押下することで(ステップS211)、連続読み込み開始となり(ステップS212)、サービス開始となる(ステップS213)。
ここで、コピーアプリ121から提供される汎用インターフェイスは、(Scan ToPrint)となっているものとする。すなわち、入力がScanで出力がPrintとなることを示している。また、機能の追加(拡張)による中断オプションがONになっていることも含まれる。
【0068】
次いで、機器制御プラットフォーム200の各部制御用サービス220の画像処理機能サービス221の処理に伴って提供されるインターフェイス(Scan To Box)により、画像処理開始となる(ステップS214)。ここで、Boxとは、例えば、上述した記憶部19の文書ボックスである。
このとき、原稿読取部12が原稿の読み込み(スキャン)を開始する(ステップS215)。読み込まれた画像データは、上記同様に、例えば、記憶部19の文書ボックス内に保存される(保存済原稿Page1)。
【0069】
ここで、原稿読取部12による原稿の読み込みが完了すると、各部制御用サービス220の画像処理機能サービス221の処理に伴うインターフェイス(Scan To Box)の提供処理が中断となり(ステップS216)、コピーアプリ121から提供される汎用インターフェイスの提供処理も中断となる(ステップS217、S218)。
続いて、次の原稿をセットし(ステップS219)、操作パネル部16のスタートボタンを押下することで、読み込み継続となり(ステップS220)、サービス開始となる(ステップS221)。
ここで、コピーアプリ121から提供される汎用インターフェイスは、上記同様に、(Scan ToPrint)となっている。すなわち、入力がScanで出力がPrintとなることを示している。また、機能の追加(拡張)による中断オプションがONになっていることも含まれる。
【0070】
次いで、機器制御プラットフォーム200の各部制御用サービス220の画像処理機能サービス221の処理に伴って提供されるインターフェイス(Scan To Box)により、画像処理開始となる(ステップS222)。ここで、Boxとは、上記同様に、上述した記憶部19の文書ボックスである。
このとき、原稿読取部12が原稿の読み込み(スキャン)を開始する(ステップS223)。読み込まれた画像データは、上記同様に、例えば、記憶部19の文書ボックス内に保存される(保存済原稿Page1 Page2)。
【0071】
ここで、原稿読取部12による原稿の読み込みが完了すると、各部制御用サービス220の画像処理機能サービス221の処理に伴うインターフェイス(Scan To Box)の提供処理が中断となり(ステップS224)、コピーアプリ121から提供される汎用インターフェイスの提供処理も中断となる(ステップS225、S226)。
そして、原稿の読み込みが終了となると(ステップS227)、例えば操作パネル部16の読み込み終了ボタンを押下することで(ステップS228)、サービス継続となる(ステップS229)。なお、読み込み終了ボタンを押下することで、上述した中断オプションはONからOFFに変更される。
ここで、コピーアプリ121から提供される汎用インターフェイスは、(None ToPrint)となっている。すなわち、入力が無しで出力がPrintとなることを示している。また、機能の追加(拡張)による中断オプションがOFFになっていることも含まれる。
【0072】
次いで、機器制御プラットフォーム200の各部制御用サービス220の画像処理機能サービス221の処理に伴って提供されるインターフェイス(Scan To Box)により、画像処理開始となる(ステップS230)。ここで、Boxとは、上記同様に、上述した記憶部19の文書ボックスである。
続いて、画像形成部17は、記憶部19の文書ボックス保存された画像データ(保存済原稿Page1 Page2)に基づいて画像形成し、さらに記録紙に印刷(印刷開始)する(ステップS231)。
【0073】
ここで、記録紙への印刷が完了すると、各部制御用サービス220の画像処理機能サービス221の処理に伴うインターフェイス(Scan To Box)の提供処理が終了となり(ステップS232)、コピーアプリ121から提供される汎用インターフェイスの提供処理も終了となる(ステップS233)。
【0074】
以上のように構成することで、以下のような効果を得ることができる。
上述したように、アプリをインストールし実行させるためには、画像処理装置に搭載されているOSの基本的な機能を利用できるように、それぞれのアプリケーションを開発する必要がある。
また、アプリケーションの開発に際しては、開発コストがかからないように、効率良く行うことも必要となってくる。
ここで、上述した特許文献1でのアーキテクチャーは、アプリサービス、共通システムサービス及び汎用OSによるプラットフォームと、このプラットフォーム側が提供する機能を利用するアプリケーションという2つの層で構成されている。
この構成により、アプリケーションの開発は、共通のプラットフォームを使用することが可能となり、開発効率を向上させることができる。
【0075】
ところが、アプリケーション側は、プラットフォーム側が提供する以上の機能を提供することができないという問題があった。
【0076】
これに対して、本実施形態の画像形成装置、画像形成方法及び画像形成プログラムによれば、標準アプリケーションの機能の拡張を、拡張機能サービスによる設定により行うことができることから、プラットフォーム(機器制御プラットフォーム)側が提供する機能の影響を受けずに標準アプリケーションの機能の拡張を行うことができる。
【0077】
なお、以上においては、上述したコピーアプリ121が提供する(1)〜(5)の汎用インターフェイスのうち、(1)の汎用インターフェイスに相当するものについて説明したが、この例に限るものではない。
すなわち、例えば(2)の汎用インターフェイスにより、入力済み画像の編集のみを行うことができる機能の追加(拡張)が可能となる。また、例えば(3)の汎用インターフェイスにより、画像入力後に出力を開始することなく、サービスの中断を行うことができる機能の追加(拡張)が可能となる。また、例えば(4)の汎用インターフェイスにより、先に要求したサービス内容が終了した後の終了判断をサービスの使用者側でコントロールできる機能の追加(拡張)が可能となる。また、例えば(5)の汎用インターフェイスにより、使用者側で指定した出力先でのトラブルに対し、システム側が自動的に適切な出力先を補正することを指定できる機能の追加(拡張)が可能となる。
【0078】
また、上述したコピーアプリ121が提供する(1)〜(5)の汎用インターフェイスを任意に組み合わせることで、本実施形態の画像形成装置の機能の利用の利便性を高めることができる。なお、このようなコピーアプリ121が提供する(1)〜(5)の汎用インターフェイスの利用及び組み合わせは、上述した拡張機能サービス320の更新によって行われるため、新たな機能が追加(拡張)されたコピーアプリ121をインストールすることなしに、ユーザーの要望に応じた機能の追加(拡張)を行うことができる。
また、標準アプリ120のコピーアプリ121に限らず、標準アプリ120のプリンターアプリ122、FAXアプリ123、各種標準アプリ124等においても、コピーアプリ121と同様に、上述した(1)〜(5)の汎用インターフェイスが予め組み込まれているため、拡張機能サービス320の更新により、ユーザーの要望に応じた機能の追加(拡張)を行うことができる。
【0079】
このように、本実施形態では、機器制御プラットフォーム200によりオペレーティングシステム(OS230)上でハードウェア資源が管理され、標準アプリケーション実行部(標準アプリ実行部100)により機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリケーション(標準アプリ120)が実行され、拡張アプリケーションプラットフォーム(拡張アプリプラットフォーム300)に含まれる拡張アプリケーション管理部(拡張アプリ管理部340)により、標準アプリケーション実行部(標準アプリ実行部100)により実行される標準アプリケーション(標準アプリ120)の機能を利用させる標準機能サービス310、ハードウェア資源を利用させる拡張機能サービス320、及び標準機能サービス310並びに拡張機能サービス320をそれぞれ呼び出し可能な拡張アプリケーション(拡張アプリ400)が管理されて実行され、標準アプリケーション(標準アプリ120)には、機能の拡張に対応したハードウェア資源を利用するための汎用インターフェイスが設けられ、前記汎用インターフェイスは、拡張機能サービス320による設定によって利用可能とされている構成としている。
これにより、標準アプリケーションの機能の拡張を、拡張機能サービス320による設定により行うことができることから、プラットフォーム(機器制御プラットフォーム)側が提供する機能の影響を受けずに標準アプリケーションの機能の拡張を行うことができる。
【0080】
また、本実施形態では、標準アプリ120の機能の追加(拡張)は、拡張機能サービス320の更新のみでよいことから、個別製品仕様への対応を柔軟かつ効率良く行うことができる。
また、本実施形態では、標準アプリ実行部100により実行される標準アプリ120から標準アプリサービスIF部110に対応した機能を利用させる標準機能サービス310、プラットフォームIF部サービスIF210に対応したハードウェア資源を利用させる拡張機能サービス320、及び標準機能サービス310並びに拡張機能サービス320を呼び出し可能な拡張アプリ400を管理し実行させる拡張アプリ管理部340を含む拡張アプリプラットフォーム300を備えている。
これにより、拡張アプリ400から、標準アプリ120の機能又は各部に対応するハードウェア資源をそれぞれ利用可能となり、顧客に合わせて構成を変更するカスタマイズが容易となり、開発コストの低減が図れる。
つまり、本実施形態の画像形成装置は、標準アプリ120の機能を利用するだけでよい場合は、スクリプト言語等で素早く開発を行うことができる。逆に、ハードウェア資源を直接制御するカスタマイズの必要がある場合、標準アプリ120を経由せず、各部の機能を呼び出すことが可能となる。
【0081】
また、本実施形態では、標準アプリ実行部100の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する標準アプリサービスIF部110を備えている。これにより、機器制御プラットフォーム200の間で統一した形式のインターフェイスを提供することが容易となり、拡張アプリ400を統一した開発環境で作成しやすくなり、開発コストを削減することができる。
また、機器制御プラットフォーム200により利用されるハードウェア資源を容易に拡張アプリ400から実行可能となる。このため、拡張アプリ400の実行時のスピード等のパフォーマンスを向上させることができる。
【0082】
なお、本実施形態での画像形成装置の記憶部19には、標準アプリ120や拡張アプリ400とは異なる種類のアプリを記憶させることも可能である。たとえば、記憶部19には、拡張アプリ400以外のWebアプリ等(以下「外部アプリ」という。)や、ユーザーのデータ等を記憶させてもよい。外部アプリは本実施形態の画像形成装置の操作パネル部16のユーザーの指示で呼び出して、本実施形態の画像形成装置に読み込んで実行させてもよい。
このように構成することで、拡張アプリプラットフォーム300のアプリと標準アプリ120とを柔軟に使い分けでき、ユーザーの使い勝手をよくすることができる。
また、本実施形態では、本発明を画像形成装置に適用した場合で説明したが、この例に限らず、各種情報処理装置にも適用可能である。つまり、ネットワークスキャナー、スキャナーをUSB等で別途接続したサーバー等を用いるような構成であってもよい。また、アプリをインストール可能な情報処理装置であるPC、スマートフォン、携帯電話、オフィス機器、産業用機器等にも適用可能である。
【0083】
<第三実施形態>
次に、
図10〜
図13により、本発明の第三実施形態に係る画像形成装置について説明する。
第三実施形態の画像形成装置は、第一実施形態の画像形成装置1(
図1)と同様のシステム構成、機能構成である。
【0084】
〔プラットフォームサービスIF部210、各部制御用サービス220の詳細な構成〕
図10により、プラットフォームサービスIF部210及び各部制御用サービス220の詳細な構成について説明する。
プラットフォームサービスIF部210は、各部制御用サービス220により第三実施形態の画像形成装置の各部を呼び出してハードウェア資源を利用させる。このため、プラットフォームサービスIF部210は、拡張機能サービス320から利用可能な各機能に対応したインターフェイスをそれぞれ備えている。
【0085】
より具体的に説明すると、プラットフォームサービスIF部210は、例えば、拡張機能サービス320からの利用する機能に対応したインターフェイスとして、画像処理機能サービスIF211、デバイス操作サービスIF212、及びネットワーク通信サービスIF213を含んでいる。
画像処理機能サービスIF211は、画像処理のデータの作成や変換や出力に関する機器制御プラットフォーム200の機能に対応するインターフェイスである。
デバイス操作サービスIF212は、各部のデバイスを制御するための機器制御プラットフォーム200の機能に対応するインターフェイスである。
ネットワーク通信サービスIF213は、ネットワークの送受信に関する機器制御プラットフォーム200の機能に対応するインターフェイスである。
【0086】
各部制御用サービス220は、プラットフォームサービスIF部210を介して利用されるハードウェア資源の各機能に対応した共通のインターフェイスを含むコンポーネント221を組み合わせたサービスとして構成される。
コンポーネント221は、例えば、API等やクラス等のプログラムのコンポーネント(部品、Component)及びデータであり、共通の呼び出し規約等のインターフェイスで相互に接続され、データを送受信することが可能である。各コンポーネント221は、ハードウェア資源の機能の利用に必要なパフォーマンスに対応して、アセンブラ言語等の低級言語〜スクリプト言語等の高級言語により記載される。また、コンポーネント221は、複数の階層に対応して配置され、階層間で接続されて構成されてもよい。
図10の例では、コンポーネント221a〜コンポーネント221hが、上位層、中位層、下位層の三層に対応して配置されている例を示している(これらのうち一つを示す際には、単に「コンポーネント221」という。)。コンポーネント221は、各層の間で接続される際に、層間で共通のインターフェイスによりデータを変換してもよい。また、コンポーネント221は、プラットフォームサービスIF部210を介して利用される機能に対応するインターフェイス用にそれぞれデータを変換してもよい。
図10の例では、上位層のコンポーネント221gとコンポーネント221hは、プラットフォームサービスIF部210の画像処理機能サービスIF211、デバイス操作サービスIF212、及びネットワーク通信サービスIF213に対応するように共通のインターフェイスでデータを変換する。
【0087】
また、各部制御用サービス220は、
図10の例の場合には、プラットフォームサービスIF部210の画像処理機能サービスIF211に対応した画像処理機能サービス、デバイス操作サービスIF212に対応したデバイス操作サービス、及びネットワーク通信サービスIF213に対応したネットワーク通信サービスとして機能させることが可能である。
【0088】
より具体的に説明すると、画像処理機能サービスは、画像処理のデータの作成や変換や出力に関するサービスを提供する。画像処理機能サービスは、例えば、原稿読取部12で解像度や色等を設定して原稿読取した画像データを記憶部19に記憶させ、画像処理部11に記憶部19の画像データや文書データ(図示せず)を画像処理させる。また、画像処理機能サービスは、ファイル等から、画像形成部17で画像形成する画像データを描画する。
【0089】
デバイス操作サービスは、各部のデバイスを制御するためのサービス等を提供する。デバイス操作サービスは、例えば、原稿読取部12から取得した画像データを記憶部19に記憶し、操作パネル部16の表示部に表示されるブラウザー上に画像を描画し、描画された画像データを画像形成部17に送信して画像形成させ、記憶部19に記憶された画像データをFAX送受信部18でファクシミリ送信させる。
また、デバイス操作サービスは、第三実施形態の画像形成装置にオプション機器、例えばフィニッシャーが存在した場合は製本やステープル等、ICカードや生体認証によるユーザー認証部が存在した場合は当該ユーザー認証部によるユーザー認証、カメラが存在した場合はカメラ画像の取得や視線検出等の各機能を呼び出すことも可能である。また、デバイス操作サービスは、例えば搬送部のモーターの一つを駆動させるといった、より機器のハードウェアの構成に近い制御を行ってもよい。また、デバイス操作サービスは、各部の状態の取得等の処理も実行してもよい。
【0090】
ネットワーク通信サービスは、ネットワークの送受信に関するサービス等を提供する。ネットワーク通信サービスは、例えば、ネットワーク送受信部15(
図1)から、TCP/IPやUDPの各種プロトコルにより、他の画像形成装置(図示せず)やサーバーや端末等の間でファイル等のデータを送受信する。たとえば、ネットワーク通信サービスは、スキャンした画像データ、文書ボックスのファイル等を送受信することも可能である。なお、ネットワーク通信サービスは、FAX送受信部18によるファクシミリ送受信の画像データの送受信、ユーザー認証部が存在した場合はユーザー認証結果、カメラが存在した場合は映像データの送受信等を行うことも可能である。また、ネットワーク通信サービスは、第三実施形態の画像形成装置の各部の状態、各部の機能の呼び出しの結果等についても、送受信可能である。
【0091】
なお、
図10の例では、各コンポーネント221は、層間で接続されているものの、同一層内で接続されたり、層を跨いで接続されたり、ループを形成するよう接続されたりしてもよい。また、対応するハードウェア資源が異なったりバージョンが異なったりするものの、共通のインターフェイスを含むコンポーネント221が備えられていてもよい。これにより、後述するように、動的に接続先を変更して代替するコンポーネント221を動的に選択可能である。また、よりハードウェアに近い下位層のコンポーネント221については低級言語で記載し、上位層のコンポーネント221は高級言語で記載するといった構成も可能である。また、コンポーネント221のいずれかを拡張アプリ400から拡張機能サービス320を使用してインストールしたり、ネットワークボード等をインストールする際等に、コンポーネント221をインストールしたりすることも可能である。
【0092】
なお、
図2、
図10に示す各部は、記憶部19のHDDやフラッシュメモリー等に記憶された制御プログラムをRAM等に読み出して、制御部10が実行することで実現することが可能である。
また、
図2、
図10に示す各部は、
図1に示すハードウェア資源である各部にアクセスして制御、各種データの読み書き、送受信等することが可能である。
【0093】
〔第三実施形態の画像形成装置による各部機能呼び出し処理〕
次に、
図11〜
図13により、本発明の第三実施形態に係る画像形成装置による各部機能呼び出し処理の説明を行う。
本実施形態の各部機能呼び出し処理では、拡張アプリ400から、拡張アプリ管理部340と拡張機能サービス320とを介して、第三実施形態の画像形成装置の機能に対応するハードウェア資源が呼び出される。この際、拡張機能サービス320により呼び出される機能に対応したプラットフォームサービスIF部210のインターフェイスから、各部制御用サービス220のコンポーネント221が動的に構成される。
本実施形態に係る各部機能呼び出し処理は、主に制御部10が、記憶部19に記憶されたプログラムを、各部と協働し、ハードウェア資源を用いて実行する。以下で、
図11のフローチャートを参照して、各部機能呼び出し処理の詳細をステップ毎に説明する。
【0094】
(ステップS301)
まず、拡張アプリ管理部340及び拡張機能サービス320が、各部機能呼び出し開始を行う。
拡張アプリ管理部340は、接続された記憶媒体、図示しないサーバーや端末等から拡張アプリ400がインストールされ、ユーザーから実行の指示があった場合、この拡張アプリ400の実行を開始する。
拡張アプリ管理部340により実行された拡張アプリ400は、拡張アプリ管理部340を介して拡張機能サービス320を呼び出す。
拡張機能サービス320は、この呼び出しにより、ハードウェア資源を利用するための機能を指定してプラットフォームサービスIF部210に通知する。
【0095】
(ステップS302)
次に、プラットフォームサービスIF部210はインターフェイス特定処理を行う。
プラットフォームサービスIF部210は、拡張機能サービス320に指定された機能に対応するインターフェイスを特定する。
図12の例では、ハードウェア資源として原稿読取部12にアクセスしてスキャン機能を利用したい場合、プラットフォームサービスIF部210は、デバイス操作サービスIF212をインターフェイスとして特定する。
【0096】
(ステップS303)
次に、プラットフォームサービスIF部210及び各部制御用サービス220は、コンポーネント呼び出し処理を行う。
プラットフォームサービスIF部210は、特定したインターフェイスを介して、各部制御用サービス220を呼び出す。
各部制御用サービス220は、呼び出されたインターフェイスに接続された各コンポーネント221を介して、接続された本実施形態の画像形成装置の各部の機能の呼び出しを試みる。
図12の例では、原稿読取部12のスキャン機能を利用するため、まずは、デバイス操作サービスIF212から、接続されたコンポーネント221h、コンポーネント221f、コンポーネント221cの順に、原稿読取部12へのアクセスを試みる。
【0097】
(ステップS304)
次に、各部制御用サービス220は、機能の呼び出しが成功したか否かを判断する。各部制御用サービス220は、接続されたコンポーネント221を介して、拡張機能サービス320に指定された機能が呼び出せた場合は、Yesと判断する。各部制御用サービス220は、当該機能に対応するコンポーネント221が存在しない、又は、当該機能に対応する各部に接続できない等で、ハードウェア資源の対応する機能を呼び出せない場合、機能が呼び出しに失敗したとして、Noと判断する。
図12の例では、各部制御用サービス220は、コンポーネント221cに原稿読取部12が接続されていないため、Noと判断する。
Yesの場合、各部制御用サービス220は、処理をステップS307に進める。
Noの場合、各部制御用サービス220は、処理をステップS305に進める。
【0098】
(ステップS305)
機能の呼び出しに失敗した場合、各部制御用サービス220は、代替接続があるか否かを判断する。各部制御用サービス220は、プラットフォームサービスIF部210のインターフェイスから接続された各コンポーネント221を探索し、指定された機能を呼び出し可能なコンポーネント221の代替接続がある場合、Yesと判断する。各部制御用サービス220は、探索の結果、代替接続がなかった場合は、Noと判断する。
Yesの場合、各部制御用サービス220は、処理をステップS306に進める。
Noの場合、各部制御用サービス220は、処理をステップS308に進める。
【0099】
(ステップS306)
代替接続があった場合、各部制御用サービス220は、代替コンポーネント選択処理を行う。
各部制御用サービス220は、各コンポーネント221を探索された代替接続に切り替えて選択する。この際、各部制御用サービス220は、この代替接続のルートを記憶部19に記憶しておいてもよい。
図13の例によると、各部制御用サービス220は、デバイス操作サービスIF212から、代替接続として、コンポーネント221h、コンポーネント221e、コンポーネント221b、原稿読取部12の順で接続する。
【0100】
(ステップS307)
ここで、各部制御用サービス220は、接続された各コンポーネントを介して、実際に画像形成装置の各部の機能の呼び出しを行う。
各部制御用サービス220は、接続又は代替接続された各コンポーネント221間でデータを送受信して、原稿読取部12を制御する。
図12、
図13の例では、各部制御用サービス220は、原稿読取部12から原稿の画像データを取得して、デバイス操作サービスIF212に送信する。画像データは、拡張機能サービス320に送信される。
これにより、画像形成装置のハードウェア資源を利用することが可能になる。
【0101】
各部制御用サービス220は、例えば、画像処理機能サービスに対応した機能を呼び出す場合、拡張アプリ400から画像データ等を取得して、画像処理の機能を特定して実行する。この場合、各部制御用サービス220は、原稿読取部12により原稿を読み出して画像データとして記憶し、又は記憶された画像データを記憶部19から読み出し、画像データの拡大、縮小、回転、色変換、ノイズ除去、フォーマット変換、文字認識、透かし認識等の処理を画像処理機能サービスにより実行する。また、各部制御用サービス220は、例えば、デバイス操作サービスに対応した機能を呼び出す場合、操作パネル部16への描画、FAX送受信部18の制御、ユーザー認証、搬送部14の駆動、各部のステータスの取得等の処理をデバイス操作サービスにより実行する。また、各部制御用サービス220は、ネットワーク通信サービスに対応した機能を呼び出す場合、ネットワーク送受信部15により、各種プロトコルを用いたファイルの送受信、ストリーミング、認証データの送受信等をネットワーク通信サービスにより実行する。
その後、各部制御用サービス220は、各部機能呼び出し処理を終了する。
【0102】
(ステップS308)
代替接続がない等で機能を呼び出せない場合、各部制御用サービス220は、エラー通知処理を行う。
各部制御用サービス220は、プラットフォームサービスIF部210に機能を呼び出せない旨の通信を行う。これを受信したプラットフォームサービスIF部210は、拡張機能サービス320に通知する。この通知を最終的に取得した拡張アプリ400は、エラー表示やログ記載等の処理を行う。
以上により、本実施形態に係る各部機能呼び出し処理を終了する。
【0103】
以上のように構成することで、以下のような効果を得ることができる。
近年、スマートフォンやタブレット等のモバイル向けの端末のビジネスへの活用の進展、クラウド・サービスやソーシャル・ネットワーキング・サービス(SNS)の普及等によりIT基盤自体が激変し、IT技術の進化のスピードに対応することが必要となっている。
しかしながら、特許文献1に記載されたような従来のプラットフォームでは、製品毎に別々にプラットフォームを作成する必要があり、開発コストがかかっていた。
これに対して、本実施形態の画像形成装置は、OS230上でハードウェア資源を管理する機器制御プラットフォーム200と、機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリ120を実行する標準アプリ実行部100と、標準アプリ実行部100により実行される標準アプリ120の機能を利用させる標準機能サービス310、ハードウェア資源を利用させる拡張機能サービス320、及び標準機能サービス310並びに拡張機能サービス320をそれぞれ呼び出し可能な拡張アプリ400を管理し実行させる拡張アプリ管理部340を含む拡張アプリプラットフォーム300と、機器制御プラットフォーム200の外部から拡張機能サービス320に対応したハードウェア資源を利用するためのインターフェイスを提供するプラットフォームサービスIF部210とを備え、機器制御プラットフォーム200は、プラットフォームサービスIF部210を介して利用されるハードウェア資源の各機能に対応した共通のインターフェイスを含むコンポーネント221を組み合わせて構成される各部制御用サービス220を含むことを特徴とする。
このように構成することで、製品系列が異なっても同一のプラットフォームを作成でき、様々な製品系列へ展開するプラットフォームとしての再利用性を高めることができる。また、機器の性能等に依拠したコンポーネント221を用意することで、同一の製品系列内で性能が異なっても同一の機器制御プラットフォーム200を使用でき、スケーラブル化が可能となる。つまり、製品が単機能のプリンター〜MFPのように異なる製品系列であっても、容易にコンポーネント221により各部制御用サービス220を作成することが可能となり、開発コストを低減できる。また、新技術の投入のしやすさを目的としたコンポーネント221の組み合わせも可能となる。
また、パフォーマンスがあまり必要ないコンポーネント221を最初にJava(登録商標)スクリプト等の高級言語で作成しておき、C言語等の低級言語で最適化したコンポーネント221を製品の展開に合わせて提供するといったことも可能になる。また、新しい製品を開発する際や顧客要望にあった新しい技術を取り込む場合に、機器制御プラットフォーム200内部のコンポーネント221を入れ替えたとしても、標準アプリ120及び拡張アプリ400への影響はなくなり、容易に対応可能となる。
【0104】
また、階層化された拡張アプリプラットフォーム300により、拡張アプリ400から、標準アプリ120の機能又は各部に対応するハードウェア資源をそれぞれ利用可能となる。このため、顧客に合わせて構成を変更するカスタマイズが容易となり、開発コストを低減する画像形成装置を提供できる。
つまり、本実施形態の画像形成装置は、様々な個客の要望に対応する点やあらゆるカスタマイズに対応することを考慮すると、標準アプリ120の機能を利用するだけでよい場合は、スクリプト言語等で素早く開発を行うことができる。逆に、ハードウェア資源を直接制御するカスタマイズが必要な場合、標準アプリ120を経由せず、各部の機能を呼び出すことが可能となる。このように、本実施形態の画像形成装置は、これらの必要なカスタマイズのレベルの違いを、階層化された拡張アプリプラットフォーム300で吸収することで、必要なカスタマイズのレベルの違いに容易に対応できる。また、階層化したサービスの拡張を行うことで、カスタマイズの対応範囲を明確にして、拡張アプリ400の開発を容易にすることが可能である。また、わざわざレベルの異なるSDK(Software Development Kit)とNDK(Native Development Kit)等を用意する必要もなくなる。
また、本実施形態の画像形成装置は、プラットフォームを階層化するソフトウェアアーキテクチャーであるため、様々な個客要望に応じたカスタマイズに対応させることができる。このため、個客の所望する新しいサービスへの対応した製品の開発期間を短くし、顧客が求める新しい技術をいち早く反映させ、最適な性能と機能を備えた画像形成装置の製品を安く早く提供することが可能となる。
【0105】
また、本実施形態に係る画像形成装置は、各部制御用サービス220のコンポーネント221は、複数の階層に対応して配置され、階層間で接続されて構成されることを特徴とする。
このように構成することで、機器制御プラットフォーム200で統一した形式のインターフェイスにより必要な下位層のコンポーネント221を提供することができ、開発の手間を省いて開発コストを削減できる。また、高級言語〜低級言語で作成されたコンポーネント221を階層に応じて用意することも可能となり、機能を呼び出す際のパフォーマンスを高めることができる。このため、標準アプリ120及び拡張アプリ400の実行時のスピード等を向上させることができる。
また、上述の各部機能呼び出し処理で示したように、複数の代替接続により動的に各部制御用サービス220の構成を変更できるため、工場出荷後に画像形成装置の構成が変わった場合でも容易に対応できる。また、オプション機器等を接続した場合、オプションボード等をアップグレードした場合等であっても、代替接続で各部制御用サービス220にすぐ変更して機能を利用可能であるため、サポートコストも削減できる。
また、一般的にプラットフォーム上で動くアプリの開発を容易にするために、共通のインターフェイスでコンポーネント221を接続することが可能であるため、アプリ開発を容易にすることができる。
【0106】
また、第三実施形態に係る画像形成装置は、標準アプリ実行部100の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する標準アプリサービスIF部110を更に備えることを特徴とする。
このように構成することで、機器制御プラットフォーム200の間で統一した形式のインターフェイスを提供することが容易となり、拡張アプリ400を統一した開発環境で作成しやすくなり、開発コストを削減することができる。
また、機器制御プラットフォーム200により利用されるハードウェア資源を容易に拡張アプリ400から実行可能となる。このため、拡張アプリ400の実行時のスピード等のパフォーマンスを向上させることができる。
【0107】
以上をまとめると、従来、特許文献1の技術では、低価格のプリンターや高機能なMFPといった製品系列に対応して別々にプラットフォームを作成する必要があり、開発コストがかかるという問題があった。
これに対して、本実施形態によれば、ハードウェア資源の各機能に対応した共通のインターフェイスを含むコンポーネント(部品)を組み合わせて構成される各部制御用サービスにより、製品系列が異なっても同一のプラットフォームを作成でき、開発コストを低減できる画像形成装置を提供することができる。
【0108】
<第四実施形態>
次に、
図14〜
図15により、本発明の第四実施形態に係る画像形成装置について説明する。
第三実施形態の画像形成装置は、第一実施形態の画像形成装置1(
図1)と同様のシステム構成であり、第一実施形態の画像形成装置1、第二実施形態の画像形成装置と同様の機能構成(
図2、
図7)である。
【0109】
また、プラットフォームサービスIF部210(
図2、
図7)は、機器制御プラットフォーム200の外部からハードウェア資源を利用するためのインターフェイスを提供する。
プラットフォームサービスIF部210は、各部制御用サービス220を呼び出して、第四実施形態に係る画像形成装置の各部のハードウェア資源を利用させる。プラットフォームサービスIF部210は、例えば、API等、又はOS230上のサービス等として提供されていてもよい。また、プラットフォームサービスIF部210は、C言語の構造体、C++言語のクラス、その他のオブジェクト、ルーチン、関数、ヘッダーファイル、オブジェクト、ライブラリー等(以下、「クラス等」という。)として提供されていてもよい。また、プラットフォームサービスIF部210は、例えば、Java(登録商標)等の中間言語で提供されていてもよい。
また、プラットフォームサービスIF部210は、次の(1)〜(6)の汎用インターフェイスを有し、標準アプリ120からの要求に従い、前記当する汎用インターフェイスを提供する。なお、以下のデバイスとは、ハードウェア資源である。
(1)プラットフォーム側が提供する画像処理サービスを、1デバイス入力−1デバイス出力とする単位で構成すること。
(2)入出力デバイスには、任意ストレージ(たとえば記憶部19)に割り当てられる文書ボックスと呼ぶデバイスを含め、その文書ボックスデバイスを複数の画像処理サービスで指定することにより、画像処理サービス間の連携を可能とする構成とすること。
(3)出力デバイスに、同一文書ボックスを指定することで、既に文書ボックスに保存されている画像ページに対して、画像ページを追加することができる構成とすること。
(4)文書ボックスに保存されているページ単位に出力方法の設定を可能とし、その設定を変更することで、画像出力方法を変更できる構成とすること。
(5)文書ボックスに保存されているページの削除、順番変更を可能とする構成とすること。
(6)入出力デバイスを同一の文書ボックスに指定することで、ボックス保存画像を、ボックス出力方法に応じた画像に編集することができる構成とすること。
なお、汎用インターフェイスの詳細については後述する。
【0110】
〔第四実施形態の画像形成装置による画像処理〕
次に、
図14〜
図15により、本発明の第四実施形態に係る画像形成装置による画像処理の説明を行う。なお、以下においては、例えば、
図2、
図7に示した標準アプリ120の各種標準アプリ124内の送信アプリがネットワーク送信を行う場合で説明する。また、
図14では送信アプリの標準機能について説明し、
図15では送信アプリの標準機能に、例えば送信した原稿を控えとして印刷する機能を追加(拡張)した場合として説明する。
【0111】
まず、
図14に示すように、ユーザーは原稿をセットし、操作パネル部16で送信設定を行い、操作パネル部16のスタートボタンを押下すると(ステップS401)、サービス開始となる(ステップS402)。ここでの送信設定は、例えば操作パネル部16で相手先(Host)を選択したりすることである。ここで、送信アプリから提供されるインターフェイスは、(Scan To Host)となっているものとする。すなわち、入力がScanで出力がHostとなることを示している。
【0112】
次いで、機器制御プラットフォーム200の各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Scan To Host)により、画像処理開始となる(ステップS403)。ここで、各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Scan To Host)は、上述したプラットフォームサービスIF部210が提供する(1)〜(6)の汎用インターフェイスのうち、(1)の汎用インターフェイスに相当するものである。
このとき、原稿読取部12が原稿の読み込み(スキャン)を開始する(ステップS404)。ここで読み込まれた画像データは、例えば、記憶部19の文書ボックス内に保存される。画像形成部17が保存された画像データに基づいて画像形成した後、ネットワーク送受信部15による送信開始によってHostへ送信される(ステップS405)。ネットワーク送受信部15による送信が完了すると、各部制御用サービス220の画像処理サービス221の処理が終了となり(ステップS406)、送信アプリの処理も終了となる(ステップS407)。
なお、原稿読取部12による原稿の読み込み(スキャン)、画像形成部17による画像形成、ネットワーク送受信部15による送信等は、画像処理サービス221、デバイス操作サービス222及びネットワーク通信サービス223から提供される制御に関わるサービスによって行われる。
【0113】
以上が送信アプリの標準機能である。
次に、
図15を参照し、この標準機能に対し、送信した原稿を控えとして印刷する機能を追加(拡張)した場合の画像処理について説明する。なお、この場合の機能の追加(拡張)は、送信した原稿を控えとして印刷するように開発された新たな送信アプリをインストール(又は更新)することにより行われる。
【0114】
まず、
図15に示すように、ユーザーは原稿をセットし、操作パネル部16で送信設定を行い、操作パネル部16のスタートボタンを押下すると(ステップS410)、サービス開始となる(ステップS411)。
ここでの送信設定においては、例えば、機能が追加(拡張)された送信アプリにより、操作パネル部16に相手先(Host)の選択項目と、送信設定(控え印刷あり)の選択項目が表示されているものとする。ここで、送信設定(控え印刷あり)を選択し、さらに相手先(Host)を選択する。
また、送信アプリから提供されるインターフェイスは、(Scan To Host&Print)となっているものとする。すなわち、入力がScanで出力がHost&Printとなることを示している。
【0115】
次いで、機器制御プラットフォーム200の各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Scan To Box)により、画像処理開始となる(ステップS412)。ここで、Boxとは、例えば、上述した記憶部19の文書ボックスである。
また、各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Scan To Box)は、上述したプラットフォームサービスIF部210が提供する(1)〜(6)の汎用インターフェイスのうち、(1)の汎用インターフェイスに相当するものである。
このとき、原稿読取部12が原稿の読み込み(スキャン)を開始する(ステップS413)。読み込まれた画像データは、上記同様に、例えば、記憶部19の文書ボックス内に保存される。
【0116】
ここで、原稿読取部12による原稿の読み込みが完了すると、各部制御用サービス220の画像処理サービス221の処理に伴う汎用インターフェイス(Scan To Box)の提供処理が終了となる(ステップS414)。続いて、各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Box To Host)により、画像処理開始となる(ステップS415)。
ここで、各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Box To Host)は、上述したプラットフォームサービスIF部210が提供する(1)〜(6)の汎用インターフェイスのうち、(1)の汎用インターフェイスに相当するものである。
このとき、画像形成部17は、記憶部19の文書ボックス内に保存された画像データに基づいて画像形成した後、ネットワーク送受信部15による送信開始によってHostへ送信される(ステップS416)。ネットワーク送受信部15による送信が完了すると、各部制御用サービス220の画像処理サービス221の処理に伴う汎用インターフェイス(Box To Host)の提供処理が終了となる(ステップS417)。
続いて、各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Box To Print)により、画像処理開始となる(ステップS418)。
【0117】
ここで、各部制御用サービス220の画像処理サービス221の処理に伴って提供される汎用インターフェイス(Box To Print)は、上述したプラットフォームサービスIF部210が提供する(1)〜(6)の汎用インターフェイスのうち、(1)の汎用インターフェイスに相当するものである。
このとき、画像形成部17は、記憶部19の文書ボックス内に保存された画像データに基づいて画像形成し、さらに記録紙に印刷(印刷開始)する(ステップS419)。記録紙への印刷が完了すると、各部制御用サービス220の画像処理サービス221の処理に伴う汎用インターフェイス(Box To Print)の提供処理が終了となり(ステップS420)、送信アプリの処理も終了となる(ステップS421)。
なお、原稿読取部12による原稿の読み込み(スキャン)、画像形成部17による画像形成、ネットワーク送受信部15による送信等は、上記同様に、画像処理サービス221、デバイス操作サービス222及びネットワーク通信サービス223から提供される制御に関わるサービスによって行われる。
【0118】
なお、以上においては、上述したプラットフォームサービスIF部210が提供する(1)〜(6)の汎用インターフェイスのうち、(1)の汎用インターフェイスに相当するものについて説明したが、この例に限るものではない。
すなわち、例えば(2)の汎用インターフェイスにより、文書ボックスデバイスを複数の画像処理サービスで指定することにより、画像処理サービス間の連携を可能とする機能の追加(拡張)が可能となる。また、例えば(3)の汎用インターフェイスにより、既に文書ボックスに保存されている画像ページに対して、画像ページを追加することができる機能の追加(拡張)が可能となる。また、例えば(4)の汎用インターフェイスにより、文書ボックスに保存されているページ単位に出力方法の設定を変更することができる機能の追加(拡張)が可能となる。また、例えば(5)の汎用インターフェイスにより、文書ボックスに保存されているページの削除、順番変更を行うことができる機能の追加(拡張)が可能となる。また、例えば(6)の汎用インターフェイスにより、ボックス保存画像を、ボックス出力方法に応じた画像に編集することができる機能の追加(拡張)が可能となる。
【0119】
いずれにしても、プラットフォームサービスIF部210が提供する汎用インターフェイスを上述した(1)〜(6)とすることで、機器制御プラットフォーム200側の変更を行うことなく、新たな送信アプリのインストール(又は更新)により行われる新たな機能の追加(拡張)を行うことができる。
また、送信アプリに限らず、標準アプリ120のコピーアプリ121、プリンターアプリ122、FAXアプリ123、各種標準アプリ124等においても、機器制御プラットフォーム200側の変更を行うことなく、新たな機能の追加(拡張)を行うことができる。
また、上述した(1)〜(6)の汎用インターフェイスを組み合わせて利用することで、あらゆる機能への応用が可能となる。
【0120】
このように、本実施形態では、機器制御プラットフォーム200によりオペレーティングシステム(OS230)上でハードウェア資源が管理され、標準アプリケーション実行部(標準アプリ実行部100)により機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリケーション(標準アプリ120)が実行され、拡張アプリケーションプラットフォーム(拡張アプリプラットフォーム300)に含まれる拡張アプリケーション管理部(拡張アプリ管理部340)により、標準アプリケーション実行部(標準アプリ実行部100)により実行される標準アプリケーション(標準アプリ120)の機能を利用させる標準機能サービス310、ハードウェア資源を利用させる拡張機能サービス320及び標準機能サービス310並びに拡張機能サービス320をそれぞれ呼び出し可能な拡張アプリケーション(拡張アプリ400)が管理されて実行され、プラットフォームサービスインターフェイス部(プラットフォームサービスIF部210)により機器制御プラットフォーム200の外部から標準アプリケーション(標準アプリ120)の機能の拡張に対応したハードウェア資源を利用するための汎用インターフェイスが提供される。
これにより、プラットフォーム(機器制御プラットフォーム200)側が提供する機能の制約が無くなることから、プラットフォーム(機器制御プラットフォーム200)側を更新することなく、アプリケーション(アプリ)による機能の拡張を行うことができる。
【0121】
また、本実施形態では、アプリケーション(アプリ)の開発に際しては、機能の拡張のみでよいことから、個別製品仕様への対応を柔軟かつ効率良く行うことができる。
また、本実施形態では、標準アプリ実行部100により実行される標準アプリ120から標準アプリサービスIF部110に対応した機能を利用させる標準機能サービス310、プラットフォームIF部サービスIF210に対応したハードウェア資源を利用させる拡張機能サービス320、及び標準機能サービス310並びに拡張機能サービス320を呼び出し可能な拡張アプリ400を管理し実行させる拡張アプリ管理部340を含む拡張アプリプラットフォーム300を備えている。
これにより、拡張アプリ400から、標準アプリ120の機能又は各部に対応するハードウェア資源をそれぞれ利用可能となり、顧客に合わせて構成を変更するカスタマイズが容易となり、開発コストの低減が図れる。
つまり、本実施形態の画像形成装置は、標準アプリ120の機能を利用するだけでよい場合は、スクリプト言語等で素早く開発を行うことができる。逆に、ハードウェア資源を直接制御するカスタマイズの必要がある場合、標準アプリ120を経由せず、各部の機能を呼び出すことが可能となる。
【0122】
以上をまとめると、従来、特許技術1では、プラットフォーム側が提供する機能には制約があるため、プラットフォームが提供する既存の機能以上のアプリケーション開発を行うことができない。このようなことから、アプリケーションによる機能を拡張するためには、プラットフォーム側を更新する必要があるという問題があった。
これに対して、本実施形態の画像形成装置、画像形成方法及び画像形成プログラムによれば、プラットフォーム(機器制御プラットフォーム)側が提供する機能の制約が無くなることから、プラットフォーム(機器制御プラットフォーム)側を更新することなく、アプリケーションによる機能の拡張を行うことができる。
【0123】
<第五実施形態>
次に、
図16〜
図19により、本発明の第五実施形態に係る画像形成装置について説明する。
まず、
図16により、本発明の第五実施形態に係る画像形成装置の制御構成について説明する。
第五実施形態の画像形成装置は、第一実施形態の画像形成装置1(
図1)と同様のシステム構成である。また、第二実施形態の画像形成装置において、第一実施形態の画像形成装置1(
図2)と同一の番号は同一の構成要素を示す。
【0124】
第五実施形態の画像形成装置は、階層的なブロック構造として、標準アプリ実行部100(標準アプリケーション実行部)、機器制御プラットフォーム200、拡張アプリプラットフォーム300(拡張アプリケーションプラットフォーム)、及び拡張アプリ400を備えている。制御部10が本発明の制御プログラムを実行することにより、標準アプリ実行部100、機器制御プラットフォーム200、拡張アプリプラットフォーム300が実現される。さらに、制御部10は、
図16に示す制御構成に基づいて、拡張アプリ400、標準アプリ120、OS230を実行することができる。具体的には、拡張アプリプラットフォーム300上で拡張アプリ400が実行される構成となっている。また、拡張アプリプラットフォーム300とは別に、標準アプリ120を管理し実行するパネル処理実行部500を備えている。パネル処理実行部500も、制御部10が本発明の制御プログラムを実行することにより実現される。
【0125】
本実施形態のパネル処理実行部500は、パネルアプリ520を実行することで、操作パネル部16の動作に対応する処理、各標準アプリ120間での共通の処理、及び標準アプリ120を呼び出す処理を実行する。
また、パネル処理実行部500は、標準アプリサービスIF部110により標準アプリ120を呼び出すか、又は直接、標準アプリ120を呼び出す。
【0126】
パネル処理実行部500は、パネルアプリ520を含んでいる。
パネルアプリ520は、操作パネル部16の処理の専用アプリである。パネルアプリ520は、操作パネル部16の動作に対応する処理、各標準アプリ120間での共通の処理、及び標準アプリ120を呼び出す処理のプログラムやデータ等を含んでいる。
パネルアプリ520は、操作パネル部16の動作に対応する処理として、例えば、操作パネル部16の入力部20からのユーザーの指示や表示部21への表示等の動作に対応した処理を含んでいてもよい。具体的には、パネルアプリ520は、例えば、入力部20のボタンの状態により各部の状態を表示したり、各標準アプリ120や拡張アプリ400を選択して実行させる画面等を表示したりする処理を含んでいてもよい。
また、パネルアプリ520は、各標準アプリ120間の共通の処理として、各標準アプリ120間で共通で使用されるGUIの入力や表示、各標準アプリ120に対応したジョブに関する共通の処理等を含んでいてもよい。また、パネルアプリ520は、共通の処理として、例えば、専用のブラウザー等により、共通で使用されるGUIの入力部20による入力や表示部21への表示等の処理を含んでいてもよい。また、パネル処理実行部500は、共通の処理の結果を表示部21で表示、画像形成部17で記録、ネットワーク送受信部15で送信等することで、出力してもよい。また、パネル処理実行部500は、標準アプリ120の管理を行ってもよい。なお、各標準アプリ120間の共通の処理は、全ての標準アプリ120間で共通でなくてもよく、例えば、二つ以上の標準アプリ120間で共通の処理であってもよい。
また、パネルアプリ520は、標準アプリ120を呼び出す処理として、例えば、標準アプリサービスIF部110を介して標準アプリ120を呼び出すか、又は、標準アプリ120を直接呼び出す処理が含まれていてもよい。また、標準アプリ120を呼び出す処理において、標準アプリ120の一部を呼び出して機能を利用する処理が含まれていてもよい。
また、パネルアプリ520は、製品毎に異なる画面のデータを変更することで、共通の操作体系で使用可能なように構成してもよい。また、パネルアプリ520は、拡張アプリ400を呼び出す処理を含んでいてもよい。
なお、パネルアプリ520は、工場出荷時のファームウェアに含まれていてもよい。また、パネルアプリ520は、OSインストールサービス330によるファームウェアの更新時等に、更新や変更等されてもよい。
【0127】
〔第五実施形態の画像形成装置によるパネルアプリ実行処理〕
次に、
図17〜
図19を参照して、本発明の第五実施形態に係る画像形成装置によるパネルアプリ実行処理の説明を行う。
本実施形態のパネルアプリ実行処理は、パネルアプリ520により、操作パネル部16の動作に対応する処理、又は標準アプリ120間で共通の処理を実行する。また、標準アプリサービスIF部110経由、又は直接に、標準アプリ120が呼び出される。
本実施形態に係るパネルアプリ実行処理は、主に本実施形態の画像形成装置の制御部10が、記憶部19に記憶されたプログラムを、各部と協働しハードウェア資源を用いて実行する。
以下で、
図17のフローチャートを参照して、パネルアプリ実行処理の詳細をステップ毎に説明する。
【0128】
(ステップS501)
まず、パネル処理実行部500が、パネルアプリ実行開始処理を行う。
パネル処理実行部500は、本実施形態の画像形成装置の電源ボタン(図示せず)がオンにされ、又は操作パネル部16の入力部20のボタンの押下により省電力状態から復帰した場合等に、パネルアプリ520の実行を開始する。
パネル処理実行部500は、パネルアプリ520の処理により、ユーザーの操作パネル部16の入力部20からの指示を取得する。
また、パネル処理実行部500は、ジョブのデータをネットワーク送受信部15やFAX送受信部18等から取得してもよい。
【0129】
(ステップS502)
次に、パネル処理実行部500が、パネル動作の処理を実行するか否かを判断する。パネル処理実行部500は、操作パネル部16の動作に対応する処理を実行する場合は、Yesと判断する。パネル処理実行部500は、それ以外の場合は、Noと判断する。
Yesの場合、パネル処理実行部500は、処理をステップS503に進める。
Noの場合、パネル処理実行部500は、処理をステップS504に進める。
【0130】
(ステップS503)
パネル動作の処理を実行する場合、パネル処理実行部500が、パネル動作対応処理を行う。
パネル処理実行部500は、操作パネル部16の入力部20から取得したユーザーの指示に対応したパネル動作の処理を実行する。
パネル処理実行部500は、例えば、入力部20の動作モード等のボタンの状態に対応した各部の状態の画像をブラウザー等で描画して、表示部21に表示する。この場合、パネル処理実行部500は、各種標準アプリ120の取得した各部の状態のデータを記憶部19から読み出して表示してもよい。また、パネル処理実行部500は、機器制御プラットフォーム200により各部の機能を呼び出して、各部の状態を取得してもよい。また、パネル処理実行部500は、各標準アプリ120の機能を呼び出すための選択画面を、表示部21に表示してもよい。また、パネル処理実行部500は、拡張アプリ400の選択やインストールのための画面を表示部21に表示してもよい。
その後、パネル処理実行部500は、パネルアプリ実行処理を終了する。なお、パネル処理実行部500は、パネルアプリ実行処理を終了後、操作パネル部16の入力部20からの指示やジョブのデータの取得をまた待つ。
【0131】
(ステップS504)
パネル動作の処理を実行しない場合、パネル処理実行部500が、標準アプリ120間で共通の処理を行うか否かを判断する。パネル処理実行部500は、各標準アプリ120間の共通の処理を行う場合、Yesと判断する。パネル処理実行部500は、それ以外の場合、Noと判断する。
Yesの場合、パネル処理実行部500は、処理をステップS505に進める。
Noの場合、パネル処理実行部500は、処理をステップS506に進める。
【0132】
(ステップS505)
標準アプリ120間で共通の処理を行う場合、パネル処理実行部500が、標準アプリ間共通処理を行う。
パネル処理実行部500は、GUIの処理として、例えば、エラー画面や認証画面等の各種画面を操作パネル部16の表示部21に表示してもよい。また、パネル処理実行部500は、各標準アプリ120の機能を呼び出すための画面等を表示部21に表示してもよい。また、パネル処理実行部500は、例えば、各標準アプリ120に対応したジョブに関する共通の処理を実行してもよい。パネルアプリ520は、例えば、ネットワーク送受信部15やFAX送受信部18経由で受信した画像データや文書データを、プリンターアプリ122はFAXアプリ123に送信してもよい。
また、パネル処理実行部500は、これらの共通の処理の結果を操作パネル部16の表示部21等に表示したり、画像形成部17で記録紙に記録したり、ネットワーク送受信部15でサーバー(図示せず)や端末等に送信したりして出力してもよい。また、パネル処理実行部500は、各標準アプリ120のインストール、設定の変更、削除等の管理を行うための画面を表示部21に表示してもよい。
その後、パネル処理実行部500は、パネルアプリ実行処理を終了する。
【0133】
(ステップS506)
ここで、パネル処理実行部500が、標準アプリ120を呼び出すか否かを判断する。パネル処理実行部500は、ユーザーの指示やジョブのデータ等により、標準アプリ120の機能を利用するための呼び出しを行う場合にYesと判断する。パネル処理実行部500は、それ以外の場合、つまり操作パネル部16の動作に対応する処理を行う場合にはNoと判断する。
Yesの場合、パネル処理実行部500は、処理をステップS507に進める。
Noの場合、パネル処理実行部500は、パネルアプリ実行処理を終了する。
【0134】
(ステップS507)
標準アプリ120の呼び出しを行う場合、パネル処理実行部500が、標準アプリサービスIF部110経由で標準アプリ120を呼び出すか否かを判断する。パネル処理実行部500は、標準アプリ120の機能を利用するための呼び出しが、標準アプリサービスIF部110経由であった場合、Yesと判断する。パネル処理実行部500は、それ以外の場合、つまり、標準アプリ120を直接呼び出す場合には、Noと判断する。
Yesの場合、パネル処理実行部500は、処理をステップS508に進める。
Noの場合、パネル処理実行部500は、処理をステップS509に進める。
【0135】
(ステップS508)
標準アプリサービスIF部110経由で標準アプリ120を呼び出す場合、パネル処理実行部500及び標準アプリサービスIF部110が、IF経由標準アプリ実行処理を行う。
図18によると、パネル処理実行部500は、呼び出したい標準アプリ120の機能を標準アプリサービスIF部110に通知する。標準アプリサービスIF部110は、この通知に対応した標準アプリ120を実行させて機能を利用させ、その結果等をパネル処理実行部500に通知する。
標準アプリサービスIF部110は、例えば、コピーアプリ121を呼び出す場合、コピーの開始の画面を操作パネル部16に表示してもよい。また、標準アプリサービスIF部110は、プリンターアプリ122を呼び出す場合、拡張アプリ400が取得したり指定したりした各種ジョブのデータ等を出力させてもよい。また、標準アプリサービスIF部110は、FAXアプリ123を呼び出す場合、受信したファクシミリの画像データを指定して拡張アプリ400に取得させたり、拡張アプリ400に指定されたファイル等を送信させたりしてもよい。また、標準アプリサービスIF部110は、標準アプリ120をインストールしたり、削除したり、設定変更をしたりしてもよい。
なお、パネル処理実行部500は、拡張アプリ400の選択やインストールに関するユーザーの指示が入力部20に入力された場合には、標準アプリサービスIF部110を介意して拡張アプリプラットフォーム300へ送信してもよい。
その後、パネル処理実行部500は、パネルアプリ実行処理を終了する。
【0136】
(ステップS509)
直接標準アプリ120を呼び出す場合、パネル処理実行部500が、標準アプリ直接実行処理を行う。
図19よると、パネル処理実行部500は、上述の標準アプリサービスIF部110と同様に、各標準アプリ120を呼び出して機能を利用させてもよい。
また、パネル処理実行部500は、標準アプリ120の機能の一部を呼び出して当該機能を利用させるといった、より標準アプリ120の内部の処理に対応した処理を行ってもよい。パネル処理実行部500は、例えば、コピーアプリ121を呼び出す場合、コピーの解像度や色等のプロパティーを取得して、表示部21に表示してもよい。また、パネル処理実行部500は、例えば、プリンターアプリ122を呼び出す場合、印刷するために記憶部19に記憶されたジョブや文書ボックス内の文書ファイルの一覧を取得して、表示部21に表示してもよい。また、パネル処理実行部500は、例えば、FAXアプリ123を呼び出す場合、ファクシミリ受信した画像データや受信元の一覧や、送信待ちの文書データの一覧等を取得して、表示部21に表示してもよい。
【0137】
なお、パネル処理実行部500は、各標準アプリ120を呼び出して実行している状態で、他の標準アプリ120の機能の一部を呼び出すような処理を行ってもよい。パネル処理実行部500は、例えば、FAXアプリ123等の実行時に、このコピーアプリ121の文書ファイルの一覧を表示部21に表示する処理を呼び出してもよい。
また、パネル処理実行部500は、複数の標準アプリ120を呼び出して、ウィンドウやタブ表示で分けて表示させるといった処理を行ってもよい。また、パネル処理実行部500は、バーチャルマシン等を用いて、保護されたメモリー領域で各標準アプリ120を呼び出してもよい。
また、パネル処理実行部500は、各部の機能を呼び出す場合、プラットフォームサービスIF部210により、ハードウェア資源を直接呼び出して利用してもよい。この場合は、プラットフォームサービスIF部210が、呼び出された機能に対応する各部制御用サービス220の各機能を呼び出して利用させる。
以上により、本実施形態に係るパネルアプリ実行処理を終了する。
【0138】
以上のように構成することで、以下のような効果を得ることができる。
特許文献1に記載されたような従来のプラットフォームでは、各サービスにかかる画面の制御や、入力部の操作等の制御を各アプリが別々に実行している。このような構成のプラットフォームにおいては、アプリをコピー、プリンター、FAX等の機能によって分けている場合、共通する処理であっても各アプリに含める冗長な構成とする必要があり、記憶領域を無駄に消費していた。
これに対して、本実施形態の画像形成装置は、OS230上でハードウェア資源を管理する機器制御プラットフォーム200と、機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリ120を実行する標準アプリ実行部100と、標準アプリ実行部100により実行される標準アプリ120から標準アプリサービスIF部110に対応した機能を利用させる標準機能サービス310、プラットフォームサービスIF部210に対応したハードウェア資源を利用させる拡張機能サービス320、及び標準機能サービス310並びに拡張機能サービス320を呼び出し可能な拡張アプリ400を管理し実行させる拡張アプリ管理部340を含む拡張アプリプラットフォーム300と、拡張アプリプラットフォーム300とは別に、パネルアプリ520を実行することで、ユーザーの指示を取得する操作パネル部16に対応する処理、複数の標準アプリ120間で共通の処理、及び標準アプリ120を呼び出す処理を実行するパネル処理実行部500とを備えることを特徴とする。
このように構成することで、操作パネル部16にかかる共通の処理がまとめられ、冗長な部分をなくすことが可能な構成となる。つまり、複数の標準アプリ120間で共通の処理をまとめることができ、記憶部19の記憶領域を節約できる。また、必要に応じて、標準アプリ120を呼び出す処理を専用のパネル処理実行部500で実行することで、標準アプリ120から標準アプリ120を呼び出すような再帰的な呼び出しを行う必要もなくなり、スタック等の記憶容量も節約することができる。
【0139】
また、従来のプラットフォームでは、複数のアプリ間で共通の処理が製品毎に変更が必要な処理であった場合、プラットフォーム自体に変更が必要になってしまっていた。よって、プラットフォーム側を先行して開発していた場合には、製品開発時にも変更を加える必要があり、プラットフォームの開発者のユーザーに負担が発生していた。また、製品開発のタイミングでのプラットフォームの変更となるため、開発時間がかかってしまっていた。このため、開発コストがかかっていた。
これに対して、本実施形態の画像形成装置は、操作パネル部16に対応する処理を拡張アプリプラットフォーム300とは別に、専用の共通の処理をまとめたパネルアプリ520としてパネル処理実行部500で実行する。これにより、製品毎に、パネルアプリ520のみ変更するだけでよくなり、プラットフォームの開発者のユーザーに負担がかからなくなる。また、パネルアプリ520に配置すべきで、各標準アプリ120にまたがるGUIのエラー画面や認証画面といった各標準アプリ120で共通な画面について、各標準アプリ120の開発時にいちいち作成してテストする必要がなくなる。また、製品毎に変更したいような画面をパネルアプリ520に含めることによって、製品毎に効率的な開発を行うことが可能となる。
また、操作パネル部16の共通の処理においては、パネルアプリ520の動作確認のみを行えばよいため、開発時間を短縮できる。また、拡張アプリプラットフォーム300の完成前であっても、エミュレーター等でパネルアプリ520の動作確認を行うことができるため、開発のタイミングに沿って、操作パネル部16の機能の実装が可能となる。
このため、開発効率を向上させ、開発コストを削減できる。
【0140】
また、本実施形態の画像形成装置は、階層化された拡張アプリプラットフォーム300により、拡張アプリ400から、標準アプリ120の機能又は各部に対応するハードウェア資源をそれぞれ利用可能となる。このため、顧客に合わせて構成を変更するカスタマイズが容易となり、開発コストを低減する画像形成装置を提供できる。
【0141】
また、本実施形態に係る画像形成装置は、標準アプリ実行部100の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する標準アプリサービスIF部110を備え、パネル処理実行部500は、標準アプリサービスIF部110により標準アプリ120を実行するか、直接、標準アプリ120を実行することが可能であることを特徴とする。
このように構成することで、標準アプリサービスIF部110により標準アプリ120を実行すると、標準アプリ120を実行するための処理を容易に実現することが可能となり、開発コストを削減できる。また、パネルアプリ520と拡張アプリ400とで共通するインターフェイスで標準アプリ120を呼び出すことが可能となる。よって、操作性や見た目を統一して、ユーザーの使い勝手を向上させることができる。
また、標準アプリサービスIF部110により、操作パネル部16から、各標準アプリ120と同様のインターフェイスで拡張アプリプラットフォーム300、拡張アプリ400と相互アクセスすることが可能となり、操作パネル部16と拡張アプリ400との連携を行うことが容易となる。
一方、パネル処理実行部500は、直接、標準アプリ120を実行することも可能である。これにより、拡張アプリ400からはアクセスできないような標準アプリ120の一部の機能を利用することが可能となる。また、より速度等のパフォーマンスの低下を起こさずに、標準アプリ120を使用することが可能となる。これにより、操作パネル部16から呼び出す必要がある各標準アプリ120の機能を柔軟に引き出し、ユーザーのカスタマイズ等の要求を容易に実現することが可能となる。
【0142】
また、標準アプリ120と機器制御プラットフォーム200とで統一した形式のインターフェイスを提供することが容易となり、拡張アプリ400を統一した開発環境で作成しやすくなり、開発コストを削減することができる。
また、標準アプリ120の機能と、機器制御プラットフォーム200により利用されるハードウェア資源とを別々に拡張アプリ400から実行可能となる。このため、拡張アプリ400の実行時のスピード等のパフォーマンスを向上させることができる。
【0143】
なお、上述の第五実施形態では、パネル処理実行部500にてパネルアプリ520を実行するように記載したものの、標準アプリ実行部100によりパネルアプリ520を実行してもよい。また、標準アプリサービスIF部110に、パネルアプリ520の機能が含まれるような構成であってもよい。
このように構成することで、パネル処理実行部500の開発を容易にし、全体の開発コストを削減することが可能となる。
【0144】
なお、上記第一〜第五実施形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【0145】
本発明は、画像形成装置以外の各種情報処理装置にも適用可能である。つまり、ネットワークスキャナ、スキャナーをUSB等で別途接続したサーバー等を用いるような構成であってもよい。また、アプリをインストール可能な情報処理装置であるPC、スマートフォン、携帯電話、オフィス機器、産業用機器等にも適用可能である。