(57)【要約】【課題】  多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置およびその方法に関し、より詳しくは、多重ジャバアプリケーション環境で仮想のＩＤを用いて資源の割当および解除を行うことによって、資源をより効率的に用いることのできる装置およびその方法を提供する。【解決手段】  ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置は、アプリケーションから資源の割当および資源の解除が要請されれば、運営体系に資源の割当および資源の解除を要請する資源管理部と、前記運営体系から割当てられた資源に対応する仮想ＩＤを生成する仮想ＩＤ生成部と、前記アプリケーションが前記仮想ＩＤを用いて資源の解除を要請すれば、前記仮想ＩＤの存在有無を検索するＩＤ検索部を含む。【選択図】  図４
2007226800.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから資源の割当および資源の解除が要請されれば、運営体系に資源の割当および資源の解除を要請する資源管理部と、
前記運営体系から割当てられた資源に対応する仮想ＩＤを生成する仮想ＩＤ生成部と、
前記アプリケーションが前記仮想ＩＤを用いて資源の解除を要請すれば、前記仮想ＩＤの存在有無を検索するＩＤ検索部とを含む多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置。
【請求項２】
前記資源管理部は、前記ＩＤ検索部の検索の結果、仮想ＩＤが存在する場合、前記仮想ＩＤに対応する資源の解除を要請する請求項１に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置。
【請求項３】
前記仮想ＩＤは、前記運営体系から資源が割当てられる度に生成される固有ＩＤである請求項１に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置。
【請求項４】
前記アプリケーションから伝送されたアプリケーションＩＤ、仮想ＩＤ、および割当てられた資源を含むテーブルを作成し、所定の資源が解除された場合に前記解除された資源が含まれたテーブルを削除する制御部と、
前記作成されたテーブルを格納する格納部とを含む請求項１に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置。
【請求項５】
アプリケーションから資源の割当が要請されれば、前記要請により運営体系に資源の割当を要請するステップと、
前記割当てられた資源に対応する仮想ＩＤを生成するステップと、
前記アプリケーションから伝送されたアプリケーションＩＤ、前記生成された仮想ＩＤおよび割当てられた資源を含むテーブルを作成するステップと、
前記アプリケーションに仮想ＩＤおよび割当てられた資源を伝送するステップとを含む多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法。
【請求項６】
前記仮想ＩＤは、前記運営体系から資源が割当てられる度に生成される固有ＩＤである請求項５に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法。
【請求項７】
アプリケーションから仮想ＩＤを用いて資源の解除が要請されるステップと、
前記アプリケーションから伝送された仮想ＩＤが含まれたテーブルが存在するかを検索するステップと、
前記検索の結果、前記伝送された仮想ＩＤが含まれたテーブルが存在すれば、運営体系に前記仮想ＩＤに対応する資源の解除を要請するステップと、
前記資源が解除されれば前記仮想ＩＤが含まれたテーブルを削除するステップとを含む多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法。
【請求項８】
前記検索の結果、前記伝送された仮想ＩＤが含まれたテーブルが存在しない場合、資源の解除要請を行わない請求項７に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法。
【請求項９】
前記仮想ＩＤは、前記アプリケーションに割当てられた資源に対応する固有ＩＤである請求項７に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法。
【請求項１０】
前記テーブルには所定の資源を用いるアプリケーションのＩＤ、資源に対応する仮想ＩＤ、および割当てられた資源が含まれる請求項７に記載の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置およびその方法に関し、より詳しくは、多重ジャバアプリケーション環境で仮想のＩＤを用いて資源の割当および解除を行うことによって、資源をより効率的に用いることのできる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置およびその方法に関するものである。
【背景技術】
【０００２】
ジャバ（Ｊａｖａ（登録商標））は、作成されたコードをプラットフォームに独立して行うオブジェクト指向プログラミング言語である。ここで、プラットフォームはプログラムが実行されるハードウェアまたは運営体系のようなソフトウェア環境をいう。ジャバで作成されたコードはジャバコンパイラ（Ｃｏｍｐｉｌｅｒ）によりジャババイトコード（Ｂｙｔｅ  Ｃｏｄｅ）にコンパイルされ、ジャババイトコードは多様なハードウェア基盤プラットフォームにポーティングされたジャバ仮想マシーン（Ｊａｖａ（登録商標）Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）により実行される。
【０００３】
図１ａと図１ｂは、従来の多重ジャバアプリケーションの構造を示すブロック図である。
【０００４】
図１ａに示すように、多重ジャバアプリケーション（Ｍｕｌｔｉｐｌｅ  Ｊａｖａ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎｓ）１０は、アプリケーション管理者（Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）１１、アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）１２ａ、１２ｂ、１２ｎ、ミドルウェア（Ｍｉｄｄｌｅｗａｒｅ）１３、ジャバ仮想マシーン（Ｊａｖａ(登録商標)Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）１４、および運営体系（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１５を含んで構成される。ここで、アプリケーションは、ジャバアプリケーション１２ａ、１２ｂ、１２ｎを含む。
【０００５】
アプリケーション管理者１１は、アプリケーションの状態を切替えることによってアプリケーションのライフサイクル（Ｌｉｆｅ  Ｃｙｃｌｅ）を管理する。例えば、ＯＣＡＰ（Ｏｐｅｎ  Ｃａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）、ＡＣＡＰ（Ａｄｖａｎｃｅｄ  ｏｐｅｎ  Ｃａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）等のミドルウェア１３を介してアプリケーション管理者１１はアプリケーションの動作を管理する。
【０００６】
ジャバ仮想マシーン１４は、アプリケーションに含まれたクラスをメモリに搭載してクラスの実行コードを運営体系１５の命令コードに変換し、アプリケーションに割当てられた資源を管理する。
【０００７】
ジャバ仮想マシーン１４は、図１ｂに示すようにクラスをロードするクラスローダ（Ｃｌａｓｓ  Ｌｏａｄｅｒ）１６、ジャストインタイムコンパイラ（Ｊｕｓｔ−Ｉｎ−Ｔｉｍｅ  Ｃｏｍｐｉｌｅｒ）１７、インタープリタ（Ｉｎｔｅｒｐｒｅｔｅｒ）１８、および実行時間にリソース管理を担当するガーベッジコレクタ（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｏｒ：ＧＣ）１９を含んで構成される。
【０００８】
インタープリタ１８はクラスの実行コードを実行するための構成要素であって、仮想マシーン命令語を認識して命令を行う役割をし、ジャストインタイムコンパイラ１７はクラス実行中に仮想マシーン命令語をＣＰＵの機械語にあらかじめ変換して速度を向上させる機能を行う。
【０００９】
ガーベッジコレクタ１９は、ガーベッジオブジェクト（資源を用いないオブジェクト）を捜し出し、ガーベッジオブジェクトが用いたヒープ資源を運営体系に返還することによって、該当ヒープ資源が異なるアプリケーションにより再使用されるようにする。
【００１０】
換言すれば、ジャバプラットフォームにおいて資源管理は、ガーベッジコレクタ１９によって実行されるものであり、ガーベッジコレクタ１９はオブジェクト（Ｏｂｊｅｃｔ）が参照（ｒｅｆｅｒｅｎｃｅ）されるか否かによって該当オブジェクトの資源の割当または資源の解除を管理するものである。ところで、多重ジャバアプリケーションのようなライフサイクルを有する多重ジャバアプリケーションにおいて複数のアプリケーションが実行される場合、アプリケーション上で資源の解除のための作業が正しく実行されなければ、アプリケーションが終了した状態でもガーベッジコレクタ１９はオブジェクトが実際に有効（ａｌｉｖｅ）な状態であるかを確認できないため、適切な資源の解除を行うことができないという問題点がある。
【００１１】
一方、アプリケーションで直接資源を割当および解除する場合を説明する。先ず、アプリケーションで資源を用いる場合にジャバ仮想マシーン１４を介して直ちに運営体系１５に資源の割当および解除を要請し、資源の割当に成功するようになれば直ちにその資源を用いるようになる。ここで、運営体系１５から資源の割当および解除が失敗した場合には該当作業を終了する。
【００１２】
一方、上記のようにアプリケーションが直接資源を解除する場合とは異なって、資源の解除をしない場合には、オブジェクトが回収される時にガーベッジコレクタ１９とファイナライザ（ｆｉｎａｌｉｚｅｒ）によって資源が解除される。
【００１３】
すなわち、ガーベッジコレクト（Ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｎｇ）が開始すれば、ガーベッジコレクタ１９はすべてのオブジェクトの参照有無を検査して参照されないオブジェクトを検査する。この時、参照されないオブジェクトのうちのファイナライズが宣言されたオブジェクトを探す。
【００１４】
次に、ガーベッジコレクタ１９は、ファイナライザ（ｆｉｎａｌｉｚｅｒ）が宣言されているすべてのオブジェクト（ｏｂｊｅｃｔ）のファイナライズを実行した後、ファイナライズによってさらに生成される参照されないオブジェクトを再び調べる。次に、参照されないオブジェクトをすべて解除してガーベッジコレクタ１９の動作を終了する。
【００１５】
しかし、ジャバアプリケーションで明らかに資源を回収しない場合、用いた資源はただガーベッジコレクタ１９によってのみ回収され、ここで、アプリケーションが終了した後にもガーベッジコレクタ１９が動作しなかったとすれば、再使用可能な資源が動作の終わったアプリケーションによって先に獲得されて用いることができないという問題点がある。
【００１６】
一方、従来の資源管理インターフェースを介して資源が管理される例を説明する。
先ず、アプリケーションが終了する場合、アプリケーション管理者１１の資源管理インターフェースに該当アプリケーションの資源を解除することを要求し、資源管理インターフェースは該当アプリケーションの資源を解除する役割を行う。
【００１７】
この時、各アプリケーションが用いる資源は、各々のオブジェクトによって維持および用いられる。したがって、資源管理インターフェースは資源を有するオブジェクトとオブジェクトが属しているアプリケーションに対する情報とを有し、アプリケーションの終了時に該当アプリケーションのオブジェクトが有する資源を呼び出してシステムに返却するのが一般的な方法である。
【００１８】
しかし、オブジェクトを介して資源を解除する場合にＪＮＩのような方法を介してネイティブ（ｎａｔｉｖｅ）資源を解除するべきであるが、これはスタックマシーン（ｓｔａｃｋ  ｍａｃｈｉｎｅ）のジャバの場合に新しいスタックを積んで進めなければならない作業であるため性能の低下をもたらし得る。しかし、性能の低下を避けるために、アプリケーションのＩＤとオブジェクトではない資源のみ資源管理インターフェースが維持するようになれば、資源管理インターフェースが資源を解除した後にもオブジェクトには資源に対する情報が残るようになる。
【００１９】
ここで、アプリケーションＩＤと資源のみを管理する資源管理インターフェースがアプリケーションの終了と共に該当アプリケーションの資源を強制的に運営体系に返却する場合、運営体系は返却された資源を他のアプリケーションに再使用することができるように割当てる。
【００２０】
この時、ガーベッジコレクタが実行されてファイナライザが実行され、オブジェクトに記録されていた資源を再び解除するようになれば、再使用されていた資源を用いていたアプリケーションは誤作動するようになる問題点がある。
【００２１】
特許文献１は、アプリケーションに資源を提供する少なくとも１つ以上のライブラリ部とコーネル部とを備えるアプリケーション実行装置であり、前記コーネル部はアプリケーションが終了すれば終了したアプリケーションがいずれであるかを資源に提供する各ライブラリ部に通知する手段を有し、前記各ライブラリ部は通知手段から通知された終了アプリケーションに提供した資源を回収する回収手段を含むアプリケーション実行装置を開示しているが、これはアプリケーションが終了すればライブラリ部によって不要な資源が回収されるものであって、仮想ＩＤを用いて資源を割当および解除する技術は全く開示されていない。
【特許文献１】日本公開特許第２００２−２５９１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
本発明は、多重ジャバアプリケーション環境において仮想ＩＤを用いて資源の割当および解除を行うことにより、資源をより効率的に利用することができるようにすることにその目的がある。
【００２３】
本発明の目的は、以上で言及した目的に制限されず、言及していないまた他の目的は下記記載によって当業者が明確に理解できるものである。
【課題を解決するための手段】
【００２４】
前記目的を達成するために、本発明の一態様に係わるジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置は、アプリケーションから資源の割当および資源の解除が要請されれば、運営体系に資源の割当および資源の解除を要請する資源管理部と、前記運営体系から割当てられた資源に対応する仮想ＩＤを生成する仮想ＩＤ生成部と、前記アプリケーションが前記仮想ＩＤを用いて資源の解除を要請すれば、前記仮想ＩＤの存在有無を検索するＩＤ検索部とを含む。
【００２５】
また、本発明の他の態様に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法は、アプリケーションから資源の割当が要請されれば、前記要請により運営体系に資源の割当を要請するステップと、
前記割当てられた資源に対応する仮想ＩＤを生成するステップと、前記アプリケーションから伝送されたアプリケーションＩＤ、前記生成された仮想ＩＤおよび割当てられた資源を含むテーブルを作成するステップと、
前記アプリケーションに仮想ＩＤおよび割当てられた資源を伝送するステップとを含む。
【００２６】
また、本発明のまた他の態様に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法は、アプリケーションから仮想ＩＤを用いて資源の解除が要請されるステップと、前記アプリケーションから伝送された仮想ＩＤが含まれたテーブルが存在するかを検索するステップと、前記検索の結果、前記伝送された仮想ＩＤが含まれたテーブルが存在すれば、運営体系に前記仮想ＩＤに対応する資源の解除を要請するステップと、前記資源が解除されれば前記仮想ＩＤが含まれたテーブルを削除するステップとを含む。
【発明の効果】
【００２７】
本発明の多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置およびその方法によれば、次のような効果が１つあるいはそれ以上ある。
【００２８】
多重ジャバアプリケーション環境で仮想ＩＤを用いて資源の割当および解除を行うことによって、重複解除を行う誤りを防止する利点がある。
【００２９】
また、多重ジャバアプリケーション環境でアプリケーション終了時にオブジェクトではない使用された資源だけを解除させることによって、資源が不足した環境で早く資源を再使用することができる利点がある。
【発明を実施するための最良の形態】
【００３０】
その他、実施形態の具体的な事項は、詳細な説明および図面に含まれている。
【００３１】
本発明の利点および特徴、そしてそれらを達成する方法は、添付する図面と共に詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下にて開示する実施形態に限定されず、互いに異なる多様な形態によって実施され、単に本実施形態は本発明の開示が完全なものとなるようにし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであって、本発明は請求項の範疇によってのみ定義されるものである。明細書の全体に亘り、同一参照符号は同一構成要素を示す。
【００３２】
以下、添付した図面を参照して、本発明の好ましい実施形態を詳細に説明する。
【００３３】
図２は、本発明の一実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置において、アプリケーションによって資源が用いられる例を示す図面である。
【００３４】
多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置は、少なくとも１つ以上のアプリケーション２１０、２２０を用いて資源を用いることができる。ここで、アプリケーション２１０、２２０は、ライフサイクル（Ｌｉｆｅ  Ｃｙｃｌｅ）を有する多重ジャバアプリケーション環境でのジャバアプリケーションであり得るが、例えば、エクスレット（Ｘｌｅｔ）、ミドレット（Ｍｉｄｄｌｅｌｅｔ）またはアプレット（Ａｐｐｌｅｔ）であり得る。
【００３５】
また、アプリケーション２１０、２２０によって用いられる資源は、メモリ資源２５１、ファイル資源２５２、およびネットワーク資源２５３のうちの少なくともいずれか１つであり得る。
【００３６】
図に示すように、第１アプリケーション２１０が２つのメモリ資源２５１および１つのネットワーク資源２５３を用い、第２アプリケーション２２０が１つのメモリ資源２５１、２つのファイル資源２５２および１つのネットワーク資源２５３を用いていることを示す。
【００３７】
すなわち、各々のアプリケーション２１０、２２０は互いに異なる複数の資源を同時に用いることができ、同一の資源を複数用いることができる。また、１つのアプリケーションによって、使用中である資源をまた他のアプリケーションが用いることもできる。
【００３８】
アプリケーションは随時発生して消滅し得るが、特定アプリケーションによって占有された資源が該当アプリケーションの消滅によって解除されなければ、以後に発生したアプリケーションはその資源を用いられない場合もある。
【００３９】
よって、本発明の仮想ＩＤを用いて資源を管理する装置は、各アプリケーションに割当てられた資源に対する使用および解除有無に対する情報を仮想ＩＤ（Ｖｉｒｔｕａｌ  ＩＤ：ＶＩＤ）を用いて管理することによって、アプリケーションから資源の解除要請時に直ちに該当資源を解除することによって、他のアプリケーションが該当資源を再使用することができるようにするものである。
【００４０】
例えば、ジャバ環境において、仮想ＩＤを用いて資源を管理する装置は、所定アプリケーションが資源の割当を要請する場合、運営体系から資源が割当てられた後に仮想ＩＤを生成し、生成された仮想ＩＤおよび割当てられた資源をテーブルに格納した後に該当アプリケーションで資源および生成された仮想ＩＤを伝送する。
【００４１】
また、アプリケーションが資源を解除する場合の運営体系に該当資源の解除を要請した後、該当資源に対応する仮想ＩＤが格納されたテーブルを削除することによって、他のアプリケーションが資源を再使用することができるようにする。以下、図３での多重ジャバアプリケーション環境に対する説明を後述する。
【００４２】
図３は、本発明の他の実施形態に係わる多重ジャバアプリケーション環境の構造を示すブロック図である。
【００４３】
多重ジャバアプリケーション３００は、アプリケーション管理者３１０、アプリケーション（３２１、３２２、および３２ｎ）、ミドルウェア３３０、ジャバ仮想マシーン３４０、資源管理インターフェース３５０、および運営体系３６０を含んで構成される。ここで、アプリケーションはジャバアプリケーションを含む。
【００４４】
アプリケーション管理者３１０は、アプリケーションの状態を切替えることによってアプリケーションのライフサイクルを管理する。ここで、アプリケーション管理者３１０は、ＯＣＡＰ（Ｏｐｅｎ  Ｃａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）、ＡＣＡＰ（Ａｄｖａｎｃｅｄ  ｏｐｅｎ  Ｃａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）等のミドルウェア３３０を介してアプリケーションの動作を管理することができる。
【００４５】
ジャバ仮想マシーン３４０は、アプリケーションに含まれたクラスをメモリに搭載し、クラスの実行コードを運営体系３６０の命令コードに変換する。
【００４６】
また、ジャバ仮想マシーン３４０は、多重ジャバアプリケーション３００に存在するアプリケーションの固有ＩＤを生成する。ここで、アプリケーションＩＤ生成部３５１は、アプリケーションのスレッド（Ｔｈｒｅａｄ）ＩＤを用いてアプリケーションＩＤを生成することができる。
【００４７】
資源管理インターフェース３５０は、ライフサイクルを有する多重ジャバアプリケーション３００上での資源の割当および資源の解除を行う。
【００４８】
例えば、資源管理インターフェース３５０は、割当てられた資源に対応する仮想ＩＤを生成した後、資源の割り当てを要請したアプリケーションから伝送されたアプリケーションＩＤ、仮想ＩＤ、および運営体系３６０から割当てられた資源を１つのテーブルとして作成および格納する。
【００４９】
次に、該当アプリケーションに割当てられた資源、および生成された仮想ＩＤを伝送する。
【００５０】
この後、所定アプリケーションが仮想ＩＤを用いて資源の解除を要請すれば、運営体系３６０に伝送された仮想ＩＤに対応する資源の解除を要請し、該当仮想ＩＤが含まれたテーブルを削除する。
【００５１】
また、資源管理インターフェース３５０は、多重ジャバアプリケーション３００内に別に備えられることもでき、ジャバ仮想マシーン３４０内に備えられることもできる。本発明では多重ジャバアプリケーション３００内に別に備えられた構成を例にあげて説明する。以下、図４で資源管理インターフェース３５０に対する説明を後述する。
【００５２】
図４は、本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置の内部ブロック図である。
【００５３】
図に示すように、資源管理インターフェース３５０は、仮想ＩＤ生成部３５１、格納部３５２、ＩＤ検索部３５３、資源管理部３５４、および制御部３５５を含んで構成される。
【００５４】
この時、本実施形態で用いられる「〜部」という用語は、ソフトウェアまたはＦＰＧＡまたはＡＳＩＣのようなハードウェア構成要素を意味し、「〜部」はある役割を行う。ところが「〜部」は、ソフトウェアまたはハードウェアに限定される意味ではない。「〜部」は、アドレッシングできる格納媒体にあるように構成することもでき、１つまたはそれ以上のプロセッサを再生させるように構成することもできる。したがって、一例として「〜部」はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、および変数を含む。構成要素と「〜部」の中で提供されている機能は、さらに小さい数の構成要素および「〜部」に結合したり、追加的な構成要素と「〜部」にさらに分離したりすることができる。それだけでなく、構成要素および「〜部」は、デバイスまたは保安マルチメディアカード内の１つまたはそれ以上のＣＰＵを再生させるように実現することもできる。
【００５５】
仮想ＩＤ生成部３５１は、所定アプリケーションに資源を割当てる時、該当資源に付与される固有な仮想ＩＤ（ＶＩＤ）を生成する。ここで、仮想ＩＤは、資源管理インターフェース３５０が運営体系３６０から割当てられた資源に対応するように生成されることであって、すなわち資源が割当てられる度に生成される固有ＩＤである。また、資源は、メモリ資源、ファイル資源、およびネットワーク資源のうちの少なくとも１つを含むことができる。すなわち、アプリケーションは、メモリ資源、ファイル資源、およびネットワーク資源のうちの少なくとも１つを用いることができるものであり、各々の資源を複数用いることもできる。ここで、アプリケーションは、エクスレット、ミドレットまたはアプレットのように所定のライフサイクルを有するコンテインメントフレームワーク環境でのジャバアプリケーションであることができる。
【００５６】
例えば、所定アプリケーションから資源の割当が要請されれば、運営体系３６０から資源が割当てられて、仮想ＩＤ生成部３５１は割当てられた資源に対する仮想ＩＤを生成する。
【００５７】
格納部３５２は、仮想ＩＤ生成部３５１が生成したアプリケーションＩＤおよび仮想ＩＤ、運営体系３６０から割当てられた資源、およびアプリケーションを介して伝送されたアプリケーションＩＤが対応して作成されたテーブルを格納する。ここで、格納部３５２に格納されたテーブルは、資源の割当および解除されることによって更新され得る。以下、図５で格納部３５２に格納されたテーブルに対する説明を後述する。
【００５８】
ここで、格納部３５２は、ハードディスク、フラッシュメモリ、ＣＦカード（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（登録商標）  Ｃａｒｄ）、ＳＤカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  Ｃａｒｄ）、ＳＭカード（Ｓｍａｒｔ  Ｍｅｄｉａ（登録商標）Ｃａｒｄ）、ＭＭＣカード（Ｍｕｌｔｉｍｅｄｉａ  Ｃａｒｄ）またはメモリスティック（Ｍｅｍｏｒｙ  Ｓｔｉｃｋ）等の情報の入出力が可能なモジュールをいう。
【００５９】
ＩＤ検索部３５３は、アプリケーションおよびガーベッジコレクションが仮想ＩＤ（またはアプリケーションＩＤ）を用いて資源の解除を要請した場合、格納部３５２に格納されたテーブル内に伝送された仮想ＩＤ（またはアプリケーションＩＤ）が存在するかを検索する。
【００６０】
例えば、アプリケーションおよびガーベッジコレクションが仮想ＩＤを用いて所定の資源の解除を要請する場合、ＩＤ検索部３５３は伝送された仮想ＩＤが含まれたテーブルを検索する。
【００６１】
また、アプリケーションがすべての資源の解除を要請する場合、ＩＤ検索部３５３はすべての資源の解除を要請したアプリケーションのＩＤが含まれたテーブルを検索する。
【００６２】
資源管理部３５４は、アプリケーションの資源の割当要請によって運営体系３６０から所定の資源が割当てられる。
【００６３】
また、資源管理部３５４は、アプリケーションおよびガーベッジコレクションから所定の資源の解除が要請されれば、ＩＤ検索部３５３の検索結果に基づいて該当資源の解除有無を決定する。
【００６４】
例えば、アプリケーションおよびガーベッジコレクションが仮想ＩＤを用いて所定の資源の解除を要請すれば、資源管理部３５４はＩＤ検索部３５３から仮想ＩＤの存在有無を伝送される。
【００６５】
この時、検索の結果、該当仮想ＩＤが存在する場合、資源管理部３５４は運営体系３６０に該当資源の解除を要請し、検索の結果、該当仮想ＩＤが存在しない場合資源管理部３５４は運営体系３６０に該当資源の解除を要請しない。
【００６６】
制御部３５５は、アプリケーションから伝送されたアプリケーションＩＤ、仮想ＩＤ生成部３５１を介して生成された仮想ＩＤ、および資源管理部３５４を介して割当てられた資源が対応されているテーブルを作成し、資源管理部３５４により所定の資源が解除されれば、解除された資源が含まれたテーブルを削除する。
【００６７】
また、制御部３５５は、資源管理インターフェース３５０を構成する各機能性ブロック（３５１〜３５４）の動作を制御する。
【００６８】
図５は、本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置が管理するテーブルの例を示す図面である。
【００６９】
図に示すように、資源管理インターフェース３５０の格納部３５２には、複数のテーブル５１０、５２０が格納されており、テーブル内には資源を要請したアプリケーションのＩＤ情報５２１、仮想ＩＤ情報５２２、および割当てられた資源５２３が格納されている。
【００７０】
例えば、資源管理インターフェース３５０がアプリケーションから所定の資源の割当が要請されれば、資源管理インターフェース３５０の資源管理部３５４は運営体系３６０に資源の割当を要請して資源が割当てられ、仮想ＩＤ生成部３５１は割当てられた資源に対する固有な仮想ＩＤを生成する。ここで、アプリケーションＩＤは資源を要請したアプリケーションから伝送される。
【００７１】
次に、制御部３５５は、アプリケーションＩＤ５２１、仮想ＩＤ５２２、および資源５２３を１つのテーブル（例えば、テーブル２  ５２０）に作成した後、格納部３５２に格納する。
【００７２】
図６は、本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中の資源を割当てる過程を示すフローチャートである。
【００７３】
先ず、アプリケーション３２１が資源管理インターフェース３５０に資源の割当を要請すれば（Ｓ６００）、資源管理インターフェース３５０の資源管理部３５４は運営体系３６０に資源の割当を要請する（Ｓ６１０）。この時、アプリケーション３２１は自身のアプリケーションＩＤを共に伝送する。
【００７４】
次に、制御部３５５は、運営体系３６０から資源が割当てられたかを判断する（Ｓ６２０）。判断の結果、資源が割当てられた場合、仮想ＩＤ生成部３５１は割当てられた資源に対応する固有ＩＤを生成する（Ｓ６３０）。
【００７５】
次に、制御部３５５は、アプリケーションＩＤ、仮想ＩＤ、および運営体系３６０から割当てられた資源を含むテーブルを作成した後、作成されたテーブルを格納部３５２に格納する（Ｓ６４０）。
【００７６】
次に、割当てられた資源およびそれに対応する仮想ＩＤを該当アプリケーション３２１に伝送する（Ｓ６５０）。
【００７７】
一方、運営体系３６０から資源が割当てられたかを判断した結果、資源の割当がなされない場合（Ｓ６２０）、制御部３５５は資源管理部３５４を介して再要請を行ったり、アプリケーション３２１に資源の割当が失敗したことを知らせたりする。
【００７８】
図７ａと図７ｂは、本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中の資源を解除する過程を示すフローチャートである。ここで、図７ａはアプリケーションから資源の解除要請された場合、資源管理インターフェースで資源の解除を行う過程を示す図面であり、図７ｂはガーベッジコレクタから資源の解除が要請された場合、資源管理インターフェースで資源の解除を行う過程を示す図面である。
【００７９】
図７ａを参照して、アプリケーションの要請により資源の解除を行う過程を説明する。
先ず、アプリケーション３２１が仮想ＩＤを用いて資源管理インターフェース３５０に資源の解除を要請すれば（Ｓ７１０）、資源管理インターフェース３５０のＩＤ検索部３５３はアプリケーション３２１から伝送された仮想ＩＤが含まれたテーブルを検索する（Ｓ７１２）。ここで、アプリケーション３２１が仮想ＩＤを用いて資源の解除を要請するのは、複数のアプリケーションで同一の資源を用いる場合、所定の資源を用いる各々のアプリケーションは資源に対する固有仮想ＩＤを有し、仮想ＩＤで資源の解除を要請する場合、資源管理インターフェース３５０は該当仮想ＩＤに対する資源のみを解除することによって、他のアプリケーションが用いている他の仮想ＩＤで提供されていた資源は解除しないようにするためである。
【００８０】
次に、資源管理部３５４は、ＩＤ検索部３５３を介して検索された仮想ＩＤが含まれたテーブルを参照し、対応する資源に対する解除を運営体系３６０に要請する（Ｓ７１４）。
【００８１】
次に、制御部３５５は、該当資源が解除されたかを判断し（Ｓ７１６）、判断の結果、資源が解除された場合、該当資源が格納されたテーブルを格納部３５２で削除する（Ｓ７１８）。
【００８２】
一方、該当資源の解除有無を判断した結果、資源が解除されていない場合（Ｓ７１６）、資源管理部３５４は運営体系３６０に該当資源の解除を再び要請する。
【００８３】
図７ｂを参照して、ガーベッジコレクタの要請により資源の解除を行う過程を説明する。
先ず、ガーベッジコレクタで仮想ＩＤを用いて資源管理インターフェース３５０に資源の解除を要請すれば（Ｓ７５０）、資源管理インターフェース３５０のＩＤ検索部３５３はガーベッジコレクタから伝送された仮想ＩＤが含まれたテーブルが存在するかを検索する（Ｓ７５２）。ここで、ガーベッジコレクタが仮想ＩＤを用いて資源の解除を要請するのは、複数のアプリケーションで同一の資源を用いる場合、所定の資源を用いる各々のアプリケーションは資源に対する固有仮想ＩＤ有していて、仮想ＩＤに資源の解除を要請する場合、資源管理インターフェース３５０は該当仮想ＩＤに対する資源だけを解除することによって、他のアプリケーションが用いている他の仮想ＩＤで提供されていた資源は解除しないためである。
【００８４】
検索の結果、ガーベッジコレクタが伝送した仮想ＩＤが含まれたテーブルが存在すれば（Ｓ７５４）、資源管理部３５４は検索された仮想ＩＤが含まれたテーブルを参照して、対応する資源に対する解除を運営体系３６０に要請する（Ｓ７５６）。
【００８５】
次に、制御部３５５は該当資源が解除されたかを判断し（Ｓ７５８）、判断の結果、資源が解除された場合、該当資源が含まれたテーブルを格納部３５２で削除する（Ｓ７６０）。
【００８６】
一方、該当資源の解除有無を判断した結果、資源が解除されていない場合（Ｓ７５８）、資源管理部３５４は運営体系３６０に該当資源の解除を再び要請する。
【００８７】
また、検索の結果、ガーベッジコレクタが伝送した仮想ＩＤが含まれたテーブルが存在しない場合（Ｓ７５４）、制御部３５５はすでに解除された資源に対してガーベッジコレクタが解除を要請することと判断して、ガーベッジコレクタの要請を行わない（Ｓ７６２）。
【００８８】
したがって、資源管理インターフェース３５０は、仮想ＩＤを用いてすでに解除された資源に対する重複解除を行わないことによって、同一の資源を用いているアプリケーションのプログラムが非正常に動作するようになる誤りが発生しないようにする。
【００８９】
図８は、本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中のすべての資源を解除する過程を示すフローチャートである。
【００９０】
先ず、アプリケーション３２１が資源管理インターフェース３５０に用いたすべての資源の解除を要請する（Ｓ８００）。この時、アプリケーション３２１は自身のアプリケーションＩＤを共に伝送する。
【００９１】
次に、資源管理インターフェース３５０のＩＤ検索部３５３は資源解除を要請したアプリケーションのＩＤが含まれたテーブルを検索する（Ｓ８１０）。
【００９２】
検索の結果、アプリケーションのＩＤが含まれたテーブルが存在すれば（Ｓ８２０）、資源管理部３５４は検索されたテーブルを参照して、アプリケーションＩＤに対応する資源に対する解除を運営体系３６０に要請する（Ｓ８３０）。
【００９３】
次に、制御部３５５は該当資源が解除されたかを判断し（Ｓ８４０）、判断の結果、資源が解除された場合、該当資源が格納されたテーブルを格納部３５２で削除する（Ｓ８５０）。
【００９４】
一方、該当資源の解除有無を判断した結果、資源が解除されない場合（Ｓ８４０）、資源管理部３５４は運営体系３６０に該当資源の解除を再び要請する。
【００９５】
図９は、本発明のまた他の実施形態により多重ジャバアプリケーション環境で資源の割当および解除を行うアプリケーション、資源管理インターフェース、および運営体系の動作を示す図面である。
【００９６】
アプリケーションＡ９１０が資源管理インターフェース３５０に資源の割当を要請すれば、資源管理インターフェース３５０は運営体系３６０に資源の割当を要請する。この時、アプリケーションＡ９１０は自身のアプリケーションＩＤを共に伝送する。
【００９７】
次に、資源管理インターフェース３５０に運営体系３６０から資源ａが割当てられれば、資源管理インターフェース３５０は資源を要請したアプリケーションのＩＤ（例えば、アプリケーションＡＡ）９３１、割当てられた資源ａに対応する仮想ＩＤ（例えば、０１０１）９３２、および割当てられた資源ａ９３３を含むテーブル（例えば、テーブル１）を作成して格納する。
【００９８】
次に、アプリケーションＡ９１０に仮想ＩＤ（例えば、０１０１）９３２、および資源ａ９３３を伝送する。
【００９９】
この後、アプリケーションＡ９１０は、仮想ＩＤ（例えば、０１０１）９３２を用いて資源管理インターフェース３５０に資源の解除を要請する。ここで、資源管理インターフェース３５０は伝送された仮想ＩＤ（例えば、０１０１）９３２が含まれたテーブルを検索する。
【０１００】
検索の結果、伝送された仮想ＩＤ（例えば、０１０１）９３２が含まれたテーブル（例えば、テーブル１）が存在すれば、資源管理インターフェース３５０は運営体系３６０に伝送された仮想ＩＤに対応する資源の解除を要請する。
【０１０１】
次に、資源管理インターフェース３５０は伝送された仮想ＩＤ（例えば、０１０１）９３２が含まれたテーブル（例えば、テーブル１）を削除する。
【０１０２】
一方、アプリケーションＢ９２０が資源管理インターフェース３５０に資源の割当を要請すれば、資源管理インターフェース３５０は運営体系３６０に資源の割当を要請する。
【０１０３】
ここで、運営体系３６０は、以前に解除された資源ａを資源管理インターフェース３５０に割当てる。
【０１０４】
次に、資源管理インターフェース３５０は、資源を要請したアプリケーションのＩＤ（例えば、アプリケーションＢＢ）９５１、割当てられた資源ａに対応する仮想ＩＤ（例えば、０５０１）９５２、および割当てられた資源ａ９５３を含むテーブル（例えば、テーブル２）を作成して格納する。
【０１０５】
次に、アプリケーションＢ９２０に仮想ＩＤ（例えば、０５０１）９５２、および資源ａ９５３を伝送する。
【０１０６】
この後、ガーベッジコレクタが仮想ＩＤ（例えば、０１０１）を用いて資源管理インターフェース３５０に資源の解除を要請すれば、資源管理インターフェース３５０は伝送された仮想ＩＤ（例えば、０１０１）が含まれたテーブルが存在するかを判断する。
【０１０７】
判断の結果、該当仮想ＩＤ（例えば、０１０１）が含まれたテーブルが存在しなければ、資源管理インターフェース３５０はすでに解除された資源に対してガーベッジコレクタが解除を要請することと判断し、ガーベッジコレクタの要請を行わない。
【０１０８】
ここで、すでに解除された仮想ＩＤ（例えば、０１０１）に対応する資源ａに対する解除を行わないことによって、アプリケーションＢで用いている資源ａが解除されなくなるため、アプリケーションＢのプログラムが非正常に動作するようになる誤りは発生しない。
【０１０９】
以上、添付した図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野で通常の知識を有する者であれば、本発明がその技術的思想や必須の特徴を変更せず、他の具体的な形態によって実施することができるということを理解できる。したがって、以上で記述した実施形態はすべての面で例示的なものであり、限定的なものではないことを理解しなければならない。
【図面の簡単な説明】
【０１１０】
【図１ａ】従来の多重ジャバアプリケーションの構造を示すブロック図である。
【図１ｂ】従来の多重ジャバアプリケーションの構造を示すブロック図である。
【図２】本発明の一実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置において、アプリケーションによって資源が用いられる例を示す図である。
【図３】本発明の他の実施形態に係わる多重ジャバアプリケーション環境の構造を示すブロック図である。
【図４】本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置の内部ブロック図である。
【図５】本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する装置が管理するテーブルの例を示す図である。
【図６】本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中の資源を割当てる過程を示すフローチャートである。
【図７ａ】本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中の資源を解除する過程を示すフローチャートである。
【図７ｂ】本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中の資源を解除する過程を示すフローチャートである。
【図８】本発明のまた他の実施形態に係わる多重ジャバアプリケーション環境で仮想ＩＤを用いて資源を管理する方法中のすべての資源を解除する過程を示すフローチャートである。
【図９】本発明のまた他の実施形態により多重ジャバアプリケーション環境で資源の割当および解除を行うアプリケーション、資源管理インターフェース、および運営体系の動作を示す図である。
【符号の説明】
【０１１１】
３００      多重ジャバアプリケーション
３１０      アプリケーション管理者
３４０      ジャバ仮想マシーン
３５０      資源管理インターフェース
３５１      仮想ＩＤ生成部
３５２      格納部
３５３      ＩＤ検索部
３５４      資源管理部
３５５      制御部
【図１ａ】
2007226800.tif 000003
【図１ｂ】
2007226800.tif 000004
【図２】
2007226800.tif 000005
【図３】
2007226800.tif 000006
【図４】
2007226800.tif 000007
【図５】
2007226800.tif 000008
【図６】
2007226800.tif 000009
【図７ａ】
2007226800.tif 000010
【図７ｂ】
2007226800.tif 000011
【図８】
2007226800.tif 000012
【図９】
2007226800.tif 000013