JP2005293316A - 端末装置、プログラム提供装置及びプログラム取得方法 - Google Patents
端末装置、プログラム提供装置及びプログラム取得方法 Download PDFInfo
- Publication number
- JP2005293316A JP2005293316A JP2004108396A JP2004108396A JP2005293316A JP 2005293316 A JP2005293316 A JP 2005293316A JP 2004108396 A JP2004108396 A JP 2004108396A JP 2004108396 A JP2004108396 A JP 2004108396A JP 2005293316 A JP2005293316 A JP 2005293316A
- Authority
- JP
- Japan
- Prior art keywords
- application
- event
- unit
- module
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
【課題】計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得すること、及び、計算リソースを効率的に用いて複数のアプリケーションを実行すること。
【解決手段】コンテンツダウンロード処理部440が、アプリケーション情報に基づいて、実行可能と判断されたアプリケーション及び取得されていないと判断した共有モジュールダウンロードする。アプリケーション起動処理部450が、所望の共有モジュールがロードされていないと判断した場合に、当該共有モジュールをメモリ上にロードし、所望のインスタンスが生成されていないと判断した場合に、当該インスタンスをメモリ上に生成する。イベント処理部460が、検知されたイベントを、当該イベントの配送を必要とするアプリケーションに配送する。メモリ領域解放処理部480がアプリケーションによるメモリ領域への不正なアクセスを検出した場合に、アプリケーションを終了させる。
【選択図】図4
【解決手段】コンテンツダウンロード処理部440が、アプリケーション情報に基づいて、実行可能と判断されたアプリケーション及び取得されていないと判断した共有モジュールダウンロードする。アプリケーション起動処理部450が、所望の共有モジュールがロードされていないと判断した場合に、当該共有モジュールをメモリ上にロードし、所望のインスタンスが生成されていないと判断した場合に、当該インスタンスをメモリ上に生成する。イベント処理部460が、検知されたイベントを、当該イベントの配送を必要とするアプリケーションに配送する。メモリ領域解放処理部480がアプリケーションによるメモリ領域への不正なアクセスを検出した場合に、アプリケーションを終了させる。
【選択図】図4
Description
本発明は、端末装置がプログラム提供装置からアプリケーションを取得するプログラム取得方法、及び、プログラム取得方法に用いられる端末装置及びプログラム提供装置に関する。
従来、移動端末が、インターネット等のネットワークを介して、コンテンツとしてのアプリケーションをプログラム提供装置から取得する技術が提供されている。最近では、移動端末が、上述のネットワークを介して、Java(登録商標)アプリケーションをプログラム提供装置から取得し、当該アプリケーションを実行するサービスが実現されている。
ただし、アプリケーションを取得した移動端末が、当該アプリケーションを実行できることは保証されない。特に移動端末は、CPUやメモリ等の計算リソースが限られているという特徴を有するため、実行できるアプリケーションも大きく制限される。
このため、移動端末が、ネットワークを介して、プログラム提供装置から取得したアプリケーションを当該移動端末で実行できると判断した場合にのみ、取得した当該アプリケーションを外部記憶装置に保存し、当該アプリケーションを実行する技術が提供されている(例えば、特許文献1)。
特開2004−5419号公報
しかしながら、従来の技術では、移動端末は、計算リソースが限られているにも関わらず、所望のアプリケーションの実行に必要なモジュールが既に取得されているか否かについて判断しなかったため、既に取得した複数のアプリケーションの実行に必要なモジュールを重複して取得することがあり、計算リソースを効率的に用いることができなかった。
又、移動端末は、計算リソースが限られているため、複数のアプリケーションを同時に実行することが困難であった。
そこで、本発明は、計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得すること、及び、計算リソースを効率的に用いて複数のアプリケーションを実行することを目的とする。
本発明の第1の特徴は、プログラム提供装置からアプリケーションを取得する端末装置であって、アプリケーションに係る情報を示すアプリケーション情報を取得するアプリケーション情報取得部と、アプリケーション情報に基づいて、アプリケーションの実行に必要なモジュールが、既に取得されているか否かについて判断する取得判断部と、モジュールが取得されていないと判断された場合に、モジュールを取得するモジュール取得部とを備えることを要旨とする。
かかる発明によれば、モジュール取得部が、アプリケーションの実行に必要なモジュールの内、取得されていないと判断されたモジュールを選択的に取得するため、端末装置は、モジュールを重複して取得することによる無駄な計算リソースの消費を防ぐことができる。よって、端末装置は、計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得することができる。
又、本発明の第1の特徴において、特定の状態が生じたことを示すイベントを検知するイベント検知部と、アプリケーションとイベントの種別とを関連づけて管理するイベント管理部と、イベント管理部を参照して、イベント検知部によって検知されたイベントの種別に関連づけられているアプリケーションに対して、そのイベントを通知するイベント通知部とを備えるように構成されていてもよい。
かかる発明によれば、イベント通知部が、検知されたイベントを当該イベントの種別に関連づけられているアプリケーションに通知するため、端末装置は、複数のアプリケーションを同時に実行する場合でも、検知したイベントを当該イベントの通知を必要としているアプリケーションに通知することができる。
更に、本発明の第1の特徴において、アクティブなアプリケーションを管理するアクティブアプリケーション管理部と、イベント検知部によって、切り替えイベントが検知された場合に、アクティブなアプリケーションを変更するアクティブアプリケーション変更部とを備え、イベント通知部は、端末装置に対する入力操作があったことを示す入力イベントを、アクティブなアプリケーションに通知するように構成されていてもよい。
かかる発明によれば、アクティブアプリケーション管理部が、アクティブなアプリケーションを管理し、切り替えイベントが検知された場合に、アクティブアプリケーション変更部が、アクティブなアプリケーションを変更する。そして、イベント通知部が、入力イベントをアクティブなアプリケーションに通知するため、端末装置は、複数のアプリケーションを実行する場合に、入力イベントの通知を受けるアクティブなアプリケーションを適切に管理することができる。
本発明の第1の特徴において、アプリケーションに割り当てられるメモリの領域であるメモリ領域を管理するメモリ領域管理部と、メモリ領域管理部を参照して、アプリケーションによるメモリ領域への不正なアクセスを検出する不正アクセス検出部と、不正アクセス検出部によって、アプリケーションによる不正なアクセスが検出された場合に、アプリケーションを終了させる終了処理部とを備えるように構成されていてもよい。
かかる発明によれば、終了処理部が、アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、そのアプリケーションを終了させるため、端末装置は、あるアプリケーションによるメモリ領域への不正なアクセスが他のアプリケーションに影響を与えることを防ぐことができる。
本発明の第2の特徴は、アプリケーションを実行する端末装置であって、アプリケーション、又は、アプリケーションの実行に必要なモジュールが、メモリ上にロードされているか否かを管理するロード済みプログラム管理部と、ロード済みプログラム管理部を参照して、所望のモジュールがロードされていないと判断した場合に、当該モジュールをメモリ上にロードするロード部と、ロード部によってロードされたモジュールに含まれるクラスに基づいてインスタンスがメモリ上に生成されているか否かを管理する生成済みインスタンス管理部と、生成済みインスタンス管理部を参照して、所望のインスタンスが生成されていないと判断した場合に、インスタンスをメモリ上に生成するインスタンス生成部とを備えることを要旨とする。
かかる発明によれば、ロード部が、所望のモジュールがメモリ上にロードされていないと判断された場合にそのモジュールをメモリ上にロードし、インスタンス生成部が、所望のインスタンスが生成されていないと判断した場合にそのインスタンスをメモリ上に生成するため、端末装置は、不要なモジュールをメモリにロードすることや不要なインスタンスをメモリ上に生成することを防ぐことができる。よって、端末装置は、計算リソースを効率的に用いて複数のアプリケーションを実行することができる。
本発明の第3の特徴は、端末装置に対してアプリケーションを提供するプログラム提供装置であって、端末装置からのアプリケーション情報要求に応じて、アプリケーションに係る情報を示すアプリケーション情報を提供するアプリケーション情報提供部と、アプリケーション情報に基づいて、アプリケーションの実行に必要なモジュールが取得されていないと判断した端末装置からのモジュール要求に応じて、モジュールを提供するモジュール提供部とを備えることを要旨とする。
本発明の第4の特徴は、端末装置が、プログラム提供装置からアプリケーションを取得するプログラム取得方法であって、プログラム提供装置が、端末装置からのアプリケーション情報要求に応じて、アプリケーションに係る情報を示すアプリケーション情報を提供する工程と、端末装置が、プログラム提供装置によって提供されたアプリケーション情報を取得する工程と、端末装置が、アプリケーション情報に基づいて、アプリケーションの実行に必要なモジュールが既に取得されているか否かについて判断する工程と、端末装置が、モジュールが取得されていないと判断した場合に、プログラム提供装置にモジュール要求を送信する工程と、プログラム提供装置が、モジュール要求に応じてモジュールを提供する工程とを備えることを要旨とする。
以上説明したように、本発明によれば、計算リソースを効率的に用いてアプリケーションの実行に必要なモジュールを取得すること、及び、計算リソースを効率的に用いて複数のアプリケーションを実行することが可能となる。
(本発明の一実施形態に係るコンテンツダウンロードシステムの構成)
図1〜図13を参照して、本実施形態に係るコンテンツダウンロードシステム1の構成について説明する。図1に示すように、コンテンツダウンロードシステム1は、ネットワーク100と、ゲートウェイ装置200と、コンテンツダウンロード装置300と、移動端末400とを備える。
図1〜図13を参照して、本実施形態に係るコンテンツダウンロードシステム1の構成について説明する。図1に示すように、コンテンツダウンロードシステム1は、ネットワーク100と、ゲートウェイ装置200と、コンテンツダウンロード装置300と、移動端末400とを備える。
移動端末400は、プログラム提供装置であるコンテンツダウンロード装置300からアプリケーションを取得する端末装置である。又、コンテンツダウンロード装置300は、端末装置である移動端末400に対してアプリケーションを提供するプログラム提供装置である。ゲートウェイ装置200は、移動端末400と、インターネット等のネットワーク100との間の通信トラフィックを中継するものである。
次に、コンテンツダウンロード装置300について詳細に説明する。図2に示すように、コンテンツダウンロード装置300は、通信部310と、アプリケーション情報データベース320と、コンテンツデータベース330と、アプリケーション情報提供部340と、アプリケーション提供部350と、共有モジュール提供部360と、全体管理部370とを備える。
通信部310は、ゲートウェイ装置200とネットワーク100とを介して、移動端末400との間で通信するものである。
アプリケーション情報データベース320は、アプリケーション毎に、アプリケーションに係る情報を示すアプリケーション情報を保持するものである。具体的には、アプリケーション情報データベース320は、図3に示すように、アプリケーション情報600を保持する。
アプリケーション情報600は、アプリケーションに係る情報として、アプリケーション実行情報Aと、共有モジュール情報B,Cとを含む。アプリケーション実行情報Aは、アプリケーション名と、URL(Uniform Resource Locator)と、ファイルサイズと、RAM(Randam Access Memory)サイズとを含む。尚、図3は、アプリケーション490aに係るアプリケーション情報を示すものとする。
ここで、URLは、コンテンツダウンロード装置300上で、アプリケーションが格納されている場所を示す情報である。ファイルサイズは、コンテンツダウンロード装置300によってファイルとして格納されているアプリケーションのバイト数を示す情報である。RAMサイズは、アプリケーションの実行に必要なRAMのバイト数を示す情報である。
尚、アプリケーション実行情報Aは、ファイルサイズとRAMサイズの他にも、CPUの処理速度等の計算リソースに関する情報を含んでもよい。
又、共有モジュール情報は、当該アプリケーションが共有モジュールを必要としない場合は存在せず、当該アプリケーションが複数の共有モジュールを必要とする場合は複数存在する。図3の例では、アプリケーション490aが2つの共有モジュールを必要とすることが分かる。
各共有モジュール情報は、共有モジュール名と、URLと、ファイルサイズと、RAMサイズと、元URLとを含む。ここで、元URLは、共有モジュールの提供元であるコンテンツダウンロード装置上で、当該共有モジュールが格納されている場所を示す情報である。このため、共有モジュールが、提供元のコンテンツダウンロード装置からコピーされてコンテンツダウンロード装置300に格納されている場合には、元URLとURLとは異なる。元URLは、比較する共有モジュール情報を識別するためのURN(Uniform Resource Name)として用いられる。
尚、アプリケーション情報を取得した移動端末400が、共有モジュールの提供元のコンテンツダウンロード処理部からではなく、URLに基づいてコンテンツダウンロード装置300から共有モジュールを取得することにより、当該共有モジュールの提供元であるコンテンツダウンロード装置の負荷が軽減される。
コンテンツデータベース330は、アプリケーション及びアプリケーションの実行に必要な共有モジュールをコンテンツとして格納するものである。
アプリケーションは、特定の機能を提供するソフトウェアであり、例えば、メモ帳ソフト、スケジュール管理ソフト、ゲームソフト等を含む。又、アプリケーションは、移動端末400における基本的な機能を提供するネイティブアプリケーションであってもよいし、オブジェクト指向言語であるJava(登録商標)によって記述されたアプリケーションであってもよい。ネイティブアプリケーションには、例えば、電話の発着信機能やメールの送受信機能を提供するアプリケーションや、OSに相当するアプリケーション等が含まれる。
ただし、本実施形態において、コンテンツダウンロード装置300から提供されるコンテンツは、オブジェクト指向言語によって記述されているものとする。尚、アプリケーションは、例えば、当該アプリケーションを圧縮したJARファイルとしてコンテンツデータベース330に格納されている。
アプリケーション情報提供部340は、移動端末400から、通信部310を介して取得したアプリケーション情報要求に応じて、アプリケーション情報を提供するものである。
具体的には、アプリケーション情報提供部340は、アプリケーション情報要求に応じて、アプリケーション情報データベース320から所望のアプリケーション情報を取得し、取得したアプリケーション情報を移動端末400に提供するように構成されている。ここで、アプリケーション情報要求は、URLやアプリケーション名やアプリケーションID等のアプリケーションを特定することができる情報を用いて、所望のアプリケーションを指定している。
アプリケーション提供部350は、アプリケーション情報に基づいて、アプリケーションを実行可能と判断した移動端末400からのアプリケーション要求に応じてアプリケーションを提供するものである。
具体的には、アプリケーション提供部350は、移動端末400から取得したアプリケーション要求に応じて、コンテンツデータベース330から所望のアプリケーションを取得し、取得したアプリケーションを移動端末400に提供するように構成されている。ここで、アプリケーション要求は、URLやアプリケーション名やアプリケーションID等のアプリケーションを特定することができる情報を用いて、所望のアプリケーションを指定している。
共有モジュール提供部360は、アプリケーション情報に基づいて、対応するアプリケーションの実行に必要な共有モジュールが取得されていないと判断した移動端末400からの共有モジュール要求に応じて共有モジュールを提供するモジュール提供部である。
具体的には、共有モジュール提供部360は、移動端末400から取得した共有モジュール要求に応じて、コンテンツデータベース330から所望の共有モジュールを取得し、取得した共有モジュールを移動端末400に提供するように構成されている。ここで、共有モジュール要求は、元URLや共有モジュール名や共有モジュールID等の共有モジュールを特定することができる情報を用いて、所望の共有モジュールを指定している。
全体管理部370は、各構成要素310〜360を制御するものである。
次に、移動端末400について詳細に説明する。図4に示すように、移動端末400は、入力部410と、表示部420と、通信部430と、コンテンツダウンロード処理部440と、アプリケーション起動処理部450と、イベント処理部460と、コンテンツ別メモリ領域管理部470と、メモリ領域解放処理部480とを備える。又、図4の例では、アプリケーション490a,490bが、移動端末400上で実行されているものとする。
入力部410は、移動端末400へのユーザの入力操作を受け付けた場合に、入力イベントを生成し、生成した入力イベントをイベント処理部460に提供するものである。ここで、イベントとは特定の状態が生じたことを示すものである。入力イベントとは、移動端末400から入力操作があったことを示すイベントであり、移動端末400上のボタン等が押下されたことを示す「Key」イベントや、指定された時刻になったことや、指定された時間が経過したことを示す「Timer」や、アプリケーションによって表示されている画面のサイズが変更されたこと等を示す「Component」等が含まれる。
又、イベントには入力イベントの他、ネイティブアプリケーションに配送され、他のアプリケーションの実行より優先して処理されるネイティブイベントや、アクティブなアプリケーションを変更する必要が生じたことを示す切り替えイベントや、特定のアプリケーションをアクティブにする、即ちアクティブ化する必要が生じたことを示すアクティブ化イベントや、特定のアプリケーションを非アクティブにする、即ち非アクティブ化する必要が生じたことを示す非アクティブ化イベントや、アプリケーションを終了させる必要が生じたことを示す終了イベント等が含まれる。
尚、アクティブなアプリケーションとは移動端末400からの入力操作が反映されるアプリケーションをいう。例えば、Windows(登録商標)上で複数のウィンドウが表示されている場合に、最前面に表示されているウィンドウを表示するアプリケーションが、アクティブなアプリケーションである。本実施形態では、最大で1のアプリケーションがアクティブなアプリケーションとなる。
表示部420は、アプリケーション490a,490bの動作の状態をユーザに対して表示するものである。通信部430は、ネットワーク100とゲートウェイ装置200とを介して、コンテンツダウンロード装置300と通信するものである。
コンテンツダウンロード処理部440は、コンテンツダウンロード装置300からコンテンツを取得するものである。本実施形態では、コンテンツダウロード装置300からコンテンツを取得することをダウンロードという。アプリケーション起動処理部450は、ダウンロードしたアプリケーションを実行して、起動するものである。イベント処理部460は、イベントをアプリケーションに配送するものである。
コンテンツ別メモリ領域管理部470は、アプリケーションに割り当てられるメモリの領域であるメモリ領域を管理するメモリ領域管理部である。又、コンテンツ別メモリ領域管理部470は、アプリケーションが必要とする共有モジュールに割り当てられるメモリ領域も管理するものである。
具体的には、コンテンツ別メモリ領域管理部470は、図5に示すように、アプリケーション起動処理部450から取得したコンテンツのコンテンツ名と、当該コンテンツに割り当てられるメモリ領域の情報とを保持する。図5の例では、使用メモリ領域が、関連づけられるコンテンツ名のコンテンツに割り当てられるメモリ領域の情報である。
又、コンテンツ別メモリ領域管理部470は、メモリ領域解放処理部480から取得した情報削除要求に応じて、情報削除要求に含まれるアプリケーション名又は共有モジュール名に係る情報を削除する。ここで、情報削除要求は、メモリ領域解放処理部480が、情報削除要求に含まれるアプリケーション名又は共有モジュール名に係る情報の削除を求めるものである。
メモリ領域解放処理部480は、コンテンツ別メモリ領域管理部470に基づいて、アプリケーションによるメモリ領域への不正なアクセスを検出する不正アクセス検出部である。
具体的には、メモリ領域解放処理部480は、アプリケーションによるメモリアクセスを監視することによって、コンテンツ別メモリ領域管理部470によって管理される当該アプリケーションの使用メモリ領域を超えたメモリ領域へのアクセスを、不正アクセスとして検出する。
又、メモリ領域解放処理部480は、アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、当該アプリケーションを終了させる終了処理部としても機能するものである。更に、メモリ領域解放処理部480は、イベント配送処理部465から、終了させるアプリケーションのアプリケーション名を含むアプリケーション終了イベントを取得した場合にも、当該アプリケーションを終了させるものである。
具体的には、メモリ領域解放処理部480は、終了させるアプリケーションに割り当てられたメモリ領域を解放するものである。メモリ領域解放処理部480は、コンテンツ別メモリ領域管理部470を参照し、終了させるアプリケーションの使用メモリ領域によって示されるメモリ領域を解放する。これにより、アプリケーションに含まれるクラスに基づいて生成されたインスタンスは消滅し、アプリケーションが終了する。
又、メモリ領域解放処理部480は、終了させたアプリケーションによって使用されていた共有モジュールであって、他のアプリケーションによって使用されていない共有モジュールに割り当てられたメモリ領域も解放するものである。
具体的には、メモリ領域解放処理部480は、コンテンツダウンロード処理部440から、共有モジュール検索要求に対する応答である共有モジュール名を取得する。ここで、共有モジュール検索要求は、終了させたアプリケーションによって使用されていた共有モジュールであって、他のアプリケーションによって使用されていない共有モジュールの共有モジュール名を要求するものである。
メモリ領域解放処理部480は、コンテンツ別メモリ領域管理部470を参照し、取得した共有モジュール名に対応する使用メモリ領域によって示されるメモリ領域を解放するように構成されている。
全体管理部500は、各構成要素410〜480と、実行中のアプリケーション490a,490bとを制御するものである。
以下、コンテンツダウンロード処理部440と、アプリケーション起動処理部450と、イベント処理部460の各構成について詳細に説明する。
まず、コンテンツダウンロード処理部440について詳細に説明する。図6に示すように、コンテンツダウンロード処理部440は、コンテンツダウンロード処理決定部441と、アプリケーション情報ダウンロード部442と、アプリケーション情報解析部443と、アプリケーション情報記憶部444と、記憶コンテンツ管理部445と、コンテンツダウンロード部446と、コンテンツ記憶部447とを備える。
コンテンツダウンロード処理決定部441は、所望のアプリケーションをダウンロードするか否かを決定し、当該アプリケーションをダウンロードすると決定した場合に、当該アプリケーションによって必要とされる共有モジュールをダウンロードするか否かを決定するものである。
具体的には、コンテンツダウンロード処理決定部441は、ウェブブラウザ等のアプリケーション490b等から取得した取得要求に応じて、記憶コンテンツ管理部445を参照し、所望のアプリケーションがダウンロードされているか否かについて判断する。
コンテンツダウンロード処理決定部441は、所望のアプリケーションがダウンロードされていると判断した場合に、所望のアプリケーションをダウンロードしないと決定するように構成されている。ここで、取得要求は、特定のアプリケーションを取得することを要求するものである。
又、コンテンツダウンロード処理決定部441は、アプリケーション情報解析部443から取得したアプリケーション情報600に基づいて、該当するアプリケーションを実行可能か否かについて判断する。そして、コンテンツダウンロード処理決定部441は、所望のアプリケーションを実行可能でないと判断した場合にも、当該アプリケーションをダウンロードしないと決定するものである。
具体的には、コンテンツダウンロード処理決定部441は、取得要求によって指定されるアプリケーションに対応するアプリケーション情報をアプリケーション情報ダウンロード部442から取得する。コンテンツダウンロード処理決定部441は、取得したアプリケーション情報をアプリケーション情報解析部443に入力することによってアプリケーション情報の解析結果であるアプリケーション情報600を取得する。コンテンツダウンロード処理決定部441は、アプリケーション情報解析部443から取得したアプリケーション情報600に基づいて、当該アプリケーションを実行可能か否かについて判断する。
例えば、コンテンツダウンロード処理決定部441は、図3に示すアプリケーション実行情報Aに含まれるファイルサイズと、移動端末400のフラッシュメモリの空き容量とを比較し、ファイルサイズの方が大きい場合に、アプリケーション490aを実行可能でないと判断する。或いは、コンテンツダウンロード処理決定部441は、アプリケーション実行情報Aに含まれるRAMサイズと、移動端末400において利用可能なRAMの容量を比較し、RAMサイズの方が大きい場合に、アプリケーション490aを実行可能でないと判断する。
コンテンツダウンロード処理決定部441は、所望のアプリケーションを実行可能でないと判断した場合に、所望のアプリケーションをダウンロードしないと決定するように構成されている。
又、コンテンツダウンロード処理決定部441は、アプリケーション情報に基づいて、アプリケーションの実行に必要な共有モジュールが、既にダウンロードされているか否かについて判断する取得判断部としても機能する。
具体的には、コンテンツダウンロード処理決定部441は、アプリケーション490aを実行可能と判断した場合に、取得したアプリケーション情報600に含まれる共有モジュール情報B,Cを取得する。コンテンツダウンロード処理決定部441は、共有モジュール情報B,Cに含まれる元URLに基づいて、記憶コンテンツ管理部445を参照し、アプリケーションの実行に必要な全ての共有モジュールが既にダウンロードされているか否かについて判断する。
コンテンツダウンロード処理決定部441は、実行可能と判断したアプリケーションによって必要とされる共有モジュールがダウンロードされていないと判断した場合に、当該共有モジュールをダウンロードする必要があると判断するように構成されている。
又、コンテンツダウンロード処理決定部441は、メモリ領域解放処理部480から取得した共有モジュール検索要求に応じて、対応するアプリケーションによって使用されていた共有モジュールであって、他のアプリケーションによって使用されていない共有モジュールの共有モジュール名を提供するものである。
具体的には、コンテンツダウンロード処理決定部441は、共有モジュール検索要求に含まれるアプリケーション名に基づいて、アプリケーション情報記憶部444から対応するアプリケーション情報を取得する。コンテンツダウンロード処理決定部441は、取得したアプリケーション情報に含まれる共有モジュール情報を取得する。
コンテンツダウンロード処理決定部441は、イベント処理部460から、実行中アプリケーション名要求に対する応答である実行中のアプリケーションのアプリケーション名を取得する。ここで、実行中アプリケーション名要求は、アプリケーション実行状態管理部463によって管理されている、実行中のアプリケーションのアプリケーション名を要求するものである。
コンテンツダウンロード処理決定部441は、取得した各共有モジュール情報に含まれる元URLと、取得したアプリケーション名とに基づいて、アプリケーション情報記憶部444を参照し、アプリケーション名に係るアプリケーション情報に、取得した共有モジュール情報と同一の共有モジュール情報が含まれているか否かについて判断する。
コンテンツダウンロード処理決定部441は、取得したアプリケーション名に係るアプリケーション情報に、取得した共有モジュール情報と同一の共有モジュール情報が含まれていない場合に、当該共有モジュール情報に係る共有モジュールが、他のアプリケーションによって使用されていないと判断する。コンテンツダウンロード処理決定部441は、当該共有モジュール情報に含まれる共有モジュール名を、共有モジュール検索要求に対する応答としてメモリ領域解放処理部480に提供するように構成されている。
アプリケーション情報ダウンロード部442は、アプリケーション情報を取得するアプリケーション情報取得部である。具体的には、アプリケーション情報ダウンロード部442は、コンテンツダウンロード処理決定部441からダウンロードしようとするアプリケーションに係るURLを取得する。アプリケーション情報ダウンロード部442は、取得したURLを含むアプリケーション情報要求を通信部430に提供し、アプリケーション情報要求に対する応答であるアプリケーション情報を取得するように構成されている。
アプリケーション情報解析部443は、コンテンツダウンロード処理決定部441を介してアプリケーション情報ダウンロード部442から取得したアプリケーション情報を解析し、図3に示される形式にフォーマットするものである。又、アプリケーション情報解析部443は、フォーマットしたアプリケーション情報600を、解析結果としてコンテンツダウンロード処理決定部441に入力するものである。更に、アプリケーション情報解析部443は、フォーマットしたアプリケーション情報600を、アプリケーション情報記憶部444に格納するものである。
アプリケーション情報記憶部444は、アプリケーション情報解析部443によって図3に示される形式にフォーマットされたアプリケーション情報600を記憶するものである。
記憶コンテンツ管理部445は、移動端末400にダウンロードされたコンテンツの情報を管理するものである。具体的には、記憶コンテンツ管理部445は、図7に示すように、コンテンツダウンロード処理決定部441から取得した情報登録要求に応じて、情報登録要求に含まれるコンテンツ名と、コンテンツ種類と、URL情報とを保持するように構成されている。
ここで、コンテンツのコンテンツ種類は、当該コンテンツがアプリケーションであるか、又は、共有モジュールであるかを示す情報である。図7の例では、「Application」は、該当するコンテンツがアプリケーションであることを示し、「Shared Library」は、該当するコンテンツが共有モジュールであることを示す。又、アプリケーションに係るURL情報はURLであり、共有モジュールに係るURL情報は元URLである。
コンテンツダウンロード部446は、実行可能と判断された場合に、アプリケーションを取得する。又、コンテンツダウンロード部446は、共有モジュールがダウンロードされていないと判断された場合に、共有モジュールを取得するモジュール取得部としても機能する。即ち、コンテンツダウンロード部446は、ダウンロードする必要があると判断されたアプリケーション及び共有モジュールを選択的にダウンロードするものである。
具体的には、コンテンツダウンロード部446は、コンテンツダウンロード処理決定部441から取得したコンテンツ種類が「Application」である場合に、併せて取得したURLを含むアプリケーション要求を通信部430に提供し、アプリケーション要求に対する応答であるアプリケーションを取得するように構成されている。
一方、コンテンツダウンロード部446は、コンテンツダウンロード処理決定部441から取得したコンテンツ種類が「Shared Library」である場合に、併せて取得したURLを含む共有モジュール要求を通信部430に提供し、共有モジュール要求に対する応答である共有モジュールを取得するように構成されている。
又、コンテンツダウンロード部446は、取得したアプリケーション又は共有モジュールをコンテンツ記憶部447に格納するものである。
コンテンツ記憶部447は、コンテンツダウンロード部446から取得したコンテンツを記憶するものである。
次に、アプリケーション起動処理部450について詳細に説明する。図8に示すように、アプリケーション起動部450は、コンテンツロード処理決定部451と、コンテンツロード処理部452と、ロード済みコンテンツ管理部453と、生成済みインスタンス管理部454と、インスタンス生成処理決定部455と、インスタンス生成処理部456とを備える。
ここで、本実施形態において、コンテンツをロードするとは、コンテンツに含まれるクラスをメモリ上にロードすることである。そして、ロードされたクラスに基づいてインスタンスを生成することにより、移動端末400は当該コンテンツを実行できる。
コンテンツロード処理決定部451は、所望のアプリケーションを起動するために、アプリケーションに必要な共有モジュールをロードするか否かについて決定するものである。
コンテンツロード処理決定部451は、端末装置400の各構成要素410〜480又はアプリケーション490a,490bから起動しようとするアプリケーションのアプリケーション名を含む起動要求を取得する。
コンテンツロード処理決定部451は、イベント処理部460からアクティブアプリケーション要求に対する応答として、アクティブなアプリケーションのアプリケーション名を取得する。
コンテンツロード処理決定部451は、取得したアプリケーション名を含む非アクティブ化イベントを生成し、生成した非アクティブ化イベントをイベント処理部460に提供することにより、対応するアプリケーションを非アクティブ化する。
コンテンツロード処理決定部451は、コンテンツダウンロード処理部440から、アプリケーション情報要求に対する応答であるアプリケーション情報を取得する。コンテンツロード処理決定部451は、取得したアプリケーション情報から、共有モジュール情報を取得する。コンテンツロード処理決定部451は、取得した共有モジュール情報に含まれる元URLに基づいて、ロード済みコンテンツ管理部453を参照し、対応する共有モジュールがロードされているか否かについて判断する。
コンテンツロード処理決定部451は、ロードされていないと判断した共有モジュール及びアプリケーションのロードをコンテンツロード処理部452に依頼し、コンテンツロード処理部452から、ロードした共有モジュール又はアプリケーションに含まれるクラスと当該クラスのクラス名とを取得する。
コンテンツロード処理決定部451は、起動するアプリケーションのアプリケーション名を含むアクティブ化イベントを生成し、生成したアクティブ化イベントをイベント処理部460に提供することにより、起動するアプリケーションをアクティブ化する。コンテンツロード処理決定部451は、所望のアプリケーションを起動するように構成されている。
コンテンツロード処理部452は、コンテンツロード処理決定部451が、ロード済みコンテンツ管理部453を参照して、コンテンツがロードされていないと判断した場合に、当該コンテンツをメモリ上にロードするものである。
即ち、コンテンツロード処理決定部451及びコンテンツロード処理部452は、ロード済みコンテンツ管理部453を参照して所望のコンテンツがロードされていないと判断した場合に、そのコンテンツをメモリ上にロードするロード部として機能する。
具体的には、コンテンツロード処理部452は、コンテンツロード処理決定部451から取得したコンテンツ名に対応するコンテンツをコンテンツダウンロード処理部440から取得し、取得したコンテンツをロードするように構成されている。
ロード済みコンテンツ管理部453は、アプリケーション又はアプリケーションの実行に必要な共有モジュールが、メモリ上にロードされているか否かを管理するロード済みプログラム管理部である。
具体的には、ロード済みコンテンツ管理部453は、図9に示すようにコンテンツロード処理決定部451から取得したコンテンツ名とURL情報とを保持するように構成されている。尚、図9はアプリケーション490aがロードされた後のロード済みコンテンツ管理部453を示すものである。
生成済みインスタンス管理部454は、コンテンツロード処理部452によってロードされたコンテンツに含まれるクラスに基づいてインスタンスがメモリ上に生成されているか否かを管理するものである。
具体的には、生成済みインスタンス管理部454は、図10に示すように、インスタンス生成処理決定部455から取得したインスタンス名とクラス名とを保持するように構成されている。図10の例では、例えば、クラス「Class1」に基づいて「ClassInstance1」が生成されたことが分かる。
又、生成済みインスタンス管理部454は、コンテンツロード処理決定部451を介して、メモリ領域解放処理部480から使用メモリ領域が開放されたコンテンツのコンテンツ名を含む削除要求を取得し、当該コンテンツに含まれるクラスに係る情報を削除するものである。ここで、生成済みインスタンス管理部454は、コンテンツロード処理決定部451を介してコンテンツダウンロード処理部440から対応するコンテンツを取得することにより、コンテンツに含まれるクラスのクラス名を判断するものである。
インスタンス生成処理決定部455は、コンテンツロード処理決定部451から取得したクラス名に基づいて生成済みインスタンス管理部454を参照して、所望のインスタンスが生成されているか否かについて判断するものである。
例えば、インスタンス生成処理決定部455は、クラス名として「Class1」を取得した場合に、図10に示される生成済みインスタンス管理部454を参照し、所望のインスタンスが生成されていると判断する。或いは、インスタンス生成処理決定部455は、クラス名として「Class5」を取得した場合に、図10に示される生成済みインスタンス管理部454を参照し、所望のインスタンスが生成されていないと判断する。
又、インスタンス生成処理決定部455は、所望のインスタンスが生成されていないと判断した場合に、当該インスタンスを生成することを決定するものである。インスタンス生成処理決定部455は、生成済みインスタンス管理部454を参照して、既に生成されたインスタンスのインスタンス名と異なるインスタンス名のインスタンスを生成することを決定する。
インスタンス生成処理部456は、インスタンス生成処理決定部455が、生成済みインスタンス管理部454を参照して、所望のインスタンスが生成されていないと判断した場合に、インスタンス生成処理決定部455から取得したクラスに基づいて、併せて取得したインスタンス名のインスタンスをメモリ上に生成するものである。
即ち、インスタンス生成処理決定部455及びインスタンス生成処理部456は、生成済みインスタンス管理部454を参照して、所望のインスタンスが生成されていないと判断した場合に、そのインスタンスをメモリ上に生成するインスタンス生成部として機能する。
又、インスタンス生成処理部456は、インスタンスを生成する際に割り当てられたメモリ領域の情報を、インスタンス生成処理決定部455を介してコンテンツロード処理決定部451に入力する。
次に、イベント処理部460について詳細に説明する。図11に示すように、イベント処理部460は、イベント配送処理決定部461と、イベント発生検知部462と、アプリケーション実行状態管理部463と、アプリケーション別イベント管理部464と、イベント配送処理部465とを備える。
イベント配送処理決定部461は、アプリケーション別イベント管理部464を参照して、イベント発生検知部462によって検知されたイベントの種別に関連づけられているアプリケーションを当該イベントの配送先に決定するものである。そして、イベント配送処理決定部461は、イベントと配送先の指定とをイベント配送処理部465に入力するものである。
例えば、イベント処理決定部461は、タイマーイベントを取得した場合に、アプリケーション別イベント管理部464を参照して、タイマーイベントの配送を必要とするアプリケーションのアプリケーション名を取得し、当該アプリケーションを配送先に決定する。
図13の例では、アプリケーション名が「App1」のアプリケーション490aと、アプリケーション名が「App2」のアプリケーション490bとがタイマーイベントの配送を必要とする。イベント配送処理決定部461は、タイマーイベントと、その配送先の指定である「App1」と「App2」とをイベント配送処理部465に入力するように構成されている。
或いは、イベント配送処理決定部461は、入力イベントを取得した場合には、アクティブなアプリケーションが、当該入力イベントの配送を必要としているか否かについて判断し、必要としている場合には、当該入力イベントと、アクティブなアプリケーションのアプリケーション名とをイベント配送処理部465に入力する。
具体的には、イベント配送処理決定部461は、アプリケーション実行状態管理部463を参照し、アクティブなアプリケーションのアプリケーション名を取得する。図12の例では、イベント配送処理決定部461は、「App2」を取得する。
イベント配送処理決定部461は、取得した入力イベントの種別と、アクティブなアプリケーションのアプリケーション名に基づいて、アプリケーション別イベント管理部464を参照し、当該アプリケーション名に当該入力イベントの種別が関連づけられている場合に、アクティブなアプリケーションが当該入力イベントの配送を必要としていると判断する。
例えば、図12及び図13の例では、イベント配送処理決定部461は、アプリケーション別イベント管理部464を参照し、「App2」に取得した入力イベントの種別が関連づけられているか否かについて判断する。「App2」に「Key」は関連づけられているが、「Component」は関連づけられていない。このため、イベント配送処理決定部461は、取得した入力イベントが「Key」であれば、アプリケーション490bが当該入力イベントの配送を必要としていると判断し、取得した入力イベントが「Component」であればアプリケーション490bが当該入力イベントの配送を必要としていないと判断する。
そして、イベント配送処理決定部461は、配送を必要としていると判断した場合に、当該入力イベントと、その配送先の指定である「App2」とをイベント配送処理部465に入力する。
又、イベント配送処理決定部461は、イベント発生検知部462からネイティブイベントや、切り替えイベントや、アプリケーション終了イベント等の特別なイベントを取得した場合には、当該イベントの種別に応じて、当該イベントを処理する。
イベント配送処理決定部461は、ネイティブイベントを取得した場合に、アクティブなアプリケーションを非アクティブ化する。具体的には、イベント配送処理決定部461は、アプリケーション実行状態管理部463を参照し、アクティブなアプリケーションが存在する場合に、当該アプリケーションのアプリケーション名を含む非アクティブ化イベントを生成する。イベント配送処理決定部461は、生成した非アクティブ化イベントと、当該イベントの配送先であるアプリケーション実行状態管理部463の指定とをイベント配送処理部465に入力する。
そして、イベント配送処理決定部461は、ネイティブアプリケーションからネイティブイベントの処理が終了したことの通知を取得することによってネイティブイベントの処理が終了したことを検知した場合に、非アクティブ化したアプリケーションをアクティブ化する。具体的には、イベント配送処理決定部461は、非アクティブ化したアプリケーションのアプリケーション名を含むアクティブ化イベントを生成する。イベント配送処理決定部461は、生成したアクティブ化イベントと、当該イベントの配送先であるアプリケーション実行状態管理部463の指定をとイベント配送処理部465に入力する。
又、イベント配送処理決定部461は、アプリケーション切り替えイベントを取得した場合に、アクティブなアプリケーションを変更する。即ち、イベント配送処理決定部461は、イベント検知部によってアプリケーション切り替えイベントが検知された場合に、アクティブなアプリケーションを変更するアクティブアプリケーション変更部である。
具体的には、イベント配送処理決定部461は、アプリケーション実行状態管理部463を参照し、アクティブなアプリケーションが存在する場合に、当該アプリケーションのアプリケーション名を含む非アクティブ化イベントを生成する。イベント配送処理決定部461は、生成した非アクティブ化イベントと、当該イベントの配送先であるアプリケーション実行状態管理部463の指定とをイベント配送処理部465に入力する。
そして、イベント配送処理決定部461は、切り替えイベントに含まれるアプリケーション名を含むアクティブ化イベントを生成し、当該アクティブ化イベントと、その配送先であるアプリケーション実行状態管理部463の指定とをイベント配送処理部465に入力する。
或いは、イベント配送処理決定部461は、アプリケーション終了イベントを取得した場合に、当該アプリケーション終了イベントと、その配送先であるメモリ領域解放処理部480の指定とを、イベント配送処理部465に入力する。
更に、イベント配送処理決定部461は、取得した入力イベントを、アクティブなアプリケーションに配送する必要がない場合等、取得したイベントを処理する必要がない場合に、取得したイベントを破棄する。
イベント発生検知部462は、特定の状態が生じたことを示すイベントを移動端末400内の各構成要素410〜450,470〜480と、アプリケーション490a,490bとから、イベントを取得することによって検知するイベント検知部である。
アプリケーション実行状態管理部463は、アクティブなアプリケーションを管理するアクティブアプリケーション管理部である。具体的には、アプリケーション実行状態管理部463は、図12に示すように、イベント配送処理決定部461から取得したアプリケーション名とアプリケーション実行状態とを保持する。ここで、アプリケーション実行状態は、当該アプリケーションがアクティブであるか否かを示す情報である。
図12の例では、「Active」は、該当するアプリケーションがアクティブであることを示し、「Non−active」は、該当するアプリケーションがアクティブでない、即ち、非アクティブであることを示す。
アプリケーション実行状態管理部463は、イベント配送処理部465からアクティブ化イベントを取得した場合に、アクティブ化イベントに含まれるアプリケーション名に係る実行状態を「Active」に変更し、非アクティブ化イベントを取得した場合に、非アクティブ化イベントに含まれるアプリケーション名に係る実行状態を「Non−active」に変更する。
更に、アプリケーション実行状態管理部463は、イベント配送処理決定部461を介して、メモリ領域解放処理部480から情報削除要求を取得した場合に、当該情報削除要求に含まれるアプリケーション名に係る情報を削除するである。
アプリケーション別イベント管理部464は、アプリケーションとイベントの種別とを関連づけて管理するイベント管理部である。具体的には、アプリケーション別イベント管理部464は、イベント配送処理決定部461を介してアプリケーション起動処理部450から取得したアプリケーション名と、イベントの種別であるイベント種別とを図13に示すように保持する。
図13の例では、アプリケーション名が「App1」のアプリケーション490aは、「Key」、「Timer」、「Component」という種別のイベントの配送を必要とすることが分かる。
又、アプリケーション別イベント管理部464は、イベント配送処理決定部461を介して、メモリ領域解放処理部480から情報削除要求を取得した場合に、当該情報削除要求に含まれるアプリケーション名に係る情報を削除する。
イベント配送処理部465は、イベント配送処理決定部461から、イベントと当該イベントの配送先の指定を取得し、取得したイベントを指定される配送先に配送するものである。
又、イベント配送処理決定部461によって取得されたイベントがタイマーイベントや入力イベント等である場合に、イベント配送処理部465は、イベント配送処理決定部461から、イベント発生検知部462によって検知されたイベントと、アプリケーション別イベント管理部464において、そのイベントの種別に関連づけられているアプリケーションのアプリケーション名とを取得する。そして、イベント配送処理部465は、取得したイベントを、取得したアプリケーション名のアプリケーションに配送する。
即ち、イベント配送処理決定部461及びイベント配送処理部465は、アプリケーション別イベント管理部464を参照して、イベント発生検知部462によって検知されたイベントの種別に関連づけられているアプリケーションに対して当該イベントを通知するイベント通知部として機能する。このように、本実施形態では、イベントを通知することを、イベントを配送するという。
更に、イベント配送処理決定部461によって取得されたイベントが入力イベントである場合に、イベント配送処理部465は、イベント配送処理決定部461からアクティブなアプリケーションのアプリケーション名を取得する。そして、イベント配送処理部465は、取得したイベントを、取得したアプリケーション名のアプリケーションに対して配送する。
即ち、イベント配送処理部465は、入力イベントをアクティブなアプリケーションに配送するものである。
(本発明の一実施形態に係るコンテンツダウンロード方法)
図14は、本実施形態に係るコンテンツダウンロードシステム1において、移動端末400が、所望のアプリケーションをコンテンツダウンロード装置300からダウンロードするシーケンスの一例を示す図である。
図14は、本実施形態に係るコンテンツダウンロードシステム1において、移動端末400が、所望のアプリケーションをコンテンツダウンロード装置300からダウンロードするシーケンスの一例を示す図である。
ステップ101において、移動端末400上の通信部430が、所望のアプリケーションに係るアプリケーション情報を要求するアプリケーション情報要求をコンテンツダウンロード装置300上の通信部310に送信し、コンテンツダウンロード装置300の通信部310が、当該アプリケーション情報要求を受信する。
ステップ102において、コンテンツダウンロード装置300上の通信部310が、アプリケーション情報要求に応じて、所望のアプリケーション情報を移動端末400上の通信部430に送信し、移動端末400上の通信部430が、当該アプリケーション情報を受信する。
ステップ103において、アプリケーション情報解析部443が、取得したアプリケーション情報を解析し、図3に示すアプリケーション情報600をコンテンツダウンロード処理決定部441に入力する。
ステップ104において、コンテンツダウンロード処理決定部441が、解析されたアプリケーション情報600に基づいて所望のアプリケーションがダウンロードされているか否かについて判断する。コンテンツダウンロード処理決定部441は、所望のアプリケーションがダウンロードされていると判断した場合に、当該アプリケーションをダウンロードしないと決定し、ステップ105〜ステップ114を行わない。
ステップ105において、コンテンツダウンロード処理決定部441が、アプリケーション情報に基づいて所望のアプリケーションを実行可能か否かについて判断する。コンテンツダウンロード処理決定部441は、所望のアプリケーションを実行可能でないと判断した場合に、当該アプリケーションをダウンロードしないと決定し、ステップ106〜ステップ114を行わない。
ステップ106において、アプリケーション情報解析部443が、コンテンツダウンロード処理決定部441に入力したアプリケーション情報600をアプリケーション情報記憶部444に格納する。
ステップ107において、コンテンツダウンロード処理決定部441が、アプリケーション情報に含まれる共有モジュール情報を取得する。
ステップ108において、コンテンツダウンロード処理決定部441が、共有モジュール情報に基づいて、アプリケーションの実行に必要な全ての共有モジュールがダウンロードされているか否かについて判断する。
ステップ108において必要な共有モジュールがダウンロードされていないと判断された場合に、ステップ109において、移動端末400上の通信部430が、コンテンツダウンロード装置300上の通信部310にアプリケーション要求と共有モジュール要求とを送信し、コンテンツダウンロード装置300上の通信部310が、当該アプリケーション要求と当該共有モジュール要求とを受信する。
ステップ110において、コンテンツダウンロード装置300上の通信部310が、アプリケーション要求と共有モジュール要求とに応じて、アプリケーションと共有モジュールとを移動端末400上の通信部430に送信し、移動端末400上の通信部430が、当該アプリケーションと当該共有モジュールとを受信する。
ステップ108において全ての共有モジュールがダウンロードされていると判断された場合に、ステップ111において、移動端末400上の通信部430が、アプリケーション要求をコンテンツダウンロード装置300上の通信部310に送信し、コンテンツダウンロード装置300上の通信部310が、アプリケーション要求を受信する。
ステップ112において、コンテンツダウンロード装置300上の通信部310が、アプリケーション要求に応じて、アプリケーションを移動端末400上の通信部430に送信し、移動端末400上の通信部430が、当該アプリケーションを受信する。
ステップ113において、コンテンツダウンロード部446が、ダウンロードしたアプリケーションと共有モジュールとをコンテンツとしてコンテンツ記憶部447に格納する。
ステップ114において、コンテンツダウンロード処理決定部441が、ダウンロードされたコンテンツに係る情報を記憶コンテンツ管理部445に入力し、登録する。
図15は、本実施形態に係るコンテンツダウンロードシステム1において、移動端末400が、所望のアプリケーションを起動するシーケンスの一例を示す図である。
ステップ201において、コンテンツロード処理決定部451が、イベント処理部460からアクティブアプリケーション要求に対する応答を取得することにより、アクティブなアプリケーションがあるか否かについて判断する。
コンテンツロード処理決定部451は、ステップ201においてアクティブなアプリケーションがあると判断した場合に、ステップ202において、アクティブなアプリケーションを非アクティブ化する。
ステップ203において、コンテンツロード処理決定部451が、コンテンツダウンロード処理部440から取得したアプリケーション情報に含まれる共有モジュール情報を取得する。
ステップ204において、コンテンツロード処理決定部451が、ロード済みコンテンツ管理部453を参照し、各共有モジュール情報に係る共有モジュールがロードされているか否かについて判断する。
ステップ204において共有モジュールがロードされていないと判断された場合に、ステップ205において、コンテンツロード処理部452が、当該共有モジュールをロードする。
ステップ206において、コンテンツロード処理決定部451が、ロードされた共有モジュールに係る情報をロード済みコンテンツ管理部453に、ロード済みコンテンツとして登録する。
ステップ207において、インスタンス生成処理決定部455が、生成済みインスタンス管理部454を参照して、共有モジュールに含まれるクラスに基づいて、インスタンスが生成されているか否かについて判断する。
ステップ207において所望のインスタンスが生成されていないと判断された場合に、ステップ208において、インスタンス生成処理部456が、共有モジュールに含まれるクラスに基づいて、当該インスタンスをメモリ上に生成する。
ステップ209において、インスタンス生成処理決定部455が、生成したインスタンスに係る情報を生成済みインスタンス管理部454に入力し、生成済みインスタンスとして登録する。
ステップ210において、コンテンツロード処理決定部451が、ロードした共有モジュールの共有モジュール名と、当該共有モジュールに割り当てられたメモリ領域の情報をコンテンツ別メモリ領域管理部470に提供し、使用メモリ領域として登録する。
ステップ211において、コンテンツロード処理決定部451が、全ての共有モジュールについて処理を行ったか否かについて判断し、全ての共有モジュールについて処理を行っていない場合と判断した場合に、ステップ204に戻って処理していない共有モジュールに対してステップ204〜ステップ210の処理を行う。
ステップ212において、コンテンツロード処理部452が、所望のアプリケーションをロードする。
ステップ213において、コンテンツロード処理決定部451が、ロードしたアプリケーションに係る情報をロード済みコンテンツ管理部453に、ロード済みコンテンツとして登録する。
ステップ214において、インスタンス生成処理部456が、アプリケーションに含まれるクラスに基づいて、インスタンスをメモリ上に生成する。
ステップ215において、インスタンス生成処理決定部455が、生成したインスタンスに係る情報を生成済みインスタンス管理部454に入力し、生成済みインスタンスとして登録する。
ステップ216において、コンテンツロード処理決定部451が、起動するアプリケーションのアプリケーション名と、当該アプリケーションが配送を必要とするイベントの種別とをイベント処理部460に提供し、アプリケーション別イベント管理部464に登録する。
ステップ217において、コンテンツロード処理決定部451が、起動するアプリケーションのアプリケーション名と、生成されたインスタンスに割り当てられたメモリ領域の情報とをコンテンツ別メモリ領域管理部470に、使用メモリ領域として登録する。
ステップ218において、コンテンツロード処理決定部451が、起動するアプリケーションをアクティブ化する。
ステップ219において、コンテンツロード処理決定部451が、所望のアプリケーションを起動する。
図16は、本実施形態に係るコンテンツダウンロードシステム1において、移動端末400がイベントを検知し、処理するシーケンスの一例を示す図である。
ステップ301において、イベント発生検知部462が、イベントを検知する。
ステップ302において、イベント配送処理決定部461が、検知されたイベントがネイティブイベントであると判断した場合に、ステップ303において、アクティブなアプリケーションを非アクティブ化する。
ステップ304において、イベント配送処理決定部461が、ネイティブイベントの処理が終了したことを検知する。ステップ305において、イベント配送処理決定部461が、非アクティブ化したアプリケーションをアクティブ化する。
ステップ306において、イベント配送処理決定部461が、検知されたイベントがアプリケーション切り替えイベントであると判断した場合に、ステップ307においてアクティブなアプリケーションを変更する。
ステップ308において、イベント配送処理決定部461が、検知されたイベントがタイマーイベントであると判断した場合に、ステップ309において、タイマーイベントの配送を必要とするアプリケーションを検索する。ステップ310において、イベント配送処理部465が、タイマーイベントの配送を必要とするアプリケーションの全てにタイマーイベントを配送する。
本実施例においては、ステップ310までに処理されなかったイベントは主に入力イベントであるため、ステップ311において、イベント配送処理決定部461が、アクティブなアプリケーションを検索する。ステップ312において、イベント配送処理決定部461が、アクティブなアプリケーションが、検知されたイベントの配送を必要とすると判断した場合に、ステップ313において、イベント配送処理部465が、アクティブなアプリケーションに当該イベントを配送する。
ステップ314において、イベント配送処理決定部461が、検知されたイベントがアプリケーション終了イベントであると判断した場合に、ステップ315において、メモリ領域解放処理部480が、アプリケーション終了処理を行う。
ステップ316において、イベント配送処理決定部461が、ステップ301〜ステップ315において処理されなかったイベントを破棄する。
図17は、本実施形態に係るコンテンツダウンロードシステム1において、移動端末400がアプリケーションを終了させた後に行う終了処理のシーケンスの一例を示す図である。
ステップ401において、アプリケーション実行状態管理部463が、メモリ領域解放処理部480から取得した情報削除要求に含まれるアプリケーション名に係る情報を削除する。
ステップ402において、アプリケーション別イベント管理部464が、メモリ領域解放処理部480から取得した情報削除要求に含まれるアプリケーション名に係る情報を削除する。
ステップ403において、メモリ領域解放処理部480が、終了させるアプリケーションの使用メモリ領域を取得し、ステップ404において取得した使用メモリ領域によって示されるメモリ領域を解放する。
ステップ405において、メモリ領域解放処理部480が、終了させたアプリケーションが使用していた共有モジュールに係る共有モジュール情報を取得する。
ステップ406において、メモリ領域解放処理部480が、取得した共有モジュール情報に基づいて、終了させたアプリケーションによって使用されていた共有モジュールを、他のアプリケーションが使用しているか否かについて判断し、他のアプリケーションが使用していると判断した場合にステップ410に進む。
ステップ407において、メモリ領域解放処理部480が、他のアプリケーションに使用されていない共有モジュールの使用メモリ領域を取得し、ステップ408において、取得した使用メモリ領域によって示されるメモリ領域を解放する。
ステップ409において、コンテンツ別メモリ領域管理部470が、メモリ領域解放処理部480から取得した情報削除要求に含まれるアプリケーション名と共有モジュール名とに係る情報を削除し、情報を更新する。
ステップ410において、生成済みインスタンス管理部454が、解放されたメモリ領域を使用していたコンテンツに含まれるクラスに係る情報を削除する。
(変更例)
なお、本発明は上記実施形態に限定されるものではなく、種々の変更が可能である。例えば、1の共有モジュールが複数のクラスを含む場合に、アプリケーション情報は当該アプリケーション情報に係るアプリケーションによって必要とされるクラスのクラス名や当該クラスに基づいて生成されるインスタンス名を含んでもよい。
なお、本発明は上記実施形態に限定されるものではなく、種々の変更が可能である。例えば、1の共有モジュールが複数のクラスを含む場合に、アプリケーション情報は当該アプリケーション情報に係るアプリケーションによって必要とされるクラスのクラス名や当該クラスに基づいて生成されるインスタンス名を含んでもよい。
或いは、本実施形態においては、アプリケーションが必要とする共有モジュールに含まれるクラスのクラス名に基づいて、インスタンス生成処理決定部455が、所望のインスタンスが生成されているか否かについて判断することとしている。しかし、インスタンス生成処理決定部455は、生成しようとするインスタンスのインスタンス名も取得し、クラス名とインスタンス名に基づいて、所望のインスタンスが生成されているか否かについて判断してもよい。
これによれば、同一のインスタンス名のインスタンスを必要とするアプリケーションのみが同一のインスタンスを共有できる。このため、他のアプリケーションによって利用されているインスタンスと同一のクラスに基づいて生成されるインスタンスであっても、異なる動作をするインスタンスを必要とするアプリケーションに係るアプリケーション情報に異なるインスタンス名を含むことにより、当該アプリケーションは、異なるインスタンスを利用することができる。
又、移動端末400は、アプリケーションが発する例外を処理する例外処理部を備えてもよい。ここで、例外とは、整数が0で除されたことや、必要なファイルが見つからなかったこと等の問題が生じたことを示すものである。
更には、全体管理部500等が、不要になったインスタンスに割り当てられていたメモリ領域を解放する機能を備えていれば、メモリ領域解放処理部480は、終了させたアプリケーションや不要になった共有モジュールに割り当てられたメモリ領域を解放する必要がない。このような機能には例えばJava(登録商標)の仮想マシンによるガーベージコレクションが含まれる。又、全体管理部500等が、アプリケーションによる不正なメモリ領域へのアクセスを検出する機能も備えていれば、コンテンツ別メモリ領域管理部470は必要ない。
又、移動端末400がコンテンツダウンロード装置300から取得するアプリケーション及び共有モジュールはオブジェクト指向言語によって記述されていなくてもよい。これによれば、アプリケーション及び共有モジュールは、メモリ上にロードすることによって実行可能となり、インスタンスの生成処理は不要となる。
(本実施形態に係るコンテンツダウンロードシステムの効果)
このようなコンテンツダウンロードシステム1によれば、コンテンツダウンロード部446が、アプリケーションの実行に必要な共有モジュールの内、ダウンロードされていないと判断された共有モジュールを選択的にダウンロードするため、移動端末400は、共有モジュールを重複して取得することによる無駄な計算リソースの消費を防ぐことができる。よって、移動端末400は、CPUやメモリ等の計算リソースを効率的に用いてアプリケーションの実行に必要な共有モジュールを取得することができる。
このようなコンテンツダウンロードシステム1によれば、コンテンツダウンロード部446が、アプリケーションの実行に必要な共有モジュールの内、ダウンロードされていないと判断された共有モジュールを選択的にダウンロードするため、移動端末400は、共有モジュールを重複して取得することによる無駄な計算リソースの消費を防ぐことができる。よって、移動端末400は、CPUやメモリ等の計算リソースを効率的に用いてアプリケーションの実行に必要な共有モジュールを取得することができる。
又、コンテンツロード処理決定部451によって所望のコンテンツがロードされていないと判断された場合に、コンテンツロード処理部452が、当該コンテンツをメモリ上にロードし、インスタンス生成処理決定部455によって所望のインスタンスが生成されていないと判断した場合に、インスタンス生成処理部456が、当該インスタンスをメモリ上に生成するため、移動端末400は、不要なコンテンツをメモリにロードすることや不要なインスタンスをメモリ上に生成することを防ぐことができる。
このように、移動端末400上で実行される複数のアプリケーションが、共有モジュールやインスタンスを共有することができ、移動端末400は、計算リソースを効率的に用いて複数のアプリケーションを実行することができる。
又、コンテンツロード処理部452は、他のアプリケーションが実行されている際であっても、アプリケーションをロードするため、例えば、複数のアプリケーションを同一の仮想マシン上で動作させる場合であっても、コンテンツロード処理部452は、他のアプリケーションが実行されている際にダウンロードされたアプリケーションをメモリ上にロードすることができる。
更に、イベント配送処理決定部461が、検知されたイベントがタイマーイベントや入力イベント等である場合に、当該イベントを当該イベントの種別に関連づけられているアプリケーションに配送することを決定し、イベント配送処理部465が、決定されたアプリケーションに当該イベントを配送するため、移動端末400は、複数のアプリケーションを、例えば同一の仮想マシン上で同時に実行する場合でも、検知したイベントを当該イベントの配送を必要としているアプリケーションに配送することができる。
又、アプリケーション実行状態管理部463が、アクティブなアプリケーションを管理し、切り替えイベントが検知された場合に、イベント配送処理決定部461がアクティブなアプリケーションを変更する。そして、イベント配送処理部465が、入力イベントをアクティブなアプリケーションに配送するため、移動端末400は、複数のアプリケーションを同時に実行する場合に、入力イベントが配送されるアクティブなアプリケーションを適切に管理することができる。
尚、本実施例においては、最大で1のアプリケーションのみがアクティブなアプリケーションであるため、唯一のアプリケーションをユーザが同時に操作できる一方、非アクティブなアプリケーションは、タイマーイベントを利用することにより、必要な処理をすることができる。
更に、メモリ領域解放処理部480が、アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、当該アプリケーションを終了させるため、移動端末400は、あるアプリケーションによるメモリ領域への不正なアクセスが他のアプリケーションに影響を与えることを防ぐことができる。
このため、移動端末400を提供する複数のベンダは、移動端末400上で、他のアプリケーションの実行を妨げる等の悪意のあるアプリケーションが実行されるような場合を考慮せずに、アプリケーションをダウンロードして、当該アプリケーションを実行できる環境を提供することができる。
又、アプリケーションがJava(登録商標)アプリケーションである場合に、移動端末400は、複数の仮想マシン上で単独のアプリケーションを動作させるのでなく、同一の仮想マシン上で複数のアプリケーションを動作させることが可能になるため、移動端末400の少ない計算リソースを効率的に用いて複数のアプリケーションを実行することができる。
1 コンテンツダウンロードシステム
100 ネットワーク
200 ゲートウェイ装置
300 コンテンツダウンロード装置
310 通信部
320 アプリケーション情報データベース
330 コンテンツデータベース
340 アプリケーション情報提供部
350 アプリケーション提供部
360 共有モジュール提供部
370 全体管理部
400 移動端末
410 入力部
420 表示部
430 通信部
440 コンテンツダウンロード処理部
441 コンテンツダウンロード処理決定部
442 アプリケーション情報ダウンロード部
443 アプリケーション情報解析部
444 アプリケーション情報記憶部
445 記憶コンテンツ管理部
446 コンテンツダウンロード部
447 コンテンツ記憶部
450 アプリケーション起動処理部
451 コンテンツロード処理決定部
452 コンテンツロード処理部
453 ロード済みコンテンツ管理部
454 生成済みインスタンス管理部
455 インスタンス生成処理決定部
456 インスタンス生成処理部
460 イベント処理部
461 イベント配送処理決定部
462 イベント発生検知部
463 アプリケーション実行状態管理部
464 アプリケーション別イベント管理部
465 イベント配送処理部
470 コンテンツ別メモリ領域管理部
480 メモリ領域解放処理部
490a アプリケーション
490b アプリケーション
500 全体管理部
600 アプリケーション情報
100 ネットワーク
200 ゲートウェイ装置
300 コンテンツダウンロード装置
310 通信部
320 アプリケーション情報データベース
330 コンテンツデータベース
340 アプリケーション情報提供部
350 アプリケーション提供部
360 共有モジュール提供部
370 全体管理部
400 移動端末
410 入力部
420 表示部
430 通信部
440 コンテンツダウンロード処理部
441 コンテンツダウンロード処理決定部
442 アプリケーション情報ダウンロード部
443 アプリケーション情報解析部
444 アプリケーション情報記憶部
445 記憶コンテンツ管理部
446 コンテンツダウンロード部
447 コンテンツ記憶部
450 アプリケーション起動処理部
451 コンテンツロード処理決定部
452 コンテンツロード処理部
453 ロード済みコンテンツ管理部
454 生成済みインスタンス管理部
455 インスタンス生成処理決定部
456 インスタンス生成処理部
460 イベント処理部
461 イベント配送処理決定部
462 イベント発生検知部
463 アプリケーション実行状態管理部
464 アプリケーション別イベント管理部
465 イベント配送処理部
470 コンテンツ別メモリ領域管理部
480 メモリ領域解放処理部
490a アプリケーション
490b アプリケーション
500 全体管理部
600 アプリケーション情報
Claims (7)
- プログラム提供装置からアプリケーションを取得する端末装置であって、
前記アプリケーションに係る情報を示すアプリケーション情報を取得するアプリケーション情報取得部と、
前記アプリケーション情報に基づいて、前記アプリケーションの実行に必要なモジュールが、既に取得されているか否かについて判断する取得判断部と、
前記モジュールが取得されていないと判断された場合に、前記モジュールを取得するモジュール取得部とを備えることを特徴とする端末装置。 - 特定の状態が生じたことを示すイベントを検知するイベント検知部と、
前記アプリケーションと前記イベントの種別とを関連づけて管理するイベント管理部と、
該イベント管理部を参照して、前記イベント検知部によって検知された前記イベントの種別に関連づけられている前記アプリケーションに対して、該イベントを通知するイベント通知部とを備えることを特徴とする請求項1に記載の端末装置。 - アクティブなアプリケーションを管理するアクティブアプリケーション管理部と、
前記イベント検知部によって切り替えイベントが検知された場合に、アクティブなアプリケーションを変更するアクティブアプリケーション変更部とを備え、
前記イベント通知部は、前記端末装置に対する入力操作があったことを示す入力イベントを、アクティブなアプリケーションに通知することを特徴とする請求項2に記載の端末装置。 - 前記アプリケーションに割り当てられるメモリの領域であるメモリ領域を管理するメモリ領域管理部と、
該メモリ領域管理部を参照して、前記アプリケーションによるメモリ領域への不正なアクセスを検出する不正アクセス検出部と、
前記不正アクセス検出部によって、前記アプリケーションによるメモリ領域への不正なアクセスが検出された場合に、該アプリケーションを終了させる終了処理部とを備えることを特徴とする請求項1乃至3のいずれか1項に記載の端末装置。 - アプリケーションを実行する端末装置であって、
前記アプリケーション、又は、該アプリケーションの実行に必要なモジュールが、メモリ上にロードされているか否かを管理するロード済みプログラム管理部と、
該ロード済みプログラム管理部を参照して、所望のモジュールがロードされていないと判断した場合に、該モジュールを前記メモリ上にロードするロード部と、
前記ロード部によってロードされた前記モジュールに含まれるクラスに基づいてインスタンスが前記メモリ上に生成されているか否かを管理する生成済みインスタンス管理部と、
前記生成済みインスタンス管理部を参照して、所望のインスタンスが生成されていないと判断した場合に、該インスタンスを前記メモリ上に生成するインスタンス生成部とを備えることを特徴とする端末装置。 - 端末装置に対してアプリケーションを提供するプログラム提供装置であって、
前記端末装置からのアプリケーション情報要求に応じて、前記アプリケーションに係る情報を示すアプリケーション情報を提供するアプリケーション情報提供部と、
前記アプリケーション情報に基づいて、前記アプリケーションの実行に必要なモジュールが取得されていないと判断した前記端末装置からのモジュール要求に応じて、前記モジュールを提供するモジュール提供部とを備えることを特徴とするプログラム提供装置。 - 端末装置が、プログラム提供装置からアプリケーションを取得するプログラム取得方法であって、
前記プログラム提供装置が、前記端末装置からのアプリケーション情報要求に応じて、前記アプリケーションに係る情報を示すアプリケーション情報を提供する工程と、
前記端末装置が、前記プログラム提供装置によって提供された前記アプリケーション情報を取得する工程と、
前記端末装置が、前記アプリケーション情報に基づいて、前記アプリケーションの実行に必要なモジュールが、既に取得されているか否かについて判断する工程と、
前記端末装置が、前記モジュールが取得されていないと判断した場合に、前記プログラム提供装置にモジュール要求を送信する工程と、
前記プログラム提供装置が、前記モジュール要求に応じて前記モジュールを提供する工程とを備えることを特徴とするプログラム取得方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004108396A JP2005293316A (ja) | 2004-03-31 | 2004-03-31 | 端末装置、プログラム提供装置及びプログラム取得方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004108396A JP2005293316A (ja) | 2004-03-31 | 2004-03-31 | 端末装置、プログラム提供装置及びプログラム取得方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2005293316A true JP2005293316A (ja) | 2005-10-20 |
Family
ID=35326166
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004108396A Pending JP2005293316A (ja) | 2004-03-31 | 2004-03-31 | 端末装置、プログラム提供装置及びプログラム取得方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2005293316A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008270963A (ja) * | 2007-04-17 | 2008-11-06 | Kyocera Corp | 携帯通信端末 |
| KR20130037557A (ko) * | 2011-10-06 | 2013-04-16 | 주식회사 케이티 | 단말 및 그의 애플리케이션 실행을 위한 모듈 조회 방법 |
| JP2013132012A (ja) * | 2011-12-22 | 2013-07-04 | Hiroshima Univ | 映像配信プラットフォームおよび映像配信方法 |
-
2004
- 2004-03-31 JP JP2004108396A patent/JP2005293316A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008270963A (ja) * | 2007-04-17 | 2008-11-06 | Kyocera Corp | 携帯通信端末 |
| KR20130037557A (ko) * | 2011-10-06 | 2013-04-16 | 주식회사 케이티 | 단말 및 그의 애플리케이션 실행을 위한 모듈 조회 방법 |
| KR101891337B1 (ko) * | 2011-10-06 | 2018-08-29 | 주식회사 케이티 | 단말 및 그의 애플리케이션 실행을 위한 모듈 조회 방법 |
| JP2013132012A (ja) * | 2011-12-22 | 2013-07-04 | Hiroshima Univ | 映像配信プラットフォームおよび映像配信方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109582472B (zh) | 一种微服务处理方法及设备 | |
| US8812451B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
| US6430570B1 (en) | Java application manager for embedded device | |
| CN105653425B (zh) | 基于复杂事件处理引擎的监控系统 | |
| CN114125028B (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
| CA2605120C (en) | Method and system for hosting and executing a component application | |
| US20040001476A1 (en) | Mobile application environment | |
| CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
| CN111431740A (zh) | 数据的传输方法、装置、设备及计算机可读存储介质 | |
| JP3688571B2 (ja) | 情報処理装置 | |
| CN108306917A (zh) | 数据处理方法和装置、微服务模块的注册方法及装置 | |
| CN109614167B (zh) | 一种管理插件的方法和系统 | |
| US9990214B2 (en) | Dynamic agent delivery | |
| CN110913015A (zh) | 一种云手机app的分布式快捷安装方法、系统及介质 | |
| JP2004537086A (ja) | 無線装置におけるシステムサービスのダイナミックなダウンロードおよび実行 | |
| US8326913B2 (en) | Method and system for service contract discovery | |
| CN113110851A (zh) | 资源的加载方法、装置、电子设备和介质 | |
| CN112698879A (zh) | 加载源文件的方法及装置 | |
| JP2005228183A (ja) | プログラム実行方法、および、プログラム実行のための計算機システム | |
| EP1516244A1 (en) | Mobile application environment | |
| CN112905209A (zh) | 应用程序更新方法及装置 | |
| O'Sullivan et al. | The cloud personal assistant for providing services to mobile clients | |
| JP2005293316A (ja) | 端末装置、プログラム提供装置及びプログラム取得方法 | |
| CN109408336A (zh) | 一种启动项监控方法、装置、终端及计算机可读介质 | |
| CN112685102A (zh) | 一种网关插件热加载方法、装置、设备及介质 |