(57)【要約】【課題】　あるアプリケーションに対して排他関係もしくは必須関係にあるアプリケーションに対する起動制御を行う。【解決手段】　複数のアプリケーションを搭載可能に構成された画像形成装置において、アプリケーションの組み合わせの適否に関する情報をアプリケーション毎に記録したデータベースを参照する手段と、前記アプリケーションの組み合わせの適否に関する情報に基づき、アプリケーションに対する起動制御処理を行う起動制御手段とを備える。【選択図】　図２１
2004127280.tif 000002
【特許請求の範囲】
【請求項１】
　複数のアプリケーションを搭載可能に構成された画像形成装置において、
　アプリケーションの組み合わせの適否に関する情報をアプリケーション毎に記録したデータベースを参照する手段と、
　前記アプリケーションの組み合わせの適否に関する情報に基づき、アプリケーションに対する起動制御処理を行う起動制御手段と
　を有することを特徴とする画像形成装置。
【請求項２】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間の排他関係もしくは非推奨関係を示す情報であり、
　前記起動制御手段は、排他関係もしくは非推奨関係にある複数のアプリケーションの中から少なくとも１つのアプリケーションを選択させる画面を前記画像形成装置のオペレーションパネルに表示する請求項１に記載の画像形成装置。
【請求項３】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間の排他関係もしくは非推奨関係を示す情報であり、
　前記起動制御手段は、排他関係もしくは非推奨関係にある複数のアプリケーションのうち、少なくとも１つのアプリケーションの起動または起動設定を行う請求項１に記載の画像形成装置。
【請求項４】
　前記起動制御手段は、排他関係もしくは非推奨関係にある複数のアプリケーションの中から優先順位の高いアプリケーションを起動もしくは起動設定する請求項３に記載の画像形成装置。
【請求項５】
　前記データベースにおける組み合わせの適否に関する情報は、アプリケーションの排他関係もしくは非推奨関係を示す情報であり、
　前記起動制御手段は、あるアプリケーションと他のアプリケーションとの組み合わせが非推奨関係にある場合に、警告画面を前記画像形成装置のオペレーションパネルに表示する請求項１に記載の画像形成装置。
【請求項６】
　前記起動制御手段は、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに、前記データベースを参照し、当該アプリケーションに対して排他関係もしくは非推奨関係にあるアプリケーションの識別子を取得して、前記起動制御処理を行う請求項２ないし５のうちいずれか１項に記載の画像形成装置。
【請求項７】
　前記データベースにおける組み合わせの適否に関する情報は、アプリケーションの排他関係もしくは非推奨関係を示す情報であり、当該排他関係もしくは非推奨関係を示す情報は、排他関係もしくは非推奨関係の強さを示すレベルを含み、
　前記起動制御手段は、当該レベルに応じて、前記起動制御処理を行う請求項１に記載の画像形成装置。
【請求項８】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、
　前記起動制御手段は、あるアプリケーションに対し、必須関係もしくは推奨関係にあるアプリケーションを示す画面を前記画像形成装置のオペレーションパネルに表示する請求項１に記載の画像形成装置。
【請求項９】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、
　前記起動制御手段は、あるアプリケーションに対し、必須関係もしくは推奨関係にあるアプリケーションを起動もしくは起動設定する請求項１に記載の画像形成装置。
【請求項１０】
　前記起動制御手段は、前記必須関係もしくは推奨関係にあるアプリケーションが、前記画像形成装置にインストールされていない場合に、当該アプリケーションをネットワークを介してサーバからダウンロードする請求項８または９に記載の画像形成装置。
【請求項１１】
　前記起動制御手段は、前記必須関係もしくは推奨関係にあるアプリケーションが、前記画像形成装置にインストールされていない場合に、当該アプリケーションの取得に関する情報をオペレーションパネルに表示する請求項８または９に記載の画像形成装置。
【請求項１２】
　前記起動制御手段は、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに、前記データベースを参照し、当該アプリケーションに対して必須関係もしくは推奨関係にあるアプリケーションの識別子を取得して、前記起動制御処理を行う請求項８ないし１１のうちいずれか１項に記載の画像形成装置。
【請求項１３】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、当該必須関係もしくは推奨関係を示す情報は、必須関係もしくは推奨関係の強さを示すレベルを含み、
　前記起動制御手段は、当該レベルに応じて、前記起動制御処理を行う請求項１に記載の画像形成装置。　
【請求項１４】
　画像形成処理で使用されるハードウェア資源と、
　ハードウェア資源の制御を行うコントロールサービスと、
　コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有する請求項１ないし１３のうちいずれか１項に記載の画像形成装置。
【請求項１５】
　前記仮想アプリケーションサービスは前記参照する手段及び前記起動制御手段を含む請求項１４に記載の画像形成装置。
【請求項１６】
　複数のアプリケーションを搭載可能に構成された画像形成装置におけるアプリケーションの起動制御方法であって、
　アプリケーションの組み合わせの適否に関する情報をアプリケーション毎に記録したデータベースを参照するステップと、
　前記アプリケーションの組み合わせの適否に関する情報に基づき、アプリケーションに対する起動制御処理を行う起動制御ステップと
　を有することを特徴とする起動制御方法。
【請求項１７】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間の排他関係もしくは非推奨関係を示す情報であり、
　前記起動制御ステップにおいて、前記画像形成装置は、排他関係もしくは非推奨関係にある複数のアプリケーションの中から少なくとも１つのアプリケーションを選択させる画面を前記画像形成装置のオペレーションパネルに表示する請求項１６に記載の起動制御方法。
【請求項１８】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間の排他関係もしくは非推奨関係を示す情報であり、
　前記起動制御ステップにおいて、前記画像形成装置は、排他関係もしくは非推奨関係にある複数のアプリケーションのうち、少なくとも１つのアプリケーションの起動または起動設定を行う請求項１６に記載の起動制御方法。
【請求項１９】
　前記起動制御ステップにおいて、前記画像形成装置は、排他関係もしくは非推奨関係にある複数のアプリケーションの中から優先順位の高いアプリケーションを起動もしくは起動設定する請求項１８に記載の起動制御方法。
【請求項２０】
　前記データベースにおける組み合わせの適否に関する情報は、アプリケーションの排他関係もしくは非推奨関係を示す情報であり、
　前記起動制御ステップにおいて、前記画像形成装置は、あるアプリケーションと他のアプリケーションとの組み合わせが非推奨関係にある場合に、警告画面を前記画像形成装置のオペレーションパネルに表示する請求項１６に記載の起動制御方法。
【請求項２１】
　前記起動制御ステップにおいて、前記画像形成装置は、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに、前記データベースを参照し、当該アプリケーションに対して排他関係もしくは非推奨関係にあるアプリケーションの識別子を取得して、前記起動制御処理を行う請求項１７ないし２０のうちいずれか１項に記載の起動制御方法。
【請求項２２】
　前記データベースにおける組み合わせの適否に関する情報は、アプリケーションの排他関係もしくは非推奨関係を示す情報であり、当該排他関係もしくは非推奨関係を示す情報は、排他関係もしくは非推奨関係の強さを示すレベルを含み、
　前記起動制御ステップにおいて、前記画像形成装置は、当該レベルに応じて、前記起動制御処理を行う請求項１６に記載の起動制御方法。
【請求項２３】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、
　前記起動制御ステップにおいて、前記画像形成装置は、必須関係もしくは推奨関係にあるアプリケーションを示す画面を前記画像形成装置のオペレーションパネルに表示する請求項１６に記載の起動制御方法。
【請求項２４】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、
　前記起動制御ステップにおいて、前記画像形成装置は、必須関係もしくは推奨関係にあるアプリケーションを起動もしくは起動設定する請求項１６に記載の起動制御方法。
【請求項２５】
　前記起動制御ステップにおいて、前記画像形成装置は、前記必須関係もしくは推奨関係にあるアプリケーションが、前記画像形成装置にインストールされていない場合に、当該アプリケーションをネットワークを介してサーバからダウンロードする請求項２３または２４に記載の起動制御方法。
【請求項２６】
　前記起動制御ステップにおいて、前記画像形成装置は、前記必須関係もしくは推奨関係にあるアプリケーションが、前記画像形成装置にインストールされていない場合に、当該アプリケーションの取得に関する情報をオペレーションパネルに表示する請求項２３または２４に記載の起動制御方法。
【請求項２７】
　前記起動制御ステップにおいて、前記画像形成装置は、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに、前記データベースを参照し、当該アプリケーションに対して必須関係もしくは推奨関係にあるアプリケーションの識別子を取得して、前記起動制御処理を行う請求項２３ないし２６のうちいずれか１項に記載の起動制御方法。
【請求項２８】
　前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、当該必須関係もしくは推奨関係を示す情報は、必須関係もしくは推奨関係の強さを示すレベルを含み、
　前記起動制御ステップにおいて、前記画像形成装置は、当該レベルに応じて、前記起動制御処理を行う請求項１６に記載の起動制御方法。　
【請求項２９】
　前記画像形成装置は、
　画像形成処理で使用されるハードウェア資源と、
　ハードウェア資源の制御を行うコントロールサービスと、
　コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有する請求項１６ないし２８のうちいずれか１項に記載の起動制御方法。
【請求項３０】
　前記仮想アプリケーションサービスは前記参照するステップ及び前記起動制御ステップを実行する請求項２９に記載の起動制御方法。
【請求項３１】
　複数のアプリケーションを搭載可能に構成された画像形成装置を、
　アプリケーションの組み合わせの適否に関する情報をアプリケーション毎に記録したデータベースを参照する手段、
　前記アプリケーションの組み合わせの適否に関する情報に基づき、アプリケーションに対する起動制御処理を行う起動制御手段、
　として機能させるプログラム。
【請求項３２】
　請求項３１に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
　この発明は、コピー、プリンタ、スキャナおよびファクシミリなどの画像形成処理にかかるユーザサービスを提供する画像形成装置で、あるアプリケーションに対して排他的な関係にあるアプリケーションの起動を制限し、更に、アプリケーションの実行に必須な又は推奨される他のアプリケーションの起動をすることができる画像形成装置に関するものである。
【背景技術】
【０００２】
　近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した３種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
　このような従来の複合機では、同時期に複数のアプリケーションを起動させても複合機自体の動作が不安定にならないように、既存のアプリケーション間であらかじめ調整されている。
【０００４】
　また、従来の複合機におけるあらかじめ搭載されている既存のアプリケーションの場合、使用を希望するアプリケーションとは別の他のアプリケーションを起動させないと、使用を希望するアプリケーションの所望の機能が実現できないという状況が生じる場合は想定されていなかった。
【特許文献１】特開平１１−１１２７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
　ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（複合機）を発明した。
【０００６】
　このような新規な複合機では、アプリケーションとコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規なアプリケーションを開発して複合機に搭載可能な構成となっている。このため、かかる複合機では、出荷時に搭載されているコピー、プリンタ、スキャナ、ファクシミリといった画像形成装置特有のアプリケーション以外に、従来の複合機とは異なるユーザやサードベンダが開発した新規アプリケーションなども多数起動可能となっている。
【０００７】
　コピー、プリンタ、ファクシミリ、スキャナなど複合機であらかじめ提供されている既存のアプリケーションの場合は、同時期に起動させても動作が不安定にならないように調整されているが、第三者が開発する新規アプリケーションの場合は、ベンダによって必ずしも既存のアプリケーションや他の新規アプリケーションとの相性（排他的な関係にあるか否か）まで意識して開発していないのが現状である。このため、このような新規アプリケーションを他のアプリケーションと同時期（同時、あるいは、順次重複するよう）に起動させた場合、アプリケーション同士が排他的な関係にあると複合機が正常に動作しないという従来の複合機では問題にならなかった新規な課題が生じてくる。
【０００８】
　そこで、起動するアプリケーションの優先順位を決めるということも考えられるが、新たな新規アプリケーションが搭載される度に優先順位を設定し直さなくてはならないため、手間がかかる。また、一般のユーザにとって、どのアプリケーションが同時期に起動できないもので、どれを優先的に起動すべきかを正確に理解した上で優先順位設定を行うのは非常に困難であるという問題があった。
【０００９】
　また、第三者が開発する新規アプリケーションの中には、複数のアプリケーションを起動して実行することが前提になっているものがある。このため、それを知らずに単独で起動させて実行しても、アプリケーション本来の機能が実現できなかったり、動作が途中で停止するなど従来の複合機では問題にならなかった新規な課題が生じてくる。
【００１０】
　この発明は上記に鑑みてなされたもので、あるアプリケーションに対して排他的もしくは非推奨的な関係にあるアプリケーションに対する起動制限を行う技術を提供することを目的とする。さらに、必須関係もしくは推奨関係にあるアプリケーション同士を一緒に起動させることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
　上記の課題を解決するために、請求項１に記載の発明は、複数のアプリケーションを搭載可能に構成された画像形成装置において、アプリケーションの組み合わせの適否に関する情報をアプリケーション毎に記録したデータベースを参照する手段と、前記アプリケーションの組み合わせの適否に関する情報に基づき、アプリケーションに対する起動制御処理を行う起動制御手段とを有する。
【００１２】
　本発明によれば、アプリケーションの組み合わせの適否に関する情報に基づき、適切なアプリケーションを起動させることができるようになる。
【００１３】
　請求項２に記載の発明は、請求項１の記載において、前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間の排他関係もしくは非推奨関係を示す情報であり、前記起動制御手段は、排他関係もしくは非推奨関係にある複数のアプリケーションの中から少なくとも１つのアプリケーションを選択させる画面を前記画像形成装置のオペレーションパネルに表示する。
【００１４】
　本発明によれば、排他関係もしくは非推奨関係にある複数のアプリケーションの中から少なくとも１つのアプリケーションを選択させる画面が表示されるので、ユーザは、所望のアプリケーションを選択することができる。なお、非推奨関係とは、同時に実行することは可能であるが、パフォーマンス等の観点から同時に実行することは望ましくない関係のことである。
【００１５】
　請求項３に記載の発明は、請求項１の記載において、前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間の排他関係もしくは非推奨関係を示す情報であり、前記起動制御手段は、排他関係もしくは非推奨関係にある複数のアプリケーションのうち、少なくとも１つのアプリケーションの起動または起動設定を行うものである。
【００１６】
　本発明によれば、排他関係もしくは非推奨関係にある複数のアプリケーションの中からアプリケーションを選択して起動するので、排他関係にある複数のアプリを同時に起動することを防止できる。
【００１７】
　請求項４に記載の発明は、請求項３の記載において、前記起動制御手段は、排他関係もしくは非推奨関係にある複数のアプリケーションの中から優先順位の高いアプリケーションを起動もしくは起動設定するものである。
【００１８】
　本発明によれば、排他関係にあるアプリが複数ある場合でも、優先順位に基づき、特定のアプリケーションを起動できる。
【００１９】
　請求項５に記載の発明は、請求項１の記載において、前記データベースにおける組み合わせの適否に関する情報は、アプリケーションの排他関係もしくは非推奨関係を示す情報であり、前記起動制御手段は、あるアプリケーションと他のアプリケーションとの組み合わせが非推奨関係にある場合に、警告画面を前記画像形成装置のオペレーションパネルに表示するものである。
【００２０】
　本発明によれば、警告を表示するので、ユーザは、あるアプリケーションと他のアプリケーションの両方を実行するか否かを判断できる。
【００２１】
　請求項６に記載の発明は、請求項２ないし５のうちいずれか１項に記載の画像形成装置において、前記起動制御手段は、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに、前記データベースを参照し、当該アプリケーションに対して排他関係もしくは非推奨関係にあるアプリケーションの識別子を取得して、前記起動制御処理を行うものである。
【００２２】
　本発明によれば、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに起動制御処理を行うことが可能になる。
【００２３】
　請求項７に記載の発明は、請求項１の記載において、前記アプリケーション間の排他関係もしくは非推奨関係を示す情報は、排他関係もしくは非推奨関係の強さを示すレベルを含み、前記起動制御手段は、当該レベルに応じて、前記起動制御処理を行うものである。
【００２４】
　本発明によれば、レベルを参照することにより、レベルに応じた種々の起動制御処理を行うことが可能となる。
【００２５】
　請求項８に記載の発明は、請求項１の記載において、前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、前記起動制御手段は、あるアプリケーションに対し、必須関係もしくは推奨関係にあるアプリケーションを示す画面を前記画像形成装置のオペレーションパネルに表示するものである。
【００２６】
　本発明によれば、必須関係もしくは推奨関係にあるアプリケーションをユーザが選択することができる。なお、推奨関係とは、あるアプリケーションに対して起動することが必須ではないが、機能拡張等を行うことができるために、起動することが推奨される関係のことである。
【００２７】
　請求項９に記載の発明は、請求項１の記載において、前記データベースにおける組み合わせの適否に関する情報は、複数アプリケーション間における必須関係もしくは推奨関係を示す情報であり、前記起動制御手段は、あるアプリケーションに対し、必須関係もしくは推奨関係にあるアプリケーションを起動もしくは起動設定するものである。
【００２８】
　本発明によれば、必須関係もしくは推奨関係にあるアプリケーションを起動もしくは起動設定するので、必須関係にあるアプリケーションを起動しない場合の問題の発生を防止できる。更に、推奨関係にあるアプリケーションを起動することにより、拡張機能等を使用できるようになる。
【００２９】
　請求項１０に記載の発明は、請求項８または９に記載の画像形成装置において、前記起動制御手段は、前記必須関係もしくは推奨関係にあるアプリケーションが、前記画像形成装置にインストールされていない場合に、当該アプリケーションをネットワークを介してサーバからダウンロードするものである。
【００３０】
　本発明によれば、必要なアプリケーションをダウンロードするので、ユーザの利便性が向上する。
【００３１】
　請求項１１に記載の発明は、請求項８または９に記載の画像形成装置において、前記起動制御手段は、前記必須関係もしくは推奨関係にあるアプリケーションが、前記画像形成装置にインストールされていない場合に、当該アプリケーションの取得に関する情報をオペレーションパネルに表示する。
【００３２】
　本発明によれば、必要なアプリケーションの取得のために必要な情報をユーザが知ることができる。
【００３３】
　請求項１２に記載の発明は、請求項８ないし１１のうちいずれか１項に記載の画像形成装置において、前記起動制御手段は、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに、前記データベースを参照し、当該アプリケーションに対して必須関係もしくは推奨関係にあるアプリケーションの識別子を取得して、前記起動制御処理を行うものである。
【００３４】
　本発明によれば、あるアプリケーションに対する起動要求もしくは起動設定要求がなされたときに起動制御処理を行うことが可能になる。
【００３５】
　請求項１３に記載の発明は、請求項８の記載において、前記アプリケーションの必須関係もしくは推奨関係を示す情報は、必須関係もしくは推奨関係の強さを示すレベルを含み、前記起動制御手段は、当該レベルに応じて、前記起動制御処理を行う。　
　本発明によれば、レベルを参照することにより、レベルに応じた種々の起動制御処理を行うことが可能となる。
【００３６】
　請求項１４に記載の発明は、請求項１ないし１３のうちいずれか１項に記載の画像形成装置において、画像形成処理で使用されるハードウェア資源と、ハードウェア資源の制御を行うコントロールサービスと、コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有するものである。また、請求項１５に記載の発明は、請求項１４の記載において、前記仮想アプリケーションサービスは前記参照する手段及び前記起動制御手段を含む。
【００３７】
　請求項１６〜３０に記載の発明は、上記の画像形成装置に適した方法の発明であり、請求項３１、３２に記載の発明は、上記の画像形成装置に適したプログラム、記録媒体の発明である。これらの発明によっても、上記の画像形成装置の発明と同様の作用効果を奏する。
【発明の効果】
【００３８】
　本発明によれば、アプリケーションの組み合わせの適否に関する情報に基づき、適切なアプリケーションを起動させることができるようになる。すなわち、あるアプリケーションに対して排他的もしくは非推奨的な関係にあるアプリケーションに対する起動制限を行うことが可能になるとともに、必須関係もしくは推奨関係にあるアプリケーション同士を一緒に起動させることが可能となる。
【発明を実施するための最良の形態】
【００３９】
　以下に添付図面を参照して、この発明にかかる画像形成装置およびアプリ起動制限方法の好適な実施の形態を詳細に説明する。
【００４０】
　（実施の形態１） 
　図１は、この発明の実施の形態１である画像形成装置（以下、「複合機」という）の構成を示すブロック図である。図１に示すように、複合機１００は、白黒レーザプリンタ（B&W LP）１０１と、カラーレーザプリンタ（Color LP）１０２と、スキャナ、ファクシミリ、ハードディスク、メモリ、ネットワークインタフェースなどのハードウェアリソース１０３を有するとともに、プラットホーム１２０とアプリケーション（以下、アプリともいう）１３０と仮想アプリケーションサービス（ＶＡＳ：Ｖｉｒｔｕａｌ　Ａｐｐｌｉｃａｔｉｏｎ　Ｓｅｒｖｉｃｅ）１４０から構成されるソフトウェア群１１０とを備えている。
仮想アプリケーションサービス（ＶＡＳ）１４０は、アプリ１３０とプラットホーム１２０との間に配置されている。このＶＡＳ１４０は、各アプリごとに排他関係にあるアプリに関するアプリ相性情報を取得して、そのアプリ相性情報ファイルを記憶手段としてのハードディスク（ＨＤ）に生成する（後述する図２のＨＤ２００）。
【００４１】
　アプリ同士の排他制御を要する例としては、例えば、認証系や課金系といった同一系同士のアプリの組み合わせ、同一機器（プリンタや表示部など）を動作対象として取り合いを行うプリンタアプリ同士や表示アプリ同士の組み合わせ、同じアプリ（ファイル名が同じ）でバージョンの異なるアプリ同士の組み合わせなどがある。
【００４２】
　また、アプリの排他制御を要する例として更に以下に示すものがある。まず、リソース的な理由による制限として、あるアプリが画像処理等で多大なメモリを使用することがわかっており、そのアプリを実行すると確実にメモリ不足になり、他のアプリを実行できない場合に排他制御が必要になる。また、多大なＣＰＵパワーを必要とする場合も同様である。
【００４３】
　また、ＲＡＷファイルに対して例えば電子認証用の暗号データを付加するアプリ同士でも排他制御が必要となる。これは、スキャンして生成した画像データに対して、複数のアプリが異なるデータを付加すると正常な動作が妨げられるからである。
【００４４】
　また、異なるフォーマットのＲＡＷファイルを生成するようなアプリ同士でも、書式不整合による不具合防止のために排他制御が必要である。
【００４５】
　また、認証、課金を管理するアプリには、それに適したアプリ群があり、例えば、認証アプリＡに対してスキャナアプリＡとコピーアプリＡが適合し、認証アプリＢに対してスキャナアプリＢとコピーアプリＢが適合する場合に、認証アプリＡと認証アプリＢの認証方式が異なっているとすると、認証アプリＡとスキャナアプリＢ、コピーアプリＢ間の排他制御、認証アプリＢとスキャナアプリＡ、コピーアプリＡ間の排他制御が必要になる。
【００４６】
　また、コピー画像のサムネイル作成によるログ管理を行うログ取得アプリと、ハードディスク上の画像データを強制的に即時削除するようなコピーアプリとの排他制御が必要になる。
【００４７】
　更に、例えば、ベンダＡとベンダＢのアプリは同じマシンで動作させないといった取り決めがある場合に、これらの排他制御が必要になる。
【００４８】
　ＶＡＳ１４０は、アプリ相性情報を取得する際に、各アプリがどのような種類のアプリに属するか（アプリの属性情報）といった情報も併せて取得するようにする。この情報は、例えば、画面表示に用いられる。
【００４９】
　また、ＶＡＳ１４０は、アプリ相性情報を、アプリを仮起動させることによりプロセス間通信を使って取得する。また、ネットワーク経由で、外部のサーバ等からアプリ相性情報を取得することようにしてもよい。更に、アプリ相性情報ファイル（データベース）を外部から取得してもよい。
【００５０】
　そして、ＶＡＳ１４０は、アプリ相性情報に基づいて、起動設定時、もしくは、アプリの起動時に、排他関係にあるアプリの検出を行って、起動制御を行う。例えば、一方のみを起動し、他方の起動を制限する。
【００５１】
　なお、起動設定とは、インストールされているアプリケーションを、複合機の電源投入時に起動するように設定することである。すなわち、本実施の形態の複合機では、アプリケーションをインストールしただけではアプリケーションは起動せず、起動させるには、起動設定をする必要がある。なお、起動設定をすることにより、当該アプリケーションを起動させる旨を示す情報が複合機の記憶装置に記憶される。そして、電源投入時に、その情報が参照され、そのアプリケーションが起動される。
【００５２】
　なお、起動設定という方法をとらずに、アプリを随時起動できるように複合機を構成することも可能である。
【００５３】
　プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有している。
【００５４】
　コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８とから構成されている。なお、このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有している。
【００５５】
　汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００５６】
　ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４　Ｉ／Ｆ、ＲＳ２３２Ｃ　Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【００５７】
　具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００５８】
　ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００５９】
　ＥＣＳ１２４のプロセスは、白黒レーザプリンタ（B&W LP）１０１、カラーレーザプリンタ（Color LP）１０２、スキャナ、ファクシミリなどからなるハードウェアリソース１０３のエンジンの制御を行う。
【００６０】
　ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００６１】
　ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００６２】
　ＮＣＳ１２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【００６３】
　ＯＣＳ１２６のプロセスは、オペレータ（ユーザ）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ１２６は、オペレーションパネルからキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ１２２に送信するＯＣＳプロセスの部分と、アプリケーション１３０またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション１３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ１２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ１２６のすべてをＯＣＳライブラリとして構成しても良い。
【００６４】
　アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６とを有している。これらの各アプリは、複合機特有（画像形成装置特有）のアプリであり、起動時にＶＡＳ１４０に対して自プロセスのプロセスＩＤとともにアプリ登録要求メッセージを送信し、アプリ登録要求メッセージを受信したＶＡＳ１４０によって、起動したアプリに対する登録処理が行われる。
【００６５】
　アプリケーション１３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００６６】
　このように、実施の形態１にかかる複合機１００には、複数のアプリケーション１３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション１３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。また、複合機１００には、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に新規アプリ１１７，１１８を開発して搭載することが可能となっている。図１では、この新規アプリ１１７，１１８を搭載した例を示している。この新規アプリ１１７，１１８は、複合機特有のアプリ以外のアプリに相当するものである。
【００６７】
　なお、実施の形態１にかかる複合機１００では、複数のアプリケーション１３０のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション１３０とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション１３０は、アプリケーションごとに追加または削除することができる。
【００６８】
　図２に複合機１００のハードウェア構成例を示す。
【００６９】
　複合機１００は、コントローラ１６０と、オペレーションパネル１７５と、ファックスコントロールユニット（ＦＣＵ）１７６と、プリンタ等の画像形成処理に特有のハードウェア資源であるエンジン部１７７とを含む。コントローラ１６０は、ＣＰＵ１６１と、システムメモリ１６２と、ノースブリッジ（ＮＢ）１６３と、サウスブリッジ（ＳＢ）１６４と、ＡＳＩＣ１６６と、ローカルメモリ１６７と、ＨＤＤ１６８と、ネットワークインターフェースカード（ＮＩＣ）１６９と、ＳＤカード用スロット１７０と、ＵＳＢデバイス１７１と、ＩＥＥＥ１３９４デバイス１７２と、セントロニクス１７３とを含む。なお、メモリ１６２、１６７はＲＡＭ、ＲＯＭ等を含む。ＦＣＵ１７６およびエンジン部１７７は、コントローラ１６０のＡＳＩＣ１６６にＰＣＩバス１７８で接続されている。
【００７０】
　ＣＰＵ１６１が、複合機１００にインストールされるアプリケーション、コントロールサービス等のプログラムを、メモリから読み出して実行する。
【００７１】
　図３は、実施の形態１にかかる複合機１００のＶＡＳ１４０の構成と、ＶＡＳ１４０と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。
【００７２】
　仮想アプリケーションサービス（ＶＡＳ）１４０のプロセスには、ディスパッチャ１４４と、制御スレッド１４３と、アプリ相性情報取得スレッド１４１と、アプリ起動制限スレッド１４２とが動作している。
【００７３】
　なお、ＶＡＳ１４０における処理は、このように各スレッドを用いて行うこともできるが、スレッドを用いずに行ってもよい。
【００７４】
　ディスパッチャ１４４は、アプリケーション１３０やコントロールサービスからのメッセージ受信を監視し、受信したメッセージに応じて制御スレッド１４３、アプリ相性情報取得スレッド１４１、アプリ起動制限スレッド１４２に対して処理要求を行うものである。実施の形態１の複合機１００では、ディスパッチャ１４４は、複数のアプリに対するアプリ起動要求メッセージを受信したとき、受信したアプリ起動要求メッセージを制御スレッド１４３に送信し、制御スレッド１４３からアプリ相性情報取得スレッド１４１とアプリ起動制限スレッド１４２に対して処理要求を行う。
【００７５】
　制御スレッド１４３は、ディスパッチャ１４４からのアプリ起動要求メッセージを受信して、アプリ相性情報取得処理およびアプリ起動制限処理を行う。ここで、アプリ起動制限処理とは、例えば、アプリ同士の組み合わせの中の何れか一つのアプリを起動させて、他のアプリを起動しないように制限する排他制御処理のことである。
【００７６】
　また、制御スレッド１４３は、複合機１００にインストールされている全てのアプリに関するアプリ相性情報がアプリ相性情報ファイル２０１に取得されていない場合は、アプリ相性情報取得スレッド１４１に対して当該アプリに関するアプリ相性情報を取得するように処理要求を行うことができ、取得されたアプリ相性情報は、ＨＤ２００のアプリ相性情報ファイル２０１に格納される。
【００７７】
　また、制御スレッド１４３は、ＨＤ２００に格納されているアプリ相性情報ファイル２０１を参照するだけで、インストールされたアプリの中で相性の悪いアプリ同士の組み合わせに関する情報が得られる場合は、アプリ相性情報の取得処理を行わずに、アプリ起動制限スレッド１４２に対してアプリ相性情報に基づくアプリ起動制限を行うように処理要求する。
【００７８】
　アプリ相性情報取得スレッド１４１は、制御スレッド１４３からの処理要求を受けて、アプリを仮起動することで、プロセス間通信を使ってアプリ相性情報に必要な情報を取得すると、アプリ相性情報ファイル２０１としてハードディスク（ＨＤ）２００に生成する。さらに、アプリ相性情報取得スレッド１４１は、アプリ相性情報をネットワーク経由で取得できる場合、コントロールサービスのＮＣＳ１２８のプロセスを利用して、ネットワーク側から必要なデータを受信すると、アプリ相性情報ファイル２０１としてハードディスク（ＨＤ）２００に生成する。かかるアプリ相性情報は、アプリごとのレコードとして記録される。
【００７９】
　また、アプリ相性情報ファイル自身をユーザが複合機１００に格納してもよい。また、アプリ相性情報ファイルがサーバ等からダウンロード可能な場合には、ＶＡＳ１４０がサーバからそのアプリ相性情報ファイルを取得するように構成することもできる。
【００８０】
　上記の各スレッドの動作は、アプリの起動時におけるものであるが、起動設定時においても同様に処理を行うことができる。ただし、起動設定時におけるアプリ起動制限処理は、例えば、画面に排他関係にある複数のアプリを表示し、選択されたアプリのみの起動設定を行うものである。
【００８１】
　上記ＶＡＳ１４０のプログラムは、ソフトウェア開発キット（ＳＤＫ：Ｓｏｆｔｗａｒｅ　Ｄｅｖｅｌｏｐｍｅｎｔ　Ｋｉｔ）等の一部または全部として、ＣＤ−ＲＯＭまたはＦＤ（フレキシブルディスク）などの記憶媒体に実行可能な形式またはインストール可能な形式のファイルで提供される。また、このような実行可能な形式またはインストール可能な形式のＶＡＳ１４０のプログラムファイルを、ネットワーク経由で取得可能な方法で提供するようにしても良い。
【００８２】
　図４は、ＨＤ２００に格納されるアプリ相性情報ファイル２０１の内容例を示す図である。同図に示すように、各アプリ毎に、排他関係にあるアプリＩＤ（プロダクトＩＤといもいう）が記録される。また、ＨＤ２００には、図５に示す内容のファイルも記録される。図５に示すファイルには、アプリＩＤごとに、アプリ属性、アプリ動作対象、アプリ名（アプリのファイル名）、バージョン（バージョン番号）といった情報が記録されている。この情報は、オペレーションパネルへの表示に使用することもできるし、どのアプリを優先的に起動するかを判断するために使用することもできる。
【００８３】
　アプリ起動制限スレッド１４２は、複数のアプリ起動要求があった場合に、アプリ相性情報ファイル２０１を参照して、排他制御すべきアプリの組み合わせが有るか否かを判断し、ある場合は、該当するアプリのうちの１つのみを起動し、他方の起動を制限する排他制御を行う。ここで、排他制御を行う場合は、どちらのアプリを起動させるかを決める必要がある。例えば、同じアプリ名なら新しいバージョンのアプリを起動させるというように、あらかじめ起動の優先条件を決めておけば、図５に示す情報を用いることにより、起動するアプリを自動的に決めることができる。また、これ以外には、同時期に起動できずに排他制御する必要のある複数のアプリをオペレーションパネル上に表示することによって、起動アプリをユーザに選択させるようにしても良い。
【００８４】
　図６は、同時期に起動できない複数のアプリのユーザ選択画面の一表示例を示す図である。図６に示すように、オペレーションパネル２１０上には、起動要求されたアプリの全てを表示した起動要求アプリ一覧２１１、同時期に起動できないアプリの組み合わせを表示した起動不可アプリ一覧２１２、および、ユーザが選択時に使用するラジオボタン２１３などが表示されている。ユーザは、不図示の操作キーを使って起動させたいアプリを択一的に選択することができる。
【００８５】
　また、アプリ起動制限スレッド１４２は、アプリ起動制限が必要と判断すると、アプリ起動要求はあったが起動させないアプリに対して起動制限要求メッセージを送信する。一方、アプリ起動制限をする必要がないと判断した場合は、アプリ起動要求のあった各アプリに対して起動要求メッセージを送信して、アプリの通常起動処理が行われる。また、アプリ起動制限が必要な場合に、排他制御によって起動させることが決まったアプリについては、起動要求メッセージを送信して、アプリの通常起動処理が行われる。
【００８６】
　次に、このように構成された複合機１００のＶＡＳ１４０によるアプリ起動制限処理について説明する。図７は、同時期に起動要求のあった複数のアプリのうち相性に基づいて起動制限を行う処理手順を示すフローチャートである。
【００８７】
　まず、ディスパッチャ１４４がコントロールサービス層１５０からアプリ起動要求メッセージを受信すると（ステップＳ５０１）、そのアプリ起動要求メッセージをそのアプリのプロセスＩＤとともに制御スレッド１４３に受け渡す。制御スレッド１４３は、複数のアプリに対する起動要求があったかどうかを判断する（ステップＳ５０２）。複数のアプリに対する起動要求の場合には、アプリ相性情報ファイルが有るか否かを判断して（ステップＳ５０３）、ファイルが有る場合は、そのアプリ相性情報ファイルを参照し（ステップＳ５０４）、ファイルが無い場合は、アプリ相性情報ファイルの作成を行ってから（ステップＳ５０５）、ステップＳ５０４でそのアプリ相性情報ファイルを参照する。なお、上記ステップＳ５０５におけるアプリ相性情報ファイル作成処理のサブルーチンは、後述する図８で詳細に説明する。
【００８８】
　アプリ起動制限スレッド１４２は、ＨＤ２００内のアプリ相性情報ファイル２０１を参照することによって、排他的関係にあるアプリの組み合わせが、起動要求のあったアプリの中にあるかどうかを判断する（ステップＳ５０６）。該当する組み合わせがある場合は、起動制限処理を行う（ステップＳ５０７）。起動制限処理の詳細については、後述する図９で詳細に説明する。
【００８９】
　また、起動させるアプリの中に排他制御すべき組み合わせが無い場合は、通常の起動処理が行われる（ステップＳ５０８）。
【００９０】
　図８は、アプリ相性情報ファイルの作成処理の動作を説明するフローチャートである。
【００９１】
　まず、図８において、ＶＡＳ１４０の制御スレッド１４３は、ネットワーク経由でアプリ相性情報を取得できる環境か否かを判断して（ステップＳ６０１）、ネットワーク経由で情報取得ができない場合は、起動要求のなされたアプリをＶＡＳ１４０が仮起動させる（ステップＳ６０２）。そして、アプリ相性情報を取得する（ステップＳ６０３）。そして、アプリ相性情報に基づいて、ＨＤ２００内にアプリ相性情報ファイル２０１が作成される（ステップＳ６０４）。なお、アプリ毎のアプリ相性情報とは、図４に示すファイルの１レコードに相当する情報である。
【００９２】
　なお、前述したように、アプリ相性情報を取得することにより、アプリ相性情報ファイルを作成することに代えて、アプリ相性情報ファイル自身を複合機１００にユーザが格納しておいてもよい。
【００９３】
　上述した仮起動について以下説明する。
【００９４】
　仮起動は、複合機のリソースを使用することになるアプリの通常起動（アプリ本来の機能を奏するための起動を通常起動と呼ぶ）とは別の起動である。仮起動では、アプリはアプリ本来の動作に必要なメモリ確保等のリソース取得を行わず、ＶＡＳ１４０とのプロセス間通信処理のみを行う。そして、アプリは、相性情報等の必要な情報をＶＡＳ１４０に提供する。仮起動したアプリのプロセスは、ＶＡＳ１４０との通信処理が終了すれば終了する。また、アプリの仮起動に関する機能は、アプリ本来の機能によらず、本実施の形態における複合機１００で動作するアプリに共通する機能である。従って、例えば、ベンダーがアプリを開発する場合、ベンダーに、仮起動の機能を含むプログラムテンプレートを提供し、そのプログラムテンプレートを用いてベンダーが複合機用のアプリを開発することができる。なお、アプリケーションにアプリ相性情報を含めるには、アプリ相性情報を記録したインクルードファイルを作成し、アプリのコンパイル時にインクルードする。
【００９５】
　図９に、仮起動の機能を含むアプリのプログラム記述（メイン関数）の概要を示す。なお、この記述を上記のプログラムテンプレートとして提供する。
【００９６】
　図９に示すように、このプログラム記述は、アプリケーションを仮起動するか通常起動するかを引数（−ｖ）によって指定する。これにより、ＶＡＳがアプリを起動する際に、通常起動と仮起動とを容易に使い分けることができる。すなわち、引数（−ｖ）を使って仮起動を指定すると、仮起動が実行され、アプリ情報提供処理がなされる。また、仮起動が指定されていない場合は、通常起動を行って、アプリ本来の動作を行う。
【００９７】
　図１０は、排他制御を要するアプリの組み合わせに対する起動制限処理の動作を説明するフローチャートであり、図７のステップＳ５０７におけるサブルーチン処理である。
【００９８】
　まず、図１０において、排他関係にある複数のアプリに起動要求がなされていた場合に、それらのアプリのうち一つだけを起動させるか、排他関係にあるアプリ全てを起動制限するかを選択する（ステップＳ７０１）。いずれを選択するかは、例えば、初期設定により決定される。アプリの組み合わせの中で、何れか一つのアプリを起動させる場合は（ステップＳ７０１のＹＥＳ）、起動させるアプリの選択基準の有無を判断する（ステップＳ７０２）。なお、選択基準は、例えば、予め定めた優先順位であり、アプリ相性情報ファイルに記録されるものである。また、選択基準として、アプリ名が同じ場合は、新しいバージョンを選択するという基準を設けてもよい。
【００９９】
　選択基準が無い場合は、ユーザ自らが選択できるようにするため、オペレーションパネル（以下、オペパネともいう。）上に起動不可アプリ一覧などからなる選択画面を表示させる（ステップＳ７０３）。上記した図６は、このオペレーションパネルの選択画面の一例であり、起動要求アプリ一覧２１１には、同時期に起動するように要求された複数（ここでは、３つ）のアプリ名がバージョンと共に表示してある。そして、起動不可アプリ一覧２１２には、その中で排他的関係にある２つのアプリ（確認君と認証ＡＰ）がその他の情報（バージョン、属性、動作対象）と共に表示され、左端位置に選択用のラジオボタンが設けられている。ユーザは、このオぺパネ２１０に表示された種々の情報を参考にしながら、起動させたいアプリのラジオボタンを択一的にチェックするだけで、容易に選択することができる（ステップＳ７０４）。
【０１００】
　このように、ステップＳ７０４でユーザが起動するアプリを選択すると、起動不可とされたそれ以外のアプリの起動を制限する排他制御が行われる（ステップＳ７０５）。
【０１０１】
　また、上記ステップＳ７０２において、起動させるアプリの選択基準が有る場合は、その基準によって選択したアプリを起動し、他のアプリの起動を制限することによって（ステップＳ７０６）、排他制御（ステップＳ７０５）が行われる。
【０１０２】
　さらに、上記ステップＳ７０１において、排他関係にある全てのアプリを起動制限する場合、あるいは、上記ステップＳ７０４において、ユーザが起動させるアプリを選択しなかった場合は、アプリの組み合わせの全てを起動しないように制限する（ステップＳ７０７）。
【０１０３】
　なお、上記の例は、アプリの起動の場面における例であるが、起動設定の場面においても、同様に排他制御を行うことができる。起動設定の場合には、実際に起動させることに代えて起動設定を行う。
【０１０４】
　このように、実施の形態１にかかる複合機１００では、排他関係にあるアプリ同士が同時期に起動されることがないように制限するので、動作が不安定になったり、動作が停止することがなく、常に安定した状態で確実に動作させることができる。
【０１０５】
　また、実施の形態１にかかる複合機１００では、アプリ相性情報をネットワーク経由で取得する場合は、常に最新情報に容易に更新できるため、新しいアプリにも十分対応することができる。
【０１０６】
　なお、実施の形態１にかかる複合機１００では、ＶＡＳ１４０が全てのアプリケーション１３０に対してアプリ相性情報取得処理、アプリ起動制限処理を行っているが、一部のアプリに対してのみかかる処理を行うように構成しても良い。例えば、新規アプリ１１７，１１８などサードベンダなどの第三者が開発したアプリにのみアプリ相性情報取得処理、アプリ起動制限処理を行い、プリンタアプリ１１１やコピーアプリ１１２などの既存のアプリに対してはこのようなサービスを行わないように構成することも勿論可能である。
【０１０７】
　（実施の形態２） 
　実施の形態１にかかる複合機１００は、ＶＡＳ１４０が全アプリケーションに対して１つのみ存在するものであったが、この実施の形態２にかかる複合機では、各アプリごとに一つのＶＡＳが起動し、各ＶＡＳは対応するアプリに対してのみアプリ相性情報取得およびアプリ起動制限を行うものである。
【０１０８】
　図１１は、実施の形態２にかかる複合機８００の構成を示すブロック図である。図１１に示すように、複合機８００では、複数の仮想アプリケーションサービス（ＶＡＳ）８４１〜８４８がアプリケーション１３０の各アプリごとに動作している点が、実施の形態１にかかる複合機１００と異なっている。
【０１０９】
　ＶＡＳ８４１〜８４８は、プリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３、スキャナアプリ１１４、ネットファイルアプリ１１５、工程検査アプリ１１６、新規アプリ１１７および１１８に対応して、アプリ相性情報取得処理およびアプリ起動制限処理を行うようになっている。
【０１１０】
　図１２は、実施の形態２にかかる複合機８００のＶＡＳ８４１〜８４８の構成と、ＶＡＳ８４１〜８４８と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。
【０１１１】
　また、実施の形態２にかかる複合機８００では、実施の形態１の複合機１００と異なり、図１２に示すように、各ＶＡＳ８４１〜８４８と各アプリとの間にはＶＡＳ制御プロセス（デーモン）８０１が動作している。
【０１１２】
　このＶＡＳ制御プロセス（デーモン）８０１は、各アプリに対応したＶＡＳ８４１〜８４８を生成する。また、ＶＡＳ制御プロセス８０１は、ＨＤ２００に格納されたアプリ相性情報ファイル２０１を参照して、アプリ相性情報ファイル２０１にアプリ相性情報が記録されているか否かをチェックして、アプリ相性情報ファイル２０１を作成する必要が有るか否かを判断する。そして、起動要求が行われたアプリのアプリ相性情報が記録されていない場合は、アプリ相性情報取得スレッド１４１によって、アプリの仮起動、あるいは、ネットワーク経由によってアプリ相性情報を取得して、ＨＤ２００にアプリ相性情報ファイル２０１を作成する。
【０１１３】
　仮想アプリケーションサービス（ＶＡＳ）８４１〜８４８のプロセスには、ディスパッチャ１４４と、アプリ相性情報取得スレッド１４１と、アプリ起動制限スレッド１４２とが動作しており、各スレッドの機能は第１の実施の形態と同様である。
【０１１４】
　このように実施の形態２にかかる複合機８００によれば、実施の形態１にかかる複合機１００と同様に、複合機８００のシステムの安定性を向上させることができる。
【０１１５】
　また、実施の形態２にかかる複合機８００では、ＶＡＳ８４１〜８４８は起動されるアプリケーション１３０ごとに別個に起動されるので、複数のアプリケーション１３０に対する起動制限処理を各アプリケーション１３０に対応したＶＡＳ８４１〜８４８によって並列に実行できることから、起動アプリケーションに対する起動制限処理を効率的に行うことができる。
【０１１６】
　なお、実施の形態２にかかる複合機８００では、全てのアプリごとに別個にＶＡＳ８４１〜８４８を起動していたが、一部のアプリに対してのみＶＡＳを起動するように構成しても良い。
【０１１７】
　（実施の形態３） 
　実施の形態３では、必須関係もしくは推奨関係にあるアプリケーション同士を一緒に起動させることを可能とする複合機について説明する。
【０１１８】
　実施の形態３における複合機の構成は図１、図２に示す実施の形態１の構成と同様である。実施の形態３と実施の形態１とでは、主にＶＡＳ１４０の機能が異なる。
【０１１９】
　実施の形態３におけるＶＡＳ１４０は、ＨＤ２００に格納された必須アプリ情報ファイル２０２を参照し、単独で実行できるアプリと、他のアプリ（必須アプリ）と一緒に実行させる必要のあるアプリとを識別する。必須アプリ情報ファイル２０２は、ＶＡＳ１４０がアプリから必須アプリ情報を取得して、ＶＡＳ１４０が作成してもよいし、ユーザが複合機１００に格納してもよい。また、複合機１００が必須アプリ情報ファイルをネットワーク経由でサーバ等から取得してもよい。
【０１２０】
　必須アプリ情報ファイルにおける必須アプリ情報としては、例えば、あるアプリに別のアプリ（プラグインソフト）を付け足して実行させることにより、新しい機能が使えるようになる場合において、当該アプリに対するプラグインソフトに関する情報がある。勿論、必須アプリ情報は、これに限定されるものではなく、２つ以上の対等なアプリを協調動作させることで、初めて本来の機能が達成できる関係にあるアプリなどもあり、ある機能（目的）を達成するために複数のアプリを起動／実行させる必要のあるアプリの組み合わせに関する全ての情報が含まれる。
【０１２１】
　また、ＶＡＳ１４０が、必須アプリ情報ファイルを作成するための必須アプリ情報を取得するには、ネットワーク経由で必須アプリ情報を取得したり、アプリを仮起動させてアプリから取得する方法がある。
【０１２２】
　そして、ＶＡＳ１４０は、起動要求されたアプリに対応する必須アプリ情報を取得して、そのアプリに対応する必須アプリがある場合には、当該アプリと必須アプリ同士を一緒に起動させるように制御する。例えば、（１）起動要求のあったアプリに対して必須関係にあるアプリが起動要求されていない場合、必須関係にあるアプリが起動要求されるまで、起動要求のあったアプリの起動を制限したり、（２）必須関係にあるアプリがインストールされている場合、起動要求がなくても起動要求のあったアプリと一緒に起動させたり、（３）起動要求されていない必須アプリを起動するようにユーザを促す通知（オペレーションパネルへの表示、音声ガイドや警告音など）を行うようにする。
【０１２３】
　図１３は、実施の形態３にかかる複合機１００のＶＡＳ１４０の構成と、ＶＡＳ１４０と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。
【０１２４】
　ＶＡＳ１４０のプロセスには、ディスパッチャ１４４と、制御スレッド１４３と、必須アプリ情報取得手段としての必須アプリ情報取得スレッド１４５と、アプリ起動制御手段としてのアプリ起動制御スレッド１４６とが動作している。ディスパッチャ１４４の機能は実施の形態１と同様である。
【０１２５】
　制御スレッド１４３は、ディスパッチャ１４４からのアプリ起動要求メッセージを受信して、必須アプリ情報取得処理および前述のアプリ起動制御処理を行う。
【０１２６】
　また、制御スレッド１４３は、起動要求のあったアプリに関する必須アプリ情報が必須アプリ情報ファイル２０１にない場合は、必須アプリ情報取得スレッド１４５に対して当該アプリに関する必須アプリ情報を取得するように処理要求を行い、取得された必須アプリ情報は、ＨＤ２００の必須アプリ情報ファイル２０１に格納される。また、制御スレッド１４３は、ＨＤ２００に格納されている必須アプリ情報ファイル２０２を参照するだけで、起動要求のあったアプリの必須アプリに関する情報が得られる場合は、必須アプリ情報の取得処理を行わずに、アプリ起動制御スレッド１４６に対して、必須アプリ情報に基づいてアプリ起動制御を行うように処理要求する。
【０１２７】
　実施の形態１と同様に、必須アプリ情報取得スレッド１４５は、アプリを仮起動する、もしくは、ネットワーク経由で必須アプリ情報を取得し、必須アプリ情報ファイル２０２を生成する。なお、必須アプリ情報ファイルをユーザが複合機に格納してもよい。また、複合機が、必須アプリ情報ファイルをネットワーク経由でサーバから取得してもよい。
【０１２８】
　図１４は、ＨＤ２００に格納される必須アプリ情報ファイル２０２の内容例を示す図である。図１４に示すように、必須アプリ情報ファイル２０２には、アプリＩＤ（プロダクトＩＤともいう）ごとに、必須アプリの有無、アプリの種類、相手方アプリＩＤといった情報がそれぞれ記録されている。
【０１２９】
　アプリ起動制御スレッド１４６は、コントロールサービス層１５０からアプリ起動要求があった場合に、必須アプリ情報ファイル２０１を参照して、起動要求のあったアプリに関する情報が記録されているか否かを確認し、記録されている場合は、当該アプリに対する必須アプリがあるか否かを確認し、無い場合は、通常の起動処理が行われる。また、ある場合は、相手方アプリＩＤを見ることにより必須関係にあるアプリ同士を認識できる。図１４では、ブラウザ（アプリＩ Ｄ：１０３）とプラグイン（アプリＩＤ：１０５）とが必須アプリとして記録されている。
【０１３０】
　また、起動要求のあったアプリに関する情報が必須アプリ情報ファイル２０２ に記録されていない場合、アプリ起動制御スレッド１４２は、制御スレッド１４３を介して必須アプリ情報取得スレッド１４１に対して、当該アプリに関する情報を取得するように要求する。
【０１３１】
　図１５は、必須関係にある２つのアプリの一方にだけ起動要求がある場合に他のアプリの起動を促す通知画面例を示す図である。図１５に示すように、ブラウザとプラグインは必須アプリ同士であるが、ブラウザしか起動要求されていないため、一緒に起動するように、起動エラーメッセージがオペレーションパネル２１０に表示されている。
【０１３２】
　次に、このように構成された複合機１００のＶＡＳ１４０によるアプリ起動制御処理について説明する。図１６は、アプリ起動制御処理手順を示すフローチャートである。
【０１３３】
　まず、ディスパッチャ１４４がコントロールサービス層１５０からアプリ起動要求メッセージを受信すると（ステップＳ８０１）、アプリ起動要求メッセージをそのアプリのプロセスＩＤとともに制御スレッド１４３に受け渡す。制御スレッド１４３は、アプリ起動要求メッセージとプロセスＩＤとをディスパッチャ１４４から受信すると、起動要求のあったアプリの情報が必須アプリ情報ファイル２０２に記録されているか否かを確認して（ステップＳ８０２）、情報が記録されている場合は、その必須アプリ情報ファイル２０２を参照する（ステップＳ８０３）。
【０１３４】
　また、上記ステップＳ８０２で、必須アプリ情報ファイル２０２に起動要求のあったアプリの情報が記録されていない場合は、必須アプリ情報ファイルを作成し（ステップＳ８０４）、その作成した必須アプリ情報ファイル２０２を参照する（ステップＳ８０３）。なお、上記ステップＳ８０４における必須アプリ情報ファイル作成処理のサブルーチンは、後述する図１７で詳細に説明する。
【０１３５】
　アプリ起動制御スレッド１４６は、必須アプリ情報ファイル２０２を参照することによって、起動要求のあったアプリに対する必須アプリが存在するか否かを判断する（ステップＳ８０５）。存在する場合は、その必須アプリに対して起動制御処理が行われる（ステップＳ８０６）。また、ステップＳ８０５で、必須アプリが存在しない場合は、通常の起動処理が行われる（ステップＳ８０７）。なお、上記ステップＳ８０６におけるアプリの組み合わせに対する起動制御処理のサブルーチンは、後述する図１８で詳細に説明する。
【０１３６】
　図１７は、必須アプリ情報ファイルの作成処理の動作を説明するフローチャートである。
【０１３７】
　まず、図１７において、まず、ネットワーク経由で必須アプリ情報が取得できるか否かを判断して（ステップＳ９０１）、ネットワーク経由で情報取得ができない場合は、アプリをＶＡＳ１４０が仮起動させる（ステップＳ９０２）。そして、必要な情報を取得する（ステップＳ９０３）。なお、必須アプリを構成するアプリのうち、すでに起動中のアプリが有る場合は、そのままでプロセス間通信によりアプリに関する情報取得が可能なため、起動していないアプリに対してのみ仮起動が行われる。
【０１３８】
　取得した情報に基づいて、ＨＤ２００内に必須アプリ情報ファイル２０２が作成される（ステップＳ９０４）。
【０１３９】
　図１８は、アプリの組み合わせに対する起動制御処理の動作を説明するフローチャートである。
【０１４０】
　まず、図１８において、アプリ起動制御スレッド１４６は、起動要求のあったアプリに対応する必須アプリが起動要求されているか否かを判断する（ステップＳ１００１）。
【０１４１】
　ステップＳ１００２では、必須アプリが起動要求されるまで、起動要求のあったアプリ起動を制限するか否かを判断する。この判断は、例えば、あるアプリに対し必須アプリが起動されるまで起動しない旨を必須アプリ情報として記録しておき、それをＶＡＳが参照することにより行うことができる。
【０１４２】
　起動を制限する場合は、必須アプリの起動を促すための通知を行うようにする（ステップＳ１００３）。通知例としては、図１５に示すようなオペレーションパネル２１０上にエラーメッセージ表示を行うようにする。通知後は、ステップＳ１００１に戻って、アプリ同士が一緒に起動要求されているかを判断する。仮に、ユーザがこの通知を見て気付き、ブラウザとプラグインソフトを一緒に起動させると、ステップＳ１００１でＹＥＳが選択されることになり、ステップＳ１００８において通常起動処理が行われる。
【０１４３】
　また、上記ステップＳ１００２において、起動制限を行わない場合は、ステップＳ１００４で起動要求されていないアプリがインストール済みのアプリか否かを判断し、インストール済みのアプリであれば、そのアプリを起動し（ステップＳ１００７）、通常起動処理を行う（ステップＳ１００８）。
【０１４４】
　また、上記ステップＳ１００４において、起動要求されていないアプリがインストールされていないアプリの場合は、ステップＳ１００５でインストールが可能なアプリか否かが判断され、インストールが可能であればインストール処理が行われ（ステップＳ１００６）、上記したステップＳ１００７以下の処理が行われる。
【０１４５】
　さらに、ステップＳ１００５において、インストールできないアプリの場合は、必須アプリ同士を一緒に起動させることができないので処理を終了する。その際、必須アプリのインストールができなかったことをオペレーションパネル上に表示させても良い。
【０１４６】
　これまでに説明した処理は、アプリの起動時のものであるが、アプリの起動設定時においても同様の処理を行うことができる。アプリの起動設定時には、アプリを実際に起動させる代わりに、当該アプリに対する起動設定が行われる。
【０１４７】
　このように、実施の形態３にかかる複合機１００では、必須関係にあるアプリ同士を一緒に起動して確実に実行させるので、複合機の動作の安定性を図ることができる。
【０１４８】
　実施の形態３においても、実施の形態１に対する実施の形態２と同様に、各アプリごとに一つのＶＡＳを起動させることができる。図１９は、その場合の複合機８００の構成を示すブロック図である。
【０１４９】
　図２０は、複合機８００のＶＡＳ８４１〜８４８の構成と、ＶＡＳ８４１〜８４８と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。
【０１５０】
　図２０に示すように、各ＶＡＳ８４１〜８４８と各アプリとの間にはＶＡＳ制御プロセス（デーモン）８０１が動作している。
【０１５１】
　このＶＡＳ制御プロセス（デーモン）８０１は、各アプリに対応したＶＡＳ８４１〜８４８を生成する。また、ＶＡＳ制御プロセス８０１は、ＨＤ２００に格納された必須アプリ情報ファイル２０２を参照して、起動要求が行われたアプリについて、必須アプリ情報ファイル２０２に必須アプリ情報が記録されているか否かをチェックし、必須アプリ情報ファイルを作成する必要があるか否かを判断する。そして、起動要求が行われたアプリの必須アプリ情報が記録されていない場合は、必須アプリ情報取得スレッド１４５によって、必須アプリ情報を取得して、必須アプリ情報ファイル２０２を作成する。また、起動要求が行われたアプリの必須アプリ情報が記録されている場合は、必須アプリ情報ファイル２０２から該当する必須アプリ情報を読み出してアプリ起動制御スレッド１４６に送る。
【０１５２】
　仮想アプリケーションサービス（ＶＡＳ）８４１〜８４８のプロセスには、ディスパッチャ１４４と、必須アプリ情報取得スレッド１４５と、アプリ起動制御スレッド１４６とが動作している。各スレッドの機能は、実施の形態３において説明したものと同様である。
【０１５３】
　（実施の形態４）
　次に、実施の形態４について説明する。実施の形態４における複合機の全体構成は図１、図２に示したものと同様である。
【０１５４】
　実施の形態４では、複合機１００が、排他関係もしくは非推奨関係にあるアプリ及び必須関係もしくは推奨関係にあるアプリの両方を表すことができるデータベースファイルを格納する。そして、ＶＡＳ１４０がそのファイルを参照することにより、アプリの起動制御を行う。以下、排他関係もしくは非推奨関係をまとめて“排他関係”、必須関係もしくは推奨関係をまとめて“必須関係”と称する場合がある。
【０１５５】
　複合機１００が格納するデータベースファイルの内容例を図２１に示す。図２１に示すように、各アプリ毎に、そのアプリに対して排他関係、もしくは必須関係にあるアプリが対応付けられている。排他関係又は必須関係にあるアプリの欄における各ＩＤにおける括弧内の数字は、排他関係又は必須関係のレベルを示すものであり、マイナス側で絶対値が大きいほど、排他関係が強いことを示し、プラス側で数字が大きいほど、必須関係が強いことを示す。例えば、−１は、両方のアプリを起動することはできるが、動作が遅くなる可能性等により、両方のアプリを起動することは望ましくないことを表す（非推奨関係という）。例えば、−３は、絶対に両方を起動してはいけないことを示す。また、例えば、＋１は、対応するアプリをそれぞれ単独で起動させることはできるが、＋１が付されたアプリを一緒に起動することにより、より豊富な機能を使用できることを示す（推奨関係という）。また、例えば、＋３は、対応するアプリを単独で使用することはできず、必ず＋３が付されたアプリも起動する必要があることを示す。排他関係に関しては、上記のレベルに加えて、起動する優先順位を記載してもよい。ＶＡＳ１４０は、図２１に示すファイルを参照することにより、起動制御を行う。
【０１５６】
　また、図２１に示す情報の他、各アプリの組み合わせごとの、排他関係にある理由や必須関係にある理由、その他の情報を含めてもよい。このようにすることにより、排他関係にある理由や必須関係にある理由をオペレーションパネルに表示することができる。
【０１５７】
　上記のファイルは、ユーザが複合機１００に格納してもよいし、複合機１００が、外部のサーバからネットワーク経由で取得するようにしてもよい。また、外部のサーバに上記のファイルが格納される場合、いずれかの複合機において、アプリの組み合わせに関して不具合が生じた場合に、その情報を当該サーバに適切な形式で送信することにより、ファイルを自動更新することも可能である。また、新規なアプリを開発し、それが他のアプリに対して必須関係にある場合や、推奨関係にある場合にも、その情報をサーバに送信することにより、ファイルを自動更新することが可能である。
【０１５８】
　なお、このファイルは必ずしも複合機内に格納する必要はなく、必要に応じてＶＡＳ１４０が外部にあるファイルを参照してもよい。
【０１５９】
　次に、起動設定の場面における図２１のファイルを用いた起動制御の処理の手順を図２２のフローチャートを参照して説明する。以下の処理はＶＡＳ１４０により実行されるものである。
【０１６０】
　まず、ＶＡＳ１４０が起動設定の画面をオペレーションパネルに表示する（ステップＳ１１０１）。起動設定画面の例を図２３に示す。図２３に示す例は、「簡易コピー」が既に起動設定されている場合の例である。
【０１６１】
　次に、ユーザが更に起動設定したいアプリを選択する。ＶＡＳ１４０は選択されたアプリのプロダクトＩＤを取得し、そのプロダクトＩＤに基づき、図２１に示すファイルを検索する（ステップＳ１１０２）。
【０１６２】
　そして、そのプロダクトＩＤに対応するアプリのプロダクトＩＤ及び関連する情報（排他、必須関係にある理由等）を取得する（ステップＳ１１０３）。例えば、図２１の例では、起動設定しようとするアプリのプロダクトＩＤが１０１であれば、１０２（−３）、１０３（＋１）を取得する。
【０１６３】
　そして、取得した情報に基づき、起動制御を行う。取得したプロダクトＩＤに対応するアプリが排他関係にある場合、すなわち、レベルがマイナスである場合には（ステップＳ１１０４におけるＹ）、排他関係にあるアプリが既に起動設定されているかどうかをチェックする（ステップＳ１１０５）。起動設定されていなければ、起動設定のために選択したアプリの起動設定を行う（ステップＳ１１０６）。
【０１６４】
　排他関係にあるアプリが既に起動設定されている場合には（ステップＳ１１０５におけるＹ）、レベルをチェックし（ステップＳ１１０７）、画面への警告表示（レベルが低い場合）（ステップＳ１１０８）、もしくは、いずれのアプリの起動設定を行うかを選択させる選択画面を表示する（レベルが高い場合）（ステップＳ１１０９）。警告表示とは、起動設定してよいかどうかをユーザに尋ねる画面である。そして、警告表示の場合は、ユーザの判断に応じて、起動設定しようとしているアプリの起動設定の中止、もしくは、起動設定を行う（ステップＳ１１１０）。選択画面の場合には、選択されたアプリの起動設定を行う（ステップＳ１１１１）。なお、この場合、排他関係にあって、起動設定されていたアプリの起動設定は解除される。
【０１６５】
　取得したプロダクトＩＤに対応するアプリが必須関係にある場合（ステップＳ１１０４におけるＮ）、当該アプリが起動設定されているか否かをチェックし（ステップＳ１１１２）、起動設定されていれば、起動設定のために選択したアプリの起動設定を行う（ステップＳ１１１３）。起動設定されていない場合には次の処理を行う（ステップＳ１１１２におけるＮ）。
【０１６６】
　必須関係のレベルをチェックし（ステップＳ１１１４）、必須関係のレベルが高く、必ず両方のアプリを起動設定しなければならない場合には、必須アプリの起動設定を促す画面を表示する（ステップＳ１１１５）。そして、ユーザの判断に応じて起動設定する（ステップＳ１１１６）。この場合、両方のアプリが起動設定される。
【０１６７】
　例えば、図２３に示した画面において、「編集印刷ツール」に対し、「簡易スキャナ」が必須アプリであるとする。このとき、図２４に示すように「編集印刷ツール」を起動設定のために選択すると、「簡易スキャナ」は起動設定されていないので、図２５に示す画面が表示される。ここでＯＫを押すことにより、「編集印刷ツール」と「簡易スキャナ」の両方が起動設定される。
【０１６８】
　ステップＳ１１１４において、必須関係のレベルが低く、推奨関係（例えば拡張機能）にある場合には、取得したプロダクトＩＤのアプリが、起動設定のために選択したアプリに対して拡張機能を付加できる旨を通知する画面を表示し（ステップＳ１１１７）、ユーザの判断に応じて起動設定する（ステップＳ１１１８）。
【０１６９】
　例えば、図２４の例において、「ユーザースタンプ追加モジュール」及び「ユーザーコメント追加モジュール」が、「編集印刷ツール」に対して拡張機能を提供できる関係にある場合に、図２６に示す画面が表示され、ＯＫを押すことにより、３つのアプリが起動設定される。
【０１７０】
　なお、必須関係にあるアプリを起動設定する場合に、ユーザに問い合わせを行うことなく、自動的の起動設定してもよい。
【０１７１】
　また、必須関係にあるアプリが複合機１００にインストールされていない場合には、図２５の画面を表示する前に、図２７に示す画面を表示し、必須アプリをダウンロードすることもできる。また、ダウンロードする代わりに、図２８に示すように、アプリの問い合わせ先を表示するようにしてもよい。
【０１７２】
　上記の例において、起動設定しようとするアプリが、既に起動設定されたアプリに対して排他的関係にある場合において、前述した優先順位をＶＡＳ１４０が参照し、優先順位の高いアプリを優先的に自動的に起動設定してもよい。例えば、起動設定しようとするアプリのほうが既に起動設定されたアプリより優先順位が高い場合、既に起動設定されたアプリの起動設定を解除し、起動設定しようとするアプリの起動設定を行う。
【０１７３】
　なお、上記の例は起動設定の場面における例であるが、実際の起動の場面、もしくは、アプリのインストールの場面においても、図２１のファイルをＶＡＳ１４０が参照することにより、起動、もしくはインストールの制御を、起動設定の場合と同じようにして行うことが可能である。
【０１７４】
　なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【図面の簡単な説明】
【０１７５】
【図１】実施の形態１にかかる複合機の構成を示すブロック図である。
【図２】実施の形態１にかかる複合機のハードウェア構成を示すブロック図である。
【図３】実施の形態１にかかる複合機のＶＡＳの構成と、ＶＡＳと各アプリ、コントロールサービス層および汎用ＯＳとの関係を示すブロック図である。
【図４】ＨＤに格納されるアプリ相性情報ファイルの内容例を示す説明図である。
【図５】ＨＤに格納されるその他のファイルの内容例を示す説明図である。
【図６】ユーザ選択画面の一表示例を示す図である。
【図７】同時期に起動要求のあった複数のアプリのうち相性に基づいて起動制限を行う処理手順を示すフローチャートである。
【図８】アプリ相性情報ファイルの作成処理の動作を説明するフローチャートである。
【図９】仮起動を説明するための図である。
【図１０】排他関係にあるアプリの組み合わせに対する起動制限処理の動作を説明するフローチャートである。
【図１１】実施の形態２にかかる複合機の構成を示すブロック図である。
【図１２】実施の形態２にかかる複合機のＶＡＳの構成と、ＶＡＳと各アプリ、コントロールサービス層および汎用ＯＳとの関係を示すブロック図である。
【図１３】実施の形態３にかかる複合機のＶＡＳの構成と、ＶＡＳと各アプリ、コントロールサービス層および汎用ＯＳとの関係を示すブロック図である。
【図１４】ＨＤに格納される必須アプリ情報ファイルの内容例を示す説明図である。
【図１５】必須アプリの一方にだけ起動要求がある場合に必須アプリ同士の起動を促す通知画面例を示す図である。
【図１６】実施の形態３におけるアプリ起動制御処理手順を示すフローチャートである。
【図１７】必須アプリ情報ファイルの作成処理の動作を説明するフローチャートである。
【図１８】必須アプリの組み合わせに対する起動制御処理の動作を説明するフローチャートである。
【図１９】実施の形態３にかかる複合機の構成の他の例を示すブロック図である。
【図２０】実施の形態３にかかる複合機のＶＡＳの他の構成を示す図である。
【図２１】実施の形態４におけるデータベースファイルの内容例を示す図である。
【図２２】実施の形態４における起動制御の処理手順を示すフローチャートである。
【図２３】起動設定画面の例を示す図である。
【図２４】アプリを選択したことを示す画面である。
【図２５】必須関係にあるアプリの起動設定を促す画面である。
【図２６】推奨関係にあるアプリの起動設定を促す画面である。
【図２７】アプリのダウンロードを行う画面である。
【図２８】アプリの取得に関する情報を表示する画面である。
【符号の説明】
【０１７６】
　１００　複合機
　１０１　白黒レーザプリンタ
　１０２　カラーレーザプリンタ
　１０３　ハードウェアリソース
　１１０　ソフトウェア群
　１１１　プリンタアプリ
　１１２　コピーアプリ
　１１３　ファックスアプリ
　１１４　スキャナアプリ
　１１５　ネットファイルアプリ
　１１６　工程検査アプリ
　１１７，１１８　新規アプリ
　１２０　プラットホーム
　１２１　汎用ＯＳ 
　１２２　ＳＣＳ 
　１２３　ＳＲＭ
　１２４　ＥＣＳ 
　１２５　ＭＣＳ 
　１２６　ＯＣＳ 
　１２７　ＦＣＳ 
　１２８　ＮＣＳ 
　１３０　アプリケーション
　１４０，８４１〜８４８　仮想アプリケーションサービス（ＶＡＳ） 
　１４１　アプリ相性情報取得スレッド
　１４２　アプリ起動制限スレッド
　１４３　制御スレッド
　１４４　ディスパッチャ
　１４５　必須アプリ情報取得スレッド
　１４６　アプリ起動制御スレッド
　１５０　コントロールサービス層
　２００　ハードディスク（ＨＤ） 
　２０１　アプリ相性情報ファイル
　２０２　必須アプリ情報ファイル
　２１０　オペレーションパネル
　２１１　起動要求アプリ一覧
　２１２　起動不可アプリ一覧
　２１３　ラジオボタン
　８００　複合機
　８０１　ＶＡＳ制御プロセス
【図１】
2004127280.tif 000003
【図２】
2004127280.tif 000004
【図３】
2004127280.tif 000005
【図４】
2004127280.tif 000006
【図５】
2004127280.tif 000007
【図６】
2004127280.tif 000008
【図７】
2004127280.tif 000009
【図８】
2004127280.tif 000010
【図９】
2004127280.tif 000011
【図１０】
2004127280.tif 000012
【図１１】
2004127280.tif 000013
【図１２】
2004127280.tif 000014
【図１３】
2004127280.tif 000015
【図１４】
2004127280.tif 000016
【図１５】
2004127280.tif 000017
【図１６】
2004127280.tif 000018
【図１７】
2004127280.tif 000019
【図１８】
2004127280.tif 000020
【図１９】
2004127280.tif 000021
【図２０】
2004127280.tif 000022
【図２１】
2004127280.tif 000023
【図２２】
2004127280.tif 000024
【図２３】
2004127280.tif 000025
【図２４】
2004127280.tif 000026
【図２５】
2004127280.tif 000027
【図２６】
2004127280.tif 000028
【図２７】
2004127280.tif 000029
【図２８】
2004127280.tif 000030