本発明は、複数のアプリケーション間の競合を解決する競合解決装置に関し、より特定的には、競合解決装置が備えるリソースが変化した場合にも、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新する競合解決装置に関する。
従来より、携帯電話などの情報機器においては、特定のアプリケーション(例えば、電話の機能など)を、他のアプリケーション(例えば、メロディプレーヤなど)よりも優先させて動作させることが行なわれていた。例えば、携帯電話においては、メロディプレーヤがメロディを再生中であったとしても、電話の着信が発生した際には、再生中の音を停止した上で、着信画面を表示し、着信音を鳴動させることが行われていた。これは携帯電話においては、電話の着信があった場合に、常に着信の処理を優先させ、通話を可能としなければならないためである。また、着信時にメロディの音が鳴動していてはユーザへの通知や通話の妨げとなるために、このようなアプリケーション間の競合を解決するユーザインタフェースが実現されていた。
また、携帯電話、AV機器、及びカーナビゲーション機器などのアプリケーションが出荷時から組み込まれた情報機器においては、アプリケーション間の競合を解決し、より安定したシステムをユーザに提供するために、予め使用できるメモリ量と、アプリケーションが必要とするメモリ量とを計算し、起動できるアプリケーションの最大数を決定することで、システムの安定性を実現する場合もあった。
また、このようなアプリケーションが出荷時から組み込まれた情報機器においては、出荷前にアプリケーションの動作に関して十分にテストを行い、アプリケーション同士で競合が発生する可能性があるアプリケーションを予め組み込まないようにしていた。
また、特許文献1には、アプリケーション間の競合を解決するために、アプリケーション間の競合条件が規定された競合制御テーブルを参照し、新規オペレーションの実行の可否を判定すると共に、各アプリケーションに対して動作の指示を行なう情報機器が開示されている。
特開2003−177926号公報
しかしながら、特許文献1に開示されている情報機器では、組み込まれるアプリケーションや情報機器が備えるデバイスの種類に基づいて、出荷前に想定可能な範囲でアプリケーション間の競合条件が用意されていた。そのため、出荷後となっては、新たなデバイスを追加するなどしたために、アプリケーション間の競合条件を変更した方がユーザの利便性の観点で優れていたとしても、競合条件を変更することができなかった。
それ故に、本発明の目的は、上述した課題を解決するものであり、出荷後にデバイスの追加などでシステムが備えるリソースが変化した場合にも、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新することができる競合解決装置を提供することである。
本発明は、複数のアプリケーション間の競合を解決する競合解決装置に向けられている。そして、上記目的を達成させるために、本発明の競合解決装置は、複数のアプリケーション間の競合条件が規定されたアプリ競合ルールを保存するアプリ競合ルール保存部と、アプリ競合ルールに基づいて、複数のアプリケショーン間の競合を判定し、当該判定結果に基づいて、1つ以上のアプリケーションを実行するアプリケーション実行部と、競合解決装置のリソースが変化した場合に、複数のアプリケーション間の競合条件の変化に合わせて、アプリ競合ルールを更新するアプリ競合ルール更新部とを備える。
好ましくは、アプリケーション実行部は、1つ以上のアプリケーションを実行する実行部と、アプリ競合ルールに基づいて、複数のアプリケショーン間の競合を判定する競合判定部と、競合判定部の判定結果に従って、実行部でのアプリケーションの実行を管理するアプリ管理部とを含む。
好ましくは、アプリ競合ルール更新部は、競合解決装置が備えるデバイスの状態変化を検知するシステム管理部と、デバイスの状態が変化した場合に、デバイスの状態が変化した後の競合解決装置のリソースを取得し、当該取得したリソースに基づいて、競合条件が変更されるのか否かを判断するデバイス−競合ルール管理部と、競合条件が変更されると判断した場合に、複数のアプリケーション間の競合条件の変化に合わせて、アプリ競合ルールを更新する競合情報更新部とを備える。
また、デバイス−競合ルール管理部は、デバイスの状態が変化した場合に、複数のアプリケーションの動作に必要なリソースを取得し、取得した複数のアプリケーションの動作に必要なリソースと、デバイスの状態が変化した後の競合解決装置のリソースとに基づいて、競合条件が変更されるのか否かを判断してもよい。
好ましくは、アプリ競合ルール更新部は、デバイスのリソース種別と、アプリケーションとの間の共有・排他条件を示すリソース共有・排他条件を保存するリソース共有・排他条件部をさらに備える。この場合、デバイス−競合ルール管理部は、さらに、リソース共有・排他条件に基づいて、競合条件が変更さるのか否かを判断する。
好ましくは、システム管理部は、競合解決装置が備えるデバイスが追加、交換、あるいは削除されることによるデバイスの状態変化を検知する。
例えば、デバイスのリソース種別は、メモリである。この場合、デバイス−競合ルール管理部は、デバイスの状態が変化した後の競合解決装置のメモリ容量と、複数のアプリケーションの動作に必要なメモリ容量とに基づいて、競合条件が変更されるのか否かを判断する。
例えば、デバイスのリソース種別は、音源ボードである。この場合、デバイス−競合ルール管理部は、デバイスの状態が変化した後の競合解決装置の音再生能力と、複数のアプリケーションの動作に必要な音再生能力とに基づいて、競合条件が変更されるのか否かを判断する。
また、本発明は、複数のアプリケーション間の競合を解決する情報機器が実行する競合解決方法にも向けられている。ただし、情報機器には、複数のアプリケーション間の競合条件を規定したアプリ競合ルールが保存されている。そして、上記目的を達成させるために、本発明の競合解決方法は、情報機器が備えるデバイスの状態変化を検知し、デバイスの状態が変化した場合に、デバイスの状態が変化した後の情報機器のリソースを取得し、取得した情報機器のリソースに基づいて、複数のアプリケーション間の競合条件が変更されるのか否かを判断し、競合条件が変更されると判断した場合に、アプリ競合ルールを更新する。
好ましくは、この競合解決方法は、一連の処理手順を情報機器に実行させるためにプログラムの形式で提供される。このプログラムは、コンピュータが読みとり可能な記憶媒体に記憶されてもよい。また、この競合解決方法は、情報機器が備える集積回路として提要されてもよい。
以上のように本発明によれば、デバイスが追加、交換、あるいは削除されることによって、システムが備えるリソースが変化したときに、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新することができる。これによって、システムを出荷した後にデバイスがインストールされた場合でも、デバイスの性能を充分に活用しつつ、不具合なく安定したアプリケーションの動作を確保することができる。
また、システム設計者は、予め追加、交換、あるいは削除されるデバイスを予測した上で、アプリケーション間の競合条件を設計する必要がなくなる。このため、システム出荷時の負荷を軽減することができる。また、想定外のデバイスを追加する必要性が生じた場合にも、システム全体を更新するのではなく、アプリ競合ルールのみを更新することで対応できる。このため、デバイス追加時の負荷も軽減することができる。
また、システムの状況に基づいて、競合条件を更新することができるため、例えば、インストールされていないデバイスに関する競合条件を保持する必要がなく、不要な競合条件を保持することによるメモリサイズの増大を防ぐことができる。また、追加、交換、あるいは削除されるデバイスの性能変化を動的に判定し、システムによって最適となるようにアプリ競合ルールを更新するので、ユーザの負荷も軽減することができる。
図1は、本発明の第1の実施形態に係る競合解決装置1の構成の一例を示すブロック図である。
図2は、本発明の第1の実施形態に係る競合解決装置1が実施する競合解決方法の動作の一例を示すフローチャートである。
図3は、アプリ競合ルール保存部15が保存するアプリ競合ルールの一例を示す図である。
図4は、アプリケーションの状態毎に競合条件が規定されたアプリ競合ルールの一例を示す図である。
図5は、本発明の第1の実施形態に係る競合解決装置1が実施するアプリ競合ルールの更新方法の一例を示すフローチャートである。
図6は、デバイスリソース部21に設定されているデバイス−リソース情報の一例を示す図である。
図7は、リソース必要情報部22が保持するリソース必要情報の一例を示す図である。
図8は、アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図である。
図9は、リソース共有・排他条件部23が保持するリソース共有・排他条件の一例を示す図である。
図10は、本発明の第2の実施形態に係る競合解決装置2の構成の一例を示すブロック図である。
図11は、アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図である。
図12は、アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図である。
図13は、アプリ競合ルール保存部15が保存するアプリ競合ルールの一例を示す図である。
符号の説明
11 実行部
12 アプリ管理部
13 動作アプリ情報管理部
14 競合判定部
15 アプリ競合ルール
16 アプリ−リソース属性管理部
17 競合情報更新部
18 デバイス−競合ルール管理部
19 システム管理部
20 デバイス部
21 デバイスリソース部
22 リソース必要情報部
23 リソース共有・排他条件部
24 アプリ更新部
以下、本発明の各実施形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係る競合解決装置1の構成の一例を示すブロック図である。図1において、競合解決装置(情報機器)1は、実行部11、アプリ管理部12、動作アプリ情報管理部13、競合判定部14、アプリ競合ルール保存部15、アプリ−リソース属性管理部16、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19、デバイス部20、デバイスリソース部21、リソース必要情報部22、及びリソース共有・排他条件部23を備える。
実行部11は、アプリ管理部12が保存するアプリケーションを実行する。ここで、アプリケーションとは、例えば競合解決装置1が携帯電話である場合、電話アプリやブラウザアプリなどである。アプリ管理部12は、実行部11が実行するアプリケーションを保存すると共に、実行部11が実行するアプリケーションの動作を管理する。動作アプリ情報管理部13は、動作中のアプリケーションの情報を管理する。競合判定部14は、アプリ競合ルールに基づいて、アプリケーション間の競合を判定する。
アプリ競合ルール保存部15は、アプリケーション間の競合ルールを規定したアプリ競合ルールを保存する(図3、図4参照)。アプリ−リソース属性管理部16は、アプリ−リソース属性情報として、各アプリケーションが必要とするリソース情報を管理する(図8参照)。競合情報更新部17は、アプリケーション間の競合条件が変更された場合に、アプリ競合ルールを更新する。デバイス−競合ルール管理部18は、デバイスの状態が変化した場合に、競合条件を決定するために必要な情報の種類を特定する。
システム管理部19は、デバイス部20の状態を管理する。システム管理部19の機能は、Linux(登録商標)などのOSによって実現することができる。デバイス部20は、競合解決装置1が備えるデバイスである。デバイス部20は、例えば、メモリや音を再生するデバイス、通信を行なうデバイスなどである。デバイスリソース部21は、デバイス−リソース情報として、各デバイスに対応したリソース種別等の情報を保持する(図6参照)。リソース必要情報部22は、リソース必要情報として、リソース種別毎に競合ルールを決定するために必要な情報の種類を保持する(図7参照)。リソース共有・排他条件部23は、リソース共有・排他条件として、リソース種別と、アプリケーションとの間の共有・排他条件を保持する(図9参照)。
なお、実行部11、アプリ管理部12、動作アプリ情報管理部13、及び競合判定部14は、アプリ競合ルールに基づいて、複数のアプリケショーン間の競合を判定し、当該判定結果に基づいて、1つ以上のアプリケーションを実行するので、まとめてアプリケーション実行部と記すことができる。また、アプリ−リソース属性管理部16、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19、デバイスリソース部21、リソース必要情報部22、及びリソース共有・排他条件部23は、競合解決装置1のリソースが変化した場合に、複数のアプリケーション間の競合条件の変化に合わせて、アプリ競合ルールを更新するので、まとめてアプリ競合ルール更新部と記すことができる。
図2は、本発明の第1の実施形態に係る競合解決装置1が実施する競合解決方法の動作の一例を示すフローチャートである。このフローチャートを説明するにあたり、前提条件として、すでに優先度が低いアプリケーションAが動作中であると仮定する。また、このフローチャートでは、アプリケーションAよりも優先度が高いアプリケーションBが動作を要求し、アプリケーションAは動作を中止するシナリオを記述する。
図2を参照して、競合解決装置1は、ユーザの操作等を契機として、動作中のアプリケーションAよりも優先度が高いアプリケーションBの動作開始を要求する。具体的には、実行部11は、ユーザの操作等を契機として、アプリ管理部12に対して、アプリケーションBの動作開始を要求する。アプリ管理部12は、実行部11からアプリケーションBの動作開始を要求されると、競合判定部14に対して、アプリケーションBが動作可能であるかどうかの判定を依頼する(ステップS11)。
競合判定部14は、アプリ管理部12から動作開始を要求されたアプリケーションの起動アプリ情報を取得する(ステップS12)。起動アプリ情報とは、動作開始を要求されたアプリケーションを特定するための情報であり、例えば、アプリケーションに設定された固有のIDなどである。ここでは、競合判定部14は、アプリ管理部12からアプリケーションBの起動アプリ情報を取得するものとする。
次に、競合判定部14は、動作中のアプリケーションがあれば、アプリケーション間の競合を解決するために、動作中のアプリケーションの情報を動作アプリ情報管理部13に対して問い合わせる。動作アプリ情報管理部13は、この問い合わせに対して、動作中のアプリケーションの情報があれば競合判定部14に返す。ここでは、動作アプリ情報管理部13は、アプリケーションAの情報を返すものとする。競合判定部14は、動作アプリ情報管理部13から返ってくる情報に基づいて、動作中のアプリケーションがあるかどうかを判定する(ステップS13)。
競合判定部14は、動作中のアプリケーションがないと判定した場合、ステップS15に状態を遷移させる。一方、競合判定部14は、動作中のアプリケーションがあると判定した場合、アプリ競合ルールに基づいて、動作中のアプリケーションAと、これから動作しようとしているアプリケーションBとが競合するかどうかを判定する(ステップS14)。
図3は、アプリ競合ルール保存部15が保存するアプリ競合ルールの一例を示す図である。図3を参照して、アプリ競合ルールには、動作中のアプリケーションAと、新しく動作するアプリケーションBとの間の競合条件が規定されている。例えば、動作中のアプリケーションAはブラウザであり、新しく動作するアプリケーションBが電話アプリであるとする。このような場合、競合判定部14は、アプリ競合ルールを参照して、ブラウザと電話アプリとが競合すると判定する。そして、競合判定部14は、アプリケーションAとアプリケーションBとが競合する場合、どうらのアプリケーションの優先度が高いかを判定する。例えば、競合判定部14は、アプリケーションにそれぞれ優先度が設定されている場合には、アプリケーションに設定された優先度に基づいて、アプリケーション間の優先度を判定することができる。
競合判定部14は、競合判定した結果をアプリ管理部12に通知する。また、競合判定部14は、動作アプリ情報管理部13が管理している動作中のアプリケーションの情報を更新する(ステップS15)。アプリ管理部12は、競合判定部14からの判定結果を元に、アプリケーションA及びアプリケーションBに対して所定の指示を送る(ステップS16)。ここでは、アプリ管理部12は、アプリケーションBがアプリケーションAより優先度が高いため、アプリケーションAには動作の中止を指示し、アプリケーションBには動作の開始を指示するものとする。
なお、上述したアプリ競合ルール(図3参照)には、アプリケーション毎に競合条件が規定されていたが、アプリケーションの状態毎に競合条件が規定されていてもよい。図4は、アプリケーションの状態毎に競合条件が規定されたアプリ競合ルールの一例を示す図である。このような場合、競合解決装置1は、アプリケーションの状態に応じて、アプリケーション間の競合を判断することができる。
例えば、競合判定部14は、アプリケーションAが音を鳴らしている状態で、アプリケーションBが音を鳴らす状態で起動するか否かに基づいて、アプリケーション間の競合を判定する。あるいは、競合判定部14は、ある状態のアプリケーションAが確保しているメモリ量と、ある状態のアプリケーションBが要求しているメモリ量とを加えたメモリ量が、システムが提供可能なメモリ総量よりも大きいか否かに基づいて、アプリケーション間の競合を判定する。
より具体的な競合解決装置1の動作について、動作中のアプリケーションAをTVアプリとして、新しく動作するアプリケーションBを電話アプリとして説明する。TVアプリが音を鳴らしている状態(例えば、状態1)で、電話アプリを通話可能な状態(例えば、状態2)にしようとする場合を考える。このような場合、競合判定部14は、図4に示すアプリ競合ルールを参照して、TVアプリの状態1と、電話アプリの状態2とが競合すると判定する。そして、競合判定部14は、アプリケーションに設定された優先度に基づいて、TVアプリよりも、電話アプリの方が優先度が高いと判定する。アプリ管理部12は、競合判定部14の判定結果に応じて、TVアプリを終了させ、電話アプリの動作を開始させる。
次に、競合解決装置1にデバイスがインストールされるなどして、デバイスの状態が変化するために競合条件が変更される場合のアプリ競合ルールの更新方法を説明する。なお、インストールという用語には、デバイスの追加、交換、あるいは削除という概念を含むものとする。図5は、本発明の第1の実施形態に係る競合解決装置1が実施するアプリ競合ルールの更新方法の一例を示すフローチャートである。ここでは、ユーザが競合解決装置1のデバイスとして、新しいメモリカードをインストールした場合を例にして具体的に説明する。
図5を参照して、システム管理部19は、競合解決装置1のデバイスがインストールされた場合、新しいデバイスがインストールされたことを検知する(ステップS21)。システム管理部19は、新しいデバイスがインストールされたことを検知すると、そのデバイスを特定することができるデバイスIDなどと共に、デバイス−競合ルール管理部18に対して新しいデバイスがインストールされたことを通知する。また、システム管理部19は、同時に、新しいデバイスが使用できるように様々な設定を行う。
デバイス−競合ルール管理部18は、インストールされたデバイスがどのようなリソースに相当するのかを判断するため、デバイスIDに対応するリソース種別をデバイスリソース部21から取得する(ステップS22)。図6は、デバイスリソース部21に設定されているデバイス−リソース情報の一例を示す図である。図6を参照して、デバイスリソース部21は、デバイス−リソース情報として、デバイスIDに対応したリソース種別を保持している。ここでは、デバイス−競合ルール管理部18は、例えば、「sd3893DA」というデバイスIDをシステム管理部19から取得した場合、デバイス−リソース管理部21にアクセスすることで、このデバイスがメモリデバイスであることを認識する。
次に、デバイス−競合ルール管理部18は、デバイスリソース部21から取得したリソース種別を元に、リソース必要情報部22にアクセスして、競合条件を決定するために必要な情報の種類を特定する(ステップS23)。図7は、リソース必要情報部22が保持するリソース必要情報の一例を示す図である。図7を参照して、リソース必要情報部22は、リソース必要情報として、リソース種別毎に競合条件を決定するために必要な情報の種類を保持している。ここでは、デバイス−競合ルール管理部18は、インストールされたデバイスがメモリデバイスであるので、競合条件を決定するために必要な情報の種類が、メモリサイズと、アプリケーションメモリサイズであることを特定する。
デバイス−競合ルール管理部18は、特定した情報の種類に基づいて、競合条件を決定するために必要な情報を取得する(ステップS24)。デバイス−競合ルール管理部18は、例えば、システム全体のメモリサイズをシステム管理部19にアクセスして取得し、各アプリケーションを動作させるのに必要なメモリサイズをアプリ−リソース属性管理部16にアクセスして取得する。図8は、アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図である。図8を参照して、アプリ−リソース属性管理部16は、アプリ−リソース属性情報として、各アプリケーションが必要とするリソース情報を管理している
次に、デバイス−競合ルール管理部18は、リソース共有・排他条件部23から関連するリソースの共有・排他条件を取得する(ステップS25)。図9は、リソース共有・排他条件部23が保持するリソース共有・排他条件の一例を示す図である。図9を参照して、リソース共有・排他条件部23は、リソース共有・排他条件として、リソース種別と、アプリケーションとの間の共有・排他条件を保持している。ここでは、インストールされたデバイスがメモリデバイスなので、デバイス−競合ルール管理部18は、インストールされたデバイスがアプリケーション間で共有されることを示す共有・排他条件を取得する。また、この共有・排他条件には、デバイスのメモリサイズが、動作中のアプリケーションの総メモリサイズよりも大きくなると記述されている。
次に、デバイス−競合ルール管理部18は、これまでに取得した情報(この例では、インストールされたデバイスのメモリ量、元から備えていたメモリ量、各アプリケーションが使用するメモリ量、及びメモリデバイスに関する共有・排他条件など)に基づいて、アプリケーション間の競合条件が変更されるか否かを判断する(ステップS26)。具体的には、デバイス−競合ルール管理部18は、取得した情報に基づいて、各アプリケーションが動作している状態で、どのようなアプリケーションが動作できるかの条件を決定し、決定した条件を競合情報更新部17に通知する。例えば、図8に示した4つのアプリケーションが同時に動作可能なアプリケーションである場合、全てのアプリケーションが同時に動作した場合の総メモリサイズは80MBとなり、システムが備える総メモリサイズが128MBであるなら、全てのアプリケーションが同時に動作してもメモリサイズに関しては問題がなくなる。このような場合、メモリサイズに関する新しい競合条件が作成される。
競合情報更新部17は、既存の競合条件と、新しい競合条件とを比較し、競合条件に変更があれば、アプリ競合ルールを更新する(ステップS27)。例えば、以前インストールされていたメモリカードのサイズが30MBであった場合、メールアプリとその他のアプリケーションとは、メモリサイズの制限から同時に動作することができなかった。しかし、デバイスの更新によってメモリサイズが増大すれば、このようなメモリサイズに関する競合はなくなる。したがって、競合情報更新部17は、メモリサイズ以外の条件に制限がないアプリケーションに関しては、電話アプリと同時に起動できるように、アプリ競合ルールを更新する。
また、競合解決装置1は、新しい音源ボードがインストールされた場合にも、アプリ競合ルールを更新することができる。例えば、競合解決装置1は、性能上(音再生能力)の問題によって、単一のアプリケーションが出力する音しか再生できなかったとする。このような場合、競合解決装置1は、新しい音源ボードがインストールされることで、性能上の問題がなくなり、複数の音を出力するアプリケーションを同時に動作させることができる。このように、新しい音源ボードがインストールされた場合、競合解決装置1は、アプリケーション間の競合条件が変更されるので、メモリデバイスと同様の方法を用いて、アプリ競合ルールを更新する。
また、競合解決装置1は、新しいビデオボードがインストールされた場合にも、アプリ競合ルールを更新することができる。例えば、競合解決装置1は、性能上の問題によって、単一のアプリケーションが出力する映像しか再生することができなかったとする。このような場合に、競合解決装置1は、新しいビデオボードがインストールされることで、性能上の問題がなくなり、複数の映像を出力するアプリケーションを同時に動作させることができる。このように、新しいビデオボードがインストールされた場合、アプリケーション間の競合条件が変更されるので、競合解決装置1は、メモリデバイスと同様の方法を用いて、アプリ競合ルールを更新する。
また、競合解決装置1は、新しいカメラがインストールされた場合にも、アプリ競合ルールを更新することができる。例えば、競合解決装置1は、カメラを1台しか備えていないために、単一のアプリケーションでしか映像を撮影できなかったとする。このような場合に、競合解決装置1は、新しいカメラがインストールされることで、カメラを2台備えることになり、複数の映像を撮影するアプリケーションを同時に動作させることができるようになる。このように、新しいカメラがインストールされた場合、アプリケーション間の競合条件が変更されるので、競合解決装置1は、メモリデバイスと同様の方法を用いて、アプリ競合ルールを更新する。
以上のように、本発明の第1の実施形態に係る競合解決装置1によれば、デバイスが追加、交換、あるいは削除されることによって、システムが備えるリソースが変化したときに、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新することができる。これによって、システムを出荷した後にデバイスがインストールされた場合でも、デバイスの性能を充分に活用しつつ、不具合なく安定したアプリケーションの動作を確保することができる。
また、システム設計者は、予め追加、交換、あるいは削除されるデバイスを予測した上で、アプリケーション間の競合条件を設計する必要がなくなる。このため、システム出荷時の負担を軽減することができる。また、想定外のデバイスを追加する必要性が生じた場合にも、システム全体を更新するのではなく、アプリ競合ルールのみを更新することで対応できる。このため、デバイス追加時の負荷も軽減することができる。
また、システムの状況に基づいて、競合条件を更新することができるため、例えば、インストールされていないデバイスに関する競合条件を保持する必要がなく、不要な競合条件を保持することによるメモリサイズの増大を防ぐことができる。また、追加、交換、あるいは削除されるデバイスの性能変化を動的に判定して最適なアプリ競合ルールに更新するので、ユーザの負荷も軽減することができる。
なお、上述した説明では、実行部11が、アプリ管理部12が保存するアプリケーションを実行すると仮定していた。しかし、実行部11は、アプリケーションそのものを実行するのではなく、単にアプリケーションから要求を受けたミドルウェアなどのソフトウェアを実行するものであってもよい。
また、上述した説明(図2)では、アプリケーションの動作を開始する場合のシーケンスのみを記述したが、競合判定部14は、アプリケーションが終了する場合にも、アプリケーション間の競合判定を行ない、動作アプリ情報管理部13を更新することも可能である。
また、上述した説明では、競合判定部14は、アプリケーション同士の関係によって競合判定を行っていた。しかし、競合判定部14は、アプリケーションをタイプ別に分けたグループ毎に競合判定を行ってもよい。あるいは、競合判定部14は、アプリケーションが使用するリソースの種類や、その他の属性によって競合判定を行ってもよい。
また、上述した説明では、競合判定部14は、アプリケーション同士が競合する場合に、アプリーションに設定された優先度に基づいて、どちらのアプリケーションの優先度が高いかを判定していた。しかし、競合判定部14は、アプリケーションが使用しているリソースの数や実行時間等の情報に基づいて優先度の判定を行っても良い。これによって、競合解決装置1は、ある少数のアプリケーションがリソースを長時間占有したり、多量のリソースを占有したりするといったことを防ぐことができる。
また、上述したアプリ競合ルール(図3参照)には、動作中のアプリケーションAと、新しく動作するアプリケーションBとの間の競合条件として、“競合する”、“競合しない”、“保留”のみを記述したが、さらにアプリケーションの優先度が付加されていてもよい。これによって、競合解決装置1は、アプリ競合ルールに基づいて、アプリケーション間の優先度を判定することができる。また、競合解決装置1は、競合するアプリケーションの優先度が同じ場合には、予め決まった動作を行なうようにしてもよい。
また、判定結果が“保留”となった場合、アプリ管理部12は、アプリケーションBの動作を中断するが、アプリケーションAが動作を終了した後に、中断されていたアプリケーションBの動作を再開してもよい。また、アプリ管理部12は、中断されていたアプリケーションが複数ある場合には、その中から優先度が最も高いアプリケーションを選択して、選択したアプリケーションの動作を再開してもよい。これによって、競合解決装置1は、ユーザにとって利便性の高い動作を実現することができる。
また、上述した説明では、デバイス−競合ルール管理部18は、デバイスリソース部21、リソース必要情報部22、リソース共有・排他条件部23、及びアプリ−リソース属性管理部16などにアクセスして、競合条件を決定するために必要な情報を取得していた。しかし、デバイス−競合ルール管理部18は、外部のサーバなどにアクセスして、競合条件を決定するために必要な情報を取得してもよい。また、このときのサーバへのアクセス手段としては、有線ケーブルによる通信やIrDAによる無線通信など、あらゆる手段を用いることができる。
また、外部のサーバから取得する競合条件を決定するために必要な情報は、暗号化されていてもよい。このような場合、デバイス−競合ルール管理部18は、暗号化された情報の復号化を試み、復号化できた場合にのみ取得した情報を信頼してデバイスのインストールと共に、競合条件の変更を行なってもよい。あるいは、復号に失敗した場合は、デバイスのインストールは行うが、競合条件の変更は行なわなくてもよい。
また、上述した説明では、新しくインストールされるデバイスの情報は、取得可能であると仮定してきたが、取得できない場合でもデフォルトの属性値を予め決めておき、その値が得られたものとして扱ってもよい。
また、競合解決装置において、アプリ管理部12、動作アプリ情報管理部13、競合判定部14、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19などの機能ブロックは、プログラムとして動作しても良い。このプログラムは、1つのCPU上で動作しても良いし、各機能ブロックの処理を分けて複数のCPU上で動作しても良い。
また、アプリ競合ルール保存部15、アプリ−リソース属性管理部16、デバイスリソース部21、リソース必要情報部22、及びリソース共有・排他条件部23などの機能ブロックは、ROMやRAMに保存されるデータであってもよい。あるいは、これらの機能ブロックは、組み込み機器のメモリに保存されるデータであってもよいし、取り外し可能な外部メモリに保存されるデータであってもよい。
また、アプリ管理部12、動作アプリ情報管理部13、競合判定部14、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19などの機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギャラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。例えば、バイオ技術の適応などが可能性としてありえる。
(第2の実施形態)
図10は、本発明の第2の実施形態に係る競合解決装置2の構成の一例を示すブロック図である。図10において、競合解決装置2は、第1の実施形態に係る競合解決装置1と比較して、さらにアプリ更新部24を備える。アプリ更新部24は、何らかの通信手段を用いて、外部からアプリケーションをダウンロードし、アプリ管理部12が保存するアプリケーションを更新する。なお、アプリ更新部24は、通信手段を用いる以外に、アプリケーションが記憶されたメモリカード等の媒体を用いて、アプリ管理部12が保存するアプリケショーンを更新してもよい。
アプリ管理部12は、更新されたアプリケーションに合わせて、競合解決装置2の各種情報を更新する。例えば、アプリ管理部12は、更新されたアプリケーションが保持する情報に基づいて、アプリ競合ルール保存部15が保存するアプリ競合ルール、及びアプリ−リソース属性管理部16が管理するアプリ−リソース属性情報を更新する。なお、アプリ管理部12は、更新されたアプリケーションに、アプリケーション間の競合条件や、使用するリソース情報が設定されている場合は、設定されている情報に基づいて、アプリ競合ルール保存部15、及びアプリ−リソース属性管理部16の情報を更新する。また、アプリ管理部12は、更新されたアプリケーションに、アプリケーション間の競合条件や、使用するリソース情報が設定されていない場合は、更新されたアプリケショーンの種類等に基づいて、アプリケーション間の競合条件や、使用するリソース情報を類推し、類推した情報に基づいて、アプリ競合ルール保存部15、及びアプリ−リソース属性管理部16の情報を更新する。
例えば、アプリ更新部24は、ユーザからの指示に従って、アプリ管理部12が保存しているブラウザアプリをバージョンアップしたとする。アプリ管理部12は、ブラウザアプリが必要とするリソースが変更されたか否かを判定する。ここでは、ブラウザアプリが必要とするメモリサイズが、25MBから35MBに増加したとする。アプリ管理部12は、ブラウザアプリが必要とするメモリサイズが25MBから35MBに増加したことを認識すると、ブラウザアプリのメモリリソースの設定値が35MBになるように、アプリ−リソース属性情報を更新する(図11参照)。
例えば、アプリ更新部24は、ユーザからの指示に従って、ラジオアプリをダウンロードし、ラジオアプリをアプリ管理部12に保存したとする。アプリ管理部12は、ラジオアプリが必要とするリソース情報を取得する。ここでは、ラジオアプリが必要とするメモリサイズが5MBで、音リソースが共用使用で、通信リソースが未使用であるものとする。アプリ管理部12は、ラジオアプリが必要とするリソース情報を取得すると、アプリ−リソース属性情報にラジオアプリのリソース情報を追加する(図12参照)。また、アプリ管理部12は、ラジオアプリと競合する可能性のあるアプリケーションを特定する。ここでは、ラジオアプリと競合するアプリケーションが、電話アプリだけであるとする。アプリ管理部12は、ラジオアプリと競合するアプリケーションが電話アプリであることを認識すると、アプリ競合ルールに、ラジオアプリに関する競合条件を設定する(図13参照)。
これによって、競合解決装置2は、アプリケーションの状態に変更があった場合も、アプリケーション間の競合を解決することができる。
本発明に係る競合解決装置は、携帯電話、PDA、及びカーナビゲーション機器などのモバイル機器や、AV機器などの組み込み機器などに利用することができる。
本発明は、複数のアプリケーション間の競合を解決する競合解決装置に関し、より特定的には、競合解決装置が備えるリソースが変化した場合にも、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新する競合解決装置に関する。
従来より、携帯電話などの情報機器においては、特定のアプリケーション(例えば、電話の機能など)を、他のアプリケーション(例えば、メロディプレーヤなど)よりも優先させて動作させることが行なわれていた。例えば、携帯電話においては、メロディプレーヤがメロディを再生中であったとしても、電話の着信が発生した際には、再生中の音を停止した上で、着信画面を表示し、着信音を鳴動させることが行われていた。これは携帯電話においては、電話の着信があった場合に、常に着信の処理を優先させ、通話を可能としなければならないためである。また、着信時にメロディの音が鳴動していてはユーザへの通知や通話の妨げとなるために、このようなアプリケーション間の競合を解決するユーザインタフェースが実現されていた。
また、携帯電話、AV機器、及びカーナビゲーション機器などのアプリケーションが出荷時から組み込まれた情報機器においては、アプリケーション間の競合を解決し、より安定したシステムをユーザに提供するために、予め使用できるメモリ量と、アプリケーションが必要とするメモリ量とを計算し、起動できるアプリケーションの最大数を決定することで、システムの安定性を実現する場合もあった。
また、このようなアプリケーションが出荷時から組み込まれた情報機器においては、出荷前にアプリケーションの動作に関して十分にテストを行い、アプリケーション同士で競合が発生する可能性があるアプリケーションを予め組み込まないようにしていた。
また、特許文献1には、アプリケーション間の競合を解決するために、アプリケーション間の競合条件が規定された競合制御テーブルを参照し、新規オペレーションの実行の可否を判定すると共に、各アプリケーションに対して動作の指示を行なう情報機器が開示されている。
特開2003−177926号公報
しかしながら、特許文献1に開示されている情報機器では、組み込まれるアプリケーションや情報機器が備えるデバイスの種類に基づいて、出荷前に想定可能な範囲でアプリケーション間の競合条件が用意されていた。そのため、出荷後となっては、新たなデバイスを追加するなどしたために、アプリケーション間の競合条件を変更した方がユーザの利便性の観点で優れていたとしても、競合条件を変更することができなかった。
それ故に、本発明の目的は、上述した課題を解決するものであり、出荷後にデバイスの追加などでシステムが備えるリソースが変化した場合にも、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新することができる競合解決装置を提供することである。
本発明は、複数のアプリケーション間の競合を解決する競合解決装置に向けられている。そして、上記目的を達成させるために、本発明の競合解決装置は、複数のアプリケーション間の競合条件が規定されたアプリ競合ルールを保存するアプリ競合ルール保存部と、アプリ競合ルールに基づいて、複数のアプリケショーン間の競合を判定し、当該判定結果に基づいて、1つ以上のアプリケーションを実行するアプリケーション実行部と、競合解決装置のリソースが変化した場合に、複数のアプリケーション間の競合条件の変化に合わせて、アプリ競合ルールを更新するアプリ競合ルール更新部とを備える。
好ましくは、アプリケーション実行部は、1つ以上のアプリケーションを実行する実行部と、アプリ競合ルールに基づいて、複数のアプリケショーン間の競合を判定する競合判定部と、競合判定部の判定結果に従って、実行部でのアプリケーションの実行を管理するアプリ管理部とを含む。
好ましくは、アプリ競合ルール更新部は、競合解決装置が備えるデバイスの状態変化を検知するシステム管理部と、デバイスの状態が変化した場合に、デバイスの状態が変化した後の競合解決装置のリソースを取得し、当該取得したリソースに基づいて、競合条件が変更されるのか否かを判断するデバイス−競合ルール管理部と、競合条件が変更されると判断した場合に、複数のアプリケーション間の競合条件の変化に合わせて、アプリ競合ルールを更新する競合情報更新部とを備える。
また、デバイス−競合ルール管理部は、デバイスの状態が変化した場合に、複数のアプリケーションの動作に必要なリソースを取得し、取得した複数のアプリケーションの動作に必要なリソースと、デバイスの状態が変化した後の競合解決装置のリソースとに基づいて、競合条件が変更されるのか否かを判断してもよい。
好ましくは、アプリ競合ルール更新部は、デバイスのリソース種別と、アプリケーションとの間の共有・排他条件を示すリソース共有・排他条件を保存するリソース共有・排他条件部をさらに備える。この場合、デバイス−競合ルール管理部は、さらに、リソース共有・排他条件に基づいて、競合条件が変更さるのか否かを判断する。
好ましくは、システム管理部は、競合解決装置が備えるデバイスが追加、交換、あるいは削除されることによるデバイスの状態変化を検知する。
例えば、デバイスのリソース種別は、メモリである。この場合、デバイス−競合ルール管理部は、デバイスの状態が変化した後の競合解決装置のメモリ容量と、複数のアプリケーションの動作に必要なメモリ容量とに基づいて、競合条件が変更されるのか否かを判断する。
例えば、デバイスのリソース種別は、音源ボードである。この場合、デバイス−競合ルール管理部は、デバイスの状態が変化した後の競合解決装置の音再生能力と、複数のアプリケーションの動作に必要な音再生能力とに基づいて、競合条件が変更されるのか否かを判断する。
また、本発明は、複数のアプリケーション間の競合を解決する情報機器が実行する競合解決方法にも向けられている。ただし、情報機器には、複数のアプリケーション間の競合条件を規定したアプリ競合ルールが保存されている。そして、上記目的を達成させるために、本発明の競合解決方法は、情報機器が備えるデバイスの状態変化を検知し、デバイスの状態が変化した場合に、デバイスの状態が変化した後の情報機器のリソースを取得し、取得した情報機器のリソースに基づいて、複数のアプリケーション間の競合条件が変更されるのか否かを判断し、競合条件が変更されると判断した場合に、アプリ競合ルールを更新する。
好ましくは、この競合解決方法は、一連の処理手順を情報機器に実行させるためにプログラムの形式で提供される。このプログラムは、コンピュータが読みとり可能な記憶媒体に記憶されてもよい。また、この競合解決方法は、情報機器が備える集積回路として提要されてもよい。
以上のように本発明によれば、デバイスが追加、交換、あるいは削除されることによって、システムが備えるリソースが変化したときに、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新することができる。これによって、システムを出荷した後にデバイスがインストールされた場合でも、デバイスの性能を充分に活用しつつ、不具合なく安定したアプリケーションの動作を確保することができる。
また、システム設計者は、予め追加、交換、あるいは削除されるデバイスを予測した上で、アプリケーション間の競合条件を設計する必要がなくなる。このため、システム出荷時の負荷を軽減することができる。また、想定外のデバイスを追加する必要性が生じた場合にも、システム全体を更新するのではなく、アプリ競合ルールのみを更新することで対応できる。このため、デバイス追加時の負荷も軽減することができる。
また、システムの状況に基づいて、競合条件を更新することができるため、例えば、インストールされていないデバイスに関する競合条件を保持する必要がなく、不要な競合条件を保持することによるメモリサイズの増大を防ぐことができる。また、追加、交換、あるいは削除されるデバイスの性能変化を動的に判定し、システムによって最適となるようにアプリ競合ルールを更新するので、ユーザの負荷も軽減することができる。
以下、本発明の各実施形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係る競合解決装置1の構成の一例を示すブロック図である。図1において、競合解決装置(情報機器)1は、実行部11、アプリ管理部12、動作アプリ情報管理部13、競合判定部14、アプリ競合ルール保存部15、アプリ−リソース属性管理部16、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19、デバイス部20、デバイスリソース部21、リソース必要情報部22、及びリソース共有・排他条件部23を備える。
実行部11は、アプリ管理部12が保存するアプリケーションを実行する。ここで、アプリケーションとは、例えば競合解決装置1が携帯電話である場合、電話アプリやブラウザアプリなどである。アプリ管理部12は、実行部11が実行するアプリケーションを保存すると共に、実行部11が実行するアプリケーションの動作を管理する。動作アプリ情報管理部13は、動作中のアプリケーションの情報を管理する。競合判定部14は、アプリ競合ルールに基づいて、アプリケーション間の競合を判定する。
アプリ競合ルール保存部15は、アプリケーション間の競合ルールを規定したアプリ競合ルールを保存する(図3、図4参照)。アプリ−リソース属性管理部16は、アプリ−リソース属性情報として、各アプリケーションが必要とするリソース情報を管理する(図8参照)。競合情報更新部17は、アプリケーション間の競合条件が変更された場合に、アプリ競合ルールを更新する。デバイス−競合ルール管理部18は、デバイスの状態が変化した場合に、競合条件を決定するために必要な情報の種類を特定する。
システム管理部19は、デバイス部20の状態を管理する。システム管理部19の機能は、Linux(登録商標)などのOSによって実現することができる。デバイス部20は、競合解決装置1が備えるデバイスである。デバイス部20は、例えば、メモリや音を再生するデバイス、通信を行なうデバイスなどである。デバイスリソース部21は、デバイス−リソース情報として、各デバイスに対応したリソース種別等の情報を保持する(図6参照)。リソース必要情報部22は、リソース必要情報として、リソース種別毎に競合ルールを決定するために必要な情報の種類を保持する(図7参照)。リソース共有・排他条件部23は、リソース共有・排他条件として、リソース種別と、アプリケーションとの間の共有・排他条件を保持する(図9参照)。
なお、実行部11、アプリ管理部12、動作アプリ情報管理部13、及び競合判定部14は、アプリ競合ルールに基づいて、複数のアプリケショーン間の競合を判定し、当該判定結果に基づいて、1つ以上のアプリケーションを実行するので、まとめてアプリケーション実行部と記すことができる。また、アプリ−リソース属性管理部16、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19、デバイスリソース部21、リソース必要情報部22、及びリソース共有・排他条件部23は、競合解決装置1のリソースが変化した場合に、複数のアプリケーション間の競合条件の変化に合わせて、アプリ競合ルールを更新するので、まとめてアプリ競合ルール更新部と記すことができる。
図2は、本発明の第1の実施形態に係る競合解決装置1が実施する競合解決方法の動作の一例を示すフローチャートである。このフローチャートを説明するにあたり、前提条件として、すでに優先度が低いアプリケーションAが動作中であると仮定する。また、このフローチャートでは、アプリケーションAよりも優先度が高いアプリケーションBが動作を要求し、アプリケーションAは動作を中止するシナリオを記述する。
図2を参照して、競合解決装置1は、ユーザの操作等を契機として、動作中のアプリケーションAよりも優先度が高いアプリケーションBの動作開始を要求する。具体的には、実行部11は、ユーザの操作等を契機として、アプリ管理部12に対して、アプリケーションBの動作開始を要求する。アプリ管理部12は、実行部11からアプリケーションBの動作開始を要求されると、競合判定部14に対して、アプリケーションBが動作可能であるかどうかの判定を依頼する(ステップS11)。
競合判定部14は、アプリ管理部12から動作開始を要求されたアプリケーションの起動アプリ情報を取得する(ステップS12)。起動アプリ情報とは、動作開始を要求されたアプリケーションを特定するための情報であり、例えば、アプリケーションに設定された固有のIDなどである。ここでは、競合判定部14は、アプリ管理部12からアプリケーションBの起動アプリ情報を取得するものとする。
次に、競合判定部14は、動作中のアプリケーションがあれば、アプリケーション間の競合を解決するために、動作中のアプリケーションの情報を動作アプリ情報管理部13に対して問い合わせる。動作アプリ情報管理部13は、この問い合わせに対して、動作中のアプリケーションの情報があれば競合判定部14に返す。ここでは、動作アプリ情報管理部13は、アプリケーションAの情報を返すものとする。競合判定部14は、動作アプリ情報管理部13から返ってくる情報に基づいて、動作中のアプリケーションがあるかどうかを判定する(ステップS13)。
競合判定部14は、動作中のアプリケーションがないと判定した場合、ステップS15に状態を遷移させる。一方、競合判定部14は、動作中のアプリケーションがあると判定した場合、アプリ競合ルールに基づいて、動作中のアプリケーションAと、これから動作しようとしているアプリケーションBとが競合するかどうかを判定する(ステップS14)。
図3は、アプリ競合ルール保存部15が保存するアプリ競合ルールの一例を示す図である。図3を参照して、アプリ競合ルールには、動作中のアプリケーションAと、新しく動作するアプリケーションBとの間の競合条件が規定されている。例えば、動作中のアプリケーションAはブラウザであり、新しく動作するアプリケーションBが電話アプリであるとする。このような場合、競合判定部14は、アプリ競合ルールを参照して、ブラウザと電話アプリとが競合すると判定する。そして、競合判定部14は、アプリケーションAとアプリケーションBとが競合する場合、どうらのアプリケーションの優先度が高いかを判定する。例えば、競合判定部14は、アプリケーションにそれぞれ優先度が設定されている場合には、アプリケーションに設定された優先度に基づいて、アプリケーション間の優先度を判定することができる。
競合判定部14は、競合判定した結果をアプリ管理部12に通知する。また、競合判定部14は、動作アプリ情報管理部13が管理している動作中のアプリケーションの情報を更新する(ステップS15)。アプリ管理部12は、競合判定部14からの判定結果を元に、アプリケーションA及びアプリケーションBに対して所定の指示を送る(ステップS16)。ここでは、アプリ管理部12は、アプリケーションBがアプリケーションAより優先度が高いため、アプリケーションAには動作の中止を指示し、アプリケーションBには動作の開始を指示するものとする。
なお、上述したアプリ競合ルール(図3参照)には、アプリケーション毎に競合条件が規定されていたが、アプリケーションの状態毎に競合条件が規定されていてもよい。図4は、アプリケーションの状態毎に競合条件が規定されたアプリ競合ルールの一例を示す図である。このような場合、競合解決装置1は、アプリケーションの状態に応じて、アプリケーション間の競合を判断することができる。
例えば、競合判定部14は、アプリケーションAが音を鳴らしている状態で、アプリケーションBが音を鳴らす状態で起動するか否かに基づいて、アプリケーション間の競合を判定する。あるいは、競合判定部14は、ある状態のアプリケーションAが確保しているメモリ量と、ある状態のアプリケーションBが要求しているメモリ量とを加えたメモリ量が、システムが提供可能なメモリ総量よりも大きいか否かに基づいて、アプリケーション間の競合を判定する。
より具体的な競合解決装置1の動作について、動作中のアプリケーションAをTVアプリとして、新しく動作するアプリケーションBを電話アプリとして説明する。TVアプリが音を鳴らしている状態(例えば、状態1)で、電話アプリを通話可能な状態(例えば、状態2)にしようとする場合を考える。このような場合、競合判定部14は、図4に示すアプリ競合ルールを参照して、TVアプリの状態1と、電話アプリの状態2とが競合すると判定する。そして、競合判定部14は、アプリケーションに設定された優先度に基づいて、TVアプリよりも、電話アプリの方が優先度が高いと判定する。アプリ管理部12は、競合判定部14の判定結果に応じて、TVアプリを終了させ、電話アプリの動作を開始させる。
次に、競合解決装置1にデバイスがインストールされるなどして、デバイスの状態が変化するために競合条件が変更される場合のアプリ競合ルールの更新方法を説明する。なお、インストールという用語には、デバイスの追加、交換、あるいは削除という概念を含むものとする。図5は、本発明の第1の実施形態に係る競合解決装置1が実施するアプリ競合ルールの更新方法の一例を示すフローチャートである。ここでは、ユーザが競合解決装置1のデバイスとして、新しいメモリカードをインストールした場合を例にして具体的に説明する。
図5を参照して、システム管理部19は、競合解決装置1のデバイスがインストールされた場合、新しいデバイスがインストールされたことを検知する(ステップS21)。システム管理部19は、新しいデバイスがインストールされたことを検知すると、そのデバイスを特定することができるデバイスIDなどと共に、デバイス−競合ルール管理部18に対して新しいデバイスがインストールされたことを通知する。また、システム管理部19は、同時に、新しいデバイスが使用できるように様々な設定を行う。
デバイス−競合ルール管理部18は、インストールされたデバイスがどのようなリソースに相当するのかを判断するため、デバイスIDに対応するリソース種別をデバイスリソース部21から取得する(ステップS22)。図6は、デバイスリソース部21に設定されているデバイス−リソース情報の一例を示す図である。図6を参照して、デバイスリソース部21は、デバイス−リソース情報として、デバイスIDに対応したリソース種別を保持している。ここでは、デバイス−競合ルール管理部18は、例えば、「sd3893DA」というデバイスIDをシステム管理部19から取得した場合、デバイス−リソース管理部21にアクセスすることで、このデバイスがメモリデバイスであることを認識する。
次に、デバイス−競合ルール管理部18は、デバイスリソース部21から取得したリソース種別を元に、リソース必要情報部22にアクセスして、競合条件を決定するために必要な情報の種類を特定する(ステップS23)。図7は、リソース必要情報部22が保持するリソース必要情報の一例を示す図である。図7を参照して、リソース必要情報部22は、リソース必要情報として、リソース種別毎に競合条件を決定するために必要な情報の種類を保持している。ここでは、デバイス−競合ルール管理部18は、インストールされたデバイスがメモリデバイスであるので、競合条件を決定するために必要な情報の種類が、メモリサイズと、アプリケーションメモリサイズであることを特定する。
デバイス−競合ルール管理部18は、特定した情報の種類に基づいて、競合条件を決定するために必要な情報を取得する(ステップS24)。デバイス−競合ルール管理部18は、例えば、システム全体のメモリサイズをシステム管理部19にアクセスして取得し、各アプリケーションを動作させるのに必要なメモリサイズをアプリ−リソース属性管理部16にアクセスして取得する。図8は、アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図である。図8を参照して、アプリ−リソース属性管理部16は、アプリ−リソース属性情報として、各アプリケーションが必要とするリソース情報を管理している
次に、デバイス−競合ルール管理部18は、リソース共有・排他条件部23から関連するリソースの共有・排他条件を取得する(ステップS25)。図9は、リソース共有・排他条件部23が保持するリソース共有・排他条件の一例を示す図である。図9を参照して、リソース共有・排他条件部23は、リソース共有・排他条件として、リソース種別と、アプリケーションとの間の共有・排他条件を保持している。ここでは、インストールされたデバイスがメモリデバイスなので、デバイス−競合ルール管理部18は、インストールされたデバイスがアプリケーション間で共有されることを示す共有・排他条件を取得する。また、この共有・排他条件には、デバイスのメモリサイズが、動作中のアプリケーションの総メモリサイズよりも大きくなると記述されている。
次に、デバイス−競合ルール管理部18は、これまでに取得した情報(この例では、インストールされたデバイスのメモリ量、元から備えていたメモリ量、各アプリケーションが使用するメモリ量、及びメモリデバイスに関する共有・排他条件など)に基づいて、アプリケーション間の競合条件が変更されるか否かを判断する(ステップS26)。具体的には、デバイス−競合ルール管理部18は、取得した情報に基づいて、各アプリケーションが動作している状態で、どのようなアプリケーションが動作できるかの条件を決定し、決定した条件を競合情報更新部17に通知する。例えば、図8に示した4つのアプリケーションが同時に動作可能なアプリケーションである場合、全てのアプリケーションが同時に動作した場合の総メモリサイズは80MBとなり、システムが備える総メモリサイズが128MBであるなら、全てのアプリケーションが同時に動作してもメモリサイズに関しては問題がなくなる。このような場合、メモリサイズに関する新しい競合条件が作成される。
競合情報更新部17は、既存の競合条件と、新しい競合条件とを比較し、競合条件に変更があれば、アプリ競合ルールを更新する(ステップS27)。例えば、以前インストールされていたメモリカードのサイズが30MBであった場合、メールアプリとその他のアプリケーションとは、メモリサイズの制限から同時に動作することができなかった。しかし、デバイスの更新によってメモリサイズが増大すれば、このようなメモリサイズに関する競合はなくなる。したがって、競合情報更新部17は、メモリサイズ以外の条件に制限がないアプリケーションに関しては、電話アプリと同時に起動できるように、アプリ競合ルールを更新する。
また、競合解決装置1は、新しい音源ボードがインストールされた場合にも、アプリ競合ルールを更新することができる。例えば、競合解決装置1は、性能上(音再生能力)の問題によって、単一のアプリケーションが出力する音しか再生できなかったとする。このような場合、競合解決装置1は、新しい音源ボードがインストールされることで、性能上の問題がなくなり、複数の音を出力するアプリケーションを同時に動作させることができる。このように、新しい音源ボードがインストールされた場合、競合解決装置1は、アプリケーション間の競合条件が変更されるので、メモリデバイスと同様の方法を用いて、アプリ競合ルールを更新する。
また、競合解決装置1は、新しいビデオボードがインストールされた場合にも、アプリ競合ルールを更新することができる。例えば、競合解決装置1は、性能上の問題によって、単一のアプリケーションが出力する映像しか再生することができなかったとする。このような場合に、競合解決装置1は、新しいビデオボードがインストールされることで、性能上の問題がなくなり、複数の映像を出力するアプリケーションを同時に動作させることができる。このように、新しいビデオボードがインストールされた場合、アプリケーション間の競合条件が変更されるので、競合解決装置1は、メモリデバイスと同様の方法を用いて、アプリ競合ルールを更新する。
また、競合解決装置1は、新しいカメラがインストールされた場合にも、アプリ競合ルールを更新することができる。例えば、競合解決装置1は、カメラを1台しか備えていないために、単一のアプリケーションでしか映像を撮影できなかったとする。このような場合に、競合解決装置1は、新しいカメラがインストールされることで、カメラを2台備えることになり、複数の映像を撮影するアプリケーションを同時に動作させることができるようになる。このように、新しいカメラがインストールされた場合、アプリケーション間の競合条件が変更されるので、競合解決装置1は、メモリデバイスと同様の方法を用いて、アプリ競合ルールを更新する。
以上のように、本発明の第1の実施形態に係る競合解決装置1によれば、デバイスが追加、交換、あるいは削除されることによって、システムが備えるリソースが変化したときに、アプリケーション間の競合条件を規定したアプリ競合ルールを自動的に更新することができる。これによって、システムを出荷した後にデバイスがインストールされた場合でも、デバイスの性能を充分に活用しつつ、不具合なく安定したアプリケーションの動作を確保することができる。
また、システム設計者は、予め追加、交換、あるいは削除されるデバイスを予測した上で、アプリケーション間の競合条件を設計する必要がなくなる。このため、システム出荷時の負担を軽減することができる。また、想定外のデバイスを追加する必要性が生じた場合にも、システム全体を更新するのではなく、アプリ競合ルールのみを更新することで対応できる。このため、デバイス追加時の負荷も軽減することができる。
また、システムの状況に基づいて、競合条件を更新することができるため、例えば、インストールされていないデバイスに関する競合条件を保持する必要がなく、不要な競合条件を保持することによるメモリサイズの増大を防ぐことができる。また、追加、交換、あるいは削除されるデバイスの性能変化を動的に判定して最適なアプリ競合ルールに更新するので、ユーザの負荷も軽減することができる。
なお、上述した説明では、実行部11が、アプリ管理部12が保存するアプリケーションを実行すると仮定していた。しかし、実行部11は、アプリケーションそのものを実行するのではなく、単にアプリケーションから要求を受けたミドルウェアなどのソフトウェアを実行するものであってもよい。
また、上述した説明(図2)では、アプリケーションの動作を開始する場合のシーケンスのみを記述したが、競合判定部14は、アプリケーションが終了する場合にも、アプリケーション間の競合判定を行ない、動作アプリ情報管理部13を更新することも可能である。
また、上述した説明では、競合判定部14は、アプリケーション同士の関係によって競合判定を行っていた。しかし、競合判定部14は、アプリケーションをタイプ別に分けたグループ毎に競合判定を行ってもよい。あるいは、競合判定部14は、アプリケーションが使用するリソースの種類や、その他の属性によって競合判定を行ってもよい。
また、上述した説明では、競合判定部14は、アプリケーション同士が競合する場合に、アプリーションに設定された優先度に基づいて、どちらのアプリケーションの優先度が高いかを判定していた。しかし、競合判定部14は、アプリケーションが使用しているリソースの数や実行時間等の情報に基づいて優先度の判定を行っても良い。これによって、競合解決装置1は、ある少数のアプリケーションがリソースを長時間占有したり、多量のリソースを占有したりするといったことを防ぐことができる。
また、上述したアプリ競合ルール(図3参照)には、動作中のアプリケーションAと、新しく動作するアプリケーションBとの間の競合条件として、“競合する”、“競合しない”、“保留”のみを記述したが、さらにアプリケーションの優先度が付加されていてもよい。これによって、競合解決装置1は、アプリ競合ルールに基づいて、アプリケーション間の優先度を判定することができる。また、競合解決装置1は、競合するアプリケーションの優先度が同じ場合には、予め決まった動作を行なうようにしてもよい。
また、判定結果が“保留”となった場合、アプリ管理部12は、アプリケーションBの動作を中断するが、アプリケーションAが動作を終了した後に、中断されていたアプリケーションBの動作を再開してもよい。また、アプリ管理部12は、中断されていたアプリケーションが複数ある場合には、その中から優先度が最も高いアプリケーションを選択して、選択したアプリケーションの動作を再開してもよい。これによって、競合解決装置1は、ユーザにとって利便性の高い動作を実現することができる。
また、上述した説明では、デバイス−競合ルール管理部18は、デバイスリソース部21、リソース必要情報部22、リソース共有・排他条件部23、及びアプリ−リソース属性管理部16などにアクセスして、競合条件を決定するために必要な情報を取得していた。しかし、デバイス−競合ルール管理部18は、外部のサーバなどにアクセスして、競合条件を決定するために必要な情報を取得してもよい。また、このときのサーバへのアクセス手段としては、有線ケーブルによる通信やIrDAによる無線通信など、あらゆる手段を用いることができる。
また、外部のサーバから取得する競合条件を決定するために必要な情報は、暗号化されていてもよい。このような場合、デバイス−競合ルール管理部18は、暗号化された情報の復号化を試み、復号化できた場合にのみ取得した情報を信頼してデバイスのインストールと共に、競合条件の変更を行なってもよい。あるいは、復号に失敗した場合は、デバイスのインストールは行うが、競合条件の変更は行なわなくてもよい。
また、上述した説明では、新しくインストールされるデバイスの情報は、取得可能であると仮定してきたが、取得できない場合でもデフォルトの属性値を予め決めておき、その値が得られたものとして扱ってもよい。
また、競合解決装置において、アプリ管理部12、動作アプリ情報管理部13、競合判定部14、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19などの機能ブロックは、プログラムとして動作しても良い。このプログラムは、1つのCPU上で動作しても良いし、各機能ブロックの処理を分けて複数のCPU上で動作しても良い。
また、アプリ競合ルール保存部15、アプリ−リソース属性管理部16、デバイスリソース部21、リソース必要情報部22、及びリソース共有・排他条件部23などの機能ブロックは、ROMやRAMに保存されるデータであってもよい。あるいは、これらの機能ブロックは、組み込み機器のメモリに保存されるデータであってもよいし、取り外し可能な外部メモリに保存されるデータであってもよい。
また、アプリ管理部12、動作アプリ情報管理部13、競合判定部14、競合情報更新部17、デバイス−競合ルール管理部18、システム管理部19などの機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギャラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。例えば、バイオ技術の適応などが可能性としてありえる。
(第2の実施形態)
図10は、本発明の第2の実施形態に係る競合解決装置2の構成の一例を示すブロック図である。図10において、競合解決装置2は、第1の実施形態に係る競合解決装置1と比較して、さらにアプリ更新部24を備える。アプリ更新部24は、何らかの通信手段を用いて、外部からアプリケーションをダウンロードし、アプリ管理部12が保存するアプリケーションを更新する。なお、アプリ更新部24は、通信手段を用いる以外に、アプリケーションが記憶されたメモリカード等の媒体を用いて、アプリ管理部12が保存するアプリケショーンを更新してもよい。
アプリ管理部12は、更新されたアプリケーションに合わせて、競合解決装置2の各種情報を更新する。例えば、アプリ管理部12は、更新されたアプリケーションが保持する情報に基づいて、アプリ競合ルール保存部15が保存するアプリ競合ルール、及びアプリ−リソース属性管理部16が管理するアプリ−リソース属性情報を更新する。なお、アプリ管理部12は、更新されたアプリケーションに、アプリケーション間の競合条件や、使用するリソース情報が設定されている場合は、設定されている情報に基づいて、アプリ競合ルール保存部15、及びアプリ−リソース属性管理部16の情報を更新する。また、アプリ管理部12は、更新されたアプリケーションに、アプリケーション間の競合条件や、使用するリソース情報が設定されていない場合は、更新されたアプリケショーンの種類等に基づいて、アプリケーション間の競合条件や、使用するリソース情報を類推し、類推した情報に基づいて、アプリ競合ルール保存部15、及びアプリ−リソース属性管理部16の情報を更新する。
例えば、アプリ更新部24は、ユーザからの指示に従って、アプリ管理部12が保存しているブラウザアプリをバージョンアップしたとする。アプリ管理部12は、ブラウザアプリが必要とするリソースが変更されたか否かを判定する。ここでは、ブラウザアプリが必要とするメモリサイズが、25MBから35MBに増加したとする。アプリ管理部12は、ブラウザアプリが必要とするメモリサイズが25MBから35MBに増加したことを認識すると、ブラウザアプリのメモリリソースの設定値が35MBになるように、アプリ−リソース属性情報を更新する(図11参照)。
例えば、アプリ更新部24は、ユーザからの指示に従って、ラジオアプリをダウンロードし、ラジオアプリをアプリ管理部12に保存したとする。アプリ管理部12は、ラジオアプリが必要とするリソース情報を取得する。ここでは、ラジオアプリが必要とするメモリサイズが5MBで、音リソースが共用使用で、通信リソースが未使用であるものとする。アプリ管理部12は、ラジオアプリが必要とするリソース情報を取得すると、アプリ−リソース属性情報にラジオアプリのリソース情報を追加する(図12参照)。また、アプリ管理部12は、ラジオアプリと競合する可能性のあるアプリケーションを特定する。ここでは、ラジオアプリと競合するアプリケーションが、電話アプリだけであるとする。アプリ管理部12は、ラジオアプリと競合するアプリケーションが電話アプリであることを認識すると、アプリ競合ルールに、ラジオアプリに関する競合条件を設定する(図13参照)。
これによって、競合解決装置2は、アプリケーションの状態に変更があった場合も、アプリケーション間の競合を解決することができる。
本発明に係る競合解決装置は、携帯電話、PDA、及びカーナビゲーション機器などのモバイル機器や、AV機器などの組み込み機器などに利用することができる。
本発明の第1の実施形態に係る競合解決装置1の構成の一例を示すブロック図
本発明の第1の実施形態に係る競合解決装置1が実施する競合解決方法の動作の一例を示すフローチャート
アプリ競合ルール保存部15が保存するアプリ競合ルールの一例を示す図
アプリケーションの状態毎に競合条件が規定されたアプリ競合ルールの一例を示す図
本発明の第1の実施形態に係る競合解決装置1が実施するアプリ競合ルールの更新方法の一例を示すフローチャート
デバイスリソース部21に設定されているデバイス−リソース情報の一例を示す図
リソース必要情報部22が保持するリソース必要情報の一例を示す図
アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図
リソース共有・排他条件部23が保持するリソース共有・排他条件の一例を示す図
本発明の第2の実施形態に係る競合解決装置2の構成の一例を示すブロック図
アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図
アプリ−リソース属性管理部16が管理するアプリ−リソース属性情報の一例を示す図
アプリ競合ルール保存部15が保存するアプリ競合ルールの一例を示す図
符号の説明
11 実行部
12 アプリ管理部
13 動作アプリ情報管理部
14 競合判定部
15 アプリ競合ルール
16 アプリ−リソース属性管理部
17 競合情報更新部
18 デバイス−競合ルール管理部
19 システム管理部
20 デバイス部
21 デバイスリソース部
22 リソース必要情報部
23 リソース共有・排他条件部
24 アプリ更新部