(57)【特許請求の範囲】
【請求項１】
アプリケーションを実行する際に利用するリソースの使用量を制限する画像形成装置であって、
１つのアプリケーションに複数のアプリケーションモジュールが含まれている複合型アプリケーションをインストールするインストール手段と、
前記インストール手段によりインストールされた複合型アプリケーションを起動する際に、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記複数のアプリケーションモジュールの内の所定のアプリケーションモジュールを起動し、該起動した所定のアプリケーションモジュールに対応するシンボルを前記画像形成装置の表示部に表示する表示手段と、
前記表示手段により表示されたシンボルが選択され画像処理が指示された場合、該シンボルに対応するアプリケーションモジュールを利用し画像処理を行う画像形成手段と、
前記複数のアプリケーションモジュールの内の起動に失敗したアプリケーションモジュールの再起動を指示することが可能なアプリケーション管理画面であって、前記起動に失敗したアプリケーションモジュールの再起動の指示を受け付ける指示部のみならず、該起動した所定のアプリケーションモジュールの停止の指示を受け付ける指示部も含む前記アプリケーション管理画面を提供する提供手段と、を有し、
前記複数のアプリケーションモジュールは、共通アプリケーションモジュールと、個別アプリケーションモジュールとから構成され、前記共通アプリケーションモジュールは、前記個別アプリケーションモジュールが外部システムと通信を行っている旨を表示するアプリケーションモジュールであり、
前記表示手段は、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記共通アプリケーションモジュールと、前記個別アプリケーションの内の所定の個別アプリケーションモジュールの両方のアプリケーションモジュールを起動し、該起動した前記共通アプリケーションモジュールに対応するシンボルを表示することなく、該起動した所定の個別アプリケーションモジュールに対応するシンボルを表示する
を有する画像形成装置。
【請求項２】
前記個別アプリケーションモジュールは、前記画像形成装置とネットワークを介して接続されているシステムと通信を行うアプリケーションモジュールであり、前記共通アプリケーションモジュールを利用しユーザに前記システムと通信を行っている旨を表示することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記リソースの使用量の制限により前記共通アプリケーションモジュールと、前記個別アプリケーションモジュールの両方を起動できない場合、前記個別アプリケーションモジュールを起動せずに、前記共通アプリケーションモジュールを起動することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記複合型アプリケーションは、第１の実行環境で実行される仮想マシンにより実現される第２の実行環境で動作するアプリケーションであることを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
アプリケーションを実行する際に利用するリソースの使用量を制限する画像形成装置を制御する制御方法であって、
インストール手段は、１つのアプリケーションに複数のアプリケーションモジュールが含まれている複合型アプリケーションをインストールし、
表示手段は、前記インストール手段によりインストールされた複合型アプリケーションを起動する際に、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記複数のアプリケーションモジュールの内の所定のアプリケーションモジュールを起動し、該起動した所定のアプリケーションモジュールに対応するシンボルを前記画像形成装置の表示部に表示し、
画像形成手段は、前記表示手段により表示されたシンボルが選択され画像処理が指示された場合、該シンボルに対応するアプリケーションモジュールを利用し画像処理を行い、
提供手段は、前記複数のアプリケーションモジュールの内の起動に失敗したアプリケーションモジュールの再起動を指示することが可能なアプリケーション管理画面であって、前記起動に失敗したアプリケーションモジュールの再起動の指示を受け付ける指示部のみならず、該起動した所定のアプリケーションモジュールの停止の指示を受け付ける指示部も含む前記アプリケーション管理画面を提供し、
前記複数のアプリケーションモジュールは、共通アプリケーションモジュールと、個別アプリケーションモジュールとから構成され、前記共通アプリケーションモジュールは、前記個別アプリケーションモジュールが外部システムと通信を行っている旨を表示するアプリケーションモジュールであり、
前記表示手段は、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記共通アプリケーションモジュールと、前記個別アプリケーションの内の所定の個別アプリケーションモジュールの両方のアプリケーションモジュールを起動し、該起動した前記共通アプリケーションモジュールに対応するシンボルを表示することなく、該起動した所定の個別アプリケーションモジュールに対応するシンボルを表示する
ことを特徴とする画像形成装置を制御する制御方法。
【請求項６】
アプリケーションを実行する際に利用するリソースの使用量を制限する画像形成装置により実行されるプログラムであって、
１つのアプリケーションに複数のアプリケーションモジュールが含まれている複合型アプリケーションをインストールするインストールステップと、
前記インストールステップよりインストールされた複合型アプリケーションを起動する際に、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記複数のアプリケーションモジュールの内の所定のアプリケーションモジュールを起動し、該起動した所定のアプリケーションモジュールに対応するシンボルを前記画像形成装置の表示部に表示する表示ステップと、
前記表示ステップにより表示されたシンボルが選択され画像処理が指示された場合、該シンボルに対応するアプリケーションモジュールを利用し画像処理を行う画像形成ステップと、
前記複数のアプリケーションモジュールの内の起動に失敗したアプリケーションモジュールの再起動を指示することが可能なアプリケーション管理画面であって、前記起動に失敗したアプリケーションモジュールの再起動の指示を受け付ける指示部のみならず、該起動した所定のアプリケーションモジュールの停止の指示を受け付ける指示部も含む前記アプリケーション管理画面を提供する提供ステップと、を有し、
前記複数のアプリケーションモジュールは、共通アプリケーションモジュールと、個別アプリケーションモジュールとから構成され、前記共通アプリケーションモジュールは、前記個別アプリケーションモジュールが外部システムと通信を行っている旨を表示するアプリケーションモジュールであり、
前記表示ステップは、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記共通アプリケーションモジュールと、前記個別アプリケーションの内の所定の個別アプリケーションモジュールの両方のアプリケーションモジュールが起動されたことに応じ、該起動した前記共通アプリケーションモジュールに対応するシンボルを表示することなく、該起動した所定の個別アプリケーションモジュールに対応するシンボルを表示する
する画像形成装置により実行されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部からアプリケーションをダウンロードし実行する画像形成装置、およびその画像形成装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
画像形成装置のリアルタイムＯＳ上に組み込みシステム向けの実行環境（Ｊａｖａ（登録商標））を構築し、画像形成装置の制御を行ことのできるアプリケーションを外部からダウンロードし、構築した実行環境上で実行させることが知られている。この実行環境を構築することにより、ユーザは画像形成装置にアプリケーションを追加することが可能になる。
【０００３】
しかし、画像形成装置上の実行環境はＰＣの世界とは異なり、限られたリソースの中で複数のアプリケーションが共存しなくてはいけない。画像形成装置は、ＰＣと比較して搭載されるＣＰＵやメモリと言ったハードリソースがＰＣと比べて少ないためである。また、印刷処理等のユーザビリティを鑑みると、画像処理のリアルタイム性を確保するためにアプリケーションのリソース使用量に制限を課す必要がある。例えば、画像形成装置の表示部を利用するアプリケーションについて、そのアプリケーションの起動数に上限を設けるなどの制限がある。特許文献１における画像形成装置は、アプリケーションのリソース使用量に制限を設けている。具体的には、アプリケーションが要求するリソース量と、起動中のアプリケーションが使用しているリソース量の合計が、予め決められた上限値に達したかどうかを判定する。そして、画像形成装置はその判定の結果に基づきアプリケーションの起動処理をコントロールする。このように、画像処理にリアルタイム性が求められる画像形成装置は、アプリケーションを起動するために必要な限られたリソース（メモリやストレージ、ＵＩ利用上限など）に十分な空きが存在しない場合、アプリケーションの起動を制限する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２８３００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のアプリケーションは、１つのアプリケーションに１つのアプリケーションモジュールを想定していた。しかし、１つのアプリケーションが複数のアプリケーションモジュールを含む形態（以下、このようなアプリケーションを複合型アプリケーションと称する）も考えられる。そして、従来はそのような形態のアプリケーションを、リソース制限がかけられた画像形成装置でどのように起動するかについて考えられていなかった。
【０００６】
本発明は、リソースの使用量に制限がかけられている画像形成装置において、複合型アプリケーションを適切に起動することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る画像形成装置は、アプリケーションを実行する際に利用するリソースの使用量を制限する画像形成装置であって、１つのアプリケーションに複数のアプリケーションモジュールが含まれている複合型アプリケーションをインストールするインストール手段と、前記インストール手段によりインストールされた複合型アプリケーションを起動する際に、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記複数のアプリケーションモジュールの内の所定のアプリケーションモジュールを起動し、該起動した所定のアプリケーションモジュールに対応するシンボルを前記画像形成装置の表示部に表示する表示手段と、前記表示手段により表示されたシンボルが選択され画像処理が指示された場合、該シンボルに対応するアプリケーションモジュールを利用し画像処理を行う画像形成手段と、前記複数のアプリケーションモジュールの内の起動に失敗したアプリケーションモジュールの再起動を指示することが可能なアプリケーション管理画面であって、前記起動に失敗したアプリケーションモジュールの再起動の指示を受け付ける指示部のみならず、該起動した所定のアプリケーションモジュールの停止の指示を受け付ける指示部も含む前記アプリケーション管理画面を提供する提供手段と、を有し、前記複数のアプリケーションモジュールは、共通アプリケーションモジュールと、個別アプリケーションモジュールとから構成され、前記共通アプリケーションモジュールは、前記個別アプリケーションモジュールが外部システムと通信を行っている旨を表示するアプリケーションモジュールであり、前記表示手段は、前記リソースの使用量の制限により前記複合型アプリケーションに含まれる複数のアプリケーションモジュールを起動できない場合、前記共通アプリケーションモジュールと、前記個別アプリケーションの内の所定の個別アプリケーションモジュールの両方のアプリケーションモジュールを起動し、該起動した前記共通アプリケーションモジュールに対応するシンボルを表示することなく、該起動した所定の個別アプリケーションモジュールに対応するシンボルを表示することを特徴とする。
【発明の効果】
【０００８】
本発明により、リソースの使用量に制限がかけられている画像形成装置において、複合型アプリケーションを適切に起動することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態における画像形成装置の構成図。
【図２】本発明の実施形態における画像形成装置のソフトウエア構造図。
【図３】本発明の実施形態における操作部１１２のタッチパネルに表示される画面を示す図。
【図４】本発明の実施形態におけるアプリケーション４００の基本構成図。
【図５】本発明の実施形態における外部サービスＡ接続用アプリケーション部４０２により表示されるＵＩを示す図。
【図６】本発明の実施形態に送信処理用アプリケーション部４０１により表示されるＵＩを示す図。
【図７】（ａ）本発明の実施形態におけるアプリケーションを構成する各アプリケーションモジュールの起動優先順位を示した図。（ｂ）本発明の実施形態におけるアプリケーションを構成する各アプリケーションモジュールが機能を提供するために最低限必要なアプリケーションモジュールの組み合わせを示した図。
【図８】本発明の実施形態におけるアプリケーションの起動処理に関するフローチャート。
【図９】本発明の実施形態におけるＵＩアプリケーションの起動状態を管理する管理テーブルを示す図。
【図１０】本発明の実施形態における起動に失敗した各ＵＩアプリケーションについて、再度初期化処理を行うことのできるサーブレットアプリケーションにより表示されるＵＩを示す図。
【図１１】本発明のポイントを示す図。
【図１２】（ａ）ケース１のシンボル表示を示す図。（ｂ）ケース２のシンボル表示を示す図。（ｃ）ケース３、４のシンボル表示を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
（第１の実施形態）
以下、本発明の実施の形態について図面を参照して詳細に説明する。実施例１におけるシステム（不図示）は、画像形成装置、および２つの外部サーバがインターネットを介して接続されるシステムを想定している。実施例１における外部サーバは２つであるが、外部サーバの数に制限はない。なお、夫々の外部サーバは複数台のサーバから構成されているサーバシステムであっても良い。
【００１２】
図１は、実施例１における画像形成装置の内部構成を示すブロック図である。図１に示す画像形成装置は、画像形成装置内の各部を制御するコントローラユニット１００と、操作部１１２と、スキャナ部１２３と、プリンタ部１２５とを備える。操作部１１２は、例えば、数字を入力するためのテンキー、処理の実行を行うためのスタートキーなどのハードキー、および液晶タッチパネル等で構成される。操作部１１２は、ユーザが画像形成装置を操作するためのユーザインタフェースを提供する。操作部１１２のタッチパネルに表示される各設定項目を表すアイコンやボタン（もしくはハードキー）をタッチ（押下）することで、画像形成装置に設定や情報の入力を行うことが可能である。操作部１１２は表示部に相当する。
【００１３】
スキャナ部１２３は、原稿を読み取り、読み取った原稿情報から画像データを生成する画像処理を行う。プリンタ部１２５は、記録用紙を搬送し、その記録用紙に画像データを可視画像として画像形成し印刷する画像処理を行う。
【００１４】
コントローラユニット１００は、バス１２２を介してスキャナ部１２３に接続され、またバス１２４を介してプリンタ部１２５に接続される。コントローラユニット１００は、スキャナ部１２３、およびコントローラユニット１００に対して画像処理の指示を送信する。また、コントローラユニット１００は、ＬＡＮ１１３、公衆回線（ＷＡＮ）１１４、および無線１１５を介して他の機器に接続し、画像情報やデバイス情報の入出力制御を行う。
【００１５】
ＣＰＵ１０１は、システム全体を制御するユニット（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。ＲＡＭ１０２は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、画像データを一時記憶するためのユニット（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でもある。ＲＯＭ１０３はデータを格納するユニット（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、ブートＲＯＭである。ＲＯＭ１０３には、システムのブートプログラムが格納されている。ＨＤＤ１０４は、システムソフトウェアや画像データ、後述する通信部１１１が有するすべての無線通信に関する情報（無線通信の仕様）を格納するユニット（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）である。また、ＨＤＤ１０４は、後述するリアルタイムＯＳ２０１、および仮想マシン２０５上で動作するアプリケーションも格納する。
【００１６】
画像形成装置では、使用したい機能を実装したアプリケーションをインストールすることで機能を増やすことができる。アプリのインストールにより、画像形成装置上で各種機能を動かすためのアプリケーションプログラムがＲＡＭ１０２やＨＤＤ１０４に記憶される。なお、後述するが、画像形成装置にアプリケーションをインストールする場合、画像形成装置の各種機能を制御するＯＳ上ではなく、そのＯＳ上で動作する仮想環境上にインストールされる。
【００１７】
操作部Ｉ／Ｆ１０６は、ユーザインターフェース（ＵＩ）である操作部１１２との間のインターフェース部であり、操作部１１２に表示すべきデータを操作部１１２に対して出力する。また、操作部１１２からユーザが入力した情報を、ＣＰＵ１０１に伝える役割を行う。Ｎｅｔｗｏｒｋ部１０９は、ＬＡＮ１１３に接続され、ネットワークを介して外部と情報の送受信を行う。ＭＯＤＥＭ１１０は、公衆回線１１４に接続され、情報の入出力を行う。通信部１１１は、アンテナ（不図示）を介して無線（ＷＩＲＥＬＥＳＳ）１１５に接続され、情報の入出力を行う。また、通信部１１１は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス１０７上に配置される。
【００１８】
イメージバス（ＩｍａｇｅＢｕｓ）Ｉ／Ｆ１０５は、システムバス１０７と、画像データを高速で転送する画像バス１０８とを接続し、データ構造を変換するバスブリッジである。画像バス１０８は、ＰＣＩバスまたはＩＥＥＥ１３９４等で規定されるバスである。
【００１９】
画像バス１０８上に配置される各デバイスにおいて、ラスターイメージプロセッサ（ＲＩＰ）１１６は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ部１１７は、スキャナ部１２３またはプリンタ部１２５をコントローラユニット１００に接続し、画像データの同期系／非同期系の変換を行う。
【００２０】
スキャナ画像処理部１１８は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部１１９は、プリント出力画像データに対して、プリンタ部１２５に合った補正、解像度変換等を行う。画像回転部１２０は、画像データの回転を行う。画像処理部１２１は、画像データに対する、ＪＰＥＧ、ＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理や、ＰＤＦ、ＴＩＦＦ、ＯＣＲ、暗号化等のフォーマット変換処理を行う。
【００２１】
次に、図１の画像形成装置のソフトウェア構成について図２を用いて説明する。図２は、画像形成装置のＨＤＤ１０４に記憶された各機能を実現するためのプログラムをＲＡＭ１０２にロードし、ＣＰＵ１０１により実行されることで実現する。
【００２２】
２０１は画像形成装置全体を制御する本発明の第１の実行環境であり、画像形成装置の各種機能をリアルタイムに制御可能な各ユニット、またはＣＰＵに対し命令を発信する。ＯＳ２０１は、クリティカルに複写機のオプション装置、拡張カードを含む各機能を制御することが可能なライブラリ群を含む。そして、その上位で動作するアプリケーションに対して、インターフェース・コマンドを提供するモジュール群により構成される。２０２は第１の実行環境２０１上で動作するコントローラ制御部であり、スキャナ部１２３、プリンタ部１２５、などを制御するモジュールにより構成される。
【００２３】
２０３はアプリケーション・プログラミング・インターフェース（以下ＡＰＩ）である。ＡＰＩ２０３は、ＯＳ２０１上で動作するアプリケーションからの命令に応答して、コントローラ制御部２０２にアクセスする処理とＮｅｔｗｏｒｋ部１０９を介してネットワークに接続された機器等に制御コマンドを送る機能を実現する。２０４は第１の実行環境２０１上で動作するアプリケーションであり、ＡＰＩ２０３を使用しコントローラ制御部２０２に各種処理を依頼する。
【００２４】
仮想マシン２０５は、特定のアプリケーションを実行するための第２の実行環境であり、例えば、Ｊａｖａ（登録商標）の仮想マシンなどにより実現されるものである。ＡＰＩ２０６は、第２の実行環境である仮想マシン２０５上のアプリケーションが、第１の実行環境であるリアルタイムＯＳ２０１上で動作するコントローラ制御部２０２にアクセスするための機能を提供する。具体的に説明するとＡＰＩ２０６は、仮想マシン２０５上で動作するアプリケーションからの呼び出しに応じて各種機能を提供するモジュールで構成されている。ＡＰＩ２０６は、ＡＰＩ２０３を呼び出すための変換モジュールの機能とＮｅｔｗｏｒｋ部１０９を介してネットワークに接続された機器等に制御コマンドを送る機能を実現する。
【００２５】
ＦｒａｍｅＷｏｒｋ２０７は、第２の実行環境２０５上のアプリケーションを統括的に制御する機能を有するフレームワークモジュールである。２０９は、第２の実行環境２０５上で動作するアプリケーションを管理するためのアプリケーションである。管理アプリケーション２０９は、ＦｒａｍｅＷｏｒｋ２０７と協調し、後述のアプリケーション２１０、複合型アプリケーション２１２のダウンロード、アップロード、消去、無効化、インストールを実現する機能を提供する。
【００２６】
２０９、２１０は第２の実行環境２０５上で動作するアプリケーションであり、ＡＰＩ２０６を使用しコントローラ制御部２０２に各種処理を依頼するものである。
【００２７】
リソース管理部２１１は、第２の実行環境である仮想マシン２０５が使用するリソースを管理し、第１の実行環境を実現するリアルタイムＯＳ２０１上で動作する。リソース管理部２１１は、第２の実行環境を実現する仮想マシン２０５、ＡＰＩ２０６、フレームワーク２０７、およびＯＳ２０５上で動作するアプリケーションがリソースを使用する際、それらのモジュールが使用するリソース使用量を制限する。具体的には、それらのモジュールが予め決められた使用量以上のリソースを使用できないように画像形成装置のリソース使用量を制限する。例えば、仮想マシン２０５上で動作するアプリケーションをＲＡＭ１０２にロードする際、既に予め決められたアプリケーション起動数のアプリケーションがメモリにロードされている場合、アプリケーションのロードを制限する。その他の例として、ＲＡＭ１０２にアプリケーションをロードしたが、そのロードしたアプリケーションを実行するＣＰＵのリソースが足りないため、アプリケーションの実行を制限することもある。なお、実施例１における予め決められたアプリケーション起動数とは、仮想マシン２０５上で動作するアプリケーションに対して課せられている制限であり、例えば２０という制限が与えられている。よって、仮想マシン２０５上で動作するアプリケーションが既に２０個ＲＡＭ１０２にロードされている場合、仮想マシン２０５上で動作するアプリケーションをこれ以上起動することはできない。
【００２８】
図３は、操作部１１２のタッチパネルに表示される画面の一例を示す図である。操作部１１２のタッチパネルに表示される画面は、図３のトップ画面３００のように、各画面で共通の内容が表示される共通エリア３０１と、各画面で異なる内容が表示される機能エリア３０２とからなる。トップ画面とは、画像形成装置の電源を入れてから実行可能状態になったときに、画像形成装置の表示部に最初に表示される画面である。
【００２９】
共通エリア３０１は、表示している画面を説明するためのタイトルバー３０３と、現在表示している画面に応じた設定登録や機能設定を行うメニューを表示するためのメニューボタン３０４とからなる。機能エリア３０２には、コピーやセンドなどと言ったアプリケーションを利用する画面に切り替えるためのボタンが表示されている。実施例１におけるアプリボタンは、コピーアプリボタン３０５、センドアプリボタン３０６、ボックスアプリボタン３０７、及び外部サーバへの送信アプリボタン３０８が表示されている。外部サーバへの送信アプリボタン３０８以外のボタンに対応するアプリケーションは、第１の実行環境上で動作するアプリケーションである。新しいアプリが画像形成装置にインストールされ、ＲＡＭ１０２にロードされ正常に起動すると、起動したアプリケーションに対応するボタンがトップ画面３００上の機能エリア３０２に表示される。なお、これらのアプリケーションは、画像形成装置が起動した時点でＲＡＭ１０２にロードされる。また、機能エリア３０２に登録されるボタンは、ＯＳ２０１上で動作するアプリケーション、および仮想マシン２０５上で動作するアプリケーションの両方のアプリケーションに対応するボタンである。
【００３０】
図４は、本実施形態における複合型アプリケーション２１２の基本構成図である。図４に示す通り、複合型アプリケーション２１２は、複数のアプリケーションモジュールから構成されている。複合型アプリケーション２１２は、画像形成装置からネットワークで接続されている外部サーバに接続を行い、外部サーバに対しスキャンした画像を送信する機能を実現する。また、複合型アプリケーション２１２は、外部サーバから画像データを受信する機能も実現する。複合型アプリケーション２１２は、送信処理用アプリケーション部４０１、外部サービスＡ接続用アプリケーション部４０２、および外部サービスＢ接続用アプリケーション部４０３の３つのアプリケーションモジュールから構成される。夫々のアプリケーションモジュールは、夫々異なるＵＩを提供するアプリケーションである。また、夫々のアプリケーションモジュールはパッケージ化されたアプリケーションモジュールであり、独立した夫々のモジュール群が各アプリケーションモジュールに相当する。モジュールを特定の機能を実現するためにごとにパッケージ化しモジュール群とすることで、独立性の高いアプリケーション構成を実現することができる。
【００３１】
外部サービスＡ接続用アプリケーション部４０２は、外部サーバＡ（不図示）と通信を行うアプリケーションモジュールであり、図５に示すようなＵＩ５００を操作部１１２に表示する。外部サーバＡは、クラウドコンピューティング環境を想定しており、そのクラウドコンピューティング環境を利用し外部サービスＡを提供するサーバである。
【００３２】
ＵＩ５００における５０１は、スキャンの倍率を指定する項目、５０２は解像度を指定する項目、５０３は濃度を指定する項目を表す。５０４は送信を実行するためのボタンである。ユーザにより、外部サービスＡに対して送信するために送信ボタン５０４が押下されると、原稿がスキャンされ、外部サーバＡにスキャン原稿に対応する画像データが送信される。外部サービスＡ接続用アプリケーション部４０２は、外部サービスＡと通信を行うための通信モジュールを有しており、外部サーバＡと通信を行いスキャンした画像を送信する。このとき、外部サービスＡ接続用アプリケーション部４０２は、送信処理用アプリケーション部４０１を呼び出す。呼び出された送信処理用アプリケーション部４０１は、スキャンした原稿画像を送信している旨をユーザに伝えるため、図６に示すＵＩを表示部に表示する。つまり、複合型アプリケーション２１２は、外部サービスＡ接続用アプリケーション部４０２と送信処理用アプリケーション部４０１の２つのアプリケーションモジュールを起動し、画像処理を行い、その結果の画像を外部サーバへ送信する処理を行う。なお、上述の通り、外部サービスＡ接続用アプリケーション部４０２は、外部サーバから画像データを受信し、その画像データに画像処理を施し印刷する処理を行うことも可能である。その場合、外部サービスＡ接続用アプリケーション部４０２は、図５とは異なる印刷用のＵＩ（不図示）を表示する。
【００３３】
外部サービスＢ接続用アプリケーション部４０３は、外部サーバＢ（不図示）と通信を行うアプリケーションモジュールであり、外部サーバＢに対してスキャンした画像を送信するためのＵＩを表示する（不図示）。外部サーバＢは、クラウドコンピューティング環境を想定しており、そのクラウドコンピューティング環境を利用し外部サービスＢを提供するサーバである。外部サービスＡと外部サービスＢの違いは、例えば、保存するデータ形式の種類が異なる点である。外部サービスＢは、外部サービスＡと異なり、複数種類のデータ形式を保存することが可能である。そのため、外部サービスＢ接続用アプリケーション部４０３が表示するＵＩには図５に示す項目の他に、データの形式を選択する項目も表示されている。なお、外部サービスＢ接続用アプリケーション部４０３も、外部サーバから画像データを受信し、その画像データに画像処理を施し印刷する処理を行うことも可能である。
【００３４】
また、外部サービスＢ接続用アプリケーション部４０３は、外部サービスＢと通信を行うための通信モジュールを有しており、外部サーバＢと通信を行いスキャンした画像を送信する。このとき、外部サービスＢ接続用アプリケーション部４０３は、送信処理用アプリケーション部４０１を呼び出す。呼び出された送信処理用アプリケーション部４０１は、スキャンした原稿画像を送信している旨のＵＩを表示する（図６）。外部サービスＢ接続用アプリケーション部４０３も、４０２と同様に送信処理用アプリケーション部４０１と連携して動作するアプリケーションモジュールである。このように、ネットワークを介して接続されているシステムと通信を行うためのアプリケーションモジュールを個別アプリケーションモジュールと称し、個別アプリケーションモジュールから共通に利用されるモジュールを共通アプリケーションモジュールと称する。複合型アプリケーション２１２は、個別アプリケーションモジュールと、共通アプリケーションモジュールとから構成される。なお、上述の通り、各個別アプリケーションモジュールはＵＩを表示する機能も実現するが、接続先の外部サーバが提供する外部サービスに応じて表示するＵＩが異なる。また、各個別アプリケーションモジュールが有する通信モジュールは、異なる外部サーバと通信しユーザに異なる外部サービスを提供するため、夫々の外部サーバに応じた通信プロトコルで通信する。
【００３５】
また、外部サービスＡ、およびＢを提供する２つの外部サーバは、クラウドコンピューティング環境を想定している。２つの外部サーバは、公知の情報処理装置の構成を有しており、外部からの要求に従いデータを保存するサービスの他、保存しているデータを要求元に送信するサービスも提供している。
【００３６】
図７（ａ）は、複合型アプリケーション２１２を構成する各アプリケーションモジュールの起動優先順位を示した図である。７０１、７０２および７０３で示すように、送信処理用アプリケーション部４０１、外部サービスＡ接続用アプリケーション部４０２、外部サービスＢ接続用アプリケーション部４０３の順で起動の優先順位が決まっている。送信処理用アプリケーション部４０１の優先順位が高い理由は、複数のアプリケーションモジュールから共通に利用される共通アプリケーションモジュールだからである。共通アプリケーションモジュールは、個別アプリケーションモジュールと比較して起動の優先順位が高い。この理由については後述する。また、外部サービスＡ接続用アプリケーション部４０２の優先順位が２番目に高い理由は、ユーザが外部サービスＡを外部サービスＢと比較して頻繁に利用することを想定しているからである。なお、この優先順については、アプリケーションが静的に保持してもよいが、全てのアプリケーションモジュールの起動優先順位を変更可能にすることも可能である。
【００３７】
図７（ｂ）は、複合型アプリケーション２１２を構成する各個別アプリケーションが機能を提供するために最低限必要なアプリケーションモジュールの組み合わせを示すものである。図７（ｂ）によると７０４で示すように、機能１を提供するためには、送信処理用アプリケーション部４０１と外部サービスＡ接続用アプリケーション部４０２が必要である。また、７０５で示すように、機能２を提供するためには、送信処理用アプリケーション部４０１と外部サービスＢ接続用アプリケーション部４０３が必要となる。個別アプリケーションモジュールの提供する機能をユーザが受けるためには、共通アプリケーションモジュールが必要なことが図７（ｂ）から分かる。共通アプリケーションモジュールは、各個別アプリケーションモジュールが提供するサービスを実現するために必要な機能を有するアプリケーションモジュールである。開発者は、開発工数を考え共通利用されるモジュールとして独立して開発する。各個別アプリケーションモジュールに、共通アプリケーションモジュールの機能を組み込んだ場合、開発者の開発工数が増える他、モジュールのコードが肥大化するというデメリットがあるからである。限られたリソースを駆使して動作する画像形成装置にとっては、コードの肥大化はリソースの圧迫につながる。
【００３８】
図８は、実施例１における複合型アプリケーション２１２の起動処理に関するフローチャートである。Ｓ８０１において、複合型アプリケーション２１２は起動処理を開始する。Ｓ８０２にて、複合型アプリケーション２１２は、優先度が１の送信処理用アプリ−ケーション４０１の起動確認を行う。起動確認とは、リソース管理部２１１がアプリケーションモジュールの起動に制限がかからなかったかを確認することを意味する。Ｓ８０２にて送信処理用アプリ−ケーション４０１の起動ができなかった場合には、Ｓ８０３にていずれのアプリケーションモジュールも初期化せずにアプリケーションを起動して起動処理を終了する。初期化せずに起動するとは、アプリケーションモジュールに含まれる一部の機能を実現するモジュール部分がＲＡＭ１０２にロードされた状態である。無論、この状態ではアプリケーションモジュールが提供する機能をユーザが受けることはできない。
【００３９】
Ｓ８０２にて送信処理用アプリ−ケーション４０１の起動が成功した場合には、Ｓ８０４に進む。Ｓ８０４にて複合型アプリケーション２１２は、優先度が２番目の外部サービスＡ接続用アプリケーション部４０２の起動確認を行う。Ｓ８０４にて外部サービスＡ接続用アプリケーション部４０２の起動ができなかった場合には、複合型アプリケーション２１２は、Ｓ８０５にて送信処理用アプリケーション４０１だけ初期化を行い起動する。この際、複合型アプリケーション２１２は、トップ画面３００へのボタン登録は行わずに起動処理を終了する。トップ画面３００へボタン登録を行わない理由は、送信用アプリケーション４０１だけでは、ユーザに外部サービスを利用したサービスを提供できないからである。Ｓ８０４にて外部サービスＡ接続用アプリケーション部４０２の起動が成功した場合は、Ｓ８０６に進む。
【００４０】
Ｓ８０６にて複合型アプリケーション２１２は、優先度が３番目の外部サービスＢ接続用アプリケーション部４０３の起動確認を行う。Ｓ８０６にて外部サービスＢ接続用アプリケーション部４０３が起動できなかった場合、複合型アプリケーション２１２は、Ｓ８０７にて送信処理用アプリケーション部４０１、および外部サービスＡ接続用アプリケーション部４０２の初期化を行い起動する。この際、複合型アプリケーション２１２は、トップ画面３００へ外部サービスＡを利用するためのボタンの登録を行う。このボタンは、外部サービスＡ接続アプリケーション部４０２に対応するボタンである。Ｓ８０６にて外部サービスＢ接続用アプリケーション部４０３の起動が成功した場合、複合型アプリケーション２１２は、Ｓ８０８にて次の３つのアプリケーションモジュールの初期化を行い起動する。送信処理用アプリケーション部４０１、外部サービスＡ接続用アプリケーション部４０２および外部サービスＢ接続用アプリケーション部４０２である。そして、複合型アプリケーション２１２は、トップ画面３００へ外部サービスＡを利用するためのボタン、および外部サービスＢを利用するためのボタンの登録を行い、起動処理を終了する。
【００４１】
図９は、図８で起動処理を行ったアプリケーションモジュールのそれぞれの起動状態を管理する管理テーブルである。この管理テーブルは、管理アプリケーション２０９により管理される。図９によると、送信処理用アプリケーション部４０１および外部サービスＡ接続用アプリケーション部４０２は初期化に成功し起動しているが、外部サービスＢ接続用アプリケーション部４０３については、停止状態となっていることがわかる。
【００４２】
図１０は、図８で起動処理を行ったアプリケーションモジュールの中で、起動に失敗したアプリケーションモジュールの再度起動処理を指示できるサーブレットアプリケーションのＵＩ画面を示す。アプリケーション管理画面１１００では、外部サービスＡ接続用アプリケーション１１０１の状態が停止状態であるために、１１０３のように開始ボタンが有効になっている。また、外部サービスＢ接続用アプリケーション１１０２の状態が開始状態であるために、１１０４のように停止ボタンが有効になっている。このような状態で、開始ボタンを押下すると対応するアプリケーションモジュールの初期化処理が行われ起動し、停止ボタンを押下すると対応するアプリケーションモジュールは停止する。この画面を生成するのは、仮想マシン２０５上で動作するサーブレットアプリケーション（不図示）と呼ばれるアプリケーションである。サーブレットアプリケーションは、外部からの画面要求に従い図１０に示す画面を生成し、生成した画面を外部の要求元に提供する。図１０には、複合型アプリケーション２１２のみ表示されているが、その他の仮想マシン２０５上で動作するアプリケーションを表示しても良い。その際、その他の仮想マシン２０５上で動作するアプリケーションを選択し停止を指示することで、複合型アプリケーション２１２の起動を行うことも可能である。
【００４３】
以上、実施例１における複合型アプリケーションの起動に関する説明を行ってきた。最後に、図１１、および図１２を用いて本発明のポイントをまとめる。図１１は、本発明のポイントを示す図である。図１２は、アプリケーションモジュールが起動した際のシンボル（アイコン）の表示を示す図である。
【００４４】
まず、複合型アプリケーションは、複数のアプリケーションモジュールにより構成されている。夫々のアプリケーションモジュールは複数の機能を実現するモジュールであり、共通アプリケーションモジュールと、個別アプリケーションモジュールに分類される。個別アプリケーションモジュールは、共通アプリケーションモジュールと連携することで、ユーザに外部サービスを利用したサービスを提供することができる。そのサービスとは、例えば、スキャンした画像データを外部サーバに保存したり、外部サーバに保存されている画像データをダウンロードし印刷すると言ったサービスである。また、個別アプリケーションモジュールは、外部サーバと通信するための通信モジュールと、通信相手の外部サービスに併せたＵＩ画面を表示する表示モジュールを含む。共通アプリケーションモジュールは、個別アプリケーションモジュールからの呼び出しに応じて、外部サーバと通信している旨を示すＵＩ画面を表示する表示モジュールを含む。
【００４５】
複合型アプリケーションが有する全てのアプリケーションモジュールを起動できるケース１の場合は、図１２（ａ）に示すように起動した全ての個別アプリケーションモジュールに対応するシンボル（アイコン）１２０１、１２０２を表示する。複合型アプリケーションが有するアプリケーションモジュールの一部のアプリケーションモジュールが起動できる場合は、次の２通りのケースが考えられる。１つ目のケースは、全ての共通アプリケーションモジュールと、１つ以上の個別アプリケーションモジュールを起動できるケース２の場合である。２つ目のケースは、個別アプリケーションモジュールを１つも起動できない場合、または、共通アプリケーションモジュールの一部を起動できないケース３の場合である。
【００４６】
ケース２の場合、共通アプリケーションモジュールと、優先度の高い個別アプリケーションモジュールを起動する。また、図１２（ｂ）に示すように起動可能な所定の個別アプリケーションモジュールに対応するシンボル１２０１を表示する。ケース３の場合、個別アプリケーションモジュールを起動せずに、起動可能な範囲で共通アプリケーションモジュールを起動する。また、図１２（ｃ）に示すように個別アプリケーションモジュールに対応するシンボルは表示しない。なお、ケース３の場合に共通アプリケーションモジュールだけでも起動する理由は、複合型アプリケーション２１２以外のアプリケーションに割り込まれないようにするためである。他のアプリケーションに割り込まれた場合、複合型アプリケーション２１２の起動にさらに時間を要してしまうからである。実施例１では、複合型アプリケーション２１２のように複数のアプリケーションモジュールを有するアプリケーションは、その他の未だ起動していないアプリケーションよりも起動の優先順位が高い。複合型アプリケーションが有する全てのアプリケーションモジュールを起動できないケース４の場合は、全てのアプリケーションモジュールを起動しない。また、図１２（ｃ）に示すように個別アプリケーションモジュールに対応するシンボルを表示しない。
【００４７】
表示部に表示されている外部サービスを利用するためのシンボルが押下されると、対応する個別アプリケーションモジュールはＵＩを表示する。そして、画像形成装置は、例えば、外部サーバから画像データを受信し、受信した画像データを印刷する。このとき、個別アプリケーションモジュールは、共通アプリケーションモジュールと連携して動作する。このように、画像形成装置は、シンボルが押下され各種指示が発行されると、外部サーバとデータ通信を行う前、または後に画像処理を行う。
【００４８】
以上、実施例１における画像形成装置、およびその画像形成装置を制御する方法、およびその制御方法を画像形成装置に実行させるためのプログラムの処理について説明した。実施例１によれば、リソース使用量に制限がかけられている画像形成装置において、複合型アプリケーションの適切な起動を可能にする。
【００４９】
実施例１では、共通アプリケーションモジュールと、個別アプリケーションモジュールとを含む複合型アプリケーションについて説明した。しかしながら、個別アプリケーションモジュールのみを含む複合型アプリケーションであっても良い。この場合、画像形成装置のリソースを圧迫することにはなるが、本発明を実施することは可能である。
【００５０】
また、実施例１における共通アプリケーションモジュールと、個別アプリケーションモジュールは、最低限のモジュール群により構成されていた。しかしながら、実施例１に記載されていないその他のモジュール群を含んでいても良い。
【図１】
0005814526.tif 000002
【図２】
0005814526.tif 000003
【図３】
0005814526.tif 000004
【図４】
0005814526.tif 000005
【図５】
0005814526.tif 000006
【図６】
0005814526.tif 000007
【図７】
0005814526.tif 000008
【図８】
0005814526.tif 000009
【図９】
0005814526.tif 000010
【図１０】
0005814526.tif 000011
【図１１】
0005814526.tif 000012
【図１２】
0005814526.tif 000013