(58)【調査した分野】(Int.Cl.,DB名)
前記機器制御プラットフォームは、前記拡張アプリケーションプラットフォームから前記標準アプリケーションの機能に対応する前記ハードウェア資源を利用するためのインターフェイスを提供するプラットフォームサービスインターフェイス部を更に備える
ことを特徴とする請求項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は、LCD等の表示部と、テンキー、スタート、キャンセル、コピー(複写)、FAX送信、スキャナー等の動作モードの切り換えのボタンと、選択された文書の印刷、送信、保存、記録等に関するジョブの実行に係る指示を行うためのボタン若しくはタッチパネル等の入力部とを備えている。
操作パネル部16は、ユーザーの指示を取得する。このユーザーの指示は、後述する拡張アプリ400(
図2)(Application Software、アプリケーション)のインストールや使用の指示を含む。また、ユーザーの指示により、各ユーザーの情報を入力、変更することも可能である。このため、操作パネル部16は、専用の制御部とROMやRAM等の記憶媒体を備えて、制御部10と連携してGUI(Graphical User Interface)の制御を行ってもよい。拡張アプリ400のインストールや使用時の操作パネル部16の制御の詳細については後述する。
また、操作パネル部16には、USBメモリーやフラッシュメモリーカードの記憶媒体や記憶媒体を内蔵した外部機器を接続するための接続部が備えられていてもよい。
【0016】
FAX送受信部18は、ファクシミリの送受信を行うFAXボード等である。
FAX送受信部18は、原稿読取部12で読み取られた画像データやネットワーク送受信部15から受信したファイル等を描画してファクシミリ送信する。また、FAX送受信部18は、記憶部19に記憶され、ファクシミリ受信された画像データを画像形成部17で画像形成させ、ネットワーク送受信部15から外部の端末へ送信する。
【0017】
記憶部19は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリー等の半導体メモリーやHDD(Hard Disk Drive)等の記憶媒体と、このコントローラー等を含む。
記憶部19のROMやフラッシュメモリーやHDDには、画像形成装置1の動作制御を行うための制御プログラム及びデータが記憶されている。これらの制御プログラム及びデータは、ファームウェアのような形式で提供されていてもよい。また、これらの制御プログラムとデータとは、実行時にRAM等に展開されて、制御部10により実行される。
また、記憶部19は、各種ジョブデータ、原稿読取部12でスキャンされた画像データ、画像処理部11で画像処理された画像データ、他の端末(図示せず)から送信された印刷文書等のファイル、接続された記憶媒体から読み出された各種ファイル、サムネイル画像のデータ等を記憶してもよい。
また、記憶部19は、ユーザーのアカウント設定も記憶してもよい。また、記憶部19には、ユーザー毎の文書ボックスの領域が含まれていてもよい。
【0018】
なお、画像形成装置1において、制御部10及び画像処理部11は、GPU内蔵CPU等やチップ・オン・モジュールパッケージのように、一体的に形成されていてもよい。
また、制御部10及び画像処理部11は、RAMやROMやフラッシュメモリー等を内蔵していてもよい。
【0019】
〔画像形成装置1の制御構成〕
次に、
図2により、画像形成装置1の制御構成について説明する。
画像形成装置1は、三つの階層的なブロック構造として、標準アプリ実行部100(標準アプリケーション実行部)、機器制御プラットフォーム200、拡張アプリプラットフォーム300(拡張アプリケーションプラットフォーム)、及び拡張アプリ400を備えている。制御部10が本発明の制御プログラムを実行することにより、標準アプリ実行部100、機器制御プラットフォーム200、拡張アプリプラットフォーム300が実現される。更に、制御部10は、
図2に示す制御構成に基づいて、拡張アプリ400、標準アプリ120、OS230を実行することができる。具体的には、拡張アプリプラットフォーム300上で拡張アプリ400が実行される構成となっている。
【0020】
標準アプリ実行部100は、機器制御プラットフォーム200で管理されたハードウェア資源を利用する標準アプリ120を実行する。標準アプリ実行部100は、機器制御プラットフォーム200上にインストールされた標準アプリ120と、この標準アプリ120に対応するサービスを備えている。
【0021】
機器制御プラットフォーム200は、OS230(Operating System、オペレーティングシステム)上で、画像形成装置1全体のハードウェア資源を管理し、機能単位で各部を制御する。
機器制御プラットフォーム200は、標準アプリ120の実行基盤となるAPI(Application Programming Interface)やミドルウェアやランタイムやリンカー等(以下、「API等」という。)、OS230上のサービス(Service、Daemon、以下「サービス等」という。)、スクリプト言語や中間言語の翻訳や実行を行うインタプリター(Interpreter)やJIT(Just In Time compiler)やバーチャルマシン等(以下、「バーチャルマシン等」という。)を含むプログラムやデータである。また、拡張アプリプラットフォーム300自体も、OS230上で動作している。
【0022】
拡張アプリプラットフォーム300は、標準アプリ120を呼び出して機能を利用し、機器制御プラットフォーム200を呼び出してハードウェア資源を利用し、拡張アプリ400を管理し実行させる。
拡張アプリプラットフォーム300は、拡張アプリ400の実行基盤となるAPI等やサービス等やバーチャルマシン等を含むプログラムやデータである。また、拡張アプリプラットフォーム300自体も、OS230上で動作している。
【0023】
拡張アプリ400は、拡張アプリプラットフォーム300上で各種処理を行うアプリのプログラム及びデータである。
【0024】
より詳しく説明すると、標準アプリ実行部100は、標準アプリ120、及び標準アプリサービスIF部110(標準アプリケーションサービスインターフェイス部)を備えている。
【0025】
標準アプリ120は、機器制御プラットフォーム200上で各種処理を行うアプリのプログラム及びデータである。
標準アプリ120は、ユーザーの指示を取得し、このユーザーの指示により画像形成装置の各種機能を利用する。また、標準アプリ120は、例えば、Java(登録商標)等の中間言語のアプリや、各種スクリプト言語等で記載されていてもよい。
【0026】
標準アプリ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をユーザーがインストールすることも可能である。
【0027】
標準アプリサービスIF部110は、アプリ実行部の外部から標準アプリ120の機能を利用するためのインターフェイスを提供する。
標準アプリサービスIF部110は、例えば、Java(登録商標)等のクラス、Java(登録商標)言語上のインターフェイス、ルーチン、関数、ヘッダーファイル、オブジェクト、ライブラリー等として提供されていてもよい。また、標準アプリサービスIF部110は、OS230上のサービス等として提供されていてもよい。また、標準アプリサービスIF部110は、標準アプリ120毎に異なるインターフェイスを提供していてもよい。
また、標準アプリサービスIF部110は、拡張アプリプラットフォーム300の標準機能サービス310により標準アプリ120の機能を利用するためのインターフェイスとして、標準アプリ120の機能に対応した共通のインターフェイスを提供する。この共通のインターフェイスの詳細については後述する。
なお、標準アプリサービスIF部110は、標準アプリ120の実行、インストール、設定の変更、削除等を行うことも可能である。
【0028】
機器制御プラットフォーム200は、プラットフォームサービスIF部210(プラットフォームサービスインターフェイス部)、各部制御用サービス220、及びOS230を備えている。
【0029】
プラットフォームサービスIF部210は、機器制御プラットフォーム200の外部からハードウェア資源を利用するためのインターフェイスを提供する。
プラットフォームサービスIF部210は、各部制御用サービス220を呼び出して、画像形成装置1の各部のハードウェア資源を利用させる。プラットフォームサービスIF部210は、例えば、API等、又はOS230上のサービス等として提供されていてもよい。また、プラットフォームサービスIF部210は、C言語の構造体、C++言語のクラス、その他のオブジェクト、ルーチン、関数、ヘッダーファイル、オブジェクト、ライブラリー等(以下、「クラス等」という。)として提供されていてもよい。また、プラットフォームサービスIF部210は、例えば、Java(登録商標)等の中間言語で提供されていてもよい。
【0030】
各部制御用サービス220は、画像形成装置1の機能に対応する各部を適切な方式で制御するサービス等である。
各部制御用サービス220は、例えば、プラットフォームサービスIF部210からの呼び出しに対応して、画像処理部11、操作パネル部16、ネットワーク送受信部15等を操作する。また、各部制御用サービス220は、コピー機能、ネットワークスキャン機能、文書ボックス機能等を呼び出すことができる。
また、各部制御用サービス220は、製品系列別に、異なるサービス等、API等、クラス等を組み合わせたものがファームウェアに含まれていてもよい。
【0031】
各部制御用サービス220は、画像処理機能サービス221、デバイス操作サービス222、及びネットワーク通信サービス223を含んでいる。
【0032】
画像処理機能サービス221は、画像処理のデータの作成や変換や出力に関するサービスを提供する。画像処理機能サービス221は、例えば、原稿読取部12で解像度や色等を設定して原稿読取した画像データを記憶部19に記憶させ、画像処理部11に記憶部19の画像データや文書データ(図示せず)を画像処理させる。また、画像処理機能サービス221は、ファイル等から、画像形成部17で画像形成する画像データを描画する。
【0033】
デバイス操作サービス222は、各部のデバイスを制御するためのサービス等を提供する。デバイス操作サービス222は、例えば、原稿読取部12から取得した画像データを記憶部19に記憶し、操作パネル部16の表示部に表示されるブラウザー上に画像を描画し、描画された画像データを画像形成部17に送信して画像形成させ、記憶部19に記憶された画像データをFAX送受信部18でファクシミリ送信させる。
また、デバイス操作サービス222は、画像形成装置1にオプション機器、例えばフィニッシャーが存在した場合は製本やステープル等、ICカードや生体認証によるユーザー認証部が存在した場合は当該ユーザー認証部によるユーザー認証、カメラが存在した場合はカメラ画像の取得や視線検出等の各機能を呼び出すことも可能である。また、デバイス操作サービス222は、例えば搬送部のモーターの一つを駆動させるといった、より機器のハードウェアの構成に近い制御を行ってもよい。また、デバイス操作サービス222は、各部の状態の取得等の処理も行ってもよい。
【0034】
ネットワーク通信サービス223は、ネットワークの送受信に関するサービス等を提供する。ネットワーク通信サービス223は、例えば、ネットワーク送受信部15(
図1)から、TCP/IPやUDPの各種プロトコルにより、他の画像形成装置(図示せず)やサーバーや端末等の間でファイル等の送受信を行う。たとえば、ネットワーク通信サービス223は、スキャンした画像データ、文書ボックスのファイル等を送受信することも可能である。なお、ネットワーク通信サービス223は、FAX送受信部18によるファクシミリ送受信の画像データの送受信、ユーザー認証部が存在した場合はユーザー認証結果、カメラが存在した場合は映像データの送受信等を行うことも可能である。また、ネットワーク通信サービス223は、画像形成装置1の各部の状態、各部の機能の呼び出しの結果等についても、送受信可能である。
【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は、この他にも、必要なデータを含んでいてもよい。
拡張アプリ400は、例えば、OCR(Optical Character Recognition、光学文字認識)、監視カメラアプリ、ウォーターマーク作成、請求書作成、社員名簿管理、伝票管理、契約書管理、名刺管理、PDF作成、帳簿管理、グループ管理等の実用アプリを含む。また、拡張アプリ400は、OS230上のデバイスドライバーやファームウェア等の追加変更を行うインストーラーアプリ、その他の管理アプリ等であってもよい。
また、複数の拡張アプリ400が備えられていてもよい。また、拡張アプリ400は、画像形成装置1や他の端末等(図示せず)からインストールされて記憶部19に記憶されてもよい。また、拡張アプリ400は、外部の記憶媒体に記憶されていてもよい。また、拡張アプリ400は、画像形成装置1の機種固有情報に対応して実行可能か否かが選択されてもよい。また、各拡張アプリ400をインストールや実行する場合、当該画像形成装置1と対応付けられて使用可能な状態にする「アクティベーション」が必要であってもよい。なお、画像形成装置1の機種毎に別々の拡張アプリ400がインストールされてもよい。
【0042】
〔標準アプリサービスIF部110の詳細な構成〕
図3により、標準アプリサービスIF部110と、標準機能サービス310と、各アプリとの関係について詳細に説明する。
標準アプリサービスIF部110は、標準アプリ120の機能に対応した共通のインターフェイスを提供する。このため、標準アプリサービスIF部110は、標準機能サービス310から利用可能な各機能に対応したインターフェイスをそれぞれ備えている。
また、標準アプリサービスIF部110は、標準アプリ120の有無を検索し、当該標準アプリ120が存在しない場合は、拡張アプリ400からの標準機能サービス310の利用を無効化する。
【0043】
より具体的に説明すると、標準アプリサービスIF部110は、例えば、標準アプリ120の機能に対応した共通のインターフェイスとして、コピーアプリサービスIF111、プリンターアプリサービスIF112、及びFAXアプリサービスIF113を含んでいる。
コピーアプリサービスIF111は、コピーアプリ121の機能に対応するインターフェイスである。
プリンターアプリサービスIF112は、プリンターアプリ122の機能に対応するインターフェイスである。
FAXアプリサービスIF113は、FAXアプリ123の機能に対応するインターフェイスである。
【0044】
なお、標準アプリサービスIF部110は、これらのインターフェイスの他にも、各種の標準アプリ120に対応するインターフェイスを含んでいてもよい。
また、標準アプリサービスIF部110は、標準アプリ120に含まれているアプリが機種やバージョン等で異なる場合、それぞれ対応してもよい。このような場合でも、標準機能サービス310からは、共通のインターフェイスで、当該標準アプリ120にアクセス可能である。
【0045】
また、
図2、
図3に示す各部は、記憶部19のHDDやフラッシュメモリー等に記憶された制御プログラムをRAM等に読み出して、制御部10が実行することで実現することが可能である。
また、
図2、
図3に示す各部は、
図1に示すハードウェア資源である各部にアクセスして制御したり、各種データの読み書き、送受信等を行うことが可能である。
【0046】
〔画像形成装置1による標準アプリ機能呼び出し処理〕
次に、
図4〜
図6を参照して、本発明の実施形態に係る画像形成装置1による標準アプリ機能呼び出し処理の説明を行う。
本実施形態の標準アプリ機能呼び出し処理では、拡張アプリ400を実行した際に、標準アプリ120の機能を呼び出す処理を行う。
本実施形態に係る標準アプリ機能呼び出し処理は、主に、画像形成装置1の制御部10が、記憶部19に記憶されたプログラムを、各部と協働し、ハードウェア資源を用いて実行する。
以下で、
図4のフローチャートを参照して、標準アプリ機能呼び出し処理の詳細をステップ毎に説明する。
【0047】
(ステップS101)
まず、拡張アプリ管理部340が、拡張アプリ実行開始処理を行う。
拡張アプリ管理部340は、接続された記憶媒体、図示しないサーバーや端末等から拡張アプリ400がインストールされ、ユーザーから実行の指示があった場合、この拡張アプリ400の実行を開始させる。
なお、拡張アプリ管理部340は、拡張アプリ400をインストールせずに実行させてもよい。
【0048】
(ステップS102)
ここで、標準機能サービス310が、標準アプリ120を呼び出すか否かを判断する。標準機能サービス310は、拡張アプリ400が標準アプリ120の機能を利用するための呼び出しを行う場合にYes、それ以外の場合はNoと判断する。
Yesの場合、標準機能サービス310は、処理をステップS103に進める。
Noの場合、標準機能サービス310は、標準アプリ機能呼び出し処理を終了する。
【0049】
(ステップS103)
標準アプリ120の呼び出しを行う場合、標準機能サービス310及び標準アプリサービスIF部110が、標準アプリ機能利用処理を行う。
図5によると、標準機能サービス310は、拡張アプリ400からの拡張アプリ管理部340を介した標準機能サービス310の呼び出しがあった場合、これを標準アプリサービスIF部110に通知する。
標準アプリサービスIF部110は、拡張アプリプラットフォーム300の標準機能サービス310から呼び出された機能に対応する標準アプリ120の機能を選択する。
標準機能サービス310は、選択された機能に対応する標準アプリ120が存在し、機能を利用可能か否かを検索する。標準機能サービス310は、例えば、標準アプリサービスIF部110の共通のインターフェイスによる標準アプリ120へのアクセスの応答等から、標準アプリ120の存在の有無、機能の利用可否等を検索してもよい。
【0050】
(ステップS104)
次に、標準アプリサービスIF部110は、選択された機能が呼び出し可能であるか否かを判断する。標準アプリサービスIF部110は、検索の結果として標準アプリ120が存在し、機能を利用可能である場合、Yesと判断する。標準アプリサービスIF部110は、それ以外の場合、つまり対応する標準アプリ120が存在しない場合、Noと判断する。また、標準アプリサービスIF部110は、呼び出された機能に対応する標準アプリ120が存在しても、記憶部19のメモリー容量が減少している等、対応する各部の状態により機能を利用不可能な場合にも、Noと判断してもよい。
Yesの場合には、標準アプリサービスIF部110は、処理をステップS105に進める。
Noの場合には、標準アプリサービスIF部110は、処理をステップS106に進める。
【0051】
(ステップS105)
選択された機能が呼び出し可能な場合、標準アプリサービスIF部110は、機能利用処理を行う。
標準アプリサービスIF部110は、選択された機能に対応するインターフェイスにより、対応する標準アプリ120の機能を呼び出す。
図5によると、例えば、標準アプリサービスIF部110は、コピーアプリ121を呼び出す場合、コピーアプリサービスIF111により、コピーアプリ121の機能を呼び出す。この場合、標準アプリサービスIF部110は、例えば、コピーの開始の画面を操作パネル部16に表示してもよい。また、標準アプリサービスIF部110は、コピーの解像度や色等のプロパティーを表示する等、アプリの一部を呼び出して当該機能を利用させてもよい。
また、標準アプリサービスIF部110は、例えば、プリンターアプリ122を呼び出す場合、プリンターアプリサービスIF112により、プリンターアプリ122の機能を呼び出す。この場合、標準アプリサービスIF部110は、例えば、拡張アプリ400が取得したり指定したりした各種ジョブデータやファイル等を、画像形成部17で記録紙に出力等させてもよい。
また、標準アプリサービスIF部110は、例えば、FAXアプリ123を呼び出す場合、FAXアプリサービスIF113により、FAXアプリ123の機能を呼び出す。この場合、標準アプリサービスIF部110は、例えば、FAX送受信部18で受信したファクシミリの画像データを指定して拡張アプリ400に取得させてもよい。また、標準アプリサービスIF部110は、拡張アプリ400に指定されたファイル等を、FAX送受信部18から送信させたりしてもよい。
これらの機能の呼び出し後、標準アプリサービスIF部110は、標準アプリ機能呼び出し処理を終了する。
なお、標準アプリサービスIF部110は、拡張アプリ400から標準アプリ120をインストールしたり、削除したり、設定変更をしたりするような処理も可能である。
【0052】
(ステップS106)
選択された機能の呼び出しが不可能の場合、標準機能サービス310は、機能利用無効化処理を行う。
図6は、例えば、FAX送受信部18が取り外された等でファクシミリ送受信の機能に対応するFAXアプリ123がアンインストールされた状態の標準アプリ130の例を示している。このような場合、標準機能サービス310は、例えば、FAXアプリサービスIF113によるファクシミリ送受信の機能の呼び出しを禁止するように設定する。これにより、以降、ファクシミリ送受信の機能の利用が無効化される。
なお、
図6の例と同様に、元々、FAX送受信部18が存在しない単機能プリンターの場合でも、標準アプリサービスIF部110に、共通のインターフェイスとしてFAXアプリサービスIF113が設定されていてもよい。
以上により、本実施形態に係る標準アプリ機能呼び出し処理を終了する。
【0053】
以上のように構成することで、以下のような効果を得ることができる。
従来、特許文献1に記載されたような従来のプラットフォームでは、ユーザーに提供する機能を拡張する場合、既存のアプリ等を変更する、又はプラットフォームが提供する機能を用いて新たなアプリを開発しなければならないという問題があった。
既存のアプリを変更するためには、既存のアプリ等を熟知している必要があった。加えて、既存のアプリを変更すると、他のアプリとの関係で成り立っている標準機能サービスも影響を受けていた。このため、拡張した際のプラットフォーム全体への影響を明確に把握することが困難となり、アプリの品質維持が難しかった。実際に、アプリの品質を維持しようとすると、拡張した機能だけでなく既存機能の評価が必要となり、開発工数が多くなっていた。
一方、新たなアプリを開発すると、プラットフォームが提供する機能を利用するための制御処理と同等の制御処理を、既存のアプリとは別に構築しなければならなくなる。つまり、標準機能サービスにおいて、標準アプリ内部の複雑な制御処理を熟知した上で、標準アプリ相当の制御処理を実現するプログラムを作成しなければならなかった。このため、開発難易度が高くなり、多くの開発工数を要していた。
結果として、既存のプラットフォームで機能を拡張すると、多大な開発コストがかかっていた。
【0054】
これに対して、本実施形態の画像形成装置1は、OS230上でハードウェア資源を管理する機器制御プラットフォーム200と、機器制御プラットフォームで管理されたハードウェア資源を利用する標準アプリ120を実行する標準アプリ実行部100と、標準アプリ実行部100により実行される標準アプリ120の機能を利用させる標準機能サービスを含む拡張アプリプラットフォーム300と、拡張アプリプラットフォーム300の標準機能サービス310により標準アプリ120の機能を利用するためのインターフェイスとして、標準アプリ120の機能に対応した共通のインターフェイスを提供する標準アプリサービスIF部110とを備えることを特徴とする。
このように構成することで、標準アプリ120の機能を共通のインターフェイスにより拡張アプリプラットフォーム300に公開し、そのインターフェイスを用いて拡張アプリプラットフォーム300から標準アプリ120の機能を利用可能とすることができる。このように、標準アプリ120の機能を、標準アプリサービスIF部110から利用することで、標準アプリ120の機能を容易に利用することができる。
また、本実施形態の画像形成装置1は、標準アプリ120内部の制御処理を知らなくても拡張アプリ400を開発することができる。また、標準アプリ120を変更せずに機能の拡張が可能となるため、標準アプリ実行部100や機器制御プラットフォーム200への影響を少なくすることが可能となる。よって、画像形成装置1全体の品質、及び標準アプリ120の品質の維持と向上につながる。また、機能を拡張した場合に影響範囲が明確になり、拡張された機能に絞って評価が可能になるため、評価時間を短縮することができる。
また、本実施形態の画像形成装置1は、拡張アプリプラットフォーム300から、各標準アプリサービスIF部110の共通のインターフェイスにより、各標準アプリ120の機能を利用する。このため、拡張アプリ400を開発するユーザーは、標準アプリ120内部の複雑な制御処理を熟知する必要がなくなる。また、標準アプリ120の制御処理と同様なプログラムをわざわざ別途作成して拡張アプリ400に含ませる必要もなくなる。加えて、共通のインターフェイスにより公開される機能、又は拡張が必要な機能に対応した開発が可能になる。このため、拡張アプリ400の開発が容易となり、開発工程も従来より少なくすることが可能となる。
つまり、拡張される機能の開発を容易にし、開発効率を向上させ、開発期間を短縮させることが可能となり、開発コストを削減することができる。
【0055】
また、本実施形態の画像形成装置1は、拡張アプリプラットフォーム300の標準機能サービス310において、共通のインターフェイスにより各標準アプリ120を利用することで、標準アプリ120の内部の差異を拡張アプリ400側からは認識させない。
このため、異なる機種でも同じ標準アプリ実行部100、拡張アプリプラットフォーム300を使用可能となる。結果として、同一の拡張アプリ400を、異なる機種でも利用可能とすることができる。
【0056】
また、本実施形態の画像形成装置1は、階層化された拡張アプリプラットフォーム300により、拡張アプリ400から、標準アプリ120の機能又は各部に対応するハードウェア資源をそれぞれ利用可能となる。このため、顧客に合わせて構成を変更するカスタマイズが容易となり、開発コストを低減する画像形成装置を提供できる。
つまり、本実施形態の画像形成装置1は、標準アプリ120の機能を利用するだけでよい場合は、スクリプト言語等で素早く開発を行うことができる。逆に、ハードウェア資源を直接制御するカスタマイズの必要がある場合、標準アプリ120を経由せず、各部の機能を呼び出すことが可能となる。このように、本実施形態の画像形成装置1は、様々な顧客の要望に対応して、必要なカスタマイズのレベルの違いを、階層化された拡張アプリプラットフォーム300で吸収する。これにより、必要なカスタマイズのレベルの違いに容易に対応できる。また、階層化したサービスの拡張を行うことで、カスタマイズの対応範囲を明確にして、拡張アプリ400の開発を容易にすることが可能である。また、わざわざレベルの異なるSDK(Software Development Kit)とNDK(Native Development Kit)等を用意する必要もなくなる。
また、本実施形態の画像形成装置1は、プラットフォームを階層化するソフトウェアアーキテクチャーであるため、顧客の所望する新しいサービスへの対応した製品に対応した画像形成装置1を、開発期間を短くして提供できる。つまり、顧客が求める新しい技術をいち早く反映させ、最適な性能と機能を備えた画像形成装置の製品を安く早く提供することが可能となる。
【0057】
また、本実施形態の画像形成装置1は、標準アプリ120と機器制御プラットフォーム200とで統一した形式のインターフェイスを提供することが容易となり、拡張アプリ400を統一した開発環境で作成しやすくなり、開発コストを削減することができる。
また、標準アプリ120の機能と、機器制御プラットフォーム200により利用されるハードウェア資源とを別々に拡張アプリ400から実行可能となる。このため、拡張アプリ400の実行時のスピード等のパフォーマンスを向上させることができる。
【0058】
また、従来、機能を拡張するために、既存のアプリ等を変更するか、又はプラットフォームが提供する機能を用いて新たなアプリを開発する場合、機器毎の環境による各アプリの有無により機能を呼び出すための制御処理を変更し、これをテストする必要があった。このため、開発工程が増えて、開発コストが上昇していた。また、一部の機能の拡張のためだけに、既存のアプリの環境を統一させるため、機器のファームウェア全体を更新する必要があった。
これに対して、本実施形態に係る画像形成装置1は、標準機能サービス310が、標準アプリ120の有無を検索し、標準アプリ120が存在しない場合は、拡張アプリ400からの標準機能サービス310の利用を無効化することを特徴とする。
このように構成することで、拡張アプリ400では、当該画像形成装置1の標準アプリ120の有無に対応した制御処理の変更やテストが必要なくなる。このため開発コストを削減することができる。また、機能を追加する度にファームウェア全体を更新する必要もなくなり、ユーザーの使い勝手を向上させられる。
【0059】
〔他の実施の形態〕
なお、上述の実施形態では、標準アプリサービスIF部110に共通のインターフェイスとして、コピーアプリサービスIF111、プリンターアプリサービスIF112、FAXアプリサービスIF113等を含むように説明した。
しかしながら、標準アプリサービスIF部110ではなく、標準機能サービス310側で共通のインターフェイスを含むように構成してもよい。
これにより、標準アプリサービスIF部110として、機種毎に別々のインターフェイスを用意しておき、標準機能サービス310で差異を吸収するような構成が可能となる。つまり、標準アプリサービスIF部110のインターフェイスが機種毎に異っていても、これに対応する標準機能サービス310で、これらの異なるインターフェイスに対応させることが可能になる。
【0060】
また、上述の実施形態では、拡張アプリ400が、拡張アプリプラットフォーム300の標準機能サービス310により、共通のインターフェイスで各標準アプリ120を利用するように記載した。
しかしながら、拡張アプリ400が、各標準アプリ120固有のインターフェイスにより、直接、各標準アプリ120にアクセスして機能を利用することが可能な構成であってもよい。この場合も、同一の拡張アプリ400から、異なる機種の各標準アプリ120の機能を使用可能としてもよい。
このように構成することで、柔軟な標準アプリ120の制御が可能となり、標準アプリ120の固有の機能を利用した拡張アプリ400の作成が容易になる。また、標準アプリ120のバージョン等の違いに依存した拡張アプリ400の作成も可能となる。
【0061】
また、上述の実施形態では、拡張アプリ400から標準アプリ120等が呼び出される例について説明したものの、標準アプリ120や各部制御用サービス220やOS230等からそれぞれ拡張アプリ400が呼び出されてもよい。また、標準アプリサービスIF部110により、標準アプリ120間で機能を呼び出してもよい。
【0062】
また、拡張アプリ400は、画像形成装置1の各機能を呼び出して所望の機能を実現させるための「一般アプリ」と、これらの一般アプリを管理する「管理アプリ」とを含んでいてもよい。
このように構成することで、拡張アプリ400により画像形成装置1を柔軟に制御することが可能となり、又、セキュリティを高めることができる。
【0063】
また、上述の実施の形態では、標準アプリ120及び拡張アプリ400は既に記憶部19に記憶されている状態であるように説明した。
しかしながら、画像形成装置1に接続した外部の記憶媒体(図示せず)、外部のサーバーに接続した記憶媒体、ネットワーク経由で接続された外部の端末等から、別途、標準アプリ120及び拡張アプリ400をインストールして記憶部19に記憶させることも可能である。この場合、当該標準アプリ120及び拡張アプリ400は、インストールしたユーザー、画像形成装置1、又は端末からのみ使用可能なように設定してもよい。
このように構成することで、機能の拡張を柔軟に実現することができ、管理コストを低減できる。
【0064】
また、画像形成装置1の記憶部19には、標準アプリや拡張アプリ400とは異なる種類のアプリを記憶させることも可能である。たとえば、記憶部19には、拡張アプリ400以外のWebアプリ等(以下「外部アプリ」という。)や、ユーザーのデータ等を記憶させてもよい。外部アプリは画像形成装置1の操作パネル部16のユーザーの指示で呼び出して、画像形成装置1に読み込んで実行させてもよい。
このように構成することで、拡張アプリプラットフォーム300のアプリと外部アプリとを柔軟に使い分けて、ユーザーの使い勝手をよくすることができる。
【0065】
また、本発明は、画像形成装置以外の各種情報処理装置にも適用可能である。つまり、ネットワークスキャナ、スキャナーをUSB等で別途接続したサーバー等を用いるような構成であってもよい。また、アプリをインストール可能な情報処理装置であるPC、スマートフォン、携帯電話、オフィス機器、産業用機器等にも適用可能である。
【0066】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。