本開示は、ロケーションベースサービスゾーン(たとえば、ジオフェンス、ビーコンなど)を管理する、さまざまなシステム及び方法に関する。本開示のいくつかの実施形態は、ユーザデバイスの制限を上回らずに、包括的な1セットのロケーションベースサービスゾーンを含むユーザデバイスを囲む動的なサイズ領域を管理して、作成することに関する。本開示の別の実施形態は、ある特定の時間窓中でのみアクティブである場合があるロケーションベースサービスゾーンを管理することに関する。本開示の別の実施形態は、位置固有ユーザエクスペリエンスを提供する複数のプロバイダについてのロケーションベースサービスゾーンを管理することに関する。複数のプロバイダについてのロケーションベースサービスゾーンの管理を一元化することによって、他のプロバイダによる干渉なしで、プロバイダがそれらのそれぞれのロケーションベースサービスゾーンを安全な方式で独立して管理することを可能にしたままで、制約され共有されたリソースについてのユーザデバイス上での競合を制限してもよい。
ロケーションベースサービスゾーンの実施例は、地理的フェンス(「ジオフェンス」)及びビーコンを含む。ジオフェンスは、地理的座標及び半径の組み合わせのような、仮想地理的境界と定義されることが可能である。たとえば、ジオフェンスは、ユーザが特定のプロバイダと関連するロケーションベースサービスを経験し得る領域を画定してもよい。ジオフェンス領域は、ユーザが経験したい場合がある特定のロケーションベースサービスに対応する領域を囲む仮想境界線によって形成される、又は画定されることが可能である。ジオフェンスの内側領域は、いずれかの適切なサイズ、及びいずれかの適切な形状であってもよい。仮想境界線は、二次元又は三次元境界線に対応することができる。たとえば、プロバイダがデリバリサービスに関連すると仮定する。二次元境界線はデリバリ位置を中心とする領域を含むことができ、三次元境界線はデリバリ位置の高さ又は高度を含んでもよい。たとえば、三次元境界線は、建物の特定の階又はスイートにジオフェンスを置くために、高さ又は高度を利用してもよい。
ビーコンは、無線信号をブロードキャストするように構成されるデバイスを含んでもよい。デリバリサービスの実施例を使用して、プロバイダデバイスは、プロバイダデバイスの位置に関連する無線信号をブロードキャストするビーコンを含んでもよい。ユーザデバイスがビーコンの近接内にあるときに、ユーザデバイスは、無線信号を受信することにより、ビーコンと関連するイベント通知(たとえば、メッセージを表示する、近接位置のプロバイダデバイスを通知するなど)をトリガすることが可能である。
サービスプロバイダ(たとえば、モバイルストア、モバイルデリバリサービス、実店舗など)は、ロケーションベースサービスゾーンを作成して、これらのサービスに関連するユーザエクスペリエンスを開始してもよい。1つの非限定的な実施例において、プロバイダは、モバイルデリバリ位置においてマーチャントが販売する物品と関連付けられてもよい。各デリバリ位置は、それぞれのロケーションベースサービスゾーンと関連付けられてもよい。たとえば、マーチャントが位置Aにおいて物品を販売しているときに、マーチャント位置を囲む境界を画定するジオフェンスを作成してもよい。ジオフェンスを監視しているユーザデバイスがジオフェンスによって画定される境界を横切るときに、クライアントデバイスは、ジオフェンスを認識し、ジオフェンスと関連するアクションを実行してもよい(たとえば、マーチャント位置を含むメッセージを表示し、通知をプロバイダへ送信して集荷のための物品を準備するなど)。
本開示の1つの実施形態は、特定のユーザデバイスについてのアクティブゾーンを管理し、作成することに関する。アクティブゾーンは、ユーザデバイスの制限を越えない、包括的な1セットのロケーションベースサービスゾーンを含む動的なサイズのジオフェンス領域である。クライアントデバイスは、ロケーションベースサービスゾーンを含むアクティブゾーンをアクティブゾーン管理システムから受信し、このアクティブゾーン中に含まれる位置サービスゾーンを監視することが可能である。
図1Aは、本開示のさまざまな実施形態に従い、クライアントデバイス103によって監視される、複数のロケーションベースサービスゾーン101(図2)を含む、アクティブゾーン100の作成を示す例示的なシナリオを描画する図である。この実施例において、クライアントデバイス103は、ハンドヘルドモバイルデバイス(たとえば、タブレット、スマートフォンなど)に対応する。ロケーションベースサービスゾーン101は、理解されることができるように、ジオフェンス106(たとえば、106a、106b、106c、106d、106e、106f、106g)、ビーコン109(たとえば、109a、109b、109c、109d)、及び/又はいずれかの他のタイプのロケーションベースサービスゾーン101を含むことが可能である。クライアントデバイス103の制限に部分的に基づきアクティブゾーン100を作成する。たとえば、異なるタイプのクライアントデバイス103は、クライアントデバイス103がサポートすることが可能である、ロケーションベースサービスゾーン101の数に関する制限を有してもよい。これらの制限は、クライアントデバイス103の電力使用量、メモリ使用量、及び/又はプロセッサ使用量を最適化するために、クライアントデバイス103によって課せられてもよい。
いくつかの実施形態において、クライアントデバイス103の位置を決定し、所定の半径に従い、このクライアントデバイス位置を含むアクティブゾーン100を作成する。たとえば、いくつかの実施形態において、クライアントデバイス103の位置に中心点、及びいくつかの所定の値の半径(たとえば、1キロメートル(km)、5km、25kmなど)を有するアクティブゾーン100を作成してもよい。アクティブゾーン100を作成すると、このアクティブゾーン100内のロケーションベースサービスゾーン101を識別し得る。たとえば、図1Bにおいて、ジオフェンス106a〜f及びビーコン109a〜cは、アクティブゾーン100内にあると識別されるが、ジオフェンス106g及びビーコン109dは、アクティブゾーン100内で識別されない。
いくつかの実施形態において、ロケーションベースサービスゾーン101がアクティブゾーン100内にない場合、アクティブゾーン100は、元のアクティブゾーン100の外側に位置している場合があるロケーションベースサービスゾーン101を含むまで拡大され得る。たとえば、アクティブゾーン100は、クライアントデバイス位置から1km内の領域を含むように最初に作成されてもよい。しかしながら、ロケーションベースサービスゾーン101がアクティブゾーン100によって占められる領域内にない場合、アクティブゾーン100は、より大きな領域(たとえば、クライアントデバイス位置から25km)を含むまで拡大されてもよい。
いくつかの実施形態において、ロケーションベースサービスゾーン101をアクティブゾーン100内で識別しない場合、クライアントデバイス103は、監視するためのロケーションベースサービスゾーン101がないことが通知され得る。他の実施形態において、アクティブゾーン100内のロケーションベースサービスゾーン101の量は、クライアントデバイス103によってサポートされるロケーションベースサービスゾーン101の最大閾値を超える場合がある。ロケーションベースサービスゾーン101の量がクライアントデバイス103によってサポートされる最大閾値を超えるときに、ある特定の識別されたロケーションベースサービスゾーン101は、アクティブゾーン100から除外されることが可能である。ロケーションベースサービスゾーン101を特定のアクティブゾーン100から除外するか、このアクティブゾーン中に含むかを判定すし得る因子は、たとえば、理解されることが可能であるように、クライアントデバイス制限、ロケーションベースサービスゾーン101と関連するサービスがユーザ(たとえば、単一のユーザ)を標的とするか、広く(たとえば、複数のユーザを)標的とするかどうか、特定のロケーションベースサービスゾーン101のアクティブステータス、それぞれのサービスについてクライアントデバイスによるオプトインステータス、及び/又はいずれかの他の因子を含んでもよい。
本開示の別の実施形態は、時間制約されたロケーションベースサービスゾーン101(図2)の時間窓ゾーン管理に関する。図1Bは、クライアントデバイス103がロケーションベースサービスゾーン101に入る例示的なシナリオ、及びクライアントデバイス103がロケーションベースサービスゾーン101に入ることに応答する、コンピューティング環境203(図2)内で時間窓ゾーン管理システム112のビヘイビアを示す。図1Bの実施例は、ロケーションベースサービスゾーン101をジオフェンス106として示すが、このロケーションベースサービスゾーン101は、ビーコン109(図1A)であることも可能である。
さまざまな実施形態に従い、ロケーションベースサービスゾーン101は、いくつかの期間中にアクティブであり、他の期間中に非アクティブであってもよい。たとえば、これらの期間は、所定のスケジュール(たとえば、1時間毎に1分)、1週間のうちの選択日(たとえば、月曜日、水曜日、金曜日)、業務時間中の平日、週末のみ、営業時間中の週末、1年のうちの選択季節中などにアクティブであってもよい。他の実施形態において、プロバイダデバイス115が特定のロケーションベースサービスゾーンの位置内にあるときに、ロケーションベースサービスゾーン101だけがアクティブであってもよい。
クライアントデバイス103がジオフェンス106によって画定される(又はビーコンによってブロードキャストされる通信を受信することが可能である場所によって画定される)地理的領域に入るときに、クライアントデバイス103は、トリガイベント通知117をコンピューティング環境203(図2)内の時間窓ゾーン管理システム112へ送信してもよい。さまざまな実施形態に従い、時間窓ゾーン管理システム112は、トリガイベント通知117を受信することに応答して、ロケーションベースサービスゾーン101がアクティブであるか、非アクティブであるかどうかを判定してもよい。特定のロケーションベースサービスゾーン101のアクティブステータスは、理解されることが可能であるように、クライアントデバイスからのトリガイベント通知117を受信することと関連する時間、クライアントデバイス設定(たとえば、クライアントデバイス103がロケーションベースサービスゾーンと関連するサービスによってオプトインされるかどうか)、ユーザアカウント設定、ロケーションベースサービスゾーン101と関連するパラメータ(たとえば、アクティブ期間、特定のユーザ又は複数のユーザに標的とされる、ジオフェンス座標への更新など)、コンピューティング環境203と関連するクロック、及び/又は因子に少なくとも部分的に基づくことが可能である。
図1Bの実施例において、クライアントデバイス103と関連するユーザが第一時間118及び第二時間121にジオフェンス106によって画定される地理的領域中へ入ると仮定する。さらに、プロバイダデバイス115と関連するプロバイダがデリバリサービスであり、ユーザがこのプロバイダによる集荷を3:00pmにスケジューリングしたと仮定する。この実施例において、ジオフェンス106は、プロバイダデバイス115が置かれる地理的領域に関連してもよい。ユーザがジオフェンス106によって画定される地理的領域に第一時間118に入るときに、ジオフェンスは、アクティブではなく、クライアントデバイス103は、ジオフェンス106を監視していない。したがって、クライアントデバイス103は、アクションを取っていない。
いくつかの例示的なシナリオにおいて、クライアントデバイス103は、ジオフェンス106が非アクティブであるインディケーションなしでジオフェンス106を監視してもよく、トリガイベント通知117をコンピューティング環境203の時間窓ゾーン管理システム112へ送信してもよい。しかしながら、この実施例において、時間窓ゾーン管理システム112は、ジオフェンス106がトリガイベント通知117のその時点で特定のクライアントデバイス103についてアクティブではないと判定してもよい。このようなものとして、時間窓ゾーン管理システム112は、クライアントデバイス103と関連するトリガイベントのプロバイダデバイス115を通知することを控え得る。加えて、時間窓ゾーン管理システム112は、ジオフェンス106が古い状態にあるクライアントデバイス103を報告する通知をクライアントデバイス103へ送信し、ジオフェンス106の監視を中止してもよい。
しかしながら、ジオフェンス106がアクティブになるときに、時間窓ゾーン管理システム112は、監視するためにジオフェンスパラメータ244(図2)をクライアントデバイス103へ送信してもよい。このようなものとして、クライアントデバイス103に関するユーザが第二時間121にジオフェンス106によって画定されるジオフェンス領域に入るときに、クライアントデバイス103は、トリガイベント通知117を時間窓ゾーン管理システム112へ送信してもよい。トリガイベント通知117の受信時に、時間窓ゾーン管理システム112は、第二時間121がスケジューリングされた集荷時間に対応するため、ジオフェンス106がアクティブであると判定してもよい。このようなものとして、時間窓ゾーン管理システム112は、通知124をプロバイダデバイス115へ送信してもよく、プロバイダデバイス115と関連するプロバイダは、クライアントデバイス103と関連するユーザの到着のために準備することが可能である。
本開示のさまざまな実施形態に従い、時間窓ゾーン管理システム112は、コンピューティング環境203と関連するクロックに頼り、特定のロケーションベースサービスゾーン101がアクティブであるか、非アクティブであるかを判定してもよい。たとえば、クライアントデバイス103と関連する時間は、たとえば、クライアントデバイスクロックに対する、クロックスキュー、異なる時間帯、又はユーザ変更などのさまざまな因子が原因で正確ではない場合がある。時間窓ゾーン管理システム112と関連するクロックに頼ることによって、時間窓ゾーン管理システム112は、ロケーションベースアクティブゾーンの一元管理を提供し、ロケーションベースアクティブゾーンのアクティブステータスを判定する際に信頼性を高めることが可能である。
本開示の別の実施形態は、複数のプロバイダと関連するロケーションベースサービスゾーン101(図2)の一元管理に関する。具体的に、図1Cは、プロバイダデバイス115a、115b、及び115cが関連したロケーションベースサービスゾーン101についてのロケーションベースサービスゾーンデータをマルチプロバイダ管理システム127へすべて送信することが可能である例示的なシナリオを示す。順に、マルチプロバイダ管理システム127は、複数のプロバイダと関連するロケーションベースサービスゾーン101を含むクライアントデバイス103へ通知を送信することが可能である。マルチプロバイダ管理システム127は、複数のプロバイダがクライアントデバイス103上で実行する1以上のクライアントアプリケーション130(図2)を共有することを可能にする安全かつ隔離されたシステムである。また、マルチプロバイダ管理システム127は、プロバイダ要件の乱用又は侵害の検出に応答して、プロバイダがロケーションベースサービスゾーン101をクライアントデバイス103へ提供することを制御し、制約することが可能である。
図1Cの実施例において、プロバイダデバイス115aは、ジオフェンス106hと関連付けられ、プロバイダデバイス115bは、ジオフェンス106iと関連付けられ、そしてプロバイダデバイス115cは、ジオフェンス106jと関連付けられる。図1Cの実施例は、ジオフェンス106を含むが、マルチプロバイダ管理システム127は、ビーコン109(図1A)と関連するプロバイダを管理することも可能である。
マルチプロバイダ管理システム127は、さまざまなユーザが経験したサービスに関連してロケーションベースサービスゾーン101を使用する複数のプロバイダをサポートするように構成されることが可能である。さまざまな実施形態に従い、クライアントデバイス103上の単一のクライアントアプリケーション130は、複数のプロバイダと関連するロケーションベースサービスゾーン101を監視するように構成されてもよい。プロバイダは、同一のクライアントアプリケーションを共有してもよいが、各プロバイダが互いの知識なしで同時に存在することが可能であるように、マルチプロバイダ管理システム127は、さまざまなプロバイダを互いから隔離するように構成されることが可能である。たとえば、トリガイベントがクライアントデバイス103上で発生するときに、マルチプロバイダ管理システム127は、トリガイベントと関連付けられるプロバイダデバイス115のみに通知を送信するように構成されることが可能である。さまざまな実施形態に従い、ロケーションベースサービスゾーン101に関連してクライアントデバイス103への、及び/又はプロバイダデバイス115へのいかなる通知も特定のプロファイルに固有であるように、各プロバイダは、一意のトークン識別子と関連付けられてもよい。
いくつかの実施形態において、マルチプロバイダ管理システム127は、特定のプロバイダと関連するロケーションベースサービスゾーン101を分析するように構成されることが可能である。その結果、マルチプロバイダ管理システム127は、特定のプロバイダによる乱用を識別し、必要があれば、プロバイダによる深刻度のレベルに基づきアクションを実行することが可能であり得る。たとえば、乱用は、特定のロケーションベースサービスゾーン101についてのパラメータを誤って設定する(たとえば、ジオフェンスは特定の実店舗と関連付けられるが、この店舗付近にない)こと、クライアントデバイス103に過剰な数のロケーションベースサービスゾーン101のスパムを送ること、及び/又は理解されることが可能であるようないずれかの他のタイプの乱用を備えてもよい。
他の実施形態において、プロバイダと関連するアクションを分析し、プロバイダ及び/又は対応するロケーションベースサービスゾーン101が特定の1セットの要件に応じることを検証することが可能である。これらの要件は、たとえば、複数のロケーションベースサービスゾーン101、時間制約、1以上のロケーションベースサービスゾーン101間の間隔要件、単一のユーザを標的としたロケーションベースサービスゾーン101、複数のユーザを標的としたカバレッジロケーションベースサービスゾーン101、時間窓ロケーションベースサービスゾーン101、許可される、又は制約されるロケーションベースサービスゾーン101のタイプ、及び/又は理解されることが可能であるような要件のいずれかの他のタイプを含んでもよい。要件に応じることに失敗するプロバイダに応答して、マルチプロバイダ管理システム127は、プロバイダと関連するロケーションベースサービスゾーン101をクライアントデバイス103へ提供することを控えることが可能である。
他の実施形態において、マルチプロバイダ管理システム127は、クライアントデバイス103のデバイス設定を分析し、特定のクライアントデバイス103が受信をオプトインした、又はオプトアウトしたのはどのサービスかを決定することが可能である。その結果、マルチプロバイダ管理システム127は、特定のクライアントデバイス103へ送信するのはどのロケーションベースサービスゾーン101か、及び/又は特定のプロバイダと関連するロケーションベースサービスゾーン101をクライアントデバイス103へ提供するかどうかを決定することが可能である。他の実施形態において、クライアントデバイス103は、特定のロケーションベースサービスゾーン101と関連付けられる特定のプロバイダに気付かない場合がある。
以下の説明では、システム及びその構成要素の一般的な説明を提供した後に、その動作の考察を伴う。
図2を参照すると、種々の実施形態によるネットワーク環境200が示される。ネットワーク環境200は、ネットワーク206を介して互いにデータ通信する、コンピューティング環境203、クライアントデバイス103、及びプロバイダデバイス115を含む。ネットワーク206は、たとえば、インターネット、イントラネット、エクストラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、ケーブルネットワーク、衛星ネットワーク、もしくは他の適切なネットワークなど、又は2つ以上のこれらのようなネットワークのいずれかの組み合わせを含む。
コンピューティング環境203は、たとえば、サーバコンピュータ又は計算能力を提供する任意の他のシステムを含んでもよい。代わりに、コンピューティング環境203は、たとえば、1以上のサーババンクもしくはコンピュータバンク又は他の配置で配置し得る複数のコンピューティングデバイスを採用し得る。係るコンピューティングデバイスは、単独の設備に位置し得る、又は多くの異なる地理的な場所間に分散され得る。例えば、コンピューティング環境203は、ホストコンピューティングリソース、グリッドコンピューティングリソース、及び/又は任意の他の分散コンピューティング配列を一緒に備え得る複数のコンピューティングデバイスを含み得る。いくつかの場合では、コンピューティング環境203は、処理、ネットワーク、ストレージ、又は他のコンピューティング関連リソースの割り当て容量が経時的に変化してもよい弾性的な計算リソースに対応してもよい。
様々なアプリケーション及び/又は他の機能は、様々な実施形態に従って、コンピューティング環境203で実行され得る。また、種々のデータは、コンピューティング環境203にアクセス可能であるデータストア209に格納される。データストア209は、認識できるように、複数のデータストア209を代表するものであり得る。例えば、データストア209に記憶されるデータは、下記に説明される様々なアプリケーション及び/又は機能エンティティの動作と関連付けられる。
コンピューティング環境203上で実行される、これらの構成要素は、たとえば、アクティブゾーン管理システム212、時間窓ゾーン管理システム112、マルチプロバイダ管理システム127、及び本明細書に詳細に考察されていない他のアプリケーション、サービス、プロセス、システム、エンジン、又は機能性を含む。アクティブゾーン管理システム212を実行し、特定のコンピューティングデバイスについてのアクティブゾーン100を作成する。アクティブゾーン100は、ユーザデバイスの制限を越えない、包括的な1セットのロケーションベースサービスゾーンを含む動的なサイズの地理的領域である。いくつかの実施形態において、アクティブゾーン管理システム212は、特定のクライアントデバイス103及びクライアントデバイス制限に特有であるロケーションベースサービスゾーン101を含むアクティブゾーンを作成し、このアクティブゾーンのサイズに動的に合わせて作ることが可能である。アクティブゾーン管理システム212は、ロケーションベースサービスゾーン101を作成されたアクティブゾーン100内で識別することが可能である。
いくつかの実施形態において、アクティブゾーン管理システム212は、デバイス制限を上回らないロケーションベースサービスゾーン101の量を含む、アクティブゾーン100のサイズを動的に拡大する、及び/又は縮小することが可能である。いくつかの実施形態において、アクティブゾーン管理システム212は、クライアントデバイス103へ提供する、ロケーションベースサービスゾーン101の数を減少させることが可能である。アクティブゾーン管理システム212は、クライアントデバイス位置における変化、ロケーションベースサービスゾーン101と関連する時間制約、ロケーションベースサービスゾーン101の追加、ロケーションベースサービスゾーン101の除去、ロケーションベースサービスゾーンパラメータにおける変化、及び/又は理解されることが可能であるようないずれかの他の因子に少なくとも部分的に基づきアクティブゾーン100を更新し、修正するように構成されることが可能である。
時間窓ゾーン管理システム112は、時間制約されたロケーションベースサービスゾーン101のアクティブステータスを管理するように実行される。さらに、時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101がアクティブであると判定されるときにクライアントデバイスからトリガイベント通知117を受信することに応答して、通知をプロバイダデバイス115へ送信するように実行される。さらに、時間窓ゾーン管理システム112は、特定のロケーションベースサービスゾーン101のアクティブステータスに関連して、通知をクライアントデバイス103へ送信するように実行される。また、時間窓ゾーン管理システム112は、トリガイベント通知117をクライアントデバイス103から受信し、トリガイベント通知117の受信と関連するタイムスタンプを生成するように実行されることが可能である。
マルチプロバイダ管理システム127は、複数のプロバイダと関連するロケーションベースサービスゾーン101を管理するように実行される。さらに、マルチプロバイダ管理システム127は、トリガイベントの通知を監視して適切なプロバイダデバイス115のみへ送信するために、各プロバイダについて一意の識別子を生成し、ロケーションベースサービスゾーン101をクライアントデバイス103へ送信することの安全かつ一元管理を提供するように実行される。さらに、マルチプロバイダ管理システム127は、プロバイダによる要件に関して乱用及び/又はノンコンプライアンスを検出するように実行され得る。
データストア209に格納されるデータは、たとえば、デバイスデータ215、プロバイダデータ218、アクティブゾーンプライオリティルール221、コンプライアンスルール224、及び潜在的に他のデータを含む。デバイスデータ215は、異なるクライアントデバイス103と関連するデータを含む。デバイスデータ215は、ユーザアカウント情報227、デバイスサポートデータ230、サービス233、位置データ236、アクティブゾーン100、及び/又はクライアントデバイス103と関連するいずれかの他のデータを含んでもよい。
ユーザアカウント情報227は、クライアントデバイス103と関連する1以上のユーザアカウントと関係がある情報を含んでもよい。たとえば、ユーザアカウント情報227は、ユーザ名、名前及び姓名、及び/又は他の識別情報を含んでもよい。デバイスサポートデータ230は、クライアントデバイス103によってサポートされるロケーションベースサービスゾーン101の量、及び/又はこのデバイスによってサポートされる他の特徴を含む。サービス(複数可)233は、特定のデバイス及び/又はユーザアカウントがクライアントアプリケーション130及び/又はいずれかの他のアプリケーションに関与するようにオプトインしている、これらのアプリケーションに関与することからオプトアウトしている、及び/又はこれらのアプリケーションに関して事前に設定されてもよい、プロバイダと関連する1以上のユーザが経験したサービスを含む。たとえば、プロバイダA及びプロバイダBは、ユーザがオプトインして経験することが可能である異なるサービス(たとえば、デリバリサービス、モバイルストア、デリバーロッカー、実店舗販売など)をそれぞれ提供してもよい。しかしながら、ユーザは、プロバイダAによって提供されるサービス上でオプトインし、プロバイダBによって提供されるサービスからオプトアウトしてもよい。位置データ236は、クライアントデバイス103の地理的位置を表す。アクティブゾーン(複数可)100は、デバイス制限、ロケーションベースサービスゾーン101と関連するサービスがユーザ(たとえば、単一のユーザ)を標的とするか、幅広く(たとえば、複数のユーザを)標的とするかどうか、特定のロケーションベースサービスゾーン101のアクティブステータス、それぞれのサービスについてクライアントデバイスによるオプトインステータス、及び/又は理解されることが可能であるようないずれかの他の因子を考慮して特定のデバイス103について具体的に選択される、包括的な1セットのロケーションベースサービスゾーン101を含む特定のデバイス103についてのアクティブゾーン100を含んでもよい。
プロバイダデータ218は、ロケーションベースサービスゾーン101のプロバイダと関連するデータを含む。プロバイダデータ218は、プロバイダ情報239、ジオフェンス(複数可)106、ビーコン(複数可)109、プロバイダ識別子(241)、及び/又はプロバイダと関連するいずれかの他のデータを含む。プロバイダ情報239は、たとえば、プロバイダについての、名前、サービス情報、アドレス情報、プロバイダデバイス情報、及び/又はいずれかの他の適切な情報などのプロバイダについての情報を識別することを備え得る。ジオフェンス106は、プロバイダのサービスに関連する仮想地理的境界を表す。ジオフェンス106は、ジオフェンス106と関連する、ジオフェンスパラメータ244、アクティブルール247、及び/又はいずれかの他のタイプのデータを含む。ジオフェンスパラメータ244は、地理的位置と関連する1以上の座標、内側領域の半径、非円形領域についての周囲仕様、クライアントデバイスが境界内にあるときにクライアントデバイス103のユーザに提示されるメッセージ(たとえば、「XYZ店舗で販売する。途中で立ち寄り、1つの物品の50%割引を受ける」)、アクティブ時間、アクティブ日付、一意のトークン識別子、及び/又はジオフェンス106と関連する他のパラメータを含んでもよい。アクティブルール247は、特定のジオフェンス106がアクティブ又は非アクティブであるときに関連する情報を含む。たとえば、アクティブルール247は、ジオフェンスがアクティブ及び/又は非アクティブであるときを表す1以上の時間窓を含んでもよい。いくつかの実施形態において、ジオフェンス106は、日中の設定時間(たとえば、営業時間)中にアクティブであってもよい。他の実施形態において、ジオフェンス106は、定期的にアクティブであってもよい。たとえば、ジオフェンス106は、三(3)時間毎にアクティブであるように作成されてもよい。
ビーコン(複数可)109は、無線信号をブロードキャストするように構成されるデバイスを表す。ビーコン(複数可)109は、クライアントデバイス103がブロードキャストされた信号を受信する範囲内にあるときに、クライアントデバイス103がビーコン109からブロードキャストされる無線信号にアクセスするために使用することが可能である、ビーコン識別子を有するビーコンパラメータ250を含む。プロバイダ識別子241は、ロケーションベースサービスゾーン101を管理することに関連する各プロバイダに割り当てられ、そのプロバイダのロケーションベースサービスゾーン101と関連するトリガイベントの正しいプロバイダに通知する一意の識別子を表す。いくつかの実施形態において、プロバイダ識別子241をランダムに生成する。他の実施形態において、他のプロバイダ識別子241に対して所定の増大又は縮小に従い、プロバイダ識別子241を割り当てる。
アクティブゾーンプライオリティルール221は、アクティブゾーン管理システム212がアクティブゾーン100内に含まれるロケーションベースサービスゾーン101を選択する際に使用してもよいルールを表す。アクティブゾーンプライオリティルール221は、たとえば、クライアントデバイス制限、ロケーションベースサービスゾーン101と関連するサービスがユーザ(たとえば、単一のユーザ)を標的とするか、広く(たとえば、複数のユーザを)標的とするかどうか、特定のロケーションベースサービスゾーン101のアクティブステータス、それぞれのサービスについてクライアントデバイスによるオプトインステータス、及び/又は理解されることが可能であるようないずれかの他の因子に基づいてもよい。いくつかの実施形態において、アクティブゾーンプライオリティルール221は、たとえば、ロケーションベースサービスゾーン101のプライオリティを決定するために、ランク付けアルゴリズムなどのアルゴリズムを含んでもよい。たとえば、アクティブゾーンプライオリティルール221は、各ロケーションベースサービスゾーン101と関連するさまざまな特徴に割り当てる重み付けを有してもよい。割り当てられた重み付けに基づき、作成されたアクティブゾーン100内で識別されるロケーションベースサービスゾーン101をランク付けしてもよく、クライアントデバイス103によってサポートされる最大閾値内にある最高ランクのロケーションベースサービスゾーン101を選択してもよい。
コンプライアンスルール224は、プロバイダが乱用しているか、その他の方法によりそのプロバイダと関連するロケーションベースサービスゾーン101に関して対応していないかどうかを判定するときをマルチプロバイダ管理システム127が考慮してもよいルールを表す。コンプライアンスルール224は、たとえば、プロバイダと関連する複数のロケーションベースサービスゾーン101、ロケーションベースサービスゾーン101と関連する時間制約、1以上のロケーションベースサービスゾーン101間の間隔要件、許可される、又は制約されるロケーションベースサービスゾーン101のタイプ(たとえば、単一のユーザを標的としたロケーションベースサービスゾーン101、複数のユーザを標的としたカバレッジロケーションベースサービスゾーン101、時間窓ロケーションベースサービスゾーン101)、及び/又は理解されることが可能であるようないずれかの他のタイプのコンプライアンス因子に基づいてもよい。
いくつかの実施形態において、コンプライアンスルール224は、マルチプロバイダ管理システムが乱用及び/又はノンコンプライアンスの検出に基づき用いることが可能である、アクションリストをさらに備えてもよい。たとえば、アクションリストは、そのプロバイダについてのロケーションベースサービスゾーン101を監視して、それらのロケーションベースサービスゾーン101と関連するいずれかの情報を除去するようにクライアントデバイス103に通知すること、乱用及び/又はノンコンプライアンスのプロバイダに通知すること、所定の時間内に乱用及び/又はノンコンプライアンスを正すようにプロバイダに要求すること、及び/又はいずれかの他の適切なアクションを備えてもよい。いくつかの実施形態において、コンプライアンスルール224は、プロバイダによる乱用及び/又はノンコンプライアンスについての深刻度レベルを定義してもよい。たとえば、コンプライアンスルール224は、ロケーションベースサービスゾーン101の誤った設定より深刻であるような、ロケーションベースサービスゾーン101(たとえば、それが関連する特定の店舗を囲まないジオフェンス106)に関するスパムを送るクライアントデバイス103を定義し得る。深刻度レベルに従い、コンプライアンスルール224によって定義されるアクションを決定してもよい。
クライアントデバイス103は、ネットワーク206に連結され得る複数のクライアントデバイスを表す。クライアントデバイス103は、例えば、コンピュータシステム等のプロセッサベースのシステムを含み得る。係るコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、携帯電話、スマートフォン、セットトップボックス、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、スマートウォッチ、ヘッドマウントディスプレイ、音声インタフェースデバイス、又は他のデバイスの形で具体化されてもよい。クライアントデバイス103は、ディスプレイ253を含んでもよい。ディスプレイ253は、例えば、液晶ディスプレイ(LCD)、ガスプラズマベースのフラットパネルディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電子インク(Eインク)ディスプレイ、LCDプロジェクタ、又は他の種類の表示装置等の1以上の装置を含んでもよい。
クライアントデバイス103は、クライアントアプリケーション130及び/又は他のアプリケーション等の種々のアプリケーションを実行するよう構成されてもよい。クライアントアプリケーション130は、例えば、コンピューティング環境203及び/又は他のサーバによって提供されるネットワークコンテンツにアクセスし、それによって、ディスプレイ253上のユーザインタフェース256をレンダリングするために、クライアントデバイス103内で実行されてもよい。この目的のために、クライアントアプリケーション130は、たとえば、ブラウザ、専用アプリケーションなどを含んでもよく、ユーザインタフェース256は、ネットワークページ、アプリケーション画面などを含んでもよい。クライアントデバイス103は、たとえば、電子メールアプリケーション、ソーシャルネットワーキングアプリケーション、ワードプロセッサ、スプレッドシート、及び/又は他のアプリケーションなどのクライアントアプリケーション130を越えるアプリケーションを実行するように構成され得る。
プロバイダデバイス115は、ネットワーク206に連結され得る複数のプロバイダデバイスを表す。プロバイダデバイス115は、たとえば、コンピュータシステムなどのプロセッサベースのシステムを含んでもよい。係るコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、携帯電話、スマートフォン、セットトップボックス、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、スマートウォッチ、ヘッドマウントディスプレイ、音声インタフェースデバイス、又は他のデバイスの形で具体化されてもよい。代わりに、プロバイダデバイス115は、例えば、1以上のサーババンクもしくはコンピュータバンク又は他の配置で配置され得る複数のコンピューティングデバイスを採用し得る。係るコンピューティングデバイスは、単独の設備に位置し得る、又は多くの異なる地理的な場所間に分散され得る。例えば、プロバイダデバイス115は、ホストコンピューティングリソース、グリッドコンピューティングリソース、及び/又は任意の他の分散コンピューティング配列を一緒に備え得る複数のコンピューティングデバイスを含み得る。いくつかの場合、プロバイダデバイス115は、処理、ネットワーク、ストレージ、又は他のコンピューティング関連リソースの割り当て容量が経時的に変動し得る柔軟なコンピューティングリソースに対応し得る。
次に図3を参照すると、示されるのは、種々の実施形態に係るアクティブゾーン管理システム212の一部分の動作の一例を提示するフローチャートである。図3のフローチャートが本明細書に説明されるようなアクティブゾーン管理システム212の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一例を単に提示するにすぎないことが理解される。代わりに、図3のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の例を示すように見られてもよい。
図3は、本開示のさまざまな実施形態に従いアクティブゾーン100(図1A)を作成することに関して、アクティブゾーン管理システム212によって実行され得る機能性の非限定的な実施例を提供する。ボックス303から始まり、アクティブゾーン管理システム212は、ロケーションベースサービスゾーン101(図2)を1以上のプロバイダデバイス115から受信する。プロバイダデバイス115(図2)は、アクティブゾーン管理システム212へ、プロバイダデバイス115のサービスプロバイダと関連付けられる、ジオフェンス106(図2)についてのジオフェンスパラメータ244(図2)、及び/又はビーコン109(図2)についてのビーコンパラメータ250(図2)を送信するように構成されてもよい。
たとえば、プロバイダが購入用のモバイル位置に1セットの物品を提示しているマーチャントであり、マーチャントが一日中さまざまな位置にいると仮定する。特定の位置に到着すると、モバイル位置についてのジオフェンスパラメータ244をプロバイダデバイス115によって符号化してもよい、及び/又はジオフェンス周囲座標をアクティブゾーン管理システム212へ送信してもよい。いくつかの実施形態において、プッシュ通知(たとえば、サイレント又は非サイレントプッシュ通知)をアクティブゾーン管理システム212から受信することへの応答に応じて、ロケーションベースサービスゾーン101をアクティブゾーン管理システム212へ送信する。
ボックス306において、アクティブゾーン管理システム212は、アクティブゾーン100についての要求をクライアントデバイス103から受信する。この要求は、ロケーションベースサービスゾーン101に関するアクティブゾーン100にデータを入れる、アクティブゾーン管理システムによって使用されてもよい、位置データ236(図2)を含む。ボックス309において、アクティブゾーン管理システム212は、アクティブゾーン領域を決定する。具体的に、アクティブゾーン管理システム212は、位置データ236に部分的に基づきアクティブゾーン領域を決定する。さまざまな実施形態に従い、アクティブゾーン領域は、中心点として、またある所定の値の半径(たとえば、1キロメートル(km)、5km、25kmなど)により中心点を含む、位置データ236からクライアントデバイス103の位置を使用することによって決定されてもよい。
ボックス312において、アクティブゾーン管理システム212は、いずれかのロケーションベースサービスゾーン101が作成されたアクティブゾーン領域の地理的領域内に位置しているかどうかを判定する。たとえば、アクティブゾーン管理システム212は、プロバイダデバイス(複数可)115によって提供されるロケーションベースサービスゾーン101を分析し、アクティブゾーン領域と関連する地理的領域にいずれかが対応するかどうかを判定してもよい。いくつかの実施形態において、アクティブゾーン管理システム212は、いずれかのロケーションベースサービスゾーン101をアクティブゾーン領域内に含むかどうかを判定する際にロケーションベースサービスゾーン101のアクティブステータスを使用してもよい。アクティブゾーン100中で識別される、いかなるロケーションベースサービスゾーン101もない場合、アクティブゾーン管理システム212は、ボックス315に進む。ボックス315において、アクティブゾーン管理システム212は、アクティブゾーン領域がその最大閾値に達したかどうかを判定する。
たとえば、いくつかの実施形態において、アクティブゾーン100は、サイズの範囲(たとえば、1キロメートル(km)から100km)を使用して作成されてもよい。さまざまな実施形態に従い、アクティブゾーンは、最小サイズで最初に作成されてもよく、所望の、又は要求された数のロケーションベースサービスゾーン101を含むことが必要とされる場合に動的に拡大されることが可能である。しかしながら、必要とされる場合に、アクティブゾーン管理システム212は、最大サイズまでアクティブゾーンのサイズを拡大することが可能である。アクティブゾーンサイズは、所定の閾値、プロバイダ制限、及び/又はクライアントデバイス制限に基づいてもよい。アクティブゾーン領域が増大することが不可能である場合、アクティブゾーン管理システム212は、特定のデバイス位置についてのアクティブゾーン100がないことをクライアントデバイスに通知するボックス321へ進む。いくつかの実施形態において、この通知は、プッシュ通知(たとえば、サイレントもしくは非サイレント通知)、又はいずれかの他の適切な通知の形式にあることが可能である。クライアントデバイス103について妥当なアクティブゾーンがないことをクライアントデバイス103に通知すると、アクティブゾーン管理システム212は、終了する。
ボックス315に戻り参照すると、アクティブゾーン領域のサイズが所定の最大アクティブゾーン領域サイズを下回る場合、アクティブゾーン管理システム212は、ボックス318へ進む。ボックス318において、アクティブゾーン管理システム212は、アクティブゾーン100の領域を拡大させてもよい。いくつかの実施形態において、この領域が最大サイズを上回らない限り、この領域は、徐々に、急速に、及び/又はランダムに増大し得る。アクティブゾーン100の領域を拡大させると、アクティブゾーン管理システムは、ボックス312へ進み、いずれかのロケーションベースサービスゾーン101をアクティブゾーン100内で識別する。
ロケーションベースサービスゾーン101をアクティブゾーン内で識別すると、アクティブゾーン管理システム212は、ボックス324へ進む。ボックス324において、アクティブゾーン管理システム212は、識別されたロケーションベースサービスゾーン101の数がデバイスサポートデータ230(図2)中で識別されるデバイス制限を満たすか、上回るかどうかを判定する。たとえば、デバイスサポートデータ230は、クライアントデバイス103が二十(20)個のロケーションベースサービスゾーン101のみをサポートすることが可能であることを指定してもよい。このようなものとして、20個を上回るロケーションベースサービスゾーン101をアクティブゾーン100内で識別する場合、アクティブゾーン管理システム212は、アクティブゾーン100内のロケーションベースサービスゾーン101の数が最大閾値を上回ると判定し、ボックス330へ進む。アクティブゾーン100内で識別されるロケーションベースサービスゾーン101の数が最大閾値内にある場合、アクティブゾーン管理システム212は、ボックス327へ進む。ボックス327において、アクティブゾーン管理システム212は、アクティブゾーン100及び対応するロケーションベースサービスゾーン101の識別を符号化するデータをクライアントデバイス103へ送信する。この通知は、プッシュ通知(たとえば、サイレント又は非サイレント通知)、又はいずれかの他の適切な通知の形式にあることが可能である。
ボックス330において、アクティブゾーン管理システム212は、1つのサブセットのロケーションベースサービスゾーン101をアクティブゾーン100内で識別する。1つのサブセットのロケーションベースサービスゾーン101を識別する際に、アクティブゾーン管理システム212は、アクティブゾーンプライオリティルール221(図2)を適用し、特定のクライアントデバイス103についての最適なロケーションベースサービスゾーン101をアクティブゾーン100内で決定してもよい。いくつかの実施形態において、アクティブゾーン管理システム212は、たとえば、クライアントデバイス制限、ロケーションベースサービスゾーン101と関連するサービスがユーザ(たとえば、単一のユーザ)を標的とするか、広く(たとえば、複数のユーザを)標的とするかどうか、特定のロケーションベースサービスゾーン101のアクティブステータス、それぞれのサービスについてクライアントデバイスによるオプトインステータス、及び/又は理解されることが可能であるようないずれかの他の因子を含んでもよい、因子に基づきロケーションベースサービスゾーン101を重み付けする、及び/又はランク付けしてもよい。たとえば、アクティブゾーンプライオリティルール221は、各ロケーションベースサービスゾーン101と関連するさまざまな特徴に割り当てる重み付けを含んでもよい。
割り当てられた重み付けに基づき、アクティブゾーン100内でロケーションベースサービスゾーン101をランク付けしてもよく、クライアントデバイス103によってサポートされる最大閾値内にある最高ランクのロケーションベースサービスゾーンをサブセットとして選択してもよい。他の実施形態において、アクティブゾーン管理システム212は、最大閾値を上回らなくなるまで、それぞれの特性に基づきロケーションベースサービスゾーン101を除外してもよい。たとえば、アクティブゾーンプライオリティルール221に従ってアクティブゾーン管理システム212は、ユーザに標的とされる、及び/又はユーザがオプトインしたサービスと関連付けられるロケーションベースサービスゾーン101を除去する前に、非アクティブであるロケーションベースサービスゾーン101、及びユーザが関与することにオプトインしていないサービスに関連するロケーションベースサービスゾーン101を除去してもよい。特定のデバイス103についてのアクティブゾーン100を含むロケーションベースサービスゾーン101がクライアントデバイス103によって画定されるような最大閾値内にあるまで縮小すると、アクティブゾーン管理システム212は、ボックス333へ進む。ボックス333において、アクティブゾーン管理システム212は、アクティブゾーン100、及び対応する1つのサブセットのロケーションベースサービスゾーン101の識別を符号化するデータをクライアントデバイス103へ送信する。この通知は、プッシュ通知(たとえば、サイレント又は非サイレント通知)、又はいずれかの他の適切な通知の形式にあることが可能である。アクティブゾーン100をクライアントデバイス103へ送信した後に、アクティブゾーン管理システム212は、終了する。
ここで図4に戻り、示されるのは、種々の実施形態に係るアクティブゾーン管理システム212の一部分の動作の一例を提供するフローチャートである。図4のフローチャートが本明細書に説明されるようなアクティブゾーン管理システム212の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図4のフローチャートは、1以上の実施形態による、コンピューティング環境203(図4)内に実装された方法の要素の一実施例を示すように見られてもよい。
図4は、本開示のさまざまな実施形態に従い、クライアントデバイス103(図2)がサポートすることが可能である最大閾値をアクティブゾーン100において最初に識別されるロケーションベースサービスゾーン101の量が上回るときに、アクティブゾーン100(図2)を含むロケーションベースサービスゾーン101(図2)に優先順位を付けることに関して、アクティブゾーン管理システム212によって実行されてもよい機能性の非限定的な実施例を提供する。
ボックス403から始まり、アクティブゾーン管理システム212は、特定のロケーションベースサービスゾーン101をアクティブゾーン100内で分析する。具体的に、アクティブゾーン管理システム212は、ロケーションベースサービスゾーン101を分析し、たとえば、時間制約、ロケーションベースサービスゾーン100のタイプ(たとえば、ユーザ固有の標的とした、又は広くマルチユーザを標的とした)、アクティブゾーン要求と関連するクライアントデバイス103及び/又は固有のユーザアカウントがロケーションベースサービスゾーンと関連するユーザエクスペリエンスへオプトインしたかどうか、及び/又は他の因子などの特性を識別する。これらの特性を使用して、アクティブゾーン100及び/又はクライアントデバイス103と比較してロケーションベースサービスゾーン101のプライオリティを決定することが可能である。
ボックス406において、アクティブゾーン管理システム212は、特性及びアクティブゾーンプライオリティルール221に従い、それぞれのロケーションベースサービスゾーン101に重み付けを割り当てる。たとえば、ユーザがオプトインしてサービスに関与することを示すクライアントデバイスのサービス233において識別されるサービスと関連付けられるロケーションベースサービスゾーン101は、ユーザがサービスに関与することからオプトアウトしたことを示すクライアントデバイス103のサービス233において識別されるサービスと関連付けられるロケーションベースサービスゾーン101より高い重み付けを受けてもよい。いくつかの実施形態において、ロケーションベースサービスゾーン101の特性のそれぞれに割り当てられる重み付けの総和を固有のロケーションベースサービスゾーン101へ割り当てる。
ボックス409において、アクティブゾーン管理システムは、分析を要求するアクティブゾーン100において識別される、いずれかの残存するロケーションベースサービスゾーン101があるかどうかを判定する。他のロケーションベースサービスゾーン101がある場合、アクティブゾーン管理システム212は、ボックス403に戻る。そうでなければ、アクティブゾーン管理システム212は、ボックス412に進む。ボックス412において、アクティブゾーン管理システム212は、割り当てられた重み付けに従い、アクティブゾーン100において識別されるロケーションベースサービスゾーン101をランク付けする。ボックス415において、アクティブゾーン管理システム212は、所定の制限(たとえば、クライアント固有の、サービス側の制限などの)内にあるロケーションベースサービスゾーン101の最高ランクの数を選択する。たとえば、200個の識別されたロケーションベースサービスゾーン101がアクティブゾーン100内にあり、クライアントデバイス103が100個のロケーションベースサービスゾーン101のみをサポートする場合、アクティブゾーン管理システム212は、上位100個のランク付けされたロケーションベースサービスゾーン101を選択する。1つのサブセットのロケーションベースサービスゾーン101を選択すると、アクティブゾーン管理システム212のこの部分は、終了する。
次に図5を参照すると、示されるのは、種々の実施形態に係るアクティブゾーン管理システム212の一部分の動作の一実施例を提示するフローチャートである。図5のフローチャートが本明細書に説明されるようなアクティブゾーン管理システム212の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図5のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図5は、本開示のさまざまな実施形態に従い、特定のクライアントデバイス103(図2)についてのアクティブゾーン100(図2)を修正することに関して、アクティブゾーン管理システム212によって実行されてもよい機能性の非限定的な実施例を提供する。
ボックス503から始まり、アクティブゾーン管理システム212は、アクティブゾーン100についての要求をクライアントデバイス103から受信する。いくつかの実施形態において、クライアントデバイス103は、プル通知として要求、及び/又は他のクライアントが開始した要求を送信する。他の実施形態において、クライアントデバイス103は、アクティブゾーン100を送信することが可能であることをクライアントデバイス103に通知するアクティブゾーン管理システム212からプッシュ通知(たとえば、サイレント又は非サイレントプッシュ通知)を受信することに応答して要求を送信するように構成されてもよい。ボックス506において、アクティブゾーン管理システム212は、アクティブゾーン100、及びアクティブゾーン100内で対応するロケーションベースサービスゾーン101の識別を符号化するデータをクライアントデバイス103へ送信する。
ボックス509において、アクティブゾーン管理システム212は、クライアントデバイス103がアクティブゾーン100によって画定される地理的境界内にまだ位置しているかどうかを判定する。いくつかの実施形態において、クライアントデバイス103は、通知を位置データ236(図2)に関するアクティブゾーン管理システム212へ定期的に送信してもよい。他の実施形態において、アクティブゾーン管理システム212は、位置データ236についての要求をクライアントデバイス103へ送信してもよい。クライアントデバイス103がアクティブゾーン100の境界内にある場合、アクティブゾーン管理システム212は、ボックス511へ進む。そうでなければ、アクティブゾーン管理システム212は、ボックス512ヘ進む。
ボックス511において、アクティブゾーン管理システム212は、クライアントデバイス103によって監視されるアクティブゾーン100中に含まれるロケーションベースサービスゾーン101のいずれかを更新したかどうかを判定する。たとえば、ロケーションベースサービスゾーン101は、時間制約されてもよく、非アクティブであってもよい。別の非限定的な実施例において、クライアントデバイス103は、ロケーションベースサービスゾーン101と関連するユーザエクスペリエンスからオプトアウトした場合がある。別の非限定的な実施例において、プロバイダは、ロケーションベースサービスゾーン101をキャンセルした場合がある。ロケーションベースサービスゾーン101が同じようなままである場合、アクティブゾーン管理システム212は、ボックス509へ進む。そうでなければ、アクティブゾーン管理システム212は、ボックス512ヘ進む。
ボックス512において、アクティブゾーン管理システム212は、アクティブゾーン100を修正する。いくつかの実施形態において、アクティブゾーン100を修正することは、新規のアクティブゾーン領域を作成し、そして新規のアクティブゾーン100のデータを新規のロケーションベースサービスゾーン101に入れることを備えてもよい。他の実施形態において、アクティブゾーン100を修正することは、もとのアクティブゾーン領域を保ち、そしてロケーションベースサービスゾーン101をアクティブゾーン100内で変えることを備えてもよい。
クライアントデバイス103がアクティブゾーン100によって画定される境界の外側に移動したことを位置データ236が示す場合、アクティブゾーン管理システム212は、新規のアクティブゾーン領域を作成することによってアクティブゾーン100を修正してもよいため、新規のアクティブゾーン100は、更新されたクライアントデバイス位置に従う。アクティブゾーン管理システム212は、図3及び4に関して考察されるように、アクティブゾーン100、及びアクティブゾーン100内のロケーションベースサービスゾーン101を修正してもよい。
クライアントデバイス103が依然としてアクティブゾーン100の境界内にあり、ロケーションベースサービスゾーン101のうちの1以上が更新された場合、アクティブゾーン管理システム212は、図3及び4に関して考察されるように、アクティブゾーン100内でロケーションベースサービスゾーン101を再評価してもよい。いくつかのシナリオにおいて、アクティブゾーン100は、ロケーションベースサービスゾーン101を除去するように修正される。他の実施形態において、アクティブゾーン100は、ロケーションベースサービスゾーン101を加えるように修正されることが可能である。
ボックス515において、アクティブゾーン管理システム212は、修正されたアクティブゾーン100、及び対応するロケーションベースサービスゾーン101について対応するパラメータによって符号化されるデータをクライアントデバイス103へ送信する。データをクライアントデバイス103へ送信した後に、アクティブゾーン管理システム212のこの部分は、終了する。
次に図6を参照すると、種々の実施形態に係るクライアントアプリケーション130の一部分の動作の一実施例を提示するフローチャートが示される。図6のフローチャートが本明細書に記載のクライアントアプリケーション130の一部の動作を実装するために用いられ得る、多くの異なるタイプの機能性配置の単なる実施例を提供することが理解される。代わりに、図6のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図6は、本開示のさまざまな実施形態に従い、クライアント側アクティブゾーン管理に関してクライアントアプリケーション130によって実行され得る機能性の非限定的な実施例を提供する。
ボックス603から始まり、クライアントアプリケーション130は、複数のアクティブゾーン100(図2)をアクティブゾーン管理システム212(図2)から受信してもよい。プル通知、プッシュ通知、及び/又はいずれかの他の適切な通知に応答して、アクティブゾーン100を受信してもよい。いくつかの実施形態において、アクティブゾーン管理システム212は、クライアントデバイス103と関連する複数の異なる位置に少なくとも部分的に基づき、複数のアクティブゾーン100を作成することが可能であってもよい。いくつかの実施形態において、クライアントデバイス103は、クライアントデバイス103について異なる位置を含む、位置データ236(図2)を提供してもよい。たとえば、クライアントデバイス103は、クライアントデバイスの現在の位置、及び/又はクライアントデバイスの将来の位置(たとえば、スケジューリングされた物品集荷位置)に関するアクティブゾーン管理システム212を提供することが可能であってもよい。
その結果、アクティブゾーン管理システム212は、異なる位置に基づき複数のアクティブゾーン100を作成することが可能であってもよい。他の実施形態において、異なるアクティブゾーン100は、ロケーションベースサービスゾーン101のタイプ、たとえば、ユーザを標的とした、広く標的とした、時間制約された、日付制約されたなど、クライアントデバイス103がロケーションベースサービスゾーン101と関連するサービスにオプトインしたかどうか、及び/又は他の因子などに少なくとも部分的にさらに基づいてもよい。
ボックス606において、クライアントアプリケーション130は、特定のアクティブゾーン100を選択して監視してもよい。たとえば、異なるアクティブゾーン100は、ロケーションベースであるため、クライアントアプリケーション130は、どのアクティブゾーン100がクライアントデバイス103の位置に基づきクライアントデバイス103に適切であるかを判定することが可能であってもよい。クライアントデバイス103は、その位置を、たとえば、無線ネットワーク識別情報及び/又はセルラ三角測量データを使用して、追跡してもよい。クライアントデバイス103は、所定の期間中にクライアントデバイス103によって使用されるローカルメモリにすでに格納された複数のアクティブゾーン100を含むことが可能であることによって、時間に従い特定のアクティブゾーン100を選択してもよく、クライアントデバイス103は、追加のアクティブゾーン100についてアクティブゾーン管理デバイスをポーリングすることを回避することによって、電力を節約することが可能である。
ボックス609において、クライアントアプリケーション130は、ロケーションベースサービスゾーン101を選択されたアクティブゾーン100内で監視し始める。クライアントアプリケーション130がロケーションベースサービスゾーン101を選択されたアクティブゾーン100内で監視し始めると、クライアントアプリケーション130のこの部分は、終了する。
次に図7を参照すると、示されるのは、種々の実施形態に係る時間窓ゾーン管理システム112の一部分の動作の一実施例を提示するフローチャートである。図7のフローチャートが本明細書に説明されるような時間窓ゾーン管理システム112の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図7のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図7は、本開示のさまざまな実施形態に従いアクティブ及び非アクティブのロケーションベースサービスゾーン101(図2)を管理することに関して、時間窓ゾーン管理システム112によって実行されてもよい機能性の非限定的な実施例を提供する。具体的に、図7は、ロケーションベースサービスゾーン101がアクティブであるときか、失効したときかを判定し、その結果、クライアントデバイス103(図2)に通知することに関する。
ボックス703から始まり、時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101についての要求をクライアントデバイス103から受信する。いくつかの実施形態において、クライアントデバイス103は、プル通知として要求、及び/又は他のクライアントが開始した要求を送信する。他の実施形態において、クライアントデバイス103は、クライアントデバイス103にロケーションベースサービスゾーン101を要求することを伝える時間窓ゾーン管理システム112からプッシュ通知(たとえば、サイレント又は非サイレントプッシュ通知)を受信することに応答して要求を送信するように構成されてもよい。
ボックス706において、時間窓ゾーン管理システム112は、特定のロケーションベースサービスゾーンがアクティブであるかどうかを判定する。たとえば、ある特定のロケーションベースサービスゾーン101がある特定の期間中にのみ有効である場合、つぎに時間窓ゾーン管理システム112は、コンピューティング環境203に関する時間をロケーションベースサービスゾーン101についてのアクティビティの期間と比較し、ロケーションベースサービスゾーン101のステータスを決定してもよい。いくつかの実施形態において、時間窓ゾーン管理システム112は、つぎの所期の要求がロケーションベースサービスゾーン101についてのクライアントデバイス103を形成する前の期間に、ロケーションベースサービスゾーン101がアクティブではないと判定してもよい。ロケーションベースサービスゾーン101をクライアントデバイス103へ送信することを控えることによって、クライアントデバイス103への影響(たとえば、消費電力、ネットワークリソースなど)は、減少することが可能である。
ロケーションベースサービスゾーン101が非アクティブである場合、つぎに時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101をクライアントデバイスへ送信することを控える。ロケーションベースサービスゾーン101が非アクティブであると時間窓ゾーン管理システム112が判定する場合、時間窓ゾーン管理システム112のこの部分は、終了する。しかしながら、ロケーションベースサービスゾーン101がアクティブである場合、時間窓ゾーン管理システム112は、ボックス712へ進む。
ボックス712において、時間窓ゾーン管理システム112は、対応するパラメータ(たとえば、ジオフェンスパラメータ244(図2)、ビーコンパラメータ250(図2))を含むロケーションベースサービスゾーン101の識別によって符号化されるデータをクライアントデバイス103へ送信する。
ボックス715において、時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101が失効したかどうかを判定する。たとえば、時間窓ゾーン管理システム112は、ローカルタイムを、ロケーションベースサービスゾーン101がアクティブである期間と比較してもよい。ローカルタイムがロケーションベースサービスゾーン101についてアクティビティの期間外にある場合、時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101が失効したと判定し、ボックス718へ進む。そうでなければ、時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101が依然としてアクティブであると判定した後、その時間、及び/又はアクティブステータスにおける変化についてロケーションベースサービスゾーン101を監視し続ける。
ボックス718において、時間窓ゾーン管理システム112は、クライアントデバイス103がロケーションベースサービスゾーン101に関するすべての情報を除去することを要求する通知(たとえば、サイレント又は非サイレントプッシュ通知)をクライアントデバイス103へ送信する。その結果、クライアントデバイス103は、ロケーションベースサービスゾーン101をもはや監視しない。時間窓ゾーン管理システム112がロケーションベースサービスゾーン101の除去を要求する通知をクライアントデバイス103へ送信した後に、時間窓ゾーン管理システム112のこの部分は、終了する。
次に図8を参照すると、示されるのは、種々の実施形態に係る時間窓ゾーン管理システム112の一部分の動作の一実施例を提示するフローチャートである。図8のフローチャートが本明細書に説明されるような時間窓ゾーン管理システム112の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図8のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図8は、ロケーションベースサービスゾーン101(図2)と関連するトリガイベントのプロバイダに通知するかどうかを判定することに関連して、時間窓ゾーン管理システム112によって実行され得る機能性の非限定的な実施例を提供する。具体的に、図8は、本開示のさまざまな実施形態に従い、非アクティブのロケーションベースサービスゾーン101と関連付けられるトリガイベントをフィルタリングすることを考察する。
ボックス803から始まり、時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101と関連するトリガイベント通知117(図2)をクライアントデバイス103から受信する。いくつかの実施形態において、ロケーションベースサービスゾーン101がジオフェンス106(図2)であった場合、トリガイベント通知117は、ジオフェンスパラメータ244(図2)によって画定される境界を通過するクライアントデバイス103によって引き起こされるトリガイベントに関し得る。他のシナリオにおいて、ロケーションベースサービスゾーン101がビーコン109(図2)であった場合、トリガイベント通知117は、ビーコン109によってブロードキャストされる無線信号を受信するクライアントデバイス103に対応してもよい。
ボックス806において、時間窓ゾーン管理システム112は、トリガイベントと関連する時間を決定する。本開示へのさまざま実施形態に従い、時間窓ゾーン管理システム112は、時間窓ゾーン管理システム112と関連するクロックに頼り、トリガイベントの時間を決定する。たとえば、1つの非限定的な実施例において、時間窓ゾーン管理システム112は、トリガイベント通知117を受信する時点でタイムスタンプを生成してもよい。
時間窓ゾーン管理システム112と関連する時間は、たとえば、クライアントデバイスクロックへの、クロックスキュー、異なる時間帯、又はユーザ変更などのさまざま因子が原因であるクライアントデバイス103と関連する時間を上回ることが好ましい。時間窓ゾーン管理システム112と関連するクロックに頼ることによって、時間窓ゾーン管理システム112は、ロケーションベースアクティブゾーンの一元管理を提供し、ロケーションベースアクティブゾーン101のアクティブステータスを判定する際に信頼性を高めることが可能である。
ボックス809において、時間窓ゾーン管理システム112は、このイベントのプロバイダデバイスに通知するべきかどうかを判定する。時間窓ゾーン管理システム112は、ロケーションベースサービスゾーン101がアクティブであるときにプロバイダデバイス115(図2)に通知し、ロケーションベースサービスゾーン101が非アクティブであるときにプロバイダデバイス115に通知することを控え得る。特定のロケーションベースサービスゾーン101のアクティブステータスは、理解されることが可能であるように、クライアントデバイスからのトリガイベント通知を受信することと関連する時間、クライアントデバイス設定(たとえば、クライアントデバイス103がロケーションベースサービスゾーンと関連するサービスによってオプトインされる)、ユーザアカウント設定、ロケーションベースサービスゾーン101と関連するパラメータ(たとえば、アクティブ期間、特定のユーザ又は複数のユーザに標的とされる、ジオフェンス座標に対する更新など)、コンピューティング環境203と関連するクロック、及び/又は他の因子に少なくとも部分的に基づくことが可能である。
デバイスがアクティブであると判定される場合、時間窓ゾーン管理システム112は、ボックス812へ進む。そうでなければ、時間窓ゾーン管理システム112は、ボックス815ヘ進む。ボックス812において、時間窓ゾーン管理システム112は、プロバイダ通知124(図1B)をプロバイダデバイス115へ送信する。このプロバイダ通知124は、プッシュ通知及び/又はいずれかの他の適切な通知の形式にあることが可能である。プロバイダ通知124をプロバイダデバイス115へ送信した後に、時間窓ゾーン管理システム112は、終了する。ボックス815において、時間窓ゾーン管理システム112は、クライアントデバイス103によって監視されるロケーションベースサービスゾーン101が古い状態にあることを示す通知をクライアントデバイス103へ送信する。このようなものとして、クライアントデバイス103は、ロケーションベースサービスゾーン101と関連するジオフェンス情報を除去し、ロケーションベースサービスゾーン101の監視を中止するように構成されてもよい。
次に図9を参照すると、示されるのは、種々の実施形態に係るマルチプロバイダ管理システム127の一部分の動作の一実施例を提示するフローチャートである。図9のフローチャートが本明細書に説明されるようなマルチプロバイダ管理システム127の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図9のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図9は、本開示のさまざまな実施形態に従い、クライアントデバイス103(図2)から受信するロケーションベースサービスゾーン101(図2)に関して、トリガイベントと関連付けられる複数のプロバイダから正しいプロバイダを識別することに関して、マルチプロバイダ管理システム127によって実行され得る機能性の非限定的な実施例を提供する。
ボックス903から始まり、マルチプロバイダ管理システム127は、ロケーションベースサービスゾーン101と関連するトリガイベント通知117(図2)をクライアントデバイス103から受信する。いくつかの実施形態において、ロケーションベースサービスゾーン101がジオフェンス106(図2)であった場合、トリガイベント通知117は、ジオフェンスパラメータ244(図2)によって画定される境界を通過するクライアントデバイス103によって引き起こされるトリガイベントに関し得る。他の実施形態において、ロケーションベースサービスゾーン101がビーコン109(図2)であった場合、トリガイベント通知117は、ビーコン109によってブロードキャストされる無線信号を受信するクライアントデバイス103に対応してもよい。
ボックス906において、マルチプロバイダ管理システム127は、トリガイベントと関連するプロバイダを識別する。さまざまな実施形態に従い、マルチプロバイダ管理システム127は、トリガされたイベントと関連するロケーションベースサービスゾーン101についてトークン識別子に部分的に基づきプロバイダを識別してもよい。トークン識別子は、特定のロケーションベースサービスゾーン101に割り当てられる一意の識別子を表す。マルチプロバイダ管理システム127は、ロケーションベースサービスゾーン101のプロバイダと関連するプロバイダ識別子241とトークン識別子を関連させてもよい。たとえば、マルチプロバイダ管理システム127は、トークン識別子とプロバイダ識別子241との間の関連性を指定するレジストリにアクセスしてもよい。
トークン識別子は、クライアントデバイス103が監視するためにロケーションベースサービスゾーン101についての情報を受信した時点でロケーションベースサービスゾーン101によって受信されるパラメータ情報に含まれていてもよい。クライアントデバイス103がプロバイダの実際のアイデンティティに気づかないままである場合がありながら、クライアントデバイス103は、トークン識別子をロケーションベースサービスゾーン101と関連させ、トリガイベント通知117に関するトークン識別子を含むことが可能である。
ボックス909において、マルチプロバイダ管理システム127は、プロバイダ通知124(図2)をプロバイダデバイス115(図2)へ送信する。このプロバイダ通知124は、プッシュ通知及び/又はいずれかの他の適切な通知の形式にあることが可能である。プロバイダ通知124をプロバイダデバイス115へ送信した後に、マルチプロバイダ管理システム127のこの部分は、終了する。
次に図10を参照すると、示されるのは、種々の実施形態に係るマルチプロバイダ管理システム127の一部分の動作の一実施例を提示するフローチャートである。図10のフローチャートが本明細書に説明されるようなマルチプロバイダ管理システム127の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図10のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図10は、本開示のさまざまな実施形態に従い、プロバイダが指定したロケーションベースサービスゾーン101のクライアントデバイス103(図2)を提供することに関して、マルチプロバイダ管理システム127によって実行され得る機能性の非限定的な実施例を提供する。
ボックス1003から始まり、マルチプロバイダ管理システム127は、少なくとも1つのロケーションベースサービスゾーン101(図2)についての要求をクライアントデバイス103から受信する。いくつかの実施形態において、クライアントデバイス103は、プル通知として要求、及び/又は他のクライアントが開始した要求を送信する。他の実施形態において、クライアントデバイス103は、マルチプロバイダ管理システム127からプッシュ通知(たとえば、サイレント又は非サイレントプッシュ通知)を受信することに応答して要求を送信するように構成されてもよい。いくつかの実施形態において、この要求は、更新されたロケーションベースサービスゾーン101についてのものであってよい。いくつかの実施形態において、この要求は、特定のプロバイダと関連するロケーションベースサービスゾーン101を要求してもよい。
ボックス1006において、マルチプロバイダ管理システム127は、この要求に含まれるロケーションベースサービスゾーン101のトークン識別子に部分的に基づき要求と関連するプロバイダを識別してもよい。たとえば、マルチプロバイダ管理システム127は、特定のプロバイダ識別子241と関連するトークン識別子のリストとトークン識別子を比較することが可能であってもよい。プロバイダ識別子241は、ロケーションベースサービスゾーン101を管理することに関連して、各プロバイダに割り当てられる一意の識別子を表す。
ボックス1009において、マルチプロバイダ管理システム127は、識別されたプロバイダと関連するロケーションベースサービスゾーン101を取得する。いくつかの実施形態において、マルチプロバイダ管理システム127は、複数のプロバイダについてのロケーションベースサービスゾーン101を格納するデータストア209中のデータベースから、識別されたプロバイダと関連するロケーションベースサービスゾーン101を取得する。他の実施形態において、マルチプロバイダ管理システム127は、ロケーションベースサービスゾーン101を要求する、それぞれのプロバイダデバイス115(図2)をポーリングしてもよい。
ボックス1012において、マルチプロバイダ管理システム127は、この要求と関連するロケーションベースサービスゾーン101の識別、及びこれらについてのパラメータによって符号化されるデータを送信する。このデータをクライアントデバイス103へ送信した後に、マルチプロバイダ管理システム127のこの部分は、終了する。
次に図11を参照すると、示されるのは、種々の実施形態に係るマルチプロバイダ管理システム127の一部分の動作の一実施例を提示するフローチャートである。図11のフローチャートが本明細書に説明されるようなマルチプロバイダ管理システム127の一部分の動作を実装するために利用され得る、多くの異なる種類の機能配置の一実施例を単に提示するにすぎないことが理解される。代わりに、図11のフローチャートは、1以上の実施形態による、コンピューティング環境203(図2)内に実装された方法の要素の実施例を示すように見られてもよい。
図11は、本開示のさまざまな実施形態に従い、プロバイダ間の乱用及び/又はノンコンプライアンスを検出することに関して、マルチプロバイダ管理システム127によって実行され得る機能性の非限定的な実施例を提供する。
ボックス1103から始まり、マルチプロバイダ管理システム127は、特定のプロバイダと関連するプロバイダデバイス115(図2)から1以上のロケーションベースサービスゾーン101を受信する。いくつかの実施形態において、クライアントデバイス103は、マルチプロバイダ管理システム127からプッシュ通知(たとえば、サイレント又は非サイレントプッシュ通知)を受信することに応答してロケーションベースサービスゾーン101を送信するように構成されてもよい。他の実施形態において、プロバイダデバイス115は、ロケーションベースサービスゾーン101を作成することに応答してロケーションベースサービスゾーン101を送信してもよい。他の実施形態において、プロバイダデバイス115は、ロケーションベースサービスゾーン101を定期的に、及び/又はロケーションベースサービスゾーン101への更新に応答して、送信してもよい。
ボックス1106において、マルチプロバイダ管理システム127は、受信したロケーションベースサービスゾーン101と関連するプロバイダがコンプライアンスルール224(図2)に関して対応しているかどうかを判定する。コンプライアンスルール224は、たとえば、プロバイダと関連する複数のロケーションベースサービスゾーン101、ロケーションベースサービスゾーン101と関連する時間制約、1以上のロケーションベースサービスゾーン101間の間隔要件、許可される、又は制約されるロケーションベースサービスゾーン101のタイプ(たとえば、シングルユーザを標的としたロケーションベースサービスゾーン101、マルチユーザを標的としたカバレッジロケーションベースサービスゾーン101、時間窓ロケーションベースサービスゾーン101)、ロケーションベースサービスゾーンの誤った設定、及び/又は理解されることが可能であるようないずれかの他のタイプのコンプライアンス因子に基づいてもよい。たとえば、各プロバイダが三十(30)個の異なるロケーションベースサービスゾーン101だけと関連付けられるべきということをコンプライアンスルール224が示し、プロバイダが五十(50)個の異なるロケーションベースサービスゾーン101と関連付けられことをマルチプロバイダ管理システム127が検出する場合、マルチプロバイダ管理システム127は、プロバイダが対応していないと判定し得る。いくつかのシナリオにおいて、過剰な数のロケーションベースサービスゾーン101は、スパミングを示してもよい。
別の非限定的な実施例において、コンプライアンスルール224は、ロケーションベースサービスゾーン101間の間隔要件を示してもよい。たとえば、コンプライアンスルール224は、特定のプロバイダについての2つのロケーションベースサービスゾーン101間に1kmの分離がなければならないことを示してもよい。このようなものとして、ロケーションベースサービスゾーン101が間隔要件を侵すことをマルチプロバイダ管理システム127が検出する場合、マルチプロバイダ管理システム127は、プロバイダが対応していないと判定してもよい。プロバイダが対応しているとマルチプロバイダ管理システム127が判定する場合、マルチプロバイダ管理システム127は、ボックス1109へ進み、ロケーションベースサービスゾーン101をプロバイダに関するデータベースに格納してもよい。ロケーションベースサービスゾーン101を格納した後に、マルチプロバイダ管理システム127のこの部分は、終了する。
プロバイダが対応していないとマルチプロバイダ管理システム127が判定する場合、マルチプロバイダ管理システム127は、ボックス1112へ進む。ボックス1112において、マルチプロバイダ管理システム127は、プロバイダによるノンコンプライアンスと関連する深刻度のレベルを決定する。深刻度レベルは、検出されるノンコンプライアンスのタイプに従い、コンプライアンスルール224によって定義されてもよい。いくつかの実施形態において、深刻度レベルは、検出される、コンプライアンスルールの特定の侵害、及び/又は複数の侵害に基づいてもよい。たとえば、各タイプのコンプライアンス侵害に深刻度の重み付けを割り当ててもよい(たとえば、ジオフェンスの誤った設定に1を割り当ててもよく、スパミングに5を割り当ててもよい)。いくつかの実施形態において、深刻度レベルは、それぞれの検出された侵害についてのすべての重み付けの総和に部分的に基づいてもよい。
ボックス1115において、マルチプロバイダ管理システム127は、深刻度のレベルに基づくアクションを開始する。いくつかの実施形態において、コンプライアンスルール224は、マルチプロバイダ管理システム127が乱用及び/又はノンコンプライアンスの検出に基づき用いることが可能である、アクションリストを備えてもよい。たとえば、アクションリストは、そのプロバイダについてのロケーションベースサービスゾーン101を監視して、それらのロケーションベースサービスゾーン101と関連するいずれかの情報を除去するようにクライアントデバイス103に通知すること、乱用及び/又はノンコンプライアンスのプロバイダへ通知を送信すること、所定の時間内に乱用及び/又はノンコンプライアンスを正す要求をプロバイダへ送信すること、及び/又はいずれかの他の適切なアクションを備えてもよい。深刻度レベルに基づくアクションを開始した後に、マルチプロバイダ管理システム127は、終了する。
図12を参照すると、示されるのは本開示の実施形態による、コンピューティング環境203の概略ブロック図である。コンピューティング環境203は、1以上のコンピューティング装置1203を含む。各コンピューティングデバイス1203は、例えば、プロセッサ1206及びメモリ1209を有する少なくとも1つのプロセッサ回路を含み、それら両方がローカルインタフェース1212に結合される。このために、各コンピューティングデバイス1203は、例えば、少なくとも1つのサーバコンピュータ又は同様のデバイスを備え得る。認識できるように、ローカルインタフェース1212は、例えば、付随するアドレス/制御バスを伴うデータバス又は他のバス構造を含み得る。
メモリ1209に記憶されるのは、データと、プロセッサ1206によって実行可能ないくつかの構成要素との両方である。特に、メモリ1209に格納され、プロセッサ1206によって実行可能であるのは、アクティブゾーン管理システム212、時間窓ゾーン管理システム112、マルチプロバイダ管理システム127、及び潜在的に他のアプリケーションである。また、メモリ1209に記憶されるのは、データストア209及び他のデータであり得る。加えて、オペレーティングシステムは、メモリ1209に記憶され、プロセッサ1206によって実行可能であり得る。
認識できるように、メモリ1209に記憶され及びプロセッサ1206によって実行可能である他のアプリケーションが存在し得ることを理解されたい。本明細書に説明される任意の構成要素が、ソフトウェアの形態で実装される場合、例えばC、C++、C#、Objective C、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Flash(登録商標)、又は他のプログラミング言語等のいくつかのプログラミング言語のうちの任意の1つを採用し得る。
いくつかのソフトウェア構成要素が、メモリ1209に記憶され、プロセッサ1206によって実行可能である。この点において、用語「実行可能」は、プロセッサ1206によって最終的に起動することができる形態のプログラムファイルを意味する。実行可能プログラムの実施例は、例えば、メモリ1209のランダムアクセス部にロードし、プロセッサ1206によって起動され得る形式の機械コードに変換することができるコンパイルされたプログラム、メモリ1209のランダムアクセス部にロードされ、プロセッサ1206によって実行されることが可能であるオブジェクトコード等の適切な形式で表され得るソースコード、又はプロセッサ1206によって実行されるメモリ1209のランダムアクセス部に命令を生成するために別の実行可能なプログラムによって解釈され得るソースコード等であり得る。実行可能プログラムは、例えば、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)又はデジタル多用途ディスク(DVD)等の光学ディスク、フロッピーディスク、磁気テープ、又は他のメモリ構成要素を含む、メモリ1209の任意の部分又は任意の構成要素に記憶され得る。
メモリ1209は、揮発性メモリと不揮発性メモリの両方と、データストレージ構成要素とを含むように本明細書に定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ1209は、例えば、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連付けられるフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、及び/又は他のメモリ構成要素、又はこれらのメモリ構成要素のうちの任意の2つ以上の組み合わせを含み得る。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、又は磁気ランダムアクセスメモリ(MRAM)、及び他の係るデバイスを含み得る。ROMは、例えば、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、又は他の同様のメモリデバイスを含み得る。
また、プロセッサ1206は、複数のプロセッサ1206及び/又は複数のプロセッサコアを表し得、メモリ1209は、各々、並列処理回路で動作する複数のメモリ1209を表し得る。係る場合、ローカルインタフェース1212は、複数のプロセッサ1206のうちの任意の2つの間、任意のプロセッサ1206とメモリ1209のうちのいずれかとの間、又はメモリ1209のうちの任意の2つの間等の通信を容易にする適切なネットワークであり得る。ローカルインタフェース1212は、例えば、ロードバランシングを行うことを含む、この通信を調整するように設計された追加システムを備え得る。プロセッサ1206は、電気式、又は、いくつかの他の利用可能な構成であり得る。
アクティブゾーン管理システム212、時間窓ゾーン管理システム112、マルチプロバイダ管理システム127、及び本明細書に記載される他のさまざまシステムは、上記で考察されるように、汎用ハードウェアにより実行されるソフトウェア又はコードで具体化され得るが、代替として、同一のものが専用ハードウェア、又はソフトウェア/汎用ハードウェアと専用ハードウェアとの組み合わせで具体化されてもよい。専用ハードウェアで具体化される場合、それぞれがいくつかの技術のうちの任意の1つ又はそれらの組み合わせを採用する回路又はステートマシンとして実装されることができる。これらの技術は、1以上のデータ信号の適用時に様々な論理機能を実行する論理ゲートを有する個別論理回路、適切な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の構成要素等を含んでもよいが、これらに限定されない。この技術は通常、当業者にはよく理解されており、したがって、本明細書では詳述しない。
図3〜13のフローチャートは、アクティブゾーン管理システム212、時間窓ゾーン管理システム112、マルチプロバイダ管理システム127、及び/又はクライアントアプリケーション130の部分の実施態様の機能性及び動作を示す。ソフトウェアで具体化される場合、各ブロックは、指定された論理関数(複数可)を実装するプログラム命令を含むモジュール、セグメント、又はコードの一部を表し得る。プログラム命令は、プログラミング言語で作成される人間が読めるステートメントを含むソースコード、又はコンピュータシステムもしくは他のシステムのプロセッサ1206等の好適な実行システムにより認識可能な数値命令を含むマシンコードの形式で具体化され得る。マシンコードはソースコード等から変換され得る。ハードウェアで具体化される場合、各ブロックは、指定された論理関数(複数可)を実装するために、回路又はいくつかの相互接続回路を表し得る。
図3〜13のフローチャートは、具体的な実行順序を示すが、実行順序が図示する順序と異なってもよいことが理解される。例えば、2つ以上のブロックの実行順序は、示される順序に対してスクランブルがかけられ得る。また、図3〜13に連続して示される2つ以上のブロックは、同時に、又は一部同時に実行し得る。さらに、いくつかの実施形態では、図3〜13に示される1以上のブロックは、省略又は省かれる場合もある。加えて、有用性の向上、説明、性能測定、又はトラブルシューティングの補助の提供等の目的で、任意の数のカウンタ、状態変数、警告セマフォ、又はメッセージが、本明細書に説明する論理フローに追加される可能性がある。係る全ての変形例は、本開示の範囲内にあることを理解されたい。
また、ソフトウェア又はコードを含む、アクティブゾーン管理システム212、時間窓ゾーン管理システム112、及びマルチプロバイダ管理システム127を含む、本明細書に記載されるいずれかのロジック又はアプリケーションは、たとえば、コンピュータシステム又は他のシステム内のプロセッサ1206などのインストラクション実行システムによって使用される、又はそれに関連して使用される、いずれかの非一時的コンピュータ可読媒体で具現化されることが可能である。この意味では、論理は、例えば、コンピュータ可読媒体からフェッチされ、及び命令実行システムによって実行することができる命令及び宣言を含むステートメントを含み得る。本開示の文脈において、「コンピュータ可読媒体」は、命令実行システムが使用する、又はそれに関連して使用する、本明細書に記載の論理又はアプリケーションを包含、格納、又は保持することができる任意の媒体であることができる。
コンピュータ可読媒体は、例えば、磁気媒体、光媒体、又は半導体媒体等の多くの物理媒体のうちの任意の1つを含み得る。好適なコンピュータ可読媒体のより具体的な実施例は、限定ではないが、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、又は光ディスクを含むであろう。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)及びダイナミックランダムアクセスメモリ(DRAM)、又は磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であり得る。加えて、コンピュータ可読媒体は、読取専用メモリ(ROM)、プログラマブル読取専用メモリ(PROM)、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、又は他の種類のメモリデバイスであり得る。
さらに、アクティブゾーン管理システム212、時間窓ゾーン管理システム112、及びマルチプロバイダ管理システム127を含む、本明細書に記載されるいずれかのロジック又はアプリケーションは、さまざまな方式に実装され、構築されてもよい。例えば、説明される1以上のアプリケーションは、単一のアプリケーションのモジュール又は構成要素として実装され得る。さらに、本明細書に説明される1以上のアプリケーションは、共有されたコンピューティングデバイスもしくは別々のコンピューティングデバイス、又はそれらの組み合わせで実行され得る。例えば、本明細書に説明される複数のアプリケーションは、同じコンピューティングデバイス1203で、又は同じコンピューティング環境203中の複数のコンピューティングデバイス1203で実行し得る。
特に明記しない限り、句「X、Y又はZのうちの少なくとも1つ」などの選言的な言葉は、そうでなければ項目、用語等がX、YもしくはZのいずれか、又はその任意の組み合わせ(例えば、X、Y及び/又はZ)であってよいことを示すために一般的に用いられるとして文脈の中で理解される。(したがって、係る選言的言語は、概して、ある実施形態がXの少なくとも1つ、Yの少なくとも1つ、又はZの少なくとも1つがそれぞれ存在することを必要とすることを暗示することを意図しておらず、そのように暗示することを意味するべきではない。
本開示の実施形態の実施例は、以下の条項を鑑みて説明できる。
条項1.少なくとも1つのコンピューティングデバイスで実行可能なプログラムを具体化する非一時的コンピュータ可読媒体であって、前記プログラムが実行された場合は、前記プログラムによって少なくとも1つの前記コンピューティングデバイスが、複数のプロバイダに関連付けられた複数のロケーションベースサービスゾーンのレジストリを維持することであって、個々の前記ロケーションベースサービスゾーンが、ジオフェンス又はビーコンで構成され、個々の前記ロケーションベースサービスゾーンが、複数の前記プロバイダのそれぞれの前記プロバイダに関連付けられている、前記維持すること、複数の前記プロバイダの複数のプロバイダ識別子を生成することであって、複数の前記プロバイダ識別子の個々の前記プロバイダ識別子が、複数の前記プロバイダの個々の前記プロバイダに固有のものである、前記生成すること、少なくとも1つの前記ロケーションベースサービスゾーンの1以上のロケーションベースサービスゾーンパラメータを含むクライアントデバイスに、少なくとも1つのプッシュ通知を送信することであって、1以上の前記ロケーションベースサービスゾーンパラメータが、少なくとも1つの前記ロケーションベースサービスゾーンの少なくとも1つのゾーン識別子を含み、それぞれの前記プロバイダの識別情報が前記クライアントデバイスに対して匿名である、前記送信すること、前記クライアントデバイスから、少なくとも1つの前記ロケーションベースサービスゾーンのうちの特定の前記ロケーションベースサービスゾーンに関連付けられたトリガイベントのトリガイベント通知を受信することであって、前記トリガイベント通知が特定のゾーン識別子を含む、前記受信すること、特定の前記識別子と複数の前記プロバイダ識別子とに少なくとも一部基づいて、前記トリガイベント通知に関連付けられた前記プロバイダを識別すること、及び前記トリガイベント通知の受信と前記プロバイダの識別とに応答して、識別した前記プロバイダに関連したプロバイダデバイスに通知を送信することを少なくとも行う、前記非一時的コンピュータ可読媒体。
条項2.前記プログラムが実行された場合は、前記プログラムによって少なくとも1つの前記コンピューティングデバイスが、それぞれの前記プロバイダの少なくとも1つのロケーションベースサービスゾーンに関連付けられた1以上のパラメータが、複数のプロバイダ要件に準拠していることを検証することを少なくとも行う、条項1に記載の非一時的コンピュータ可読媒体。
条項3.前記プログラムが実行された場合は、前記プログラムによって少なくとも1つの前記コンピューティングデバイスが、少なくとも1つの前記プロバイダに関連付けられた前記ロケーションベースサービスゾーンの数、前記少なくとも1つの前記プロバイダに関連付けられたそれぞれのロケーションベースサービスゾーンに関連するそれぞれの位置、前記少なくとも1つの前記プロバイダに関連する前記通知の数、又は前記少なくとも1つの前記プロバイダに関連付けられた前記ロケーションベースサービスゾーンの少なくとも1つに関連するアクティビティ時間のうちの少なくとも1つに少なくとも一部基づいて、複数の前記プロバイダのうちの前記少なくとも1つの前記プロバイダによる不正使用を検出することを少なくともさらに行う、条項1又は条項2に記載の非一時的コンピュータ可読媒体。
条項4.少なくとも1つのコンピューティングデバイスと、少なくとも1つの前記コンピューティングデバイスで実行可能なプロバイダ管理システムとを備える、システムであって、前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、複数のプロバイダに関連する複数のプロバイダデバイスから、複数のロケーションベースサービスゾーンを符号化するデータを受信することであって、個々の前記ロケーションベースサービスゾーンが、複数の前記プロバイダのそれぞれの前記プロバイダに関連付けられている、前記データを受信すること、複数の前記ロケーションベースサービスゾーンをデータベースに保存すること、及びクライアントデバイスに通知を送信することであって、前記通知が、少なくとも前記ロケーションベースサービスゾーンの1以上のパラメータと、少なくとも1つの前記ロケーションベースサービスゾーンに関連付けられたそれぞれの前記プロバイダに関連付けられているトークン識別子とを含み、それぞれの前記プロバイダの識別情報が、前記クライアントデバイスに対して匿名のままである、前記通知を送信することを少なくとも行う、前記システム。
条項5.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、複数のプロバイダ識別子をランダムに生成することであって、個々の前記プロバイダ識別子が、複数の前記プロバイダの個々の前記プロバイダに固有のものである、前記プロバイダ識別子をランダムに生成することを少なくともさらに行う、条項4に記載のシステム。
条項6.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、複数の前記プロバイダのそれぞれの前記プロバイダに関連付けられた複数の前記ロケーションベースサービスゾーンのうちの1以上の前記ロケーションベースサービスゾーンに関連するログデータを分析することをさらに行う、条項4又は条項5に記載のシステム。
条項7.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、特定の前記プロバイダに関連付けられた前記ロケーションベースサービスゾーンの数、前記特定の前記プロバイダに関連付けられたそれぞれの前記ロケーションベースサービスゾーンに関連するそれぞれの位置、前記特定の前記プロバイダに関連する前記通知の数、又は前記特定の前記プロバイダに関連付けられたいずれかの前記ロケーションベースサービスゾーンに関連するアクティビティ時間のうちの少なくとも1つに少なくとも一部基づいて、複数の前記プロバイダのうちの前記特定の前記プロバイダによる不正使用の可能性を検出することを少なくともさらに行う、条項4〜6のいずれか1項に記載のシステム。
条項8.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、前記特定の前記プロバイダによる前記不正使用の可能性の検出に応答して動作を開始することであって、前記動作が、前記特定の前記プロバイダに関連付けられたいずれかの前記ロケーションベースサービスゾーンを終了させること、又は前記不正使用の可能性のある前記特定の前記プロバイダに不正使用通知を送信することのうちの少なくとも一方を含む、前記開始することをさらに行う、条項7に記載のシステム。
条項9.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、前記クライアントデバイスからイベント通知を受信することであって、前記イベント通知が、イベント情報と特定のトークン識別子とを含む、前記イベント通知を受信することを少なくともさらに行う、条項4〜8のいずれか1項に記載のシステム。
条項10.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、前記特定のトークン識別子に少なくとも一部基づいて、前記イベント通知に関連付けられた複数の前記プロバイダのうちのそれぞれの前記プロバイダを識別することを少なくともさらに行う、条項9に記載のシステム。
条項11.前記プロバイダ管理システムが実行された場合は、前記プロバイダ管理システムによって少なくとも1つの前記コンピューティングデバイスが、識別した前記プロバイダにプッシュ通知を送信することであって、前記プッシュ通知が前記イベント情報を含む、前記プッシュ通知を送信することを少なくともさらに行う、条項10に記載のシステム。
条項12.個々の前記ロケーションベースサービスゾーンが、ジオフェンス又はビーコンの少なくとも一方を備える、条項4〜11のいずれか1項に記載のシステム。
条項13.少なくとも1つのコンピューティングデバイスを介して、クライアントデバイスからトリガイベントのトリガイベント通知を受信することであって、前記トリガイベントが、前記クライアントデバイスによって監視されているロケーションベースサービスゾーンに関連付けられ、前記トリガイベント通知が、前記ロケーションベースサービスゾーンに関連付けられたトークン識別子を含む、前記トリガイベント通知を受信すること、少なくとも1つの前記コンピューティングデバイスを介して、前記トークン識別子に少なくとも一部基づいて複数のプロバイダから特定の前記プロバイダを識別することであって、複数の前記プロバイダの個々の前記プロバイダが、別々の前記ロケーションベースサービスゾーンに関連付けられている、前記識別すること、及び少なくとも1つの前記コンピューティングデバイスを介して、前記トリガイベント通知を含む通知を、前記トリガイベント通知の受信と前記特定の前記プロバイダの識別とに応答して、前記特定の前記プロバイダと関連したプロバイダデバイスに送信することを含む方法。
条項14.前記ロケーションベースサービスゾーンが、ジオフェンス又はビーコンの少なくとも一方を備える、条項13に記載の方法。
条項15.前記ロケーションベースサービスゾーンが、複数の前記ロケーションベースサービスゾーンの1つであり、前記特定の前記プロバイダが、複数の前記ロケーションベースサービスゾーンに関連付けられた複数の前記プロバイダの1つであり、少なくとも1つの前記コンピューティングデバイスを介して、複数の前記ロケーションベースサービスゾーンのデータベースを維持することであって、複数の前記ロケーションベースサービスゾーンの個々の前記ロケーションベースサービスゾーンが、複数の前記プロバイダのそれぞれの前記プロバイダに関連付けられている、前記維持することをさらに含む、条項13又は条項14に記載の方法。
条項16.前記クライアントデバイスで実行される単一のクライアントアプリケーションが、複数の前記プロバイダのサブセットに関連付けられた複数の前記ロケーションベースサービスゾーンのサブセットを監視するように構成されている、条項15に記載の方法。
条項17.少なくとも1つの前記コンピューティングデバイスを介して、前記クライアントデバイスに別の前記通知を送信することであって、他方の前記通知が、前記トークン識別子と、前記ロケーションベースサービスゾーンに関連する1以上のパラメータとを含む、前記送信することをさらに含む、条項13〜16のいずれか1項に記載の方法。
条項18.前記ロケーションベースサービスゾーンに関連付けられている前記特定の前記プロバイダが、前記クライアントデバイスに対して匿名のままである、条項17に記載の方法。
条項19.少なくとも1つの前記コンピューティングデバイスを介して、前記プロバイダに関連付けられた前記ロケーションベースサービスゾーンの数量、前記プロバイダに関連付けられた前記ロケーションベースサービスゾーンに関連する位置、前記プロバイダに関連する前記通知の数、又は前記プロバイダに関連付けられた前記ロケーションベースサービスゾーンに関連するアクティビティ時間のうちの少なくとも1つに少なくとも一部基づいて、前記プロバイダによる不正使用を検出することをさらに含む、条項13〜18のいずれか1項に記載の方法。
条項20.前記クライアントデバイスが、前記ロケーションベースサービスゾーンを監視する複数の前記クライアントデバイスの1つであり、複数の前記クライアントデバイスに、前記不正使用の検出に応答して別の前記通知を送信することであって、他方の前記通知により、複数の前記クライアントデバイスが、前記ロケーションベースサービスゾーンに関連付けられた情報を削除する、前記送信することをさらに含む、条項19に記載の方法。
本開示の上述の実施形態は、本開示の原理を明確に理解するために記述される単に実施態様の可能な実施例にすぎないことを強調すべきである。本開示の主旨及び原理から実質的に逸脱することなく、上述の実施形態(複数可)に多くの変形及び修正が行われ得る。係る変更及び変形の全ては、本開示の範囲内で本明細書に含まれ、添付の特許請求の範囲により保護されることが意図される。