JP2008524686A - コンピュータ装置においてアプリケーションを保守する方法 - Google Patents

コンピュータ装置においてアプリケーションを保守する方法 Download PDF

Info

Publication number
JP2008524686A
JP2008524686A JP2007546188A JP2007546188A JP2008524686A JP 2008524686 A JP2008524686 A JP 2008524686A JP 2007546188 A JP2007546188 A JP 2007546188A JP 2007546188 A JP2007546188 A JP 2007546188A JP 2008524686 A JP2008524686 A JP 2008524686A
Authority
JP
Japan
Prior art keywords
application
ams
applications
operating system
user
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.)
Withdrawn
Application number
JP2007546188A
Other languages
English (en)
Inventor
シモン レウィス,
イワン リトフスキー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Symbian Software Ltd
Original Assignee
Symbian Software Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of JP2008524686A publication Critical patent/JP2008524686A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

コンピュータ装置上のユーザアプリケーションに対するアプリケーションのライフサイクルを管理する方法が提供される。方法は、アプリケーションの種類又はモデル、あるいは実行環境に関わらず、・アプリケーションのライフサイクル(インストール、実行状態、削除を含む)・アプリケーション能力・長寿命のOSレベルのアプリケーション所有のリソース(例えば、プッシュ接続、警告)・任意のアプリケーションに対するセキュリティを集中管理できる。

Description

本発明は、コンピュータ装置においてアプリケーションを保守する方法に関し、特に、アプリケーションの種類又は実行環境に関わらず、コンピュータ装置上のオペレーティングシステムにより統一された方法で、関連するリソースと共にユーザアプリケーションのライフサイクルを管理する方法に関する。
本明細書で使用されるコンピュータ装置という用語は、任意の形態の電気コンピュータ装置を含むように広範囲に解釈され、データ記録装置と、ハンドヘルドコンピュータ及びパーソナルコンピュータを含む任意の種類又は形態のコンピュータと、通信、画像の記録及び再生の少なくともいずれか、及び計算機能性を単一の装置に組み合わせた通信機、スマートフォン、移動電話及び他の形態の無線/有線情報装置を含む任意の形態の通信装置とを含む。
アプリケーション管理は、多くのコンピュータ装置にとって約20年前まで問題ではなかった。アプリケーションがテープ又はディスクからオペレータ又はユーザにより個々にロードされた場合、アプリケーションと媒体との1対1の対応は、オペレータ又はユーザがロードされたアプリケーションを常に正確に知っていたことを意味する。初期のマルチユーザオペレーティングシステムは、複数のアプリケーションが同時にロードされることを可能にしたが、オペレーティングシステムとそのようなアプリケーションとの間の対話は一般に予測可能であり、アプリケーション間の対話は非常に少なかった。本質的に、その頃のアプリケーションは、実行中のアプリケーション及び実行中でないアプリケーションの2種類に区分できた。
しかし、安価な大容量ディスク記憶装置が一般に普及したことにより、アプリケーションをロードする時の最低限の労力は略ゼロまで減少した。安価なメモリが一般に普及したことにより、複数のアプリケーションをロードした結果起こるメモリ競合の問題がなくなった。また、オペレーティングシステムの継続した開発の結果、プロセス間通信を促進した共通のアプリケーションプログラミングインタフェース(API)及び豊富な共有ライブラリが生成された。
それと共に、それら3つの進歩は、第3の種類のアプリケーションの概念を助長した。従って、上記2種類のアプリケーション、すなわち実行中のアプリケーション及び実行中でないアプリケーションに加え、第3の種類である「インストールされた」アプリケーションが存在する。それらアプリケーションは、実行中のアプリケーションではないが、ローカル記憶装置にロードされ、一般にインストールされた時にオペレーティングシステムに対して変更を行なう。例えば、システムライブラリの更新又はインストール、あるいはシステムレジストリの変更を行なう。
ある命令及び構成が今日のコンピュータ装置にアプリケーションをインストールする役割を果たすようにされるのが非常に望ましい。各アプリケーションが中央管理されないために起こる無統制は、オペレーティングシステム全体を容易に不安定にし、コンピュータ装置自体の機能が危険になる。
第4の進歩は、アプリケーションの最適な管理に対する要求に更に拍車をかけた。この進歩は、安価な公衆インターネットの使用の普及、永続的に接続された固定コンピュータ装置及び移動コンピュータ装置の使用の増加、並びにウェブブラウジング及び電子メール等のネットワーク化アプリケーションの使用の爆発的な増加の結果として得られる接続性の向上である。それら変更が組み合わされることにより、ユーザは、コンピュータ装置のセキュリティ及び電子攻撃に対するコンピュータ装置の影響の受け易さが学術的な問題ではなく一般的な問題になっていることに気付いた。電子攻撃の歴史は20年以上にわたるが(最初のコンピュータウィルスは1983年に考案された)、電子攻撃を深刻な脅威にしたのは接続性の向上であり、事実上、コンピュータ装置の全てのユーザが危険にさらされていると感じている。
今日のオープンオペレーティングシステムは、広範囲のアプリケーション管理及びセキュリティ解決策を実装できるが、アプリケーションのライフサイクルの課題に対しては相対的に標準的な方法を有する。それは、非強制的なアプリケーションマネージャを提供することであり、アプリケーションは、そのアプリケーションマネージャを使用して機構を登録、インストール及び削除してもよい。尚、それら機構は、アプリケーション専用であってもなくてもよいが、通常、ネイティブ実行ファイル及びそれらのリソースの従来のアプリケーションモデルに結び付けられる。
この方法は、Windows(登録商標)インストーラ及びInstall Shield等の第3者機構により使用されるため、デスクトップコンピュータのMicrosoftオペレーティングシステムのユーザはこの方法に精通している。それらアプリケーションは、要望に応じてアプリケーションマネージャに登録し、その動作基準に従うことがきでる。登録を行なうと、Control Panel等の中央サービスは、それらアプリケーションについて知り、アプリケーションの削除のオプションを提供する。しかし、アプリケーションは、この機構を使用してインストール又は削除をする義務はない。
同一のモデルは、RPM(Red Hat Package Manager)及びDebianのAPT(Advanced Packaging Tool)を中心に多くのLinux配信により使用される。Linux配信は、アプリケーションのインストール及び削除を考慮するが、機構が回避される可能性に対処しない。
このモデルは、バージョン8までの全てのバージョンにおいて、SIS(Symbian Installation System)及び関連するApplnstアーキテクチャを介してLondonのSymbian LimitedのSymbian OS(商標)オペレーティングシステムにより使用された。
今日のオペレーティングシステム(OS)において使用されるようなアプリケーション管理モデルは、実装及び保守するのに相対的に単純であるが、3つの主な領域にグループ化される複数の考慮点の悪影響を受ける。
1.アプリケーションのライフサイクル段階の間の対話の欠如
それら考慮点は全て、アプリケーションの種々のライフサイクル段階(インストール及び削除に加え、ロード、実行及び終了を含む)の間の対話が基本的に欠如していることに関する。
・アプリケーションマネージャはインストール及び削除を管理するが、それは、アプリケーションが実際に実行している時には存在しない別個のコンポーネントである。アプリケーションのライフサイクルのこの部分が監視されないということは、オペレーティングシステム及び他の実行プログラムのセキュリティ及び完全性が損なわれる可能性があることを意味する。
・いくつかのシステム(Windows PC等)において、この問題は、別個の常駐セキュリティ監視プロセスにより部分的に管理されてもよい。しかし、それらプロセスは、インストールプロセスの知識を有さず、アプリケーションが宣言したことに関する暗黙のインストール契約に対して、行なう可能性のあるアクションをチェックできない。
・既存のアプリケーションモデルは、ネットワークセキュリティを実装せず、基本的なファイルシステムセキュリティを有さないが、殆どのオペレーティングシステムは、任意のプログラムが種々の方法で実行されることを可能にする。許可は、一般に暗黙的であり、実行ファイル毎ではなくユーザ毎に割り当てられる。この例において、実行ファイルにおける悪意のあるコード又は有害なコード(有害ソフト)に気付かないユーザが自身のファイルだけでなくネットワーク上の他のコンピュータ及びある状況においてはシステムファイルを損なう可能性があるため、それは深刻な問題である。それらセキュリティの問題については、以下に更に詳細に説明する。
アプリケーションは、実行していない間にリソースを有さず、別のアプリケーションがそのリソースを使用することを防止しない。これは、必ずしも問題ではないが、特定のリソースが特定の信頼されたアプリケーションのために確保されるか又は特定の状態で保守されることをセキュリティの問題が要求する状況がいくつかある。いくつかのオペレーティングシステムは制限された機能性(例えばLinuxのinetd)を提供するが、殆どのシステムにおいて、そのようなリソースを保守又は確保するために別個のプロセスが実装される必要がある。
アプリケーションマネージャがある特定のライフサイクル段階に対して制御を行なわない場合、アプリケーションマネージャは、アンインストールが現在実行中のアプリケーションについて要求される状況に対処するようにその能力を制限する。開発者は、クラッジを使用する必要があり、例えばアプリケーションの削除を完了するためにユーザにシステムのリブートを要求する。クラッジは、プログラミング又はハードウェア設計、あるいは実装の問題に対する不適切な又は拙劣な(しかし、少なくとも一時的には効果的な)解決策として当業者には周知である。
2.複数のアプリケーションモデルに対するサポートの欠如
更なる問題は、OSアプリケーション管理システムが種々のファイル(データファイル及び文書を含む)のインストール及び削除を可能にするにも関わらず、単一のアプリケーションモデルを重点的に扱うことである。通常、そのファイルはネイティブ実行ファイルである。すなわち、ホストオペレーティングシステムにより直接ロードされ且つホストオペレーティングシステムと直接対話するプログラムである。しかし、殆どのコンピュータ装置において、サポートされる必要がある追加のアプリケーションモデルが実行ファイルについて存在する。尚、実行ファイルは、オペレーティングシステムではなくアプリケーションを実行することによりロードされるか又はオペレーティングシステムとの対話が他の実行ファイルにより仲介されるか、あるいはその双方である。それら追加のアプリケーションモデルの例は以下を含む:
・翻訳された実行ファイル(種々のBASICにおいて見つけられるように、非特許文献1で説明されるような移動装置に対するVisual Basic Appforgeを含む)
・中間コード実行ファイル(PASCALのp−code及びJava(登録商標)のバイトコード等)
・埋込みマクロ言語を含むアプリケーション(VBA対応の言語を含むMicrosoft Officeアプリケーション等)
・アプリケーションを実行することによりロードされるが、アプリケーション内でネイティブに実行するアプリケーション(ブラウザに対するレンダリングプラグイン等)
・動作環境として他のアプリケーションを使用するアプリケーション(ブラウザで実行するジャバスクリプト等のインターネットスクリプトアプリケーション)
・専用のアプリケーション管理ソフトウェア(AMS)により管理される必要があるアプリケーション(JavaのMIDlet又はQualcommのBREW等)
尚、上述は、非ネイティブ実行ファイルの包括的なリストとなることを意図せず、当業者には他の実行ファイルが明らかであろう。
既存のOSアプリケーション管理システムは、それらモデルを部分的にのみサポートできる。それら追加のアプリケーションモデルに対する全体のサポートは、別個のアプリケーション管理システムを介して処理される必要がある。
3.統一セキュリティ機構の欠如
この問題については、アプリケーション全体のライフサイクル段階の間の対話の欠如から起こる問題を説明した際に言及した。
既存のOS管理システムに対する問題は、それらシステムがインストールの際にある形式の境界セキュリティを実装できる(例えば、無署名のアプリケーションをユーザに通知することを可能にし且つ署名済みアプリケーションに対する証明書のチェックを可能にする)が、ランタイムセキュリティとの境界セキュリティの統一がないことである。その結果、オープンオペレーティングシステム(ユーザ又は所有者が製造後に追加のプログラムをインストールすることを可能にする)は、任意のプログラムが種々の方法で実行されることを可能にする。一般に、ランタイムセキュリティの欠如により、リソースは、そのようなプログラムに対して公開されたファイルシステムセキュリティ及びネットワークの双方を介してアクセス可能にされる。許可が存在する場合、それら許可は、黙示的であり且つ実行ファイル毎ではなくユーザ毎に割り当てられる。その結果、実行ファイル中の有害ソフトに気付かないユーザは、自身のファイル、ネットワーク上の他のコンピュータ及びある状況においてはシステムファイルを損なう可能性がある。
上述の問題領域は、オペレーティングシステムレベルで実装されるアプリケーション管理システムに当てはまる。しかし、Sun Microsystemsにより開発されたJava技術により、多少異なる方法が使用される。
Java技術は、「ネットワークの能力に基づいており、同一のソフトウェアが多くの異なる種類のシステムやデバイス上で動作する製品ポートフォリオ」(非特許文献2より)であり、J2ME(Java 2 Micro Edition)MIDP(Mobile Information Device Profile)のバージョン2.0は、管理されるアプリケーションの概念を紹介した。
従来のアプリケーションは、ロードされると相対的に自律的になり、主にユーザ入力に依存してライフサイクルを管理する。しかし、管理されるアプリケーションは、常に基礎となるオペレーティングシステムの制御下にある。オペレーティングシステムは、アプリケーションの動作を中断又は再開でき、あるいはアプリケーションを完全に強制終了できる。
コンピュータ装置にインストールされるAMSに対する要求は、J2ME MIDP 2.0に対する特定の要求である。Sunは、AMSを「アプリケーションの各ライフサイクル(インストール、起動、実行及び削除)を管理する装置のソフトウェア」と定義する。J2MEにおけるアプリケーション管理の簡単な概要は、4つのアプリケーションモデルを説明する非特許文献3で見つけられる。それらモデルは、従来の管理されないアプリケーション、ウェブブラウザにより管理されるアプレット、MIDlet及びxletである。そのうち最後の2つであるMIDlet及びxletは、AMSにより管理される。
J2ME AMSの実装例が実際にそれら要求を実装する方法の一例については、米国のPalmのPalmOS(商標)オペレーティングシステムにおける実装例を説明する非特許文献4を参照。
基礎となるOSのJava AMSによる要求は、OSアプリケーション管理システムに関して上述したある特定の問題に対する部分的な解決策を提供すると考えられる。すなわち:
・寿命が実行中のアプリケーションの寿命を超えるアプリケーション所有のOSレベルのリソース(プッシュ接続及び警告等)を管理する。
・アプリケーションのインストール時にOSレベルのリソースにより所有されるアプリケーションをインストールする。
・複数のアプリケーション開始方法(ユーザアクティビティ、接続アクティビティ及び警告アクティビティ等)を管理する。
しかし、Java AMSは、2つのアプリケーションモデル(MIDlet及びxlet)に対するライフサイクル全体のみを管理できる。Java AMSは、Javaアプレット(ウェブブラウザにより管理される必要がある)又は管理されないJavaアプリケーションを処理できない。最も重要なことは、非Javaアプリケーションが全く管理されないことである。Javaプリケーションが提供されたAMS外にインストールされた場合、Javaアプリケーションは完全に監視されない可能性がある。上述のPalmOS(商標)AMSが確認するため、Java AMSは、「他の手段により装置に転送されたMIDletではなく、自身をインストールしたMIDletのみ」を認識できる。
従って、J2ME MIDPの仕様書において説明されるJava AMSシステムが上記問題のいくつかを部分的に軽減するが、システムはJ2MEに管理されるある特定の種類のアプリケーションのみを監視できるという致命的な欠点による悪影響を受け、また、それらアプリケーションはJ2ME自体を介してダウンロード及びインストールされる必要がある。JavaがオープンOS上に実装される場合、ネイティブアプリケーションが管理されなくなることを許可するため、この方法は明らかに不十分である。
インターネット〈URL:http://www.appforge.com〉 インターネット〈URL:http://java.sun.com/〉 インターネット〈URL:http://sun.systemnews.com/articles/56/3/ja/7939〉 インターネット〈URL:http://www-106.ibm.com/developerworks/library/wi-amspalm/?ca=dgr-lnxw03AMS〉
従って、本発明の目的は、少なくとも以下の全てを集中管理できる方法を提供することにより、上述の問題に対する改善された解決策を提供することである。
・アプリケーションの完全なライフサイクル(インストール、ロード、全ての種々の実行状態、終了及び削除)。
・アプリケーション能力(例えば、MIMEの種類に基づく)。
・長寿命のOSレベルのアプリケーション所有のリソース(例えば、特定の実行ファイルと関連付けられるプッシュ接続又はスケジュールイベント及び警告)。
・セキュリティ。
更に、方法は、全ての種類のネイティブアプリケーションだけでなく、他の管理されるサブシステム又は管理されないサブシステムに属するアプリケーションに対しても上記要求を満足できる。サブシステムに属するアプリケーションには、Javaアプリケーション、Perl又はBasicスクリプト等の翻訳されたアプリケーション、並びにQualcommのBREW(ワイヤレス対応バイナリランタイム環境)又はJ2ME AMS等のホスティングされた他のアプリケーション環境に準拠するアプリケーションが含まれるが、それらに限定されない。それら環境は、当業者には周知であると考えられるため、本出願において更なる説明は行なわない。
本発明の第1の面によると、コンピュータ装置のユーザアプリケーションに対してアプリケーションのライフサイクルを管理する方法が提供される。方法は、複数のアプリケーションモデル及び複数のアプリケーション環境を管理するアプリケーション管理システム(AMS)を提供することを備え、AMSは、コンピュータ装置に対するオペレーティングシステム内のコンポーネントとして実装され、装置の全てのアプリケーション管理機能性に対する制御をオペレーティングシステムに付与する。
本発明の第2の面によると、第1の面の方法に従って動作するように構成されるコンピュータ装置が提供される。
本発明の第3の面によると、コンピュータ装置を第1の面の方法に従って動作させるためのコンピュータ装置に対するオペレーティングシステムが提供される。
次に、添付の図面を参照して更なる例として本発明の一実施形態を説明する。
以下を保守することによりアプリケーションを管理する一般的なAMS OSサービスを参照して、本発明の実施形態を以下に説明する:
・インストールされたアプリケーションのレジストリ
・実行中の全てのアプリケーションの状態
・オペレーティングシステムのリソース
更に、以下に説明する方法は拡張可能である。すなわち、追加のサブシステムがアーキテクチャに追加される。
以下に説明する好適な実装例は、Symbian Software Ltdの移動コンピュータ装置に対する高度なオペレーティングシステムであるSymbian OS(商標)オペレーティングシステムを使用して、コンピュータ装置のネイティブアプリケーション及びJavaアプリケーションのために、そのような一般的なAMSシステムを実装する方法を示す。しかし、本発明が他のオペレーティングシステム及び他の種類のコンピュータ装置において実装できることは、当業者には容易に理解されるだろう。更に、本発明において説明されるJavaアプリケーションを管理する方法を開示することにより、当業者は、他の非ネイティブサブシステムに同一の方法を単独で又は組み合わせて適用する方法を認識できる。従って、本発明の本実施形態におけるSymbian OS(商標)オペレーティングシステム及びJavaの使用は、例示する目的で単独で提供されるが、本発明の応用又は範囲を限定する意図は全くない。
まず、AMSアーキテクチャの概要を提供する。本明細書で提供される好適な実装例において、AMSサービスは、フロントエンドの「シェル」アプリケーションからバックエンドのRDBMS(リレーショナルデータベース管理システム)を使用するアプリケーション情報記憶装置までの機能性のいくつかの層を提供する。AMSコンポーネントの全体的なアーキテクチャを図1に提供する。
ネイティブアプリケーション及び非ネイティブサブシステム(Java仮想マシン、すなわちJVMにおいて実行するJavaアプリケーションにより提供される)がC++アプリケーションプログラムインタフェース(API)を提供され、APIがAMS内のAmsListenerSupport、Installerサーバ及びExecutionサーバ等の共通の機能性へのアクセスを提供することが図1から分かる。このAPIは、ネイティブアプリケーションにより直接アクセスされることが図2から分かる。しかし、非ネイティブサブシステムで実行するアプリケーションは、ネイティブオペレーティングシステムのメソッドにアクセスできない場合、それらアプリケーションが通信できる絶縁層(insulation layer)を提供される必要がある。従って、図1に示す非ネイティブJavaアプリケーションは、Java API及びJavaネイティブインタフェース(JNI)を提供することによりAMSの機能性を実装する。同様に、図1には示さないが、他の非ネイティブアプリケーション環境は絶縁層を提供する必要があるだろう。
System AMSサービスと通信するC++APIを図1に示す。単一のAMSサービスと通信する必要がある可能な種類のアプリケーションが多く存在するため、クライアント/サーバアーキテクチャが使用されるのが好ましい。このアーキテクチャには、主に2つのクラスの集合が存在する。それらは、単一インスタンスインストール/削除イベント及び手順を処理するInstallerクライアント/サーバクラス、並びにアプリケーションのロード、実行及び終了の各インスタンスと関連する複数インスタンスイベント及び手順を処理するExecutionクライアント/サーバクラスである。
イベントを通知するListenerクラスは、Installerクラス及びExecutionクラスと関連付けられる。これを行なう正確な機構は多種多様である。例えば、コールバック又はパブリッシュ/サブスクライブは適切な機構である。当業者には、他の機構も明らかであろう。
AMSサービスとアプリケーションプロセスとの間のメッセージ交換は、プロセス間通信(IPC)を使用して実行される。AMSサービスは、以下のいくつかの方法でアプリケーションプロセスと対話する:。
・第1に、APIはAMSアプリケーション開発のために提供される。付与されたセキュリティ許可によって、アプリケーションは、アプリケーションのインストール及び削除、インストールされたアプリケーションのリスト表示、実行中のアプリケーションのリスト表示、アプリケーション情報のクエリ、アプリケーションの実行及びクローズ、並びにアプリケーションのバックグラウンド又はフォアグラウンドへの移動を含む(しかし、これらに限定されない)タスクを実行できる。
・第2に、AMSは、管理されるアプリケーションプロセスと対話する。管理されるアプリケーションは、AMS APIコール又は他のオペレーティングシステムレベルのイベントに応じて、クローズするか又は終了されるように要求されてもよい。アプリケーションは、プッシュ接続等のオペレーティングシステムレベルのアプリケーション所有のリソースを要求又は解放してもよい。
・第3に、AMSは通知イベントを提供する。付与されたセキュリティ許可によって、アプリケーションは、以下を含む(しかし、それらに限定されない)ライフサイクル状態の変更等のAMSイベントの通知を要求できる:
・インストールされた。
・削除された。
・開始された。
・中断された。
・再開された。
・停止された。
実行を終了する(抜ける)能力を有するプログラムを残すことは別にして、AMSは、アプリケーションのライフサイクル状態の変更をトリガする唯一の手段を与える。従って、AMSは、装置上の実行ファイルをインストール、削除及び起動する唯一の利用可能な手段である。
AMSのこのアプリケーションモデルは、非常に融通性があり且つ拡張可能である。AMS構成は複数の層から成る。最上位レベルにおいて、ユーザは、インストーラ(ユーザアプリケーションを追加又は削除する)及びデスクトップ(ユーザがアプリケーションを選択し且つ開始することを可能にする)等の馴染みのあるシステムアプリケーションを介してAMSと対話する。最上位レベルの真下で、AMSは公開APIの集合を提供し、公開APIは、割り当てられた許可をクエリしたり、あるいは追加の許可の要求するなど、ライフサイクル状態の変更に影響を与える要求された機能性への制御されたアクセスを提供する。最下位レベルにおいて、AMSモデルは、必要なタスクを実装するオペレーティングシステムのカーネルと対話する。更にAMSは、データ持続性のために不揮発性記憶装置へのアクセスを要求する。この目的のため、SymbianOS(商標)オペレーティングシステムの実装例はRDBMSのバックエンドを使用する。そのような実装例を図1に示す。
アプリケーションモデルの好適な形態は、種々のアプリケーションモデルをサポートするのに必要なインタフェースの集合を定義する。AMS構成及び関連するアプリケーションプログラミングインタフェースを図2に示す。図2に示す公開クラスは、以下に説明する実際の例において詳細にリスト表示される。それと共に、それらクラスは、複数の異なるアプリケーションモデル(この場合、J2ME MIDP及びネイティブアプリケーション)を処理する公開インタフェースのオブジェクトモデルを提供する方法を実証する。
上述のように、最上位レベルの抽象は、ExecutableとInstallableとを区別する。アプリケーション表現オブジェクト(ARO)クラスは、既存のAppInfoクラスを拡張し且つExecutableのメソッド及びInstallableのメソッドをインプリメントすることによりコンストラクトされる。それらは、必要に応じて対で又は単独でインプリメントされてもよい。例として、MIDletInfoクラスの見出しがExecutableクラスのメソッドのみをインプリメントし、MIDletSuiteInfoクラスの見出しがInstallableのメソッドのみをインプリメントするが、NativeAppInfoクラスの見出しはExecutableクラス及びInstallableクラスのメソッドをインプリメントすることが図2から分かる。
Executableインタフェース及びInstallableインタフェースは、AMSが実際のインストール又は実行を行なうのに使用される専用のAppExecutorオブジェクト及びAppInstallerオブジェクトを取得することを可能にするメソッドを定義する。通常、Executable及びInstallableの各インプリメンテーションは、対応するAppExecutor又はAppInstallerのインプリメンテーションを有する。
ListenerクラスがAMSとの対話に対しても使用されることは上述した。それらListenerクラスは、ExecutorListener及びInstallerListenerを含む。それらインタフェースをインプリメントするクラスのオブジェクトは、Executor又はInstallerに登録され、対応する通知を取得してもよい。
プロンプト又は進捗ダイアログ等のAMSの対話は、図2においてAmsUIとして示される高レベルのインタフェースに抽象化される。
尚、AMS構成の中心の2つのクラスはExecutor及びInstallerである。それらクラスは、AMSのタスクを定義し、登録したAppExecutorクラス及びAppInstallerクラスのメソッドに関連するインスタンスをデリゲートすることによりそれらタスクをインプリメントする。
適切なメソッドは、非ネイティブアプリケーション環境に対して定義される必要がある。図2は、それがJavaInstallerクラス及びJavaExecutorクラスによりJavaに対して行なわれる方法の一例を示す。尚、非ネイティブアプリケーション環境は、AppInfoから適切なクラスを得る必要があり、図2は、それがJava MIDletに対して行なわれる方法を示す。
セキュリティに関しては、単一の中央アプリケーション管理エンティティをインプリメントすることにより、実行ファイル毎の許可の一貫したインストール時間割り当てが容易になる。そのような方法により、英国特許出願第0312191.0号の「Secure Mobile Wireless Device」において開示されるプラットフォームセキュリティモデル等の許可(又は能力)に基づく実行モデルの採用が可能になる。
この高度に制御された環境は、従来のAMSモデルとは全く異なることが当業者には理解されるだろう。
通常、許可又は能力は、アプリケーションにより提供される認証(証明書)に基づいてインストール中に割り当てられる。許可は、AMSにより継続され、実行(ランタイム)環境に対して利用可能になる。
許可及び実施は、上述の実施形態に適用されると、J2ME MIDP2において、J2ME MIDP2のセキュリティモデルに直接対応してもよい。ネイティブアプリケーションの場合、インストールは、アプリケーションにより必要とされる能力の検証を含んでもよい。いずれの場合も、実行時間の許可/能力チェックは、ランタイムモデル及び関連するAPIに組み込まれた機能である。
次に、本発明によるAMS構成の実装例を提供する。以下の実装例において使用される用語は、当業者には容易に理解されるため、本出願において更なる説明は行なわない。
AMS構成は、6つのインタフェースを備えることが図2から分かり、それらインタフェースの機能は以下の通りである。
これらのインタフェースに関連付けられたクラスは以下の通りである。
AMSで用いられるクラスの詳細及び機能は以下の通りである。
AmsEventは、アプリケーション管理APIとアプリケーションとの間でメッセージを受け渡すために用いられる。
アプリケーションは、典型的には、アプリケーションがインストールされたこと、或いは起動されたこと等のイベント通知を受け取るために、Installerクラス又はExecutorクラスとともにリスナーを登録する。
アプリケーション管理エラー上にスローされる。
AmsUIインタフェースは、AMSに要求されたクエリ、情報、警告、及びエラーメッセージの表示をアプリケーションがカスタマイズすることを可能にする。
典型的な実装は、クエリ型を調べ、オプションを追加し、ダイアログを表示することによってクエリメソッドを実装するだろう。
このインタフェースは、インストールの進展等のカスタムダイアログの提示を可能にするように拡張してもよい。
EJF AMSフレームワークは、ネイティブアプリケーションとJava MIDletの両方をサポートする。これらの2つのアプリケーション型は、インストールの方法や管理の方法が全く異なっている。さらに、Java MIDP仕様は、MIDletを実行可能なアプリケーション、MIDlet suiteをインストール可能なアプリケーション・スイートとして考えている。事実上、MIDletの実行のみを行うことができ、MIDlet suiteのインストール/アンインストールのみを行うことができる。インストールと実行の両方のアトム(atom)であるという点で、ネイティブアプリケーションはいくらか単純である。
全てのアプリケーションの抽象ベースクラスとして、AppInfoは、それらがインストールされうるか実行可能かについて知ることができない。
異なるアプリケーション型のインストール及び実行は異なる方法でなされるため、そのようなタスクはアプリケーションに特有の実装したもの(implementor)に委譲される。
インストールのダウンロード能力を抽象化したことによって、ダウンロード・メカニズムのカスタマイズが可能である。例えば、OTAの要件を実装するOTAのインストールのために特定のダウンローダを使用してもよい。
現在利用可能、及び実行中のアプリケーションの、開始、停止、切り替え、及びキューイングを実行可能なexecutorクラス。
ExecutorListenerインタフェースは、実行中のプロセスの外での変化をAMSアプリケーションが認識できるようにするコールバック・メソッドの集合を定義する。これの非常に単純な例は、アプリケーションがシェルから開始した後、終了したことの通知である。
最小限の、二つとない、FileSystemアクセス・インタフェースは、現在のドライブ、ディレクトリ・コンテンツ、及びロード中のファイルのリスト表示を可能にする。
installableアプリケーションに共通のインタフェース。
installerは、MIDlet suiteとネイティブアプリケーションの両方のインストールに必要なメソッドを提供する。
このインタフェースを実装することによって、アプリケーションは、アプリケーションのインストール、更新、及びアンインストールの通知にサブスクライブすることができる。
典型的なアクションは、インストールされたアプリケーションを表示するユーザインタフェースをリフレッシュすることとなるだろう。
ローカルドライブからのインストールを可能にするDownloaderインタフェースの単純な実装。
最近使用された(MRU:most recently used)オブジェクトのキャッシュ
本発明は、アプリケーションの種類又はモデル、あるいは実行環境に関わらず、任意のアプリケーションに対して以下のことを集中管理できるオペレーティングシステムの単一メソッドを提供する手段を開示することが上記実施形態から分かる。:
・アプリケーションのライフサイクル(インストール、実行状態、削除を含む)。
・アプリケーション能力。
・長寿命のOSレベルのアプリケーション所有のリソース(例えば、プッシュ接続、警告)。
・セキュリティ。
従って、本発明は、以下を含むアプリケーション管理の周知の方法を介していくつかの利点を提供すると考えられる。:
・インストール、実行、終了及び削除の全ての段階を含むアプリケーションのライフサイクル全体は、単一の統一AMSエンティティから管理される。
・統一AMSは、寿命がアプリケーションの実行の寿命を超えるアプリケーション所有のOSレベルのリソース(プッシュ接続及び警告等)をサポートする。
・統一AMSは、任意のアプリケーションの種類に対して容易に適応され且つ拡張される。
・統一AMSは、複数の実行モデル及び複数の実行サブシステムをサポートする。
・統一AMSは、任意の新しい実行モデル及びサブシステムに対して容易に適応され且つ拡張される。
・単一のアプリケーション管理システムは、(例えば)ネイティブアプリケーション、Javaアプリケーション、BREWアプリケーション及びAppforgeのVisual Basicアプリケーションを処理できる。
・AMSは、全ての種類の実行ファイルのインストール及び実行を独占するオペレーティングシステムサービスであり、システム全体にわたり共通のセキュリティポリシーを実装できる。
特定の実施形態を参照して本発明を説明したが、添付の請求の範囲により定義される本発明の範囲内である限り、変更が行なわれてもよいことは理解されるだろう。
本発明によるアプリケーション管理システム(AMS)の全体のアーキテクチャを示す図である。 図1に示すAMSに対するアプリケーションプログラムインタフェースを示す図である。

Claims (21)

  1. コンピュータ装置のユーザアプリケーションについてアプリケーションのライフサイクルを管理する方法であって、
    複数のアプリケーションモデルと複数のアプリケーション環境とを管理するアプリケーション管理システム(AMS)を提供する工程を備え、
    前記AMSは、
    前記コンピュータ装置のためのオペレーティングシステム内のコンポーネントとして実装され、
    前記装置の全てのアプリケーション管理機能性に係る制御を前記オペレーティングシステムに付与する、方法。
  2. 前記ユーザアプリケーションは、
    a.前記装置の前記オペレーティングシステムと直接対話するネイティブアプリケーションと、
    b.Java仮想マシンとの対話のための管理されないアプリケーション、MIDlet、アプレット及びxletを含むがそれらに限定されない、任意の種類のJavaアプリケーションと、
    c.BREWアプリケーション環境のために設計されたアプリケーションと、
    d.Fortran、Forth、Lisp、BASIC、Visual Basic又はPerlを含むがそれらに限定されない、言語インタプリタを介して実行するように設計されたアプリケーションと、
    e.ウェブブラウザ内で実行するように設計されたアプリケーションと、
    f.pCodeで書かれたPascalアプリケーション等の中間コードで書かれたアプリケーションと、
    g.前記装置で使用されるプロセッサのマシンコードで書かれたアプリケーションと、
    h.任意の他のアプリケーションモデルとランタイムサブシステムとの少なくともいずれかの下で、前記装置上で実行するように設計された任意の他の種類のプログラムと、
    のうち1つ以上の任意の組合せを備える、請求項1記載の方法。
  3. 前記AMSは、更なるアプリケーションモデルとランタイムサブシステムとの少なくともいずれかのために、サポートが追加されることを許可するように拡張可能である、請求項1又は2記載の方法。
  4. 前記アプリケーションのライフサイクルは、
    a.アプリケーションのインストールと、
    b.アプリケーションのロードと、
    c.アプリケーションの実行と、
    d.アプリケーションの中断と、
    e.アプリケーションの再開と、
    f.アプリケーションの終了と、
    g.アプリケーションの削除又はアンインストールと、
    h.アプリケーションの任意の他のライフサイクル動作と、
    のうち1つ以上の任意の組合せを含む請求項1から3のいずれか1項に記載の方法。
  5. 前記AMSは、任意のユーザアプリケーションにより所有されるか、又は任意のユーザアプリケーションと関連付けられた、オペレーティングシステム又はハードウェアリソースを管理する、請求項1から4のいずれか1項に記載の方法。
  6. 前記AMSは、任意のアプリケーションにより所有されるか又は任意のアプリケーションと関連付けられた、オペレーティングシステム又はハードウェアリソースの状態の変更に応じて、前記アプリケーションのライフサイクル状態を変更できる、請求項5記載の方法。
  7. 前記AMSは、任意のアプリケーションのセキュリティ属性を管理するように構成される、請求項1から6のいずれか1項に記載の方法。
  8. 前記AMSは、
    a.前記装置に現在インストールされている全てのアプリケーションと、
    b.実行中の全てのアプリケーションの状態と、
    c.オペレーティングシステムリソースと、
    d.ハードウェアリソースと、
    e.リソース関連イベント、アプリケーション、アプリケーション状態及びアクションへの、ハードウェアリソースとオペレーティングシステムリソースとの少なくともいずれかのマッピングの集合と、
    のうちいずれか又は全てのレコードを保守する、請求項1から7のいずれか1項に記載の方法。
  9. 前記AMSは、複数のアプリケーションがクライアントとして接続できるサーバを備える、請求項1から8のいずれか1項に記載の方法。
  10. アプリケーションの複数のインスタンスは、前記AMSにより別個に管理可能である、請求項1から9のいずれか1項に記載の方法。
  11. 第1の機能の集合は、全てのアプリケーションのインストール及び削除に関連する前記アプリケーション状態を処理し、更なる機能の集合は、全てのアプリケーションの各インスタンスの実行に関連する前記アプリケーション状態を処理する、請求項1から10のいずれか1項に記載の方法。
  12. AMSリスナ機能の1つ以上の集合は、アプリケーションにイベント通知を提供する、請求項1から11のいずれか1項に記載の方法。
  13. 前記AMSは、ライフサイクル及びリソース管理に要求される前記機能性へのアクセスを提供する公開APIを含む階層アーキテクチャを備える、請求項1から12のいずれか1項に記載の方法。
  14. ネイティブAMS APIに直接アクセスできない全てのアプリケーション又は実行ファイルのための、アプリケーションサブシステム又はランタイム環境は、そのようなアプリケーションを有効にする絶縁層の集合を提供する、請求項1から13のいずれか1項に記載の方法。
  15. 前記AMSの任意の部分により行なわれる前記アクションは、システム又はユーザアプリケーションに割り当てられた前記セキュリティ属性により変更される、請求項1から14のいずれか1項に記載の方法。
  16. 前記AMSの任意の部分により行なわれる前記アクションは、前記装置の現在のユーザに割り当てられた前記セキュリティ属性により変更される、請求項1から15のいずれか1項に記載の方法。
  17. 前記装置上の任意の種類の実行可能コードをインストール及び実行することは、前記AMSを使用することに制限される、請求項1から16のいずれか1項に記載の方法。
  18. 拡張された機能性を提供するライブラリ又はプラグイン等の前記ユーザアプリケーションは、別個に実行可能であるかに関わらず、実行可能コードの別個にインストール可能な全ての項目を備える、請求項1から17のいずれか1項に記載の方法。
  19. 前記ユーザアプリケーションは、任意のアプリケーションの実行に影響を与える別個にインストール可能な全てのデータ集合を備える、請求項1から18のいずれか1項に記載の方法。
  20. 請求項1から19のいずれか1項に記載の方法に従って動作するように構成されたコンピュータ装置。
  21. コンピュータ装置を請求項1から19のいずれか1項に記載の方法に従って動作させるためのオペレーティングシステム。
JP2007546188A 2004-12-15 2005-12-15 コンピュータ装置においてアプリケーションを保守する方法 Withdrawn JP2008524686A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0427474A GB2421323B (en) 2004-12-15 2004-12-15 A method of maintaining applications in a computing device
PCT/GB2005/004866 WO2006064252A1 (en) 2004-12-15 2005-12-15 A method of maintaining applications in a computing device

Publications (1)

Publication Number Publication Date
JP2008524686A true JP2008524686A (ja) 2008-07-10

Family

ID=34090090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007546188A Withdrawn JP2008524686A (ja) 2004-12-15 2005-12-15 コンピュータ装置においてアプリケーションを保守する方法

Country Status (6)

Country Link
US (1) US20100005481A1 (ja)
EP (1) EP1831787A1 (ja)
JP (1) JP2008524686A (ja)
CN (1) CN100580633C (ja)
GB (1) GB2421323B (ja)
WO (1) WO2006064252A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4757175B2 (ja) * 2006-11-24 2011-08-24 キヤノン株式会社 情報処理装置及びアプリケーション管理方法
US8438567B2 (en) * 2007-11-07 2013-05-07 Ricoh Company, Ltd. Information processing device and image processing apparatus
US8458656B1 (en) * 2008-08-25 2013-06-04 United Services Automobile Association (Usaa) Systems and methods for providing mobile browser access to mobile device functionalities
GB2466220A (en) * 2008-12-12 2010-06-16 Symbian Software Ltd Installing or uninstalling computer programs using installer plug-in modules
CN101656789B (zh) * 2009-07-01 2012-09-05 中兴通讯股份有限公司 手机实现管理应用程序信息的方法及应用程序管理器
US8914888B1 (en) * 2009-10-21 2014-12-16 Symantec Corporation Systems and methods for classifying an unclassified process as a potential trusted process based on dependencies of the unclassified process
CN101788926B (zh) * 2009-12-28 2014-04-30 中兴通讯股份有限公司 J2me应用前台切换的资源调配方法及装置
US8713525B2 (en) 2010-03-25 2014-04-29 International Business Machines Corporation Software management system for network data processing systems
JP5699500B2 (ja) * 2010-09-16 2015-04-08 株式会社リコー インストールプログラム、インストール方法、画像形成装置、及び記録媒体
JP5994981B2 (ja) 2011-08-12 2016-09-21 Jfeスチール株式会社 方向性電磁鋼板の製造方法
US8782638B2 (en) * 2011-11-18 2014-07-15 Compuware Corporation Execution pathway for interfacing with legacy programs in a mainframe environment
CN102799360B (zh) * 2012-06-20 2016-05-04 宇龙计算机通信科技(深圳)有限公司 一种信息显示方法及装置
US10320942B2 (en) 2013-03-15 2019-06-11 Gadget Software, Inc. Dynamic user interface delivery system
EP2972813A1 (en) * 2013-03-15 2016-01-20 Beeonics Inc. Dynamic user interface delivery system
US10320885B2 (en) 2013-03-15 2019-06-11 Gadget Software, Inc. Method for single workflow for multi-platform mobile application creation and delivery
US10075560B2 (en) 2013-03-15 2018-09-11 Gadget Software, Inc. User interface and content translation system
US10326825B2 (en) 2013-03-15 2019-06-18 Gadget Software, Inc. Apparatus for single workflow for multi-platform mobile application creation and delivery
US10303802B2 (en) 2013-03-15 2019-05-28 Gadget Software, Inc. System for mobile application search
CN103793644B (zh) * 2014-02-28 2017-09-19 天地融科技股份有限公司 信息安全设备实现多应用的方法、信息安全设备和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430836A (en) * 1991-03-01 1995-07-04 Ast Research, Inc. Application control module for common user access interface
KR20010080210A (ko) * 1998-10-19 2001-08-22 매클린토크 샤운 엘 구성 가능한 기능을 갖는 텔레비전 셋톱박스
DE10158991A1 (de) * 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren und Installation von einem Softwaremodul in einem Gerät
GB0212314D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device

Also Published As

Publication number Publication date
EP1831787A1 (en) 2007-09-12
CN101095111A (zh) 2007-12-26
CN100580633C (zh) 2010-01-13
GB2421323B (en) 2009-07-22
GB2421323A (en) 2006-06-21
GB0427474D0 (en) 2005-01-19
US20100005481A1 (en) 2010-01-07
WO2006064252A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
JP2008524686A (ja) コンピュータ装置においてアプリケーションを保守する方法
US10884722B2 (en) Cross-environment application of tracing information for improved code execution
CN109478134B (zh) 用跨账户别名执行按需网络代码
US10225335B2 (en) Apparatus, systems and methods for container based service deployment
US10277708B2 (en) On-demand network code execution with cross-account aliases
US10203990B2 (en) On-demand network code execution with cross-account aliases
KR101872141B1 (ko) 확장자가 애플리케이션의 기능을 다른 애플리케이션으로 확장하게 하는 고정적 확장 포인트
CA2761563C (en) Annotating virtual application processes
US8694981B2 (en) Shared resource dependencies
KR101253560B1 (ko) 가상화 솔루션의 관리 시스템, 관리 서버, 및 그 방법
US8924986B2 (en) Methods, devices and computer program products for confluence of multiple operating systems
JP5847734B2 (ja) 仮想化のための拡張ポイントの宣言的登録
KR20100018387A (ko) 다수개의 운영 시스템을 지원하는 장치 및 방법
KR20110099310A (ko) 컴퓨터 플랫폼에 프로그램을 설치하기 위한 방법과 장치 및 컴퓨터 판독가능 저장 매체
US10649679B2 (en) Containerized application extensions in distributed storage systems
US10908948B2 (en) Multiple application instances in operating systems that utilize a single process for application execution
US20220083364A1 (en) Reconciler sandboxes for secure kubernetes operators
JP5518884B2 (ja) オペレーティングシステムに関する柔軟な階層的セッティングレジストリ
WO2014056425A1 (zh) 应用程序整合方法及装置
US20160217019A1 (en) Partitioned application environment
US10698703B2 (en) Mobile application management by run-time insertion of a substitute application class loader into a mobile application process
Iqbal et al. Introducing controlling features in cloud environment by using SNMP
WO2012173638A1 (en) Methods, devices and computer program products for confluence of multiple operating systems
Jaiganesh et al. JNLP Based Secure Software as a Service Implementation in Cloud Computing
JP2008521111A (ja) 電子デバイス内の安全なプログラム解釈方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081112

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090309

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090319

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090319

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101207