(57)【要約】アプリケーションに対してコンテンツを管理するための技術を説明する。１つ又は複数の実装において、コンテンツ管理ポリシーの第１のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されるアプリケーションの第１の部分に対して実施し、コンテンツ管理ポリシーの第２のセットを、コンピューティングデバイスのコード要素を呼び出すことが許可されないアプリケーションの第２の部分に対して実施する。さらに、コンテンツにコンテンツ管理ポリシーの第１のセットを適用するか、コンテンツ管理ポリシーの第２のセットを適用するかの判断を、アプリケーションのどの部分がコンテンツを要求しているかに基づいて行う。
2014525638.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスによる実行に応答して、該コンピューティングデバイスに、
コンテンツ管理ポリシーの第１のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されるアプリケーションの第１の部分に対して実施させ、コンテンツ管理ポリシーの第２のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されないアプリケーションの第２の部分に対して実施させ、
コンテンツに前記コンテンツ管理ポリシーの第１のセットを適用するか前記コンテンツ管理ポリシーの第２のセットを適用するかを、前記アプリケーションのどの部分が前記コンテンツを要求しているかに基づいて決定させる
命令を備えた、１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項２】
前記コード要素は、関数、サブルーチン、メソッド、パラメータ、プロパティ又はインタフェースのうちの１つ又は複数を含む、請求項１に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項３】
前記コンテンツ管理ポリシーの第１のセットは、前記コンテンツが信頼できない場合、前記コンテンツは実行可能コードを含むことができないことを指定する、請求項１に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項４】
前記コンテンツ管理ポリシーの第１のセットは、前記コンテンツが信頼できないコンテンツを含み、前記アプリケーションの前記第１の部分が、前記信頼できないコンテンツを前記コード要素の１つに渡されることを要求している場合、前記信頼できないコンテンツが前記コード要素の１つに渡される前に前記信頼できないコンテンツが安全であるかどうかを判断するのに検査されるべきことを指定する、請求項１に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項５】
前記コンテンツ管理ポリシーの第１のセットは、前記コンピューティングデバイスからローカルで取り出されるコンテンツは、特定の文字エンコードフォーマットを使用してエンコードされるべきこと、又は前記コンテンツは解析を回避されることになることを指定する、請求項１に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項６】
コンピューティングデバイス上で実行しているアプリケーションが、前記コンピューティングデバイスのコード要素にコンテンツを渡すよう求める要求を含んでいることを検出するステップと、
前記検出に応答して、前記要求が前記コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であるかどうかに基づいて、前記要求を許可するかどうかを判断するステップと
を含む、方法。
【請求項７】
前記コード要素は、前記コード要素が前記コンピューティングデバイスの特定の機能へのアクセスが可能であることに基づいて、予め指定されたコード要素のグループの一部として含まれる、請求項６に記載の方法。
【請求項８】
前記要求が、前記コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であると判断したことに応答して、前記コンテンツを前記コード要素に渡してよいかどうかを、前記コンテンツのソース及び前記コンテンツのコンテンツタイプに基づいて確認する、請求項６に記載の方法。
【請求項９】
前記コンテンツのソースが前記コンピューティングデバイスからリモートであり、前記コンテンツが実行可能コードを含んでいるとの判断に基づいて、前記コンテンツを前記コード要素に渡さないことを確認するステップを更に含む、請求項８に記載の方法。
【請求項１０】
前記要求が、前記コード要素を呼び出すことを許可されないアプリケーションの部分から要求であるとの判断に応答して、前記コンテンツが前記コード要素に渡されるのを回避するステップを更に含む、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションのためにコンテンツを管理（ｈａｎｄｌｉｎｇ）することに関する。
【背景技術】
【０００２】
今日のコンピュータユーザは、ビデオコンテンツ、オーディオコンテンツ及びテキストコンテンツなど、様々な種類のコンテンツへのアクセスを有する。しかしながら、必ずしも全てのコンテンツがコンピューティングデバイスデバイス上で使用するのに安全なわけではない。例えば一部のコンテンツは、悪意のある実行コード（例えばマルウェア）を含む可能性があり、そのような悪意のある実行コードが、実行されると、コンピューティングデバイスの特定の部分及び／又はユーザに関するプライベートの情報に対する不正なアクセスを獲得する可能性がある。
【０００３】
悪意のある実行コードが、そのような不正なアクセスを獲得するのを防ぐための技術は存在するが、これらの技術は典型的に、今日のコンテンツ開発者の望みを考慮していない。例えばコンテンツ開発者は、コンピューティングデバイスを介してリモートコンテンツ（例えばウェブコンテンツ）にアクセスすることができるアプリケーションを開発することがある。現在の技術は典型的に、リモートコンテンツがそのコンピューティングデバイスへのアクセスを許可されるかどうかを判定する際に、そのようなリモートコンテンツがそのコンピューティングデバイスを介してどのように処理されるかは考慮しないであろう。さらに、現在の技術では典型的に、コンテンツ開発者は、リモートコンテンツの特定のインスタンスがコンピューティングデバイスへのアクセスを許可されるべきことを指定することができない。
【発明の概要】
【０００４】
アプリケーションに対してコンテンツを管理するための技術を説明する。１つ又は複数の実装において、コンテンツ管理ポリシーの第１のセットを、前記コンピューティングデバイスのコード要素を呼び出すことが許可されるアプリケーションの第１の部分に対して実施し、コンテンツ管理ポリシーの第２のセットを、コンピューティングデバイスのコード要素を呼び出すことが許可されないアプリケーションの第２の部分に対して実施する。コンテンツにコンテンツ管理ポリシーの第１のセットを適用するか、コンテンツ管理ポリシーの第２のセットを適用するかの判断が、アプリケーションのどの部分がコンテンツを要求しているかに基づいて行われる。
【０００５】
１つ又は複数の実装において、コンピューティングデバイス上で実行しているアプリケーションが、コンピューティングデバイスのコード要素にコンテンツを渡すよう求める要求を含んでいることを検出する。この検出に応答して、上記要求が、コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であるかどうかに基づいて、要求を許可するかどうかの判断を行う。
【０００６】
１つ又は複数の実装において、コンテンツをコード要素に渡すことを求めるアプリケーションからの要求が、コード要素を呼び出すことを許可されたアプリケーションの部分からの要求であるとの判断が、コンピューティングデバイスにおいて行われる。このコンテンツをコード要素に渡してよいかどうかを、コンテンツのソースと、コンテンツのコンテンツタイプとの少なくとも一方に基づいて確認する。
【０００７】
この発明の概要における記載は、以下の発明を実施するための形態の項においてさらに説明される概念の選択を簡略化した形式で紹介するために提供される。この発明の概要における記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を確定する際の助けとして用いられるようにも意図されていない。
【０００８】
以下の詳細な説明は、添付の図面を参照して記述される。図面において、参照符号の左端の桁は、その参照番号が最初に現れた図面を特定する番号である。説明及び図面における異なる例での同じ参照番号の使用は、同様又は同じ項目を示す。
【図面の簡単な説明】
【０００９】
【図１】アプリケーションに対するコンテンツの管理のための技術を用いるように動作可能な例示的実装における環境を示す図である。
【図２】コンテンツ管理ポリシーが実施される、例示的な実装のプロシージャを示すフロー図である。
【図３】コンテンツをコード要素に渡す要求を許可するかどうかの判断を行う、例示的な実装のプロシージャを示すフロー図である。
【図４】コンテンツをコード要素に渡してもよいかどうかの判断を行う、例示的な実装のプロシージャを示すフロー図である。
【図５】図１及び図６を参照して説明されるコンピューティングデバイスを含む例示的なシステムを示す図である。
【図６】本明細書で説明される技術の実施形態を実装するために、図１及び５を参照して説明される任意のタイプのポータブルデバイス及び／又はコンピュータデバイスとして実装することができる例示的なデバイスの様々なコンポーネントを示す図である。
【発明を実施するための形態】
【００１０】
＜概要＞
コンピューティングデバイスは、様々な種類のソースから様々な種類のコンテンツへのアクセスを有することがある。しかしながら、一部のソースは未知である可能性があり、したがってそのようなソースからのコンテンツは信頼できない可能性がある。さらに一部のタイプのコンテンツは、本質的にセキュリティリスクに関連付けられ、したがってそのようなコンテンツがコンピューティングデバイスの特定の部分にアクセスすることを許可する前に注意を払うべきである。
【００１１】
ある特定のシナリオにおいて、ユーザ（例えばアプリケーションの開発者）が、未知のソースからのコンテンツへアクセスすることを望む可能性がある。例えばユーザは、あるコンピューティングデバイス上で実行されるときに、そのコンピューティングデバイスからリモートのリソースから、及び／又はそのコンピューティングデバイスに対して未知のリソースからコンテンツにアクセスすることを試みるアプリケーションを書く可能性がある。そのようなコンテンツは、テキストコンテンツ、ピクチャ、ビデオ、オーディオ等を含んでよい。本明細書で検討される技術は、安全でないコンテンツが、コンピューティングデバイスの機密部分及び／又は機能への不正なアクセスを獲得することを回避しつつ、コンテンツがアプリケーションによって利用されることを可能にする。
【００１２】
したがって、アプリケーションに対してコンテンツを管理するための技術を説明する。１つ又は複数の実装において、悪意のあるコード（例えばマルウェア）がコンピューティングデバイスの機密部分にアクセスし得る可能性を低減する技術を用いることができる。これは、アプリケーションの機能をローカル区画（ｌｏｃａｌ  ｃｏｍｐａｒｔｍｅｎｔ）とリモート区画（ｒｅｍｏｔｅ  ｃｏｍｐａｒｔｍｅｎｔ）とに分離することなど、様々な方法で実施される可能性がある。諸実施形態において、システムレベルのアプリケーションプログラミングインタフェース（ＡＰＩ）など、ローカル区画に関連付けられた機能は、アプリケーションがコンピューティングデバイスの機密部分にアクセスできるようにする。したがって、コンテンツの制約がローカル区画に対して実施され、安全でないコンテンツがコンピューティングデバイスの機密部分へのアクセスを獲得することを妨げることができる。さらに、リモート区画に関連付けられた機能は、コンピューティングデバイスの機密部分にアクセスすることができないので、信頼性できない及び／又は安全でないコンテンツへのアクセスを許可することができる。
【００１３】
以下の議論では、最初に、本明細書で説明されるアプリケーションに対するコンテンツの管理の技術を用いるように動作することができる、例示的な環境を説明する。次に、安全でないコンテンツがコンピューティングデバイスの機密部分にアクセスするのを防ぐ、例示的なコンテンツ管理ポリシーを説明する。アプリケーションに対するコンテンツ管理のための技術に関する例示的なプロシージャがその後に説明される。このプロシージャは、例示環境だけでなく他の環境においても用いることができる。したがって、例示環境は例示的なプロシージャを実行することには限定されない。同様に例示的なプロシージャも例示環境における実装に限定されない。
【００１４】
＜例示環境＞
図１は、アプリケーションに対するコンテンツの管理のための技術を用いるように動作可能な例示的実装における環境１００を示す図である。環境１００は、１つ又複数のプロセッサ１０４と、１つ又は複数のコンピュータ読取可能記憶媒体１０６と、コンピュータ読取可能記憶媒体１０６上に存在し、プロセッサ１０４によって実行可能な１つ又は複数のアプリケーション１０８とを有するコンピューティングデバイス１０２を含む。コンピューティングデバイス１０２は、限定ではなく例として、デスクトップコンピュータ、ポータブルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）のようなハンドヘルドコンピュータ、モバイルフォン及びタブレットコンピュータ等のような、任意の適切なコンピューティングデバイスとして具現化され得る。コンピューティングデバイス１０２の異なる様々な例の１つが、図５及び図６に示されており、これは以下で説明される。
【００１５】
図１のコンピューティングデバイス１０２は、例えばウェブブラウザなどのブラウザ１１０も含むように図示されており、ブラウザ１１０は、ネットワーク１１２を介してナビゲートするように構成される機能を表す。ネットワーク１１２はインターネットとして図示されているが、ネットワークは様々な種類の構成を想定することがある。例えばネットワーク１１２は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、公衆電話網、イントラネット等を含むことがある。さらに、単一のネットワーク１１２が示されているが、ネットワーク１１２は複数のネットワークを含むように構成されてもよい。
【００１６】
ブラウザ１１０は、例えばネットワーク１１２を介してナビゲートして、１つ又は複数のウェブリソース１１４から取得可能なコンテンツと対話し、さらに、例えばダウンロードとアップロードを実行するなど、データを１つ又は複数のウェブリソース１４に通信するように構成されてもよい。ウェブリソース１１４は、ネットワーク１１２を介してアクセス可能なコンテンツを提供するように構成される任意の適切なコンピューティングリソースを含むことができる。そのようなコンテンツの例には、ウェブページ、テキストコンテンツ、ビデオ及びオーディオ等が含まれる。
【００１７】
アプリケーション１０８の１つ又は複数は、ネットワーク１１２に、例えば該アプリケーション自身が直接及び／又はブラウザ１１０を通じてアクセスするように構成されてもよい。例えばアプリケーション１０８の１つ又は複数は、ウェブリソース１１４の１つ又は複数にアクセスして、コンテンツを取り出し、及び／又はアップロードするように構成される。したがって、アプリケーション１０８は、ネットワーク１１２への直接アクセス又は間接的なアクセスを含む様々な機能のために構成されてもよい。例えばアプリケーション１０８は、該アプリケーション１０８によってローカルに利用可能な構成設定及び他のデータであって、別のコンピューティングデバイス上で実行されるアプリケーションと同期される構成設定及び他のデータを含むことができる。このように、これらの構成設定は上記デバイスによって共有されてもよい。様々な他の例も考えられる。したがって、コンピューティングデバイス１０２は、様々な異なるソースからのコンテンツと様々な方法で対話することがある。
【００１８】
さらに、コンピューティングデバイス１０２の一部として、オペレーティングシステム１１６が図示されている。オペレーティングシステム１１６は、コンピューティングデバイス１０２のリソースを管理し、及びコンピューティングデバイス１０２の機能部分に対するアクセスを提供する機能を表す。コンピューティングデバイス１０２は、アプリケーションマネージャモジュール１１８も含むように図示されている。アプリケーションマネージャモジュール１１８は、アプリケーション１０８のアクティビティをモニタリングして区別するコンピューティングデバイス１０２の機能を表す。１つ又は複数の実装において、アプリケーションマネージャモジュール１１８は、アプリケーション１０８の特定のオペレーションを、そのオペレーションが信頼できるコンテンツを使用するものか、信頼できないコンテンツを使用するものかに基づいて、許可するか、許可しないように構成される。
【００１９】
アプリケーション１０８の一部として、信頼できるコンテンツ１２０が図示されている。信頼できるコンテンツ１２０は、コンピューティングデバイス１０２に対して、信頼され得るコンテンツとして、及び／又は信頼できるソースから受信したコンテンツとして知られるデータを表している。さらに、ウェブリソース１１４は、信頼できないコンテンツ１２２を含むように図示されており、信頼できないコンテンツ１２２は、コンテンツのソース及び／又はコンテンツの特性に基づいて信頼することができないコンテンツを表す。１つ又は複数の実装において、アプリケーションマネージャモジュール１１８は、コンテンツを信頼してよいかどうかをコンテンツのソースに基づいて判断するように構成されることがある。例えばコンテンツを、コンピューティングデバイス１０２に対して内部にあるソースから（例えば信頼性できるコンテンツ１２０から）受信する場合、アプリケーションマネージャモジュール１１８は、そのコンテンツは信頼してよいと判定する可能性がある。さらに、コンテンツを、コンピューティングデバイス１０２の外部及び／又は未知のソースから受信する場合、アプリケーションマネージャモジュール１１８はそのコンテンツは信頼できないと判定する可能性がある。
【００２０】
さらに、アプリケーション１０８の一部として、ローカル区画１２４及びリモート区画１２６が図示されている。諸実装において、ローカル区画１２４は、アプリケーション１０８のうち、コンピューティングデバイス１０２の特定の機密機能にアクセスすることが許可される部分を表す。例えばローカル区画１２４は、実行されると、一般にはコンピューティングデバイス１０２の外部にあるエンティティによるアクセスから保護されるコンピューティングデバイス１０２の機能及び／又は部分を呼び出すか、この機能及び／又は部分にアクセスするのが許可され得るアプリケーションコードを含む。リモート区画１２６は、アプリケーション１０８のうち、コンピューティングデバイス１０２の特定の機密機能へのアクセスが許可されない部分を表す。例えばリモート区画１２６に含まれるアプリケーションコードは、実行されるとき、コンピューティングデバイス１０２の機密機能にアクセスすることを妨げられる。
【００２１】
さらに、アプリケーションマネージャモジュール１１８の一部として、許可済みコード要素１２８及びフィルタ済みコード要素１３０が図示されている。許可済みコード要素１２８及びフィルタ済みコード要素１３０は、アプリケーション１０８によってアクセスされてコンピューティングデバイス１０２を介して１つ又は複数のタスクを実行することができる、コンピューティングデバイス１０２の機能の識別子を表す。コード要素の例は、関数、サブルーチン、メソッド、パラメータ、プロパティ、インタフェース（例えばアプリケーションプログラミングインタフェース（ＡＰＩ））等である。１つ又は複数の実装において、許可済みコード要素１２８及び／又はフィルタ済みコード要素１３０によって識別される特定のコード要素は、コンピューティングデバイス１０２の機密部分、例えばオペレーティングシステム１１６によって提供される機能、ユーザコンテンツファイル、プライベートユーザ情報などへのアクセスを提供することができる。許可済みコード要素１２８及びフィルタ済みコード要素１３０の一部として列挙した例は、単なる例示のために提示されるものであり、コンピューティングデバイス１０２の任意の機能及び／又は部分を、許可済みコード要素１２８及び／又はフィルタ済みコード要素１３０の一部として含むことができることが認識されよう。
【００２２】
コンピューティングデバイス１０２において利用可能なコード要素を、許可済みコード要素１２８とフィルタ済みコード要素１３０に分けることは、アプリケーション１０８が、不注意によりコンピューティングデバイス１０２の機密部分が安全でないコンテンツに公開されるのを回避する助けとなる。例えば許可済みコード要素１２８は、一般にコンピューティングデバイス１０２を介して様々なオペレーションを実行するのに制限のないローカル区画１２４によって呼び出すことができるコード要素を含む。フィルタ済みコード要素１３０へのアクセスは、安全でないコンテンツが該フィルタ済みコード要素１３０にアクセスするのを可能にすることを回避するコンテンツ検査（ｃｏｎｔｅｎｔ  ｉｎｓｐｅｃｔｉｏｎ）の対象となる。例えばアプリケーションが、フィルタ済みコード要素１３０の１つを呼び出してコンテンツを処理するとき、該コンテンツを検査し、該コンテンツをフィルタ済みコード要素１３０の１つに渡すのを許可する前に安全であることを確かめる。
【００２３】
アプリケーションマネージャモジュール１１８は、コード要素がフィルタ済みコード要素１３０の一部として含まれるべきどうかを決定するための基準を含むことができる。例えばアプリケーションマネージャモジュール１１８は、特定のコード要素により、コンテンツがコンピューティングデバイス１０２のドキュメントオブジェクトモデル（ＤＯＭ：Document  Object  Model）機能（例えば、ブラウザ１１０に関連付けられたハイパーテキストマークアップ言語（ＨＴＭＬ）ＤＯＭ機能）にアクセス及び／又は操作することが可能になる場合、その特定のコードがフィルタ済みコード要素１３０の一部として含まれるべきことを指定することができる。
【００２４】
諸実装において、リモート区画１２６は、許可済みコード要素１２８又はフィルタ済みコード要素１３９へのアクセスを許可されない。これにより、リモート区画１２６からアクセスされる安全でないコンテンツが、コンピューティングデバイス１０２の機密部分に許可済みコード要素１２８又はフィルタ済みコード要素１３０のいずれかを介してアクセスすることを回避することができる。
【００２５】
図示された例においてコンピューティングデバイス１０２は、コンテンツ検査モジュール１３２も含むように図示されている。コンテンツ検査モジュール１３２は、コンテンツが、例えばアプリケーション１０８及び／又はブラウザ１１０を介して、コンピューティングデバイス１０２によって要求及び／又は取り出されることを検査する、コンピューティングデバイス１０２の機能を表す。１つ又は複数の実装において、コンテンツ検査モジュール１３２は、コンテンツがフィルタ済みコード要素１３０の１つに渡されることを許可する前に、コンテンツを検査して該コンテンツが安全であるかどうかを判断するように構成される。
【００２６】
コンテンツ検査モジュール１３２は、コンテンツ検査ポリシー１３４を含む。コンテンツ検査ポリシー１３４は、コンテンツ検査モジュール１３２によって、コンテンツ（例えば信頼できるコンテンツ１２０及び／又は信頼できないコンテンツ１２２）が安全であるか安全でないかを判断するのに使用されることがある。例えば、コンテンツ検査ポリシー１３４は、コンテンツが１つ又は複数の基準に合致する場合、そのコンテンツは安全でないと見なされることを指定してもよい。諸実装において、コンテンツ検査ポリシー１３４は、信頼できないコンテンツが、コンピューティングデバイス１０２によって及び／又はコンピューティングデバイス１０２において実行され得る実行コード（例えばスクリプト）を含む場合、その信頼できないコンテンツは安全でないと指定してもよい。そのような実行可能コードは、実行されると、オペレーティングシステム１１６の機能、コンピューティングデバイス１０２のユーザに関連付けられたプライベート情報及び同等のものなど、コンピューティングデバイス１０２の一部に対する不正なアクセスを可能にする可能性がある。
【００２７】
本明細書では、諸実装を、実行可能コードを含む安全でないコンテンツに関して検討するが、コンテンツ検査ポリシー１３４は、コンテンツが安全であるか安全でないかを判断するのに使用され得る様々な異なる基準及びフィルタを含むことができる。例えばコンテンツ検査モジュール１３４が、コンテンツが安全でないかどうかを判断するのに使用し得る他の基準は、安全でないと見なされる特定のウェブサイト、コンテンツタイプ、ファイルタイプ、ウェブドメイン及び同等のものの指示を含む。
【００２８】
コンテンツ検査モジュール１３２が、コンテンツが安全でないと判断する場合、この安全でないコンテンツを、フィルタ済みコード要素１３０の特定のコード要素に渡すことができない。反対に、コンテンツが安全であると判断される場合、コンテンツは特定のコード要素に渡されてよい。
【００２９】
一般に、本明細書で説明される機能のいずれかを、ソフトウェア、ファームウェア、ハードウェア（例えば固定の論理回路）又はこれらの実装の組み合わせを使用して実装することができる。本明細書で使用されるとき「モジュール」「機能（関数）」、「ロジック」という用語は、一般にソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ソフトウェア実装の場合、モジュール、機能又はロジックは、プロセッサ（例えば１つ又は複数のＣＰＵ）において実行されると、指定されたタスクを実行するプログラムコードを表す。プログラムコードを、１つ又は複数のコンピュータ読取可能メモリデバイスに格納することができる。以下で説明される技術の特徴はプラットフォーム独立であり、これは、これらの技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実行されてよいことを意味する。
【００３０】
例えばコンピューティングデバイス１０２は、例えばプロセッサ、機能ブロックなど、コンピューティングデバイス１０２のハードウェアにオペレーションを実行させるエンティティ（例えばソフトウェア）を含んでもよい。例えばコンピューティングデバイス１０２は、該コンピューティングデバイスに、より具体的にはコンピューティングデバイス１０２のハードウェアにオペレーションを実行させる命令を保持するように構成され得るコンピュータ読取可能媒体を含んでもよい。したがって、命令は、オペレーションを実行するようハードウェアを構成するように機能し、これにより、ハードウェアは機能を実行するように変換されることとなる。命令は、コンピュータ読取可能媒体によって様々な異なる構成によりコンピューティングデバイス１０２に提供されてもよい。
【００３１】
コンピュータ読取可能媒体の１つの構成が信号担持媒体であり、この場合、コンピュータ読取可能媒体は、命令を、ネットワークなどを介してコンピューティングデバイスのハードウェアに伝送するように構成される。コンピュータ読取可能媒体は、コンピュータ読取可能記憶媒体として構成されてもよく、この場合は信号担持媒体ではない。コンピュータ読取可能記憶媒体の例には、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、光ディスク、フラッシュメモリ、ハードディスクメモリ、並びに磁気、光及び命令や他のデータを格納する他の技術を使用し得る他のメモリデバイスが含まれる。
【００３２】
本明細書で説明される技術が動作し得る例示的な環境について説明してきたが、１つ又は複数の実施形態に従って、ローカル区画１２４及びリモート区画１２６のためのいくつかの例示的なコンテンツ管理ポリシーの考察を検討する。
【００３３】
＜ローカル区画ポリシー＞
上述のように、ローカル区画１２４は、コンピューティングデバイス１０２のある特定の機密機能へアクセスするのを許可されるアプリケーション１０８の部分を表す。例えばローカル区画１２４は、実行されると、例えばコンテンツを処理するのに使用される、許可済みコード要素１２８及びフィルタ済み要素１３０で識別されるコード要素をコールすることができるアプリケーション１０８の実行可能コードを含む。ローカル区画１２４のプロパティについては、下記で１つ又は複数の実施形態に従って検討する。
【００３４】
＜ローカル区画識別＞
諸実装において、ローカル区画１２４の一部として含まれるコンテンツは、ローカル区画１２４に固有のユニフォームリソース識別子（ＵＲＩ）スキーマを使用して宣言される。例えばローカル区画１２４の一部として含まれるコンテンツを、「local-compartment://content」などのＵＲＩを使用して識別することができる。（例えばアプリケーションマネージャ１１８及び／又はコンテンツ検査モジュール１３２によって）コンテンツがこのＵＲＩを使用して参照されていると決定されると、コンテンツのソースがローカル区画１２４に対して知られることとなり、ローカル区画１２４に固有のプロパティがコンテンツに適用されることとなる。ローカル区画１２４に固有のＵＲＩスキーマが存在しないと、コンテンツは、信頼できないものとして扱われるか、及び／又はリモート区画１２６に関連付けられるものとして扱われることとなる。
【００３５】
＜リモート実行可能コード＞
ローカル区画１２４は、信頼できるコンテンツ１２０及び／又はコンピューティングデバイス１０２の外部にあるソースから取り出される実行可能コード（例えばスクリプト）への参照を含むことができない。例えば、ローカル区画１２４に関連付けられたコンテンツポリシーは、ローカル区画１２４に含まれるコンテンツが、信頼できるコンテンツ１２０の外部にある実行可能コンテンツを参照することができないことを指定してもよい。そのような許可されない参照の一例は、スクリプトコンテンツを参照するユニフォームリソースロケータ（ＵＲＬ）である。しかしながら、ローカル区画１２４は、信頼できるコンテンツ１２０の一部として含まれる実行可能コンテンツを参照してよい。
【００３６】
＜許可済みコード要素へのアクセス＞
ローカル区画１２４は、許可済みコード要素１２８のコード要素を呼び出すことを許可される。
【００３７】
＜フィルタ済みコード要素へのアクセス＞
ローカル区画１２４によって要求され、フィルタ済みコード要素１３０のコード要素に渡されるコンテンツは、該コンテンツがコード要素に渡される前に安全であることをチェックするようフィルタリングされる。例えばフィルタ済みコード要素１３０のいずれか１つの対する呼び出しが、（例えば信頼できないコンテンツ１２２からの）コンテンツのインスタンスに対する参照を含むとき、該コンテンツは、コンテンツ検査モジュール１３２によってフィルタリングされる。コンテンツ検査モジュール１３２が、そのコンテンツは安全であると決定した場合、そのコンテンツはコード要素へ渡されるのを許可される。反対に、コンテンツが安全でないと決定される場合、そのコンテンツは、コード要素に渡されるのを回避される。
【００３８】
＜コンテンツソース＞
諸実装において、ローカル区画１２４は、信頼できるコンテンツ１２０の外部にあるソースから、ある特定のタイプのコンテンツにアクセスするのを妨げられる。例えばローカル区画１２４は、信頼できるコンテンツ１２０の外部にあるソースからのメディアコンテンツ（例えばビデオコンテンツ、イメージ、オーディオコンテンツ等）にアクセスすることを許可される可能性がある。しかしながら、ローカル区画１２４は、信頼できるコンテンツ１２０の外部にソースからの他のタイプのコンテンツ、例えばＨＴＭＬコンテンツ、スクリプトコンテンツ、カスケードスタイルシート（ＣＳＳ）コンテンツなどにアクセスすることを妨げられる可能性がある。これは、アプリケーションが、信頼できないソースからの悪意あるコンテンツ（例えば実行可能コード）に対する参照を含むことを回避することができる。
【００３９】
＜第三者ネイティブコード＞
諸実装において、アプリケーション１０８のうちのいずれか１つに関連付けられた第三者ネイティブコードをローカル区画１２４に格納してもよい。第三者ネイティブコードは、アプリケーション１０８のうちの１つによって使用されるが、アプリケーションの開発者によって書かれない実行可能コードを参照してもよい。しかしながら、そのような実装において、第三者ネイティブコードが、アプリケーションによって識別される、例えばアプリケーションのマニフェストの一部として宣言される。第三者ネイティブコードがアプリケーションによって宣言される場合、第三者ネイティブコードは、ローカル区画１２４から実行されるのを回避される可能性がある。
【００４０】
＜クロスドメイン要求＞
諸実装において、アプリケーション１０８は、ローカル区画１２４から、クロスドメインの拡張可能マークアップ言語（ＸＭＬ：extensible markup language）ハイパーテキスト伝送プロトコル（ｈｔｔｐ）要求を呼び出すことを許可される。例えばアプリケーション１０８は、コンピューティングデバイス１０２の外部にあるドメインに関連付けられた（例えばウェブサイトからの）メディアコンテンツにポイントするＵＲＬを含むことができる。
【００４１】
＜文字のエンコード＞
コンピューティングデバイス１０２の機密部分を守るために、文字エンコード制限をローカル区画１２４に対して実施することができる。諸実装において、文字のエンコードは、コンテンツデータに含まれる文字（例えば記号）がコンピューティングデバイス上で表現される方法を参照する。文字エンコードの例は、ユニバーサル文字セットトランスフォーメーションフォーマット（ＵＴＦ：Universal  Character  Set  Transformation  Format）を含む。特定のタイプの文字エンコードが（例えばマルウェア及び／又は第三者によって）操作され、コンピューティングデバイスの望まない性能及び／又コンピューティングデバイスの機密部分への不正なアクセスを招く可能性がある。したがって、ローカル区画１２４は、ＵＴＦ−８などの特定の許可された文字エンコードを使用するように制限されることが可能である。
【００４２】
コンテンツの特定の部分が、宣言型文字エンコードフォーマットを有しない場合、コンテンツを、許可された文字エンコードとして解析する試みを行うことができる。許可された文字エンコードを使用してコンテンツを解析することができる場合、該コンテンツをローカル区画１２４によって利用して、例えばコンテンツを出力することができる。許可された文字エンコードを使用してコンテンツを解析することができない場合、コンテンツが解析されるのを妨げるエラーを発生させることができる。さらにコンテンツの特定の部分が、許可された文字エンコードとは異なる宣言型文字エンコードを有する場合、コンテンツが解析されるのを妨げるか、及び／又は解析エラーが発生させることができる。
【００４３】
＜リモート区画ポリシー＞
上述のように、リモート区画１２６は、コンピューティングデバイス１０２の特定の機密機能にアクセスすることを許可されないアプリケーション１０８の部分を表す。例えばリモート区画１２６はアプリケーション１０８の実行可能コードを含み、該アプリケーション１０８の実行可能コードは、実行されるとき、許可済みコード要素１２８及びフィルタ済みコード要素１３０で識別されるコード要素をコールすることを許可されない。ウェブコンテンツを参照すると、そのようなコンテンツは、例えばブラウザ１１０などのウェブブラウザに関連付けられた同じリソース許可に基づいて、リモート区画において実行されることが可能である。リモート区画１２６の追加のプロパティは、下記で１つ又は複数の実施形態に従って検討する。
【００４４】
＜リモート区画識別＞
諸実装において、リモート区画１２６の一部として含まれるコンテンツは、リモート区画１２６に固有のユニフォームリソース識別子（ＵＲＩ）スキーマを使用して宣言される。例えばリモート区画１２６の一部として含まれるコンテンツを、「remote-compartment://content」などのＵＲＩを使用して識別することができる。コンテンツが、（例えばアプリケーションマネージャモジュール１１８及び／又はコンテンツ調査モジュール１３２によって）このＵＲＩを使用して参照されていると決定されると、コンテンツのソースがリモート区画１２６に知られることとなり、リモート区画１２６に固有のポリシーがコンテンツに適用されることとなる。さらに、「http://」及び「https://」などの他のＵＲＩスキーマを使用して参照されるコンテンツは、リモート区画１２６及び／又は信頼できないソースに関連付けられているものとして扱われることになる。
【００４５】
＜リモート実行可能コード＞
諸実装において、リモート区画１２６は、例えば信頼できるコンテンツ１２０及び／又は信頼できないコンテンツ１２２など、信頼できるソース及び信頼できないソースからの実行可能コード（例えばスクリプト）への参照を含むことが許可される。リモート区画１２６はコンピューティングデバイス１０２の機密部分へのアクセスを有しないので、リモート区画１２６が信頼できない実行可能コードを参照できるようにしても、コンピューティングデバイス１０２の機密部分が信頼できない実行可能コードにさらされるリスクはない。
【００４６】
＜メディアコンテンツ＞
リモート区画１２６は、例えば信頼できるコンテンツ１２０及び／又は信頼できないコンテンツ１２２など、信頼できるソース及び信頼できないソースからのメディアコンテンツへの参照を含むことを許可される。リモート区画１２６はコンピューティングデバイス１０２の機密部分へのアクセスは有しないので、リモート区画１２６が信頼できないメディアコンテンツを参照できるようにしても、コンピューティングデバイス１０２の機密部分が信頼できないメディアコンテンツに含まれ得る安全でないコンテンツにさらされるリスクはない。
【００４７】
＜第三者ネイティブコード＞
諸実装において、リモート区画１２６は、第三者ネイティブコードを呼び出すこと、及び／又は参照することを許可されない。これにより、そのようなコードが、コンピューティングデバイスの機密部分への不正なアクセスを取得することを回避することができる。
【００４８】
＜クロスドメイン要求＞
諸実装において、リモート区画１２６は、クロスドメインＸＭＬ−ｈｔｔｐ要求を含むことを許可されない。これにより、安全でないコンテンツが、リモート区画１２６からアクセスされるウェブサイト又は他のネットワークリソースを介してアクセスされるのを回避することができる。
【００４９】
＜区画間の通信＞
諸実装において、リモート区画１２６とローカル区画１２４との間の通信を制御して、安全でないコンテンツが区画間で渡されるのを防ぐ。例えば単一の通信技術を使用して区画間の通信を可能にしてもよい。
【００５０】
そのような技術の一例は、例えばｐｏｓｔＭｅｓｓａｇｅ（）メソッドを使用してイベントジェネレータを第１のコンテンツ区画に追加することである。次いで、対応するイベントリスナを、例えばａｄｄＥｖｅｎｔＬｉｓｔｅｎｅｒ（）メソッドを使用して他の区画に追加してもよい。イベントが第１の区画によって生成されると、該イベントはイベントリスナによって他の区画において検出されて、区画間のメッセージの通信を容易にする。
【００５１】
一部のシナリオにおいて、ローカル区画１２４は、ｐｏｓｔＭｅｓｓａｇｅ（）メソッドを介してコンテンツを受信し、このコンテンツが、信頼できないソースから受信したものであると決定する可能性がある。このようなシナリオにおいて、本明細書で説明されるコンテンツフィルタリング技術を用いて、そのコンテンツが安全であるか、安全でないかを決定してもよい。さらに、コンテンツが安全でないと決定された場合、該コンテンツを拒否するか、削除することができる。
【００５２】
例示のコンテンツ管理ポリシーを説明してきたが、次に、１つ又は複数の実施形態によるいくつかの例示的なプロシージャの考察について検討する。
【００５３】
＜例示的なプロシージャ＞
以下の考察では、本明細書で説明されるシステム、デバイス及びコンテンツ管理ポリシーを使用して実装され得るコンテンツ管理技術を説明する。プロシージャのそれぞれの態様は、ハードウェア、ファームウェア又はソフトウェア、又はこれらの組み合わせで実装されてよい。プロシージャは、１つ又は複数のデバイスによって実行されるオペレーションを指定するブロックのセットとして示されているが、オペレーションを実行する順序は、必ずしも個々のブロックによって示されている順序に限定されない。さらに、１つ又は複数の実装にしたがって、特定のプロシージャについて示されているオペレーションを、異なるプロシージャのオペレーションと組み合わせてもよく、及び／又は交換してもよい。以下の考察の一部では、図１の環境１００への参照を行う。
【００５４】
図２は、コンテンツ管理ポリシーが実施される、例示的な実装のプロシージャ２００を示す。コンテンツ管理ポリシーの第１のセットが、コンピューティングデバイスのコード要素の呼び出しを許可されるアプリケーションの部分に対して実施され、コンテンツ管理ポリシーの第２のセットがコード要素の呼び出しを許可されないアプリケーションの部分に対して実施される（ブロック２０２）。コンテンツ管理ポリシーの例は、上記及び下記で説明される。コンテンツを参照しているアプリケーションの部分に基づいて、コンテンツにコンテンツ管理ポリシーの第１のセットを適用するか、又はコンテンツ管理ポリシーの第２のセットを適用するかの判断を行う（ブロック２０４）。例えば信頼できないコンテンツがローカル区画１２４によって要求される場合、コンテンツ管理ポリシーの第１のセットが適用される。しかしながら、信頼できないコンテンツがリモート区画１２６によって要求される場合、コンテンツ管理ポリシーの第２のセットが適用される。諸実装において、どの区画がコンテンツを要求しているかの判断は、コンテンツを参照するＵＲＩに基づいて行うことができる。
【００５５】
図３は、コンテンツをコード要素に渡す要求を許可するかどうかの判断を行う、例示的な実装のプロシージャ３００を示す。コンピューティングデバイス上で実行しているアプリケーションが、コンテンツをコンピューティングデバイスのコード要素に渡す要求を含むことを検出する（ブロック３０２）。例えばアプリケーション１０８のいずれか１つが、許可済みのコード要素１２８又はフィルタ済みコード要素１３０のいずれか１つにコンテンツのインスタンスが渡されることを要求することがある。
【００５６】
要求が許可されるかどうかの判断が、その要求が、コード要素を呼び出すことを許可されるアプリケーションの部分からの要求であるかどうかに基づいて行われる（ブロック３０４）。上記で検討した区画を参照して、アプリケーションマネージャ１１８は、その要求がローカル区画１２４からのものであるか、リモート区画１２６からのものであるか判断することができる。要求が、コード要素を呼び出すのを許可されていないアプリケーションの部分からのものである場合（「許可されない」の場合）、コンテンツがコード要素に渡されるのを回避する（ブロック３０６）。上述のように、リモート区画１２６はコンピューティングデバイス１０２のコード要素を呼び出すのを許可されない。したがって、リモート区画１２６からの要求であると決定された場合、その要求を拒否してよい。
【００５７】
要求が、コード要素を呼び出すことを許可されるアプリケーションの部分からのものである場合（「許可される」の場合）、そのコンテンツをコード要素に渡してよいかどうかが、コンテンツのソース及びコンテンツのコンテンツタイプに基づいて確認される（ブロック３０８）。上述のように、特定のシナリオにおいて、ローカル区画１２４はコンピューティングデバイス１０２のコード要素を呼び出すのを許可される。したがって、要求がローカル区画１２４からのものであると決定される場合、コンテンツは、該コンテンツがコード要素に渡されてもよいかどうかを判断するのに、更なる精査を受けることがある。コンテンツをコード要素に渡してもよいかどうかを判断する例示の方法を、以下でより詳細に検討する。
【００５８】
図４は、コンテンツをコード要素に渡してもよいかどうかの判断を行う、例示的な実装のプロシージャ４００を示す。諸実装において、プロシージャ４００は、上述のプロシージャ３００のブロック３０８を実装する、より詳細な技法を表している。コード要素に渡されるよう要求されたコンテンツのソースが、信頼できるソースであるか信頼できないソースであるかを確認する（ブロック４０２）。コンテンツのソースが信頼できないソースである場合（「信頼できない」の場合）、そのコンテンツのコンテンツタイプが、信頼できないソースから許可されるかどうかの判断を行う（ブロック４０４）。図１の環境１００を参照すると、コンテンツのソースは、信頼できないコンテンツ１２２であってよい。上述のように、コンテンツの特定のタイプ（例えば実行可能コード）は、信頼できないソースから取り出されてコード要素に渡されることが許可されない。コンテンツタイプが、信頼できないソースから許可されない場合（「いいえ」の場合）、そのコンテンツは、コード要素に渡されるのを回避される（ブロック４０６）。反対に、コンテンツタイプが、信頼できないソースから許可される場合（「はい」の場合）、プロシージャ４００は、以下で説明されるブロック４０８に進む。コンテンツの特定のタイプ（例えばメディアコンテンツ、フォーマットコンテンツ等）が、信頼できないソースから取り出してコード要素に渡されるのを許可される場合、諸実装において、そのコンテンツが安全であるかどうかの更なる検査の対象となる。
【００５９】
ブロック４０２に戻ると、コンテンツのソースが信頼できるソースである場合（「信頼できる」の場合）、又はブロック４０４においてコンテンツタイプが信頼できないソースから許可される場合（「はい」の場合）、コンテンツ要素が、許可済みコード要素であるか、フィルタ済みコード要素であるかの判断を行う（ブロック４０８）。コード要素が、許可済みコード要素である場合（「許可済み」の場合）、コンテンツは、コード要素に渡されるのを許可される（ブロック４１０）。諸実装において、許可済みコード要素とフィルタ済みコード要素との間の差異を、例えば許可済みコード要素のセットとフィルタ済みコード要素のセットとを予め指定することによって、明示的に定義することができる。あるいは、フィルタ済みコード要素のセットを予め指定し、特定のコード要素が、そのフィルタ済みコード要素のセットにおいて特定されていないことに基づいて、その特定のコード要素は許可済みコード要素であると暗黙的に決定することができる。コンテンツは、コード要素を使用して処理される（ブロック４１２）。例えばコンテンツを、プレゼンテーションのために、例えばウェブページ、ドキュメント等の一部として処理することができる。
【００６０】
ブロック４０８に戻ると、コード要素がフィルタ済みコード要素である場合（「フィルタ済み」の場合）、コンテンツを検査して、該コンテンツがコード要素に渡されるのに安全であるかどうかを確認する（ブロック４１４）。例えばコンテンツ検査モジュール１３２は、コンテンツ検査ポリシー１３４の１つ又は複数をコンテンツに適用して、そのコンテンツが安全であるか安全でないかを判断することができる。上述のように、実行可能コードを含むコンテンツは、フィルタ済みコード要素に渡すのに安全ではないと判断される可能性がある。加えて、安全なコンテンツには、イメージ、テキスト、オーディオ、ビデオ、プレゼンテーションデータ、静的なＨＴＭＬ等の静的なコンテンツが含まれる可能性がある。
【００６１】
代替的な実装において、コード要素に対するコールは、コンテンツ検査スキームから除外されてもよい。例えばコンピューティングデバイスは、コード要素に対するコールが、該コールに関連付けられたコンテンツをコンテンツ検査スキームから免除するとの指示を含むと判断する可能性がある。したがって、コンテンツを最初に検査して該コンテンツが安全でないかどうかを判断することなく、そのコンテンツを使用してコード要素を実行することができる。これにより、アプリケーションの開発者は、コンテンツが検査された場合に拒否され得る状況において、コンテンツ検査機構をバイパスすることができる。
【００６２】
ブロック４１４に戻ると、コンテンツが、コード要素に渡されるのには安全でないと判断された場合（「安全でない」の場合）、コンテンツを、コード要素に渡すことはできない（ブロック４０６）。コンテンツが、コード要素に渡されるのに安全であると判断された場合（「安全」の場合）、コンテンツは、コード要素に渡されるのを許可される（ブロック４１０）。上述のように、コンテンツはコード要素を使用して処理される（ブロック４１２）。
【００６３】
代替的な実装において、アプリケーションは、安全でないコンテンツが特定のコード要素に渡されるのを許可する前に、そのコンテンツが該コンテンツの安全でない態様を除去することによって浄化され得ることを指示することができる。例えばアプリケーション１０８は、そのコードで（例えば関数のコールにより）安全でないコンテンツがコンテンツ検査モジュール１３２に渡されるべきことを指定することができ、コンテンツ検査モジュール１３２は次いで、安全でない機能（例えば実行可能コード）をそのコンテンツから除去することができる。浄化されたコンテンツをその後、更なる処理のためにコンテンツ要素に渡すことができる。
＜例示的なシステム及びデバイス＞
図５は、図１を参照して説明したコンピューティングデバイス１０２を含む例示的なシステム５００を図示している。例示的なシステム５００は、アプリケーションをパーソナルコンピュータ（ＰＣ）、テレビジョンデバイス及び／又はモバイルデバイスにおいて実行するときにシームレスなユーザ経験のためのユビキタスな環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用し、ビデオゲームをプレイし、ビデオを見ている間などにあるデバイスから次のデバイスに遷移する際の共通のユーザ経験のために３つ全ての環境において実質的に同様に動作する。
【００６４】
例示的なシステム５００において、複数のデバイスが中央のコンピューティングデバイスを通じて相互接続される。中央コンピューティングデバイスは、これらの複数のデバイスに対してローカルであってもよく、あるいは複数のデバイスからリモートに配置されてもよい。一実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット又は他のデータリンクを通じて上記複数のデバイスに接続される、１つ又は複数のサーバコンピュータのクラウドであってよい。１つ又は複数の実施形態において、この相互接続アーキテクチャは、機能を複数のデバイスにわたって配信し、これらの複数のデバイスのユーザに共通のシームレスな経験を提供することを可能にする。複数のデバイスはそれぞれ、異なる物理的要件及び能力を有していてよく、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスに、該デバイスに対して調整されており、かつ全てのデバイスに対して共通の経験の配信を可能にする。一実施形態において、ターゲットデバイスのクラスが作成され、経験が、デバイスの全体のクラスに対して調整される。デバイスのクラスは、物理的特性、利用のタイプ、又はデバイスの他の特性によって定義されてもよい。
【００６５】
様々な実装において、コンピューティングデバイス１０２は、コンピュータ５０２、モバイル５０４及びテレビジョン５０６の使用について、様々な異なる構成としてもよい。これらの構成はそれぞれ、一般に異なる構成及び能力を有する可能性があるデバイスを含み、したがってコンピューティングデバイス１０２は、異なるデバイスクラスの１つ又は複数に従って構成されてもよい。例えばコンピューティングデバイス１０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ５０２クラスとして実装されてよい。
【００６６】
コンピューティングデバイス１０２はまた、モバイルフォン、ポータブル音楽プレイヤ、ポータブルゲームデバイス、タブレットコンピュータ、マルチスクリーンコンピュータ等のモバイルデバイスを含むデバイスのモバイル５０４のクラスとして実装されてもよい。コンピューティングデバイス１０２はまた、カジュアルな視聴環境において、一般により大きなスクリーンを有するか、このようなスクリーンに接続されるデバイスを含むデバイスのテレビジョン５０６のクラスとして実装されてもよい。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。本明細書で説明される技術は、コンピューティングデバイス１０２のこれらの様々な構成によってサポートされてよく、本明細書で説明される技術の特定の例に限定されない。
【００６７】
クラウド５０８は、コンテンツサービス５１２のためのプラットフォーム５１０を含む、及び／又は該プラットフォーム５１０を表す。プラットフォーム１０は、クラウド５０８のハードウェア（例えばサーバ）及びソフトウェアリソースの基礎となる機能を抽象化する。コンテンツサービス５１２は、コンピュータ処理がコンピューティングデバイス１０２からリモートのサーバ上で実行される間に用いることができるアプリケーション及び／又はデータを含んでもよい。コンテンツサービス５１２を、インターネット上で、及び／又は携帯電話網やＷｉ−Ｆｉ（登録商標）ネットワークなどの加入者ネットワークを介したサービスとして提供することができる。
【００６８】
プラットフォーム５１０は、リソース及び機能を抽象化して、コンピューティングデバイス１０２と他のコンピューティングデバイスを接続してもよい。プラットフォーム５１０は、リソースのスケーリングを抽象化して、対応するレベルのスケールを、プラットフォーム５１０を介して実装されるコンテンツサービス５１２について生じた需要に提供するように機能してもよい。したがって、相互接続されるデバイスの実施形態において、本明細書で説明された機能の実装を、システム５００を通じで分散させてもよい。例えば、機能をコンピューティングデバイス１０２上に部分的に実装するだけでなく、アプリケーション１０８、アプリケーションマネージャモジュール１１８及びコンテンツ検査モジュール１３２を包含するように示されているクラウド５０８の機能を抽象化するプラット５１０を介して実装してもよい。
【００６９】
図６は、例示的なデバイス６００の様々なコンポーネントを図示しており、例示的なデバイス６００は、図１及び５を参照して説明したような任意のタイプのコンピューティングデバイスとして実装され、本明細書で説明される技術の実施形態を実装することができる。デバイス６００は、デバイスデータ６０４（例えば、受信したデータ、受信しているデータ、放送用にスケジュールされたデータ、データのデータパケット等）の有線及び／又は無線の通信を可能にする通信デバイス６０２を含む。デバイスデータ６０４又は他のデバイスコンテンツは、デバイスの構成設定、デバイスに格納されたメディアコンテンツ、及び／又はデバイスのユーザに関連付けられた情報を含むことができる。デバイス６００に格納されたメディアコンテンツは、任意のタイプのオーディオ、ビデオ及び／又はイメージデータを含むことができる。デバイス６００は、１つ又は複数のデータ入力部６０６を含み、該データ入力部６０６を介して、ユーザ選択可能な入力、メッセージ、音楽、テレビメディアコンテンツ、録画されたビデオコンテンツ、並びに任意のコンテンツ及び／又はデータソースから受信した任意の他のタイプのオーディオ、ビデオ及び／又はイメージデータなど、任意のタイプのデータ、メディアコンテンツ及び／又は入力を受信することができる。
【００７０】
デバイス６００は、通信インタフェース６０８も含み、該通信インタフェース６０８は、シリアル及び／又はパラレルインタフェース、無線インタフェース、任意のタイプのネットワークインタフェース、モデムのうちのいずれか１つ又は複数として、及び任意の他のタイプの通信インタフェースとして実装することができる。通信インタフェース６０８は、デバイス６００と、他の電子的なコンピューティング通信デバイスがデータをデバイス６００に通信するための通信ネットワークとの間の接続及び／又は通信リンクを提供する。
【００７１】
デバイス６００は、１つ又は複数のプロセッサ６１０（例えばマイクロプロセッサ、コントローラ等）を含み、該プロセッサ６１０は、様々なコンピュータ実行可能命令を処理して、デバイス６００のオペレーションを制御し、そして本明細書で説明される技術の実施形態を実装する。あるいはまた、デバイス６００を、ハードウェア、ファームウェア、あるいは６１２で全体的に識別される処理及び制御回路と関連して実装される固定の論理回路のうちのいずれか１つ又はこれらの組み合わせで実装することができる。図示されていないが、デバイス６００は、該デバイス内の様々なコンポーネントを結合するシステムバス又はデータ転送システムを含むことができる。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は、様々なバスアーキテクチャのいずれかを用いるプロセッサ若しくはローカルバスなどの異なるバス構造のうちのいずれか１つ又は組み合わせを含むことができる。
【００７２】
デバイス６００は、１つ又は複数のメモリコンポーネントなどのコンピュータ読取可能媒体６１４も含み、この媒体の例には、ランダムアクセスメモリ（ＲＡＭ）、非揮発性メモリ（例えば読取専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）及びディスク記憶装置が含まれる。ディスク記憶装置は、ハードディスクドライブ、記録可能及び／又は再書き込み可能コンパクトディスク（ＣＤ、任意のタイプのデジタル多用途ディスク（ＤＶＤ）及び同等のものなど、任意のタイプの磁気又は光記憶装置として実装されてよい。デバイス６００は大容量記憶メディアデバイス６１６も含むことができる。
【００７３】
コンピュータ読取可能媒体６１４は、データ記憶機構を提供して、デバイスデータ６０４、並びに様々なアプリケーション６１８及びデバイス６００の動作の態様に関連する任意の他のタイプの情報及び／又はデータを格納する。例えばオペレーティングシステム６２０を、コンピュータ読取可能媒体６１４によりコンピュータアプリケーションとして保持することができ、プロセッサ６１０において実行することができる。デバイスアプリケーション６１８は、デバイスマネージャ（例えばコントロールアプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスにネイティブなコード、特定のデバイスのためのハードウェア抽象レイヤ等）を含むことができる。デバイスアプリケーション６１８は、本明細書で説明される技術の実施形態を実装する任意のシステムコンポーネント又はモジュールも含む。
【００７４】
この例では、デバイスアプリケーション６１８は、ソフトウェアモジュール及び／又はコンピュータアプリケーションとして示されるインタフェースアプリケーション６２２及び入出力モジュール６２４を含む。入出力モジュール６２４は、タッチスクリーン、トラックパッド、カメラ、マイクロフォンなど、入力をキャプチャするように構成されるデバイスとのインタフェースを提供するのに使用されるソフトウェアを表す。あるいはまた、インタフェースアプリケーション６２２及び入出力モジュール６２４を、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組み合わせとして実装することができる。加えて、入出力モジュール６２４は、ビジュアル入力とオーディオ入力をそれぞれキャプチャする別個のデバイスなど、複数の入力デバイスをサポートするように構成されてもよい。
【００７５】
デバイス６００は、オーディオ及び／又はビデオ入出力システム６２６も含み、該オーディオ及び／又はビデオ入出力システム６２６は、オーディオデータをオーディオシステム６２８に提供し、及び／又はビデオデータをディスプレイシステム６３０に提供する。オーディオシステム６２８及び／又はディスプレイシステム６３０は、オーディオ、ビデオ及びイメージデータを、処理、表示及び／又はそうでなくともレンダリングする任意のデバイスを含むことができる。ビデオ信号及びオーディオ信号を、デバイス６００からオーディオデバイスに、及び／又はディスプレイデバイスに、ＲＦ（無線周波数）リンク、Ｓ−ｖｉｄｅｏリンク、複合ビデオリンク、コンポーネントビデオリンク、ＤＶＩ（デジタルビデオインタフェース）、アナログオーディオ接続又は他の同様の通信リンクを介して通信することができる。一実施形態において、オーディオシステム６２８及び／又はディスプレイシステム６３０は、デバイス６００の外部コンポーネントとして実装される。あるいは、オーディオシステム６２８及び／又はディスプレイシステム６３０は、例示的なデバイス６００の組み込みコンポーネントとして実装される。
【００７６】
＜結論＞
本発明を、構造的特徴及び／又は方法的動作に特有の言語で説明してきたが、特許請求の範囲によって提示される本発明は、必ずしも説明された具体的な特徴又は動作に限定されない。むしろ、これらの具体的な特徴及び動作は、特許請求に係る発明を実装する例示的な形式として開示される。
【図１】
2014525638.tif 000003
【図２】
2014525638.tif 000004
【図３】
2014525638.tif 000005
【図４】
2014525638.tif 000006
【図５】
2014525638.tif 000007
【図６】
2014525638.tif 000008
【国際調査報告】
2014525638.tif 000009
2014525638.tif 000010