(57)【要約】【課題】計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得すること、及び、計算リソースを効率的に用いて複数のアプリケーションを実行すること。【解決手段】コンテンツダウンロード処理部４４０が、アプリケーション情報に基づいて、実行可能と判断されたアプリケーション及び取得されていないと判断した共有モジュールダウンロードする。アプリケーション起動処理部４５０が、所望の共有モジュールがロードされていないと判断した場合に、当該共有モジュールをメモリ上にロードし、所望のインスタンスが生成されていないと判断した場合に、当該インスタンスをメモリ上に生成する。イベント処理部４６０が、検知されたイベントを、当該イベントの配送を必要とするアプリケーションに配送する。メモリ領域解放処理部４８０がアプリケーションによるメモリ領域への不正なアクセスを検出した場合に、アプリケーションを終了させる。【選択図】図４
2005293316.tif 000002
【特許請求の範囲】
【請求項１】
プログラム提供装置からアプリケーションを取得する端末装置であって、
前記アプリケーションに係る情報を示すアプリケーション情報を取得するアプリケーション情報取得部と、
前記アプリケーション情報に基づいて、前記アプリケーションの実行に必要なモジュールが、既に取得されているか否かについて判断する取得判断部と、
前記モジュールが取得されていないと判断された場合に、前記モジュールを取得するモジュール取得部とを備えることを特徴とする端末装置。
【請求項２】
特定の状態が生じたことを示すイベントを検知するイベント検知部と、
前記アプリケーションと前記イベントの種別とを関連づけて管理するイベント管理部と、
該イベント管理部を参照して、前記イベント検知部によって検知された前記イベントの種別に関連づけられている前記アプリケーションに対して、該イベントを通知するイベント通知部とを備えることを特徴とする請求項１に記載の端末装置。
【請求項３】
アクティブなアプリケーションを管理するアクティブアプリケーション管理部と、
前記イベント検知部によって切り替えイベントが検知された場合に、アクティブなアプリケーションを変更するアクティブアプリケーション変更部とを備え、
前記イベント通知部は、前記端末装置に対する入力操作があったことを示す入力イベントを、アクティブなアプリケーションに通知することを特徴とする請求項２に記載の端末装置。
【請求項４】
前記アプリケーションに割り当てられるメモリの領域であるメモリ領域を管理するメモリ領域管理部と、
該メモリ領域管理部を参照して、前記アプリケーションによるメモリ領域への不正なアクセスを検出する不正アクセス検出部と、
前記不正アクセス検出部によって、前記アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、該アプリケーションを終了させる終了処理部とを備えることを特徴とする請求項１乃至３のいずれか１項に記載の端末装置。
【請求項５】
アプリケーションを実行する端末装置であって、
前記アプリケーション、又は、該アプリケーションの実行に必要なモジュールが、メモリ上にロードされているか否かを管理するロード済みプログラム管理部と、
該ロード済みプログラム管理部を参照して、所望のモジュールがロードされていないと判断した場合に、該モジュールを前記メモリ上にロードするロード部と、
前記ロード部によってロードされた前記モジュールに含まれるクラスに基づいてインスタンスが前記メモリ上に生成されているか否かを管理する生成済みインスタンス管理部と、
前記生成済みインスタンス管理部を参照して、所望のインスタンスが生成されていないと判断した場合に、該インスタンスを前記メモリ上に生成するインスタンス生成部とを備えることを特徴とする端末装置。
【請求項６】
端末装置に対してアプリケーションを提供するプログラム提供装置であって、
前記端末装置からのアプリケーション情報要求に応じて、前記アプリケーションに係る情報を示すアプリケーション情報を提供するアプリケーション情報提供部と、
前記アプリケーション情報に基づいて、前記アプリケーションの実行に必要なモジュールが取得されていないと判断した前記端末装置からのモジュール要求に応じて、前記モジュールを提供するモジュール提供部とを備えることを特徴とするプログラム提供装置。
【請求項７】
端末装置が、プログラム提供装置からアプリケーションを取得するプログラム取得方法であって、
前記プログラム提供装置が、前記端末装置からのアプリケーション情報要求に応じて、前記アプリケーションに係る情報を示すアプリケーション情報を提供する工程と、
前記端末装置が、前記プログラム提供装置によって提供された前記アプリケーション情報を取得する工程と、
前記端末装置が、前記アプリケーション情報に基づいて、前記アプリケーションの実行に必要なモジュールが、既に取得されているか否かについて判断する工程と、
前記端末装置が、前記モジュールが取得されていないと判断した場合に、前記プログラム提供装置にモジュール要求を送信する工程と、
前記プログラム提供装置が、前記モジュール要求に応じて前記モジュールを提供する工程とを備えることを特徴とするプログラム取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置がプログラム提供装置からアプリケーションを取得するプログラム取得方法、及び、プログラム取得方法に用いられる端末装置及びプログラム提供装置に関する。
【背景技術】
【０００２】
従来、移動端末が、インターネット等のネットワークを介して、コンテンツとしてのアプリケーションをプログラム提供装置から取得する技術が提供されている。最近では、移動端末が、上述のネットワークを介して、Ｊａｖａ（登録商標）アプリケーションをプログラム提供装置から取得し、当該アプリケーションを実行するサービスが実現されている。
【０００３】
ただし、アプリケーションを取得した移動端末が、当該アプリケーションを実行できることは保証されない。特に移動端末は、ＣＰＵやメモリ等の計算リソースが限られているという特徴を有するため、実行できるアプリケーションも大きく制限される。
【０００４】
このため、移動端末が、ネットワークを介して、プログラム提供装置から取得したアプリケーションを当該移動端末で実行できると判断した場合にのみ、取得した当該アプリケーションを外部記憶装置に保存し、当該アプリケーションを実行する技術が提供されている（例えば、特許文献１）。
【特許文献１】特開２００４−５４１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、移動端末は、計算リソースが限られているにも関わらず、所望のアプリケーションの実行に必要なモジュールが既に取得されているか否かについて判断しなかったため、既に取得した複数のアプリケーションの実行に必要なモジュールを重複して取得することがあり、計算リソースを効率的に用いることができなかった。
【０００６】
又、移動端末は、計算リソースが限られているため、複数のアプリケーションを同時に実行することが困難であった。
【０００７】
そこで、本発明は、計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得すること、及び、計算リソースを効率的に用いて複数のアプリケーションを実行することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の特徴は、プログラム提供装置からアプリケーションを取得する端末装置であって、アプリケーションに係る情報を示すアプリケーション情報を取得するアプリケーション情報取得部と、アプリケーション情報に基づいて、アプリケーションの実行に必要なモジュールが、既に取得されているか否かについて判断する取得判断部と、モジュールが取得されていないと判断された場合に、モジュールを取得するモジュール取得部とを備えることを要旨とする。
【０００９】
かかる発明によれば、モジュール取得部が、アプリケーションの実行に必要なモジュールの内、取得されていないと判断されたモジュールを選択的に取得するため、端末装置は、モジュールを重複して取得することによる無駄な計算リソースの消費を防ぐことができる。よって、端末装置は、計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得することができる。
【００１０】
又、本発明の第１の特徴において、特定の状態が生じたことを示すイベントを検知するイベント検知部と、アプリケーションとイベントの種別とを関連づけて管理するイベント管理部と、イベント管理部を参照して、イベント検知部によって検知されたイベントの種別に関連づけられているアプリケーションに対して、そのイベントを通知するイベント通知部とを備えるように構成されていてもよい。
【００１１】
かかる発明によれば、イベント通知部が、検知されたイベントを当該イベントの種別に関連づけられているアプリケーションに通知するため、端末装置は、複数のアプリケーションを同時に実行する場合でも、検知したイベントを当該イベントの通知を必要としているアプリケーションに通知することができる。
【００１２】
更に、本発明の第１の特徴において、アクティブなアプリケーションを管理するアクティブアプリケーション管理部と、イベント検知部によって、切り替えイベントが検知された場合に、アクティブなアプリケーションを変更するアクティブアプリケーション変更部とを備え、イベント通知部は、端末装置に対する入力操作があったことを示す入力イベントを、アクティブなアプリケーションに通知するように構成されていてもよい。
【００１３】
かかる発明によれば、アクティブアプリケーション管理部が、アクティブなアプリケーションを管理し、切り替えイベントが検知された場合に、アクティブアプリケーション変更部が、アクティブなアプリケーションを変更する。そして、イベント通知部が、入力イベントをアクティブなアプリケーションに通知するため、端末装置は、複数のアプリケーションを実行する場合に、入力イベントの通知を受けるアクティブなアプリケーションを適切に管理することができる。
【００１４】
本発明の第１の特徴において、アプリケーションに割り当てられるメモリの領域であるメモリ領域を管理するメモリ領域管理部と、メモリ領域管理部を参照して、アプリケーションによるメモリ領域への不正なアクセスを検出する不正アクセス検出部と、不正アクセス検出部によって、アプリケーションによる不正なアクセスが検出された場合に、アプリケーションを終了させる終了処理部とを備えるように構成されていてもよい。
【００１５】
かかる発明によれば、終了処理部が、アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、そのアプリケーションを終了させるため、端末装置は、あるアプリケーションによるメモリ領域への不正なアクセスが他のアプリケーションに影響を与えることを防ぐことができる。
【００１６】
本発明の第２の特徴は、アプリケーションを実行する端末装置であって、アプリケーション、又は、アプリケーションの実行に必要なモジュールが、メモリ上にロードされているか否かを管理するロード済みプログラム管理部と、ロード済みプログラム管理部を参照して、所望のモジュールがロードされていないと判断した場合に、当該モジュールをメモリ上にロードするロード部と、ロード部によってロードされたモジュールに含まれるクラスに基づいてインスタンスがメモリ上に生成されているか否かを管理する生成済みインスタンス管理部と、生成済みインスタンス管理部を参照して、所望のインスタンスが生成されていないと判断した場合に、インスタンスをメモリ上に生成するインスタンス生成部とを備えることを要旨とする。
【００１７】
かかる発明によれば、ロード部が、所望のモジュールがメモリ上にロードされていないと判断された場合にそのモジュールをメモリ上にロードし、インスタンス生成部が、所望のインスタンスが生成されていないと判断した場合にそのインスタンスをメモリ上に生成するため、端末装置は、不要なモジュールをメモリにロードすることや不要なインスタンスをメモリ上に生成することを防ぐことができる。よって、端末装置は、計算リソースを効率的に用いて複数のアプリケーションを実行することができる。
【００１８】
本発明の第３の特徴は、端末装置に対してアプリケーションを提供するプログラム提供装置であって、端末装置からのアプリケーション情報要求に応じて、アプリケーションに係る情報を示すアプリケーション情報を提供するアプリケーション情報提供部と、アプリケーション情報に基づいて、アプリケーションの実行に必要なモジュールが取得されていないと判断した端末装置からのモジュール要求に応じて、モジュールを提供するモジュール提供部とを備えることを要旨とする。
【００１９】
本発明の第４の特徴は、端末装置が、プログラム提供装置からアプリケーションを取得するプログラム取得方法であって、プログラム提供装置が、端末装置からのアプリケーション情報要求に応じて、アプリケーションに係る情報を示すアプリケーション情報を提供する工程と、端末装置が、プログラム提供装置によって提供されたアプリケーション情報を取得する工程と、端末装置が、アプリケーション情報に基づいて、アプリケーションの実行に必要なモジュールが既に取得されているか否かについて判断する工程と、端末装置が、モジュールが取得されていないと判断した場合に、プログラム提供装置にモジュール要求を送信する工程と、プログラム提供装置が、モジュール要求に応じてモジュールを提供する工程とを備えることを要旨とする。
【発明の効果】
【００２０】
以上説明したように、本発明によれば、計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得すること、及び、計算リソースを効率的に用いて複数のアプリケーションを実行することが可能となる。
【発明を実施するための最良の形態】
【００２１】
（本発明の一実施形態に係るコンテンツダウンロードシステムの構成）
図１〜図１３を参照して、本実施形態に係るコンテンツダウンロードシステム１の構成について説明する。図１に示すように、コンテンツダウンロードシステム１は、ネットワーク１００と、ゲートウェイ装置２００と、コンテンツダウンロード装置３００と、移動端末４００とを備える。
【００２２】
移動端末４００は、プログラム提供装置であるコンテンツダウンロード装置３００からアプリケーションを取得する端末装置である。又、コンテンツダウンロード装置３００は、端末装置である移動端末４００に対してアプリケーションを提供するプログラム提供装置である。ゲートウェイ装置２００は、移動端末４００と、インターネット等のネットワーク１００との間の通信トラフィックを中継するものである。
【００２３】
次に、コンテンツダウンロード装置３００について詳細に説明する。図２に示すように、コンテンツダウンロード装置３００は、通信部３１０と、アプリケーション情報データベース３２０と、コンテンツデータベース３３０と、アプリケーション情報提供部３４０と、アプリケーション提供部３５０と、共有モジュール提供部３６０と、全体管理部３７０とを備える。
【００２４】
通信部３１０は、ゲートウェイ装置２００とネットワーク１００とを介して、移動端末４００との間で通信するものである。
【００２５】
アプリケーション情報データベース３２０は、アプリケーション毎に、アプリケーションに係る情報を示すアプリケーション情報を保持するものである。具体的には、アプリケーション情報データベース３２０は、図３に示すように、アプリケーション情報６００を保持する。
【００２６】
アプリケーション情報６００は、アプリケーションに係る情報として、アプリケーション実行情報Ａと、共有モジュール情報Ｂ，Ｃとを含む。アプリケーション実行情報Ａは、アプリケーション名と、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）と、ファイルサイズと、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）サイズとを含む。尚、図３は、アプリケーション４９０ａに係るアプリケーション情報を示すものとする。
【００２７】
ここで、ＵＲＬは、コンテンツダウンロード装置３００上で、アプリケーションが格納されている場所を示す情報である。ファイルサイズは、コンテンツダウンロード装置３００によってファイルとして格納されているアプリケーションのバイト数を示す情報である。ＲＡＭサイズは、アプリケーションの実行に必要なＲＡＭのバイト数を示す情報である。
【００２８】
尚、アプリケーション実行情報Ａは、ファイルサイズとＲＡＭサイズの他にも、ＣＰＵの処理速度等の計算リソースに関する情報を含んでもよい。
【００２９】
又、共有モジュール情報は、当該アプリケーションが共有モジュールを必要としない場合は存在せず、当該アプリケーションが複数の共有モジュールを必要とする場合は複数存在する。図３の例では、アプリケーション４９０ａが２つの共有モジュールを必要とすることが分かる。
【００３０】
各共有モジュール情報は、共有モジュール名と、ＵＲＬと、ファイルサイズと、ＲＡＭサイズと、元ＵＲＬとを含む。ここで、元ＵＲＬは、共有モジュールの提供元であるコンテンツダウンロード装置上で、当該共有モジュールが格納されている場所を示す情報である。このため、共有モジュールが、提供元のコンテンツダウンロード装置からコピーされてコンテンツダウンロード装置３００に格納されている場合には、元ＵＲＬとＵＲＬとは異なる。元ＵＲＬは、比較する共有モジュール情報を識別するためのＵＲＮ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｎａｍｅ）として用いられる。
【００３１】
尚、アプリケーション情報を取得した移動端末４００が、共有モジュールの提供元のコンテンツダウンロード処理部からではなく、ＵＲＬに基づいてコンテンツダウンロード装置３００から共有モジュールを取得することにより、当該共有モジュールの提供元であるコンテンツダウンロード装置の負荷が軽減される。
【００３２】
コンテンツデータベース３３０は、アプリケーション及びアプリケーションの実行に必要な共有モジュールをコンテンツとして格納するものである。
【００３３】
アプリケーションは、特定の機能を提供するソフトウェアであり、例えば、メモ帳ソフト、スケジュール管理ソフト、ゲームソフト等を含む。又、アプリケーションは、移動端末４００における基本的な機能を提供するネイティブアプリケーションであってもよいし、オブジェクト指向言語であるＪａｖａ（登録商標）によって記述されたアプリケーションであってもよい。ネイティブアプリケーションには、例えば、電話の発着信機能やメールの送受信機能を提供するアプリケーションや、ＯＳに相当するアプリケーション等が含まれる。
【００３４】
ただし、本実施形態において、コンテンツダウンロード装置３００から提供されるコンテンツは、オブジェクト指向言語によって記述されているものとする。尚、アプリケーションは、例えば、当該アプリケーションを圧縮したＪＡＲファイルとしてコンテンツデータベース３３０に格納されている。
【００３５】
アプリケーション情報提供部３４０は、移動端末４００から、通信部３１０を介して取得したアプリケーション情報要求に応じて、アプリケーション情報を提供するものである。
【００３６】
具体的には、アプリケーション情報提供部３４０は、アプリケーション情報要求に応じて、アプリケーション情報データベース３２０から所望のアプリケーション情報を取得し、取得したアプリケーション情報を移動端末４００に提供するように構成されている。ここで、アプリケーション情報要求は、ＵＲＬやアプリケーション名やアプリケーションＩＤ等のアプリケーションを特定することができる情報を用いて、所望のアプリケーションを指定している。
【００３７】
アプリケーション提供部３５０は、アプリケーション情報に基づいて、アプリケーションを実行可能と判断した移動端末４００からのアプリケーション要求に応じてアプリケーションを提供するものである。
【００３８】
具体的には、アプリケーション提供部３５０は、移動端末４００から取得したアプリケーション要求に応じて、コンテンツデータベース３３０から所望のアプリケーションを取得し、取得したアプリケーションを移動端末４００に提供するように構成されている。ここで、アプリケーション要求は、ＵＲＬやアプリケーション名やアプリケーションＩＤ等のアプリケーションを特定することができる情報を用いて、所望のアプリケーションを指定している。
【００３９】
共有モジュール提供部３６０は、アプリケーション情報に基づいて、対応するアプリケーションの実行に必要な共有モジュールが取得されていないと判断した移動端末４００からの共有モジュール要求に応じて共有モジュールを提供するモジュール提供部である。
【００４０】
具体的には、共有モジュール提供部３６０は、移動端末４００から取得した共有モジュール要求に応じて、コンテンツデータベース３３０から所望の共有モジュールを取得し、取得した共有モジュールを移動端末４００に提供するように構成されている。ここで、共有モジュール要求は、元ＵＲＬや共有モジュール名や共有モジュールＩＤ等の共有モジュールを特定することができる情報を用いて、所望の共有モジュールを指定している。
【００４１】
全体管理部３７０は、各構成要素３１０〜３６０を制御するものである。
【００４２】
次に、移動端末４００について詳細に説明する。図４に示すように、移動端末４００は、入力部４１０と、表示部４２０と、通信部４３０と、コンテンツダウンロード処理部４４０と、アプリケーション起動処理部４５０と、イベント処理部４６０と、コンテンツ別メモリ領域管理部４７０と、メモリ領域解放処理部４８０とを備える。又、図４の例では、アプリケーション４９０ａ，４９０ｂが、移動端末４００上で実行されているものとする。
【００４３】
入力部４１０は、移動端末４００へのユーザの入力操作を受け付けた場合に、入力イベントを生成し、生成した入力イベントをイベント処理部４６０に提供するものである。ここで、イベントとは特定の状態が生じたことを示すものである。入力イベントとは、移動端末４００から入力操作があったことを示すイベントであり、移動端末４００上のボタン等が押下されたことを示す「Ｋｅｙ」イベントや、指定された時刻になったことや、指定された時間が経過したことを示す「Ｔｉｍｅｒ」や、アプリケーションによって表示されている画面のサイズが変更されたこと等を示す「Ｃｏｍｐｏｎｅｎｔ」等が含まれる。
【００４４】
又、イベントには入力イベントの他、ネイティブアプリケーションに配送され、他のアプリケーションの実行より優先して処理されるネイティブイベントや、アクティブなアプリケーションを変更する必要が生じたことを示す切り替えイベントや、特定のアプリケーションをアクティブにする、即ちアクティブ化する必要が生じたことを示すアクティブ化イベントや、特定のアプリケーションを非アクティブにする、即ち非アクティブ化する必要が生じたことを示す非アクティブ化イベントや、アプリケーションを終了させる必要が生じたことを示す終了イベント等が含まれる。
【００４５】
尚、アクティブなアプリケーションとは移動端末４００からの入力操作が反映されるアプリケーションをいう。例えば、Ｗｉｎｄｏｗｓ（登録商標）上で複数のウィンドウが表示されている場合に、最前面に表示されているウィンドウを表示するアプリケーションが、アクティブなアプリケーションである。本実施形態では、最大で１のアプリケーションがアクティブなアプリケーションとなる。
【００４６】
表示部４２０は、アプリケーション４９０ａ，４９０ｂの動作の状態をユーザに対して表示するものである。通信部４３０は、ネットワーク１００とゲートウェイ装置２００とを介して、コンテンツダウンロード装置３００と通信するものである。
【００４７】
コンテンツダウンロード処理部４４０は、コンテンツダウンロード装置３００からコンテンツを取得するものである。本実施形態では、コンテンツダウロード装置３００からコンテンツを取得することをダウンロードという。アプリケーション起動処理部４５０は、ダウンロードしたアプリケーションを実行して、起動するものである。イベント処理部４６０は、イベントをアプリケーションに配送するものである。
【００４８】
コンテンツ別メモリ領域管理部４７０は、アプリケーションに割り当てられるメモリの領域であるメモリ領域を管理するメモリ領域管理部である。又、コンテンツ別メモリ領域管理部４７０は、アプリケーションが必要とする共有モジュールに割り当てられるメモリ領域も管理するものである。
【００４９】
具体的には、コンテンツ別メモリ領域管理部４７０は、図５に示すように、アプリケーション起動処理部４５０から取得したコンテンツのコンテンツ名と、当該コンテンツに割り当てられるメモリ領域の情報とを保持する。図５の例では、使用メモリ領域が、関連づけられるコンテンツ名のコンテンツに割り当てられるメモリ領域の情報である。
【００５０】
又、コンテンツ別メモリ領域管理部４７０は、メモリ領域解放処理部４８０から取得した情報削除要求に応じて、情報削除要求に含まれるアプリケーション名又は共有モジュール名に係る情報を削除する。ここで、情報削除要求は、メモリ領域解放処理部４８０が、情報削除要求に含まれるアプリケーション名又は共有モジュール名に係る情報の削除を求めるものである。
【００５１】
メモリ領域解放処理部４８０は、コンテンツ別メモリ領域管理部４７０に基づいて、アプリケーションによるメモリ領域への不正なアクセスを検出する不正アクセス検出部である。
【００５２】
具体的には、メモリ領域解放処理部４８０は、アプリケーションによるメモリアクセスを監視することによって、コンテンツ別メモリ領域管理部４７０によって管理される当該アプリケーションの使用メモリ領域を超えたメモリ領域へのアクセスを、不正アクセスとして検出する。
【００５３】
又、メモリ領域解放処理部４８０は、アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、当該アプリケーションを終了させる終了処理部としても機能するものである。更に、メモリ領域解放処理部４８０は、イベント配送処理部４６５から、終了させるアプリケーションのアプリケーション名を含むアプリケーション終了イベントを取得した場合にも、当該アプリケーションを終了させるものである。
【００５４】
具体的には、メモリ領域解放処理部４８０は、終了させるアプリケーションに割り当てられたメモリ領域を解放するものである。メモリ領域解放処理部４８０は、コンテンツ別メモリ領域管理部４７０を参照し、終了させるアプリケーションの使用メモリ領域によって示されるメモリ領域を解放する。これにより、アプリケーションに含まれるクラスに基づいて生成されたインスタンスは消滅し、アプリケーションが終了する。
【００５５】
又、メモリ領域解放処理部４８０は、終了させたアプリケーションによって使用されていた共有モジュールであって、他のアプリケーションによって使用されていない共有モジュールに割り当てられたメモリ領域も解放するものである。
【００５６】
具体的には、メモリ領域解放処理部４８０は、コンテンツダウンロード処理部４４０から、共有モジュール検索要求に対する応答である共有モジュール名を取得する。ここで、共有モジュール検索要求は、終了させたアプリケーションによって使用されていた共有モジュールであって、他のアプリケーションによって使用されていない共有モジュールの共有モジュール名を要求するものである。
【００５７】
メモリ領域解放処理部４８０は、コンテンツ別メモリ領域管理部４７０を参照し、取得した共有モジュール名に対応する使用メモリ領域によって示されるメモリ領域を解放するように構成されている。
【００５８】
全体管理部５００は、各構成要素４１０〜４８０と、実行中のアプリケーション４９０ａ，４９０ｂとを制御するものである。
【００５９】
以下、コンテンツダウンロード処理部４４０と、アプリケーション起動処理部４５０と、イベント処理部４６０の各構成について詳細に説明する。
【００６０】
まず、コンテンツダウンロード処理部４４０について詳細に説明する。図６に示すように、コンテンツダウンロード処理部４４０は、コンテンツダウンロード処理決定部４４１と、アプリケーション情報ダウンロード部４４２と、アプリケーション情報解析部４４３と、アプリケーション情報記憶部４４４と、記憶コンテンツ管理部４４５と、コンテンツダウンロード部４４６と、コンテンツ記憶部４４７とを備える。
【００６１】
コンテンツダウンロード処理決定部４４１は、所望のアプリケーションをダウンロードするか否かを決定し、当該アプリケーションをダウンロードすると決定した場合に、当該アプリケーションによって必要とされる共有モジュールをダウンロードするか否かを決定するものである。
【００６２】
具体的には、コンテンツダウンロード処理決定部４４１は、ウェブブラウザ等のアプリケーション４９０ｂ等から取得した取得要求に応じて、記憶コンテンツ管理部４４５を参照し、所望のアプリケーションがダウンロードされているか否かについて判断する。
【００６３】
コンテンツダウンロード処理決定部４４１は、所望のアプリケーションがダウンロードされていると判断した場合に、所望のアプリケーションをダウンロードしないと決定するように構成されている。ここで、取得要求は、特定のアプリケーションを取得することを要求するものである。
【００６４】
又、コンテンツダウンロード処理決定部４４１は、アプリケーション情報解析部４４３から取得したアプリケーション情報６００に基づいて、該当するアプリケーションを実行可能か否かについて判断する。そして、コンテンツダウンロード処理決定部４４１は、所望のアプリケーションを実行可能でないと判断した場合にも、当該アプリケーションをダウンロードしないと決定するものである。
【００６５】
具体的には、コンテンツダウンロード処理決定部４４１は、取得要求によって指定されるアプリケーションに対応するアプリケーション情報をアプリケーション情報ダウンロード部４４２から取得する。コンテンツダウンロード処理決定部４４１は、取得したアプリケーション情報をアプリケーション情報解析部４４３に入力することによってアプリケーション情報の解析結果であるアプリケーション情報６００を取得する。コンテンツダウンロード処理決定部４４１は、アプリケーション情報解析部４４３から取得したアプリケーション情報６００に基づいて、当該アプリケーションを実行可能か否かについて判断する。
【００６６】
例えば、コンテンツダウンロード処理決定部４４１は、図３に示すアプリケーション実行情報Ａに含まれるファイルサイズと、移動端末４００のフラッシュメモリの空き容量とを比較し、ファイルサイズの方が大きい場合に、アプリケーション４９０ａを実行可能でないと判断する。或いは、コンテンツダウンロード処理決定部４４１は、アプリケーション実行情報Ａに含まれるＲＡＭサイズと、移動端末４００において利用可能なＲＡＭの容量を比較し、ＲＡＭサイズの方が大きい場合に、アプリケーション４９０ａを実行可能でないと判断する。
【００６７】
コンテンツダウンロード処理決定部４４１は、所望のアプリケーションを実行可能でないと判断した場合に、所望のアプリケーションをダウンロードしないと決定するように構成されている。
【００６８】
又、コンテンツダウンロード処理決定部４４１は、アプリケーション情報に基づいて、アプリケーションの実行に必要な共有モジュールが、既にダウンロードされているか否かについて判断する取得判断部としても機能する。
【００６９】
具体的には、コンテンツダウンロード処理決定部４４１は、アプリケーション４９０ａを実行可能と判断した場合に、取得したアプリケーション情報６００に含まれる共有モジュール情報Ｂ，Ｃを取得する。コンテンツダウンロード処理決定部４４１は、共有モジュール情報Ｂ，Ｃに含まれる元ＵＲＬに基づいて、記憶コンテンツ管理部４４５を参照し、アプリケーションの実行に必要な全ての共有モジュールが既にダウンロードされているか否かについて判断する。
【００７０】
コンテンツダウンロード処理決定部４４１は、実行可能と判断したアプリケーションによって必要とされる共有モジュールがダウンロードされていないと判断した場合に、当該共有モジュールをダウンロードする必要があると判断するように構成されている。
【００７１】
又、コンテンツダウンロード処理決定部４４１は、メモリ領域解放処理部４８０から取得した共有モジュール検索要求に応じて、対応するアプリケーションによって使用されていた共有モジュールであって、他のアプリケーションによって使用されていない共有モジュールの共有モジュール名を提供するものである。
【００７２】
具体的には、コンテンツダウンロード処理決定部４４１は、共有モジュール検索要求に含まれるアプリケーション名に基づいて、アプリケーション情報記憶部４４４から対応するアプリケーション情報を取得する。コンテンツダウンロード処理決定部４４１は、取得したアプリケーション情報に含まれる共有モジュール情報を取得する。
【００７３】
コンテンツダウンロード処理決定部４４１は、イベント処理部４６０から、実行中アプリケーション名要求に対する応答である実行中のアプリケーションのアプリケーション名を取得する。ここで、実行中アプリケーション名要求は、アプリケーション実行状態管理部４６３によって管理されている、実行中のアプリケーションのアプリケーション名を要求するものである。
【００７４】
コンテンツダウンロード処理決定部４４１は、取得した各共有モジュール情報に含まれる元ＵＲＬと、取得したアプリケーション名とに基づいて、アプリケーション情報記憶部４４４を参照し、アプリケーション名に係るアプリケーション情報に、取得した共有モジュール情報と同一の共有モジュール情報が含まれているか否かについて判断する。
【００７５】
コンテンツダウンロード処理決定部４４１は、取得したアプリケーション名に係るアプリケーション情報に、取得した共有モジュール情報と同一の共有モジュール情報が含まれていない場合に、当該共有モジュール情報に係る共有モジュールが、他のアプリケーションによって使用されていないと判断する。コンテンツダウンロード処理決定部４４１は、当該共有モジュール情報に含まれる共有モジュール名を、共有モジュール検索要求に対する応答としてメモリ領域解放処理部４８０に提供するように構成されている。
【００７６】
アプリケーション情報ダウンロード部４４２は、アプリケーション情報を取得するアプリケーション情報取得部である。具体的には、アプリケーション情報ダウンロード部４４２は、コンテンツダウンロード処理決定部４４１からダウンロードしようとするアプリケーションに係るＵＲＬを取得する。アプリケーション情報ダウンロード部４４２は、取得したＵＲＬを含むアプリケーション情報要求を通信部４３０に提供し、アプリケーション情報要求に対する応答であるアプリケーション情報を取得するように構成されている。
【００７７】
アプリケーション情報解析部４４３は、コンテンツダウンロード処理決定部４４１を介してアプリケーション情報ダウンロード部４４２から取得したアプリケーション情報を解析し、図３に示される形式にフォーマットするものである。又、アプリケーション情報解析部４４３は、フォーマットしたアプリケーション情報６００を、解析結果としてコンテンツダウンロード処理決定部４４１に入力するものである。更に、アプリケーション情報解析部４４３は、フォーマットしたアプリケーション情報６００を、アプリケーション情報記憶部４４４に格納するものである。
【００７８】
アプリケーション情報記憶部４４４は、アプリケーション情報解析部４４３によって図３に示される形式にフォーマットされたアプリケーション情報６００を記憶するものである。
【００７９】
記憶コンテンツ管理部４４５は、移動端末４００にダウンロードされたコンテンツの情報を管理するものである。具体的には、記憶コンテンツ管理部４４５は、図７に示すように、コンテンツダウンロード処理決定部４４１から取得した情報登録要求に応じて、情報登録要求に含まれるコンテンツ名と、コンテンツ種類と、ＵＲＬ情報とを保持するように構成されている。
【００８０】
ここで、コンテンツのコンテンツ種類は、当該コンテンツがアプリケーションであるか、又は、共有モジュールであるかを示す情報である。図７の例では、「Ａｐｐｌｉｃａｔｉｏｎ」は、該当するコンテンツがアプリケーションであることを示し、「Ｓｈａｒｅｄ  Ｌｉｂｒａｒｙ」は、該当するコンテンツが共有モジュールであることを示す。又、アプリケーションに係るＵＲＬ情報はＵＲＬであり、共有モジュールに係るＵＲＬ情報は元ＵＲＬである。
【００８１】
コンテンツダウンロード部４４６は、実行可能と判断された場合に、アプリケーションを取得する。又、コンテンツダウンロード部４４６は、共有モジュールがダウンロードされていないと判断された場合に、共有モジュールを取得するモジュール取得部としても機能する。即ち、コンテンツダウンロード部４４６は、ダウンロードする必要があると判断されたアプリケーション及び共有モジュールを選択的にダウンロードするものである。
【００８２】
具体的には、コンテンツダウンロード部４４６は、コンテンツダウンロード処理決定部４４１から取得したコンテンツ種類が「Ａｐｐｌｉｃａｔｉｏｎ」である場合に、併せて取得したＵＲＬを含むアプリケーション要求を通信部４３０に提供し、アプリケーション要求に対する応答であるアプリケーションを取得するように構成されている。
【００８３】
一方、コンテンツダウンロード部４４６は、コンテンツダウンロード処理決定部４４１から取得したコンテンツ種類が「Ｓｈａｒｅｄ  Ｌｉｂｒａｒｙ」である場合に、併せて取得したＵＲＬを含む共有モジュール要求を通信部４３０に提供し、共有モジュール要求に対する応答である共有モジュールを取得するように構成されている。
【００８４】
又、コンテンツダウンロード部４４６は、取得したアプリケーション又は共有モジュールをコンテンツ記憶部４４７に格納するものである。
【００８５】
コンテンツ記憶部４４７は、コンテンツダウンロード部４４６から取得したコンテンツを記憶するものである。
【００８６】
次に、アプリケーション起動処理部４５０について詳細に説明する。図８に示すように、アプリケーション起動部４５０は、コンテンツロード処理決定部４５１と、コンテンツロード処理部４５２と、ロード済みコンテンツ管理部４５３と、生成済みインスタンス管理部４５４と、インスタンス生成処理決定部４５５と、インスタンス生成処理部４５６とを備える。
【００８７】
ここで、本実施形態において、コンテンツをロードするとは、コンテンツに含まれるクラスをメモリ上にロードすることである。そして、ロードされたクラスに基づいてインスタンスを生成することにより、移動端末４００は当該コンテンツを実行できる。
【００８８】
コンテンツロード処理決定部４５１は、所望のアプリケーションを起動するために、アプリケーションに必要な共有モジュールをロードするか否かについて決定するものである。
【００８９】
コンテンツロード処理決定部４５１は、端末装置４００の各構成要素４１０〜４８０又はアプリケーション４９０ａ，４９０ｂから起動しようとするアプリケーションのアプリケーション名を含む起動要求を取得する。
【００９０】
コンテンツロード処理決定部４５１は、イベント処理部４６０からアクティブアプリケーション要求に対する応答として、アクティブなアプリケーションのアプリケーション名を取得する。
【００９１】
コンテンツロード処理決定部４５１は、取得したアプリケーション名を含む非アクティブ化イベントを生成し、生成した非アクティブ化イベントをイベント処理部４６０に提供することにより、対応するアプリケーションを非アクティブ化する。
【００９２】
コンテンツロード処理決定部４５１は、コンテンツダウンロード処理部４４０から、アプリケーション情報要求に対する応答であるアプリケーション情報を取得する。コンテンツロード処理決定部４５１は、取得したアプリケーション情報から、共有モジュール情報を取得する。コンテンツロード処理決定部４５１は、取得した共有モジュール情報に含まれる元ＵＲＬに基づいて、ロード済みコンテンツ管理部４５３を参照し、対応する共有モジュールがロードされているか否かについて判断する。
【００９３】
コンテンツロード処理決定部４５１は、ロードされていないと判断した共有モジュール及びアプリケーションのロードをコンテンツロード処理部４５２に依頼し、コンテンツロード処理部４５２から、ロードした共有モジュール又はアプリケーションに含まれるクラスと当該クラスのクラス名とを取得する。
【００９４】
コンテンツロード処理決定部４５１は、起動するアプリケーションのアプリケーション名を含むアクティブ化イベントを生成し、生成したアクティブ化イベントをイベント処理部４６０に提供することにより、起動するアプリケーションをアクティブ化する。コンテンツロード処理決定部４５１は、所望のアプリケーションを起動するように構成されている。
【００９５】
コンテンツロード処理部４５２は、コンテンツロード処理決定部４５１が、ロード済みコンテンツ管理部４５３を参照して、コンテンツがロードされていないと判断した場合に、当該コンテンツをメモリ上にロードするものである。
【００９６】
即ち、コンテンツロード処理決定部４５１及びコンテンツロード処理部４５２は、ロード済みコンテンツ管理部４５３を参照して所望のコンテンツがロードされていないと判断した場合に、そのコンテンツをメモリ上にロードするロード部として機能する。
【００９７】
具体的には、コンテンツロード処理部４５２は、コンテンツロード処理決定部４５１から取得したコンテンツ名に対応するコンテンツをコンテンツダウンロード処理部４４０から取得し、取得したコンテンツをロードするように構成されている。
【００９８】
ロード済みコンテンツ管理部４５３は、アプリケーション又はアプリケーションの実行に必要な共有モジュールが、メモリ上にロードされているか否かを管理するロード済みプログラム管理部である。
【００９９】
具体的には、ロード済みコンテンツ管理部４５３は、図９に示すようにコンテンツロード処理決定部４５１から取得したコンテンツ名とＵＲＬ情報とを保持するように構成されている。尚、図９はアプリケーション４９０ａがロードされた後のロード済みコンテンツ管理部４５３を示すものである。
【０１００】
生成済みインスタンス管理部４５４は、コンテンツロード処理部４５２によってロードされたコンテンツに含まれるクラスに基づいてインスタンスがメモリ上に生成されているか否かを管理するものである。
【０１０１】
具体的には、生成済みインスタンス管理部４５４は、図１０に示すように、インスタンス生成処理決定部４５５から取得したインスタンス名とクラス名とを保持するように構成されている。図１０の例では、例えば、クラス「Ｃｌａｓｓ１」に基づいて「ＣｌａｓｓＩｎｓｔａｎｃｅ１」が生成されたことが分かる。
【０１０２】
又、生成済みインスタンス管理部４５４は、コンテンツロード処理決定部４５１を介して、メモリ領域解放処理部４８０から使用メモリ領域が開放されたコンテンツのコンテンツ名を含む削除要求を取得し、当該コンテンツに含まれるクラスに係る情報を削除するものである。ここで、生成済みインスタンス管理部４５４は、コンテンツロード処理決定部４５１を介してコンテンツダウンロード処理部４４０から対応するコンテンツを取得することにより、コンテンツに含まれるクラスのクラス名を判断するものである。
【０１０３】
インスタンス生成処理決定部４５５は、コンテンツロード処理決定部４５１から取得したクラス名に基づいて生成済みインスタンス管理部４５４を参照して、所望のインスタンスが生成されているか否かについて判断するものである。
【０１０４】
例えば、インスタンス生成処理決定部４５５は、クラス名として「Ｃｌａｓｓ１」を取得した場合に、図１０に示される生成済みインスタンス管理部４５４を参照し、所望のインスタンスが生成されていると判断する。或いは、インスタンス生成処理決定部４５５は、クラス名として「Ｃｌａｓｓ５」を取得した場合に、図１０に示される生成済みインスタンス管理部４５４を参照し、所望のインスタンスが生成されていないと判断する。
【０１０５】
又、インスタンス生成処理決定部４５５は、所望のインスタンスが生成されていないと判断した場合に、当該インスタンスを生成することを決定するものである。インスタンス生成処理決定部４５５は、生成済みインスタンス管理部４５４を参照して、既に生成されたインスタンスのインスタンス名と異なるインスタンス名のインスタンスを生成することを決定する。
【０１０６】
インスタンス生成処理部４５６は、インスタンス生成処理決定部４５５が、生成済みインスタンス管理部４５４を参照して、所望のインスタンスが生成されていないと判断した場合に、インスタンス生成処理決定部４５５から取得したクラスに基づいて、併せて取得したインスタンス名のインスタンスをメモリ上に生成するものである。
【０１０７】
即ち、インスタンス生成処理決定部４５５及びインスタンス生成処理部４５６は、生成済みインスタンス管理部４５４を参照して、所望のインスタンスが生成されていないと判断した場合に、そのインスタンスをメモリ上に生成するインスタンス生成部として機能する。
【０１０８】
又、インスタンス生成処理部４５６は、インスタンスを生成する際に割り当てられたメモリ領域の情報を、インスタンス生成処理決定部４５５を介してコンテンツロード処理決定部４５１に入力する。
【０１０９】
次に、イベント処理部４６０について詳細に説明する。図１１に示すように、イベント処理部４６０は、イベント配送処理決定部４６１と、イベント発生検知部４６２と、アプリケーション実行状態管理部４６３と、アプリケーション別イベント管理部４６４と、イベント配送処理部４６５とを備える。
【０１１０】
イベント配送処理決定部４６１は、アプリケーション別イベント管理部４６４を参照して、イベント発生検知部４６２によって検知されたイベントの種別に関連づけられているアプリケーションを当該イベントの配送先に決定するものである。そして、イベント配送処理決定部４６１は、イベントと配送先の指定とをイベント配送処理部４６５に入力するものである。
【０１１１】
例えば、イベント処理決定部４６１は、タイマーイベントを取得した場合に、アプリケーション別イベント管理部４６４を参照して、タイマーイベントの配送を必要とするアプリケーションのアプリケーション名を取得し、当該アプリケーションを配送先に決定する。
【０１１２】
図１３の例では、アプリケーション名が「Ａｐｐ１」のアプリケーション４９０ａと、アプリケーション名が「Ａｐｐ２」のアプリケーション４９０ｂとがタイマーイベントの配送を必要とする。イベント配送処理決定部４６１は、タイマーイベントと、その配送先の指定である「Ａｐｐ１」と「Ａｐｐ２」とをイベント配送処理部４６５に入力するように構成されている。
【０１１３】
或いは、イベント配送処理決定部４６１は、入力イベントを取得した場合には、アクティブなアプリケーションが、当該入力イベントの配送を必要としているか否かについて判断し、必要としている場合には、当該入力イベントと、アクティブなアプリケーションのアプリケーション名とをイベント配送処理部４６５に入力する。
【０１１４】
具体的には、イベント配送処理決定部４６１は、アプリケーション実行状態管理部４６３を参照し、アクティブなアプリケーションのアプリケーション名を取得する。図１２の例では、イベント配送処理決定部４６１は、「Ａｐｐ２」を取得する。
【０１１５】
イベント配送処理決定部４６１は、取得した入力イベントの種別と、アクティブなアプリケーションのアプリケーション名に基づいて、アプリケーション別イベント管理部４６４を参照し、当該アプリケーション名に当該入力イベントの種別が関連づけられている場合に、アクティブなアプリケーションが当該入力イベントの配送を必要としていると判断する。
【０１１６】
例えば、図１２及び図１３の例では、イベント配送処理決定部４６１は、アプリケーション別イベント管理部４６４を参照し、「Ａｐｐ２」に取得した入力イベントの種別が関連づけられているか否かについて判断する。「Ａｐｐ２」に「Ｋｅｙ」は関連づけられているが、「Ｃｏｍｐｏｎｅｎｔ」は関連づけられていない。このため、イベント配送処理決定部４６１は、取得した入力イベントが「Ｋｅｙ」であれば、アプリケーション４９０ｂが当該入力イベントの配送を必要としていると判断し、取得した入力イベントが「Ｃｏｍｐｏｎｅｎｔ」であればアプリケーション４９０ｂが当該入力イベントの配送を必要としていないと判断する。
【０１１７】
そして、イベント配送処理決定部４６１は、配送を必要としていると判断した場合に、当該入力イベントと、その配送先の指定である「Ａｐｐ２」とをイベント配送処理部４６５に入力する。
【０１１８】
又、イベント配送処理決定部４６１は、イベント発生検知部４６２からネイティブイベントや、切り替えイベントや、アプリケーション終了イベント等の特別なイベントを取得した場合には、当該イベントの種別に応じて、当該イベントを処理する。
【０１１９】
イベント配送処理決定部４６１は、ネイティブイベントを取得した場合に、アクティブなアプリケーションを非アクティブ化する。具体的には、イベント配送処理決定部４６１は、アプリケーション実行状態管理部４６３を参照し、アクティブなアプリケーションが存在する場合に、当該アプリケーションのアプリケーション名を含む非アクティブ化イベントを生成する。イベント配送処理決定部４６１は、生成した非アクティブ化イベントと、当該イベントの配送先であるアプリケーション実行状態管理部４６３の指定とをイベント配送処理部４６５に入力する。
【０１２０】
そして、イベント配送処理決定部４６１は、ネイティブアプリケーションからネイティブイベントの処理が終了したことの通知を取得することによってネイティブイベントの処理が終了したことを検知した場合に、非アクティブ化したアプリケーションをアクティブ化する。具体的には、イベント配送処理決定部４６１は、非アクティブ化したアプリケーションのアプリケーション名を含むアクティブ化イベントを生成する。イベント配送処理決定部４６１は、生成したアクティブ化イベントと、当該イベントの配送先であるアプリケーション実行状態管理部４６３の指定をとイベント配送処理部４６５に入力する。
【０１２１】
又、イベント配送処理決定部４６１は、アプリケーション切り替えイベントを取得した場合に、アクティブなアプリケーションを変更する。即ち、イベント配送処理決定部４６１は、イベント検知部によってアプリケーション切り替えイベントが検知された場合に、アクティブなアプリケーションを変更するアクティブアプリケーション変更部である。
【０１２２】
具体的には、イベント配送処理決定部４６１は、アプリケーション実行状態管理部４６３を参照し、アクティブなアプリケーションが存在する場合に、当該アプリケーションのアプリケーション名を含む非アクティブ化イベントを生成する。イベント配送処理決定部４６１は、生成した非アクティブ化イベントと、当該イベントの配送先であるアプリケーション実行状態管理部４６３の指定とをイベント配送処理部４６５に入力する。
【０１２３】
そして、イベント配送処理決定部４６１は、切り替えイベントに含まれるアプリケーション名を含むアクティブ化イベントを生成し、当該アクティブ化イベントと、その配送先であるアプリケーション実行状態管理部４６３の指定とをイベント配送処理部４６５に入力する。
【０１２４】
或いは、イベント配送処理決定部４６１は、アプリケーション終了イベントを取得した場合に、当該アプリケーション終了イベントと、その配送先であるメモリ領域解放処理部４８０の指定とを、イベント配送処理部４６５に入力する。
【０１２５】
更に、イベント配送処理決定部４６１は、取得した入力イベントを、アクティブなアプリケーションに配送する必要がない場合等、取得したイベントを処理する必要がない場合に、取得したイベントを破棄する。
【０１２６】
イベント発生検知部４６２は、特定の状態が生じたことを示すイベントを移動端末４００内の各構成要素４１０〜４５０，４７０〜４８０と、アプリケーション４９０ａ，４９０ｂとから、イベントを取得することによって検知するイベント検知部である。
【０１２７】
アプリケーション実行状態管理部４６３は、アクティブなアプリケーションを管理するアクティブアプリケーション管理部である。具体的には、アプリケーション実行状態管理部４６３は、図１２に示すように、イベント配送処理決定部４６１から取得したアプリケーション名とアプリケーション実行状態とを保持する。ここで、アプリケーション実行状態は、当該アプリケーションがアクティブであるか否かを示す情報である。
【０１２８】
図１２の例では、「Ａｃｔｉｖｅ」は、該当するアプリケーションがアクティブであることを示し、「Ｎｏｎ−ａｃｔｉｖｅ」は、該当するアプリケーションがアクティブでない、即ち、非アクティブであることを示す。
【０１２９】
アプリケーション実行状態管理部４６３は、イベント配送処理部４６５からアクティブ化イベントを取得した場合に、アクティブ化イベントに含まれるアプリケーション名に係る実行状態を「Ａｃｔｉｖｅ」に変更し、非アクティブ化イベントを取得した場合に、非アクティブ化イベントに含まれるアプリケーション名に係る実行状態を「Ｎｏｎ−ａｃｔｉｖｅ」に変更する。
【０１３０】
更に、アプリケーション実行状態管理部４６３は、イベント配送処理決定部４６１を介して、メモリ領域解放処理部４８０から情報削除要求を取得した場合に、当該情報削除要求に含まれるアプリケーション名に係る情報を削除するである。
【０１３１】
アプリケーション別イベント管理部４６４は、アプリケーションとイベントの種別とを関連づけて管理するイベント管理部である。具体的には、アプリケーション別イベント管理部４６４は、イベント配送処理決定部４６１を介してアプリケーション起動処理部４５０から取得したアプリケーション名と、イベントの種別であるイベント種別とを図１３に示すように保持する。
【０１３２】
図１３の例では、アプリケーション名が「Ａｐｐ１」のアプリケーション４９０ａは、「Ｋｅｙ」、「Ｔｉｍｅｒ」、「Ｃｏｍｐｏｎｅｎｔ」という種別のイベントの配送を必要とすることが分かる。
【０１３３】
又、アプリケーション別イベント管理部４６４は、イベント配送処理決定部４６１を介して、メモリ領域解放処理部４８０から情報削除要求を取得した場合に、当該情報削除要求に含まれるアプリケーション名に係る情報を削除する。
【０１３４】
イベント配送処理部４６５は、イベント配送処理決定部４６１から、イベントと当該イベントの配送先の指定を取得し、取得したイベントを指定される配送先に配送するものである。
【０１３５】
又、イベント配送処理決定部４６１によって取得されたイベントがタイマーイベントや入力イベント等である場合に、イベント配送処理部４６５は、イベント配送処理決定部４６１から、イベント発生検知部４６２によって検知されたイベントと、アプリケーション別イベント管理部４６４において、そのイベントの種別に関連づけられているアプリケーションのアプリケーション名とを取得する。そして、イベント配送処理部４６５は、取得したイベントを、取得したアプリケーション名のアプリケーションに配送する。
【０１３６】
即ち、イベント配送処理決定部４６１及びイベント配送処理部４６５は、アプリケーション別イベント管理部４６４を参照して、イベント発生検知部４６２によって検知されたイベントの種別に関連づけられているアプリケーションに対して当該イベントを通知するイベント通知部として機能する。このように、本実施形態では、イベントを通知することを、イベントを配送するという。
【０１３７】
更に、イベント配送処理決定部４６１によって取得されたイベントが入力イベントである場合に、イベント配送処理部４６５は、イベント配送処理決定部４６１からアクティブなアプリケーションのアプリケーション名を取得する。そして、イベント配送処理部４６５は、取得したイベントを、取得したアプリケーション名のアプリケーションに対して配送する。
【０１３８】
即ち、イベント配送処理部４６５は、入力イベントをアクティブなアプリケーションに配送するものである。
【０１３９】
（本発明の一実施形態に係るコンテンツダウンロード方法）
図１４は、本実施形態に係るコンテンツダウンロードシステム１において、移動端末４００が、所望のアプリケーションをコンテンツダウンロード装置３００からダウンロードするシーケンスの一例を示す図である。
【０１４０】
ステップ１０１において、移動端末４００上の通信部４３０が、所望のアプリケーションに係るアプリケーション情報を要求するアプリケーション情報要求をコンテンツダウンロード装置３００上の通信部３１０に送信し、コンテンツダウンロード装置３００の通信部３１０が、当該アプリケーション情報要求を受信する。
【０１４１】
ステップ１０２において、コンテンツダウンロード装置３００上の通信部３１０が、アプリケーション情報要求に応じて、所望のアプリケーション情報を移動端末４００上の通信部４３０に送信し、移動端末４００上の通信部４３０が、当該アプリケーション情報を受信する。
【０１４２】
ステップ１０３において、アプリケーション情報解析部４４３が、取得したアプリケーション情報を解析し、図３に示すアプリケーション情報６００をコンテンツダウンロード処理決定部４４１に入力する。
【０１４３】
ステップ１０４において、コンテンツダウンロード処理決定部４４１が、解析されたアプリケーション情報６００に基づいて所望のアプリケーションがダウンロードされているか否かについて判断する。コンテンツダウンロード処理決定部４４１は、所望のアプリケーションがダウンロードされていると判断した場合に、当該アプリケーションをダウンロードしないと決定し、ステップ１０５〜ステップ１１４を行わない。
【０１４４】
ステップ１０５において、コンテンツダウンロード処理決定部４４１が、アプリケーション情報に基づいて所望のアプリケーションを実行可能か否かについて判断する。コンテンツダウンロード処理決定部４４１は、所望のアプリケーションを実行可能でないと判断した場合に、当該アプリケーションをダウンロードしないと決定し、ステップ１０６〜ステップ１１４を行わない。
【０１４５】
ステップ１０６において、アプリケーション情報解析部４４３が、コンテンツダウンロード処理決定部４４１に入力したアプリケーション情報６００をアプリケーション情報記憶部４４４に格納する。
【０１４６】
ステップ１０７において、コンテンツダウンロード処理決定部４４１が、アプリケーション情報に含まれる共有モジュール情報を取得する。
【０１４７】
ステップ１０８において、コンテンツダウンロード処理決定部４４１が、共有モジュール情報に基づいて、アプリケーションの実行に必要な全ての共有モジュールがダウンロードされているか否かについて判断する。
【０１４８】
ステップ１０８において必要な共有モジュールがダウンロードされていないと判断された場合に、ステップ１０９において、移動端末４００上の通信部４３０が、コンテンツダウンロード装置３００上の通信部３１０にアプリケーション要求と共有モジュール要求とを送信し、コンテンツダウンロード装置３００上の通信部３１０が、当該アプリケーション要求と当該共有モジュール要求とを受信する。
【０１４９】
ステップ１１０において、コンテンツダウンロード装置３００上の通信部３１０が、アプリケーション要求と共有モジュール要求とに応じて、アプリケーションと共有モジュールとを移動端末４００上の通信部４３０に送信し、移動端末４００上の通信部４３０が、当該アプリケーションと当該共有モジュールとを受信する。
【０１５０】
ステップ１０８において全ての共有モジュールがダウンロードされていると判断された場合に、ステップ１１１において、移動端末４００上の通信部４３０が、アプリケーション要求をコンテンツダウンロード装置３００上の通信部３１０に送信し、コンテンツダウンロード装置３００上の通信部３１０が、アプリケーション要求を受信する。
【０１５１】
ステップ１１２において、コンテンツダウンロード装置３００上の通信部３１０が、アプリケーション要求に応じて、アプリケーションを移動端末４００上の通信部４３０に送信し、移動端末４００上の通信部４３０が、当該アプリケーションを受信する。
【０１５２】
ステップ１１３において、コンテンツダウンロード部４４６が、ダウンロードしたアプリケーションと共有モジュールとをコンテンツとしてコンテンツ記憶部４４７に格納する。
【０１５３】
ステップ１１４において、コンテンツダウンロード処理決定部４４１が、ダウンロードされたコンテンツに係る情報を記憶コンテンツ管理部４４５に入力し、登録する。
【０１５４】
図１５は、本実施形態に係るコンテンツダウンロードシステム１において、移動端末４００が、所望のアプリケーションを起動するシーケンスの一例を示す図である。
【０１５５】
ステップ２０１において、コンテンツロード処理決定部４５１が、イベント処理部４６０からアクティブアプリケーション要求に対する応答を取得することにより、アクティブなアプリケーションがあるか否かについて判断する。
【０１５６】
コンテンツロード処理決定部４５１は、ステップ２０１においてアクティブなアプリケーションがあると判断した場合に、ステップ２０２において、アクティブなアプリケーションを非アクティブ化する。
【０１５７】
ステップ２０３において、コンテンツロード処理決定部４５１が、コンテンツダウンロード処理部４４０から取得したアプリケーション情報に含まれる共有モジュール情報を取得する。
【０１５８】
ステップ２０４において、コンテンツロード処理決定部４５１が、ロード済みコンテンツ管理部４５３を参照し、各共有モジュール情報に係る共有モジュールがロードされているか否かについて判断する。
【０１５９】
ステップ２０４において共有モジュールがロードされていないと判断された場合に、ステップ２０５において、コンテンツロード処理部４５２が、当該共有モジュールをロードする。
【０１６０】
ステップ２０６において、コンテンツロード処理決定部４５１が、ロードされた共有モジュールに係る情報をロード済みコンテンツ管理部４５３に、ロード済みコンテンツとして登録する。
【０１６１】
ステップ２０７において、インスタンス生成処理決定部４５５が、生成済みインスタンス管理部４５４を参照して、共有モジュールに含まれるクラスに基づいて、インスタンスが生成されているか否かについて判断する。
【０１６２】
ステップ２０７において所望のインスタンスが生成されていないと判断された場合に、ステップ２０８において、インスタンス生成処理部４５６が、共有モジュールに含まれるクラスに基づいて、当該インスタンスをメモリ上に生成する。
【０１６３】
ステップ２０９において、インスタンス生成処理決定部４５５が、生成したインスタンスに係る情報を生成済みインスタンス管理部４５４に入力し、生成済みインスタンスとして登録する。
【０１６４】
ステップ２１０において、コンテンツロード処理決定部４５１が、ロードした共有モジュールの共有モジュール名と、当該共有モジュールに割り当てられたメモリ領域の情報をコンテンツ別メモリ領域管理部４７０に提供し、使用メモリ領域として登録する。
【０１６５】
ステップ２１１において、コンテンツロード処理決定部４５１が、全ての共有モジュールについて処理を行ったか否かについて判断し、全ての共有モジュールについて処理を行っていない場合と判断した場合に、ステップ２０４に戻って処理していない共有モジュールに対してステップ２０４〜ステップ２１０の処理を行う。
【０１６６】
ステップ２１２において、コンテンツロード処理部４５２が、所望のアプリケーションをロードする。
【０１６７】
ステップ２１３において、コンテンツロード処理決定部４５１が、ロードしたアプリケーションに係る情報をロード済みコンテンツ管理部４５３に、ロード済みコンテンツとして登録する。
【０１６８】
ステップ２１４において、インスタンス生成処理部４５６が、アプリケーションに含まれるクラスに基づいて、インスタンスをメモリ上に生成する。
【０１６９】
ステップ２１５において、インスタンス生成処理決定部４５５が、生成したインスタンスに係る情報を生成済みインスタンス管理部４５４に入力し、生成済みインスタンスとして登録する。
【０１７０】
ステップ２１６において、コンテンツロード処理決定部４５１が、起動するアプリケーションのアプリケーション名と、当該アプリケーションが配送を必要とするイベントの種別とをイベント処理部４６０に提供し、アプリケーション別イベント管理部４６４に登録する。
【０１７１】
ステップ２１７において、コンテンツロード処理決定部４５１が、起動するアプリケーションのアプリケーション名と、生成されたインスタンスに割り当てられたメモリ領域の情報とをコンテンツ別メモリ領域管理部４７０に、使用メモリ領域として登録する。
【０１７２】
ステップ２１８において、コンテンツロード処理決定部４５１が、起動するアプリケーションをアクティブ化する。
【０１７３】
ステップ２１９において、コンテンツロード処理決定部４５１が、所望のアプリケーションを起動する。
【０１７４】
図１６は、本実施形態に係るコンテンツダウンロードシステム１において、移動端末４００がイベントを検知し、処理するシーケンスの一例を示す図である。
【０１７５】
ステップ３０１において、イベント発生検知部４６２が、イベントを検知する。
【０１７６】
ステップ３０２において、イベント配送処理決定部４６１が、検知されたイベントがネイティブイベントであると判断した場合に、ステップ３０３において、アクティブなアプリケーションを非アクティブ化する。
【０１７７】
ステップ３０４において、イベント配送処理決定部４６１が、ネイティブイベントの処理が終了したことを検知する。ステップ３０５において、イベント配送処理決定部４６１が、非アクティブ化したアプリケーションをアクティブ化する。
【０１７８】
ステップ３０６において、イベント配送処理決定部４６１が、検知されたイベントがアプリケーション切り替えイベントであると判断した場合に、ステップ３０７においてアクティブなアプリケーションを変更する。
【０１７９】
ステップ３０８において、イベント配送処理決定部４６１が、検知されたイベントがタイマーイベントであると判断した場合に、ステップ３０９において、タイマーイベントの配送を必要とするアプリケーションを検索する。ステップ３１０において、イベント配送処理部４６５が、タイマーイベントの配送を必要とするアプリケーションの全てにタイマーイベントを配送する。
【０１８０】
本実施例においては、ステップ３１０までに処理されなかったイベントは主に入力イベントであるため、ステップ３１１において、イベント配送処理決定部４６１が、アクティブなアプリケーションを検索する。ステップ３１２において、イベント配送処理決定部４６１が、アクティブなアプリケーションが、検知されたイベントの配送を必要とすると判断した場合に、ステップ３１３において、イベント配送処理部４６５が、アクティブなアプリケーションに当該イベントを配送する。
【０１８１】
ステップ３１４において、イベント配送処理決定部４６１が、検知されたイベントがアプリケーション終了イベントであると判断した場合に、ステップ３１５において、メモリ領域解放処理部４８０が、アプリケーション終了処理を行う。
【０１８２】
ステップ３１６において、イベント配送処理決定部４６１が、ステップ３０１〜ステップ３１５において処理されなかったイベントを破棄する。
【０１８３】
図１７は、本実施形態に係るコンテンツダウンロードシステム１において、移動端末４００がアプリケーションを終了させた後に行う終了処理のシーケンスの一例を示す図である。
【０１８４】
ステップ４０１において、アプリケーション実行状態管理部４６３が、メモリ領域解放処理部４８０から取得した情報削除要求に含まれるアプリケーション名に係る情報を削除する。
【０１８５】
ステップ４０２において、アプリケーション別イベント管理部４６４が、メモリ領域解放処理部４８０から取得した情報削除要求に含まれるアプリケーション名に係る情報を削除する。
【０１８６】
ステップ４０３において、メモリ領域解放処理部４８０が、終了させるアプリケーションの使用メモリ領域を取得し、ステップ４０４において取得した使用メモリ領域によって示されるメモリ領域を解放する。
【０１８７】
ステップ４０５において、メモリ領域解放処理部４８０が、終了させたアプリケーションが使用していた共有モジュールに係る共有モジュール情報を取得する。
【０１８８】
ステップ４０６において、メモリ領域解放処理部４８０が、取得した共有モジュール情報に基づいて、終了させたアプリケーションによって使用されていた共有モジュールを、他のアプリケーションが使用しているか否かについて判断し、他のアプリケーションが使用していると判断した場合にステップ４１０に進む。
【０１８９】
ステップ４０７において、メモリ領域解放処理部４８０が、他のアプリケーションに使用されていない共有モジュールの使用メモリ領域を取得し、ステップ４０８において、取得した使用メモリ領域によって示されるメモリ領域を解放する。
【０１９０】
ステップ４０９において、コンテンツ別メモリ領域管理部４７０が、メモリ領域解放処理部４８０から取得した情報削除要求に含まれるアプリケーション名と共有モジュール名とに係る情報を削除し、情報を更新する。
【０１９１】
ステップ４１０において、生成済みインスタンス管理部４５４が、解放されたメモリ領域を使用していたコンテンツに含まれるクラスに係る情報を削除する。
【０１９２】
（変更例）
なお、本発明は上記実施形態に限定されるものではなく、種々の変更が可能である。例えば、１の共有モジュールが複数のクラスを含む場合に、アプリケーション情報は当該アプリケーション情報に係るアプリケーションによって必要とされるクラスのクラス名や当該クラスに基づいて生成されるインスタンス名を含んでもよい。
【０１９３】
或いは、本実施形態においては、アプリケーションが必要とする共有モジュールに含まれるクラスのクラス名に基づいて、インスタンス生成処理決定部４５５が、所望のインスタンスが生成されているか否かについて判断することとしている。しかし、インスタンス生成処理決定部４５５は、生成しようとするインスタンスのインスタンス名も取得し、クラス名とインスタンス名に基づいて、所望のインスタンスが生成されているか否かについて判断してもよい。
【０１９４】
これによれば、同一のインスタンス名のインスタンスを必要とするアプリケーションのみが同一のインスタンスを共有できる。このため、他のアプリケーションによって利用されているインスタンスと同一のクラスに基づいて生成されるインスタンスであっても、異なる動作をするインスタンスを必要とするアプリケーションに係るアプリケーション情報に異なるインスタンス名を含むことにより、当該アプリケーションは、異なるインスタンスを利用することができる。
【０１９５】
又、移動端末４００は、アプリケーションが発する例外を処理する例外処理部を備えてもよい。ここで、例外とは、整数が０で除されたことや、必要なファイルが見つからなかったこと等の問題が生じたことを示すものである。
【０１９６】
更には、全体管理部５００等が、不要になったインスタンスに割り当てられていたメモリ領域を解放する機能を備えていれば、メモリ領域解放処理部４８０は、終了させたアプリケーションや不要になった共有モジュールに割り当てられたメモリ領域を解放する必要がない。このような機能には例えばＪａｖａ（登録商標）の仮想マシンによるガーベージコレクションが含まれる。又、全体管理部５００等が、アプリケーションによる不正なメモリ領域へのアクセスを検出する機能も備えていれば、コンテンツ別メモリ領域管理部４７０は必要ない。
【０１９７】
又、移動端末４００がコンテンツダウンロード装置３００から取得するアプリケーション及び共有モジュールはオブジェクト指向言語によって記述されていなくてもよい。これによれば、アプリケーション及び共有モジュールは、メモリ上にロードすることによって実行可能となり、インスタンスの生成処理は不要となる。
【０１９８】
（本実施形態に係るコンテンツダウンロードシステムの効果）
このようなコンテンツダウンロードシステム１によれば、コンテンツダウンロード部４４６が、アプリケーションの実行に必要な共有モジュールの内、ダウンロードされていないと判断された共有モジュールを選択的にダウンロードするため、移動端末４００は、共有モジュールを重複して取得することによる無駄な計算リソースの消費を防ぐことができる。よって、移動端末４００は、ＣＰＵやメモリ等の計算リソースを効率的に用いてアプリケーションの実行に必要な共有モジュールを取得することができる。
【０１９９】
又、コンテンツロード処理決定部４５１によって所望のコンテンツがロードされていないと判断された場合に、コンテンツロード処理部４５２が、当該コンテンツをメモリ上にロードし、インスタンス生成処理決定部４５５によって所望のインスタンスが生成されていないと判断した場合に、インスタンス生成処理部４５６が、当該インスタンスをメモリ上に生成するため、移動端末４００は、不要なコンテンツをメモリにロードすることや不要なインスタンスをメモリ上に生成することを防ぐことができる。
【０２００】
このように、移動端末４００上で実行される複数のアプリケーションが、共有モジュールやインスタンスを共有することができ、移動端末４００は、計算リソースを効率的に用いて複数のアプリケーションを実行することができる。
【０２０１】
又、コンテンツロード処理部４５２は、他のアプリケーションが実行されている際であっても、アプリケーションをロードするため、例えば、複数のアプリケーションを同一の仮想マシン上で動作させる場合であっても、コンテンツロード処理部４５２は、他のアプリケーションが実行されている際にダウンロードされたアプリケーションをメモリ上にロードすることができる。
【０２０２】
更に、イベント配送処理決定部４６１が、検知されたイベントがタイマーイベントや入力イベント等である場合に、当該イベントを当該イベントの種別に関連づけられているアプリケーションに配送することを決定し、イベント配送処理部４６５が、決定されたアプリケーションに当該イベントを配送するため、移動端末４００は、複数のアプリケーションを、例えば同一の仮想マシン上で同時に実行する場合でも、検知したイベントを当該イベントの配送を必要としているアプリケーションに配送することができる。
【０２０３】
又、アプリケーション実行状態管理部４６３が、アクティブなアプリケーションを管理し、切り替えイベントが検知された場合に、イベント配送処理決定部４６１がアクティブなアプリケーションを変更する。そして、イベント配送処理部４６５が、入力イベントをアクティブなアプリケーションに配送するため、移動端末４００は、複数のアプリケーションを同時に実行する場合に、入力イベントが配送されるアクティブなアプリケーションを適切に管理することができる。
【０２０４】
尚、本実施例においては、最大で１のアプリケーションのみがアクティブなアプリケーションであるため、唯一のアプリケーションをユーザが同時に操作できる一方、非アクティブなアプリケーションは、タイマーイベントを利用することにより、必要な処理をすることができる。
【０２０５】
更に、メモリ領域解放処理部４８０が、アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、当該アプリケーションを終了させるため、移動端末４００は、あるアプリケーションによるメモリ領域への不正なアクセスが他のアプリケーションに影響を与えることを防ぐことができる。
【０２０６】
このため、移動端末４００を提供する複数のベンダは、移動端末４００上で、他のアプリケーションの実行を妨げる等の悪意のあるアプリケーションが実行されるような場合を考慮せずに、アプリケーションをダウンロードして、当該アプリケーションを実行できる環境を提供することができる。
【０２０７】
又、アプリケーションがＪａｖａ（登録商標）アプリケーションである場合に、移動端末４００は、複数の仮想マシン上で単独のアプリケーションを動作させるのでなく、同一の仮想マシン上で複数のアプリケーションを動作させることが可能になるため、移動端末４００の少ない計算リソースを効率的に用いて複数のアプリケーションを実行することができる。
【図面の簡単な説明】
【０２０８】
【図１】本発明の実施の形態に係るコンテンツダウンロードシステムの構成を示す図である。
【図２】本発明の実施の形態に係るコンテンツダウンロード装置の構成を示す図である。
【図３】本発明の実施の形態に係るアプリケーション情報を示す図である。
【図４】本発明の実施の形態に係る移動端末の構成を示す図である。
【図５】本発明の実施の形態に係るコンテンツ別メモリ領域管理部を示す図である。
【図６】本発明の実施の形態に係るコンテンツダウンロード処理部の構成を示す図である。
【図７】本発明の実施の形態に係る記憶コンテンツ管理部を示す図である。
【図８】本発明の実施の形態に係るアプリケーション起動処理部の構成を示す図である。
【図９】本発明の実施の形態に係るロード済みコンテンツ管理部を示す図である。
【図１０】本発明の実施の形態に係る生成済みインスタンス管理部を示す図である。
【図１１】本発明の実施の形態に係るイベント処理部の構成を示す図である。
【図１２】本発明の実施の形態に係るアプリケーション実行状態管理部を示す図である。
【図１３】本発明の実施の形態に係るアプリケーション別イベント管理部を示す図である。
【図１４】本発明の実施の形態に係るコンテンツダウンロード方法の手順を示す図である。
【図１５】本発明の実施の形態に係るアプリケーション起動方法の手順を示す図である。
【図１６】本発明の実施の形態に係るイベント処理方法の手順を示す図である。
【図１７】本発明の実施の形態に係るアプリケーション終了処理の手順を示す図である。
【符号の説明】
【０２０９】
１  コンテンツダウンロードシステム
１００  ネットワーク
２００  ゲートウェイ装置
３００  コンテンツダウンロード装置
３１０  通信部
３２０  アプリケーション情報データベース
３３０  コンテンツデータベース
３４０  アプリケーション情報提供部
３５０  アプリケーション提供部
３６０  共有モジュール提供部
３７０  全体管理部
４００  移動端末
４１０  入力部
４２０  表示部
４３０  通信部
４４０  コンテンツダウンロード処理部
４４１  コンテンツダウンロード処理決定部
４４２  アプリケーション情報ダウンロード部
４４３  アプリケーション情報解析部
４４４  アプリケーション情報記憶部
４４５  記憶コンテンツ管理部
４４６  コンテンツダウンロード部
４４７  コンテンツ記憶部
４５０  アプリケーション起動処理部
４５１  コンテンツロード処理決定部
４５２  コンテンツロード処理部
４５３  ロード済みコンテンツ管理部
４５４  生成済みインスタンス管理部
４５５  インスタンス生成処理決定部
４５６  インスタンス生成処理部
４６０  イベント処理部
４６１  イベント配送処理決定部
４６２  イベント発生検知部
４６３  アプリケーション実行状態管理部
４６４  アプリケーション別イベント管理部
４６５  イベント配送処理部
４７０  コンテンツ別メモリ領域管理部
４８０  メモリ領域解放処理部
４９０ａ  アプリケーション
４９０ｂ  アプリケーション
５００  全体管理部
６００  アプリケーション情報
【図１】
2005293316.tif 000003
【図２】
2005293316.tif 000004
【図３】
2005293316.tif 000005
【図４】
2005293316.tif 000006
【図５】
2005293316.tif 000007
【図６】
2005293316.tif 000008
【図７】
2005293316.tif 000009
【図８】
2005293316.tif 000010
【図９】
2005293316.tif 000011
【図１０】
2005293316.tif 000012
【図１１】
2005293316.tif 000013
【図１２】
2005293316.tif 000014
【図１３】
2005293316.tif 000015
【図１４】
2005293316.tif 000016
【図１５】
2005293316.tif 000017
【図１６】
2005293316.tif 000018
【図１７】
2005293316.tif 000019