(57)【要約】  ドメインセキュリティモデルを実現するブラウザクライアントなどのユーザエージェントにより処理される文書のコンテキスト内で実行されるコードモジュール間の安全で構造化された相互作用を容易にすることを目的とする方法、装置、及びシステムを提供する。特定の実施構成では、ベース文書内にロードされるモジュールコネクタスクリプト又はオブジェクトが、異なる生成元又はドメインに対応するリスナモジュール及び送信側モジュールを発見して、これらの間で情報を交換する。このようにして、リスナモジュールは、同じページ上に位置する送信側モジュールからの情報を、いずれの形の相互接続も明確に定める必要なく単にエンドユーザに両モジュールをウェブページに追加させることにより消費及び使用することができる。例えば、写真モジュールが、遠隔の写真共有サイトでユーザアカウントにアクセスして、スライドショーの形で写真を表示するモジュールに１又はそれ以上の写真を提供することができる。【選択図】      図６
2011501829.tif 000002
【特許請求の範囲】
【請求項１】
生成元が異なるコンテンツ間のインラインフレームをまたぐ相互作用を禁止するドメインセキュリティモデルを実現するユーザエージェントから、第１の生成元においてウェブページ要求を受け取るステップと、
レイアウト情報のデータストアにアクセスさせて、ベース文書に追加するための１又はそれ以上のモジュールオブジェクトを識別するステップと、
前記ベース文書を前記第１の生成元から前記ユーザエージェントへ送信するステップと、
を含む方法であって、
前記ベース文書は、各々が前記ユーザエージェントに、メッセンジャオブジェクトと前記識別されたモジュールオブジェクトの１又はそれ以上とを含むモジュール文書をインラインフレーム内で第２の生成元からロードさせる１又はそれ以上のモジュールインラインフレーム要素を含み、
個々のメッセンジャオブジェクトは、前記ユーザエージェントのコンテキスト内で、
対応するモジュールインラインフレーム内で、前記第１の生成元を識別するロケーション属性を含むメッセンジャインラインフレーム要素を作成し、
前記モジュールオブジェクトにより送信されたメッセージに応答して、前記メッセージを前記ロケーション属性に追加し、
前記メッセンジャインラインフレーム要素の前記ロケーション属性内で検出された新規メッセージを前記モジュールオブジェクトに提供し、
前記ベース文書はモジュールコネクタオブジェクトをさらに含み、該モジュールコネクタオブジェクトは、前記ユーザエージェントのコンテキスト内で、
１又はそれ以上のメッセンジャインラインフレーム要素のロケーション属性にアクセスして新規メッセージをチェックし、
新規メッセージに応答して、対応するメッセンジャインラインフレーム要素の１又はそれ以上のロケーション属性に前記新規メッセージを追加する、
ことを特徴とする方法。
【請求項２】
前記メッセンジャオブジェクトがさらに、前記モジュールコネクタオブジェクトに登録する、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記メッセンジャオブジェクトがさらに、前記モジュールオブジェクトへのメッセージングアプリケーションプログラミングインターフェイスを定める、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記メッセンジャオブジェクトがさらに、前記メッセンジャインラインフレーム要素の前記ロケーション属性に以前に追加されたメッセージを期限切れにする、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記モジュールコネクタオブジェクトがさらに、前記メッセンジャインラインフレーム要素の前記ロケーション属性に以前に追加されたメッセージを期限切れにする、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記モジュールコネクタオブジェクトがさらにチャネル上でリスナとして登録し、前記モジュールオブジェクトが、前記新規メッセージのチャネル及び前記チャネル上の前記登録されたリスナに依存して、対応するメッセンジャインラインフレーム要素の前記１又はそれ以上のロケーション属性に前記新規メッセージを選択的に追加する、
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記第１の生成元及び第２の生成元が、ホスト名、ポート、及びプロトコルの組み合わせに関連して定められる、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記要求がユーザを識別し、前記レイアウト情報が、前記ユーザに関連するユーザアカウントからアクセスされる、
ことを特徴とする請求項１に記載の方法。
【請求項９】
ネットワークインターフェイスと、
メモリと、
１又はそれ以上のプロセッサと、
１又はそれ以上のコンピュータ可読命令を含むネットワークアプリケーションプログラムロジックと、
を備えた装置であって、前記命令は、実行された場合、前記１又はそれ以上のプロセッサに、
生成元が異なるコンテンツ間のインラインフレームをまたぐ相互作用を禁止するドメインセキュリティモデルを実現するユーザエージェントから、第１の生成元においてウェブページ要求を受け取らせ、
レイアウト情報のデータストアにアクセスさせて、ベース文書に追加するための１又はそれ以上のモジュールオブジェクトを識別させ、
前記ベース文書を前記第１の生成元から前記ユーザエージェントへ送信させ、
前記ベース文書は、各々が前記ユーザエージェントに、メッセンジャオブジェクトと前記識別されたモジュールオブジェクトの１又はそれ以上とを含むモジュール文書をインラインフレーム内で第２の生成元からロードさせる１又はそれ以上のモジュールインラインフレーム要素を含み、
個々のメッセンジャオブジェクトは、前記ユーザエージェントのコンテキスト内で、
対応するモジュールインラインフレーム内で、前記第１の生成元を識別するロケーション属性を含むメッセンジャインラインフレーム要素を作成し、
前記モジュールオブジェクトにより送信されたメッセージに応答して、前記メッセージを前記ロケーション属性に追加し、
前記メッセンジャインラインフレーム要素の前記ロケーション属性内で検出された新規メッセージを前記モジュールオブジェクトに提供し、
前記ベース文書はモジュールコネクタオブジェクトをさらに含み、該モジュールコネクタオブジェクトは、前記ユーザエージェントのコンテキスト内で、
１又はそれ以上のメッセンジャインラインフレーム要素のロケーション属性にアクセスして新規メッセージをチェックし、
新規メッセージに応答して、対応するメッセンジャインラインフレーム要素の１又はそれ以上のロケーション属性に前記新規メッセージを追加する、
ことを特徴とする装置。
【請求項１０】
前記メッセンジャオブジェクトがさらに、前記モジュールコネクタオブジェクトに登録する、
ことを特徴とする請求項９に記載の装置。
【請求項１１】
前記メッセンジャオブジェクトがさらに、前記モジュールオブジェクトへのメッセージングアプリケーションプログラミングインターフェイスを定める、
ことを特徴とする請求項９に記載の装置。
【請求項１２】
前記メッセンジャオブジェクトがさらに、前記メッセンジャインラインフレーム要素の前記ロケーション属性に以前に追加されたメッセージを期限切れにする、
ことを特徴とする請求項９に記載の装置。
【請求項１３】
前記モジュールコネクタオブジェクトがさらに、前記メッセンジャインラインフレーム要素の前記ロケーション属性に以前に追加されたメッセージを期限切れにする、
ことを特徴とする請求項９に記載の装置。
【請求項１４】
前記モジュールオブジェクトがさらにチャネル上でリスナとして登録し、前記モジュールコネクタオブジェクトが、前記新規メッセージのチャネル及び前記チャネル上の前記登録されたリスナに依存して、対応するメッセンジャインラインフレーム要素の前記１又はそれ以上のロケーション属性に前記新規メッセージを選択的に追加する、
ことを特徴とする請求項９に記載の装置。
【請求項１５】
前記第１の生成元及び第２の生成元が、ホスト名、ポート、及びプロトコルの組み合わせに関連して定められる、
ことを特徴とする請求項９に記載の装置。
【請求項１６】
前記要求がユーザを識別し、前記レイアウト情報が、前記ユーザに関連するユーザアカウントからアクセスされる、
ことを特徴とする請求項９に記載の装置。
【請求項１７】
生成元が異なるコンテンツ間のインラインフレームをまたぐ相互作用を禁止するドメインセキュリティモデルを実現するステップと、
１又はそれ以上のモジュールインラインフレーム要素を含むベース文書を第１の生成元から受け取って表示するステップと、
個々のモジュールインラインフレーム要素ごとに、メッセンジャオブジェクトと前記識別されたモジュールオブジェクトの１又はそれ以上とを含むモジュール文書をインラインフレーム内でそれぞれの第２の生成元からロードするステップと、
を含む方法であって、
個々のメッセンジャオブジェクトは、
対応するモジュールインラインフレーム内で、前記第１の生成元を識別するロケーション属性を含むメッセンジャインラインフレーム要素を作成し、
前記モジュールオブジェクトにより送信されたメッセージに応答して、前記メッセージを前記ロケーション属性に追加し、
前記メッセンジャインラインフレーム要素の前記ロケーション属性内で検出された新規メッセージを前記モジュールオブジェクトに提供し、
前記ベース文書はモジュールコネクタオブジェクトをさらに含み、該モジュールコネクタオブジェクトは、
１又はそれ以上のメッセンジャインラインフレーム要素のロケーション属性にアクセスして新規メッセージをチェックし、
新規メッセージに応答して、対応するメッセンジャインラインフレーム要素の１又はそれ以上のロケーション属性に前記新規メッセージを追加する、
ことを特徴とする方法。
【請求項１８】
前記第１の生成元及びそれぞれの第２の生成元が、ホスト名、ポート、及びプロトコルの組み合わせに関連して定められる、
ことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記モジュールオブジェクトがアクセスできるメッセージングアプリケーションプログラミングインターフェイスを定めるステップをさらに含む、
ことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記モジュールコネクタオブジェクトにメッセンジャオブジェクトを登録するステップをさらに含む、
ことを特徴とする請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ブラウザ又はその他のクライアントアプリケーションにより処理されるウェブページ又はその他の構造化文書のコンテキスト内で実行可能なコードオブジェクト間の通信に関する。
【背景技術】
【０００２】  インターネットなどの広域ネットワークにより接続される双方向システムは、情報交換、社会的相互作用、及びデジタルメディアの共有のための活気ある媒体へと着実に進化してきた。通常、インターネットユーザは、（ｍｙ．（公序良俗違反につき、不掲載）．ｃｏｍのような）個人ホームページ、及び（ｆａｃｅｂｏｏｋ．ｃｏｍ、ｍｙｓｐａｃｅ．ｃｏｍのような）ソーシャルネットワークサイト上の個人ページなどのカスタマイズ可能な個人ページを売り物にする様々なサービスプロバイダとの１又はそれ以上のアカウントを保持する。このようなページのエンドユーザに対する有用性及びカスタマイズ性を高めるために、サービスプロバイダは、ユーザに、１又はそれ以上の機能モジュール又はウィジェット（以下、モジュールと呼ぶ）を使用してユーザのページをカスタマイズできるようにすることがある。【０００３】
ウェブ又はインターネット環境では、これらのモジュールは、ブラウザなどのクライアントアプリケーションのコンテキスト内で実行され、様々な有用な又は娯楽的な機能を実現するＨＴＭＬコード及び（ＪａｖａＳｃｒｉｐｔ（登録商標）、及びＡｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ａｎｄ  ＸＭＬ（ＡＪＡＸ）などの）スクリプトを含むことができる。例えば、Ｒｅａｌｌｙ  Ｓｉｍｐｌｅ  Ｓｙｎｄｉｃａｔｉｏｎ（ＲＳＳ）フィードから取得されるブログエントリ、ニュースの見出し、又はポッドキャストなどのコンテンツを表示するためのモジュールを開発することができる。ｆｌｉｃｋｒ．ｃｏｍなどの、コンテンツ集約サイト上に提供される写真のスライドショーを表示するためのその他のモジュールを開発することもできる。その他のモジュールには、リアルタイムの株価情報を表示できるものもある。多くの場合、モジュールは、フレーム又はインラインフレーム（ｉｆｒａｍｅ）としてベースＨＴＭＬ文書内に出現し、ベースＨＴＭＬ文書内への別のＨＴＭＬ文書の埋め込みを可能にする。
【０００４】
これらのカスタマイズ可能なページを保持するサービスプロバイダは数多くのモジュールを開発することができ、ここからユーザが選択を行って自身のページに追加することができる。しかしながら、モジュールが実行できる多岐にわたる機能及び一見無制限にも思えるユーザの創造性を考慮すると、サービスプロバイダのなかには、同様にサードパーティがモジュールを開発できるようにするオープンな開発環境を提供するものもある。しかしながら、サードパーティモジュールを許可することに関わるセキュリティ上の問題を考慮すると、サービスプロバイダはまた、通常、サードパーティモジュールに関するセキュリティ上の懸念を最小限に抑えるための特定の対策にも依拠している。特に、ウェブページの異なるウィンドウ及びフレーム内のコンテンツは、スクリプト記述によって文書オブジェクトモデルと強力に相互作用することができる。しかしながら、ブラウザクライアントは、ベースページと１又はそれ以上のモジュールなどの無関係なコンテンツを自身の様々なウィンドウ及びフレーム内に同時に表示することができるので、データ完全性及び情報のプライバシーを保護するために特定のポリシを適用する必要がある。セキュリティ対策がとられなければ、１つのフレーム内で実行されるモジュールが、他のモジュール又はベース文書内の情報を知ることができる場合がある。このように自由なアクセスを許容することは、ユーザのプライバシーの侵害となり得る。
【０００５】  従って、（Ｍｏｚｉｌｌａ（登録商標）  Ｆｉｒｅｆｏｘ、及びＭｉｃｒｏｓｏｆｔ（登録商標）  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）などの）最も公的に入手可能なブラウザクライアントは、生成元が同じコンテンツとの相互作用のみを許可するドメインセキュリティモデルをサポートしている。例えば、（ｈｔｔｐ：／／（公序良俗違反につき、不掲載）．ｃｏｍ／などの）１つのドメインに対応するｉｆｒａｍｅのオブジェクトは、コンテンツが（ｈｔｔｐｓ：／／ｅｘａｍｐｌｅ．ｃｏｍ／などの）別のドメインから供給される場合、別のフレームのコンテンツ又はベース文書にアクセスすることができない。例えばＪａｖａｓｃｒｉｐｔに関しては、サイト間セキュリティ問題を防ぐために、ブラウザが、ｊａｖａｓｃｒｉｐｔオブジェクトモデル内で同一生成元ポリシを強制する。すなわち、１つのｉｆｒａｍｅ内で実行されるスクリプトは、ｉｆｒａｍｅ内の両方のページの生成元が同じでない限り、別のｉｆｒａｍｅ内のいずれのオブジェクトにもアクセスすることができない。ブラウザによっては、両方のページに関してプロトコル、（与えられていれば）ポート、及びホストが同じであれば２つのページの生成元が同じであるとみなすものもある。ドメインセキュリティがなければ、悪質なページが他のページをスヌープして、自身のドメイン外のクッキーにアクセスし、或いはダイナミックハイパーテキストマークアップ言語（ＤＨＴＭＬ）を使用してコンテンツを操作することができる。【０００６】
サービスプロバイダは、サードパーティモジュールに関連して、標準ブラウザによりサポートされるドメインセキュリティモデルを利用することができる。例えば、サービスプロバイダは、ベース文書とは異なる生成元又はドメインに対応するｉｆｒａｍｅ内のサードパーティモジュール又は（ｓｒｃ属性などの）サードパーティモジュールへの参照、並びにその他のｉｆｒａｍｅに埋め込まれた文書を含むＨＴＭＬ文書を提供することができる。このようにして、あるサードパーティモジュールの動作が、対応するｉｆｒａｍｅのコンテキスト内に効果的に含まれるようになる。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明は、ドメインセキュリティモデルを実現するブラウザクライアントなどのユーザエージェントにより処理される文書のコンテキスト内で実行されるコードモジュール間の安全な構造化された相互作用を容易にすることを目的とした方法、装置、及びシステムを提供する。特定の実施構成では、ベース文書内にロードされるモジュールコネクタスクリプト又はオブジェクトが、異なる生成元又はドメインに対応するリスナモジュール及び送信側モジュールを発見して、これらの間で情報を交換する。このようにして、リスナモジュールは、同じページ上に位置する送信側モジュールからの情報を、いずれの形の相互接続も明確に定める必要なく単にエンドユーザに両モジュールをウェブページに追加させることにより消費及び使用することができる。例えば、写真モジュールが、遠隔の写真共有サイトでユーザアカウントにアクセスして、スライドショーの形で写真を表示するモジュールに１又はそれ以上の写真を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の特定の実施構成が機能できるネットワーク環境を示す概略図である。
【図２】物理サーバを実現するために使用できる例示的なコンピュータシステムアーキテクチャを示す図である。
【図３】グラフィカルユーザインターフェイス例を示す図である。
【図４】ベースウェブページ又は文書に対応するＨＴＭＬ文書の要素を示すコード例である。
【図５】モジュールに対応するＨＴＭＬ文書の要素を示すコード例である。
【図６】本発明の特定の実施構成によるモジュール間通信処理を示すフロー図である。
【図７】本発明の特定の実施構成によるモジュール間通信処理を示すフロー図である。
【図８】本発明の特定の実施構成によるモジュール間通信処理を示すフロー図である。
【図９】本発明の特定の実施構成によるモジュール間通信処理を示すフロー図である。
【発明を実施するための形態】
【０００９】
Ａ．例示的なネットワークシステムアーキテクチャ
図１は、特定の実施構成が機能できる例示的なネットワーク環境を示している。図１が示すように、本発明の特定の実施構成は、サービスプロバイダサイト３０及び１又はそれ以上のクライアントシステム２８を含むネットワーク環境で動作することができる。サービスプロバイダサイト３０は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバ２６及びネットワークアプリケーション２７を収容するネットワークアプリケーションサーバ３１と、データベース２２に動作可能に結合されたデータベースシステム２０と、モジュール情報のデータストア３６に動作可能に結合されたモジュールホスティングプラットフォーム３４とを含む。ルータ２７が、サービスプロバイダサイト３０をネットワーククラウド２４に動作可能に結合する。ネットワーククラウド２４は、一般に１又はそれ以上の相互接続ネットワークを表し、これを介して本明細書で説明するシステム及びホストが通信できるようになる。ネットワーククラウド２４は、（インターネットなどの）パケットベースの広域ネットワーク、プライベートネットワーク、無線ネットワーク、衛星ネットワーク、セルラネットワーク、及びページングネットワークを含むことができる。
【００１０】  データベースシステム２０は、データベースアプリケーションを収容できるとともにソーシャルネットワークシステム、（ｍｙ．（公序良俗違反につき、不掲載）．ｃｏｍなどの）カスタマイズ可能ユーザホームページなどの様々なネットワークアプリケーションと共に動作することができるネットワークアドレス可能システムである。１又はそれ以上のホストがコンピュータネットワークを介してデータベースシステム２０にアクセスすることができる。１つの実施構成では、データベース２２が、ユーザアカウント情報、ユーザプロファイルデータ、アドレス、嗜好、金融口座情報などの様々な種類の情報を記憶することができる。データベース２２はまた、デジタルコンテンツデータオブジェクト及びその他のメディア資産などのコンテンツを記憶することもできる。特定の実施構成では、コンテンツデータオブジェクト又はコンテンツオブジェクトが、通常データファイル又はレコードに記憶され、或いは埋め込まれるデジタル情報の個々の項目である。コンテンツオブジェクトは、（ＡＳＣＩＩ、ＳＧＭＬ、ＨＴＭＬなどの）テキスト、（ｊｐｅｇ、ｔｉｆ、及びｇｉｆなどの）画像、グラフィックス（ベクトルベース又はビットマップ）、オーディオ、（ｍｐｅｇなどの）ビデオ、又はその他のマルチメディア、及びこれらの組み合わせを含む多くの形をとることができる。コンテンツオブジェクトデータはまた、（ブラウザウィンドウ又はフレーム内で実行可能なゲームなどの）実行可能なコードオブジェクト、ポッドキャストなどを含むこともできる。構造的には、データベース２２は、大型のデータ記憶及び管理システムを暗示する。特定の実施構成では、データベースサーバ、大容量記憶媒体、及びメディアライブラリシステムなどの構成要素を含むあらゆる適当な物理システムによりデータベース２２を実現することができる。モジュールホスティングプラットフォーム３４は、サービスプロバイダサイト３０により内部的に開発されたモジュール、並びにサードパーティにより開発されたモジュールを収容する。データストア３６は、コンピュータプログラムコード、ＨＴＭＬコード、スクリプト、及びＡｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）（ｓｗｆ）オブジェクトなどのモジュール定義データを記憶する。
【００１１】
特定の実施構成では、ネットワークアプリケーション２７がデータベースシステム２０にアクセスして、そこに記憶されたデータを必要に応じて取り出し、追加し、又は変更して、ソーシャルネットワークアプリケーション又はカスタマイズ可能ホームページなどのネットワークアプリケーションを１又はそれ以上のユーザに提供することができる。あるユーザからのホームページ要求に応答して、ネットワークアプリケーションサーバ２７は、データベースシステム２０にアクセスして、対応するユーザアカウントからページフォーマット及びレイアウト情報を取り出す。レイアウト情報は、特にユーザが自身のページに追加したモジュールを識別することができる。次にネットワークアプリケーション２７は、レイアウト情報内で識別されたモジュールを追加するためのＨＴＭＬコード及びその他のコンテンツを取得又は生成するために、モジュールホスティングプラットフォーム３４にアクセスすることができる。その後ネットワークアプリケーション２７は、このコンテンツをベース文書又はページテンプレートにまとめ、まとめたページをユーザへ送信することができる。
【００１２】
クライアントシステム２８は、ネットワークサービスプロバイダ又はその他のいずれかの適当な手段を介してネットワーク環境に動作可能に接続される。クライアントシステム２８は、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）などのパーソナルコンピュータ又はモバイル機器を含むことができる。クライアントシステム２８は、１又はそれ以上のプロセッサと、メモリと、ネットワークインターフェイスと、１又はそれ以上の入出力（Ｉ／Ｏ）装置と、これらの構成要素を相互接続するシステムバスとを含むことができる。クライアントシステム２８はまた、オペレーティングシステム、及びサービスプロバイダサイト３０と相互作用するブラウザクライアントなどのユーザエージェントを含むこともできる。ブラウザクライアントとして、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（登録商標）、Ａｐｐｌｅ（登録商標）  Ｓａｆａｒｉ（登録商標）、Ｎｅｔｓｃａｐｅ（登録商標）  Ｎａｖｉｇａｔｏｒ（登録商標）、及びその他のあらゆる適当なユーザエージェントを挙げることができる。このようなブラウザクライアントは、（コードオブジェクトとスクリプトなどの）異なる生成元から提供されるコンテンツ間の相互作用を禁止するドメインセキュリティモデルをサポートする。特定の実施構成では、生成元は、ホスト名、ポート、及びプロトコルの組み合わせとして定義される。ホスト名は、ＩＰアドレスであっても又はドメイン名であってもよい。ポートは、トランスポート制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ポートを意味し、一方プロトコルは、トランスポート層よりも上にある、ＨＴＴＰ、Ｓ−ＨＴＴＰ、ＨＴＴＰ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ（ＨＴＴＰＳ）などのプロトコル層を意味する。さらに、ブラウザによっては、（６６．２１３．１４５．９３などの）ＩＰアドレス及びこのＩＰアドレスを定めるドメイン名をｉｆｒａｍｅに関連して使用する場合には、これらを別の生成元と考えるものもある。
【００１３】
Ａ．１  例示的なサーバシステムアーキテクチャ
（ネットワークアプリケーションサーバ３１などの）本明細書で説明するサーバホストシステムは、多様なコンピュータシステム及びアーキテクチャの形で実現することができる。さらに、クライアントシステム２８のシステムアーキテクチャは、サーバシステムアーキテクチャに極めて類似することができる。例えば、システムアーキテクチャは、マウス、キーボード、及びディスプレイ装置などのＩ／Ｏシステムをさらに含むことができる。以下、限定的な意味ではなく教示的な意味でコンピュータアーキテクチャ例について説明する。
【００１４】
図２は、物理サーバを実現するために使用することができるコンピュータシステムアーキテクチャ例を示している。１つの実施形態では、ハードウェアシステム２００が、プロセッサ２０２と、キャッシュメモリ２０４と、本明細書で説明する機能を目的とする１又はそれ以上のソフトウェアアプリケーション及びドライバとを含む。また、ハードウェアシステム２００は、高性能入出力（Ｉ／Ｏ）バス２０６及び標準Ｉ／Ｏバス２０８を含む。ホストブリッジ２１０がプロセッサ２０２を高性能Ｉ／Ｏバス２０６に結合する一方で、Ｉ／Ｏバスブリッジ２１２が２つのバス２０６及び２０８を相互に結合する。バス２０６にはシステムメモリ２１４及びネットワーク／通信インターフェイス２１６が結合する。ハードウェアシステム２００は、ビデオメモリ（図示せず）及びビデオメモリに結合されたディスプレイ装置をさらに含むことができる。バス２０８には大容量記憶装置２１８及びＩ／Ｏポート２２０が結合する。ハードウェアシステム２００は、キーボード及びポインティング装置、並びにバス２０８に結合されたディスプレイ装置（図示せず）を任意で含むことができる。これらの要素はまとめて、以下に限定されるわけではないが、カリフォルニア州サンタクララのＩｎｔｅｌ社製のｘ８６互換プロセッサ、及びカリフォルニア州サニーベールのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ（ＡＭＤ）社製のｘ８６互換プロセッサ、並びにその他のあらゆる適当なプロセッサに基づく汎用コンピュータシステムを含む広いカテゴリのコンピュータハードウェアシステムを表すことが意図される。
【００１５】
以下、ハードウェアシステム２００の要素について詳細に説明する。特に、ネットワークインターフェイス２１６は、ハードウェアシステム２００と、（ＩＥＥＥ８０２．３などの）イーサネット（登録商標）ネットワークなどの幅広いネットワークのいずれかとの間の通信を提供する。大容量記憶装置２１８が、ロケーションサーバ２２内で実行される上述の機能を実行するためのデータ及びプログラム命令のための永久記憶装置を提供するのに対し、（ＤＲＡＭなどの）システムメモリ２１４は、プロセッサ２０２により実行された場合のデータ及びプログラム命令のための一時記憶装置を提供する。Ｉ／Ｏポート２２０は、ハードウェアシステム２００に結合できる追加の周辺装置間の通信を提供する１又はそれ以上のシリアル及び／又はパラレル通信ポートである。
【００１６】
ハードウェアシステム２００は様々なシステムアーキテクチャを含むことができ、ハードウェアシステム２００の様々な構成要素を再配置することができる。例えば、キャッシュ２０４をプロセッサ２０２にオンチップにしてもよい。或いは、キャッシュ２０４及びプロセッサ２０２を「プロセッサモジュール」として一体にまとめ、プロセッサ２０２を「プロセッサコア」と呼ぶこともできる。さらに、本発明の一部の実施形態は、上述の構成要素の全てを必要としなくてもよく、又は含まなくてもよい。例えば、標準Ｉ／Ｏバス２０８に結合されるように示している周辺装置が、高性能Ｉ／Ｏバス２０６に結合してもよい。また、いくつかの実施形態では、ハードウェアシステム２００の構成要素が結合した状態の単一のバスのみが存在することができる。さらに、ハードウェアシステム２００は、追加のプロセッサ、記憶装置、又はメモリなどの追加の構成要素を含むことができる。
【００１７】
以下で説明するように、１つの実施構成では、本明細書で説明する１又はそれ以上の物理サーバの動作が、ハードウェアシステム２００により実行される一連のソフトウェアルーチンとして実現される。これらのソフトウェアルーチンは、プロセッサ２０２などのハードウェアシステム内のプロセッサにより実行される複数の又は一連の命令を含む。最初に、大容量記憶装置２１８などの記憶装置に一連の命令を記憶することができる。しかしながら、ディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、ＥＥＰＲＯＭなどのあらゆる適当な記憶媒体に一連の命令を記憶することもできる。さらに、一連の命令をローカルに記憶する必要はなく、これらの命令をネットワーク上のサーバなどの遠隔記憶装置からネットワーク／通信インターフェイス２１６を介して受け取ることができる。命令は、大容量記憶装置２１８などの記憶装置からメモリ２１４内にコピーされ、その後プロセッサ２０２によりアクセスされて実行される。
【００１８】
オペレーティングシステムが、ソフトウェアアプリケーション（図示せず）とのデータの入出力を含むハードウェアシステム２００の動作を管理して制御する。オペレーティングシステムは、システム上で実行されるソフトウェアアプリケーションとシステムのハードウェア構成要素との間のインターフェイスを提供する。本発明の１つの実施形態によれば、オペレーティングシステムは、ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ社から入手可能なＷｉｎｄｏｗｓ（登録商標）９５／９８／ＮＴ／ＸＰ／Ｖｉｓｔａオペレーティングシステムである。しかしながら、本発明は、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ社から入手可能なＡｐｐｌｅ  Ｍａｃｉｎｔｏｓｈオペレーティングシステム、Ｕｎｉｘ（登録商標）オペレーティングシステム、及びＬＩＮＵＸオペレーティングシステムなどの他の適当なオペレーティングシステムと共に使用することができる。言うまでもなく他の実施構成も可能である。例えば、本明細書で説明するサーバの機能を、バックプレーンを介して通信する複数のサーバブレードにより実現することができる。
【００１９】Ｂ．モジュール間通信機能  図３は、ブラウザウィンドウ３０４内に表示される例示的なベースウェブページ３０２を示している。ベースウェブページ３０２は、ベースウェブページ３０２内にｉｆｒａｍｅとして埋め込まれた２つのモジュールウィンドウ３０６ａ、３０６ｂを含む。図４は、ブラウザクライアントがブラウザウィンドウ３０４内にベースウェブページ３０２を表示すべく処理するベースウェブページ３０２のＨＴＭＬコード（いくつかの擬似コードを含む）の一部を示している。ベースウェブページ３０２のＨＴＭＬコードは、第１のｉｆｒａｍｅ要素４０２及び第２のｉｆｒａｍｅ要素４０４を含む。「ｓｒｃ」要素は、ブラウザクライアントに、ユニフォームリソースロケータ（ＵＲＬ）に対応するコンテンツをｉｆｒａｍｅのコンテキスト内でロードさせる。１つの実施構成では、サービスプロバイダサイト３０が、ベースウェブページ３０２の生成元とは異なる生成元からｉｆｒａｍｅ要素４０２、４０４内にモジュールを提供する。説明目的のために、本開示では、このようなｉｆｒａｍｅ４０２、４０４をモジュールｉｆｒａｍｅと呼ぶ。これらのｉｆｒａｍｅは、ベースウェブページ３０２の子要素である。例えば、ｍｏｄｕｌｅｈｏｓｔ１．ｃｏｍという名前のホストから（教示目的のためにモジュールＡと表示する）第１のモジュールに対応するコンテンツを提供することができ、ｍｏｄｕｌｅｈｏｓｔ２．ｃｏｍという名前のホストから第２のモジュールを提供することができる。図３が示すように、ベースウェブページ３０２は、ｈｔｔｐ：／／ｍｙ．（公序良俗違反につき、不掲載）．ｃｏｍ／に関連するホストから提供される。図４が示すように、ベースウェブページ３０２のＨＴＭＬコードは、モジュールコネクタスクリプト要素４０６（教示目的のために「コンジット」と呼ぶ）をさらに含む。図示の実施構成では、モジュールコネクタスクリプトはＪａｖａｓｃｒｉｐｔオブジェクトであり、これがページ内にロードされる。スクリプト要素４０６はまた、ｉｆｒａｍｅトークン（ｉＦｔｏｋｅｎ）対モジュール識別子（ｍｏｄｕｌｅＩｄ）マッピング情報４０８も含む。図４が示すように、ｉｆｒａｍｅ要素４０２、４０４が、（ｍｏｄｕｌｅ＿Ａ、ｍｏｄｕｌｅ＿Ｂなどの）モジュールを識別する識別子（ｉｄ）を含むのに対し、ロケーション（ｓｒｃ）文字列は、特定のモジュールに対応するトークン値を識別する（ｉＦｔｏｋｅｎＡ、ｉＦｔｏｋｅｎＢなどの）トークン（ｔｏｋｅｎ）パラメータを含む。マッピング情報４０８は、これらのトークンを対応するモジュール識別子にマッピングする。モジュールコネクタスクリプトは、これらのマッピングを使用して、１つのｉｆｒａｍｅ内で実行されるモジュールが別のモジュールを装うことができないことを確実にすることができる。例えば、モジュールコネクタスクリプトへ転送されたメッセージはトークンを含むことができ、これをモジュールコネクタスクリプトが使用して、モジュールｉｆｒａｍｅの識別子（ｉｄ）及びトークン対モジュールマッピング情報４０８と比較してこのメッセージの妥当性を確認することができる。１つの実施構成では、モジュールコネクタスクリプトがトークンを使���して、モジュール、及びメッセージを追加すべきメッセージキューを識別する。他の実施構成も可能である。例えば、モジュールの１又はそれ以上をブラウザウィンドウ３０４内で見えるように表示する必要はない。
【００２０】  図５は、「モジュールＡ」に対応するＨＴＭＬ文書の（モジュールの相互接続及びその他の機能を表すためのいくつかの擬似コードを含む）ＨＴＭＬコード例を示している。例示のコードは純粋に教示を目的とするものである。モジュールＢについても、同じ又は同様の構造及びコマンドで同様の文書をロードすることができる。以下でより詳細に説明するように、モジュールは送信側及びリスナとして登録することができる。図５は、ＨＴＭＬコードが、モジュールｉｆｒａｍｅ内にメッセンジャスクリプトオブジェクトがロードされるようにするスクリプト要素５０２を含むことを示す。メッセンジャスクリプトのデータロケータもトークン（ｉＦｔｏｋｅｎＡ）を含み、これがサービスプロバイダサイト３０により受け取られ、メッセンジャスクリプトを含められて、以下で説明するようにメッセンジャｉｆｒａｍｅ要素内にトークンを埋め込むことができるようにする。特に、メッセンジャスクリプトは、ロードされ実行された場合、モジュールｉｆｒａｍｅ内に別のｉｆｒａｍｅ（本明細書では「メッセンジャｉｆｒａｍｅ」と呼ぶ）を埋め込む。１つの実施構成では、メッセンジャスクリプトが、モジュールｉｆｒａｍｅのＨＴＭＬ文書のオブジェクトモデルにアクセスして、実行時にメッセンジャｉｆｒａｍｅを作成するためのＨＴＭＬコードを追加する。メッセンジャｉｆｒａｍｅは、モジュールｉｆｒａｍｅの子要素である。１つの実施構成では、ブラウザウィンドウ３０４内でメッセンジャｉｆｒａｍｅが見えず、又は表示されない。以下、例示の目的でコード例を示す。＜ｉｆｒａｍｅ  ｓｒｃ＝ｈｔｔｐ：／／ｍｙ．（公序良俗違反につき、不掲載）．ｃｏｍ／ｍｅｓｓｅｎｇｅｒ？ｔｏｋｅｎ＝ｉＦｔｏｋｅｎＡ＃  ［｛．．．  ．．．  ．．．｝｛．．．  ．．．  ．．．｝，｛．．．  ．．．  ．．．  ｝，｛．．．  ．．．  ．．．｝，｛．．．  ．．．  ．．．  ｝］＞ｔｏｐ．ｃｏｎｄｕｉｔ．ｒｅｇｉｓｔｅｒ（ｗｉｎｄｏｗ，  ｔｏｋｅｎ）；＜／ｉｆｒａｍｅ＞  メッセンジャｉｆｒａｍｅ要素のｓｒｃ属性内に示される生成元がベースウェブページ３０２と同じ生成元なので、ベースウェブページ３０２のオブジェクトは、メッセンジャｉｆｒａｍｅのコンテンツと相互作用することができる。しかしながら、モジュールｉｆｒａｍｅのコンテンツは、ベースウェブページ３０２又はメッセンジャｉｆｒａｍｅのコンテンツと相互作用することができない。メッセンジャｉｆｒａｍｅ要素のｓｒｃ属性もトークン値（ここではｉＦｔｏｋｅｎＡ）を含む。上述したように、メッセンジャスクリプトは、メッセンジャスクリプトがメッセンジャｉｆｒａｍｅをベースウェブページ３０２のモジュールコネクタスクリプトに登録するようにするコード（（ｔｏｐ．ｃｏｎｄｕｉｔ．ｒｅｇｉｓｔｅｒ（ｗｉｎｄｏｗ，ｔｏｋｅｎ））も含む。モジュールコネクタスクリプトは、転送されてきたトークン、及びモジュール識別子対トークンマッピング情報４０８を使用して、（モジュールｉｆｒａｍｅのｉｄ属性にアクセスすることにより）メッセンジャスクリプト及びメッセンジャｉｆｒａｍｅが対応するモジュールｉｆｒａｍｅを識別することができる。モジュールコネクタスクリプ��はまた、ｉｆｒａｍｅ及びメッセンジャｉｆｒａｍｅ要素にアクセスして、これらを自身のマッピング情報４０８と比較することにより、登録メッセージの妥当性を確認することもできる。さらに、モジュールコネクタスクリプトはトークン値を使用して、様々なメッセージを追加すべきメッセンジャｉｆｒａｍｅのメッセージキューを識別することができる。メッセンジャｉｆｒａｍｅ要素のｓｒｃ  ＵＲＬは、メッセージキューとして機能する符号化文字列（＃の後）も含む。ハッシュ（＃）の後の文字列値を変更しても、ブラウザクライアントが新規の要求を送信することはない。特定の実施構成では、符号化文字列が、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）を使用してメッセージキューを実装し、この場合、個々のメッセージがＪＳＯＮ構文を使用して区切られる。ほとんどのブラウザクライアントのドメインセキュリティモデルによれば、メッセンジャスクリプトは、メッセンジャｉｆｒａｍｅ要素のロケーション（ｓｒｃ）を最初に設定し、メッセンジャｉｆｒａｍｅが作成された後にこのロケーションをリセットすることができる。さらに、メッセンジャｉｆｒａｍｅ要素のロケーション（ｓｒｃ）がベースウェブページ３０２と同じ生成元に設定されているとすれば、モジュールコネクタスクリプトは、このロケーション（ｓｒｃ）及び符号化文字列にアクセスして、メッセージキュー内にどのようなメッセージが存在するかを突き止めることができる。モジュールコネクタスクリプトはまた、メッセージキューを変更して新規のメッセージを追加し、及び期限切れのメッセージを削除することもできる。さらに、メッセンジャスクリプトがモジュールｉｆｒａｍｅのコンテキスト内で動作する場合でも、メッセンジャスクリプトは、なおもロケーション（ｓｒｃ）属性を読み出して変更することができる。別の実施構成では、モジュールコネクタスクリプトをｉｆｒａｍｅに埋め込むこともできる。このような実施構成では、メッセンジャスクリプトが、（生成元がベースウェブページ３０２と異なる場合に）モジュールコネクタスクリプトの生成元と同じ生成元を識別したメッセンジャｉｆｒａｍｅ要素を作成したことになる。以下で説明するように、モジュールが送信した第１のメッセージに応答してメッセンジャｉｆｒａｍｅ要素を動的に作成することができる。
【００２１】
さらに、メッセンジャスクリプトがメッセージングアプリケーションプログラミングインターフェイス（ＡＰＩ）を宣言して、モジュールが送信側及び受信側として登録してメッセージを送受信できるようにすることもできる。メッセージングＡＰＩはまた、サードパーティモジュールの開発者が利用できる公開された仕様でもある。メッセージングＡＰＩにより、モジュール開発者は、モジュールコネクタスクリプトに登録するとともに他のモジュールとの間でメッセージを送受信できるモジュールを作成できるようになる。例えば、図５のコード例では、モジュールが、ｆｌｉｃｋｒ．ｃｏｍというサイトにアクセスしてユーザのアカウントにアップロードされた１又はそれ以上の写真へのＵＲＬを取得するｌｏａｄＰｈｏｔｏｓＦｒｏｍｆｌｉｃｋｒ関数を含む。ａｄｖｅｒｔｉｓｅＰｈｏｔｏｓ関数は、メッセンジャスクリプトにより宣言されたインターフェイスを使用してメッセージを送信する。図示の実施構成では、関数が、メッセージングＡＰＩに従って、メッセンジャスクリプトに、対応するメッセンジャｉｆｒａｍｅのロケーション（ｓｒｃ）属性のメッセージキュー内に写真のＵＲＬを掲載させるｓｅｎｄコマンド５０４を含む（以下参照）。特定の実施構成では、モジュールコネクタスクリプトが複数のチャネルをサポートする。個々のメッセージは、チャネルを識別するとともに、チャネル上で送信される対応するデータを含む。図５が示すように、ｓｅｎｄコマンド５０２は「ｐｉｃｔｕｒｅｓ」と呼ばれるチャネルを識別する。個々のチャネルはまた、リスニングモジュールが予期することができる出力フォーマットと関連付けられる。追加のチャネルは、テキスト、写真、音楽、ビデオなどを含むことができる。例えば、写真チャネルは、出力が写真へのＵＲＬであることを要件とすることができ、ビデオチャネルは、出力がビデオへのＵＲＬであることを要件とすることができる。１つの実施構成では、モジュールが、「ｌｉｓｔｅｎｅｒ」チャネル上でｓｅｎｄコマンドを発行することにより、１又はそれ以上のチャネル上でリスナとして登録することもできる。例えば、１つの考えられるメッセージングＡＰＩによれば、モジュール開発者は、ｒｅｃｅｉｖｅ（“ｐｉｃｔｕｒｅｓ”，ｈａｎｄｌｅｒ）というＡＰＩを有するｒｅｃｅｉｖｅ関数を呼び出して、（ｈａｎｄｌｅｒ＝ｆｕｎｃｔｉｏｎ（ｍｓｇ）などの）ハンドラを定義するモジュールを作成することができる。その下部のメッセージングの実施構成は、（ｓｅｎｄ（｛ｃｈａｎｎｅｌ：“ｌｉｓｔｅｎｅｒ”，ｄａｔａ：“ｐｉｃｔｕｒｅｓ”｝）などの）ｓｅｎｄ動作を実行して、モジュールの特定のチャネルをリスンする能力を公表することができる。メッセージングの実施構成が、将来的な参照のためにハンドラへのポインタを記憶することにより、このチャネル上でメッセージを受け取ったときにこれをｈａｎｄｌｅｒ関数へ送ることができるようになる。このようにして、ｒｅｃｅｉｖｅメッセージングＡＰＩに依拠するモジュールは、メッセージを受け取ることができる（単複の）チャネルを識別するリスナチャネル上でｓｅｎｄコマンドを発行する。ｒｅｃｅｉｖｅ関数はさらに、受け取ったメッセージのハンドラを識別し、ハンドラはメッセージを処理する関数を定義する。例えば、メッセージが写真へのＵＲＬである場合、ｈａｎｄｌｅｒ関数は、写真を取り出して、これをユーザに表示されるスライドショーに追加するという処理を定義する。
【００２２】
Ｂ．１．メッセンジャスクリプト−Ｓｅｎｄ
図６は、モジュールからメッセージを送信するために、本発明の１つの実施構成によるメッセンジャスクリプトにより実施することができる方法を示している。メッセンジャスクリプトが、モジュールｉｆｒａｍｅのコンテキスト内で動作するモジュールから発行されるｓｅｎｄコマンド（６０２）をリスンする。ｓｅｎｄコマンドに応答して、メッセンジャスクリプトが、転送されてきたパラメータ情報に基づいてメッセージを構築し、タイムスタンプを作成する（６０４）。メッセンジャｉｆｒａｍｅがまだ作成されていない場合（６０６）、メッセンジャスクリプトは、モジュールｉｆｒａｍｅ内でメッセンジャｉｆｒａｍｅ要素を作成し、ロケーション（ｓｒｃ）属性（上記参照）への符号化パラメータとしてメッセージ及びタイムスタンプをメッセージキューに追加する（６０８）。メッセンジャｉｆｒａｍｅがすでに作成されている場合、メッセンジャスクリプトは、メッセージキューをチェックして、タイムスタンプに基づいて期限切れのメッセージを削除し（６１０）、新規のメッセージ及びタイムスタンプをメッセージキューに追加する（６１２）。その後、モジュールコネクタスクリプトが、メッセンジャｉｆｒａｍｅのロケーション（ｓｒｃ）属性に追加されたメッセージにアクセスして読み出しできるようになる。
【００２３】
Ｂ．２．モジュールコネクタスクリプト
図７は、本発明の１つの考えられる実施構成によるモジュールコネクタスクリプトにより実施される方法を示している。図７に示す処理フローは、第１のメッセンジャｉｆｒａｍｅの登録（上記参照）に応答して開始することができる。図７が示すように、メッセージコネクタスクリプトは、２０ミリ秒ごとのように定期的に動作して（７０２）、あらゆる登録されるメッセンジャｉｆｒａｍｅをチェックする（７０４）。いずれかのメッセンジャｉｆｒａｍｅが登録されると、メッセージコネクタスクリプトは、登録された全てのメッセンジャｉｆｒａｍｅに関して（７０６）、メッセージキューに新規のメッセージが追加されたかどうかを判定する（７０８）。追加されていれば、メッセージコネクタスクリプトは、全ての新規のメッセージに関して（７１０）、それぞれのメッセージ内に示されるチャネルのあらゆるリスナへメッセージを転送する（７１２、７１４）。
【００２４】
図８は、本発明の１つの考えられる実施構成によるモジュールコネクタスクリプトにより実施される、リスナモジュールへメッセージを転送することを目的とした方法を示している。図８が示すように、メッセージコネクタスクリプトが、リスナモジュールに対応するメッセンジャｉｆｒａｍｅのロケーション（ｓｒｃ）属性にアクセスして（８０２）メッセージキューのパラメータ情報を復号化する（８０４）。メッセージキュー内の個々のメッセージのタイムスタンプを使用して、メッセージコネクタスクリプトは、古いメッセージを削除することによりこれらをメッセージキューから期限切れにし（８０６）、新規のメッセージをメッセージキューに追加する（８０８）。このようにして、対応するリスナモジュールのモジュールｉｆｒａｍｅのコンテキスト内で動作するメッセンジャスクリプトがメッセージにアクセス可能となる。
【００２５】
他の実施構成も可能である。例えば、メッセージコネクタスクリプトの動作をエンドユーザが調整するようにしてもよく、このユーザは、特定のモジュールが相互作用できるモジュール、又はモジュールがメッセージを受け取ることができるチャネルを定める１又はそれ以上のルールを構成することができる。さらに、モジュールコネクタスクリプトが動作する時間間隔を固定値にすることができ、或いは個々の動作ごとに徐々に増加させることができる。
【００２６】
Ｂ．３．メッセンジャスクリプト−Ｌｉｓｔｅｎ
図９は、メッセージをリスンしてこれらをモジュールに提供するために、本発明の１つの実施構成によるメッセンジャスクリプトにより実施できる方法を示している。図９が示すように、メッセンジャスクリプトは、定期的に動作するリスニング処理を実行する（９０２）。所定の時間間隔後、メッセンジャスクリプトは、メッセンジャｉｆｒａｍｅのロケーション（ｓｒｃ）属性を復号化してメッセージキュー内のメッセージをチェックし（９０４）、メッセージを受け取るべく登録されたハンドラへあらゆる新規のメッセージを転送する（上記参照）（９０６）。このようにして、モジュールは、１又はそれ以上のメッセージを受け取ってこれらを処理し、例えばブラウザウィンドウ３０４内で表示される出力を生成する。また、モジュール間通信のための構造化機構がモジュールを相互作用できるようにする一方で、モジュールは、他のページオブジェクトと通信及び相互作用するための本明細書で開示する手段しか有していないので、さらにセキュリティが維持される。
【００２７】
具体的な実施形態を参照しながら本発明について説明した。例えば、本発明の実施形態について、ＨＴＴＰ、ＨＴＭＬ、及びＪａｖａＳｃｒｉｐｔに関連して動作するものとして説明してきたが、あらゆる適切なプロトコル環境に関連して本発明を使用することができる。当業者にはその他の実施形態が明らかであろう。従って、添付の特許請求の範囲により示すものを除き、本発明を限定することを意図するものではない。
【符号の説明】
【００２８】
６０２  Ｓｅｎｄメッセージか？
６０４  メッセージ及びタイムスタンプを構築
６０６  メッセンジャｉｆｒａｍｅが存在するか？
６０８  メッセージ及びタイムスタンプをメッセージキュー内の符号化パラメータとして使用してｉｆｒａｍｅを構築
６１０  メッセージキューをチェックして期限切れのメッセージを削除
６１２  メッセージキューにメッセージ及びタイムスタンプを追加
【図１】
2011501829.tif 000003
【図２】
2011501829.tif 000004
【図３】
2011501829.tif 000005
【図４】
2011501829.tif 000006
【図５】
2011501829.tif 000007
【図６】
2011501829.tif 000008
【図７】
2011501829.tif 000009
【図８】
2011501829.tif 000010
【図９】
2011501829.tif 000011
【国際調査報告】
2011501829.tif 000012
2011501829.tif 000013