(57)【要約】本発明の競合解決装置は、プログラム間の競合を解決する競合解決装置であって、複数のプログラムの第１属性の組合せに応じた競合関係を示す競合情報テーブルを記憶する競合情報記憶部１６と、プログラムの種別によって特定されるプログラムの優先度を示す競合情報を受信するデータ受信部１１と、競合情報記憶部１６に記憶されている競合情報テーブルを、データ受信部１１により受信された競合情報を用いて更新する更新部１３と、起動させるプログラムである起動対象プログラムおよび動作中のプログラムの種別の組合せに基づき、更新部１３により更新された競合情報テーブルを用いて起動対象プログラムの起動を許可するか否かを判定する判定部１５と、判定部１５の判定結果に応じ、動作中のプログラムまたは起動対象プログラムの動作を制御する動作制御部１８とを備える。【特許請求の範囲】
【請求項１】
プログラム間の競合を解決する競合解決装置であって、
複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを記憶する第１判定テーブル記憶手段と、
プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する優先度情報受信手段と、
前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記優先度情報受信手段により受信された前記優先度情報を用いて更新する更新手段と、
起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新手段により更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定手段と、
前記判定手段の判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御手段と
を備える競合解決装置。
【請求項２】
前記第１判定テーブルは、前記起動対象プログラムおよび動作中のプログラムそれぞれの第１属性の組合せに応じ前記起動対象プログラムの起動許可、起動保留、または起動不可のいずれかが選択される情報を有し、
前記判定手段は、前記起動対象プログラムの起動許可、起動保留、または起動不可のいずれかを選択することにより前記起動対象プログラムの起動を許可するか否かを判定し、
前記制御手段は、前記判定手段により起動保留が選択された場合、動作中のプログラムの動作が停止された後に、前記起動要求の対象であるプログラムを起動させるための制御を行う
請求項１記載の競合解決装置。
【請求項３】
前記制御手段は、前記判定手段により前記起動対象プログラムの起動を許可すると判定された場合、動作中のプログラムの動作を停止させるための制御を行うとともに、前記起動対象プログラムを起動させるための制御を行う
請求項１記載の競合解決装置。
【請求項４】
更に、プログラムを受信するプログラム受信手段と、
プログラム受信手段により受信されたプログラムの第１属性を示す属性情報を取得する属性情報取得手段と、
前記属性情報取得手段に取得された属性情報を記憶するための属性情報記憶手段とを備え、
前記更新手段は、更に、（１）前記属性情報取得手段により前記属性情報が取得された場合、前記属性情報を前記属性情報記憶手段に記憶させ、（２）前記プログラム受信手段によりプログラムが受信され、かつ、前記属性情報取得手段により前記属性情報が取得されなかった場合、前記属性情報として予め規定された情報を前記属性情報記憶手段に記憶させ、
前記起動対象プログラムは、前記プログラム受信手段により受信されたプログラムであり、
前記判定手段は、前記属性情報記憶手段に記憶されている、前記起動対象プログラムおよび動作中のプログラムの属性情報に基づき、前記更新手段により更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する
請求項１記載の競合解決装置。
【請求項５】
更に、プログラム受信手段により受信されたプログラムを記憶するプログラム記憶手段と、
前記プログラム記憶手段からプログラムを削除する削除手段とを備え、
前記更新手段は、更に、前記削除手段により削除されたプログラムに対応する属性情報を前記属性情報記憶手段から削除する、または、前記削除手段により削除されたプログラムに対応する属性情報に基づき前記第１判定テーブル記憶手段に記憶されている第１判定テーブルを更新する
請求項４記載の競合解決装置。
【請求項６】
更に、複数のプログラムの第２属性の組合せに応じた競合関係を示す第２判定テーブルを記憶する第２判定テーブル記憶手段を備え、
前記優先度情報は、更に、プログラムの第２属性によって特定される前記プログラムの優先度を示す情報も含み、
前記更新手段は、更に、前記第２判定テーブル記憶手段に記憶されている前記第２判定テーブルを、前記優先度情報受信手段により受信された前記優先度情報を用いて更新し、
前記判定手段は、更に、前記起動対象プログラムおよび動作中のプログラムの第２属性の組合せに基づき、前記更新手段により更新された前記第２判定テーブルを用いて前記起動対象プログラムの起動を許可するか否を判定し、前記第１判定テーブルを用いた前記起動対象プログラムの起動を許可するか否かの判定結果と、前記第２判定テーブルを用いた前記起動対象プログラムの起動を許可するか否かの判定結果とにより、前記起動対象プログラムの起動を許可するか否かを判定する
請求項１記載の競合解決装置。
【請求項７】
前記判定手段は、前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定できない場合、前記第２判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する
請求項６記載の競合解決装置。
【請求項８】
前記第１属性はプログラムの種別であり、
前記第１判定テーブルは、前記起動対象プログラムの種別と動作中のプログラムの種別との組合せに応じた前記起動対象プログラムの起動の可否を示す情報であり、
前記第２属性はプログラムが使用するリソースであり、
前記第２判定テーブルは、前記起動対象プログラムが使用するリソースと動作中のプログラムが使用するリソースとの組合せに応じた前記起動対象プログラムの起動の可否を示す情報である
請求項６記載の競合解決装置。
【請求項９】
前記第２判定テーブル記憶手段は、前記競合解決装置から取り外し可能な記憶媒体である
請求項６記載の競合解決装置。
【請求項１０】
前記第１判定テーブル記憶手段は、前記競合解決装置から取り外し可能な記憶媒体である
請求項１記載の競合解決装置。
【請求項１１】
プログラム間の競合を解決する競合解決方法であって、
複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを第１判定テーブル記憶手段に記憶させる記憶ステップと、
プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する受信ステップと、
前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記受信ステップにおいて受信された前記優先度情報を用いて更新する更新ステップと、
起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新ステップにおいて更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定ステップと、
前記判定ステップにおける判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御ステップと
を含む競合解決方法。
【請求項１２】
プログラム間の競合を解決するための競合解決プログラムであって
複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを第１判定テーブル記憶手段に記憶させる記憶ステップと、
プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する受信ステップと、
前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記受信ステップにおいて受信された前記優先度情報を用いて更新する更新ステップと、
起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新ステップにおいて更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定ステップと、
記判定ステップにおける判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、プログラム間の競合を解決する競合解決装置に関する。
【背景技術】
【０００２】  従来、携帯電話などの情報通信機器において、プログラム間の競合解決のために、特定のアプリケーションプログラムを、他のアプリケーションプログラムより優先して実行させる場合がある。例えば、ウェブブラウザによってコンテンツが表示されている最中であっても、電話の着信が発生した際には、電話の機能をユーザに提供するためのアプリケーションプログラム（以下、「電話アプリケーション」という。）により、着信画面の表示、および着信音の鳴動が行われる。【０００３】  これは携帯電話においては、電話の着信があった場合には、常に着信の処理を優先させ、通話を可能としなければならないためである。【０００４】  このように、携帯電話のようなシステムでは、製品として出荷する前に、すでにシステムに組み込まれている全てのアプリケーションプログラム間の優先度が設定され、その設定内容は携帯電話に保持される。更に、保持された優先度に従って携帯電話のシステムが動作するように予めテストされ出荷される。【０００５】  また、近年、ユーザは、例えばＪＡＶＡ（登録商標）アプリケーションプログラムを携帯電話にダウンロードし、インストールすることで、携帯電話を購入した後に、新規のアプリケーションプログラムをシステムに組み込むことができる。これにより、携帯電話の機能を拡張することが可能となっている。【０００６】  この追加されたＪＡＶＡ（登録商標）アプリケーションプログラムと、例えば電話アプリケーションのように従来から組み込まれている他のアプリケーションプログラムとが同時に動作しようとする場合においても、アプリケーションプログラム間の優先度の調停を行いつつ動作する。つまり、互いの動作等が競合しないように優先度のより高いアプリケーションプログラムが所期の動作をするように制御することで競合解決を図っている。【０００７】  ＪＡＶＡ（登録商標）アプリケーションプログラムの場合、制御されるためのソフトウェア的な構成は、組み込み済みプログラムとは異なるが、制御される基本的な仕組みは同じである。具体的には、出荷後にユーザによりインストールされたＪＡＶＡ（登録商標）アプリケーションプログラムは、自身の優先度として、予め組み込まれているＪＡＶＡ（登録商標）基盤アプリケーションプログラムに設定された一定の優先度を採用する。この優先度に基づき、出荷前に組み込み済みのアプリケーションプログラムとの間で動作の調停がなされる。これにより、携帯電話はシステムとして整合性が取れた動作をすることが可能となる。【０００８】  特定のアプリケーションを優先的に動作させる手法としては、アプリケーション間の競合条件を記述している競合制御テーブルを参照しつつ、新規要求オペレーションの実行の可否を判定するものがある（例えば、特許文献１参照）。
【特許文献１】特開平１１−３３１１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】  しかしながら、上記従来の技術では、携帯電話等のシステムにおいて新たにアプリケーションプログラムがインストールされた場合、新たなアプリケーションプログラムは、あらかじめシステムに組み込まれた既存のアプリケーションプログラムに対してある一定の優先度のみに従って動作することとなる。【００１０】  従って、既存のアプリケーションが動作中には、新たなアプリケーションプログラムがどのような特性を有するものであっても起動できない、または、必ず起動するといった事態が起こりうることとなる。また、新たなアプリケーションプログラム間でも同様である。【００１１】  例えば、携帯電話において、既存のゲームのアプリケーションプログラムが動作中である場合、新たなアプリケーションプログラムである、設定された時刻にアラームを鳴らすアプリケーションプログラムは起動または動作できず、アラームを鳴動させることはできないといった事態が考えられる。このような不適切な競合解決方法はユーザにとっては不便である。【００１２】  なお、あらかじめシステムで動作するアプリケーションプログラムについて想定可能な範囲で競合条件を登録した制御テーブルを用意し、システムとして整合性をとりつつ動作するように対応することは可能である。しかしながら、想定外の競合条件を持つアプリケーションプログラムがインストールされた場合、そのシステムは対応することができない。また、あらゆる場合に対応するために予め用意する制御テーブルにより多くの競合条件を登録しておくことも考えられるが、制御テーブルのファイルサイズが膨大なものとなり現実的ではない。【００１３】  本発明は、上記課題を考慮し、追加されたプログラムを動作させることが可能なシステムにおいて、新たに追加されたプログラムと他のプログラムとの競合を解決するための大量の情報を保持しておくことなく、それらプログラム間の適切な競合解決を図るための競合解決装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】  上記目的を達成するために、本発明の競合解決装置は、プログラム間の競合を解決する競合解決装置であって、複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを記憶する第１判定テーブル記憶手段と、プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する優先度情報受信手段と、前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記優先度情報受信手段により受信された前記優先度情報を用いて更新する更新手段と、起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新手段により更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定手段と、前記判定手段の判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御手段とを備える。【００１５】  これにより、本発明の競合解決装置は、一旦出荷された後でも競合関係を示す情報を更新することができ、その更新された情報を用いることにより、新たなプログラムについても他のプログラム間に生じる競合を適切に解決することができる。【００１６】  更に、本発明は、本発明の競合解決装置の特徴的な構成部をステップとする方法として実現したり、それらのステップを含むプログラムとして実現したり、そのプログラムが格納された、ＣＤ−ＲＯＭ等の記憶媒体として実現したり、集積回路として実現することもできる。プログラムは、通信ネットワーク等の伝送媒体を介して流通させることもできる。
【発明の効果】
【００１７】  本発明は、追加されたプログラムを動作させることが可能なシステムにおいて、新たに追加されたプログラムと他のプログラムとの競合を解決するための大量の情報を保持しておくことなく、プログラム間の適切な競合解決を図るための競合解決装置を提供することができる。【００１８】  本発明の競合解決装置によれば、例えば、一度システムとして出荷された後で、競合解決のための情報である競合条件が、出荷時に想定していないものであるプログラムがインストールされた場合においても、第１判定テーブルを更新することによって、新規プログラムについても他のプログラムとの間に生じる競合を適切に解決することができる。また、第１判定テーブルを更新することができるため、第１判定テーブルに予め大量の情報を保持させておく必要がなく、最小限の最適な状態に保つことが可能である。従って、第１判定テーブルを記憶するための記憶手段の記憶領域の削減が可能となる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の実施の形態１における競合解決装置を備えるシステム全体の構成図
【図２】図２は、種別情報記憶部に記憶されている種別情報テーブルのデータ構成の一例を示す図
【図３】図３は、競合情報記憶部に記憶されている競合情報テーブルのデータ構成の一例を示す図
【図４】図４は、実施の形態１における競合解決装置がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャート
【図５】図５は、実施の形態１における動作情報記憶部に記憶されている動作情報のデータ構成の一例を示す図
【図６】図６は、実施の形態１における競合解決装置において種別情報テーブルおよび競合情報テーブルが更新される際の処理の流れを示すフローチャート
【図７】図７は、実施の形態１におけるインストールデータのデータ構成の一例を示す図
【図８】図８は、競合情報の一例を示す図
【図９】図９は、更新後の競合情報テーブルの一例を示す図
【図１０】図１０は、競合情報の別の一例を示す図
【図１１】図１１は、更新後の競合情報テーブルの別の一例を示す図
【図１２】図１２は、本発明の実施の形態２における競合解決装置を備えるシステム全体の構成図
【図１３】図１３は、実施の形態２の競合解決装置における競合情報テーブルの一例を示す図
【図１４】図１４は、例外情報テーブルのデータ構成の一例を示す図
【図１５】図１５は、実施の形態２における競合解決装置がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャート
【図１６】図１６は、実施の形態２における動作情報記憶部に記憶されている動作情報のデータ構成の一例を示す図
【図１７】図１７は、実施の形態２におけるインストールデータのデータ構成の一例を示す図
【図１８】図１８は、例外情報の一例を示す図
【図１９】図１９は、更新後の例外情報テーブルのデータ構成の一例を示す図
【符号の説明】
【００２０】    １０、２０  競合解決装置
１１  データ受信部
１２  アプリケーション記憶部
１３  更新部
１４  種別情報記憶部
１５  判定部
１６  競合情報記憶部
１７、１９  動作情報記憶部
１８  動作制御部
２１  サーバ
２２  提供データ記憶部
２５  例外情報記憶部
３０  ネットワーク
１００  端末装置
【発明を実施するための最良の形態】
【００２１】  以下本発明の実施の形態について、図面を参照しながら説明する。【００２２】  （実施の形態１）
まず、図１〜図４を用いて、本発明の実施の形態１における競合解決装置の構成を説明する。【００２３】  図１は、本発明の実施の形態１における競合解決装置を備えるシステム全体の構成図である。【００２４】  本実施の形態は、端末装置１００と、サーバ２１とを備える。サーバ２１はネットワーク３０を介して端末装置１００と接続される。【００２５】  端末装置１００は、アプリケーションプログラムを実行可能な端末装置であり、例えば携帯電話により実現される。図１に示すように、端末装置１００は、通信部１０１と、入力部１０２と、出力部１０３と、実行部１０４と、競合解決装置１０とを備える。【００２６】  通信部１０１は、ネットワーク３０を介してサーバ２１とのデータのやり取りを行う処理部である。実行部１０４は、アプリケーションプログラムを実行する処理部である。入力部１０２は、ユーザが端末装置１００に対して指示等を入力するための入力キー等である。出力部１０３は、実行部１０４により実行されるアプリケーションプログラムの実行結果を出力する表示装置およびスピーカである。ユーザは、出力部１０３を介し画像または音声によりアプリケーションプログラムの実行結果を知覚することができる。【００２７】  競合解決装置１０は、端末装置１００において複数のアプリケーションプログラムが同時に動作しようとする場合、それら複数のアプリケーションプログラムの動作を互いに競合しないように制御する装置である。【００２８】  図１に示すように、競合解決装置１０は、データ受信部１１と、アプリケーション記憶部１２と、更新部１３と、種別情報記憶部１４と、判定部１５と、競合情報記憶部１６と、動作情報記憶部１７とを有する。【００２９】  データ受信部１１は、通信部１０１を介しサーバ２１から送信されたデータを受信する処理部である。データ受信部１１は、受信したデータに含まれるアプリケーションプログラムをアプリケーション記憶部１２に記憶させ、その他の情報を更新部１３に送信する。【００３０】  なお、データ受信部１１により、本発明の競合解決装置における、優先度情報受信手段およびプログラム受信手段のそれぞれが有する情報を受信する機能が実現される。更に、属性情報取得手段が有する、プログラムの属性情報を取得する機能が実現される。また、アプリケーション記憶部１２は、本発明の競合解決装置におけるプログラム記憶手段の一例である。【００３１】  アプリケーション記憶部１２は、アプリケーションプログラムを記憶する記憶装置である。例えば、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）またはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）等によって実現される。なお、以下に述べる各記憶部も同様にこれら記憶媒体により実現される。【００３２】  更新部１３は、本発明の競合解決装置における更新手段の一例であり、データ受信部１１から受信する情報を用い、競合情報記憶部１６または種別情報記憶部１４に記憶されている情報を更新する処理部である。【００３３】  種別情報記憶部１４は、発明の競合解決装置における属性情報記憶手段の一例であり、アプリケーションプログラムの種別を示す種別情報を記憶する記憶装置である。種別情報については図２を用いて後述する。【００３４】  競合情報記憶部１６は、複数のアプリケーションプログラム間の競合関係を示すテーブルである競合情報テーブルを記憶する記憶装置である。競合情報テーブルについては図３を用いて後述する。なお、競合情報テーブルは、本発明の競合解決装置における第１判定テーブルの一例であり、競合情報記憶部１６は、本発明の競合解決装置における第１判定テーブル記憶手段の一例である。【００３５】  動作情報記憶部１７は、動作中のアプリケーションプログラムに関する情報である動作情報を記憶する記憶装置である。動作情報については、図５を用いて後述する。なお、アプリケーションプログラムが“動作中”であるとは、そのアプリケーションプログラムの動作により実際に動画像や音が出力されている場合に限らず、ユーザ等からの入力または指示を待っていて見かけ上は動作していないような状態も含まれる。このような、“動作中”の状態は、アプリケーションプログラムが“起動中”であるとも称される。【００３６】  判定部１５は、本発明の競合解決装置における判定手段の一例であり、動作制御部１８からの依頼に対応し、動作中のアプリケーションプログラムと起動しようとするアプリケーションプログラムとがどのような動作を取るべきかを判定する処理部である。なお、この判定を「競合判定」ともいう。競合判定には、上述の種別情報と動作情報と競合情報とが用いられる。【００３７】  動作制御部１８は、発明の競合解決装置における制御手段の一例であり、判定部１５の判定結果に基づき、動作中のアプリケーションプログラム、及び起動しようとするアプリケーションプログラムの動作を制御する処理部である。【００３８】  ネットワーク３０は、例えばインターネットやイントラネットなどであり、有線回線もしくは無線回線、またはこれら両方を有するネットワーク通信網である。【００３９】  サーバ２１は、ネットワーク３０を介し端末装置１００にアプリケーションプログラムを提供するコンピュータである。【００４０】  サーバ２１は、提供データ記憶部２２を有する。提供データ記憶部２２は、端末装置１００に送信するインストールデータを記憶する記憶装置である。インストールデータとはアプリケーションプログラムおよびそのアプリケーションプログラムに関する情報を含むデータである。サーバ２１は、インストールデータを端末装置１００に送信することにより、端末装置１００にアプリケーションプログラムを提供する。【００４１】  なお、インストールデータの端末装置１００への送信は、端末装置１００からの要求、または、サーバ２１の自発的な動作により行われる。インストールデータのデータ構成等については図７を用いて後述する。【００４２】  また、端末装置１００または競合解決装置１０は、アラーム音を合成するため機構およびソフトウェア等のリソースを有しているが、本発明の説明の競合解決装置の説明の簡明化のため、それらリソースの図示および詳細な説明は省略する。【００４３】  図２は、種別情報記憶部１４に記憶されている種別情報テーブルのデータ構成の一例を示す図である。種別情報テーブルは、アプリケーション記憶部１２に記憶されている複数のアプリケーションプログラムの種別を示す���ーブルである。なお、アプリケーションプログラムの種別は、本発明の競合解決装置における第１属性の一例である。【００４４】  図２に示すように、種別情報テーブルは、データ項目としてアプリケーション名と種別とを有する。アプリケーション名は、アプリケーション記憶部１２に記憶されているアプリケーションプログラムの名前である。アプリケーション名は識別子として使用され、アプリケーション記憶部１２に記憶されている複数のアプリケーションプログラムは、アプリケーション名により一意に識別される。【００４５】  種別は、アプリケーションプログラムの動作目的、動作特性等によって区分された種類の名前であり、各アプリケーションプログラムの提供者によって決定される。例えば、インターネットを利用し情報のやり取りを行うメールクライアントのようなアプリケーションプログラムは“インターネット”という種別を有する。【００４６】  なお、種別“電話”とは、通話の音声信号の制御など、電話の機能をユーザに提供するためのアプリケーションプログラムを示す種別である。また、種別“アラーム”とは、アラームを鳴動させる処理を主な動作目的するアプリケーションプログラムを示す種別である。また、種別“デフォルト”とは、種別が決定されていないアプリケーションプログラムに付与される種別である。つまり、アプリケーションプログラムの提供者によって種別が決定されていないアプリケーションプログラムは、種別が“デフォルト”であるとして扱われる。【００４７】  種別情報テーブルは、アプリケーション記憶部１２に新たなアプリケーションプログラムが記憶される際、更新部１３によってその内容が更新される。更新に必要な種別情報はデータ受信部１１が受信するインストールデータに含まれている。なお、上述のように、種別を示す情報がインストールデータに含まれていない場合は、そのアプリケーションプログラムについては種別“デフォルト”が更新部１３によって付与される。【００４８】  図３は、競合情報記憶部１６に記憶されている競合情報テーブルのデータ構成の一例を示す図である。競合情報テーブルは、アプリケーション記憶部１２に記憶されている複数のアプリケーションプログラム間の競合関係を特定する競合情報に基づき更新されるテーブルである。競合情報は、インストールデータにアプリケーションプログラムとともに含まれてサーバ２１から送信される。なお、競合情報は、本発明の競合解決装置における優先度情報の一例である。【００４９】  図３に示すように、競合情報テーブルにおいて、横軸方向の動作中アプリケーション種別と縦軸方向の起動アプリケーション種別との交点の記号により、起動中のアプリケーションプログラムおよび起動しようとするアプリケーションプログラムの動作が特定される。【００５０】  競合情報テーブル中の“○”は、起動を要求するアプリケーションプログラムの起動は許可されることを意味する。この場合、動作中のアプリケーションプログラムの動作は、例えば停止される。【００５１】  また、“△”は、起動を要求するアプリケーションプログラムの起動は保留されることを意味する。具体的には、動作中のアプリケーションプログラムの動作が、動作制御部１８の制御によらずにユーザの指示等により停止された後に起動が許可されることを意味する。つまり、“保留”は起動許可の１形態である。また、“×”は、起動を要求するアプリケーションプログラムの起動は許可されず、動作中のアプリケーションプログラムはそのまま動作が継続されることを意味する。【００５２】  例えば、種別が“アラーム”であるアプリケーションプログラムが動作している間には、種別が“デフォルト”であるアプリケーションプログラムは起動が許可されないことを示す。【００５３】  なお、起動を要求するアプリケーションプログラムの起動が許可された場合における動作中のアプリケーションプログラムの動作は、所定のルールに従って判定部１５により決定される。例えば、動作の停止、動作の続行などである。この所定のルールは競合情報記憶部１６に記憶されている。また、この所定のルールはインストールデータに含まれていてもよく、競合解決装置１０の出荷時に設定されていてもよい。【００５４】  また、アプリケーションプログラムの動作を“停止”するとは、そのアプリケーションプログラムの動作を、他のアプリケーションプログラムの動作と競合しない状態にすることである。例えば、アラームの鳴動を終了させる、表示している画像を消す、またはアプリケーションプログラム自体を終了させるなどである。【００５５】  競合情報テーブルは、アプリケーション記憶部１２に新たなアプリケーションプログラムが記憶される際、必要に応じ、更新部によってその内容が更新される。更新に必要な競合情報はデータ受信部１１が受信するインストールデータに含まれている。【００５６】  次に、実施の形態１における競合解決装置１０が実施する競合解決の処理の流れを、図４のフローチャートを用いて説明する。【００５７】  図４は、実施の形態１における競合解決装置１０がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャートである。【００５８】  なお、この図のフローチャートを説明するにあたり、アプリケーション記憶部１２には、図２に示す３つのアプリケーションプログラムが記憶されており、すでに“○○トランプ”というアプリケーションプログラムが動作中である場合を想定する。また、競合情報記憶部１６には、図３に示す競合情報テーブルが記憶されている場合を想定する。【００５９】  この想定下において、“○○トランプ”よりも優先度が高いアプリケーションプログラムである“○○タイマー”の起動が要求され、“○○トランプ”の動作が停止されるまでの動作の流れを説明する。【００６０】  まず、ユーザの入力部１０２の操作や特定のデータを通信部１０１が受信することなどを契機として、動作制御部１８は、動作中の“○○トランプ”よりも優先度が高い“○○タイマー”を起動するための制御を実行部１０４から要求される。【００６１】  動作制御部１８は、要求を受け取り、“○○タイマー”を起動してもよいか否かの判定を判定部１５に依頼する（Ｓ１）。【００６２】  判定部１５は、動作制御部１８からの依頼内容を解析し、起動要求の対象であるアプリケーションプログラムが“○○タイマー”であることを認識する。更に、判定部１５は、種別情報記憶部１４から“○○タイマー”の種別である“アラーム”を取得する（Ｓ２）。【００６３】  判定部１５は、“○○タイマー”の種別“アラーム”を受信し判定部１５内の所定の記憶領域に保持しておく。判定部１５は、更に、現在動作中のアプリケーションプログラムの情報である動作情報を動作情報記憶部１７から読み出す（Ｓ３）。なお、動作中のアプリケーションプログラムがない場合は、動作情報記憶部１７からその旨を示す情報を読み出すことにより、または、動作情報を読み出せないことにより、動作中のアプリケーションプログラムはないと判定し、起動を要求するアプリケーションプログラムの起動を許可する旨を動作制御部１８に通知する。【００６４】  図５は、動作情報記憶部１７に記憶されている動作情報のデータ構成の一例を示す図である。【００６５】  この時点では、動作情報記憶部１７には、動作中のアプリケーションプログラム“○○トランプ”が起動された際に、そのアプリケーション名“○○トランプ”と種別“デフォルト”とが判定部１５によって書き込まれている。そのため、判定部１５は、動作中のアプリケーションプログラムのアプリケーション名“○○トランプ”と種別“デフォルト”とを動作情報記憶部１７から取得することができる（Ｓ３）。【００６６】  次に、判定部１５は、競合情報記憶部１６に記憶されている競合情報テーブルを読み出す。判定部１５は、動作中の“○○トランプ”の種別“デフォルト”と、起動の対象である“○○タイマー”の種別とに基づき、読み出した競合情報テーブルを用いて“○○タイマー”が起動可能か否かを判定する。また、それぞれのアプリケーションプログラムにどのような指示を行うのかの決定をする。更に、決定事項を含む判定結果を動作制御部１８に通知する（Ｓ４）。【００６７】  図３に示す競合情報テーブルにおいて、動作中アプリケーション種別である“○○トランプ”の種別“デフォルト”の列と、起動アプリケーション種別である“○○タイマー”の種別“アラーム”の行との交点の記号は“○”である。つまり、“起動可能”である。従って、起動対象の“○○タイマー”が動作中の“○○トランプ”より優先度が高く、“○○タイマー”を起動させることを意味する。【００６８】  そのため、判定部１５は、“○○タイマー”を起動させ、例えば“○○トランプ”を停止させることを判定結果として得る。【００６９】  また、この判定結果に伴い、動作中のアプリケーションプログラムが変更されるため、判定部１５は、動作情報記憶部１７に記憶されている動作情報を更新する。つまり、動作情報が、“○○タイマー”の情報に更新される。なお、動作中のアプリケーションプログラムがユーザの指示等により終了される場合は、実行部１０４からその情報を受け取った動作制御部１８が動作情報記憶部１７に記憶されている動作情報を削除する。または、動作中のアプリケーションプログラムがないことを示す情報に更新する。【００７０】  動作制御部１８は、判定部１５から通知された判定結果に基づき、“○○トランプ”には動作の停止を、“○○タイマー”には起動の許可を指示する（Ｓ５）。具体的には実行部１０４にこれら指示を送信し、実行部１０４はこれら指示に従い、“○○トランプ”の実行��停止し、“○○タイマー”を起動する。【００７１】  このように、競合解決装置１０は、アプリケーションプログラムの起動に対する制御を行うことができる。【００７２】  次に、競合解決装置１０においてアプリケーションプログラムがインストールされる際に行われる種別情報テーブルおよび競合情報テーブルの更新の処理の流れを、図６のフローチャートを用いて説明する。【００７３】  図６は、実施の形態１における競合解決装置において種別情報テーブルおよび競合情報テーブルが更新される際の処理の流れを示すフローチャートである。【００７４】  データ受信部１１は、ネットワーク３０を介してサーバ２１から送信されるインストールデータを受信する（Ｓ１１）。インストールデータは、ユーザの入力部１０２の操作を契機としてサーバ２１に問い合わせを行うことにより、あるいは、サーバ２１の自発的な動作により端末装置１００へ送信される。【００７５】  図７はインストールデータのデータ構成の一例を示す図である。図７に示すように、インストールデータは、アプリケーションプログラムの他にそのアプリケーションプログラムの属性情報である、アプリケーション名、種別情報、競合情報を有している。【００７６】  図７に示す例では、種別が“インターネット”、アプリケーション名が“○○ブラウザ”であるアプリケーションプログラムについてのインストールデータであることを示している。以下、データ受信部１１は図７に示すインストールデータを受信した場合を想定し、説明を行う。【００７７】  次にデータ受信部１１は、受信したインストールデータを解析し、アプリケーションプログラム“○○ブラウザ”をアプリケーション記憶部１２に記憶させ（Ｓ１２）、アプリケーション名“○○ブラウザ”、種別情報“インターネット”および競合情報を更新部１３に送信する（Ｓ１３）。【００７８】  データ受信部１１から上記情報を受信した更新部１３は、データ受信部１１から受け取ったアプリケーション名と種別情報とを用いて、種別情報記憶部１４に記憶されている種別情報テーブルの更新を行なう（Ｓ１４）。具体的には、アプリケーション名と種別情報とが対応付けられて種別情報テーブルに追加される。【００７９】  また、更新部１３は、競合情報記憶部１６に記憶されている競合情報テーブルを参照し、追加でインストールしようとしているアプリケーションプログラムの種別が新しい場合など、競合情報テーブルの更新が必要であれば、受信した情報を元に競合情報テーブルのデータの更新を行う（Ｓ１５）。その種別が競合情報テーブルにすでに存在する場合は更新は行わない。本実施の形態の場合、“○○ブラウザ”の種別“インターネット”は新しいものであり、競合情報テーブルの更新を行う。以下に競合情報テーブルの更新について説明を行う。【００８０】  図８は、競合情報の一例を示す図である。図８に示すように競合情報は、所定のマークアップ言語で記述された情報であり、開始タグ“＜Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ＞”と、終了タグ＜／Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ＞”と、それらの間の部分である本体部分とにより構成される。また、本体部分の記述内容に応じ競合情報テーブルが更新される。【００８１】  図８に示す競合情報は、本体部分に“＜ｄｅｆａｕｌｔ／＞”とのみ記述されており、この競合情報により、所定のルールであるデフォルトルールに従った競合情報テーブルの更新が行われる。【００８２】  図９は、更新後の競合情報テーブルの一例を示す図である。図９に示す競合情報テーブルは、種別“インターネット”の競合情報が、図８に示す競合情報である場合を想定し、デフォルトルールに従って更新された競合情報テーブルの一例を示している。なお、更新前の競合情報テーブルは、図３に示す競合情報テーブルであるとする。【００８３】  図９に示すように、競合情報テーブルの行および列に新たな種別“インターネット”が追加されている。デフォルトルールとは、図９に示すように、新たに追加された種別の列は全て“○”にし、新たに追加された種別の行は、その種別および“デフォルト”の列と交差する部分以外は全て“×”にするというルールである。更新部１３は、図示しない記憶領域にデフォルトルールを保持しておき、競合情報テーブルを更新する際に利用する。【００８４】  つまり、図９に示す競合情報テーブルによれば、種別が“インターネット”であるアプリケーションプログラムが動作中には、全ての種別のアプリケーションプログラムについて起動が許可されることとなる。また、種別が“インターネット”であるアプリケーションプログラムが起動を要求した際、種別が“電話”または“アラーム”であるアプリケーションプログラムが動作中である場合、その起動は許可されず、種別が“インターネット”または“デフォルト”であるアプリケーションプログラムが動作中である場合は、その起動は許可されることとなる。【００８５】  図１０は、競合情報の別の一例を示す図である。図１０に示す競合情報は、図９に示す競合情報とは異なり、本体部分に、行定義タグ“＜ｃｏｌｕｍｎ＞＜／ｃｏｌｕｍｎ＞”と列定義タグ“＜ｒｏｗ＞＜／ｒｏｗ＞”と同種起動禁止タグ“＜ｎｏ−ｐｌｕｒａｌ−ｓｔａｒｔ／＞”とが存在する。これらタグ、またはタグに挟まれた部分に記述された情報に従ってデフォルトルールが修正され、修正されたデフォルトルールに従って競合情報テーブルが更新される。【００８６】  図１０に示す例では、行定義タグ“＜ｃｏｌｕｍｎ＞”と“＜／ｃｏｌｕｍｎ＞”との間には“デフォルト：ＣＡＮＣＥＬ”と記述されている。これは、行については“デフォルト”と交差する部分は記号を“×”に修正することを示す。また、列定義タグ“＜ｒｏｗ＞”と“＜／ｒｏｗ＞”との間には“ＮＯＮＥ”と記述されている。これは、列については修正せずにデフォルトルールを採用することを示す。また、同種起動禁止タグ“＜ｎｏ−ｐｌｕｒａｌ−ｓｔａｒｔ／＞”は、動作中のアプリケーションプログラムの種別と起動を要求するアプリケーションプログラムの種別とがこの競合情報に対応する新たな種別であり一致する場合、起動を要求するアプリケーションプログラムはその起動が許可されないことを示す。【００８７】  図１１は、更新後の競合情報テーブルの別の一例を示す図である。図１１に示す競合情報テーブルは、種別“インターネット”の競合情報が、図１０に示す競合情報である場合を想定し、修正されたデフォルトルールに従って更新され��後の競合情報テーブルの一例を示している。なお、更新前の競合情報テーブルは、図３に示す競合情報テーブルであるとする。【００８８】  図１１に示すように、競合情報テーブルの行および列に新たな種別“インターネット”が追加されている。また、その追加に際し図１０に示す競合情報に従い修正されたデフォルトルールが適用されている。【００８９】  つまり、デフォルトルールがそのまま適用された図９に示す競合情報テーブルとは異なり、種別“インターネット”の行と種別“デフォルト”の列とが交差する部分の記号は“×”であり、種別“インターネット”の行と種別“インターネット”の列とが交差する部分の記号は“×”である。【００９０】  このように、競合情報は、ある種別のアプリケーションプログラムの優先度を示す情報であり、本実施の形態においては、デフォルトルールとの差分情報を有している。更新部１３はデフォルトルールとその差分情報とに基づき、競合情報記憶部１６に記憶されている競合情報テーブルを更新する。【００９１】  なお、上述のように、競合情報テーブルにすでに存在する種別についは追加は行われない。また、競合情報は、各アプリケーションプログラムの提供者によって決定される。【００９２】  上述のように、実施の形態１の競合解決装置１０は、あるアプリケーションプログラムの起動が要求される際、競合情報テーブルに基づき、その起動の可否を決定することができる。加えて、動作中のアプリケーションプラグラムの動作を決定することができる。また、この競合情報テーブルは、新たなアプリケーションプログラムがインストールされる際、そのアプリケーションプログラムの種別に固有な情報である競合情報によって更新される。【００９３】  従って、競合解決装置１０が商品として出荷される前に、インストールされるアプリケーションプログラムを予測した上で、あらかじめ多くの競合情報を記憶させておく必要がない。また、予測外のアプリケーションプログラムがインストールされた場合であっても、その属性情報であるアプリケーションプログラムの種別を利用し、適切に起動等の動作を制御することができる。更に新たなアプリケーションプログラムの種別が競合情報テーブルに存在しない場合は、競合情報テーブルの更新のみで対応することができる。【００９４】  このように、新たなアプリケーションプログラムがインストールされた場合においてもシステム全体を更新する必要はなく、競合情報テーブルの更新のみで、複数のアプリケーションプログラムが競合しないように動作を制御することができる。また、競合情報テーブルは予め多くの情報を保持しておく必要がなく、必要最小限の最適な状態に保つことが可能である。従って、競合情報テーブルの記憶に必要な記憶領域の削減が可能となる。【００９５】  なお、実施の形態１ではアプリケーション記憶部１２に保存され実行されるプログラムはアプリケーションプログラムであるとした。しかしながら、アプリケーション記憶部１２に保存され実行されるプログラムは、ユーザに直接的にサービスを提供するためのプログラムであるアプリケーションプログラムでなくてもよく、アプリケーションプログラムから要求を受けて動作するミドルウェアなどのソフトウェアプログラムであってもよい。【００９６】  また、アプリケーション記憶部１２に保存され実行されるプログラムの記述言語は限定されるものではなく、例えば、ＪＡＶＡ（登録商標）、Ｃ、Ｃ＋＋などで記述されていてもよい。また、プログラムの実行環境も、プログラムの言語等に合わせ、Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＪＶＭ）、Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＫＶＭ）、Ｂｉｎａｒｙ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ（ＢＲＥＷ）などを採用してもよい。【００９７】  つまり、競合解決装置１０は、動作制御の対象となるプログラムの言語等により、その特徴が削がれるものではなく、競合解決装置１０を利用するシステムの使用目的やユーザの要望に応じ、そのシステムで実行されるプログラムの言語や実行環境が決定されてもよい。【００９８】  また、判定部１５は、動作制御部１８から判定依頼があると、現在動作中のアプリケーションプログラムの情報である動作情報を動作情報記憶部１７から読み出すとした。しかしながら、判定部１５は、動作中のアプリケーションプログラムがあるかないかの情報を保持しておき、動作中のアプリケーションプログラムがある場合のみ動作情報を読み出してもよい。【００９９】  なお、判定部１５は、アプリケーションプログラムの種別によって競合判定を行うとした。しかし判定部１５が競合判定に使用する情報は、上記種別以外であってもよく、例えば、使用するリソースの種類など、アプリケーションプログラムの属性を示す属性情報であればよい。【０１００】  また、アプリケーションプログラムが使用しているリソースの数や実行時間、リソースの使用時間等を計測しておき、これらの情報をもとに競合判定を行ってもよい。つまり、これらの情報に基づいて複数のアプリケーションプログラムの競合をどのように解決すべきかの判定を行ってもよい。これにより、例えば、特定のアプリケーションプログラムがリソースを使用しつづけたり、多数のリソースを占有したりするといったことを防ぐことができる。【０１０１】  なお、競合判定に、競合判定の対象となるアプリケーションプログラムのリソースの種類を利用する手法については後述の実施の形態２において説明する。【０１０２】  また、判定部１５は、１つの動作中のアプリケーションプログラムを競合判定の対象としたが、動作中のアプリケーションプログラムが複数ある場合は、起動を要求するアプリケーションプログラムと、それら複数の動作中のアプリケーションプログラムとの間で競合判定を行ってもよい。競合判定の対象が複数であっても、動作情報記憶部１７は、それら複数の動作中のアプリケーションプログラムについての情報を記憶しておけばよく、判定部１５は順次競合判定を行えばよい。つまり、上述の競合解決装置１０の構成で可能である。【０１０３】  また、更新部１３がデータ受信部１１からある種別の競合情報を受信した際、その種別が競合情報テーブルにすでに存在している場合、競合情報テーブルの更新は行わないとした。しかしながら、常に更新を行ってもよい。こうした場合においても、すでに存在する情報については、同じ情報が上書きされるだけである。また、更新部１３が更新���に競合情報テーブルを調査する必要がなく、更新部１３の行うべき作業を削減することができる。【０１０４】  なお、データ受信部１１は、図１に示すように通信部１０１およびネットワーク３０を介してサーバ２１と通信を行っているが、データ受信部１１は、単にケーブルによってサーバ２１と接続されていてもよい。また、有線ではなく、Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ（ＩｒＤＡ）に規定される無線方式を利用して通信してもよい。更に、ネットワーク等の通信手段によらず、Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）等の外部媒体を利用して情報を取得してもよい。つまり、競合解決装置１０が競合判定のために必要なデータを取得できれば、データ受信部１１までの経路および手段は限定されるものではない。【０１０５】  また、種別情報記憶部１４や競合情報記憶部１６は、競合解決装置１０の内部に固定されるものでなくてもよい。例えば、競合解決装置１０から取り外し可能な外部メモリを、種別情報記憶部１４または競合情報記憶部１６として使用してもよい。こうすることで、例えば、種別情報テーブルまたは競合情報テーブルのバックアップをその外部メモリを介し、他の記憶媒体に記憶させることができる。また、複数の新たな情報が追加された状態の種別情報テーブルまたは競合情報テーブルが記憶された外部メモリを競合解決装置１０に装着することにより、その複数の新たな情報を一括して競合解決装置１０に取り込むことができる。従って、競合解決できるアプリケーションプログラムの数を短時間で増加させることが可能となる。【０１０６】  また、判定部１５は競合判定の際、必ず種別情報記憶部１４にアクセスして情報を取得するとしたがこの限りではない。例えば、まず動作情報記憶部１７にアクセスし、動作中のアプリケーションプログラムがないときは、競合判定を行わずに、起動を要求するアプリケーションプログラムの起動の許可を動作制御部１８に通知してもよい。【０１０７】  また、判定部１５は競合判定の際、動作情報記憶部１７から動作情報をすべて取得するとしたが、例えば、動作情報に含まれる動作中アプリケーション名のみを取得してもよい。この場合、種別情報記憶部１４からそのアプリケーション名に対応する種別を取得すればよい。【０１０８】  なお、インストールデータにはアプリケーションプログラムと競合情報とが含まれており、データ受信部１１は、アプリケーションプログラムと競合情報とを一緒に受信するとした。しかしながら、それらを別々に受信してもよい。あるアプリケーションプログラムを受信した場合、アプリケーションプログラムを起動する前に、競合情報テーブルにそのアプリケーションプログラムの動作を制御するための競合情報が反映されていればよい。【０１０９】  また、競合情報テーブルはアプリケーションプログラムの種別により、起動対象のアプリケーションプログラムの起動の可否を特定するとした。しかしながら、別の基準により起動の可否を判定してもよい。例えば、各アプリケーションプログラムの絶対的な優先度を示す値を競合情報記憶部１６に記憶させておき、その値の大小により、２つのアプリケーションプログラムの起動や停���等の動作の可否を判定してもよい。この場合、２つのアプリケーションプログラムがそれらの動作上の特性や機能などから、優先度が同じ場合も考えられる。その場合は、予め所定のルールを決めておき、そのルールに従えばよい。【０１１０】  また、判定部１５により動作中のアプリケーションプログラムの終了が決定された場合、その情報を所定の記憶領域に記憶しおいてもよい。これにより、例えば、判定部１５により起動を許可されたアプリケーションプログラムが終了した場合、判定部の決定により停止されたアプリケーションプログラムを再度起動させることができる。【０１１１】  また、動作中に終了されたアプリケーションプログラムが複数ある場合、判定部１５により起動を許可されたアプリケーションプログラムが終了した後に、その複数の中で最も優先度の高いアプリケーションプログラムを起動してもよい。【０１１２】  また、図４のフローチャートを用いて説明した競合解決装置１０の動作の説明において、後から優先度の高いアプリケーションプログラム“○○タイマー”が起動する例を示したが、逆の場合でもよい。つまり、優先度の低いアプリケーションプログラム“○○トランプ”が後から起動した場合であっても、競合解決装置１０は、図３に示す競合情報テーブルに従った動作を行う。具体的には、図３に示す通り、“○○トランプ”の起動は許可されない。【０１１３】  また、判定部１５の判定結果により、動作中のアプリケーションプログラムが変更になる場合、動作情報記憶部１７に記憶されている動作情報の更新は判定部１５が行うとした。しかしながら、動作制御部１８が、判定部１５から受け取った判定結果に基づき動作情報の更新を行ってもよい。【０１１４】  また、アプリケーションプログラムが終了する場合に、競合判定を行ってもよい。この場合、例えば、判定結果として「○○アプリケーション終了」という情報を動作制御部１８に送信してもよい。動作制御部１８はその情報を利用し、競合を回避するために動作に制限が課せられた状態のアプリケーションプログラムに対し、その制限を解くなどの制御を行ってもよい。【０１１５】  また、サーバ２１は、端末装置１００に送信するインストールデータを保持するために、提供データ記憶部２２を備えるとした。しかしながら、提供データ記憶部２２を備えていなくてもよく、例えば、サーバ２１と接続された外付けのハードディスクやＲＯＭなどの記憶媒体にインストールデータを保持させておいてもよい。【０１１６】  （実施の形態２）
図１２は、本発明の実施の形態２における競合解決装置を備えるシステム全体の構成図である。図１２において、図１と同じ構成要素については同じ符号を用い、説明を省略する。【０１１７】  本実施の形態において、競合解決装置２０は、図１に示す実施の形態１の競合解決装置１０が備える構成要素に加えて、例外情報記憶部２５が追加されている。また、動作情報記憶部１９は、実施の形態１の競合解決装置１０における動作情報記憶部１７が記憶する内容に加え、動作中のアプリケーションプログラムが使用するリソースを特定する情報を記憶することができる。【０１１８】  例外情報記憶部２５は、競合情報記憶部１６に記憶されている情報では競合判定処理を行えないときに使用される例外情報テーブルを記憶する記憶装置である。なお、例外情報テーブルは、本発明の競合解決装置における第２判定テーブルの一例であり、例外情報記憶部２５は、本発明の競合解決装置における第２判定テーブル記憶手段の一例である。例外情報テーブルについて図１３および図１４を用いて説明する。【０１１９】  図１３は、実施の形態２の競合解決装置２０における競合情報テーブルの一例を示す図である。図１３に示す競合情報テーブルにおいて、動作中アプリケーション種別が“デフォルト”であり、起動アプリケーション種別が“デフォルト”である部分は“例外判定”となっている。これは、各アプリケーションプログラムの種別だけでは起動対象のアプリケーションプログラムの起動の可否が判定不可能であることを示す。この場合、例外情報記憶部２５に記憶されている例外情報テーブルを用いて競合判定処理を実施する。【０１２０】  図１４は、例外情報テーブルのデータ構成の一例を示す図である。図１４に示す例外情報テーブルにより、動作中のアプリケーションプログラムおよび起動対象のアプリケーションプログラムが使用するリソースに基づいて、起動対象のアプリケーションプログラムの起動の可否を判定することができる。各アプリケーションプログラムが使用するリソースを示す情報は、本発明の競合解決装置における第２属性の一例である。【０１２１】  なお、図中の“使用中リソース”とは、動作中のアプリケーションプログラムが使用しているリソースのことであり、“要求リソース”とは、起動対象のアプリケーションプログラムが起動されることにより、その起動後に最初に使用されるリソースのことである。【０１２２】  また、図中の“通信”とは、サーバ２１等との通信を行うための通信機能を有する特定のリソースを指すリソース名であり、図中の“音”とは、音を発生する機能を有する特定のリソースを指すリソース名である。【０１２３】  また、図中の“なし”とは、競合判定の基準となるようなリソースを使用していない、または、起動後に使用しないということを意味する。【０１２４】  例外情報テーブルにより、例えば、同じリソースを同時に使用不可能である場合、既に使用中のリソースを使う新しいアプリケーションプログラムは起動が許可されない。【０１２５】  なお、例外情報テーブルは、インストールデータに含まれてアプリケーションプログラムと共に送信される例外情報により更新される。例外情報および例外情報テーブルの更新については図１７〜図１９を用いて後述する。【０１２６】  次に、実施の形態２における競合解決装置２０が実施する競合解決の処理の流れを、図１５のフローチャートを用いて説明する。【０１２７】  図１５は、実施の形態２における競合解決装置２０がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャートである。【０１２８】  図１５に示すフローチャートにおいて、動作制御部１８が判定部１５に競合判定を依頼し（Ｓ１）、判定部１５が動作中のアプリケーションプログラムの種別を取得する（Ｓ３）までは、図４のフローチャートにおける動作と同じである。【０１２９】  上記種別の取得（Ｓ３）の後、判定部１５は、動作中のアプリケーションプログラムの種別および起動対象のアプリケーションプログラムの種別を基に、競合情報記憶部１６に記憶されている競合情報テーブルを用いて競合判定を行う（Ｓ３１）。【０１３０】  図１３に示すように本実施の形態の競合情報テーブルには、実施の形態１と同じ記号が記されている部分もあるが、“デフォルト”と“デフォルト”の交わる部分では、“例外判定”と記されている。【０１３１】  本実施の形態において、判定部１５は、競合情報テーブルによって判定結果を得ることができ、各アプリケーションプログラムの動作を決定できるか否かによって例外情報記憶部２５にアクセスする必要があるかどうかが決定される（Ｓ３２）。【０１３２】  競合情報テーブルによって判定結果が得られる場合（Ｓ３２でＹｅｓ）、例外情報テーブルにアクセスする必要がなく、判定結果を動作制御部１８に通知する。動作制御部１８は判定結果に従い、アプリケーションプログラムの動作を制御するための指示を実行部１０４に送信する（Ｓ５）。【０１３３】  一方、判定結果が得られない場合（Ｓ３２でＮｏ）、判定部１５は、例外情報記憶部２５から例外情報テーブルを読み出し競合判定を行なう（Ｓ３３）。【０１３４】  この時点では、動作情報記憶部１９には、動作中のアプリケーションプログラムのプログラム名、種別、および使用中のリソースを示すリソース名が判定部１５と動作制御部１８とによって書き込まれている。【０１３５】  図１６は、実施の形態２における動作情報記憶部１９に記憶されている動作情報のデータ構成の一例を示す図である。また、図１６は、アプリケーションプログラム“○○トランプ”が動作中である場合の動作情報の例を示している。【０１３６】  図１６に示すように、動作情報記憶部１９には実施の形態１における動作情報と同じく、アプリケーション名と種別とが記憶されており、更に、使用中リソースが記憶されている。使用中リソースとは、動作中のアプリケーショングラムが現在使用しているリソースを示す名前であり、動作制御部１８が、実行部１０４から通知される情報に基づき、動作情報記憶部１９に書き込む情報である。アプリケーションプログラムが使用するリソースが変更になった場合や、動作中にリソースの使用を開始した場合、また、リソースの使用をやめた場合などに、動作制御部１８は動作情報の更新を行う。【０１３７】  図１６に示す動作情報の例は、種別が“デフォルト”であるアプリケーションプログラムは“○○トランプ”が動作中であり、“音”リソースを使用中であることを示している。【０１３８】  判定部１５は、起動対象のアプリケーションプログラムが使用するリソースの名前も取得する。具体的には、実行部１０４が動作制御部１８の要求に応じ、起動対象のアプリケーションプログラムから、起動後に最初に使用するリソースのリソース名を取得する。取得したリソース名は動作制御部１８に送られる。【０１３９】  判定部１５は、使用中のリソースのリソース名、および起動対象のアプリケーションプログラムが起動後に最初に使用するリソースのリソース名を基に、例外判定テーブルを用い、起動対象のアプリケーションプログラムが起動可であるか否かを判定する。【０１４０】  例えば、動作中のアプリケーションプログラムにより“音”リソースが使用中である場合、起動対象のアプリケーションプログラムが最初に使用するリソースが“通信”リソースであるときは例外判定テーブル上の記号は“○”であり、起動対象のアプリケーションプログラムの起動は許可される。【０１４１】  判定部１５は、判定結果を動作制御部１８に通知し、動作制御部１８は判定結果に従い、各アプリケーションプログラムの動作を制御するための指示を実行部１０４に送信する（Ｓ５）。【０１４２】  以上のように、本実施の形態によれば、判定部１５は、競合情報記憶部１６に記憶されている競合情報テーブルを用いて起動対象のアプリケーションプログラムの起動の可否を判定できない場合、例外情報記憶部２５に記憶されている例外情報テーブルを用いて競合判定を行うことができる。【０１４３】  ここで、本実施の形態における競合解決装置２０がサーバ２１から受信するインストールデータには上述のように例外情報が含まれている。【０１４４】  図１７は、実施の形態２におけるインストールデータのデータ構成の一例を示す図である。【０１４５】  図１７に示すように、実施の形態１におけるインストールデータが含む情報に加え、例外情報を含んでいる。【０１４６】  図１８は、例外情報の一例を示す図である。図１８に示すように例外情報は、競合情報（図８、図１０参照）と同様に所定のマークアップ言語で記述された情報であり、開始タグ“＜Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ  Ｅｘ＞”と、終了タグ“＜／Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ  Ｅｘ＞”と、それらの間の部分である本体部分とにより構成される。また、本体部分の記述内容に応じ例外情報テーブルが更新される。なお、競合情報と例外情報とにより、本発明の競合解決装置における優先度情報の別の一例が構成される。【０１４７】  また、競合情報テーブルの更新と同様に、例外情報テーブルの更新時におけるデフォルトルールが予め規定されており、例外情報は、そのデフォルトルールとの差分情報を有している。例外情報テーブルの更新時におけるデフォルトルールは、図１４に示す例外情報テーブルの“なし”と同じであり、追加される行、列ともに全て“○”にする、というルールである。【０１４８】  図１８に示す例外情報の本体部分に記述された各タグは、デフォルトルールに対する修正内容を示す。具体的には、行定義タグ“＜ｃｏｌｕｍｎ＞”と“＜／ｃｏｌｕｍｎ＞”との間、および列定義タグ“＜ｒｏｗ＞”と“＜／ｒｏｗ＞”との間にはともに“ＮＯＮＥ”と記述されている。従って、追加される行、列ともにデフォルトルールを採用することを示す。また、同種起動禁止タグ“＜ｎｏ−ｐｌｕｒａｌ−ｓｔａｒｔ／＞”が記述されていることから、追加されたリソース名が交差する部分は“×”に修正することを示す。【０１４９】  例えば、図１８に示す例外情報が、新たなアプリケーションプログラムとともにデータ受信部１１により受信されたと想定する。また、その新たなアプリケーションプログラムは、デジタルカメラ機能を有するリソースである“カメラ”リソースを使用するアプリケーションプログラムであるとする。なお、アプリケーションプログラムが使用するリソースを示す情報は、アプリケーションプログラム自体が有しており、その情報はデータ受信部１１により取得され、例外情報とともに更新部１３へ送られる。【０１５０】  従って、この想定下において、図１８に示す例外情報はカメラリソースについての例外情報である。更新部１３がこの例外情報を用い、図１４に示す例外情報テーブルを更新した結果が図１９に示す例外情報テーブルである。【０１５１】  図１９は、更新後の例外情報テーブルのデータ構成の一例を示す図である。【０１５２】  図１９に示すように、図１４に示す例外情報テーブルの内容に加え、“カメラ”が行および列に追加されている。また、“カメラ”の行と列とが交差する部分は例外情報に従い“×”となっている。つまり、動作中のアプリケーションプログラムがカメラリソースを使用中の場合、起動後に最初にカメラリソースを使用するアプリケーションプログラムは起動が許可されないことを示している。【０１５３】  なお、例外情報テーブルにすでに存在するリソースについは追加は行われない。また、例外情報は、各アプリケーションプログラムの提供者によって決定される。【０１５４】  このように、例外情報テーブルを用いることで、種別を判定基準とする競合情報テーブルでは判定できないアプリケーションプログラム同士であっても、別の判定基準である、それぞれのアプリケーションが使用するリソースでアプリケーションプログラムの起動の可否を判定することができる。また、アプリケーションプログラムが新たにインストールされた場合、例外情報記テーブルを更新することが可能である。従って、予め、例外情報テーブルに多くの情報を保持しておくことなく、様々なアプリケーションプログラムに対応することができる。【０１５５】  なお、本実施の形態では、判定部１５は、まず競合情報テーブルを用いて判定を行い、次に例外情報テーブルを用いて判定を行ったが、これらの順番が逆でもよい。つまり、それぞれのアプリケーションが使用するリソースで競合判定が行えない場合に、それぞれの種別で競合判定を行ってもよい。また、両方の情報をあわせて競合判定を行ってもよい。【０１５６】  また、例外情報テーブルを１つだけ用いる場合を説明したが、例外情報テーブルは２段、３段と連なっていてもよい。つまり、１つの例外情報テーブルで競合判定が行えない場合、さらに別の基準で競合判定を行ってもよい。別の基準とは、例えば、それぞれのアプリケーションプログラムが動作に必要とするメモリのサイズ等のアプリケーションプログラムの属性���報である。【０１５７】  また、判定部１５は、競合情報テーブルのみで競合判定が行える場合であっても、例外情報テーブルを利用してもよい。例えば、競合情報テーブルを用いた競合判定の結果、複数のアプリケーションプログラムが動作することとなった場合、リソースの競合が発生するか否かを例外情報テーブルを用いて判定してもよい。動作制御部１８はその判定結果を利用し、競合する関係にあるリソースの制御をおこなってもよい。【０１５８】  なお、上述の実施の形態１および２においてアプリケーションプログラムが新たにインストールされる場合の競合解決装置の動作のみ説明した。しかしながら、アプリケーションプログラムが削除される場合に更新部１３がその削除に伴う処理をおこなってもよい。【０１５９】  例えば、アプリケーションプログラムが削除されることにより不要となる情報を更新部１３が、種別情報記憶部１４、競合情報記憶部１６および例外情報記憶部２５から削除するなどの更新をおこなってもよい。この場合、アプリケーション記憶部１２にアプリケーションプログラムを記憶させる機能を有するデータ受信部１１が、アプリケーションプログラムの削除を行えばよい。また、更新部１３がデータ受信部１１を介し、アプリケーション記憶部１２から削除されるアプリケーションプログラムを検出し、不要になる情報を特定すればよい。このように、データ受信部１１により、本発明の競合解決装置における削除手段が有する、プログラムを削除する機能が実現される。【０１６０】  また、インストールデータには競合情報が含まれている場合について説明したが、競合情報が含まれていない場合には、例えば、競合情報テーブルの更新におけるデフォルトルールが採用されるとして、必要に応じ、競合情報テーブルの更新を行ってもよい。実施の形態２における例外情報も同様に、例外情報がインストールデータに含まれていない場合、例外情報テーブルの更新におけるデフォルトルールが採用されるとして、必要に応じ、例外情報テーブルの更新を行ってもよい。【０１６１】  また、インストールデータに含まれるアプリケーションプログラムや、競合情報は暗号化されていてもよい。この場合、必要に応じて復号を行い、復号できた場合にのみそれらアプリケーションプログラムや、競合情報をインストールするようにしてもよい。【０１６２】  あるいは、復号に失敗した場合は、アプリケーションプログラム等のインストールは行うが、最も優先度の低いアプリケーションプログラムとしてインストールしてもよい。例えば、このアプリケーションプログラムに関連する競合情報または例外情報を、最も低い優先度を示すものとして扱ってもよい。【０１６３】  また、インストールする競合情報が壊れている場合や信頼できない場合は、アプリケーションプログラムのインストール自体を行わないようにしてもよい。【０１６４】  このようにインストールする情報の信頼性を高めることにより、例えば、不正なアプリケーションプログラムが、優先度を自らコントロールしようと勝手に競合情報を変更するなどの不測の事態を避けることができる。【０１６５】  また、例外情報記憶部２５は、競合解決装置２０の内部に固定されるものでなくてもよい。例えば、���合解決装置２０から取り外し可能な外部メモリを、例外情報記憶部２５として使用してもよい。こうすることで、例えば例外情報テーブルのバックアップをその外部メモリを介し、他の記憶媒体に記憶させることができる。また、複数の新たな例外情報により更新された状態の例外情報テーブルが記憶された外部メモリを競合解決装置１０に装着することにより、有用な情報量が増加した例外情報テーブルを競合解決装置１０に取り込むことができる。従って、競合解決できるアプリケーションプログラムの数を短時間で増加させることが可能となる。【０１６６】  また、競合情報および例外情報は各アプリケーションプログラムの提供者によって決定されるとした。しかしながら、ユーザがこれら情報を決定してもよい。つまり、競合情報テーブルおよび例外情報テーブルをユーザが編集できるようにしてもよい。【０１６７】  この場合、例えば、種別が“電話”のアプリケーションプログラムは必ず最も優先度が高いものとして扱うなどの、競合解決装置が組み込まれたシステムの稼動に必要最低限なルールはユーザに変更できないようにしておくことで、システムの正常な動作を担保することができる。【０１６８】  また、競合情報および例外情報はそれぞれのデフォルトルールに対する差分情報であるとした。しかしながら差分情報でなくてもよく必要な全ての情報を含んでいてもよい。【０１６９】  また、実施の形態１および２について、競合解決装置１０または競合解決装置２０が端末装置１００に組み込まれている状態での動作の説明を行った。しかしながら、例えば、競合解決装置１０が、端末装置１００が備える実行部１０４等を備え、単独でサーバ２１と通信をおこなってもよい。つまり、本発明の競合解決装置は、システムの一部として機能を発揮することもでき、単独の装置として機能を発揮することもできる。
【産業上の利用可能性】
【０１７０】  本発明にかかる競合解決装置は、アプリケーションプログラム間の競合関係を示す情報である競合情報テーブルを動的に更新でき、また競合情報テーブルを最適な大きさに維持できるという特徴を有する。従って、携帯電話、デジタルＴＶ、ＰＤＡ、モバイル機器等の組み込み機器として有用である。また、コンピュータにおけるアプリケーションプログラムの競合解決などの用途にも応用できる。
【図１】
2006011343.tif 000002
【図２】
2006011343.tif 000003
【図３】
2006011343.tif 000004
【図４】
2006011343.tif 000005
【図５】
2006011343.tif 000006
【図６】
2006011343.tif 000007
【図７】
2006011343.tif 000008
【図８】
2006011343.tif 000009
【図９】
2006011343.tif 000010
【図１０】
2006011343.tif 000011
【図１１】
2006011343.tif 000012
【図１２】
2006011343.tif 000013
【図１３】
2006011343.tif 000014
【図１４】
2006011343.tif 000015
【図１５】
2006011343.tif 000016
【図１６】
2006011343.tif 000017
【図１７】
2006011343.tif 000018
【図１８】
2006011343.tif 000019
【図１９】
2006011343.tif 000020
【手続補正書】
【提出日】平成18年5月10日(2006.5.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラム間の競合を解決する競合解決装置であって、
複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを記憶する第１判定テーブル記憶手段と、
プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する優先度情報受信手段と、
前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記優先度情報受信手段により受信された前記優先度情報を用いて更新する更新手段と、
起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新手段により更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定手段と、
前記判定手段の判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御手段と
を備える競合解決装置。
【請求項２】
前記第１判定テーブルは、前記起動対象プログラムおよび動作中のプログラムそれぞれの第１属性の組合せに応じ前記起動対象プログラムの起動許可、起動保留、または起動不可のいずれかが選択される情報を有し、
前記判定手段は、前記起動対象プログラムの起動許可、起動保留、または起動不可のいずれかを選択することにより前記起動対象プログラムの起動を許可するか否かを判定し、
前記制御手段は、前記判定手段により起動保留が選択された場合、動作中のプログラムの動作が停止された後に、前記起動要求の対象であるプログラムを起動させるための制御を行う
請求項１記載の競合解決装置。
【請求項３】
前記制御手段は、前記判定手段により前記起動対象プログラムの起動を許可すると判定された場合、動作中のプログラムの動作を停止させるための制御を行うとともに、前記起動対象プログラムを起動させるための制御を行う
請求項１記載の競合解決装置。
【請求項４】
更に、プログラムを受信するプログラム受信手段と、
プログラム受信手段により受信されたプログラムの第１属性を示す属性情報を取得する属性情報取得手段と、
前記属性情報取得手段に取得された属性情報を記憶するための属性情報記憶手段とを備え、
前記更新手段は、更に、（１）前記属性情報取得手段により前記属性情報が取得された場合、前記属性情報を前記属性情報記憶手段に記憶させ、（２）前記プログラム受信手段によりプログラムが受信され、かつ、前記属性情報取得手段により前記属性情報が取得されなかった場合、前記属性情報として予め規定された情報を前記属性情報記憶手段に記憶させ、
前記起動対象プログラムは、前記プログラム受信手段により受信されたプログラムであり、
前記判定手段は、前記属性情報記憶手段に記憶されている、前記起動対象プログラムおよび動作中のプログラムの属性情報に基づき、前記更新手段により更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する
請求項１記載の競合解決装置。
【請求項５】
更に、プログラム受信手段により受信されたプログラムを記憶するプログラム記憶手段と、
前記プログラム記憶手段からプログラムを削除する削除手段とを備え、
前記更新手段は、更に、前記削除手段により削除されたプログラムに対応する属性情報を前記属性情報記憶手段から削除する、または、前記削除手段により削除されたプログラムに対応する属性情報に基づき前記第１判定テーブル記憶手段に記憶されている第１判定テーブルを更新する
請求項４記載の競合解決装置。
【請求項６】
更に、複数のプログラムの第２属性の組合せに応じた競合関係を示す第２判定テーブルを記憶する第２判定テーブル記憶手段を備え、
前記優先度情報は、更に、プログラムの第２属性によって特定される前記プログラムの優先度を示す情報も含み、
前記更新手段は、更に、前記第２判定テーブル記憶手段に記憶されている前記第２判定テーブルを、前記優先度情報受信手段により受信された前記優先度情報を用いて更新し、
前記判定手段は、更に、前記起動対象プログラムおよび動作中のプログラムの第２属性の組合せに基づき、前記更新手段により更新された前記第２判定テーブルを用いて前記起動対象プログラムの起動を許可するか否を判定し、前記第１判定テーブルを用いた前記起動対象プログラムの起動を許可するか否かの判定結果と、前記第２判定テーブルを用いた前記起動対象プログラムの起動を許可するか否かの判定結果とにより、前記起動対象プログラムの起動を許可するか否かを判定する
請求項１記載の競合解決装置。
【請求項７】
前記判定手段は、前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定できない場合、前記第２判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する
請求項６記載の競合解決装置。
【請求項８】
前記第１属性はプログラムの種別であり、
前記第１判定テーブルは、前記起動対象プログラムの種別と動作中のプログラムの種別との組合せに応じた前記起動対象プログラムの起動の可否を示す情報であり、
前記第２属性はプログラムが使用するリソースであり、
前記第２判定テーブルは、前記起動対象プログラムが使用するリソースと動作中のプログラムが使用するリソースとの組合せに応じた前記起動対象プログラムの起動の可否を示す情報である
請求項６記載の競合解決装置。
【請求項９】
前記第２判定テーブル記憶手段は、前記競合解決装置から取り外し可能な記憶媒体である
請求項６記載の競合解決装置。
【請求項１０】
前記第１判定テーブル記憶手段は、前記競合解決装置から取り外し可能な記憶媒体である
請求項１記載の競合解決装置。
【請求項１１】
プログラム間の競合を解決する競合解決方法であって、
複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを第１判定テーブル記憶手段に記憶させる記憶ステップと、
プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する受信ステップと、
前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記受信ステップにおいて受信された前記優先度情報を用いて更新する更新ステップと、
起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新ステップにおいて更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定ステップと、
前記判定ステップにおける判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御ステップと
を含む競合解決方法。
【請求項１２】
プログラム間の競合を解決するための競合解決プログラムであって
複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを第１判定テーブル記憶手段に記憶させる記憶ステップと、
プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する受信ステップと、
前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記受信ステップにおいて受信された前記優先度情報を用いて更新する更新ステップと、
起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新ステップにおいて更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定ステップと、
記判定ステップにおける判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御ステップと
をコンピュータに実行させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム間の競合を解決する競合解決装置に関する。
【背景技術】
【０００２】
従来、携帯電話などの情報通信機器において、プログラム間の競合解決のために、特定のアプリケーションプログラムを、他のアプリケーションプログラムより優先して実行させる場合がある。例えば、ウェブブラウザによってコンテンツが表示されている最中であっても、電話の着信が発生した際には、電話の機能をユーザに提供するためのアプリケーションプログラム(以下、「電話アプリケーション」という。)により、着信画面の表示、および着信音の鳴動が行われる。
【０００３】
これは携帯電話においては、電話の着信があった場合には、常に着信の処理を優先させ、通話を可能としなければならないためである。
【０００４】
このように、携帯電話のようなシステムでは、製品として出荷する前に、すでにシステムに組み込まれている全てのアプリケーションプログラム間の優先度が設定され、その設定内容は携帯電話に保持される。更に、保持された優先度に従って携帯電話のシステムが動作するように予めテストされ出荷される。
【０００５】
また、近年、ユーザは、例えばＪＡＶＡ（登録商標）アプリケーションプログラムを携帯電話にダウンロードし、インストールすることで、携帯電話を購入した後に、新規のアプリケーションプログラムをシステムに組み込むことができる。これにより、携帯電話の機能を拡張することが可能となっている。
【０００６】
この追加されたＪＡＶＡ（登録商標）アプリケーションプログラムと、例えば電話アプリケーションのように従来から組み込まれている他のアプリケーションプログラムとが同時に動作しようとする場合においても、アプリケーションプログラム間の優先度の調停を行いつつ動作する。つまり、互いの動作等が競合しないように優先度のより高いアプリケーションプログラムが所期の動作をするように制御することで競合解決を図っている。
【０００７】
ＪＡＶＡ（登録商標）アプリケーションプログラムの場合、制御されるためのソフトウェア的な構成は、組み込み済みプログラムとは異なるが、制御される基本的な仕組みは同じである。具体的には、出荷後にユーザによりインストールされたＪＡＶＡ（登録商標）アプリケーションプログラムは、自身の優先度として、予め組み込まれているＪＡＶＡ（登録商標）基盤アプリケーションプログラムに設定された一定の優先度を採用する。この優先度に基づき、出荷前に組み込み済みのアプリケーションプログラムとの間で動作の調停がなされる。これにより、携帯電話はシステムとして整合性が取れた動作をすることが可能となる。
【０００８】
特定のアプリケーションを優先的に動作させる手法としては、アプリケーション間の競合条件を記述している競合制御テーブルを参照しつつ、新規要求オペレーションの実行の可否を判定するものがある（例えば、特許文献１参照）。
【特許文献１】特開平１１−３３１１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来の技術では、携帯電話等のシステムにおいて新たにアプリケーションプログラムがインストールされた場合、新たなアプリケーションプログラムは、あらかじめシステムに組み込まれた既存のアプリケーションプログラムに対してある一定の優先度のみに従って動作することとなる。
【００１０】
従って、既存のアプリケーションが動作中には、新たなアプリケーションプログラムがどのような特性を有するものであっても起動できない、または、必ず起動するといった事態が起こりうることとなる。また、新たなアプリケーションプログラム間でも同様である。
【００１１】
例えば、携帯電話において、既存のゲームのアプリケーションプログラムが動作中である場合、新たなアプリケーションプログラムである、設定された時刻にアラームを鳴らすアプリケーションプログラムは起動または動作できず、アラームを鳴動させることはできないといった事態が考えられる。このような不適切な競合解決方法はユーザにとっては不便である。
【００１２】
なお、あらかじめシステムで動作するアプリケーションプログラムについて想定可能な範囲で競合条件を登録した制御テーブルを用意し、システムとして整合性をとりつつ動作するように対応することは可能である。しかしながら、想定外の競合条件を持つアプリケーションプログラムがインストールされた場合、そのシステムは対応することができない。また、あらゆる場合に対応するために予め用意する制御テーブルにより多くの競合条件を登録しておくことも考えられるが、制御テーブルのファイルサイズが膨大なものとなり現実的ではない。
【００１３】
本発明は、上記課題を考慮し、追加されたプログラムを動作させることが可能なシステムにおいて、新たに追加されたプログラムと他のプログラムとの競合を解決するための大量の情報を保持しておくことなく、それらプログラム間の適切な競合解決を図るための競合解決装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明の競合解決装置は、プログラム間の競合を解決する競合解決装置であって、複数のプログラムの第１属性の組合せに応じた競合関係を示す第１判定テーブルを記憶する第１判定テーブル記憶手段と、プログラムの第１属性によって特定される前記プログラムの優先度を示す優先度情報を受信する優先度情報受信手段と、前記第１判定テーブル記憶手段に記憶されている前記第１判定テーブルを、前記優先度情報受信手段により受信された前記優先度情報を用いて更新する更新手段と、起動させるプログラムである起動対象プログラムおよび動作中のプログラムの第１属性の組合せに基づき、前記更新手段により更新された前記第１判定テーブルを用いて前記起動対象プログラムの起動を許可するか否かを判定する判定手段と、前記判定手段の判定結果に応じ、動作中のプログラムまたは前記起動対象プログラムの動作を制御する制御手段とを備える。
【００１５】
これにより、本発明の競合解決装置は、一旦出荷された後でも競合関係を示す情報を更新することができ、その更新された情報を用いることにより、新たなプログラムについても他のプログラム間に生じる競合を適切に解決することができる。
【００１６】
更に、本発明は、本発明の競合解決装置の特徴的な構成部をステップとする方法として実現したり、それらのステップを含むプログラムとして実現したり、そのプログラムが格納された、ＣＤ−ＲＯＭ等の記憶媒体として実現したり、集積回路として実現することもできる。プログラムは、通信ネットワーク等の伝送媒体を介して流通させることもできる。
【発明の効果】
【００１７】
本発明は、追加されたプログラムを動作させることが可能なシステムにおいて、新たに追加されたプログラムと他のプログラムとの競合を解決するための大量の情報を保持しておくことなく、プログラム間の適切な競合解決を図るための競合解決装置を提供することができる。
【００１８】
本発明の競合解決装置によれば、例えば、一度システムとして出荷された後で、競合解決のための情報である競合条件が、出荷時に想定していないものであるプログラムがインストールされた場合においても、第１判定テーブルを更新することによって、新規プログラムについても他のプログラムとの間に生じる競合を適切に解決することができる。また、第１判定テーブルを更新することができるため、第１判定テーブルに予め大量の情報を保持させておく必要がなく、最小限の最適な状態に保つことが可能である。従って、第１判定テーブルを記憶するための記憶手段の記憶領域の削減が可能となる。
【発明を実施するための最良の形態】
【００１９】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００２０】
（実施の形態１）
まず、図１〜図４を用いて、本発明の実施の形態１における競合解決装置の構成を説明する。
【００２１】
図１は、本発明の実施の形態１における競合解決装置を備えるシステム全体の構成図である。
【００２２】
本実施の形態は、端末装置１００と、サーバ２１とを備える。サーバ２１はネットワーク３０を介して端末装置１００と接続される。
【００２３】
端末装置１００は、アプリケーションプログラムを実行可能な端末装置であり、例えば携帯電話により実現される。図１に示すように、端末装置１００は、通信部１０１と、入力部１０２と、出力部１０３と、実行部１０４と、競合解決装置１０とを備える。
【００２４】
通信部１０１は、ネットワーク３０を介してサーバ２１とのデータのやり取りを行う処理部である。実行部１０４は、アプリケーションプログラムを実行する処理部である。入力部１０２は、ユーザが端末装置１００に対して指示等を入力するための入力キー等である。出力部１０３は、実行部１０４により実行されるアプリケーションプログラムの実行結果を出力する表示装置およびスピーカである。ユーザは、出力部１０３を介し画像または音声によりアプリケーションプログラムの実行結果を知覚することができる。
【００２５】
競合解決装置１０は、端末装置１００において複数のアプリケーションプログラムが同時に動作しようとする場合、それら複数のアプリケーションプログラムの動作を互いに競合しないように制御する装置である。
【００２６】
図１に示すように、競合解決装置１０は、データ受信部１１と、アプリケーション記憶部１２と、更新部１３と、種別情報記憶部１４と、判定部１５と、競合情報記憶部１６と、動作情報記憶部１７とを有する。
【００２７】
データ受信部１１は、通信部１０１を介しサーバ２１から送信されたデータを受信する処理部である。データ受信部１１は、受信したデータに含まれるアプリケーションプログラムをアプリケーション記憶部１２に記憶させ、その他の情報を更新部１３に送信する。
【００２８】
なお、データ受信部１１により、本発明の競合解決装置における、優先度情報受信手段およびプログラム受信手段のそれぞれが有する情報を受信する機能が実現される。更に、属性情報取得手段が有する、プログラムの属性情報を取得する機能が実現される。また、アプリケーション記憶部１２は、本発明の競合解決装置におけるプログラム記憶手段の一例である。
【００２９】
アプリケーション記憶部１２は、アプリケーションプログラムを記憶する記憶装置である。例えば、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）またはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）等によって実現される。なお、以下に述べる各記憶部も同様にこれら記憶媒体により実現される。
【００３０】
更新部１３は、本発明の競合解決装置における更新手段の一例であり、データ受信部１１から受信する情報を用い、競合情報記憶部１６または種別情報記憶部１４に記憶されている情報を更新する処理部である。
【００３１】
種別情報記憶部１４は、発明の競合解決装置における属性情報記憶手段の一例であり、アプリケーションプログラムの種別を示す種別情報を記憶する記憶装置である。種別情報については図２を用いて後述する。
【００３２】
競合情報記憶部１６は、複数のアプリケーションプログラム間の競合関係を示すテーブルである競合情報テーブルを記憶する記憶装置である。競合情報テーブルについては図３を用いて後述する。なお、競合情報テーブルは、本発明の競合解決装置における第１判定テーブルの一例であり、競合情報記憶部１６は、本発明の競合解決装置における第１判定テーブル記憶手段の一例である。
【００３３】
動作情報記憶部１７は、動作中のアプリケーションプログラムに関する情報である動作情報を記憶する記憶装置である。動作情報については、図５を用いて後述する。なお、アプリケーションプログラムが"動作中"であるとは、そのアプリケーションプログラムの動作により実際に動画像や音が出力されている場合に限らず、ユーザ等からの入力または指示を待っていて見かけ上は動作していないような状態も含まれる。このような、"動作中"の状態は、アプリケーションプログラムが"起動中"であるとも称される。
【００３４】
判定部１５は、本発明の競合解決装置における判定手段の一例であり、動作制御部１８からの依頼に対応し、動作中のアプリケーションプログラムと起動しようとするアプリケーションプログラムとがどのような動作を取るべきかを判定する処理部である。なお、この判定を「競合判定」ともいう。競合判定には、上述の種別情報と動作情報と競合情報とが用いられる。
【００３５】
動作制御部１８は、発明の競合解決装置における制御手段の一例であり、判定部１５の判定結果に基づき、動作中のアプリケーションプログラム、及び起動しようとするアプリケーションプログラムの動作を制御する処理部である。
【００３６】
ネットワーク３０は、例えばインターネットやイントラネットなどであり、有線回線もしくは無線回線、またはこれら両方を有するネットワーク通信網である。
【００３７】
サーバ２１は、ネットワーク３０を介し端末装置１００にアプリケーションプログラムを提供するコンピュータである。
【００３８】
サーバ２１は、提供データ記憶部２２を有する。提供データ記憶部２２は、端末装置１００に送信するインストールデータを記憶する記憶装置である。インストールデータとはアプリケーションプログラムおよびそのアプリケーションプログラムに関する情報を含むデータである。サーバ２１は、インストールデータを端末装置１００に送信することにより、端末装置１００にアプリケーションプログラムを提供する。
【００３９】
なお、インストールデータの端末装置１００への送信は、端末装置１００からの要求、または、サーバ２１の自発的な動作により行われる。インストールデータのデータ構成等については図７を用いて後述する。
【００４０】
また、端末装置１００または競合解決装置１０は、アラーム音を合成するため機構およびソフトウェア等のリソースを有しているが、本発明の説明の競合解決装置の説明の簡明化のため、それらリソースの図示および詳細な説明は省略する。
【００４１】
図２は、種別情報記憶部１４に記憶されている種別情報テーブルのデータ構成の一例を示す図である。種別情報テーブルは、アプリケーション記憶部１２に記憶されている複数のアプリケーションプログラムの種別を示すテーブルである。なお、アプリケーションプログラムの種別は、本発明の競合解決装置における第１属性の一例である。
【００４２】
図２に示すように、種別情報テーブルは、データ項目としてアプリケーション名と種別とを有する。アプリケーション名は、アプリケーション記憶部１２に記憶されているアプリケーションプログラムの名前である。アプリケーション名は識別子として使用され、アプリケーション記憶部１２に記憶されている複数のアプリケーションプログラムは、アプリケーション名により一意に識別される。
【００４３】
種別は、アプリケーションプログラムの動作目的、動作特性等によって区分された種類の名前であり、各アプリケーションプログラムの提供者によって決定される。例えば、インターネットを利用し情報のやり取りを行うメールクライアントのようなアプリケーションプログラムは"インターネット"という種別を有する。
【００４４】
なお、種別"電話"とは、通話の音声信号の制御など、電話の機能をユーザに提供するためのアプリケーションプログラムを示す種別である。また、種別"アラーム"とは、アラームを鳴動させる処理を主な動作目的するアプリケーションプログラムを示す種別である。また、種別"デフォルト"とは、種別が決定されていないアプリケーションプログラムに付与される種別である。つまり、アプリケーションプログラムの提供者によって種別が決定されていないアプリケーションプログラムは、種別が"デフォルト"であるとして扱われる。
【００４５】
種別情報テーブルは、アプリケーション記憶部１２に新たなアプリケーションプログラムが記憶される際、更新部１３によってその内容が更新される。更新に必要な種別情報はデータ受信部１１が受信するインストールデータに含まれている。なお、上述のように、種別を示す情報がインストールデータに含まれていない場合は、そのアプリケーションプログラムについては種別"デフォルト"が更新部１３によって付与される。
【００４６】
図３は、競合情報記憶部１６に記憶されている競合情報テーブルのデータ構成の一例を示す図である。競合情報テーブルは、アプリケーション記憶部１２に記憶されている複数のアプリケーションプログラム間の競合関係を特定する競合情報に基づき更新されるテーブルである。競合情報は、インストールデータにアプリケーションプログラムとともに含まれてサーバ２１から送信される。なお、競合情報は、本発明の競合解決装置における優先度情報の一例である。
【００４７】
図３に示すように、競合情報テーブルにおいて、横軸方向の動作中アプリケーション種別と縦軸方向の起動アプリケーション種別との交点の記号により、起動中のアプリケーションプログラムおよび起動しようとするアプリケーションプログラムの動作が特定される。
【００４８】
競合情報テーブル中の"○"は、起動を要求するアプリケーションプログラムの起動は許可されることを意味する。この場合、動作中のアプリケーションプログラムの動作は、例えば停止される。
【００４９】
また、"△"は、起動を要求するアプリケーションプログラムの起動は保留されることを意味する。具体的には、動作中のアプリケーションプログラムの動作が、動作制御部１８の制御によらずにユーザの指示等により停止された後に起動が許可されることを意味する。つまり、"保留"は起動許可の１形態である。また、"×"は、起動を要求するアプリケーションプログラムの起動は許可されず、動作中のアプリケーションプログラムはそのまま動作が継続されることを意味する。
【００５０】
例えば、種別が"アラーム"であるアプリケーションプログラムが動作している間には、種別が"デフォルト"であるアプリケーションプログラムは起動が許可されないことを示す。
【００５１】
なお、起動を要求するアプリケーションプログラムの起動が許可された場合における動作中のアプリケーションプログラムの動作は、所定のルールに従って判定部１５により決定される。例えば、動作の停止、動作の続行などである。この所定のルールは競合情報記憶部１６に記憶されている。また、この所定のルールはインストールデータに含まれていてもよく、競合解決装置１０の出荷時に設定されていてもよい。
【００５２】
また、アプリケーションプログラムの動作を"停止"するとは、そのアプリケーションプログラムの動作を、他のアプリケーションプログラムの動作と競合しない状態にすることである。例えば、アラームの鳴動を終了させる、表示している画像を消す、またはアプリケーションプログラム自体を終了させるなどである。
【００５３】
競合情報テーブルは、アプリケーション記憶部１２に新たなアプリケーションプログラムが記憶される際、必要に応じ、更新部によってその内容が更新される。更新に必要な競合情報はデータ受信部１１が受信するインストールデータに含まれている。
【００５４】
次に、実施の形態１における競合解決装置１０が実施する競合解決の処理の流れを、図４のフローチャートを用いて説明する。
【００５５】
図４は、実施の形態１における競合解決装置１０がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャートである。
【００５６】
なお、この図のフローチャートを説明するにあたり、アプリケーション記憶部１２には、図２に示す３つのアプリケーションプログラムが記憶されており、すでに"○○トランプ"というアプリケーションプログラムが動作中である場合を想定する。また、競合情報記憶部１６には、図３に示す競合情報テーブルが記憶されている場合を想定する。
【００５７】
この想定下において、"○○トランプ"よりも優先度が高いアプリケーションプログラムである"○○タイマー"の起動が要求され、"○○トランプ"の動作が停止されるまでの動作の流れを説明する。
【００５８】
まず、ユーザの入力部１０２の操作や特定のデータを通信部１０１が受信することなどを契機として、動作制御部１８は、動作中の"○○トランプ"よりも優先度が高い"○○タイマー"を起動するための制御を実行部１０４から要求される。
【００５９】
動作制御部１８は、要求を受け取り、"○○タイマー"を起動してもよいか否かの判定を判定部１５に依頼する（Ｓ１）。
【００６０】
判定部１５は、動作制御部１８からの依頼内容を解析し、起動要求の対象であるアプリケーションプログラムが"○○タイマー"であることを認識する。更に、判定部１５は、種別情報記憶部１４から"○○タイマー"の種別である"アラーム"を取得する（Ｓ２）。
【００６１】
判定部１５は、"○○タイマー"の種別"アラーム"を受信し判定部１５内の所定の記憶領域に保持しておく。判定部１５は、更に、現在動作中のアプリケーションプログラムの情報である動作情報を動作情報記憶部１７から読み出す（Ｓ３）。なお、動作中のアプリケーションプログラムがない場合は、動作情報記憶部１７からその旨を示す情報を読み出すことにより、または、動作情報を読み出せないことにより、動作中のアプリケーションプログラムはないと判定し、起動を要求するアプリケーションプログラムの起動を許可する旨を動作制御部１８に通知する。
【００６２】
図５は、動作情報記憶部１７に記憶されている動作情報のデータ構成の一例を示す図である。
【００６３】
この時点では、動作情報記憶部１７には、動作中のアプリケーションプログラム"○○トランプ"が起動された際に、そのアプリケーション名"○○トランプ"と種別"デフォルト"とが判定部１５によって書き込まれている。そのため、判定部１５は、動作中のアプリケーションプログラムのアプリケーション名"○○トランプ"と種別"デフォルト"とを動作情報記憶部１７から取得することができる（Ｓ３）。
【００６４】
次に、判定部１５は、競合情報記憶部１６に記憶されている競合情報テーブルを読み出す。判定部１５は、動作中の"○○トランプ"の種別"デフォルト"と、起動の対象である"○○タイマー"の種別とに基づき、読み出した競合情報テーブルを用いて"○○タイマー"が起動可能か否かを判定する。また、それぞれのアプリケーションプログラムにどのような指示を行うのかの決定をする。更に、決定事項を含む判定結果を動作制御部１８に通知する（Ｓ４）。
【００６５】
図３に示す競合情報テーブルにおいて、動作中アプリケーション種別である"○○トランプ"の種別"デフォルト"の列と、起動アプリケーション種別である"○○タイマー"の種別"アラーム"の行との交点の記号は"○"である。つまり、"起動可能"である。従って、起動対象の"○○タイマー"が動作中の"○○トランプ"より優先度が高く、"○○タイマー"を起動させることを意味する。
【００６６】
そのため、判定部１５は、"○○タイマー"を起動させ、例えば"○○トランプ"を停止させることを判定結果として得る。
【００６７】
また、この判定結果に伴い、動作中のアプリケーションプログラムが変更されるため、判定部１５は、動作情報記憶部１７に記憶されている動作情報を更新する。つまり、動作情報が、"○○タイマー"の情報に更新される。なお、動作中のアプリケーションプログラムがユーザの指示等により終了される場合は、実行部１０４からその情報を受け取った動作制御部１８が動作情報記憶部１７に記憶されている動作情報を削除する。または、動作中のアプリケーションプログラムがないことを示す情報に更新する。
【００６８】
動作制御部１８は、判定部１５から通知された判定結果に基づき、"○○トランプ"には動作の停止を、"○○タイマー"には起動の許可を指示する（Ｓ５）。具体的には実行部１０４にこれら指示を送信し、実行部１０４はこれら指示に従い、"○○トランプ"の実行を停止し、"○○タイマー"を起動する。
【００６９】
このように、競合解決装置１０は、アプリケーションプログラムの起動に対する制御を行うことができる。
【００７０】
次に、競合解決装置１０においてアプリケーションプログラムがインストールされる際に行われる種別情報テーブルおよび競合情報テーブルの更新の処理の流れを、図６のフローチャートを用いて説明する。
【００７１】
図６は、実施の形態１における競合解決装置において種別情報テーブルおよび競合情報テーブルが更新される際の処理の流れを示すフローチャートである。
【００７２】
データ受信部１１は、ネットワーク３０を介してサーバ２１から送信されるインストールデータを受信する（Ｓ１１）。インストールデータは、ユーザの入力部１０２の操作を契機としてサーバ２１に問い合わせを行うことにより、あるいは、サーバ２１の自発的な動作により端末装置１００へ送信される。
【００７３】
図７はインストールデータのデータ構成の一例を示す図である。図７に示すように、インストールデータは、アプリケーションプログラムの他にそのアプリケーションプログラムの属性情報である、アプリケーション名、種別情報、競合情報を有している。
【００７４】
図７に示す例では、種別が"インターネット"、アプリケーション名が"○○ブラウザ"であるアプリケーションプログラムについてのインストールデータであることを示している。以下、データ受信部１１は図７に示すインストールデータを受信した場合を想定し、説明を行う。
【００７５】
次にデータ受信部１１は、受信したインストールデータを解析し、アプリケーションプログラム"○○ブラウザ"をアプリケーション記憶部１２に記憶させ（Ｓ１２）、アプリケーション名"○○ブラウザ"、種別情報"インターネット"および競合情報を更新部１３に送信する（Ｓ１３）。
【００７６】
データ受信部１１から上記情報を受信した更新部１３は、データ受信部１１から受け取ったアプリケーション名と種別情報とを用いて、種別情報記憶部１４に記憶されている種別情報テーブルの更新を行なう（Ｓ１４）。具体的には、アプリケーション名と種別情報とが対応付けられて種別情報テーブルに追加される。
【００７７】
また、更新部１３は、競合情報記憶部１６に記憶されている競合情報テーブルを参照し、追加でインストールしようとしているアプリケーションプログラムの種別が新しい場合など、競合情報テーブルの更新が必要であれば、受信した情報を元に競合情報テーブルのデータの更新を行う（Ｓ１５）。その種別が競合情報テーブルにすでに存在する場合は更新は行わない。本実施の形態の場合、"○○ブラウザ"の種別"インターネット"は新しいものであり、競合情報テーブルの更新を行う。以下に競合情報テーブルの更新について説明を行う。
【００７８】
図８は、競合情報の一例を示す図である。図８に示すように競合情報は、所定のマークアップ言語で記述された情報であり、開始タグ"＜Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ＞"と、終了タグ"＜／Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ＞"と、それらの間の部分である本体部分とにより構成される。また、本体部分の記述内容に応じ競合情報テーブルが更新される。
【００７９】
図８に示す競合情報は、本体部分に"＜ｄｅｆａｕｌｔ／＞"とのみ記述されており、この競合情報により、所定のルールであるデフォルトルールに従った競合情報テーブルの更新が行われる。
【００８０】
図９は、更新後の競合情報テーブルの一例を示す図である。図９に示す競合情報テーブルは、種別"インターネット"の競合情報が、図８に示す競合情報である場合を想定し、デフォルトルールに従って更新された競合情報テーブルの一例を示している。なお、更新前の競合情報テーブルは、図３に示す競合情報テーブルであるとする。
【００８１】
図９に示すように、競合情報テーブルの行および列に新たな種別"インターネット"が追加されている。デフォルトルールとは、図９に示すように、新たに追加された種別の列は全て"○"にし、新たに追加された種別の行は、その種別および"デフォルト"の列と交差する部分以外は全て"×"にするというルールである。更新部１３は、図示しない記憶領域にデフォルトルールを保持しておき、競合情報テーブルを更新する際に利用する。
【００８２】
つまり、図９に示す競合情報テーブルによれば、種別が"インターネット"であるアプリケーションプログラムが動作中には、全ての種別のアプリケーションプログラムについて起動が許可されることとなる。また、種別が"インターネット"であるアプリケーションプログラムが起動を要求した際、種別が"電話"または"アラーム"であるアプリケーションプログラムが動作中である場合、その起動は許可されず、種別が"インターネット"または"デフォルト"であるアプリケーションプログラムが動作中である場合は、その起動は許可されることとなる。
【００８３】
図１０は、競合情報の別の一例を示す図である。図１０に示す競合情報は、図９に示す競合情報とは異なり、本体部分に、行定義タグ"＜ｃｏｌｕｍｎ＞＜／ｃｏｌｕｍｎ＞"と列定義タグ"＜ｒｏｗ＞＜／ｒｏｗ＞"と同種起動禁止タグ"＜ｎｏ−ｐｌｕｒａｌ−ｓｔａｒｔ／＞"とが存在する。これらタグ、またはタグに挟まれた部分に記述された情報に従ってデフォルトルールが修正され、修正されたデフォルトルールに従って競合情報テーブルが更新される。
【００８４】
図１０に示す例では、行定義タグ"＜ｃｏｌｕｍｎ＞"と"＜／ｃｏｌｕｍｎ＞"との間には"デフォルト：ＣＡＮＣＥＬ"と記述されている。これは、行については"デフォルト"と交差する部分は記号を"×"に修正することを示す。また、列定義タグ"＜ｒｏｗ＞"と"＜／ｒｏｗ＞"との間には"ＮＯＮＥ"と記述されている。これは、列については修正せずにデフォルトルールを採用することを示す。また、同種起動禁止タグ"＜ｎｏ−ｐｌｕｒａｌ−ｓｔａｒｔ／＞"は、動作中のアプリケーションプログラムの種別と起動を要求するアプリケーションプログラムの種別とがこの競合情報に対応する新たな種別であり一致する場合、起動を要求するアプリケーションプログラムはその起動が許可されないことを示す。
【００８５】
図１１は、更新後の競合情報テーブルの別の一例を示す図である。図１１に示す競合情報テーブルは、種別"インターネット"の競合情報が、図１０に示す競合情報である場合を想定し、修正されたデフォルトルールに従って更新された後の競合情報テーブルの一例を示している。なお、更新前の競合情報テーブルは、図３に示す競合情報テーブルであるとする。
【００８６】
図１１に示すように、競合情報テーブルの行および列に新たな種別"インターネット"が追加されている。また、その追加に際し図１０に示す競合情報に従い修正されたデフォルトルールが適用されている。
【００８７】
つまり、デフォルトルールがそのまま適用された図９に示す競合情報テーブルとは異なり、種別 "インターネット"の行と種別 "デフォルト"の列とが交差する部分の記号は"×"であり、種別 "インターネット"の行と種別 "インターネット"の列とが交差する部分の記号は"×"である。
【００８８】
このように、競合情報は、ある種別のアプリケーションプログラムの優先度を示す情報であり、本実施の形態においては、デフォルトルールとの差分情報を有している。更新部１３はデフォルトルールとその差分情報とに基づき、競合情報記憶部１６に記憶されている競合情報テーブルを更新する。
【００８９】
なお、上述のように、競合情報テーブルにすでに存在する種別についは追加は行われない。また、競合情報は、各アプリケーションプログラムの提供者によって決定される。
【００９０】
上述のように、実施の形態１の競合解決装置１０は、あるアプリケーションプログラムの起動が要求される際、競合情報テーブルに基づき、その起動の可否を決定することができる。加えて、動作中のアプリケーションプラグラムの動作を決定することができる。また、この競合情報テーブルは、新たなアプリケーションプログラムがインストールされる際、そのアプリケーションプログラムの種別に固有な情報である競合情報によって更新される。
【００９１】
従って、競合解決装置１０が商品として出荷される前に、インストールされるアプリケーションプログラムを予測した上で、あらかじめ多くの競合情報を記憶させておく必要がない。また、予測外のアプリケーションプログラムがインストールされた場合であっても、その属性情報であるアプリケーションプログラムの種別を利用し、適切に起動等の動作を制御することができる。更に新たなアプリケーションプログラムの種別が競合情報テーブルに存在しない場合は、競合情報テーブルの更新のみで対応することができる。
【００９２】
このように、新たなアプリケーションプログラムがインストールされた場合においてもシステム全体を更新する必要はなく、競合情報テーブルの更新のみで、複数のアプリケーションプログラムが競合しないように動作を制御することができる。また、競合情報テーブルは予め多くの情報を保持しておく必要がなく、必要最小限の最適な状態に保つことが可能である。従って、競合情報テーブルの記憶に必要な記憶領域の削減が可能となる。
【００９３】
なお、実施の形態１ではアプリケーション記憶部１２に保存され実行されるプログラムはアプリケーションプログラムであるとした。しかしながら、アプリケーション記憶部１２に保存され実行されるプログラムは、ユーザに直接的にサービスを提供するためのプログラムであるアプリケーションプログラムでなくてもよく、アプリケーションプログラムから要求を受けて動作するミドルウェアなどのソフトウェアプログラムであってもよい。
【００９４】
また、アプリケーション記憶部１２に保存され実行されるプログラムの記述言語は限定されるものではなく、例えば、ＪＡＶＡ（登録商標）、Ｃ、Ｃ＋＋などで記述されていてもよい。また、プログラムの実行環境も、プログラムの言語等に合わせ、Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＪＶＭ）、Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＫＶＭ）、Ｂｉｎａｒｙ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ（ＢＲＥＷ）などを採用してもよい。
【００９５】
つまり、競合解決装置１０は、動作制御の対象となるプログラムの言語等により、その特徴が削がれるものではなく、競合解決装置１０を利用するシステムの使用目的やユーザの要望に応じ、そのシステムで実行されるプログラムの言語や実行環境が決定されてもよい。
【００９６】
また、判定部１５は、動作制御部１８から判定依頼があると、現在動作中のアプリケーションプログラムの情報である動作情報を動作情報記憶部１７から読み出すとした。しかしながら、判定部１５は、動作中のアプリケーションプログラムがあるかないかの情報を保持しておき、動作中のアプリケーションプログラムがある場合のみ動作情報を読み出してもよい。
【００９７】
なお、判定部１５は、アプリケーションプログラムの種別によって競合判定を行うとした。しかし判定部１５が競合判定に使用する情報は、上記種別以外であってもよく、例えば、使用するリソースの種類など、アプリケーションプログラムの属性を示す属性情報であればよい。
【００９８】
また、アプリケーションプログラムが使用しているリソースの数や実行時間、リソースの使用時間等を計測しておき、これらの情報をもとに競合判定を行ってもよい。つまり、これらの情報に基づいて複数のアプリケーションプログラムの競合をどのように解決すべきかの判定を行ってもよい。これにより、例えば、特定のアプリケーションプログラムがリソースを使用しつづけたり、多数のリソースを占有したりするといったことを防ぐことができる。
【００９９】
なお、競合判定に、競合判定の対象となるアプリケーションプログラムのリソースの種類を利用する手法については後述の実施の形態２において説明する。
【０１００】
また、判定部１５は、１つの動作中のアプリケーションプログラムを競合判定の対象としたが、動作中のアプリケーションプログラムが複数ある場合は、起動を要求するアプリケーションプログラムと、それら複数の動作中のアプリケーションプログラムとの間で競合判定を行ってもよい。競合判定の対象が複数であっても、動作情報記憶部１７は、それら複数の動作中のアプリケーションプログラムについての情報を記憶しておけばよく、判定部１５は順次競合判定を行えばよい。つまり、上述の競合解決装置１０の構成で可能である。
【０１０１】
また、更新部１３がデータ受信部１１からある種別の競合情報を受信した際、その種別が競合情報テーブルにすでに存在している場合、競合情報テーブルの更新は行わないとした。しかしながら、常に更新を行ってもよい。こうした場合においても、すでに存在する情報については、同じ情報が上書きされるだけである。また、更新部１３が更新前に競合情報テーブルを調査する必要がなく、更新部１３の行うべき作業を削減することができる。
【０１０２】
なお、データ受信部１１は、図１に示すように通信部１０１およびネットワーク３０を介してサーバ２１と通信を行っているが、データ受信部１１は、単にケーブルによってサーバ２１と接続されていてもよい。また、有線ではなく、Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ（ＩｒＤＡ）に規定される無線方式を利用して通信してもよい。更に、ネットワーク等の通信手段によらず、Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）等の外部媒体を利用して情報を取得してもよい。つまり、競合解決装置１０が競合判定のために必要なデータを取得できれば、データ受信部１１までの経路および手段は限定されるものではない。
【０１０３】
また、種別情報記憶部１４や競合情報記憶部１６は、競合解決装置１０の内部に固定されるものでなくてもよい。例えば、競合解決装置１０から取り外し可能な外部メモリを、種別情報記憶部１４または競合情報記憶部１６として使用してもよい。こうすることで、例えば、種別情報テーブルまたは競合情報テーブルのバックアップをその外部メモリを介し、他の記憶媒体に記憶させることができる。また、複数の新たな情報が追加された状態の種別情報テーブルまたは競合情報テーブルが記憶された外部メモリを競合解決装置１０に装着することにより、その複数の新たな情報を一括して競合解決装置１０に取り込むことができる。従って、競合解決できるアプリケーションプログラムの数を短時間で増加させることが可能となる。
【０１０４】
また、判定部１５は競合判定の際、必ず種別情報記憶部１４にアクセスして情報を取得するとしたがこの限りではない。例えば、まず動作情報記憶部１７にアクセスし、動作中のアプリケーションプログラムがないときは、競合判定を行わずに、起動を要求するアプリケーションプログラムの起動の許可を動作制御部１８に通知してもよい。
【０１０５】
また、判定部１５は競合判定の際、動作情報記憶部１７から動作情報をすべて取得するとしたが、例えば、動作情報に含まれる動作中アプリケーション名のみを取得してもよい。この場合、種別情報記憶部１４からそのアプリケーション名に対応する種別を取得すればよい。
【０１０６】
なお、インストールデータにはアプリケーションプログラムと競合情報とが含まれており、データ受信部１１は、アプリケーションプログラムと競合情報とを一緒に受信するとした。しかしながら、それらを別々に受信してもよい。あるアプリケーションプログラムを受信した場合、アプリケーションプログラムを起動する前に、競合情報テーブルにそのアプリケーションプログラムの動作を制御するための競合情報が反映されていればよい。
【０１０７】
また、競合情報テーブルはアプリケーションプログラムの種別により、起動対象のアプリケーションプログラムの起動の可否を特定するとした。しかしながら、別の基準により起動の可否を判定してもよい。例えば、各アプリケーションプログラムの絶対的な優先度を示す値を競合情報記憶部１６に記憶させておき、その値の大小により、２つのアプリケーションプログラムの起動や停止等の動作の可否を判定してもよい。この場合、２つのアプリケーションプログラムがそれらの動作上の特性や機能などから、優先度が同じ場合も考えられる。その場合は、予め所定のルールを決めておき、そのルールに従えばよい。
【０１０８】
また、判定部１５により動作中のアプリケーションプログラムの終了が決定された場合、その情報を所定の記憶領域に記憶しおいてもよい。これにより、例えば、判定部１５により起動を許可されたアプリケーションプログラムが終了した場合、判定部の決定により停止されたアプリケーションプログラムを再度起動させることができる。
【０１０９】
また、動作中に終了されたアプリケーションプログラムが複数ある場合、判定部１５により起動を許可されたアプリケーションプログラムが終了した後に、その複数の中で最も優先度の高いアプリケーションプログラムを起動してもよい。
【０１１０】
また、図４のフローチャートを用いて説明した競合解決装置１０の動作の説明において、後から優先度の高いアプリケーションプログラム"○○タイマー"が起動する例を示したが、逆の場合でもよい。つまり、優先度の低いアプリケーションプログラム"○○トランプ"が後から起動した場合であっても、競合解決装置１０は、図３に示す競合情報テーブルに従った動作を行う。具体的には、図３に示す通り、"○○トランプ"の起動は許可されない。
【０１１１】
また、判定部１５の判定結果により、動作中のアプリケーションプログラムが変更になる場合、動作情報記憶部１７に記憶されている動作情報の更新は判定部１５が行うとした。しかしながら、動作制御部１８が、判定部１５から受け取った判定結果に基づき動作情報の更新を行ってもよい。
【０１１２】
また、アプリケーションプログラムが終了する場合に、競合判定を行ってもよい。この場合、例えば、判定結果として「○○アプリケーション終了」という情報を動作制御部１８に送信してもよい。動作制御部１８はその情報を利用し、競合を回避するために動作に制限が課せられた状態のアプリケーションプログラムに対し、その制限を解くなどの制御を行ってもよい。
【０１１３】
また、サーバ２１は、端末装置１００に送信するインストールデータを保持するために、提供データ記憶部２２を備えるとした。しかしながら、提供データ記憶部２２を備えていなくてもよく、例えば、サーバ２１と接続された外付けのハードディスクやＲＯＭなどの記憶媒体にインストールデータを保持させておいてもよい。
【０１１４】
（実施の形態２）
図１２は、本発明の実施の形態２における競合解決装置を備えるシステム全体の構成図である。図１２において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【０１１５】
本実施の形態において、競合解決装置２０は、図１に示す実施の形態１の競合解決装置１０が備える構成要素に加えて、例外情報記憶部２５が追加されている。また、動作情報記憶部１９は、実施の形態１の競合解決装置１０における動作情報記憶部１７が記憶する内容に加え、動作中のアプリケーションプログラムが使用するリソースを特定する情報を記憶することができる。
【０１１６】
例外情報記憶部２５は、競合情報記憶部１６に記憶されている情報では競合判定処理を行えないときに使用される例外情報テーブルを記憶する記憶装置である。なお、例外情報テーブルは、本発明の競合解決装置における第２判定テーブルの一例であり、例外情報記憶部２５は、本発明の競合解決装置における第２判定テーブル記憶手段の一例である。例外情報テーブルについて図１３および図１４を用いて説明する。
【０１１７】
図１３は、実施の形態２の競合解決装置２０における競合情報テーブルの一例を示す図である。図１３に示す競合情報テーブルにおいて、動作中アプリケーション種別が"デフォルト"であり、起動アプリケーション種別が"デフォルト"である部分は"例外判定"となっている。これは、各アプリケーションプログラムの種別だけでは起動対象のアプリケーションプログラムの起動の可否が判定不可能であることを示す。この場合、例外情報記憶部２５に記憶されている例外情報テーブルを用いて競合判定処理を実施する。
【０１１８】
図１４は、例外情報テーブルのデータ構成の一例を示す図である。図１４に示す例外情報テーブルにより、動作中のアプリケーションプログラムおよび起動対象のアプリケーションプログラムが使用するリソースに基づいて、起動対象のアプリケーションプログラムの起動の可否を判定することができる。各アプリケーションプログラムが使用するリソースを示す情報は、本発明の競合解決装置における第２属性の一例である。
【０１１９】
なお、図中の"使用中リソース"とは、動作中のアプリケーションプログラムが使用しているリソースのことであり、"要求リソース"とは、起動対象のアプリケーションプログラムが起動されることにより、その起動後に最初に使用されるリソースのことである。
【０１２０】
また、図中の"通信"とは、サーバ２１等との通信を行うための通信機能を有する特定のリソースを指すリソース名であり、図中の"音"とは、音を発生する機能を有する特定のリソースを指すリソース名である。
【０１２１】
また、図中の"なし"とは、競合判定の基準となるようなリソースを使用していない、または、起動後に使用しないということを意味する。
【０１２２】
例外情報テーブルにより、例えば、同じリソースを同時に使用不可能である場合、既に使用中のリソースを使う新しいアプリケーションプログラムは起動が許可されない。
【０１２３】
なお、例外情報テーブルは、インストールデータに含まれてアプリケーションプログラムと共に送信される例外情報により更新される。例外情報および例外情報テーブルの更新については図１７〜図１９を用いて後述する。
【０１２４】
次に、実施の形態２における競合解決装置２０が実施する競合解決の処理の流れを、図１５のフローチャートを用いて説明する。
【０１２５】
図１５は、実施の形態２における競合解決装置２０がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャートである。
【０１２６】
図１５に示すフローチャートにおいて、動作制御部１８が判定部１５に競合判定を依頼し（Ｓ１）、判定部１５が動作中のアプリケーションプログラムの種別を取得する（Ｓ３）までは、図４のフローチャートにおける動作と同じである。
【０１２７】
上記種別の取得（Ｓ３）の後、判定部１５は、動作中のアプリケーションプログラムの種別および起動対象のアプリケーションプログラムの種別を基に、競合情報記憶部１６に記憶されている競合情報テーブルを用いて競合判定を行う（Ｓ３１）。
【０１２８】
図１３に示すように本実施の形態の競合情報テーブルには、実施の形態１と同じ記号が記されている部分もあるが、"デフォルト"と"デフォルト"の交わる部分では、"例外判定"と記されている。
【０１２９】
本実施の形態において、判定部１５は、競合情報テーブルによって判定結果を得ることができ、各アプリケーションプログラムの動作を決定できるか否かによって例外情報記憶部２５にアクセスする必要があるかどうかが決定される（Ｓ３２）。
【０１３０】
競合情報テーブルによって判定結果が得られる場合（Ｓ３２でＹｅｓ）、例外情報テーブルにアクセスする必要がなく、判定結果を動作制御部１８に通知する。動作制御部１８は判定結果に従い、アプリケーションプログラムの動作を制御するための指示を実行部１０４に送信する（Ｓ５）。
【０１３１】
一方、判定結果が得られない場合（Ｓ３２でＮｏ）、判定部１５は、例外情報記憶部２５から例外情報テーブルを読み出し競合判定を行なう（Ｓ３３）。
【０１３２】
この時点では、動作情報記憶部１９には、動作中のアプリケーションプログラムのプログラム名、種別 、および使用中のリソースを示すリソース名が判定部１５と動作制御部１８とによって書き込まれている。
【０１３３】
図１６は、実施の形態２における動作情報記憶部１９に記憶されている動作情報のデータ構成の一例を示す図である。また、図１６は、アプリケーションプログラム"○○トランプ"が動作中である場合の動作情報の例を示している。
【０１３４】
図１６に示すように、動作情報記憶部１９には実施の形態１における動作情報と同じく、アプリケーション名と種別とが記憶されており、更に、使用中リソースが記憶されている。使用中リソースとは、動作中のアプリケーショングラムが現在使用しているリソースを示す名前であり、動作制御部１８が、実行部１０４から通知される情報に基づき、動作情報記憶部１９に書き込む情報である。アプリケーションプログラムが使用するリソースが変更になった場合や、動作中にリソースの使用を開始した場合、また、リソースの使用をやめた場合などに、動作制御部１８は動作情報の更新を行う。
【０１３５】
図１６に示す動作情報の例は、種別が"デフォルト"であるアプリケーションプログラムは"○○トランプ"が動作中であり、"音"リソースを使用中であることを示している。
【０１３６】
判定部１５は、起動対象のアプリケーションプログラムが使用するリソースの名前も取得する。具体的には、実行部１０４が動作制御部１８の要求に応じ、起動対象のアプリケーションプログラムから、起動後に最初に使用するリソースのリソース名を取得する。取得したリソース名は動作制御部１８に送られる。
【０１３７】
判定部１５は、使用中のリソースのリソース名、および起動対象のアプリケーションプログラムが起動後に最初に使用するリソースのリソース名を基に、例外判定テーブルを用い、起動対象のアプリケーションプログラムが起動可であるか否かを判定する。
【０１３８】
例えば、動作中のアプリケーションプログラムにより"音"リソースが使用中である場合、起動対象のアプリケーションプログラムが最初に使用するリソースが"通信" リソースであるときは例外判定テーブル上の記号は"○"であり、起動対象のアプリケーションプログラムの起動は許可される。
【０１３９】
判定部１５は、判定結果を動作制御部１８に通知し、動作制御部１８は判定結果に従い、各アプリケーションプログラムの動作を制御するための指示を実行部１０４に送信する（Ｓ５）。
【０１４０】
以上のように、本実施の形態によれば、判定部１５は、競合情報記憶部１６に記憶されている競合情報テーブルを用いて起動対象のアプリケーションプログラムの起動の可否を判定できない場合、例外情報記憶部２５に記憶されている例外情報テーブルを用いて競合判定を行うことができる。
【０１４１】
ここで、本実施の形態における競合解決装置２０がサーバ２１から受信するインストールデータには上述のように例外情報が含まれている。
【０１４２】
図１７は、実施の形態２におけるインストールデータのデータ構成の一例を示す図である。
【０１４３】
図１７に示すように、実施の形態１におけるインストールデータが含む情報に加え、例外情報を含んでいる。
【０１４４】
図１８は、例外情報の一例を示す図である。図１８に示すように例外情報は、競合情報（図８、図１０参照）と同様に所定のマークアップ言語で記述された情報であり、開始タグ"＜Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ  Ｅｘ＞"と、終了タグ"＜／Ｃｏｎｆｌｉｃｔ  Ｉｎｆｏ  Ｅｘ＞" と、それらの間の部分である本体部分とにより構成される。また、本体部分の記述内容に応じ例外情報テーブルが更新される。なお、競合情報と例外情報とにより、本発明の競合解決装置における優先度情報の別の一例が構成される。
【０１４５】
また、競合情報テーブルの更新と同様に、例外情報テーブルの更新時におけるデフォルトルールが予め規定されており、例外情報は、そのデフォルトルールとの差分情報を有している。例外情報テーブルの更新時におけるデフォルトルールは、図１４に示す例外情報テーブルの"なし"と同じであり、追加される行、列ともに全て"○"にする、というルールである。
【０１４６】
図１８に示す例外情報の本体部分に記述された各タグは、デフォルトルールに対する修正内容を示す。具体的には、行定義タグ"＜ｃｏｌｕｍｎ＞"と"＜／ｃｏｌｕｍｎ＞"との間、および列定義タグ"＜ｒｏｗ＞"と"＜／ｒｏｗ＞"との間にはともに"ＮＯＮＥ"と記述されている。従って、追加される行、列ともにデフォルトルールを採用することを示す。また、同種起動禁止タグ"＜ｎｏ−ｐｌｕｒａｌ−ｓｔａｒｔ／＞"が記述されていることから、追加されたリソース名が交差する部分は"×"に修正することを示す。
【０１４７】
例えば、図１８に示す例外情報が、新たなアプリケーションプログラムとともにデータ受信部１１により受信されたと想定する。また、その新たなアプリケーションプログラムは、デジタルカメラ機能を有するリソースである"カメラ"リソースを使用するアプリケーションプログラムであるとする。なお、アプリケーションプログラムが使用するリソースを示す情報は、アプリケーションプログラム自体が有しており、その情報はデータ受信部１１により取得され、例外情報とともに更新部１３へ送られる。
【０１４８】
従って、この想定下において、図１８に示す例外情報はカメラリソースについての例外情報である。更新部１３がこの例外情報を用い、図１４に示す例外情報テーブルを更新した結果が図１９に示す例外情報テーブルである。
【０１４９】
図１９は、更新後の例外情報テーブルのデータ構成の一例を示す図である。
【０１５０】
図１９に示すように、図１４に示す例外情報テーブルの内容に加え、"カメラ"が行および列に追加されている。また、"カメラ"の行と列とが交差する部分は例外情報に従い "×"となっている。つまり、動作中のアプリケーションプログラムがカメラリソースを使用中の場合、起動後に最初にカメラリソースを使用するアプリケーションプログラムは起動が許可されないことを示している。
【０１５１】
なお、例外情報テーブルにすでに存在するリソースについは追加は行われない。また、例外情報は、各アプリケーションプログラムの提供者によって決定される。
【０１５２】
このように、例外情報テーブルを用いることで、種別を判定基準とする競合情報テーブルでは判定できないアプリケーションプログラム同士であっても、別の判定基準である、それぞれのアプリケーションが使用するリソースでアプリケーションプログラムの起動の可否を判定することができる。また、アプリケーションプログラムが新たにインストールされた場合、例外情報記テーブルを更新することが可能である。従って、予め、例外情報テーブルに多くの情報を保持しておくことなく、様々なアプリケーションプログラムに対応することができる。
【０１５３】
なお、本実施の形態では、判定部１５は、まず競合情報テーブルを用いて判定を行い、次に例外情報テーブルを用いて判定を行ったが、これらの順番が逆でもよい。つまり、それぞれのアプリケーションが使用するリソースで競合判定が行えない場合に、それぞれの種別で競合判定を行ってもよい。また、両方の情報をあわせて競合判定を行ってもよい。
【０１５４】
また、例外情報テーブルを１つだけ用いる場合を説明したが、例外情報テーブルは２段、３段と連なっていてもよい。つまり、１つの例外情報テーブルで競合判定が行えない場合、さらに別の基準で競合判定を行ってもよい。別の基準とは、例えば、それぞれのアプリケーションプログラムが動作に必要とするメモリのサイズ等のアプリケーションプログラムの属性情報である。
【０１５５】
また、判定部１５は、競合情報テーブルのみで競合判定が行える場合であっても、例外情報テーブルを利用してもよい。例えば、競合情報テーブルを用いた競合判定の結果、複数のアプリケーションプログラムが動作することとなった場合、リソースの競合が発生するか否かを例外情報テーブルを用いて判定してもよい。動作制御部１８はその判定結果を利用し、競合する関係にあるリソースの制御をおこなってもよい。
【０１５６】
なお、上述の実施の形態１および２においてアプリケーションプログラムが新たにインストールされる場合の競合解決装置の動作のみ説明した。しかしながら、アプリケーションプログラムが削除される場合に更新部１３がその削除に伴う処理をおこなってもよい。
【０１５７】
例えば、アプリケーションプログラムが削除されることにより不要となる情報を更新部１３が、種別情報記憶部１４、競合情報記憶部１６および例外情報記憶部２５から削除するなどの更新をおこなってもよい。この場合、アプリケーション記憶部１２にアプリケーションプログラムを記憶させる機能を有するデータ受信部１１が、アプリケーションプログラムの削除を行えばよい。また、更新部１３がデータ受信部１１を介し、アプリケーション記憶部１２から削除されるアプリケーションプログラムを検出し、不要になる情報を特定すればよい。このように、データ受信部１１により、本発明の競合解決装置における削除手段が有する、プログラムを削除する機能が実現される。
【０１５８】
また、インストールデータには競合情報が含まれている場合について説明したが、競合情報が含まれていない場合には、例えば、競合情報テーブルの更新におけるデフォルトルールが採用されるとして、必要に応じ、競合情報テーブルの更新を行ってもよい。実施の形態２における例外情報も同様に、例外情報がインストールデータに含まれていない場合、例外情報テーブルの更新におけるデフォルトルールが採用されるとして、必要に応じ、例外情報テーブルの更新を行ってもよい。
【０１５９】
また、インストールデータに含まれるアプリケーションプログラムや、競合情報は暗号化されていてもよい。この場合、必要に応じて復号を行い、復号できた場合にのみそれらアプリケーションプログラムや、競合情報をインストールするようにしてもよい。
【０１６０】
あるいは、復号に失敗した場合は、アプリケーションプログラム等のインストールは行うが、最も優先度の低いアプリケーションプログラムとしてインストールしてもよい。例えば、このアプリケーションプログラムに関連する競合情報または例外情報を、最も低い優先度を示すものとして扱ってもよい。
【０１６１】
また、インストールする競合情報が壊れている場合や信頼できない場合は、アプリケーションプログラムのインストール自体を行わないようにしてもよい。
【０１６２】
このようにインストールする情報の信頼性を高めることにより、例えば、不正なアプリケーションプログラムが、優先度を自らコントロールしようと勝手に競合情報を変更するなどの不測の事態を避けることができる。
【０１６３】
また、例外情報記憶部２５は、競合解決装置２０の内部に固定されるものでなくてもよい。例えば、競合解決装置２０から取り外し可能な外部メモリを、例外情報記憶部２５として使用してもよい。こうすることで、例えば例外情報テーブルのバックアップをその外部メモリを介し、他の記憶媒体に記憶させることができる。また、複数の新たな例外情報により更新された状態の例外情報テーブルが記憶された外部メモリを競合解決装置１０に装着することにより、有用な情報量が増加した例外情報テーブルを競合解決装置１０に取り込むことができる。従って、競合解決できるアプリケーションプログラムの数を短時間で増加させることが可能となる。
【０１６４】
また、競合情報および例外情報は各アプリケーションプログラムの提供者によって決定されるとした。しかしながら、ユーザがこれら情報を決定してもよい。つまり、競合情報テーブルおよび例外情報テーブルをユーザが編集できるようにしてもよい。
【０１６５】
この場合、例えば、種別が"電話"のアプリケーションプログラムは必ず最も優先度が高いものとして扱うなどの、競合解決装置が組み込まれたシステムの稼動に必要最低限なルールはユーザに変更できないようにしておくことで、システムの正常な動作を担保することができる。
【０１６６】
また、競合情報および例外情報はそれぞれのデフォルトルールに対する差分情報であるとした。しかしながら差分情報でなくてもよく必要な全ての情報を含んでいてもよい。
【０１６７】
また、実施の形態１および２について、競合解決装置１０または競合解決装置２０が端末装置１００に組み込まれている状態での動作の説明を行った。しかしながら、例えば、競合解決装置１０が、端末装置１００が備える実行部１０４等を備え、単独でサーバ２１と通信をおこなってもよい。つまり、本発明の競合解決装置は、システムの一部として機能を発揮することもでき、単独の装置として機能を発揮することもできる。
【産業上の利用可能性】
【０１６８】
本発明にかかる競合解決装置は、アプリケーションプログラム間の競合関係を示す情報である競合情報テーブルを動的に更新でき、また競合情報テーブルを最適な大きさに維持できるという特徴を有する。従って、携帯電話、デジタルＴＶ、ＰＤＡ、モバイル機器等の組み込み機器として有用である。また、コンピュータにおけるアプリケーションプログラムの競合解決などの用途にも応用できる。
【図面の簡単な説明】
【０１６９】
【図１】図１は、本発明の実施の形態１における競合解決装置を備えるシステム全体の構成図
【図２】図２は、種別情報記憶部に記憶されている種別情報テーブルのデータ構成の一例を示す図
【図３】図３は、競合情報記憶部に記憶されている競合情報テーブルのデータ構成の一例を示す図
【図４】図４は、実施の形態１における競合解決装置がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャート
【図５】図５は、実施の形態１における動作情報記憶部に記憶されている動作情報のデータ構成の一例を示す図
【図６】図６は、実施の形態１における競合解決装置において種別情報テーブルおよび競合情報テーブルが更新される際の処理の流れを示すフローチャート
【図７】図７は、実施の形態１におけるインストールデータのデータ構成の一例を示す図
【図８】図８は、競合情報の一例を示す図
【図９】図９は、更新後の競合情報テーブルの一例を示す図
【図１０】図１０は、競合情報の別の一例を示す図
【図１１】図１１は、更新後の競合情報テーブルの別の一例を示す図
【図１２】図１２は、本発明の実施の形態２における競合解決装置を備えるシステム全体の構成図
【図１３】図１３は、実施の形態２の競合解決装置における競合情報テーブルの一例を示す図
【図１４】図１４は、例外情報テーブルのデータ構成の一例を示す図
【図１５】図１５は、実施の形態２における競合解決装置がアプリケーションプログラムの起動の際に行う競合解決の処理の流れを示すフローチャート
【図１６】図１６は、実施の形態２における動作情報記憶部に記憶されている動作情報のデータ構成の一例を示す図
【図１７】図１７は、実施の形態２におけるインストールデータのデータ構成の一例を示す図
【図１８】図１８は、例外情報の一例を示す図
【図１９】図１９は、更新後の例外情報テーブルのデータ構成の一例を示す図
【符号の説明】
【０１７０】
１０、２０    競合解決装置
１１    データ受信部
１２    アプリケーション記憶部
１３    更新部
１４    種別情報記憶部
１５    判定部
１６    競合情報記憶部
１７、１９    動作情報記憶部
１８    動作制御部
２１    サーバ
２２    提供データ記憶部
２５    例外情報記憶部
３０    ネットワーク
１００    端末装置
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2006011343.tif 000021
【図２】
2006011343.tif 000022
【図３】
2006011343.tif 000023
【図４】
2006011343.tif 000024
【図５】
2006011343.tif 000025
【図６】
2006011343.tif 000026
【図７】
2006011343.tif 000027
【図８】
2006011343.tif 000028
【図９】
2006011343.tif 000029
【図１０】
2006011343.tif 000030
【図１１】
2006011343.tif 000031
【図１２】
2006011343.tif 000032
【図１３】
2006011343.tif 000033
【図１４】
2006011343.tif 000034
【図１５】
2006011343.tif 000035
【図１６】
2006011343.tif 000036
【図１７】
2006011343.tif 000037
【図１８】
2006011343.tif 000038
【図１９】
2006011343.tif 000039
【国際調査報告】
2006011343.tif 000040
2006011343.tif 000041
2006011343.tif 000042
2006011343.tif 000043