(57)【特許請求の範囲】
【請求項１】
プロセッサと、命令を記憶する非一時的なコンピュータ読み出し可能な記憶媒体とを備えるシステムによって行われる、機密データに対して信用できる計算を行うための方法であって、該命令が前記プロセッサによって実行されたときに、前記システムに前記方法を行わせ、前記方法が、
前記システム上で実行する実行マネージャによって、ゲノムデータセットを使用して計算を行う要求をユーザから受信することと、
前記計算と関連する第１のプログラムを、前記システム上で実行する第１の仮想化実行環境内にロードすることと、
前記実行マネージャによって、前記第１のプログラムの第１の実行コンテキストを生成することと、
前記システム上で実行するデータアクセスプロキシモジュールによって、前記ゲノムデータセットを使用する第１のデータ要求を前記第１のプログラムから受信することと、
前記データアクセスプロキシモジュールによって、前記第１の実行コンテキストに基づいて生成される第１の安全なデータ要求を生成することと、
前記データアクセスプロキシモジュールによって、前記第１の安全なデータ要求を、前記ゲノムデータセットを管理するデータストアに送信することと、を含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記データアクセスプロキシモジュールによって、前記第１の安全なデータ要求に基づいて、前記データストアから第１の安全なデータ応答を受信することと、
前記データアクセスプロキシモジュールによって、前記第１の安全なデータ応答及び前記第１の実行コンテキストに基づいて生成される前記第１のデータ要求に対する第１の応答を、前記第１のプログラムに送信することと、
前記実行マネージャによって、前記第１の応答に基づいて生成される前記ユーザからの前記要求に対する応答を送信することと、を更に含む、方法。
【請求項３】
請求項１に記載の方法であって、
前記ユーザから前記要求を受信することに応じて、前記第１の仮想化実行環境を初期化することを更に含む、方法。
【請求項４】
請求項１に記載の方法であって、
前記データアクセスプロキシモジュールによって、前記第１のデータ要求と関連するポリシーを識別することを更に含み、
前記安全なデータ要求が、前記識別されたポリシーに基づいて更に生成される、方法。
【請求項５】
請求項４に記載の方法であって、前記ポリシーは、前記第１のプログラムに基づいて識別される、方法。
【請求項６】
請求項４に記載の方法であって、前記ポリシーは、前記ゲノムデータセットに基づいて識別される、方法。
【請求項７】
請求項４に記載の方法であって、前記ポリシーは、前記ユーザのアイデンティティに基づいて識別される、方法。
【請求項８】
請求項１に記載の方法であって、前記第１の仮想化実行環境は、限定された実行環境を備える、方法。
【請求項９】
請求項８に記載の方法であって、前記第１の仮想化実行環境は、前記データストアとは異なるアドレス空間と関連付けられる、方法。
【請求項１０】
請求項１に記載の方法であって、前記データストアは、ローカルデータストアを備える、方法。
【請求項１１】
請求項１に記載の方法であって、前記データストアは、分散データストアを備える、方法。
【請求項１２】
請求項１に記載の方法であって、前記第１のデータ要求は、前記ゲノムデータセットにアクセスする要求を含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記第１のデータ要求は、前記ゲノムデータセットに基づいて生成される結果の要求を含む、方法。
【請求項１４】
請求項２に記載の方法であって、
前記計算と関連する第２のプログラムを、前記システム上で実行する第２の仮想化実行環境内にロードすることと、
前記実行マネージャによって、前記第２のプログラムの第２の実行コンテキストを生成することと、
前記システム上で実行する前記データアクセスプロキシモジュールによって、前記ゲノムデータセットを使用する第２のデータ要求を前記第２のプログラムから受信することと、
前記データアクセスプロキシモジュールによって、前記第２の実行コンテキストに基づいて生成される第２の安全なデータ要求を生成することと、
前記データアクセスプロキシモジュールによって、前記第２の安全なデータ要求を、前記データストアに送信することと、を更に含む、方法。
【請求項１５】
請求項１４に記載の方法であって、
前記データアクセスプロキシモジュールによって、前記第２の安全なデータ要求に基づいて、前記データストアから第２の安全なデータ応答を受信することと、
前記データアクセスプロキシモジュールによって、前記第２の安全なデータ応答及び前記第２の実行コンテキストに基づいて生成される前記第２のデータ要求に対する第２の応答を、前記第２のプログラムに送信することと、を更に含み、
前記ユーザからの前記要求に対する前記応答は、前記第２の応答に基づいて更に生成される、方法。
【請求項１６】
請求項１に記載の方法であって、前記第１の実行コンテキストは、第１の識別子セットと第２の識別子セットとの間のマッピングを備える、方法。
【請求項１７】
請求項１６に記載の方法であって、前記第１の識別子セットは、前記ゲノムデータセットと関連する保護された実際の識別子を含み、前記第２の識別子セットは、前記第１のプログラムによってアクセスできる一時的な識別子を含む、方法。
【請求項１８】
請求項１７に記載の方法であって、前記第２の識別子セットは、ランダムに生成される、方法。
【請求項１９】
請求項１８に記載の方法であって、前記第２の識別子セットは、前記第１の識別子セットに関数を適用することによって生成される、方法。
【請求項２０】
請求項１９に記載の方法であって、前記関数は、暗号化関数及びハッシング関数のうちの少なくとも１つを含む、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願
【０００２】
本出願は、合衆国法典第３５巻第１１９条（ｅ）の下で、２０１４年５月１日に出願された米国仮特許出願第６１／９８７，３６５号、名称「ＳＥＣＵＲＥ  ＣＯＭＰＵＴＩＮＧ  ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ」、及び２０１４年１１月１０日に出願された米国仮特許出願第６２／０７７，６９１号、名称「ＳＥＣＵＲＥ  ＣＯＭＰＵＴＩＮＧ  ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ」に対する優先権の利益を主張するものであり、どちらも参照によりその全体が本明細書に組み込まれる。
著作権承認
【０００３】
本特許文献の開示の一部分は、著作権保護を受ける資料を含み得る。著作権所有者は、米国特許商標局の特許ファイルまたは記録に現れるような特許文書または特許開示を、第三者がファクシミリで複製することに異存はないが、その他の場合には、著作権に関する全ての権利を保有するものである。
【発明の概要】
【０００４】
本開示は、概して、情報の信用できる取り扱いを容易にするためのシステム及び方法に関する。より具体的には、排他的ではないが、本開示は、ゲノム、医療、ヘルスケア、バイオインフォマティックス、及び／または他の機密情報の安全な、管理された、及び／または監査された使用を可能にするためのシステム及び方法に関する。
【０００５】
データは、科学的発見を刺激し、データへのアクセスを制限する技術は、科学的プロセスを妨げる場合がある。この危険性は、ヘルスケアシステムにおいて特に深刻であり、アイドル状態のデータは、患者を治療するために、並びに／または新しい技術及び／若しくは治療法を開発するためには使用されないかもしれない場合のあるデータである。しかしながら、ヘルスケアデータは、本質的には機密であり、その公開は、ある特定の有害な影響を有する場合がある。例えば、ゲノム情報は、患者に関してだけでなく、患者の親族に関しても同様に、健康状態及び疾患の危険性に関する膨大な量の詳細を明かすことができる。匿名の形式であっても、ゲノム情報は、患者のプライバシー及び／または他の関連付けられる個人のプライバシーを危殆化し得る攻撃の影響を受け易い。故に、研究者及び／または他のヘルスケア提供者が使用することができるゲノムデータの量を増加させ、一方で、患者及び／または関与する個人のプライバシーを維持し、かつ危殆化させる攻撃を阻止する、という目標をバランスさせることは困難であると証明することができる。
【０００６】
いくつかのアクセスモデルの下では、ゲノム及び／または他の機密データへのアクセスを望み得る研究者または他のエンティティを慎重にスクリーニングすることができる。しかしながら、スクリーニングに成功した後に、研究者及び／またはエンティティが関連する対象物（例えば、患者）のプライバシーの利益を尊重すると信用できるという想定の下で、彼らにはゲノム及び／または他の機密データへの自由な、及び／または比較的制限の少ないアクセスを与えることができる。しかしながら、このような手法は、固有の信用の反推移性に対処することができない。例えば、このようなアクセスモデルは、信用できる、及び／またはスクリーニングされた研究者が、自分が信用する同僚に電子メールで患者の個人データを送ることができるかどうか、研究者が電子メールで情報のサブセットを正当に送ることができるかどうか、そして、送ることができる場合は、どのくらい大きいサブセットを許容することができるか、研究者の患者の個人データが記憶されているコンピューティングインフラストラクチャを管理することに関して、何が研究者の倫理的な義務なのか、及び／または同類のことに明確に対処することができない。
【０００７】
この従来のアクセスモデルに関する潜在的な問題は、データの使用を管理する比較的複雑なポリシーをユーザが施行すると期待し得ることである。情報が受信者（例えば、研究者）に明かされると、及び／または別様には提供されると、データのプライバシーの保護についての慎重さ、個人データを共有することによってより容易に達成することができる特定の科学的または研究の業務を達成するという受信者の要望と矛盾し得る要件、並びに／または受信者の技術的能力を超え得る要件についての慎重さを持って行動するといった負担を受信者にかける。
【０００８】
これらの問題の一部または全部を改善するシステム及び方法が本明細書で説明される。本明細書で開示される実施形態と一致して、機密データ（例えば、ゲノムまたは他の医療若しくはバイオインフォマティックスデータ）をやりとりさせることができるアプリケーション（例えば、モデルビューコントローラ（「ＭＶＣ」）ウェブアプリケーション、及び／または同類のもの）と関連して、より強いセキュリティ及び／またはプライバシー機能を提供するために、データサービスを使用することができる。ある特定の実施形態において、開示されるシステム及び方法は、ゲノム及び／または他の機密データの使用に関するプライバシーに対する懸念に対処することができ、また、このようなデータが関与する危殆化攻撃の可能性を軽減することができる。更なる実施形態において、開示されるシステム及び方法は、機密データへの安全な及び／若しくはポリシーに基づくアクセス、並びに／または機密データの使用を可能にするために使用することができる。とりわけ、開示されるシステム及び方法の実施形態は、ゲノム及び／または他の機密データへのアクセス（例えば、配信、分析など）及び／またはそれらの使用、分散したゲノム及び／または他の機密データとの改善されたやりとり及び／またはそれらの使用、ゲノム及び／または他の機密データのワークフロープロセスにおける低減されたユーザの関与、並びに／または同類のことを容易にすることができる。
【図面の簡単な説明】
【０００９】
本発明の作用の主体は、添付図面と併せて以下の詳細な説明を参照することによって容易に理解されるであろう。
【００１０】
【図１】本開示の実施形態と一致する、機密データを記憶、管理、及び処理するための例示的なエコシステムを例示する図である。
【図２】本開示の実施形態と一致する、アプリケーションプログラミングインタフェースを使用して機密データをやりとりするための例示的なアーキテクチャを例示する図である。
【図３】本開示の実施形態と一致する、サンドボックス化実行環境及びデータアクセスプロキシを使用して機密データをやりとりするための例示的なアーキテクチャを例示する図である。
【図４】本開示の実施形態と一致する、データサービスと関連して使用するための例示的なプログラムを例示する図である。
【図５】本開示の実施形態と一致する、アプリケーションプログラミングインタフェースを介して、データアクセス要求と関連する例示的な交換を例示する図である。
【図６】本明細書で開示される実施形態と一致する、機密データを利用して計算を行うための例示的な計算ネットワークを例示する図である。
【図７Ａ】本明細書で開示される実施形態と一致する、データサービスとインターフェースするように構成される例示的なウェブアプリケーションを例示する図である。
【図７Ｂ】本明細書で開示される実施形態と一致する、データアクセスプロキシを使用するデータサービスとインターフェースするように構成される例示的なウェブアプリケーションを例示する図である。
【図８】本明細書で開示される実施形態と一致する、機密データをやりとりする例示的な方法のフローチャートを例示する図である。
【図９】本明細書で開示されるシステム及び方法の実施形態を実施するために使用することができる例示的なシステムを例示する図である。
【図１０】本発明の作用の主体のある特定の実施形態と一致する、データサービスによるプログラムまたは他の計算の実行を例示するフローチャートである。
【発明を実施するための形態】
【００１１】
本開示の実施形態と一致するシステム及び方法の詳細な説明は、下に提供される。複数の実施形態が説明されるが、本開示は、任意の一実施形態に限定されるものではなく、代わりに、多数の代替物、変形物、均等物を包含することを理解されたい。例えば、例示の目的で、ゲノムデータの文脈において数多くの実施例が提供されているが、本明細書で開示されるシステム及び方法は、その文脈に限定されるものではなく、他の形式の機密データとともに容易に使用することができることが認識されるであろう。加えて、本明細書で開示される実施形態の完全な理解を提供するために、多数の具体的な詳細が以下の説明に記載されるが、いくつかの実施形態は、これらの詳細の一部または全てを伴わずに実践することができる。更に、明確にする目的で、関連技術において知られているある特定の技術資料は、本開示を不必要に不明瞭にすることを回避するために、詳細に説明されていない。
【００１２】
本開示の様々な実施形態は、図面を参照することによって理解され得、特定の事例において、同じ部分は、同じ数字によって表され得る。開示される実施形態の構成要素は、概して本明細書で図面において説明され、例示されるように、多種多様な異なる構成で配設し、設計することができる。したがって、以下の詳細な説明は、特許請求される本開示の範囲を限定することを意図するものではなく、単に、本開示の可能な実施形態を表したものに過ぎない。加えて、本明細書で開示される任意の方法のステップは、別途指定されない限り、必ずしも任意の特定の順序で、更には連続的に実行する必要があるというわけではなく、また、ステップを１度だけ実行する必要があるというわけでもない。
【００１３】
ゲノム及び／または他の機密情報の安全な、管理された、及び／または監査された使用を容易にするシステム及び方法が提示される。ある特定の実施形態において、開示されるシステム及び方法は、機密データへのアクセス及び／またはその使用の、ポリシーに基づく管理を可能にするために、分散データのやりとり及び／または分散データの使用を改善するために、データワークフロー処理へのユーザの関与を減らすために、並びに／または同類ことのために使用することができる。本明細書で開示される実施形態と一致して、データサービスは、遺伝子配列及び／または他の医療若しくはバイオインフォマティック情報を記憶及び／または分析する、信用できるクラウドサービスのためのフレームワークを提供することができる。とりわけ、開示されるデータサービスの実施形態は、研究者及び臨床医がコンピュータプログラム（例えば、信用できる解析論）を通してデータをやりとりすることを可能にすることによって、ゲノムまたは他の機密データに関するプライバシーの問題に対処することができ、これは、データについて様々な利害関係者によって決定される施行ポリシーに従って、様々な方法で管理することができる。これらのシステム及び方法は、その中で用いられる構成要素、システム、及び方法の多くと同様に、新規であることが認識されるであろう。
【００１４】
ある特定の実施形態において、本明細書で説明されるシステム及び方法は、例えば、同一出願人による、２００６年１０月１８日に出願された米国特許第８，７７６，２１６号、名称「Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ  Ｅｎｇｉｎｅ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ」（「２１６号特許」）において説明されているような、デジタル権利管理（「ＤＲＭ」）技術、同一出願人による、２００４年６月７日に出願された米国特許第８，２３４，３８７号、名称「Ｉｎｔｅｒｏｐｅｒａｂｌｅ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｓｅｒｖｉｃｅ  Ｏｒｃｈｅｓｔｒａｔｉｏｎ」（「３８７号特許」）において説明されるような、サービスオーケストレーション及びＤＲＭ技術、同一出願人による、同時係属の、２０１２年４月１１日に出願された米国特許出願第１３／４４４，６２４号、名称「Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ」（「６２４号出願」）において説明されるような、情報管理技術、同一出願人による、同時係属の、２０１２年１０月１７日に出願された米国特許出願第１３／６５４，３４９号、名称「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｐｒｏｔｅｃｔｉｎｇ  ａｎｄ  Ｇｏｖｅｒｎｉｎｇ  Ｇｅｎｏｍｉｃ  ａｎｄ  Ｏｔｈｅｒ  Ｉｎｆｏｒｍａｔｉｏｎ」（「３４９号出願」）及び２０１４年４月２４日に出願された米国特許出願第１４／２６０，７１４号、名称「Ｂｉｏｉｎｆｏｒｍａｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ」（「７１４号出願」）において説明されるような、情報処理技術、同一出願人による、同時係属の、２０１３年３月１５日に出願された米国特許出願第１３／８４０，７９３号、名称「Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔａｔｉｏｎ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ」（「７９３号出願」）において説明されるような、計算技術、と関連して、使用することができ（２１６号特許、３８７号特許、６２４号出願、３４９号出願、７１４号出願、及び７９３号出願の内容は、参照によりその全体が本明細書に組み込まれる）、並びに他の文脈において使用することができる。
【００１５】
データ処理エコシステム
【００１６】
図１は、本開示の実施形態と一致する、ゲノムデータ１０４〜１０８を記憶、管理、及び処理するための例示的なエコシステムを例示する。本明細書で使用するときに、「ゲノムデータ」及び／または「ゲノム情報」という用語は、概して、ゲノムまたはゲノム配列の全体または一部分を表現する、表す、及び／またはそれらから導出されるデータを指すことができる。このデータには、限定されることなく、ＤＮＡ、ｍＲＮＡ、及びタンパク質などの化学構造において符号化される情報、並びにメチル化状態などの関連する情報が含まれる。本明細書で使用するときに、「ゲノム」という用語は、有機体の遺伝情報を指すことができる。ゲノムは、ＤＮＡまたはＲＮＡに符合化することができ、また、ｍＲＮＡとして、またはこれらの核酸配列から導出されるタンパク質配列として表すことができる。「ゲノム」という用語は、遺伝子及び非コード配列を含むことができる。特定の有機体に適用されるときに、「ゲノム」という用語は、正常細胞−ミトコンドリアＤＮＡを含む−からのゲノムデータを指すことができ、更には、腫瘍及びマイクロバイオームの他の有機体などの関連する細胞からのゲノムデータも指すことができる。開示されるシステム及び方法のいくつかの実施形態は、ゲノムデータと関連して本明細書で論じられているが、開示されるシステム及び方法はまた、例えば他のタイプのバイオインフォマティクスデータ（例えば、トランスクリプトーム、コネクトーム、インシデンタロームなど）及び／または他の個人情報、プライベート情報、及び／または別様には機密情報を含む、任意の他の適切な情報と関連して使用することもできることが認識されるであろう。
【００１７】
図１を参照すると、クライアントシステム１００は、ユーザ（例えば、研究者または臨床医）が、ゲノムデータ１０４〜１０８を処理すること、分析すること、または別様には該データをやりとりすることを可能にする、様々な関数を提供することができる。ある特定の実施形態において、クライアントシステム１００は、ネットワーク１０２を介して、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４と通信可能に連結することができる。いくつかの実施形態において、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４のうちの少なくともいくつかは、ネットワーク１０２を介して、及び／または１つ以上の他の通信チャネルを通して、互いに通信可能に連結することができる。
【００１８】
１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４は、とりわけ、ゲノムデータ１０４〜１０８を記憶及び／若しくは管理するように、並びに／または該ゲノムデータと関連してクライアントシステム１００をやりとりするように構成することができる。開示される実施形態と一致して、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４は、ゲノムデータサービスと関連付けることができ、遺伝子配列及び／または他の情報を記憶及び／または分析する、信用できるクラウドサービスのフレームワークを提供する。
【００１９】
クライアントシステム１００は、そこで様々な動作を行うために、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４によって記憶される情報をやりとりすることができる。例えば、クライアントシステム１００は、そこに記憶されるゲノムデータ１０４〜１０８をやりとりするように構成される１つ以上のプログラム、アプリケーション、コード、及び／またはプロセス（例えば、プログラム１１６）を、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４に提供することができる。１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４は、このようなプログラム、アプリケーション、コード、及び／またはプロセスを、信用できる、及び／またはポリシー管理方式で実行することができ、また、関連する結果をクライアントシステム１００に通信することができる。
【００２０】
いくつかの実施形態において、データ記憶装置及び／または処理システム１１０〜１１４は、結果を計算するために、互いにやりとりすることができる。例えば、クライアントシステム１００は、１つ以上のプログラム、アプリケーション、コード、及び／またはプロセス（例えば、プログラム１１６）を、データ記憶装置及び／または処理システム１１０〜１１４のうちの１つに提供することができる。このデータ記憶装置及び／または処理システムは、プログラムによって要求されるデータへのアクセスを有するかどうかを評価し、必要または望ましい場合に他のデータ記憶装置及び／または処理システムにプログラムを転送し、他のデータ記憶装置及び／または処理システムから計算結果を直接受信し、返された結果に対して追加的な処理を潜在的に行い、次いで、結果をクライアントシステム１００に返すことができる。
【００２１】
ネットワーク１０２は、クライアントシステム１００、データ記憶装置及び／若しくは処理システム１１０〜１１４、並びに／または１つ以上の他のシステムの間での通信を容易にするために、ネットワーク通信デバイス及び／またはチャネルの任意の適切な組み合わせを備えることができ、また、任意の適切な通信プロトコル及び／または技術を使用することができる。例えば、ネットワーク１０２は、インターネット、ローカルエリアネットワーク、仮想プライベートネットワーク、または任意の他の通信ネットワーク、またはこれらの組み合わせを備えることができる。例えば、いくつかの実施形態において、ネットワーク１０２は、パーソナル通信システム（「ＰＣＳ」）などの無線キャリアシステム、及び／または任意の適切な通信技術、規格、及び／またはプロトコルを組み込んだ任意の他の適切な通信システムを備えることができる。更なる実施形態において、ネットワーク１０２は、例えば、符号分割多重アクセス（「ＣＤＭＡ」）、グローバルシステムフォーモバイルコミュニケーションズ若しくはグループスペシャルモバイル（「ＧＳＭ」）、周波数分割多重アクセス（「ＦＤＭＡ」）、時分割多重アクセス（「ＴＤＭＡ」）、または直交周波数分割多重アクセス（ＯＦＤＭＡ）規格を利用する、アナログモバイル通信ネットワーク及び／またはデジタルモバイル通信ネットワークを備えることができる。ある特定の実施形態において、ネットワーク１０２は、１つ以上の衛星通信リンクを組み込むことができる。なお更なる実施形態において、ネットワーク１０２は、ＩＥＥＥの８０２．１１規格、Ｂｌｕｅｔｏｏｔｈ（登録商標）、超広帯域（「ＵＷＢ」）、Ｚｉｇｂｅｅ（登録商標）、及び／または任意の他の適切な１つまたは複数の技術を使用することができる。
【００２２】
クライアントシステム１００並びに／またはデータ記憶装置及び／若しくは処理システム１１０〜１１４は、例えば、ラップトップコンピュータシステム、デスクトップコンピュータシステム、サーバコンピュータシステム、分散コンピュータシステム、スマートフォン、タブレット、及び／または同類のものを含む、様々なコンピューティングデバイス及び／またはシステムを備えることができる。単一のサーバ若しくは一群のサーバ、または様々なネットワーク（インターネット、パブリック及び／若しくはプライベートネットワーク、並びに／または同類のもの）によって接続される分散された一群のコンピュータシステムを含むが、これらに限定されない、コンピューティングシステム及び記憶媒体の任意の適切な構成を、システム１００、１１０〜１１４と関連して使用することができることが認識されるであろう。
【００２３】
ある特定の実施形態において、クライアントシステム１００並びに／またはデータ記憶装置及び／若しくは処理システム１１０〜１１４は、関連する非一時的なコンピュータ読み出し可能な記憶媒体に記憶される命令を実行するように構成される少なくとも１つのプロセッサシステムを備えることができる。下で更に詳細に論じられるように、クライアントシステム１００並びに／またはデータ記憶装置及び／若しくは処理システム１１０〜１１４は、信用できる証明書及び／若しくは鍵管理、安全なポリシー管理、並びに／または本明細書で開示されるシステム及び方法の他の態様などの、機密動作を行うように構成される安全な処理ユニット（「ＳＰＵ」）を更に備えることができる。クライアントシステム１００並びに／またはデータ記憶装置及び／若しくは処理システム１１０〜１１４は、任意の適切な通信技術及び／または規格を使用するネットワーク１０２を介して、デバイス及び／またはシステム１００、１１０〜１１４の間で情報を電子的に通信することを可能にするように構成される、ソフトウェア及び／またはハードウェアを更に備えることができる。
【００２４】
データ記憶装置及び／または処理システム１１０〜１１４は、そこに記憶されるある特定のデータ１０４〜１０８を記憶する、管理する、処理する、配信する、及び／または更新するように構成することができる。ある特定の実施形態において、データ記憶装置及び／または処理システム１１０〜１１４は、１つ以上の処理ドメイン、管轄区域、組織、機関、ユーザ、場所、及び／または同類のものと関連付けることができる。一例として、データ記憶装置及び／または処理システム１１０並びに関連するデータ１０４は、研究機関、データ記憶装置及び／または処理システム１１２と関連付けることができ、また、関連するデータ１０６は、管轄区域からのデータ１０６の配信を許可しない管轄区域と関連付けることができ、データ記憶装置及び／または処理システム１１４並びに関連するデータ１０８は、臨床目的及び／または研究目的のデータプロダクトとしてデータ１０８を提供する事業組織と関連付けることができる。ある特定の実施形態において、データ記憶装置及び／または処理システム１１０〜１１４は、データの信用できる記憶及び分析のために、１つ以上のクラウドベースのシステムと関連付けることができ、また、開示されるデータサービスの実施形態を、及び／または例えば３４９号出願と関連して開示されるある特定のシステム及び方法を組み込むことができる。
【００２５】
上で論じられるように、クライアントシステム１００上で実行するアプリケーションは、システムのユーザが、データ１０４〜１０８を使用する様々なワークフロープロセス及び／または分析を行うことと関連して、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４をやりとりすることを可能にする。例えば、ある特定の実施形態において、クライアントシステム１００は、そこで管理されるデータ１０４〜１０８を使用してある特定の処理及び／または動作を行うように、データ記憶装置及び／または処理システム１１０〜１１４に指示する、データ記憶装置及び／または処理システム１１０〜１１４上で実行されるプログラム、アプリケーション、コード、及び／またはプロセス（例えば、プログラム１１６）に対して要求／クエリを発行するように構成することができる。本明細書で開示される実施形態と一致して、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４は、このようなプログラム、アプリケーション、コード、及び／またはプロセスを、信用できる、及び／またはポリシー管理方式で実行することができ、また、関連する結果をクライアントシステム１００に通信することができる。プロセス及び／または動作の結果は、関連するデータ記憶装置及び／または処理システム１１０〜１１４からクライアントシステム１００に返すことができる。
【００２６】
いくつかの実施形態において、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４は、そこに記憶されるデータ１０４〜１０８のセンシティビティ（機密性）に基づいて強化する、様々なレベルのハードウェア及び／またはソフトウェアセキュリティを含むことができる。例えば、特定の遺伝子配列と、関連する個人に関する識別情報（例えば、名前、アドレス、社会保障番号など）とを関連付ける情報を含まないゲノムデータは、このような関連付けを含むゲノムデータ１０４〜１０８よりもセキュリティ強化の低いシステムによって保護することができる。ある特定の実施形態において、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４は、下で更に詳細に論じられるように、開示されるシステム及び方法と関連して使用するための、１つ以上の安全な、保護された、及び／またはサンドボックス化実行環境を含むことができる。
【００２７】
ある特定の実施形態において、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４によって管理されるデータをやりとりする前に、クライアントシステム１００及び／またはそのユーザは、データ１０４〜１０８をやりとりする、及び／または別様には該データを使用するために、そのアイデンティティ及び／または権利を認証することができる。例えば、データ１０４〜１０８及び／またはシステム１１０〜１１４をやりとりするために、及び／またはこれらを使用するために、例えば、ユーザ名及び／若しくはパスワード認証、バイオメトリック認証、個人識別番号認証、並びに／または任意の他の適切なタイプのユーザ認証またはユーザ認証の組み合わせを、クライアントシステム１００及び／またはそのユーザの権利の認証と関連して使用することができる。
【００２８】
１つ以上のデータ記憶装置及び／若しくは処理システム１１０〜１１４並びに／またはクライアントシステム１００は、データの利害関係者（例えば、関連する個人、データを収集した機関、データのアクセスまたは配信に対してある特定の管轄区域の制約を施行する責任を負う政府機関など）によって指定されるデータ１０４〜１０８と関連するプライバシー及び／またはポリシーを施行するように構成することができる。ポリシーは、データ１０４〜１０８へのアクセス、該データの使用、配信、及び／または同類のことと関連する、ある特定の制約、条件、要件、及び／または他のアクションを明確に示すことができる。このようなポリシーは、データ１０４〜１０８のやりとり、該データの使用、配信、及び／または同類のことと関連して施行することができる。例えば、ポリシーは、データ１０４〜１０８を、ある特定の方法でだけ、及び／またはそこからある特定の計算結果を導出するためだけに使用することができることを明確に示すことができる。
【００２９】
ポリシーの例としては、データ１０４〜１０８のやりとり、該データへのアクセス、該データの使用、及び／または配信を阻止及び／または別様には制限するポリシー、データ１０４〜１０８へのアクセス、該データの使用、及び／または配信の前にある特定のセキュリティ要件を満たすことを明確に示すポリシー、データ１０４〜１０８へのアクセス、該データの使用、及び／または配信と関連してある特定のアクション（例えば、匿名化アクティビティ、変換アクティビティ、監査アクティビティなど）が行われることを明確に示すポリシー、並びに／または同類のポリシーを含むが、これらに限定されない。様々なタイプのポリシーをデータ１０４〜１０８と関連付けることができ、また、データ１０４〜１０８のやりとり、これらへのアクセス、該データの使用、及び／または配信と関連して施行される制約、条件、要件、及び／またはアクションを明確に示す、任意の適切なタイプのポリシーを、開示される実施形態と関連して使用することができることが認識されるであろう。
【００３０】
本発明の作用の主体の範囲内で、図１と関連して提示されるアーキテクチャ及び関係に対して数多くの変形を行うことができることが認識されるであろう。例えば、限定されることなく、いくつかの実施形態において、クライアントシステム１００によって行われる関数の一部または全部は、１つ以上のゲノムデータ記憶装置及び／または処理システム１１０〜１１４によって行うことができる。同様に、１つ以上のデータ記憶装置及び／または処理システム１１０〜１１４によって行われる関数の一部または全部は、クライアントシステム１００によって行うことができる。したがって、図１は、例示及び説明の目的で提供されるものであり、限定するものではないことが認識されるであろう。
【００３１】
データサービスの概要
【００３２】
いくつかのコラボレイティブモデルにおいて、ゲノムデータを使用する研究は、大規模にプールされたゲノムデータセットを操作する国際的な研究者のチームによって、分散データセンター全体にわたって行われてもよい。しかしながら、このようなモデルは、ある特定の法的、倫理的、及び／またはプライバシー考慮事項が生じ得る。ゲノムデータを使用する臨床的な設定はまた、ゲノム情報の信用及びセキュリティを確実にするために、様々な潜在的な記憶装置及び／またはコンピューティング考慮事項（例えば、クラウドベースの及び／またはハイブリッド記憶装置考慮事項、データ配信考慮事項、セキュリティ考慮事項など）が生じ得る。
【００３３】
ローカル環境において十分に作用することができるある特定の特徴は、開示される実施形態と一致する、非集中型の、分散型の、及び／または相互接続した記憶装置及びコンピューティングネットワークと関連して、同様に作用しない場合がある。例えば、単一のローカル環境では、例えば、機密データを記憶するコンピューティング装置へのアクセスを阻止するためにドアを閉じること、機密データへのアクセスを保護するためにパスワードを使用すること、及び／または同類のことを含む、物理的なプロセスを通してポリシーを施行することができる。しかしながら、本明細書でより詳細に説明されるように、複数の機関にわたる分散アーキテクチャでは、機密データ及び関連するコンピューティングリソースを、例えばデータを提供する研究者、機関、資金提供者、患者、及び／または参加者によって設定されるポリシーに従って使用することを確実にするために、他の、または追加的な、セキュリティ及び／またはポリシー施行機構が必要になる場合がある。ある特定の実施形態では、ゲノムまたは他の機密データの様々な利害関係者のポリシーを尊重する分散ネットワークと関連付けることができる、データサービスが開示される。
【００３４】
信用管理
【００３５】
開示されるシステム及び方法のある特定の実施形態は、関連する分散ネットワークにおけるメンバーシップに関するある特定のベースライン要件を、機密データを取り扱うエンティティが満たすことを、管理する当局がアサートすることを可能にすることができる、信用管理システムを実現すること、及び／または別様には含むことができる。これらの要件は、例えば、参加するエンティティが該エンティティと関連するデータセンターの物理的セキュリティを実証すること、ある特定のレベルのデータアクセス及び使用監査を行うこと、及び／または同類のことを命令することができる。参加するであろうエンティティが、関連する要件を満たす場合、信用管理システムは、１つ以上の暗号化証明書を生成することができ、該エンティティが、他の関連するエンティティ及び／またはシステムにそのアイデンティティを証明するために、及び関連付けられるネットワーク参加要件の遵守を実証するために暗号化証明書を使用することができる。更なる実施形態において、このような証明書は、ユーザのアイデンティティ、並びに／または機密データへの関連するアクセス権及び／若しくは別様には該機密データの使用権を認証することと関連して使用することができる。本明細書で開示される実施形態と一致して、信用管理は、人間のアクター、関連するシステム、及びバイオインフォマティクプログラムを含む、関連する分散ネットワークにおける数多くのタイプのアクター、エンティティ、及び／または機関に拡張することができ、それによって、ある場所における参加者を他の場所で信用することを可能にするフレームワークを提供する。
【００３６】
ポリシー管理
【００３７】
本明細書で開示される実施形態と一致する分散システムでは、様々な参加するエンティティまたは機関を、データアクセス及び共有、関連するコンピューティングリソースの使用、及び／または同類のことに関する異なるポリシーと関連付けることができる。いくつかの実施形態において、これらのポリシーは、リモートシステムに対してさえもポリシーが尊重及び／または施行されることを確実にするために、エンティティ及び／または機関の間で明確に示す、符号化する、及び交換することができる。例えば、研究調査参加者が、自分のゲノムデータを特定の参加する機関が使用すること、及び／または特定の研究調査と関連するがこのデータの使用範囲をより広くしないことを承諾した場合、このような条件を表現するポリシーを、参加者のゲノムデータと持続的に関連付けることができる。いくつかの実施形態において、このポリシーは、分散ネットワーク全体にわたって施行することができる。様々なエンティティは、例えば研究者、研究の資金提供者及び／若しくは機関、製薬会社、政府、並びに／または同類のものを含む、このような分散ネットワークの中へポリシーを投入することができる。いくつかの実施形態において、２１６号特許及び／または３８７号特許において説明される権利の管理及びポリシーの施行技術は、このようなポリシーを表現し、施行するために使用することができるが、任意の適切なポリシー施行技術を使用し得ることが認識されるであろう。
【００３８】
監査
【００３９】
ある特定の実施形態において、開示されるシステム及び方法は、−個人から機関にわたる−分散システムにおけるデータの利害関係者が、誰が彼らのデータへのアクセスを有するか、彼らのデータに対して何のクエリが実行されたか、及び／または同類のことをみることができるようにしてもよい。更なる実施形態において、ゲノム及び／またはバイオインフォマティクスツール及び／またはアプリケーションの開発者は、何処に、及び誰によって彼らの様々なツール及び／またはアプリケーションが展開されたか、及び／または使用されたかをみることができてもよい。いくつかの実施形態では、承認された条件下でだけ、及び／または承認された宛先にだけ機密データが転送されることを確実にするために、演繹的及び帰納的機構の組み合わせを、開示されるシステム及び方法と関連して実施することができる。
【００４０】
信用及びポリシー管理ツールは、機密データがアクセスされる前に該機密データに対して作用することができるが、監査機構を実施する開示されるシステム及び方法の実施形態は、データ漏洩が起こった後に該データ漏洩のフォレンジック検査を可能にすることができる。監査機構は、例えば医療保険の携行性と責任に関する法律（「ＨＩＰＰＡ」）、経済的及び臨床的健全性のための医療情報技術に関する法律（「ＨＩＴＥＣＨ」）、または同類のものなどの、プライバシー保護法及び／または規則と関連して、責任分析のサポートを更に提供することができる。
【００４１】
暗号化及び鍵管理
【００４２】
機密データが暗号化されずに公開されると、データ管理ポリシーを施行すること、及び／またはこのデータの使用を監査することが困難な場合がある。ある特定の実施形態では、データアクセスが管理され、監査可能であることを確実にするために、機密データは、暗号化を通して保護することができる。更なる実施形態において、機密データを保護する鍵へのアクセスは、これらの鍵へのアクセスが機密データ自体へのアクセスを可能にすることができるように管理することができる。
【００４３】
安全なソフトウェア
【００４４】
開示されるシステム及び方法の実施形態は、分散ネットワークを通じて機密データをやりとりするプログラムの結果に依存する、ある特定の保証を研究者及び／または他の個人若しくは機関に提供することができる。これらの保証は、例えば、限定されないが、以下の一部または全部を含むことができる。
【００４５】
・研究者がゲノムデータと関連して使用することを指定したアプリケーションが、実際に、返された結果を生成したアプリケーションであること。
【００４６】
・関連するリモートシステム上の他のソフトウェアが、要求されたアプリケーションの計算及び／または機密データの他の使用の結果を変更及び／または危殆化し得る方法で、入力または出力データを修正しなかったこと。
【００４７】
・要求されたアプリケーションに含まれるキーイング材料及び／または秘密が、アプリケーションの使用と関連して、漏洩されなかったこと、及び／または別様には暗号化されずに配信されなかったこと。
【００４８】
更なる実施形態において、開示されるシステム及び方法は、ソフトウェアモジュールが信用できるソースに由来する機密データをやりとりするという検証、このようなソフトウェアモジュールが、明かしてはならない機密データを（例えば、サードパーティのサイトまたは同類のものにアップロードすることによって）公開しないという保証、及び／またはある特定のソースからのある特定のソフトウェアモジュールによるある特定の計算リソース及び／またはデータへのアクセスの制限、を提供することができる。
【００４９】
開示されるシステム及び方法のある特定の実施形態は、機密データへの直接のアクセスを有する外部供給ソフトウェアモジュールを提供するのではなく、アプリケーションプログラミングインタフェース（「ＡＰＩ」）を使用する。図２は、本開示の実施形態と一致する、ＡＰＩ使用して機密データをやりとりするための例示的なアーキテクチャを例示する。ある特定の実施形態において、例示されるアーキテクチャは、データサービス２００（例えば、ゲノムデータ記憶装置及び／若しくは処理システム上で、または同類のもので実行するゲノムデータサービス）と関連して実施することができる。
【００５０】
例示されるように、ユーザによって、１つ以上のアプリケーション２０２をデータサービス２００にロードすることができる。ある特定の実施形態において、ユーザは、データサービス２００とのやりとりと関連してデータサービス２００と通信可能に連結される、分散クライアントシステムを使用することができる。アプリケーション２０２は、データストア２０６に記憶されるデータをやりとりするように構成することができる。例えば、研究者は、自分の研究アクティビティと関連してデータストア２０６によって管理されるゲノムデータを分析する要求を発行するために使用されるアプリケーション２０２を作成し、作成したアプリケーション２０２をデータサービス２００にロードすることができる。とりわけ、アプリケーション２０２は、データストア２０６によって管理されるある特定のゲノムデータ及び／若しくは該データストアと関連して行われる計算に対する１つ以上の要求を発行するように、並びに／またはこのような要求に対する１つ以上の応答を受信するように構成することができる。データサービス２００に対してローカルであるように例示されているが、他の実施形態において、データストア２０６は、分散させることができることが認識されるであろう。
【００５１】
データサービス２００の観点から、アプリケーション２０２は、信用できないコードとみなすことができる。故に、データストア２０６によって管理されるデータへのアクセスに対するアプリケーション２０２による要求は、データサービス２００の認証及び承認モジュール２０４と関連するＡＰＩを通してルーティングすることができる。要求された機密データを使用して情報を明かす計算は、アプリケーション２０２の直接アクセス外の、ＡＰＩの背後の安全な環境において行うことができる。認証及び承認モジュール２０４は、（例えば、要求または同類のものと関連する証明書を検査することによって）要求元プリンシパルのアイデンティティ及び／若しくは要求元アプリケーション２０２のアイデンティティを認証することでき、並びに／または要求元プリンシパル及び／若しくはアプリケーション２０２が、（例えば、適用可能なポリシー及び／または同類のものを施行することによって）要求されたデータへのアクセス及び／若しくは別様には該要求されたデータの使用を承認したかどうかを判定することができる。
【００５２】
要求元プリンシパル及び／またはアプリケーション２０２が認証され、関連する要求が承認された場合、認証及び承認モジュール２０４は、承認された要求をデータストア２０６に転送することができる。それに応じて、データストア２０６は、応答（例えば、要求された計算及び／または同類のものからの結果）を認証及び承認モジュール２０４に返すことができ、次いで、認証及び承認モジュール２０４は、データストア２０６から該応答を要求元アプリケーション２０２に転送することができる。ある特定の実施形態において、応答は、データストア２０６によって管理される要求されたゲノムデータに対して行われる計算及び／またはプロセスの結果を含むことができる。更なる実施形態において、応答は、データストア２０６からアクセスされるゲノムデータ及び／またはそのサブセットを含むことができる。いくつかの実施形態において、上で説明される認証及び／または要求承認プロセスに関する情報は、データサービス２００及び／または別のサービスの監査及び／またはアカウンティングモジュール２０８に送信することができる。
【００５３】
いくつかの実施形態において、図２と関連して例示されるアーキテクチャは、例えば、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）ＡＰＩを備えることができる、定義されたインターフェースを使用することができる。とりわけ、例示されるアーキテクチャは、以下のうちの１つ以上を容易にすることができる。
【００５４】
・機密データへのアクセスを望むプリンシパルの認証を通して、関連するアクセス要求に対して、異なるプリンシパル及び異なるポリシーのアプリケーションを区別すること。
【００５５】
・きめ細かいアクセス要求。例えば、プリンシパル及び／または関連する要求元アプリケーションは、特定のタスクに必要とされるデータのそのサブセットだけを要求することができる。
【００５６】
・機密情報がその後に公に広められた場合に、その漏洩の潜在的なソースをより容易に識別することができるように、監査されたアクセス情報の生成。
【００５７】
ある特定の環境において、例示されるアーキテクチャは、機密データを、アプリケーション２０２の信用できない環境に返すことを可能にしてもよい。例えば、アプリケーション２０２によって発行される要求は、ゲノム識別子のリストを与えられる特定のバリアントを有する、多数のゲノムを決定する要求を含むことができる。このような要求に対するＡＰＩからの応答は、ＲＳＩＤによって関連するバリアントを含むことができる。このような環境の下で、アプリケーション２０２は、要求に含まれるリストの中のゲノムの各々について個々のバリアントを学習することができ、これは、いくつかの他の表現型特性に基づいて選択することができる。したがって、このような関連付けの機密は、危殆化される場合がある。
【００５８】
この潜在的な懸念は、個々のバリアントを明かすことなく、データセットに関する統計情報を要求元アプリケーション２０２に返すことができる、より高度なＡＰＩの使用を通して軽減することができ、情報を明かす計算をＡＰＩの背後の安全な環境に効果的に移動させる。
【００５９】
データアクセスプロキシ
【００６０】
アプリケーションプログラミングインタフェース（ＡＰＩ）の使用は、特に情報を明かす場合のある計算がＡＰＩの背後で、及び／または別様には信用できないクライアント側コードの範囲外で行われたときに、直接アクセスモデルよりも強力な機密データの保護を提供することができる。しかしながら、このような計算の全てを不明瞭にするＡＰＩを設計することは、信用できないコードが中間の計算結果及び／または生成物への望ましくないアクセスを有する場合があるので、必要とされ得るよりも、及び／または所望され得るよりも多くの機密データを潜在的に明かす。本明細書で開示される実施形態と一致して、汎用計算能力は、ゲノムデータサービスの信用できる境界内で作成することができ、それによって、機密データを明かす潜在性を低減させる。
【００６１】
図３は、本開示の実施形態と一致する、サンドボックス化実行環境３０２及びデータアクセスプロキシ３０４を使用して機密データをやりとりするための例示的なアーキテクチャを例示する。ある特定の実施形態において、例示されるアーキテクチャは、データサービス３００（例えば、ゲノムデータ記憶装置及び／若しくは処理システム上で、または同類のもので実行するゲノムデータサービス）と関連して実施することができる。とりわけ、例示されるアーキテクチャは、信用できるデータストア３０５によって管理される機密データと関連して行われる計算を、（潜在的に信用できない）コード及び／またはアプリケーション３０１に開示される情報のより正確な制御を可能にする、信用できる環境に移動させることができ、これは、サンドボックス化及び／または仮想化実行環境３０２において実行することができる。ある特定の実施形態において、計算の最終結果に含まれる情報は、アプリケーション３０１に提供することができ、一方で、関連する計算の中間結果は、信用できる境界内で公表することができるが、信用できる境界（例えば、サンドボックス化実行環境３０２内）の外では公表することができない。
【００６２】
いくつかの実施形態において、例示されるデータサービス３００は、例えば以下の一部または全部を含むが、それらに限定されない、機密データへの望ましくないアクセスと関連するセキュリティ及び／またはプライバシーの脅威を緩和するために、様々な特徴及び／または関数を実施することができる。
【００６３】
・コード３０１が、コンピテント及び／または別様には信用できる当局によって署名されることを確実にするために、該コードを検査することができる。このような事例では、シグネチャの確認に成功することを、コード３０１をロードするための、及び／または実行するための条件とすることができる。
【００６４】
・コード（例えば、潜在的に信用できない、サードパーティの、及び／または外部供給されたコード３０１）と関連するシグネチャは、どのコードが機密データにアクセスしたか、及び／または別様には該機密データをやりとりしたかを正確に識別することができる監査アクティビティを可能にすることができる。
【００６５】
・コード３０１は、サンドボックス化実行環境３０２内で実行することができ、該環境は、任意のコンピューティングリソース、記憶装置、及び／若しくはネットワークロケーションに、並びに／または信用できない若しくは保護されていない実行環境にアクセスすることを阻止することができる。
【００６６】
・コード３０１は、きめ細かいＡＰＩを通してデータをやりとりすること、及び／または別様にはデータにアクセスすることを必要とすることができ、それによって、このようなやりとりの監査能力を向上させ、また、その（または関連する）データを使用して行われる計算と関連して危殆化され得る機密情報の量を低減させる。
【００６７】
ある特定の実施形態において、プログラム（例えば、コード３０１）は、信用できない環境（例えば、ユーザのクライアントシステム）においてデータサービス３００と関連して使用するように開発することができる。プログラムは、開発したプログラム及び／またはアプリケーションが望む通りに動作することを検証するために、パブリックデータを使用して（例えば、安全でないＨＴＴＰまたは同類のものを通じて）開発者によって試験することができる。プログラムが検証されると、該プログラムをデータサービス３００にアップロードすることができる。いくつかの実施形態において、プログラムをデータサービス３００にアップロードすることは、開発者が認証されること（例えば、信用できる当局及び／または同類のものによって発行される証明書を保有すること）を検証すること、及び／または開発者が、アップロードしたプログラムの使用を管理するある特定のポリシーを設定することを可能にすることを更に含むことができる。例えばプログラムと関連付けられるある特定のプロパティをアサートするデジタル署名を含む、プログラムに関する様々なアサーションを、アップロード時に、及び／または後ほど加えることができる。
【００６８】
ある特定の程度の隔離及び／またはセキュリティを提供するために、いくつかの実施形態において、データサービス３００にアップロードされるプログラムは、仮想化コンテナにおいて、及び／またはサンドボックス化実行環境３０２（例えば、限定された仮想化実行環境及び／またはマシン）において実行することができる。サンドボックス化実行環境３０２において実行するプログラム及び／またはソフトウェアコードは、データサービス３００と関連する、リソース、関数、及び／またはサービスの制御されたセットに制限することができる。例えば、サンドボックス化実行環境３０２は、そこで実行するソフトウェアコードが、データサービス３００によって管理されるデータソースのある特定のサブセットだけにアクセスすることを許可することができる。ある特定の入力／出力チャネル、ＡＰＩ、ネットワーキングリソース、処理リソース、一時記憶装置、及び／または同類のものへのアクセスも同様に、制御及び／または制限することができる。
【００６９】
仮想化及び／またはサンドボックス化は、任意の適切な方式で実施することができる。いくつかの実例となる実施形態において、仮想化は、Ｄｏｃｋｅｒ（商標）（例えば、Ｌｉｎｕｘコンテナ機構（「ＬＸＣ」）に基づくシステム）を使用して実施することができる。ユーザが開発したプログラムをデータサービス３００にロードするときに、システムは、プログラムの実行可能な画像を作成し、実行時に取り出すために、該画像をリポジトリに保存することができる。いくつかの実施形態において、このような実行可能な画像は、データサービス３００にロードされているプログラムに応じて、自動的に作成することができる。
【００７０】
図３に例示されるように、特定のプログラム、例えばコード３０１を実行する要求は、ユーザのシステムからデータサービス３００によって受信することができる。ある特定の実施形態において、要求は、データサービス３００と関連するシステムから離れている、及び／または別様には分散している場合があるクライアントシステムから発行することができる。いくつかの実施形態において、要求は、所与の計算の実行を要求するプリンシパルがポリシーによって計算を実行することを可能にされることを確実にするために、認証及び／または承認プロセスを通過させることができる。
【００７１】
要求は、データサービス３００の実行マネージャ構成要素３０８によって受信することができる。とりわけ、実行マネージャ３０８は、データサービス３００上で動作する計算のライフサイクルを管理するように、ユーザとデータサービス３００とのやりとりを管理するように、及び／またはデータサービス３００の使用に関する監査及びアカウンティングアクティビティに従事するように構成することができる。例えば、実行マネージャ３０８は、開示されるシステム及び方法の実施形態と関連して、クライアントシステムから要求を受信するように、関連する応答をクライアントシステムに送信するように、並びに／またはサンドボックス化実行環境３０２及び／若しくはそこで実行するコード３０１、データアクセスプロキシ３０４、並びに／または監査及び／若しくはアカウンティングモジュール３０７とやりとりするように構成することができる。
【００７２】
要求を受信することに応じて、実行マネージャ３０８は、要求されたプログラム３０１をサンドボックス化実行環境３０２にロードすることができる。いくつかの実施形態において、実行マネージャ３０８は、ポリシーの識別及び／または施行プロセスを更に行うことができ、それに応じて、要求されたプログラム３０１に１つ以上の条件を配置することができる。例えば、要求されたプログラム３０１を実行する前に、実行マネージャ３０８は、要求されたプログラム３０１が信用できる当局によってデジタル署名されていることを検証することを必要とすることができる。
【００７３】
実行コンテキストは、プログラム３０１の要求された実行のために、実行マネージャ３０８によって生成することができる。いくつかの実施形態において、実行コンテキストは、データサービス３００が、（例えば、サンドボックス化実行環境３０２内で）脆弱であり得るプログラム３０１のアドレス空間に機密情報を配置することなく、機密情報（例えば、データストア３０５によって管理されるゲノムデータ）と実行プログラム３０１とを関連付けることを可能にすることができる。
【００７４】
一例として、図４に例示される例示的なプログラム４００は、その第１の引数としてゲノムＩＤを渡すことができる。いくつかの実施形態において、プログラム４００は、ＰＩＫ３ＣＡ及びＰＴＥＮ遺伝子の特定のエクソンにおけるバリアントを確認することができる。悪意のある、または誤ったプログラムは、このゲノムＩＤを明かすかもしれず、これは、いくつかの脅威モデルの下で、攻撃者が、プライベート情報及び／または別様には機密情報をつなぎ合わせることを容認するかもしれない。この脅威を緩和するために、プログラム４００は、その実行中に使用する一時的な識別子を渡すことができる。いくつかの実施形態において、この識別子は、ランダムな識別子とすることができる。更なる実施形態において、識別子は、比較的逆算が困難な関数（例えば、暗号化関数、ハッシング関数など）を実際の識別子に適用した結果を含むことができる。いくつかの実施形態において、実際の識別子と一時的な識別子との間のマッピングは、実行マネージャ３０８によって生成される実行コンテキストの一部として維持することができる。
【００７５】
更なる実施形態において、実行マネージャ３０８によって生成される実行コンテキストは、データを匿名化するために使用される情報、及び／またはデータストア３０５からの応答を含むことができる。例えば、いくつかの実施形態において、実行コンテキストは、返されるデータ及び／または応答を匿名化するように設計されるデータ３０５からのデータ及び／または応答にノイズを導入するために使用される情報を含むことができる。例えば、６２４号出願で説明されるような技法を使用することができる。
【００７６】
図３に戻って参照すると、実行マネージャ３０８は、仮想マシンインスタンス（例えば、仮想化及び／またはサンドボックス化実行環境３０２）を初期化し、要求されたプログラム３０１を開始することができる。実行マネージャ３０８は、仮想化実行環境３０２内のプログラム３０１に、任意の必要な実行パラメータを更に渡すことができる。ある特定の実施形態において、パラメータは、プログラム３０１が機密情報にアクセスすることを可能にすることを回避するために、変換された状態でプログラム３０１に渡すことができる。
【００７７】
プログラム３０１を実行するときに、データストア３０５からデータを要求することができる。ある特定の実施形態において、これらの要求は、図４に例示される例示的なプログラム４００と関連して示されるように、ＨＴＴＰコールを含むことができる。プログラム３０１は、仮想化実行環境３０２内で実行することができるので、プログラム３０１が指定されたリソースのセットの外にある特定のリソース（例えば、ネットワークリソース及び／またはエンドポイント）にアクセスする能力を制限することができる。
【００７８】
いくつかの実施形態において、プログラム３０１からのデータの要求は、データサービス３００のデータアクセスプロキシ３０４を通してルーティングすることができる。とりわけ、データアクセスプロキシ３０４は、データストア３０５によって管理される機密情報の完全性を保護するために、仮想化実行環境３０２において実行するプログラム３０１から受信する、及び／または該プログラムに送信する要求及び／または応答を変換することができる。ある特定の実施形態において、データアクセスプロキシ３０４は、プログラム３０１に対して透過的とすることができる。例えば、プログラム３０１の観点から、プログラム３０１は、あたかもそれがデータストア３０５と直接通信しているかのように、要求を開始し、応答を受信することができる。
【００７９】
いくつかの実施形態において、データアクセスプロキシ３０４は、変換及びポリシー施行モジュール３０６を備えることができる。変換及びポリシー施行モジュール３０６は、プログラム３０１から受信した要求を安全なデータの要求に変換すること、応答をプログラム３０１に返す前に、データストア３０５から受信した応答を変換すること、プログラム３０１とデータストア３０５とのやりとりに関する適用可能なポリシーを施行すること、及び／または同類のことを行うことができる。ある特定の実施形態において、変換及びポリシー施行モジュール３０６は、その様々なアクティビティと関連して実行マネージャ３０８によって提供される実行コンテキストを使用することができる。例えば、いくつかの実施形態において、実行コンテキストは、変換及びポリシー施行モジュール３０６によって行われる変換及び／またはポリシー施行アクションを達成するために使用される情報を含むことができる。
【００８０】
いくつかの実施形態において、変換及びポリシー施行モジュール３０６は、データストア３０５に記憶されるデータの発信元、代わりにプログラム３０１を実行しているプリンシパル、プログラム３０１の作成者、及び／または同類のものの関係に基づいて、データストア３０５の情報へのアクセスを禁止または修正することができる。例えば、データストア３０５の特定のデータが、特定の個人の医師を除いて、全てのプリンシパルによるゲノム情報の特定のサブセットへのアクセスを阻止するポリシーを確立した該特定の個人に関係する場合、変換及びポリシー施行モジュール３０６は、プログラム３０１が、禁止された情報へのアクセスを要求したが、個人の医師の代わりに実行していないと判断することができ、したがって、このデータへのアクセスを阻止することができる。
【００８１】
いくつかの実施形態において、要求及び／若しくは応答の変換並びに／またはポリシー施行アクティビティと関連して、データアクセスプロキシ３０４並びに／または変換及び／若しくはポリシー施行モジュール３０６によって行われる関数には、以下のうちの一部または全部が含まれるが、それらに限定されない。
【００８２】
・要求は、実行マネージャ３０８によって提供される実行コンテキストに含まれる情報を使用して変換することができる。例えば、変換及び／またはポリシー施行モジュール３０４は、どのようにデータストア３０５の実際の識別子に対するパラメータマップとして一時的な識別子をプログラムに与えるのかを決定することができる。いくつかの実施形態では、実行マネージャ３０８によって提供される実行コンテキストを、安全な要求と関連して変換及び／またはポリシー施行モジュール３０４によって、データストア３０５に更に提供することができる。
【００８３】
・第１のレベルのセキュリティを有するプログラム３０１からの要求は、データストア３０５に伝送する前に、第２のより高いレベルのセキュリティに高めることができる。例えば、ＨＴＴＰを通じて行われる要求は、クライアント及びサーバの双方において、証明書を有する安全なＨＴＴＰ要求に変換することができる。ある特定の実施形態において、これは、正当と証明されたシステムだけがデータストア３０５と直接相互やりとりすることを確実にすることができる。
【００８４】
・ポリシーは、プログラム３０１によって発行される要求を承認することと関連して適用すること、及び／または別様には施行することができる。いくつかの実施形態において、ポリシーは、計算を開始する直前ではなく計算を始めるときに適用することができるように、機密データへのアクセスのきめ細かい制御を提供することができる。例えば、ある特定の実施形態において、施行されたポリシーは、プログラムが行う要求のセットを前もって決定することができない場合であっても、計算を始める方式に応じることができる。
【００８５】
・要求の宛先を書き直すことができる。例えば、多数の異なるサーバ及び／またはデータストア３０５によって要求を満たすことができる場合、データアクセスプロキシ３０４は、最も近いまたは別様にはより適切なサーバ及び／またはデータストア３０５に要求を導くことができる。
【００８６】
・要求及び／または関連する応答は、監査する目的でログを取ることができる。
【００８７】
安全な要求に応じて生成されるデータストア３０５からの結果は、データアクセスプロキシ３０４並びに／または変換及び／若しくはポリシー施行モジュール３０６によって受信することができる。ある特定の実施形態において、応答を受信すると、データアクセスプロキシ３０４並びに／または変換及び／若しくはポリシー施行モジュール３０６は、仮想化実行環境３０２において実行するプログラム３０１に応答を返す（例えば、プログラム３０１のアドレス空間に応答を返す）前に、関連するポリシーを施行すること、及び／または応答を変換することができる。いくつかの実施形態において、このポリシーの施行及び／または変換は、実行マネージャ３０８によって生成される実行コンテキストに含まれる情報に少なくとも部分的に基づくことができる。
【００８８】
いくつかの実施形態において、変換及び／またはポリシー施行モジュール３０６は、プログラム３０１のアドレス空間に返される機密情報の量を管理するために、データストア３０５から返される結果を変換することができる。このような変換としては、例えば、データストア３０５からのある特定のフィールドを排除すること、その応答のある特定の値に対するランダム性を変更または加えること、応答の値の精度を低減させること、または有効な応答の代わりにプログラム３０１にエラーを返すこと、を含む。
【００８９】
プログラム３０１の終了に応じて、その出力、その変換されたバージョン、及び／または返り値は、実行マネージャ３０８によって取り込むことができ、そして、元々の要求側（例えば、ユーザ、及び／またはデータサービス３００とインターフェースする分散クライアントシステム）に返すことができる。更なる実施形態において、データサービス３００の様々な要素間のやりとり及び／または該要素の動作に関する監査情報は、サービス３００の監査及び／またはアカウンティングモジュール３０７に提供することができる。ある特定の実施形態において、監査情報は、その確実性を後で検証することができるように、デジタル署名することができる。更に他の実施形態では、データサービス３００が既知の仮想マシン上での仮想化を使用することができ、また、その動作と関連する様々な状態情報を記憶すること、署名すること、及び／またはタグ付けすることができるので、様々な監査情報を確認するために、後ほど計算を再作成する（例えば、後ほど異なるシステムまたは同類のものに対して再作成する）ことができる。
【００９０】
いくつかの実施形態において、いくつかのプログラム３０１は、単一の結果を計算した後に終了しない、連続計算を含むことができる。このような計算は、例えば、計算がシステムに加えられたときに情報を収集し、新しく取り込まれたデータに従って実行マネージャ３０８に出力を返すことができる。例えば、プログラム３０１は、癌診断のために、データストア３０５を監視することができる。新しい診断に応じて、計算は、第２のデータストアの中の患者の遺伝情報をルックアップし、癌の遺伝的予測のモデルを精緻化することができる。新しい診断をデータストアに入力したときに、サイクルを繰り返し、モデルを更に精緻化する。
【００９１】
いくつかの実施形態において、いくつかのプログラム３０１は、異なるポリシーのセットの下で、または異なるデータのセットを通じて計算を行うために、計算の自然な成り行きにおいて、または実行マネージャ３０８の制御の下で、一時停止していくつかのイベントにわたって待機させるか、または別のデータサービス３００に移動させることができる。例えば、ローカルポリシーを満たすために、及び／または異なるデータストアにアクセスするために、大陸中国の人口とアイスランドの人口とのＡＰＯＥ状態を比較するプログラムを、中国に位置するデータサービスとアイスランドに位置するデータサービスとの間で複数回移動させることができる。
【００９２】
いくつかの実施形態において、プログラム３０１のいくつかの部分は、特定の目的で、最適なデータサービス３００の場所を決定する際に関与させることができる。例えば、プログラム３０１は、データストア３０５において利用できるデータポイントの数とそれらの精度との関係を考慮することができる。例えば、幼少期のミトコンドリア病の進行をモデル化するプログラムは、データの精度が低いがはるかに数が多い場所へ移動するように決定することができる。
【００９３】
データサービスＡＰＩ
【００９４】
上で論じられるように、開示されるシステム及び方法のいくつかの実施例において、機密データにアクセスするための、及び／またはこのようなデータを使用して行われる計算のためのアプリケーションによる要求は、関連するシステムによって意味論的に定義することができるＡＰＩを通してルーティングすることができる。ある特定の実施形態において、要求された機密データを使用して情報を明かす計算は、信用できないアプリケーションの直接アクセス外の、ＡＰＩの背後の安全な環境において行うことができる。開示されるシステム及び方法のある特定の実施形態は、ゲノムデータのやりとりと関連して、ＲＥＳＴ  ＡＰＩを使用することができる。図５は、ＡＰＩを介してバリアントデータを公表するサービスと、要求プログラムとの間の例示的な交換５００を例示する。
【００９５】
いくつかの実施形態において、開示されるデータサービスは、言語を問わないものとすることができ、機密データをやりとりするための関連するプログラムは、ＨＴＴＰ  ＡＰＩを介してデータサービスとインターフェースすることができる。ある特定の実施形態において、機密データをやりとりするために使用されるプログラムは、標準のｓｔｄｉｎ、ｓｔｄｏｕｔ、及びｓｔｄｅｒｒ機能を使用してユーザＩ／Ｏを取り扱うことができる。例えば、上で論じられるように、図４において例示される例示的なプログラム４００は、所与の遺伝子及びエクソンのセットのバリアントを確認することができる。いくつかの実施形態において、プログラム４００は、その第１のコマンドのライン引数としてゲノム記録の識別子を受信することができ、その結果をｓｔｄｏｕｔに書き込むことができる。
【００９６】
管理された実行の実施例
【００９７】
図１０は、本発明の作用の主体のある特定の実施形態に従って、データサービス（例えば、データサービス３００）によってプログラムまたは他の計算（例えば、プログラム３０１）の管理された実行を例示するフローチャートである。図１０を参照すると、１１００で、管理された計算の処理が始まる。１１０５で、おそらくはプログラムを実行するシステムの外部の、例えばプログラムストアから、プログラムがロードされる。このプログラムは、コードバンドルにメタデータを加えたもの、所望のプログラムを予めロードした仮想マシン、または計算のための任意の他のパッケージング若しくはカプセル化機構といった形態をとることができる。１１１０で、必要とされる認証ポリシーを説明するポリシーがロードされる。例えば、これは、外部ポリシーストアに記憶されるポリシー文書とすることができ、または実行を要求するプリンシパル、アクセスされるデータリソースなどと関連するポリシーのデータベースをルックアップすることができる。１１２０で、シグネチャ−または他のアサーション−が、以前のステップでロードされたポリシーに対して評価される。シグネチャまたは他のアサーションが、ポリシー要件を満たしている（すなわち、ブロック１１２５を出る「はい」）場合は、実行を進める。満たしていない場合は、実行を停止する（１１３０）。
【００９８】
１１２０／１１２５でポリシーの確認に成功した後に、１２００で、実行コンテキストが初期化される。本明細書の他の場所で説明されるように、いくつかの実施形態において、これは、計算に関する情報を保持するデータ構造（例えば、実行コンテキスト）を作成またはポピュレート（追加投入）することを含むことができる。いくつかの実施形態において、実行コンテキストは、例えばリソースについて生成される一時的な識別子と、こうしたリソースの真の識別子との間のマッピングを含む、行われている計算に関するメタデータを含むことができる。
【００９９】
１２０５で、プログラムの実行が始まる。これは、仮想マシンまたは他の実行コンテナを開始すること、スクリプトを動作させること、バイトコードインタプリタに対してプログラムを実行すること、及び／または同類のことを含むことができる。このプログラムには、動作させるために必要な引数、必要とするリソースを何処でフェッチするのかに関する情報、出力する場所、などが提供される。
【０１００】
計算の実行が始まると、実行環境は、データへのアクセスをリッスンし、インターセプトし、そして、要求する（１２１０）。管理された計算に由来する要求をインターセプトすることによって、ポリシーを適用すること、結果を不明瞭にすること、識別子を再配置すること、などができる。基本的には、この段階で、計算に送達される情報がいくつかのポリシーのセットの下で適切であることを確実にするための技法が適用される。
【０１０１】
要求は、１つ以上の異なる技法を使用してインターセプトすることができる。１つの実現形態は、計算を実行する仮想マシンまたはコンテナと同じサブネット上で透過的なプロキシを使用することができる。コンテナ内部で実行するプログラムは、通常のＵＲＬにアクセスしていると考えているが、実際には、その要求は、１３００〜１３５０で示されるように、要求及び応答の双方に対してステップを行うプロキシサーバによってインターセプトされ、処理される。
【０１０２】
例えば、安全な実行コンテキストがデータの要求を受信した場合は、最初に、おそらくは任意の適切な変換を要求に適用するように実行コンテキストの情報を使用して、任意の適切な変換を要求に適用する。例えば、いくつかの実現形態において、プログラムは、ＲＥＳＴ  ＡＰＩを使用するリソースへのアクセスを要求することができる。プログラムは、次のような特定のゲノムバリアントを依頼することができる。
【０１０３】
ｈｔｔｐ：／／ｇｅｎｅｓｅｒｖｅｒ．ｇｅｎｅｃｌｏｕｄ．ｃｏｍ／ｇｅｎｏｍｅ／１２３／ｖａｒｉａｎｔ／ｒｓ９３４５８
【０１０４】
ＵＲＩは、このゲノムの真の識別子を置換するために、実行コンテキストの情報を使用して変換することができる。例えば、ＵＲＩは、次のようになり得る。
【０１０５】
ｈｔｔｐ：／／ｇｅｎｅｓｅｒｖｅｒ．ｇｅｎｅｃｌｏｕｄ．ｃｏｍ／ｇｅｎｏｍｅ／９８４８２８４２８７２３４８／ｖａｒｉａｎｔ／ｒｓ９３４５８
【０１０６】
ここで、一時的な識別子「１２３」と真の識別子「９８４８２８４２８７２３４８」との間のマッピングが実行コンテキストの一部である。
【０１０７】
他の変換、例えば１つの名前空間のリソース指示子を別の名前空間にマッピングすることが可能であることが、認識されるであろう。多くのオンラインリソースは、遺伝子について該リソース自体の一意の名前を使用し、これらの名前は、より標準化された名前にマッピングすることができる。
【０１０８】
更なる一実施例として、真の識別子の代わりに一時的な識別子を使用するのではなく、システムは、ハッシュまたは暗号化したバージョンの真の識別子を、プログラムを実行するための因数として使用することができ、この変換ステップは、宛先サーバが真の識別子を決定することを可能にするＨＴＴＰヘッダを要求に加えることを含むことができる。
【０１０９】
いくつかの実施形態において、要求の宛先はまた、規制ランドスケープ、最も好都合なデータのコピー、所望の情報を含むことが知られている特定のデータベース、及び／または同類のものについての知識を反映するように変更することもできる。
【０１１０】
１３０５で示されるように、いくつかの実施形態において、要求は、監査される。監査は、元々の要求、変換された要求、（例えば、監査を介して、不適切なパーティに情報が漏洩することを阻止するために）暗号化によって不明瞭にされた要求などを含むことができる。
【０１１１】
１３１０で、ポリシーが要求に適用される。例えば、特定のアクセスが許可されたかどうかを判定するために、リソースへのアクセスを管理するポリシーが要求に適用される。一実施形態において、ポリシーは、事前にではなく、計算の実行中に適用される。このセットアップの利益は、計算を、リソースがアクセスされるその実行の一部として、前もって認証を決定することができないようにその識別子を知ることができないリソースを決定することができることである。
【０１１２】
例えば、プログラムは、特定の基準に適合する、例えばバリアントｒｓ１２３４を有する、ゲノムのリストをサーバから要求することができる。その後のステップは、次いで、バリアントｒｓ１２３４とｒｓ５６７８との間の相関を調査するために、動的に決定されたコホートに問い合わせることができる。この計算の第２のステップで要求される特定のアクセスは、前もって知られていない（また、該アクセスが、クエリが行われている特定のゲノムデータベースの状態に依存するので、概して、知ることができない）。このような環境において、このような要求の承認は、ランタイムで行われるべきである。
【０１１３】
再度図１０を参照すると、１３１５で、以前のステップのポリシーがアクセスを許可するかどうかに関する判定が行われる。アクセスが許可されている場合は、管理された情報を記憶する別のシステムに要求が転送される。例えば、リソースがＲＥＳＴ  ＡＰＩを介して識別される場合、（１３００）で概説されるように、要求がこのシステムに転送される。
【０１１４】
１３２５で、該当する場合に、ポリシーが計算の結果に適用される。機密データソースから返される結果は、例えば、該結果自体を、結果が生成される前に評価することができない管理ポリシーに従わせることができる。例えば、識別の対象となる個々の被検体を表す方法で、コホートを単一の人にしぼる非常に特殊のクエリをブロックすることができる。
【０１１５】
１３３０で、結果へのアクセスを許可するかどうかに関する判定が行われ、１３３５で、ポリシーによって命令された場合に、結果を変換することができる。変換は、いくつかの理由で、返された値に以下の（ａ）及び（ｂ）を含み、適用することができる。（ａ）例えば、１３００で、おそらくは実行コンテキストの情報を使用して、以前に作成したマッピングを反転させること、（ｂ）過剰な個人情報を返すと判定される結果に対してランダム性を加えること、などを含む。
【０１１６】
アクセスが許可されなかった（例えば、ブロック１３１５またはブロック１３３０を出る「いいえ」）場合は、１３４０で、無効／例外的な事例が起こったことを知らせる無効／例外的な結果を返す。あるときには、例外的な結果を返すことが、情報を漏洩する−例えば所与の個人がデータベースの一部でないことを示す−場合があるので、このステップも慎重に管理しなければならない。１３４５で、カジュアルなログビューアが見てはならない情報を見てしまうことを阻止するために、未処理の形式、変換された形式、更には暗号化または別様には不明瞭にされた形式での要求のような結果を監査することができる。システムはまた、明かされた特定のリソースに関する情報の量を決定し、記録する「情報アカウンティング」も行うことができる。これは、将来のポリシー決定において使用することができ、過剰な情報がいくつかのポリシーに従って明かされた場合に、システムは、更なる質問に答えることを拒否することができる。
【０１１７】
１３５０で、実行中のプログラムに結果が返される。例えば、このステップにおいて、透過型プロキシによって要求がインターセプトされた場合、プロキシは、結果を要求者に返す。
【０１１８】
１２１５で、管理されたプログラムの実行が終了したかどうかに関する判定が行われる。終了していない場合、プロセスは、ブロック１２０５で実行を続ける。
【０１１９】
１２２０で、戻り値が構築される。例えば、一実施形態では、管理された計算が終了したときに、この計算ステップの最終結果が、計算を要求するプリンシパルに返されるデータ構造に組み立てられる。
【０１２０】
１２２５で、ポリシーが潜在的戻り値に適用される。個々のリソース要求の各々の結果を管理し、監査したのと同じ方法で、いくつかの実施形態において、これらの結果の組み合わせも管理し、監査する。そうでなければ、プログラムは、非常に長い一連の表面上は無害なクエリを作成し、多くの情報を明かす何かに結果を組み合わせる場合がある。適用されるポリシーのタイプは、例えば、ブロック１３２５と関連して説明されるポリシーと類似し得るが、該ポリシーは、情報の組み合わせを考慮するのに役立つ。例えば、ポリシーは、「偶発的発見」の深刻度に応じて、こうした偶発的発見が明かされること、または抑制されることが必要であり得る。これは、例えば、（現在、医学的に実績のある行動方針がない）アルツハイマー病のような特定の疾患に対する可能性が増加したことを示す、検出されたバリアントが、最終結果において抑制されることを意味し得る。この抑制は、組織ポリシーの結果、またはデータが収集されたプリンシパルの個人的選好とすることができる。
【０１２１】
１２３０で、結果がポリシーによって許可されるかどうかに関する判定が行われ、１２３５で、最終結果以外はブロック１３３５と同様に、返り値を変換することができる。例えば、各返り値は、結果の統計（例えば平均、分散）を保つ一方で、秘匿性を維持するために僅かに修正することができる。
【０１２２】
アクセスが許可されていない場合は、ブロック１３４０と同様に、無効／例外的な結果を返すことができ、そして１２４５で、実行監査を作成することができる。当然、最終結果は、監査することができるが、いくつかの実施形態では、入力の一部若しくは全部、及びこの計算の結果としてのシステム全体の状態も同様に監査される。このステップは、過去に取得した結果を再作成するための、フォレンジック目的に望ましくなり得る。例えば、薬剤を投与するために計算を使用し、患者が拒絶反応を起こしたと仮定する。計算が正しく行われたこと、及びこの事実を実証できることが分かっていることが重要である。これを行うための１つの方法は、おそらくはデジタル署名の形式による、入力及び全ての暗示の入力状態、入力自体の計算、並びに出力結果に関するハッシュを計算し、記憶することを含む。入力及び出力データ、状態データ、及び結果とともにハッシュを記憶することによって、膨大なクラスの計算（例えば、決定論的であり、参照透過的であるもの）を正確に再作成することができる。
【０１２３】
１２５０で、結果が要求者に返されるか、または後の処理段階のために、明確に定義された場所に記憶され、１２５５で、実行コンテキストがクリーンアップされる。例えば、この計算に関するメタデータを含む実行コンテキストは、破壊することができ、その後に、処理は停止する。
【０１２４】
図１０は、例示の目的で提供されており、限定されるものではないこと、及び本発明の作用の主体の原理を逸脱しない範囲で、図１０に示される例示的なプロセスに対して多数の変更を行うことができることが認識されるであろう。例えば、いくつかの実施形態では、様々なブロックを省略することができ、他のブロックを加えることができ、異なる順序でステップを行うことができ、及び／または同類のことを行うことができる。
【０１２５】
上で説明される例示的なプロセスの追加的な詳細、及び可能な変形のいくつかの実施例が下で提供される。
【０１２６】
計算に対するリソースの識別
【０１２７】
いくつかの実施形態が計算を仮想化する理由の１つは、偶然か故意かにかかわらず、計算自体に与えられる任意の情報が潜在的に漏洩するというセキュリティ上の想定に基づいている。この事態から保護するためのいくつかの機構がある。
【０１２８】
図１０のブロック１２００で、（とりわけ）システムに知られている識別子と、計算に与えられる識別子との間のマッピングを含むことができる、実行コンテキストが作成される。いくつかの実施形態において、計算は、この特定の実行のコンテキストのリソースについて、ランダムで一時的なエイリアスが与えられる。例えば、実際のアイデンティティ１２３４５６７８を有するリソースに、ランダムな識別子０７２９６３４２９を割り当てることができる。このリソースに関する情報を計算が要求するときには、０７２９６３４２９を依頼する。システムは、実行コンテキストを使用して、この識別子を真の識別子１２３４５６７８にマッピングする。
【０１２９】
追加的な手法は、機密データをホストするサーバに知られている（または該サーバが発見できる）鍵を使用して、真の識別子を暗号化することである。一変形例は、鍵付きハッシュ関数（ＨＭＡＣなど）を使用し、リソース識別子としてハッシュを使用することである。当業者は、識別子を不明瞭にするための多くの潜在的な方法があること、及び任意の適切な技法を使用することができることを認識するであろう。
【０１３０】
この手法の１つの利益は、信用できる実行コンテキストの外で動作している計算により、試験データに対する試験的な計算と適合することである。このような場合は、いかなる実行コンテキストもなく、いかなるプロキシもなく、それ故にいかなる変換もない。試験者が、パブリックにされたいくつかのゲノム識別子を知っている場合、計算は、信用できる実行コンテキストの外で試験することができ、次いでその後に、信用できるコンテキストにアップロードすることができる。
【０１３１】
計算ネットワーク
【０１３２】
開示される実施形態と一致して、機密情報を潜在的に明かすことができる計算は、隔離することができ、並びに／または別様には仮想化及び／若しくは保護された実行環境で（例えば、サンドボックス化環境で）行うことができる。更なる実施形態において、より複雑な計算は、保護された処理環境において更に個別に隔離することができる、複数の段階を使用することができる。いくつかの実施形態では、計算の段階を隔離することは、とりわけ、計算のセキュリティを改善すること、並びに／または機密情報及び／または中間の計算情報が不所望に明かされることの潜在性を低減させることができる。
【０１３３】
一例として、計算は、キャリアの適合性を決定することができる。計算を実施するように構成されるプログラムは、表現型識別子によって２つの被験体を識別し、特定のバリアントが存在するか、しないかについて被検体を調べること、及び２つの被検体がキャリアであるかどうかを判定することができる。しかしながら、このような計算は、個人的に識別可能な情報及び／または別様には機密情報を潜在的に明かす場合がある。この危険性を低減させるために、本明細書で開示されるある特定の実施形態と一致して、それぞれが隔離した状態で動作し、遺伝子型と表現型とを結び付けることができないように、３つの別個のプログラムのネットワークを使用してプログラムを実施することができる。
【０１３４】
図６は、一貫したゲノムデータと関連して計算を行うための例示的な計算ネットワーク６００を例示する。特に、例示される計算ネットワーク６００は、キャリアの適合性を決定するために、上で説明される計算を実施することができる。示されるように、計算ネットワークは、異なる計算（例えば、計算６０２〜６０８）を隔離されたアドレス空間に分離することができる。例えば、選択計算６０２は、表現型基準及び／または任意の他の適切な方法に基づいて、２つの被験体を識別することができる。選択された被験体と関連する識別子は、選択計算６０２を実施するプログラムのアドレス空間の外で、ゲノム識別子にマッピングすることができる。次いで、各ゲノムを、特定のバリアントが存在するかどうかを確認するために、スクリーン計算６０４、６０６において別々に評価することができる。スクリーン計算６０４、６０６は、組み合わせ計算６０８（例えば、バリアントが存在しているか、及び／または存在していないかを示すブール値）に結果を渡すことができ、（例えば、論理ＡＮＤまたは同類のものを行うことによって）結果に基づいてキャリアの適合性を判定することができる。例示される計算ネットワーク６００は、別様には、単一のプログラムを使用して実施することができるが、おそらく明かされ得る個人的に識別可能な情報及び／または別様には機密情報の量が低減される。
【０１３５】
いくつかの実施形態において、計算６０２〜６０８の各々は、図３に例示されるように、サンドボックス化実行環境の内側で行うことができ、実行マネージャ３０８が、個々にサンドボックス化した計算の各々の間のやりとりを管理する。例えば、計算６０２は、サンドボックス化実行環境３０２の内側で動作させた場合に、その結果を実行マネージャ３０８に返すことができ、次いで、こうした結果を、おそらくいくつかの変換の後に、プログラム６０４及び６０６に提供し、各プログラムは、それら自体のサンドボックス化実行環境の内側で動作する。
【０１３６】
開示されるデータサービスのある特定の実施形態は、例えば図６と関連して例示されるような計算ネットワークを含む、計算ネットワークを指定するための様々な機構を提供することができる。ある特定の実施形態において、開示されるデータサービスは、とりわけ、モジュール間の変換、計算ライフサイクルの管理、中間計算生成物の記憶及び／若しくはトランスポート、並びに／または安全な方式で最終計算結果を返すことを容易にすることができる。
【０１３７】
モデル／ビュー／コントローラアーキテクチャ
【０１３８】
いくつかの実施形態では、モデル／ビュー／コントローラウェブアプリケーションアーキテクチャを、開示されるデータサービスフレームワークの実施形態と関連して実施することができる。図７Ａは、本明細書で開示される実施形態と一致する、ゲノムデータサービス７０２とインターフェースするように構成される、例示的なモデル／ビュー／コントローラウェブアプリケーション７００を例示する。いくつかの実施形態において、ゲノムデータサービス７０２は、そこで管理されるゲノムデータのやりとりを容易にするために、安全なＡＰＩ（例えば、ＲＥＳＴ  ＡＰＩ）を公表することができる。
【０１３９】
ある特定の実施形態では、ウェブアプリケーション７００と関連して実施されるオブジェクトリレーショナルモデル（「ＯＲＭ」）を、安全なＡＰＩとやりとりするように適合させることができる。いくつかの実施形態において、ＯＲＭシステムは、アプリケーションの開発者が、Ｒｕｂｙ  ｏｎ  ＲａｉｌｓまたはＤｊａｎｇｏなどのウェブサービスフレームワークを使用して、自動生成モデルオブジェクトをやりとりすることを可能にするように設計することができ、該オブジェクトのクラスがデータベーステーブルに対応し、該オブジェクトのオブジェクトインスタンスがテーブル内の行に対応する。更なる実施形態において、ウェブフレームワークは、サポーティングコンポーネントを使用することができ、これは、開発者が、ローカルデータベースのオブジェクトに関して、同様の方式で、ＲＥＳＴ  ＡＰＩを通じてリモートサービスで記憶されるモデルオブジェクトと透過的にやりとりすることを可能にする。
【０１４０】
オブジェクト／ＲＥＳＴマッピングの一例として、データベースレコードを取り出すステートメントをＵＲＬに翻訳することができる。例えば、データベースレコードｐａｔｉｅｎｔ．ｒｓｉｄ（１９３３４３７）を取り出すというステートメントは、ＵＲＬ  ｈｔｔｐ：／／．．．／ｇｅｎｏｍｅ／５６８５ｃ０２８ｂｆ７８１１ｅ３ａ２１ａ１２４７０ｅｃ１ｄ３ｂ５／ｖａｒｉａｎｔ／ｒｓｉｄ／ｒｓ１９３３４３７に翻訳することができ、ここで、ゲノムＩＤは、ローカルデータベースの中の患者オブジェクトと関連付けられ、オブジェクトによって、ＲＥＳＴマッピング層への経路が自動的に構築される。いくつかの実施形態において、このような要求は、要求を行うコードを識別すること、及び／または監査することを可能にする認証機構と連結することができる。
【０１４１】
開示されるシステム及び方法のある特定の実施形態は、関連するモジュールが次のような状態であることが含まれるが、それらに限定されない、様々な環境において、ＡＰＩレベルで統合することができる。
【０１４２】
・移行中に認証する必要がない場合のある信用できるソースに由来する、
【０１４３】
・望ましくない挙動について分析されている、
【０１４４】
・ゲノムデータなどの機密データへのアクセスに対する完全性の証明を必ずしも必要としない、
【０１４５】
・モジュールによって取り出されている機密データが他の構成要素によって危殆化することができないことを確実にすることができる、信用できる環境で実行される、及び／または
【０１４６】
安全に及び／または別様には機密データの完全性を危殆化することなく、様々な計算モジュール間で中間生成物を渡すことができる。
【０１４７】
更なる実施形態では、上記の環境のうちの１つ以上を適用しないときなどに、開示されるシステム及び方法の他の実施形態と一致する個々のモジュールレベルで、サンドボックス化技法及び／または仮想化実行環境技法を適用することによって、ある特定の保護を達成することができる。図７Ｂは、保護された実行環境を使用するゲノムデータサービス７０２とインターフェースするように構成される、例示的なウェブアプリケーション７００を例示する。
【０１４８】
いくつかの実施形態において、サンドボックス化モジュールは、制御コードによって直接呼び出することができる。例えば、モジュール自体は、上で説明されるように、オブジェクト／ＲＥＳＴマッピングを使用することができ、アダプタが依存性として仮想化コンテナに投入される。ある特定の実施形態において、この手法は、他のモジュールオブジェクトに対して多くの依存性がない場合、及び／または必要なパラメータをサンドボックス化モジュールにパラメータとして渡すことができる場合、といった環境で実施することができる。
【０１４９】
更なる実施形態では、あるレベルの間接指定を実施することができる。例えば、オブジェクトマッピングは、任意の必要なパラメータで渡す、サンドボックス化モジュールを実行するために、インスタンス変数及びこうしたアイテムを返すＲＥＳＴコールにアクセスする方法をマッピングするのではなく、こうした要求をコマンドに変換することができる。
【０１５０】
モジュールレベルのサンドボックス化を利用することで、とりわけ、ゲノムデータサービス７０２が、サードパーティのコードをより安全に取り扱うこと、コードの完全性を暗号によって検証すること、及び／または同類のことを行うことを可能にする。ある実施形態において、中間生成物及び／または計算情報（例えば、ある特定のアーキテクチャでウェブアプリケーションに返すことができる）に対する危険性を緩和するために、計算ネットワークをゲノムデータサービス７０２のフレームワークと関連して使用することができる。特に、上で論じられるように、計算ネットワークは、計算及び／またはプログラムのある特定の中間計算を隔離するように指定することができる。開示される実施形態と一致して、様々な中間計算を様々な保護された実行環境内で実行することができ、それによって、中間計算結果の完全性を保護する。
【０１５１】
図８は、本明細書で開示される実施形態と一致する、ゲノムまたは他の機密データをやりとりする例示的な方法８００のフローチャートを例示する。例示される方法８００は、ソフトウェア、ファームウェア、ハードウェア、及び／またはこれらの任意の他の組み合わせを使用することを含む、様々な方法で実施することができる。ある特定の実施形態では、方法８００及び／またはその構成ステップのいずれかを、ある特定の開示される実施形態と一致するデータサービスを実施するシステムによって行うことができる。
【０１５２】
８０２で、ゲノムデータセットを使用して計算を行う要求をユーザから受信することができる。いくつかの実施形態において、開示されるゲノムデータサービスのある特定の実施形態を実施するシステム上で実行する実行マネージャによって、要求は、受信されることができる。要求は、例えば、ゲノムデータへのアクセスの要求、及び／またはゲノムデータセットに基づく計算結果の要求を含むことができる。
【０１５３】
要求を受信することに応じて、８０４で、要求された計算と関連する１つ以上のプログラムを、１つ以上の仮想化及び／若しくは別様にはサンドボックス化した、または限定された実行環境にロードすることができる。いくつかの実施形態では、元々の要求をユーザから受信することに応じて、１つ以上の仮想化実行環境を初期化することができる。更なる実施形態では、１つ以上の仮想化実行環境を、ゲノムデータセットを管理するように構成されるデータストアとは異なるアドレス空間（複数可）と関連付けることができる。
【０１５４】
８０６で、実行マネージャによって、１つ以上のプログラムのための１つの実行コンテキスト及び／または複数の実行コンテキストを生成することができる。ある特定の実施形態において、実行コンテキスト（複数可）は、ゲノムデータセットと関連する実際の識別子のセットと、要求元プログラムに提供される一時的な識別子のセットとの間のマッピングを含むことができる。これらの識別子は、例えばランダムに生成すること、及び／または逆算が困難な関数（例えば、暗号化関数、ハッシング関数など）に基づいて生成すること、を含む、様々な方法で生成することができる。
【０１５５】
８０８で、ゲノムデータセットにアクセスする、及び／または該ゲノムデータセットを使用する、プログラム（複数可）からの要求（複数可）を、システム上で実行するデータアクセスプロキシモジュールによって受信することができる。８１０で、実行コンテキスト（複数可）を使用することで、データアクセスプロキシモジュールは、要求（複数可）を、生成すること、及び／または別様には安全なデータ要求（複数可）に変換することができる。更なる実施形態では、１つ以上の識別されたポリシー（例えば、ゲノムデータセット、要求元ユーザ、及び／または要求元プログラム（複数可）と関連するポリシー）を、安全なデータ要求（複数可）を生成することと関連して使用することができる。
【０１５６】
８１２で、生成された安全なデータ要求（複数可）を、データアクセスプロキシモジュールによって、ゲノムデータセットを管理するデータストアに送信することができる。８１４で、データアクセスプロキシモジュールは、安全なデータ要求（複数可）に応じて、データストアから安全なデータ応答（複数可）を受信することができる。８１６で、実行コンテキスト（複数可）及び識別されたポリシーに基づいて、データアクセスプロキシモジュールは、安全な応答を変換することができ、８１８で、変換した応答を、仮想化実行環境（複数可）において実行するプログラム（複数可）に提供することができる。８２０で、データアクセスプロキシモジュールから受信する情報に基づいて１つ以上のプログラム（複数可）によって生成されるユーザの元々の要求に対する応答を、ユーザに送信することができる。
【０１５７】
図９は、本明細書で開示されるシステム及び方法の実施形態を実施するために使用することができる、例示的なシステム９００を例示する。例示的なシステム９００は、本明細書で開示される動作を行うことができるデバイス及び／またはコンピュータシステムを備えることができる。例えば、システム９００は、開示されるシステム及び方法と一致するゲノムデータサービスを実施するように構成される、ゲノムデータ記憶装置及び／または処理システムのうちの少なくとも一部を備えることができる。
【０１５８】
図９に例示されるように、システム９００は、処理ユニット９０２と、処理ユニット９０２によって使用し、実行するためのプログラム及び他のデータを記憶するための、高速ランダムアクセスメモリ（「ＲＡＭ」）、不揮発性メモリ（「ＲＯＭ」）、及び／または１つ以上の大容量不揮発性コンピュータ読み出し可能な記憶媒体（例えば、ハードディスク、フラッシュメモリなど）を含む、システムメモリ９０４と、１つ以上のディスケット、光記憶媒体（例えば、フラッシュメモリ、サムドライブ、ＵＳＢドングル、コンパクトディスク、ＤＶＤなど）、及び／または他のコンピュータ読み出し可能な記憶媒体を含む、リムーバブルメモリ９０８とインターフェースするための、ポート９０６と、１つ以上の通信技術を使用して、１つ以上のネットワーク接続１０２を介して他のシステムと通信する（例えば、１つ以上のクライアントシステム及び／またはリモートデータストアと通信する）ための、ネットワークインターフェース９１０と、ディスプレイ、及び／または例えばタッチスクリーン、キーボード、マウス、トラックパッド、及び同類のものなどの１つ以上の入力／出力デバイスを含むことができる、ユーザインターフェース９１６と、システム９００の要素を通信可能に連結するための、１つ以上のバス９３０とを含むことができる。
【０１５９】
いくつかの実施形態において、システム９００は、代替として、または加えて、安全な物理的及び／または仮想的なセキュリティ技法を利用することによって、システム９１４または他のエンティティのユーザによる改竄から保護する、ＳＰＵ９１４を含むことができる。ＳＰＵ９１４は、信用できる証明書及び／または鍵の管理、安全なゲノムデータの管理、並びに本明細書で開示されるシステム及び方法の他の態様などの、機密動作のセキュリティを強化するのを補助する。ある特定の実施形態において、ＳＰＵ９１４は、論理的に安全な処理ドメインにおいて動作することができ、また、機密情報を保護し、該機密情報に対して動作するように構成することができる。いくつかの実施形態において、ＳＰＵ９１４は、ＳＰＵ９１４が安全な動作を行うことを可能にするように構成される実行可能な命令またはプログラムを記憶する、内部メモリを含むことができる。更なる実施形態において、ＳＰＵ９１４は、本明細書で説明されるようにゲノムデータに対して計算を行うための保護された実行環境を実施するために使用することができる。例えば、いくつかの実施形態では、同一出願人による米国特許第７，４３０，５８５号（「５８５号特許」）及び／または米国特許第５，８９２，９００号（「９００号特許」）において説明されているように、ＳＰＵ９１４を使用することができる。
【０１６０】
システム９００の動作は、概して、システムメモリ９０４（及び／またはリムーバブルメモリ９０８などの他の非一時的なコンピュータ読み出し可能な媒体）に記憶されるソフトウェア命令及びプログラムを実行することによって動作する、処理ユニット９０２及び／またはＳＰＵ９１４によって制御することができる。システムメモリ９０４は、システム９００の動作を制御するための様々な実行可能なプログラムまたはモジュールを記憶することができる。例えば、システムメモリ９０４は、システムハードウェアリソースを少なくとも部分的に管理し、協働させることができ、また、様々なアプリケーションを実行するための共通のサービスを提供することができる、オペレーティングシステム（「ＯＳ」）９１８と、ゲノムデータ及び／または他の機密データと関連するポリシーを管理及び／または施行するように構成される、ポリシー管理モジュール９２０とを含むことができる。システムメモリ９０４は、限定されることなく、システム９００内の、及び該システムによる通信を部分的に可能にするように構成される、通信ソフトウェア９２２、計算９２４（例えば、いくつかの状況において信用できない場合があるゲノムデータまたは同類のものに対して動作するように構成されるプログラム、計算、及び／またはアプリケーション）、本明細書で開示される実施形態と一致する、仮想化及び／または別様には保護された及び／またはサンドボックス化実行環境及び／またはマシンの生成を実施するように構成される、仮想マシンモジュール９２６、開示される信用管理プロセスの実施形態を実施するように構成される、信用管理モジュール９２８、開示される実施形態と一致する監査及び／またはアカウンティングプロセスを実施するように構成される、監査及びアカウンティングモジュール９３０、及び／またはローカルに記憶されたゲノムデータ９３２、を更に含むことができる。
【０１６１】
本明細書で開示されるシステム及び方法は、任意の特定のコンピュータ、電子制御ユニット、または他の装置に本質的に関連するものではなく、また、ハードウェア、ソフトウェア、及び／またはファームウェアの適切な組み合わせによって実現され得る。ソフトウェアの実現形態は、コンピュータシステムのプロセッサによって実行されたときに、実行可能な命令によって少なくとも部分的に定義される方法をコンピュータシステムに行わせることができる実行可能なコード／命令を備える、１つ以上のコンピュータプログラムを含み得る。コンピュータプログラムは、コンパイル型言語またはインタプリタ型言語を含む、任意の形式のプログラミング言語で記述することができ、また、スタンドアロンのプログラムとしての形式、またはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、若しくは他のユニットとしての形式を含む、任意の形式で展開することができる。更に、コンピュータプログラムは、１つのサイトで１つのコンピュータ上でまたは複数のコンピュータ上で実行するように展開するか、または複数のサイトにわたって分散させ、通信ネットワークによって相互接続することができる。ソフトウェアの実施形態は、コンピュータシステムのプロセッサによって実行されたときに、命令に従って方法をコンピュータシステムに行わせるように構成されるコンピュータプログラム及び命令を記憶するように構成される非一時的な記憶媒体を備える、コンピュータプログラム製品として実現され得る。ある特定の実施形態において、非一時的な記憶媒体は、プロセッサ読み出し可能な命令を非一時的な記憶媒体に記憶することができる、任意の形式をとり得る。非一時的な記憶媒体は、コンパクトディスク、デジタルビデオディスク、磁気テープ、磁気ディスク、フラッシュメモリ、集積回路、または、任意の他の非一時的なメモリデバイスによって具現化され得る。
【０１６２】
上述のものは、明確にする目的でいくらか詳細に説明されているが、その原理から逸脱することなく、特定の変更及び修正が行われ得ることが明らかになるであろう。本明細書で説明されるシステム及び方法の双方を実現する数多くの代替の方法があることに留意されたい。故に、本実施形態は、限定的なものではなく例示的なものであるとみなされるべきであり、また本発明は、本明細書に与えられる詳細に限定されるものではなく、添付の特許請求の範囲及びその均等物の範囲内で変更され得るものである。
【図１】
0006541688.tif 000002
【図２】
0006541688.tif 000003
【図３】
0006541688.tif 000004
【図４】
0006541688.tif 000005
【図５】
0006541688.tif 000006
【図６】
0006541688.tif 000007
【図７Ａ】
0006541688.tif 000008
【図７Ｂ】
0006541688.tif 000009
【図８】
0006541688.tif 000010
【図９】
0006541688.tif 000011
【図１０】
0006541688.tif 000012