したがって、本発明のある実施形態は、サービス管理システムによって提供されるサービス(例えば、メッセージ管理サービス又はオンラインコンテンツ管理サービス)へのアクセスを管理する技術に関連する。本発明のいくつかの実施形態は、電子画像の配信に関する技術を提供し、当該電子画像は、サービスへのアクセスを要求する、電子画像のユーザに付与された権利を通じてサービスへのアクセスを管理(例えば、許諾又は制御)するために使用されうる。
本開示のある実施形態は、サービス(例えば、メッセージ管理サービス又はオンラインコンテンツ管理サービス)へのアクセスの管理を、それぞれがアクセス情報を含みうる電子画像(例えば、コイン)の配信を通じて可能にする。電子画像は、電子メッセージ(例えば、電子メールメッセージ)を介してユーザへ配信されうる。ユーザは、電子画像を利用(redeem)してサービスへアクセスするために、クライアントデバイスにおいてアプリケーションのインタフェース内で、電子画像とのインタラクション(例えば、容器(receptacle)への電子画像のドラッグ)を行いうる。電子画像とのインタラクションは、ユーザのアカウントのアクセスをサービスに要求させうる。電子画像内のアクセス情報は、要求された場合に、サービスにアクセスする権限を判定するために使用されうる。いくつかの実施形態では、アクセス情報は、クライアントデバイスからサービスへ送信されて、当該クライアントデバイスが当該サービスにアクセスすることが認可されているかどうかを判定するために使用されうる。これにより、権限のないユーザが、アクセス情報を使用してサービスにアクセスするためにクライアントデバイスを操作することを防止する。
電子画像内のアクセス情報は、サービスにアクセスする、及び/又はサービスによって提供される以下のもの、即ち、機能、フィーチャ、オペレーション、オプション、方法、又はそれらの組み合わせのうちの1つ以上にアクセスする許可(例えば、許諾又は権限)を、検証に応じてアカウントに提供しうる値(例えば、セキュリティキー、ハッシュ値、又は他の何らかのセキュリティ情報)を含みうる。いくつかの実施形態では、サービスへのアクセスは、電子画像の利用に基づいて権限を付与されたアカウントに対して制御されうる。電子画像は、当該電子画像を用いてアクセスを要求したユーザのアカウントに、サービスへのアクセスが提供された場合に、使用された(例えば、利用された)ものとみなされうる。いくつかの実施形態では、電子画像内のアクセス情報は、サービスのあるフィーチャへのアクセスを許可するために使用されうる。いくつかの実施形態では、サービスへのアクセスは、それぞれが特定の異なるアクセス情報を含みうる複数の画像の利用に基づいて制御されうる。
ある実施形態では、サービスへのアクセスは、アカウントがサービスにアクセスする権限を判定するために使用されうるアクセス情報(例えば、セキュリティキー)を格納した1つ以上のデータ構造を使用して、管理されうる。セキュリティキー(例えば、マスター・セキュリティキー)から(例えば、ハッシュ演算を使用して)1つ以上のセキュリティキーが得られうる。セキュリティキーは、サービスにアクセスするための1つ以上の権利と関連付けられうる。データ構造を使用して、アクセス情報に基づいてサービスへのアクセスが許可されるかどうかを判定するために、アクセス情報が検証されうる。
いくつかの実施形態では、サービスへのアクセスは、1つ以上の基準(例えば、条件、規則、又はイベント)に基づきうる。サービスのアクセスに関連する基準は、サービスの使用、又はサービスの1つ以上のフィーチャ又は機能の使用に基づきうる。いくつかの実施形態では、基準は、ユーザの習慣(例えば、空メッセージ受信箱を維持する、又は全てのスパムメッセージを削除する)、サービスの特定の使用、又はその他のタイプのアクション等の、アクションのタイプに基づいて定義されうる。このような基準は、サービスをより頻繁に使用するようにユーザに仕向けるために定義されうる。
ユーザは、それまでに使用不可能であった、メッセージ管理サービスの1つ以上の新しい又は異なるフィーチャを使用するためのアクセス情報を含む追加の電子画像を提供されうる。そうすることで、新しいフィーチャは、サービスが特定の方法で使用される場合に「ロックされていない」ことが可能である。ユーザは、他のユーザに電子画像を送信することによって、サービスにアクセスするよう、他のユーザに仕向けうる。いくつかの実施形態では、ユーザは、他のユーザによるサービスの使用に基づいて当該サービスにアクセスするために、追加の電子画像を提供されうる。サービスの使用には、ユーザから受信した電子画像を用いたサービスへのアクセスが含まれうる。新しいフィーチャへのアクセスは、サービスの使用に基づいて許可されてもよく、それにより、ユーザは、追加の電子画像を取得することを期待してサービスを使用するように更に仕向けられる。サービスの種々のフィーチャの使用によって、サービス管理システムが、当該サービスのフィーチャに関する、ユーザプリファレンス及びフィードバックを判定することが可能になりうる。このような情報は、サービスの提供の変化又はサービスへの改良をサービス管理システムが判定することを可能にするために有益でありうる。
いくつかの実施形態では、電子画像は、表示時に、サービスにアクセスするためのアクセス情報の使用に関連する状況を示しうる。例えば、電子画像は、当該状況を示す情報を含みうる。アクセス情報を含む電子画像が表示された場合、当該電子画像は、当該状況を示しうる。当該状況は、電子画像を使用してアクセス可能なサービスのフィーチャを示しうる。当該状況は、サービスにアクセスするために電子画像が使用されたかどうかを示しうるとともに、使用された場合に、権限が付与されたかどうかを示しうる。
図1は、本発明の実施形態に係る通信システム100のブロック図を示す。通信システム100は、ネットワーク106に接続された、メッセージングサービス102、メッセージ管理サービス104及びオンラインコンテンツ管理サービス130を含みうる。メッセージングサービス102、オンラインコンテンツ管理サービス130及び/又はメッセージ管理サービス104にアクセスするために使用されうる種々のクライアント108,110も、ネットワーク106に接続されうる。この例は、クライアント108が、(破線112によって示されるように)メッセージ管理サービス104にアクセスする一方で、クライアント110が、(破線114によって示されるように)メッセージングサービス102にアクセスする。
オンラインコンテンツ管理サービス130は、例えば、ファイルストレージサービス、ファイル共有サービス、ユーザがメッセージをポストすることを可能にするソーシャルメディアサービス、及び/又はその他のコンテンツ等を含みうる。オンラインコンテンツ管理サービス130は、1つ以上のデータストア134と通信しうる。オンラインコンテンツ管理サービス130は、サービスプロバイダによって維持されるサーバ上でホストされ、インターネット等のネットワーク106を介してアクセスされてもよい。いくつかの実施形態では、オンラインコンテンツ管理サービス130は、1つ以上のデータストア(例えば、データベース)内にコンテンツを格納しうる。コンテンツには、音声、ビデオ、データ、電子画像(例えば、アクセス情報を含む電子画像)、ファイル、電子メールメッセージ等が含まれうる。いくつかの実施形態では、オンラインコンテンツ管理サービス130は、(破線136によって示されるように)メッセージ管理サービス104にアクセスしてもよく、逆も同様であってよい。
メッセージングサービス102は、ユーザによるメッセージの送信、受信、保存、及び/又はメッセージへのアクセスを可能にする任意のサービスであってよく、「メッセージ」には、電子メールメッセージ、インスタントメッセージ(例えば、種々の「チャット」サービスを使用するユーザ間で送信されるメッセージ)、SMS/MMSメッセージ(例えば、種々のセルラー及び他の無線データネットワークによってサポートされている、ショートメッセージングサービス・プロトコル及び/又はマルチメディアメッセージングサービス・プロトコルに適合したメッセージ)、音声メッセージ、写真/画像メッセージ、ソーシャルネットワークメッセージ等の、送信者によって生成されて1以上の受信者を対象とした任意の電子通信が含まれうる。メッセージングサービス102の例には、Gmail(商標)(Google Inc.のサービス)及びYahoo!(登録商標)Mail(Yahoo!Inc.のサービス)等の、電子メールサービスが含まれうる。他の例には、Gmailのチャット機能又はFacebookのチャット(Facebook,Incのサービス)、セルラデータキャリアによって提供されるSMS/MMSサービス、メッセージングコンポーネントを有するソーシャルネットワークサービス(例えば、Facebook,Inc、又はLinkedIn Corp.によって提供されるソーシャルネットワーク)といった、インスタントメッセージングサービス又はチャットサービスが含まれうる。いくつかの実施形態では、ユーザは、メッセージングサービス102でアカウントを作りうるとともに、メッセージングサービス102は、ユーザのメッセージ120へのアクセスを蓄積及び提供しうる。メッセージングサービス102は、更に、ウェブベースのクライアントインタフェース、専用アプリケーションプログラム、アプリケーションプログラミングインタフェース(API)、及び/又はメッセージ120へのユーザのアクセスを促進する他のツールを提供しうる。
メッセージ管理サービス104は、破線116によって示されるように、メッセージングサービス102と1以上のクライアント(例えば、クライアント108)との間のプロキシ又は仲介者として動作するサービスでありうる。メッセージ管理サービス104は、メッセージングサービス102によって蓄積されたメッセージ120の蓄積、メッセージ120へのアクセス、メッセージ120の作成、及び/又はメッセージ120への応答のための拡張機能を提供しうる。メッセージ管理サービス104の一例は、Dropbox,Inc.のメールボックスサービスでありうる。
いくつかの実施形態では、サービス(例えば、メッセージ管理サービス104によって提供されるサービス、又はオンラインコンテンツ管理サービス130によって提供されるサービス)へのアクセスは、アクセス管理システム140によって管理されうる。アクセス管理システム140は、コンピューティングシステムを含みうる。アクセス管理システム140は、ハードウェア、ファームウェア、及び/又はソフトウェアの組み合わせを使用して実現されうる。アクセス管理システム140は、サービスへのアクセスを管理するための、本明細書で説明される1つ以上の技術を実現しうる。いくつかの実施形態では、アクセス管理システムの全て又は一部は、サービス(例えば、メッセージ管理サービス140又はオンラインコンテンツ管理サービス130のうちの一方又は両方)によって実現されてもよい。
サービス(例えば、メッセージ管理サービス104又はオンラインコンテンツ管理サービス130)へのアクセスは、当該サービスによって提供されるアカウントを通じて管理されうる。サービスによって提供されるアカウントは、ユーザ、コンピューティングデバイス(例えば、クライアント108又はクライアント110)、メッセージングサービス(例えば、メッセージングサービス102)、及び/又は、サービス(例えば、オンラインコンテンツ管理サービス130又はメッセージ管理サービス104)によって提供されるアカウント、に対応する識別情報と関連付けられうる。サービスへのアクセスは、当該サービス自体へのアクセス、及び/又は、当該サービスによって提供される、機能、フィーチャ、メソッド、オペレーション、オプション、又はそれらの組み合わせのうちの1つ以上へのアクセスに対応する。
クライアント(例えば、クライアント108又はクライアント110)は、サービスにアクセスするために使用されうる。いくつかの実施形態では、クライアント上でアプリケーション(「アプリ」とも称されうる)を通じて、サービスへのアクセスが提供されうる。サービスへのアクセスには、アプリのダウンロード及び/又はアプリのインストールのためのアクセスが含まれうる。例示を目的として、メッセージ管理サービス104等のサービスへのアクセスを管理する技術を説明するためにいくつかの実施形態が本明細書において説明される。しかし、そのような実施形態は、メッセージ管理サービスの管理に限定されることはなく、オンラインコンテンツ管理サービス130等の任意のタイプのサービスへのアクセスを管理するために実現されうる。
アクセス管理システム140は、メッセージ管理サービス104等のサービスへのアクセスを管理するための拡張機能を実現しうる。サービスへのアクセスは、アクセス情報を含む電子画像(例えば、「コイン」又は「トークン」)の使用を通じて実現されうる。以下で更に説明するように、アクセス管理システム140は、アクセス情報を含む電子画像を作成しうる。電子画像は、表示された場合に、物体、人間、又は場所の視覚表現を提供しうる。電子画像は、ビットマップ、アイコン、ピクチャ等のフォーマットを有するデータに基づきうる。例えば、電子画像は、ジョイント・フォトグラフィック・エキスパート・グループ(JPG)規格、グラフィックス・インターチェンジ・フォーマット(GIF)、ポータブル・ネットワーク・グラフィックス(PNG)規格、又は他の電子画像規格に従ってフォーマットされうる。いくつかの実施形態では、電子画像は静止画像でありうる。いくつかの実施形態では、電子画像は、(アニメーションGIF等の)アニメーション画像、ビデオ、ムービー、又は、表示時に外観が変化する他の動画像でありうる。電子画像は、アクセス情報の使用に対応する状況を示しうる。図6及び図7を参照して、電子画像の例について説明する。
電子画像内のアクセス情報は、サービスにアクセスする、及び/又はサービスによって提供される以下のもの、即ち、機能、フィーチャ、オペレーション、オプション、方法、又はそれらの組み合わせのうちの1つ以上にアクセスする許可(例えば、許諾又は権限)を、検証に応じてアカウントに与えうる値(例えば、セキュリティキー、ハッシュ値、又は他の何らかのセキュリティ情報)を含みうる。ユーザが、電子画像に基づいてサービスへのアクセスを要求(例えば、コインの利用を要求)した場合、アクセス管理システム140は、当該電子画像内のアクセス情報に基づいて、アクセスを要求するユーザについてサービスへのアクセスを判定(例えば、検証)しうる。言い換えれば、電子画像を使用してアクセスを要求するユーザに関連付けられたアカウントに対して付与された権利に基づいて、サービスへのアクセスを規制(例えば、許諾)するために、電子画像が使用されうる。いくつかの実施形態では、サービスへのアクセスは、サービスにアクセスする許可を取得するために使用されうるアクセス情報を有する電子画像を与えられたアカウントに限定されうる。サービスにアクセスする許可は、サービスによって提供されるアカウント又はユーザに関連付けられたデバイスにリンクされうる。電子画像は、当該電子画像を用いた要求に対してサービスへのアクセスが許可された場合に、使用された(例えば、利用された)ものとみなされうる。
いくつかの実施形態では、電子画像は、ユーザのグループへのアクセスを制御するために使用されうる。例えば、電子画像は、サービスへのアクセス、及び/又は、早期の若しくはターゲットされたリリース(例えば、ベータリリース)の一部としての、当該サービスのフィーチャ又は機能へのアクセスを制限するために使用されうる。このような実施形態では、(「ベータ電子画像」、「ベータコイン」、又は類似のものとして称されうる)電子画像は、当該電子画像によって、ユーザの特定のグループに対してメッセージ管理サービス104が当該サービスへのアクセスを制御可能となるように、実現されうる。例えば、電子画像の使用を通じたサービスへのアクセスは、1以上のユーザによる電子画像の使用又はサービスの使用に関連する1つ以上の基準に基づいて禁止されうる。サービスのアクセスに関連する基準は、サービスの使用、又はサービスの1つ以上のフィーチャ又は機能の使用に基づきうる。例えば、電子画像は、ある時間にわたる、サービスのフィーチャのユーザによる使用に基づいて、当該ユーザに対して与えられうる。この例では、電子画像は、利用時に、その保持者が延長された期間にわたってサービスへのアクセスを取得することを可能にしうる。代替的又は追加的には、電子画像は、サービスの追加のフィーチャ又は機能にユーザがアクセスすることを可能にしうる。電子画像を使用したアクセスの管理のより多くの例について、以下で説明する。
電子画像は、1以上のユーザに対して送信されうる。電子画像は、当該電子画像に基づいてアクセスが許可される、サービス及び/又は当該サービスの1つ以上のフィーチャ又は機能へのアクセスを取得するために使用されうる(例えば、利用されうる)。いくつかの実施形態では、電子画像は、当該電子画像を使用してサービスにアクセスする許可を単一ユーザに対して付与しうる。電子画像は、当該電子画像を利用する閾値数のユーザ(例えば、単一ユーザ)に対して許可を付与する一方で、当該電子画像は、当該電子画像を使用してサービスへのアクセスが許可される閾値数のユーザを上回る数のユーザに対して配信されうる。一部のユーザは、電子画像を使用してサービスへのアクセスが許可される閾値数のユーザに到達した場合、当該サービスへのアクセスを得られない可能性がある。したがって、サービスにアクセスすることをユーザに許可するために電子画像が利用された場合、当該電子画像の利用を要求する、それに続くユーザは、当該電子画像の使用に関連する条件(例えば、閾値数のユーザ)が満たされると、当該サービスへのアクセスを拒否されうる。いくつかの実施形態では、電子画像は、生成された当該電子画像を含むメッセージを各ユーザに送信することによって、多数のユーザに対して伝達されうる。いくつかの実施形態では、当該メッセージは、アクセス情報等の、電子画像の全て又は一部を含みうる。電子画像は、メッセージングサービスを使用したメッセージで配信されうる。メッセージでの電子画像の配信の例については、図8乃至図10を参照して以下で説明する。
いくつかの実施形態では、アクセス管理システム140は、描画時に、外観(例えば、色又はスタイル)を有しうるか、アニメートされうるか、画像の表示時に聞こえる音に関連付けられうるか、又はそれらの組み合わせの、電子画像を生成しうる。電子画像は、当該画像内のアクセス情報に基づいて許可されたアクセスの状況に従って表示されるように生成されうる。いくつかの実施形態では、電子画像は、サービスにアクセスするためのアクセス情報の使用状況を示す状況情報を含みうる。例えば、状況の変化は、アクセスの喪失、又はサービスにアクセスするための電子画像の使用を含みうる。アクセス情報の使用状況は、状況情報に基づいて判定されうる。電子画像は、状況情報から判定された状況に基づいて描画されうる。電子画像の表示は、アクセス情報の使用に対応する状況の変化に対応して調整されうる。いくつかの実施形態では、電子画像は、アクセス情報の使用状況の変化を反映するために、異なった表示が行われうる。例えば、電子画像は、当該電子画像のアクセス情報が、サービスにアクセスするために以前に使用されたかどうかを示す状況を表示しうる。他の例では、電子画像は、その外観が、サービスにアクセスするために当該電子画像が既に使用されたことを示す、及び/又は、当該電子画像が、サービスにアクセスするために再び使用できるかどうかを示すために変化できるように、生成されうる。
いくつかの実施形態では、電子画像は、サービスにアクセスするための使用の測度(meaure)を示すように表示されうる。いくつかの実施形態では、電子画像は、表示時に、当該電子画像の使用のために付与された許可のタイプを示す情報、及び/又は、当該電子画像を識別する情報(例えば、電子画像番号)等の情報を、視覚的に提示しうる。電子画像を識別する情報は、ユーザアカウントに関連付けられうる。
アクセス管理システム140は、1つ以上の基準(例えば、条件、規則、又はイベント)に基づいて、サービスへのアクセスを管理しうる。いくつかの実施形態では、電子画像内のアクセス情報に基づいて許可されうる、アカウントによるサービスへのアクセスは、サービスの1つ以上の機能、フィーチャ、オペレーション、オプション、又はそれらの組み合わせへのアクセスを含みうる。例えば、サービスにアクセスする許可は、サービスへのアクセスを容易にするアプリをインストールする能力を含みうる。いくつかの実施形態では、サービスへのアクセスは、アクセスが要求された日付、アクセスが要求された時間、アカウントによるサービス(例えば、メッセージ管理サービス104又はオンラインコンテンツ管理システムサービス130)の使用、サービス(例えば、メッセージ管理サービス200又はオンラインコンテンツ管理サービス130)を使用して実行されるアクションの発生、サービス(例えば、メッセージ管理サービス200又はオンラインコンテンツ管理サービス130)において発生するイベント、ユーザによるサービスの使用に関連する条件の満足、あるいはそれらの組み合わせに基づきうる。例えば、サービス(例えば、メッセージ管理サービス200又はオンラインコンテンツ管理サービス130)のフィーチャにアクセスする許可は、特定の数の電子メールが当該サービスを通じてアカウントのために送信された場合に当該アカウントに対して付与される。いくつかの実施形態では、サービスへのアクセスは、複数ユーザのグループのアクションにまとめて基づきうる。
アクセス管理システム140は、サービス(例えば、メッセージ管理サービス104又はオンラインコンテンツ管理サービス130)にアクセスする許可を判定しうる。アクセス管理システム140は、サービスへのアクセスを判定するために、1つ以上のデータ構造(例えば、図4及び図5を参照して説明されるデータ構造)を使用してデータ(例えば、アクセス管理データ)を管理しうる。当該データは、アクセス情報に含まれる1つ以上の値(例えば、セキュリティキー)を含みうる。セキュリティキーは、ハッシュ演算に基づいて生成された乱数値を含みうる。セキュリティキーを格納したデータは、アカウントが当該セキュリティキーを用いてサービスにアクセスする権限を判定するために使用されうる。アクセス管理システム140によって蓄積されたデータは、アクセス情報のユーザに対して付与された1つ以上の権利を示しうる。アクセス情報(例えば、セキュリティキー)を管理及び検証する技術について、以下で更に説明する。
電子画像は、クライアントを操作するユーザによって(例えば、メッセージで)受信されうる。電子画像は、クライアントを通じてユーザによって利用されうる。電子メールメッセージのようなメッセージにおける電子画像の提示は、電子画像及び他の情報(例えば、当該電子画像の使用を通じてサービスによって許可された権利)に関連付けられた状況を示しうる。電子画像は、クライアントデバイスにおけるインタフェース(例えば、クライアントデバイスにおけるアプリのインタフェース)を用いた、当該電子画像とのインタラクションを通じてユーザによって利用されうる。電子画像に基づいてサービスへのアクセスをクライアントから要求する技術について以下で説明する。サービスにアクセスするための電子画像の使用例については、図14乃至図16を参照して以下で説明する。
上述のように、サービスへのアクセスは、電子画像内のアクセス情報に関連付けられた1つ以上の基準を満たすことに基づいて判定されうる。いくつかの実施形態では、サービスへのアクセスに関連付けられた基準は、当該サービスのユーザによって知られていなくてもよい。サービスの使用に基づいて当該サービスへのアクセスを制限する又は可能にすることによって、ユーザは、メッセージ管理サービス104をより頻繁に使用するよう仕向けられうる。新しいサービス又はフィーチャがリリースされる場合(例えば、ベータリリース)、サービスの使用に基づいて当該サービスへのアクセスを許可する、本明細書で説明される技術を実現することによって、当該新しいサービス又はフィーチャにより頻繁にアクセスするよう、ユーザを仕向けることが可能である。いくつかの実施形態では、ユーザの習慣(例えば、空メッセージ受信箱を維持する、又は全てのスパムメッセージを削除する)、サービスの特定の使用、又はその他のタイプのアクション等の、アクションのタイプに基づいて、基準が定義されうる。このような基準は、メッセージ管理サービス104をユーザがより頻繁に使用するように仕向けるために定義されうる。アクセス管理システム140は、ユーザに、それまでに使用不可能であった、メッセージ管理サービスの1つ以上の新しい又は異なるフィーチャを使用するためのアクセス情報を含む追加の電子画像を提供しうる。そうすることで、新しいフィーチャは、メッセージ管理サービス104が特定の方法で使用される場合に「ロックされていない」ことが可能である。ユーザは、他のユーザに電子画像を広める(例えば、共有する)ことによって、サービスにアクセスするよう、他のユーザに仕向けうる。いくつかの実施形態では、ユーザは、広められた電子画像でサービスにアクセスする他のユーザ、及び/又は、当該電子画像を受信するユーザによるサービスの使用に基づいて、サービスにアクセスするための追加の電子画像を与えられうる。新しいフィーチャへのアクセスは、サービスの使用に基づいて予期せず許可されてもよく、それにより、ユーザは、追加の電子画像を取得することを期待してサービスを使用するように更に仕向けられる。
図2は、本発明の実施形態に係るメッセージ管理サービス200のブロック図を示す。例示を目的として、メッセージ管理サービスへのアクセスを管理するいくつかの実施形態について説明するが、そのような実施形態は、オンラインコンテンツ管理サービス(例えば、オンラインコンテンツ管理サービス130)のような他のサービスに対して実現されてもよい。いくつかの実施形態では、サービスへのアクセスを管理しうるアクセス管理システムは、メッセージ管理サービス、オンラインコンテンツ管理サービス又はその両方によって実現されうる。図2を参照して説明する例において、メッセージ管理サービス200は、アクセス管理システム(例えば、アクセス管理システム140)を実現しうる。
いくつかの実施形態では、メッセージ管理サービス200は、図1のメッセージ管理サービス104を実現しうる。例えば、メッセージ管理サービス200は、(例えば、クライアント108を実現する)クライアント200及びクライアント206(例えば、図1のクライアント110)のような1つ以上のクライアントと、(例えば、メッセージングサービス102を実現する)種々のメッセージングサービス204a,204bとの間の仲介者として動作しうる。サービス204a,204bのそれぞれは、異なる複数の電子メールサービス、電子メールサービスとソーシャルネットワークサービス等のように、異なるメッセージングサービスであってもよい。2つのメッセージングサービス204が示されているが、任意の数のメッセージングサービス204が、単一のメッセージ管理サービス200によってサポートされてもよい。
メッセージ管理サービス200は、クライアントインタフェース210、メッセージ管理モジュール230、メッセージングサービスインタフェース214、メッセージキャッシュ216、及びアクセス管理キャッシュ240を含みうる。クライアント転送レイヤ218は、メッセージ及び他の命令を転送するための、並びにクライアントインタフェース210とアカウント管理モジュール230との間で情報を転送するための転送キューを提供しうる。サービス転送レイヤ220は、メッセージ及び他の命令を転送するための、並びにアクセス管理モジュール230とメッセージングサービスインタフェース214との間で情報を転送するための転送キューを提供しうる。メッセージ管理サービス200は、アクセス管理モジュール230の実現を通じてアクセス管理システムを実現しうる。
クライアントインタフェース210は、クライアント202(例えば、異なる複数のユーザに関連付けられたクライアント、及び/又は同じユーザに関連付けられた複数のクライアント)の複数のインスタンスと通信しうる。例えば、クライアントインタフェース210は、メッセージングサービス204a,204bからクライアント202への「インバウンド」メッセージの配信、クライアント202からの「アウトバウンド」メッセージの受信、及び/又は、クライアント202からの、メッセージの延期命令のような、種々のメッセージ処理命令の受信を行いうる。
メッセージ管理サービス200は、クライアント202からのアウトバウンドメッセージとメッセージングサービス204a,204bから受信されたインバウントメッセージとを含む、メッセージ管理サービス200によって受信されたメッセージに対して種々の動作を実行するよう構成された機能ブロック又はモジュールを含みうる。アクセス管理モジュール230は、サービス(例えば、メッセージ管理サービス200)へのアクセスを管理するための1つ以上の動作を実行するよう構成されうる。例えば、アクセス管理モジュール230は、画像生成部238、アクセス管理部232、アクセス管理部232、通信ハンドラ234、及び使用解析部236を含みうる。
メッセージングサービスインタフェース214は、それぞれがメッセージングサービス204a,204bのうちの異なる1つと通信するよう構成されうる種々のサービスモジュール226a,226bを含みうる。例えば、異なるメッセージングサービス204は、外部クライアントによるアクセスに異なる通信プロトコル(例えば、IMAP、POP、MAPI/Exchange、カスタムAPI等)をサポートしてもよく、各サービスモジュール226は、特定のメッセージングサービス204に適したプロトコルを使用するよう構成されてもよい。
いくつかの実施形態では、メッセージングサービスインタフェース214は、メッセージ管理サービス200の存在が、メッセージングサービス204a,204bに対して透過的となりうるように、メッセージングサービス204a,204bのクライアントアクセス機能として、当該インタフェース自体をメッセージングサービス204a,204bへ提示しうる。例えば、メッセージングサービス204aがIMAPをサポートする場合、サービスモジュール226aは、メッセージングサービス204aのユーザアカウントへの永続的なIMAP接続を確立でき、それにより、メッセージングサービス204aが任意の到来メッセージを、当該ユーザアカウントのために受信する、メッセージ管理サービス200へ配信することが可能になる。IMAP以外のサービスへの永続的な接続も維持されうるか、又は、メッセージングサービスインタフェース214は、新しいメッセージを取得するためにメッセージングサービス204に周期的にポーリングを行いうる。永続的な接続は、ユーザが、現在、クライアントインタフェース210に接続された任意のクライアント202を有しているかどうかにかかわらず維持されてもよく、メッセージ管理サービス200は、メッセージングサービス204との同期を維持してもよい。
メッセージキャッシュ216は、メッセージの蓄積及び取り出しを提供するデータベース又は他のデータストアでありうる。例えば、メッセージ管理サービス200及び/又はメッセージングサービス204によって各メッセージに対して割り当てられたメッセージ識別子(メッセージID)を参照することによって、メッセージの蓄積及び取り出しが行われうる。メッセージ管理サービス200は、メッセージキャッシュ216を使用して、最近受信されたメッセージ、又はユーザが開始した検索で発見されたメッセージのような、クライアントにとって興味のありそうなメッセージのコピーを蓄積するために、メッセージングサービス204は、その独自のメッセージストアを、メッセージ管理サービス200による任意のアクションとは関係なく維持しうる。いくつかの実施形態では、メッセージングサービス204は、ユーザアカウントに現在関連付けられている全てのメッセージを含みうる、ユーザのメッセージの一次ストアを維持してもよく、メッセージキャッシュ216は、ユーザのメッセージのサブセットを、一次ストア内の追加のメッセージに関する情報とともに蓄積してもよい。クライアント202が、メッセージキャッシュ216に現在蓄積されていないメッセージを要求した場合、メッセージ管理サービス200は、当該メッセージを、適切なメッセージングサービス204から取り出して、それをクライアント202へ配信してもよい。
アクセス管理キャッシュ240は、アクセス情報、電子画像、メッセージ管理サービス200へのアクセスを管理するための他の情報、又はそれらの組み合わせの、蓄積及び取り出しを提供するデータベース又は他のデータストアでありうる。メッセージ管理サービス200は、アクセス管理キャッシュ240を使用して、電子画像及び/又はアクセス情報を蓄積しうる。いくつかの実施形態では、アクセス情報は、階層ストレージ技術(階層データ構造)を用いてアクセス管理キャッシュ240内で管理されうる。アクセス管理キャッシュ240内に蓄積されるデータの例については、図4及び図5を参照して説明する。いくつかの実施形態では、アクセス管理キャッシュ240は、メッセージキャッシュ216と区別され、当該メッセージキャッシュは、ユーザアカウントに現在関連付けられている全て又は一部のメッセージを含む(例えば、送信済みメッセージ、受信済みメッセージ、アーカイブ済みメッセージ等を含む)、ユーザのメッセージを蓄積するために使用されうる。
動作中に、メッセージ管理サービス200は、メッセージングサービス204からインバウンドメッセージを取得して、当該メッセージをクライアント202へ提供しうる。メッセージ管理サービス200は、更に、クライアント202からアウトバウンドメッセージ(例えば、送信されるメッセージ)を受信して、受信者への配信のためにメッセージングサービス204へ当該メッセージを提供しうる。メッセージ管理サービス200は、インバウンド及び/又はアウトバウンドメッセージに対して種々の動作を実行しうる。
いくつかの実施形態では、アクセス管理モジュール230は、そのサービスへのクライアント(例えば、クライアント202又はクライアント206)からのアクセスを管理しうる。例えば、アクセス管理部232は、メッセージ管理サービス200へのアクセスを制御しうる。アクセス管理部232は、メッセージ管理サービス200へのアクセス、又はその機能、フィーチャ、オペレーション、メソッド、若しくはそれらの組み合わせのうちの1つ以上へのアクセスを可能にするために、アクセス情報(例えば、セキュリティキー)を判定しうる。アクセス情報は、アクセス情報を生成するための1つ以上の技術を実行することによって生成されたセキュリティキーに対応する固有の値でありうる。いくつかの実施形態では、セキュリティキーは、メッセージ管理サービス200にアクセスするためのセキュリティキー(例えば、マスター・セキュリティキー)を用いて得られる。派生セキュリティキーは、セキュリティキーに基づいて生成されうる。セキュリティキーは、乱数を用いて生成されうる。乱数は、ハッシュ演算によって作成される値でありうる。いくつかの実施形態では、アクセス情報は、汎用一意識別子(UUID)を含みうる。
いくつかの実施形態では、アクセス管理部232は、アカウントと関連付けられたアクセス情報を蓄積しうる。当該アカウントは、サービス(例えば、メッセージ管理サービス200又はメッセージングサービス204)によって提供されうる。アクセス情報は、当該アクセス情報を用いてサービスへのアクセスが許可されたアカウントと関連付けて蓄積されうる。アクセス管理部232によって蓄積される情報は、アクセス管理キャッシュ240に蓄積されうる。アクセス情報(例えば、セキュリティキー)の生成に使用される情報は、アクセス管理キャッシュ240に蓄積されうる。いくつかの実施形態では、アクセス情報は、アカウントと関連付けてアクセス管理キャッシュ240に蓄積されうる。アクセス情報は、当該アクセス情報を用いてメッセージ管理サービス200へのアクセスが許可されたアカウントと関連付けて蓄積されうる。アクセス情報は、当該アクセス情報を用いてメッセージ管理サービス200へのアクセスが拒否されたアカウントと関連付けて蓄積されてもよい。アクセス情報を生成及び/又は蓄積する技術の例については、図4及び図5を参照して以下で説明する。
アクセス管理部232は、アカウントが、メッセージ管理サービス200にアクセスする権限を有するかどうかを判定(例えば、検証)しうる。アクセス管理部232は、アカウントの権限を判定するために、クライアントからの要求で受け取ったアクセス情報を使用しうる。アクセス情報は、電子画像から取り出されて、権限を判定するために処理されうる。いくつかの実施形態では、アクセス管理部232は、メッセージ管理サービス200にアクセスするためのアカウントの権限を示す情報を、アクセス管理キャッシュ240に蓄積しうる。このような情報は、アカウントによってアクセスされうるサービスのフィーチャ又は機能のような、メッセージ管理サービス200へのアクセスのタイプを示す情報を含みうる。権限の判定例については、以下で説明するとともに図4及び図5を参照して更に説明する。
いくつかの実施形態では、メッセージ管理サービス200にアクセスする権限は、メモリ(例えば、アクセス管理キャッシュ240)内でアクセス情報を検索する動作を実行することによって判定されうる。アクセス管理キャッシュ240は、アクセス情報がメッセージ管理サービス200によって生成されたかどうかを判定するために検索されうる。アクセス情報がメッセージ管理サービス200によって生成されなかった(例えば、アクセス情報が見つからなかった)場合には、アクセスが拒否されうる。アクセス情報が見つかった場合、当該アクセス情報を用いてアクセスが許可されているかどうかに基づいて権限が判定されうる。アクセス情報を検索する動作は、アクセス情報が、アカウント(例えば、メッセージ管理サービス200又は他のサービス(例えば、オンラインコンテンツ管理サービス130)によって提供されるアカウント)に関連付けられているかどうかを判定することを含みうる。アクセス情報がアカウントに関連付けられていない場合、権限が付与されうる。いくつかの実施形態では、アクセス情報は、複数のアカウントへのアクセスを許可するために使用されうる。このような実施形態では、アクセス情報が、当該アクセス情報を使用してアクセスが許可された閾値数のアカウントに関連付けられていない場合に、権限が付与されうる。
いくつかの実施形態では、アクセス情報は、チェックサム演算を実行することによって検証されうる。例えば、チェックサム演算は、例えば、検証対象のアクセス情報に関連するアクセス情報を使用して、セキュリティキーが生成されうるような方法で、実行されうる。アカウントと関連付けられていることは、アクセス情報に基づいてアクセスが以前に許可されたことを示しうる。
いくつかの実施形態では、アクセス管理部232は、アクセス情報(例えば、特定のセキュリティキー)に関連する1つ以上の基準が満たされたかどうかを判定することに基づいて、サービス及び/又は当該サービスのフィーチャにアクセスする権限をアカウントに付与するかどうかを判定しうる。例えば、基準は、特定のアクセス情報でメッセージ管理サービス200へのアクセスが許可されうる閾値数のアカウントに対応しうる。いくつかの実施形態では、基準は、複数のイベントに基づいて定義されうる。当該複数のイベントは、サービスへのアクセスを有する複数のユーザによって実行される動作に対応しうる。例えば、ある数のユーザがある動作を実行した(例えば、ある数の電子メールメッセージを送信した)場合に、当該ある数のユーザのうちの、その基準を満たした各ユーザが、サービスのフィーチャへのアクセスを与えられうる。
いくつかの実施形態では、アクセス管理部232は、アクセス管理キャッシュ240に蓄積されたアクセス情報を設定しうる。アカウントに対して許可されたアクセスは、メッセージ管理サービス200への追加のアクセスを提供するか、又はメッセージ管理サービス200へのアクセスを禁止するよう構成されうる。アカウントに関連付けられたアクセス情報は、当該アカウントについてのアクセスの設定に基づいて調整されうる。アカウントのアクセスは、サービス(例えば、メッセージ管理サービス200)にアクセスするための1つ以上の基準に基づいて調整されうる。当該基準は、アカウントと関連付けてアクセス管理キャッシュ240に蓄積されうる。
いくつかの実施形態では、アクセス情報に関連付けられた基準は、アクセス管理モジュール230によってアクセスが制御されるサービス(例えば、メッセージ管理サービス200)のオペレーション中に生じうる、1つ以上のイベント、アクション、条件、又はそれらの組み合わせに基づいて定義されうる。いくつかの実施形態では、当該基準は、サービスによって提供されるアカウントに対して実行される動作、及び/又は、当該アカウントに関連付けられた状態に対応しうる。基準を満たすことによって、アクセス情報に基づいてアクセスを要求するユーザが、当該アクセス情報に対して許可が与えられるサービス及び/又はフィーチャへのアクセスを取得することが可能になりうる。いくつかの実施形態では、メッセージ管理サービス200にアクセスするための基準は、ユーザによって行われる挙動及び/又は操作に基づきうる。このような挙動及び/又は操作には、限定することなく、アクセス情報の共有、サービスの使用、又はそれらの組み合わせのような、本明細書で説明するものが含まれうる。
アクセス管理部232は、操作及び/又は挙動がアクセス情報に関連する基準を満たすかどうかに基づいて、メッセージ管理サービス200によって提供されるアカウントへのアクセスを無効にするか許可するかを判定しうる。いくつかの実施形態では、基準は、ユーザのアカウントに対応する条件に基づきうる。例えば、基準は、アカウントのフォルダ内のメッセージのカウント(例えば、受信箱フォルダ内の0個のメッセージ)に基づきうる。他の例では、基準は、特定の数のメッセージをアカウントのフォルダ内に有する期間に基づきうる。いくつかの実施形態では、基準は、サービスの機能の使用(例えば、コマンド用のルールの設定又はアーカイブ・コマンドの使用)に関連する条件に基づきうる。いくつかの実施形態では、基準は、複数のアカウントに関連するイベントに基づきうる。例えば、基準は、他のユーザによって共有された電子画像の、ユーザによる利用の発生に基づきうる。いくつかの実施形態では、基準は、アカウント(例えば、特定のユーザ状況に達したアカウント)の状況、又はサービスのユーザに基づく状況に基づきうる。いくつかの実施形態では、メッセージ管理サービス200へのアクセスは、アカウントの数又はアカウントを用いてメッセージ管理サービス200にアクセス可能な装置の数のような、1つ以上の基準に基づいて禁止されうる。いくつかの実施形態では、基準は、複数のアカウントに対応する動作に基づきうる。
いくつかの実施形態では、メッセージ管理サービス200へのアクセスは、ウェイトリスト(waitlist)上の追加のユーザに対して許可されうる。追加のアクセスは、メッセージ管理サービス200へのアクセスが許可されている既存のアカウントの挙動に基づいて生成されうる。アクセス管理部232は、1つ以上のアカウントによるメッセージ管理サービス200の使用に対応して実行された挙動及び/又は操作の解析を示すデータを蓄積している、アクセス管理キャッシュ240から情報を取得しうる。このような解析を示すデータは、以下で更に説明する使用解析部236によって決定されうる。
画像生成部238は、メッセージ管理サービス200へのアクセスを要求するために使用されうる電子画像(例えば、コイン又はトークン)を生成しうる。電子画像は、アクセス情報を用いて生成されうる。アクセス情報は、アクセス管理部232によって決定されうる。アクセス情報は、メッセージ管理サービス200へのアクセスを取得するために使用されうる。画像生成部238は、アクセス情報を、電子画像のデータに含めうる。例えば、アクセス情報は、電子画像のメタデータ(例えば、コマンドフィールド)内に挿入されうる。
電子画像は、人間、物体、及び/又は場所の外観を提示するように生成されうる。電子画像の提示は、当該画像に含まれるアクセス情報に基づいてメッセージ管理サービス200にアクセスするための当該電子画像の使用に対応する状況を示しうる。アクセス情報の使用は、メッセージ管理サービス200にアクセスするためのアクセス情報の使用に対応しうる。電子画像の例については、図6及び図7を参照して説明する。
いくつかの実施形態では、グラフィカルインタフェース内での電子画像とのインタラクションが、メッセージ管理サービス200へのアクセスを要求するためにメッセージ管理サービス200へ要求を送信させうるように、電子画像はインタラクティブでありうる。電子画像の使用の例については、図14乃至図16を参照して以下で説明する。
いくつかの実施形態では、画像生成部238は、追加のユーザがメッセージ管理サービス200へアクセスすることを可能にするアクセス情報を有する電子画像(例えば、追加の電子画像)を生成しうる。追加の電子画像は、新たなユーザがメッセージ管理サービス200を使用するように仕向けるために、他のユーザ(例えば、サービスへのアクセスを有しないユーザ)との共有のために既存のユーザへ提供されうる。追加の電子画像は、より多くのユーザがメッセージ管理サービス200へアクセスすることを可能にするために、オンデマンドで、生成されうる。
通信ハンドラ234は、メッセージ管理サービス200へのアクセスを可能にするためにクライアント(例えば、クライアント202又はクライアント206)との通信を管理しうる。いくつかの実施形態では、通信ハンドラ234は、クライアント(例えば、クライアント202)へデータを送信しうる。当該データは、電子画像及び/又はアクセス情報を含みうる。当該データは、クライアントによって当該クライアントのインタフェース内で提示されうる。当該データは、クライアントのユーザに関連付けられたアカウントで提示されうる。
いくつかの実施形態では、通信ハンドラ234は、ユーザに向けてメッセージ内で送信されうる。ユーザは、メッセージ管理サービス200にアクセスするための要求の送信元のクライアントに関連付けられうる。電子画像を提供するために1つ以上のメッセージングサービス204を介してメッセージがユーザへ送信されうる。当該メッセージは、電子画像を含みうる。電子画像を有するメッセージについては、図8乃至図10を参照して説明する。
いくつかの実施形態では、通信ハンドラ234は、ユーザへメッセージ(例えば、電子メールメッセージ)を送信するよう、メッセージングサービス204に命令するために、メッセージングサービス204の1つへ要求を送信しうる。他の例では、通信ハンドラ234は、アクセス情報を含むSMSメッセージをユーザへ送信するよう、メッセージングサービス204に命令しうる。当該要求は、メッセージングサービス204に対して、ユーザに関連付けられたアカウント(例えば、電子メールアカウント)へのメッセージの送信を命令しうる。当該要求は、メッセージングサービス204によって提供されるメッセージングアカウントによってユーザを識別する情報を含みうる。ユーザを識別する情報は、アカウントから取得されうる。いくつかの実施形態では、通信ハンドラ234は、メッセージ管理サービス200のアカウントから、メッセージングサービス204によって提供されるアカウントへ、メッセージを送信しうる。いくつかの実施形態では、通信ハンドラ234は、電子画像がユーザのアカウントに関連付けられていることを当該ユーザに通知するメッセージを、当該ユーザへ送信するよう、メッセージングサービス204へ要求しうる。いくつかの実施形態では、電子画像が閲覧及び/又はアクセスされうるロケーションを特定するアドレス又は情報を含むメッセージが送信されうる。例えば、メッセージは、アクセス管理キャッシュ240内の、電子画像が蓄積されたロケーションへのリンクを含みうる。
通信ハンドラ234は、クライアントから、1つ以上のサービス(例えば、メッセージ管理サービス200)にアクセスするための要求を受信しうる。要求は、アクセス情報、又はアクセス情報を含む電子画像を含みうる。アクセス情報を有する要求は、クライアントに関連付けられたアカウントが、アクセス情報に基づいてメッセージ管理サービス200へアクセスする権限を有しているかどうかを判定するために、アクセス管理部232によって処理されうる。
いくつかの実施形態では、通信ハンドラ234は、メッセージ管理サービス200にアクセスするためのアカウントの権限を示すデータを、クライアントへ送信しうる。権限は、クライアントから受信されたアクセス情報に基づいて判定されうる。当該データは、メッセージ管理サービス200にアクセスする、アカウントの権限を示す権限情報を含みうる。例えば、メッセージ管理サービス200にアクセスする、アカウントの権限が否定される場合、クライアントへ送信されるデータは、当該アカウントによるアクセスが拒否されることを示しうる。
使用解析部236は、メッセージ管理サービス200を用いて行われる動作、又はメッセージ管理サービス200によって行われる動作に基づいて、解析データを判定する。解析データは、アクセス管理キャッシュ240に蓄積されうる。解析データは、メッセージ管理サービス200によってアカウントに対して行われる動作に関する統計情報を示しうる。このような動作には、限定することなく、アクセス情報の共有、メッセージ管理動作の実行、又はそれらの組み合わせのような、本明細書で説明するものが含まれうる。解析データは、メッセージ管理サービス200にアクセスするためのアクセス情報の使用を示す情報を含みうる。解析データは、アクセス検証部232によって、メッセージ管理サービス200にアクセスするためのアカウントの権限を判定するための、アクセス用の1つ以上の基準が満たされたかどうかの評価に使用されうる。
メッセージ管理サービス200は、例示的であり、変更又は修正が可能であることが理解されよう。例えば、他のメッセージ管理モジュール及び/又は動作が提供されてもよい。いくつかの実施形態では、メッセージ管理には、ウィンドウイング(50個、100個、又は他の任意の数の最近のメッセージのような、関連するとみなされる可能性がある固定数のメッセージを、選択してクライアントへ直ちに配信する)、バックフィリング(メッセージキャッシュ216に、クライアントの要求を予想してメッセージを追加する)、メッセージ形式の変換(例えば、メッセージングサービスによって使用されるメッセージ形式と、クライアント上の表示用に最適化された形式との間の変換)、メッセージフォルダ又はストリームの管理、メッセージのソート、電子ドキュメントのドラフトの管理、添付書類の管理、メッセージングサービス204との同期(例えば、メッセージを移動又は修正するための、クライアント202からの命令の中継)等が含まれうる。
図3は、本発明の実施形態に係るクライアントデバイス300のブロック図を示す。クライアントデバイス300は、図1のクライアントデバイス108,110又は図2のクライアントデバイス202,206のいずれかを実現しうる。クライアントデバイス300は、オンラインコンテンツ管理サービス130、メッセージ管理サービス104及び/又はメッセージングサービス102とのインタラクションを行うために、ハードウェア、ファームウェア、ソフトウェア又はそれらの組み合わせを使用して実現されうる、ユーザによって操作されるコンピューティングデバイスでありうる。クライアントデバイス300の例には、限定することなく、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブル・コンピューティングデバイス、パーソナル・デジタル・アシスタント等が含まれうる。クライアントデバイス300は、インタフェース330を含みうる。インタフェース330は、物理インタフェース、グラフィカルインタフェース(例えば、グラフィカルユーザインタフェース)、又はそれらの組み合わせを含みうる。
いくつかの実施形態では、クライアントデバイス300は、アプリケーション310(「アプリ」)へのアクセスを提供しうる。アプリ310は、ユーザが、1つ以上の管理サービス(例えば、メッセージ管理サービス200又はオンラインコンテンツ管理サービス130)によって提供される拡張機能にアクセスして実行することを可能にしうる。例えば、アプリ310は、サービスへのアクセスの管理のような、拡張機能へのアクセスを可能にするようにカスタマイズされうる。アプリ310は、クライアントデバイス300のインタフェース330を介してアクセスされうる。いくつかの実施形態では、インタフェース330は、アプリ310の操作を可能にするアプリケーションインタフェース332(例えば、グラフィカルインタフェース)を含みうるか、実現しうる。
いくつかの実施形態では、アプリケーションインタフェース332は、サービス(例えば、メッセージ管理サービス200)にアクセスするための1つ以上の動作を実行するよう、ユーザがアプリ310を操作することを可能にしうる。クライアントデバイス300が、サービスへのアクセスを管理するための1つ以上の動作の実行要求をアプリケーションインタフェース332を介して受信している間に、アプリ310が、当該動作を実行するために当該要求を処理しうる。動作は、クライアントデバイス300が、アクセス管理システム(例えば、アクセス管理システム140)へ適切な命令を伝達することを含みうる。いくつかの実施形態では、アプリケーションインタフェース332は、ユーザが1つ以上の電子画像を使用してサービスにアクセスすることを可能にしうる。アプリケーションインタフェース332は、アプリ310に対して表示されうる。アプリ310に対して実現されるアプリケーションインタフェース(例えば、アプリケーションインタフェース332)の例については、図8乃至図16を参照して以下で説明する。
クライアントデバイス300は、それぞれがクライアントデバイス300のための通信、例えば、管理サービス及び/又はアクセス管理システム(例えば、アクセス管理システム140)の異なるタイプの通信を処理するように構成されうる機能ブロック又はモジュールを含む通信インタフェース302を実装しうる。いくつかの実施形態では、通信インタフェース302は、アプリ310が管理サービス又はアクセス管理システムと通信できるように、ネットワークインタフェース、ウェブインタフェース、又は他の遠隔通信インタフェースのような、他のインタフェースを実装してもよい。例えば、通信インタフェースは、コンテンツ管理システムサービスインタフェース306及び/又はメッセージ管理サービスインタフェース304を含みうる。各インタフェース304,306は、あるタイプの管理サービスとの通信に適したプロトコルを使用するように構成されうる。メッセージ管理サービスインタフェース304は、メッセージ管理サービス(例えば、メッセージ管理サービス200)と通信するように構成されうる。コンテンツ管理システム306は、コンテンツ管理サービス(例えば、オンラインコンテンツ管理サービス130)と通信するように構成されうる。いくつかの実施形態では、通信インタフェース302は、管理サービスと通信するためにアプリ310によって実現されてもよい。
アプリ310は、1つ以上のアプリケーションモジュールによって実現されうる。いくつかの実施形態では、アプリ310のモジュールの全て又は一部は、アプリ310を操作するためにクライアントデバイス300に蓄積されてローカルで実行されうる。例えば、アプリ310のモジュールの全て又は一部は、クライアントデバイス300にインストールされうるか、クライアントデバイス300がアクセス可能なコンピューティングシステム(例えば、メッセージ管理サービス200)からの受信後に蓄積されうる。いくつかの実施形態では、アプリ310のモジュールの全て又は一部は、クライアントデバイス300がアクセス可能なコンピューティングシステム(例えば、メッセージ管理サービス200又はアクセス管理システム140)上でリモートでホスト又は実行されうる。メッセージ管理サービス200のようなコンピューティングシステムは、通信インタフェース302を介してアクセス可能でありうる。その操作のために、アプリ310は、アクセス管理システムを実現するアクセス管理システム140又は管理サービス(例えば、メッセージ管理サービス104及び/又はオンラインコンテンツ管理サービス130)と通信しうる。いくつかの実施形態では、アプリ310は、例えば、クライアントデバイス300のオペレーティングシステム上で動作するクライアントアプリ、ウェブベースのメッセージングサービスとのインタフェースを行うウェブブラウザ、メッセージングサービス102のプロバイダによって提供されるサービス固有のアプリケーション、又は他のアプリとして実現されうる。例えば、アプリ310は、メッセージ管理サービス104又はオンラインコンテンツ管理サービス130のプロバイダによって実現され、アプリケーションインタフェース332を介してクライアントデバイス300からアクセスされうる。
いくつかの実施形態では、アプリ310は、インタフェース管理部312、画像ハンドラ314、アクセスハンドラ316、及び通信ハンドラ318を含む機能ブロック又はモジュールによって実現されうる。クライアントデバイス300は、サービスへのアクセスの管理用の情報を蓄積するアクセス管理キャッシュ308を含みうる。
アクセス管理キャッシュ308は、アクセス情報、電子画像、及び管理サービスへのアクセスを管理するための他の情報の、蓄積及び取り出しを提供するデータベース又は他のデータストアでありうる。クライアントデバイス300は、クライアントデバイス300によって受信される電子画像及び/又はアクセス情報を蓄積するために、アクセス管理キャッシュ308を使用しうる。アクセス管理キャッシュ308に蓄積される情報は、サービスによって提供されるアカウント及び/又はメッセージングサービスによって提供されるメッセージングアカウントに関連付けられうる。
クライアントデバイス300が、サービスにアクセスするための1つ以上の動作の実行要求をアプリケーションインタフェース332を介して受信した場合、クライアントデバイス300は、当該動作を実行するために当該要求を処理しうる。動作は、クライアントデバイス300が、サービス(例えば、メッセージ管理サービス104及び/又はオンラインコンテンツ管理サービス130)にアクセスするための電子画像を含む要求のような、適切な命令を伝達することを含みうる。
通信ハンドラ318は、アクセス管理システム、サービス(メッセージ管理サービス200又は図1のオンラインコンテンツ管理サービス130)、及び/又は1つ以上のメッセージングサービス204との通信を管理しうる。通信ハンドラ244は、メッセージングサービス204によって提供されるメッセージングアカウントのメッセージを受信しうる。当該メッセージは、メッセージングサービス204から又はメッセージ管理サービス200を介して受信されうる。メッセージ管理サービス200から受信されたメッセージは、メッセージ管理サービス200によって提供されるアカウントに関連付けられうる。メッセージは、メッセージ管理サービス200にアクセスするために使用されうる電子画像及び/又はアクセス情報を含みうる。
いくつかの実施形態では、通信ハンドラ318は、アプリの情報のような、メッセージ管理サービス200へのアクセスを促進する情報を、アプリケーションインタフェース332での表示のために受信しうる。通信ハンドラ318は、アプリケーションインタフェース332とのインタラクションに基づいて、サービスにアクセスするための要求を送信しうる。例えば、ユーザがアプリケーションインタフェース332内の電子画像とのインタラクションを行った場合に、通信ハンドラ318は、メッセージ管理サービス200に対して、電子画像を含む、及び/又は当該電子画像内にアクセス情報を含む要求を送信しうる。
インタフェース管理部312は、本明細書で説明するアプリケーションインタフェース332の例のような、アプリケーションインタフェース332内に表示される情報を生成しうる。例えば、インタフェース管理部312は、アプリケーションインタフェース332に表示されうるグラフィカルインタフェースを生成しうる。アプリケーションインタフェース332は、メッセージ管理サービス200から受信されたメッセージ、又はメッセージングサービス204から受信されたメッセージを表示しうる。アプリケーションインタフェース332内に表示されるメッセージについては、図8乃至図10を参照して説明する。
インタフェース管理部312は、アプリ310(図16に示されるメッセージ管理サービス200用のアプリ)の1つ以上のインタフェースを表示するために、アプリケーションインタフェース332を生成しうる。アプリケーションインタフェース332は、メッセージ管理サービス200から受信された情報に基づいて生成されうる。
いくつかの実施形態では、アプリケーションインタフェース332は、アクセス情報を含む電子画像を表示しうる。電子画像は、メッセージの一部として表示されうる。アプリケーションインタフェース332は、サービスへのアクセスのための1つ以上のインタフェースを提示しうる。いくつかの実施形態では、電子画像は、アプリケーションインタフェース332(例えば、電子メールアプリケーション用に表示されたインタフェース)内に表示されうる。
いくつかの実施形態では、アプリケーションインタフェース332は、ユーザが電子画像とのインタラクション(例えば、ドラッグ)を行うことを可能にしうる。クライアントデバイスによって提示されるインタフェースとのインタラクションの例については、図14及び図15を参照して説明する。電子画像は、メッセージ管理サービス200からのメッセージで受信されうる。インタフェース管理部312は、実行すべき1つ以上の動作を判定するために、アプリケーションインタフェース332におけるインタラクションから受け付けられた入力を処理しうる。インタフェース管理部312は、電子画像を使用してメッセージ管理サービス200にアクセスするための要求のような、ユーザからの要求を判定するために、当該入力を処理しうる。アプリケーションインタフェース332を介して受け付けられた入力は、電子画像に対応する入力のような、ユーザからの入力を判定するために処理されうる。当該入力は、インタラクションが生じた電子画像を特定するために処理されうる。
インタフェース管理部312は、メッセージ管理サービス200にアクセスする、ユーザの権限を示す権限情報のような、メッセージ管理サービス200から受信された情報を表示しうる。アプリケーションインタフェース332は、権限に基づくメッセージ管理サービス200へのアクセス用のインタフェース(例えば、図16に示されるインタフェース)を表示するために、調整又は更新されうる。このようなインタフェースは、アカウントに対する権限の付与に応じてメッセージ管理サービス200へのアクセスが可能となるために提供されうる。インタフェース管理部312は、権限に基づくメッセージ管理サービス200へのアクセスを可能にする追加のインタフェースを提示しうる。いくつかの実施形態では、追加のインタフェースは、サービスのフィーチャを提供するためにアプリケーションインタフェース332内で提示されうる。
画像ハンドラ316は、電子画像に対して処理を実行する。例えば、画像ハンドラ316は、例えばユーザが電子画像とのインタラクションを行った際に、メッセージから当該電子画像を取得するためにメッセージを処理しうる。電子画像からの情報は、アクセス情報及び/又は当該電子画像の使用に関連する状況のような情報を、当該電子画像から取り出すために処理されうる。
アクセスハンドラ314は、電子画像に基づくアクセスを要求するためにメッセージ管理サービス200へ要求を伝達するよう、通信ハンドラ318に要求しうる。アクセスハンドラ318は、サービス又はアクセス管理システムから受信された権限情報を処理し、それに応じて、サービスにアクセスする権限を示すためにアプリケーションインタフェース332を提示するよう、インタフェース管理部312に命令しうる。当該権限に基づいて、アクセスハンドラ318は、アプリケーションインタフェース332を提示するよう、インタフェース管理部312に命令しうる。インタフェース管理部312は、当該権限に基づいてサービスにアクセスすることを可能にするための、アプリ310用のアプリケーションインタフェース332を生成しうる。
いくつかの実施形態では、アプリケーションインタフェース332は、アカウントに対して提供されるサービスへのアクセスに関する情報を提供しうる。アカウントに関する情報は、当該アカウントに関連付けられた1つ以上の電子画像(例えば、コイン)を特定する情報を含みうる。例えば、アプリケーションインタフェース332は、アカウントに関連付けられた電子画像を表示するがオズ(例えば、ウォレット)を表示しうる。電子画像には、受信された電子画像、利用された電子画像、及び/又は他のアカウントと共有された電子画像が含まれうる。各電子画像は、当該電子画像の使用又は利用に関連する状況と一緒に表示されるか、又は当該状況を示しうる。
いくつかの実施形態では、インタフェース管理部312は、電子画像に対応する使用状況に関する情報を提供するためにアプリケーションインタフェース332を生成しうる。例えば、アプリケーションインタフェース332は、1つ以上の電子画像に基づいてアカウントからアクセス可能なサービスを示す情報を提供しうる。当該情報は、アカウントがアクセス可能なサービスへのアクセスのタイプを示しうる。当該情報は、サービスへのアクセスのタイプに対応して利用された1つ以上の電子画像を示しうる。いくつかの実施形態では、アプリケーションインタフェース332は、追加の電子画像を取得するための、又は基準の満足に基づいてアクセス可能なフィーチャを取得するための、基準を示す情報を提供しうる。いくつかの実施形態では、1つ以上の電子画像は、当該基準と関連付けて表示されうる。
いくつかの実施形態では、アプリケーションインタフェース332は、サービスの1つ以上のアカウントで使用された、又は当該アカウントと関連付けて使用された電子画像に関連する情報を表示しうる。例えば、アプリケーションインタフェース332は、複数のアカウントによって利用された電子画像の状況に関する情報を表示しうる。当該情報は、電子画像の取得に関連する又は電子画像の利用に関連する状況を表示しうる。いくつかの実施形態では、当該情報は、電子画像に関連する1つ以上のカテゴリに基づいて表示されうる。例えば、1つのカテゴリは、電子画像に基づいてユーザに対して許可された、サービスのフィーチャへのアクセスを示しうる。他の例では、1つのカテゴリは、ユーザによって受信された電子画像の数を示しうる。アプリケーションインタフェース332によって表示される情報は、電子画像に関連するランク付けを示すランク付け情報を示しうる。例えば、アプリケーションインタフェース332は、電子画像の受信、電子画像の共有、及び/又は電子画像の利用に基づく、アカウント間のランク付けを示しうる。
ある実施形態では、インタフェース管理部312は、電子画像の受信のために満たされた1つ以上の基準を示す情報を表示するアプリケーションインタフェース332を提供しうる。例えば、アプリケーションインタフェース332は、1つ以上の電子画像の履歴を示す情報を表示しうる。例えば、当該履歴は、いつ及び/又はどのように、電子画像が受信、利用及び/又は共有されたかを示しうる。いくつかの実施形態では、アプリケーションインタフェース332は、電子画像が受信、共有又は利用されたアカウントのような、複数の電子画像の関係を示す情報を提供しうる。
図4は、本発明の実施形態に係る、サービス管理システムへのアクセスを管理するためのデータ構造400の例を示す。図5は、本発明の実施形態に係る、サービス管理システムによって提供されるサービスへのアクセスを管理するためのデータ構造500の例を示す。ある実施形態では、データ構造400は、ツリーデータ後続のように、階層データ構造として体系化されうる。データ構造400は、限定することなく、連結リスト、アレイ、ハッシュテーブル、マップ、レコード、グラフ、又は他のタイプのデータ構造を含む、1つ以上のタイプのデータ構造を用いて実現されてもよい。いくつかの実施形態では、データ構造400は、図4を参照して図示及び/又は本明細書で説明されるデータ構造400とは異なる方法で体系化されてもよい。データ構造400及びデータ500は、メッセージ管理サービス200がアクセス可能なストレージ(例えば、図2のアクセス管理キャッシュ240)で管理されうる。図4及び図5を参照して説明するデータ構造は、アクセス管理システム(例えば、アクセス管理システム140)によって実現されうる。
データ構造400は、各データ構造が本明細書において「ノード」と称される、複数のデータ構造を含みうる。例えば、データ構造400は、ノード1(N1)402、ノード2(N2)412、ノード3(N3)414、ノード4(N4)416、ノード5(N5)422、ノード6(N6)424、ノード7(N7)432、ノード8(N8)434、ノード9(N9)442、ノード10(N10)444、及びノードn(Nn)404を含みうる。特定の数のノード及び特定の数のレベルで示されているが、データ構造400は、図4に示されるよりも、多くの又は少ないノード及び/又は多くの又は少ないレベルを含みうる。データ構造400は、サービスへのアクセスを管理するために実現されうる。ノードは、アクセス情報、及びアクセス情報に基づく権限の判定に使用される他の情報を格納しうる。例えば、各ノードは、サービスへのアカウントのアクセスを管理するために使用される情報を含みうる。いくつかの実施形態では、ノードは、サービスのフィーチャへのアクセスに対応する情報(例えば、アクセス情報)を含みうる。異なるサービス及び/又は当該サービスの異なるフィーチャへのアクセスを管理するために、データ構造400とは別個の階層データ構造が実現されてもよい。別個のデータ構造は、異なるノード(例えば、ノードNn 404)及び/又は異なるノードレベルを含みうる。ノードの例については、図5も参照して以下で説明する。
図4に示されるような、いくつかの実施形態では、データ構造400は、各レベルが1つ以上のノードを含む複数のノードレベルを含みうる。例えば、図4に示されるようなデータ構造400は、第1レベルのノード(例えば、マスターノード)を含みうる。この例では、N1 402は、マスターノードに対応しうる。マスターノードは、1つ以上のサービス、1つ以上のフィーチャ、又はそれらの組み合わせへのアクセスの判定に使用される情報を格納しうる。図4に示される例では、N1 402は、サービス管理システムによって提供されるサービス(例えば、メッセージ管理サービス200又はオンラインコンテンツ管理サービス130)へのアクセスを判定するために使用される情報を格納しうる。
マスターノード(例えば、N1 402)は、サービスへのアクセスの判定に用いられるセキュリティキー(例えば、マスターセキュリティキー又は親セキュリティキー)を格納しうる。セキュリティキーは、それぞれがマスターセキュリティキーに基づいて得られるアクセス情報(例えば、派生セキュリティキー又は子セキュリティキー)を生成するために使用されうる。マスターセキュリティキーは、サービスへのアクセス用の他のセキュリティキーを生成する又は得るために使用されうるが、それ自体は、サービスへのアクセスを取得するために使用されなくてもよい。マスターセキュリティキーは、乱数、又はハッシュ演算若しくは関数によって生じる値に対応しうる。図5のデータ500は、N1 402のようなマスターノードの例を示す。アクセスノード412は、データ構造400を使用して管理されるサービスのタイプを示す情報を含みうる。
マスターノードN1 402内のマスターセキュリティキーは、サービスへのアクセスを許可するためのアクセス情報(例えば、1つ以上のセキュリティキー)を得るために使用されうる。いくつかの実施形態では、マスターセキュリティキーは、サービスにアクセスするためのアクセス情報を生成するために使用されうる。セキュリティキーは、乱数、又はハッシュ演算若しくは関数によって生じる値に対応しうる。マスターセキュリティキーに基づいて生成されたセキュリティキー(例えば、派生セキュリティキー)は、サービスへのアクセスを許可するために使用されうる。このように、各派生セキュリティキーは、マスターセキュリティキーの子孫でありうる。マスターセキュリティキーを使用することによって、サービスへのアクセスのためのアクセス情報の判定のためのプロセスが、他のコンピューティングシステム又はクライアントによる再現又は複製から保護されうる。各派生セキュリティキーは、異なる電子画像内に、サービスへのアクセスを要求するために使用されうるアクセス情報として格納されうる。
いくつかの実施形態では、マスターノード(例えば、N1 402)は、マスターノードに関連付けられたノードを特定する情報を含みうる。図5には、マスターノードN1 402が格納している情報の例が示されている。N1 402のようなマスターノードは、第2レベルのノード(例えば、N2 412、N3 414、及びN4 416)、及び第3レベルのノード(ノードN5 422、N6 424、N7 432、N8 434、N9 442、N10 444)のような、1つ以上の異なるレベルのノード(例えば、アクセスノード)を特定する情報を含みうる。第2レベルのノード群及び/又は第3レベルのノード群に含まれる各ノードは、N1 402によって制御されるサービスへのアクセスのタイプを示す情報を含みうる。第3レベルのノード群に含まれるノードは、第2レベルのノード群に含まれるノードに関連付けられうる。例えば、ノードN5 422及びN6 424は、ノードN2 412に関連付けられ、ノードN7 432、N8 434及びN9 442は、ノードN3 414に関連付けられ、ノードN10 444は、ノードN4 416に関連付けられうる。異なるレベルのノード間の関係について、以下で更に説明する。
第2レベルのノード群の各ノードは、N1 402によって制御されるサービスへのアクセスを示す情報を含むアクセスノードに相当しうる。例えば、第2レベルのノード群の各ノードは、マスターセキュリティキーに基づいて生成されるセキュリティキーを含みうる。マスターセキュリティキーに基づいて生成されたセキュリティキーのそれぞれは、N1によって示されるサービスにアクセスするために使用されうる。いくつかの実施形態では、N1 402は、ノードN2 412、N3 414及びN4 416における各キーに基づくサービスへのアクセスを管理するための情報を含みうる。当該情報は、N2 412、N3 414及びN4 416における各キーを使用してサービスへのアクセスが許可されるか拒否されるかを示しうる。メッセージ管理サービス200は、ノードN2 412、N3 414及びN4 416のいずれかにおけるキーを使用して許可されたサービスへのアクセスを無効にするために、マスターN1 402のコンテンツを変更しうる。アクセスは、任意の数の理由で無効にされうる。例えば、サービスへのアクセスは、当該サービスの使用に関連する基準を満たす方法でアカウントが使用されていない場合に、無効化されうる。
いくつかの実施形態では、マスターノード(例えば、N1 402)は、サービスへのアクセスを管理するための他の情報を含みうる。例えば、N1 402は、マスターセキュリティキーに基づいて生成された派生セキュリティキーの数を示す情報を含みうる。各セキュリティキーは、サービスへアクセスする1以上のユーザへ送信されうる電子画像内に格納されうる。いくつかの実施形態では、N1 402は、マスターセキュリティキーに基づいてセキュリティキーを生成するための1つ以上の基準を示す情報を含みうる。当該1つ以上の基準は、リリースのためにサービスにアクセスするユーザの数を規制するために使用されうる。例えば、当該1つ以上の基準は、生成可能なセキュリティキーの最大数を含みうる。当該1つ以上の基準は、サービスへのアクセスを提供するために追加のセキュリティキーを生成可能であるかどうかを判定するために評価されうる。
第2レベルのノード群に含まれるノードは、データ構造を使用して実現されうる。例えば、図5のN2 412は、第2レベルのノードに格納される情報の例を用いて示されている。N2 412は、N1 402のマスターセキュリティキーから得られたセキュリティキーに対応する情報を含みうる。いくつかの実施形態では、第2レベルのノードの一部であってもよい。いくつかの実施形態では、各派生セキュリティキーは、サービスへのアクセスに関連付けられうる。各セキュリティキーが、サービス全体ではなく当該サービスのフィーチャへのアクセスを許可しうるように、各セキュリティキー間でアクセスが変化しうる。N2 412は、サービスへのアクセスのタイプを示す情報を含みうる。
第2レベルのノード群に含まれるノードに対応するセキュリティキーは、サービスへのアクセスを管理するために使用されうる。当該セキュリティキーは、サービスへアクセスする1以上のユーザへ送信される電子画像内にアクセス情報として格納されうる。当該電子画像を用いてアクセスが要求された場合、セキュリティキーは、当該セキュリティキーに基づいて権限を付与するかどうかを判定するために、アクセス管理システムによって検証されうる。いくつかの実施形態では、セキュリティキーを有するノードは、当該セキュリティキーに基づいてサービスにアクセスする権限を判定するように位置付けられる。以下で説明するように、アカウントは、第2レベルのノードN2 412、N3 414、N4 416に対応するセキュリティキーに基づいて、サービスへのアクセスを取得しうる。例えば、N2 412は、N2 412のセキュリティキーを使用してサービスへのアクセスを取得しているアカウントを示すアカウント情報を格納する。N2 412は、ノード(例えば、N2 412)に関連付けられたセキュリティキーがアカウントに関連付けられているか、及びそれ故に、サービスへのアクセスに使用されているかを判定するために、検査されうる。
いくつかの実施形態では、N2 412は、アクセス管理システムのオペレータによって、サービスへのアクセスが許可されるかどうかを示すために手動で変更されうる。アクセスは、任意の数の理由で無効にされうる。例えば、サービスへのアクセスは、当該サービスの使用に関連する基準を満たす方法でアカウントが使用されていない場合に、無効化されうる。いくつかの実施形態では、第2レベルのノードの祖先ノード(例えば、親ノード)は、当該第2レベルのノードのセキュリティキーを使用してアクセスが許可されうるかを判定するために検査されうる。
いくつかの実施形態では、N2 412は、サービスにアクセスするための1つ以上の基準を示す情報を含みうる。例えば、当該基準は、アクセス可能であるサービスのフィーチャを示しうる。当該基準は、アクセスを取得するための、又はサービスへのアクセスを維持するための要求条件(例えば、サービスの使用)を示しうる。いくつかの実施形態では、セキュリティキーは、当該基準が満たされた場合にサービスにアクセスするために、ユーザへ送信されうる。
いくつかの実施形態では、N2 412は、N2 412に対応するノード(例えば、親ノード)に関連する1つ以上の子孫ノード(例えば、子ノード)を示す情報を含みうる。例えば、N2 412は、N2 412の子ノードN5 422及びN6 424といった、他のレベルのノードを示しうる。子ノードは、親ノードのアカウントによって共有されるアクセスを提供するノードに相当する。子ノードに対応するセキュリティキーは、親ノードに関連付けられたアカウントによって共有される電子画像内に含まれうる。言い換えれば、子ノードは、他のアカウントによって与えられたセキュリティキーに基づくアクセスを示しうる。いくつかの実施形態では、子ノードのセキュリティキーは、親のノードに関連付けられたアカウントによって行われる動作に基づいてユーザに与えられうる。当該動作は、N2 412の基準によって定義されうる。いくつかの実施形態では、子ノードのセキュリティキーは、サービスの特定のフィーチャへのアクセスに対応しうる。当該アクセスは、親ノードに関連付けられたアカウントに対して許可されうる。このように、子ノードは、同じアカウントに対して許可されたアカウントに基づいて、親ノードに関連付けられうる。いくつかの実施形態では、複数のセキュリティキーがサービスへのアクセスに使用された場合に、複数の子ノードが第2レベルのノード群に含まれるノードに関連付けられうる。いくつかの実施形態では、複数のセキュリティキーが、サービスへのアクセスのために必要とされうる。各セキュリティキーは、異なる電子画像でユーザへ提供されうる。電子画像は、サービスへのアクセスを要求するために使用されうる。複数のセキュリティキーを使用してアクセスが許可された場合、当該セキュリティキーは、当該キーを共有し、かつ、当該セキュリティキーを使用して追加のアクセスを許可されたアカウントに関連付けられうる。
図5に示されるように、N6 424は、データ構造を使用して実現された第3レベルのノード群のノードの例である。N6 424は、N2 412に含まれる情報と同様の情報を含みうる。図4及び図5に示される例では、N6 424は子ノードに関連付けられていないため、N6 424は子ノードを示さない。N2 412と同様、N6 424は、マスターセキュリティキーを含むノードとして、マスターノードN1 402を示しうる。マスターセキュリティキーは、N6 424のセキュリティキーを生成するために使用されている。いくつかの実施形態では、ノードのセキュリティキーは、祖先ノードのセキュリティキーに基づいて生成されうる。例えば、N6 424のセキュリティキーは、N2 412及びN1 402のマスターセキュリティキーに対応する、N2 412のセキュリティキーに基づいて生成されうる。
いくつかの実施形態では、サービスにアクセスする権限は、データ構造400を使用して判定されうる。例えば、電子画像を用いてサービスにアクセスするための要求において受信されたセキュリティキーに一致するセキュリティキーを含む、データ構造400内のノードを見つけることによって、権限が判定されうる。いくつかの実施形態では、データ構造400のノードのセキュリティキーは、生成された場合に一致するセキュリティキーを特定するためにルックアップテーブル操作を実行できるようなテーブルに格納されうる。例えば、第2レベルのノード群のノードが、一致するセキュリティキーを有するノードを見つけるために検索されうる。セキュリティキーを使用してアクセスが既に許可されているかどうかの判定に応じて、権限が付与されうる。このような判定は、ノードが、サービスへのアクセスを許可されているアカウントを示す情報を含むかどうかを判定するためにノードを試験することによって、行われうる。このような情報は、セキュリティキーが使用されていることを示しうる。いくつかの実施形態では、第2レベルのノード群のノードは、ノードのセキュリティキーを使用してサービスにアクセス可能なユーザの閾値数を示す情報を含みうる。ノードのセキュリティキーを使用して閾値数のアカウントに対してアクセスが許可されているかどうかに基づいて、権限が判定されうる。他の例では、サービスにアクセスする権限は、セキュリティキーがノードに対して生成されうるような方法でチェックサム演算の実行に基づいて判定されうる。
図6及び図7は、本発明の実施形態に従って生成されうる電子画像の例を示す。図6を参照すると、電子画像600は、アクセス管理システム140によって生成されうる電子画像の例である。電子画像600は、クライアントデバイス(例えば、クライアントデバイス300)によって受信されうる。電子画像600は、クライアントデバイス300によってアプリケーションインタフェース332内で表示されうる。例えば、電子画像700は、電子メールアプリケーションにおいて表示される電子メールメッセージ内で表示されうる。電子画像600は、表示時に、コイン又は他の表示可能なオブジェクトの外観を有するように描画されうる。いくつかの実施形態では、電子画像600は、色、アニメーション、動き、又は他のタイプの外観(例えば、アニメートされるキャラクタ620)を有して表示されうる。
いくつかの実施形態では、電子画像600に含まれる情報610は、サービスへのアクセスに関連する値を示しうる。いくつかの実施形態では、情報610は、電子画像600を特定する値(例えば、電子画像番号)を示しうる。情報610は、電子画像600が発行された(例えば、生成された、又はデバイスへ送信された)日付及び時間を示しうる。当該値は、サービスへのアクセスのタイプのレベル、アクセス情報の使用状況、又は、電子画像600内の情報によって提供されるアクセスに関連する他の情報を示しうる。情報610は、電子画像600の生成に関連しうる。例えば、情報610は、マスターノード(例えば、N1 402)に基づいて得られた他の電子画像から電子画像600を明確に識別する値を示しうる。いくつかの実施形態では、情報610によって示される値の全て又は一部は、他の電子画像に含まれる情報によって示される値と同様であってもよい。例えば、同一のノード(例えば、マスターノード又はアクセスノード)に基づいて得られた電子画像は、それらの電子画像を使用してアクセス可能なフィーチャ又はサービスに対応する値を示す情報を含んでもよい。電子画像に含まれる情報は、異なるノード(例えば、アクセスノード又はマスターノード)に基づいて得られた電子画像に含まれる情報と異なってもよい。例えば、異なるノードに基づいて複数の電子画像が生成され、それぞれが異なるサービス又はフィーチャ用のアクセス情報を得るために使用された場合、情報は異なっていてもよい。
上述のように、電子画像600は、電子画像600に含まれるアクセス情報を使用したサービスへのアクセスの使用状況を示す情報を含みうる。当該使用状況は、サービスにアクセスするためのアクセス情報の使用を示しうる。電子画像600の外観は、電子画像600に含まれる情報が示す状況に対応しうる。当該情報は、サービス(例えば、メッセージ管理サービス104)へのアクセスの状況及び/又はタイプに対応しうる。例えば、使用状況は、メッセージ管理サービス(例えば、メッセージ管理サービス200)にアクセスするための電子コインの使用に対応しうる。電子画像600が表示された際、当該電子画像600の外観は、ユーザに対して許可される又は許可されているアクセスのタイプを示しうる。例えば、電子画像600の外観は、電子画像600の使用状況の変化を示すように変化しうる。いくつかの実施形態では、電子画像600は、名称、アクセスのタイプ、アクセスされうるサービス(例えば、メッセージ管理サービス)、又はそれらの組み合わせを識別する識別子630を含みうる。いくつかの実施形態では、識別子630は、アクセス情報に対応してもよいし、又はアクセス情報に対応してなくてもよい。
図7に目を向けると、アクセス管理システム140によって生成された電子画像700の例が示されている。電子画像700は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。例えば、電子画像700は、電子メールアプリケーションにおいて表示される電子メールメッセージ内で表示されうる。クライアントデバイス300は、アプリケーションインタフェース332内で電子画像700を描画しうる。電子画像700は、サービス(メッセージ管理サービス200)にアクセスするための当該電子画像の使用に対応する状況を示す外観を有して描画されうる。図6とは対照的に、電子画像700は、電子画像600とは異なりうる外観710を有している。この例では、外観710は、サービスにアクセスするための電子画像700の使用を示しうる。例えば、外観710は、使用済みであるためにサービスへのアクセスに使用不可能となるように、電子画像700が無効化されている又は非アクティブであることを示す外観(例えば、光輪(halo)及びグレーの色を有するコイン)を有しうる。
図8は、本発明の実施形態に係る、電子画像(例えば、電子画像600)を含む電子メッセージ(例えば、電子メッセージ820)を表示するインタフェース800の例を示す。インタフェース800は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。いくつかの実施形態では、インタフェース800は、メッセージ管理サービス104のようなサービスによって生成されうる。インタフェース800は、インタフェース800が表示されうる1つ以上のクライアントへメッセージ管理サービス104によって配信されるアプリの一部として提供されうる。メッセージ820は、ユーザに関連付けられたアカウントに対して配信される。アカウントは、サービス(例えば、メッセージ管理サービス104)によって提供されたアカウントであってもよく、又は、メッセージングサービスによって提供されるアカウント(電子メールアカウント)に相当してもよい。メッセージ820は、サービス(例えば、メッセージ管理サービス104)にアクセス(例えば、加入する)よう、ユーザを招待するために、ユーザへ配信されうる。いくつかの実施形態では、メッセージ820は、電子画像600を含みうる。メッセージ820は、ユーザが電子画像600を使用してサービスにアクセスすることを可能にしうるアプリケーション又はインタフェースへのアクセスを可能にする情報810を含みうる。例えば、情報810は、アプリケーションにアクセス又はアプリケーションをインストールするためのロケーション(例えば、URL又はメモリ内のロケーション)に相当しうる。電子画像600は、このようなアプリケーション又はインタフェースがサービスへのアクセスを要求する際に使用(例えば、インタラクション)されうる。
図9は、本発明の実施形態に係る、電子画像(例えば、電子画像600)を含む電子メッセージ(例えば、電子メッセージ920)を表示するインタフェース900の例を示す。インタフェース900は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。いくつかの実施形態では、メッセージ920は、メッセージ920のコンテンツに関してメッセージ820とは異なりうる。メッセージ920は、サービス(例えば、メッセージ管理サービス)の既存のユーザに向けられていてもよい。メッセージ920は、サービスを更に使用するよう、又はサービスの新しい若しくは異なるフィーチャを使用するよう、ユーザ(例えば、メッセージ920の受信者)を招待するために、電子画像600を含みうる。同様に、メッセージ920は、ユーザが電子画像600を使用してサービスにアクセスすることを可能にしうるアプリケーション又はインタフェースへのアクセスを可能にする情報910を含みうる。例えば、情報910は、アプリケーションにアクセス又はアプリケーションをインストールするためのロケーション(例えば、URL又はメモリ内のロケーション)に相当しうる。いくつかの実施形態では、メッセージ920は、電子画像900を含みうる。インタフェース900は、コンピューティングデバイスにおいて提示されるグラフィカルインタフェースでありうる。インタフェース900は、アプリケーション(例えば、サービスによって提供されるアプリケーション)において提示されうる。いくつかの実施形態では、メッセージ920は、電子画像600を使用してサービスにアクセスするよう、ユーザを招待するために他のユーザへ送信される新たなメッセージ(例えば、転送されたメッセージ)でありうる。新たなユーザは、情報910を介してアプリケーションにアクセスしうる。当該アプリケーションは、ユーザが電子画像600を使用してサービスにアクセスすることを可能にしうる。
図10は、本発明の実施形態に係る、複数の電子画像(例えば、電子画像1012、電子画像1014、及び電子画像1016)を含む電子メッセージ(例えば、電子メッセージ1020)を表示するインタフェース1000の例を示す。インタフェース1000は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。メッセージ920と同様、メッセージ1020は、1つ以上の電子画像1012,1014,1016を使用してサービス(例えば、メッセージ管理サービス104)にアクセスするよう、ユーザを招待しうる。複数の電子画像1012,1014,1016は、メッセージ1020で受信されうる。複数の電子画像は、ユーザが特定の方法でサービスを使用するよう仕向けるために、ユーザの動作に基づいてサービスによってユーザへ与えられうるか、又は、サービスにアクセスするよう他のユーザを招待するために、当該ユーザへ与えられうる。複数の電子画像1012,1014,1016は、他のユーザと共有されうる。いくつかの実施形態では、電子画像1012,1014,1016のそれぞれは、単一アカウントへのアクセスを許可しうる。例えば、電子画像は(例えば、画像をメッセージ内で他のアカウントへ送信することによって)他のユーザと共有されうるが、アクセスは、アクセス情報に対応する基準に制限されうる。電子画像は、メッセージ及び/又はアプリケーションを介して1以上の人々へ配信されうる。いくつかの実施形態では、複数の電子画像が、サービスへのアクセスを要求するために利用されうる。
いくつかの実施形態では、メッセージ1020は、ユーザがサービスにアクセスすることを可能にしうるアプリケーション又はインタフェースへのアクセスを可能にする情報1010のような、インタラクティブエレメント(例えば、コントロール)を含みうる。例えば、情報1010は、アプリケーションにアクセス又はアプリケーションをインストールするためのロケーション(例えば、URL又はメモリ内のロケーション)に相当しうる。情報1010は、クライアントによってアプリケーションを受信(例えば、ダウンロード又はインストール)させるようにして、サービスへのアクセスを促進しうる。当該アプリケーションは、ユーザが電子画像1012,1014,1016の1つ以上を使用したサービスへのアクセスを要求することを可能にしうる。
いくつかの実施形態では、メッセージ1020は、リンク1030のようなインタラクティブエレメント(例えば、コントロール)を含みうる。リンク1030は、ユーザが1つ以上の電子画像1012,1014,1016を他のユーザに対して共有するためにメッセージを生成又は要求を送信することを可能にしうる。いくつかの実施形態では、電子画像が異なるユーザと共有されうるが、サービスにアクセスするために特定の数のユーザが電子画像を使用可能となるように、アクセスが制御されてもよい。
図11は、本発明の実施形態に係る、メッセージ管理サービス(例えば、メッセージ管理サービス200)にアクセスするためのコンピューティング環境を選択するためのインタフェース1100の例を示す。インタフェース1100は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。インタフェース1100は、1つ以上のグラフィカルインタフェースを含みうる。インタフェース1100は、アプリにおいて提示されうる。いくつかの実施形態では、インタフェース1100は、メッセージ(例えば、メッセージ820)内の情報(例えば、情報810)を使用したアクセスに基づいて表示されうる。インタフェース1100を使用して、ユーザは、メッセージ管理サービスにアクセスするためのアプリケーションをインストールするためのプラットフォーム又はコンピューティング環境を選択しうる。いくつかの実施形態では、インタフェース1100は、電子画像を用いて判定された権限の判定に基づいて表示されうる。
図11に示される例では、インタフェース1100は、それぞれが、ユーザがコンピューティングデバイス上でアプリケーションを確立するためのプロセスを開始させることを可能にする、インタラクティブエレメント1110、インタラクティブエレメント1120、及びインタラクティブエレメント1130を含みうる。インタラクティブエレメント1110,1120,1130のそれぞれは、メッセージ管理サービスにアクセスするためのアプリケーション固有の環境にアクセスすることを可能にしうる。クライアントデバイス300は、ユーザによって選択されたアプリケーション固有の環境に基づいてメッセージ管理サービスにアクセスするための1つ以上のインタフェースを提示しうる。いくつかの実施形態では、インタラクティブエレメント1130のようなインタラクティブエレメントは、アクセスが、電子画像(例えば、コイン)を有することに依存しうることを示しうる。
図12は、本発明の実施形態に係る、メッセージ管理サービスにアクセスするためのインタフェース1210,1220,1240の例を示す。インタフェース1210,1220,1240の1つ以上は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。いくつかの実施形態では、インタフェース1210は、ユーザがサービスへのアクセス(例えば、サインイン又はログイン)を行うことを可能にするために提示されうる。インタフェース1220は、メッセージ管理サービスにアクセスするためのアクセス情報又はアカウント情報(例えば、電子メールアドレス及びパスワード)を受信するための、1つ以上のインタラクティブエレメントが提示されうる。いくつかの実施形態では、メッセージ管理サービスへのアクセスは、検証コードを含むメッセージにユーザが接する2ステップの検証プロセスを含みうる。インタフェース1230は、2ステップ検証を実行するための検証コードをユーザが入力することを可能にするために提示されうる。
図13は、本発明の実施形態に係る、メッセージ管理サービスを介してメッセージングサービスにアクセスするためのアカウント情報を入力するためのインタフェース1310,1320,1330の例を示す。インタフェース1310,1320,1330の1つ以上は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。インタフェース1310は、メッセージ管理サービスを介したアクセスのために利用可能な1つ以上のメッセージングサービス(例えば、メッセージングサービスA 204a及びメッセージングサービスB 204b)に関する情報を表示しうる。メッセージングサービスに関する情報は、インタラクションに応じてインタフェース1320を提示させるインタラクティブエレメントに関連付けられうる。インタフェース1320は、インタフェース1310を介して選択されたメッセージングサービスにアクセスするためにユーザがメッセージングアカウント又はアクセス情報(例えば、電子メールアドレス及びパスワード)を指定することを可能にする、1つ以上のインタラクティブエレメントを含みうる。インタフェース1330は、インタフェース1320とのインタラクションに応じて提示されうる。インタフェース1330は、メッセージングアカウントに関連付けられた追加の情報をユーザが指定することを可能にする、1つ以上のインタラクティブエレメントを表示しうる。当該追加の情報は、名前、アドレス、及びエイリアスの説明のような、エイリアスに対応する情報を含みうる。
図14は、本発明の実施形態に係る、メッセージ管理サービスへのアクセスを要求するためのインタフェース1410,1420の例を示す。インタフェース1410,1420の1つ以上は、クライアントデバイス300のアプリケーションインタフェース332内に表示されうる。
インタフェース1410は、メッセージ管理サービスによって提供されるサービスにアクセスするための要求に応じて、クライアントにおいてユーザに対して提示されうる。インタフェース1410は、電子画像を受け付けるための容器についての1つ以上の画像(例えば、電子画像1412)を含みうる。インタフェース1420は、サービスへのアクセスを要求するために電子画像(例えば、コイン)を提供するためのインタラクションをユーザが開始することを可能にしうる。例えば、ユーザは、電子画像の提供のためのインタラクションの開始を要求するために、インタフェース1420内のインタラクティブエレメント1414とのインタラクションを行いうる。いくつかの実施形態では、インタラクティブエレメント1414は、電子画像のロケーション(例えば、ストレージのロケーション)をユーザが選択すること、又は電子画像を示す入力を提供するためにインタフェース1420とのインタラクションをユーザが行うことを可能にしうる。
図15は、本発明の実施形態に係る、電子画像を使用してメッセージ管理サービスへのアクセスを要求するためのプロセス1500の例を示す。プロセス1500は、クライアントデバイス(例えば、クライアントデバイス300)によって実現されうる。図15は、プロセス1500を実現するクライアントによって表示されうるインタフェースのシーケンスを示す。
例えば、プロセス1500は、メッセージを含むインタフェース1500を表示することによって、ステップ1510において開始する。当該メッセージは、コイン1512の電子画像のような電子画像を含みうる。当該メッセージは、サービス(例えば、メッセージ管理サービス)へのアクセスを要求するために電子画像を使用するよう、当該メッセージの受信者を招待しうる。インタフェース1500は、ユーザが電子画像1512を使用してサービスにアクセスすることを可能にしうるアプリケーション又はインタフェースへのアクセスを可能にしうる情報1514を含みうる。例えば、情報1514は、アプリケーションにアクセス又はアプリケーションをインストールするためのロケーション(例えば、URL又はメモリ内のロケーション)に対応しうる。
ステップ1520において、プロセス1500は、インタフェース1524を表示させるインタラクティブエレメント1514とのインタラクションをユーザが行うことを含みうる。ステップ1530において、プロセス1500は、電子画像1512とのインタラクションをユーザが行うことを含みうる。電子画像1512とのインタラクションは、メッセージ管理システムへのアクセスを要求するために、電子画像1512の使用をユーザが要求することを含みうる。ユーザは、電子画像を受け付け可能な画像1522を含む同じインタフェース(例えば、インタフェース1500)又は他のインタフェース(例えば、インタフェース1524)内で電子画像1512を移動させる(例えば、ドラッグする)ために、電子画像1512とのインタラクションを行いうる。一例では、ユーザは、クライアントからのメッセージ管理サービスへのアクセスを要求するために、インタフェース1524内の容器1522の上または近くに、電子画像1512をドラッグしうる。ステップ1530は、電子画像600とのインタラクションに対応する入力を受け付けることを含みうる。
ステップ1540において、プロセス1500は、インタフェース1524が、その外観をインタフェース1544の外観へ変化させることを含みうる。インタフェース1544は、電子画像1512が、容器1412へ受け入れられることを示しうる。電子画像1512の受け入れに応じて、クライアントは、電子画像1512に基づいてアクセスを要求するために、メッセージ管理サービス(例えば、メッセージ管理サービス200)へ要求を送信しうる。いくつかの実施形態では、当該要求は、電子画像1512を含みうる。メッセージ管理システムにアクセスするためのプロセスについて、図17及び図18を参照して以下で更に説明する。
いくつかの実施形態では、サービスにアクセスする権限の受信に応じて、1つ以上の追加のグラフィカルインタフェースが、当該サービスへのアクセスを可能にするために提供されうる。当該追加のグラフィカルインタフェースは、サービスにアクセスするためのアプリケーションをユーザがインストールすることを可能にする1つ以上のインタラクティブエレメントを含みうる。図16は、プロセス1500を介した権限の受信に応じて、メッセージ管理サービス200にユーザがアクセスすることを可能にするアプリケーションのインタフェースの例を示す。
図16は、本発明の実施形態に係る、メッセージ管理サービスのインタフェース1600の例を示す。インタフェース1600は、クライアントデバイス(例えば、クライアントデバイス300)によって実現されうる。インタフェース1600は、メッセージ管理サービス200によって提供されるアカウントのメッセージを制御するためのインタフェースの一例である。インタフェース1600へのアクセスは、サービスにアクセスするためのプロセス(例えば、図15のプロセス1500)によって提供されうる。電子画像の利用は、アカウント(例えば、メッセージ管理サービスによって提供されるアカウント)に対して関連付け又はリンクされうる。
図17は、本発明の実施形態に係る、電子画像(例えば、電子画像300)を使用してメッセージ管理サービス(例えば、メッセージ管理サービス104)へのアクセスを管理するためのプロセス1700の例を示す。プロセス1700は、クライアントデバイス300のようなコンピュータシステムによって実現されうる。
プロセス1700は、ブロック1705において、メッセージ管理サービスへのアクセス用の電子画像(例えば、電子画像600)を取得することによって開始しうる。当該電子画像は、メッセージ管理サービスへのアクセスを取得するためのアクセス情報を含みうる。いくつかの実施形態では、電子画像は、メッセージングサービス(例えば、メッセージングサービス102)から受信されたメッセージ内で取得されうる。当該メッセージは、メッセージングアカウント(例えば、電子メールアカウント)のメッセージへのアクセスを有するコンピューティングシステムによって受信されうる。例えば、アクセス情報は、電子画像のメタデータに含まれうる。いくつかの実施形態では、電子画像は、クライアントのローカルストレージから取得されうる。電子画像は、当該クライアントによって、メッセージ管理サービス又は他の任意のクライアントから受信されていてもよい。
いくつかの実施形態では、アクセス情報は、セキュリティキーを含みうる。セキュリティキーは、メッセージ管理サービスによって生成されうる。電子画像は、メッセージ管理サービスにアクセスするためのアクセス情報の使用に対応する状況に関する情報を含みうる。当該状況は、メッセージ管理サービスにアクセスするためのアクセス情報の使用に対応しうる。例えば、当該状況は、電子画像が、メッセージ管理サービスにアクセスするために以前に使用されたかどうかを示しうる。いくつかの実施形態では、メッセージ管理サービスへのアクセスは、メッセージ管理サービスによって提供されるアカウントに関する情報の取得用にクライアントデバイスにアプリをインストールするためのアクセスを含みうる。いくつかの実施形態では、メッセージ管理サービスへのアクセスは、メッセージ管理サービスのフィーチャへのアクセスを含みうる。
ブロック1710において、プロセス1700は、メッセージ管理サービスに関連するグラフィカルインタフェース(例えば、「第1グラフィカルインタフェース」)内の電子画像とのインタラクションに対応する入力を受け付けることを含みうる。例えば、図14において、クライアント300は、メッセージ管理サービス104に関連するインタフェース800内の電子画像600とのインタラクション(例えば、電子画像600のドラッグ)に対応する入力を受け付けうる。電子画像600は、インタフェース1420内の容器1412へドラッグされうる。
いくつかの実施形態では、電子画像は、ユーザが、クリック、タップ、選択、押下、スワイプ、スライド、ドラッグ、他のインタラクティブ動作、又はそれらの組み合わせのような1つ以上のインタラクションを行うことによって電子画像とのインタラクションが可能となるように、インタラクティブでありうる。インタラクションによって受け付けられる入力は、当該インタラクションのタイプを示しうる。いくつかの実施形態では、グラフィカルインタフェース(例えば、図14のインタフェース1410)は、コンピューティングシステムにおいて提示されうる。グラフィカルインタフェースは、アプリの一部として提示されうる。当該アプリは、ユーザがメッセージ管理サービスへのアクセスを要求することを可能にしうる。例えば、グラフィカルインタフェースは、画像(例えば、容器1412)を含みうる。この例では、電子画像は、アプリ内の当該画像に関してドラッグ又は移動されうる。このようなインタラクションは、メッセージ管理サービスにアクセスするための要求を示しうる。当該アクセスは、アクセス情報に基づいて付与される権利に基づきうる。いくつかの実施形態では、グラフィカルインタフェースは、メッセージ管理サービスによって提供されるアカウントに対応するアカウント情報をユーザが提供することを可能にしうる。
ブロック1715において、プロセス1700は、メッセージ管理サービスに関連するコンピューティングデバイスへ、当該メッセージ管理サービスへのアクセスを要求するために電子画像を送信することを含みうる。たとえば、クライアント300は、ユーザに関連付けられたアカウントを使用してクライアント300によるメッセージ管理サービス104へのアクセスを要求するために、電子画像(例えば、電子画像600)をメッセージ管理サービス104へ送信しうる。いくつかの実施形態では、メッセージ管理サービスによって提供されるアカウントを使用して、コンピュータシステムからアクセスが要求されうる。いくつかの実施形態では、電子画像は、グラフィカルインタフェース内の電子画像とのインタラクションを示す入力を受け付けることに基づいて送信されうる。アカウントは、メッセージ管理サービス104によって提供されるアカウントに関連付けられうる。メッセージ管理サービスは、当該メッセージ管理サービスへ送信された電子画像に基づいて当該メッセージ管理サービスにアクセスするための当該アカウントの権限を判定しうる。例えば、メッセージ管理サービスは、電子画像に基づいてアクセスを要求するユーザが、当該メッセージ管理サービスへのアクセスを有しうるかどうかを判定しうる。アクセス情報の検証は、以前に当該アクセス情報を使用してアクセスが要求されたかどうかを判定することを含みうる。いくつかの実施形態では、アクセス情報を使用してメッセージ管理サービスへのアクセスする権利は、メッセージ管理サービスによって提供される特定のアカウントに対して付与されうる。
ブロック1720において、プロセス1700は、コンピュータシステム(例えば、クライアント300)を使用してメッセージ管理サービスにアクセスする権限を示す権限情報を受信することを含みうる。例えば、クライアント300は、メッセージ管理サービス104から権限情報を受信しうる。権限情報は、ブロック1715において送信された電子画像を使用して判定される権限に基づいて送信されうる。権限情報は、アカウントのユーザが、アクセス情報に基づいて付与された権利についてメッセージ管理サービスにアクセスできるかどうかを示しうる。いくつかの実施形態では、権限情報は、アカウントに関連付けられたユーザに対して認可された特定の権利を示しうる。当該権利は、アクセス情報に基づくアクセスに対して初めに付与された権利よりも少なくてもよい。
ブロック1725において、プロセス1700は、メッセージ管理サービスへのアクセスを提供するグラフィカルインタフェース(例えば、「第2グラフィカルインタフェース」)を、受信された権限情報に基づいて表示することを含みうる。いくつかの実施形態では、当該グラフィカルインタフェースは、メッセージ管理サービスへのアクセスを与えられたアカウントに関連付けられたメッセージングアカウントに対応する情報(例えば、1つ以上のメッセージ)を表示しうる。例えば、クライアント300は、メッセージ管理サービス104を介してアクセスされるメッセージングアカウントに関連付けられたメッセージへのアクセスを提供するグラフィカルインタフェース1600を表示しうる。当該グラフィカルインタフェースは、ブロック1710において入力が受け付けられた第1グラフィカルインタフェースとともに、当該第1グラフィカルインタフェースと分離して、又はコンピューティングシステムの異なる表示で、表示されうる。いくつかの実施形態では、第2グラフィカルインタフェースは、アプリの一部でありうる。第2グラフィカルインタフェースは、メッセージ管理サービス又は当該メッセージ管理サービスの特定のフィーチャへのアクセス用のログインスクリーンに対応しうる。メッセージ管理サービスへのアクセスは、受信された権限情報に基づきうる。メッセージ管理サービスは、アカウントに関連付けられたメッセージングアカウントに対応する情報を表示しうる。例えば、表示される情報は、メッセージングアカウントの1つ以上のメッセージを含みうる。
図18は、本発明の実施形態に係る、電子画像(例えば、電子画像300)を使用してメッセージ管理サービス(例えば、メッセージ管理サービス104)へのアクセスを管理するためのプロセス1800の例を示す。プロセス1800は、アクセス管理システム(例えば、図1のアクセス管理システム140)のコンピュータシステム又はコンピューティングデバイスによって実現されうる。アクセス管理システムは、アクセスが管理されるメッセージ管理サービス300のようなサービスによって実現されうる。
プロセス1800は、ブロック1805において、1つ以上のコンピュータシステムに対して、アクセス情報を含む電子画像を提供することによって開始しうる。アクセス情報は、メッセージ管理サービスへのアクセスを可能にしうる。1つ以上のコンピュータシステムのそれぞれは、1以上のユーザに関連付けられうる。いくつかの実施形態では、メッセージングサービスを介して、ユーザに関連付けられたメッセージングアカウントへ電子画像を含むメッセージを送信することによって、当該ユーザに対して電子画像が提供されうる。いくつかの実施形態では、電子画像を含むメッセージを送信するよう、メッセージングサービスに命令するために、メッセージングサービスに対して要求が送信されうる。当該要求は、メッセージの送信先である受信者を識別する情報(例えば、受信者に関連付けられたメッセージングアカウント)を含みうる。
メッセージに含められる電子画像は、メッセージ管理サービスへのアクセスの取得用のアクセス情報を含みうる。例えば、アクセス情報は、電子画像のメタデータに含まれうる。電子画像は、メッセージ管理サービスにアクセスするためのアクセス情報の使用に対応する状況に関する情報を含みうる。当該状況は、メッセージ管理サービスにアクセスするためのアクセス情報の使用に対応しうる。例えば、当該状況は、電子画像が、メッセージ管理サービスにアクセスするために以前に使用されたかどうかを示しうる。いくつかの実施形態では、メッセージ管理サービスへのアクセスは、メッセージ管理サービスによって提供されるアカウントに関する情報の取得用にクライアントデバイスにアプリをインストールするためのアクセスを含みうる。いくつかの実施形態では、メッセージ管理サービスへのアクセスは、メッセージ管理サービスのフィーチャへのアクセスを含みうる。
いくつかの実施形態では、アクセス情報は、セキュリティキーを含みうる。セキュリティキーは、メッセージ管理サービスによって生成されうる。セキュリティキーは、サービスにアクセスするための権利に関連付けられうる。サービスにアクセスする権限は、セキュリティキーを使用して検証されうる。アクセス情報を使用したサービスへのアクセスは、当該サービスの1つ以上のフィーチャ又は機能へのアクセスを含みうる。セキュリティキーは、ハッシュ演算を用いて生成されうる。いくつかの実施形態では、セキュリティキーは、1つ以上のセキュリティキーを用いて生成されることによって、アクセスを更に保護しうる。例えば、子孫キー(例えば、親又はマスターセキュリティキー)に基づいてセキュリティキー(例えば、派生セキュリティキー)が得られうる。アクセス情報の例については図4及び図5を参照して説明している。
ブロック1810において、プロセス1800は、コンピュータシステムを使用してメッセージ管理サービスにアクセスするための要求を受信することを含みうる。当該要求は、アクセス情報を含む電子画像を含みうる。電子画像を含む要求は、アクセスを要求したコンピュータシステム又は他のコンピュータシステムから受信されうる。例えば、当該要求は、電子画像を含むメッセージを受信したコンピュータシステムから受信されうる。いくつかの実施形態では、電子画像の送信元のコンピュータシステムは、電子画像を受信したメッセージングアカウントに関連付けられうる。いくつかの実施形態では、電子画像の送信元のコンピュータシステムは、サービス(例えば、メッセージ管理サービス104)によって提供されるアカウントに関連付けられうる。上述のように、電子画像。
ブロック1815において、プロセス1800は、コンピュータシステムからメッセージ管理サービスにアクセスする権限を検証することを含みうる。いくつかの実施形態では、メッセージ管理サービスによって提供されるアカウントについて権限が検証されうる。上述のように、メッセージ管理サービスにアクセスするアカウントの権限は、ブロック1810において受信された電子画像内のアクセス情報を用いて検証されうる。いくつかの実施形態では、当該アクセス情報を用いた1つ以上の演算(例えば、ハッシュ演算)を実行することによって、アクセス情報を用いて権限が検証されうる。アクセス情報は、アクセス管理システムによって検証されうる。例えば、アクセス管理部232は、アカウントがメッセージ管理サービスにアクセスしうるかどうかを判定しうる。アクセス管理部232は、クライアントから受信されたアクセス情報を使用して、当該クライアントからメッセージ管理サービス200にアクセスするための、アカウントの権限を検証しうる。メッセージ管理サービスにアクセスする権限の検証は、機能、フィーチャ、オペレーション、メソッド、又はそれらの組み合わせにアクセスする権限を判定することを含みうる。メッセージ管理サービスにアクセスする権限の検証は、アクセス情報を使用して、メッセージ管理サービス200にアクセスするための以前の要求に対して当該アクセス情報が使用された(例えば、処理された)かどうかを判定することを含みうる。
いくつかの実施形態では、メッセージ管理サービス200にアクセスする権限は、アクセス管理キャッシュ240内でアクセス情報を検索する動作を実行することによって検証されうる。アクセス管理キャッシュ240は、アクセス情報がメッセージ管理サービス200によって生成されたかどうかを判定するために検索されうる。アクセス情報を検索する動作は、アクセス情報が、アカウント(例えば、メッセージ管理サービス200又は他のサービス(例えば、オンラインコンテンツ管理サービス130)によって提供されるアカウント)に関連付けられているかどうかを判定することを含みうる。いくつかの実施形態では、特定の数のアカウントが、アクセス情報に基づいてメッセージ管理サービスにアクセスするために使用されうる。検証は、最大数のアカウントがアクセス情報に関連付けられているかどうかを判定することを含みうる。関連付けられていない場合には、アクセスが許可されうる。
ブロック1820において、プロセス1800は、メッセージ管理サービスにアクセスする権限を示す権限情報を送信することを含みうる。権限は、メッセージ管理サービスにアクセスするユーザに関連付けられたアカウントについての権限を示しうる。いくつかの実施形態では、権限情報は、メッセージングサービスを介してメッセージ内でユーザへ送信されうる。当該メッセージは、アクセスの要求に使用された電子画像を含みうる。
いくつかの実施形態では、電子画像の外観が、電子画像に含まれるアクセス情報に基づくアカウントの権限を示すために変化しうる。例えば、電子画像の外観は、メッセージ管理サービスにアクセスする権限を示しうる。電子画像の外観は、メッセージ管理サービスにアクセスする権限を取得するためのアクセス情報の使用を示しうる。当該使用は、メッセージ管理サービスにアクセスする権限を取得するためにアクセス情報が使用されたかどうかを示しうる。権限情報は、ユーザがメッセージ管理サービスにアクセスすることを可能にしうる。いくつかの実施形態では、権限は、当該権限に基づいてメッセージ管理サービスにアクセスするためのリンク及び/又は命令を含みうる。いくつかの実施形態では、権限情報は、権限に基づいてメッセージ管理サービスにアクセスするために使用されうる、アプリケーション、1つ以上のインタフェース、又はデータを含みうる。
権限情報は、メッセージ管理サービスにアクセスする権限が付与されたかどうかを示す情報を含みうる。いくつかの実施形態では、権限情報は、メッセージ管理サービスへのアクセスの許可に基づいて実行されうる、1つ以上の機能、フィーチャ、オペレーション、モード又はそれらの組み合わせを示しうる。いくつかの実施形態では、権限情報は、ユーザがグラフィカルインタフェースを介してメッセージ管理サービスにログインする際に提示するための追加のアクセス情報(例えば、パスワード)を含みうる。権限情報は、メッセージ管理サービスにアクセスするための1つ以上の基準(例えば、条件)を含みうる。当該基準は、時間、日付、動作、イベント、又はそれらの組み合わせを含みうる。
プロセス1700及び1800は、例示的であり、変更又は修正が可能であることが理解されよう。順に説明したステップは、並列に実行されてもよいし、ステップの順序が変更されてもよいし、ステップが修正、結合、追加又は省略されてもよい。上記プロセスは、クライアントデバイス、メッセージ管理サービスのコンピュータシステム、メッセージングサービスのコンピュータシステム、及び/又はオンラインコンテンツ管理サービスのコンピュータシステムを含む、種々のコンピュータシステムによって実行されうる。いくつかの実施形態では、上記プロセスの異なる部分が異なるコンピュータシステムによって実行されてもよい。例えば、図17及び図18を参照して説明した動作の全て又は一部が、アクセス管理システム、メッセージ管理サービス、オンラインコンテンツ管理サービス、又はそれらの組み合わせによって部分的に実行されてもよい。
特定の実施形態に関して本発明を説明してきたが、当業者であれば、多数の変更が可能であることを理解することになる。例えば、上記の説明は、電子メールへの参照を行っているが、本発明は、蓄積及び管理されることが可能な任意のタイプの電子メッセージに対して適用可能である。
本明細書で説明した種々の動作は、一般に従来の設計のシステムを含みうるコンピュータシステム上で実現可能である。図19は、代表的なコンピュータシステム1900の簡略化したブロック図を示す。種々の実施形態において、コンピュータシステム1900又は同様のシステムは、ユーザデバイス(例えば、図1のクライアント108,110のいずれか)及び/又はサーバシステム(例えば、図1のメッセージングサービス102、メッセージ管理サービス104及び/又はオンラインコンテンツ管理サービス130)を実現しうる。コンピュータシステム1900は、(複数の)処理ユニット1905、ストレージサブシステム1910、入力デバイス1920、出力デバイス1925、ネットワークインタフェース1935、及びバス1940を備えうる。
(複数の)処理ユニット1905は、1つ以上のコアを有しうる単一のプロセッサ、又は複数のプロセッサを含みうる。いくつかの実施形態では、(複数の)処理ユニット1905は、汎用一次プロセッサと、グラフィックプロセッサ、デジタルシグナルプロセッサ等の1つ以上の専用コプロセッサとを含みうる。いくつかの実施形態では、処理ユニット1905の一部又は全ては、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)等のカスタマイズされた回路を用いて実現されうる。いくつかの実施形態では、このような集積回路は、当該回路自体に格納された命令を実行する。他の実施形態では、(複数の)処理ユニット1905は、ストレージサブシステム1910に格納された命令を実行しうる。
ストレージサブシステム1910は、システムメモリ、読み出し専用メモリ(ROM)、及びパーマネントストレージデバイス等の種々のメモリユニットを含みうる。ROMは、(複数の)処理ユニット1905及びコンピュータシステム1900の他のモジュールによって必要とされる静的なデータ及び命令を格納しうる。パーマネントストレージデバイスは、読み出し書き込み用メモリデバイスでありうる。このパーマネントストレージデバイスは、コンピュータシステム1900の電源が落とされても命令及びデータを保存する不揮発メモリユニットでありうる。本発明のいくつかの実施形態は、マス・ストレージデバイス(磁気ディスク、光ディスク、又はフラッシュメモリ)を、パーマネントストレージデバイスとして使用しうる。他の実施形態は、リムーバブルストレージデバイス(例えば、フロッピーディスク、フラッシュドライブ)を、パーマネントストレージデバイスとして使用しうる。システムメモリは、ダイナミックランダムアクセスメモリ等の、読み出し書き込み用メモリデバイス又は揮発性の読み出し書き込み用メモリでありうる。システムメモリは、(複数の)処理ユニット1905が実行時に必要とする命令及びデータの一部又は全てを格納しうる。
ストレージサブシステム1910は、種々のタイプの半導体メモリチップ(DRAM、SRAM、SDRAM、フラッシュメモリ、プログラム可能読み出し専用メモリ)等を含む、任意の組み合わせのコンピュータ読み取り可能記憶媒体を含みうる。磁気ディスク及び/又は光ディスクも使用可能である。いくつかの実施形態では、ストレージサブシステム1910は、読み出し可能及び/又は書き込み可能でありうるリムーバブル記憶媒体を含みうる。このような媒体の例には、コンパクトディスク(CD)、読み出し専用デジタル多用途ディスク(例えば、DVD−ROM、デュアルレイヤDVD−ROM)、読み出し専用及び書き込み可能Blue−Ray(登録商標)ディスク、ウルトラ・デンシティ・オプティカルディスク、フラッシュメモリカード(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気ディスク等が含まれる。コンピュータ読み取り可能記憶媒体は、無線で又は有線接続を介して伝搬する搬送波及び非一時的な電子信号を含まない。
いくつかの実施形態では、ストレージサブシステム1910は、オペレーティングシステム、メッセージングクライアント・アプリケーション、アクセス管理コード1912等の、(複数の)処理ユニット1905によって実行される1つ以上のソフトウェアプログラムを格納しうる。例えば、コンピュータシステム1900が、図2のメッセージ管理サービス200を実現する場合、アクセス管理コード1912は、本明細書で説明されている動作及び方法を、メッセージ管理サービス200によって実行されるように実現しうる。コンピュータシステム1900が、図1のクライアント102(又は他のクライアント)を実現する場合、アクセス管理コード1912は、本明細書で説明されている動作及び方法を、クライアントによって実行されるように実現しうる。「ソフトウェア」は、一般に、(複数の)処理ユニット1905によって実行された場合に、コンピュータシステム1900に種々の動作を実行させることで、ソフトウェアプログラムの動作を実行する1つ以上の固有のマシン・インプリメンテーションを規定する、命令のシーケンスを指す。当該命令は、(複数の)処理ユニット1905による実行のために揮発性のワーキングメモリへ読み出し可能な、読み出し専用メモリ内に存在するファームウェア及び/又は不揮発性の記憶媒体内に格納されたアプリケーションとして、格納されうる。ソフトウェアは、単一のプログラム、又は要望に応じてインタラクションを行う個別のプログラム若しくはプログラムモジュールのコレクションとして実現されうる。(複数の)処理ユニット1905は、ストレージサブシステム1910から、実行するプログラム命令及び処理する命令を、本明細書で説明されている種々の動作を実行するために取り出しうる。
ユーザインタフェースは、1つ以上のユーザ入力デバイス1920及び1つ以上のユーザ出力デバイス1925によって提供されうる。入力デバイス1920は、それを介してユーザがコンピュータシステム1900へ信号を提供可能な任意のデバイスを含みうる。コンピュータシステム1900は、当該信号を、特定のユーザの要求又は情報を示すものとして解釈しうる。種々の実施形態において、入力デバイス1920は、キーボード、トラックパッド、タッチスクリーン、マウス若しくは他のポインティングデバイス、スクロールホイール、クリックホイール、ボタン、スイッチ、キーパッド、マイク等のいずれか又は全てを含みうる。
ユーザ出力デバイス1925は、それを介してコンピュータシステム1900がユーザへ情報を提供可能な任意のデバイスを含みうる。例えば、ユーザ出力デバイス1925は、コンピュータシステム1900によって生成された画像を表示するためのディスプレイを含みうる。ディスプレイは、エレクトロニクス(例えば、デジタル・アナログ変換器、アナログ・デジタル変換器、シグナルプロセッサ等)をサポートするとともに、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)を含む発光ダイオード(LED)、プロジェクションシステム、カソード・レイ・チューブ(CRT)等の、種々の画像生成技術を包含しうる。いくつかの実施形態は、入力デバイス及び出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含みうる。いくつかの実施形態では、他のユーザ出力デバイス1925は、ディスプレイに加えて又は代えて提供されうる。インジケータ・ライト、スピーカ、触覚「ディスプレイ」デバイス、プリンタ等が例に含まれる。
いくつかの実施形態では、入力デバイス1920及び出力デバイス1925は、ユーザが入力デバイスを使用して、画面上に表示された制御エレメントを選択する(例えば、マウス等のポインティングデバイスを操作する、又はタッチスクリーン上で制御エレメントが表示されたロケーションをタッチする)ことによってコンピュータシステム1900とのインタラクションを行うことを可能にするグラフィカルユーザインタフェース(「GUI」)を提供することによって、相互動作しうる。
ネットワークインタフェース1935は、メッセージに応じてアクセス及び動作するために種々のメッセージングサービス及び/又はメッセージ管理サービスとの通信を行う能力を含む、コンピュータシステム1900に対して音声及び/又はデータ通信機能を提供しうる。いくつかの実施形態では、ネットワークインタフェース1935は、(例えば、3G、4G若しくはEDGE、Wi−Fi(IEEE802.11ファミリー標準規格)のような携帯電話技術、若しくは他の移動通信技術、又はそれらの任意の組み合わせを使用する)無線音声及び/又はデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、GPS受信機コンポーネント、及び/又は他のコンポーネントを含みうる。いくつかの実施形態では、ネットワークインタフェース1935は、無線インタフェースに加えて又は代えて、有線ネットワーク接続性(例えば、イーサネット(登録商標))を提供しうる。ネットワークインタフェース1935は、ハードウェア(たとえば、アンテナ、変調器/復調器、符号器/復号器、及び、その他のアナログ及び/又はデジタル信号処理回路)及びソフトウェアコンポーネントの組み合わせを用いて実現されてもよい。
バス1940は、コンピュータシステム1900の多くのコンポーネントを通信可能に接続する、種々のシステムバス、周辺バス、及びチップセットバスを含みうる。ストレージサブシステム1910は、(複数の)処理ユニット1905に、本明細書で説明されるようにサービスへのアクセスを管理させるように構成された、アクセス管理コード1912を含みうる。例えば、バス1940は、(複数の)処理ユニット1905をストレージサブシステム1910と通信可能に接続しうる。バス1940は、更に、入力デバイス1920と出力デバイス1925とを接続しうる。バス1940は、更に、コンピューティングシステム1900を、ネットワークインタフェース1935を介してネットワークに接続しうる。このように、コンピュータシステム1900は、複数のコンピュータシステムのネットワークの一部(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、又はインターネット等の、複数のネットワークのうちのネットワーク)でありうる。いくつかの実施形態では、バス1940及びネットワークインタフェース1935は、(ネットワークインタフェース1935の一部でありうる)WANインタフェースを介してクライアントと通信可能な大規模コンピューティング容量(例えば、サーバファーム)を提供するために、任意の数のコンピュータを一緒に接続するように動作しうる。
いくつかの実施形態は、コンピュータ読み取り可能記憶媒体内のコンピュータプログラム命令を格納するマイクロプロセッサ、ストレージ及びメモリのような電子コンポーネントを含む。本明細書で説明されている特徴の多くは、コンピュータ読み取り可能記憶媒体上でエンコードされたプログラム命令のセットとして規定されたプロセスとして実現されうる。これらのプログラム命令が1つ以上の処理ユニットによって実行された場合、これらの命令は、(複数の)処理ユニットに、プログラム命令において示される種々の動作を実行させる。プログラム命令又はコンピュータコードの例には、コンパイラによって生成されるようなマシンコード、コンピュータによって実行される高レベルコードを含むファイル、電子コンポーネント、又はインタプリタを使用するマイクロプロセッサが含まれる。
(複数の)処理ユニット1905は、適切なプログラミングを通じて、コンピュータシステム1900に対して種々の機能を提供しうる。例えば、(複数の)処理ユニット1905は、アクセス管理キャッシュコード1912を実行しうる。例えば、コンピュータシステム1900がクライアントデバイスを実現する場合、(複数の)処理ユニット1905は、例えば、上述したインタフェース画面のいずれか又は全てを含む、メッセージとのインタラクションを行うためにユーザによる操作が可能なインタフェースを提供するメッセージングクライアントアプリを実行しうる。コンピュータシステム1900がサーバ(例えば、図1のメッセージ管理サービス104、オンラインコンテンツ管理サービス130又はメッセージングサービス102の全て又は一部)を実現する場合、(複数の)処理ユニット1905は、クライアントの要求を受信及び当該要求に応答する、及びサーバ又はサービスによって実行可能なように本明細書で説明されている他の動作を実行する、サーバアプリケーションを実行しうる。
コンピュータシステム1900は、例示的であり、変更又は修正が可能であることが理解されよう。コンピュータシステム1900は、ここで具体的に説明されていない他の機能(例えば、携帯電話、グローバルポジショニングシステム(GPS)、電力管理、1つ以上のカメラ、外部デバイス又はアクセサリの接続用の種々の接続ポート等)を有してもよい。更に、コンピュータシステム1900は、特定のブロックを参照して説明されているが、これらのブロックは、説明の便宜のために定義されており、かつ、コンポーネント部品の特定の物理的な構成を示唆するように意図されていないことが理解される。更に、複数のブロックは、物理的に区別されたコンポーネントと対応している必要はない。ブロックは、例えば、プロセッサをプログラミングすることによって、又は適切な制御回路を設けることによって、種々の動作を実行するように構成されうるとともに、種々のブロックは、初期の構成がどのように取得されるかに依存して、再構成可能であっても再構成可能でなくてもよい。本発明の実施形態は、回路及びソフトウェアの任意の組み合わせを使用して実現される電子デバイスを含む、種々の装置で実現されうる。
本発明の実施形態は、専用コンポーネント及び/又はプログラム可能プロセッサ及び/又は他のプログラム可能デバイスの任意の組み合わせを使用して実現されうる。本明細書で説明されている種々のプロセスは、同じプロセッサ又は任意の組み合わせの異なるプロセッサ上で実現されうる。特定の動作を実行するよう構成されるようにコンポーネントが説明されているが、このような構成は、例えば、動作を実行するように電子回路を設計することによって、動作を実行するようにプログラム可能電子回路(マイクロプロセッサ等)をプログラムすることによって、又はそれらの任意の組み合わせによって、実現されうる。更に、上述した実施形態は、特定のハードウェア及びソフトウェアコンポーネントに言及しうるが、ハードウェアコンポーネント及び/又はソフトウェアコンポーネントの異なる組み合わせも使用可能であること、ハードウェアで実現されるように説明された特定の動作がソフトウェアでも実現されうること、及びソフトウェアで実現されるように説明された特定の動作がハードウェアでも実現されうることが、当業者には理解されることになる。
本発明の種々の特徴を包含するコンピュータプログラムは、種々のコンピュータ読み取り可能記憶媒体(磁気ディスク若しくはテープ、コンパクトディスク(CD)若しくはDVD(デジタル多用途ディスク)等の光記憶媒体、フラッシュメモリ、及びその他の非一時的媒体)でエンコード及び格納されうる。プログラムコードでエンコードされたコンピュータ読み取り可能記憶媒体が、互換性のある電子デバイスとともにパッケージ化されてもよいし、又は、当該プログラムコードは、(インターネットダウンロードを介して、又は別にパッケージ化されたコンピュータ読み取り可能記憶媒体として)電子デバイスとは別に提供されてもよい。
このように、本発明は特定の実施形態に関して説明されているが、本発明は、添付の請求項の範囲内におけるあらゆる変更及び等価なものを包含することが意図されていることが、理解されることになる。