次に、本発明を様々な実施形態に関連して説明する。以下の説明は、本発明のそれらの実施形態の完全な理解、および実施を可能にする説明のために、具体的な詳細を提供する。しかし、本発明は、それらの詳細なしでも実施できることが当業者には理解されよう。その他の例では、周知の構造および機能は、本発明の諸実施形態の説明を不必要に不明瞭にするのを避けるため、詳細に示すまたは説明することはしていない。
本明細書で説明する機能、代表的なシステムをまず説明する。次に、代表的なシステムによって実行される代表的なメッセージの流れを、「友人」を追加すること、道案内を取得すること、友人に会うこと、および場所を探し出すことに関連して説明する。その後、代表的なユーザインタフェースおよび位置ベースの機能を説明する。最後に、代表的なデータ構造を説明する。
(代表的なシステム)
図1Aを参照すると、無線デバイスまたはモバイルユニット102(2.5GのGPRS対応モバイルハンドセットとして示す)が、2.5Gアップリンク104に無線で通信するシステム100が示されている。通常の2.5Gアップリンク104は、(順に)、基地トランシーバ局(BTS)、基地局コントローラ(BSC)、ならびに汎用パケット無線サービス(GPRS)において、ゲートウェイサービングGPRSサポートノード(SGSN)、GPRSワイドエリアネットワーク(WAN)、ゲートウェイGPRSサポートノード(GGSN)、無線アクセスプロトコル(WAP)ゲートウェイ、および当業者には周知のその他のコンポーネントなどの、図示していない複数のコンポーネントを含む。2.5Gのネットワークおよび無線デバイスを図示しているが、もちろん、本発明の諸実施形態は、他の様々な無線システムにおいて使用することもできる。
1つまたは複数の負荷バランサ106(カナダ国所在のノーテル社によるAlteon負荷バランサのような)が、アップリンク104を介して無線デバイス102からの通信パケットを受信する(またはデバイス102にパケットを提供する)。1つまたは複数のポータルアプリケーションサーバ108が、1つまたは複数のオプションの負荷バランサ106と通信する。ポータルアプリケーションサーバ108は、様々なコンポーネントを含む。
例えば、アプリケーションサーバ108は、無線デバイス102に対する位置要求、およびデバイス102からの位置要求を扱うためのJava(登録商標)アプリケーションであることが可能なサーブレット110を含む。ユーザ対話アプリケーションコード112およびビジネス論理アプリケーションコード114がそれぞれ、サーブレット110およびアプリケーションサーバ116と連携して機能する。ユーザ対話コードおよびビジネス論理コード、ならびにアプリケーションサーバが、本明細書で説明する機能の多くを提供する。アプリケーションサーバ116は、カリフォルニア州サンノゼ所在のBEA社によって提供されるWebLogicサーバであることが可能である。
アプリケーションサーバ116の下で機能しているのが、Java(登録商標)Database Connectivity(JDBC)、Java(登録商標)Transaction API(JTA)/Java(登録商標)Transaction Service(JTS)、Java(登録商標)Mail、Java(登録商標)Cryptography Architecture(JCA)、EnterpriseJava(登録商標)Beans(EJB)などの様々なAPIを含むアプリケーションプログラミングインタフェース(API)レイヤ118である。
APIレイヤ118の下で機能しているのが、カリフォルニア州サンタクララ所在のサンマイクロシステムズ社によるHotspotなどのJava(登録商標)Virtual Machine(JVM)120である。サンマイクロシステムズ社によるSolarisなどの適切なオペレーティングシステム122が、JVM120、ならびにハイパーテキスト転送プロトコルデーモン(HTTPD、例えば、Apacheによって提供される)、JDBCライブラリおよび共有ライブラリとインタフェースをとる。一般に、単一のサーバを使用して、所与の無線デバイスに関するすべてのセッションを追跡することができる(例えば、インターネットプロトコル(IP)アドレス、エレクトロニックシリアルナンバ(ESN)、モバイル局ISDN(MSISDN)、または他の何らかの固有識別子に基づき)。これにより、システムが、所与のデバイスに関するセッションを追跡することがより容易になる。
アプリケーションサーバ108は、4つのコンポーネント、すなわち、ポータルデータベース124、ゲートウェイモバイル位置特定センタ(GMLC)126、位置特定エンジン128、および簡易メール転送プロトコル(SMTP)ゲートウェイ140、またはその他の電子メッセージング/メールサービスと対話する。ポータルデータベース124には、カリフォルニア州レッドウッドショアーズ(Redwood Shores)所在のオラクル社によって提供されるもののようなデータベースアプリケーション130が含まれる。ポータルデータベース124は、本明細書で説明する位置ベースの情報、友人リスト、保留中の要求などの多くを格納する。
GMLC126は、ノーテル社によって提供されるe−Mobility Location CenterなどのGMLC126に適合する電話ロケータサブシステム132を含む。WAN134が、GMLC126をアプリケーションサーバ108に接続する。電話ロケータ132が、アプリケーションサーバ108または位置特定エンジン128によって使用されるように緯度と経度の情報を、WAN134を介して提供するためのGMLC APIを提供する。GMLC126は、位置特定エンジン128、およびGMLC126とインタフェースをとることが可能なその他の位置特定サービスクライアントに位置データを提供する。電話ロケータサブシステム132は、加入者が接続されているセルサイトに関する緯度と経度の情報を提供する。代替として、電話ロケータサブシステム132は、セルサイト内の無線デバイス102の緯度と経度の座標を提供することもできる。
位置ベースサービス(LBS)アプリケーション136が、位置特定エンジン128上で動作する。位置特定エンジン128およびLBSアプリケーション136は、例えば、カリフォルニア州オークランド所在のKivera社によって提供されることが可能である。LBSアプリケーション136は、ジオコーディング(所在地に基づいて緯度と経度を提供する)、逆ジオコーディング(reverse geo−coding)(緯度と経度に基づいて所在地情報を提供する)、近距離(proximity)探索(関心対象地点情報を含め、所定の近距離内のアイテムを提供する)、順路指定(routing)(第1の地点から第2の地点までの道案内を提供する)、および地図生成(場所および道案内の地図を生成する)を提供する。LBSアプリケーション136は、Java(登録商標)ベースの接続プール(pooling)クラスを介して位置特定エンジン128に接続する1組のクラスとしてこの機能を提供し、エンジン128は、負荷バランサ106のような負荷バランサに接続される。このクラスは、1組の接続を保持すること、キープアライブ(keep−alive)再接続機能を提供することなどを担う。負荷バランサ106は、位置特定エンジン128に対する仮想アドレス空間、および自動フェイルオーバ(fail−over)を提供することができる。
図1Aでは、単一のブロックとして一緒に示しているが、ポータルアプリケーションサーバ群108は、論理的に別々の諸機能であることが可能である。ポータルサーバが、モバイルデバイスとの通信処理の多くを提供する。1つまたは複数のアプリケーションサーバが、友人に会う機能などの、本明細書で説明する位置特定機能の多くを提供する。従来のシステムは、一部の位置特定機能をGMLCにおいて、またはミドルウェアとして提供した。しかし、本明細書で説明するとおり、ポータルサーバは、アプリケーションサーバと緊密に結び付けられ、したがって、認証およびアクセス制御、ならびに位置のクエリを行うこと、および位置ベースのサービスを提供することが、より密接に統合される。加入者情報が、位置ベースの情報およびその他の情報とより緊密に結び付けられる。このため、以下に説明するとおり、ユーザは、友人がユーザの位置を特定しようと試みているという通知を受けた場合、その友人のモバイル番号、電子メールアドレス、ポータル加入者/ユーザ名、またはその友人に関するその他の情報を受け取る。そのような構成により、プライバシーおよび制御が提供される。というのは、ポータル、加入者、およびその他のアプリケーションが、すべてファイアウォールの一方の側で(ファイアウォールは、アップリンク104と負荷バランサ106の間に通常、配置されることが可能である)、共通のネットワーク(LANなどの)内にあるからである。このため、「ポータル」、「ポータルサーバ」、「アプリケーションサーバ」などの用語を本明細書で区別なく使用しているが、そのようなサーバ群は、論理的に別々のエンティティであることが当業者には理解されよう。
ポータルアプリケーションサーバ108、ポータルデータベース124、GMLC126、および位置特定エンジン128は、1つの物理サーバ上で一緒に提供されても、それぞれ1つまたは複数の別個のサーバ間に分けられてもよい。ポータルデータベース124、または本明細書で説明する他の大容量ストレージは、マサチューセッツ州所在のEMC社によって提供される記憶デバイスで実装することができる。位置特定エンジン128は、例えば、サンマイクロシステムズ社によるNetra20サーバ上に実装することができる。
図1Aに示した構成を超えて様々な代替のシステム構成が可能である。例えば、1つまたは複数のサーバが並置されることが可能であるが、いくつかのサーバが、遠隔に配置され、例えば、仮想プライベートネットワーク(VPN)を介して残りのコンポーネントに接続されてもよい。ファイアウォールおよび暗号化が、セキュリティのために要求される可能性がある。代替として、遠隔に分散されても、並置されてもよい様々なサーバによって様々な機能が実行される、アプリケーションサービスプロバイダ(ASP)モデルが提供されてもよい。しかし、LBSアプリケーションのようなアプリケーションは、第三者によって維持されることが可能である。大容量ストレージが、ストレージエリアネットワーク(SAN)、ネットワーク接続ストレージシステム(NAS)、または他の周知の大容量記憶システムとして使用されることも可能である。
モバイル電話器が図1Aに示されているが、本発明は、インターネット機器、ハンドヘルドデバイス、ウェアラブルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、セットトップボックス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含め、その他のデバイスおよび構成でも実施できることが当業者には理解されよう。本発明は、以下に詳細に説明するコンピュータ実行可能命令の1つまたは複数を実行するように特別にプログラミングされた、構成された、または構築された専用コンピュータまたは専用データプロセッサとして実施することもできる。実際、本明細書で一般的に使用する「コンピュータ」または「無線デバイス」という用語は、前述したデバイスおよびシステムのいずれも指し、任意のデータプロセッサも指す。
図1Bは、無線デバイス102が、例えば、道案内を要求する高レベルの呼び出しまたはメッセージの流れ図の例を示している。図示するとおり、無線WAPゲートウェイ(アップリンク104の一部を形成する)が、デバイスから要求を受信し、その要求をポータルアプリケーションサーバ108に提供する。(ポータルアプリケーションサーバは、文脈が明らかにそうでないことを要さない限り、一般に、本明細書で区別せずに「ポータル」または「アプリケーションサーバ」と呼ぶ。)ポータルデータベース124が、ポータルアプリケーションサーバ108からその要求を受け取り、無線デバイス102の登録済みユーザに関するIPアドレスやその他の情報などの情報を戻す。次に、ポータルアプリケーションサーバ108が、GMLC126に要求を与え、GMLC126から位置情報を受け取る。その後、ポータルアプリケーションサーバ108は、GMLC126によって提供された無線デバイスの位置に基づき、位置特定エンジン128に要求を与え、エンジン128から道案内情報を受け取る。次に、ポータルアプリケーションサーバ108は、電子メールメッセージ、またはショートメッセージサービス(SMS)メッセージをモバイルデバイス(または他のデバイス)にSMTPゲートウェイ140を介して送信することができる。ポータルアプリケーションサーバ108は、コンテンツ(このケースでは、道案内)をWAPゲートウェイに提供することも行い、WAPゲートウェイは、そのコンテンツをモバイルデバイスに提供する。代替として、電子メールをSMTPメッセージとして送信する代わりに、ポータルアプリケーションサーバ108は、ショートメッセージピアツーピアプロトコル(SMPP)メッセージを送信してもよい。電子メール警報メッセージなどの電子メールメッセージの代わりに、ポータルアプリケーションサーバ108は、WAPメッセージをユーザの(または友人の)モバイルデバイスにプッシュしてもよい。
前述したシステム構成の利点は、位置ベースのサービスを提供することに関する待ち時間を短縮することである。例えば、情報を取得するのにワイドエリアネットワーク(WAN)接続が全く必要ない。別の利点は、位置ベースのサービスに関するプライバシーまたはセキュリティの向上である。1つのサービスプロバイダだけが、ユーザ情報または加入者情報を含むデータベースへのアクセスを有する。加入者情報が第三者と共有される、または公共ネットワークを介して伝送される必要はない。さらに、以下に説明するとおり、本明細書で説明する位置ベースのサービス機能は、システムが位置情報を他者に提供することにユーザがまず同意して初めて、そのような情報が提供される「オプトイン(opt−in)」モデルを提供する。
(代表的なメッセージフロー)
図2Aおよび図2Bを参照すると、システム100によって実行される一部の機能が、ルーチン200として示されている。ルーチンは、ブロック202で始まり、ユーザが友人を追加することを所望するかどうかを判定し、所望する場合、ルーチンは、図3に示すメッセージフローを実行するように分岐する。ブロック204および206の下で、ユーザは、友人を受け入れるか、または拒否するかを決めることができ、受け入れるか、または拒否するかを決めた場合、ルーチンは、それぞれ、図4か、または図5のメッセージフローを実行するように分岐する。
ブロック208で、ルーチン200は、ユーザがさらなる情報を要求しているかどうかを判定し、要求している場合、図6のメッセージフローを実行するように分岐する。ブロック210および212で、ルーチンは、ユーザが、選択表示または位置変更を変更することを所望するかどうかを判定し、所望する場合、ルーチンは、それぞれ、図7Aまたは図8のメッセージフローを実行するように分岐する。
ブロック214で、ルーチン200は、ユーザが道案内を閲覧することを所望するかどうかを判定し、所望する場合、ルーチンは、図9に示したメッセージフローを実行するように分岐する。ブロック216、218、および220で、ルーチン200は、ユーザが、2人の中間の場所で友人と会うことを望むか、友人の近くで会うことを望むか、ユーザの近くで会うことを望むかを判定し、2人の中間の場所、友人の近く、またはユーザの近くで会うことを望む場合、ルーチンは、それぞれ、図10、図11、および図12のメッセージフローを実行するように分岐する。
ブロック222で、ルーチン200は、ユーザが近くの場所を見つけることを所望するかどうかを判定し、所望する場合、ルーチンは、図13に示した機能を実行するように分岐する。ブロック224で、ルーチンは、ユーザが近くの友人を見つけることを所望するかどうかを判定し、所望する場合、図14に示した諸機能を実行するように分岐する。ブロック226で、ルーチンは、ユーザが友人のリストを編集することを所望するかどうかを判定し、所望する場合、図15に示した諸機能を実行するように分岐する。ブロック228で、ルーチンは、ユーザが友人にRSVPすることを所望するかどうかを判定し、所望する場合、図16に示した諸機能を実行するように分岐する。
ルーチン200、および本明細書で説明する他のルーチンは、汎用コンピュータ(例えば、サーバまたはパーソナルコンピュータ)によって実行されるルーチンなどの、コンピュータ実行可能命令として実装することができる。そのような命令は、磁気式または光学式に読取り可能でリムーバブルなコンピュータディスクを含むコンピュータ読み取り可能な媒体上に格納されること、またはそのようなコンピュータ読み取り可能な媒体上で配布されることも、配線によってチップに組み込まれること、またはあらかじめプログラミングされることも(例えば、EEPROM半導体チップまたはASIC)、インターネット、または他のネットワーク(無線ネットワークを含む)を介して電子的に配信されることも可能である。本発明の一部の実施形態の諸部分は、サーバコンピュータ上に存在することが可能であり、他方、対応する部分が、クライアントコンピュータ上、または無線デバイス上に存在することが可能であることが当業者には理解されよう。また、本発明の態様に特有のデータ構造およびデータの伝送も、本発明の範囲内に包含される。一般に、システム100のようなハードウェアプラットフォームを本明細書で説明しているが、本発明の態様は、対応するリソースロケータまたはアドレスを有するネットワーク上のノードにも同様に適用して、データルーティング、およびコマンドの実行を要求するためにそのようなノードを特定することができる。
図3〜12を参照すると、代表的なメッセージフローまたはデータフローの図が、アップリンク104のゲートウェイおよびその他のコンポーネント、ポータルアプリケーションサーバ108、およびシステム100のその他のコンポーネントの間における通信の交換を示している。以上、およびその他の流れ図は、すべての機能またはすべてのデータ交換は示しておらず、代わりに、本システムの下で交換されるコマンドおよびデータの理解を提供する。もちろん、一部の機能、またはコマンドおよびデータの交換は、繰り返されることも可能であり、図示していない他の(それほど重要でない)態様も、容易に実装できることが当業者には理解されよう。
(「友人」を追加すること)
図3を参照すると、ユーザがシステム100の下で友人を追加することができるようにする代表的な呼び出しフローまたはメッセージフローの図が示されている。WAPゲートウェイのような無線アップリンク104が、ユーザの友人データベースに新規の「友人」を入力する要求を無線デバイス102から受信する。本明細書で一般的に使用する「友人」という用語は、ユーザが対話することを所望する任意の知人、またはその他の個人を指すだけでなく、任意のアドレス指定可能な無線デバイスも指す。実際、「ユーザ」および「加入者」という用語は、互いに区別なく使用され、本明細書で説明する機能またはシステムを使用するか、またはそれ以外の形で、本明細書で説明する機能またはシステムによる影響を受ける所与の個人を指す。「加入者」は、必ずしも、本明細書で説明する位置ベースのサービスに加入した人である必要はない。システム機能に関連して、「友人」、「ユーザ」、「加入者」などという用語は、論理的に等価であり、無線デバイスを追跡し、管理するのにシステムが使用する任意のデータを表す。本発明は、グループの中の1つまたは複数の無線デバイス、または任意のネットワーク内のノードに関連して位置ベースのサービスを提供するために使用することができる。
図3のフローは、ゲートウェイ104が無線デバイス102から、無線デバイス102に関連する友人データベースに友人を追加する要求を受信することから始まる。ゲートウェイ104は、無線デバイス102に関連するモバイル番号またはユーザ名を受信し、それをポータル108に転送する。データベース124は、ポータル108からクエリを受け取り、モバイル/ユーザ名が、サービスの加入者に対応しているかどうか、またはそれ以外の形で許可されているかどうかを判定し、対応していない、または許可されていない場合、データベースは、ポータル108によってゲートウェイ104に転送されるエラーを戻す。以上の許可機能が、ほとんどの要求に対して実行されて、システムの各ユーザを許可することが可能である。
データベース124が、データベース124の中でモバイル番号またはユーザ名を特定し、有効な応答を戻した場合、ポータル108は、これに応答して、追加されるべき友人に関する情報の入力を要求する要求プロンプトを無線デバイス102に送信する。これに応答して、ゲートウェイ104が、追加されるべき友人に関する情報(例えば、新規の友人に関連するモバイル電話番号、URL、または他の電子アドレスまたはネットワークアドレス)を無線102デバイスから受信し、ポータル108に提供する。ポータル108は、これに応答して、ユーザの友人リストに友人が追加されることをユーザが要求したことを、データベース124が反映することを求める更新要求をデータベース124に送る。以下に説明するとおり、データベース124は、保留中の要求のリスト、およびシステム100によって提供される様々な機能のステータスを格納する。ポータル108は、データベース124にクエリを行い、受け取られたMSISDN(モバイル電話番号)、またはその他のアドレスに基づいて友人のユーザ名を取り出すことができる。また、ポータル108は、その友人がユーザの友人リストに追加されることを所望するかどうかを尋ねるSMSメッセージまたは電子メールを生成して、その友人に送信することも行い、このSMSメッセージまたは電子メールは、インターネット、または他のデータパケット網(図示せず)を介してユーザに送信するためにSMTPゲートウェイ140に転送される。
ユーザの友人リストに友人が追加されることをユーザに要求させることに加えて、ユーザは、ユーザの友人のリストに載せられることを求めることもできる。ユーザは、単に、友人のモバイル電話番号、ユーザID、およびその他の識別子をポータル108に提供し、ポータル108が、前述したのとほぼ同一の形で友人に適切な要求を行う。
友人は、その要求を承認すること、または拒否することができ、これをそれぞれ、図4および図5に示している。図4の友人受入れフローを参照すると、前述したとおり、友人を検証した後、ポータル108は、友人の無線デバイスから(ゲートウェイを介して)、保留中の友人要求を閲覧する要求を受信する。データベース124が、保留中の要求を調べるクエリをポータル108から受け取り、友人リストをポータル108に戻し、このリストをポータル108は、ゲートウェイ104を介して友人の無線デバイスに送信する。次に、ポータル108は、ゲートウェイ104を介して友人の無線デバイスから、承認される友人の要求の1つを受け取り、確認メッセージを返送する。これに応答して、無線デバイスは、ゲートウェイ104を介してポータル108に、確認メッセージに対する応答を提供する。ポータル108は、ユーザの友人リストを更新して新たに受け入れられた友人をその時点で含めるようにデータベース124に要求する。
ポータル108は、友人がユーザの友人リストに追加されることを承認したこと示すSMSメッセージをユーザに送信する。(ポータル108は、データベース124が更新された後、その追加を反映するSMSメッセージを送信することもできる。)友人は、友人の固有ユーザ名の下でユーザの友人リストに載せられることが可能である。代替として、ユーザは、リスト上に出現する友人の名前を変更、または編集して、ユーザが所望する何か(例えば、エイリアス)にすることができる。
システムは、友人がユーザの友人リストに追加されることを承諾しても、そのことは、ユーザがその友人の友人リストに自動的に追加されることを意味しないという点で、互恵的ではない。このため、ユーザは、友人がユーザの位置を特定することを所望するかどうかを友人に尋ねる要求を、友人に送信するように促されることが可能である。ポータル108は、そのような要求が保留中であることを反映するようにデータベース124を更新し、友人がユーザを友人の友人リストに追加することを所望するかどうかを尋ねるSMSメッセージを友人に送信する。
本明細書で説明するとおり、ユーザ(または友人)に表示される情報は、WAPメッセージの形態であることが可能である。これらの図には示していないが、ポータル108およびモバイルデバイス102は、WAPの下で一般的であるように、完全な表示、コマンド、またはその他の伝送を表す「デッキ」を形成する複数の伝送、または「カード」を受信する、または交換することができる。
図5の友人拒否フローを参照すると、図4に関して前述したとおり、保留中の友人要求のリストを戻した後、ポータル108は、要求受入れではなく、要求拒否、または常時要求拒否の応答をユーザから受け取る。誰かの友人リストに追加されるべきそれぞれの保留中の要求に応答して、ユーザは、特定の友人からの各要求を個々に拒否するが、要求者の友人リストに後に追加される可能性を開いたままにしておくこと、または現在の要求を拒否し、その要求者からの将来の要求を常に拒否するオプションを選択することができる。ポータル108が、ユーザから要求拒否の応答を受け取るか、常時要求拒否の応答を受け取るかに関わりなく、ポータル108は、確認メッセージを友人の無線デバイスに送信し、無線デバイスから、その確認メッセージに対する応答を受信する(すべてゲートウェイ104を介して)。次に、ポータル108は、データベース124が適切な変更を行うことを要求し、ユーザが、要求者の友人リストに追加されることを拒否したか、または拒否することを常に所望するかを示すSMSメッセージを要求者に送信する。
代替の実施形態の下では、ユーザは、友人サブリスト(サブフォルダに類似する)を確立することができる。このため、ユーザは、ある上位レベルグループ化(例えば、「友人」、「クライアント」、「同僚」など)を含む階層式の友人リストを確立することができ、個々の友人は、それらの上位レベルグループの1つまたは複数の中で提供される。このため、ユーザは、Windows(登録商標)オペレーティングシステムの下、またはその他のPCオペレーティングシステムの下におけるファイルおよびフォルダに関連するやり方と同様のやり方で、友人リストを管理することができる。さらに、この代替の実施形態の下では、ユーザは、リストの中の一部の友人を選択することができるが、他の友人は選択することができない(例えば、リストの中の第1の友人、第3の友人、および第4の友人は見つけることができるが、5名の友人のリストの中の第2の友人および第5の友人は見つけることができない)。さらに、リストの中で友人のサブセットを選択すると、ユーザは、友人のサブセットを自動的に、同時に位置特定するなどの、本明細書で説明する他の機能を実行することができる。次に、システムは、リストの中で選択された友人のそれぞれに関して、本明細書で説明するステップを単に実行する。
ユーザが、システム100に適合するシステムに加入していない友人を追加しようと試みた場合、その友人をユーザの友人リストに追加することはできない。しかし、システムは、その友人が本サービスの加入者になることを所望するかどうかをその友人に尋ねる所定の要請メッセージ(あらかじめ録音済みの音声メッセージ、SMSメッセージなど)を要求された友人に送信することができ、または代替として、ユーザにそうするように促すことができる。このため、一実施形態では、システムは、適切な要請メッセージを友人に送信し、メッセージは、特定の状況に合わせられる。例えば、友人が、本システムの下で無線加入者であるが、データサービスに加入していない(このため、本明細書で説明する位置ベースのサービスの恩恵を受けることができない)場合、要請メッセージは、友人がそのようなデータサービスに加入するように勧める。代替として、友人が、別のサービスプロバイダの無線加入者である場合、要請メッセージは、サービスプロバイダを切り替えるように友人に勧める。
代替として、またはさらに、システムは、友人が加入者として参加することを要求するメッセージを、ユーザが友人に送信することを要求する要請メッセージをユーザに送信することもできる。ユーザへのそのような要請メッセージは、そのようなメッセージを準備し、送信するようにユーザに単に求めること、またはユーザが友人に転送するサンプルメッセージを含むことが可能である。ユーザは、友人が実際に加入者として参加した場合、ある報酬を受け取ることが可能である。
そのような要請メッセージは、URL、またはフリーダイヤルの番号を提供するなど、友人が本システムの加入者に容易になることができるようにする情報を含むことが可能である。例えば、位置ベースのサービスオプションのメインメニューが、あらかじめ形式設定されたメッセージをユーザが選択した電話番号に送信するオプションを含むことが可能であり、メッセージには、「こんにちは、[ユーザのモバイルID番号]が、貴方に対してFind Friendsを使用することを所望しています。ユーザが既に加入者になってはいない場合は、1−877−400−1080を呼び出してください。」と書かれていることが可能である。システムは、友人がシステムに加入することを求めるそのような保留中の要求をデータベース124の中で追跡することができる。友人が加入すると、ポータル108は、友人が加入したことを示し、友人が現時点でユーザの友人リストのメンバになることをユーザが所望するかどうかを尋ねるSMS、またはその他の通信をユーザに送信することができる。
テキストインタフェースまたは視覚インタフェースを本明細書で一般的に説明しているが、代替の実施形態は、音声インタフェース、またはその他のオーディオインタフェースを使用することも可能である。このため、ポータル108は、テキスト−音声方法の下で、またはユーザにユーザの無線デバイスを介して聴覚情報を提供するその他の周知の方法の下で、道案内を提供することができる。
図6を参照すると、ユーザが情報を要求する場合に関するシステム100におけるメッセージフローの例が示されている。ポータル108が、無線デバイス102から(ゲートウェイ104を介して)、さらなる情報を求める要求を受信する。これに応答して、ポータル108は、特定のメッセージを調べる、またはそれ以外の形で情報を取り出すようにデータベース124に要求する。データベース124から受け取られたメッセージに応答して、ポータル108は、メッセージを形式設定し、ゲートウェイ104を介して無線デバイス102に戻す。戻される情報は、例えば、頻繁に尋ねられる質問、どのように友人を追加するか、またはどのように他の機能を実行するかに関するユーザのためのチュートリアルなどであることが可能である。さらに、本明細書で説明するとおり、ユーザは、ユーザが位置特定特権を許可することをユーザに要求している個人に関する情報を要求し、受け取ることもできる。
(道案内を取得する、友人に会う、または場所を見つける)
前述したとおり、システム100は、2地点間の道案内を提供することができ、道案内は、ユーザの無線デバイス102に、電子メールで、かつ/または地図イメージに関連してなど、任意のいくつもの形で送信されることが可能である。図7Aは、道案内に関連して「from」位置を表示するスクリーンを生成する際のネットワーク要素対話に関するメッセージフローの例を示している。本明細書で説明するとおり、ポータル108が、ユーザのモバイルデバイス102に、ネットワーク内のモバイルデバイスの位置情報を提供することができ、位置情報は、セルサイト(またはセルサイトセクタ)レベルの細分性までの精度である。ユーザが、例えば、特定の位置から(セルの中心点からではなく)より高い具体性で道案内を受け取ることを所望する場合、ユーザは、現在の通りのアドレスを入力することを要求される可能性がある。このため、図7Aに示すとおり、友人会合コントローラ702が、所望される場合、ユーザの位置および友人の位置、ならびに会合場所などの目的地を送る。これに応答して、道案内コントローラ704が、「from」選択スクリーンを表示し、このスクリーンが、ポータル108によってゲートウェイ104を介して、ユーザのモバイルデバイス102に提供される。すると、ユーザは、そのスクリーンを介して特定の「from」位置を入力することができる。代替として、その位置細分性レベルが不必要である/望ましくない場合、「from」選択スクリーンが全く表示されない、またはそのようなスクリーンに記入が行われないことが可能である。
システム100の下で提供されるほとんどの位置ベースのサービスでは、システムが、ユーザの無線デバイス102の位置を特定しなければならない。しかし、GPRSなどの一部の無線プロトコルの下では、無線デバイス102がデータモードになっている場合、システム100は、デバイスの位置を特定することができない。したがって、図7Bを参照すると、システムは、システムが無線デバイス102の位置を特定することができるようにするためのルーチン710を定期的に実行することができる。
ステップ712で始まり、無線デバイス102が、所定の時間を超えて(例えば、5分を超えて)データモードになっているかどうかをポータル108が判定する。ポータル108上で実行されている小型サブルーチンが、各無線デバイス102がデータモードになっている累積時間を監視し、無線デバイス102が時間閾値を超えた場合、ポータル108が、適切なメッセージを無線デバイス102に伝送して、データモードから出るようにデバイス102に命令する。代替として、各無線デバイス102が、デバイス102が所定の時間を超えてデータモードで連続的に動作している場合、それを判定するローカルで実行されるカウントサブルーチンを有することも可能である。システム100は、代替として、またはさらに、デバイス102がある位置ベースのサービスを要求した場合にはいつでも、またはモバイルデバイス102の位置が、例えば、そのような位置を取得することが許可された友人からの友人探索要求によって要求された場合にはいつでも、データモードを終了するようにモバイルデバイス102に要求することができる。
時間閾値が超えられた後、ルーチン710が、ブロック714で、現在、表示されているページをポータル108に格納するために送信するように無線デバイス102に要求する。例えば、無線デバイス102は、特定のWAPページを表示していることが可能であり、このページをポータル108が受信し、格納する。ブロック716で、ポータルは、無線デバイス102の位置を特定するようにGMLC126および位置特定エンジン128に要求する。ブロック718で、ポータル108は、GMLC126および/または位置特定エンジン128から無線デバイス102の位置を受信する。その後、ブロック720で、ポータル108は、無線デバイス102によって再び読み込まれるように格納されたページを無線デバイス102に伝送して戻し、無線デバイス102がデータモードに戻ることができるようにする。その後、このプロセスが繰り返される。
図8を参照すると、本システムの下で提供される位置ベースのサービスのための道案内に関連して「from」位置を変更することに関するメッセージフローの例が示されている。例えば、ユーザは、ユーザが現在、位置していない場所からの道案内を要求すること、またはユーザの位置を明確に特定することができない場合、特定のアドレスを入力するように要求されることが可能である。このため、図8に示すとおり、ポータル108は、無線デバイス102から(ゲートウェイ104を介して)、ユーザによるfrom位置を変更する要求を受け取る。これに応答して、ポータル108は、from位置を変更するように道案内コントローラ704に命令し、コントローラ704から、ユーザがfrom位置を変更することができるようにする適切なスクリーンを受け取る。道案内コントローラ704は、本明細書で説明する道案内を提供するための機能のサブシステム、サブルーチン、またはグループを表す。
受信されたスクリーンに応答して、ゲートウェイ104が、ユーザの無線デバイス102から、新たなfrom位置を受信し、この位置をゲートウェイ104は、ポータル108に転送する。ポータル108は、新たなfrom位置を道案内コントローラ704に転送して、その新たなfrom位置が新たなアドレスに相当するか、または道案内コントローラ704によって既に認識されているアドレスに相当するかを調べる。アドレスが新規であった場合、道案内コントローラ704は、適切な入力表示スクリーンを戻す。次に、入力表示スクリーンは、ゲートウェイ104を介して無線デバイス102に転送される。ゲートウェイ104は、ユーザの無線デバイス102から新たなアドレス情報を受信し、このアドレスをポータル108が受信して、更新のために道案内コントローラ704に転送する。道案内コントローラ704は、新たなアドレスを反映する更新済みのfromスクリーンを生成し、ポータル108に転送し、このスクリーンが、ゲートウェイ104を介して無線デバイス102に転送される。前述したのと非常に似通った形で、ユーザは、「to」位置を変更することができる。
図9を参照すると、道案内を受信する、または閲覧することに関するメッセージフローの例が示されている。道案内、およびその他のデータの生成および表示は、前述したとおり、ポータル108上、またはアプリケーションサーバ上で実行されているハイパーテキスト転送プロトコル(HTTP)セッション904を介して追跡されるか、または管理される。図のすべてでは示していないが、ポータル108またはアプリケーションサーバは、本明細書で提供される機能に対するモバイルデバイスのアクセスの状態を管理するためのセッションを開始する。例えば、道案内を閲覧する場合、ユーザは、次のスクリーン全体で道案内を閲覧すること、道案内を受けて行動すること(例えば、電子メールまたはファックスで道案内を送信すること)、または道案内の特定のスクリーンにジャンプすることを要求することができる。HTTPセッションは、現在の状態を管理して適切な機能を確実にする。HTTPが、Find Friends加入者のトランザクション要求を扱うための長距離プロトコルであり、要求を処理するのに要求されるネットワークトラフィックを最小限に抑えるのに役立つ。他の適切なプロトコルをHTTPに代用して、トランザクション要求処理を実行すること、かつ/またはトランザクション要求に関連するネットワークトラフィックを減少させることもできる。同様に、モバイルデバイスまたはユーザがアクセスする機能の状態を追跡するための他の方法も使用することができる。
このため、ユーザが道案内を要求した場合、道案内コントローラ704および友人探索コントローラ902(以下に説明する)がそれぞれ、from位置とto位置を設定して、HTTPセッション904を介してセッションを開始する。その後、道案内コントローラ704は、位置特定エンジン128から道案内を要求する。道案内を受け取った後、道案内コントローラ704は、HTTPセッション904の下のセッションの中に道案内を格納し、ポータル108向けの表示スクリーンとして道案内を形式設定する。無線デバイス102は、ゲートウェイ104を介してポータル108から道案内の表示スクリーンを受信する。さらなる道案内が表示されるべき場合、無線デバイス102は、さらなる道案内を求める要求をポータル108に(ゲートウェイ104を介して)提供することができる。その要求に応答して、ポータル108は、さらなる道案内を表示するように道案内コントローラ704に要求し、そのような道案内が用意されている場合は、その道案内が、ポータル108およびゲートウェイ104を介して無線デバイス102に提供される。
ユーザは、道案内の特定のスクリーンを閲覧することもできる。例えば、道案内の6つのスクリーンが、現在位置から所望の位置までユーザをナビゲートするように提供される場合、ユーザは、6つのスクリーンの3番目にジャンプすることができる。このため、図9の下部に示すとおり、ユーザは、道案内の特定のスクリーンを選択し、その所望のスクリーン番号をポータル108に提供することができ、ポータル108は、その道案内番号を道案内コントローラ704に提供する。これに応答して、道案内コントローラ704は、道案内の所望のスクリーンを提供し、このスクリーンをポータル108が、モバイルデバイス102に戻す。
前述したとおり、システム100は、ユーザが、ユーザの友人に会うこと、関心対象地点を特定すること、会合場所を探索すること、およびそのような会合をスケジュールすることができるようにするサブルーチン、または機能のグループを表す友人会合サブシステム、または友人会合コントローラ902を含む。友人会合サブシステム902は、道案内が必要とされる場合、この情報を道案内コントローラ704に転送することも行う。図10を参照すると、ユーザと友人の中間地点における友人との会合をユーザが調整できるようにシステムに要求することに関するメッセージフローが示されている。フローは、ポータル108が、ゲートウェイ104を介して、ユーザの無線デバイス102による友人に会う要求を受信することで始まる。ポータル108が、データベース124にクエリを行い、そのユーザのすべての友人を調べ、ユーザの友人リストを含む友人表示ページをユーザに戻す。代替の実施形態の下では、友人表示ページは、ユーザの友人のリスト(またはそのリストの中の最初の5名の友人)を含むだけでなく、それらの友人の最後に特定された位置も含む。このため、ユーザは、いずれの友人が最も近い可能性があるかを特定し、その友人との会合を調整することができる。
図10に示すとおり、ポータル108が、無線デバイス102から、ユーザが選択した友人を受信する。これに応答して、ポータル108は、その友人に関するジオコードを位置特定し、提供するようにGMLC126に要求する。ジオコードを受け取ったことに応答して、ポータル108は、逆ジオコードを実行して友人のアドレス位置を特定するように位置特定エンジン128に要求する。友人のアドレス位置を受け取ったことに応答して、ポータル108は、電子メールゲートウェイ140を介してSMSメッセージを友人に送信する。SMSメッセージは、ユーザが友人を位置特定しようと試みたことを友人に示す。また、ポータル108は、友人の位置表示ページをユーザの無線デバイス102に送信して、友人のアドレス位置を提供することも行う。ユーザが友人と会うことを要求したことに応答して、ポータル108は、会合オプション表示ページをユーザに送信する。オプションページは、少なくとも3つのオプション、すなわち、ユーザの近くで会う、友人の近くで会う、またはユーザと友人の中間地点で会うを含む。
図10の例で示すとおり、ユーザは、ユーザと友人の中間地点で会うことを要求し、そのことが、ポータル108がゲートウェイ104を介して無線デバイス102から受信する「私たちの中間地点」メッセージで示される。次に、ポータル108は、GMLC126からユーザのジオコードを取得し、ユーザに関して位置特定エンジン128から逆ジオコード位置を要求する。逆ジオコーディングは、緯度と経度を通りのアドレス、または地図上で容易に位置特定できる他の位置に変換する。その後、ポータル108は、ユーザと友人の間の中間地点を特定するように位置特定エンジン128に要求し、その中間地点に基づき、その中間地点の周りの近隣、都市、またはその他の場所を見つけるように位置特定エンジン128に要求する。近隣/都市/場所のリストに応答して、ポータル108は、近隣表示ページをユーザの無線デバイス102に(ゲートウェイ104を介して)提供する。ユーザは、近隣/都市/場所を選択し、その情報をゲートウェイ104を介してポータル108に提供する。これに応答して、ポータル108は、選択された近隣/都市/場所に基づいて関心対象地点(POI)カテゴリを要求し、POIカテゴリをリストアップした表示ページを無線デバイス102に提供する。カテゴリには、例えば、レストラン、酒場、公園、喫茶店などが含まれることが可能である。
ポータル108は、選択されたPOIカテゴリを無線デバイス102から受信し、データベース124から探索半径パラメータを要求し、このパラメータは、適切な半径選択表示ページでユーザの無線デバイス102に戻される。ユーザは、所望の半径をポータルに送信し、ポータルは、ユーザが選択した半径内で所与のカテゴリのPOIを位置特定エンジン128から要求する。これに応答して、ポータル108は、位置特定エンジン128から、ユーザの所望の基準を満たすすべてのPOIのリストを受け取り、そのようなPOIをリストアップしたPOI表示ページをユーザの無線デバイスに提供する。ユーザは、リストから特定のPOIを選択し、それをゲートウェイ104を介してポータル108に提供する。ポータル108は、選択されたPOIに関する詳細を提供するPOI表示ページを提供する。図示していないが、ポータル108は、SMSメッセージ、電子メールメッセージ、またはその他の通信を、RSVPを要求している友人に送信する。
データベース124は、保留中のRSVPのリストをユーザに関するレコードと、友人に関する別のレコードの両方の中に格納する。これにより、システム100は、保留中のRSVP、およびその他の会合要求を常に把握していることができる。実際、システム100は、多数のSMSメッセージを送信して、様々な要求のステータスに関してユーザおよび友人に常に最新情報を与えるようにする。代替の実施形態では、ポータル108は、友人がユーザの位置を特定しようと試みたかどうかを示すメッセージなどの、様々なSMSメッセージを受信するように、または受信しないように選択するためのオプションをユーザおよび友人に提供する。この代替形態では、ユーザは、何らかのそのようなメッセージを受信するかどうかを選択すること、またはシステムがユーザの位置を提供することをユーザが許した特定の友人または他の人々からそのようなメッセージを受信するかどうかを指示することができる。このため、例えば、ユーザは、第1の友人がユーザの位置を特定しようと試みたが、第2の友人はそうしなかった場合に通知を受けることを所望することが可能である。
ユーザは、POIへの道案内を受信することを所望する場合、無線デバイス102を介して道案内を要求することができる。これに応答して、ポータル108は、道案内を求める要求を受信し、所望される道案内を取得して、無線デバイス102に提供するために前述した諸機能の多くを実行する。ポータル108は、電子メールゲートウェイ140を介して、ユーザと友人の両方に道案内を電子メールで送ることができる。例えば、ポータル108は、電子メールメッセージを作成し、形式設定することができ、そのメッセージを電子メールゲートウェイ140が、例えば、「[ユーザ名]@mobile.att.net.」でユーザに送信する。代替として、またはさらに、ポータル108は、適切なファックスサーバ(図示せず)と通信して、地図イメージのファックスを生成し、コンピュータ、ファックス装置などによって受信されるようにユーザまたは友人にそのようなイメージを送信することができる。ファクシミリイメージを生成し、送信するためのソフトウェアユーティリティは、当業者には周知である。ポータル108は、SMS、またはその他の通信をモバイルデバイス102に送信して、自らの電子メールまたはファックス装置を確認するようにユーザの注意を喚起することができる。
システムは、ユーザが、ユーザのモバイル電話番号およびユーザ名を2回、伝えることを要求する。すなわち、友人の位置を特定する許可を要求する際に1回(誰がその要求を行っているかが友人に分かるように)、および誰かにアクセスを許可する際に再度である。ポータル108は、モバイル電話番号およびユーザ名を友人リストの中に格納して、ユーザを特定することができるようにし、友人がユーザに連絡をとるのが容易で安全であることができるようにする。
図11を参照すると、ユーザが友人の近くで会うことを所望する場合、図10に示したのとほぼ同じメッセージフローが繰り返される。ただし、会合オプションページを受信した際、「私たちの中間地点」で会う要求を与える代わりに、ユーザの無線デバイスは、「友人の近くで」会う要求をポータルに与える。すると、システム100は、友人の位置に対する所望の半径内のPOIを提供する。同様に、ユーザがユーザの近くで会うことを所望する場合も、図12に示すとおり、実質的に同様のメッセージフローが実行される。
友人に会うための前述した諸機能により、ユーザは、1回につき1名の友人に会うことができるようになる。代替の実施形態の下では、システム100は、ユーザが、2名以上の友人を選択し、それらの友人とユーザの間の等距離地点で会合を調整することを可能にする。システム100は、位置特定エンジン128を介して、ユーザと友人らの間の中間地点を計算し、前述した諸機能を実行して、その中間地点または「地理的中心地」における所望のPOIをユーザが特定することができるようにする。
別の代替の実施形態では、ポータル108は、ユーザのカレンダアプリケーション、連絡先管理アプリケーション、または両アプリケーションを統合する、またはこれらのアプリケーションとインタフェースをとることができる。例えば、ポータル108は、ユーザが友人に対して要求した会合に関するデータを受信し、Microsoft Outlook、Infospace Calender、または同様のアプリケーションに関連する標準のAPIを使用して、会合、およびその会合に関する詳細をユーザのカレンダに追加する。同様に、ユーザが新規の友人を追加する、または別の形でユーザの友人リスト(本明細書で説明する)を調整する場合、Microsoft Outlookなどのユーザの連絡先管理ソフトウェアにおける連絡先レコードが、その友人に関する情報を含むように変更される。
ポータル108は、ユーザの位置に基づき、ユーザが位置している時間帯および現在の現地時間を特定することができる。代替として、またはさらに、ユーザは、本明細書で説明するサービスに加入する際に、ユーザの自宅郵便番号または職場郵便番号を提供することができ、この郵便番号をポータルが使用して、時間帯または現地時間をそのユーザに関連付けることもできる。また、ユーザが本システムを介して友人の位置を特定する際、ポータル108が、友人の現在位置における時間帯または現地時間をユーザのモバイルデバイス102に戻すことも可能である。ポータル108は、モバイルデバイスの位置から時間帯を特定すること、モバイルデバイスから時間帯を要求すること、または位置特定エンジン128やGMLC126などの別のシステム要素から時間帯を取得することもできる。
時間帯および現在の現地時間は、様々なアプリケーションにおいて役立つ可能性がある。例えば、現地時間は、会合を調整する際に使用することができる。ユーザは、シアトルからニューヨーク市に移動中である可能性があり、会合機能を使用して、ニューヨーク市における同僚との会合をスケジュールする、または調整することができる。ユーザは、ユーザが滞在することになるホテルに相当する「from」位置、および会合場所(ホテルの近くのレストランなどの)を入力することができる。すると、システムは、ユーザの現在の西海岸時間ではなく、東海岸時間に基づいて会合を調整することができる。また、システムは、ユーザの、または友人の関連する現地時間を使用して、メッセージを受信する、または送信する、位置特定された友人を呼び出すのに適切な時刻であるかどうかを判定するなどのために適切な時刻を算出することができる。このため、システムは、ユーザ、友人、またはその他の人々の現地時間を使用して、本明細書で説明する適切なアプリケーションまたは機能に入力を行う(populate)ことができる。
代替の実施形態では、ポータル108は、位置(ユーザの現在位置や関心対象地点の位置などの)近くの横通り(cross street)のドロップダウンリストをユーザに提供することができる。横通りのそのようなリストは、所望の位置に対してユーザを向けさせる際、スクリーン(例えば、「from」位置スクリーン)に記入する際などに特に役立つ可能性がある。そのような横通りのリストは、任意の既知のユーザ入力技術(例えば、そのようなユーザ入力デバイスを使用するモバイルデバイス上のタッチセンシティブスクリーン、数字キーパッドだけを使用するモバイルデバイスを使用したメニューリストからの単純なボタン選択)を介してユーザが選択できるオプションとして提供されることが可能である。位置特定エンジン128が、横通り(cross street)の特定を提供することも可能である。
ポータル108は、ユーザのリスト上の友人が「近く」にいるとき、それをユーザに通知することができる。例えば、ユーザの友人リスト上の友人が、ユーザと同一のセルセクタ内にいる場合、ポータル108は、SMSメッセージをユーザに提供して、その友人を特定し、そのような友人が「非常に近く」にいることを示すことができる。
別の例として、ユーザは、ある半径内にいる、またはその他の基準に基づく似通った関心を共有する、友人またはその他の個人を見つけることができる。以下に説明するとおり、ポータルデータベース124は、本明細書で説明する位置ベースのサービスの各ユーザに関する公開プロファイルを格納することができる。この公開プロファイルは、その個人に関する趣味、関心、およびその他の情報を含むことが可能である。このため、ユーザは、200メートルの範囲内にいるゴルフを愛好する人であれば誰でも位置を特定しようと試みて、ユーザが、会合要求を送信し、4人プレーを確立できるようにすることができる。本明細書で説明するとおり、他の多くの例が可能である。
図13〜16は、システム100が、どのようにユーザのために近くの場所を見つけるか、どのようにユーザのために近くの友人を見つけるか、どのようにユーザが自分の友人リストを編集することができるようにするか、ならびにどのようにユーザが会合要求に応答して、友人にRSVPすることができるようにするかをそれぞれ示すデータおよび機能の流れ図である。これらの機能に関する詳細を図17〜33に関連して以下に提供する。
より具体的には、図13ないし16は、図17ないし33、および前述した前出の図に関連してより詳細に示した、または説明した機能を提供するソフトウェアルーチンまたはソフトウェアサブルーチンの例を示している。明瞭さを犠牲にせずに、ただし、簡潔にするため、および当業者(または当業者でない人々)を指導するため、次に、図13の諸部分を詳細に説明する。当業者には、図13〜16は自明であろうが、図13のそのより詳細な説明から、図14ないし16をより容易に理解することができる。
図13に示すとおり、FindNearbyControllerルーチン1300が、近くの場所を見つけることと、友人を見つけることの間でオプションをユーザに提示するページ「FindNearbyPage」1302を初期設定して、ユーザに提供する。例の図13では、ユーザは、「場所」を選択し、これに応答して、システムは、サブルーチン、CategoryListBuilding1306と対話するサブルーチン、NearbySearchController1304を開始し、サブルーチン1306は、カテゴリデータベース、CategoryFactoryからすべてのカテゴリを取得する。サーバは、スクリプト、またはその他の実行可能コードを実行して、ユーザに対するページ、またはその他の表示を生成することができる。このため、この実施形態の諸態様は、例えば、FindNearbyPageページを提供すること、または表示することに関連して説明するが、システムは、実際には、FindNearbyPageと名付けられたスクリプトを実行して、ユーザのモバイルデバイス上で表示されるために伝送されるページまたは表示を生成することができる。このため、簡潔にするため、ただし明瞭さを犠牲にせずに、以下の説明は、単にユーザにページを表示すること、または提供することについて述べる。
次に、ユーザは、レストラン、酒場/居酒屋、またはさらなる場所の間のオプションを提供するページ、「NearbyPlaceMenuPage」1308を受け取る。ユーザが「さらなる」を選択した場合、NearbySearchController1304は、CategoryListBuilding1306からユーザに表示するさらなるカテゴリを要求する。この例では、ユーザは、「レストラン」を選択し、これに応答して、サブルーチン、PlaceSearchRadiusController1310が、探索半径ページをユーザに表示し、このページは、1マイル、5マイル、15マイル、またはその他の探索半径オプションを提供する(「PlaceSearchRadiusOptionPage」1312として示される)。探索半径を選択した後、サブルーチン、PlaceSearchResultController1314が起動し、半径内のユーザ選択に基づいて情報を位置特定エンジン128から取得し、位置情報を表示する。ユーザが、ページ1312から「その他」を選択している場合、ユーザは、ページ、「PlaceSearchRadiusInputPage」1316を受信する。選択された半径内で何も見つからなかった場合、ユーザは、ユーザが、ルーチン、FindNearbyController1300に戻ること、またはページ1310から別の半径を選択することを可能にするページ、「NoLocationsFoundPage」1318を受信する。
サブルーチン、PlaceListBuilder1320が、セッションを維持しながら、選択されたカテゴリから、選択された半径内で場所を見つける。サブルーチン、FriendLocator1322が、GMLC126、および位置特定エージェント128を呼び出し、エージェント128は、例えば、ユーザのモバイルデバイスの位置に関する位置データを提供する。選択されたカテゴリの中の、選択された半径内の場所が、NearbyPlaceInfoPage1324を介してユーザに提供され、NearbyPlaceInfoPage1324は、この例では、0.5マイル離れたマクドナルド、および1マイル離れたバーガーキングを示している。ユーザは、選択された場所に関するさらなる詳細を受け取ることができ、そのような詳細が、NearbyPlaceDetailsPage1326で提供される。ページ1326から、ユーザは、サブルーチン、NearbyPlaceDescriptionController1328を介して、表示された場所を呼び出すこと、または表示された場所への道案内を受信することができる。ページ1328に続き、サブルーチン、DirectionsController1330が、送信元情報および宛先情報を受け取り、ユーザに提供する道案内を取得する。
図14は、図13と同様であるが、ユーザがページ1302から「友人」を選択する場合に関するルーチンおよび機能を示す。図15は、本明細書で説明するとおり、位置情報を友人に提供することに関する許可をユーザが調整できるようにするためのルーチンおよび機能を示す。図16は、友人との会合を調整すること、詳細には、会合の通知または確認を個人に提供するRSVP機能を提供することに関するルーチンおよび機能を示す。
(代表的なユーザインタフェース)
次に、情報をユーザに表示するための代表的なユーザインタフェース、および関連する論理の分岐および機能を、図17ないし34に関連して説明する。これらの図は、ユーザに表示される情報の例(「表示ページ」)、およびユーザによって選択されるオプションの例を示す。その他の例も可能であることが当業者には容易に理解されよう。同様に、図17ないし34は、当業者には全般的に自明である(本明細書で提供する詳細な説明に基づいて)。いくつかの初期ユーザ表示および初期機能の態様を詳細に説明するが、その後の表示および機能は、それほど詳細にではなく説明することができる。後に説明する表示および機能は、前に説明される表示および機能と同一の詳細の多くを有することが当業者には理解されよう。以下の説明は、ユーザに情報を提供することを説明するが、ポータル108は、実際には、ゲートウェイ104を介して、無線デバイス102上で表示するための表示ページ、またはその他の通信をユーザに提供する。
表示ページは、WAP、XML(拡張マークアップ言語)、HTML(ハイパーテキストマークアップ言語)、ハンドヘルドデバイスマークアップ言語(HDML)、ワイヤレスマークアップ言語(WML)、または情報をユーザに提供するその他の言語またはスクリプトで実装することができる。表示ページは、記入されるべきフィールド、メニューから選択されるべき1つまたは複数の番号付き項目、選択されるべきハイパーテキストリンク、いくつかのオプションの1つまたは複数が選択されることを可能にする表示、あるいはユーザ入力を受け取るための他の周知のユーザインタフェースツールなどの、ユーザ入力データを受け取る機構を提供する。ページでユーザに情報を表示する1つまたは複数のやり方を示しているが、もちろん、他の様々な代替形態も使用できることが当業者には理解されよう。「スクリーン」、「表示ページ」、および「ページ」という用語は、本明細書では全般的に互いに区別せずに使用する。
表示ページは、表示記述、グラフィカルユーザインタフェース、またはコンピュータスクリーン上の情報を記述する他の方法(例えば、コマンド、リンク、フォント、カラー、レイアウト、サイズと相対位置など)として格納され、ページ上で表示されるレイアウト、および情報、つまりコンテンツは、データベース124(または他の場所)の中に格納される。一般に、「リンク」とは、ネットワーク上にサイトまたはノードを有する組織によって提供される表示記述などの、ネットワーク上のリソースを特定する任意のリソースロケータを指す。本明細書で一般的に使用する「表示記述」とは、前述した形式のいずれか、ならびに電子メール形式または文字/コードベースの形式、アルゴリズムベースの形式(例えば、ベクトル生成された(vector generated))、あるいはマトリックス形式またはビットマップ形式などの他の形式で、表示スクリーン上に情報を自動的に表示する任意の方法を指す。
図17を参照すると、ポータル108が、ブロック1702の下でユーザにメインメニューを提供する。図示するとおり、メインメニューは、7つのオプション、すなわち、1)友人の位置を特定する、2)位置特定オン/オフ、3)友人に会う、4)最も近い...を見つける、5)友人を追加/編集する、6)プロファイルを編集する、7)ヘルプをユーザに提供する。メインメニューは、ユーザに提供されるオプションおよび諸機能に関する出発点、および初期の分岐を提供する。以上のオプションのそれぞれを以下に詳細に説明する。
前述したとおり、システム100は、ユーザおよび友人が、所望される場合はいつでも、特権およびプロファイルを変更することができるようにする。このため、ユーザまたは友人は、システムにユーザまたは友人の位置を特定させる能力をオフにする(「不可視になる」)ことができる。同様に、ユーザは、リストから友人を永久に、または一時的に除去するようにユーザの友人リストを変更することができる。ユーザおよび友人は、そのようなユーザ/友人に関する情報を提供する公開プロファイルを作成すること、編集すること、および閲覧することができる。ユーザがリアルタイムで特権を変更する能力のさらなる説明を、以下に述べる。
図18を参照すると、ユーザが「友人の位置を特定する」を選択した場合(モバイル電話器上の「1」のボタンを押し下げることなどにより)、ポータル108が、ブロック1802で、ユーザに友人リストを提供する。ユーザがある友人を選択した場合、システム100は、その友人の位置を特定しようと試み、その友人を見つけることができない場合、位置特定エラーメッセージを提供し、本明細書で説明するとおり、位置特定警報SMSメッセージをユーザに送信することができる。ブロック1804およびブロック1806で示すとおり、友人が見つかった場合、例えば、システム100がどれだけ正確に友人の位置を特定することができるかに依存して、2つの結果のうち1つがユーザに提供される。
ユーザが、ブロック1802の下で初期友人リストの中に示された友人より多くの友人を閲覧することを所望する場合、ユーザは、ブロック1808で示すとおり、さらなる友人を表示するようにポータル108に求めることができる。ブロック1808の下で、追加の友人が、友人を追加するオプション(以下に説明する)、またはすべての友人を見つける能力と一緒にユーザに表示される。この例では、ユーザは、友人を「すべて見つける」オプションを選択しており、ユーザが20名を超える友人を有する場合、システム100は、ブロック1810の下で、システム100が20名を超える友人を一度に探し出すことができないことを示すエラーメッセージを提供する。すると、ユーザは、ブロック1810の下で、追加の友人、またはそれらの20名の友人のサブセットを要求することができる。ユーザが、20名の友人、またはそのサブセットに対して処理を行うことを選択した場合、ブロック1810とブロック1812はともに、ユーザが、1名または複数名の友人を呼び出すこと、SMSメッセージを1名または複数名の友人に送信すること、または1名または複数名の友人に会うことを可能にするオプションメニュー1816に分岐して進む。同様に、ブロック1804またはブロック1806で友人を選択した後、またはブロック1814の下ですべての友人を見つけた後、ルーチンは、オプションメニュー1816に分岐して進む。
図17ないし34に示した多くの表示スクリーンは、オプション、「OK」および「メニュー」を含む。「OK」オプションを選択することにより、スクリーン上に表示された所与のオプションまたはコマンドが選択される。「メニュー」オプションを選択することにより、ユーザは、メインメニューに戻される。さらに、図17〜34に示す多くの表示スクリーン、および本明細書で説明するその他の機能により、一部のパラメータの特定の適切な値が提供される。システムは、他の値も使用できることが当業者には容易に理解されよう。例えば、システム100は、20名を超える友人を一度に探し出すことはできないものとして上記に示したが、代替のシステムは、一度に10名の友人だけしか探し出すことができないことも、30名を超える友人を同時に探し出すことができることも可能である。このため、本明細書で提供するそのような特定の数は、単に例に過ぎず、他の多くの値を使用することができる。
図19を参照すると、ユーザが、ブロック1816の下で、選択された友人を呼び出すことを選択した場合、1902のブロックで、システム100は、その友人を呼び出し、ブロック1902で示される表示がユーザに提供される。代替として、ユーザがSMSメッセージを送信することを選択した場合、ユーザには、テキストを入力する入力スクリーンが示され(ブロック1904)、「OK」をクリックした後、メッセージが送信されたことを示す表示が示される(ブロック1906)。ブロック1902またはブロック1906の後、ルーチンは、メインメニューを表示することに分岐して戻る。
図20を参照すると、ユーザが、システム100に対してユーザの位置特定をオンまたはオフにすることを所望する場合(「不可視/可視になる」という言い方もする)、ポータル108が、ブロック2002の下で、ユーザの現在の位置ステータスを示すスクリーンを表示する。すると、ユーザは、スクリーン2004の下でこのステータスを編集することができる。このため、不可視性機能は、ユーザの位置を特定する能力をユーザが、最小限の数のキーストロークだけで容易にオフにすることができるようにする最上レベルメニュー項目として提供される。不可視性は、「午後10時より後、私は可視であることを望まない」または「私の家族だけが私を見つけることを許す」のように、時間、グループなどに基づくことが可能である。ポータル108は、結果を保存し、ルーチンは、分岐してメインメニューに戻る。代替として、本発明の一部の実施形態は、ユーザが決して不可視になることができず、位置特定許可が取り消されることが不可能な友人のリストを保持する。そのようなリストは、自分の子供の位置を特定できることを所望する親、配送員の位置を特定することを所望する雇用者、またはユーザのアカウントのスポンサーとなっていることが可能なその他の個人に役立つ。
図21を参照すると、ユーザがメインメニューから友人に会うことを選択した場合、ブロック2102またはブロック2104の下で、ユーザは、友人を選択することができ、ブロック2106で、その友人の位置を閲覧することができる。ブロック2108で、ユーザは、1)友人の近くで会う、2)ユーザの近くで会う、または3)ユーザと友人の中間地点で会うというオプションを提供する会合区域表示ページを受信する。
図22を参照すると、ユーザが、ユーザ自身の近くで会うこと、またはユーザの友人の近くで会うことを選択した場合、システムは、ユーザの位置を取得する。ユーザまたは友人の近くで会うことを選択した後、ユーザは、ブロック2202の下で、会合場所またはPOIカテゴリリストを受信する。図示するとおり、リストは、レストラン、喫茶店、酒場/居酒屋、書店などのオプションを含むことが可能である。関心対象地点のその他の例には、薬局、病院、消防署/警察署の場所、およびその他の緊急タイプの場所が含まれる。(一般に、関心対象地点は、任意の物理的場所または地理的場所であることが可能である。)システムは、本明細書で説明するとおり、最も一般的な種類の会合場所のリストを提供する。会合場所は、位置または位置コンテキストに関連する。位置コンテキストは、正確な通りの位置である必要はなく、都市、州、近隣、サイト(例えば、セルサイト)などの一般的な区域である。ポータルデータベース124、位置特定エンジン128、またはその両方が、それらの関心対象地点に関するそのような情報を格納する。
ユーザが、ユーザの友人からあまりにも遠くに離れている場合、ユーザは、ブロック2204の下で、離れ過ぎ表示を受信する。ユーザは、地理的中間地点で会うことを所望する場合、次の3つの可能な表示の1つを受信する。複数の都市または近隣が中間地点に位置している(ブロック2206)、友人は、同一のセルサイト内にいるか、または別の形でユーザの近くにいる(ブロック2208)、または友人は、ユーザと同一の都市または同一の近隣にいる。複数の都市/近隣が利用可能である場合、ユーザは、ブロック2210で示されるとおり、都市/近隣選択スクリーンを受信する。
図23を参照すると、ブロック2202の下で、ユーザが会合場所のカテゴリを選択した後、ユーザは、ブロック2302の下で探索半径スクリーンを受信して、1マイル、5マイル、15マイル、またはその他のマイルの半径を選択する。ユーザが半径を選択し、その半径内でPOIが全く見つからない場合、ユーザは、探索拡張スクリーン2304を受け取り、ユーザは、半径を拡張することができる(その後、ブロック2302に戻される)。ユーザは、所望の半径を入力することを選択した場合、半径入力スクリーンにおいて所望の半径を入力することができる(ブロック2306)。ブロック2308の下で、ユーザは、選択された会合場所カテゴリ(この例では、レストラン)に関連するPOIのリストを受信する。レストランを選択した後、ユーザは、ブロック2310で、レストランの所在地、ユーザからの距離、電話番号などの選択されたレストランに関する詳細、ならびにレストランを呼び出す、またはレストランへの道案内を受信するオプションを受け取る。ユーザは、レストランを呼び出すことを選択した場合、呼び出し表示を受信する(ブロック2312)。
図24を参照すると、ユーザは、レストランへの道案内を要求した場合、道案内取得スクリーンを受信し、このスクリーンで、ユーザは、出発位置、つまり「from」位置(「to」位置、すなわち、レストランは既に提供されている)を入力しなければならない。道案内を取得するため、ユーザは、「from」位置を入力しなければならず、このため、from位置スクリーンを受信し(ブロック2404)、このスクリーンからユーザは、from位置、すなわち、ユーザの位置、友人の位置、または別のアドレスを選択することができる。ユーザがユーザの位置、または友人の位置を選択し、システム100が、ユーザのおおよその位置しか特定することができない場合、システム100は、システムが、最も近いセルサイトを現在の出発位置として提供し、その最も近いセルサイトをブロック2402の道案内スクリーンで表示するために戻すことを示す適切な警告スクリーンを提供することができる(ブロック2406および2408)。ユーザは、アドレスを入力することを所望する場合(例えば、より高い地理的限定性を提供するため)、アドレス入力スクリーンを受信する(ブロック2410)。アドレスが見つからない場合、ユーザは、アドレスが見つかりません(address not found)スクリーンを受信し(ブロック2412)、その後、ブロック2410のアドレス入力スクリーンを再び受信する。ポータル108は、ユーザがアドレスを入力する際、都市フィールド、州フィールド、およびその他のフィールドに自動的にデータを入れる(populate)。例えば、ユーザが都市をタイプ入力し始めると、ポータルが、例えば、ユーザによって入力された最初の2文字を有する、ユーザから適切な半径内にある第1の都市の完全な名前を自動的に記入し始める。位置特定エンジンがそのような都市のリストを提供してもよい。
図25を参照すると、from道案内を受信した後、ユーザは、いくつかの道案内スクリーンをユーザに提供するスクリーン2502ないし2504を受信する。ブロック2506の下で、ユーザは、道案内に関連して次の3つのオプションを実行することができる。すなわち、道案内の前のスクリーン、または前のステップに戻る、道案内の所望のスクリーン、または所望のステップにジャンプする、または道案内を電子メールで送るである。ポータル108は、走行道案内の各ステップで小型の地図を提供することができ、この地図は、ユーザ(または友人)の現在の通りの位置、および他の任意の近い通り、または重要な通りを含むことが可能である。すべての図では示していないが、ユーザは、無効な指示番号を入力したか、または別の形で無効なエントリを選択した場合、ブロック2508に示したスクリーンのようなエラースクリーンを受信する。ユーザは、道案内を電子メールで送ることを所望する場合、電子メール入力表示を受信して、電子メールアドレスを入力する(ブロック2510)。代替として、ポータル108は、以下に説明するユーザ公開プロファイル3500または友人データレコード3900、またはその他の適切なレコードなどの、データベース124内の情報を参照することにより、電子メールアドレスを自動的に供給することも可能である。その後、ルーチンは、メインメニューに戻る。
図17を再び参照すると、ユーザは、最も近くにいる友人、または最も近い場所を見つけることをメインメニューから選択した場合、近くの場所を見つける(find nearby places)スクリーンをブロック1704で受信する。その後、ルーチンは、前述したのと実質的に同様の仕方で、ブロック1706およびブロック1708で、会合場所のカテゴリ、または友人リストをリストアップする。システムは、もちろん、自動車サービス(例えば、給油所、牽引サービス、自動車修理の場所、自動車販売代理店など)、金融機関(例えば、銀行、現金自動預入支払機[ATM]、小切手換金の場所など)、官設の場所(例えば、ライブラリ、郵便局、車両/免許証登録の場所、警察署、消防署など)、移動サービス(例えば、タクシーサービス、ホテル/モーテル、鉄道の駅など)、および一般的な消費者サービス(例えば、コインランドリー、ドライクリーニング店、食料雑貨店、コンビニエンスストア、新聞雑誌販売所、ヘルスクラブ、ショッピングモール、コピー/印刷店など)などの、ユーザのニーズを満たす任意の種類の場所を見つけることができる。
図26および図27を参照すると、場所を探し出すことを選択した後、ユーザは、友人に会うことに関して前述したのと同様の形で、探索半径、POIのリスト、場所の詳細を入力するためのスクリーンを受信し、スクリーン2602、2604、2606、2608、2702、2704、2706、および2708の下でオプションおよび道案内を受信する。ユーザは、友人の位置を特定することを選択した場合、図26の探索半径スクリーンを受信する。その後、図27で、ユーザは、ブロック2710の下で、選択された探索半径内にいる友人のリストを受信する。ユーザが、最初のリストの中で示された友人より多くの友人を閲覧することを所望する場合、ブロック2712の下で、1つまたは複数の追加の友人スクリーンが表示される。その後、システムは、ユーザが、友人の呼び出しを行う、友人との会合をスケジュールする、SMSメッセージを友人に送信するなどのいくつかの機能、または本明細書で説明する他の任意の機能を実行することができるようにする。さらに、ユーザは、ユーザ、友人、ユーザと友人の間の中間地点を中心とする、あるいは別のPOIを中心とするある半径内でPOIを探索することができる(例えば、ユーザは、特定の交差点から1マイルの範囲内のレストランを探索することができる)。
図28を参照すると、ユーザは、メインメニューの下で友人を追加すること、または編集することを選択した場合、ブロック2802の下で友人追加オプション表示を受信する。図示するとおり、ユーザは、友人を受け入れること、友人を除去すること、許可を取り消すこと、または常時拒否リストを編集することができる。ユーザが友人を追加することを所望する場合、図29を参照すると、ユーザは、ブロック2902の下で友人追加メニューを受信する。図示するとおり、友人追加メニューにより、ユーザは、友人のモバイル番号を入力する、友人のユーザ名を入力する、または指定された探索条件に基づいて友人に関する公開プロファイルレコードのデータベースを探索することができるようになる。友人リスト、保留中の友人要求のリスト、および常時拒否リストは、ネットワーク内に格納する文脈で主に説明したが、本発明の一部の実施形態では、以上のリスト、およびその他のリストは、モバイルデバイス102の中に格納し、デバイス102を使用して変更することもできる。例えば、モバイルデバイス102は、本明細書で説明するリストまたはレコードを内蔵メモリの中にローカルで格納すること、または加入者IDモジュール(SIM)カード、スマートカード、またはその他のリムーバブルなメモリの中に格納することができる。
ユーザが、友人のモバイル番号を入力することを選択した場合、ユーザは、モバイル番号入力スクリーンを受信し(ブロック2904)、そのモバイル番号が見つからなかった場合、ユーザは、見つからなかった(not found)スクリーンを受信する(ブロック2906)。ユーザがユーザ名を入力することを所望する場合、ユーザは、ユーザ名入力スクリーンを受信し(ブロック2908)、そのユーザ名が見つからなかった場合、ユーザ名が見つからなかった(username not found)エラースクリーンを受信する(ブロック2910)。ユーザが友人を探索することを所望する場合、ユーザは、ブロック2912の下で探索条件スクリーンを受信する。図示するとおり、探索条件スクリーンは、ユーザが、名、姓、都市、州、年齢、電子メールアドレス、関心、または以上の探索条件または探索フィールドの任意の組合せなどの、公開プロファイルレコードの中の様々なフィールドを探索することができるようにする。探索基準を入力した後、ユーザは、探索結果スクリーンを受信するか(ブロック2914)、またはエラースクリーンを受信する(ブロック2916)。
もちろん、以上のフィールドは、単に例に過ぎず、その他のフィールドまたは探索条件がユーザに提供されることも可能である。ユーザは、システム100に最初に加入する際、個人情報だけでなく、他の人々が見る、または探索することをユーザが許す公開プロファイル情報も含むフォーム(Webページフォーム、またはその他の電子ドキュメントなどの)を完成させることを要求される可能性がある。もちろん、ユーザは、そのフォームの中のユーザのフィールドの一部またはすべてに対するアクセス特権を提供することができ、ユーザは、いつでも、そのようなプロファイルを編集する、またはそのようなアクセス特権を変更することができる。
図35に飛ぶと、ユーザの公開プロファイルの例が、レコード3500として示されている。ユーザの公開プロファイルレコードは、名フィールド3502および姓フィールド3504、ならびに都市フィールド3506、州フィールド3508、電子メールアドレスフィールド3510、および郵便番号フィールド3512を含む。ユーザの公開プロファイルは、友人がユーザのイメージを閲覧することができるようにするイメージファイル3514、またはイメージファイルへのリンクも含むことが可能である。イメージは、デジタル写真、マンガ、アニメーションなどの任意のデジタルイメージであることが可能である。レコードは、年齢フィールド3516、ならびに1つまたは複数の関心フィールドまたは趣味フィールド3518ないし3522を含むことが可能である。もちろん、他の多くのフィールドも提供されることが可能である。他のフィールドには、インスタントメッセージング(IM)ハンドルまたはユーザ名、または本明細書で説明する他のユーザ通信IDが含まれることが可能である。前述したとおり、ユーザは、それらのフィールドに対するデータを電子的に入力するためのWebページを取り出す、またはダウンロードすることができ、そのようなレコードを作成することができ、次に、そのレコードがポータルアプリケーションサーバ群108に戻される。
図30を参照すると、追加されるべき友人を特定した後、ユーザは、友人のモバイル番号またはユーザ名をリストアップしたスクリーンを取り出し(ブロック3002)、友人がユーザの友人リストに追加されることを所望するかどうかを尋ねる要求を友人に送信するか、または事前にその友人の公開プロファイルを閲覧するという2つのオプションを提供する。ユーザが単に友人を追加することを所望する場合、ユーザは、ユーザが友人の位置に対するアクセスを得ることを要求するSMSメッセージ(または他のメッセージ)が友人に送信されたことを示す情報メッセージをブロック3004の下で受信する。
代替として、またはさらに、システムは、友人のモバイルデバイス上に表示されるスクリーンに関する何らかの指示をユーザに提供する。例えば、次回に友人が、本明細書で説明する位置ベースのサービスにアクセスした際、友人は、メインメニューにおける「友人追加/編集」オプションの隣にアスタリスクを見る。そのような視覚的指示は、アクセスを求める保留中の要求が存在することをユーザに伝える。(友人がアクセスを拒否した場合、ユーザは、拒否メッセージを受信する。)
友人が要求を受け入れると、友人は、ユーザの友人リストに追加され、ユーザは、以降、その友人の位置を特定することができる(友人が、「不可視になる」、またはその友人の位置へのユーザアクセスを拒否することをしていない限り)。ユーザが、友人のプロファイルをまず閲覧することを所望する場合、ユーザは、上記にリストアップしたフィールド(例えば、名、姓、都市、州、年齢など)を含む公開プロファイルスクリーンを受信する(ブロック3006)。
図28を再び参照すると、ユーザが友人の友人リストに追加されることを要求した友人をユーザが承認することを所望する場合、ブロック2804で、ユーザは、ユーザが友人のリストに追加されるいくつかの保留中の要求を示すステータススクリーンを受信し、それらの友人がユーザの位置へのアクセスを得ることができるようにする。ブロック2806で、ユーザは、保留中の要求を有する友人のリストを受信し、このリストからユーザは、友人(および関連する要求)を選択することができる。
図31を参照すると、保留中の要求のリストから友人を選択した後、ユーザは、ブロック3102でオプションメニューを受信し、このメニューでユーザは、その要求を受け入れること、その要求を拒否すること、その友人からの要求を常に拒否すること、または要求を行っている友人に関するプロファイルを閲覧することができる。ユーザが、その要求を受け入れることを所望する場合、ユーザは、ユーザの位置およびモバイル番号に友人がアクセスするのを許すことをユーザが所望することを確認するよう、ユーザに要求する確認スクリーンを受信する(ブロック3104)。所望しない場合、ユーザは、オプションメニューを受信するが(ブロック3102)、所望する場合、ユーザは、友人の位置に対するユーザアクセスを友人が許可するようにシステム100が要求することをユーザが所望するかどうかもユーザに尋ねるアクセス許可スクリーン(ブロック3106)を受信する。つまり、システムは、ユーザと友人の間で互恵的に位置を自動的に提供することはせず、代わりに、一方から許可をまず要求し、次に、他方から許可を要求する。そうである場合、システムは、適切なSMSメッセージを送信し、ブロック3108で、要求送信確認スクリーンがユーザに提供される。
ユーザが、要求を行っている友人に位置情報を拒否することを所望する場合、ユーザは、選択された友人がユーザの位置へのアクセスを有さないことを示す拒否確認スクリーン(ブロック3110)を受信する。ユーザの位置へのアクセスを選択された友人が得ることを常に拒否することをユーザが所望する場合、またはユーザが友人の公開プロファイルを閲覧することを所望する場合、ユーザは、ブロック3112および3114に関連してそれぞれ示したスクリーンを受信する。友人を常に拒否した後、ユーザは、保留中の要求のリストスクリーンを再び、ただし、選択された友人が載せられずに再び受信する(ブロック2806)。選択された友人プロファイルを閲覧した後、または選択された友人を常に拒否することに合意しなかった後、ルーチンは、ループして戻り、ユーザが、ブロック3102でスクリーンを再び受信する。
図32を参照すると、ユーザが、ブロック2802の下で友人を除去することを選択した場合、ユーザは次にブロック3202で、ユーザの位置を特定する許可をユーザが取り消すことができる友人をリストアップした許可取り消しスクリーンを受信する。ブロック3204で、ユーザは、ユーザの位置へのアクセスが選択された友人に与えられるべきでないことを確認するよう、ユーザに要求する確認スクリーンを受信する。ユーザが同意した場合、ブロック3206で、ユーザは、選択された友人がもはや、ユーザの位置へのアクセスを得ることができないことを確認し、ユーザの友人リストからその友人が除去されることをユーザが所望するかどうかを尋ねるスクリーンを受信する。
ユーザが、ユーザの友人リストから友人が除去されることを所望する場合(ブロック2802またはブロック3206の後)、ユーザは、ブロック3208の下で、除去されることが可能な友人のリストを受信する。ブロック3210の下で、ユーザは、ユーザの友人リストからの選択された友人の除去を確認するよう、ユーザに要求する確認スクリーンを受信する。ユーザが同意した場合、ブロック3212で、ユーザは、選択された友人がユーザの友人リストから除去されたことを確認し、その友人がユーザの位置にアクセスする許可を取り消すことをユーザが所望するかどうかを尋ねるスクリーンを受信する。所望する場合、ルーチンは、ブロック3202ないし3206の下でオプションを表示することにループして戻り、所望しない場合、ルーチンは、メインメニューにループして戻る。
ユーザが、ユーザの常時拒否リストを編集することを所望する場合、ユーザは、ブロック3214の下で、常時拒否リスト上の友人のリストを受信する。ブロック3216の下で、ユーザは、常時拒否リスト上の選択された友人に、ユーザの位置へのアクセスが与えられるべきことを確認するよう、ユーザに要求する確認スクリーンを受信する。ブロック3218で、ユーザは、ユーザの常時拒否リストが正常に編集されたことを示し、選択された友人が現時点で、ユーザの位置へのアクセスを得ることができるという通知が選択された友人に与えられることをユーザが所望するかどうかを要求するスクリーンを受信する。所望する場合、システム100は、SMSメッセージを選択された友人に送信し、ユーザは、ブロック3220の下で、通知送信確認スクリーンを受信する。そのようなSMSメッセージの例は、「[ユーザ]が、貴方を常時拒否リストから除去しました。[ユーザの]位置へのアクセスを要求することを所望される場合、友人追加メニューに進んでください。」と述べることが可能である。
友人が、アクセス情報または位置情報をユーザにもはや許可しない場合、その友人のユーザ名は、ユーザの友人リストから消える。友人は、そのような変更についてユーザに通知するメッセージを送信することを、選択することも、選択しないことも可能である。アクセスを再び取得するのに、ユーザは、前述した友人追加/編集機能を実行して、友人に別の要求を行う必要がある。
図33を参照すると、ユーザが、ユーザの公開プロファイルを編集することをメインメニューから選択した場合、ユーザは、いずれもユーザが編集すべきユーザの公開プロファイルフィールドをリストアップした公開プロファイルスクリーン3302を受信する。ユーザの公開プロファイルは、上記に説明した。ユーザは、フィールドのいずれが公開されるべきかを示すフラグを設定することができ、いずれの場所で、またはいずれの位置特定アプリケーションで、それらのフィールドが提供されるべきかを特定することができる。例えば、一部の位置特定機能が、一部の公開プロファイルフィールドを表示することが可能であり、これらのフィールドは、そのアプリケーションに提供されるものとしてユーザが指定している。ユーザが、ヘルプ機能を閲覧することをメインメニューから選択した場合、ブロック3304で、ユーザは、チュートリアルを閲覧する、よく寄せられる質問(FAQ)を閲覧する、および「about」情報を閲覧するという3つのオプションを受け取る。以上3つのオプションに応答して、ユーザは、1つまたは複数のチュートリアルスクリーン(ブロック3306)、FAQスクリーン(ブロック3308)、またはaboutスクリーン(ブロック3310)を受信する。
図34を参照すると、一部のエラー、およびその他の警報の例が、前述したエラーメッセージおよび警報に加えて示されている。一般に、図17ないし34のそれぞれでは示していないが、ユーザは、一部のユーザ入力またはシステム応答に応答して、1つまたは複数のエラースクリーンを受信することができる。例えば、ユーザが、友人の位置にユーザがアクセスすることをもはや許可していない友人の位置を特定しようと試みた場合、ユーザは、許可取り消し済みエラーメッセージを受信する(ブロック3402)。友人が、システム100の下でもはや加入者ではない場合、ユーザは、ドロップ済みサービスエラーメッセージを受信する(ブロック3404)。
ブロック3402、ブロック3404、またはその他のエラーメッセージに続き、ユーザに1つまたは複数のオプションが提示されることが可能である。例えば、ユーザが、ブロック1802の下で、ある友人(またはブロック1808の下で、グループの友人)の位置を特定しようと試みて、エラーメッセージ(例えば、現在、その友人を見つけることができない)を受信した場合、ユーザには、友人の1名または複数名と通信するオプションが提示されることが可能である。ユーザが位置を特定しようと試みた個別の友人のケースでは、システムは、ユーザが、その友人を呼び出す、またはその友人にSMSメッセージを送信することができるようにすることが可能である。代替として、複数の友人のケースでは、ユーザは、呼び出す個別の友人を選択する、またはすべての友人にSMSメッセージを送信することができる。ユーザは、正常な位置特定が行われた場合と同一の、友人と通信するオプションを有することが可能である。
ユーザが、所与の位置に関連する地図情報を取得しようと試みているが、そのような情報が用意されていない場合、ユーザは、地図データなしエラーメッセージを受信する(ブロック3406)。システムが位置情報を取得することができない場合、ユーザは、サービスエリア外(out of coverage)エラーメッセージを受信する(ブロック3408)。友人が、現在、位置特定されることを望まない(「不可視になる」ことをしている)場合、ユーザは、位置特定がオフに設定されている(locate set to off)エラーメッセージを受信する(ブロック3410)。ブロック3402ないし3410に続いて、ルーチンは、ブロック3412の下で、オプションの前のメニューをユーザに表示することにループして戻る。
(代表的なデータ構造)
図36〜40を参照して、次に、前述の機能を提供する際に役立つ、ポータルデータベース124の中に格納されたテーブル、レコード、またはその他のデータ構造の例を説明する。(前述した図35の公開プロファイルも、ポータルデータベース124の中に格納される。)図36を参照すると、テーブル3600が、友人の位置を受信する許可をユーザに与えた友人のリスト(「友人リスト」)を示している。図示するとおり、この友人リストは、友人1ないし5にそれぞれ関連するユーザ名を有する5つの友人フィールド3602ないし3610を含む。図示するとおり、友人1および友人3だけに位置特定フラグが関連付けられており、このことは、それら2名の友人に関する位置情報だけをユーザが受信することができることを示す。その他の友人らは、自身の位置情報を受信する許可をユーザにまだ与えていない。
各友人は、友人のユーザ名に基づいてレコードの中で特定されるが、各友人は、別のデータ要素に関連付けることもできる。代替のデータ要素または識別子には、友人のモバイル番号、電子メールアドレス、インスタントメッセージングハンドル、ユーザ名エイリアス、あるいはユーザ、またはユーザに関連するコンピューティング機器または遠隔通信機器を特定する他の任意の種類のユーザ通信IDが含まれる。つまり、レコード3600(およびその他のレコード)は、友人のユーザ名をキーとしている(keyed to)が、ユーザのモバイル番号、電子メールアドレス、エイリアス、または友人データレコード(以下に説明する)の中で提供される他の情報など、他のデータを使用してもよい。
図37を参照すると、ユーザがユーザの位置を受信する許可を与えた友人のテーブル(ときとして、上記で友人の友人リストと呼ぶ)として、レコード3700が示されている。この場合も、5名の友人、友人1ないし5、および関連するユーザ名に関して、5つの友人フィールド3702ないし3710が提供される。図示するとおり、友人2および友人4に位置特定フラグが関連付けられている。このため、友人2および友人4は、ユーザの位置に関する情報をシステムから受信することができる。
図38を参照すると、ユーザがユーザの位置を常に拒否することを所望する友人のテーブル(しばしば、上記で「常時拒否」リストと呼ぶ)としてレコード3800が示されている。この場合も、友人1ないし5が、それぞれ、フィールド3802ないし3810の中のユーザ名に関連付けられていることが示されている。図示するとおり、友人5に位置特定フラグが関連付けられており、友人5がユーザの位置を特定するのをユーザが常に禁止することを所望していることが示されている。
前述したとおり、ユーザは、システムを介してメッセージを友人に送信して、友人の位置データをユーザに提供するようにそれらの友人に求め、ユーザが、レコード3600に友人を追加することができるようになる。友人が承諾した場合、システムは、適切な位置特定フラグを(場合により、適切なユーザ名とともに)レコード3600に追加する。同様に、ユーザは、レコード3700およびレコード3800を容易に変更して、位置特定フラグを変更し、ユーザの位置を受信する許可を友人に与える、あるいは、これらのレコードの下でユーザの位置特定を常に拒否することができる。このため、ポータルデータベース124は、以上のレコードを保持して、最新の許可または特権が提供されることを確実にする。
3つのレコードを示し、説明しているが、システムは、代わりに、単一のレコードを使用して、または他のデータ構造構成を使用して、前述の情報を追跡することもできる。同様に、レコード3600ないし3800の下でリストアップされた各友人に関して、友人のモバイル番号、電子メールアドレス、インスタントメッセージングハンドルなど、各友人に関する追加の情報を提供することもできる。代替として、図39を参照すると、ユーザの友人の1名に関連する友人データに関してレコード3900が示されている。レコード3600ないし3800のそれぞれは、特定の友人データレコード3900にリンクして、またはレコード3900をキーとして、各友人に関する追加の情報へのアクセスをユーザに提供することができる。代替として、そのような追加の情報は、友人の公開プロファイル(図35)によって提供されることも可能である。
図39に示すとおり、友人データレコード3900は、ユーザの英数字のユーザ名を含むユーザ名フィールド3902を含む。モバイル番号フィールド3904が、友人のモバイル電話番号、または他の関連する番号の数値を含む。モバイル番号が、この場合、友人またはユーザを特定することのキーとして使用されるが、モバイル識別番号(MIN)、一時モバイル加入者識別子(TMSI)、国際モバイル機器識別子(IMEI)、国際モバイル局識別子(IMSI)、その他など、他の様々な数値識別子を使用することもできる。このため、以上の値の1つまたは複数は、友人データレコード3900、および本明細書で説明する他の関連するレコードの中にも含まれることが可能である。
電子メールアドレスフィールド3906は、友人の電子メールアドレスを含み、インスタントメッセージングハンドルフィールド3908は、友人のIMユーザ名を含む。ユーザ名エイリアスフィールド3910は、ここで提供されるその他のフィールドを越えて、ユーザからのより完全な記述または識別子として友人が提供した英数字の名前であることが可能である。友人データレコード3900は、ユーザイメージフィールドやユーザイメージファイル3912などの他のフィールドも含むことが可能である。友人に関連するファックス番号、ポケットベル番号、URL、友人に関連する機器のネットワークアドレスなどの、他のユーザ通信識別子が提供されることも可能である。
図40を参照すると、ユーザ位置データに影響を与えるオプションのテーブル(「不可視性リスト」)としてレコード4000が示されている。前述したとおり、ユーザは、ユーザに関連する位置データをシステムが提供することを禁止するだけでなく、よりカスタマイズされた不可視性オプションを提供することもできる。例えば、ユーザは、一部の個人に関連して不可視性オプションを確立することができる。図40に示すとおり、この例におけるユーザは、フィールド4002〜4006の下で、ユーザが、カスタマイズされた不可視性オプションを提供することを所望する3名の友人をあらかじめ確立し、特定している。友人1に関連する位置特定フラグは、常にオンに設定されており、したがって、友人1は、ユーザが位置特定機能をオフにした(「不可視になる」)場合でも、ユーザの位置を常に特定することができる。例えば、友人1は、ユーザの配偶者であることが可能であり、ユーザは、ユーザの配偶者がユーザの位置を特定することを常に所望する。この例では、「オン設定(Set On)」フラグをユーザが容易に変更することはできない。
前述したとおり、ユーザは、システムがユーザの位置データをいずれの友人にも提供しないように「不可視」になることができる。代替として、またはさらに、ユーザは、一部の友人に対して選択的に可視または不可視になることもできる。例えば、ユーザが、友人2に対して「オン」フラグを設定して、ユーザが不可視になった際、ユーザ2が依然としてユーザを見つけることができるようにする。「オン」フラグは、ユーザの自由裁量でオフにする、または除去することが容易にできる。反対に、ユーザは、友人に対して「オフ」フラグを設定して、ユーザが「オフ」フラグを除去するまで友人がユーザの位置を特定することができないようにする。
同様に、ユーザは、一部のスケジュールに関して不可視性オプションを確立することができる。図示するとおり、ユーザは、3つのスケジュール(フィールド4008〜4012)を特定している。スケジュール1は、午前6時より前、および午後10時より後にはユーザの位置を誰にも提供しないようにシステムに指示する、あるスケジュールに関連付けられたフラグ、「オフ設定」を有する。つまり、ユーザは、午後10時から午前6時までの間には自動的に不可視になる。この場合も、ユーザは、「オフ設定」フラグを容易に変更することができない。他の規則、または他のフラグとの競合を回避するため、ユーザ(またはシステム)は、例えば、友人オプションがスケジュールオプションに優先することを確立することができる。このため、システムは、午前6時より前、および午後10時より後である場合でも、友人1に位置情報を常に提供することができる。
この例では、ユーザは、次の2つの追加スケジュールを確立している。すなわち、スケジュール2(午後12時から午後1時までの昼食時間スケジュールのための)、およびスケジュール3(毎週金曜日)であり、スケジュール3は、「オフ」フラグを有する。したがって、ユーザは、ユーザが毎金曜日に自動的に不可視になるべきことをシステムに指示している。
ユーザは、地理的条件に関して不可視性オプションを確立することもできる。図示するとおり、ユーザは、3つの位置条件を特定している(フィールド4014ないし4018)。位置1は、50マイルを超える半径に関連するフラグ、「オフ設定」を有し、このフラグは、ユーザがユーザの所定の大都市圏を離れた場合にはいつでも、ユーザが自動的に不可視になることを表すことが可能である。位置2は、郵便番号70047の周辺の30マイル半径に関連付けられ、位置3は、特定の都市(「タコマ」)に関連付けられている。図示するとおり、ユーザは、位置3に関連付けられた「オフ」フラグを設定しており、このため、ユーザのモバイルデバイスがタコマ地域内にあることをシステムが検出した場合はいつでも、不可視になることになっている。
他の様々な代替の実施形態も可能である。例えば、ユーザは、不可視になるためのカスタム規則を確立することができる。図示するとおり、カスタム1フィールド4020は、昼食時間中に、ユーザが不可視になっていても、システムがユーザの位置を友人3に提供できることを示している。ユーザ位置データに影響を与えるための他の様々なオプションまたは規則を確立できることが、当業者には理解されよう。例えば、ユーザは、ユーザがある場所の範囲内にいる、またはある場所に到達した場合に、システムがユーザの位置を友人に自動的に提供する(適切なSMSメッセージなどを介して)規則を確立することができる。代替として、またはさらに、ポータル108は、ユーザの会合要求を以前に受け入れた友人が会合場所に到着する時点で、それをユーザに通知することができる。通信事業者または公衆通信事業者が、所望の目的地にクーリエ便が到着したことを中央の発送係または場所に示すようなオプションも望ましい可能性がある。ユーザが、ユーザのモバイルデバイス102上でそのようなオプションを変更できるようにすることに加えて、システムは、Webフロントエンドを提供して、ユーザが、コンピュータを使用してインターネットを介してポータル108にアクセスし、以上およびその他のオプションおよびメニューを変更できるようにすることも可能である。
本明細書で、「フィールド」および「レコード」という用語を使用しているが、任意の種類のデータ構造を使用することができる。例えば、関連したデータが、前に付くヘッダ、または関連するデータの前に付く(または後に付く)他のオーバーヘッドデータを有することが可能である。代替として、関連するデータは、ヘッダなどのあらゆるオーバーヘッドデータの使用を回避して、単にシリアルデータストリーム内のあるバイト、または一続きのバイトで認識されることも可能である。本明細書では、任意の数のデータ構造およびデータ型を使用することができる。
図41は、モバイル局または無線デバイス102などの通常のモバイル通信デバイス4100のブロック図を示している。モバイルデバイス4100は、無線周波数信号などの電磁信号を受信するため、および送信するための1つまたは複数の内部アンテナまたは外部アンテナ4102を有する。トランシーバ4104は、アンテナ4102に接続され、通常、送信信号の変調、および受信信号の復調をそれぞれ提供する。トランシーバ4104に接続されたプロセッサユニット4106は、信号プロセッサ、マイクロプロセッサ、ASIC、またはその他の制御および処理の論理回路を含むことが可能である。プロセッサユニット4106は、信号符号化、データ処理、入力/出力処理、電力制御、ならびにモバイル通信デバイスを実施するために必要なその他の諸機能を実行することができる。ユーザは、キーパッド4110、スピーカ/マイク4108、またはディスプレイ/タッチパッド4116を介してプロセッサユニット4106に入力を与えることができる。プロセッサ4106は、ディスプレイ/タッチパッド4116またはスピーカ/マイク4108を介して、情報をユーザに提供することができる。さらに、プロセッサ4106は、リムーバブルでないメモリ4112またはリムーバブルなメモリ4114からの情報にアクセスし、またはその中に情報を格納することができる。リムーバブルでないメモリ4112は、RAM、ROM、ハードディスク、または他の周知なメモリ記憶技術から成ることが可能である。リムーバブルなメモリ4114は、GSM通信システムにおいて周知の加入者IDモジュール(SIM)カード、他の周知のメモリ記憶技術から成ることが可能である。モバイル通信デバイス4100は、モバイルデバイス4100の現在位置に関する緯度と経度の情報を提供するオプションのGPS、または他の位置チップセットまたは位置受信機4118も含むことが可能である。
本発明の一部の実施形態では、モバイルデバイス4100は、リムーバブルなメモリ4114、またはリムーバブルでないメモリ4112の中に友人リスト情報を格納することができる。そのような友人リスト情報は、例えば、ユーザの位置を特定する許可をユーザが与えた友人のリスト、友人の位置を特定する許可をユーザに与えた友人のリスト、位置特定許可を求める保留中の要求のリスト、会合RSVPのリスト、またはユーザの位置を特定する許可が常に拒否される他の加入者のリストを含むことが可能である。実際、前述したデータ構造およびレコードのいずれも、リムーバブルなメモリ4114の中に格納することができる。キーパッド4110上のキーストロークなど、入力デバイスからのコマンドを受け取ると、プロセッサユニット4106は、リムーバブルなメモリ4114またはリムーバブルでないメモリ4112から友人リスト情報を取り出すか、またはその中に格納する。
本発明の一部の実施形態では、ソフトウェアフラグをリムーバブルなメモリ4114またはリムーバブルでないメモリ4112の中で実施して、モバイルデバイス4100の「不可視である」ステータスを示すことができる。システム100は、モバイルデバイス4100の位置を特定しようと試みる際、多分、「不可視である」フラグのステータスについてモバイルデバイス4100に問い合わせることができる。フラグが「不可視である」に設定されている場合、システム100は、現時点でモバイルデバイスの位置を特定することができないことを、モバイルデバイス4100の位置特定を要求したアプリケーションに報告する。ポータルではなく、モバイルデバイス4100の中に「不可視である」フラグを有することは、モバイルデバイス4100の位置を求める要求が行われた後、モバイルデバイス4100の不可視性ステータスを知るために、ネットワークにおいて余分の通信(ポータル108からモバイルデバイス4100への)を要求する。
モバイルデバイス4100が、モバイルデバイスの現在位置についての緯度と経度の情報を提供するGPS受信機4118を備えている場合、ポータル108は、ジオコーディングを求めるGMLC126に対する要求を飛ばして、位置特定エンジン128からの逆ジオコーディングを求める要求に直接に進むことができる。このため、搭載されたGPS受信機4118は、前述したGMLC126に対する一部の緯度/経度要求の必要性をなくすことにより、信号フローに影響を与える。
多くの代替形態が可能である。例えば、ユーザが不可視性を容易にオンおよびオフにすることができるようにする専用ボタンまたは専用スイッチをモバイルデバイス4100に提供することができる。代替として、またはさらに、保留中の要求/RSVPを追跡すること、位置ベースのサービスを求める発見要求または発見クエリを作成することなど、ポータルサーバ108によって実装されるものとして説明した機能の多くは、モバイルデバイス4100によって実行されることも可能である。
(結論)
以上に説明した機能を提供するサービスプロバイダは、キロバイト単位のトラフィックまたは使用料に基づいて収益を引き出すことができる。例えば、送信された各メッセージ、または対応する応答が、システム使用量に基づいて収益をもたらすことが可能である。代替として、またはさらに、サービスプロバイダは、加入に基づいてそのような機能を提供することもできる。サービスプロバイダは、データプランの単純な加入料金より高い料金でプレミアムコンテンツまたはプレミアム機能を提供することもできる。例えば、ユーザが、映画館、コンサート、演劇などにおいて友人と会うように調整することができる。プレミアムサービスを使用すると、ユーザは、インターネットを介して提供されるサービスなどの、チケット購入サービスにアクセスして、チケットを購入することができる(例えば、www.fandango.comまたはwww.ticketmaster.com)。同様に、ユーザは、友人に会うレストランを特定することを所望する場合、www.zagat.comなどのレストラン格付けサービスにアクセスすることができる。
代替として、またはさらに、以上に説明した機能を提供するサービスプロバイダは、一部のユーザ位置特定要求に応答したことに関してコンテンツプロバイダに料金請求を行うことにより、収益を引き出すことができる。例えば、ユーザが、最も近いStarbucks(商標)、または他の有名ブランド小売業者を特定するようにシステムに要求した場合、システムは、そのような情報をユーザに提供したことに関して該当する小売業者に料金請求を行うことができる。同様に、ユーザが、特定の商取引(例えば、特定の車両の販売)を提供している最も近い小売業者の位置を要求することが可能であり、サービスプロバイダは、その情報を提供したことに関して商業者から料金を受け取るか、またはユーザとの間で達せられた売上の一部さえ受け取ることが可能である。
サービスプロバイダは、使用に基づいて収益を獲得することもできる。例えば、ユーザが至近距離探索を(例えば、最も近い有名ブランドのファーストフードレストランを見つけるために)実行するたびに毎回、ユーザに定額料金が課されることが可能である。他の手数料をもたらす例には、ユーザが、場所または道案内のグラフィックな地図、交通クエリの結果などを要求することが含まれることが可能である。
以上に説明した位置ベースの機能およびシステムは、多くの潜在的な用途を有することが当業者には理解されよう。例えば、十代後半の若者が、そのような機能およびシステムを使用して友人を見つけ、地元のショッピングセンタで会うことを手配することができる。大学の友人が、バスケットボールの「ピックアップ」ゲームのために、近くで互いの位置を特定することができる。実業家が、最も近くにいる技術者を探し出して、その技術者がユーザのコンピュータを修理するように手配することができる。家族の1人が、職場からの帰路で食料雑貨類を買ってくる(pick up)ように別の家族の1人が食料雑貨品店の近くにいるかどうかを特定することができる。コンテンツ開発者は、この位置特定技術を使用して、「宝捜し」ゲーム、オリエンテーリングイベント、高度な保有車両追跡システムなどの進んだ応用例を開発することができる。
前述した少なくとも1つの実施形態では、システムは、ユーザのプライバシーを保護するオプションを提供する。例えば、ユーザは、いつでも、位置特定機能(「不可視になる」)を迅速に、容易にオン/オフにすることができる。友人は、友人が位置を特定することができる友人のリストにユーザを追加することができるにはまず、ユーザが許可を与えなければならない。許可を与えた後、ユーザは、いつでも許可を取り消して、任意の個人、またはすべての個人によるユーザの位置情報に対するアクセスを停止させることができる。ユーザがユーザの電話器の位置を特定する許可を友人に与えると、ユーザが、位置特定能力をオフにして電話が「不可視」になるようにするか、またはその個人に関してアクセスを取り消すかしない限り、その友人は、電話器がオンになっているときはいつでも、ユーザの電話器の位置を特定することができる。無用の要求を防止するため、ユーザは、個人が、ユーザの位置へのアクセスを再要求するのを永久に阻止することができる(常時拒否)。さらに、システムは、ユーザの位置を受信することをユーザが明確に許可した相手にだけ、ユーザの位置を知らせることができる。
文脈によってそうでないことが明らかに要求されない限り、本説明および特許請求の範囲の全体で、「含む(comprise)」、「含む(comprising)」などの語は、排他的または網羅的な意味ではなく、包含的な意味で、つまり、「含むが、限定されない」という意味で解釈されるものとする。また、単数または複数を使用する語は、それぞれ、複数または単数も含む。さらに、「本明細書では」、「以上」、「以下」、および類似の意味の語は、本明細書で使用される場合、本明細書のいずれの特定の部分でもなく、本明細書を全体として指すものとする。特許請求の範囲が、2つ以上の項目のリストに関連して「または」という用語を使用する場合、その語は、その語の次の解釈のすべてを範囲に含む。すなわち、リストの中の項目のいずれか、リストの中の項目のすべて、およびリストの中の項目の任意の組合せである。
本発明の実施形態の以上の詳細な説明は、すべてを網羅すること、または以上に開示した形態そのものに本発明を限定することを意図するものではない。本発明の特定の実施形態、および例を例示の目的で説明したが、当業者には理解されるとおり、本発明の範囲内で様々な等価の変更形態が可能である。例えば、ステップまたは機能を所与の順序で提示しているが、代替の実施形態は、異なる順序でステップまたは機能を有するルーチンを実行することができる。本明細書で提供する本発明の教示は、必ずしも本明細書で詳細に説明する無線電話器ではない他のシステムにも適用することができる。詳細な説明に鑑みて、以上の変更、およびその他の変更を本発明に対して行うことができる。
以上に説明した様々な実施形態の諸要素および諸動作を結合して、さらなる実施形態を提供することもできる。以上の米国特許および米国特許出願、ならびにその他の引用文献のすべては、参照により本明細書に組み込まれる。必要な場合、本発明の態様を変更して、以上に説明した様々な引用文献のシステム、機能、および概念を使用して、本発明のさらなる実施形態を提供することができる。
以上の詳細な説明に鑑みて、以上の変更、およびその他の変更を本発明に対して行うことができる。一般に、添付の特許請求の範囲で使用する用語は、以上の詳細な説明がそのような用語を明示的に定義しているのでない限り、本発明を本明細書で開示した特定の実施形態に限定するものと解釈してはならない。したがって、本発明の実際の範囲は、開示した実施形態、および特許請求の範囲の下で本発明を実施する、または実装するすべての等価の形を包含する。
本発明は、GMLCから緯度と経度を取得する文脈において主に説明してきたが、モバイルデバイス内部のGPS受信機または同様の受信機が、緯度と経度の情報を与えることも可能である。そのような装備を有するモバイルデバイスの場合、緯度と経度は、ポータルからモバイルデバイスへのクエリによって取得されること、またはクエリの使用なしに、モバイルからポータルに送られることさえ可能である。例えば、近くのレストランの位置を特定するモバイルからの要求は、要求の中のデータフィールドとしてユーザの現在位置を含み、そのため、GMLCへのネットワーク通信がなくなり、システムからのより迅速な応答がもたらされることが可能である。さらに、任意の位置特定システムを、以上に説明した機能とともに使用することができる。
本発明は、SMSを使用してメッセージおよび通知を送信する文脈で主に説明してきたが、ピクチャ、アイコン、アニメーション、またはサウンドを含むことが可能な電子メールメッセージまたはマルチメディアメッセージなど、多くの等価の技術を代わりに使用することもできる。
本発明の一部の態様を一部の請求項の形態で提示しているが、本発明者らは、いくつもの請求項の形態で本発明の様々な態様を企図している。例えば、本発明の1つの態様だけをコンピュータ読み取り可能な媒体として実施されるものとして記載しているが、他の態様も同様に、コンピュータ読み取り可能な媒体として実施することができる。したがって、本発明者らは、本発明の他の態様に関してそのような追加の請求項の形態を追求するため、本出願を出願した後、さらなる請求項を追加する権利を保留する。