(57)【要約】【課題】情報処理装置全体のソフトウェア開発の効率性を向上させることができる。【解決手段】情報処理装置は、当該情報処理装置に固有のハードウェアを利用した処理に関する第一の画面の表示と、前記第一の画面を介して入力された設定情報に応じた前記処理とを当該情報処理装置に実行させる第一のプログラムを有し、前記第一のプログラムは、第二のプログラムから前記処理に関する設定情報を受け付けるインタフェースを備え、前記第二のプログラムから受け付けた設定情報に応じた前記処理を当該情報処理装置に実行させる。【選択図】図３
2014059718.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
当該情報処理装置に固有のハードウェアを利用した処理に関する第一の画面の表示と、前記第一の画面を介して入力された設定情報に応じた前記処理とを当該情報処理装置に実行させる第一のプログラムを有し、
前記第一のプログラムは、
第二のプログラムから前記処理に関する設定情報を受け付けるインタフェースを備え、
前記第二のプログラムから受け付けた設定情報に応じた前記処理を当該情報処理装置に実行させる情報処理装置。
【請求項２】
前記第一のプログラムは、
前記第二のプログラムが当該情報処理装置に表示させる第二の画面を介して入力された設定情報を、前記第二のプログラムより受け付け、当該設定情報に応じた前記処理を当該情報処理装置に実行させ、
前記処理中に、前記第二の画面から前記処理の状態を表示させる画面への遷移を当該情報処理装置に実行させる請求項１記載の情報処理装置。
【請求項３】
当該情報処理装置に画面を表示させている前記第一のプログラムに、前記処理中に発生した状態の変化を通知する通知手段を有し、
前記第一のプログラムは、通知された状態の変化に応じた処理を当該情報処理装置に実行させる請求項２記載の情報処理装置。
【請求項４】
前記第一のプログラムと前記第二のプログラムとは、異なる開発言語によって実装される請求項１乃至４いずれか一項記載の情報処理装置。
【請求項５】
情報処理装置が実行する情報処理方法であって、
当該情報処理装置に固有のハードウェアを利用した処理に関する第一の画面の表示と、前記第一の画面を介して入力された設定情報に応じた前記処理とを当該情報処理装置に実行させ、第二のプログラムから前記処理に関する設定情報を受け付けるインタフェースを備える第一のプログラムが、
前記第二のプログラムから受け付けた設定情報に応じた前記処理を当該情報処理装置に実行させる情報処理方法。
【請求項６】
情報処理装置に固有のハードウェアを利用した処理に関する第一の画面の表示と、前記第一の画面を介して入力された設定情報に応じた前記処理とを当該情報処理装置に実行させ、第二のプログラムから前記処理に関する設定情報を受け付けるインタフェースを備える第一のプログラムであって、
前記第一のプログラムは、前記第二のプログラムから受け付けた設定情報に応じた前記処理を当該情報処理装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、例えば、複合機又は融合機と呼ばれる情報処理装置において、公開されたＡＰＩ（Application Program Interface）を有し、当該ＡＰＩを用いて開発されたアプリケーション（以下、「ＳＤＫ（Software Development Kit：ソフトウェア開発キット）アプリ」という。）の実行環境を提供するアプリケーションプラットフォーム（以下、「ＳＤＫプラットフォーム」という。）を備えた情報処理装置が有る（例えば、特許文献１）。
【０００３】
ＳＤＫプラットフォームにおいては標準のアプリケーション（以下、「標準アプリ」という。）が実現する機能と同様の機能をＳＤＫアプリによって実現可能とするためのＡＰＩが公開される。したがって、標準アプリとは異なる操作画面によって、標準アプリと同様の機能を利用したい（つまり、操作画面だけ標準アプリとは異なるものを使いたい）といったニーズにも応えることもできる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、ＳＤＫプラットフォームでは、情報処理装置の出荷後においてもＳＤＫプラットフォームのＡＰＩを用いて、サードベンダやメーカー、又はソフトハウス等が実装及び開発した新規ＳＤＫアプリを、情報処理装置に追加搭載できるといった利点はあるものの、標準アプリが提供する機能と同様の機能を提供するＡＰＩを公開するために、標準アプリと同様の実装が別途行われる必要が有った。そのため、ＳＤＫプラットフォームと標準アプリとの間で類似した実装が重複し、情報処理装置全体の開発作業や保守作業等において、非効率性が認められた。
【０００５】
なお、上記問題点は、ＳＤＫという提供形態に関わらず、公開されたＡＰＩを用いて開発したアプリケーションにより機器に処理を実行させる形態において共通的なものである。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、情報処理装置全体のソフトウェア開発の効率性を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、情報処理装置は、当該情報処理装置に固有のハードウェアを利用した処理に関する第一の画面の表示と、前記第一の画面を介して入力された設定情報に応じた前記処理とを当該情報処理装置に実行させる第一のプログラムを有し、前記第一のプログラムは、第二のプログラムから前記処理に関する設定情報を受け付けるインタフェースを備え、前記第二のプログラムから受け付けた設定情報に応じた前記処理を当該情報処理装置に実行させる。
【発明の効果】
【０００８】
情報処理装置全体のソフトウェア開発の効率性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】コピーアプリとＳＤＫコピーアプリとの関係の一例を説明するための図である。
【図４】コピージョブに関して画像形成装置が実行する処理手順の一例を説明するためのシーケンス図である。
【図５】画面遷移の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図１において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１１】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ１１５には、各種の設定情報等が記憶される。
【００１２】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。液晶パネルは、タッチパネル機能を有していてもよい。この場合、当該液晶パネルは、入力手段の機能をも兼ねる。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００１３】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図２において、画像形成装置１０は、標準アプリ１２１、ＳＤＫアプリ１２２、ＳＤＫプラットフォーム１２３、コントロールサービス１２４、及びＯＳ１２３等を有する。
【００１４】
標準アプリ１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションプログラムの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャナ１２等を利用したスキャンジョブを実行する。印刷アプリ１２１２は、プリンタ１３等を利用した印刷ジョブを実行する。コピーアプリ１２１３は、スキャナ１２及びプリンタ１３等を利用したコピージョブを実行する。ＦＡＸアプリ１２１４は、モデム１４等を利用したＦＡＸの送信ジョブ又は受信ジョブを実行する。なお、スキャナ１２、プリンタ１３、及びモデム１４等は、画像形成装置１０に固有のハードウェアの一例である。
【００１５】
コントロールサービス１２４は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナ１２の制御機能、プリンタ１３の制御機能、メモリ（ＲＡＭ１１２、ＲＯＭ１１３、及びＮＶＲＡＭ１１５等）の管理機能等を有する。
【００１６】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るために追加的にインストールされるアプリケーションプログラム（又はプラグインともいう。）である。同図では、ＳＤＫアプリ１２２の一例として、ＳＤＫコピーアプリ１２２１が例示されている。ＳＤＫコピーアプリ１２２１は、コピーアプリ１２１３とは異なる操作画面によって、コピー機能を利用するために作成されたＳＤＫアプリ１２２である。すなわち、ＳＤＫコピーアプリ１２２１は、コピーアプリ１２１３とは異なる操作画面を表示させ、当該操作画面を介して入力されたジョブパラメータに応じたコピージョブを、画像形成装置１０に実行させる。ジョブパラメータとは、コピージョブ等のジョブに対する設定情報を構成するパラメータである。
【００１７】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２を開発するためのＡＰＩ（Application Program Interface）を備えると共に、ＳＤＫアプリ１２２の実行環境を提供する。ＡＰＩの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。以下、ＳＤＫプラットフォーム１２３が提供するＡＰＩを、「ＳＤＫＡＰＩ」という。例えば、ＳＤＫプラットフォーム１２３は、スキャン機能に関するＳＤＫＡＰＩ、印刷機能に関するＳＤＫＡＰＩ、コピー機能に関するＳＤＫＡＰＩ等をＳＤＫアプリ１２２に提供する。ＳＤＫＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発されうる。なお、ＳＤＫプラットフォーム１２３は、Ｊａｖａ（登録商標）ＶＭ（Virtual Machine）を含んでいてもよい。この場合、ＳＤＫアプリ１２２は、Ｊａｖａ（登録商標）言語によって実装される。
【００１８】
ＯＳ１２３は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２３上においてプロセス又はスレッドとして動作する。
【００１９】
続いて、コピーアプリ１２１３とＳＤＫコピーアプリ１２２１との関係について説明する。
【００２０】
図３は、コピーアプリとＳＤＫコピーアプリとの関係の一例を説明するための図である。
【００２１】
図３において、コピーアプリ１２１３は、コピーＡＰＩ１２１３ａを有する。コピーＡＰＩ１２１３ａは、コピーアプリ１２１３の機能を、他のプログラムから利用可能とするための、ＨＴＴＰ（HyperText Transfer Protocol）ベースのＡＰＩ（以下、「ＷｅｂＡＰＩ」という。）である。コピーＡＰＩ１２１３ａがＷｅｂＡＰＩであることにより、コピーＡＰＩ１２１３ａを利用する他のプログラムについて、プログラミング言語（開発言語）に関する制約を緩和することができる。例えば、コピーアプリ１２１３がＣ言語によって実装されている場合であっても、Ｊａｖａ（登録商標）言語で実装されているプログラムから、コピーＡＰＩ１２１３ａを容易に呼び出すことができる。また、ネットワークを介してコピーＡＰＩ１２１３ａを呼び出すこともできる。
【００２２】
ＳＤＫコピーアプリ１２２１が、コピー機能に関するＳＤＫＡＰＩを呼び出すと、ＳＤＫプラットフォーム１２３は、当該ＳＤＫＡＰＩに対応するコピーＡＰＩ１２１３ａを、ＨＴＴＰ経由で呼び出す。すなわち、ＳＤＫプラットフォーム１２３において、コピーＡＰＩ１２１３ａに対応するＳＤＫＡＰＩは、ＳＤＫＡＰＩをラッピングしたＡＰＩに相当する。したがって、コピー機能に関するＳＤＫＡＰＩの実装は、実質的に、コピーアプリ１２１３の実装と共通化されている。
【００２３】
なお、ＳＤＫコピーアプリ１２２１が、コピーＡＰＩ１２１３ａを直接呼び出す形態が採用されてもよい。但し、ＳＤＫＡＰＩを経由することで、ＳＤＫプラットフォーム１２３において、ＳＤＫコピーアプリ１２２１の状態を容易に把握することができる。
【００２４】
なお、コピーＡＰＩ１２１３ａは、必ずしもＷｅｂＡＰＩでなくてもよい。例えば、プログラミング言語への依存が許容されるのであれば、コピーＡＰＩ１２１３ａは、特定のプログラミング言語に依存したＡＰＩであってもよい。
【００２５】
また、スキャンアプリ１２１１、印刷アプリ１２１２、及びＦＡＸアプリ１２１４等、他の標準アプリ１２１についても、コピーアプリ１２１３と同様に、当該アプリケーションに固有の機能に関するＡＰＩが公開されてもよい。
【００２６】
以下、画像形成装置１０が実行する処理手順について説明する。図４は、コピージョブに関して画像形成装置が実行する処理手順の一例を説明するためのシーケンス図である。なお、図４において、ＳＤＫコピーアプリ１２２１とＳＤＫプラットフォーム１２３との間のやりとりは、ＳＤＫＡＰＩを介して行われる。ＳＤＫプラットフォーム１２３とコピーアプリ１２１３との間のやりとりは、コピーＡＰＩ１２１３ａを介して行われる。
【００２７】
ステップＳ１０１において、操作パネル１５に表示されている、ＳＤＫアプリ１２２の一覧画面を介して、ＳＤＫコピーアプリ１２２１の起動指示が選択されると、ＳＤＫコピーアプリ１２２１は、例えば、スレッドとして起動される（Ｓ１０１）。ＳＤＫコピーアプリ１２２１は、起動に応じ、ＳＤＫコピーアプリ１２２１の操作画面（以下、「ＳＤＫコピー操作画面」という。）を操作パネルに表示させる。
【００２８】
続いて、ＳＤＫコピーアプリ１２２１は、ジョブ設定ＩＤの取得をＳＤＫプラットフォーム１２３に要求する（Ｓ１０２）。ＳＤＫプラットフォーム１２３は、ジョブ設定ＩＤの取得を、コピーアプリ１２１３に要求する（Ｓ１０３）。ジョブ設定ＩＤとは、コピーアプリ１２１３において、各ＳＤＫアプリから設定されるジョブパラメータを区別して管理するための識別情報である。例えば、コピージョブを実行させるＳＤＫアプリとして、ＳＤＫコピーアプリ１２２１以外のＳＤＫアプリ（以下、「ＳＤＫコピーアプリ１２２１Ｂ」という。）が有る場合、ＳＤＫコピーアプリ１２２１から受け付けたジョブパラメータと、ＳＤＫコピーアプリ１２２１Ｂから受け付けたジョブパラメータとを区別するためにコピーアプリ１２１３が用いる識別情報である。但し、ＳＤＫコピーアプリ１２２１とＳＤＫコピーアプリ１２２１Ｂとの間で、ジョブパラメータが区別されなくても構わない場合、ジョブ設定ＩＤは必要ではない。
【００２９】
コピーアプリ１２１３は、ジョブ設定ＩＤを生成し、生成されたジョブ設定ＩＤをＳＤＫプラットフォーム１２３に返却する（Ｓ１０４）。ＳＤＫプラットフォーム１２３は、当該ジョブ設定ＩＤを、ＳＤＫコピーアプリ１２２１に返却する（Ｓ１０５）。
【００３０】
続いて、ＳＤＫコピー操作画面を介して、コピージョブに関する一つのジョブパラメータがユーザによって入力される（Ｓ１０６）。すなわち、ステップＳ１０６〜Ｓ１１０は、一つのジョブパラメータに対する設定が行われるごとに実行される。
【００３１】
コピージョブに関するジョブパラメータは、例えば、コピー部数、集約、カラー設定等である。基本的に、ＳＤＫコピー操作画面において設定可能な設定項目は、コピーアプリ１２１３が予定している、又はコピーアプリ１２１３に対して設定可能な設定項目である。但し、コピーアプリ１２１３が予定していない設定項目が設定可能とされてもよい。この場合、当該設定項目に関する処理は、コピーアプリ１２１３を利用せずに完結されてもよい。例えば、コピージョブの過程でスキャンされた画像データを、所定の宛先に転送するといった機能をＳＤＫコピーアプリ１２２１が有し、当該宛先を設定項目としてＳＤＫコピー操作画面において設定可能であるとする。この場合、ＳＤＫコピーアプリ１２２１は、スキャンされた画像データの転送を、ＳＤＫプラットフォーム１２３経由ではコントロールサービス１２４に要求することにより、当該転送が実現されてもよい。
【００３２】
ユーザによるジョブパラメータの設定に応じ、ＳＤＫコピーアプリ１２２１は、設定されたジョブパラメータのパラメータ名、当該パラメータの値、及びジョブ設定ＩＤ等を含む、ジョブパラメータの設定要求をＳＤＫプラットフォーム１２３に入力する（Ｓ１０７）。ＳＤＫプラットフォーム１２３は、当該設定要求を、コピーアプリ１２１３に伝達する（Ｓ１０８）。
【００３３】
コピーアプリ１２１３は、設定要求に含まれているジョブ設定ＩＤに対応付けてＲＡＭ１１２に記憶しているジョブパラメータ群の設定状態を更新する。具体的には、設定要求に含まれているパラメータ名に係るジョブパラメータの値が、設定要求に含まれている値に更新される。すなわち、コピーアプリ１２１３は、ジョブパラメータの現在の設定状態を管理している。コピーアプリ１２１３は、また、ジョブパラメータ間の必須関係や、排他関係についても把握している。したがって、コピーアプリ１２１３は、必要に応じ、或るジョブパラメータの値の更新に応じて、他のジョブパラメータの値をも更新する。必須関係の一例として、ステープルが選択された場合、ソートも同時に選択されなければならないといった関係が挙げられる。排他関係の一例として、２ｉｎ１集約（２ページを１面に集約）と４ｉｎ１集約（４ページを１面に集約）とを同時に選択できないといった関係が挙げられる。
【００３４】
続いて、コピーアプリ１２１３は、パラメータ状態情報を、ＳＤＫプラットフォーム１２３に返却する（Ｓ１０９）。パラメータ状態情報は、ジョブパラメータごとの設定値を含む情報である。返却されるパラメータ状態情報は、前回のステップＳ１０９において返却されたパラメータ状態情報に対する差分であってもよい。例えば、ステップＳ１０８において、ステープルの設定（ステープルのＯＮ）が要求された場合、ステープルの設定と、ステープルと同時にソートも設定されたことを示すパラメータ状態情報が返却される。
【００３５】
または、コピージョブに関する全てのジョブパラメータに係るパラメータ状態情報であってもよい。また、差分のみのパラメータ状態情報を返却するコピーＡＰＩ１２１３ａと、全てのパラメータ状態情報を返却するコピーＡＰＩ１２１３ａとを用意し、いずれを必要とするかは、コピーＡＰＩ１２１３ａの呼び出し側に選択させてもよい。
【００３６】
ＳＤＫコピーアプリ１２２１は、返却されたパラメータ状態情報に基づいて、ＳＤＫコピー操作画面の表示状態を更新する。
【００３７】
ジョブパラメータの設定が完了し、操作パネル１５が備えるスタートキー（スタートボタン）が押下されると（Ｓ１１１）、ＳＤＫコピーアプリ１２２１は、画面遷移仕様の設定要求をＳＤＫプラットフォーム１２３に入力する（Ｓ１１２）。画面遷移仕様とは、ＳＤＫコピーアプリ１２２１が表示させているＳＤＫコピー操作画面から、コピーアプリ１２１３が表示させる画面への自動遷移のタイミングをいう。画面遷移仕様として、例えば、コピージョブの実行開始時、エラー発生時等のコピージョブの停止時、又は遷移しない等が指定される。ここでは、コピージョブの実行開始時が指定されたこととする。
【００３８】
続いて、ＳＤＫプラットフォーム１２３は、画面遷移仕様の設定要求を、コピーアプリ１２１３に伝達する（Ｓ１１３）。コピーアプリ１２１３は、画面遷移仕様を、例えば、ＲＡＭ１１２に記憶しておく。
【００３９】
続いて、ＳＤＫコピーアプリ１２２１は、自ら（当該ＳＤＫコピーアプリ１２２１）のアプリＩＤを指定して、コピージョブの開始要求をＳＤＫプラットフォーム１２３に入力する（Ｓ１１４）。ＳＤＫプラットフォーム１２３は、当該開始要求を、コピーアプリ１２１３に伝達する（Ｓ１１５）。アプリＩＤとは、画像形成装置１０におけるアプリケーションプログラムの識別情報である。各ＳＤＫアプリ１２２、ＳＤＫプラットフォーム１２３、及び各標準アプリ１２１には、アプリＩＤが割り当てられている。
【００４０】
コピーアプリ１２１３は、コピージョブの開始要求に指定されているアプリＩＤを、当該開始要求元のＳＤＫアプリ１２２のアプリＩＤとして、例えば、ＲＡＭ１１２に記憶しておく。続いて、コピーアプリ１２１３は、自らのアプリＩＤを指定して、操作パネル１５のオーナーの移行を、コントロールサービス１２４に要求する（Ｓ１１６）。操作パネル１５のオーナー（以下、単に「オーナー」という。）とは、操作パネル１５に対する情報の表示権限を占有する主体をいう。すなわち、本実施の形態では、同時に操作パネル１５に対して情報を表示可能なアプリケーションプログラムは一つに限られる。これまでのオーナーは、ＳＤＫプラットフォーム１２３である。そして、画面遷移仕様として、コピージョブの実行開始時が設定されているため、コピーアプリ１２１３は、コピージョブの開始要求に応じ、オーナーの移行を、コントロールサービス１２４に要求するのである。したがって、画面遷移仕様が、ジョブ停止時又は遷移しない等、コピージョブの実行開始時ではない場合、ステップＳ１１６のタイミングでは、オーナーの移行は要求されない。
【００４１】
続いて、コントロールサービス１２４は、ＳＤＫプラットフォーム１２３に対して、オーナーの解放を要求する（Ｓ１１７）。なお、コントロールサービス１２４からは、各ＳＤＫアプリ１２２は見えず、ＳＤＫプラットフォーム１２３が、各標準アプリ１２１と同様に、一つのアプリケーションプログラムとして見える。したがって、いずれかのＳＤＫアプリ１２２が操作パネル１５に情報を表示させる場合、ＳＤＫプラットフォーム１２３がオーナーとなる。操作パネル１５への表示に関するＳＤＫアプリ１２２間の調停は、ＳＤＫプラットフォーム１２３によって行われる。
【００４２】
続いて、ＳＤＫプラットフォーム１２３は、オーナーの解放が可能な状態であれば、オーナーの解放の了解を示す応答をコントロールサービス１２４に返却する（Ｓ１１８）。続いて、コントロールサービス１２４は、ステップＳ１１６の移行要求に指定されたアプリＩＤに係るコピーアプリ１２１３に対して、オーナーへの移行を要求する（Ｓ１１９）。コピーアプリ１２１３は、オーナーに移行することについて了解を示す応答をコントロールサービス１２４に返却する（Ｓ１２０）。続いて、コントロールサービス１２４は、新たなオーナーであるコピーアプリ１２１３のアプリＩＤを指定して、オーナーの移行をコピーアプリ１２１３及びＳＤＫプラットフォーム１２３のそれぞれに通知する（Ｓ１２１、Ｓ１２２）。
【００４３】
なお、操作パネル１５のオーナーは、操作パネル１５に対する情報の表示権限を有すると共に、操作パネル１５の各種のハードキー（ボタン）の押下イベント等の通知先となる。したがって、コピーアプリ１２１３がオーナーに移行することで、ＳＤＫコピーアプリ１２２１及びＳＤＫプラットフォーム１２３は、コピージョブの実行中における操作パネル１５のハードキーの押下に応じた制御等を、コピーアプリ１２１３に委譲することができる。このことは、ＳＤＫプラットフォーム１２３において、斯かる制御に関する実装の必要性が低減することを意味する。
【００４４】
コピーアプリ１２１３は、自らがオーナーとなったことに応じ、コピージョブの状態を通知するための画面（以下、「ジョブ状態通知画面」という。）の表示をコントロールサービス１２４に要求する（Ｓ１２３）。コントロールサービス１２４は、当該要求に応じ、表示対象の画面を、ＳＤＫコピー操作画面からジョブ状態通知画面へ遷移させる。
【００４５】
図５は、画面遷移の例を示す図である。図５において、矢印Ａ１は、ＳＤＫコピー操作画面５００ａからジョブ状態通知画面５００ｂへの遷移例を示す。ジョブ状態通知画面５００ｂは、コピージョブの進捗状況（読み込んだ原稿枚数やコピーした枚数等）等、コピージョブの状態を表示するための領域５１０ｂ等を含む。
【００４６】
矢印Ａ２は、参考までに、コピーアプリ１２１３の操作画面５００ｃ（以下、「標準コピー操作画面５００ｃ」という。）からジョブ状態通知画面５００ｂへの遷移例を示す。すなわち、ＳＤＫコピーアプリ１２２１ではなく、コピーアプリ１２１３が利用対象として選択された場合、矢印Ａ２のような画面遷移が発生する。すなわち、コピーアプリ１２１３は、標準コピー操作画面５００ｃを介して入力されたジョブパラメータ（設定情報）に応じた処理（コピージョブ）を、画像形成装置１０に実行させ、コピージョブの実行中に、ジョブ状態通知画面５００ｂを表示させる。
【００４７】
本実施の形態では、コピーアプリ１２１３の操作画面５００ｃとジョブ状態通知画面５００ｂとは、表示されているメッセージが異なるのみで、実質的に同じ画面である。すなわち、コピーアプリ１２１３の操作画面５００ｃが、ジョブ状態通知画面５００ｂとしても利用される。但し、二つの画面が、明確に区別されて実装されてもよい。
【００４８】
続いて、コピーアプリ１２１３は、コピージョブの開始をコントロールサービス１２４に要求する（Ｓ１２４）。コントロールサービス１２４は、コピージョブの開始要求に応じ、スキャナ１２及びプリンタ１３等を制御して、コピージョブに関する処理を画像形成装置１０に実行させる。
【００４９】
コピージョブの実行中、コントロールサービス１２４は、コピージョブの進捗状況の変化や異常の発生等に応じて、コピージョブの状態の変化を逐次的にコピーアプリ１２１３に通知する（Ｓ１２５−１、Ｓ１２５−２）。コピーアプリ１２１３は、コピージョブの状態の変化の通知に応じ、当該状態の変化に応じた処理を画像形成装置１０に実行させる。例えば、ジョブ状態通知画面５００ｂの表示内容が更新される。具体的には、読み込んだ原稿枚数やコピーした枚数等、領域５１０ｂの表示内容が更新される。また、紙詰まり等の異常の発生の通知を受けた場合、コピーアプリ１２１３は、当該異常を通知するための画面の表示を、画像形成装置１０に実行させる。
【００５０】
コピーアプリ１２１３は、また、コピージョブの状態の変化を、ＳＤＫプラットフォーム１２３に伝達する（Ｓ１２６−１、Ｓ１２６−２）。ＳＤＫプラットフォーム１２３は、ＳＤＫコピーアプリ１２２１に対して、当該状態の変化を伝達する（Ｓ１２７−１、Ｓ１２７−２）。コピージョブの状態の変化が、ＳＤＫプラットフォーム１２３やＳＤＫコピーアプリ１２２１に伝達されることにより、コピージョブの状態の変化に応じて、ＳＤＫコピーアプリ１２２１に特有の処理を、画像形成装置１０に実行させることもできる。
【００５１】
なお、例えば、ユーザによってストップキー（ストップボタン）の押下等、強制的なコピージョブの中断指示が入力された場合、ストップキーの押下イベントは、コントロールサービス１２４から、オーナーであるコピーアプリ１２１３に通知される。この場合、コピーアプリ１２１３は、コピージョブを中断させるための制御を実行する。
【００５２】
このように、コピージョブの制御がコピーアプリ１２１３に委譲されることにより、コピージョブの実行中における状態の変化に応じた処理制御を、コピージョブの実装に任せることができる。このことは、斯かる実装を、ＳＤＫプラットフォーム１２３において行う必要性が低減することを意味する。
【００５３】
コピージョブの終了がコントロールサービス１２４から通知されると（Ｓ１２８）、コピーアプリ１２１３は、ＳＤＫプラットフォーム１２３のアプリＩＤを指定して、操作パネル１５のオーナーの移行を、コントロールサービス１２４に要求する（Ｓ１２９）。コントロールサービス１２４は、コピーアプリ１２１３に対して、オーナーの解放を要求する（Ｓ１３０）。コピーアプリ１２１３は、オーナーの解放が可能な状態であれば、オーナーの解放の了解を示す応答をコントロールサービス１２４に返却する（Ｓ１３１）。
【００５４】
続いて、コントロールサービス１２４は、ステップＳ１２９の移行要求に指定されたアプリＩＤに係るＳＤＫプラットフォーム１２３に対して、オーナーへの移行を要求する（Ｓ１３２）。ＳＤＫプラットフォーム１２３は、オーナーに移行することについて了解を示す応答をコントロールサービス１２４に返却する（Ｓ１３３）。続いて、コントロールサービス１２４は、新たなオーナーであるＳＤＫプラットフォーム１２３のアプリＩＤを指定して、オーナーの移行をコピーアプリ１２１３及びＳＤＫプラットフォーム１２３のそれぞれに通知する（Ｓ１３４、Ｓ１３５）。なお、ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２の中で、操作対象又は利用対象とされているＳＤＫコピーアプリ１２２１に対して、操作画面の表示を要求する。ＳＤＫコピーアプリ１２２１は、当該要求に応じ、ＳＤＫコピー操作画面５００ａを、ＳＤＫプラットフォーム１２３及びコントロールサービス１２４を介して、操作パネル１５に表示させる。すなわち、コピージョブの終了に応じ、ジョブ状態通知画面５００ｂからＳＤＫコピー操作画面５００ａへ、自動的に画面遷移が発生する。その結果、ユーザから見た場合、ＳＤＫコピーアプリ１２２１を利用対象として選択した当初の状態と同じ状態に戻る。
【００５５】
続いて、コピーアプリ１２１３は、コピージョブの終了を、ＳＤＫプラットフォーム１２３に通知する（Ｓ１３６）。ＳＤＫプラットフォーム１２３は、コピージョブの終了を、ＳＤＫコピーアプリ１２２１に通知する（Ｓ１３７）。
【００５６】
なお、上記では、コピージョブに関して説明したが、スキャンジョブ、印刷ジョブ、ＦＡＸ送受信ジョブ等、他の標準アプリ１２１に関するジョブについても、同様の制御が行われてもよい。この場合、各標準アプリ１２１は、コピーアプリ１２１３が備えるコピーＡＰＩ１２１３ａ相当のＡＰＩを備えていればよい。
【００５７】
上述したように、本実施の形態によれば、ＳＤＫアプリ１２２に対して実行が要求されたジョブの制御を、標準アプリ１２１に委譲することができる。したがって、ジョブの管理や制御に関する複雑な処理手順について、標準アプリ１２１及びＳＤＫプラットフォーム１２３の双方において重複して実装する必要性を低減させることができる。換言すれば、斯かる実装を、標準アプリ１２１に集約することができる。その結果、画像形成装置１０全体のソフトウェア開発の効率性を向上させることができる。
【００５８】
また、標準アプリ１２１が有する機能に関して、標準アプリ１２１とＳＤＫプラットフォーム１２３において実装を共通化できることにより、新機能対応に関して、標準アプリ１２１の方がＳＤＫアプリ１２２とのタイムラグの発生を解消することができる。
【００５９】
すなわち、例えば、画像形成装置１０に対して新たなハードウェアが追加された場合、標準アプリ１２１は、コントロールサービス１２４において当該ハードウェアに対する対応が完了すれば、当該ハードウェアを利用した機能を提供するための準備が整う。一方、ＳＤＫアプリ１２２が当該ハードウェアを利用した機能を提供するための準備が整うためには、更に、ＳＤＫプラットフォーム１２３において、当該ハードウェアを利用するためのＡＰＩに対応する実装が追加される必要がある。そのため、当該ハードウェアの機能を利用可能な標準アプリ１２１がリリースされてから、当該ハードウェアの機能を利用可能なＳＤＫアプリ１２２がリリースされるまでにタイムラグが発生してしまうことが有った。
【００６０】
しかしながら、本実施の形態によれば、標準アプリ１２１において新機能対応が完了すれば、当該標準アプリ１２１にジョブの制御を委譲するＳＤＫアプリ１２２においても、当該新機能対応が自動的に完了する。
【００６１】
なお、上記において、画像形成装置１０を情報処理装置の一例として説明したが、画像形成装置１０以外の情報処理装置であって、プログラムによる制御によって動作可能な情報処理装置であれば、他の情報処理装置に関して本実施の形態が適用されてもよい。例えば、ＰＣ（Personal Computer）等のコンピュータ、プロジェクタ、デジタルカメラ、携帯電話、スマートフォン、タブレット型端末、テレビ会議システム等に対して、本実施の形態が適用されてもよい。
【００６２】
なお、本実施の形態において、コントロールサービス１２４は、通知手段の一例である。
【００６３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６４】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１２１        標準アプリ
１２２        ＳＤＫアプリ
１２３        ＳＤＫプラットフォーム
１２４        コントロールサービス
１２５        ＯＳ
１２１１      スキャンアプリ
１２１２      印刷アプリ
１２１３      コピーアプリ
１２１４      ＦＡＸアプリ
１２２１      ＳＤＫコピーアプリ
【先行技術文献】
【特許文献】
【００６５】
【特許文献１】特開２００５−２６９６１９号公報
【図１】
2014059718.tif 000003
【図２】
2014059718.tif 000004
【図３】
2014059718.tif 000005
【図４】
2014059718.tif 000006
【図５】
2014059718.tif 000007