背景
サービスプロバイダとデバイスメーカー(例えば、無線、携帯電話等)は、消費者価値と利便性の向上のために、例えば、魅力的なネットワークサービスを提供する等、絶え間なく努力を続けている。結果として、ネットワークサービス(例えば、地図作製サービス、ニュースサービス等)は、機能性、需要、コンテンツを飛躍的に伸ばしている。一つの関心領域は、継続的および/または定期的に更新されるコンテンツ(例えば、地図作製サービスで更新される名所(point-of-interest)情報、更新されるニュースフィード等)を含むサービスの開発である。一般的に、ユーザはAtom Syndication Format、Really Simple Syndication、Simple Update Protocol等の種々のタイプのウェブ配信フィードやプロトコルを使用して、この継続的および/または定期的に更新されるコンテンツを入手出来る。
しかし、現在利用可能な配信フォーマットには、例えば、多数の同時更新、一クライアントの処理能力を超えるほど頻繁な更新、および/または(例えば、更新コンテンツを購読するユーザ以外の更新を難読化(obfuscation)することによって)承認ユーザに対してのみ更新が行われる等の状況を処理する能力に関し、技術的制約が存在する。
ある例示的実施形態
このため、更新結果にアクセスする際のプライバシーとセキュリティを維持しつつ、多数の更新を効率的にサポートする更新プロトコルを提供するための手法が必要とされる。
一実施形態によれば、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを生成すること、を含む方法が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を用いて識別される。1つ以上のページに更新ドキュメントを分割することを含む方法も提供される。1つ以上のページをアーカイブにすることを更に含む方法も提供される。
別の実施形態によれば、少なくとも1つのプロセッサと、1つ以上のプログラムに関するコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサと共に、少なくとも装置に、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを生成させるように構成される、装置が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を使用して識別される。装置はまた、更新ドキュメントを1つ以上のページに分割するよう実行される。装置はさらに、1つ以上のページをアーカイブするよう実行される。
別の実施形態によれば、1つ以上の命令から成るシーケンスを1つ以上含むコンピュータ可読記憶媒体であって、1つ以上の命令は、1つ以上のプロセッサによって実行されると、少なくとも装置に、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを生成させる、コンピュータ可読記憶媒体が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を使用して識別される。装置はまた、更新ドキュメントを1つ以上のページに分割するよう実行される。装置はさらに、1つ以上のページをアーカイブするよう実行される。
別の実施形態によれば、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを生成する手段を備える、装置が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を使用して識別される。装置はまた、更新ドキュメントを1つ以上のページに分割する手段を備える。装置はさらに、1つ以上のページをアーカイブする手段を備える。
一実施形態によれば、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを読み出すことを含む、方法が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を用いて識別される。更新ドキュメントのアーカイブ版の1つ以上が処理されているかを決定することを含む方法も提供される。決定に少なくとも一部基づいて、更新ドキュメント、更新ドキュメントのアーカイブ版の1つ以上、またはそれらの組み合わせを処理することを含む方法も提供される。処理は、1つ以上の関心のあるリソースの1つ以上の更新状態における少なくとも1つを識別する。
別の実施形態によれば、少なくとも1つのプロセッサと、1つ以上のプログラムに関するコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサと共に、少なくとも装置に、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを読み出させるように構成される、装置が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を用いて識別される。装置はまた、更新ドキュメントのアーカイブ版の1つ以上が処理されているかを決定するように実行される。装置はさらに、決定に少なくとも一部基づいて、更新ドキュメント、更新ドキュメントのアーカイブ版の1つ以上、またはそれらの組み合わせを処理するように実行される。処理は、1つ以上の関心のあるリソースの1つ以上の更新状態における少なくとも1つを識別する。
別の実施形態によれば、1つ以上の命令から成るシーケンスを1つ以上含むコンピュータ可読記憶媒体であって、1つ以上の命令は、1つ以上のプロセッサによって実行されると、少なくとも装置に、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを読み出させる、コンピュータ可読記憶媒体が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を用いて識別される。装置はまた、更新ドキュメントのアーカイブ版の1つ以上が処理されているかを決定するように実行される。装置はさらに、決定に少なくとも一部基づいて、更新ドキュメント、更新ドキュメントのアーカイブ版の1つ以上、またはそれらの組み合わせを処理するように実行される。処理は、1つ以上の関心のあるリソースの1つ以上の更新状態における少なくとも1つを識別する。
別の実施形態によれば、1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを読み出す手段を備える、装置が提供される。1つ以上のリソースの少なくとも1つは個別の難読化識別子を用いて識別される。装置はまた、更新ドキュメントのアーカイブ版の1つ以上が処理されているかを決定する手段を備える。装置はさらに、決定に少なくとも一部基づいて、更新ドキュメント、更新ドキュメントのアーカイブ版の1つ以上、またはそれらの組み合わせを処理する手段を備える。処理は、1つ以上の関心のあるリソースの1つ以上の更新状態における少なくとも1つを識別する。
本発明の種々の例示的実施形態には、次が該当する:
(1)データおよび/または(2)情報および/または(3)少なくとも1つの信号の処理および/または処理することを支援することを含む方法であって;
(1)データおよび/または(2)情報および/または(3)少なくとも1つの信号は、本発明の任意の実施形態に関連して本出願で開示される方法(または処理)の何れか、または任意の組み合わせ(またはそれらから少なくとも一部得られるもの)に少なくとも一部基づいている、方法。
本発明の種々の例示的実施形態には、次が該当する:
少なくとも1つのサービスへアクセスできるよう構成される少なくとも1つのインターフェースへのアクセスを支援することを含む方法であって、少なくとも1つのサービスは、本出願で開示されるネットワークまたはサービス提供方法(または処理)の何れかまたは任意の組み合わせを実行するよう構成される、方法。
本発明の種々の例示的実施形態には、次が該当する:
(1)少なくとも1つのデバイスユーザインターフェース要素および/または(2)少なくとも1つのデバイスユーザインターフェース機能の生成および/また修正を支援することを含む方法であって;(1)少なくとも1つのデバイスユーザインターフェース要素および/または(2)少なくとも1つのデバイスユーザインターフェース機能は、少なくとも以下に一部基づいている:
本発明の任意の実施形態に関連して本出願で開示される方法または処理の何れか、または任意の組み合わせから生じるデータおよび/または情報;および/または、本発明の任意の実施形態に関連して本出願で開示される方法(または処理)の何れか、または任意の組み合わせから生じる少なくとも1つの信号。
本発明の種々の例示的実施形態には、次が該当する:
(1)少なくとも1つのデバイスユーザインターフェース要素および/または(2)少なくとも1つのデバイスユーザインターフェース機能を生成および/または修正することを含む方法であって;(1)少なくとも1つのデバイスユーザインターフェース要素および/または(2)少なくとも1つのデバイスユーザインターフェース機能、少なくとも以下に一部基づいている:
本発明の任意の実施形態に関連して本出願で開示される方法(または処理)の何れか、または任意の組み合わせから生じるデータおよび/または情報;および/または、本発明の任意の実施形態に関連して本出願で開示される方法(または処理)の何れか、または任意の組み合わせから生じる少なくとも1つの信号。
種々の例示的実施形態では、サービスプロバイダ側、携帯デバイス側の何れかで、または両側で実行される動作を伴って、サービスプロバイダと携帯デバイス間で共有される任意の方法で、前述の方法(または処理)を達成し得る。
さらに、本発明の他の側面、特徴および利点は、後述の詳細な説明で明らかにされるが、本発明を実施するために熟慮された最良の実施形態を含む、多数の実施形態や実装形態を示すことにより簡潔に説明される。本発明には他の異なる実施形態も含まれ、その一つ一つは、種々の自明な側面および本発明の精神と範囲を逸脱しない限り全てにおいて変更され得る。したがって、添付の図面および記述は、単に説明のために参照されるのであって、限定するものではない。
本発明の実施形態は、添付の図面の図で例示的に、かつ限定的でなく説明される:
一実施形態に従う、更新フィードをクライアントに提供し得るシステムの図である;
種々の実施形態に従う、Paged Simple Update Protocolの利用に関連する疑似コードの図表である;
種々の実施形態に従う、Paged Simple Update Protocolの利用に関連する疑似コードの図表である;
一実施形態に従う、サービスプラットフォームとクライアントの構成図である;
一実施形態に従う、更新フィードをクライアントに生成する処理のフローチャートである;
一実施形態に従う、コンテンツを読み出すために更新フィードを処理するフローチャートである;
一実施形態に従う、更新フィード要求に基づいて更新情報を提供する処理のフローチャートである;
本発明の実施形態を実装するために使用され得るハードウェアの図である;
本発明の実施形態を実装するために使用され得るチップセットの図である;
本発明の実施形態を実装するために使用され得る携帯端末(例えば、ハンドセット)の図である。
ある実施形態の説明
まず、更新フィードをクライアントに提供する例示的な方法、装置、およびコンピュータプログラムを開示する。以下、例示する目的であり、本発明の実施形態を十分理解されるよう、様々な特定の細部が説明される。しかし、本発明の実施形態は、これら特定の細部がなくても、またはそれらと同等の構成によって実行され得ることは当業者には理解される。他の例では、本発明の実施形態を不必要に曖昧にしないために、周知の構成とデバイスがブロック図に示される。
図1Aは、一実施形態に従うシステムの図であって、難読化識別子を利用し、更新ドキュメントを複数のページに分割し、および/またはページをアーカイブすることにより、更新フィードをクライアントに提供し得るシステムを示す。前述の通り、潜在的に多数の同時更新を提供する、またはクライアントの処理能力を超えるほど頻繁な更新を提供するサービスに登録するクライアントに対して更新フィードをサポートすることに関し、種々のウェブ配信フォーマットとプロトコルの技術的制約を克服する必要がある。特定の実施形態では、クライアントは消費者(例えば、個人的目的でコンテンツにアクセスする個人ユーザ)や商業ユーザ(例えば、サービスプロバイダ、コンテンツ再販業者等の提携サービスやビジネス)、またそれらの任意の組み合わせを含み得る。
歴史的には、サービスプロバイダで異なるタイプの更新フィードが使用されてきた。更新フィードを実装する1つのタイプはAtomフィードである。Atom出版プロトコル(APP)はウェブリソースを生成・更新するシンプルなハイパーテキスト転送プロトコル(HTTP)を基にしたプロトコルである。しかし、APPはサービスプロバイダおよび/またはクライアントが有益と考え得る機能を十分に提供しない。例えば、APPには情報を難読化する方法がない。難読化は非公開データや競合他社のデータを保護する利点がある。そのため、クライアントがサービスプロバイダの提携先である場合、クライアントは他のクライアントにクライアント自身の非公開情報にアクセスされたくないこともある。
更新フィードを実装する別のタイプはSimple Update Protocol(SUP)である。SUPはフィードが更新された際、フィードのユーザに報知するためにサービスプロバイダが生成できる「pingフィード」のタイプである。特定の実施形態では、フィードはユーザに更新コンテンツを提供するデータフォーマットである。フィードは、更新コンテンツが利用可能であるリソースを示す識別子を生成してもよい。特定の実施例では、リソース(例えば、コンテンツ)はUniform Resource Locator(URL)で識別されてもよい。SUPの利点は次を含む:キャッシュが可能、複数のシステムからの集合を取り扱える、低い帯域幅消費、事前生成が可能、HTTPベースである。しかしSUPには多くの欠点がある。例えば、SUP特定のフィードシステムには適さない多数の前提を要する。一例として、SUPは、クライアントが制限のない処理能力を有するものと仮定する。そのため、大きな変更や更新のピークを想定するシステムに対しては、シンプルなクライアントの実装では、更新期間内の全ての更新を処理できない可能性もある。よって、シンプルなクライアントには次の更新ドキュメントを見逃すリスクがある。
さらにSUPは、クライアントが常時稼働しているか、故障時間がサポートされる最長更新期間よりも短いと仮定している。多数のシンプルなクライアントの実装において、この制約は不当な負担を強いることになる。またさらに、SUPは、クライアントが確実な通知を必要とせず、(例えば、クライアント内やクライアントとSUPサーバ間の何れかのインフラ要素での問題のために)クライアントが更新を見逃した場合、クライアントは常にポーリング状態に戻れることも仮定している。
この問題に対処するため、図1Aのシステム100には更新フィードをクライアントに提供する機能が導入される。これら更新フィードは非公開データを保護するために難読化識別子を使用することと、効率を上げるために複数のページに分割することと、信頼性を向上させるためにページをアーカイブすることとを含んでもよい。この新規の特徴の組み合わせにより、ユーザ端末(UE)101またはクライアント103a-103nのユーザが通信ネットワーク105を通じてサービスプラットフォーム107から更新フィードを読み出すことができる。異なる種類のサービスがサービスプラットフォーム107で実行されてもよい。例えば、サービスプラットフォーム107は、アプリケーション109(例えば、地図アプリケーション)を通じて地図作製サービスを1つ以上のUE 101に提供してもよい。地図作製サービスや他のサービスに関連するサービスデータ111は、サービスプラットフォーム107に関連するデータベースに格納されてもよい。特定の実施形態では、サービスデータ111は1つ以上のクライアント103に関連する。クライアント103は、サービスデータ111に関連する情報を格納するクライアントデータベース113を保持してもよい。1つ以上のリソースでクライアント103がサービスデータ111にアクセス可能となる。
特定の実施形態では、サービスデータ111が更新されるとき、サービスプラットフォーム107は更新データ115を生成する。更新データ115は、サービスデータ111が更新された内容に関する情報、更新サービスデータ111を示す識別子やポインタ、更新コンテンツ、またはそれらの組み合わせを含んでもよい。さらに、サービスデータ111に対する更新の通知は、Paged Simple Update Protocol(PSUP)を使用して行われてもよい。PSUPは1つ以上の技術(例えば、SUP、APP等)に基づいて実装されるか、既存技術以外で成されてもよい。特定の実施形態では、PSUPはインターネット技術タスクフォース(IETF)提案標準「Feed Paging and Archiving」(RFC 5005)等の技術および/またはプロトコルを包含してもよい。
PSUPは更新ドキュメントに1つ以上の関連リンク要素を伴うフィード表現を含める。PSUPはExtensible Markup Language(XML)、JavaScript Object Notation(JSON)、HTTP、またそれらの組み合わせ等、1つ以上の言語で実装される。特定の実施形態では、更新ドキュメントは、更新された(例えば、サービスデータ111に格納される)コンテンツの全部または要約のテキストの他、出版日、原作者、更新に関するタイムスタンプ等のメタデータも同様に含める。さらに、更新ドキュメントは(例えば、サービスデータ111の)更新コンテンツに関連する1つ以上の更新エントリを含んでもよい。更新エントリは、更新コンテンツの更新状態および/または(例えば、コンテンツが更新されたか、コンテンツが更新されたが未読であるか等の)更新コンテンツに関連するフィードの更新状態を含んでもよい。
またさらに、更新ドキュメントはサービスプラットフォーム107に対する帯域幅を節約するために、複数のドキュメントまたはページに分割されてもよい。そのため、サービスプラットフォーム107で、ページに対して「引窓(sliding window)」アクセスが可能となる。ページ化フィード(paged feed)は、更新ドキュメントに関連するエントリを複数の一時ドキュメントに分割してもよい。これは、フィードのエントリが一定でなく、クライアント103がフィードの任意部分へのアクセスのみ必要である場合に有用となる。ページ化フィードページは、論理フィード(例えば、更新ドキュメント)のエントリを含むように相互にリンクされてもよい。しかし、一般にドキュメントのコンテンツの安定性に関しては保証されない。よって、ページ化フィードは非可逆である(例えば、クライアントが特定の時点において論理フィードのコンテンツを再構成可能であるとは保証できない)。したがって、クライアント103が認知せずにフィードのページがアクセスされるため、エントリは追加または変更されてもよい。ページ化フィードの利点は、エントリ数が非常に大きいか、不定または無数であるとき、クライアント103の関心領域であるフィードエントリのサブセットにアクセスするフィード全体をクライアント103がページ分割できることである。しかし、特定の実施形態では、クライアント103および/またはサービスプロバイダは、クライアント103が更新を受信すると保証されることを望む場合もある。
フィードの信頼性を向上するため、PSUPは複数の不変のドキュメントにそれぞれエントリを分割する、アーカイブフィードを含んでもよい。これらのドキュメントは更新データ115にアーカイブされてもよい。アーカイブフィードの利点は、クライアント103が更新を見逃した場合でも、クライアント103は既にドキュメントにアクセスしていることである。アーカイブフィードは購読ドキュメントを通じてアクセスされてもよい。特定の実施形態では、購読ドキュメントは、クライアント103が見逃したデータを更新できるようにする、アーカイブフィードへのハイパーリンクを含む。さらに、更新ドキュメントは、アーカイブ済み更新フィードの対する購読ドキュメントを含んでもよい。一実施例では、PSUPの実装により、購読ドキュメントの最大エントリ数が制限されてもよい。
またさらに、購読ドキュメントはページ化フィードになってもよい。本実装では、各ページ化ドキュメントは、次ページが存在する限りにおいて、「next」の関連タイプに対応するリンクヘッダを含んでもよく、あるいは含まなくてはならない。これは、次ページが存在する場合、購読ドキュメントの特定期間においてページ化ドキュメントは購読ドキュメントの次ページを含むべきということになる。特定の実施形態では、ページ化購読ドキュメントの期間および/またはタイムスタンプは全ページ化ドキュメントについて識別されてもよく、あるいはされなくてはならない。これは、更新ドキュメント(例えば、購読ドキュメント)がページに分割されるとき、単一のタイムスタンプおよび/または期間の識別子が使用されることである。したがって、購読ドキュメントは「動的」ドキュメントとみなされてもよい。
PSUPの一つの例示的実装では、各PSUP購読ドキュメントは、特定のアンカーに対して購読ドキュメントの関連を記述する属性を備えるリンクヘッダを含んでもよく、あるいは含まなくてはならない。特定の実施形態では、関連属性は、先の期間が存在する場合、その先の期間におけるアーカイブ済み更新をカバーする更新ドキュメントへのハイパーリンクを提供する、先のアーカイブの関連タイプを含む。
さらに、PSUPの別の例示的実装では、購読ドキュメントは「first」に関連するハイパーリンクを含んでもよく、あるいは含まなくてはならない。この「first」関連タイプは、アーカイブフィードにリンクしないが、アーカイブドキュメントの資源識別子(例えば、統一資源識別子(URI))として後で利用されてもよい、資源識別子でもよい。特定の実施形態では、URIがアーカイブドキュメントのハイパーリンクとして使用される場合、PSUPの実装によって、購読ドキュメントおよび/または一連のアーカイブドキュメントにまだ含まれていないアーカイブドキュメントで始まる一連のアーカイブドキュメントから、何らかの更新をクライアント103が探す必要がないことを保証してもよく、あるいは保証されなくてはならない。
追加または代替として、PSUPの一実施形態はアーカイブドキュメントを含む。特定のアーカイブドキュメントによってカバーされる期間は、PSUPの特定の実装に基づいて決定されてもよい。したがって特定の実施例では、クライアント103は特定の期間にアーカイブドキュメントを要求しない。しかし本実装では、アーカイブドキュメントは「available periods」属性を含むように要求されないため、追加の構造を許容し、オーバーヘッドを削減できる。アーカイブドキュメントは「since_time」と「updated_time」との間の差を算出する「period」属性を含んでもよい。しかしこれは、アーカイブドキュメントを利用する例示的実装であることに留意されたい。他の実施形態では、この機能を実現する実装において異なる技術(例えば、ATOM)が利用されてもよい。
またさらに、PSUPアーカイブドキュメントは、購読および/またはアーカイブドキュメントを互いに結合する1つ以上のリンク関連性を含んでもよい。例えば、PSUPアーカイブドキュメントは(存在する場合)直前のアーカイブドキュメントを参照し得る「prev-archive」URIを含んでもよく、あるいは含まなくてはならない。またさらに、PSUPアーカイブドキュメントは(存在する場合)直後のアーカイブドキュメントを参照し得る「next-archive」URIや、参照されないときにフィードの直近のエントリを含むフィードドキュメントを返す「current」URIを含んでもよい。
特定の実施形態では、PSUPの実装は更新フィードを永久にアーカイブする必要がない。またPSUPの実装は、データ格納の効率を上げるために、複数のアーカイブドキュメントを分割または統合してもよい。特定の実施例では、PSUPの実装は、アーカイブドキュメントで参照されているURIへの全ての要求がOKのHTTP状態を返すことを保証してもよく、あるいは保証されなくてはならない。すなわち、同一のURIに対する先の応答、または「prev-archive」関連タイプを持つハイパーリンクの再帰的解決を通じてアクセス可能であるアーカイブドキュメントの1つに含まれていた更新だけを含む。さらに特定の実施例では、PSUPの実装は、アーカイブドキュメントの「since_time」と「update_time」の両属性が(例えば、「prev_archive」URI経由でリンクされる)先のアーカイブドキュメント内のこれらの属性の対応値よりも決して小さくないことを保証してもよく、あるいは保証されなくてはならない。
加えて、PSUPの実装は特定のクライアント103aに対する非公開情報が別のクライアント103nに確実に与えられないようにする難読化識別子を利用してもよい。そのため、難読化識別子はURLの代替としてまたはURLと組み合わせて利用され得る。この難読化識別子は、難読化識別子を復号する方法を知るクライアントが更新コンテンツを読み出すために難読化識別子を復号できるよう、符号化されてもよい。難読化識別子を復号する例示的方法にはキー、ハッシュ表等が含まれる。例えば、難読化識別子は、既知のHTTPリンクに追加される際にコンテンツへのリンクを生成し得る情報を含んでもよい。
特定の実施形態では、(例えば、そのURLで識別される)リソースの各々は、リソースの属性の一部である第2の識別子を提供してもよい。リソースは更新が読み出され得る位置にあってもよい。この手法により、リソースにアクセスしたクライアント103のみが難読化識別子の利用方法を知り得る。したがって、クライアント103が更新フィードを処理しようとする場合、難読化識別子と関連するリソースを決定できなくてはならない。これは、例えば、URLと難読化識別子の対応表を格納し利用することによって達成されてもよい。クライアント103が、或るシナリオで難読化識別子を含むだけの更新フィードを処理する際、難読化識別子を受信する前からクライアント103が認識しているリソースのURLを解決し得る。特定の実施形態では、クライアント103は、難読化識別子の受信前からクライアント103が認識しているリソースのURLの解決だけ行ってもよい。
前述の通り、特定の実施形態では、アーカイブ方法と他のプロトコルの機能は既存のプロトコル技術に基づいてもよい。例えば、ATOMプロトコルは「Feed Paging and Archiving」(RFC 5005)をサポートするが、PSUP実装の基盤として利用されてもよい。ATOMプロトコルの既存クライアントライブラリは(例えば、RFC 5005に基づく)アーカイブフィードおよび/またはページ化フィードの実装を含む。例えば、ATOMでフォーマットされたページ化フィードは、一連のドキュメント群における先頭ドキュメントを参照する「first」URI、一連のドキュメント群における最後のドキュメント(例えば、最新ドキュメント)を参照する「last」、一連のドキュメント群における直前のドキュメントを参照する「previous」URI、そして一連のドキュメント群における直後のドキュメントを参照する「next」URIを含むように実装されてもよい。特定の実装では、ATOMページ化フィードドキュメントは少なくとも1つの前述のURIを備える。幾つかの実施例では、ATOMページ化フィードドキュメントは実行可能および/または適用可能なものだけの数のURIを備えてもよい。
さらに、本明細書に記述される手法の特定の実施形態では、ATOMページ化フィードドキュメントはページ化ドキュメントで基礎となるリソースを示すリンクおよび/または難読化識別子を含んでもよい。例えば、ページ化フィードドキュメントは、
を含む文字列の他、
を含む文字列も同様に含んでもよい。前述の通り、難読化識別子が関連するリソースの決定に使用されてもよい。例えば、ページ化リンクに関連する更新エントリは難読化識別子を含んでよく、難読化識別子は前述のように関連するリソースを識別するために使用されてもよい。
クライアント103フィードアグリゲータプログラムを経由するサービスプラットフォーム107のフィードを経由して掲載される情報を集めてもよい。A フィードアグリゲータプログラム(例えば、フィードリーダー、ニュースリーダー、アグリゲータ等)は、閲覧を支援するために単一のロケーションに配信ウェブコンテンツを集めるクライアントソフトウェアでもよい。クライアント103におけるPSUPアグリゲーション処理に関連する実施形態の詳細は図1Bおよび1Cに示される。
情報のやり取りを簡潔に記述するために、サービスプラットフォーム107がサービスデータ111および/または更新データ115を更新および/または維持するものとする。しかし、第1のサービスプラットフォーム107はサービスデータ111を提供・更新し、更新データ115を更新するために通信ネットワーク105を通じて第2のサービスプラットフォーム107に伝送することに留意されたい。そのため、リソースは第2のサービスプラットフォーム107から離れていてもよい。
例として、システム100の通信ネットワーク105はデータネットワーク(図示せず)、無線ネットワーク(図示せず)、電話ネットワーク(図示せず)、またはそれらの組み合わせ等、1つ以上のネットワークを含む。データネットワークは以下のものであり得ることに留意されたい:ローカル・エリア・ネットワーク(LAN)、都市エリアネットワーク(MAN)、広域エリアネットワーク(WAN)、公衆データネットワーク(例えば、インターネット)、短距離無線ネットワーク、または、例えば、専用ケーブルや光ファイバのネットワーク等の商用の専用パケット交換ネットワークといった他の適切なパケット交換ネットワーク、あるいはそれらの組み合わせである。加えて、無線ネットワークは、例えば、携帯ネットワークであってもよく、以下を含む種々の技術を採用してもよい:enhanced data rates for global evolution(EDGE)、汎用パケット無線サービス(GPRS)、GSM(登録商標)、インターネットプロトコル・マルチメディアサブシステム(IMS)、universal mobile telecommunications system(UMTS)等。こられと同様にその他の適切な無線媒体、例えば、worldwide interoperability for microwave access(WiMAX)、Long Term Evolution(LTE)ネットワーク、符号分割多元接続(CDMA)、WCDMA(登録商標)、wireless fidelity(WiFi)、無線LAN(WLAN)、Bluetooth(登録商標)、インターネットプロトコル(IP)データキャスティング、衛星、携帯アドホックネットワーク(MANET)等、またはそれらの組み合わせ等を含んでもよい。
UE 101はあらゆるタイプの携帯端末、固定端末、または以下を含むポータブル携帯型端末である:携帯ハンドセット、基地局、装置、デバイス、マルチメディアコンピュータ、マルチメディアタブレット、インターネットノード、通信機、デスクトップ型コンピュータ、ノート型コンピュータ、ノートブック型コンピュータ、ネットブック型コンピュータ、タブレット型コンピュータ、携帯情報端末(PDAs)、オーディオ/ビデオプレーヤー、デジタルカメラ/カムコーダ、測位デバイス、テレビ受信機、無線ブロードキャスト受信機、電子書籍デバイス、ゲームデバイス、または、これらデバイスのアクセサリや周辺機器、それらの組み合わせを含め、その全ての組み合わせを含む。UE 101はユーザに対する(「装着型」回路等のような)あらゆるタイプのインターフェースをサポートし得ることにも留意されたい。
例として、UE 101、サービスプラットフォーム107、およびクライアント103は、周知、新規または開発中のプロトコルを使用して、相互に通信ネットワーク105の他の要素と通信する。この状況では、プロトコルは、通信ネットワーク105内のネットワークノードが通信リンクを通じて送信される情報に基づいてどのように互いにやり取りするかを定義する規則を含む。プロトコルは各ノード内の異なる層の動作、種々のタイプの物理的信号の生成および受信から、信号伝送のためのリンク選択、信号が標示する情報のフォーマット、コンピュータシステムに現存するソフトウェア・アプリケーションから情報を送受信するものの識別までで有効である。ネットワークを通じて情報交換するプロトコルの理論上異なる層は、開放型システム間相互接続(OSI)参照モデルで説明される。
ネットワークノード間の通信は通常、個別のデータパケットの交換で成される。各パケットは通常(1)特定のプロトコルに関連するヘッダ情報、および(2)ヘッダ情報および特定のプロトコルとは別に処理され得るコンテンツ情報に続く、ペイロード情報を含む。幾つかのプロトコルでは、パケットは(3)ペイロードに続き、ペイロード情報の最後を標示するトレーラー情報を含む。ヘッダはパケットのソース、ディスティネーション、ペイロード長、およびプロトコルが使用する他のプロパティー等の情報を含む。特定のプロトコルのペイロードデータは、OSI参照モデルの異なる上位層に関連する異なるプロトコルに関するヘッダとペイロードを含むことが多い。特定のプロトコルのヘッダは通常、そのペイロードで次のプロトコルのタイプを標示する。この上位層プロトコルは下位層プロトコルにカプセル化されていると呼ばれる。インターネットのような複数の異種ネットワークを横断するパケットに含まれるヘッダは通常、OSI参照モデルに定義される物理層(第1層)ヘッダ、データリンク層(第2層)ヘッダ、ネットワーク層(第3層)ヘッダ、トランスポート層(第4層)ヘッダ、および種々のアプリケーションヘッダ(第5、第6および第7層)を含む。
特定の実施形態では、サービスプラットフォーム107は、UE 101とクライアント103のアプリケーション109に合うクライアント-サーバモデルに従ってやり取りしてもよい。クライアント-サーバモデルに従い、クライアントプロセスは要求を含むメッセージをサーバプロセスに送信し、サーバプロセスは(例えば、地図作製情報、バックエンドAPIアクセス、メッセージング等の)サービスを提供することによって応答する。サーバプロセスは応答を伴うメッセージをクライアントプロセスに返してもよい。クライアントプロセスとサーバプロセスはホストと呼ばれる異なるコンピュータデバイスで実行され、1つ以上のネットワーク通信プロトコルを使用してネットワーク経由で通信することが多い。「サーバ」という語句は通常、サービスを提供するプロセス、またはそのプロセスが動作するホストコンピュータを参照するために使用される。同様に、「クライアント」という語句は通常、要求をするプロセス、またはそのプロセスが動作するホストコンピュータを参照するために使用される。本明細書では、文脈から明白である場合を除き、「クライアント」「サーバ」の語句は、ホストコンピュータではなくプロセスを参照するものとする。加えて、サーバで実行されるプロセスは、特に信頼性、拡張性、および冗長性を含む理由から、(ティア(tier)とも呼ばれる)複数のホスト上の複数プロセスとして実行するよう分割されてもよい。
図1Bおよび1Cは、種々の実施形態に従う、Paged Simple Update Protocolの利用に関連する疑似コードの図表である。クライアント103は1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントをサービスプラットフォーム107から読み出し得る。クライアント103には、更新ドキュメントを読み出すために、サービスプラットフォーム107の1つ以上のリソースが購読されている。さらにフィードは、非公開コンテンツが他のユーザから隠蔽されるように、個別の難読化識別子を含んでもよい。
クライアント103は続いて、更新ドキュメントのアーカイブ版の1つ以上が、更新ドキュメントの処理中に処理されたかどうかを決定する。サブスクリプションの例示的疑似コード121は図1Bに含まれている。さらに、クライアント103はクライアント103が更新ドキュメントを見逃したかどうかを決定してもよい。クライアント103が更新ドキュメントを見逃した場合、読み出された更新ドキュメントは、埋め込まれた「prev-archive」識別子を通じてアーカイブ済みの更新ドキュメントを読み出すために使用されてもよい。その後、アーカイブ済み更新ドキュメントが読み出されてもよい。さらに、クライアント103が見逃した更新を発見したと決定するまで、追加のアーカイブドキュメントが読み出されてもよい。これは、クライアント103が読み出した最新の更新ドキュメントの経過時間および/または更新時間を、現在の更新ドキュメントおよび/またはアーカイブ済み更新ドキュメントとクライアント103が比較することによって達成されてもよい。前のアーカイブを取り戻すために、サブスクリプションにおけるそうした処理の例示的疑似コード123は図1Bに含まれている。疑似コードは一例であり、アーカイブ処理には、1つ以上の他のタイプの実装が使用され得ること(例えば、ATOMプロトコルを通じて利用可能なアーカイブ処理を利用すること)に留意されたい。
さらに、更新ドキュメントの処理は、追加的に更新ドキュメントのサブスクリプションページを処理することを含んでもよい。サブスクリプションページを読み出す疑似コード141は図1Cに示されている。疑似コード141は、更新ドキュメントに格納される情報をコンパイルするために、ページに関連するリンクを横断してもよい。また、クライアント103は、クライアントデータベース113を更新するために更新ドキュメントを処理してもよい。クライアントデータベース113は特定のサービスデータ111に対応する情報を含んでよい。図1Cに更新処理の例示的疑似コード143が示される。さらに、前述の通り、この更新処理が難読化識別子の復号に対応してもよい。
図2は、一実施形態に従う、サービスプラットフォームとクライアントの構成図である。例として、サービスプラットフォーム107はクライアントに対するコンテンツの更新を提供する1つ以上の要素を含む。これら要素の機能は、1つ以上の要素に統合されるか、等価の機能を有する他の要素によって実行されてもよいことに留意されたい。本実施形態では、サービスプラットフォーム107は、サービス通信インターフェース201、更新ドキュメントをページ化するページ化モジュール203、他のモジュールを制御する、および/または他のモジュールと連動するランタイムモジュール、そしてページをアーカイブするアーカイブモジュール207を備える。
サービス通信インターフェース201はUE 101、クライアント103、他のサービスプラットフォーム107、また通信ネットワーク105他の要素と通信するために使用され得る。サービスプラットフォーム107は、インターネットプロトコル、MMS、SMS、GPRS、その他あらゆる利用可能な通信方法等によって、サービス通信インターフェース201を通じてUE 101とクライアントから情報を受信できる。UE 101は、サービスデータ111のコンテンツを更新する等の様々な理由でサービスプラットフォーム107に情報を送信できる。さらに、特定の実施形態では、サービスデータ111は別のサービスプラットフォームに位置し、サービスプラットフォーム107はコンテンツが更新された旨の通知を受信する。その後、ランタイムモジュール205は更新コンテンツに関するフィードを購読するクライアント103に通知する更新エントリを生成する。
更新エントリの生成後、更新ドキュメントがクライアント103に公開されてもよい。さらに、特定の実施形態では、更新ドキュメントは前述のページ化モジュール203によってページに分割されてもよい。そのため、ページ化モジュール203は更新ドキュメントを1つ以上のページに分割する手段であり得る。更新情報は更新データ115に格納されてもよい。さらに、一定時間および/または(例えば、エントリの時間または数に基づく)トリガーイベントの後、アーカイブモジュール207は更新データ115のページおよび/または更新ドキュメントをアーカイブするために使用されてもよい。そのため、アーカイブモジュール207は1つ以上のページをアーカイブする手段であり得る。これらのページ化ドキュメントはクライアント103からの要求に基づいてクライアント103に提供されてもよい。
例として、クライアント103は識別子を復号し、更新ドキュメント、ページ、および/またはコンテンツを読み出す1つ以上の要素を含む。これらの要素の機能は1つ以上の要素に統合されるか、等価の機能を有する他の要素によって実行されてもよいことに留意されたい。本実施形態では、クライアント103はクライアント通信インターフェース221、ユーザインターフェース223制御ロジック225、そして更新モジュール227を備える。
クライアント通信インターフェース221はUE 101、サービスプラットフォーム107、または通信ネットワーク105の他の要素と通信するために使用され得る。クライアント103は、インターネットプロトコル、MMS、SMS、GPRS、その他あらゆる利用可能な通信方法等によって、クライアント通信インターフェース221を通じて情報を受信できる。サービスプラットフォーム107は、PSUPを通じてクライアント103に更新コンテンツを通知する等の様々な理由でクライアント103に情報を送信できる。そのため、クライアント通信インターフェース221は、更新ドキュメントおよび/またはページを要求および/またはポーリングすること、およびサービスプラットフォーム107に現存またはアーカイブ済みの更新ドキュメントおよび/またはページを受信することに使用される。
さらに、特定の実施形態では、クライアント通信インターフェース221はサービスデータ111および/またはサービスデータ111内の更新コンテンツからコンテンツを読み出せる。クライアント通信インターフェース221とサービス通信インターフェース201は、クライアントがコンテンツにアクセスし、コンテンツを利用および/または更新できるよう、アプリケーションプログラミングインターフェース(API)を通じて通信できるに。
ユーザインターフェース223は種々の通信方法を備えられる。例えば、ユーザインターフェース223は視覚要素(例えば、スクリーン)、オーディオ要素、物理的要素(例えば、振動)、その他の通信方法を含む出力を備えられる。ユーザ入力はタッチスクリーン型インターフェース、スクロール-クリック型インターフェース、ボタン型インターフェース、マイクロフォン等が含まれる。また、ユーザインターフェース223はクライアントデータベース113に格納される地図、ナビゲーション情報、カメライメージやストリーム、拡張現実(augmented reality)アプリケーション情報、POI、バーチャルリアリティ地図イメージ、パノラマイメージ、メッセージ、開発者情報等を表示するために使用されてもよい。入力は音声入力、テキスト入力、タイプ入力、タッチスクリーン入力、その他タッチ可能な入力等、1つ以上の方法を通じて行われる。
制御ロジック225は、クライアント103に関連するコンテンツがいつ更新されるかを決定するために、サービスプラットフォーム107から更新ドキュメントを読み出せる。制御ロジック225はさらに、更新ドキュメントのアラート(例えば、エントリ)に追随するために更新モジュール227を利用できる。その後、更新モジュール227は前述の更新ドキュメントおよび/またはページを処理できる。そのため、更新モジュール227は更新ドキュメントを処理する手段であり得る。さらに、更新モジュール227は更新ドキュメントのエントリに関連するコンテンツを決定し読み出すために使用される。例えば、コンテンツはサービスデータ111から読み出され得る。
図3は、一実施形態に従う、更新フィードをクライアントに生成する処理のフローチャートである。一実施形態では、サービスプラットフォーム107のランタイムモジュール205は処理300を実行し、例えば、図7で示されるプロセッサとメモリを備えるチップセットに実装される。そのため、ランタイムモジュール205は処理300の種々の部分を遂行する手段の他、サービスプラットフォーム107および/またはクライアント103の他の要素に連動する他の処理を遂行する手段も提供できる。サービスプラットフォーム107は、更新配信フィードに対する状態エントリの1つ以上が更新ドキュメントに追加されるべきと決定できる。ランタイムモジュール205は(例えば、コンテンツプラットフォーム、地図サービスプラットフォーム等の)サービスを提供する別のプラットフォームから受信した更新に基づいて、または、サービスデータ111に対する更新検出に基づいて、この決定を行える。ランタイムモジュール205は更新時刻、作者、タイトル、コンテンツに関連する購読情報、符号化情報等、コンテンツに関する他の情報に追加でアクセスしてもよい。
ステップ301で、ランタイムモジュール205は1つ以上のリソースの状態エントリを1つ以上含む更新ドキュメントを生成する。これらの状態エントリは更新コンテンツに対応し得る。さらに、1つ以上のリソースのうち少なくとも1つは個別の難読化識別子を使用して識別されてもよい。難読化識別子は非公開および/または競合他社データを保護するために使用されてもよい。例えば、サービスプラットフォーム107は、統一資源位置指定子(URL)が非公開情報を含むとき、フィードURLの完全リストを異なるクライアント103に公開してはならない。特定の実施形態では、難読化識別子によってサービスプロバイダが各リソースを識別するために任意の文字列および/または数字を特定できる。特定の実施形態では、難読化識別子を使用する唯一の方法は、リソースからのダウンロードによって、および/または別の手法で(例えば、サブスクリプションを通じて)サービスプラットフォーム107から受信することによってである。難読化識別子の別の利点は、それがURLよりも短くて済み、サービスプラットフォーム107の帯域オーバーヘッドを削減できることである。特定の実施形態では、難読化識別子はユーザ/クライアント識別子に基づいてもよい。そのため、同一の難読化識別子がURLに割り当てられてもよい。URLは、各クライアントがURLに基づいてコンテンツを読み出せるように、(例えば、リソースURLに難読化識別子をマッピングすることで)クライアント103に知らせてもよい。他の実施形態では、難読化識別子はURLハッシュ、または対応するクライアント103が復号できるような別の符号化であってもよい。
次にステップ303で、ランタイムモジュール205は更新ドキュメントを1つ以上のページに分割するためにページ化モジュール203を使用できる。更新ドキュメントの分割は、1つ以上の更新状態の数が閾値(例えば、最大値)を超えると決定することを含み得る。更新ドキュメントの分割はこの決定に基づいてもよい。例えば、更新の送信効率を上げるために、更新ドキュメントは特定のサイズまでに制限され、そのサイズに達するときは更新ドキュメントがページに分割されてもよい。別の実施形態では、ページは特定の時間に基づいて決定されてもよい。そのため、閾値時間に達すると、新しいページが生成される。さらに、ページ化モジュール203は、1つ以上のページに関連するメタデータに、1つ以上のページ間のリンクを1つ以上含んでもよい(ステップ305)。そうしたリンクの例は前述の「prev-archive」リンク、「current」リンク、「next-archive」リンク、「first」リンク等を含む。
またステップ307で、1つ以上のページはアーカイブされる。特定の実施形態では、アーカイブドキュメントは最新の更新ドキュメント(例えば、現在の更新ドキュメント)へのリンクを含むべきであり、前のアーカイブページがあれば「prev-archive」リンクを含んでよく、あるいは含まなくてはならない。そして、次のアーカイブページがあれば「next-archive」リンクを含むべきである。これらのリンクはランタイムモジュール205が利用可能なグローバル情報、および/またはアーカイブされるページに含まれる情報に基づいて決定されてもよい。そのため、1つ以上のページに関連するメタデータに、更新ドキュメントと更新ドキュメントのアーカイブ版の1つ以上との間のリンクが1つ以上含まれる。
ランタイムモジュール205は更新ドキュメントの要求をクライアントから受信する(ステップ309)。この要求は最新の更新ドキュメントおよび/または1つ以上のアーカイブ済み更新ドキュメントの要求を含んでもよい。最新の更新ドキュメントの場合、複数の要求が更新ドキュメントの各ページに対して(例えば、クライアントによるページ処理の疑似コード141の実装によって)受信され得る。アーカイブ済みページの場合、クライアント103は(例えば、前のアーカイブの情報を含む疑似コード123を通じて)クライアントの情報が最新であるかどうかに基づいて、個別にページを要求してもよい。そのため、ページは受信される要求に基づいて決定されてもよい。その後、ランタイムモジュール205は、少なくとも一部、要求しているクライアント103にページを伝送する(ステップ311)。
図4は、一実施形態に従う、コンテンツを読み出すための更新フィード処理のフローチャートである。一実施形態では、クライアント103の制御ロジック225は処理400を実行し、例えば、図7で示されるプロセッサとメモリを備えるチップセットに実装される。そのため、制御ロジック225は処理400の種々の部分を遂行する手段の他、クライアント103および/またはサービスプラットフォーム107の他の要素に連動する他の処理を遂行する手段も提供できる。図1Bおよび1Cで示される通り、クライアント103は全てのアーカイブ済み更新ドキュメントが確実に処理されてから新しい更新ドキュメントを処理するように、サービスプラットフォーム107をポーリングできる。
ステップ401で、制御ロジック225は1つ以上のリソースの更新状態を1つ以上含む更新ドキュメントを読み出す(例えば、要求し、受信する)。1つ以上のリソースのうち少なくとも1つは、個別の難読化識別子を使用して識別され得る。更新ドキュメントが読み出されると直ちに、制御ロジック225は、更新ドキュメントのアーカイブ版の1つ以上が処理されたかどうかを決定できる(ステップ403)。(例えば、更新ドキュメントの「prev-archive」リンクに基づいて)アーカイブ版があり、そのアーカイブ版はまだ処理されていないと決定された場合、制御ロジック225は、更新ドキュメントのアーカイブ版の少なくとも一部を読み出せる。特定の実施形態では、アーカイブ版は1つ以上のページを含む。
その後、ステップ405で制御ロジック225は、更新ドキュメントのアーカイブ版が処理されたかの決定に少なくとも一部基づいて、更新ドキュメント、更新ドキュメントのアーカイブ版の1つ以上、またはそれらの組み合わせを処理する。特定の実施形態では、最新の更新ドキュメントが処理される前に直前のアーカイブが処理される。そのため、直前のアーカイブが処理されたと制御ロジック225が決定するまで「prev-archive」リンクが続き、その後、各ドキュメントは最古から最新/現在の更新ドキュメントの順で処理される。この手法によって、同一の更新コンテンツに対する複数の変更がマークされる。この処理は、1つ以上の関心のあるリソースの1つ以上の更新状態の少なくとも1つをさらに識別し得る。関心リソースは例えば、クライアント103に関連するサブスクリプションに基づいてもよい。
制御ロジック225は処理中に、1つ以上の関心リソースに関連するコンテンツの各位置に対する1つ以上の個別の難読化識別子を復号する(ステップ407)。これらリソースの位置は、前述のPSUPの実装(例えば、URLハッシュ)に依存する種々の方法によって復号される。その後、コンテンツは復号された難読化識別子に基づいて(例えば、ウェブリンクの位置識別子に従って)読み出される(ステップ409)。前述の通り、難読化識別子の復号は難読化識別子をリソースのURLにマッピングする対応表またはデータベースをクライアント103で処理することを含んでもよい。
図5は、一実施形態に従う、更新フィード要求に基づいて更新情報を提供する処理のフローチャートである。一実施形態では、サービスプラットフォーム107のランタイムモジュール205は処理500を実行し、例えば、図7で示されるプロセッサとメモリを備えるチップセットに実装される。前述の通り、サービスプラットフォーム107はサービスデータ111に格納されるコンテンツに関連する更新を受信できる。
ステップ501で、ランタイムモジュール205はサービスデータ111を更新する更新情報を受信する。更新情報はUE 101、クライアント103、または通信ネットワーク105のあらゆるデバイスで伝送され得る。一実施形態では、情報は地図作製サービスに対応する。例えば、名所スポット(point of interest;POI)等のコンテンツは、ユーザが(例えば、UE 101を通じて)地図アプリケーション109を使用して(例えば、レビュー、写真等の)情報で更新されてもよい。POIはサービスプラットフォーム107のパートナー(例えば、更新されるPOIを所有するまたは責任のあるクライアント)に関連してもよい。サービスデータ111はランタイムモジュール205で更新される。
その後ステップ505で、ランタイムモジュール205は、処理300に関連して記載の通り、更新コンテンツの位置を示すリンクまたは難読化識別子を含む1つ以上の更新ドキュメントを生成する。そのため、更新されたPOIに関連するクライアント103は、図4の処理400を通じて更新コンテンツの位置を探し、更新情報の要求を伝送できる。ランタイムモジュール205は更新情報の要求を受信する(ステップ507)。特定の実施形態では、要求はクライアント103とサービスプラットフォーム107間のAPI(例えば、バックエンドAPI)を経由していてもよい。その後、ランタイムモジュール205は適切なコンテンツを決定し、更新情報を送信する(ステップ509)。特定の実施形態では、APIがクライアント103に更新情報に対応する動作(例えば、情報の公開、更新の禁止、ユーザが報告したPOI情報の不備を修正するといった他の動作等)の実行を許可してもよい。
前述の手法によって、更新ドキュメントは更新コンテンツのクライアントを効率的に更新するために使用され、使用する帯域幅も節約することができる。さらに前述の方法は、難読化識別子を使用し、非公開データを保護するために使用されてもよい。また、アーカイブ可能な複数ページの使用によって、サービスプロバイダがメモリと帯域幅を節約できる利点がもたらされる。
本明細書に記述される、更新フィードをクライアントに提供する処理は、ソフトウェア、ハードウェア、ファームウェア、またはソフトウェアおよび/またはファームウェアおよび/またはハードウェアの組み合わせを通じて有利に実装されてもよい。例えば、本明細書に記載される処理は、サービスの利用可能性に関連するユーザインターフェース・ナビゲーション情報を提供することを含み、プロセッサ、デジタル信号処理(DSP)チップ、特定用途向け集積回路(ASIC)、フィールドプログラマブル・ゲートアレイ(FPGA)等を通じて有利に実装されてもよい。前述の機能を実行するそうした例示的ハードウェアを以下に記載する。
図6は、本発明の実施形態を実装するために使用され得るコンピュータシステム600を示す。コンピュータシステム600特定のデバイスまたは装置に関して表現されているが、図6の他のデバイスまたは装置(例えば、ネットワーク要素、サーバ等)には、システム600の図示されるハードウェアと要素が配置され得ることに留意されたい。コンピュータシステム600は、本明細書で記載した通りに更新フィードをクライアントに提供するよう、(例えば、コンピュータプログラムコードまたは命令を通じて)プログラムされており、コンピュータシステム600の他の内部要素と外部要素間の信号を伝達するバス610等の通信機構を備える。(データともよばれる)情報は測定可能な現象、通常は電圧であるが、他の実施形態では、磁気、電磁気、圧力、化学、生物学、分子、原子、素粒子および量子力学の相互作用を含む現象の物理表現として表される。例えば、磁場のN極とS極、または零と零でない電圧は1ビット(bit)の2つの状態(0、1)を表現する。他の現象でも、基底がより大きい記数法を表現し得る。測定前の量子状態を同時に複数重ね合わせた状態は量子ビット(qubit)を表現する。1つ以上の数字の列は、数や文字コードを表現するために使用されるデジタルデータを構成する。幾つかの実施形態では、アナログデータと称す情報は、特定の範囲内の測定値の近傍連続によって表現される。コンピュータシステム600またはその一部は、信頼性のある更新フィードをクライアントに提供する1つ以上のステップを実行する手段を構成する。
バス610は、そこに接続されるデバイス間で情報が迅速に伝送されるよう、パラレルのデータ線を1つ以上備える。情報を処理する1つ以上のプロセッサ602がバス610に接続されている。
プロセッサ602(複数を含む)は、更新フィードをクライアントに提供するための関連するコンピュータプログラムコードによって特定される情報に関する一連の演算を実行する。コンピュータプログラムコードは、特定の機能を実行するためにプロセッサおよび/またはコンピュータシステムの演算命令を提供する、一連の命令または記述である。例えば、コードはプロセッサのネイティブ命令セットにコンパイルされるコンピュータプログラム言語で記述されてもよい。コードはネイティブ命令セット(例えば、マシン語)を使用して直接記述されてもよい。一連の演算は、バス610から情報を受け取ること、およびバス610に情報を配置することを含む。一連の演算は通常、加算、乗算、または、論理和(OR)、排他的論理和(XOR)、論理積(AND)等の論理演算によって、2単位以上の情報を比較し、情報単位の位置をシフトし、2単位以上の情報を統合することも含む。プロセッサによって実行され得る一連の演算における各演算は、プロセッサに対し、1つ以上の数字から成る演算コード等の「命令」と呼ばれる情報によって表現される。一連の演算コード等のプロセッサ602によって実行される一連の演算は、コンピュータシステム命令、または単にコンピュータ命令と呼ばれるプロセッサ命令を構成する。プロセッサは、物理的、電気的、磁気的、光学的、化学的または量子力学的要素として、それら要素間または要素単独、あるいはその組み合わせとして実装されてもよい。
コンピュータシステム600はバス610に接続するメモリ604を含んでもよい。ランダムアクセスメモリ(RAM)や他の動的ストレージデバイス等のメモリ604は、更新フィードをクライアントに提供するプロセッサ命令を含む情報を格納する。動的メモリはコンピュータシステム600によって変更され得る情報を格納できる。RAMはメモリアドレスと呼ばれる位置に情報を格納し、隣接するアドレスの情報を独立して読み出すことができる。メモリ604は、プロセッサ602がプロセッサ命令を実行中に一時的な値を格納するためにも使用される。コンピュータシステム600は、命令を含む静的情報でコンピュータシステム600によって変更されない情報を格納するための、バス610に接続される読み出し専用メモリ(ROM)606や他の静的ストレージデバイスを含んでもよい。特定のメモリは、電源を供給しないと格納された情報を喪失する揮発性メモリで構成される。また、コンピュータシステム600の電源が切られる、または他の理由で電源が供給されなくても維持される命令を含む情報を格納する、磁気ディスク、光ディスクまたはフラッシュカード等の不揮発性(持続性)格納デバイス608もバス610に接続される。
更新フィードをクライアントに提供する命令を含む情報は、プロセッサが使用するために、人が操作する英数字キーを備えるキーボードやセンサ等の外部入力デバイス612からバス610に提供される。センサは周辺の状態を検出し、コンピュータシステム600で情報表現するために利用される、測定可能な現象に適合する物理現象に検出結果を変換する。バス610に接続され、主として人とのやり取りに利用される他の外部デバイスは、文字や画像を出力するブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマスクリーン、プリンタ等のディスプレイデバイス614、およびディスプレイ614上に出力される小さいカーソル画像の位置を制御し、そこに出力されるグラフィック要素に関連するコマンドを与えるマウス、トラックボール、カーソルキー、モーションセンサ等のポインティングデバイス616を含む。特定の実施形態、例えば、コンピュータシステム600が人間からの入力なしで自動的に全ての機能を実行する実施形態においては、1つ以上の外部入力デバイス612、ディスプレイデバイス614、およびポインティングデバイス616のうち1つ以上が省かれる。
図示される実施形態では、特定用途向け集積回路(ASIC)620等の特定用途向けハードウェアがバス610に接続される。特定用途向けハードウェアは、特定用途でプロセッサ602が十分早く実行できない動作を実行できるように構成される。例示的な特定用途向けICは、ディスプレイ614に画像を生成するグラフィック・アクセラレータカード、ネットワーク経由で送信されるメッセージを暗号化・復号化する暗号化ボード、音声認識、および、より効率的にハードウェアに実装される、特定の複雑な一連の処理を繰り返し実行する、ロボットアームや医療用スキャン装置等の特殊な外部デバイスのインターフェースを含む。
コンピュータシステム600はまた、バス610に接続する1つ以上の通信インターフェース670の例を含む。通信インターフェース670は、プリンタ、スキャナ、外部ディスク等、自身のプロセッサと共に動作する種々の外部デバイスに接続し、単方向または双方向通信を提供する。一般に、この接続は、自身のプロセッサと共に種々の外部デバイスが接続されるローカルネットワーク680に接続するネットワークリンク678に接続されている。例えば、通信インターフェース670は、パーソナルコンピュータのパラレルポート、シリアルポート、ユニバーサルシリアルバス(USB)ポートでもよい。特定の実施形態では、通信インターフェース670はサービス総合デジタルネットワーク(ISDN)カード、デジタル加入者回線(DSL)カード、または、電話回線の対応する種別に接続する情報通信を提供する電話回線モデムでもよい。特定の実施形態では、通信インターフェース670はケーブルモデムであって、バス610の信号を同軸ケーブル経由の通信接続信号や光ファイバケーブル経由の通信接続光信号に変換する。別の実施例の様に、通信インターフェース670は、イーサネット(登録商標)等の互換性のあるローカルエリア・ネットワーク(LAN)でのデータ通信を提供するLANカードでもよい。また、無線リンクが実装されてもよい。無線リンクでは、通信インターフェース670は、デジタルデータ等の情報ストリームを運ぶ電気、音響、または赤外線や光信号を含む電磁気信号を送信、受信、または送受信する。例えば、携帯電話等の無線携帯デバイスでは、通信インターフェース670は無線送受信機と呼ばれる無線帯域の電磁気信号送信機および受信機を備える。特定の実施形態では、通信インターフェース670によってUE 101および/またはクライアント103が通信ネットワーク105に接続することができる。
本明細書で使用される「コンピュータ可読媒体」という術語は、プロセッサ602に実行命令を含む情報を提供する際に関与するあらゆる媒体を言及する。そうした媒体は様々な形態を取り、コンピュータ可読記憶媒体(例えば、不揮発性媒体)、および伝送媒体を含むが、これらに限定されない。不揮発性媒体等の非一時的媒体は、例えば、記憶デバイス608等の光または磁気ディスクを含む。揮発性媒体は、例えば、動的メモリ604を含む。伝送媒体は、include、例えば、同軸ケーブル、銅線、光ファイバケーブル、および、無線、光、赤外線を含む音波や電磁波等、導線やケーブル無しで空間を伝播する搬送波を含む。信号は、振幅、周波数、位相、偏極、または伝送媒体を通じて伝送されるその他の物理特性における、人工で過渡的な変化を含む。コンピュータ可読媒体の一般的形態は、例えば、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、CD-ROM、CDRW、DVD、その他の光媒体、パンチカード、紙テープ、光学式マークシート、その他穴や光学認識可能な印のパターンを伴う物理媒体、RAM、PROM、EPROM、フラッシュEPROM、その他のメモリチップやカートリッジ、搬送波、またはコンピュータが可読可能であるその他全ての媒体を含む。本明細書においてコンピュータ可読記憶媒体の術語は、伝送媒体を除く任意のコンピュータ可読媒体を言及するために使用される。
1つ以上の有形媒体における符号化されたロジックは、コンピュータ可読記憶媒体の処理命令およびASIC 620等の特定用途向けハードウェアの一方または両方を含む。
ネットワークリンク678は通常、伝送媒体を使用し、1つ以上のネットワークを通じて情報を利用または処理する他のデバイスと通信する。例えば、ネットワークリンク678はローカルネットワーク680を通じて、インターネットサービスプロバイダ(ISP)が操作するホストコンピュータ682または装置684に接続してもよい。ISP装置684では、現在一般的にインターネット690と呼ばれる、公衆、世界規模のパケット交換通信ネットワークを通じてデータ通信サービスを提供する。
インターネットに接続するサーバホスト692と呼ばれるコンピュータは、インターネット経由で受信される情報に応答してサービスを提供する処理を取り扱う。例えば、サーバホスト692は、ディスプレイ614に表示するビデオデータを表示する情報を提供する処理を取り扱う。システム600の要素は他のコンピュータシステム、例えば、ホスト682およびサーバ692内の種々の構成において配置され得ることに留意されたい。
本発明の少なくとも幾つかの実施形態は、本明細書で記述した全ての技術を実装するためのコンピュータシステム600の利用に関連する。本発明の一実施形態に従えば、これらの技術は、メモリ604に格納される1つ以上のプロセッサ命令から成るシーケンスの1つ以上を実行するプロセッサ602に応答して、コンピュータシステム600によって実行される。コンピュータ命令、ソフトウェアおよびプログラムコードとも呼ばれるこうした命令は、記憶デバイス608またはネットワークリンク678等、別のコンピュータ可読媒体からメモリ604に読み込まれてもよい。メモリ604に格納される一連の命令の実行は、プロセッサ602に本明細書で記述される1つ以上の方法ステップを実行させる。代替的実施形態では、ASIC 620等のハードウェアがソフトウェアに代わって、または協働して本発明を実装するために使用されてもよい。Thus、本発明の実施形態は、本明細書で特に記述されていない限り、ハードウェアおよびソフトウェアの特定の組み合わせに限定されない。
ネットワークリンク678および他のネットワークを通じて通信インターフェース670経由で伝送される信号は、コンピュータシステム600に、かつそこから情報を伝える。コンピュータシステム600はネットワーク680、690、その他を通じ、ネットワークリンク678および通信インターフェース670を経由して、プログラムコードを含む情報を受送信し得る。インターネット690を使用する実施例では、サーバホスト692は、インターネット690、ISP装置684、ローカルネットワーク680および通信インターフェース670を通じて、コンピュータ600から送信されるメッセージによって要求される特定のアプリケーションのためのプログラムコードを伝送する。受信されるコードは、受信後にプロセッサ602によって実行されてもよく、後で実行するためにメモリ604、記憶デバイス608、その他の不揮発性記憶媒体に格納されてもよく、またはその両方でもよい。またこうして、コンピュータシステム600が搬送波の信号形態からアプリケーションプログラムコードを取得してもよい。
コンピュータ可読媒体の種々の形態は、プロセッサ602が実行できるよう、命令、データ、または両方から成るシーケンスの1つ以上を搬送する際に使用されてもよい。例えば、命令およびデータは予めホスト682等のリモートコンピュータの磁気ディスクに格納されていてもよい。リモートコンピュータは命令およびデータをそこの動的メモリにロードし、モデムを使用して電話回線を通じてその命令およびデータを送信する。コンピュータシステム600のモデムは電話回線で命令およびデータを受信し、ネットワークリンク678として機能する赤外線搬送波の信号に命令およびデータを変換するために、赤外線送信機を使用する。通信インターフェース670として機能する赤外線検出器は赤外線信号で搬送される命令およびデータを受信し、命令およびデータを表現する情報をバス610に配置する。バス610はその情報をメモリ604に搬送するが、ここでプロセッサ602は、命令と共に送信されるデータの一部を使用して、命令を読み出し実行する。メモリ604に受信された命令およびデータは任意で、プロセッサ602による実行前または後の何れかで記憶デバイス608に格納されてもよい。
図7は、本発明の実施形態を実装し得るチップセットまたはチップ700を示す。チップセット700は、本明細書で記述する更新フィードをクライアントに提供するためにプログラムされ、例えば、1つ以上の物理的なパッケージ(例えば、チップ)に組み込んで、図6に示されるプロセッサおよびメモリ要素を含む。例として、物理的パッケージは、力学的強度、サイズの保持、および/または電気的相互作用の制限等の1つ以上の特性を与える構造体(例えば、基板)上に1つ以上の素材、要素、および/または配線を備える。特定の実施形態では、チップセット700は単一のチップに実装され得ることに留意されたい。さらに、特定の実施形態では、チップセットまたはチップ700は単一の「system on a chip」として実装され得ることにも留意されたい。またさらに、特定の実施形態では、別個のASICは使用されず、例えば、本明細書で記述する全ての関連する機能が(複数でもよい)プロセッサによって実行されることにも留意されたい。チップセットもしくはチップ700、またはそれらの一部は、サービスの利用可能性に関するユーザインターフェース・ナビゲーション情報を提供する1つ以上のステップを実行する手段を構成する。チップセットもしくはチップ700、またはそれらの一部は、更新フィードをクライアントに提供する1つ以上のステップを実行する手段を構成する。
一実施形態では、チップセットまたはチップ700は、チップセット700の要素間で情報を通すバス701等の通信機構を含む。プロセッサ703は、例えばメモリ705に格納される命令および処理情報を実行するために、バス701に接続されている。プロセッサ703は、独立して実行するように構成される1つ以上のプロセスコアを備えてもよい。マルチコア・プロセッサは、単一の物理パッケージ内で多重処理を可能にする。マルチコア・プロセッサの例は、2、4、8、またはそれを超える数のプロセスコアを備える。代替的または追加的例として、プロセッサ703は、命令、パイプライン、およびマルチスレッドの独立実行を可能にする、バス701経由で協働するマイクロプロセッサを備えてもよい。プロセッサ703はまた、特定の処理機能とタスクを実行する、1つ以上のデジタル信号プロセッサ(DSP)707等の特殊要素、または1つ以上の特定用途向け集積回路(ASIC)709を伴ってもよい。DSP 707は通常、現実世界の信号(例えば、音声)をプロセッサ703とは独立にリアルタイムで処理するように構成される。同様に、ASIC 709もより一般的なプロセッサで容易に処理できない特殊機能を実行するように構成され得る。本明細書で記述される発明の機能実行を補助する他の特殊要素は、1つ以上のフィールドプログラマブル・ゲートアレイ(FPGA)(図示せず)、1つ以上のコントローラ(図示せず)、または1つ以上のその他の特定用途向けコンピュータチップを含んでもよい。
一実施形態では、チップセットまたはチップ700は、1つ以上のプロセッサと、該プロセッサをサポートするおよび/またはそれに関連するおよび/またはそのための、ソフトウェアおよび/またはファームウェアを単に備えてもよい。
プロセッサ703および付随要素は、バス701経由でメモリ705に接続されている。実行可能な命令であって、それが実行される際、更新フィードをクライアントに提供するために本明細書で記述される発明のステップを実行する、実行可能な命令を格納するために、メモリ705は動的メモリ(例えば、RAM、磁気ディスク、書き込み可能光ディスク等)および静的メモリ(例えば、ROM、CD-ROM等)の両方を含む。メモリ705はまた、本発明のステップの実行に関連する、またはその実行によって生成されるデータを格納する。
図8は、一実施形態に従う、図1Aのシステムで動作し得る通信のための携帯端末(例えば、ハンドセット)の例示的要素の図である。特定の実施形態では、携帯端末801またはその一部は、コンテンツを読み出すおよび/または更新する1つ以上のステップを実行する手段を構成する。通常、無線受信機は、フロントエンドおよびバックエンド特性によって定義される。受信機のフロントエンドは無線周波数(RF)回路の全部を網羅し、一方、バックエンドはベースバンド回路を網羅する。本明細書で使用されるように、「回路」は次の両方を言及する:(1)ハードウェアのみの実装(アナログおよび/またはデジタル回路のみの実装等)、および(2)回路およびソフトウェア(および/またはファームウェア)の組み合わせ(例えば、特定の状況に該当すれば、デジタル信号プロセッサを含むプロセッサ、ソフトウェア、および携帯電話またはサーバ等の装置に種々の機能を実行させるように協働するメモリの組み合わせ等)。この「回路」の定義は特許請求の範囲を含む本明細書でのこの語句の全てに対して適用される。さらに実施例として、本明細書で使用され、かつ特定の状況に該当すれば、「回路」は単に(複数でもよい)プロセッサおよび付随するソフトウェアおよび/またはファームウェアの実装を取り扱う。「回路」はまた、特定の状況に該当すれば、例えば、携帯電話のベースバンド集積回路またはアプリケーションプロセッサ集積回路、または携帯ネットワークデバイスや他のネットワークデバイスにおける同様の集積回路を取り扱う。
電話機に付属の内部要素には、メイン制御装置(MCU)803、デジタル信号プロセッサ(DSP)805、および、マイクロフォン・ゲイン制御装置およびスピーカー・ゲイン制御装置を備える受信機/送信機が含まれる。メインディスプレイ装置807は、コンテンツを読み出すおよび/または更新するステップを実行またはサポートする種々のアプリケーションおよび携帯端末の機能のサポートにより、ユーザに対して表示を行う。ディスプレイ807は、携帯端末(例えば、携帯電話)のユーザインターフェースの少なくとも一部を表示するよう構成されるディスプレイ回路を備える。さらに追加として、ディスプレイ807およびディスプレイ回路は、携帯端末の少なくとも一部の機能のユーザ制御を支援するように構成される。オーディオ機能回路809はマイクロフォン811およびマイクロフォン811から出力される音声信号を増幅するマイクロフォン増幅器を備える。マイクロフォン811から出力される増幅された音声信号は符号器/復号器(コーデック)813に入る。
無線部815は、携帯通信システムに含まれる基地局とアンテナ817経由で通信するために出力増幅と周波数変換を行う。当該技術分野で公知の通り、出力増幅器(PA)819および送信機/変調回路はMCU 803に応答し、デュプレクサ821、サーキュレータまたはアンテナスイッチに接続するPA 819からの出力と共に動作する。PA 819はまた、バッテリインターフェースおよび電源制御装置820にも接続されている。
携帯端末801の使用中、ユーザはマイクロフォン811に向かって話し、ユーザの音声は検出されるバックグラウンド雑音と共にアナログ電圧に変換される。その後、アナログ電圧はアナログ・デジタル変換器(ADC)823を通じてデジタル信号に変換される。制御装置803はデジタル信号をDSP 805に送り、そこで音声符号化、チャネル符号化、暗号化、およびインターリービング等の処理が行われる。一実施形態では、処理後の音声信号は、個別に図示されていない装置によって、global evolution(EDGE)、汎用パケット無線サービス(GPRS)、GSM(登録商標)、インターネットプロトコル・マルチメディアサブシステム(IMS)、universal mobile telecommunications system(UMTS)等の携帯伝送プロトコルを使用して、また同様にその他の適切な無線媒体、例えば、microwave access(WiMAX)、Long Term Evolution(LTE)ネットワーク、符号分割多元接続(CDMA)、WCDMA(登録商標)、wireless fidelity(WiFi)、衛星、および同等のものを通じて、符号化される。
その後、符号化信号は、位相と振幅の歪み等、空間伝送中に生じる周波数依存の問題を補償するイコライザ825に送られる。ビットストリームを均一化した後、変調器827は処理信号とRFインターフェース829で生成されるRF信号を合成する。変調器827は周波数または位相変調方式によって正弦波を生成する。伝送用信号を準備するために、アップコンバータ831は変調器827から出力される正弦波とシンセサイザ833によって生成される別の正弦波を合成し、所望の伝送周波数を得る。その後、信号はPA 819で適正の出力レベルまで増幅され、送信される。特定のシステムでは、PA 819は、ネットワーク基地局から受信される情報によってDSP 805で利得が制御される、可変利得増幅器として動作する。その後、信号はデュプレクサ821でフィルタされ、任意で、最大出力伝送を行えるようインピーダンス整合を行うアンテナカプラ835に送信される。最後、信号はアンテナ817経由でローカル基地局に伝送される。自動利得制御(AGC)は受信機の最終段における利得制御で行われてもよい。信号はそこから別の携帯電話であり得る遠隔の電話、他の携帯電話、または公衆交換電話ネットワーク(PSTN)や他の電話ネットワークに接続する固定電話に転送されてもよい。
携帯端末801に伝送される音声信号はアンテナ817経由で受信され、直後に低ノイズ増幅器(LNA)837で増幅される。ダウンコンバータ839は搬送周波数を下げ、復調器841はデジタルビットストリームだけを残しての残りのRF成分を除去する。その後、信号はイコライザ825を通過し、DSP 805で処理される。デジタル・アナログ変換器(DAC)843は信号を変換し、その出力はスピーカー845を通じてユーザに伝送されるが、これらの処理は、中央処理装置(CPU)(図示せず)として実装され得るメイン制御装置(MCU)803の制御下で実行される。
MCU 803はキーボード847からの入力信号を含む種々の信号を受信する。キーボード847および/または他のユーザ入力装置(例えば、マイクロフォン811)と組み合わせられるMCU 803は、ユーザ入力を管理するユーザインターフェース回路を備える。MCU 803は、コンテンツを読み出すおよび/または更新するための携帯端末801の少なくとも一部の機能のユーザ制御を支援するユーザインターフェース・ソフトウェアを実行する。MCU 803はまた、ディスプレイコマンドと切り替えコマンドをディスプレイ807と音声出力切り替え制御器に、それぞれ送る。さらに、MCU 803はDSP 805と情報をやり取りし、任意で付属されるSIMカード849とメモリ851にアクセスできる。加えて、MCU 803は端末に必須の種々の制御機能を実行する。DSP 805は、実装に応じて、音声信号に関する従来のデジタル処理機能のあらゆるバリエーションを実行してもよい。加えて、DSP 805はマイクロフォン811で検出される信号から周辺環境のノイズレベルを決定し、携帯端末801のユーザの自然な傾向を補償するように選択されるレベルにマイクロフォン811の利得を設定する。
コーデック813はADC 823およびDAC 843を備える。メモリ851は着信音データを含む種々のデータを格納し、例えば、グローバルなインターネット経由で受信される音楽データを含む他のデータも格納し得る。ソフトウェアモジュールはRAMメモリ、フラッシュメモリ、レジスタ、または当該技術分野で公知のあらゆる形態の書き込み可能記憶媒体に常駐している。メモリデバイス851は、単一のメモリ、CD、DVD、ROM、RAM、EEPROM、光記憶媒体、またはデジタルデータを格納し得る他のあらゆる不揮発性記憶媒体であってよいが、これらに限定されない。
任意で組み込まれるSIMカード849は、例えば、携帯電話番号、サービス提供キャリア、加入者詳細情報、およびセキュリティ情報等の重要情報を格納する。SIMカード849は予め無線ネットワーク上で携帯端末801を識別するために利用される。SIMカード849はまた、個人の電話番号登録データ、テキストメッセージ、およびユーザ固有の携帯端末の設定情報を格納するメモリを備える。
本発明は多数の実施形態および実装形態に関連して記述されているが、本発明はそのように限定されるものではなく、種々の自明な変更および同等の構成も網羅している。そしてこれらは、添付の特許請求の範囲における請求項にも含まれる。本発明の特定事項はこれら請求項間の特定の組み合わせによって記述されるが、これらの特定事項には任意の組合せおよび任意の順序が可能であることに留意されたい。