(57)【要約】周期的更新を受ける状態を有するオブジェクトの形態で様々なコンテンツプロバイダから提供される情報を処理する方法およびシステムが開示される。オブジェクトの現在の状態を示すフォーマット済み情報は、ほぼリアルタイムに加入クライアントに送達される。情報マネージャモジュールは、コンテンツプロバイダから未加工データオブジェクトを受け取り、情報をフォーマットし、様々な同報通信データストリーム上で現在の状態の情報を同報通信するように構成される。クライアントマネージャモジュールは、複数のクライアント通信セッションをサポートし、少なくとも１つの同報通信データストリームに接続する。同報通信データストリーム上で受信された現在の状態情報は、クライアントプロファイルで指定される処理規則に従って処理され、特定のクライアントに送られる。
2004506272.tif 000002
【特許請求の範囲】
【請求項１】
周期的更新を受ける情報を含む複数の未加工イベントを搬送する未加工データストリームを処理するシステムであって、
前記未加工データストリームを入力として受信する情報マネージャと、
前記情報マネージャに接続され、オブジェクトタイピング規則およびフォーマット規則が格納された処理データベースと、
前記情報マネージャに接続されたオブジェクト格納プールとを備え、
前記情報マネージャは、
特定の未加工データストリーム入力上で搬送される未加工データオブジェクトを受信し、
前記オブジェクトタイピング規則に従って前記未加工データオブジェクトのオブジェクトタイプを識別し、
識別した前記オブジェクトタイプに関する前記フォーマット規則に従って、前記未加工データオブジェクトのコンテンツに基づいてフォーマット済みデータオブジェクトを生成し、
前記フォーマット済みデータオブジェクトの前のバージョンが前記オブジェクト格納プール内に存在するかどうか判定し、否定的判定に応答して、
（ａ）前記フォーマット済みデータオブジェクトを加入者プロセスに提供し、
（ｂ）前記オブジェクト格納プール内に前記フォーマット済みデータオブジェクトを格納し、
否定的判定に応答して、
（ａ）生成した前記フォーマット済みデータオブジェクトと対応するように前記フォーマット済みデータオブジェクトの前記前のバージョンを更新し、
（ｂ）前記フォーマット済みデータオブジェクトと前記前のバージョンとの間のデータ差を識別し、
（ｃ）出力同報通信データチャネル上で前記データ差を同報通信するように構成されることを特徴とするシステム。
【請求項２】
前記情報マネージャは、
それぞれのシーケンス番号を、前記オブジェクト格納プール内に格納されたフォーマット済みデータオブジェクトと関連付け、
前記格納プール内の前記フォーマット済みデータオブジェクトに対する更新の間に、前記それぞれのシーケンス番号を増分し、
前記データ差と共に前記それぞれのシーケンス番号を同報通信するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記情報マネージャは、識別した前記オブジェクトタイプに従って複数の同報通信チャネルから同報通信チャネルを選択するようにさらに構成されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記同報通信チャネルに接続された少なくとも１つのクライアントマネージャをさらに備え、前記クライアントマネージャは、
特定のフォーマット済みデータオブジェクトを受信し、
受信した前記フォーマット済みデータオブジェクトを、前記クライアントマネージャに関連するデータベース内に格納し、
前記同報通信データチャネルを介して、前記特定のフォーマット済みオブジェクトに関するデータ差を受信し、
受信した前記データ差に従って、格納した前記フォーマット済みデータオブジェクトを更新するように構成されることを特徴とする請求項１に記載のシステム。
【請求項５】
前記クライアントマネージャは、複数の加入クライアントに、前記関連するデータベース内に格納されたデータオブジェクトに関する情報を提供するようにさらに構成されることを特徴とする請求項４に記載のシステム。
【請求項６】
複数のクライアントマネージャが、前記同報通信データチャネルに接続されることを特徴とする請求項４に記載のシステム。
【請求項７】
前記未加工データオブジェクトは、金融商品案内に関する情報を含むことを特徴とする請求項１に記載のシステム。
【請求項８】
金融商品プロバイダによって生成された未加工データストリームを処理し、金融商品案内に関係し、周期的更新を受ける情報を含む複数の未加工データオブジェクトを搬送する方法であって、
未加工データストリーム上で搬送される未加工データオブジェクトを受信するステップと、
前記未加工データオブジェクトのオブジェクトタイプを決定するステップと、
決定した前記オブジェクトタイプに従って選択された１組のフォーマット規則を適用することによって、前記未加工データオブジェクトのコンテンツに基づくフォーマット済みデータオブジェクトを生成するステップと、
前記フォーマット済みデータオブジェクトの前のバージョンがオブジェクト格納プール内に存在するかどうか判定するステップであって、前のバージョンが前記オブジェクト格納プール内に存在する場合、
前記フォーマット済みデータオブジェクトと前記前のバージョンとのデータ差を決定し、
生成した前記フォーマット済みデータオブジェクトと対応するように前記フォーマット済みデータオブジェクトの前記前のバージョンを更新し、
前記フォーマット済みデータオブジェクトに関連するシーケンス番号を増分し、
前記オブジェクトタイプに従って複数の同報通信チャネルから選択された出力同報通信データチャネル上で、前記データ差および前記シーケンス番号を同報通信し、
前のバージョンが前記オブジェクト格納プール内に存在しない場合、
前記フォーマット済みデータオブジェクトを加入者プロセスに提供し、
前記オブジェクト格納プール内に前記フォーマット済みデータオブジェクトおよび関連する初期シーケンス番号を格納するステップとを備えることを特徴とする方法。
【請求項９】
前記フォーマット済みデータオブジェクトを提供する前記ステップは、前記出力同報通信チャネル上で前記フォーマット済みデータオブジェクトを同報通信することを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
周期的更新を受けるデータを含むデータオブジェクトを、データ通信ネットワークを介して複数のクライアントに送達するシステムであって、
クライアントセッションマネージャと、
関連するオブジェクトプールキャッシュを有する少なくとも１つのオブジェクト状態マネージャと、
少なくとも１つのクライアントセッションとを備え、
前記クライアントセッションマネージャは、
クライアントから初期アクセス通信を受け取り、
前記クライアントに関連し、データストリーム加入と、前記加入データストリームに関連する少なくとも１つのオブジェクト規則とを示すデータを含むクライアントプロファイルをロードするように構成され、
各オブジェクト状態マネージャは、
それぞれのタイプのデータオブジェクトに関する情報を搬送する少なくとも１つの入力データストリームに接続し、
データオブジェクトの状態に対する変化を前記入力データストリーム上で受け取り、
特定のデータストリーム上の特定のデータオブジェクトに関する状態変化を受け取ったとき、関連する前記オブジェクトプールキャッシュを更新して、前記特定のデータオブジェクトの前記変化した現在の状態を反映し、状態変化が前記特定のデータオブジェクトに関して行われたことを示す前記特定のデータストリームに加入したクライアントに関するクライアントセッションに向けて送信されるオブジェクトイベントを生成するように構成され、
各クライアントセッションは、
オブジェクトイベントを受信したことに応答して、前記オブジェクトイベントによって通知される前記特定のデータオブジェクト変化に対して、前記それぞれのクライアントプロファイルからの前記特定の入力データストリームに関連する前記オブジェクト規則を評価し、
肯定の評価に応答して、前記特定のデータオブジェクトの前記現在の状態を前記それぞれのクライアントに送信するように構成されることを特徴とするシステム。
【請求項１１】
各クライアントセッションに関連する送達マネージャをさらに備え、
前記クライアントセッションは、状態イベントを前記関連する送達マネージャに転送することによって前記現在の状態を送信するように構成され、
前記送達マネージャは、
受信したクライアントイベントをクライアントイベントキュー上に配置するように構成されたクライアントキューマネージャと、
前記クライアントイベントキューから状態イベントを取り出し、前記状態イベントから導出されたクライアントイベントを前記それぞれのクライアントに送信するように構成されたプッシュモジュールとを有することを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記クライアントセッションおよび前記プッシュモジュールの少なくとも一方は、前記それぞれのクライアントとの通信の性能特性を監視し、前記監視した特性に応答して、クライアントイベントを送信すべき速度を動的に決定するように構成され、
前記プッシュモジュールは、前記動的に決定した速度でクライアントイベントを前記それぞれのクライアントに送信するように構成されることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記キューマネージャは、
共通データオブジェクトに関係する前記それぞれのクライアントに送信すべきイベントを識別し、
前記識別したイベントの集約を開始し、それによって前記キュー内のクライアントイベントの数を低減するようにさらに構成されることを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記キューマネージャが受信する各状態イベントは、関連する集約機能を有し、
受信した状態イベントに共通のデータオブジェクトに関係する待ち行列化イベントを前記クライアントイベントキューが含むとき、前記キューマネージャは、前記受信した状態イベントに関連する前記集約機能を実行することによって集約を開始するように構成されることを特徴とする請求項１３に記載のシステム。
【請求項１５】
各クライアントプロファイルは少なくとも１つのクライアントフォルダを含み、各クライアントフォルダは、少なくとも１つの加入データストリームを示し、前記加入データストリームに関連するオブジェクト規則を含むデータを含み、
前記クライアントセッションは、前記ストリームへの加入を示す前記クライアントプロファイル内のフォルダごとに、前記特定の入力データストリームに関連する前記オブジェクト規則を評価するように構成されることを特徴とする請求項１０に記載のシステム。
【請求項１６】
１組のデータオブジェクトの前記現在の状態を求める要求をリクエスタから受信し、
前記組内の前記データオブジェクトに関する現在の状態情報を得て、
前記現在の状態情報を前記リクエスタに返すように構成された状態ディスパッチモジュールをさらに備えることを特徴とする請求項１０に記載のシステム。
【請求項１７】
前記オブジェクト状態マネージャは、前記状態ディスパッチモジュールに、接続された入力データストリーム上で搬送される１組のデータオブジェクトの現在の状態を、前記入力データストリームに最初に接続する際に要求するように構成され、
返された前記現在の状態情報は、前記オブジェクト状態マネージャに関する前記それぞれのオブジェクトキャッシュを初期化するために使用されることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記オブジェクト状態マネージャは更新キューをさらに含み、前記オブジェクト状態マネージャは、前記要求が未決定の間、前記入力データストリームから受け取った現在の状態を前記更新キュー上に配置し、キャッシュ初期化が完了した後、キューに入れた前記現在の状態を前記オブジェクトキャッシュ内のデータに適用するようにさらに構成されることを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記状態ディスパッチモジュールは、オブジェクト状態マネージャが受信する前記データストリームの送信側によって維持される少なくとも１つのオファープールに接続され、適切なオファープールから現在の状態情報を得るように構成されることを特徴とする請求項１７に記載のシステム。
【請求項２０】
前記データオブジェクトは、金融商品案内に関係する情報を含むことを特徴とする請求項１０に記載のシステム。
【請求項２１】
通信セッションが特定のクライアントと確立された後、前記クライアントセッションマネージャは、前記特定のクライアントに関連する前記プロファイルへの前記データストリーム加入に関連する前記オブジェクトプールキャッシュ内の前記データオブジェクトのスナップショットを前記特定のクライアントに送達するようにさらに構成されることを特徴とする請求項１０に記載のシステム。
【請求項２２】
前記クライアントセッションマネージャは、通信セッション中の特定のクライアントが前記少なくとも１つのオブジェクト状態マネージャのうちの１つに現在接続されていない新しい入力データストリームに加入したことを検出したことに応答して、新しいオブジェクト状態マネージャを活動状態にし、前記新しい入力データストリームをサポートするようにさらに構成されることを特徴とする請求項１０に記載のシステム。
【請求項２３】
少なくとも１つのコンテンツプロバイダから未加工オブジェクトデータストリームを受信し、前記入力データストリームを生成する少なくとも１つの情報マネージャをさらに備え、特定の入力データストリーム上で搬送される前記データオブジェクトは共通タイプであることを特徴とする請求項１０に記載のシステム。
【請求項２４】
各情報マネージャは、前記入力データストリーム上で搬送される前記データオブジェクトの現在の状態を含む構造化オブジェクトプールをさらに含み、前記入力データストリーム上の前記オブジェクトイベントは、特定のデータオブジェクトの前記状態に対する差分的変化を表すことを特徴とする請求項２３に記載のシステム。
【請求項２５】
周期的更新を受けるデータを含むデータオブジェクトを、データ通信ネットワークを介して複数のクライアントに送達する方法であって、
それぞれのタイプのデータオブジェクトをそれぞれ搬送する少なくとも１つの入力データストリームに接続するステップと、
少なくとも１つのクライアントとの通信セッションを確立するステップであって、各クライアントは、データストリーム加入を示すデータと、前記加入データストリームに関連する少なくとも１つのオブジェクト規則とを含む関連するプロファイルを有するステップと、
特定の入力データストリーム上で特定のデータオブジェクトに関する現在の状態を受け取るステップと、
オブジェクトプールキャッシュを更新して、前記特定のデータオブジェクトの前記現在の状態を反映するステップと、
前記特定の入力データストリームに加入するそれぞれのクライアントごとに、前記それぞれのクライアントに関連する前記クライアントプロファイルから、前記特定のデータオブジェクトに対して、前記特定の入力データストリームに関連する前記オブジェクト規則を評価し、肯定的な評価に応答して、前記特定のデータオブジェクトの前記現在の状態を前記それぞれのクライアントに送信するステップとを備えることを特徴とする方法。
【請求項２６】
前記少なくとも１つのデータストリームに接続した後、前記接続した少なくとも１つのデータストリーム上で搬送されるデータオブジェクトの初期状態で前記オブジェクトプールキャッシュを初期化するステップをさらに備えることを特徴とする請求項２５に記載の方法。
【請求項２７】
通信セッションを特定のクライアントで確立した後、前記特定のクライアントに関連する前記プロファイルへの前記データストリーム加入に関連する前記オブジェクトプールキャッシュ内の前記データオブジェクトの前記特定のクライアントに、スナップショットを送達するステップをさらに備えることを特徴とする請求項２６に記載の方法。
【請求項２８】
通信セッション中の特定のクライアントが１組の接続した入力データストリーム内にない新しい入力データストリームに加入したことを検出したことに応答して、
前記新しい入力データストリームに接続するステップと、
前記新しい入力データストリーム上で搬送されるデータオブジェクトの初期状態で前記オブジェクトプールキャッシュを初期化するステップと、
前記新しいデータストリームに関連する前記オブジェクトプールキャッシュ内の前記データオブジェクトのスナップショットを前記特定のクライアントに送達するステップとをさらに備えることを特徴とする請求項２５に記載の方法。
【請求項２９】
前記特定のデータオブジェクトの前記現在の状態を前記それぞれのクライアントに送信する前記ステップは、前記特定のデータオブジェクトの前記現在の状態に関するクライアントイベントを送信するステップを含むことを特徴とする請求項２５に記載の方法。
【請求項３０】
クライアントイベントキュー内に状態イベントを配置するステップであって、前記クライアントイベントキューから抽出された状態イベントから導出されたクライアントイベントは、前記それぞれのクライアントに送信されるステップと、
共通データオブジェクトに関する前記それぞれのクライアントに送信すべき状態イベントを識別するステップと、
前記識別した状態イベントを集約し、それによって前記キュー内の状態イベントの数を低減するステップとをさらに備えることを特徴とする請求項２９に記載の方法。
【請求項３１】
接続された各クライアントとの通信の性能を監視するステップと、
前記監視した性能に応答して、クライアントイベントが前記それぞれのクライアントに送信される速度を動的に調節するステップとをさらに備えることを特徴とする請求項２５に記載の方法。
【請求項３２】
前記データオブジェクトは、金融商品案内に関する情報を含むことを特徴とする請求項２５に記載の方法。
【請求項３３】
前記入力データストリームは、少なくとも１つの情報マネージャで同報通信され、各情報マネージャは、それぞれのオブジェクト格納プールを維持し、前記方法は、
前記データストリームを同報通信する前記情報マネージャに関連する前記オブジェクト格納プールから、前記接続された少なくとも１つのデータストリーム上で搬送されるデータオブジェクトの初期状態を取り出すステップと、
前記取り出した初期状態で前記オブジェクトプールキャッシュを初期化するステップとをさらに備えることを特徴とする請求項２５に記載の方法。
【請求項３４】
少なくとも１つのコンテンツプロバイダから提供される、複数のオブジェクトの状態についての情報を処理し、前記状態は周期的更新を受け、データ通信ネットワークを介してほぼリアルタイムに、前記複数のオブジェクトの少なくとも一部の現在の状態を示すフォーマット済み情報を複数のクライアントに送達するシステムであって、
入力としての少なくとも１つの未加工データストリームと、フォーマット済みデータオブジェクトを格納するように構成されたオブジェクトプールと、出力としての少なくとも１つの同報通信データストリームとを含む情報マネージャであって、各未加工データストリームは複数の未加工データオブジェクトを搬送し、
受信した未加工データオブジェクトからフォーマット済みデータオブジェクトを生成し、
前記フォーマット済みデータオブジェクトの現在の状態を前記オブジェクト格納プール内に格納し、
特定の同報通信データストリーム上で前記フォーマット済みデータオブジェクトの前記現在の状態を同報通信するように構成された情報マネージャと、
オブジェクトプールキャッシュを含み、複数のクライアントに接続可能な、少なくとも１つの同報通信データストリームを入力として受信するクライアントマネージャであって、
複数のクライアントとの通信セッションを確立し、
少なくとも１つの同報通信データストリームと接続し、
接続した同報通信データストリーム上で、特定のデータオブジェクトに関する現在の状態を受け取り、
オブジェクトプールキャッシュを更新して、前記特定のデータオブジェクトの前記現在の状態を反映し、
前記特定のデータオブジェクトの前記現在の状態を、前記複数のクライアントから選択された１組のクライアントに送信するように構成されるクライアントマネージャとを備えることを特徴とするシステム。
【請求項３５】
前記情報マネージャは、
前記フォーマット済みデータオブジェクトの前のバージョンが前記オブジェクト格納プール内に存在したかどうかを判定し、
前記フォーマット済みデータオブジェクトの前のバージョンが存在したという判定に応答して、前記フォーマット済みデータオブジェクトの前記前のバージョンと前記現在の状態とのデータ差を決定し、前記特定の同報通信データストリーム上で前記データ差を同報通信し、
前記フォーマット済みデータオブジェクトの前のバージョンが存在しなかった場合、前記特定の同報通信データストリーム上で前記フォーマット済みデータオブジェクトの前記現在の状態を同報通信するように構成されることを特徴とする請求項３４に記載のシステム。
【請求項３６】
前記クライアントマネージャは、複数のクライアントプロファイルを格納したクライアントプロファイルデータベースをさらに含み、各クライアントプロファイルは、データストリーム加入を示すデータと、前記加入データストリームに関連する少なくとも１つのオブジェクト規則とを含み、
前記クライアントマネージャは、前記特定の入力データストリームに加入したそれぞれのクライアントごとに、前記それぞれのクライアントに関連する前記クライアントプロファイルから、前記特定のデータオブジェクトに対する前記特定の入力データストリームに関連するクライアント前記オブジェクト規則を評価し、前記１組のクライアントを識別することを特徴とする請求項３４に記載のシステム。
【請求項３７】
前記クライアントマネージャは、第１情報マネージャから第１同報通信データストリームを受信し、第２情報マネージャから第２同報通信データストリームを受信することを特徴とする請求項３４に記載のシステム。
【請求項３８】
前記情報マネージャは、前記未加工データオブジェクトのオブジェクトタイプを決定し、前記オブジェクトタイプに従って、受信した前記未加工データオブジェクトに１組のフォーマット規則を適用し、前記フォーマット済みデータオブジェクトを生成するように構成されたオファープロセッサをさらに備えることを特徴とする請求項３４に記載のシステム。
【請求項３９】
前記情報マネージャは、オブジェクトタイピング規則およびフォーマット規則が格納された処理データベースをさらに含むことを特徴とする請求項３８に記載のシステム。
【請求項４０】
前記オブジェクトタイピング規則およびフォーマット規則は、ツリーフォーマットの形式で格納され、
前記ツリーは、ルートノードおよび少なくとも１つの派生ストリームノードを有し、各ストリームノードは、特定の未加工データストリームに関連し、
各ストリームノードは、そこから派生する少なくとも１つのタイプリーフノードをさらに有し、各タイプリーフノードは、前記それぞれのストリームノードに関連する前記未加工データストリームによって搬送される特定のオブジェクトタイプに関連し、
各タイプリーフノードは、前記それぞれのタイプリーフノードに関連するタイプのオブジェクトを識別するための、少なくとも１つの関連するオブジェクトタイピング規則を有することを特徴とする請求項３９に記載のシステム。
【請求項４１】
各タイプリーフノードは、少なくとも１つの関連するフォーマット規則をさらに有することを特徴とする請求項４０に記載のシステム。
【請求項４２】
前記情報マネージャは、前記未加工データストリームを入力として受信し、少なくとも１つの名前−値対を含む未加工イベントに前記未加工データオブジェクトを変換し、前記未加工イベントを出力として提供するように構成されたトランスレータをさらに含み、
前記オファープロセッサは、前記未加工イベントを入力として受信することを特徴とする請求項３８に記載のシステム。
【請求項４３】
前記クライアントマネージャは、前記決定したオブジェクトタイプに従って複数の同報通信データストリームから前記特定の同報通信データストリームを選択するように構成されることを特徴とする請求項２５に記載のシステム。
【請求項４４】
前記クライアントマネージャは、
前記未加工データオブジェクトのコンテンツの妥当性を検査し、
妥当性の検査に不合格であったとき、前記未加工データオブジェクトから導出される前記フォーマット済みデータオブジェクトデータの前記現在の状態の後続の同報通信を防止するようにさらに構成されることを特徴とする請求項３４に記載のシステム。
【請求項４５】
前記未加工データオブジェクトは、金融商品案内に関する情報を含むことを特徴とする請求項３４に記載のシステム。
【請求項４６】
前記クライアントマネージャは、
１組の接続された同報通信データストリーム内にない新しい同報通信データストリームに特定のクライアントが加入したことを検出したことに応答して、前記新しい同報通信データストリームに接続するようにさらに構成されることを特徴とする請求項３４に記載のシステム。
【請求項４７】
前記クライアントマネージャは、各クライアントに関連するクライアントイベントキューを備える送達マネージャをさらに含み、
前記送達マネージャは、
特定のクライアントを対象とする状態イベントであって、特定のデータオブジェクトの前記現在の状態を示す状態イベントを前記特定のクライアントに関連する前記クライアントイベントキューに入れ、
共通データオブジェクトに関するそれぞれのクライアントに関連する保留状態イベントを識別し、
前記識別した状態イベントを集約し、それによって保留状態イベントの数を低減し、
キューに入れた状態イベントから導出されるクライアントイベントを前記それぞれのクライアントに送信するように構成されることを特徴とする請求項３４に記載のシステム。
【請求項４８】
前記クライアントマネージャは、
接続された各クライアントと通信する前記性能を監視し、
前記監視した性能に応答して、前記特定のデータの前記現在の状態を各クライアントに送信する速度を動的に決定するようにさらに構成されることを特徴とする請求項３４に記載のシステム。
【請求項４９】
少なくとも１つのコンテンツプロバイダから提供される、複数のオブジェクトの状態についての情報を処理し、前記状態は周期的更新を受け、データ通信ネットワークを介してほぼリアルタイムに、前記複数のオブジェクトの少なくとも一部の現在の状態を示すフォーマット済み情報を複数のクライアントに送達する方法であって、
情報マネージャにおいて、
少なくとも１つの未加工データストリーム入力上で未加工データオブジェクトを受信するステップであって、各未加工データオブジェクトは特定のオブジェクトタイプであるステップと、
前記それぞれのオブジェクトタイプに関するフォーマット規則を使用して、受信した未加工データオブジェクトからフォーマット済みデータオブジェクトを生成するステップと、
前記フォーマット済みデータオブジェクトの現在の状態をオブジェクト格納プール内に格納するステップと、
前記オブジェクトタイプに従って、複数の同報通信データストリームから選択された特定の同報通信データストリーム上で前記フォーマット済みデータオブジェクトの前記現在の状態を同報通信するステップと、
クライアントマネージャにおいて、
複数のクライアントとの通信セッションを確立するステップと、
少なくとも１つの同報通信データストリームに接続するステップと、
接続した同報通信データストリーム上で、特定のデータオブジェクトに関する現在の状態を受け取るステップと、
オブジェクトプールキャッシュを更新し、前記特定のデータオブジェクトの前記現在の状態を反映するステップと、
前記特定のデータオブジェクトの前記現在の状態を、前記複数のクライアントから選択された１組のクライアントに送信するステップとを備えることを特徴とする方法。
【請求項５０】
前記フォーマット済みデータオブジェクトの前記現在の状態を同報通信する前記ステップは、
前記フォーマット済みデータオブジェクトの前のバージョンが前記オブジェクト格納プール内に存在したかどうかを判定し、
前記フォーマット済みデータオブジェクトの前のバージョンが存在した場合、前記フォーマット済みデータオブジェクトの前記前のバージョンと前記現在の状態とのデータ差を決定し、前記特定の同報通信データストリーム上で前記データ差を同報通信し、
前記フォーマット済みデータオブジェクトの前のバージョンが存在しなかった場合、前記特定の同報通信データストリーム上で前記フォーマット済みデータオブジェクトの前記現在の状態を同報通信することを含むことを特徴とする請求項４９に記載の方法。
【請求項５１】
各クライアントは、データストリーム加入を示すデータと、前記加入データストリームに関連する少なくとも１つのオブジェクト規則とを含む関連するプロファイルを有し、
前記特定のデータオブジェクトの前記現在の状態を１組のクライアントに送信する前記ステップは、
前記特定の入力データストリームに加入するそれぞれのクライアントごとに、前記それぞれのクライアントに関連する前記クライアントプロファイルから、前記特定のデータオブジェクトに対して前記特定の入力データストリームに関連する前記オブジェクト規則を評価するステップと、
肯定的な評価に応答して、前記特定のデータオブジェクトの前記現在の状態を前記それぞれのクライアントに送信するステップとを含むことを特徴とする請求項４９に記載の方法。
【請求項５２】
少なくとも１つの同報通信データストリームに接続する前記ステップは、
第１情報マネージャからの第１同報通信データストリームに接続するステップと、
第２情報マネージャからの第２データ同報通信ストリームに接続するステップとを含むことを特徴とする請求項４９に記載の方法。
【請求項５３】
前記未加工データオブジェクトの前記コンテンツの妥当性を検査するステップと、
妥当性の検査に不合格であったとき、前記未加工データオブジェクトから導出される前記フォーマット済みデータオブジェクトデータの前記現在の状態の後続の同報通信を防止するステップとをさらに備えることを特徴とする請求項４９に記載の方法。
【請求項５４】
前記未加工データオブジェクトは、金融商品案内に関する情報を含むことを特徴とする請求項４９に記載の方法。
【請求項５５】
前記クライアントマネージャにおいて、特定の同報通信データストリームに接続した後、
前記特定の同報通信データストリームを生成する前記情報マネージャからデータオブジェクトの前記初期状態を得るステップと、
前記オブジェクトプールキャッシュを、前記特定の同報通信データストリーム上で搬送されるデータオブジェクトの前記初期状態で初期化するステップとをさらに備えることを特徴とする請求項４９に記載の方法。
【請求項５６】
特定のクライアントとの通信セッションを確立した後、前記特定のクライアントが加入する同報通信データストリーム上で搬送される前記オブジェクトプールキャッシュ内の１組のデータオブジェクトのスナップショットを前記特定のクライアントに送達するステップをさらに備えることを特徴とする請求項５５に記載の方法。
【請求項５７】
接続した各クライアントがそれぞれのクライアントイベントキューを有し、前記特定のデータオブジェクトの前記現在の状態を前記１組のクライアントに送信する前記ステップは、それぞれのクライアントごとに、前記１組のクライアントにおいて、
前記それぞれのクライアントに関連する前記クライアントイベントキュー内に状態イベントを配置するステップであって、前記状態イベントは、前記特定のデータオブジェクトの前記現在の状態を示すステップと、
その後で、前記キューに入れたイベントから導出されるクライアントイベントを前記それぞれのクライアントに送信するステップとを含むことを特徴とする請求項４９に記載の方法。
【請求項５８】
共通データオブジェクトに関するそれぞれのクライアントに関連する保留状態イベントを識別するステップと、
前記識別した状態イベントを集約し、それによって保留状態イベントの数を低減するステップとをさらに備えることを特徴とする請求項５７に記載の方法。
【請求項５９】
接続した各クライアントとの通信の前記性能を監視するステップと、
前記監視した特性に応答して、各クライアントイベントに送信する前記特定のデータの前記現在の状態の速度を動的に決定するステップとをさらに含むことを特徴とする請求項４９に記載の方法。
【発明の詳細な説明】
【０００１】
（関連出願の相互参照）
本願は、３５　Ｕ．Ｓ．Ｃ．§１１９の下で、２０００年８月４日出願の「Ｒｅａｌ Ｔｉｍｅ Ｈｏｓｔ Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ」という名称の米国仮出願第６０／２２３，３９７号、および２０００年８月２２日出願の「Ｅｎｈａｎｃｅｄ Ｉｎｆｏｒｍａｔｉｏｎ Ｄｅｌｉｖｅｒｙ」という名称の米国仮出願第６０／２２７，１６２号の優先権を主張するものである。これらの出願の内容全体はどちらも、参照により本明細書に組み込まれる。
【０００２】
（発明の分野）
本発明は、着信コンテンツストリームをレンダリングし、成形する方法およびシステムに関する。より詳細には、本発明は、金融プロバイダからの案内に関するデータなどの未加工入力データストリームを処理し、クライアントに配布するのに適した、構造化され妥当性検査された出力データを生成する方法およびシステムに関する。
【０００３】
（背景）
金融商品発信元からクライアントへの金融商品情報の電子的配布は、金融サービスプロバイダによって供給される一般的なサービスである。通常、サービスプロバイダは、金融コンテンツプロバイダとクライアントとの間で様々な商品に関する情報を受け渡すコンジットとして振る舞う。そのような情報には、新しい商品の案内、現在価格などの商品属性の更新、および恐らくは、商品を分類する方式の変更が含まれる。
【０００４】
多数の商品に関する情報をそれぞれ搬送することができる多数のデータストリームをサービスプロバイダが処理する必要があることはまれではない。例えば、米国債についての情報を含む単一データストリームは通常、数百の異なる商品に関するデータイベントを含む。
【０００５】
未加工の金融サービスデータをクライアントに配布するには、様々な技法がある。しかし、現在の技法は、プロバイダを場当たり的に処理することで、労力が必要となり、計算の負荷が高い。具体的には、情報コンテンツを下流側クライアントに配布することができるように情報コンテンツを受け取り、処理するために、ホストは、着信データストリームの特定の構造およびフォーマットに直結する必要がある。その結果、異なる情報源（ソース）からのデータを処理するために別々のシステムが開発された。例えば、あるシステムは未加工の国債データの処理専用であり、別の独立したシステムは、企業の案内に関する未加工データの処理専用の構造を有する可能性がある。このような場当たり的な技法は、ある操作に関しては受け入れられるが、十分にはスケール変更せず、単一の総合的環境に統合することが難しい。
【０００６】
加えて、現在のシステムは、そのソースから、関心を持つ様々なクライアントにデータを経路指定するのに適しているものの、従来のクライアントは、高速データ接続でホストシステムに直結されている。より小型のクライアント（業務用および個人向けの両方）が多く存在するようになってきていることと共に、帯域幅が狭く、接続性が間欠的なポータブルコンピュータやワイヤレスコンピュータの普及により、インターネットなどの大規模通信ネットワークを介する通信に固有の不整合の影響を受けにくい、堅固で適応性のあるデータストリームを提供する必要が高まっている。
【０００７】
したがって、本発明の目的は、許可された加入者にホストシステムからのリアルタイムコンテンツストリームを配布することができるように、そのリアルタイムコンテンツストリームを処理するように設計された統合インフラストラクチャ製品を提供することである。
【０００８】
さらなる目的は、未加工データの複数のストリームをリアルタイムで処理するように構成され、ダウンストリーム処理やクライアントへの配布に適した、フォーマットされ妥当性検査された出力を提供するシステムを提供することである。
【０００９】
本発明のさらに別の目的は、様々なソースからの複数のデータのストリームを管理することを可能にし、新しいストリームおよび商品タイプを容易に追加または変更することを可能にするように柔軟かつ容易に適合されるシステムを提供することである。
【００１０】
本発明のさらに別の目的は、オファーを下流側サービスに送るのに必要なデータ量を最小にするフォーマットで、妥当性検査されフォーマットされたオファーデータを提供することである。
【００１１】
本発明のさらに別の目的は、クライアントが受け取る更新データを確実に最新にすると共に、クライアントがデータを受け取り、処理することができる速度に伝送速度を動的に調節するデータ送達機構を提供することである。
【００１２】
（発明の概要）
上記の目的や他の目的は、未加工の金融データストリームを処理し、構造化され妥当性検査された商品案内オブジェクトを生成および配布する本発明の方法およびシステムに従って達成される。このシステムは、リアルタイム情報マネージャおよびクライアントマネージャの２つの主要な構造要素からなる。情報マネージャは、コンテンツプロバイダからの未加工データストリームを処理し、オブジェクトの現在の状態をほぼリアルタイムに表す未加工ストリームから導出された、妥当性検査され構造化されたオブジェクトの同報通信を提供するように構成される。
【００１３】
動作の際には、情報マネージャは、少なくとも１つの未加工データストリーム入力上で未加工データオブジェクトを受け取る。未加工データオブジェクトはタイプされ、妥当性検査され、対応するフォーマット済みデータオブジェクトが生成される。オブジェクトの現在の状態は、オブジェクト格納プール中に格納され、さらに、好ましくはオブジェクトタイプに従っていくつかの利用可能なストリームから選択された、特定の同報通信データストリーム上で同報通信される。好ましい実装では、現在の状態は、問題の固有オブジェクトが識別され、前の状態に対するオブジェクト状態の変化が提供される差分形式で同報通信される。オブジェクトタイピング規則およびフォーマット規則を格納するのに好ましいフォーマットも開示される。
【００１４】
クライアントマネージャは、同報通信データストリームにそれぞれ接続され、様々な同報通信ストリーム上で示されるオブジェクトの現在の状態をオブジェクトキャッシュ中に維持するように構成された１つまたは複数のオブジェクト状態マネージャからなる。クライアントセッションが、各クライアントとの通信を維持するために提供される。特定の同報通信データストリーム上で搬送されるオブジェクトの状態が変化したことをオブジェクト状態マネージャが検出したとき、オブジェクト状態マネージャは、そのストリームに加入しているクライアントに関するクライアントセッションに向けてイベントを送る。次いでクライアントイベントは、フィルタと、クライアントのプロファイルで指定された他の規則とを評価して、状態の変化をクライアントに送るべきかを決定し、送るべきである場合、状態変化情報を転送し、クライアントに送る。
【００１５】
各クライアントは、特定のクライアントに送るべきデータのキューを維持する、関連する送達マネージャを有することが好ましい。ネットワーク伝送時間やクライアントのシステムの性能などの通信メトリックを監視し、それに応じてクライアントにデータを送る速度を調節する。加えて、共通データオブジェクトに関する２つまたはそれ以上の状態変化イベント、例えば証券の価格の変化をクライアントに送るためにキューに入れるときに、オブジェクト状態に対して示される様々な変化を集約して、送るべき状態変化のすべてを含む単一イベントを生成するような集約機能を実装することが好ましい。
【００１６】
このシステムのアーキテクチャおよび動作は堅固であり、多種多様なシステムや動作のスケールに容易に適合させることができるので有利である。システムがモジュール式であることにより、様々な入力データストリームを処理する必要に応じて複数の情報マネージャを提供することが可能となる。情報マネージャで使用されるタイピング規則およびフォーマット規則は、新しいデータプロバイダおよびデータタイプを収容するように容易に更新することができる。複数のクライアントセッションマネージャを提供して、多数のクライアントをサポートするのに十分な容量を保証することができ、複数のクライアントセッションマネージャは、様々な情報マネージャからの同報通信データストリームにオンデマンドに接続することができる。さらに、このシステムは、様々なプラットフォーム上で実装することができ、情報マネージャおよびクライアントマネージャは、互いに対して、かつ加入クライアントに対してローカルまたはリモートに位置することができる。加えて、情報マネージャによって出力されるデータは、他のアプリケーションによる使用に適しており、クライアントマネージャは、情報マネージャ以外の情報源によって提供される同報通信データストリームと共に使用するように容易に適合させることができる。
【００１７】
本発明の上記の特徴や他の特徴は、本発明の例示的実施形態の以下の詳細な説明と図面を見れば容易に明らかになるであろう。
【００１８】
（好ましい実施形態の詳細な説明）
図１を参照すると、許可された加入者にリアルタイムコンテンツストリームを送達し、かつ様々なネットワークを介してホストと加入者との間、および企業と顧客との間のリアルタイムな対話を可能にする統合システム１０の高レベルブロック図が示されている。具体的には、システム１０は、１つまたは複数のコンテンツプロバイダ１２から未加工データストリーム１４を受け取り、そのデータストリームをリアルタイムで処理し、次いでネットワーク１６を介して関連するオファーおよび他のデータを加入クライアント１８に転送するように構成されたリアルタイム情報チャネル１１を有する。
【００１９】
リアルタイム情報チャネル１１は、リアルタイム情報マネージャ３０およびクライアントマネージャ３２からなる。リアルタイム情報マネージャ３０は、未加工データ１４の着信ストリームを受け取り、そのデータを処理し、次いで、構造化され、妥当性検査されたコンテンツオブジェクトをパブリッシュするように構成される。次いで、構造化され、妥当性検査されたコンテンツオブジェクトは、下流側プロセスで使用することができる。クライアントマネージャ３２は、クライアントカスタムプロファイルを管理し、クライアントが使用できるデータタイプおよびサービスに関する権利付与の方針を実装する役割を果たす。クライアントマネージャ３２はまた、クライアントにデータを転送する役割も果たし、好ましくは、コンテンツの送達をリアルタイムに最適化し、かつクライアントのホストシステムへの接続を維持するために、帯域幅および待ち時間の変化、ならびにクライアント装置上の資源利用に動的に適応するように構成される。リアルタイム情報マネージャ３０およびクライアントマネージャ３２については、以下でより詳細に論じる。
【００２０】
システム１０はまた、ホストビジネスサービス２２と加入クライアント１８との間の通信２４、２４’の両方向フローを容易にする対話サービスチャネル２０も含むことができる。対話サービスチャネル２０は、サービスマネージャ３４およびサービスルータ３６からなる。サービスマネージャ３４は、取引、販売、オークションなどの様々なビジネスサービス２２間の通信を維持する役割を果たし、様々なサービスについて別々のサービスマネージャを使用することができる。サービスルータ３６は、メッセージをキャッシュし、加入クライアントと、企業と、ホストシステムとの間の通信を追跡するように構成される。サービスルータ３６はまた、クライアントと個々のビジネスサービスとの間のポイントツーポイント接続を確立するための機能を含むサービスマネージャ３４とも対話する。システム１０とクライアント１８との間のネットワーク通信は、ＨＴＴＰプロトコルおよびＨＴＴＰＳプロトコルの一時的性質によって引き起こされる制限を克服し、かつホストシステム１０と加入者クライアント１８との間の仮想永続接続（ｖｉｒｔｕａｌ　ｐｅｒｓｉｓｔｅｎｔ　ｃｏｎｎｅｃｔｉｏｎ）を実現するように構成されたＨＴＴＰトンネリングトランスポートシステム３８を使用して行うことが好ましい。トンネリングトランスポートシステム３８についてもまた、以下でより詳細に論じる。
【００２１】
システム１０は、仮想マシン層４０を形成する１つまたは複数のＪａｖａ（登録商標）仮想マシン（「ＶＭ」）のコンテキスト内で実装することが好ましい。ＶＭ層４０の上には、トンネリングトランスポートシステム３８およびプロセス管理層４２がある。リアルタイム情報チャネル１１および対話サービスチャネル２０を形成するプロセスなどの個々のシステムプロセスは、プロセス管理層４２で動作する。プロセス層４２は、ＶＭ層（それ自体は複数のマシン間に分散することができる）上で複数のプロセスを配布し、管理し、制御する能力を提供する。他の構成および実装も可能である。
【００２２】
リアルタイム情報マネージャ
図２を参照すると、リアルタイム情報マネージャ３０の動作の高レベルブロック図が示されている。情報マネージャ３０は、様々なコンテンツプロバイダ１２から、１つまたは複数の未加工オブジェクトデータストリーム１４を受け取る。様々なコンテンツプロバイダをサポートすることができ、各サポータへのデータ接続は、当業者に周知の様々な方式で実施することができる。
【００２３】
好ましくは、コンテンツプロバイダは、金融商品案内に関する未加工データを提供し、このような典型的なプロバイダには、財務省（ｔｒｅａｓｕｒｉｅｓ）、官庁、および企業体が含まれる。未加工オブジェクトデータストリーム１４は、様々な商品または案内についての情報を含むデータオブジェクトを搬送する。各データオブジェクトは一般に、オブジェクトを一意に識別することを可能にするキーも含む。未加工データストリーム中に含まれるデータは、機器のタイプごとに異なるものにすることができる。例えば、財務省のストリームは、記述的詳細、価格決定、売買高、あるいは国債、ワラント、証券、または取引、販売、スワップ、もしくは交換することができる他の証書に関する任意の他のデータを含むことができる。国債は、内国債、または日本国債などの外国債を含むことができる。
【００２４】
代替データストリームもサポートすることができる。そのようなストリームは、連続的に監視することができ、周期的に更新され、更新の一部または全部が１つまたは複数の監視者に通信されるべきである情報に関するデータオブジェクトを含むことが好ましい。一実施形態では、データストリームには、航空券、ホテルの部屋などの価格および量などの様々な非金融商品または非金融案内の可用性が含まれ、処理後のデータは、とりわけ消費者や産業界の代表に配布することができる。他の代替ストリームには、電子オークションまたはオンラインオークション、様々な商品およびサービスに関するスポットマーケット価格、様々なシステムの測定された状況または性能が含まれる。このシステムによる処理および配布に適した様々な別のデータストリームを当業者は理解されよう。
【００２５】
情報マネージャ３０は、未加工オブジェクトデータストリームを処理し、各オブジェクトについての特定の商品タイプを識別するように構成される。一般に、所与のオブジェクトに関連する固有の属性を定義するオブジェクトタイピングデータ５２を含む規則データベース５０が提供される。情報マネージャ３０がオブジェクトを受け取るとき、例えば確実にオブジェクトのコンテンツに所定の基準または制限を遵守させることによって、様々な規則を適用し、オブジェクトタイプを決定し、オブジェクトを検証する。当業者には周知であろうが、データストリーム中のオブジェクトタイプを識別し、検証するのに使用することができる様々な技法が存在する。恐らくは数百の異なるオブジェクトを含む複数のデータストリームを処理し、オブジェクトタイプシグネーチャを容易に作成および変更することを可能にするのに非常に適した好ましい技法を以下で議論する。
【００２６】
オブジェクトのタイプを識別し、オブジェクトを検証した後、オブジェクトは様々なシステム要件に従ってフォーマットされる。フォーマットされるオブジェクトの構造および様々なフォーマット規則５４は、規則データベース５０に格納することができる。未加工データオブジェクトのフォーマットは、下流側アプリケーションにとって重要ではないフィールドの除去、識別したオブジェクトタイプなどの付加的データフィールドの追加、データフィールドを表す方式を調節することなど、多くのアクションを含むことができる。
【００２７】
本発明の特定の態様によれば、オブジェクトを受け取り、タイプし、適切にフォーマットした後、フォーマット後のオブジェクトが構造化オブジェクトプール５６に格納され、好ましくはオブジェクトタイプに従ってセットとして格納される。オブジェクトプール５６は、入力データストリームによって搬送される各タイプのすべてのオブジェクトの現在の状態の「マスタリスト」と見なすことができる。オブジェクトは、未加工データストリーム中に含まれるキーによって一意に識別することができ、好ましくは、このキーは、プール５６にオブジェクトを格納し、かつプール５６中のオブジェクトにアクセスするのに使用する。受け取ったオブジェクトがプール中にない場合、新しいエントリが作成され、オブジェクトが格納される。加えて、フォーマット済みオブジェクトデータがデータストリーム５８上で同報通信される。オブジェクトの固有の各タイプに対して別々のデータストリームを提供することが好ましい。データストリーム５８は下流側アプリケーション、具体的にはクライアントマネージャ３２が受け取り、クライアントマネージャ３２は、オブジェクトを格納し、処理し、適宜クライアントに転送する。
【００２８】
処理する多数のデータオブジェクトおよびタイプが存在するとき、情報マネージャ３０からクライアントマネージャ３２に流れるリアルタイムデータの量は非常に多くなる可能性があることが理解されるであろう。データフローの量を低減するために、本発明の別の態様によれば、フォーマット済みデータオブジェクトストリーム５８は、一般に差分オファーデータを含む。具体的には、情報マネージャ３０がオブジェクトを受け取ったとき、オブジェクトプール５６を照会し、同じキーを有するオブジェクトがプール５６中に既に存在する場合、受け取ったオブジェクトと、格納されるオブジェクトとの差分を決定する。完全なフォーマット済みオブジェクトをクライアントマネージャ３２に同報通信する代わりに、差分だけが送られる。この差分データを下流側プロセスで使用することができ、このプロセスによって格納したオブジェクトの前のバージョンが変更され、更新後の情報が反映される。次いでプール５６中に格納されたオブジェクトが更新され、新しく受け取ったオブジェクトが反映される。通常は、価格など、オブジェクトデータの小部分だけが、所与の時間で変化する。その結果、データを損失することなく、同報通信される差分データの量が、全オブジェクトデータよりもかなり小さくなる。
【００２９】
現在のデータオブジェクトと前のデータオブジェクトとの差を決定するために、当業者に周知の様々な技法を使用することができる。使用する具体的な方法は、設計や実装の問題に依存する。このような問題には、データベースまたは記憶システムサポーティングプール５６のフォーマット、プール中に格納されたオファーの構造、およびプログラミング環境などの要因が含まれる可能性がある。
【００３０】
受け取ったオブジェクトがプール５６中に存在せず、新しいオファー内に存在する場合、オブジェクト全体が同報通信される。同様に、オブジェクトが分類され、データタイプに関係するデータストリーム上で同報通信されるとき、受け取ったオブジェクトがプール５６中のオブジェクトと同じキーを有するが異なるタイプである場合、情報マネージャ３０は、プール５６中の古いオブジェクトを削除し、新しいオブジェクトの異なるタイプに従って新しいオブジェクトを格納することが好ましい。次いで全オブジェクトデータが、新しいタイプに対して適切なデータストリーム５８上で同報通信される。さらに、特に現ストリームがそのオブジェクトについての情報を前に搬送したストリームと異なるとき、オブジェクトタイプの変化を示す通知を同報通信することができる。
【００３１】
クライアントマネージャ３２などの、差分同報通信チャネル５８を受信している可能性のある下流側プロセスは一般に、様々なオブジェクトの現在の状態のコピーを維持し、差分データに従ってそのコピーを更新するであろうことが理解されるであろう。一実施形態では、情報マネージャ３０が所与のオブジェクトタイプについてのデータストリームに加入する要求をそのようなプロセスから受け取ったとき、情報マネージャ３０は、（現在の状態の）プール５６中のそのタイプのすべてのオブジェクトの全コピーを加入者に送ることができる。次いで加入者は、このタイプのオブジェクトのこの「スナップショット」を格納することができ、その後で、受け取った差分データに従ってオブジェクトを修正することができる。
【００３２】
より好ましい実施形態では、情報マネージャ３０は、特定のどのシステムが同報通信を受け取っているかについての具体的な知識を必要とせずに、様々なサポートされるデータストリームを同報通信することができる。このような場合、情報マネージャ３０は、特定のオブジェクトまたは１組のオブジェクトの現在の状態のスナップショットを求める要求に応答し、要求されたデータを適切なデータチャネル上で返す機能を含むことができる。このチャネルは、同報通信データチャネルとは分離していることが好ましい。あるいは、クライアントマネージャ３２（または他の加入者）と構造化オブジェクトプール５６との間にデータリンクを提供し、クライアントマネージャ３２が恐らくは中間データベースアクセスオブジェクト（図示せず）を介して自動的にスナップショットデータを「オンデマンド」に取り出すことを可能とし、それによってリアルタイム情報マネージャ３０が加入要求に応えなくてもよいようにすることもできる。クライアントマネージャ３２にオブジェクトプール５６のコンテンツへの直接アクセスを与えるか、それともクライアントマネージャ３２が情報マネージャ３０または別のモジュールによって処理される要求を介してオブジェクトプール５６にアクセスするかについての設計の選択は、システム要素間で確立することができるデータリンクのタイプ、様々な要素がどのように密接に結合しているか、サポートすることができる同時データベース接続の数および頻度、ならびに当業者に周知の他の要因など、システム実装の詳細に依存する。
【００３３】
スナップショットデータはオブジェクトデータストリーム上で加入者に同報通信することができるが、これにより同報通信チャネル全体が減速する可能性がある。したがって、オブジェクトタイプセットスナップショットは、別々のチャネル上で送ることが好ましい。移行時間の間、セットが加入者によって完全に処理される前に、セット内のオブジェクトに対する更新を受け取ることができる。この状況では、後続の伝送を加入者に送ることができる。あるいは、加入者は、加入プロセスの間に受け取った差分更新をキューアップ（ｑｕｅｕｅ　ｕｐ）し、受け取ったスナップショットデータが利用可能となった後、受け取ったスナップショットデータにその差分更新を適用することができる。
【００３４】
図３を参照すると、リアルタイム情報マネージャ３０についての好ましいアーキテクチャのブロック図が示されている。図示されているように、情報マネージャは、３つの主要なモジュール−トランスレータ６０、オファープロセッサ６２、およびオファープールマネージャ６４を備える。トランスレータ６０は未加工データストリーム１４を受け取り、名前−値対のセットを含む未加工イベント７０を生成する。トランスレータ６０はＪａｖａ（登録商標）クラスとして実装することが好ましい。この実装は、未加工データストリームからのデータ属性の抽出をほぼ自動化し、新しいデータオブジェクトタイプの識別を単純化するので有利である。次いでこの情報を使用して、新しいタイプを識別するのに使用する規則を定義することができる。
【００３５】
次いで未加工イベント７０はオファープロセッサ６２に渡される。オファープロセッサは、データベース５０内の規則を使用して、未加工イベントを識別し、または類別する。イベントタイプを決定した後、そのイベントのタイプに対して適切な妥当性検査規則、フィルタリング規則、および強化規則を取り出す。この規則を使用して、未加工イベントから関連するデータ属性を選択し、正しい商品タイプを妥当性検査し、商品ラベルを構築し、転送すべきでないイベントをフィルタする。次いでオファープロセッサ６２は、未加工データ中の場合によっては一意でないキーから導出される商品タイプ識別子および固有キーと共に、規則によって指定される属性を含む、外部イベントまたは処理後イベント７２を生成する。
【００３６】
外部イベント７２はオファープールマネージャ６４に渡される。オファープールマネージャ６４は、未加工データストリームで遭遇する特定のタイプの別々のインスタンスごとに、プール５６中にその商品タイプの別々のインスタンスを自動的に作成するように構成される。未加工データから導出される固有キーは、外部イベントをオファープール５６中のオファーインスタンスにリンクするために使用される。オファープールは、クライアントに同報通信したすべての商品案内の現在の状態を含む。新しいイベントが更新後の情報を含む場合、オファープールマネージャ６４は変更を識別し、その変更が下流側プロセスで使用されるフィールド中にある場合、その変更を同報通信する。（外部イベントによって表される）商品案内がオファープール５６中に存在しない場合、オファープールマネージャ６４は完全な商品案内をプール５６に追加し、差分ストリーム５８上で、またはより大きなデータ転送用に構成された２次データ経路（図示せず）を介して、完全な商品案内をクライアントマネージャ３２にも完全に渡す。
【００３７】
下流側サービスが差分更新メッセージを逃したときを検出する際に下流側サービスの助けとするために、シーケンス番号が各オファーと関連付けられ、後続の更新とシーケンス番号がその更新と共に同報通信される。商品インスタンスが初めてオファープール５６に追加されるとき、商品インスタンスは、シーケンス番号０に割り当てられる。プール５６中のオファーのインスタンスが外部イベントに基づいてオファープールマネージャ６４によって更新されるごとに、シーケンス番号は１だけ増分される。シーケンス番号は差分更新メッセージと共に同報通信され、クライアントマネージャ３２はシーケンス番号を使用して、オブジェクトのクライアントマネージャ３２のローカルコピーが最新であることを検証することができる。更新メッセージに関するシーケンス番号が、関連するオブジェクトのローカルに格納されたバージョンに関するシーケンス中の次の番号ではないことをクライアントマネージャ３２が検出した場合、１つまたは複数の更新メッセージを逃してしまっており、クライアントマネージャは、商品タイプ属性の全セットを要求して商品案内イメージをリフレッシュすることができる。
【００３８】
上記で論じたように、未加工イベントのタイプを識別し、それを処理して外部イベントを生成するための規則を実装することができる様々な方式が存在する。好ましい実装では、オブジェクトタイピングシステムデータ６６はツリーフォーマットで編成される。その単純化した例示を図４に示す。
【００３９】
図４を参照すると、少なくとも１つのトランスタイプツリー１０３が接続されたルートノード１０２を有するタイプツリー１００が与えられている。タイプツリー１００は、下にあるトランスタイプツリー１０３で定義されるすべてのタイプノードおよび分岐構造の集合である。タイプツリー中の各リーフノードは別々のタイプを定義し、各タイプは、タイプ属性を定義するツリー状構造を有する。タイプノードへの分岐構造は、情報ストリーム加入の基礎を定義し、ノードのコンテンツは、情報ストリームの構造を定義する。
【００４０】
より具体的には、各トランスタイプツリー１０３は、特定の未加工データ入力ストリームと関連し、識別ストリームノード１０４によってルートノード１０２に接続される。各ストリームノード１０４には、それぞれのデータストリーム上で搬送することができる特定のタイプのオブジェクトを定義する少なくとも１つのリーフノード１０６が接続される。タイプリーフノード１０６は、未加工イベントのタイピングおよび妥当性検査のどちらにも使用される規則を定義する組込み属性を有する。（この属性は、タイプリーフノードから派生するサブノードとして添付することもできる。）タイプノード１０６はまた、対応する外部イベントを生成するのに使用するフィルタリング規則および強化規則など、タイプリスペクティブオブジェクトタイプのコンテンツ構造も定義する。ストリーム中の様々なタイプを編成する助けとするために、ストリームノード１０４とそのタイピングリーフノード１０６との間に、１つまたは複数のレベルの中間経路ノード（図示せず）を含めることもできる。必須ではないが、中間ノードは、ストリーム中の派生リーフノードの各タイプを他のタイプと区別するのに使用する、関連するタイピング規則も有することができる。
【００４１】
特定のタイピング規則は、未加工イベント内に存在する名前−値対に適用することができる論理式の形であることが好ましい。これらの規則は、適切なトランスタイプツリー１０３中のノードを横断し、適切な規則解析エンジンを適用することによって評価することができる。トランスタイプツリー１０３中で定義されるタイプのいずれにも一致しないオブジェクトに対して、「デフォルト」タイプを適用することができる。このような未知のタイプの存在は、新しいタイピング規則を定義する必要がある可能性があることを示す警報メッセージをトリガするのに使用することができる。
【００４２】
例えば、図４のタイプツリー１００は、（ストリームノードＸ　１０４で示されるように）一方が未加工データストリームＸに関連し、他方が未加工データストリームＹと関連する２つのトランスタイプツリーを含む。ストリームＸは、オブジェクトタイプＡおよびＢを識別するための規則、ならびに未加工イベントを処理するための様々な属性を含む、これらのタイプに関するタイピングノードを有する。ストリームＹは、タイプＱおよびＲの未加工イベントを識別および処理するための規則を含むタイピングノードを有する。商品タイプは、ストリームの名前およびタイプノードを参照することによって一意に識別することができ、例えばタイプＡの商品は、商品「Ｘ．Ａ」として識別することができる。
【００４３】
図３を参照すると、図示される未加工イベント７０は、「Ｄｅｓｃｒ＝Ａ」を含むいくつかの名前−値対を含む。このイベントが未加工データストリームＸ上に存在し、ノードＡが規則「Ｄｅｓｃｒ＝＝Ａ」に従ってタイプを定義する場合、この未加工イベントは、商品または案内タイプ「Ｘ．Ａ」として分類される。妥当性検査規則も適用することができる。例えば、ある規則では、タイプＸ．Ａのオブジェクトが規則「Ａｍｔ＞０」を満たさなければならないと指定することができる。タイプＸ．Ａのオブジェクトを例えばＡｍｔ＝０と共に受け取った場合、そのタイプＸ．Ａのオブジェクトは有効とはみなされず、イベントの後続の同報通信のブロッキング、およびデータプロバイダへの通知などの適切なアクションが行われる。ノードＡに関連する属性およびフォーマット規則は、得られる外部イベント７２のコンテンツ、およびデータのフォーマット方式を指定する。この例では、イベント７２は、Ｄｅｓｃｒ、Ａｍｔ、およびＫｅｙの名前−値対だけを含む。「ｏｆｆｉｃｅ」および「ｃｏｌｏｒ」に関する値は省略される。フォーマット規則はまた、下流側プロセスがイベントタイプを再決定する必要がないように、イベントが「Ｔｙｐｅ＝Ｘ．Ａ」名前−値対の追加によって強化されることも示す。
【００４４】
データストリームをシステムで処理できるようになる前に、データストリームをタイピングシステムに対して宣言しなければならないことが理解されるであろう。好ましい実施形態では、新しいストリームを導入するプロセスは、ストリームを定義し、形成し、各タイプに構造化することを可能にし、かつタイピング規則および妥当性検査規則を組み込み、コンテンツおよび規則構文をチェックし、タイプツリーを構築することを可能にする特別なタイプ定義ツールまたはアプリケーション７６（図３参照）によって行われる。好ましいタイプ定義ツールは、着信データがソフトウェア操作を介してどのように解釈されるかをユーザが示すことを可能にするグラフィカルユーザインターフェースを使用する。このようにして、それぞれが別個の未加工データのストリームと関係する複数のデータフォーマットを受け取り、処理することができる。
【００４５】
好ましくは、トランスレータ６０は、入力データストリーム中に含まれる様々なデータオブジェクト中に存在するデータ−値対の組を示す出力を供給し、この出力はタイプ定義ツール７６に供給される。次いで、トランスレータ６０によって供給される情報は、タイプ定義ツール７６で使用することができ、適切なタイピングノードをその関連するタイピング規則および妥当性検査規則で定義する目的で、オペレータが未定義オブジェクトからの様々な名前対を容易に識別し、その様々な名前対から選択することが可能となる。
【００４６】
リアルタイム情報マネージャのためのこの方法およびシステムは、容易に拡張でき、カスタマイズできる、堅固なデータシステムを提供するので有利である。このような実施形態を示し、このシステムの柔軟性およびスケーラビリティを示す図を図５に示す。図５では、３つのクライアントマネージャ３２．１〜３２．３が、２つのリアルタイム情報マネージャ３０．１、３０．２からの様々なデータストリーム同報通信に加入している。加入したデータ接続は直接データ接続とすることができ、あるいはイントラネットまたはインターネットなどの介入ネットワークを介して、あるいは当業者に周知の他の手段によって接続することができる。同じプラットフォームまたは異なるプラットフォーム上で動作するリアルタイム情報マネージャ３０の複数のインスタンスは、多数の高帯域幅データストリームを処理するように要求されるものとして実装することができる。出力データストリームの編成された性質により、接続されるクライアントマネージャ３２が所与のタイプのデータオブジェクトを選択的に受け取ることが可能となり、データ同報通信の非限定的な性質により、複数のクライアントマネージャ３２をシステムに接続し、新しいクライアントマネージャ３２を追加して、多数のクライアントをサポートするために容量を追加することが簡単になる。
【００４７】
クライアントマネージャ：
クライアントマネージャ３２（図１参照）は、クライアントおよび装置の広範なアレイのために、リアルタイム情報マネージャ３０によって供給されるリアルタイム情報ストリームなどのデータストリームを、そのデータのカスタマイズされ、管理されたビューにマッピングする機構を提供する。クライアントマネージャ３２は、外部セッションに対してローカルプロキシとして動作して、リモート接続およびリモート装置が首尾よくサポートすることができる速度で、クライアントが加入する一貫したビューのために必要なコンテンツだけを転送することによってデータの送達を最適化するように構成される。具体的には、クライアントマネージャ３２は、以下の３つの主要機能をサポートするように構成される。その３つの主要機能とは、（１）クライアントセッションと、参照、許可、ビュー、加入、およびフィルタを含むその関連するプロファイルの作成および管理、（２）１つまたは複数のリアルタイム情報管理プロセッサ３０によってパブリッシュされるコンテンツストリームにオンデマンドに加入または接続し、加入した各ストリーム上の様々なオファーに関する現在の状態オファープールキャッシュを維持し、次いで加入したクライアントセッションの組にデータを送達するときにそのプールを使用すること、および（３）様々なクライアントへの、加入したコンテンツと、関連するリアルタイム更新の送達を適宜調整することである。
【００４８】
クライアントマネージャ３２のアーキテクチャは、複数のデータソースと共に使用することができる。しかし、クライアントマネージャは、リアルタイム情報マネージャ３０によって生成される差分データストリームを受け取り、かつ情報マネージャ３０で格納されたデータへの少なくとも限定されたアクセスを有することが好ましい。
【００４９】
クライアント１８は、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ソケットなどの適切なネットワークプロトコルを使用して、クライアントマネージャ３２に接続することができる。ＨＴＴＰを介してインターネットを通じて接続されるクライアントは、ＨＴＴＰと、クライアントマネージャ内に実装されるプロキシソケットプロトコルとの間の透過的プロトコルブリッジを提供する拡張情報送達（Ｅｎｈａｎｃｅｄ　Ｉｎｆｏｒｍａｔｉｏｎ　Ｄｅｌｉｖｅｒｙ）ＨＴＴＰトンネリングトランスポート層３８を通過することが好ましい。クライアントマネージャ３２自体は一般に、直接ソケットを介するローカルイントラネット上でセッション通信を維持し、またはＨＴＴＰを介してインターネットを介してセッション通信を維持するなど、セッション通信を維持する方法には無関係である。
【００５０】
図６を参照すると、クライアントマネージャ３２の好ましいアーキテクチャが示されている。クライアントマネージャ３２は、クライアントセッションマネージャ１５０、少なくとも１つのオブジェクト状態マネージャ１５２、および少なくとも１つのクライアントセッション１５４からなる。クライアントセッションマネージャ１５０は、クライアントセッションと、関連するクライアントプロファイル１５８とを作成および管理するように構成される。クライアントマネージャ３２に最初に接続する際、クライアントは一般に、固有のプロファイルキー（例えばユーザ名）を使用してクライアント自体を明らかにする。クライアントセッションマネージャ１５０は、このキーに一致する以前に保存したプロファイルをクライアントプロファイルリポジトリ１５８からロードするか、または新しいクライアントが使用を開始するための新しい空のプロファイルを作成する。クライアントプロファイルは、一般に同義でオブジェクトフィルタリング規則、オブジェクト評価規則、または単にオブジェクト規則と呼ばれる、ストリーム中のオブジェクトに作用する特定の規則およびフィルタとして、特定のクライアントが加入したオブジェクトタイプまたはデータストリームに関する様々なデータを格納するのに使用することができる。このプロファイルは、クライアント１８とクライアントマネージャ３２との間の通信リンクを維持する役割を果たし、かつ加入選択および他のプロファイルデータに従ってデータオブジェクトおよびオブジェクト更新をクライアントに送る役割も果たすクライアントセッション１５４の動作を構成するのに使用される。
【００５１】
１つまたは複数のオブジェクト状態マネージャ１５２は、クライアントが加入しているストリーム中のオブジェクトの現在の状態を維持し、オブジェクトが状態を変更したときを示すように構成される。状態変化を検出する方式は、少なくとも部分的に、入力データストリームのフォーマットと、入力データストリームが差分データイベント（好ましい）を含むか、完全なデータセットを含むか、それとも中間フォーマットを含むかどうかに依存する。
【００５２】
クライアントが加入したストリームからのオブジェクトの状態変化に応答して、クライアントセッション１５４はその変化を評価して、その変化がクライアントに転送すべきタイプであるかどうかを判定する。ソフトコード化フィルタやカスタムプログラム式ビジネス論理などの評価規則は、クライアントのプロファイル内に維持することが好ましい。オブジェクトをクライアントに渡すべきであることをフィルタリング規則および評価規則が示す場合、適切な更新アクションが送達マネージャ１５６に渡され、その更新アクションが送達マネージャ１５６でキューに入れられ、必要なら、その後でクライアントにプッシュされる。
【００５３】
様々な送達技法が利用可能である。各クライアントはそれ自体の専用送達マネージャ１５６を有することが好ましい。専用送達マネージャ１５６は、それぞれのクライアントイベントキュー１６５を維持し、例えば利用可能な帯域幅、ネットワーク遅延、およびクライアント応答時間を補償する必要に応じて速度を調節して、適切な速度で更新イベントをクライアントにプッシュする。その結果、リアルタイムデータの送達は、クライアントが加入したオブジェクトプールの一貫したビューのために必要なコンテンツだけを、リモート接続および装置が首尾よくサポートすることができる速度で転送することによって最適化される。
【００５４】
上記で論じたように、オブジェクト状態マネージャ１５２は、上流側ソース、好ましくはリアルタイム情報マネージャ３０からオブジェクトコンテンツデータを受け取り、ストリームによって搬送されるすべてのオブジェクトの現在の状態のコピーを例えばオファープールキャッシュ１６０中に維持するように構成される。加えて、オブジェクト状態マネージャ１５２は、オファープールキャッシュ１６０内のオブジェクトに関する変化を検出し、このオブジェクト（またはオブジェクトタイプ）を監視するクライアントが更新を要求できることを示すイベントまたは通知をパブリッシュし、その結果適切なクライアントセッション１５４がアクションを開始できるようにさらに構成される。
【００５５】
クライアントセッション１５４がクライアントに対して確立されるとき、クライアントセッションマネージャ１５０は、例えばクライアントプロファイル内に反映されるように、クライアントが加入したデータストリームにオブジェクト状態マネージャ１５２が確実に接続されるようにする。クライアントマネージャ３２は、各アクティブクライアントセッション中のクライアントプロファイル内の加入の集合に従ってオンデマンドにストリームに加入する。現在監視されていないコンテンツストリームへのアクセスをクライアントセッションが要求するとき、クライアントセッションマネージャ１５０は、適切なオブジェクト状態マネージャ１５２によってそのストリームへの加入を開始する。
【００５６】
新しいコンテンツストリーム加入が開始されるとき、オブジェクト状態マネージャ１５２は、ストリームの源でリポジトリ／データベースから初期ストリーム状態を取り出すための要求を発行し、この情報を使用してそれぞれのオファープールキャッシュ１６０を初期化する。オブジェクト状態マネージャ１５２はまた、適切な通信リンクを確立してコンテンツストリーム５８上のデータを受け取り、着信ストリーム上のオブジェクトの状態の監視を開始する。クライアントマネージャが加入するコンテンツストリームは、一続きのイベントからなることが好ましい。
【００５７】
オブジェクト状態のスナップショットが最初に送達され、または得られ、追加、削除、および更新などの状態に対する変更がその後で受信される。ストリーム中のオブジェクトに対する変更は、関心（ｉｎｔｅｒｅｓｔ）を登録したクライアントセッションにパブリッシュされる。２から３日など所定の期間、関心が登録されていないストリームはパージすることが好ましい。
【００５８】
単一のオブジェクト状態マネージャ１５２、および関連するオファープールキャッシュ１６０を確立して、すべての加入したストリーム上のオブジェクトの状況を監視および維持することができるが、複数のオブジェクト状態マネージャ１５２をサポートして、それぞれが単一の入力ストリームを監視することが好ましい。同様に、各クライアントは、それ自体の専用クライアントセッションと、関連する送達マネージャを有することが好ましい。その結果、クライアントマネージャ３２は、複数のクライアントセッションを有することができ、複数のオブジェクト状態マネージャがすべて同時に動作する。このような多重スレッド環境を図７に示す。並行するオブジェクト状態マネージャ１５２およびクライアントセッション１５４の数は、ホスティングマシンの速度および資源だけによって制限されることが理解されるであろう。複数のクライアントマネージャプロセスが、マシンのファーム全体にわたって動作し、潜在的には任意の数のクライアントをサポートする非常にスケーラブルな環境をサポートすることができる。
【００５９】
図８を参照すると、オブジェクト状態マネージャ１５２の好ましい実装が示されている。各オブジェクト状態マネージャ１５２は、関連するオブジェクトイベントキャッシュ１６０と、監視されるストリームによって搬送されるオブジェクトに関する変化の通知を受け取るべきプロセスを示すテーブル１６４を有する。一般に、このようなプロセスは様々なクライアントセッションである。しかし、イベントは他のプロセスに対しても発行することができる。
【００６０】
データストリームに加入するために最初の要求を行うとき、クライアントセッションマネージャ１５０は、そのストリームを監視するためにオブジェクト状態マネージャ１５２のインスタンスを開始する。クライアントには、クライアントが加入することができるすべてのストリームを示す情報（例えばクライアントプロファイルまたは他の場所の情報に従って使用制約を受ける対象）を与えることが好ましい。この情報は、クライアントセッションマネージャ１５０により、接続されるリアルタイムマネージャ３０上に存在するタイピングツリーデータからタイプリーフノードを抽出することによって容易に決定することができる（図３〜４参照）。タイピングツリー６６のコピー６６’は、このデータへのアクセスを単純にするためにクライアントマネージャ３２で維持することができる。
【００６１】
オブジェクト状態マネージャ１５２が最初に開始するとき、監視すべきデータストリーム上で搬送されるオブジェクトの現在の状態のスナップショットが得られ、それぞれのオブジェクトキャッシュ１６０を初期化するのに使用される。このプロセスの助けとするために、状態ディスパッチモジュール１７０を提供して、様々なオブジェクト状態マネージャ１５２．１〜１５２．Ｎによる、リアルタイム情報マネージャ３０によって維持されるオファープール５６などのオブジェクトデータソースデータベースへのアクセスを調整する。
【００６２】
オブジェクト状態マネージャ１５２からの要求を受け取ったとき、状態ディスパッチモジュール１７０は、それぞれのリアルタイム情報マネージャ３０中のオファープール５６から適切なオブジェクトデータを得る。次いでこのデータを使用して、要求側オブジェクト状態マネージャ１５２についてのオブジェクトキャッシュ１６０を初期化し、オブジェクト状態マネージャはその結果の通知を受ける。状態ディスパッチモジュール１７０に複数の要求を発行することが可能となるように、状態要求キュー１７２を設け、資源が利用可能となったとき、各要求を処理することができる。
【００６３】
オファープール５６からオブジェクトデータを得るために様々な技法を利用することができる。好ましい実装では、オファープール５６は、状態ディスパッチモジュールによる、格納されたオブジェクトデータへの直接アクセスが可能となるように実装される。オブジェクトデータを取り出すための他の技法も使用することができる。他の技法の適合性は、システムを実装する際に使用する利用可能な通信チャネルおよびデータベース技術に依存する。
【００６４】
妥当なスループットを実現し、同時に状態ディスパッチモジュール１７０による同時アクセスの数も制限するために、データアクセススレッドプールを設け（図示せず）、オブジェクト状態マネージャから要求されるデータを処理するようにプール中の各スレッドを構成することが好ましい。スレッドが利用可能となったとき、スレッドは、要求キュー１７２上の次の要求を処理する。
【００６５】
オブジェクトキャッシュ１６０を初期化した後、オブジェクト状態マネージャ１５２は、それぞれのデータストリームの監視を開始する。着信データは差分形式であることが好ましく、ストリーム上のデータオブジェクトを受け取る際、固有オブジェクトキーを使用して、オブジェクトキャッシュ１６０中の対応するオブジェクトを指示通りに更新する（非差分データの場合、オブジェクト状態マネージャは、受け取ったオブジェクトがキャッシュしたバージョンと異なっているかどうかを判定し、次いで、場合によっては、変更のタイプが後続のアクションを必要とするものかどうかを判定する機能をさらに含むことができる）。ストリーム上で差分オブジェクトを受け取ったときなど、オブジェクト更新を検出したとき、オブジェクトイベントを発行し、加入者リスト１６４に示される通りに、すべての加入クライアントに向けて送る。オブジェクトイベントの目的は、特定のデータオブジェクトに関してある種の変更が行われたことを様々なクライアントセッションに通知し、それによってこの変更をクライアントに転送するかどうかについての決定を行うことができるようにすることである。オブジェクトイベントは、オブジェクト自体の全体、（例えばオファープールキャッシュ中の）オブジェクトへのポインタ、オブジェクトのどの側面が変化したかについての表現、またはこの情報へのポインタを含むことができる。
【００６６】
オブジェクト状態マネージャ１５２ごとに更新キュー１６２をさらに設け、ストリーム上で受け取ったオブジェクトに作用を与えることができるまで、オブジェクトを一時的に格納することができる。オファープールのスナップショットの要求と、後続のキャッシュ初期化との間の期間に、データストリーム上で受け取ったオブジェクトを格納するためにも更新キュー１６２を使用することが好ましい。キャッシュを初期化した後、キューの内容がキャッシュに加えられる。
【００６７】
一般に、ストリームは、そのストリームに加入したクライアントセッションがアクティブであるとき（またはクライアントが加入していない状態に入った後の限定された期間）にだけ監視される。しかし、オブジェクト状態情報をクライアントにより迅速に提供することができるように、加入クライアントが存在しなくても、１つまたは複数の選択したストリームを連続的に監視することが有利な環境が存在してもよい。
【００６８】
図９を参照すると、クライアントセッション１５４と、図６の送達マネージャ１５６の好ましい実装とを示し、クライアント１８上に常駐するシステムの高レベルビューをさらに示すブロック図が示されている。クライアントセッション１５４および送達マネージャ１５６の動作をさらに議論する前に、クライアントシステム１８の好ましい実施形態のアーキテクチャおよび動作を簡単に議論することが有益である。
【００６９】
好ましい実施形態では、クライアント１８上で動作するソフトウェア１９０は、クライアントが加入しているデータストリーム中の、クライアントにとって関心のある様々なオブジェクトの現在の状態のコピーを維持する。オブジェクト状態は、クライアントシステム上に存在する、加入したストリームオブジェクトプール１９４中に含まれることが好ましい。オブジェクト状態マネージャ１５２の動作と同様に、クライアントが最初にデータストリームに加入するとき、そのデータストリーム中のオブジェクトのスナップショットが取り出され、任意のフィルタ、規則、または定位置にある可能性のある他の論理によって制約され、クライアント１８に送達され、クライアントのオブジェクトプール１９４に格納される。好ましい実装では、状態ディスパッチモジュール１７０（図８参照）は、クライアントセッションマネージャ１５０または様々なクライアントセッション１５４からのそのようなデータ要求を処理するように構成される。少なくとも１つの加入クライアントを有するすべてのデータストリームは、ストリーム中のオブジェクトの現在の状態を維持する、関連するオブジェクト状態マネージャ１５２を有するべきであるので、状態ディスパッチモジュール１７０は、要求された情報を様々なオブジェクトキャッシュ１６０から直接取り出すことができ、クライアントセッションマネージャ１５０および／または専用クライアントセッション１５４を介してデータをクライアントに返すことができる。初期オブジェクトスナップショットを取り出した後、クライアントソフトウェア１９０は、クライアントでクライアントマネージャ３２から取り出したイベントに従ってオブジェクトおよび関連するデータを変更する。
【００７０】
クライアントシステム上でオブジェクトを編成し、かつ、どのオブジェクトを所与のクライアントに送達すべきか、そのオブジェクトをクライアントどのように編成し、閲覧すべきか、ならびに他の機能を（ユーザのプロファイルで）指定するのに、様々な技法を使用することができる。クライアントのユーザプロファイルは一般に、データストリーム加入を指定し、かつそのストリーム中のオブジェクトをどのようにフィルタリングし、操作し、クライアントシステム１８上に表示するかに関するプリファレンスを定義する。この情報は、フォルダのデータコンテンツを記述する１組の属性と、それを操作する方法と、それを視覚的に表す方法とをそれぞれ含む１つまたは複数のフォルダをクライアントプロファイルが含むフォルダパラダイムに従って編成することが好ましい。
【００７１】
最も好ましい実施形態では、フォルダは以下の属性を含む。
（ａ）クライアント側とサーバ側の両方のフォルダを表すＪａｖａ（登録商標）クラスを定義し、属性の継承に関する任意選択の親関係をさらに定義することができる構成データおよび初期化データ。
【００７２】
（ｂ）フォルダがリアルタイムデータを受け取る１つまたは複数のコンテンツストリームへの加入。
【００７３】
（ｃ）例えば適切な規則ベースの言語で指定された論理規則のタイプ、名前、アプリケーションに従って、データストリームからのオブジェクトを制約し、フィルタリングするコンテンツ制約および／またはフィルタ。
【００７４】
（ｄ）フォルダまたは特定のフォルダ関係の機能（例えばオンライン取引）へのユーザアクセスを制限する許可。
【００７５】
（ｅ）データをどのように表示すべきかを指定するフォーマット規則、表示の順序を示すソート規則、ならびにフォント、サイズ、および色を含む様々な視覚特性などの表示属性。
【００７６】
様々なクライアントフォルダの定義属性は、所与のクライアントについての、並行する、または経時的な複数のセッションにわたって持続できるように、クライアントプロファイル１５８の一部としてクライアントマネージャ３２で保存することが好ましい。したがって、図９に示すように、クライアントマネージャ３２は、クライアントによって定義される様々なフォルダ１９２に一般に対応するフォルダイメージ１８０を有することになる。イメージ１８０はクライアントフォルダ１９２の厳密な複製である必要はなく、どちらのセットも実装条件に関して適宜追加のデータを含むことができることに留意されたい。大まかには、クライアント側機能は、様々なオブジェクトおよびデータの提示および表示を対象とし、クライアントマネージャ機能は、どのデータをクライアントに提供すべきかを決定するのに使用するデータおよび規則を評価することを対象とする。その結果、クライアント側フォルダ１９２は、実質上クライアントで、現在のフィルタおよび制約のコピーを含むことができ、その結果クライアントは、通常はクライアントによって実行されない新しい規則を閲覧、編集、および作成することができる。したがって、そのような規則をクライアントで格納および提示する形式は、クライアントマネージャバージョン１８０に存在する実行可能バージョンとは異なる可能性がある。
【００７７】
クライアントがフォルダ１９２を「オープン」するとき、クライアントソフトウェア１９０は、フォルダおよびそのコンテンツを定義する加入およびフィルタに作用し、個別のコンテンツ項目の表示を作成し、オブジェクトプール１９４から特定のオブジェクトデータを抽出する。オブジェクトデータはユーザのフォルダ中に含まれていると見なすことができるが、恐らくは異なる方式で、または異なる条件の下で表示される同じオブジェクトが、複数のフォルダ中に出現する可能性がある。好ましくは、所与のフォルダ中に含まれるオブジェクトは、オブジェクトキーに従って識別され、次いでオブジェクトキーは、オブジェクトが表示されるときに、必要に応じてオブジェクトプール１９４から実際のオブジェクトデータを取り出すのに使用することができる。
【００７８】
様々な編成上の仕様および表示の仕様に加えて、ユーザプロファイルまたはフォルダは、加入したデータストリーム中のどのオブジェクトがクライアントに渡されるか、ならびに、どんな条件の下で、オブジェクトをどのようにどこに表示すべきかを定義する制約およびフィルタを配置する定義済み規則を含むことができる。例えば、アメリカ証券取引所（「ＡＭＥＸ」）上にリストされるすべての株式を含むストリームに加入するクライアントは、「技術系の会社」など特定のカテゴリ内の株式に関するオブジェクトだけの送達を指定するようにフィルタを定義することができる。クライアントは、例えばオブジェクトの出来高が特定の量を超えるときにオブジェクトを第１フォルダ中に表示し、オブジェクトの価格が所与の期間に指定の量を超えて変化したときだけに第２フォルダに表示するように指定する１組の制約をさらに定義することができる。規則は、事前定義された組を選択することによって、または当業者に周知の他の手段によって、規則ベースの言語を使用して記述することができる。
【００７９】
好ましい実装では、クライアントマネージャフォルダプラグインを開発し、かつクライアントマネージャ内に配置することを可能にすることによって、オジェクトイベントのより精巧な処理が得られる。クライアントプロファイル中のプラグインクラスオブジェクトは、加入したコンテンツストリームおよび関連するイベントを下流側のクライアントにプッシュする前に、単純な規則言語では容易に表現されない条件または状態に従って、それらに対して特別な論理およびフィルタリングを実施することができる。クライアント側アプリケーション上では、加入したストリームのデータ操作および視覚表現に関する任意の特殊化を実施するために、対応するサブクラスを提供することができる。
【００８０】
有利なことに、広範なビジネス特有の提示および機能をユーザに提供するために、サーバ側フォルダプラグインとクライアント側プラグインはタンデムに動作することができる。例えば、「金融市場取引における認定発行者リスト」に関してプラグインを定義することができる。そのリストは、発行者のユーザ定義リストに関連しない任意の情報を除去するための特別なビジネス論理を含むことができる。同様に、プラグインを使用して、関心のある特定の国債でユーザがフォルダを構築できるようにすることができる。
【００８１】
クライアントセッション１５４がオブジェクトイベントを受け取ったとき、クライアントセッションは、例えば関連するデータストリームへの加入を含むクライアントフォルダを識別し、次いでそのフォルダに含まれる関連する規則を実行することによって、オブジェクトに関連するデータストリームに適用される様々な規則およびプラグインを実行する。実行される規則は一般に、クライアントの加入したオブジェクトプール１９４にオブジェクトを加えるべきか、オブジェクトプール１９４からオブジェクトを削除すべきか、またはオブジェクトプール１９４内のオブジェクトを更新すべきかを指定する状態イベントと、例えば特定のフォルダにオブジェクトを加えるべきか、または特定のフォルダからオブジェクトを除去すべかを指定するフォルダイベントとを含む１組の潜在的応答を生成する（実行規則はアクションを起こす必要がないことも示すことができる）。
【００８２】
次いでクライアントセッションは、規則の実行によって生成された様々なイベントを集約し、組み合わせ、オブジェクトに関する状態変化イベントを生成し、必要なら、個々のフォルダに結合され、状態イベントに関連する一連の関係するフォルダアクションと共に生成する。例えば、特定のオブジェクトの価格が上昇したことを示すオブジェクトイベントは、オブジェクトに関する更新イベント、第１フォルダに関する追加イベント、および第２フォルダに関する削除イベントとなる可能性がある。次いで集約したイベントは、送達マネージャ１５６に送られ、好ましくは、関係するデータオブジェクトを示す関連するＩＤを有する単一のカプセル化イベントオブジェクトに組み合わされる。
【００８３】
最も単純な形では、送達マネージャ１５６は、受け取ったオブジェクトが配置されるクライアントイベントキュー１６５と、イベントキュー１６５からオブジェクトを抽出し、関係するデータをクライアント１８に送達するように構成されたプッシュスレッド１８４とを備える。しかし、好ましくは、送達マネージャ１５６は、同じオブジェクトに関係するキュー中のイベントを集約するように構成されたキューマネージャ１８２を含み、プッシュモジュール１８４は、ラウンドトリップネットワーク移動時間と、クライアントが応答するのにかかる時間の測定に応答して、データをクライアントに送達する速度を変化させるように構成される。
【００８４】
好ましい実装では、キューマネージャ１８２がイベントを受け取ったとき、キューマネージャ１８２は、新しく受け取ったイベントに関連するオブジェクトに関係するキュー中に既に存在するイベントがあるかどうかを判定する。イベントがある場合、処理を開始し、それによって（集約イベントオブジェクト中の）キューに入れられた、新しく受け取ったイベントを解析し、イベントを組み合わせ、または省略（ｅｌｉｍｉｎａｔｅ）し、それによってクライアントに最終的に送達されるデータ量を低減する。この機能は、キューマネージャ１８２中に完全に実装することができる。しかし、受け取ったイベントオブジェトは、フォルダおよび状態イベントに関する基本的な１組の集約規則および組合せ規則を包含する組込み機能を含むことが好ましい。これらの機能は、同じデータオブジェクトに関係するキュー中の他のイベントと統合する方法をイベントオブジェクトに知らせる。
【００８５】
状態イベントと、恐らくは１つまたは複数のフォルダイベントとを含む集約イベントなどのイベントを受け取ったとき、キューマネージャ１８２はまず、例えば受け取った状態イベント中の状態集約機能が存在するならばそれを実行することによって、状態イベント集約を実施する。次いでフォルダイベント集約機能を適宜実行することができる。
【００８６】
状態イベントを受け取るとき（対応するオブジェクトに関する、以前にキューに入れたイベントが存在しないとき以外）に生じる可能性のある３つの主要な状態がある。１つの状態は、オブジェクト更新イベントを受け取り、更新イベントまたは追加イベントが同じオブジェクトに関して既にキューに入れられている場合である。この状態が生じたとき、受け取った更新イベントに反映されるデータ変更が、既にキューに入れられたオブジェクト更新イベントまたはオブジェクト追加イベント中のデータに適用される。新しい更新イベントに関連するフォルダイベントは、キューに入れられたイベントに関連するものと組み合わされ、フォルダイベントは適宜更新、追加、または除去される。次いで受け取った更新イベントは、保留イベントと統合した後、廃棄することができる。
【００８７】
２番目の状態は、オブジェクト削除イベントを受け取り、更新イベントまたは追加イベントが同じオブジェクトに関して既にキューに入れられているときである。この状況では、新しい削除イベントが、以前にキューに入れた更新イベントまたは追加イベントを効果的に取り消す。キューに入れられた状態イベントと、関係する任意のフォルダ追加イベントはキューから除去され、削除イベントがキュー中に配置される。
【００８８】
３番目の状態は、オブジェクト追加イベントを受け取り、そのオブジェクトに関する削除イベントが既にキューに入れられているときである。削除イベントはまだクライアントに送られていないので、オブジェクトはまだクライアントのオブジェクトプール中に存在し、オブジェクトをクライアント上に追加することは、既に存在しているデータと競合する可能性がある。したがって、追加イベントは、追加イベントで指定されるデータオブジェクトに関するデータ属性を含む「更新」イベントに変換される。
【００８９】
有利なことに、保留イベントキューに対してこのタイプの集約手順を連続的に実行することにより、複製データと不要なデータ伝送がキューから選ばれる。これにより、クライアントに送らなければならない全データ量が低減し、それと共に、データをクライアントで受け取ったとき、クライアントが現在のオブジェクト状態を反映することが依然として保証される。さらに、最悪のシナリオでは、現オブジェクトタイプごとに、キューに入れられた状態イベントは多くても１つしか存在しないので、この集約方式はまた、キューの全長を制限する。
【００９０】
クライアントに送られるイベントは一般に、クライアントセッションによって生成され、送達マネージャによってキューに入れられたイベントと同じオブジェクトデータを表す（所与のオブジェクトに対する追加指示、変更指示、または削除指示など）。したがって便宜上、本明細書ではこのイベントを同様の名称で呼ぶ。クライアントに同報通信されるイベントがクライアントセッションおよび／または送達マネージャで受信されるイベントから導出される間、クライアントに同報通信されるイベントのフォーマットおよび構成は、内部イベントとは異なる可能性がある。例えば、集約機能などの送達マネージャが受け取るイベントの副次的側面は、クライアントに転送する必要はない。同様にクライアントは、イベントに関する実際のデータ変化を受け取らなければならず、一方内部イベントは、別の所に格納されたデータへのポインタを含むことができる。状態イベントからのクライアントイベントの導出は、イベントがクライアントイベントキュー内に配置されたとき、または伝送するためにイベントがキューから除去され、準備されるときなど、どんな適切な時点でも行うことができる。加えて、「導出された」クライアントイベントは、特定の実装に関して適切である場合はソース状態イベントと同じにすることができる。
【００９１】
クライアントイベントを集約することに加えて、ネットワークの遅延および応答の遅延を反映するように、送達マネージャ１５６からクライアントにイベントを送達する速度を最適化することが好ましい。クライアントマネージャ３２に接続されるクライアントは、リモートマシン資源（例えばＣＰＵおよびメモリ）、ネットワーク帯域幅、および待ち時間に関して非常に様々な能力を有する可能性がある。クライアントは、潜在的に、非常に大きいネットワークパイプを有する、高い能力のワークステーション上で動作する可能性があり、または低速なワイヤレス接続を有するハンドヘルド装置上で動作する可能性がある。クライアントセッションが利用可能な装置やネットワークの特性についての知識を必要とせずに、データメトリックがクライアントセッション１５４によって連続的に収集および監視され、それを使用して、適切な送達制約が決定される。
【００９２】
クライアントセッションの期間ごとに、利用可能なクライアント資源に特有のメトリックが動的に収集される。最適化はクライアントごとに行われるので、システムは、多くの異なる装置や接続性の選択肢に関して、多種多様な送達要件をサポートすることができ、クライアントは、クライアントの接続帯域幅またはハードウェア能力を指定する必要がない。
【００９３】
特定の実装では、ネットワーク移動時間およびクライアントイベント処理速度が測定される。送達マネージャ１５６は、データがクライアントにプッシュされるときと、データが到着したことを示すＨＴＴＰ応答が受信されるときの間の遅延を測定するなどの様々な技法を用いて、ネットワーク移動時間を測定することができる。あるいは、クライアントセッション１５４は、クライアントにテストメッセージを周期的に発行し、クライアントからの応答を受け取る前に期間を測定することもできる。クライアントがイベント（例えば、ユーザの画面上に表示される更新イベント）を完全に認識するのにかかる時間を決定するために、クライアント性能を監視し、周期的に、または要求時に性能データをクライアントセッション１５４に転送する性能モニタ１９６を、クライアント１８に実装することができる。
【００９４】
性能データは解析され、ネットワーク移動時間と、（イベント処理速度に基づいて）サイクル期間中にクライアントが首尾よく処理することができるイベントの理論的最大数とに基づいて、サイクル期間が決定される。次いでこの制約がプッシュスレッドに適用され、プッシュスレッドは、伝送速度と、未処理のデータメッセージの数をそれに応じて調節する。経時的に、メトリックは変化する可能性があり、それに応じて制約が調節される。
【００９５】
各クライアントは、これらのメトリックを検査し、イベントのフローを下流側で動的に調節する、クライアントマネージャ３２中で実行される専用送達マネージャスレッド１５６を有するので、クライアントにとって利用可能な資源が与えられる効率的な送達を一貫して達成することができる。有利なことに、この適応データストリーミングは、イベント集約プロセスと共に動作し、クライアントが処理するのにそのイベントを過度に迅速に下流側に送達しないことが保証され、それと共に、送達されるイベントがオブジェクトの現在の状態を反映することも保証される。その結果、クライアントでの各データ更新間の期間は変動することができるが、更新を受け取ったとき、（更新時の）データの効果的なリアルタイムステータスが維持される。
【００９６】
クライアントシステム：
クライアントシステム１８は、様々な方式で構造化することができる。好ましい実施形態では、図１０に示すように、クライアントシステムは、３つの層の機能、すなわち通信２００、コンテキスト２０２、およびフォルダ２０４からなることが好ましい。通信層２００は、クライアント１８とクライアントマネージャ３２との間の接続を管理するように構成される。具体的な実装では、通信は、ＨＴＴＰトンネリングトランスポート（インターネット接続の場合）、またはソケット（イントラネット接続の場合）のどちらかを用いて達成される。
【００９７】
コンテキスト層２０２は、イベントおよびメッセージをクライアントマネージャ３２に送り、かつクライアントマネージャ３２から受け取るように構成される。コンテキストは、フォルダ層２０４に対してイベントおよびメッセージの中心配布地点として機能する。フォルダ層２０４は、情報の論理グループと、情報ストリーム内の個別の数組の関係するコンテンツとを含む。図９に示すクライアントフォルダ１９２に関連して上記で論じたように、フォルダは、１つまたは複数の情報ストリームへの加入を表し、各加入は、リアルタイム情報マネージャ３０によって分類およびパブリッシュされ、クライアントマネージャ３２を介して利用可能とされるストリームのうちの１つにマッピングされる。加入およびフィルタは、フォルダの特定のコンテンツを定義する。
【００９８】
好ましくは、クライアント出力は、グラフィカルな列−行（スプレッドシート）フォーマットの状態にされる。しかし、代替フォーマットも適宜利用することができる。例えば、プロセスは、クライアントＡＰＩを使用して、ネットワーク内のサーバプロセスを確立し、コンテンツに加入して、サーバ側の要求を受け取り、コンテンツをＨＴＭＬページとして表現することができる。ポイントは、クライアントがホストサービスおよび情報ストリームをサポートするのに適した形式にすべきであるということである。有利なことに、クライアントマネージャ３２は、受け取ったオブジェクトデータをクライアントが処置する方式とは無関係であり、その結果、この方法により、多種多様なクライアントフォーマットを実装し、サポートすることができる。
【００９９】
ＨＴＴＰトンネリングトランスポート：
様々な通信技法、インターフェース、およびプロトコルを使用して、クライアントマネージャ３２をクライアントと接続することができる。好ましい実装では、例えば図１に示すように、ＨＴＴＰトンネリングトランスポートを使用する仮想永続接続をサポートするために、ＨＴＴＰトンネリングトランスポート層３８が提供される。クライアントがシステムにアクセスすることを求める有効な要求を発行するとき、固有のセキュアセッション鍵を割り当て、クライアントのセッションの期間、クライアントを特定のサービスに結合するために使用される。
【０１００】
初期ＨＴＴＰ要求チャネルは、開いた状態に保つことができ、「プッシュ」チャネルまたは「パブリッシュ」チャネルとなることができる（したがって、潜在的に非常に長いＨＴＴＰ応答として接続の経路中のすべてのホップに現れる）。この接続は開いたままとなるので、この接続は、リアルタイムにコンテンツをクライアントにパブリッシュする経路として使用することができる。これを所与のストリームに対して効率的にかつ確実に行うために、サービスからの各イベントを順序付け、キューに入れ、符号化し、送信し、格納することが好ましい（接続性の問題のために再送信が必要な場合）。
【０１０１】
所与のチャネルが有効なままとなることを保証するために、ハートビートメッセージを周期的な間隔でクライアントに送ることもできる。問題を検出した場合、イベントの伝送をサスペンドすることができ、クライアントには、セッションへの接続性を再確立し、通常動作を回復および再開する期間が与えられる。切断のパターンが明らかとなった場合（例えば、クライアントのファイアウォールプロキシが接続を３分未満に制限するときに見つけることができるように）、クライアントのセッションに関するタイミングパラメータは、例えば現チャネルを閉じ、ファイアウォールによって干渉される前に新しいチャネルを開くことによって、将来の問題を回避するよう試みることで調節される。具体的には、動的なタイミングパラメータが与えられる場合、システムは、どんな問題もそれが生じる前に回避するために、クライアントが新しいＨＴＴＰ接続への既存の「プッシュ」チャネルを周期的にサイクルするように先を見越して要求することができる。クライアントおよびトランスポートシステム３８は、エンドユーザへのリアルタイムデータの一貫したフローを乱さないように、このプロセスを非同期かつ透過的に実施することが好ましい。
【０１０２】
結論
本発明を、その好ましい実施形態を参照しながら具体的に図示し、説明したが、本発明の精神および範囲から逸脱することなく、形態および詳細に様々な変更を行うことができる。具体的には、本発明の好ましい実施形態は、金融案内に関するデータの処理および配布を対象とするが、分散在庫システム、ネットワークベースのオークションシステム、リモートデータ監視など、異なる題材を対象とするデータオブジェクトのリアルタイム分散を可能にする目的でこの方法およびシステムを使用することもできる。
【図面の簡単な説明】
【図１】
許可された加入者にリアルタイムコンテンツストリームを送達し、かつ様々なネットワークを介してホストと加入者との間、および企業と顧客との間のリアルタイムな対話を可能にする統合システムのブロック図である。
【図２】
図１のリアルタイム情報マネージャの動作環境を示す高レベル図である。
【図３】
リアルタイム情報マネージャの好ましいアーキテクチャを示す図である。
【図４】
データ入力を処理するためにリアルタイム情報マネージャが使用するタイピングツリーを示す図である。
【図５】
本発明のリアルタイム情報アーキテクチャのスケーラビリティを示すブロック図である。
【図６】
クライアントマネージャの好ましいアーキテクチャを示す図である。
【図７】
複数のクライアントセッションをサポートする図６のクライアントマネージャを示すブロック図である。
【図８】
図６のオブジェクト状態マネージャの好ましい構造を示すブロック図である。
【図９】
図６のクライアントセッションおよび送達マネージャを示し、クライアント側システム要素の高レベルビューをさらに示すブロック図である。
【図１０】
クライアントシステムアーキテクチャの高レベル図である。
【図１】
2004506272.tif 000003
【図２】
2004506272.tif 000004
【図３】
2004506272.tif 000005
【図４】
2004506272.tif 000006
【図５】
2004506272.tif 000007
【図６】
2004506272.tif 000008
【図７】
2004506272.tif 000009
【図８】
2004506272.tif 000010
【図９】
2004506272.tif 000011
【図１０】
2004506272.tif 000012
【国際公開パンフレット】
2004506272.tif 000013
2004506272.tif 000014
2004506272.tif 000015
2004506272.tif 000016
2004506272.tif 000017
2004506272.tif 000018
2004506272.tif 000019
2004506272.tif 000020
2004506272.tif 000021
2004506272.tif 000022
2004506272.tif 000023
2004506272.tif 000024
2004506272.tif 000025
2004506272.tif 000026
2004506272.tif 000027
2004506272.tif 000028
2004506272.tif 000029
2004506272.tif 000030
2004506272.tif 000031
2004506272.tif 000032
2004506272.tif 000033
2004506272.tif 000034
2004506272.tif 000035
2004506272.tif 000036
2004506272.tif 000037
2004506272.tif 000038
2004506272.tif 000039
2004506272.tif 000040
2004506272.tif 000041
2004506272.tif 000042
2004506272.tif 000043
2004506272.tif 000044
2004506272.tif 000045
2004506272.tif 000046
2004506272.tif 000047
2004506272.tif 000048
2004506272.tif 000049
2004506272.tif 000050
2004506272.tif 000051
2004506272.tif 000052
2004506272.tif 000053
2004506272.tif 000054
2004506272.tif 000055
2004506272.tif 000056
2004506272.tif 000057
2004506272.tif 000058
2004506272.tif 000059
2004506272.tif 000060
2004506272.tif 000061
2004506272.tif 000062
2004506272.tif 000063
2004506272.tif 000064
2004506272.tif 000065
2004506272.tif 000066
2004506272.tif 000067
2004506272.tif 000068
【国際調査報告】
2004506272.tif 000069
2004506272.tif 000070