(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイスおよび／またはユーザを前記デバイス上のアプリケーションに対して識別するために、前記デバイスのプロセッサによって実施される方法であって、
パブリック識別子についての関数コールを受け取るステップと、
パブリッシャＩＤを要求することによって、前記関数コールに応答するステップであって、前記デバイスのオペレーティング・システムからプライベート・デバイス一意ＩＤにアクセスすることを含む、ステップと、
プライベート・データを前記デバイス内のメモリ位置から要求することによって、前記関数コールに応答するステップと、
前記パブリック識別子を生成するために、前記プライベート・デバイス一意ＩＤおよび前記プライベート・データに対してハッシュ動作を実行するステップと、
前記パブリック識別子を前記アプリケーションに戻すステップと、
を含む、方法。
【請求項２】
前記パブリック識別子が前記アプリケーションのパブリッシャに対して一意である、請求項１記載の方法。
【請求項３】
請求項１記載の方法において、
前記パブリック識別子が第１パブリック識別子であり、当該方法が、更に、
追加のプライベート・データを別のメモリ位置から要求することによって前記関数コールに応答するステップと、
前記パブリッシャＩＤおよび前記追加のプライベート・データに対してハッシュ動作を実行するステップと、
第２パブリック識別子を前記アプリケーションに戻すステップと、
を含む、方法。
【請求項４】
請求項３記載の方法において、前記第１パブリック識別子および前記第２パブリック識別子の少なくとも１つが、前記アプリケーションのパブリッシャに特有である、方法。
【請求項５】
請求項３記載の方法において、前記第１パブリック識別子および前記第２パブリック識別子の１つが、前記アプリケーションのパブリッシャに対して一意かつ匿名で第１モバイル・デバイス・ユーザを他のモバイル・デバイス・ユーザの間で識別するパブリック・アノニマス識別子である、方法。
【請求項６】
請求項１記載の方法において、前記パブリック識別子を前記アプリケーションに戻すステップが、前記パブリック識別子を前記アプリケーションのパブリッシャに伝達することを含む、方法。
【請求項７】
コンピューティング・デバイスおよび／またはユーザを前記デバイス上のアプリケーションに対して識別するために、前記デバイスのプロセッサによって実施される方法であって、
パブリック識別子についての関数コールを受け取るステップと、
パブリッシャＩＤを前記デバイス内の第１メモリ位置から要求することによって、前記関数コールに応答するステップと、
プライベート・データを前記デバイス内の第２メモリ位置から要求することによって、前記関数コールに応答するステップであって、前記デバイスのオペレーティング・システムからプライベート・アノニマス識別子にアクセスすることを含む、ステップと、
前記パブリック識別子を生成するために、前記パブリッシャＩＤおよび前記プライベート・アノニマス識別子に対しハッシュ動作を実行するステップと、
前記パブリック識別子を前記アプリケーションに戻すステップと、
を含む、方法。
【請求項８】
請求項７記載の方法において、前記パブリッシャＩＤを要求することによって、前記関数コールに応答するステップが、前記デバイスのオペレーティング・スステムからパブリッシャ名にアクセスすることを含む、方法。
【請求項９】
少なくとも１つのアプリケーションと関連付けられるモバイル・デバイスであって、前記少なくとも１つのアプリケーションが当該モバイル・デバイスおよび／または当該デバイスのユーザを識別することを求めており、当該モバイル・デバイスが、
少なくとも１つのプロセッサと、
前記プロセッサにリンクされ、パブリッシャＩＤが格納される第１メモリ位置とプライベート・データが格納される第２メモリ位置とを少なくとも有するメモリであって、更に前記プロセッサに、
パブリック識別子についての関数コールを受け取らせ、
（１）一意のパブリッシャ宛先を含むパブリッシャＩＤを前記第１メモリ位置から要求すること、および（２）プライベート・アノニマス識別子を含むプライベート・データを前記第２メモリ位置から要求することの内の少なくとも１つによって、前記関数コールに応答させ、
パブリック識別子を生成するために、前記パブリッシャＩＤおよび前記プライベート・データに対してハッシュ動作を実行させ、
前記パブリック識別子を前記アプリケーションに戻させる
ための命令を有するメモリと、
を備える、モバイル・デバイス。
【請求項１０】
前記パブリック識別子が前記アプリケーションのパブリッシャに対して一意である、請求項９記載のモバイル・デバイス。
【請求項１１】
請求項９記載のモバイル・デバイスにおいて、前記パブリック識別子が第１パブリック識別子であり、更に、
追加のプライベート・データを第３メモリ位置から要求することによって前記関数コールに応答させ、
前記パブリッシャＩＤおよび前記追加のプライベート・データに対しハッシュ動作を実行させ、
第２パブリック識別子を前記アプリケーションに戻させる
ための命令を含む、モバイル・デバイス。
【請求項１２】
請求項９記載のモバイル・デバイスにおいて、パブリッシャＩＤを要求することによって前記関数コールに応答することが、前記デバイスのオペレーティング・システムからプライベート・デバイス一意ＩＤにアクセスすることを含む、モバイル・デバイス。
【請求項１３】
前記プライベート・アノニマス識別子が前記デバイスのオペレーティング・システムからアクセスされる、請求項９記載のモバイル・デバイス。
【請求項１４】
パブリッシャＩＤを要求すること、またはプライベート・データを要求することの内少なくとも一方が、前記デバイスのセキュアな領域にアクセスすることを含む、請求項９記載のモバイル・デバイス。
【請求項１５】
前記第１メモリ位置または前記第２メモリ位置の内少なくとも一方がバイナリの位置を含む、請求項９記載のモバイル・デバイス。
【請求項１６】
前記パブリック識別子を前記アプリケーションのパブリッシャに伝達させる命令を更に含む、請求項９記載のモバイル・デバイス。
【発明の詳細な説明】
【従来技術】
【０００１】
コンピューティング・デバイスの識別は、コンピューティング・アプリケーションのパブリッシャを含むコンテンツ・プロバイダにとって重要なことである。パブリッシャは、どのコンテンツが特定のユーザによって所望されるかを判断するのに解析論(analytics)を用いる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
使用パターンの分析によって、パブリッシャにそのアプリケーションを改良させることができる。しかしながら、場合によっては、あまりに多量な使用データ、またはあまりに広範に共有される使用データがユーザ・セキュリティの懸念を生じさせることになる
本摘要は、以下の発明の詳細な説明に更に記載する簡略化した形態での概念の選択を導入するために設けている。本摘要は、特許請求する主題のキーとなる特徴や必須の特徴を特定することを意図するものではなく、また、特許請求する主題の範囲を限定するために用いることを意図するものでもない。
【課題を解決するための手段】
【０００３】
一実施形態では、コンピューティング・デバイス上に実装される方法は、当該デバイスを識別し、および／または当該デバイス上のアプリケーションに対してユーザを識別するステップを提供する。本方法は、パブリック識別子についての関数コールを受け取るステップ、パブリッシャＩＤをデバイス内の第１メモリ位置から要求すること、およびプライベート・データをデバイス内の第２メモリ位置から要求することによって、関数コールに応答するステップを含む。パブリック識別子を生成するために、パブリッシャＩＤおよびプライベート・データに対してハッシュ動作が実行される。パブリック識別子はアプリケーションに戻される。
【０００４】
パブリック識別子は、アプリケーションのパブリッシャに対して一意とすることができる。
パブリック識別子は第１パブリック識別子であり、本方法は第２パブリック識別子を生成するステップを含む。この場合、本方法は、追加のプライベート・データを第３メモリ位置から要求することによって関数コールに応答するステップ、パブリッシャＩＤおよび追加のプライベート・データに対してハッシュ動作を実行するステップ、並びに第２パブリック識別子をアプリケーションに戻すステップを含む。
【０００５】
関数コールに応答するステップは、パブリッシャ名、プライベート・デバイス一意ＩＤ、および／またはデバイスのオペレーティング・システムからのプライベート・アノニマス識別子にアクセスするステップを含む。第１メモリ位置および第２メモリ位置の内の少なくとも１つはバリナリでの位置を含むことができる。パブリッシャＩＤを要求することおよびプライベート・データを要求することの内の少なくとも１つは、デバイスのセキュア領域にアクセスすることを含む。
【０００６】
別の実施形態では、方法は、パブリッシャにコンピューティング・デバイス上のアプリケーションをテストさせる。このようにして、開発者は、アプリケーションが広くリリースされる前に、アプリケーションが意図したものとして機能することを保証する。本方法は、パブリッシャに割り当てられたパブリッシャＩＤを受け取るステップ、アプリケーションの開発コピーと共にパブリッシャから受け取ったパブリッシャＩＤを関連付けるステップ、および関連付けたパブリッシャＩＤを有するコンピューティング・デバイスに対し、アプリケーションの開発コピーを展開するステップを含む。
【０００７】
パブリッシャＩＤは、例えば開発者が適切な証明書でログインしたときに、開発者ツールのウェブサイトを通じて取得することができる。
別の実施形態では、モバイル・デバイスは、モバイル・デバイスおよび該デバイスのユーザを識別することを求める少なくとも１つのアプリケーションを有する。モバイル・デバイスは、プロセッサおよび該プロセッサにリンクしたメモリを備え、第１メモリ位置および第２メモリ位置を少なくとも有する。パブリッシャＩＤは第１メモリ位置に格納され、プライベート・データは第２メモリ位置に格納される。メモリはまた、パブリック識別子についての関数コールを受け取り、パブリッシャＩＤを第１メモリ位置から要求することによって関数コールに応答し、プライベート・データを第２メモリ位置から要求することによって関数コールに応答し、また、パブリック識別子を生成するために、パブリッシャＩＤおよびプライベート・データに対してハッシュ動作を実行することを含む動作をプロセッサに実行させる命令を含む。パブリック識別子は次いで、アプリケーションに戻される。
【０００８】
本発明について上記および他の目的、特徴および利点は、以下の詳細な説明を添付の図面を参照と共に進めることからより明らかなものとなろう。
【図面の簡単な説明】
【０００９】
【図１】図１は、例示のモバイル・デバイスのシステム図である。
【図２】図２は、説明する技術(technique)および技術(technology)を実施する適切な実施環境の包括的な例を示す。
【図３】図３は、適切なコンピューティング環境の他の包括的な例を示すブロック図である。
【図４】図４は、識別コンポーネントを有するモバイル・デバイスのブロック図である。
【図５】図５は、開発者がアプリケーションをテストすることができる例示の実装態様を示すプロセス・フロー図である。
【図６】図６は、新規の識別方法を有するストアからアプリケーションをダウンロードする例示の実装態様を示すプロセス・フロー図である。
【図７】図７は、例示の方法についてのフローチャートである。
【発明を実施するための形態】
【００１０】
本願および特許請求の範囲で用いられるように、「ａ」「ａｎ」および「ｔｈｅ」は、さもなければ文脈が明確に指図しない限りは、複数形の形態を含む。同様に、「または(or)」なる語は、さもなければ文脈が明確に指示しない限りは、「および(and)」を含む。「備える(comprising)」という語は、「含む(including)」を意味する。つまり、「ＡまたはＢを備える」は、ＡまたはＢを含むことと同様に、ＡおよびＢを共に含むことを意味する。加えて、「含む(includes)」なる語は、「備える(comprises)」を意味する。
【００１１】
図１は、様々な任意のハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む例示のモバイル・デバイス１００を示すシステム図であり、包括的に１０２として示す。モバイル・デバイスの如何なるコンポーネント１０２も他の如何なるコンポーネントと通信することができる。但し、説明の簡単化のために、全ての接続が示されるわけではない。モバイル・デバイスは、如何なる様々なコンピューティング・デバイス（例えば、セル・フォン、スマートフォン、ハンドヘルド・コンピュータ、パーソナル・デジタル・アシスタント（ＰＤＡ）など）ともすることができ、セルラ・ネットワークまたは衛星ネットワークのような１つ以上のモバイル通信ネットワーク１０４を有するワイヤレス双方向通信を可能にすることができる。
【００１２】
図示したモバイル・デバイス１００は、信号符号化、データ処理、入／出力処理、電力制御、および／または他の機能のようなタスクを実行するために、コントローラまたはプロセッサ１１０（例えば、信号処理プロセッサ、マイクロプロセッサ、ＡＳＩＣ、または他の制御および処理論理回路）を含むことができる。オペレーティング・システム１１２は、コンポーネント１０２の割り当ておよび使用、並びに１つ以上のアプリケーション・プログラム１１４（複数の「アプリケーション」）のサポートを制御することができる。アプリケーション・プログラムは、一般的なモバイル・コンピューティング・アプリケーション（例えば、電子メール・アプリケーション、カレンダ、接触マネージャ、ウェブ・ブラウザ、メッセージング・アプリケーション）または他の如何なるコンピューティング・アプリケーションも含むことができる。アプリケーション・ストアにアクセスするための機能性１１３はまた、アプリケーション１１４を取得および更新するために使用することもできる。
【００１３】
図示したモバイル・デバイス１００は、メモリ１２０を含むことができる。メモリ１２０は、着脱不可メモリ１２２および／または着脱可能メモリ１２４を含むことができる。着脱不可メモリ１２２は、ＲＡＭ、ＲＯＭ、フラッシュ・メモリ、ハード・ディスクまたは他の公知のメモリ・ストレージ技術を含むことができる。着脱可能メモリ１２４は、フラッシュ・メモリ若しくはＧＳＭ（登録商標）通信システムで周知の加入者識別モジュール（ＳＩＭ）カード、または「スマート・カード」のような他の周知のメモリ・ストレージ技術を含むことができる。メモリ１２０は、コードを格納するために、および／またはオペレーティング・システム１１２およびアプリケーション１１４を起動するために使用することができる。例示のデータは、ウェブ・ページ、テキスト、イメージ、サウンド・ファイル、ビデオ・データまたは他のデータ・セットを含むことができ、１つ以上の有線または無線ネットワークを介して１つ以上のネットワーク・サーバまたは他のデバイスに送信および／または受信されることになる。メモリ１２０は、国際モバイル加入者識別（ＩＭＳＩ）のような加入者識別子、および国際モバイル装置識別子（ＩＭＥＩ）のような装置識別子を格納するのに使用することができ、これらは、ユーザおよび装置を識別するためにネットワーク・サーバに送信される。以下の説明は、識別に対する新規の手法である。
【００１４】
モバイル・デバイス１００は、１つ以上の入力デバイス１３０（例えば、タッチスクリーン１３２、マイクロフォン１３４、カメラ１３６、物理キーボード１３８、および／またはトラックボール１４０）、および１つ以上の出力デバイス１５０（例えば、スピーカ１５２およびディスプレイ１５４）をサポートすることができる。他の見込まれる出力デバイス（図示せず）は、圧電式または他の触覚型出力デバイスを含むことができる。デバイスには、２以上の入力／出力機能を提供することができる。例えば、タッチスクリーン１３２およびディスプレイ１５４は、単一の入／出力用デバイスに組み込むことができる。入力デバイス１３０は、ナチュラル・ユーザ・インタフェース（ＮＵＩ）を含むことができる。ＮＵＩはあらゆるインタフェース技術であり、ユーザが、入力デバイス（例えば、マウス、キーボード、リモート・コントロールなど）によって課される人工的な制約を受けることなく、「自然(natural)」な手法でデバイスと相互作用するのを可能にする。例示のＮＵＩ方法は、音声認識、タッチおよびスタイラス認識、スクリーンおよび隣接のスクリーンの両方に対するジェスチャ認識、エア・ジェスチャ、頭および目のトラッキング、音声およびスピーチ、視野、タッチ、ジェスチャ、並びに人工知能に依存するものを含む。ＮＵＩの他の例は、加速度計／ジャイロスコープを用いるモーション・ジェスチャ検出、顔認識、３Ｄディスプレイ、頭、目および視線の追跡、没入増大リアリティおよびバーチャル・リアリティ・システムを含み、これら全ては、より自然なインタフェースを、電界感知電極（ＥＥＧおよび関連した方法）を用いて脳活動を感知する技術と同様に提供する。つまり、１つの具体例では、オペレーティング・システム１１２またはアプリケーション１１４は、音声ユーザ・インタフェースの一部として、音声認識ソフトウェアを含むことができ、ユーザが音声コマンドを介してデバイス１００を操作するのを可能にする。更に、デバイス１００は、入力デバイス、およびユーザの空間ジェスチャを介したユーザ対話（例えば、ゲーミング・アプリケーションへの入力を供給するジェスチャを検出および解釈すること）を可能とするソフトウェアを含むことができる。
【００１５】
従来技術においてよく理解されるように、ワイヤレス・モデル１６０は、アンテナ（図示せず）に結合することができ、プロセッサ１１０と外部デバイス間の双方向通信をサポートすることができる。モデム１６０を包括的に示し、モバイル通信ネットワーク１０４および／または他の無線ベースのモデム（例えば、ブルートゥース１６４またはＷｉ−Ｆｉ１６２）と通信するためにセルラ・モデムを含むことができる。ワイヤレス・モデム１６０は、通例、複数のセルラ・ネットワーク間、または、モバイル・デバイスおよびパブリック・スイッチ電話ネットワーク（ＰＳＴＮ）間の１つ以上のセルラ・ネットワーク（例えば、単一セルラ・ネットワーク内でのデータおよび音声通信のためのＧＳＭ（登録商標）ネットワーク）との通信のために構成される。
【００１６】
モバイル・デバイスは更に、少なくとも１つの入／出力ポート１８０、電源１８２、衛星ナビゲーション・システム受信機１８４（例えば全地球位置測定システム（ＧＰＳ）受信機）、加速度計１８６、および／または物理的コネクタ１９０を含むことができる。物理的コネクタ１９０は、ＵＳＢポート、ＩＥＥＥ１３９４（ファイア・ワイア）ポートおよび／またはＲＳ−２３２ポートとすることができる。図示のコンポーネント１０２は、全てを含む必要もない。何故ならば、如何なるコンポーネントも削除することができ、また、他のコンポーネントを付加することができるからである。
【００１７】
図２は、適切な実施環境２００の包括的な例を示し、ここでは、説明する実施形態、技術(techniques)および技術(technologies)を実施することができる。
例示の環境２００では、様々な種別のサービス（例えば、コンピューティング・サービス）がクラウド２１０によって提供される。例えば、クラウド２１０は、コンピューティング・デバイスの集合を含み、中央化または分散して配置することができる。コンピューティング・デバイスは、クラウド・ベースのサービスを様々な種別のユーザおよびインターネットのようなネットワークを介して接続されるデバイスに提供する。実施環境２００は、コンピューティング・タスクを遂行するために、異なる方法で使用することができる。例えば、幾らかのタスク（例えば、ユーザ入力の処理、およびユーザ・インタフェースの提示）がローカル・コンピューティング・デバイス（例えば、接続されるデバイス２３０，２４０，２６０）に対して実行されることができる一方で、他のタスク（例えば、後続の処理で用いられることになるデータの記憶）はクラウド２１０で実行されることができる。
【００１８】
例示の環境２００では、クラウド２１０は、接続されるデバイス２３０，２４０，２５０へのサービスに様々なスクリーン性能を提供する。接続されるデバイス２３０は、コンピュータ・スクリーン２３５（例えば、中型サイズのスクリーン）を有するデバイスを表す。例えば、接続されるデバイス２３０は、パーソナル・コンピュータ（例えば、デスクトップ・コンピュータ、ラップトップ、ノートブック、ネットブックなど）とすることができる。接続されるデバイス２４０は、モバイル・デバイス・スクリーン２４５（例えば、小型サイズのスクリーン）を有するデバイスを表す。例えば、接続されるデバイス２４０は、モバイルフォン、スマートフォン、パーソナル・デジタル・アシスタント、タブレット型コンピュータなどとすることができる。接続される装置２５０は、大型のスクリーン２５５を有するデバイスを表す。例えば、接続されるデバイス２５０は、テレビ・スクリーン（例えば、スマート・テレビ）、またはテレビに接続される他のデバイス（例えば、セットトップ・ボックスまたはゲーミング・コンソール）などとすることができる。接続される装置２３０，２４０，２５０の１つ以上は、タッチスクリーン性能を有することができる。タッチスクリーンは、異なる方法で入力を受け入れることができる。例えば、容量型のタッチスクリーンは、オブジェクト（例えば、指先またはスタイラス）が表面にわたり流れる電流を歪め、遮断するときに入力を検出する。他の例として、タッチスクリーンは光学センサを使用することができ、光学センサからのビームが遮断されるときに入力を検出することができる。スクリーンの表面との物理的な接触は、幾らかのタッチスクリーンによって検出されることになる入力には必要でない。スクリーン性能のないデバイスはまた、例示の環境２００でも使用することができる。例えば、クラウド２１０は、１つ以上のコンピュータ（例えば、複数のサーバ・コンピュータ）に対するサービスをディスプレイなしで提供することができる。
【００１９】
サービスは、サービス・プロバイダ２２０を通じて、またはオンライン・サービスの他のプロバイダ（図示せず）を通じて、クラウド２１０によって提供することができる。例えば、クラウド・サービスは、接続される特定のデバイス（例えば、接続されるデバイス２３０，２４０，２５０）が有するスクリーン・サイズ、ディスプレイ性能、および／またはタッチスクリーン性能にカスタマイズすることができる。
【００２０】
例示の環境２００では、クラウド２１０は、接続される様々なデバイス２３０，２４０，２５０に対し、少なくとも部分的にサービス・プロバイダ２２０を使用して本明細書で説明する技術や解決策を提供する。例えば、サービス・プロバイダ２２０は、様々なクラウド・ベースのサービスについて中央化した解決策を提供することができる。サービス・プロバイダ２２０は、ユーザおよび／またはデバイスのために（例えば、接続されるデバイス２３０、２４０、２５０および／またはそれらの各ユーザのために）サービス購読を管理することができる。
【００２１】
図３は、説明するイノベーションが実装される適切なコンピューティング環境３００の包括的な例を示す。コンピューティング環境３００は、使用性または機能性の範囲に関して如何なる限定をも示唆することを意図とするものではない。何故ならば、イノベーションは、汎用目的または特定目的のコンピューティング・システムで実施できるからである。例えば、コンピューティング環境３００は、如何なる様々なコンピューティング・デバイス（例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ・コンピュータ、タブレット型コンピュータ、メディア・プレーヤ、ゲーミング・システム、モバイル・デバイスなど）ともすることができる。
【００２２】
図３を参照すると、コンピューティング環境３００は、１つ以上の処理ユニット３１０，３１５およびメモリ３２０，３２５を含む。図３では、この基本構成３３０は、点線内に含まれる。処理ユニット３１０，３１５は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用中央演算処理装置（ＣＰＵ）、特定用途集積回路（ＡＳＩＣ）のプロセッサ、または他の如何なる種別のプロセッサともすることができる。マルチ処理システムでは、複数の処理ユニットは、処理パワーを増大させるコンピュータ実行可能命令を実行する。例えば、図３は、グラフィックス処理ユニットまたは共同処理ユニット３１５と同様に中央処理ユニット３１０を示す。タンジブル・メモリ３２０，３２５は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリなど）、またはこられ２つの幾らかの組み合わせとしてよく、処理ユニット（１または複数）によってアクセス可能である。メモリ３２０，３２５は、本明細書に記載する１または複数のイノベーションを実施するソフトウェア３８０を、処理ユニット（１または複数）によって実行するのに適したコンピュータ実行可能命令の形態で格納する。
【００２３】
コンピューティング・システムは付加的な特徴を有する。例えば、コンピューティング環境３００は、ストレージ３４０、１つ以上の入力デバイス３５０、１つ以上の出力デバイス３６０、および１つ以上の通信接続３７０を含む。バス、コントローラ、またはネットワークのような相互接続機構（図示せず）は、コンピューティング環境３００のコンポーネントを相互接続する。通例、オペレーティング・システム（図示せず）は、コンピューティング環境３００で実装する他のソフトウェアについての動作環境を提供し、また、コンピューティング環境３００のコンポーネントの活動をコーディネートする。
【００２４】
タンジブル・ストレージ３４０は、着脱可能または着脱不能とすることができ、また、磁気ディスク、磁気テープまたはカセット、ＣＤ−ＲＯＭ、ＤＶＤ、または非一時的手段で情報を格納するのに用いることができ、コンピューティング環境３００内でアクセスできる他のいかなる媒体をも含む。ストレージ３４０は、本明細書に記載する１つ以上のイノベーションを実装するソフトウェア３８０の指示を格納する。
【００２５】
入力デバイス（１または複数）３５０は、タッチ入力デバイス（例えばキーボード、マウス、ペンまたはトラックボール）、音声入力デバイス、スキャニング・デバイス、または入力をコンピューティング環境３００に提供する他のデバイスとしてもよい。ビデオ符号化のために、入力デバイス（１または複数）３５０は、カメラ、ビデオ・カード、ＴＶチューナ・カード、アナログ若しくはデジタル形態のビデオ入力を受け付ける同様のデバイス、またはコンピューティング環境３００にビデオ・サンプルを読み込むＣＤ−ＲＯＭまたはＣＤ−ＲＷとしてもよい。出力デバイス（１または複数）３６０は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、またはコンピューティング環境３００からの出力を提供する他のデバイスとしてもよい。
【００２６】
通信接続（１または複数）３７０は、通信媒体を介して他のコンピューティング・エンティティへの通信を可能にする。通信媒体は、情報（例えばコンピュータ実行可能命令、音声若しくはビデオの入力若しくは出力、または変調データ信号内の他のデータ）を搬送する。変調データ信号は、１つ以上のその特徴セットを有し、信号内の情報を符号化するような手法で変更される信号である。例えば、この例に限定されないが、通信媒体は、電気、光、ＲＦ、または他のキャリアを用いることができる。
【００２７】
開示する方法の内の幾らかの動作について都合のいい提示のために経時的な順序で特に記載するにも拘わらず、特定の順序付けが次に述べる特定の言語によって必要とされない限りにおいて、本説明の手法が再構成を包含することが理解されるべきである。例えば、経時的に説明する動作は、場合によっては並行して再構成または実行されることもある。更に、単純化のために、図面は様々な方法で示すことはしない。ここでは、開示する方法は他の方法に関連して用いることができる。
【００２８】
開示する如何なる方法も１つ以上のコンピュータ可読ストレージ媒体（例えば、光学媒体ディスク、揮発性メモリ・コンポーネント（例えば、ＤＲＡＭ若しくはＳＲＡＭ）、または不揮発性メモリ・コンポーネント（例えばフラッシュ・メモリ若しくはハード・ドライブ）の１つ以上のような非一時的なコンピュータ可読媒体）上のコンピュータ実行可能命令として実装することができ、コンピュータ（例えば、スマートフォン、またはコンピューティング・ハードウェアを含む他のモバイル・デバイスを含む、如何なる商用可能なコンピュータ）上で実行することができる。コンピュータ可読記憶ストレージ媒体という用語は、変調データ信号のような通信接続を含まないことが容易に理解されよう。開示される技術を実施する如何なるコンピュータ実行可能命令は、開示される実施形態の実施の間で生成および使用される如何なるデータと同様に、１つ以上のコンピュータ可読媒体（例えば、伝搬された信号を排除する非一時的コンピュータ可読媒体）に格納することができる。例えば、コンピュータ実行可能命令は、専用のソフトウェア・アプリケーション、またはウェブ・ブラウザまたは他のソフトウェア・アプリケーション（例えば遠隔コンピューティング・アプリケーション）を介してアクセスまたはダウンロードされるソフトウェア・アプリケーションの一部とすることができる。このようなソフトウェアは、例えば、単一のローカル・コンピュータ（例えば、如何なる適切な商用のコンピュータ）上で、または、１つ以上のネットワーク・コンピュータを使用しているネットワーク環境（例えば、インターネット、ワイド・エリア・ネットワーク、ローカル・エリア・ネットワーク、クライアント・サーバー・ネットワーク（例えばクラウド・コンピューティング・ネットワーク）、またはこの種の他のネットワークを介して）において、実行することができる。
【００２９】
明確化のために、ソフトウェア・ベースの実施についての特定の選択した態様のみを説明する。当該技術分野で公知である他の詳細については省略する。例えば、開示する技術が如何なる特定のコンピュータ言語またはプログラムにも限定されないことが理解されるべきである。例えば、開示する技術は、Ｃ＋＋、Ｊａｖａ(登録商標)、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ(登録商標)、ＡｄｏｂｅＦｌａｓｈまたは他の如何なる適切なプログラミング言語で記述されるソフトウェアによって実施することができる。同様に、開示する技術は、如何なる特定のコンピュータまたはハードウェアの種別にも限定されない。適切なコンピュータおよびハードウェアについての特定の詳細は公知であり、本開示において詳細には記載する必要がないものである。
【００３０】
また、本明細書に記載する如何なる機能も、ソフトウェアの代替として１つ以上のハードウェア・ロジック・コンポーネントに少なくとも部分的によって実行できることも理解されるべきである。例えば、そして、限定するものではないが、使用可能な例示の種別のハードウェア・ロジック・コンポーネントは、フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）、プログラム特定集積回路（ＡＳＩＣ）、プログラム特定スタンダード・プロダクツ（ＡＳＳＰ）などを含む。更に、如何なるソフトウェア・ベースの実施形態（例えば、開示する如何なる方法をもコンピュータに実行させるためのコンピュータ実行可能命令を含む）も、アップロードすることができる、ダウンロードすることができる、または、適切な通信手段を通じて遠隔でアクセスすることができる。このような適切な通信手段は、例えば、インターネット、ワールド・ワイド・ウェブ、イントラネット、ソフトウェア・アプリケーション、ケーブル（光ファイバ・ケーブルを含む）、磁気通信、電磁気通信（ＲＦ、マイクロ波および赤外線通信を含む）、電子通信、または他のこの種の通信手段を含む。
【００３１】
本明細書において、「パブリッシャ」は、少なくとも１つのアプリケーションのパブリッシャ、即ち、カスタマへのアプリケーションの公表を制御および導出する当事者として定義される。アプリケーションは、通常、エンドユーザに向けられる１またはそれ以上のプログラムであると理解することができる。パブリッシャのアプリケーション（１または複数）は、通例、オンライン・ストアを通じてエンドユーザのコンピューティング・デバイスにダウンロードするために、エンドユーザに利用可能である。モバイル・デバイスの場合、このようなストアは、Ｍａｒｋｅｔｐｌａｃｅ（Ｗｉｎｄｏｗｓ（登録商標）Ｐｈｏｎｅ Ａｐｐｓ＋Ｇａｍｅｓ Ｓｔｏｒｅ）、ｉＴｕｎｅｓ、Ｇｏｏｇｌｅ Ｐｌａｙ、および他の類似のサイトを含む。パブリッシャはそのアプリケーションの公表を制御および導出するために、これは要件ではないが、通常はアプリケーションのオーナーまたは権利のライセンシである。場合によっては、アプリケーションのパブリッシャはまたアプリケーションの開発者、すなわち、アプリケーションを書いた１またはそれ以上の個人でもあるが、これもまた要件ではない。
【００３２】
第１の識別のシナリオでは、各パブリッシャのアプリケーション（１または複数）がモバイル・デバイスに関連付けられるときに、各パブリッシャによってモバイル・デバイス（およびモバイル・デバイスのユーザ）を識別するのを可能にするが、どのパブリッシャのアプリケーションも関連付けられていないモバイル・デバイスの識別子には、各パブリッシャによっては容易にアクセスできないことが望まれる。加えて、各パブリッシャは異なる識別子を有するために、パブリッシャは識別子を相互に意味深長には共有できない。各パブリッシャは、適切なときに、モバイル・デバイス（およびそのユーザ）へのコンテンツを尚も対象とすることができるものの、そのようにする際のパブリッシャの行動は、ユーザのプライベート情報を不注意にパブリックにすることはしない。更に、モバイル・デバイス・ユーザの如何なる識別子も、アノニマス識別子であり、パブリッシャによって、第１および第２のモバイル・デバイス・ユーザの間を識別可能とするものの、それらユーザはパブリッシャに対し匿名のままである。
【００３３】
説明する方法によれば、モバイル・デバイス上のメモリに格納されるプライベート情報は、パブリック識別子を供給するためにハッシュされて、また、パブリック識別子はアプリケーションに供給される。このようにして、モバイル・デバイスおよびユーザは、モバイル・デバイス上のアプリケーションに対し適切に識別されることができ、また、モバイル・デバイスまたはユーザに向けられるプリケーションのパブリッシャからのコンテンツは、適切に導出することができる。
【００３４】
図４を参照する。特定の実装態様を例示する。例示のモバイル・デバイス４００では、オペレーティング・システム４０２は、当該デバイス上に存在するアプリケーション４０４、識別コンポーネント４０６およびメモリ４０８の間の相互作用を提供する。アプリケーション４０４は、例えば識別コンポーネント４０６に向けられた関数コール内で、パブリック識別子を要求する。識別コンポーネントは、モバイル・デバイスおよびユーザを識別するプライベート・データにアクセスすることによって要求に応答し、次いで、格納されたパブリック・データを用いてハッシュ・エンジン４１４内でプライベート・データをハッシュして、その結果、パブリック識別子を生成することができる。１つの適切なハッシュ・アルゴリズムは、ＨＭＡＣ−ＳＨＡ２５６であるものの、１つ以上の他のアルゴリズムもまた使用することができる。ハッシュに加えて、プライベート情報の秘密性を保存する他の動作もまた使用することができる。パブリック識別子は、次いでアプリケーションに戻される。
【００３５】
特定の実装態様では、プライベート・データはプライベート・アノニマス識別子を含み、例えばデバイスで用いられるサービスのユーザ・アカウントによって、デバイスのユーザを識別する。プライベート・データはまた、デバイスを識別するプライベート・デバイスの一意の識別子を含む。図４に示される実装態様では、格納されたパブリック・データは、パブリッシャ識別子（パブリッシャＩＤ）を含む。このパブリッシャＩＤは、パブリッシャに割り当てられるパブリッシャ名または他の指名者とすることができる。
【００３６】
１つのシーケンスでは、プライベート・デバイス一意識別子は、パブリッシャ識別子と共にハッシュされて、パブリック識別子、この場合はパブリック・デバイス一意識別子を作り出す。他のシーケンスでは、プライベート・アノニマス識別子は、パブリッシャ識別子と共にハッシュされて、第２のパブリック・アノニマス識別子を作り出す。図示した実装態様では両方のシーケンスが用いられる。即ち、プライベート・デバイス一意識別子が１つのメモリ位置（例えば、４１２、４１０のそれぞれ）からアクセスされ、プライベート・アノニマス識別子が異なるメモリ識別子（例えば、４１２、４１０のそれぞれ）からアクセスされ、それぞれがパブリッシャ識別子との別個のハッシュ動作でハッシュされ、その結果としてのパブリック識別子は実際のところ２つのパブリック識別子、即ち、パブリック・デバイス一意識別子およびパブリック・アノニマス識別子である。
【００３７】
これらの関係は、次のテーブルにまとめられる。
【００３８】
【表１】
0006324388.tif 000002
【００３９】
図７に例示の方法が有するステップを示す。ステップ７００では、パブリック識別子についての関数コールが識別コンポーネントによって受け取られる。ステップ７０２では、識別コンポーネントは、パブリッシャＩＤを、デバイス内の第１メモリ位置（例えば、メモリ位置４１０）から要求することによって、また、デバイス内の第２メモリ位置（例えばメモリ位置４１２）からプライベート・データを要求することによって、関数コールに応答する。ステップ７０４では、識別コンポーネントは、次いで、パブリッシャＩＤおよびプライベート・データに対しハッシュ動作を実行することによって、パブリック識別子を生成する。ステップ７０６では、パブリック識別子は、アプリケーションに戻される。
【００４０】
代替の方法では、第３メモリ位置（図には特に示さない）があり、プライベート・データの第２ピースが格納される。第２ハッシュ動作（第１ハッシュ動作と同一または、好ましくはこれと異なる）がパブリッシャＩＤおよびプライベート・データの第２ピースに対し実行され、第２パブリック識別子を作り出す。第２パブリック識別子はまた、アプリケーションに戻される。
【００４１】
第２識別シナリオでは、アプリケーションのテストを求めているパブリッシャは、識別子をセットする機能を必要とし、その結果、動作中のモバイル・デバイス上のアプリケーションのテストを遂行することができる。例示の実装態様を図５に示す。プロセス・ブロック５００では、当局(authority)は、各パブリッシャに識別子を割り当てる。プロセス・ブロック５０２では、開発者がアプリケーションの開発を行うときに、開発者はソフトウェア開発者ツールのパブリッシャ識別子を特定することができる。プロセス・ブロック５０４では、開発者は、アプリケーションのテストが望まれることを示すときに、マニフェストが更新されてパブリッシャ識別子を含める。プロセス・ブロック５０６では、パブリッシャ識別子と共にアプリケーションのコピーが、識別したモバイル・デバイスに、または別のコンピューティング・デバイス上で動作しているデバイスのエミュレータに展開される。プロセス・ブロック５０８では、アプリケーションの開始により、モバイル・デバイスに新規のパブリック識別子（１または複数）を受信させる。このように、如何なる従来の対応するパブリック識別子もが更新される。
【００４２】
プロセス・ブロック５０８でモバイル・デバイスまたはエミュレータによって受信されたパブリック識別子（１または複数）は、アプリケーションのテスト・コピーに対してのみ動作可能である。つまり、一旦テストが完了すると、開発者またはパブリッシャが次いで、ユーザがダウンロードするのに利用可能なアプリケーションとして完全に公表するためにアプリケーションを当局にサブミットする場合に、図６のプロセスが次いで行われる。
【００４３】
説明する識別方法を用いてモバイル・デバイスに新規のアプリケーションをダウンロードする例示の実施について図６に示す。プロセス・ブロック６００では、当局は、マニフェスト内のパブリッシャ識別子をストアに送信する。プロセス・ブロック６０２では、ストアは、新規のアプリケーションをマニフェストと共にモバイル・デバイスに転送する。プロセス・ブロック６０４では、モバイル・デバイスは、ファイルであるマニフェストをオープンし、パブリッシャ識別子を読み取り、そして、パブリッシャ識別子をデバイスに格納する。プロセス・ブロック６０６では、識別コンポーネントは、パブリッシャ識別子を読み取り、上記に説明した方法にしたがってパブリッシャ識別子をハッシュ・アウトする。プロセス・ブロック６０８では、新規のパブリック・デバイス一意識別子および新規のパブリック・アノニマス識別子はデバイス上のアプリケーションに戻される。
【００４４】
開示する方法、装置、およびシステムは、如何なる形であれ限定するものとして解釈してはならない。その代わりとして、本開示は、単独、並びに様々な相互の組み合わせおよび下位組み合わせで、様々な開示の実施形態について全ての新規および非自明な特徴および態様に向けられる。開示の方法、装置、およびシステムは、如何なる特定の態様若しくは特徴、またはこれらの組み合わせに限定されない。また、開示の実施形態は如何なる１つ以上の特定の有利な点が存在し、または課題が解決されることを必要としない。
【００４５】
開示する原則を適用することができる多くの見込まれる実施形態という観点では、例示の実施形態は好適な例示に過ぎず、保護範囲を限定するものとしてはならないことが認識されるべきである。寧ろ、本範囲は、次の特許請求の範囲によって規定される。従って、これらの特許請求の範囲における範囲および趣旨内にあるものと我々は主張する。
【図１】
0006324388.tif 000003
【図２】
0006324388.tif 000004
【図３】
0006324388.tif 000005
【図４】
0006324388.tif 000006
【図５】
0006324388.tif 000007
【図６】
0006324388.tif 000008
【図７】
0006324388.tif 000009