特許第5945367号(P5945367)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アリババ・グループ・ホールディング・リミテッドの特許一覧

特許5945367ウェブページ間で通信を行うための方法およびシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5945367
(24)【登録日】2016年6月3日
(45)【発行日】2016年7月5日
(54)【発明の名称】ウェブページ間で通信を行うための方法およびシステム
(51)【国際特許分類】
   G06F 13/00 20060101AFI20160621BHJP
【FI】
   G06F13/00 540C
【請求項の数】21
【全頁数】35
(21)【出願番号】特願2015-521831(P2015-521831)
(86)(22)【出願日】2013年7月12日
(65)【公表番号】特表2015-526802(P2015-526802A)
(43)【公表日】2015年9月10日
(86)【国際出願番号】US2013050212
(87)【国際公開番号】WO2014011962
(87)【国際公開日】20140116
【審査請求日】2015年2月18日
(31)【優先権主張番号】201210244355.6
(32)【優先日】2012年7月13日
(33)【優先権主張国】CN
(31)【優先権主張番号】13/939,870
(32)【優先日】2013年7月11日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110000028
【氏名又は名称】特許業務法人明成国際特許事務所
(72)【発明者】
【氏名】シェン・ジエンピーン
(72)【発明者】
【氏名】チウ・ホワ
【審査官】 佐々木 洋
(56)【参考文献】
【文献】 特開2000−267964(JP,A)
【文献】 米国特許出願公開第2005/0229188(US,A1)
【文献】 特開2002−182971(JP,A)
【文献】 特開2000−020357(JP,A)
【文献】 米国特許出願公開第2012/0165076(US,A1)
【文献】 特開2011−065439(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
クライアントで表示されるページの間で通信を行うための方法であって、
第1のページが第2のページにデータを伝送するか否かを検出し、
前記第1のページが前記第2のページに前記データを伝送する場合に、前記第1のページおよび前記第2のページを格納する現在のページグループ内における前記第2のページの通信識別子を取得し、前記現在のページグループは少なくとも2つの予め確立されたページを含み、前記通信識別子は前記現在のページグループが確立された時に前記ページグループ内の各ページに割り当てられ、前記現在のページグループ内の各ページは前記第2のページの前記通信識別子を格納し、前記第1のページによって格納された前記現在のページグループ内の前記第2のページの前記通信識別子を取得することは、
前記第1のページのFLASH領域内に格納されたFLASHグループ内の他のFLASHファイルの識別子を取得することを備え、前記FLASHグループは、前記現在のページグループ内の前記少なくとも2つのページに対応するFLASHファイルを含み、前記第1のページの前記FLASH領域は、前記FLASHグループ内の前記他のFLASHファイルの前記識別子を格納し、
前記通信識別子に基づいて、前記第1のページおよび前記第2のページの間の通信リンクを確立し、
前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信することであって、
前記FLASHグループ内の前記他のFLASHファイルの前記格納された識別子に基づいて、送信される前記第1のページ内のFLASHファイルを呼び出すことであって、前記データを含むメッセージ受信要求を前記他のFLASHファイルに送信することを備え、
前記他のFLASHファイルを呼び出して、前記データを取得するために前記メッセージ受信要求を受信すること、
を備える、前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信すること
を備える、方法。
【請求項2】
請求項1に記載の方法であって、前記第1のページが前記第2のページにデータを伝送するか否かを検出することは、
前記データの属性情報に基づいて、前記第1のページの前記現在のページグループを決定することを備える、方法。
【請求項3】
請求項に記載の方法であって、前記現在のページグループの確立は、
在のページの前記データの属性情報を取得し、
前記属性情報に基づいて、前記現在のページが前記現在のページグループに追加されるべきか否かを評価し、
前記現在のページが前記現在のページグループに追加されると評価された場合に、前記現在のページのFLASHファイルを呼び出して、ホスト接続FLASHファイルを確立する動作を開始し、
前記FLASHグループがすでに前記ホスト接続FLASHファイルを持っているか否かを判定し、
前記FLASHグループが前記ホスト接続FLASHファイルを持っている場合に、前記FLASHグループへの前記現在のページのFLASHファイルの追加を呼び出して、現在の非ホスト接続FLASHファイルを確立し、現在の非ホスト接続識別子を生成および記録し、
前記現在の非ホスト接続FLASHファイルを呼び出して、前記現在の非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納して前記FLASHグループ内の各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、ホスト接続識別子および前記非ホスト接続識別子を含み、
前記非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納すること、
を備える、方法。
【請求項4】
請求項に記載の方法であって、前記FLASHグループがホスト接続FLASHファイルを持たない場合に、
前記現在のページの前記FLASHファイルを前記ホスト接続FLASHファイルとして確認し、ホスト接続識別子を生成および記録し、
前記FLASHグループが少なくとも1つの非ホスト接続FLASHファイルを持つ場合に、前記FLASHグループ内の各非ホスト接続FLASHファイルを呼び出して、非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を前記各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、前記ホスト接続識別子および前記各非ホスト接続識別子を含み、
前記各非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納すること、
を備える、方法。
【請求項5】
請求項に記載の方法であって、前記現在の非ホスト接続識別子を生成することは、ランダムに、または、特定の順序に基づいて、前記現在の非ホスト接続識別子を生成することを備える、方法。
【請求項6】
請求項に記載の方法であって、さらに、
前記FLASHグループ内の前記非ホスト接続FLASHファイルを呼び出して、前記ホスト接続FLASHファイルを再確立する動作を開始し、
前記ホスト接続FLASHファイルが無効になったか否かを判定し、
前記ホスト接続FLASHファイルが無効になった場合に、前記ホスト接続FLASHファイルを確立する動作を再開した前記非ホスト接続FLASHファイルを新たなホスト接続FLASHファイルとして確認し、新たなホスト接続識別子を生成および記録し、
前記新たなホスト接続FLASHファイルを呼び出して、前記新たなホスト接続識別子に基づいて前記FLASHグループ識別子を更新し、前記更新されたFLASHグループ識別子を前記FLASHグループ内の前記非ホスト接続FLASHファイルに送信し、
前記非ホスト接続FLASHファイルに基づいて前記FLASHグループ識別子を更新して、前記更新されたFLASHグループ識別子を用いること、
を備える、方法。
【請求項7】
請求項1に記載の方法であって、さらに、
前記データに基づいて、前記第2のページにページ関連動作を実行することを備え、前記データは、オペレーショナルデータである、方法。
【請求項8】
請求項1に記載の方法であって、さらに、
前記データに従って、前記第2のページを更新することを備え、前記データは、更新データである、方法。
【請求項9】
請求項に記載の方法であって、
送信される前記第1のページ内の前記FLASHファイルを呼び出すことは、前記FLASHグループ内の前記他のFLASHファイルの前記識別子に基づいて、前記データを含む前記メッセージ受信要求を前記他のFLASHファイルに送信することを含み、
前記他のFLASHファイルは、前記メッセージ受信要求を受信して前記データを取得するために、receivemessage関数を用いる、方法。
【請求項10】
請求項1に記載の方法であって、前記現在のページグループ内の前記ページは、同一生成元ページである、方法。
【請求項11】
クライアントで表示されるページの間で通信を行うためのシステムであって、
少なくとも1つのプロセッサであって、
第1のページが第2のページにデータを伝送するか否かを検出し、
前記第1のページが前記第2のページに前記データを伝送する場合に、前記第1のページおよび前記第2のページを格納する現在のページグループ内の前記第2のページの通信識別子を取得し、前記現在のページグループは少なくとも2つの予め確立されたページを含み、前記通信識別子は前記現在のページグループが確立された時に前記現在のページグループ内の各ページに割り当てられ、前記現在のページグループ内の各ページは前記第2のページの前記通信識別子を格納し、前記第1のページによって格納された前記現在のページグループ内の前記第2のページの前記通信識別子を取得することは、
前記第1のページのFLASH領域内に格納されたFLASHグループ内の他のFLASHファイルの識別子を取得することを備え、前記FLASHグループは、前記現在のページグループ内の前記少なくとも2つのページに対応するFLASHファイルで構成され、前記第1のページの前記FLASH領域は、前記FLASHグループ内の前記他のFLASHファイルの前記識別子を格納し、
前記通信識別子に基づいて前記第1のページおよび前記第2のページの間の通信リンクを確立し、
前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信することであって
前記FLASHグループ内の前記他のFLASHファイルの前記格納された識別子に基づいて、送信される前記第1のページ内のFLASHファイルを呼び出し、前記FLASHファイルを呼び出すことは、前記データを含むメッセージ受信要求を前記他のFLASHファイルに送信することを含み、
前記他のFLASHファイルを呼び出して、前記データを取得するために前記メッセージ受信要求を受信することを備える、
前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信するように構成されている、少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項12】
請求項11に記載のシステムであって、前記第1のページが前記第2のページにデータを伝送するか否かを検出することは、
前記データの属性情報に基づいて、前記第1のページの前記現在のページグループを決定することを備える、システム。
【請求項13】
請求項11に記載のシステムであって、前記ページグループの確立は、
在のページの前記データの属性情報を取得し、
前記属性情報に基づいて、前記現在のページが前記現在のページグループに追加されるべきか否かを評価し、
前記現在のページが前記現在のページグループに追加されると評価された場合に、前記現在のページのFLASHファイルを呼び出して、ホスト接続FLASHファイルを確立する動作を開始し、
前記FLASHグループがすでに前記ホスト接続FLASHファイルを持っているか否かを判定し、
前記FLASHグループが前記ホスト接続FLASHファイルを持っている場合に、前記FLASHグループへの前記現在のページのFLASHファイルの追加を呼び出して、現在の非ホスト接続FLASHファイルを確立し、現在の非ホスト接続識別子を生成および記録し、
前記現在の非ホスト接続FLASHファイルを呼び出して、前記現在の非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納して前記FLASHグループ内の各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、ホスト接続識別子および前記非ホスト接続識別子を含み、
前記非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納することを備える、システム。
【請求項14】
請求項13に記載のシステムであって、前記FLASHグループがホスト接続FLASHファイルを持たない場合に、
前記現在のページの前記FLASHファイルを前記ホスト接続FLASHファイルとして確認し、ホスト接続識別子を生成および記録し、
前記FLASHグループが少なくとも1つの非ホスト接続FLASHファイルを持つ場合に、前記FLASHグループ内の各非ホスト接続FLASHファイルを呼び出して、非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を前記各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、前記ホスト接続識別子および前記各非ホスト接続識別子を含み、
前記各非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納する、システム。
【請求項15】
請求項13に記載のシステムであって、前記現在の非ホスト接続識別子を生成することは、ランダムに、または、特定の順序に基づいて、前記現在の非ホスト接続識別子を生成することを備える、システム。
【請求項16】
請求項13に記載のシステムであって、前記プロセッサは、さらに、
前記FLASHグループ内の前記非ホスト接続FLASHファイルを呼び出して、前記ホスト接続FLASHファイルを再確立する動作を開始し、
前記ホスト接続FLASHファイルが無効になったか否かを判定し、
前記ホスト接続FLASHファイルが無効になった場合に、前記ホスト接続FLASHファイルを確立する動作を再開した前記非ホスト接続FLASHファイルを新たなホスト接続FLASHファイルとして確認し、同時に、新たなホスト接続識別子を生成および記録し、
前記新たなホスト接続識別子に基づいて前記FLASHグループ識別子を更新するために前記新たなホスト接続FLASHファイルを呼び出し、前記更新されたFLASHグループ識別子を前記FLASHグループ内の前記非ホスト接続FLASHファイルに送信し、
前記非ホスト接続FLASHファイルに基づいて前記FLASHグループ識別子を更新して、前記更新されたFLASHグループ識別子を用いるよう構成されている、システム。
【請求項17】
請求項11に記載のシステムであって、前記プロセッサは、さらに、
前記データに基づいて、前記第2のページにページ関連動作を実行するよう構成されており、前記データは、オペレーショナルデータである、システム。
【請求項18】
請求項11に記載のシステムであって、前記少なくとも1つのプロセッサは、さらに、
前記データに従って、前記第2のページを更新するよう構成されており、前記データは、更新データである、システム。
【請求項19】
請求項11に記載のシステムであって、
送信される前記第1のページ内の前記FLASHファイルを呼び出すことは、前記FLASHグループ内の前記他のFLASHファイルの前記識別子に基づいて、前記データを含む前記メッセージ受信要求を前記他のFLASHファイルに送信することを備え、
前記他のFLASHファイルは、前記メッセージ受信要求を受信して前記データを取得するために、receivemessage関数を用いる、システム。
【請求項20】
請求項11に記載のシステムであって、前記現在のページグループ内の前記ページは、同一生成元ページである、システム。
【請求項21】
クライアントで表示されるページの間で通信を行うためのコンピュータプログラムであって、
第1のページが第2のページにデータを伝送するか否かを検出するための機能と、
前記第1のページが前記第2のページに前記データを伝送する場合に、前記第1のページおよび前記第2のページを格納する現在のページグループ内の前記第2のページの通信識別子を取得するための機能と、前記現在のページグループは少なくとも2つの予め確立されたページを含み、前記通信識別子は前記現在のページグループが確立された時に前記現在のページグループ内の各ページに割り当てられ、前記現在のページグループ内の各ページは前記第2のページの前記通信識別子を格納し、前記第1のページによって格納された前記現在のページグループ内の前記第2のページの前記通信識別子を取得することは、
前記第1のページのFLASH領域内に格納されたFLASHグループ内の他のFLASHファイルの識別子を取得することを備え、前記FLASHグループは、前記現在のページグループ内の前記少なくとも2つのページに対応するFLASHファイルで構成され、前記第1のページの前記FLASH領域は、前記FLASHグループ内の前記他のFLASHファイルの前記識別子を格納し、
前記通信識別子に基づいて前記第1のページおよび前記第2のページの間の通信リンクを確立するための機能と
前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信するための機能であって
前記FLASHグループ内の前記他のFLASHファイルの前記格納された識別子に基づいて、送信される前記第1のページ内のFLASHファイルを呼び出し、前記FLASHファイルを呼び出すことは、前記データを含むメッセージ受信要求を前記他のFLASHファイルに送信することを含み、
前記他のFLASHファイルを呼び出して、前記データを取得するために前記メッセージ受信要求を受信することを備える、
前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信するための機能と、をコンピュータによって実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、発明の名称を「A METHOD AND DEVICE FOR COMMUNICATION BETWEEN CLIENT PAGES(クライアントページ間で通信を行うための方法およびシステム)」とする、2012年7月13日出願の中国特許出願第201210244355.6号に基づく優先権を主張する。
【0002】
本願は、クライアントページの間で通信を行うための方法およびシステムに関する。
【背景技術】
【0003】
一般的に、クライアントデバイス上のブラウザに表示された複数のウェブページが、それらの間で直接通信することはできない。一般に、あるページが別のページと直接通信することはできないので、複数のページの間で直接的にデータを伝送することは一般に不可能である。
【0004】
例えば、間接的にデータを更新する3つの方法は以下の通りである。
【0005】
データを更新する第1のアプローチは、HTML5のlocalstorageを利用することである。換言すると、ブラウザは、サーバから更新データを取得する。次いで、ブラウザは、更新されるブラウザ自身のページの各々に、取得した更新データを送信する。現在、多くのブラウザがlocalstorageをサポートしておらず、異なるブラウザは互いに通信できない。異なるブラウザは、異なる時間サイクルに基づいて更新データを取得するので、通常は、様々なブラウザの間で、ページ更新が同期されない。
【0006】
データを更新する第2のアプローチは、JavaScript(登録商標)(JS)ポーリングアプローチである。このアプローチでは、クライアントは、サーバから更新データを取得する。各ページは、定期的に、新しいデータがあるか否かを問い合わせるためにサーバにポーリングする。ページデータの適時性を確保するために、ポーリング時間は、できるだけ短く設定される。ポーリング時間が短く設定されるほど、ページの機能への影響が大きくなり、ポーリングされるページ数が多くなるほど、システム全体への影響が大きくなる。サーバデータが変更されたのに、ページが適時に更新を要求しなかった場合、ページの正確さに影響が出る。
【0007】
データを更新する第3のアプローチは、各ページについて、サーバとの長距離リンク(long link)を構築することである。長距離リンクは、HTTPの持続的接続、HTTPキープアライブ、または、HTTPの接続再利用としても知られる。長距離リンクは、同じTCP接続を用いて複数のHTTP要求/応答を送受信することができる。そうでなければ、一つ一つの要求/応答ペアのために、新たなTCP接続が開かれる必要がある。長距離リンクの利用は、HTTPパフォーマンスを向上させるのに役立つと共に、即時性を保証するが、多数のページがサーバとの間でやり取りされるので、このアプローチは、帯域幅リソースを浪費する。
【0008】
したがって、クライアントページ間の直接通信が有益である。
【図面の簡単な説明】
【0009】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0010】
図1】ページ間で通信を行う処理の一実施形態を示すフローチャート。
【0011】
図2】通信リンクを確立する処理の一実施形態を示すフローチャート。
【0012】
図3】ページ間で通信を行う処理の別の実施形態を示すフローチャート。
【0013】
図4】現在の非ホスト接続識別子を生成する処理の一実施形態を示すフローチャート。
【0014】
図5】ホスト接続FLASHファイルおよび非ホスト接続FLASHファイルを確立する処理を示す一実施形態の図。
図6】ホスト接続FLASHファイルおよび非ホスト接続FLASHファイルを確立する処理を示す一実施形態の図。
図7】ホスト接続FLASHファイルおよび非ホスト接続FLASHファイルを確立する処理を示す一実施形態の図。
図8】ホスト接続FLASHファイルおよび非ホスト接続FLASHファイルを確立する処理を示す一実施形態の図。
【0015】
図9】ページ間で通信を行う処理の一実施形態を示すフローチャート。
【0016】
図10】同期更新を行う処理の一実施形態を示すフローチャート。
【0017】
図11】ページ間で通信を行うためのデバイスの一実施形態を示す構造図。
【0018】
図12A】通信ユニットの一実施形態を示す構造図。
【0019】
図12B】ページ間で通信を行うためのデバイスの一実施形態を示す構造図。
図12C】ページ間で通信を行うためのデバイスの一実施形態を示す構造図。
図12D】ページ間で通信を行うためのデバイスの一実施形態を示す構造図。
【0020】
図13】ページ間通信システムの一実施形態を示す図。
【発明を実施するための形態】
【0021】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【0022】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術要素については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0023】
図1は、ページ間で通信を行う処理の一実施形態を示すフローチャートである。処理100は、図13のクライアント1310によって実施されてよく、以下を含む。
【0024】
工程110では、クライアントは、ページが他のページにデータを送信するか否かを検出する。
【0025】
他のページに送信されるデータは、ページ間通信の異なる応用例に応じて異なる。一例では、ページが更新される場合に、更新データが、更新を要求するページに送信される。別の例では、同期ページ動作が実行される場合に、新しい動作を命令するオペレーショナルデータが、1つのページから別のページに送信される。具体的な応用例を挙げて説明する。
【0026】
工程120では、ページが他のページにデータを送信する場合に、クライアントは、ページによって格納された現在のページグループ内の他のページの通信識別子を取得する。
【0027】
いくつかの実施形態において、ページグループは、予め確立されたページグループである。各グループは、少なくとも2つのページを有する。通信識別子は、ページグループが確立される時に各ページグループ内の各ページに割り当てられる。各ページグループ内の各ページは、各ページグループ内の他のページの通信識別子を格納する。これらの通信識別子は、各ページを一意的に識別するために用いられる識別子である。いくつかの実施形態において、識別子は、所定のルールに従って生成される。例えば、第1のページの識別子をpage_1、第2のページの識別子をpage_2とする、など。いくつかの実施形態において、通信リンクが、通信識別子に基づいてページ間で確立される。例えば、ページ識別子がpage_1である場合、通信リンクは、comm_page_1である、など。いくつかの実施形態において、ページ識別子は通信リンクに対応しており、ページが互いに通信する時に、通信リンクを用いて通信が実行される。
【0028】
いくつかの実施形態では、ページグループが作成される。例えば、1つのウェブアドレスに基づいて開かれる複数のページが、複数のページの同期更新のためのページグループとして設定される。いくつかの実施形態では、ユーザがアカウントを有するウェブサイト、例えば、QQ(Qzone(商標))などのソーシャルネットワーキングサイト、Tencent WeiboまたはSina Weiboなどのマイクロブログ上のユーザのプロフィール/個人ページに基づいて、同じユーザに対応するページを含む1つのページグループが設定される。したがって、Qzoneページ署名およびその他のメッセージが、マイクロブログページと同期的に更新される。ページグループは、当業者が理解する任意の方法で設定できる。
【0029】
ページグループは、異なる基準に基づいて確立されるので、同じページが、複数のページグループに属しうる。したがって、データの送信が検出された場合、データの属性情報に基づいて現在のページグループも決定される。いくつかの実施形態において、ページグループは、例えば、rain_group、cloud_groupなどと名付けられる。次いで、検出されたデータは、現在のページグループのページ間で伝送される。
【0030】
いくつかの実施形態において、データの属性情報は、通例、データの伝送属性情報である。いくつかの実施形態において、複数のページが、グループ(例えば、cloudと名付けられたグループなど)を形成し、そのグループのページは、cloud_page_host、cloud_page_1、cloud_page_2などを含む。cloud_page_hostはデータ送信に関与し、グループの他のページはそのデータを受信する。データが変更されると、変更されたデータは、ホストページを介して他のページに送信される。例えば、データがQzoneまたはマイクロブログに表示された署名メッセージである場合、現在のページグループは、Qzoneおよびマイクロブログのページを含むページグループである。データが同一生成元ページの間で送信される場合、現在のページグループは、同一生成元ページで構成されたページグループである。
【0031】
工程130では、クライアントは、通信識別子に基づいて、ページと他のページとの間の通信リンクを確立し、その通信リンクを用いて、他のページに伝送されるべきデータを送信する。
【0032】
図2は、通信リンクを確立する処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理200は、処理100の工程130を実行するために用いられ、以下を含む。
【0033】
工程210では、クライアントは、伝送されるべきデータを有するページのFLASH領域に格納されたFLASHグループ内の他のFLASHファイルの識別子を取得する。FLASHグループは、現在のページグループ内のページに対応するFLASHファイルを含む。各ページのFLASH領域は、FLASHグループ内の他のFLASHファイルの識別子を格納する。FLASHとは、Adobe Flashのことである。
【0034】
工程220では、クライアントは、FLASHグループ内の他のFLASHファイルの格納された識別子に基づいて、送信されるページ内のFLASHファイルを呼び出す。FLASHファイルの呼び出しは、他のFLASHファイルに伝送されるデータを含むメッセージ受信要求を送信することを含む。FLASHは、グループを作成するために用いられ、各グループメンバは、Flashによって作成されたswfファイルであり、データがグループ内のメンバの間で同期される。swfファイルは、Adobe Flash形式である。
【0035】
他のFLASHファイルは、データを取得するために、メッセージ受信要求を受信する。
【0036】
いくつかの実施形態において、クライアントは、通信識別子に基づいたデータのページ間伝送のために、データ伝送関数を有するページ内の他のユニットも用いる。
【0037】
図3は、ページ間で通信を行う処理の別の実施形態を示すフローチャートである。処理300は、図13のクライアント1310によって実施されてよく、以下を含む。
【0038】
工程310では、クライアントは、現在のページの属性情報を取得する。
【0039】
いくつかの実施形態において、「現在のページ」とは、クライアントによって検出された現在開かれているページのことである。ページが開かれると、クライアントは、そのページの属性情報を取得する。「属性情報」は、ページが他のページと通信するか否か、そして、どのページに対してどのような通信が実行されるのか、を表すために用いられる情報に関する。例えば、クライアントは、ページが別のページとの同期更新のために設定されているか否かを判定する、ページが他のページとの同期動作のために設定されているか否かを判定する、同期更新のためのデータのタイプを決定する、同期動作のための動作のタイプを決定する、など。いくつかの実施形態では、同じページが、ページの様々な属性に基づいて、複数のページに追加される。例えば、或るページが、cloudグループに加わり、そのページは、cloud_page_1と識別される。同時に、同じページが、rainグループに加わり、そのページは、rain_page_1とも識別される。同じページが、さらなるグループにも加わりうる。各グループは、1つのタイプのデータを同期された状態に保つことに関与する。例えば、cloudグループは、データの同期を維持することに関与し、rainグループは、状態の同期を維持することに関与する。
【0040】
工程320では、クライアントは、属性情報に基づいて、現在のページがページグループに追加されるべきか否かを評価する。
【0041】
例えば、現在のページAが別のページBとの署名メッセージの同期更新を受けることを属性情報が示す場合、クライアントは、現在のページAが、対応するページグループに追加されると評価する。
【0042】
いくつかの実施形態において、同一生成元ページの間の同期更新は、現在のネットワークのデフォルト要件である。換言すると、各ページは、別の同一生成元ページと同期的に更新される。したがって、各ページは、同一生成元ページの同期更新のためにページグループに追加される。いくつかの実施形態において、生成元ページは、グループのホストページを表し、生成元ページが受信したデータで他のページを同期することに関与する。
【0043】
工程330では、現在のページがページグループに追加される場合、クライアントは、現在のページのFLASHファイルを呼び出して、ホスト接続FLASHファイルを確立する動作を開始する。例えば、cloudという名称のグループを用いると、グループのホストの名称は、cloud_page_hostになる。グループのホストは、グループメンバの間でデータを同期された状態に保つことに関与する。
【0044】
いくつかの実施形態では、1つのクライアントが、複数のページグループを設定する。いくつかの実施形態では、ページグループに対応するFLASHグループが、ユーザによって与えられた名称で区別される。いくつかの実施形態において、ユーザは、グループが確立された時にグループに名前を付ける。ページグループが与えられる具体的な名称に制限はない。例えば、ページグループは、“cloud”、“rain”などと呼ばれる。さらに、同じページが、複数の異なるページグループに追加されうる。したがって、同じページについて、異なるFLASHファイルが呼び出されうる。呼び出される異なるFLASHファイルを区別するために、1つのページの様々なFLASHファイルの各々が、対応するFLASHグループ名に基づいて設定される。例えば、ホスト接続FLASHファイルの名称は、“FLASH group name_HOST”と設定できる。したがって、この名称は、ホスト接続FLASHファイルが位置するFLASHグループを意味する。
【0045】
いくつかの実施形態において、ページが立ち上げられると、クライアントは、「作成」インターフェースを呼び出して、ホスト接続FLASHファイルを作成するよう試みる動作を開始する。FLASHグループ名が“cloud”である場合、ホスト接続名は“cloud_HOST”である。
【0046】
工程335では、クライアントは、FLASHグループがすでにホスト接続FLASHファイルを持っているか否かを判定する。
【0047】
いくつかの実施形態において、グループがホストを持っていない場合、第1のグループメンバが、自らをホストとして指定するために、グループホストになる。したがって、ホストは、ほぼ必ず存在する。
【0048】
工程340では、FLASHグループがすでにホスト接続FLASHファイルを持っている場合、クライアントは、FLASHグループへの現在のページのFLASHファイルの追加を呼び出して現在の非ホスト接続FLASHファイルを確立し、実質的に同時に、現在の非ホスト接続識別子を生成および記録する。
【0049】
いくつかの実施形態において、ホスト接続FLASHファイルは1つだけ存在する。いくつかの実施形態では、複数の非ホスト接続FLASHファイルが存在する。非ホスト接続FLASHファイルを互いに区別するために、生成された非ホスト接続識別子は一意的である。
【0050】
図4は、現在の非ホスト接続識別子を生成する処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理400は、処理300の工程340を実行するために用いられ、以下を含む。
【0051】
工程410では、クライアントは、「加入(join)」インターフェースを呼び出して、“FLASH group name_non−host−connection identifier A”という名称の非ホスト接続FLASHファイルを作成する。識別子Aがすでに存在する場合、クライアントは、FLASHグループに存在しない識別子を作成するまで、“FLASH group name_non−host connection identifier B”などの名称の非ホスト接続FLASHファイルを作成しようと試みる。
【0052】
いくつかの実施形態において、非ホスト接続識別子は、ランダムに生成される。いくつかの実施形態において、非ホスト接続識別子は、順序に従って生成される。
【0053】
工程350では、クライアントは、現在の非ホスト接続FLASHファイルを呼び出して、現在の非ホスト接続識別子をホスト接続FLASHファイルに送信する。
【0054】
工程360では、クライアントは、ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納してFLASHグループ内の各非ホスト接続FLASHファイルに送信する。FLASHグループ識別子は、ホスト接続識別子および各非ホスト接続識別子を含む。
【0055】
工程370では、クライアントは、各非ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納する。
【0056】
いくつかの実施形態において、FLASHグループがホスト接続FLASHファイルおよび現在の非ホスト接続FLASHファイルのみを含む場合、FLASHグループ識別子は、ホスト接続識別子および現在の非ホスト接続識別子を含み、「各非ホスト接続」は、現在の非ホスト接続FLASHファイルに関連する。
【0057】
FLASHグループがホスト接続FLASHファイル、現在の非ホスト接続FLASHファイル、および、その他の非ホスト接続FLASHファイルを含む場合、FLASHグループ識別子は、ホスト接続識別子、現在の非ホスト接続識別子、および、その他の非ホスト接続FLASHファイルの非ホスト接続識別子を含み、「各非ホスト接続」は、現在の非ホスト接続FLASHファイルおよびその他の非ホスト接続FLASHファイルに関連する。
【0058】
現在のFLASHグループがホスト接続FLASHファイルを持たない場合、クライアントは、呼び出されたFLASHファイルをホスト接続FLASHファイルとして確立し、同時に、ホスト接続識別子が生成および記録される。FLASHグループが少なくとも1つの非ホスト接続FLASHファイルを持つ場合、クライアントは、FLASHグループ内の各非ホスト接続FLASHファイルを呼び出して、非ホスト接続識別子をホスト接続FLASHファイルに送信する。
【0059】
いくつかの実施形態において、クライアントは、ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を各非ホスト接続FLASHファイルに送信する。FLASHグループ識別子は、ホスト接続識別子および各非ホスト接続識別子を含む。
【0060】
いくつかの実施形態において、クライアントは、各非ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納する。
【0061】
FLASH通信メカニズムは、上述の処理の少なくとも1つによって確立される。FLASH領域は、FLASHグループ内の任意のFLASHファイルの識別子を格納しているため、後の通信のための条件を提供する。上述の処理において、ホスト接続FLASHファイルは、サーバの役割を実行し、様々な非ホスト接続FLASHファイルの間の通信を確立するために用いられる。
【0062】
いくつかの実施形態において、ホスト接続FLASHファイルは、動作を停止する。例えば、ホスト接続FLASHファイルに対応するページが閉じられた場合、ホスト接続FLASHファイルは、ページと共に消える。新たな非ホスト接続FLASHファイルがその後に確立された場合、いくつかの例では、FLASHグループへの加入ができない。
【0063】
その後、FLASHグループ内の任意の非ホスト接続FLASHファイルが、ホスト接続FLASHファイルを再確立するために呼び出される。ホスト接続FLASHファイルが無効になった場合、ホスト接続FLASHファイルの確立を再開した非ホスト接続FLASHファイルが、新たなホスト接続FLASHファイルとして確立され、実質的に同時に、新たなホスト接続識別子が生成および記録される。いくつかの実施形態において、この処理は、リアルタイムに実行される。いくつかの実施形態において、この処理は、定期的に実行される。いくつかの実施形態において、生成された新たなホスト接続識別子は、元々のホスト接続識別子と同じである。
【0064】
新たなホスト接続FLASHファイルは、自己格納されたFLASHグループ識別子を新たなホスト接続識別子に基づいて更新するために呼び出され、更新されたFLASHグループ識別子は、FLASHグループ内の各非ホスト接続FLASHファイルに送信される。
【0065】
新たなホスト接続FLASHファイルが生成された後、クライアントは、グループメンバを更新するために新たなホスト接続FLASHファイルを呼び出し、ホスト接続FLASHファイルが非ホスト接続FLASHファイルだった時に存在した識別子を削除し、新たなホスト接続識別子に従って、自己格納されたFLASHグループ識別子を更新し、現在のFLASHグループのすべての非ホスト接続FLASHファイルに更新済みのFLASHグループ識別子を送信する。
【0066】
各非ホスト接続FLASHファイルは、受信した更新済みのFLASHグループ識別子を、自己格納されたFLASHグループ識別子を更新するための基礎として用いるために呼び出される。
【0067】
図5図8は、ホスト接続FLASHファイルおよび非ホスト接続FLASHファイルを確立する処理を示す一実施形態の図である。
【0068】
具体的な応用例において、4つのページA、B、C、および、Dが、同期更新を受ける。したがって、1つのページグループが、4つのページA、B、C、および、Dに関して確立される。ページグループに対応するFLASHグループの名称は、“cloud”と設定されている。各FLASHファイルは、同じ内容を有する。
【0069】
最初に、図5に示すように、ページAが開かれ、対応するFLASHファイルが呼び出される。FLASHファイルは、まず、「作成(create)」インターフェースを呼び出して、“cloud_HOST”という名称のローカル接続を確立するよう試みる。FLASHグループはまだホスト接続を有していないので、ローカル接続を確立する試みが成功し、ホスト接続識別子がHOSTとして記録される。FLASHファイルは、サーバの役割を実行するホスト接続FLASHファイルである。
【0070】
次に、ページBが開かれ、対応するFLASHファイルが呼び出される。FLASHファイルは、まず、「作成」インターフェースを呼び出して、“cloud_HOST”という名称のローカル接続を確立するよう試みる。FLASHグループはすでにホスト接続を有するので、ローカル接続を確立する試みは失敗する。この時点で、非ホスト接続FLASHファイルを確立するために、「加入」インターフェースが呼び出され、ページBに対応する非ホスト接続FLASHファイルをグループに追加する。呼び出された「加入」インターフェースを用いて、FLASHファイルは、“cloud_1”という名称のローカル接続を作成するよう試みる。FLASHグループは、ローカル接続と同じ名称を持たないので、試みは成功し、成功したIDが、1として記録される。次に、クライアントは、非ホスト接続FLASHファイルを呼び出して、クライアントのID「1」を伝えるグループ加入要求をホスト接続FLASHファイルに送信する。ホストFLASHファイルは、要求を受信し、ホストが含むID(すなわち、1)を格納し、FLASHグループ識別子(HOST,1)を生成する。次いで、ホストFLASHファイルは、FLASHグループ識別子(HOST,1)を含む更新要求を、ページBに対応する非ホスト接続FLASHファイルに送信する。ホストFLASHファイルの更新要求を受信すると、非ホスト接続FLASHファイルは、FLASHグループ識別子(HOST,1)を記録する。
【0071】
次に、ページCが開かれ、対応するFLASHファイルが呼び出される。FLASHファイルは、まず、「作成」インターフェースを呼び出して、“cloud_HOST”という名称のローカル接続を確立するよう試みる。FLASHグループはすでにホスト接続を有するので、ローカル接続を確立する試みは失敗する。この時点で、非ホスト接続FLASHファイルを確立するために、「加入」インターフェースが呼び出され、ページCに対応する非ホスト接続FLASHファイルをグループに追加する。ここで、FLASHファイルは、“cloud_1”という名称のローカル接続を作成するよう試みる。FLASHグループはすでにこの名称を有するので、ローカル接続を作成する試みは失敗する。ここで、FLASHファイルは、別の試みを行い、“cloud_2”という名称のローカル接続を確立し、成功したIDを2として記録する。図6に示すように、次に、クライアントは、非ホスト接続FLASHファイルを呼び出して、クライアント自身のID「2」を含むグループ加入要求をホスト接続FLASHファイルに送信する。ホストFLASHファイルは、この要求を受信し、ID(すなわち、2)を格納し、FLSHグループ識別子(HOST,1,2)を生成する。次いで、ホストFLASHファイルは、FLASHグループ識別子(HOST,1,2)を含む更新要求を、ページBおよびCに対応する非ホスト接続FLASHファイルに送信する。ホストFLASHファイル更新要求を受信すると、ページBに対応する非ホスト接続FLASHファイルは、その自己格納されたFLASHグループ識別子を(HOST,1,2)に更新し、ページCに対応する非ホスト接続FLASHファイルは、FLASHグループ識別子(HOST,1,2)を格納する。
【0072】
次に、ページDが開かれ、対応するFLASHファイルが呼び出される。FLASHファイルは、まず、「作成」インターフェースを呼び出して、“cloud_HOST”という名称のローカル接続を確立するよう試みる。FLASHグループはすでにホスト接続を有するので、ローカル接続を確立する試みは失敗する。この時点で、非ホスト接続FLASHファイルを確立して、ページDに対応する非ホスト接続FLASHファイルをこのグループに追加するために、「加入」インターフェースが呼び出される。ここで、FLASHファイルは、“cloud_1”という名称のローカル接続を確立するよう試みる。FLASHグループはすでにこの名称を有するので、ローカル接続を確立する試みは失敗する。ここで、FLASHグループは、“cloud_2”という名称のローカル接続を確立しようとする別の試みを行い、成功したID「2」を記録する。FLASHグループはすでにこの名称を有するので、ローカル接続を確立する試みは失敗する。ここで、FLASHグループは、“cloud_3”という名称のローカル接続を確立しようとする別の試みを行う。ローカル接続を確立する試みは成功し、成功したIDが3として記録される。図7に示すように、次に、クライアントは、非ホスト接続FLASHファイルを呼び出して、クライアント自身のID「3」を含むグループ加入要求をホスト接続FLASHファイルに送信する。ホストFLASHファイルは、グループ加入要求を受信し、それに含まれたID「3」を格納し、FLASHグループ識別子(HOST,1,2,3)を生成する。次いで、ホストFLASHファイルは、FLASHグループ識別子(HOST,1,2,3)を含む更新要求を、ページB、C、および、Dに対応する非ホスト接続FLASHファイルに送信する。ホストFLASH更新要求を受信すると、ページBおよびCに対応する非ホスト接続FLASHファイルは、それらの自己格納されたFLASHグループ識別子を(HOST,1,2,3)に更新し、ページDに対応する非ホスト接続FLASHは、FLASHグループ識別子(HOST,1,2,3)を格納する。
【0073】
一般に、新たなページが開かれると、クライアントは、以下を順次実行するために新たなページに対応するFLASHファイルを呼び出す。ホスト接続FLASHファイルおよび非ホスト接続FLASHファイルを確立すること、自身の識別子をホスト接続FLASHファイルに送信すること、ならびに、FLASHグループ識別子を受信すること。
【0074】
さらに、ページB、C、および、Dに対応するFLASHファイルが非ホスト接続FLASHファイルの確立に成功した後、FLASHファイルは、ホスト接続の独自の特徴を用いて、定期的にホスト接続FLASHファイルになる。ページAが閉じられていない場合、ホスト接続FLASHファイルは、有効なままである。したがって、この動作は失敗する。
【0075】
図8に示すように、或る時点で、ページAは閉じられ、ホスト接続FLASHファイルが消失する。この時、ページBのFLASHファイルが、ホスト接続FLASHファイルの確立を開始する。したがって、ホスト接続FLASHファイルの確立の開始が成功し、ページBに対応する非ホスト接続FLASHファイルが新たなホスト接続になる。実質的に同時に、新たなホスト接続識別子が生成され、新たなホスト接続識別子も、元々のホスト接続識別子と同じHOSTとして設定される。次いで、新たなホスト接続FLASHファイルは、グループメンバを更新するために呼び出される。元々のホスト接続識別子はFLASHグループ識別子から削除され、ホスト接続識別子「1」が元々のホスト接続識別子HOSTに変更され、自己格納されたFLASHグループ識別子は(HOST,2,3)に更新される。次いで、更新されたFLASHグループ識別子を含む更新要求が、ページCおよびDに対応する非ホスト接続FLASHファイルに送信される。ページCおよびDに対応する非ホスト接続FLASHファイルが更新要求を受信した後、ページCおよびDに対応する非ホスト接続FLASHファイルは、自己格納されたFLASHグループ識別子を(HOST,2,3)に更新する。
【0076】
上述の処理によって、FLASHグループ内の各FLASHファイルは、FLASHグループ内のすべてのFLASHファイルの識別子を格納する。各FLASHファイルが格納する識別子に基づいて、様々なFLASHファイル間で通信が確立される。
【0077】
クライアントページの間の上記の直接通信には、多くの応用例がある。クライアントページの間の直接通信の例は、以下に述べるように、ページ間の同期更新およびページ間の同期動作に適用されることを含む。
【0078】
図9は、ページの間で通信を行う処理の一実施形態を示すフローチャートである。処理900は、図13のクライアント1310によって実施されてよく、以下を含む。
【0079】
工程910では、クライアントは、ページグループ内のページが新たな動作を実行したか否かを判定する。
【0080】
いくつかの実施形態において、「新たな動作」とは、コンテンツの更新以外のページ関連動作(例えば、ページの切り替えなど)のことである。
【0081】
工程920では、ページグループ内のページが新たな動作を実行した場合、クライアントは、新たな動作の実行を命令するために用いるオペレーショナルデータを取得する。
【0082】
工程930では、クライアントは、FLASHグループ内の他のFLASHファイルの格納された識別子に基づいて、オペレーショナルデータを含むメッセージ受信要求を他のFLASHファイルに送信するために、新たな動作が実行されたページでFLASHファイルを呼び出す。
【0083】
工程940では、クライアントは、他のFLASHファイルを呼び出して、メッセージ受信要求に基づいてオペレーショナルデータを受信する。
【0084】
工程930および940では、いくつかの実施形態において、FLASHファイルはページのJSを通して呼び出される。
【0085】
工程950では、クライアントは、オペレーショナルデータに基づいて、他のFLASHファイルに対応するページに対して動作を実行する。
【0086】
FLASHファイルがメッセージ受信要求を他のFLASHファイルに送信でき、他のFLASHファイルがメッセージ受信要求に基づいてオペレーショナルデータを受信する多くの選択肢が存在する。いくつかの実施形態では、FLASHファイル内のsendmessageメッセージ送信関数およびreceivemessageメッセージ受信関数が、メッセージ送信およびメッセージ受信のために用いられる。
【0087】
図10は、同期更新を行う処理の一実施形態を示すフローチャートである。処理1000は、図13のクライアント1310によって実施されてよく、以下を含む。
【0088】
処理1000は、ページ切り替えの一例を用いて導入される。
【0089】
クライアントは、ページA、B、および、Cを含むページグループを確立する。ページグループのページAは、或る時点に第1のサブページから第2のサブページに切り替えられる。クライアントが新たな動作を検出した後、ページは、そのページ上で第1のサブページから第2のサブページに切り替える動作を命令するために用いられるオペレーショナルデータ(例えば、”1,2”)を取得する。その後、クライアントは、ページA内のFLASHファイルを呼び出して、ページBおよびCに対応するFLASHファイルについて格納された識別子に基づいてページBおよびCとの通信処理を確立する。sendmessage関数は、オペレーショナルデータを含むreceivemessage要求をページBおよびCのFLASHファイルに送信するために用いられる。クライアントは、ページBおよびCのFLASHファイルを呼び出して、receivemessage関数を用いてreceivemessage要求を受信し、ページに含まれるオペレーショナルデータ:“1,2”を取得する。クライアントは、オペレーショナルデータを用いて、ページBおよびCで第1のサブページから第2のサブページに切り替える動作を実行する。
【0090】
工程1010では、クライアントは、ページグループ内のページが更新されたか否かを検出する。
【0091】
工程1020では、ページグループ内のページが更新された場合、クライアントは、更新されたページの更新データを取得する。
【0092】
工程1030では、クライアントは、他のFLASHファイルの格納された識別子に基づいて、更新データを含むメッセージ受信要求をFLASHグループ内の他のFLASHファイルに送信するために、更新されたページのFLASHファイルを呼び出す。
【0093】
工程1040では、クライアントは、メッセージ受信要求に基づいて、更新データを受信するために、他のFLASHファイルを呼び出す。
【0094】
工程1050では、クライアントは、更新データに基づいて、他のFLASHファイルに対応するページを更新する。
【0095】
上述の処理1000でわかるように、ページグループ内のページは、更新されたページが他のページに更新データを送信するために用いられる前に、更新を受ける。いくつかの実施形態において、以前に更新を受けたページは、以下の3つのアプローチで更新データを取得する:
【0096】
第1のアプローチは、ブラウザベースのローカルストレージソリューションである。このアプローチでは、ブラウザが、サーバから更新データを取得するよう設定される。その後、更新データは、ブラウザの少なくとも1つのページに送信され、その少なくとも1つのページは更新される。第1のアプローチは1つのブラウザだけを含むので、他のブラウザのページは、上述のように、ページ間の直接通信に基づいて更新される。したがって、このアプローチは、ブラウザベースのローカルストレージソリューションがページ更新中に様々なブラウザに及ぶことを可能にする。
【0097】
第2のアプローチは、ページポーリングを含む。このアプローチでは、クライアントは、サーバから更新データを取得する。クライアントは、定期的なページポーリングを行うよう設定され、更新を実行するためにクライアントから更新データを取得する。このアプローチでは、1つのページだけが含まれるので、即時性およびページパフォーマンスが保証される。また、このアプローチでは、適切な量のページに対してポーリング側クライアントを設定することが可能である。ページの量が設定されると、ページパフォーマンスを保証できる。
【0098】
第3のアプローチは、サーバ長距離リンクに基づいている。ページサーバ長距離リンクが設定され、更新データが、更新を実行するためにサーバから取得される。このアプローチにおいてサーバと長距離リンクを有するのは1ページだけなので、サーバへの帯域幅要求はあまり存在せず、したがって、サーバのコストが低くなる。もちろん、このアプローチにおいて、サーバの帯域幅限界内で適切な数のページとのサーバ長距離リンクを設定することも可能である。
【0099】
この実施形態において、FLASHグループ内のFLASHファイルは、同じウェブアドレスで開かれる複数の同一生成元ページのためのFLASHファイルなど、同じファイルコンテンツを有しうる。もちろん、各FLASHファイルは、例えば、1ユーザのQzoneおよびマイクロブログページのためのFLASHファイルなど、異なるコンテンツも有しうる。
【0100】
いくつかの実施形態において、送信される更新データのタイプは、様々な更新要求に応じて異なる。例えば、各更新は、同期更新が同一生成元ページの間で行われた時に同期されるので、「更新データ」とは、ページに関する任意の更新データのことである。いくつかの実施形態において、特定の更新だけが同期される場合、更新データは、例えば、1ユーザの前述のQzoneおよびマイクロブログページなど、特定のタイプの特定のデータだけである。この例においてページで検出される唯一のデータは署名データであり、他のデータではない。したがって、様々な更新要求を満たすために更新データの特定のタイプを設定することが可能である。
【0101】
以下の例は、同一生成元ページの間の通信を介した同期更新の応用シナリオである。
【0102】
3つの同一ページA、B、および、Cが、ユーザによる同じフォーラムウェブアドレスの3回のクリックに基づいて開かれる。3つのページは、同じページグループに追加される。3つのページに対応するFLASHファイルは、FLASHグループを構成する。各FLASHファイルは、同じファイルコンテンツを有し、FLASHファイルはいずれも、FLASHグループ内の他のFLASHファイルの識別子を格納する。
【0103】
フォーラムの別のユーザが、「今日は雨が降るでしょう」というメッセージを公開する。この例では、フォーラムは、グループを確立する。
【0104】
クライアントは、公開されたメッセージを取得する。ページAが、前述の3つのアプローチの内の1アプローチなど特定のアプローチを通して、このメッセージを取得した後、ページAは自身のページを更新する。この時点で、ページAは、「今日は雨が降るでしょう」というメッセージを表示する。
【0105】
クライアントは、ページAが更新されたことを検出し、その後、ページAから「今日は雨が降るでしょう」という更新メッセージを取得する。
【0106】
クライアントは、ページAのFLASHファイルを呼び出して、ページBのFLASHファイルの自己格納された識別子に基づいて、「今日は雨が降るでしょう」というメッセージを含むメッセージ受信要求をページBのFLASHファイルに送信する。実質的に同時に、クライアントは、ページAのFLASHファイルを呼び出して、ページCのFLASHファイルの自己格納された識別子に基づいて、「今日は雨が降るでしょう」というメッセージを含むメッセージ受信要求をページCのFLASHファイルに送信する。
【0107】
クライアントは、ページBおよびCのFLASHファイルを呼び出して、メッセージ受信要求を受信し、要求に含まれる「今日は雨が降るでしょう」というメッセージを取得する。
【0108】
クライアントは、ページBおよびCに「今日は雨が降るでしょう」というメッセージを表示する。
【0109】
これで、ページA、B、および、Cの同期更新が完了した。
【0110】
以下の例は、非同一生成元ページの間の通信を介した同期更新の具体的な応用シナリオである。
【0111】
ユーザは、自身のQzoneおよびTencentマイクロブログページを開き、Qzoneページの署名メッセージをTencentマイクロブログページと同期する。
【0112】
クライアントは、QzoneページおよびTencentマイクロブログページを同じページグループに追加する。QzoneページのFLASHファイルは、TencentマイクロブログページのFLASHファイルの識別子を格納し、TencentマイクロブログページのFLASHファイルは、QzoneページのFLASHファイルの識別子を格納する。
【0113】
ユーザが署名メッセージを「今日は雨が降るでしょう」に修正すると、Qzoneページは、前述の3つのアプローチの内の1つを用いて、メッセージを取得し、自身のページにメッセージを表示する。
【0114】
クライアントは、Qzoneページの署名メッセージが更新されたことを検出し、その後、署名メッセージを取得する。
【0115】
クライアントは、QzoneページのFLASHファイルを呼び出して、TencentマイクロブログページのFLASHファイルの格納された識別子に基づいて、更新データ「今日は雨が降るでしょう」を含むメッセージ受信要求をTencentマイクロブログページのFLASHファイルに送信する。
【0116】
クライアントは、TencentマイクロブログページのFLASHファイルを呼び出して、メッセージ受信要求を受信し、メッセージ受信要求に含まれる「今日は雨が降るでしょう」の更新データを取得する。
【0117】
クライアントは、Tencentマイクロブログページに「今日は雨が降るでしょう」と表示する。
【0118】
これで、QzoneページおよびTencentマイクロブログページの同期更新が完了した。
【0119】
次に、ユーザは、Qzoneページに「まだ雨は降っていません」という備考を追加する。
【0120】
クライアントは、Qzoneページが更新されたことを検出するが、更新メッセージは署名メッセージではない。したがって、この更新メッセージは取得されない。
【0121】
上記の例において、同期ページ間動作で、ページFLASHファイルは、更新データを送受信するためにsendmessage関数およびreceivemessage関数を用いる。
【0122】
図11は、ページ間で通信を行うためのデバイスの一実施形態を示す構造図である。デバイス1100は、第1の検出ユニット1110、第1の取得ユニット1120、識別子呼び出しユニット1130、および、通信ユニット1140を備える。
【0123】
第1の検出ユニット1110は、ページが別のページとのデータ伝送を行うか否かを判定する。
【0124】
ページ間で伝送されるデータは、ページ間通信の具体的な用途の違いに応じて様々である。例えば、ページが更新される場合、ページを更新するための更新データが伝送される。同期ページ動作が実行される場合、後述のように、新たな動作を命令するために用いられるオペレーショナルデータが伝送される。
【0125】
第1の取得ユニット1120は、ページが伝送されるデータを有する場合にデータを取得する。
【0126】
識別子呼び出しユニット1130は、ページによって格納された現在のページグループ内の他のページの通信識別子を取得する。
【0127】
いくつかの実施形態において、ページグループは、少なくとも2つのページの予め確立された組み合わせである。通信識別子は、ページグループが確立される時にページグループ内の各ページに割り当てられる。ページグループ内の各ページは、ページグループ内の他のページの通信識別子を格納する。これらの通信識別子は、各ページを一意的に識別するために用いられる識別子である。いくつかの実施形態において、通信リンクが、識別子に基づいてページ間で確立される。
【0128】
いくつかの実施形態では、ページグループが必要に応じて作成される。例えば、複数のページが1つのウェブアドレスに基づいて開かれ、ページの同期更新のためのページグループとして設定される。Qzoneページの署名および他のメッセージをマイクロブログページに同期的に載せるために、ユーザのQzoneページおよびユーザのマイクロブログページなど、同じユーザに対応するページを含む単一のページグループを設定することが可能である。ページグループの編成方法に制限はない。
【0129】
いくつかの実施形態において、ページグループは、異なる要求に基づいて確立されるので、同じページが、複数のページグループに属しうる。したがって、デバイス1110は、さらに、ページグループ判定ユニット1150を備える。ページグループ判定ユニット1150は、ページが複数のページグループに属する場合に、データの属性情報に基づいてページの現在のページグループを判定する。次いで、データは、現在のページグループ内のページ間で伝送される。
【0130】
いくつかの実施形態において、データ属性情報は、データの伝送属性情報に対応する。例えば、データがQzoneおよびマイクロブログに署名メッセージを表示するために用いられる場合、現在のページグループは、Qzoneおよびマイクロブログページで構成されたページグループである。データが同一生成元ページの間で伝送される場合、現在のページグループは、同一生成元ページで構成されたページグループである。
【0131】
通信ユニット1140は、通信識別子に基づいてページと他のページとの間の通信リンクを確立し、通信リンクを用いて、他のページに伝送されるべきデータを送信する。
【0132】
クライアントがページの通信識別子を用いて通信リンクを確立する多くの方法がある。いくつかの実施形態において、ページは、ページ間FLASHファイルを用いて、ページ間の通信リンクを確立する。
【0133】
図12Aは、通信ユニットの一実施形態を示す構造図である。いくつかの実施形態において、通信ユニット1210は、デバイス1100の通信ユニット1140を実装するために用いられ、第1の判定ユニット1211、第2の取得ユニット1213、識別子呼び出しユニット1215、第1のデータ送信ユニット1217、および、データ受信ユニット1219を備える。
【0134】
第1の判定ユニット1211は、ページが別のページとのデータ伝送を行うか否かを検出する。
【0135】
第2の取得ユニット1213は、ページが伝送されるデータを有する場合にデータを取得する。
【0136】
識別子呼び出しユニット1215は、伝送されるデータを有するページのFLASH領域に格納されたFLAHグループ内の他のFLASHファイルの識別子を取得する。FLASHグループは、現在のページグループ内のページに対応するFLASHファイルを含み、各ページのFLASH領域は、FLASHグループ内の他のFLASHファイルの識別子を格納する。
【0137】
第1のデータ送信ユニット1217は、ページ内のFLASHファイルを呼び出して、FLASHグループ内の他のFLASHファイルの格納された識別子に基づいて、データを含むメッセージ受信要求を他のFLASHファイルに送信する。
【0138】
データ受信ユニット1219は、他のFLASHファイルを呼び出して、メッセージ受信要求を受信すると共にデータを取得する。
【0139】
いくつかの実施形態において、デバイス1100は、通信識別子を用いたデータのページ間伝送のために、データ伝送関数を有するページ内の他のユニットも用いる。
【0140】
いくつかの実施形態において、ページグループは予め作成される。したがって、デバイス1110は、さらに、作成ユニット1160を備える。作成ユニット1160は、ページグループを作成する。
【0141】
いくつかの実施形態では、ページグループが必要に応じて作成される。例えば、1つのウェブアドレスに基づいて開かれる複数のページが、それらのページの同期更新のためのページグループとして設定される。Qzoneページの署名および他のメッセージをマイクロブログページに同期的に載せるために、ユーザのQzoneページおよびユーザのマイクロブログページなど、同じユーザに対応するページから成る単一のページグループを設定することが可能である。
【0142】
図12B図12Dは、ページ間で通信を行うためのデバイスの一実施形態を示す構造図である。デバイス1100は、属性情報取得ユニット1232、評価ユニット1234、第1のホスト接続開始ユニット1236、非ホスト接続ユニット1238、第1の識別子送信ユニット1240、第2の識別子送信ユニット1242、および、第1の格納ユニット1244を備える。
【0143】
属性情報取得ユニット1232は、現在のページの属性情報を取得する。
【0144】
いくつかの実施形態において、「現在のページ」とは、クライアントによって検出された現在開かれている各ページのことである。ページが開かれると、属性情報取得ユニット1232は、そのページの属性情報を取得する。「属性情報」とは、ページが他のページと通信するか否か、そして、どのページに対してどのような通信の必要性があるのか、を表すために用いられる情報を指す。例えば、ページが他のページとの同期更新に向けて設定されているか?、ページが他のページとの同期動作に向けて設定されているか?、同期更新のためのデータのタイプはどのようなタイプか?、同期動作のための動作のタイプはどのようなタイプか?など。いくつかの実施形態では、同じページが、ページの様々な属性に基づいて、複数のページに追加される。
【0145】
評価ユニット1234は、属性情報に基づいて、現在のページがページグループに追加されるべきか否かを評価する。
【0146】
例えば、現在のページAが別のページ(ページB)と共に署名メッセージ同期更新を受けることを、属性情報が示す場合、第1のホスト接続開始ユニット1236は、対応するページグループに現在のページAを追加することを決定する。
【0147】
同一生成元ページの間の同期更新は、現在のネットワークのデフォルト要件であることに注意されたい。換言すると、各ページは、他の同一生成元ページと同期的に更新される。したがって、各ページは、同一生成元ページの同期更新のためにページグループに追加される。
【0148】
第1のホスト接続開始ユニット1236は、現在のページのFLASHファイルを呼び出して、現在のページがページグループに追加される時にホスト接続FLASHファイルを確立するための動作を開始する。
【0149】
いくつかの実施形態において、クライアントは、複数のページグループを設定し、そして、ページグループに対応するFLASHグループの区別は、異なるFLASHグループに異なる名称を与えることによって可能である。グループに与えられる具体的な名称に制限はない。例えば、FLASHグループは、“cloud”、“rain”などと呼ばれる。いくつかの実施形態において、同じページが、異なるページグループに追加される。したがって、同じページは、そのページを呼び出す異なるFLASHファイルを有する。FLASHファイルを区別するために、1つのページの様々なFLASHファイルの各々が、FLASHグループ名に基づいて設定される。例えば、ホスト接続FLASHファイルの名称は、“FLASH group name_HOST”と設定される。したがって、この名称は、ホスト接続FLASHファイルが位置するFLASHグループを意味する。
【0150】
いくつかの実施形態において、ページが立ち上げられると、第1のホスト接続開始ユニット1236は、「作成」インターフェースを呼び出して、ホスト接続FLASHファイルを作成するよう試みる動作を開始する。FLASHグループ名が“cloud”である場合、ホスト接続名は“cloud_HOST”である。
【0151】
ホスト接続FLASHファイルがすでに存在する場合、非ホスト接続ユニット1238は、FLASHグループへの現在のページのFLASHファイルの追加と、現在の非ホスト接続FLASHファイルの確立とを引き起こし、同時に、現在の非ホスト接続識別子を生成および記録する。
【0152】
いくつかの実施形態において、ホスト接続FLASHファイルは1つだけ存在する。一態様として、複数の非ホスト接続FLASHファイルが存在する。非ホスト接続FLASHファイルを互いに区別するために、一意的な非ホスト接続識別子が、非ホスト接続ユニット1238によって生成される。
【0153】
非ホスト接続FLASHファイルが作成される時に一意性を保証するために、非ホスト接続ユニット1238は、「加入」インターフェースを呼び出して、“FLASH group name_non−host−connection identifier A”という名称の非ホスト接続FLASHファイルを作成する。Aがすでに存在する場合、FLASHグループに存在しない識別子を作成するまで、“FLASH group name_non−host connection identifier B”などの名称の非ホスト接続FLASHファイルを作成する試みがなされる。
【0154】
いくつかの実施形態において、非ホスト接続ユニット1238は、非ホスト接続識別子をランダムに生成する。いくつかの実施形態において、非ホスト接続ユニット1238は、非ホスト接続識別子を順序に基づいて生成する。
【0155】
第1の識別子送信ユニット1240は、現在の非ホスト接続FLASHファイルを呼び出して、現在の非ホスト接続識別子をホスト接続FLASHファイルに送信する。
【0156】
第2の識別子送信ユニット1242は、ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納してFLASHグループ内の各非ホスト接続FLASHファイルに送信する。FLASHグループ識別子は、ホスト接続識別子および各非ホスト接続識別子を含む。
【0157】
第1の格納ユニット1244は、各非ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納する。
【0158】
いくつかの実施形態において、FLASHグループがホスト接続FLASHファイルおよび現在の非ホスト接続FLASHファイルのみを含む場合、FLASHグループ識別子は、ホスト接続識別子および現在の非ホスト接続識別子を含み、「各非ホスト接続」とは、現在の非ホスト接続FLASHファイルを指す。
【0159】
FLASHグループがホスト接続FLASHファイル、現在の非ホスト接続FLASHファイル、および、その他の非ホスト接続FLASHファイルを含む場合、FLASHグループ識別子は、ホスト接続識別子、現在の非ホスト接続識別子、および、その他の非ホスト接続FLASHファイルの非ホスト接続識別子を含み、「各非ホスト接続」は、現在の非ホスト接続FLASHファイルおよびその他の非ホスト接続FLASHファイルを指す。
【0160】
いくつかの実施形態において、デバイス1100は、さらに、第1の確認ユニット1246、第3の識別子送信ユニット1248、第4の識別子送信ユニット1250、および、第2の格納ユニット1252を備える。
【0161】
FLASHグループがホスト接続FLASHファイルを持たない場合、第1の確認ユニット1246は、現在のページのFLASHファイルをホスト接続FLASHファイルとして確認し、同時に、ホスト接続識別子を生成および記録する。
【0162】
FLASHグループが少なくとも1つの非ホスト接続FLASHファイルを持つ場合、第3の識別子送信ユニット1248は、FLASHグループ内の各非ホスト接続FLASHファイルを呼び出して、非ホスト接続識別子をホスト接続FLASHファイルに送信する。
【0163】
第4の識別子送信ユニット1250は、ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を各非ホスト接続FLASHファイルに送信する。FLASHグループ識別子は、ホスト接続識別子と、各非ホスト接続FLASHファイルの非ホスト接続識別子とを含む。
【0164】
第2の格納ユニット1252は、各非ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納する。
【0165】
ホスト接続FLASHファイルは、時々動作を停止する。例えば、ホスト接続FLASHファイルに対応するページが閉じられた場合、ホスト接続FLASHファイルは、閉じられたページと共に消える。新たな非ホスト接続FLASHファイルがその後に確立された時、FLASHグループへの加入が起こらない状況が生じうる。したがって、少なくともこの状況に対処するために、デバイス1100は、さらに、第2のホスト接続開始ユニット1254、第2の確認ユニット1256、第1の識別子更新ユニット1258、第5の識別子送信ユニット1260、および、第2の識別子更新ユニット1262を備える。
【0166】
第2のホスト接続開始ユニット1254は、FLASHグループ内の非ホスト接続FLASHファイルを呼び出して、ホスト接続FLASHファイルを再確立する動作を開始する。いくつかの実施形態において、この動作は、リアルタイムに実行される。いくつかの実施形態において、この動作は、定期的に実行される。
【0167】
第2の確認ユニット1256は、ホスト接続FLASHファイルが無効になった時に、ホスト接続FLASHファイルを再確立する動作を開始した非ホスト接続FLASHファイルを新たなホスト接続FLASHファイルとして確認し、同時に、新たなホスト接続識別子を生成および記録する。いくつかの実施形態において、生成された新たなホスト接続識別子は、元々のホスト接続識別子と同じである。
【0168】
第1の識別子更新ユニット1258は、新たなホスト接続FLASHファイルを呼び出して、新たなホスト接続識別子に従って、自己格納されたFLASHグループ識別子を更新する。新たなホスト接続FLASHファイルが生成された後、第1の識別子更新ユニット1258は、新たなホスト接続FLASHファイルを呼び出してグループメンバを更新し、新たなホスト接続FLASHファイルが非ホスト接続FLASHファイルだった時に存在した識別子を削除し、生成された新たなホスト接続識別子に従って、自己格納されたFLASHグループ識別子を更新する。
【0169】
第5の識別子送信ユニット1260は、新たなホスト接続FLASHファイルを呼び出して、更新されたFLASHグループ識別子をFLASHグループ内の各非ホスト接続FLASHファイルに送信する。
【0170】
第2の識別子更新ユニット1262は、各非ホスト接続FLASHファイルを呼び出して、受信された更新済みのFLASHグループ識別子を、自己格納されたFLASHグループ識別子を更新するための基礎として用いる。
【0171】
クライアントページの間の直接通信は、複数の応用例がある。例えば、クライアントページの間の直接通信は、以下に述べるように、ページ間の同期更新およびページ間の同期動作に適用される。
【0172】
同期ページ間動作がページ間の直接通信に基づいて実施される場合、デバイス1100は、さらに、第2の判定ユニット1264、第3の取得ユニット1266、第2のデータ送信ユニット1268、第1の受信ユニット1270、および、動作ユニット1272を備える。
【0173】
第2の判定ユニット1264は、ページグループ内のページが新たな動作を実行したか否かを検出する。「新たな動作」とは、コンテンツの更新以外のページ関連動作(例えば、ページの切り替えなど)のことである。
【0174】
第3の取得ユニット1266は、ページが更新動作を実行した場合に、新たなページ関連動作の実行を命令するために用いられるオペレーショナルデータを取得する。
【0175】
第2のデータ送信ユニット1268は、新たな動作を実行したページ内のFLASHファイルを呼び出して、FLASHグループ内の他のFLASHファイルの格納された識別子に基づいて、オペレーショナルデータを含むメッセージ受信要求を他のFLASHファイルに送信する。
【0176】
第1の受信ユニット1270は、他のFLASHファイルを呼び出して、メッセージ受信要求に基づいてオペレーショナルデータを受信する。
【0177】
動作ユニット1272は、オペレーショナルデータに基づいて、対応するページに対する動作を実行する。
【0178】
いくつかの実施形態において、FLASHファイルが他のFLASHファイルにメッセージ受信要求を送信して、他のFLASHファイルがメッセージ受信要求に従ってオペレーショナルデータを受信する多くの方法が存在する。いくつかの実施形態において、デバイス1100は、第3のデータ送信ユニット1274および第2の受信ユニット1276を備える。
【0179】
第3のデータ送信ユニット1274および第2の受信ユニット1276は、それぞれ、FLASHファイルのsendmessage関数(メッセージ送信関数)およびreceivemessage関数(メッセージ受信関数)を用いて、メッセージを送信および受信する。
【0180】
第3のデータ送信ユニット1274は、新たな動作を実行したページのFLASHファイルを呼び出して、sendmessage関数を用いて他のFLASHファイルにオペレーショナルデータを含むreceivemessage要求を送信する。
【0181】
第2の受信ユニット1276は、他のFLASHファイルを呼び出して、receivemessage関数を用いてreceivemessage要求を受信し、receivemessage要求に含まれるオペレーショナルデータを取得する。
【0182】
同期ページ間更新がページ間の直接通信に基づいて実施される場合、デバイス1100は、第2の検出ユニット1278、第4の取得ユニット1280、第3のデータ送信ユニット1282、第2の受信ユニット1284、および、ページ更新ユニット1286を備える。
【0183】
第2の検出ユニット1278は、ページグループ内のページが更新を実行したか否かを検出する。
【0184】
第4の取得ユニット1280は、ページが更新を実行した場合に、更新されたページから更新データを取得する。
【0185】
第3の送信ユニット1282は、更新されたページのFLASHファイルを呼び出して、FLASHグループ内の他のFLASHファイルの格納された識別子に基づいて、更新データを含むメッセージ受信要求を他のFLASHファイルに送信する。
【0186】
第2の受信ユニット1284は、他のFLASHファイルを呼び出して、メッセージ受信要求に基づいて更新データを受信する。
【0187】
ページ更新ユニット1286は、更新データに基づいて、他のFLASHファイルに対応するページを更新する。
【0188】
ページグループ内のページは、更新データを取得し、更新されたページが他のページに更新データを伝送するために用いられる前に更新される。更新は、多くのアプローチに基づきうる。したがって、いくつかの実施形態において、デバイス1100は、さらに、ブラウジングユニット1288、ポーリングユニット1290、および、長距離リンクユニット1292を備える。
【0189】
ブラウジングユニット1288は、サーバから更新データを取得するようにブラウザを設定する。次いで、更新データは、ブラウザ内の少なくとも1つのページに送信され、その結果、その少なくとも1つのページは更新される。このアプローチは1つのブラウザだけを含むので、他のブラウザのページは、上述のように、ページ間の直接通信に基づいて更新される。このアプローチは、ブラウザベースのlocalstorageソリューションがページ更新中に様々なブラウザに及ぶことを可能にする。
【0190】
ポーリングユニット1290は、更新を実施するために定期的なページポーリングを行って更新データをクライアントから取得するためにクライアントを設定する。このアプローチでは、1つのページだけが含まれるので、即時性を保証しつつ、ページパフォーマンスも保証する。もちろん、いくつかの実施形態において、ポーリングユニット1290は、さらに、適切な量のページに対してポーリング側クライアントを設定する。
【0191】
長距離リンクユニット1292は、更新を実施するために、ページサーバ長距離リンクを設定して、サーバから更新データを取得する。1つのページだけがサーバとの長距離リンクを有するので、サーバへの帯域幅要求はあまり存在せず、したがって、サーバのコストが低くなる。もちろん、いくつかの実施形態において、長距離リンクユニット1292は、さらに、サーバの帯域幅限界内で適切な数のページとのサーバ長距離リンクを設定する。
【0192】
いくつかの実施形態において、ページグループ内のページは、同一生成元ページである。いくつかの実施形態において、ページグループ内のページは、非同一生成元ページである。
【0193】
いくつかの実施形態において、伝送される更新データのタイプは、様々な更新要求に基づいて異なる。例えば、各更新は、同期更新が同一生成元ページの間で行われた時に同期されるので、「更新データ」とは、ページに関する任意の更新データのことである。特定の更新だけが同期される場合、更新データは、例えば、1ユーザの前述のQzoneおよびマイクロブログページなど、特定のタイプの特定のデータである。この例においてページで唯一検出されるのは署名データであり、他のデータではない。本応用例では、様々な更新要求を満たすために更新データの特定のタイプを設定することが可能である。
【0194】
さらに、同期ページ間動作と同様に、ページFLASHファイルは、更新データを送受信するためにsendmessage関数およびreceivemessage関数を用いる。
【0195】
図13は、ページ間通信システムの一実施形態を示す図である。システム1300は、ネットワーク1320を介してクライアント1310に接続されたサーバ1330を備える。
【0196】
クライアント1310は、サーバ1330から更新データを受信する。
【0197】
上述のユニットは、1または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび/または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、ユニットは、コンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワーク装置など)に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体(光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど)に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
【0198】
本明細書に開示の実施形態に照らして説明した方法またはアルゴリズム工程は、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、または、両方の組み合わせを用いて実施されうる。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、メモリ、読み出し専用メモリ(ROM)、電気的プログラム可能ROM、電気的消去可能プログラム可能ROM、レジスタ、ハードドライブ、リムーバブルディスク、CD−ROM、または、任意の他の形態の当業者に周知の記憶媒体内にインストールされてよい。
【0199】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例1:クライアントで表示されるページの間で通信を行うための方法であって、
第1のページが第2のページにデータを伝送するか否かを検出し、
前記第1のページが前記第2のページに前記データを伝送する場合に、前記第1のページおよび前記第2のページを格納する現在のページグループ内における前記第2のページの通信識別子を取得し、前記ページグループは少なくとも2つの予め確立されたページを含み、前記通信識別子は前記ページグループが確立された時に前記ページグループ内の各ページに割り当てられ、前記ページグループ内の各ページは前記第2のページの前記通信識別子を格納し、
前記通信識別子に基づいて、前記第1のページおよび前記第2のページの間の通信リンクを確立し、
伝送されるべき前記データを前記第2のページに送信するために前記通信リンクを用いること、
を備える、方法。
適用例2:適用例1に記載の方法であって、前記第1のページが前記第2のページにデータを伝送するか否かを検出することは、
前記データの属性情報に基づいて、前記第1のページの前記現在のページグループを決定することを備える、方法。
適用例3:適用例2に記載の方法であって、前記第1のページによって格納された前記現在のページグループ内の前記第2のページの前記通信識別子を取得することは、
前記第1のページのFLASH領域内に格納されたFLASHグループ内の他のFLASHファイルの識別子を取得することを備え、
前記FLASHグループは、前記現在のページグループ内の前記少なくとも2つのページに対応するFLASHファイルを含み、前記第1のページの前記FLASH領域は、前記FLASHグループ内の前記他のFLASHファイルの前記識別子を格納し、前記第1のページおよび前記第2のページの間の前記通信リンクを確立することは前記通信識別子に基づき、
前記通信リンクを用いて、伝送されるべき前記データを前記第2のページに送信することは、
前記FLASHグループ内の前記他のFLASHファイルの前記格納された識別子に基づいて、送信される前記第1のページ内のFLASHファイルを呼び出すことであって、前記データを含むメッセージ受信要求を前記他のFLASHファイルに送信することを備え、
前記他のFLASHファイルを呼び出して、前記データを取得するために前記メッセージ受信要求を受信すること、を備える、方法。
適用例4:適用例3に記載の方法であって、前記ページグループの確立は、
前記現在のページの前記データの前記属性情報を取得し、
前記属性情報に基づいて、前記現在のページが前記ページグループに追加されるべきか否かを評価し、
前記現在のページが前記ページグループに追加されると評価された場合に、前記現在のページの前記FLASHファイルを呼び出して、ホスト接続FLASHファイルを確立する動作を開始し、
前記FLASHグループがすでに前記ホスト接続FLASHファイルを持っているか否かを判定し、
前記FLASHグループが前記ホスト接続FLASHファイルを持っている場合に、前記FLASHグループへの前記現在のページのFLASHファイルの追加を呼び出して、現在の非ホスト接続FLASHファイルを確立し、同時に、現在の非ホスト接続識別子を生成および記録し、
前記現在の非ホスト接続FLASHファイルを呼び出して、前記現在の非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納して前記FLASHグループ内の各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、ホスト接続識別子および前記非ホスト接続識別子を含み、
前記非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納すること、
を備える、方法。
適用例5:適用例4に記載の方法であって、前記FLASHグループがホスト接続FLASHファイルを持たない場合に、
前記現在のページの前記FLASHファイルを前記ホスト接続FLASHファイルとして確認し、同時に、前記ホスト接続識別子を生成および記録し、
前記FLASHグループが少なくとも1つの非ホスト接続FLASHファイルを持つ場合に、前記FLASHグループ内の各非ホスト接続FLASHファイルを呼び出して、非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を前記各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、前記ホスト接続識別子および各非ホスト接続識別子を含み、
前記各非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納すること、
を備える、方法。
適用例6:適用例4に記載の方法であって、前記現在の非ホスト接続識別子を生成することは、ランダムに、または、特定の順序に基づいて、前記現在の非ホスト接続識別子を生成することを備える、方法。
適用例7:適用例4に記載の方法であって、さらに、
前記FLASHグループ内の前記非ホスト接続FLASHファイルを呼び出して、前記ホスト接続FLASHファイルを再確立する動作を開始し、
前記ホスト接続FLASHファイルが無効になったか否かを判定し、
前記ホスト接続FLASHファイルが無効になった場合に、前記ホスト接続FLASHファイルを確立する動作を再開した前記非ホスト接続FLASHファイルを新たなホスト接続FLASHファイルとして確認し、同時に、新たなホスト接続識別子を生成および記録し、
前記新たなホスト接続FLASHファイルを呼び出して、前記新たなホスト接続識別子に基づいて前記自己格納されたFLASHグループ識別子を更新し、前記更新されたFLASHグループ識別子を前記FLASHグループ内の前記非ホスト接続FLASHファイルに送信し、
前記非ホスト接続FLASHファイルに基づいて前記自己格納されたFLASHグループ識別子を更新して、前記更新されたFLASHグループ識別子を用いること、
を備える、方法。
適用例8:適用例1に記載の方法であって、さらに、
前記データに基づいて、前記第2のページにページ関連動作を実行することを備え、前記データは、オペレーショナルデータである、方法。
適用例9:適用例1に記載の方法であって、さらに、
前記データに従って、前記第2のページを更新することを備え、前記データは、更新データである、方法。
適用例10:適用例3に記載の方法であって、
送信される前記第1のページ内の前記FLASHファイルを呼び出すことは、前記FLASHグループ内の前記他のFLASHファイルの前記識別子に基づいて、前記データを含む前記メッセージ受信要求を前記他のFLASHファイルに送信することを含み、
前記他のFLASHファイルは、前記メッセージ受信要求を受信して前記データを取得するために、receivemessage関数を用いる、方法。
適用例11:適用例1に記載の方法であって、前記ページグループ内の前記ページは、同一生成元ページである、方法。
適用例12:クライアントで表示されるページの間で通信を行うためのシステムであって、
少なくとも1つのプロセッサであって、
第1のページが第2のページにデータを伝送するか否かを検出し、
前記第1のページが前記第2のページに前記データを伝送する場合に、前記第1のページおよび前記第2のページを格納する現在のページグループ内の前記第2のページの通信識別子を取得し、前記ページグループは少なくとも2つの予め確立されたページを含み、前記通信識別子は前記ページグループが確立された時に前記ページグループ内の各ページに割り当てられ、前記ページグループ内の各ページは前記第2のページの前記通信識別子を格納し、
前記通信識別子に基づいて前記第1のページおよび前記第2のページの間の通信リンクを確立し、伝送されるべき前記データを前記第2のページに送信するために前記通信リンクを用いるように構成されている、少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、システム。
適用例13:適用例12に記載のシステムであって、前記第1のページが前記第2のページにデータを伝送するか否かを検出することは、
前記データの属性情報に基づいて、前記第1のページの前記現在のページグループを決定することを備える、システム。
適用例14:適用例13に記載のシステムであって、前記第1のページによって格納された前記現在のページグループ内の前記第2のページの前記通信識別子を取得することは、
前記第1のページのFLASH領域内に格納されたFLASHグループ内の他のFLASHファイルの識別子を取得することを備え、
前記FLASHグループは、前記現在のページグループ内の前記少なくとも2つのページに対応するFLASHファイルで構成され、前記第1のページの前記FLASH領域は、前記FLASHグループ内の前記他のFLASHファイルの前記識別子を格納し、
前記通信識別子に基づいて前記第1のページおよび前記第2のページの間の前記通信リンクを確立し、伝送されるべき前記データを前記第2のページに送信するために前記通信リンクを用いることは、
前記FLASHグループ内の前記他のFLASHファイルの前記格納された識別子に基づいて、送信される前記第1のページ内のFLASHファイルを呼び出し、
前記FLASHファイルを呼び出すことは、前記データを含むメッセージ受信要求を前記他のFLASHファイルに送信することを含み、
前記他のFLASHファイルを呼び出して、前記データを取得するために前記メッセージ受信要求を受信することを備える、システム。
適用例15:適用例14に記載のシステムであって、前記ページグループの確立は、
前記現在のページの前記データの前記属性情報を取得し、
前記属性情報に基づいて、前記現在のページが前記ページグループに追加されるべきか否かを評価し、
前記現在のページが前記ページグループに追加されると評価された場合に、前記現在のページの前記FLASHファイルを呼び出して、ホスト接続FLASHファイルを確立する動作を開始し、
前記FLASHグループがすでに前記ホスト接続FLASHファイルを持っているか否かを判定し、
前記FLASHグループが前記ホスト接続FLASHファイルを持っている場合に、前記FLASHグループへの前記現在のページのFLASHファイルの追加を呼び出して、現在の非ホスト接続FLASHファイルを確立し、同時に、現在の非ホスト接続識別子を生成および記録し、
前記現在の非ホスト接続FLASHファイルを呼び出して、前記現在の非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、FLASHグループ識別子を格納して前記FLASHグループ内の各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、ホスト接続識別子および前記非ホスト接続識別子を含み、
前記非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納することを備える、システム。
適用例16:適用例15に記載のシステムであって、前記FLASHグループがホスト接続FLASHファイルを持たない場合に、
前記現在のページの前記FLASHファイルを前記ホスト接続FLASHファイルとして確認し、同時に、前記ホスト接続識別子を生成および記録し、
前記FLASHグループが少なくとも1つの非ホスト接続FLASHファイルを持つ場合に、前記FLASHグループ内の各非ホスト接続FLASHファイルを呼び出して、非ホスト接続識別子を前記ホスト接続FLASHファイルに送信し、
前記ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を前記各非ホスト接続FLASHファイルに送信し、前記FLASHグループ識別子は、前記ホスト接続識別子および各非ホスト接続識別子を含み、
前記各非ホスト接続FLASHファイルを呼び出して、前記FLASHグループ識別子を格納する、システム。
適用例17:適用例15に記載のシステムであって、前記現在の非ホスト接続識別子を生成することは、ランダムに、または、特定の順序に基づいて、前記現在の非ホスト接続識別子を生成することを備える、システム。
適用例18:適用例15に記載のシステムであって、前記プロセッサは、さらに、
前記FLASHグループ内の前記非ホスト接続FLASHファイルを呼び出して、前記ホスト接続FLASHファイルを再確立する動作を開始し、
前記ホスト接続FLASHファイルが無効になったか否かを判定し、
前記ホスト接続FLASHファイルが無効になった場合に、前記ホスト接続FLASHファイルを確立する動作を再開した前記非ホスト接続FLASHファイルを新たなホスト接続FLASHファイルとして確認し、同時に、新たなホスト接続識別子を生成および記録し、
前記新たなホスト接続識別子に基づいて前記自己格納されたFLASHグループ識別子を更新するために前記新たなホスト接続FLASHファイルを呼び出し、前記更新されたFLASHグループ識別子を前記FLASHグループ内の前記非ホスト接続FLASHファイルに送信し、
前記非ホスト接続FLASHファイルに基づいて前記自己格納されたFLASHグループ識別子を更新して、前記更新されたFLASHグループ識別子を用いるよう構成されている、システム。
適用例19:適用例12に記載のシステムであって、前記プロセッサは、さらに、
前記データに基づいて、前記第2のページにページ関連動作を実行するよう構成されており、前記データは、オペレーショナルデータである、システム。
適用例20:適用例12に記載のシステムであって、前記少なくとも1つのプロセッサは、さらに、
前記データに従って、前記第2のページを更新するよう構成されており、前記データは、更新データである、システム。
適用例21:適用例14に記載のシステムであって、
送信される前記第1のページ内の前記FLASHファイルを呼び出すことは、前記FLASHグループ内の前記他のFLASHファイルの前記識別子に基づいて、前記データを含む前記メッセージ受信要求を前記他のFLASHファイルに送信することを備え、
前記他のFLASHファイルは、前記メッセージ受信要求を受信して前記データを取得するために、receivemessage関数を用いる、システム。
適用例22:適用例12に記載のシステムであって、前記ページグループ内の前記ページは、同一生成元ページである、システム。
適用例23:クライアントで表示されるページの間で通信を行うためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
第1のページが第2のページにデータを伝送するか否かを検出するためのコンピュータ命令と、
前記第1のページが前記第2のページに前記データを伝送する場合に、前記第1のページおよび前記第2のページを格納する現在のページグループ内の前記第2のページの通信識別子を取得するためのコンピュータ命令と、前記ページグループは少なくとも2つの予め確立されたページを含み、前記通信識別子は前記ページグループが確立された時に前記ページグループ内の各ページに割り当てられ、前記ページグループ内の各ページは前記第2のページの前記通信識別子を格納し、
前記通信識別子に基づいて前記第1のページおよび前記第2のページの間の通信リンクを確立し、伝送されるべき前記データを前記第2のページに送信するために前記通信リンクを用いるためのコンピュータ命令と、を備える、コンピュータプログラム製品。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図12C
図12D
図13