(57)【要約】【課題】コンピュータ内に実現される複数の機能がコンピュータのリソースを使用する際に、競合や無制限に待たされる事態を回避することができる技術を提供する【解決手段】携帯電話機１０のＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）１１０ｃは、ホストシステムを構成する通話機能が発信機能（リソース）を使用しているときに、第１ＪａｖａＡＰ（アプリケーション）による発信機能の起動の要求を示す要求データＳ２をＫＶＭ（Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）から受けると、ユーザの指示を入力し、この指示に応じて、第１ＪａｖａＡＰによる発信機能の起動要求を許可またはキャンセルする。また、ＪＡＭ１１０ｃは、第１ＪａｖａＡＰによる発信機能の起動要求をキャンセルした場合には、キャンセルした旨の通知データＳ７をＫＶＭへ渡す。【選択図】        図６
2004348439.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムを並列に実行する実行手段と、
前記実行手段により実現された第１アプリケーションにより使用が要求されているリソースが、前記実行手段により実現された第２アプリケーションにより使用されているか否かを判定する競合判定手段と、
前記競合判定手段による判定の結果が肯定的な内容の場合には指示の入力を促す画面を表示する表示手段と、
前記表示手段により表示された画面に応じて入力された指示に応じて、前記第１アプリケーションからの要求を許可／拒否する対話許否手段と、
前記対話許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知する通知手段と
を有するコンピュータ。
【請求項２】
複数のプログラムを並列に実行する実行手段と、
前記実行手段により実現された第１アプリケーションにより使用が要求されているリソースが、前記実行手段により実現された第２アプリケーションにより使用されているか否かを判定する競合判定手段と、
前記競合判定手段による判定の結果が肯定的な内容の場合に、前記第１アプリケーションに付与された優先度と前記第２アプリケーションに付与された優先度とを比較する比較手段と、
前記比較手段による比較の結果に基づいて、前記第１アプリケーションからの要求を許可／拒否する比較許否手段と、
前記比較許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知する通知手段と
を有するコンピュータ。
【請求項３】
前記実行手段により実行されるプログラムを記憶した書き換え可能な第１の不揮発性メモリと、
前記実行手段により実行されるプログラムを記憶する書き換え可能な第２の不揮発性メモリとを有し、
前記比較手段は、前記競合判定手段による判定の結果が肯定的な内容の場合に、前記第１アプリケーションを実現するためのプログラムを記憶しているメモリの種類に応じた優先度と、前記第２アプリケーションを実現するためのプログラムを記憶しているメモリの種類に応じた優先度とを比較する
ことを特徴とする請求項２に記載のコンピュータ。
【請求項４】
複数のプログラムを並列に実行する実行手段と、
前記実行手段により実現された第１アプリケーションにより使用が要求されているリソースが、前記実行手段により実現された第２アプリケーションにより使用されているか否かを判定する競合判定手段と、
前記競合判定手段による判定の結果が肯定的な内容の場合に、前記第１アプリケーションおよび前記第２アプリケーションの両方に優先度が付与されているか否かを判定する優先度判定手段と、
前記優先度判定手段による判定結果が肯定的な場合に、前記第１アプリケーションに付与された優先度と前記第２アプリケーションに付与された優先度とを比較する比較手段と、
前記優先度判定手段による判定結果が否定的な場合に、指示の入力を促す画面を表示する表示手段と、
前記比較手段による比較の結果、または前記表示手段により表示された画面に応じて入力された指示に応じて、前記第１アプリケーションからの要求を許可／拒否する許否手段と、
前記許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知する通知手段と
を有するコンピュータ。
【請求項５】
コンピュータを、
前記コンピュータに実現された第１アプリケーションにより使用が要求されているリソースが、前記コンピュータに実現された第２アプリケーションにより使用されているか否かを判定する競合判定手段と、
前記競合判定手段による判定の結果が肯定的な内容の場合には指示の入力を促す画面を表示させる表示制御手段と、
前記画面に応じて入力された指示に応じて、前記第１アプリケーションからの要求を許可／拒否する対話許否手段と、
前記対話許否手段により要求が拒否された場合に、その旨を示すデータを前記第１アプリケーションへ通知させる通知制御手段
として機能させるためのプログラム。
【請求項６】
コンピュータを、
前記コンピュータに実現された第１アプリケーションにより使用が要求されているリソースが、前記コンピュータに実現された第２アプリケーションにより使用されているか否かを判定する競合判定手段と、
前記競合判定手段による判定の結果が肯定的な内容の場合に、前記第１アプリケーションに付与された優先度と前記第２アプリケーションに付与された優先度とを比較する比較手段と、
前記比較手段による比較の結果に基づいて、前記第１アプリケーションからの要求を許可／拒否する比較許否手段と、
前記比較許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知させる通知制御手段
として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータにおいて、複数の機能がリソースを使用する際に生じる競合を解決する競合解決技術に関する。
【０００２】
【従来の技術】
従来の競合解決技術では、入出力装置（リソース）に対する入出力要求が発生した場合に、当該入出力要求を表すデータに優先順位を付けてメモリに登録し、当該優先順位に従って入出力要求による入出力処理を実行している（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平１０−１０５２９７号公報
【０００４】
【発明が解決しようとする課題】
上記の技術では、競合が発生した場合、低い優先順位を付けられた入出力要求による入出力処理は高い優先順位を付けられた入出力要求による入出力処理の実行後に実行される。したがって、低い優先順位を付けられた入出力要求による出力処理は当該入出力要求の発生から無制限に遅延し、処理の要求元が無制限に待たされる可能性がある。
【０００５】
本発明は、上述した事情に鑑みてなされたものであり、コンピュータに実現される複数の機能が当該コンピュータのリソースを使用する際に、競合や無制限に待たされる事態を回避することができる技術を提供することを目的としている。
【０００６】
【課題を解決するための手段】
上述した課題を解決するために、本発明に係るコンピュータ、または本発明に係るプログラムを実行したコンピュータは、第１アプリケーションにより使用が要求されているリソースが、第２アプリケーションにより使用されているか否かを判定する競合判定手段と、前記競合判定手段による判定の結果が肯定的な内容の場合には指示の入力を促す画面を表示するための手段と、前記画面に応じて入力された指示に応じて、前記第１アプリケーションからの要求を許可／拒否する対話許否手段と、前記対話許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知するための手段とを有する。
【０００７】
当該コンピュータでは、第１アプリケーションにより使用が要求されているリソースが第２アプリケーションにより使用されている場合には、指示の入力を促す画面が表示され、この画面に応じて入力された指示に応じて、第１アプリケーションからの要求が許可／拒否され、拒否された場合にはその旨が第１アプリケーションへ通知される（処理１）。
【０００８】
また、上述した課題を解決するために、本発明に係る別のコンピュータ、または本発明に係る別のプログラムを実行したコンピュータは、第１アプリケーションにより使用が要求されているリソースが、第２アプリケーションにより使用されているか否かを判定する競合判定手段と、前記競合判定手段による判定の結果が肯定的な内容の場合に、前記第１アプリケーションに付与された優先度と前記第２アプリケーションに付与された優先度とを比較する比較手段と、前記比較手段による比較の結果に基づいて、前記第１アプリケーションからの要求を許可／拒否する比較許否手段と、前記比較許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知するための手段とを有する。
【０００９】
当該コンピュータでは、第１アプリケーションにより使用が要求されているリソースが第２アプリケーションにより使用されている場合には、前記第１アプリケーションに付与された優先度と前記第２アプリケーションに付与された優先度とが比較され、この比較の結果に基づいて、前記第１アプリケーションからの要求が許可／拒否され、拒否された場合にはその旨が第１アプリケーションへ通知される（処理２）。
【００１０】
また、上述した課題を解決するために、本発明に係る更に別のコンピュータは、第１アプリケーションにより使用が要求されているリソースが、第２アプリケーションにより使用されているか否かを判定する競合判定手段と、前記競合判定手段による判定の結果が肯定的な内容の場合に、前記第１アプリケーションおよび前記第２アプリケーションの両方に優先度が付与されているか否かを判定する優先度判定手段と、前記優先度判定手段による判定結果が肯定的な場合に、前記第１アプリケーションに付与された優先度と前記第２アプリケーションに付与された優先度とを比較する比較手段と、前記優先度判定手段による判定結果が否定的な場合に、指示の入力を促す画面を表示する表示手段と、前記比較手段による比較の結果、または前記表示手段により表示された画面に応じて入力された指示に応じて、前記第１アプリケーションからの要求を許可／拒否する許否手段と、前記許否手段により要求が拒否された場合に、その旨を前記第１アプリケーションへ通知する通知手段とを有する。
【００１１】
当該コンピュータでは、第１アプリケーションにより使用が要求されているリソースが第２アプリケーションにより使用されている場合には、上述の処理１または処理２が行われる。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。なお、各図において共通する部分には、同一の符号が付されている。また、以降の説明においては、オペレーティングシステムを「ＯＳ」、システムソフトウェアを「ＳＳ」、アプリケーションを「ＡＰ」、アプリケーションプログラムを「ＡＰＰ」、Ｊａｖａ仕様に準拠したバイトコードで構成されるＡＰＰを「ＪａｖａＡＰＰ」、ＪａｖａＡＰＰでないＡＰＰを「非ＪａｖａＡＰＰ」と略記する。
【００１３】
［１．第１実施形態］
［１−１．構成］
図１は、本発明の第１実施形態に係る携帯電話機１０のハードウェア構成を示すブロック図である。この図に示すように、携帯電話機１０は通常のコンピュータと同様のハードウェア構成を備え、加えて、図示しない移動通信網の基地局との間で無線通信する無線通信部１０１と、ユーザに操作される複数のキーを有しキーの操作に応じた信号をＣＰＵ１０５に出力する操作入力部１０２と、移動通信網を介して通信する相手装置との間で呼の接続や切断を行う通話処理部１０３と、外部の機器との間でＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）等の通信規格に従った赤外線通信を行う赤外線ポート１０４と、警告音や楽曲を出力するためのサウンド用スピーカ１０８と、通話用マイク（図示略）と、通話用スピーカ（図示略）とを備えている。
【００１４】
また、図に示すように、携帯電話機１０内の記憶部１０７は揮発性メモリ１０９及び不揮発性メモリ１１０から成る。不揮発性メモリ１１０には、ネイティブソフトウェアやネイティブ優先度情報１１０ａが書き込まれている。ネイティブソフトウェアとは、携帯電話機１０がユーザに販売される前に不揮発性メモリ１１０に書き込まれたソフトウェアであり、ネイティブＳＳとネイティブＡＰＰとに大別される。
【００１５】
ネイティブＳＳとしてはＯＳ（オペレーティングシステム）ソフトウェアが、ネイティブＡＰＰとしてはＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ブラウザプログラムや、メーラプログラム、通話プログラム、赤外線通信プログラム、楽曲再生プログラム、動画再生プログラム、ＫＶＭ（Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）プログラム、ＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）プログラム１１０ｂが挙げられる。なお、例示したネイティブＡＰＰは全て非ＪａｖａＡＰＰだが、後述する第２ＪａｖａＡＰＰのような、携帯電話機１０がユーザに販売される前に不揮発性メモリ１１０に書き込まれたＪａｖａＡＰＰもネイティブＡＰＰである。
【００１６】
ネイティブ優先度情報１１０ａはネイティブＡＰＰの優先度をネイティブＡＰＰ毎に示す情報であり、その内容は携帯電話機１０の設計者により定められている。ネイティブ優先度情報１１０ａの内容の具体例を図２に示す。この図における数値が優先度であり、高い数値は高い優先度を意味する。なお、優先度の使われ方については後述する。
【００１７】
また、不揮発性メモリ１１０は、非ネイティブソフトウェアの記憶にも用いられる。非ネイティブソフトウェアとは、携帯電話機１０がユーザに販売された後に不揮発性メモリ１１０に書き込まれるソフトウェアである。
【００１８】
携帯電話機１０内のＣＰＵ１０５は、不揮発性メモリ１１０に記憶されているＯＳソフトウェアを、図示しない電源投入時に読み出して実行することにより、携帯電話機１０にマルチタスクＯＳ（以後、単に「ＯＳ」という）を実現させる。このＯＳは、携帯電話機１０が備えるリソースのＡＰによる使用を管理する機能を営む。以降、本明細書では、このような管理の対象となるリソースのみを「リソース」と記載する。
【００１９】
リソースは、ハードウェアリソースとソフトウェアリソースとネットワークリソースとに大別される。ハードウェアリソースには、携帯電話機１０を構成するハードウェアの他に、携帯電話機１０と共働し得るＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）等の外部機器などがある。ソフトウェアリソースとしては、記憶部１０７に記憶されたデータが挙げられる。ネットワークリソースには、携帯電話機１０が移動通信網との間で無線通信を行う際に用いる無線チャネル等の無線リソースや、パケットの伝送路や回線接続の通信路などの通信リソースがある。
【００２０】
また、複数のリソースを組み合わせて成るリソースも存在する。例えば、発信機能や、標準サウンド鳴動機能、赤外線機能起動機能、楽曲再生機能、動画再生機能などである。発信機能とは、通話に必要な無線通信部１０１や無線チャネル等のリソースを確保した上で発呼を行って通話回線を接続し、通話を可能とする機能である。標準サウンド鳴動機能とは、警告音や操作入力部１０２の操作音等の、携帯電話機１０に予め設定された標準サウンドをサウンド用スピーカ１０８より出力する機能である。赤外線機能起動機能とは、赤外線ポート１０４を使用してＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）の規格に従った赤外線通信を行う機能である。楽曲再生機能とは不揮発性メモリ１１０に記憶された楽曲データを再生し、スピーカより出力する機能である。動画再生機能とは不揮発性メモリ１１０に記憶された動画データを再生し、液晶表示部１０６に表示する機能である。
【００２１】
このような、大きな単位のリソースは、通常、ＯＳが非ＪａｖａＡＰＰを実行することで実現される非ＪａｖａＡＰとして提供される。ただし、非ＪａｖａＡＰはリソースに限らない。例えば、ＪＡＭプログラム１１０ｂの実行により実現されるＪＡＭ１１０ｃや、ＫＶＭ、ＷＷＷブラウザ、メーラ、通話機能、赤外線通信機能も非ＪａｖａＡＰである。
【００２２】
図３は、携帯電話機１０に実現される一部の機能間の関係を示す図である。この図に示されるように、ネイティブソフトウェアを実行することで携帯電話機１０に実現される機能は、ホストシステム及びＪａｖａ実行環境の少なくとも一方を構成する。また、図から明らかなように、ホストシステム及びＪａｖａ実行環境の両方の構成要素となっている機能はＯＳのみである。
【００２３】
ＯＳは、操作入力部１０２からの出力信号で表される指示が、ある非ＪａｖａＡＰの起動（実現）を要求する指示である場合、該当するネイティブＡＰＰを不揮発性メモリ１１０から読み出して実行する。また、ＯＳは、ＪＡＭ１１０ｃから非ＪａｖａＡＰの起動や終了（停止）の要求を受けると当該非ＪａｖａＡＰを起動または終了させる。また、ＯＳは、ＪＡＭ１１０ｃからホストシステムにおける非ＪａｖａＡＰの起動状況の問い合わせを受けると、その時点でホストシステムを構成している非ＪａｖａＡＰを示す情報を、当該問い合わせの結果としてＪＡＭ１１０ｃへ渡す。なお、ホストシステムを構成している非ＪａｖａＡＰが存在していなければ、その旨を示す情報が問い合わせの結果となる。
【００２４】
Ｊａｖａ実行環境はＪａｖａＡＰＰを実行するためのものであり、その構成要素であるＫＶＭは、パーソナルコンピュータに比較して記憶容量や処理速度、消費電力等に制約のある小型電子機器用に設計されたＪＶＭ（Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）である。このＫＶＭは、ＪａｖａＡＰＰを構成するバイトコードを解釈し実行することにより、携帯電話機１０にＪａｖａＡＰを実現させる。
【００２５】
また、ＫＶＭは、ＪａｖａＡＰに対して、携帯電話機１０のリソースにアクセスするためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ）を提供する。ＪａｖａＡＰは、当該ＡＰＩを通じて、発信機能や、標準サウンド鳴動機能、赤外線機能起動機能、楽曲再生機能、動画再生機能などのリソースを使用することができる。なお、ＫＶＭは他の非ＪａｖａＡＰと異なり、ＪａｖａＡＰの起動（ＪａｖａＡＰＰの実行）の指示がＯＳに入力されたときに起動される。
【００２６】
ＪＡＭ１１０ｃは、携帯電話機１０のユーザの指示に従って、ＪａｖａＡＰＰを内包したＪＡＲ（Ｊａｖａ  Ａｒｃｈｉｖｅ）ファイル及びＡＤＦ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｏｒ  Ｆｉｌｅ）を移動通信網経由でダウンロードし、不揮発性メモリ１１０に書き込む。また、ＪＡＭ１１０ｃは、不揮発性メモリ１１０に記憶されているＪａｖａＡＰＰの実行指示を受けると、当該ＪａｖａＡＰＰに対応するＡＤＦを不揮発性メモリ１１０から読み出し、当該ＡＤＦ内のＡｐｐＣｌａｓｓキーを参照し、当該ＪａｖａＡＰＰをＫＶＭに実行させる。ＡＤＦ内のＡｐｐＣｌａｓｓキーには、対応するＪａｖａＡＰＰのメインクラス名が指定されており、ＫＶＭはＪＡＭ１１０ｃから引き渡されたメインクラス名のＪａｖａＡＰＰを実行するよう設計されている。また、ＪＡＭ１１０ｃは、ＪａｖａＡＰＰの実行の管理のみならず、実行可能なＪａｖａＡＰＰの一覧の表示処理やリソースの使用に関するＫＶＭからの要求をＯＳへ渡す仲介処理をも行う。
【００２７】
上記の仲介処理では、ＪＡＭ１１０ｃは、特定の非ＪａｖａＡＰ（リソース）の起動要求をＫＶＭより受けたときに、ホストシステムにおける非ＪａｖａＡＰ（非リソース）の起動状況を問い合わせ、問い合わせの結果等に基づいて当該起動要求を受け入れるか否かを決定し、決定結果に応じた情報をＫＶＭに通知する機能を有する。上記の決定は、問い合わせの結果だけに基づいて行われるとは限らない。場合によっては、ネイティブ優先度情報１１０ａやユーザにより入力される指示にも基づいて行われ得る。また、場合によっては、決定結果に応じた情報がＫＶＭに通知されないこともあり得る。どのような場合にどのような決定および処理が行われるかについては、本実施形態の動作の説明において詳述する。
【００２８】
［１−２．動作］
次に、本実施形態の動作について説明する。ただし、ＯＳ及びＪＡＭ１１０ｃが既に起動されているものとする。また、不揮発性メモリ１１０には、携帯電話機１０の販売後に、あるＪａｖａＡＰＰ（以後、「第１ＪａｖａＡＰＰ」という）が書き込まれ記憶されているものとする。この第１ＪａｖａＡＰＰにより実現されるＪａｖａＡＰ（以後、「第１ＪａｖａＡＰ」という）は、起動されると所定の入力画面を液晶表示部１０６に表示させてユーザの指示入力を促し、これに応じて所定の指示が入力されると発信機能の起動を要求するものであり、且つ、後述の例外Ｓ８の発生を検知すると、既に行われている通信との間でリソースの競合が発生するために発信機能の起動要求がキャンセルされたことを知らせる画面を液晶表示部１０６に表示させるものである。また、不揮発性メモリ１１０は、携帯電話機１０の販売前から、第１ＪａｖａＡＰと同一機能のＪａｖａＡＰ（以後、「第２ＪａｖａＡＰ」という）を実現するためのＪａｖａＡＰＰ（以後、「第２ＪａｖａＡＰＰ」という）を記憶しているものとする。
【００２９】
［１−２−１．動作例１］
まず、第１ＪａｖａＡＰが発信機能の起動を要求したときに当該発信機能を使用する非ＪａｖａＡＰが１つも起動されていない場合の携帯電話機１０の動作について、図４及び図５を参照して、第１ＪａｖａＡＰの起動前から説明する。なお、図４はＪＡＭ１１０ｃが行う仲介処理の流れを示すフローチャートであり、図５〜図７はそれぞれ、携帯電話機１０の動作を説明するためのシーケンス図である。
【００３０】
まず、ユーザが操作入力部１０２を操作することで特定の指示を携帯電話機１０に入力すると、携帯電話機１０ではＪＡＭ１１０ｃが起動される。ＪＡＭ１１０ｃは、不揮発性メモリ１１０に記憶されているＪａｖａＡＰＰの一覧を液晶表示部１０６に表示させる。ユーザは、操作入力部１０２を操作し、この一覧から第１ＪａｖａＡＰＰを選択し当該ＪａｖａＡＰの実行指示を入力する。
【００３１】
この実行指示の入力を受け、ＪＡＭ１１０ｃは、選択されたＪａｖａＡＰＰに対応するＡＤＦを参照し、このＡＤＦ内のＡｐｐＣｌａｓｓキーで指定されているメインクラス名を指定してＫＶＭを起動させる。ＫＶＭは、指定されたメインクラス名に対応するＪＡＲファイルを読み出し、当該ＪＡＲファイル内のＪａｖａＡＰＰを実行する。これにより、液晶表示部１０６には、第１ＪａｖａＡＰにより所定の入力画面が表示される。ユーザは、この画面の内容に従って、操作入力部１０２を操作することで所定の指示を入力する。
【００３２】
所定の指示が入力されると、第１ＪａｖａＡＰは、クラスライブラリの一構成要素であるＰｈｏｎｅクラスのｃａｌｌメソッド（以下、「発信メソッド」という）を呼び出す（図５のトリガＳ１）。これにより、ＫＶＭは、起動の際に指定されたメインクラス名と発信機能の起動要求とを表す要求データＳ２をＪＡＭ１１０ｃへ渡す。ＪＡＭ１１０ｃは、ホストシステムにおける非ＪａｖａＡＰの起動状況を問い合わせるための問い合わせデータＳ３をＯＳへ渡す。ＯＳは、ホストシステムにおける非ＪａｖａＡＰの起動状況を調べ、判明した起動状況を示す結果データＳ４をＪＡＭ１１０ｃに渡す（図４のＳ１０１）。
【００３３】
この結果データＳ４は、発信機能を使用する非ＪａｖａＡＰが１つも起動されていない旨を示すから、ＪＡＭ１１０ｃは、発信機能の使用に関して競合もユーザインタフェースの錯綜も生じないと判定し（Ｓ１０２：Ｎｏ）、ＫＶＭから渡された要求データＳ２から発信機能の起動要求を示すデータのみを抽出して得られる要求データＳ５をホストシステムへ渡す（Ｓ１０３）。この結果、ホストシステムでは発信機能が起動される。なお、リソースの使用に関して生じる競合とは、複数のＡＰの各々が１つしかないリソース（例えば、発信機能や通話用スピーカ）を占用しようとすることをいう。また、リソースの使用に関して生じるユーザインタフェースの錯綜とは、用いるリソースの組み合わせにより複数のユーザインタフェースが互いに妨害し合う事態をいう。例えば、音声通話中の楽曲再生は上記の錯綜にあたる。
【００３４】
［１−２−２．動作例２］
次に、第１ＪａｖａＡＰが発信機能の起動を要求したときに当該発信機能を使用する通話機能（非ＪａｖａＡＰ）が既に起動されている場合の携帯電話機１０の動作について、図４、図６及び図７を参照して説明する。
【００３５】
この場合、ホストシステムからＪＡＭ１１０ｃへ渡される結果データＳ６は（図６参照）、前述の結果データＳ４と異なり、発信機能を使用する非ＪａｖａＡＰが起動されている旨を示す。このため、ＪＡＭ１１０ｃは、リソースの使用に関して競合またはユーザインタフェースの錯綜が生じると判定し（Ｓ１０２：Ｙｅｓ）、通話機能と要求データＳ２で表されるメインクラス名で特定されるＪａｖａＡＰとの両方に優先度が付与されているか否かを判定する（Ｓ１０４）。第１ＪａｖａＡＰは非ネイティブＡＰであるから、その優先度を示す優先度情報は不揮発性メモリ１１０に記憶されていない。したがって、否定的な判定結果となる（Ｓ１０４：Ｎｏ）。
【００３６】
次に、ＪＡＭ１１０ｃは、通話機能よりもＪａｖａＡＰを優先的に取り扱うか否かをユーザに問い合わせるための画面を液晶表示部１０６に表示させ、ユーザの指示入力を待つ。そして、ユーザから指示が入力されると（Ｓ１０５）、この指示の内容について判定する（Ｓ１０６）。以降の動作は当該指示の内容によって異なるため、場合分けして説明する。
【００３７】
（Ａ：通話機能を優先的に取り扱う旨の指示の場合）
ユーザから入力された指示が、第１ＪａｖａＡＰよりも通話機能を優先的に取り扱う旨の指示であれば（Ｓ１０６：Ｎｏ）、ＪＡＭ１１０ｃは、キャンセル処理を行う。すなわち、要求データＳ２で表される起動要求をキャンセルし、キャンセルしたことを示す通知データＳ７をＫＶＭへ渡す（Ｓ１０７）。ＫＶＭは、発信メソッドを呼び出した第１ＪａｖａＡＰに対して例外Ｓ８を発生させる。第１ＪａｖａＡＰは、この例外Ｓ８の発生を検知し、液晶表示部１０６に、既に行われている通信との間でリソースの競合が発生するために発信機能の起動要求がキャンセルされたことを知らせる画面を表示させる。
【００３８】
（Ｂ：第１ＪａｖａＡＰを優先的に取り扱う旨の指示の場合）
ユーザから入力された指示が、通話機能よりも第１ＪａｖａＡＰを優先的に取り扱う旨の指示であれば（Ｓ１０６：Ｙｅｓ）、ＪＡＭ１１０ｃは、図７に示すように、通話機能の終了を指示する終了指示データＳ９をホストシステムへ渡し（Ｓ１０８）、前述の要求データＳ５をホストシステムへ渡す（Ｓ１０３）。この結果、ホストシステムでは通話機能および発信機能が終了した後に発信機能が起動される。
【００３９】
［１−２−３．動作例３］
次に、第１ＪａｖａＡＰではなく、第２ＪａｖａＡＰが発信機能の起動を要求したときに当該発信機能を使用する通話機能が既に起動されている場合の携帯電話機１０の動作について、図４を参照して説明する。なお、ＪａｖａＡＰとＫＶＭとＪＡＭ１１０ｃとホストシステムとの間でのデータの授受の流れは、図６や図７に示した流れと同一である。
【００４０】
この場合、第２ＪａｖａＡＰの起動の際にＫＶＭに渡されるメインクラス名は当該第２ＪａｖａＡＰのメインクラス名となり、ＫＶＭは当該第２ＪａｖａＡＰＰを実行することになる。第２ＪａｖａＡＰＰの機能は第１ＪａｖａＡＰＰの機能と同一であるから、ＪａｖａＡＰとＫＶＭとＪＡＭ１１０ｃとホストシステムとの間で授受されるデータの内容は、メインクラス名に関する部分を除いて、前述の動作例２におけるデータの内容と同一である。
【００４１】
この動作例３の動作が動作例２の動作から最初に逸脱するのは、通話機能とＫＶＭからの要求データで表されるメインクラス名で特定されるＪａｖａＡＰとの両方に優先度が付与されているか否かの判定である（Ｓ１０４）。第２ＪａｖａＡＰも通話機能もネイティブＡＰであるから、不揮発性メモリ１１０に記憶されているネイティブ優先度情報１１０ａは両方の優先度を示す。よって、上記の判定が肯定的な結果となる（Ｓ１０４：Ｙｅｓ）。
【００４２】
次に、ＪＡＭ１１０ｃは、両方の優先度を比較し（Ｓ１０９）、通話機能の優先度の方が高いか否かを判定する（Ｓ１１０）。この判定において、通話機能の優先度の方が高いと判定された場合（Ｓ１１０：Ｙｅｓ）、ＪＡＭ１１０ｃは、前述のキャンセル処理を行う（Ｓ１０７）。逆に、通話機能の優先度の方が高くないと判定された場合（Ｓ１１０：Ｎｏ）、ＪＡＭ１１０ｃは、通話機能よりもＪａｖａＡＰを優先的に取り扱うか否かをユーザに問い合わせるための画面を液晶表示部１０６に表示させ、ユーザの指示入力を待つ（Ｓ１０５）。以降の動作は、動作例２における、ユーザの指示入力を待ってからの動作と同様である。
【００４３】
［１−３．補足］
以上、説明したように、本発明の第１実施形態によれば、上述の競合の解決や錯綜の回避を行うことができる。加えて、起動要求のキャンセルが即座にＪａｖａＡＰやユーザに通知されるから、ＪａｖａＡＰやユーザは即座に次の対処をとることができる。加えて、リソースを使用中のＡＰの優先度と当該リソースの起動を要求したＡＰの優先度に基づいて起動要求の許否が定められるから、重要なＡＰが重要でないＡＰにより邪魔される事態を避けることができる。また、競合や錯綜が予想されるリソースを使用中のＡＰの終了はユーザの意思を確認してから行われるから、意図せぬデータ消失や通話の途絶を防止することができる。
【００４４】
また、リソースを使用中のＡＰの優先度が当該リソースの起動を要求したＡＰの優先度よりも高い場合にはユーザの意思を確認せずに起動要求をキャンセルするようにしたから、意思確認の頻度を低くすることができる。これは、例えば、高優先度の通話機能の使用中に誤って、発信機能の起動を要求する低優先度のＪａｖａＡＰを起動してしまった場合に有効である。
【００４５】
ところで、一般に、携帯電話機１０の製造者や販売者と異なる者により提供されるＪａｖａＡＰが携帯電話機１０にダウンロードされ使用されると上述の競合や錯綜が発生する可能性が高くなる。本実施形態では、上述の競合や錯綜が発生する可能性が高い環境下で確実にそれらが解決または回避されるから、その実用性は高い。
【００４６】
また、上述した第１実施形態について以下のように変形してもよい。
（１）ユーザの意思を確認することなく、ホストシステムへの問い合わせ結果と優先度のみに基づいて起動要求の許否を定めるようにしてもよい。この場合、優先度の付与されていないＡＰについては、例えば、最低の優先度が付与されているとみなせばよい。
（２）比較対象の両ＡＰに優先度が付与されている場合には優先度のみに基づいて起動要求の許否を定める、としてもよい。両ＡＰの優先度が同一の場合には、例えば、リソースを使用中のＡＰが優先されるように起動要求の許否を定めればよい。
（３）優先度を用いることなく、競合や錯綜が生じる場合には必ずユーザの意思を確認するようにしてもよい。
【００４７】
［２．第２実施形態］
［２−１．構成］
図８は本発明の第２実施形態に係る携帯電話機２０の構成を示す図であり、図９は携帯電話機２０に実現される一部の機能間の関係を示す図である。携帯電話機２０が図１及び図３に示される携帯電話機１０と異なる点は、不揮発性メモリ１１０に代えて不揮発性メモリ２０２を有する点のみである。不揮発性メモリ２０２が不揮発性メモリ１１０と異なる点は、非ネイティブ優先度情報２０２ａが書き込まれている点と、ＪＡＭプログラム１１０ｂに代えてＪＡＭプログラム２０２ｂが書き込まれている点のみである。
【００４８】
非ネイティブ優先度情報２０２ａは、非ネイティブＡＰの優先度を非ネイティブＡＰ毎に示すものである。非ネイティブ優先度情報２０２ａの内容の具体例を図１０に示す。販売直後の携帯電話機２０における非ネイティブ優先度情報２０２ａは初期化されていて内容が空であるから、非ネイティブＡＰＰが不揮発性メモリ２０２に書き込まれた後の非ネイティブ優先度情報２０２ａの内容例を図１０に示した。
【００４９】
ＪＡＭプログラム２０２ｂを実行することで実現されるＪＡＭ２０２ｃがＪＡＭ１１０ｃと異なる点の１つは、ユーザの指示に従って非ネイティブ優先度情報２０２ａを初期化する機能を有する点である。また、ＪＡＭ２０２ｃがＪＡＭ１１０ｃと異なる他の点は、起動要求の許否の決定時に非ネイティブ優先度情報２０２ａを参照し得る点と、非ネイティブ優先度情報２０２ａを更新し得る点である。非ネイティブ優先度情報２０２ａをどのような場合にどのように用いたり更新したりするかについては、本実施形態の動作の説明において詳述する。
【００５０】
［２−２．動作］
次に、図８〜図１２を参照して、第２実施形態の動作について説明する。なお、以降に説明する動作の前提は第１実施形態における動作説明の前提と共通している。また、ネイティブ優先度情報１１０ａの内容は図２に示す通りであるものとし、非ネイティブ優先度情報２０２ａは初期化されているものとする。また、第１ＪａｖａＡＰＰは既に不揮発性メモリ１１０に記憶されているものとする。また、第１ＪａｖａＡＰが発信機能の起動を要求したときには、この発信機能を使用する通話機能（非ＪａｖａＡＰ）が既に起動されていたものとする。
【００５１】
途中までは第１実施形態の動作例２と同様の流れとなり、ＪＡＭ２０２ｃは、通話機能よりもＪａｖａＡＰを優先的に取り扱うか否かに関するユーザの指示入力を受ける（Ｓ１０５）。ＪＡＭ２０２ｃは、この指示が通話機能を優先的に取り扱う旨の指示の場合にはＪＡＭ１１０ｃと同様に動作する。逆に、当該指示が第１ＪａｖａＡＰを優先的に取り扱う旨の指示の場合には、ＪＡＭ２０２ｃは、ＪＡＭ１１０ｃと同様の動作を行う一方（Ｓ１０８、Ｓ１０３）、通話機能の優先度と第１ＪａｖａＡＰの優先度の高い方よりも１だけ大きい５が優先度として第１ＪａｖａＡＰに付与されるよう非ネイティブ優先度情報２０２ａを更新する（Ｓ２０２）。
【００５２】
続いて、第１ＪａｖａＡＰが終了し、通話機能が起動されている最中に、第１ＪａｖａＡＰが起動され、この第１ＪａｖａＡＰにより発信機能の起動が要求されたものとする。この場合、通話機能にも第１ＪａｖａＡＰにも優先度が付与されているから（Ｓ２０１：Ｙｅｓ）、両者が比較され（Ｓ１０９）、リソースの使用を要求してきた機能の方を無条件に優先すべきか否かを判定する（Ｓ２０３）。この判定結果が肯定的になるのは、リソースを使用中の機能の優先度よりもリソースの使用を要求してきた機能の優先度の方が高い場合のみである。通話機能の優先度は４であり、第１ＪａｖａＡＰの優先度は５であるから、ステップＳ２０３の判定結果は肯定的なものとなる（Ｓ２０３：Ｙｅｓ）。よって、ユーザの意思を確認することなく、通話機能の終了と第１ＪａｖａＡＰによる発信機能の使用が行われることになる（Ｓ１０８、Ｓ１０３）。
【００５３】
続いて、第１ＪａｖａＡＰが終了し、優先度が６の赤外線通信機能が起動されている最中に、第１ＪａｖａＡＰが起動され、この第１ＪａｖａＡＰから、赤外線通信機能に占有されるべき赤外線通信機能起動機能の起動が要求されたものとする。この時点で第１ＪａｖａＡＰの優先度は５であるから、ステップＳ２０３の判定結果は否定的になる。すると、ＪＡＭ２０２ｃは、第１ＪａｖａＡＰが非ネイティブＡＰであるか否かを判定する（Ｓ２０４）。この判定は、第１ＪａｖａＡＰの優先度がネイティブ優先度情報１１０ａに示されていたか非ネイティブ優先度情報２０２ａに示されていたかを判別することで行われる。第１ＪａｖａＡＰは非ネイティブＡＰであるから（Ｓ２０４：Ｙｅｓ）、以降の動作は、基準となる優先度が通話機能のものではなく赤外線通信機能のものであることを除いて、冒頭で述べた動作と同様となる。この結果、第１ＪａｖａＡＰの優先度は７となる。
【００５４】
続いて、第１ＪａｖａＡＰが終了し、通話機能が起動されている最中に第２ＪａｖａＡＰが起動され、この第２ＪａｖａＡＰにより発信機能の起動が要求されたものとする。この場合、第２ＪａｖａＡＰはネイティブＡＰであるから（Ｓ２０４：Ｎｏ）、ＪＡＭ２０２ｃはキャンセル処理を行う（Ｓ１０７）。つまり、第２ＪａｖａＡＰからの起動要求はキャンセルされる。
【００５５】
続いて、第２ＪａｖａＡＰが終了し、ユーザが所定の指示を入力し、初期化処理が行われるものとする。初期化処理では、ＪＡＭ２０２ｃは、非ネイティブＡＰに付与されている優先度の初期化処理を続行するか否かをユーザに問い合わせるための画面を液晶表示部１０６に表示させ、ユーザの指示入力を待つ。そして、ユーザから指示が入力されると（Ｓ３０１）、この指示の内容について判定する（Ｓ３０２）。ＪＡＭ２０２ｃは、入力された指示が、処理を続行する旨の指示の場合にのみ（Ｓ３０２：Ｎｏ）、初期化処理を行い、非ネイティブ優先度情報２０２ａの内容を空とする（Ｓ３０３）。
【００５６】
続いて、通話機能が起動されている最中に、第１ＪａｖａＡＰが起動され、この第１のＪａｖａＡＰにより発信機能の起動が要求されたものとする。この場合、非ネイティブ優先度情報２０２ａは初期化されているから、第１ＪａｖａＡＰには優先度が付与されていないことになり（Ｓ２０１：Ｎｏ）、冒頭に述べた動作と同一の動作が繰り返されることになる。
【００５７】
［２−３．補足］
上述した第２実施形態により得られる効果のうち、第１実施形態によっては得られない効果は以下に述べる通りである。
第２実施形態によれば、優先度の付与されていない非ネイティブＡＰに優先度を付与することができる。また、リソースを使用中のネイティブＡＰよりも高い優先度が付与された非ネイティブＡＰが要求元となる場合には、ユーザの意思を確認することなく処理が進む。よって、ユーザの意思を反映した判断を行いつつも、意思確認の頻度を低くすることができる。
また、第２実施形態によれば、リソースを使用するＡＰの切り換えの際に行われる意思確認により非ネイティブＡＰの優先度を定めることができる。つまり、非ネイティブＡＰの優先度を定める際に、比較対象のＡＰの選択や優先度の決定などの作業をユーザが行う必要がない。よって、ユーザに負担を強いることなく、非ネイティブＡＰの優先度を定めることができる。
【００５８】
また、上述した第２実施形態について以下のように変形してもよい。
（１）第２実施形態では、リソースの使用が許可された非ネイティブＡＰに対して、比較対象よりも１だけ大きい優先度を付与するようにしているが、これは一例に過ぎない。ただし、比較対象よりも極端に高い優先度を付与してしまうとユーザの意思から懸け離れた制御が行われてしまう虞があるから、必要最小限の優先度を付与するのが理想的である。もちろん、非ネイティブＡＰの優先度に上限を設けてもよい。
【００５９】
（２）第２実施形態では、非ネイティブＡＰに絶対的な優先度を付与しているが、あるネイティブＡＰに対する優先度は２だが他のネイティブＡＰに対する優先度は３である、というように、相対的な優先度を付与するようにしてもよい。
【００６０】
（３）第２実施形態では、非ネイティブＡＰについて、個別に優先度を定めるようにしたが、そこまでの緻密な制御が不要であれば、一括して優先度を定めるようにしてもよい。
【００６１】
（４）不揮発性メモリ１１０を書き換え不能な不揮発性メモリと書き換え可能な不揮発性メモリとで構成し、ネイティブ優先度情報１１０ａを前者に、非ネイティブ優先度情報２０２ａを後者に記憶させることで、ネイティブＡＰの優先度が書き換えられる事態を確実に避けるようにしてもよい。
【００６２】
［３．変形例］
また、上述した各実施形態について、以下のように変形してもよい。
（１）起動要求がキャンセルされた理由をＪＡＭがＫＶＭを通じて要求元のＪａｖａＡＰに通知するようにしてもよい。こうすることにより、ＪａｖａＡＰの表現力を向上させることが可能となる。例えば、ＪａｖａＡＰが通知された理由または起動中の全ての非ＪａｖａＡＰを示す情報を表示するように設計されていれば、ユーザは、通話中のためにキャンセルされた場合と、赤外線通信中のためにキャンセルされた場合とで対処を変えることができる。
【００６３】
（２）上述した各実施形態では、キャンセルされ得るのはＪａｖａＡＰ発の起動要求のみだが、非ＪａｖａＡＰがＪａｖａＡＰの起動を要求するような環境下では、非ＪａｖａＡＰ発の起動要求もキャンセルされ得るように実施形態を変形してもよい。この変形は、主に、ＪａｖａＡＰが使用しているリソースをＫＶＭまたはＪＡＭが把握し、非ＪａｖａＡＰ発の起動要求をＪＡＭが受け取って当該要求を受け入れるかキャンセルするかを決定するようにすれば、実現可能である。
【００６４】
（３）上述した各実施形態では、非ＪａｖａＡＰ（リソース）の起動の要求元をＪａｖａＡＰとしたが、非ＪａｖａＡＰ（非リソース）としてもよい。ただし、上記のＪＡＭに相当するものが、非ＪａｖａＡＰからの起動要求を受け取り、以後、キャンセルの通知先が当該非ＪａｖａＡＰとなる点を除いて上記のＪＡＭと同様に動作するように、設計を変更する必要がある。
【００６５】
（４）また、各実施形態を変形し、メインクラス名とは異なる識別子を用いてＪａｖａＡＰを特定するようにしてもよい。
【００６６】
（５）上述した各実施形態では、コンピュータの一例として携帯電話機を挙げたが、本発明は複数のプログラムを並列実行可能な任意のコンピュータにおけるリソースの使用に関する競合や錯綜の解決に適用可能である。
【００６７】
（６）上述した各実施形態では、ＪＡＭを実現するためのプログラムを予め記憶部１０７に記憶させておくようにしたが、通信網を介してダウンロードして記憶部１０７に書き込むようにしてもよい。また、当該プログラムを記録した記録媒体を携帯電話機１０に装着し、このプログラムを携帯電話機１０が実行してＪＡＭを実現するようにしてもよい。
【００６８】
（７）上述した各実施形態では、ネイティブＡＰの各々に優先度が付与されている例を示したが、そこまでの緻密な制御が不要であれば、ネイティブＡＰについて一括して優先度を定めるようにしてもよい。このような態様であっても、全てのネイティブＡＰを非ネイティブＡＰに優先させるといった制御や、特定の非ネイティブＡＰを全てのネイティブＡＰに優先させるといった制御程度であれば実現可能である。
【００６９】
（８）また、上述した各実施形態ではネイティブＡＰであるか否かに着目した制御を行うようにしたが、ＡＰＰを記憶している記録媒体の種類に応じて制御を行うようにしてもよい。例えば、書き換え不能な不揮発性メモリ（例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ））に記憶されているＡＰＰ間で優先度を比較する場合にはユーザの意思を確認せずに要求の許否を定める、という態様としてもよい。また、例えば、書き換え不能な不揮発性メモリに記憶されているＡＰＰについては高い優先度を与え、書き換え可能な不揮発性メモリに記憶されているＡＰＰについては低い優先度を与えるようにしてもよい。もちろん、書き換え不能な不揮発性メモリに記憶されている全てのＡＰＰについて一括して優先度を定めるようにしてもよい。
【００７０】
【発明の効果】
以上説明したように、本発明によれば、第１アプリケーションにより使用が要求されているリソースが第２アプリケーションにより使用されている場合には、画面に応じて入力された指示または優先度の比較結果に基づいて、第１アプリケーションからの要求の許可／拒否が定められる。したがって、コンピュータに実現される複数のアプリケーション（機能）が当該コンピュータのリソースを使用する際に、競合や無制限に待たされる事態を回避することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る携帯電話機１０のハードウェア構成を示すブロック図である。
【図２】同携帯電話機１０内のネイティブ優先度情報１１０ａの内容の具体例を示す図である。
【図３】同携帯電話機１０に実現される一部の機能間の関係を示す図である。
【図４】同携帯電話機１０における仲介処理の流れを示すフローチャートである。
【図５】同携帯電話機１０の動作を説明するためのシーケンス図である。
【図６】同携帯電話機１０の動作を説明するためのシーケンス図である。
【図７】同携帯電話機１０の動作を説明するためのシーケンス図である。
【図８】本発明の第２実施形態に係る携帯電話機２０のハードウェア構成を示すブロック図である。
【図９】同携帯電話機２０に実現される一部の機能間の関係を示す図である。
【図１０】同携帯電話機２０内の非ネイティブ優先度情報２０２ａの内容の具体例を示す図である。
【図１１】同携帯電話機２０における仲介処理の流れを示すフローチャートである。
【図１２】同携帯電話機２０における初期化処理の流れを示すフローチャートである。
【符号の説明】
１０，２０……携帯電話機、１０１……無線通信部、１０２……操作入力部、１０３……通話処理部、１０４……赤外線ポート、１０５……ＣＰＵ、１０６……液晶表示部、１０７，２０１……記憶部、１０８……サウンド用スピーカ、１０９……揮発性メモリ、１１０，２０２……不揮発性メモリ、１１０……ネイティブ優先度情報、１１０ｂ，２０２ｂ……ＪＡＭプログラム、１１０ｃ，２０２ｃ……ＪＡＭ、２０２ａ……非ネイティブ優先度情報。
【図１】
2004348439.tif 000003
【図２】
2004348439.tif 000004
【図３】
2004348439.tif 000005
【図４】
2004348439.tif 000006
【図５】
2004348439.tif 000007
【図６】
2004348439.tif 000008
【図７】
2004348439.tif 000009
【図８】
2004348439.tif 000010
【図９】
2004348439.tif 000011
【図１０】
2004348439.tif 000012
【図１１】
2004348439.tif 000013
【図１２】
2004348439.tif 000014