様々な図面における同じ参照記号は同じ要素を示す。
本明細書は、例えば端末デバイスがインターネットを閲覧しているときの、クライアントデバイス(例えば、端末デバイスまたはパブリッシャシステム)に送信されたデジタル・コンポーネントの複製を解除する(例えば、冗長性を排除または削減する)システムを説明する。本明細書にわたって使用される際、「デジタル・コンポーネント」というフレーズは、離散単位のデジタルコンテンツまたはデジタル情報(例えば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別の単位のコンテンツ)を指す。デジタル・コンポーネントを単一のファイルとして物理メモリデバイスにまたはファイルの集合に電子的に格納でき、デジタル・コンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとることができ、広告が一種のデジタル・コンポーネントであるように広告情報を含む。一般に、デジタル・コンポーネントは、単一のプロバイダまたはソース(例えば、広告主、パブリッシャ、または他のコンテンツプロバイダ)により定義(または提供)される。以下でより詳細に説明するように、複数の異なるソースからのデジタル・コンポーネントを単一の電子ドキュメント(例えば、様々な異なるデジタル・コンポーネントのコレクション)に結合でき、異なるソースからの様々なデジタル・コンポーネントの部分を、検索結果から抽出した情報(またはコンテンツの他の部分)を有する単一のデジタル・コンポーネントに結合することができる。
当該システムは、既にクライアント・デバイスに送信されているデジタル・コンポーネントのリストを表すキー付けされたデータベースを用いて維持されるキー付けされたデータを分析することで、デジタル・コンポーネントのサービスの複製を解除する。一般に、以下でさらに詳細に説明するように、キー付けされたデータは、鍵(例えば、一意な識別子)および/または鍵自体に関連付けられた(例えば、それとともに格納され、送信され、それを指す等)データを含む。一般に、キー付けされたデータベースは、データエントリまたはレコードが例えば、後続の取出しのためにその中で鍵に関連付けられるかまたはインデックス付けされたデータベースを含む。当該キー付けされたデータの処理および分析に基づいて、当該システムは、既にクライアント・デバイスに送信されているデジタル・コンポーネントを、送信の考慮から除外する。一般に、本明細書で説明する重複排除は、例えば、当該重複排除と独立にデジタル・コンポーネントの配送で負担される帯域幅利用に対して、デジタル・コンポーネント配送の帯域幅利用の減少をもたらす。1つまたは複数のロジック実行プロセスを実施する前に当該キー付けされたデータを分析することで、より少ないデータ要求および後続の応答が当該システムのネットワークにわたって送信され、帯域幅利用が減る。
端末デバイスがデジタル・コンポーネントをパブリッシャシステムのようなシステムに要求するとき、幾つかのプロセスが当該要求に応答して開始される。これらのプロセスは、端末デバイスに提供されるウェブページまたはアプリケーションインタフェースを集めるのに使用され、インターネットにより接続された様々なシステムへ行われた1つまたは複数の要求および様々なシステムによる計算を含み、時間がかかる。以下で説明するデジタル・コンポーネント重複排除システムは、デジタル・コンポーネントに対する端末デバイスの当該要求と端末デバイスに対する当該デジタル・コンポーネントの収集およびサービスとの間の、デジタル・コンポーネント重複排除システムの使用と独立な端末デバイスへのウェブページの収集とサービスのレイテンシに対する時間レイテンシを減らす。デジタル・コンポーネント重複排除システムは、当該ロジック実行プロセスの間に考慮されるデジタル・コンポーネントの数を候補デジタル・コンポーネント全体より少ないように減らすことで、レイテンシを減らす。より少ないデジタル・コンポーネントが考慮され、より少ない命令および応答が送受信されるので、デジタル・コンポーネント重複排除システムは典型的なロジック実行プロセスの間よりも少ないデータを処理し、処理速度を高め、当該ロジック実行プロセスの実行に関するレイテンシを減らし、当該デジタル・コンポーネントを提供する。
例えば、デジタル・コンポーネント重複排除システムはロジック実行結果(例えば、オークション結果、スコアリング結果、または別のロジック実行プロセスの結果)を計算する。候補デジタル・コンポーネントに対する適格性値(例えば、入札)が、評価されているデジタル・コンポーネントごとにデジタル・コンポーネントプロバイダ(例えば、サードパーティコンテンツプロバイダ)から要求される。しかし、適格性値は、(例えば、閲覧セッション、所定の期間等)の指定されたまたは動的に定義された期間のような、セッション中に既に提供されていないデジタル・コンポーネントに対してのみ要求される。当該ロジック実行サーバは、当該受信された適格性値を用いることで、ロジック実行プロセス中にデジタル・コンポーネントを当該1組の候補デジタル・コンポーネントから指定する。デジタル・コンポーネント重複排除システムは、当該指定されたデジタル・コンポーネント(例えば、ビデオクリップ、オーディオクリップ、画像、テキスト、またはそれらの組合せ)をデジタルコンテンツプロバイダからまたはキー付けされたデジタル・コンポーネントキャッシュから取り出す。当該デジタル・コンポーネントは、当該セッション中にまだクライアント・デバイスに提供されておらず、クライアント・デバイスに提供される。
図1を参照すると、ネットワーク環境100は、(例えば、ネットワーク110上で)パブリッシャシステム104、端末デバイス106、およびデジタル・コンポーネントプロバイダ108と通信するように構成されるデジタル・コンポーネント重複排除システム102を含む。デジタル・コンポーネント重複排除システム102はコンピューティングシステム(例えば、サーバシステム)を備える。これらの様々なデバイスにより実施されている機能を、単一のハードウェアデバイスまたは単一の組のハードウェアデバイスで、または別々のハードウェアデバイスとして実装することができる。例えば、デジタル・コンポーネント重複排除システム102を単一のサーバまたは幾つかのネットワークサーバとして実装することができる。
デジタル・コンポーネント重複排除システム102は、インタフェース144、ロジック実行サーバ130、セキュリティ・サーバ130、パケット化されたデータ検索エンジン128、暗号化キーキャッシュ134、検索履歴キャッシュ136、登録されたAPIエンドポイントキャッシュ138、暗号化トークンキャッシュ140、キー付けされたデジタルコンテンツキャッシュ142(例えば、キー付けされたデータベース)、パケット化されたデータパーサ152、および登録インタフェース154を備える。例えば、上述の当該1つまたは複数のキャッシュは、独立なデータ・レコードが鍵(例えば、ユーザ識別子または他の一意な識別子)に関連付けられるように、キー付けされたデータベースである。当該キー付けされたデータベースは、端末デバイス106から受信されたキー付けされたデータ120を格納するように構成される。サーバはコンピュータプロセッサ、ロジックエンジン、サーバシステム、ソフトウェアモジュール、またはその任意の組合せの1つまたは複数を含む。
パブリッシャシステム104は、デジタルコンテンツ(例えば、ウェブページデータ112)を端末デバイス106のような他のシステムに配送するための要求を受信するように構成されたコンピューティングシステム(例えば、サーバシステム)を備える。パブリッシャシステム104は、ウェブページデータ114を端末デバイス106に提供する前に当該パブリッシャの様々なウェブページ上のデジタルコンテンツスロットを埋めるためのデジタル・コンポーネントデータをデジタル・コンポーネント重複排除システム102に要求する(116b)。デジタルコンテンツスロットは、コンテンツタグ(例えば、デジタルコンテンツタグ)により指定されたウェブページ内の位置を含む。ページアセンブリ動作は、当該デジタルコンテンツスロットに関連付けられた(例えば、それを参照し、指し示し、それに対して選択される等)デジタルコンテンツタグに基づいて当該コンテンツスロットをデジタル・コンポーネントデータで埋める。
端末デバイス106は、ラップトップ、タブレット、携帯電話、または他のコンピューティングデバイスのようなコンピューティングデバイスを含む。端末デバイス106は、デジタル・コンポーネントの要求(例えば、ウェブページ要求114、デジタル・コンポーネント要求116b)をパブリッシャシステム104、デジタル・コンポーネント重複排除システム102、またはその両方に送信する。端末デバイス106はキー付けされたデータをデジタル・コンポーネント重複排除システム102に送信する。当該キー付けされたデータは、以下でさらに詳細に説明する暗号化トークンデータ120aを含む。例えば、当該キー付けされたデータは端末デバイス106のデバイス識別子と異なる。例えば、当該キー付けされたデータは、端末デバイス106にインストールされたまたはその上で実行されるアプリケーションまたはデジタル・コンポーネント重複排除システム102に関連付けられた(例えば、それと対話する等)プログラムに関するユーザのプロフィールを示すユーザ識別子を含む。例えば、端末デバイス106がユーザ識別子を示すキー付けされたデータ120を送信しているので、ユーザ識別子は端末デバイス106と関連付けられる(例えば、それとグループ化され、それを指す等)。例えば、ユーザ識別子はユーザの人口統計を示す。当該キー付けされたデータは、デジタル・コンポーネント重複排除システム102により受信され、検索履歴キャッシュ136および暗号化トークンキャッシュ140の1つまたは複数に格納される。
端末デバイスの当該キー付けされたデータは端末デバイス106の暗号化トークンキャッシュ156の内容を含み、当該内容は暗号化トークンデータ120aとして送信される。暗号化トークンキャッシュ156は、セッションに対してネットワーク110上で端末デバイス106により受信されたデジタル・コンポーネントごとに、暗号化トークン(例えば、暗号化された識別子と識別子のペア)を格納する。当該暗号化トークンキャッシュにより格納された暗号化トークンが、デジタル・コンポーネント要求116aおよびbとともに暗号化トークンデータ120aとしてデジタル・コンポーネント重複排除システム102に送信される。暗号化トークンデータ120a、120bは、以下で説明するように、当該セッション中にデジタル・コンポーネントが既に端末デバイスに提供されているかどうかを判定するために、デジタル・コンポーネント重複排除システムにより使用される。暗号化トークンデータ120aは、現在のセッション中に既に端末デバイス106に提供されている1つまたは複数のデジタル・コンポーネントを表す。暗号化トークンデータ120bは、端末デバイス106に提供されるべき次の指定されたデジタル・コンポーネントを表す。暗号化トークンキャッシュ156は、暗号化トークンデータ120bの暗号化トークンを受信し格納する。当該トークンは、端末デバイス106からの暗号化データ120aの次の送信の一部となる。セッションが終了したとき、暗号化トークンキャッシュ156がクリアされる。当該セッションは、ユーザが端末デバイスでアプリケーション(例えば、ブラウザ)を閉じたとき、所定の期間の後、新たなネットワークドメインが要求されたとき、キャッシュ内のアイテムの数が所定数に到達したとき等に終了することができる。
暗号化データ120b内の端末デバイス106により受信された暗号化トークンは暗号化トークンキャッシュ156に格納される。当該暗号化トークンは、デジタル・コンポーネント重複排除システム102がデジタル・コンポーネントデータ118bのようなデジタル・コンポーネントの第1のインスタンスを提供したときにデジタル・コンポーネント重複排除システム102から受信されたデジタル・コンポーネントを表す。デジタル・コンポーネントデータ118a−gのデジタル・コンポーネントを表す暗号化トークンデータ120bが暗号化トークンキャッシュ156内の端末デバイスによりキャッシュされる。端末デバイス102がデジタル・コンポーネント要求116aを送信するとき、当該暗号化トークン(および端末デバイスにより受信された他の任意の暗号化トークン)がデジタル・コンポーネント重複排除システム102に暗号化トークンデータ102aとして送信される。
デジタル・コンポーネントプロバイダ108は、デジタル・コンポーネントデータの要求または適格性値148の要求を受信し、当該デジタル・コンポーネントデータまたは適格性値データ150を提供するように構成される。デジタル・コンポーネントプロバイダ108は広告主であることができる。例えば、デジタル・コンポーネントプロバイダ108は、ウェブページに関連するコンテンツタグにより示されるデジタルコンテンツデータ150を送信するかまたはウェブページ内に提示するためにロジック実行サーバ130により選択されたサーバを含む。
デジタル・コンポーネントプロバイダ108は暗号化トークンキャッシュ158を含む。暗号化トークンキャッシュ158は暗号化トークンを格納する。当該暗号化トークンを、デジタル・コンポーネント重複排除システム102により送信される適格性値要求148に応答して提供するためのデジタル・コンポーネントプロバイダ108により生成(例えば、暗号化)することができる。デジタル・コンポーネントプロバイダ108は、適格性値要求148が暗号化データ102aなしにデジタル・コンポーネント重複排除システム102から受信されたとき暗号化トークンデータ120aを暗号化および送信し、デジタル・コンポーネントが現在のセッション中に端末デバイスに以前に提供されていないこと(および任意のデジタル・コンポーネントが、適格性値の従来型の生成を用いてデジタル・コンポーネントプロバイダ108により提供されるのに適格であること)を意味する。
幾つかの実装では、デジタル・コンポーネントプロバイダ108が、適格性値要求148とともにデジタル・コンポーネント重複排除システム102から暗号化トークンデータ102aを受信する。デジタル・コンポーネントプロバイダ108はデジタル・コンポーネントプロバイダ108の公開鍵または秘密鍵を用いて暗号化トークンデータ102aを復号化することができる。デジタル・コンポーネントプロバイダは、デジタル・コンポーネント重複排除システム102が適格性値要求148を送信するときにデジタル・コンポーネント重複排除システム102から受信された暗号化トークンデータ120aを復号化する。デジタル・コンポーネントプロバイダ108は、暗号化トークンデータ120aに対する要求を解析し、データ120aを暗号化トークンキャッシュ158に格納する。デジタル・コンポーネントプロバイダ108が後続の適格性値要求148内の後続の暗号化トークンデータ120aを受信したとき、デジタル・コンポーネントプロバイダ108は、暗号化トークンデータ120aの暗号化トークンに関して暗号化トークンキャッシュ158をチェックする。
デジタル・コンポーネントプロバイダ108は、暗号化トークンデータ120aを使用して、適格性値がデジタル・コンポーネント重複排除システム102により要求されたデジタル・コンポーネントが、既に現在のセッション中に端末デバイス106に提供されているかどうかを識別する。デジタル・コンポーネントプロバイダ108は、暗号化トークンデータ120aを復号化して、デジタル・コンポーネント識別子(例えば、デジタル・コンポーネントを一意に識別する識別子)および復号化されたデジタル・コンポーネント識別子を持たせることができる。デジタル・コンポーネントプロバイダ108は、復号化検証ロジックエンジン160を用いて、復号化された識別子の検証比較を実施して、当該復号化された識別子を、暗号化トークンデータ120aに含まれるデジタル・コンポーネント識別子と比較する。デジタル・コンポーネントプロバイダ108がマッチを発見した場合、デジタル・コンポーネントプロバイダ108は当該デジタル・コンポーネントに対する低適格性値を返し、その結果、デジタル・コンポーネント重複排除システム102は、後続のロジック実行プロセスにおいて端末デバイス106に送信するために当該デジタル・コンポーネントを選択しない。当該低適格性値は、現在のセッションに対して当該デジタル・コンポーネントを端末デバイス106に提供するための、デジタル・コンポーネントプロバイダ108に対する減少された値を反映する。
デジタル・コンポーネント重複排除システム102は、幾つかのモジュールおよびサブシステムを用いて、検索結果、デジタル・コンポーネント要求116aおよびb、デジタル・コンポーネントデータ118a−g、および他のデータの1つまたは複数に対する要求をネットワーク110(例えば、インターネット)上で受信し、それに応答する。デジタル・コンポーネント重複排除システム102は、パブリッシャシステム104、端末デバイス106、またはデジタル・コンポーネントプロバイダ108の1つまたは複数とネットワーク110上で通信するように構成された通信インタフェース144を備える。通信インタフェース144は、当該受信された要求のデータを、ネットワーク110から、ロジック実行サーバ130、セキュリティ・サーバ130、またはパケット化されたデータ検索エンジン128のようなデジタル・コンポーネント重複排除システム102の1つまたは複数のサブシステムまたはモジュールに送信する。
ロジック実行サーバ130は、適格性値データ150をデジタル・コンポーネントプロバイダ108から受信し、ロジック実行プロセス(例えば、オークション、スコアリングプロセス、または別のロジック実行技術)を、適格性値150により表されるデジタル・コンポーネントに対して実行する。例えば、ロジック実行サーバ130はサードパーティロジック実行サーバを含む。ロジック実行サーバ130は、以下でさらに詳細に説明するように、候補デジタル・コンポーネントの各々に対してロジック実行プロセスを実行する。
パケット化されたデータ検索エンジン128は、検索クエリ158を受信し検索結果をインターネットから返すように構成された1つまたは複数のコンピューティングデバイス(例えば、サーバ)を備える。当該検索結果は、ウェブページ、画像、および他のタイプのファイルの混合を含む。パケット化されたデータ検索エンジン128はまた、データベースまたはオープンディレクトリで利用可能なデータをマイニングする。パケット化されたデータ検索エンジン128は、ウェブ・クローラでアルゴリズムを実行することでリアルタイム情報を維持する。例えば、検索エンジン128はサードパーティ検索エンジンを含む。
パケット化されたデータパーサ152は、デジタル・コンポーネント要求116aおよびbを受信し、暗号化トークンデータ120aに対する当該要求を解析する。暗号化トークンデータ120aは、デジタル・コンポーネントが現在のセッション中に既に端末デバイスに提供されているかを示す、端末デバイス106から提供された暗号化トークンを含む。パケット化されたデータパーサ152は、暗号化トークンがデジタル・コンポーネント要求116aおよびbに提供されるかどうかを判定する。暗号化トークンが提供される場合、パケット化されたデータパーサ152は、暗号化トークンデータ120aを復号化(適用可能な場合)するためにセキュリティ・サーバ126に送信するか、または、暗号化データ120aを、ロジック実行サーバ130により送信された適格性値要求148による復号化のために、デジタル・コンポーネントプロバイダ108に転送する。
セキュリティ・サーバ126は、暗号化トークンデータ120aをパケット化されたデータパーサ152から受信する。幾つかの実装では、セキュリティ・サーバ126は、1つまたは複数のデジタル・コンポーネントプロバイダ(例えば、デジタル・コンポーネントプロバイダ108)の暗号化鍵158を既に受信している。暗号化鍵158は、暗号化データ120aで受信された暗号化トークンを復号化するために使用される。幾つかの実装では、暗号化鍵158はデジタル・コンポーネントプロバイダ108の秘密鍵である。幾つかの実装では、暗号化鍵158はデジタル・コンポーネントプロバイダ108の公開鍵である。公開鍵を、当該セキュリティ・サーバにより使用して、端末デバイス106のようなクライアントにまたはパブリッシャシステム104に、暗号化トークンデータ120bとして送信するための暗号化トークンを暗号化することができる。幾つかの実装では、デジタル・コンポーネント重複排除システム102がデジタル・コンポーネントプロバイダ108の暗号化鍵を有さない場合、暗号化トークンデータ120aは、上述のように暗号化トークンデータ120aの復号化のためにデジタル・コンポーネントプロバイダ108に転送される。暗号化トークンデータ120aは、ロジック実行サーバ130のロジック実行プロセスの間に適格性値要求148で転送される。
幾つかの実装では、セキュリティ・サーバ126は、デジタル・コンポーネント重複排除システム102が暗号化鍵をデジタル・コンポーネントプロバイダ108から既に受信していたとしても、暗号化トークンデータ120aを復号化しない。セキュリティ・サーバ126はその代わり、ロジック実行プロセスの候補デジタル・コンポーネントが(暗号化データ120aを復号化するようにデジタル・コンポーネントプロバイダ108に要求するのを排除する)適格性値アプリケーションプログラミングインタフェース(API)エンドポイントに関連付けられていないと登録インタフェース154が判定するまで待機する。このケースでは、セキュリティ・サーバ126は暗号化データ120aを復号化し、その結果、重複したデジタル・コンポーネントを、ロジック実行サーバ130のロジック実行プロセスから除去することができる。
登録インタフェース154は、1つまたは複数のデジタル・コンポーネントプロバイダをデジタル・コンポーネント重複排除システム102に登録する。登録インタフェース154は適格性値要求APIを使用して、デジタル・コンポーネントプロバイダをデジタル・コンポーネント重複排除システム102に登録する。当該登録インタフェースをチェックして、当該デジタル・コンポーネントパブリッシャが当該重複排除プロセスに参加しているかどうかを判定することができる。当該デジタル・コンポーネントが参加している場合、暗号化トークンデータ120aを、ロジック実行サーバ130のロジック実行プロセスの間にデジタル・コンポーネントプロバイダに送信することができる。登録インタフェース154は、登録されたデジタル・コンポーネントプロバイダのリストを、登録されたAPIエンドポイントキャッシュ138に格納することができる。
ロジック実行サーバ130は、暗号化トークンを暗号化データ120aから受信し、デジタル・コンポーネントに対する要求に応答してクライアント・デバイスに提供すべきデジタル・コンポーネントを指定するための1つまたは複数のロジック実行プロセスを実施する。ロジック実行サーバ130は候補デジタル・コンポーネントのリストを生成する。暗号化トークンがパケット化されたデータパーサにより見つからなかった場合、ロジック実行サーバ130は、1つまたは複数のデジタル・コンポーネントプロバイダから適格性値を要求すること(148)に進む。当該データセットが空であるかまたは端末デバイス106から受信されておらず、現在のセッションが新鮮でありデジタル・コンポーネントがまだ現在のセッション中に端末デバイスに提供されていないことを示すので、当該要求はこのケースでは暗号化トークンデータ120aを含まない。
(デジタル・コンポーネントが、提供されるべきとロジック実行サーバ130により指定された場合)、デジタル・コンポーネントプロバイダは提供されるべきデジタル・コンポーネントを示す適格性値データ150および関連付けられた暗号化トークンデータ120bを返す。ロジック実行サーバ130は、全ての要求された適格性値をデジタル・コンポーネントプロバイダ108から受信した後、ロジック実行プロセスを実施し、提供されるべきデジタル・コンポーネントを指定する。当該指定されたデジタル・コンポーネントおよび関連付けられた暗号化トークンがクライアント・デバイスに送信される。
幾つかの実装では、ロジック実行サーバ130は、端末デバイス106から受信された暗号化トークンを示すデータを受信する。セキュリティ・サーバが当該暗号化トークンを暗号化トークンデータ120aから復号化した場合、ロジック実行サーバ130は、当該復号化された識別子を当該暗号化トークンの暗号化されていない識別子と比較することで、当該復号化された識別子を検証する。マッチが見つかった場合、当該デジタル・コンポーネントはロジック実行プロセスから不適格とされ、候補デジタル・コンポーネントのリストから除去される。要求がデジタル・コンポーネントプロバイダ108に送信されず、そうでない場合は受信された適格性値をデジタル・コンポーネントプロバイダ108から送信する必要がある帯域幅利用が減る。さらに、より少ないデジタル・コンポーネントがロジック実行プロセスの間に評価されるので、処理時間が減り、ロジック実行プロセスに起因するレイテンシが、提供するためのプラットフォームの全ての候補デジタル・コンポーネントを評価するプロセスに関して減る。
幾つかの実装では、当該ロジック実行サーバは、セキュリティ・サーバ126により復号化されていない、端末デバイス106から受信された暗号化トークンを示すデータを受信する。ロジック実行サーバ130は、暗号化トークンデータ120aを上述のように復号化するためにデジタル・コンポーネントプロバイダ108に転送する。当該デジタル・コンポーネントプロバイダは、当該デジタル・コンポーネントがデジタル・コンポーネントプロバイダ108の復号化検証ロジック160の検証プロセスに基づいて既に提供されているかどうかを反映する適格性値を含む適格性値データ150を返す。適格性値データ150は従って、デジタル・コンポーネントプロバイダに対する当該デジタル・コンポーネントの値を自動的に説明し、当該ロジック実行サーバは適格性値データ150を用いてロジック実行プロセスを実施する。当該説明されたロジック実行プロセスの各々は、重複したデジタル・コンポーネントが単一のセッションの間に端末デバイスに送信されないことを保証する。
デジタル・コンポーネント重複排除システム102のキャッシュはデータを格納するために使用される。デジタル・コンポーネント重複排除システム102の当該キャッシュは、単一の位置に結合されることができ、または、離散キャッシュであることができる。
検索履歴キャッシュ136は、メモリ内またはディスク上のデータ・ストア、例えば、分散データベースのようなデータベースを含む。検索履歴キャッシュ136は、端末デバイス106により送信される検索クエリを表すデータを含む。デジタル・コンポーネント重複排除システム102は検索クエリをキャッシュする。なぜならば、当該検索クエリがロジック実行プロセスを実行するために堅牢なデータセットを端末デバイス106に提供するからである。
暗号化トークンキャッシュ140は、デジタル・コンポーネント重複排除システム102により受信された暗号化トークンを暗号化トークンデータ120aに格納する。当該暗号化トークンは端末デバイス106に関連付けられ、ロジック実行プロセス中に使用される。暗号化トークンキャッシュ140は、メモリ内またはディスク上のデータ・ストア、例えば、分散データベースのようなデータベースを含む。
キー付けされたデジタル・コンポーネントキャッシュ142は、候補デジタル・コンポーネントのような、ロジック実行プロセスに対して取り出されているデジタル・コンポーネントを格納する。キー付けされたデジタル・コンポーネントキャッシュ142はメモリ内またはディスク上のデータ・ストア、例えば、分散データベースのようなデータベースを含む。当該デジタル・コンポーネントは、テキスト、画像、ビデオ、アプリケーションファイル、オーディオ等の1つまたは複数を含む。上述のように、キー付けされたデジタル・コンポーネントキャッシュ142はシステムのメモリを含む。当該デジタル・コンポーネントをメモリに格納することは、例えばパブリッシャシステム104または端末デバイス106により、当該デジタル・コンポーネントに対する要求に応答した当該デジタル・コンポーネントの提供に関するレイテンシを削減する。当該デジタル・コンポーネントの提供に関するレイテンシは、当該システムがデータ問合せおよびデータベースからの取出しを実施せずに当該デジタル・コンポーネントを提供するのでリアルタイムである。キー付けされたデジタル・コンポーネントキャッシュ142については、図2Aを参照してさらに詳細に説明する。
暗号化キーキャッシュ134は、デジタル・コンポーネントプロバイダから受信された暗号化キー(公開および秘密の両方)を格納する。暗号化キーキャッシュ134は、暗号化トークンキャッシュ140または他の任意のキャッシュと結合されることができ、それらを含む。
パブリッシャシステム104は、ウェブページコンテンツをホストするサーバまたはサーバのネットワークを含む。パブリッシャシステム104は商用ホスティング・サービスまたは独立なサーバを含むことができる。パブリッシャシステム104は、パブリッシャシステム104によりホストされるウェブ・アドレスからのウェブページデータ112の要求に応答して、ウェブページデータ112を端末デバイス106に提供する。
端末デバイス106がウェブページデータ112を要求すると、パブリッシャシステム104は、デジタル・コンポーネント重複排除システム102からのデジタル・コンポーネントデータ116bの要求を送信して、当該要求されたウェブページの任意のデジタル・コンポーネントスロットを埋める。パブリッシャシステム104が暗号化トークンデータ120aを端末デバイス106から受信する場合、パブリッシャシステム104は暗号化トークンデータ120aをデジタル・コンポーネント重複排除システム102に転送する。デジタル・コンポーネント重複排除システム102は、暗号化トークンデータ120aおよびデジタル・コンポーネントデータの要求116aを受信する。デジタル・コンポーネント重複排除システム102は、上述のように、ロジック実行を実施し、暗号化トークンデータ120aと異なる暗号化トークンを含むデジタル・コンポーネントデータ118a−gおよび暗号化トークンデータ120bをパブリッシャシステム104に返す。暗号化トークンデータ120bは、まだ端末デバイス106に提供されていないデジタル・コンポーネントデータを表し、暗号化データ120aは、現在のセッション中に端末デバイスに既に提供されているデジタル・コンポーネントに対する暗号化トークンを含む。
デジタル・コンポーネントデータ118aおよび暗号化データ120bはパブリッシャシステム104に送信される。パブリッシャシステム104は、暗号化トークンデータ120bおよび要求されたウェブページをロジック実行サーバ130により指定されたデジタル・コンポーネントとともに端末デバイス106に提供する。
図2Aを参照すると、キー付けされたデジタル・コンポーネントキャッシュ環境200の図が示されている。キー付けされたデジタル・コンポーネントキャッシュ142は、デジタル・コンポーネント重複排除システム102のロジック実行プロセスに対して使用されるデータをインデックス付けする。デジタル・コンポーネントへの参照212がキー付けされたデジタル・コンポーネントキャッシュ142に格納され、またはデジタル・コンポーネント自体214が格納される。キー付けされたデジタル・コンポーネントキャッシュ142は、(適用可能な場合)関連付けられたデジタル・コンポーネントデータへのデジタル・コンポーネント参照および当該デジタル・コンポーネント(例えば、候補デジタル・コンポーネント)に関連付けられた他のデータを示すインジケータを関連付けるデジタル・コンポーネントキー付けされたインデックス210を含む。例えば、デジタル・コンポーネントキー付けされたインデックス210は、当該デジタル・コンポーネントのデジタル・コンポーネントプロバイダの適格性値APIへの登録を指すインジケータ216を含むことができる。デジタル・コンポーネントキー付けされたインデックス210は、デジタル・コンポーネント重複排除システム102が当該デジタル・コンポーネントに関連付けられたデジタル・コンポーネントプロバイダに対する暗号化鍵および受信された鍵のタイプを受信したかどうかを示すインジケータ218を含むことができる。ロジック実行サーバ130は、このデータを使用して、ロジック実行プロセスの間にどのプロセスをトリガするかを判定する。デジタル・コンポーネントのキー付けされたインデックス210は、当該データを送信したデバイスに暗号化トークンデータ120aを関連付けるデバイス識別子220のリストを含む。
幾つかの実装では、パケット化されたデータ検索エンジンは、受信されたデジタル・コンポーネント要求116aおよびbで暗号化鍵が提供されるかどうかを判定するための暗号化トークンロジック228を含む。当該暗号化トークンロジックは、パーサロジック230を使用してデジタル・コンポーネント要求データを無視する。当該暗号化トークンロジックは、当該暗号化トークンが存在するかどうかを判定するために当該暗号化方式で使用される特定のヘッダ、付加されたデータ等を検出することができる。暗号化トークンロジック228は、当該結果の指示を、キー付けされたデジタル・コンポーネントキャッシュ142のデジタル・コンポーネントのキー付けされたインデックス210に渡すことができる。
幾つかの実装では、ロジック実行サーバ130は候補デジタル・コンポーネントのキー付けされたキャッシュ241を含む。当該候補デジタル・コンポーネントのキー付けされたキャッシュ241を使用して、ロジック実行プロセスの間に候補デジタル・コンポーネントのリストを格納することができる。候補デジタル・コンポーネントのキー付けされたキャッシュ241を、キー付けされたデジタル・コンポーネントキャッシュ142と結合することができる。
ロジック実行サーバ130の適格性値ロジック242は、ロジック実行プロセスの間にデジタル・コンポーネントを指定するための判定を行うために使用される。例えば、最高の適格性値を使用して、クライアントに送信するためのデジタル・コンポーネントを指定することができる。幾つかの実装では、適格性値ロジック242は、デジタル・コンポーネントプロバイダ108により送信された特定の適格性値を認識して、候補デジタル・コンポーネントをロジック実行プロセスでの考慮から排除すべきであると判定する。例えば、当該適格性値は、ゼロ、負の数等であることができる。適格性値ロジック242はしたがって、現在のセッション中に既に示されている(例えば、重複する)かまたはそうでない場合は送信に関して望ましくないデジタル・コンポーネントを考慮から破棄する。
ターゲティング・ロジック244は、デジタル・コンポーネントプロバイダから受信された適格性値を重み付けするために、ロジック実行プロセスの間に使用される。端末デバイスのユーザに特に関連するデジタル・コンポーネントはより重く重み付けされる。特定のユーザに対して、ターゲティング・ロジック244は一貫して特定の候補デジタル・コンポーネントを高く重み付けしうるので、当該ロジック実行エンジンは、上述のロジック実行プロセスにより決定されるように既に示されているデジタル・コンポーネントを不適格とする。
登録インタフェース154は、当該候補デジタル・コンポーネントが関連付けられたデジタル・コンポーネントパブリッシャに関連付けられる登録されたAPIエンドポイント138を起動することができる。当該デジタル・コンポーネントパブリッシャが登録した場合、当該APIエンドポイントが起動され、適格性値要求148が暗号化トークンデータ120aとともに送信される。
セキュリティ・サーバ126は、暗号化キーキャッシュ134、検証ロジック234、および暗号化ロジック236を含むことができる。検証ロジック234は、復号化された暗号化トークンをデジタル・コンポーネントに関連付けられた識別子と比較して、当該デジタル・コンポーネントが現在のセッション中に提供されているかどうかを判定する。当該検証は、当該復号化されたトークンを当該デジタル・コンポーネントの識別子と比較する比較器動作、等価動作、または他の動作であることができる。暗号化ロジック236は、デジタル・コンポーネント重複排除システム102に対する暗号化および復号化機能を実施する。例えば、当該暗号化ロジックは、デジタル・コンポーネントプロバイダ108から受信された公開鍵を使用して暗号化トークンを暗号化するか、または、デジタル・コンポーネントプロバイダ108の公開鍵または秘密鍵を使用して暗号化トークンデータ120aの暗号化トークンを復号化することができる。
図2Bは、クライアントデバイス(例えば、図1の端末デバイス106)上に表示する2つのグラフィカルユーザインタフェース252、262の比較250を示す。グラフィカルユーザインタフェース252はユーザからの検索クエリ254を含む。検索クエリ254は、デジタル・コンポーネントデータに対する要求116aおよびbを生成するために使用される。ロジック実行プロセスは、当該クエリおよび端末デバイスに関連付けられた他のキー付けされたデータに基づいて特定のデジタル・コンポーネント258および検索結果256をターゲットとする。インタフェース252に対して、重複排除が使用されず、同一のデジタル・コンポーネント258を、ユーザが同一のクエリを入力するたびに提供することができる。
インタフェース262は、端末デバイス106のユーザが訪問した後続のウェブページを示す。ウェブページデータ266が表示される。しかし、ユーザがちょうどインタフェース252で見た同一のデジタル・コンポーネント258を表示するのではなく、新たなデジタル・コンポーネント268が当該ページに出現させるために指定される。
図3は、デジタル・コンポーネントサービス重複排除のために取られるアクション300の図である。クライアント・デバイスはデジタル・コンポーネントに対する要求を送信する(302)。デジタル・コンポーネント重複排除システム102は当該デジタル・コンポーネントに対する当該要求を受信する(304)。デジタル・コンポーネント重複排除システム102は暗号化トークンをチェックする(306)。トークンが見つからない場合、デジタル・コンポーネント重複排除システム102は候補デジタル・コンポーネントのリスト(308)を生成する(308)。デジタル・コンポーネント重複排除システム102は適格性値に対する要求をデジタル・コンポーネントプロバイダ108に送信する(308)。
デジタル・コンポーネントプロバイダ108は、当該適格性値要求を受信し(312)、は当該要求に応答するための適格性値および暗号化トークンを生成する(314)。デジタル・コンポーネントプロバイダ108は当該適格性値および暗号化トークンをデジタル・コンポーネント重複排除システム102に送信する(316)。
デジタル・コンポーネント重複排除システム102は当該適格性値および候補デジタル・コンポーネントに対する暗号化トークンを受信する(318)。デジタル・コンポーネント重複排除システム102は、ロジック実行プロセスに基づいてリストからデジタル・コンポーネントを指定する(320)。デジタル・コンポーネント重複排除システム102は、当該デジタル・コンポーネントおよび関連付けられた暗号化トークンをクライアント・デバイス105(例えば、図1の端末デバイス106)に送信する(322)。クライアント・デバイス105は、当該デジタル・コンポーネントおよび関連付けられたトークンを受信し(324)、デジタル・コンポーネントに対する後続の要求に応答するために使用される暗号化トークンをキャッシュする(326)。クライアント・デバイス105は当該デジタル・コンポーネントを表示する(328)。別の要求が送信されている(330)場合、クライアント・デバイス105は図4で以下に示すようにステップ(406)に進む。現在のセッションが終了しようとしている場合、クライアント・デバイス105は暗号化トークンデータの当該キャッシュ(332)をクリアする。
図4は、デジタル・コンポーネントサービス重複排除のために取られるアクション400を示す。幾つかの実装では、デジタル・コンポーネントプロバイダは暗号化鍵をデジタル・コンポーネント重複排除システム102に送信する(402)。デジタル・コンポーネント重複排除システム102は当該暗号化鍵をキー付けされたデータベースに格納する(404)。
クライアント・デバイス105(例えば、図1の端末デバイス106)は、デジタル・コンポーネントに対する要求をデジタル・コンポーネント重複排除システム102に送信し(406)、当該要求は、クライアント・デバイスがキャッシュした暗号化トークンデータを含む。デジタル・コンポーネント重複排除システム102は、当該デジタル・コンポーネントに対する当該要求を受信し(408)、暗号化トークンをチェックする(410)。当該要求が暗号化トークンを含むので、当該トークンが発見される。デジタル・コンポーネント重複排除システム102は候補デジタル・コンポーネントのリストを生成する(412)。デジタル・コンポーネント重複排除システム102は、当該デジタル・コンポーネントに関連付けられた要求インタフェースをチェックする(414)。何も見つからない場合、デジタル・コンポーネント重複排除システム102は、当該格納された暗号化キーを用いて当該暗号化トークンを復号化する(406)。デジタル・コンポーネント重複排除システム102は、当該復号化されたトークンを検証し(418)、当該検証の結果(例えば、当該デジタル・コンポーネントの以前のサービスを示すマッチが見つかった場合)に基づいて、当該デジタル・コンポーネントを候補デジタル・コンポーネントの当該リストから除去する(420)。当該プロセスは次いで、図3のステップ310により示すように継続する。
図5は、デジタル・コンポーネントサービスの重複排除のために取られるアクション500を示す。クライアントデバイス105(例えば、図1の端末デバイス106)は、デジタル・コンポーネントに対する要求をデジタル・コンポーネント重複排除システム102に送信する(502)。当該要求は暗号化トークンデータを含む。当該デジタル・コンポーネントは当該要求および当該暗号化トークンデータを受信する(504)。デジタル・コンポーネント重複排除システム102は、当該要求の当該トークンをチェックし、当該トークンを見つける(506)。デジタル・コンポーネント重複排除システム102はロジック実行プロセスのための候補デジタル・コンポーネントのリストを生成する(508)。デジタル・コンポーネント重複排除システム102は、当該デジタル・コンポーネントに関連付けられた要求インタフェースをチェックし、その1つを見つける(510)。デジタル・コンポーネント重複排除システム102は、デジタル・コンポーネントプロバイダ108の登録されたエンドポイントを起動することで、適格性値に対する要求をデジタル・コンポーネントプロバイダ108に送信する(512)。
デジタル・コンポーネントプロバイダは当該要求および当該暗号化トークンを受信する(514)。デジタル・コンポーネントプロバイダ108は、図1を参照して説明されたように、当該暗号化トークンを復号化し、当該暗号化トークンを検証する。デジタル・コンポーネントプロバイダは、当該適格性値が要求された当該デジタル・コンポーネントが既にクライアント・デバイス105に示されているかどうかを判定することができる。デジタル・コンポーネントプロバイダは、当該検証に基づいて当該適格性値を改訂する(520)。
デジタル・コンポーネントプロバイダが当該適格性値をデジタル・コンポーネント重複排除システム102に送信する(522)。デジタル・コンポーネント重複排除システム102は、当該値を受信し(524)、クライアント・デバイス105に送信するためのデジタル・コンポーネントを当該リストから指定する(528)。デジタル・コンポーネント重複排除システム102は、当該指定されたデジタル・コンポーネントおよび関連付けられた暗号化トークンをクライアント・デバイス105に送信する(530)。
クライアント・デバイス105は、当該デジタル・コンポーネントおよび関連付けられた暗号化トークンを受信する(532)。クライアント・デバイスは、現在のセッション中にデジタル・コンポーネントに対する後続の要求とともに送信するために当該トークンをキャッシュする(534)。クライアント・デバイス105は当該デジタル・コンポーネントを表示する(536)。現在のセッションが終了しようとしている場合、クライアント・デバイス105は当該キャッシュをクリアする(538)。
図6は、デジタル・コンポーネント重複排除に対するプロセス600を表す流れ図を示す。デジタル・コンポーネント重複排除システム(例えば、図1のデジタル・コンポーネント重複排除システム102)は、パケット化されたデータをクライアントデバイスから受信する(602)。デジタル・コンポーネント重複排除システム102は、当該パケット化されたデータを検索して、デジタル・コンポーネントデータに対する以前の要求に応答して送信された第1のデジタル・コンポーネントに関連付けられた暗号化トークンの存在を決定する。候補デジタル・コンポーネントのリストが生成される(606)。当該デジタル・コンポーネントは、候補デジタル・コンポーネントが適格性値を要求するためのデータインタフェースと関連付けられる(例えば、APIに登録される)かどうかを判定する(608)。デジタル・コンポーネント重複排除システム102は、暗号化トークンおよび当該適格性値の要求を含むパケット化されたデータを生成する(610)。デジタル・コンポーネント重複排除システム102は、候補デジタル・コンポーネントのリストから、端末デバイスに送信するための第2のデジタル・コンポーネントを指定する(612)。
図7は、本明細書で説明したシステムおよび方法を、クライアントとしてまたはサーバもしくは複数のサーバとして実装するために使用しうる例示的なコンピューティングデバイス700、750を示す。コンピューティングデバイス700は、様々な形態のデジタルコンピュータ、のようなラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータを表すものとして意図されている。コンピューティングデバイス750は、様々な形態のモバイルデバイス、のような携帯情報端末、携帯電話、スマートフォン、および他の類似のコンピューティングデバイスを表すものとして意図されている。さらに、コンピューティングデバイス700または750はユニバーサル・シリアル・バス(USB)フラッシュ・ドライブを含むことができる。当該USBフラッシュ・ドライブはオペレーティング・システムおよび他のアプリケーションを格納してもよい。当該USBフラッシュ・ドライブは、別のコンピューティングデバイスのUSBポートに挿入しうるワイヤレス送信機またはUSBコネクタのような入力/出力コンポーネントを含むことができる。本明細書で示すコンポーネント、それらの接続および関係、およびそれらの機能は例示的なものにすぎず、本明細書で説明および/またはクレームした本発明の諸実装を限定するものではない。
コンピューティングデバイス700は、プロセッサ702、メモリ704、記憶デバイス706、メモリ704および高速度拡張ポート710に接続する高速度インタフェース708、および低速バス714および記憶デバイス706に接続する低速速度インタフェース712を含む。コンポーネント702、704、706、708、710、および712の各々は、様々なバスを用いて相互接続され、必要に応じて共通のマザーボードにまたは他の方式で搭載されてもよい。プロセッサ702は、高速度インタフェース708に接続されたディスプレイ716のような外部入力/出力デバイス上のGUIに対してグラフィカル情報を表示するためのメモリ704内または記憶デバイス706上に格納された命令を含む、コンピューティングデバイス700内で実行するための命令を処理することができる。他の実装では、複数のプロセッサおよび/または複数のバスを、必要に応じて、複数のメモリおよび複数のタイプのメモリとともに使用してもよい。また、複数のコンピューティングデバイス700を、当該必要な動作の一部を提供する各デバイスに(例えば、サーババンク、1群のブレードサーバ、またはマルチプロセッサシステムとして)接続してもよい。
メモリ704はコンピューティングデバイス700内に情報を格納する。1実装では、メモリ704は揮発性メモリユニットまたはユニットである。別の実装では、メモリ704は不揮発性メモリユニットまたはユニットである。メモリ704はまた、磁気または光ディスクのような別の形態のコンピュータ可読媒体であってもよい。
記憶デバイス706は大容量記憶をコンピューティングデバイス700に提供することができる。1実装では、記憶デバイス706は、ストレージ・エリア・ネットワークまたは他の構成におけるデバイスを含む、フロッピディスクデバイス、ハード・ディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の類似の固体メモリデバイス、またはデバイスのアレイのようなコンピュータ可読媒体であるかまたはそれを含んでもよい。コンピュータプログラム製品を情報キャリアに有形的に組み込むことができる。当該コンピュータプログラム製品はまた、実行されたとき、上述したもののような1つまたは複数の方法を実施する命令を含んでもよい。当該情報キャリアは、メモリ704、記憶デバイス706、またはプロセッサ702上のメモリのようなコンピュータまたはマシン可読媒体である。
高速度コントローラ708はコンピューティングデバイス700に対する帯域幅な集約的動作を管理し、低速度コントローラ712は低帯域幅−集約的動作を管理する。かかる機能の割当ては例示的なものにすぎない。1実装では、高速度コントローラ708は、(例えば、グラフィックスプロセッサまたはアクセラレータを通じて)メモリ704、ディスプレイ716に接続され、高速度拡張ポート710に接続される。高速度拡張ポート710は、様々な拡張カード(図示せず)を受け入れてもよい。当該実装では、低速速度コントローラ712は記憶デバイス706および低速速度拡張ポート714に接続される。当該低速度拡張ポートは、様々な通信ポート(例えば、USB、Bluetooth(登録商標)、Ethernet、ワイヤレスEthernet)を含んでもよく、例えば、ネットワークアダプタを通じて、キーボード、ポインティング・デバイス、スキャナのような1つまたは複数の入力/出力デバイス、またはスイッチまたはルータのようなネットワークデバイスに接続されてもよい。
当該図面で示すように、コンピューティングデバイス700を幾つかの異なる形態で実装してもよい。例えば、標準的サーバ720として実装してもよく、または、1群のかかるサーバ内で複数回実装してもよい。また、ラック・サーバシステム724の一部として実装してもよい。さらに、ラップトップコンピュータ722のようなパーソナルコンピュータで実装してもよい。あるいは、コンピューティングデバイス700からのコンポーネントを、デバイス750のようなモバイルデバイス(図示せず)内の他のコンポーネントと組み合せてもよい。かかるデバイスの各々はコンピューティングデバイス700、750の1つまたは複数を含んでもよく、システム全体を、互いに通信する複数のコンピューティングデバイス700、750から構成してもよい。
コンピューティングデバイス750は、他のコンポーネントのうち、プロセッサ752、メモリ764、入力/出力デバイスのようなディスプレイ754、通信インタフェース766、およびトランシーバ768を含む。デバイス750にまた、マイクロドライブまたは他のデバイスのような記憶デバイスを提供して、追加の記憶を提供してもよい。コンポーネント750、752、764、754、766、および768の各々は様々なバスを用いて相互接続され、当該コンポーネントの幾つかを、必要に応じて共通のマザーボードにまたは他の方式で搭載してもよい。
プロセッサ752は、メモリ764に格納された命令を含むコンピューティングデバイス750内の命令を実行することができる。当該プロセッサを、別々のおよび複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装してもよい。さらに、当該プロセッサを、幾つかのアーキテクチャの何れかを用いて実装してもよい。例えば、プロセッサ410は、CISC(複雑命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、またはMISC(最小命令セットコンピュータ)プロセッサであってもよい。当該プロセッサは、例えば、ユーザインタフェースのコントロール、デバイス750により実行されるアプリケーション、およびデバイス750によるワイヤレス通信のようなデバイス750の他のコンポーネントの協調を提供してもよい。
プロセッサ752は、制御インタフェース758およびディスプレイインタフェース756に接続されたディスプレイ754を通じてユーザと通信してもよい。ディスプレイ754は、例えば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイまたはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。当該ディスプレイインタフェース756は、ディスプレイ754を駆動してグラフィカルおよび他の情報をユーザに提供するための適切な回路を含んでもよい。制御インタフェース758は、コマンドをユーザから受信し、それをプロセッサ752に送信するために変換してもよい。さらに、外部インタフェース762は、他のデバイスとのデバイス750の近場通信を可能とするために、プロセッサ752と通信してもよい。外部インタフェース762は、他の実装において、例えば、有線通信、またはワイヤレス通信を提供してもよく、複数のインタフェースを使用してもよい。
メモリ764は情報をコンピューティングデバイス750内に格納する。メモリ764を、コンピュータ可読媒体または媒体、揮発性メモリユニットまたはユニット、または不揮発性メモリユニットまたはユニットの1つまたは複数として実装することができる。拡張メモリ774を提供してもよく、拡張インタフェース772を通じてデバイス750に接続してもよい。拡張インタフェース772は、例えば、SIMM(シングルインラインメモリモジュール)カードインタフェースを含んでもよい。かかる拡張メモリ774はデバイス750に対する追加の記憶空間を提供してもよく、または、アプリケーションまたは他の情報をデバイス750のために格納してもよい。具体的には、拡張メモリ774は、上述のプロセスを実行または補完するための命令を含んでもよく、また、セキュアな情報を含んでもよい。したがって、例えば、拡張メモリ774はデバイス750に対するセキュリティモジュールであってもよく、デバイス750のセキュアな利用を許可する命令でプログラムしてもよい。さらに、セキュアなアプリケーションを、当該SIMMカードを介して、追加の情報とともに提供してもよく、当該SIMMカード上の識別情報をハッキング不可能な方式で配置してもよい。
当該メモリは、以下で説明するように、例えば、フラッシュメモリおよび/またはNVRAMメモリを含んでもよい。1実装では、コンピュータプログラム製品は情報キャリアに有形的に組み込まれる。当該コンピュータプログラム製品は、実行されたとき、上述したもののような1つまたは複数の方法を実施する命令を含む。当該情報キャリアは、メモリ764、拡張メモリ774、または例えば、トランシーバ768または外部インタフェース762上で受信されうるプロセッサ752上のメモリのようなコンピュータまたはマシン可読媒体である。
デバイス750は、通信インタフェース766を通じて無線で通信してもよく、通信インタフェース766は必要に応じてデジタル信号処理回路を含んでもよい。通信インタフェース766は、とりわけGSM(登録商標)音声呼、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSのような様々なモードまたはプロトコルのもとでの通信を提供してもよい。かかる通信は、例えば、高周波トランシーバ768を通じて発生してもよい。さらに、短範囲通信が、例えばBluetooth(登録商標)、WiFi、または他のかかるトランシーバ(図示せず)を用いて発生してもよい。さらに、GPS(全地球測位システム)受信器モジュール770は、追加のナビゲーション関連および位置関連のワイヤレスデータをデバイス750に提供してもよい。デバイス750を、必要に応じて、デバイス750で実行されるアプリケーションにより使用してもよい。
デバイス750はオーディオコード760を用いて可聴に通信してもよい。オーディオコード760は、発話された情報をユーザから受信し、それを有用なデジタル情報に変換してもよい。オーディオコード760は同様に、例えばスピーカを通じて、例えば、デバイス750のハンドセットにおいて、ユーザに対する可聴音を生成してもよい。かかる音は音声通話からの音を含んでもよく、記録された音(例えば、音声メッセージ、音楽ファイル等)を含んでもよく、デバイス750で動作するアプリケーションにより生成された音を含んでもよい。
当該図面で示すように、コンピューティングデバイス750を幾つかの異なる形態で実装してもよい。例えば、携帯電話780として実装してもよい。また、スマートフォン782、携帯情報端末、または他の類似のモバイルデバイスの一部として実装してもよい。
本明細書で説明したシステムおよび技術の様々な実装を、デジタル電子回路、集積回路、特別に設計されたASIC(特殊用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現することができる。これらの様々な実装は、少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能および/または解釈可能である1つまたは複数のコンピュータプログラム内の実装を含むことができ、当該少なくとも1つのプログラム可能プロセッサは特殊目的または汎用目的であってもよく、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとデータおよび命令を送受信するように接続されてもよい。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラム可能プロセッサに対するマシン命令を含み、高レベル手続き型および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/マシン言語で実装することができる。本明細書で使用する際、「マシン可読媒体」「コンピュータ可読媒体」という用語は、プログラム可能プロセッサにマシン命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラム可能ロジックデバイス(PLD))を指し、マシン命令をマシン可読信号として受信するマシン可読媒体を含む。「マシン可読信号」という用語は、マシン命令および/またはデータをプログラム可能プロセッサに提供するために使用される任意の信号を指す。
ユーザとの対話を提供するために、本明細書で説明したシステムおよび技術を、情報をユーザに表示するためのディスプレイデバイス(例えば、CRT(カソード・レイ・チューブ)またはLCD(液晶ディスプレイ)モニタ)およびユーザがそれにより入力を当該コンピュータに提供できるキーボードおよびポインティング・デバイス(例えば、マウスまたはトラックボール)を有するコンピュータで実装することができる。他種のデバイスを使用してユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意の形態のセンサ・フィードバック(例えば、視覚的フィードバック、可聴フィードバック、または触覚フィードバック)であることができ、ユーザからの入力を、音響、会話、または触覚入力を含む任意の形態で受信することができる。
本明細書で説明したシステムおよび技術を、(例えば、データサーバとして)バックエンドコンポーネントを含む、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)含むか、またはフロント・エンドコンポーネント(例えば、ユーザがそれを通じて本明細書で説明したシステムおよび技術の実装と対話できるグラフィカルユーザインタフェースまたはウェブ・ブラウザを有するクライアントコンピュータ)、またはかかるバックエンド、ミドルウェア、またはフロント・エンドコンポーネントの任意の組合せを含む、コンピューティングシステムで実装することができる。当該システムの当該コンポーネントを、任意の形態または媒体のデジタルデータ通信(例えば、通信ネットワーク)。通信ネットワークの例を含むローカル・エリア・ネットワーク(「LAN」)、広域ネットワーク(「WAN」)、ピアツーピアネットワーク(アドホックまたは静的なメンバを有する)、グリッドコンピューティングインフラ、およびインターネットにより相互接続することができる。
当該コンピューティングシステムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワークを通じて対話する。クライアントおよびサーバの当該関係は、コンピュータプログラムが当該夫々のコンピュータで実行され互いに対するクライアント−サーバ関係を有することによって生ずる。
幾つかの実装を上で詳細に説明したが、他の修正が可能である。さらに、デジタル・コンポーネント配送の重複排除のための他の機構を使用してもよい。さらに、図面で示した当該論理フローは、所望の結果を実現するために、示した特定の順序、または逐次的順序を要求しない。他のステップを提供してもよく、またはステップを当該説明されたフローから削除してもよく、他のコンポーネントを当該説明されたシステムに対して追加または削除してもよい。したがって、他の実装は添付の特許請求の範囲内にある。