[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5438688B2 - アプリケーションにおける処理によるコンテンツの分離 - Google Patents

アプリケーションにおける処理によるコンテンツの分離 Download PDF

Info

Publication number
JP5438688B2
JP5438688B2 JP2010542306A JP2010542306A JP5438688B2 JP 5438688 B2 JP5438688 B2 JP 5438688B2 JP 2010542306 A JP2010542306 A JP 2010542306A JP 2010542306 A JP2010542306 A JP 2010542306A JP 5438688 B2 JP5438688 B2 JP 5438688B2
Authority
JP
Japan
Prior art keywords
processes
tab
content
readable storage
computer
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.)
Expired - Fee Related
Application number
JP2010542306A
Other languages
English (en)
Other versions
JP2011510380A5 (ja
JP2011510380A (ja
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011510380A publication Critical patent/JP2011510380A/ja
Publication of JP2011510380A5 publication Critical patent/JP2011510380A5/ja
Application granted granted Critical
Publication of JP5438688B2 publication Critical patent/JP5438688B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、アプリケーションにおける処理によるコンテンツの分離に関する。
アプリケーションは多種多様のコンテンツを消費するように構成され得る。例えば、ブラウザー・アプリケーションは、ウェブ・ページ、音楽、オンライン・ビデオなどのような、ネットワークを介して利用可能な多種多様の異なるコンテンツにナビゲートするように構成されてもよい。このインターネット・コンテンツはしばしば信頼できず及び/又は信頼性が低く、したがって、その実行は資源(リソース)の使用及びアクセス制御の両方において抑制されるべきである。いくつかの例では、このコンテンツは、ブラウザー・アプリケーション自体の機能を拡張するためのものである拡張コードとして構成されてもよく、それは「プラグ・イン」、「第三者(third-party)プラグ・イン」、「アドオン」などと呼ばれることがある。しかし、この拡張コードは、障害と言えるほどに、ブラウザー・アプリケーション自体の実行に対して悪影響を有し得る。拡張コードはまた、生じることをユーザーが望まない動作を実行することを試みることもある。
ブラウザー・アプリケーションは、例えば、ブラウザー・アプリケーションの機能を拡張するために第三者プラグ・インを受け取ってもよい。しかし、それは「第三者」のプラグ・インであるので、ブラウザー・アプリケーションのプログラマー(ライター、writer)の標準を満たさない品質標準によって書かれているかもしれない。例えば、ブラウザー・アプリケーションと共に実行されるとき、プラグ・インは機能しないかもしれない。プラグ・インはブラウザー・アプリケーションと資源を共有し得る拡張コードであるので、プラグ・インの不具合は、クラッシュ、「ハング」など、ブラウザー・アプリケーションの不具合を引き起こし得る。
アプリケーションにおける処理(プロセス、processes)によるコンテンツの分離(isolation)が記載される。実施例において、1つ以上の処理を含む単一のアプリケーションの別の処理によってネットワークを介して受信されるコンテンツを含む当該1つ以上の処理の実行が管理される。当該管理は、反応(応答)しないか、失敗したか、そうでなければ適切に実行しない場合に、1つ以上の処理を終了すること又は再開することを含む。1つ以上の処理が反応しない場合に他の処理が反応する状態のままであるように、1つ以上の処理の実行は当該他の処理から分離される。その後、終了した1つ以上の処理におけるコンテンツは回復される。したがって、1つ以上の処理の実行は、それを実行するインターネット・コンテンツ・ソース及びユーザーの方針に基づいて、そのクライアント側の同一性(identity)及びアクセス制御が指定され制限され得るように、他の処理から分離されてもよい。その後、インターネットからのコンテンツの実行は、インターネット・ソースに特有でありローカル・クライアント・ユーザーの同一性に基づいて適用されるインターネット・ソースを超えるクライアント・オペレーティング・システム同一性及び/又はアクセス制御制限によって制御され得る。
別の実施例において、1つ以上のコンピューター読み取り可能な媒体は、1つ以上のタブ処理及びフレーム処理を有するブラウザー・アプリケーションを提供するために実行可能な命令を含む。1つ以上のタブ処理はネットワークを介して受信されたコンテンツを含み、その結果、各タブ処理はそれぞれのコンテンツを互いから分離する。フレーム処理は1つ以上のタブ処理の実行を管理する。タブ処理の少なくとも1つは、フレーム処理が少なくとも1つのタブ処理に含まれるコンテンツにとって利用可能でない1つ以上の資源へのアクセスを有するように、フレーム処理より低い信頼レベルを割り当てられる。
この概要は詳細な説明においてさらに以下に述べられる概念の選択を単純化された形式で紹介するために提供される。この概要は、特許請求された主題の主な特徴又は不可欠な特徴を特定するようには意図されず、特許請求された主題の範囲の決定に助けとして使用されるようにも意図されない。
詳細な説明は添付の図面に関して記載される。図面において、参照番号のもっとも左端の数字はその参照番号が最初に現われる図を識別する。詳細な説明と図面における異なる例での同じ参照番号の使用は、類似の又は同一の項目を示してもよい。
分離技術を使用するように動作可能な例示的な実施例における環境の図である。 アプリケーション・インフラストラクチャーを形成するために使用され得るコンポーネントを示すアーキテクチャーの図である。 ブラウザー・アプリケーションの層へ組織化されるように例示的な分離インフラストラクチャーを描く図である。 図2及び図3のコンポーネントにより実施されるようなフレーム処理及びタブ処理の例示的な実施例の図である。 コンテンツを分離する1つ以上の処理の実行が別の処理によって管理される例示的な実施例における手続を描くフロー図である。
概要
ネットワークを介して得られたコンテンツを実行する様々な異なるアプリケーションは、インターネットから供給されるコンテンツを動的にロードし実行することにより拡張されてもよい。このコンテンツは「ホストされた」コード及び「在来の(ネイティブ、native)」コードの両方を含み得るが、各場合において、それはホストマシンに対する指示の実行を引き起こす。このコンテンツは、HTMLなどの「インターネットサイトに特有の」コードだけでなく、様々なもしくはすべてのインターネットサイト・コンテンツ又はローカル・マシン資源において実行されるよう意図される「プラグ・イン」、「アドオン」、「ドライバー」などを含み得る「拡張コード」をも含む。
拡張コードは、標準のインターネット・アクセス制御機構又は信頼性制御機構なしに実行する「ネイティブ・コード(native code)」としてしばしば提示される。それは品質と信頼性の程度が変化するものである。さらに、拡張コードは、資源(例えば、メモリー、ハンドル、処理空間など)を、拡張コードをホストするアプリケーションと共有してもよい。したがって、拡張コードの不具合はまた、アプリケーションの不具合を引き起こすことがあり(例えば、アプリケーションを「クラッシュ」させたり、「ハング」させたりする)、資源の非効率的な消費を引き起したり、セキュリティー違反に帰着したりすることがある。
アプリケーションにおける処理によってネットワークを介して受信されるコンテンツ(例えば、インターネット・コンテンツ)の分離が記載される。実施例において、処理はインターネット・コンテンツの実行を分離するために使用される。例えば、インターネット・ブラウザー・アプリケーションは、ウェブ・ページを通じてナビゲートするための「戻る」ボタン及び「進む」ボタン、入力としてユニフォーム・リソース・ロケーター(URL)アドレスを受け入れるアドレス・バーなどを含むブラウザー自体の機能の形式及び制御などの、ブラウザーの基礎機能を管理することに関与するフレーム処理(したがって、さらに以下の説明において「マネージャー処理」と呼ばれる)を含むように構成され得る。
ブラウザー・アプリケーションはまた、ブラウジングによってブラウザー・アプリケーション自体の基本的な機能から受け取られるコンテンツを分離するために使用される処理(したがって、さらに以下の説明において「分離処理」と呼ばれる)をサポートしてもよい。これらの処理は、例えば、各々が別個の処理において実行されるブラウザー・アプリケーション内のタブとして表示されてもよい。フレーム処理はタブ処理の実行を管理するために実行されてもよく、分離のために、タブ処理の1つ以上が機能しなくなる(例えば、反応しなくなる)場合、フレーム処理は、意図されるように実行するほか、失敗しなかった他のタブ処理とともに実行することを続けてもよい。さらに、フレーム処理は、反応がないタブ処理を終了して当該タブ処理において実行されたコンテンツをその後に回復するなどのために、1つ以上の修正処置(corrective actions)をとってもよい。様々な他の例もまた考慮され、それらについてのさらなる議論が以下の図面に関してなされる。
別の実施例において、コンテンツのアクセス制御及び同一性を抑制するために、分離技術は「信頼判断(trust judgment)」と共に使用され得る。以前に説明されたように、拡張コードを含むインターネットから供給されたコンテンツは、ユーザー又はローカル・クライアントの利益にならない目標を達成する目的で意図をもって書かれることもある。したがって、コンテンツに対する信頼の判断は、例えば、コンテンツのソースについての知識を使用して、又は、それぞれのコンテンツに対して「同一性及びアクセス制御」のレベルを割り当てるために使用されるコンテンツを識別及び/又は受信するために使用される手段を使用してなされてもよい。信頼判断は、拡張コードを実行するコンピューターの資源へのアクセスの基礎として使用されてもよい。しかし、従来の技術は、「アプリケーションごとに」実行された。例えば、異なる信頼性を有するウェブ・コンテンツとインタラクトするために、複数のブラウザー・アプリケーションが実行され、それはクライアント・オペレーティング・システム・アクセス制御及び同一性を適用せず、資源が非効率であり、有用性の見地からユーザーにとっていらいらさせられ混乱させられるものであり得た。信頼についての一層の議論は以下の図に関してなされる。
以下の説明では、分離技術を使用するように動作可能な例示的な環境がまず説明される。その後、例示的な環境のほか、他の環境においても使用され得る例示的な手続が説明される。いくつかの例では、ブラウザー・アプリケーションは分離技術を使用するものとして記載されるが、インターネット・コンテンツを実行する様々な他のアプリケーションはまた、気象情報、ヘッドライン、オンライン・ビデオなどの追加の機能を提供するために、コンピューターのデスクトップ上で第三者拡張コードを(例えば、サイドバー中で)実行する「ガジェット(gadgets)」アプリケーションなど、これらの技術を使用してもよい。
例示的な環境
図1は、分離技術を使用するように動作可能な例示的な実施例における環境100の図である。図示された環境100は、ネットワーク106を介して互いに通信で結合される複数のコンテンツ・プロバイダー102(1)−102(M)及びコンピューター104を含む。コンピューター104は様々な方法で構成されてもよい。例えば、コンピューター104は、デスクトップ・コンピューター、移動局、娯楽電化製品、ディスプレイ装置に通信で接続されたセットトップ・ボックス、無線電話、ゲーム機などのように、ネットワーク106を介して通信するように構成されてもよい。
ネットワーク106はインターネットとして示されるが、ネットワークは多種多様の構成を仮定してもよい。例えば、ネットワーク106は、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ネットワーク、公衆電話網、イントラネットなどを含んでもよい。さらに、単一のネットワーク106が示されるが、ネットワーク106は複数のネットワークを含むように構成されてもよい。
複数のコンテンツ・プロバイダー102(1)―102(M)の各々は、ネットワーク106を介してコンピューター104へそれぞれのコンテンツ110(c)、112(k)(「c」及び「k」はそれぞれ1と「C」及び「K」との間の整数であってもよい)を提供するための機能を表すそれぞれのコンテンツ・マネージャー・モジュール108(l)−108(M)を含むものとして示される。コンテンツは様々な方法で構成されてもよい。例えば、コンテンツ112(k)は、ウェブ・ページ114、スクリプト116、拡張コード118などとして構成されてもよい。
コンピューター104はプロセッサー120及びメモリー122を含むものとして示される。プロセッサーは、それが形成される材料又はそれに使用される処理機構によって限定されない。例えば、プロセッサーは、半導体及び/又はトランジスター(例えば、電子集積回路(IC))で構成されてもよい。そのような状況では、プロセッサーにより実行可能な命令は電子的に実行可能な命令であってもよい。代替的に、プロセッサーの又はプロセッサーのための、及びしたがって計算装置の又は計算装置のための機構は、量子計算、光学コンピューティング、機械的コンピューティング(例えば、ナノテクノロジーを使用するもの)などを含んでもよいがこれらに限定されない。さらに、単一のメモリー122が示されるが、ランダム・アクセス・メモリー(RAM)、ハードディスクメモリー、取り外し可能な媒体メモリー及び他の種類のコンピューター読み取り可能な媒体などの、多種多様の種類のメモリー及びそれらの組み合わせが使用され得る。
コンピューターはまた、メモリー122に格納できるアプリケーション124をプロセッサー120上で実行するものとして示される。アプリケーション124は、ブラウザー・アプリケーション(そのさらなる説明は図3に関してなされる)、生産性(productivity)アプリケーションなどの多種多様の機能を提供するように構成されてもよい。
例として、アプリケーション124は、マネージャー処理及び分離処理の使用を通じてコンポーネントを互いに分離するために、オペレーティング・システム・プリミティブ(primitives)(例えば、処理)を使用し得る、コンポーネント・モデル及び分離インフラストラクチャーに従ってもよい。分離インフラストラクチャーなどの例は、マネージャー処理の例であるフレーム処理126及び分離処理の例である複数のタブ処理128(1)−128(T)を含むアプリケーション124について示される。フレーム処理126は、コンピューター104の資源(例えば、プロセッサー120及び/又はメモリー122)の「どこで」タブ処理128(1)―128(T)が実行及び/又は保持されるべきかを決定し、タブ処理128(1)―128(T)の寿命及び応答性を監視し、タブ処理128(1)−128(T)を終了し、それぞれのタブ処理128(1)−128(T)が機能しない場合にそれぞれのコンテンツ112(I)−112(T)を回復するためなどのように、タブ処理128(1)−128(T)を管理するための機能を代表する。したがって、それぞれのタブ処理128(1)―128(T)におけるコンテンツ112(1)―112(T)の実行は、フレーム処理126の実行と干渉せず、それによって、タブ処理128(1)―128(T)及び含まれるコンテンツ112(I)−112(T)の1つ以上が反応しない場合でさえ、フレーム処理126の応答性を維持する。これについてのさらなる議論は図4に関して最初になされる。追加の実施例において、処理の分離によって達成されたこの分離は、さらに、1つのタブ処理128(1)におけるコンテンツ112(1)が単一のアプリケーション(例えば、アプリケーション124)で別のタブ処理128(T)におけるコンテンツ112(T)と干渉しないようにする。
分離インフラストラクチャーなどの分離技術はまた、様々な他の機能をサポートしてもよい。例えば、それぞれのタブ処理128(1)―128(T)におけるコンテンツ112(I)−112(T)の分離は、単一のアプリケーションによる異なる「信頼」レベルの使用を可能にし得る。タブ処理128(1)において実行されるコンテンツ112(1)は、例えば、フレーム処理126に割り当てられる信頼レベルより低い信頼レベルを割り当てられてもよい。したがって、フレーム処理126は、タブ処理128(1)におけるコンテンツ112(1)によってアクセスされることが許されない追加の資源(例えば、オペレーティング・システムなどのソフトウェア及び/又は共有メモリーなどのハードウェア)にアクセスすることを許可されてもよい。同様に、タブ処理128(1)におけるコンテンツ112(1)は、タブ処理128(T)におけるコンテンツ112(T)とは異なる信頼レベルを割り当てられ、同じアプリケーション124内の異なる資源へアクセスしてもよい。信頼レベルについてのさらなる議論は図5に関して開始される以下の説明においてなされる。
単一のアプリケーションによる処理の使用は様々な他の機能をサポートしてもよい。例えば、当該処理は、タブ処理128(1)―128(T)の1つ以上が32ビットで動作する一方でフレーム処理126が64ビットで動作したり、タブ処理128(1)―128(T)が(互いに)異なる帯域幅で動作したりしてもよいように、異なる量の「ビット」を扱うように構成されてもよい。様々な他の例もまた考慮され、これについてのさらなる議論は以下の図に関してなされる。
一般に、本明細書に記載された機能のうちのいずれも、ソフトウェア、ファームウェア(例えば、固定論理回路)、手動処理又はこれらの実施の組み合わせを使用して実施することができる。本明細書において使用される用語「モジュール」、「機能」及び「論理」は、一般に、ソフトウェア、ファームウェア又はソフトウェアとファームウェアの組み合わせを表す。ソフトウェアによる実施の場合には、モジュール、機能又は論理は、プロセッサー(例えば、CPU)上で実行されるときに指定されたタスクを行うプログラム・コードを表す。プログラム・コードは1つ以上のコンピューター読み取り可能なメモリー装置(例えば、図1のメモリー122)に格納することができる。以下に述べられる分離技術の特徴はプラットフォームに依存しないことであり、これは、様々なプロセッサーを有する様々な商用コンピューティング・プラットフォーム上で当該技術が実施できることを意味する。
図2は、アプリケーション・インフラストラクチャーを形成するために使用され得るコンポーネント202及び204を示すアーキテクチャー200を図示する。アーキテクチャー200は、アプリケーション機能の基板(substrate)としての役割を果たす分離インフラストラクチャー(ISO)を提供してもよい。ISOは、アプリケーション・コードから、再使用され得る個別のサブシステムへと分割される。例えば、それらは、異なるアプリケーション機能によって複数回使用されてもよく、また、ISOの正確さ、セキュリティー及び信頼性を直接テストできるようにテストをするために使用されてもよい。
例えば、ISOは非同期通信を可能にするように設計されてもよい。コンポーネント・オブジェクト・モデル(COM)は、例えば、全二重機構であり、したがって、半二重通信をサポートしない。別の例において、ISOは、アーティファクト(artifacts)について異なるレベルの信頼をサポートし、アーティファクトの信頼レベルについての知識を保証し、その信頼レベルを検出するための能力を提供してもよい。さらなる例において、アーティファクトの位置は、スレッドの工程内(インプロセス)(in-process-in-thread)、工程/異なるスレッド内(in-process/different thread)、異なる処理、異なる強制インテグリティ・レベル/部分(コンパートメント)などの間で変化し得る。さらに別の例において、ISOは、ISOのアプリケーション・プログラム・インターフェース(API)の「下の」実施の変化及び拡張を可能にしてもよい。
ISOのアーキテクチャー200の基本単位は「コンポーネント」と見なすことができ、その例は、図2のアーキテクチャー200のコンポーネント202及びコンポーネント204として示される。コンポーネントは位置及びメッセージの単位(ユニット)と見なされてもよい。図2の説明において、コンポーネント202及び204は、WINDOWS(登録商標)(WINDOWSはワシントン州レドモンドのマイクロソフト株式会社の商標である)メッセージループ206及び208を有する。コンポーネント202及び204は、それぞれのスレッド210及び212「上で」及びそれぞれの処理214及び216(例えば、WINDOWS処理)「において」存在しているものとしてさらに示される。別個に示されているが、それぞれのスレッド210及び212はそれぞれの処理214及び216「内に」存在してもよい。
様々な異なる種類の通信がコンポーネント202、204の間でサポートされてもよい。例えば、コンポーネントはメッセージループを介して非同期メッセージ218を使用して通信してもよい。別の例において、区画間(cross-apartment)の同期COM(コンポーネント・オブジェクト・モデル)呼(呼び出し)は、COMオブジェクト220を使用して実施されてもよい。実施例において、COMオブジェクトを呼び出すことによりオブジェクトを入力又は一時中断してもよいように、コンポーネント202及び204はCOM区画(COM apartments)において実施されてもよい。さらなる例において、共有バッファー222は、例えば、データをストリーミングするために使用され得る。さらに他の例もまた考慮される。
図3は、ブラウザー・アプリケーション302のための層へと組織化されるような例示的な分離インフラストラクチャー300を図示する。図3のブラウザー・アプリケーション302の「最も低い」層(例えば、詳細な抽象化(abstraction wise))は、低レベルの通信(例えば、WINDOWSメッセージ)304及び低レベルの共有メモリー306を含む。次の層は、例えば、スレッド、バッファー、処理、強制インテグリティ・レベル(MIC)など、物理ベースのアプリケーション・プログラム・インターフェース(API)308を含む。その上の次の層は、例えば、同一性、セキュリティー、メッセージ、資源所有権(resource ownership)310などのコンポーネントを含んでいる。図示された例における最上層は、連続的な非同期プログラミング312のほか、例えば、Com技術を非同期に模倣する「COMのような」非同期プログラミングなど、プロキシー及びインターフェースを含む。
図4は、図2及び図3のコンポーネントにより実施されるようなフレーム処理402及びタブ処理404の例示的な実施例400の図である。フレーム処理402及びタブ処理404は、図1のフレーム処理及びタブ処理に相当してもよいし、相当しなくてもよい。
図4の例示的な実施例400は、図1のアプリケーションをコンポーネントへと分離して、それらのコンポーネント間のデータ及び制御の交換及び共有を管理する、分離インフラストラクチャーを示す。分離インフラストラクチャーの使用は、当該図によって示唆されるようなアプリケーションの疎結合の(loosely-coupled)コンポーネント化を容易にする。
タブ処理404はコンテンツの「境界(boundary)」であり、複数のタブの使用を介してコンテンツが互いに分離されるように構成されてもよい。したがって、単一のタブ処理404が示されるが、多くのタブ処理が使用され得る。
タブ処理404は、例えば、図3のブラウザー・アプリケーション302のようなアプリケーションに対する拡張を「含む」ために使用され得る。タブ処理404において「実行されている」コンテンツの例はタブ・スレッド406、408及び「iso」(すなわち、分離」)スレッド410として示される。スレッド(例えば、フレーム・スレッド406、408及び410)の各々は、以前に図2に関して説明されたようなコンポーネントとして示され、したがってそれぞれのWINDOWSメッセージループ、スレッド及び処理を含む。タブ処理404は、フレームに対して「処理中に(in-process)」実行してもよく、他の処理に対して「処理外で(out-of-process)」実行されてもよい。図示されないが、タブ処理404はまた、タブ処理404のコンテンツを「所有する」マネージャー・スレッドを含み得る。
フレーム処理402は、タブ処理404の実行を管理するための機能を代表するマネージャー・スレッド406を含んでいる。例えば、フレーム処理402は、マネージャー・スレッド412を介して、タブ処理404が「どこで」実行されるべきかを決定してもよく、タブ処理404の寿命及び応答性を監視してもよく、エラーが生じた場合にタブ処理404を取り除き、取り替え、回復してもよい。マネージャー・スレッド406は、例えば、タブ処理404が「ハングした」(例えば、無限ループにつかまった)と判定し、したがって、以前にタブ処理によって実行されたコンテンツを検索するなど、タブ処理404を回復してもよい。このように、影響(affect)タブ処理404は、全アプリケーション、例えばこの例におけるブラウザー・アプリケーション、の再初期化なしに回復される。以前に図2に関して説明されたように、スレッドと処理との間で通信が行われてもよい。
したがって、フレーム処理において、寿命モニタリングなどのような管理機能を行う1つのマネージャー・スレッド(例えば、「権限(authority)」マネージャー・スレッド)が存在する。また、フレームのユーザー・インターフェース(例えば、戻るボタン、進むボタン、アドレス・バーなど)を提供してフレームに対するユーザー入力に応答することに関与する1つ以上のフレーム・スレッドが存在する。
タブ処理において、フレームの要求においてタブ処理に分離コンポーネントを作成することに関与する1つのマネージャー・スレッド(フレーム処理において説明されたような権限マネージャー・スレッドではない)が存在する。また、タブ処理においてタブ・コンポーネントを実行し、また、タブのコンテンツ(例えば、HTMLページ)をレンダリングすること及びコンテンツについてのユーザー入力に応答することに関与する1つ以上のタブ・スレッドが存在する。
さらに、フレーム又はタブ処理のいずれかにおいて実行し得る他のコンポーネントのための0以上のコンポーネント・スレッドがあってもよい。これらはタブではないが、同じ処理において分離されて、分離の利点を得るがその各々の処理を回転させるというパフォーマンス・ヒット(performance hit)を回避する。
例示的な手続
以下の説明は、以前に説明されたシステム及び装置を利用して実施することができる分離技術について記載する。手続の各々の態様は、ハードウェア、ファームウェアもしくはソフトウェア、又はその組み合わせにおいて実施されてもよい。手続は、1つ以上の装置によって行われる動作を指定し、それぞれのブロックによる動作を行うために図示された順序に必ずしも限定されないブロックの組として示される。以下の説明の一部では、図1−4に関して説明された例示的な環境について言及がなされる。
図5は、コンテンツを分離する1つ以上の処理の実行が別の処理によって管理される例示的な実施例における手続500を図示する。ネットワークを介して受信されたコンテンツを含む1つ以上の処理の実行は、1つ以上の処理を含む単一のアプリケーションの別の処理によって管理される(ブロック502)。例えば、アプリケーション124は、フレーム処理126及び複数のタブ処理128(1)−128(T)を含むものとして示される。アプリケーション124は、例えば、ネットワークを介して受信されるコンテンツ118(c)、112(k)がタブ処理128(1)及び128(T)の使用を通じて出力され得る、制御の枠組み(構造)(例えば、進むボタン及び戻るボタン、アドレス・バーなど)を提供することに関与するフレーム処理126を備えたブラウザー・アプリケーション302に相当してもよい、したがって、ブラウザー・アプリケーション302のウィンドウは、コンテンツ112(I)−112(T)がタブ処理128(1)−128(T)を通じて出力されるフレーム処理126によって提供されるフレームを含んでもよい。ネットワークを介したコンテンツの受信が記載されるが、コンテンツはコンピューター読み取り可能な媒体を介するなどして、様々な他の方法で受け取られてもよい。
資源は1つ以上の処理を実行するために使用されるよう指定される(ブロック504)。フレーム処理126は、例えば、ネットワーク106を介して受信されるコンテンツ112(1)を分離するために開始されるタブ処理128(1)によって使用されるために、ハードウェア資源(例えば、特定の共有メモリー)、ソフトウェア機能(例えば、ハンドル、ハンドル・スペース及び/又はハンドル範囲)などを指定してもよい。様々な他の例もまた、1つ以上の処理を実行するのに使用されるための信頼レベルを指定するように考慮される(ブロック506)。信頼レベルは、例えば、個人情報保護方針、コンテンツ112(1)のソース、コンテンツ112(1)に付属している証明書(例えば、自己署名されたもの又は認証機関からのもの)などに基づいて決定されてもよい。
管理はまた、反応がない場合に1つ以上の処理を終了することを含んでもよい(ブロック508)。フレーム処理126は、例えば、タブ処理128(1)−128(T)を周期的にポーリングしてもよい。応答が所定の量の時間内にタブ処理128(1)―128(T)の1つ以上から受け取られない場合、1つ以上のタブ処理128(1)−128(T)のそれぞれは終了してもよい。したがって、タブ処理128(1)−128(T)の1つ以上が機能しない(例えば、「ハングしている」、「ビジー状態である」など)場合であっても、この不具合は、フレーム処理126がまだ反応するように、フレーム処理(例えば、実施例における他のタブ処理)に対して「拡張」されない。したがって、様々な修正処置がとられてもよい。
例として、コンテンツは1つ以上の処理において回復されてもよい(ブロック510)。例えば、フレーム処理126は、コンテンツ112(1)がタブ処理において「どこで」(例えば、URL)得られたかを決定し、終了したタブ処理128(1)を再開し、コンテンツ112(1)を再度取得してもよい。したがって、以前にそのような例において直面したように、アプリケーションの全体の不具合を引き起こすことなく、コンテンツ112(1)は、自動的にユーザーの介在なしに回復されてもよい。
結論
本発明は、構造的特徴及び/又は方法論の動作に特有の言葉で記載されたが、添付の特許請求の範囲において定義された発明が記載された特定の特徴又は動作に必ずしも限定されないことが理解されるべきである。より正確に言えば、特定の特徴及び動作は特許請求された発明を実施する例示的な形式として開示されている。

Claims (20)

  1. アプリケーションを提供するように実行可能な命令を含む1つ以上のコンピューター読み取り可能な記憶媒体であって、前記アプリケーションは、
    前記アプリケーションに機能を追加するためにインターネットを介して受信された拡張コードを含む1つ以上の分離処理と、
    前記1つ以上の分離処理の実行を管理するマネージャー処理であって、それぞれの前記分離処理における実行された拡張コードによる望ましくない動作の実行が前記マネージャー処理から分離され前記マネージャー処理によって制御される、マネージャー処理と
    を含む1つ以上のコンピューター読み取り可能な記憶媒体
  2. 前記アプリケーションはインターネットを介してアクセス可能なコンテンツを通じてナビゲートするためのブラウザー・アプリケーションである請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  3. 前記マネージャー処理は、ナビゲーションを実行するために選択可能な1つ以上の制御を提供するフレーム処理として構成され、
    前記1つ以上の制御は、戻るボタン、進むボタン及びアドレス・バーを含む請求項2に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  4. 前記拡張コードは、プラグ・イン、第三者プラグ・イン又はアドオンモジュールである請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  5. それぞれの前記分離処理が機能しない場合、前記マネージャー処理による前記1つ以上の分離処理の実行の管理は、それぞれの前記分離処理において実行された拡張コード及びその現在の実行されるコンテキストの回復を含む請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  6. 前記マネージャー処理による前記1つ以上の分離処理の実行の管理は、それぞれの前記分離処理における前記拡張コードの実行が反応するかどうかを判断することを含む請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  7. 前記マネージャー処理による前記1つ以上の分離処理の実行の管理は、それぞれの前記分離処理における拡張コードが反応しない場合にそれぞれの前記分離処理を終了することを含む請求項6に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  8. 前記マネージャー処理の実行は、前記マネージャー処理が前記1つ以上の分離処理に対して提供されない資源へのアクセスを備えるよう、同一性及び前記1つ以上の分離処理とは異なる信頼のレベルを備えている請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  9. 前記マネージャー処理と前記1つ以上の分離処理との間の通信は、1つ以上の非同期メッセージの使用を含む請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  10. 前記1つ以上の分離処理は第1の前記分離処理及び第2の前記分離処理を含み、
    前記第1及び第2の分離処理間の通信は、1つ以上の非同期メッセージの使用を含む請求項1に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  11. クライアント・システムによる実行に応答して、前記クライアント・システムにブラウザー・アプリケーションを提供させる命令が格納された1つ以上のコンピューター読み取り可能な記憶媒体であって、前記ブラウザー・アプリケーションは、
    ネットワークを介して受信されたコンテンツを含むようにユーザー・インターフェースにおけるそれぞれのタブに関連付けられる1つ以上のタブ処理をサポートし、その結果、前記タブ処理の各々は、前記コンテンツの信用度の判断に基づいて、それぞれの前記コンテンツを、互いに分離し、及び前記クライアント・システムの他の部分から分離し、前記ブラウザー・アプリケーションはさらに、
    前記1つ以上のタブ処理の実行を管理するフレーム処理をサポートし、前記少なくとも1つの前記タブ処理は、前記フレーム処理が少なくとも1つの前記タブ処理に含まれるコンテンツにとって利用可能でない1つ以上の資源にアクセスするように、前記フレーム処理より低い信頼レベルを割り当てられる、1つ以上のコンピューター読み取り可能な記憶媒体
  12. 信頼性の判断は、前記コンテンツの意図又は信頼性に少なくとも部分的に基づく請求項11に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  13. 別の前記タブ処理は、少なくとも1つの前記タブ処理と異なる信頼レベルを割り当てられ、その結果、前記他のタブ処理のコンテンツは、少なくとも1つの前記タブ処理に含まれるコンテンツにとって利用可能でない前記1つ以上の資源にアクセスする請求項11に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  14. 別の前記タブ処理は、少なくとも1つの前記タブ処理とは異なる信頼レベルを割り当てられ、その結果、両方の前記タブ処理のコンテンツは、少なくとも1つの前記他のタブ処理に含まれるコンテンツにとって利用可能な1つ以上の資源に対するアクセスを有さない請求項11に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  15. 前記コンテンツは、ブラウザー・アプリケーションの機能を拡張するように実行可能な第三者からの拡張コードを含む請求項11に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  16. それぞれの前記タブ処理における前記拡張コードの不具合が前記フレーム処理の不具合を引き起こさないように、それぞれの前記タブ処理における前記拡張コードの実行は前記フレーム処理から分離される請求項15に記載の1つ以上のコンピューター読み取り可能な記憶媒体
  17. 反応しない場合に1つ以上の処理を終了するステップであって、前記1つ以上の処理が反応しない場合に他の処理が反応する状態のままであるよう、前記1つ以上の処理の実行は前記他の処理から分離される、1つ以上の処理を終了するステップと、
    前記終了された1つ以上の処理においてコンテンツを回復するステップと、
    前記1つ以上の処理の同一性及びアクセス制御を制御し制限するステップと
    により、前記1つ以上の処理を含む単一のアプリケーションの別の処理によって、ネットワークを介して受信されたコンテンツを含む1つ以上の処理の実行をプロセッサーが管理するステップを含む方法。
  18. 前記他の処理からの前記1つ以上の処理の実行の分離は、異なる前記処理における実行を通じて行われる請求項17に記載の方法。
  19. 前記他の処理からの前記1つ以上の処理の実行の分離は、前記他の処理の1つ以上の非同期メッセージに対する前記1つ以上の処理の応答の失敗が前記他の処理の失敗を引き起こさないよう、前記1つ以上の非同期メッセージの使用を通じて実行される請求項17に記載の方法。
  20. 前記コンテンツは拡張コードを含む請求項17に記載の方法。
JP2010542306A 2008-01-15 2009-01-06 アプリケーションにおける処理によるコンテンツの分離 Expired - Fee Related JP5438688B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/014,744 US20090183155A1 (en) 2008-01-15 2008-01-15 Isolation of Content by Processes in an Application
US12/014,744 2008-01-15
PCT/US2009/030184 WO2009091628A1 (en) 2008-01-15 2009-01-06 Isolation of content by processes in an application

Publications (3)

Publication Number Publication Date
JP2011510380A JP2011510380A (ja) 2011-03-31
JP2011510380A5 JP2011510380A5 (ja) 2012-01-26
JP5438688B2 true JP5438688B2 (ja) 2014-03-12

Family

ID=40851817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542306A Expired - Fee Related JP5438688B2 (ja) 2008-01-15 2009-01-06 アプリケーションにおける処理によるコンテンツの分離

Country Status (13)

Country Link
US (1) US20090183155A1 (ja)
EP (1) EP2235643A4 (ja)
JP (1) JP5438688B2 (ja)
KR (1) KR20100110823A (ja)
CN (1) CN101911056A (ja)
AU (1) AU2009205600A1 (ja)
BR (1) BRPI0906438A2 (ja)
CA (1) CA2707970A1 (ja)
MX (1) MX2010007394A (ja)
MY (1) MY155188A (ja)
RU (1) RU2501075C2 (ja)
SG (1) SG187462A1 (ja)
WO (1) WO2009091628A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8667505B2 (en) * 2010-09-14 2014-03-04 Microsoft Corporation Message queue management
CN102843394B (zh) * 2011-06-22 2015-12-09 腾讯科技(深圳)有限公司 网络应用的框架装置及运行方法
US9928083B2 (en) 2011-07-08 2018-03-27 Microsoft Technology Licensing, Llc Tab trimming
US9384101B2 (en) * 2011-07-26 2016-07-05 Apple Inc. Web application architecture
CN103425225B (zh) * 2012-05-16 2015-08-19 腾讯科技(深圳)有限公司 便携数据设备操作系统中的应用程序装置及其运行方法
US9069766B2 (en) 2012-11-02 2015-06-30 Microsoft Technology Licensing, Llc Content-based isolation for computing device security
US9367211B1 (en) * 2012-11-08 2016-06-14 Amazon Technologies, Inc. Interface tab generation
US9652130B1 (en) * 2014-04-23 2017-05-16 Google Inc. Auto-sizing an untrusted view
US9747165B1 (en) * 2014-04-23 2017-08-29 Google Inc. Self-recovering application
CN106484507B (zh) * 2016-09-18 2019-11-29 天脉聚源(北京)传媒科技有限公司 一种应用线程的处理方法及装置
RU2649796C1 (ru) * 2017-03-24 2018-04-04 Акционерное общество "Лаборатория Касперского" Способ выявления категории данных с использованием API, применяемого при создании приложений для пользователей с ограниченными возможностями
US20190347315A1 (en) * 2018-05-08 2019-11-14 International Business Machines Corporation Methods and systems for rendering web pages with restricted features

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724559A (en) * 1993-10-28 1998-03-03 International Business Machines Corporation Method for displaying ISPF panels in a VM non-ISPF environment
US6442620B1 (en) * 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
DE19856975A1 (de) * 1998-12-10 2000-06-21 Alcatel Sa Verfahren, System, Rechner und Vermittlungsstelle zum Betreiben eines Rechners
US6332210B1 (en) * 1998-12-22 2001-12-18 Litton Systems, Inc. Method of creating and using system-independent software components
US7523466B2 (en) * 1999-02-11 2009-04-21 Amdocs Software Systems Ltd. Method and apparatus for customizing a marketing campaign system using client and server plug-in components
US6654903B1 (en) * 2000-05-20 2003-11-25 Equipe Communications Corporation Vertical fault isolation in a computer system
US6988135B2 (en) * 2001-02-15 2006-01-17 International Business Machines Corporation Method and system for specifying a cache policy for caching web pages which include dynamic content
US7315892B2 (en) * 2001-06-27 2008-01-01 International Business Machines Corporation In-kernel content-aware service differentiation
US6898733B2 (en) * 2001-10-31 2005-05-24 Hewlett-Packard Development Company, L.P. Process activity and error monitoring system and method
US20030187991A1 (en) * 2002-03-08 2003-10-02 Agile Software Corporation System and method for facilitating communication between network browsers and process instances
US7802234B2 (en) * 2003-01-02 2010-09-21 Oracle International Corporation Integration of context-sensitive runtime metrics into integrated development environments
US7174545B2 (en) * 2003-04-08 2007-02-06 The Boeing Company Apparatus and method for producing display application software for embedded systems
US7237223B2 (en) * 2003-04-11 2007-06-26 The Boeing Company Apparatus and method for real-time caution and warning and system health management
WO2005043360A1 (en) * 2003-10-21 2005-05-12 Green Border Technologies Systems and methods for secure client applications
US7418512B2 (en) * 2003-10-23 2008-08-26 Microsoft Corporation Securely identifying an executable to a trust-determining entity
US20050137836A1 (en) * 2003-12-23 2005-06-23 Clark Noel E. Computer system architecture transformation
US7774751B2 (en) * 2003-12-26 2010-08-10 Yefim Zhuk Knowledge-driven architecture
US7890954B2 (en) * 2004-12-22 2011-02-15 Argela Technologies Method and system for communicating between application software
US7596760B2 (en) * 2005-04-07 2009-09-29 Microsoft Corporation System and method for selecting a tab within a tabbed browser
US20060245096A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Application framework phasing model
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
WO2007013280A1 (ja) * 2005-07-29 2007-02-01 Access Co., Ltd. プラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体
US7698685B2 (en) * 2005-10-12 2010-04-13 Microsoft Corporation Discovery, qualification, and activation of software add-in components
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US7676811B2 (en) * 2006-03-23 2010-03-09 Microsoft Corporation Ensuring thread affinity for interprocess communication in a managed code environment
US7580946B2 (en) * 2006-08-11 2009-08-25 Bizweel Ltd. Smart integration engine and metadata-oriented architecture for automatic EII and business integration

Also Published As

Publication number Publication date
EP2235643A4 (en) 2016-04-20
JP2011510380A (ja) 2011-03-31
US20090183155A1 (en) 2009-07-16
MY155188A (en) 2015-09-15
AU2009205600A1 (en) 2009-07-23
EP2235643A1 (en) 2010-10-06
WO2009091628A1 (en) 2009-07-23
BRPI0906438A2 (pt) 2015-07-14
MX2010007394A (es) 2010-10-15
CA2707970A1 (en) 2009-07-23
RU2010129244A (ru) 2012-01-20
KR20100110823A (ko) 2010-10-13
SG187462A1 (en) 2013-02-28
RU2501075C2 (ru) 2013-12-10
CN101911056A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
JP5438688B2 (ja) アプリケーションにおける処理によるコンテンツの分離
US10976981B2 (en) Remote desktop exporting
US11853789B2 (en) Resource manager integration in cloud computing environments
US10073709B2 (en) Session monitoring of virtual desktops in a virtual machine farm
US8452853B2 (en) Browser with offline web-application architecture
US9317344B2 (en) Power efficient brokered communication supporting notification blocking
US20080263390A1 (en) Cluster system and failover method for cluster system
JP2009230549A (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
US9542282B2 (en) Methods for session failover in OS (operating system) level and systems using the same
US8335942B2 (en) Hang recovery in software applications
CN110096370B (zh) 用于虚拟环境的控制反转组件服务模型
US10452469B2 (en) Server performance correction using remote server actions
US11392395B2 (en) Generating and presenting contextual user interfaces on devices with foldable displays
US8458693B2 (en) Transitioning from static to dynamic cluster management
JP2008204239A (ja) 電子計算機及びソフトウェアによるユーザインタフェースの実現方法
JP2011510380A5 (ja)
US11249771B2 (en) Terminal input invocation
US20170031740A1 (en) Naming of nodes in net framework
JP2010182176A (ja) サーバ装置、クライアント装置、サーバベース・コンピューティング・システム、およびプログラム
US20180084087A1 (en) Virtual desktop
JP4820553B2 (ja) ルールに基づいてデータの決定的なディスパッチを実行する方法、コンピュータプログラムおよびコンピューティングシステム
JP2006268125A (ja) アプリケーションサーバ、そのプログラム
JP2010134871A (ja) 情報処理装置、プログラムおよび情報処理装置の制御方法
JPH08221360A (ja) ネットワークシステムおよびネットワークシステムのプログラムモジュール実行方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees