(57)【要約】【課題】データフローの選択、アレンジ、構築および提示に更なる柔軟性を提供すること。【解決手段】コンピュータで実現された情報転送方法は、サーバにおいて選択規則を評価してデータフローを選択し、データフローのコンテンツを判定するステップを包含する。上記方法はまた、ユーザに提示するためにデータフローのコンテンツを別のコンピュータに送信するステップを包含する。サーバは、データベース、ネットワークインターフェイス、メモリ、およびプロセッサを備える。データベースは、複数の選択規則を含む。各選択規則は、選択規則に関連付けられたデータフローのコンテンツを判定する命令を含む。プロセッサは、ネットワークインターフェイス、データベース、およびメモリを含む。【選択図】図３
2007042121.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザに送信されるデータフローを選択し、かつ、ユーザの該データフローとの相互作用に応答する方法であって、
該方法は、
サーバにおいて、データフローを格納することと、
該サーバにおいて、選択規則を格納することであって、該選択規則は、クライアントコンピュータにおけるブラウザに送信されるべき該データフローを選択するための条件を規定する選択セグメントであって、該データフローの少なくとも一部分は、該ブラウザによって表示される複数のデータアイテムを含む、選択セグメントと、該データフローに関連付けられる複数の異なるタイプのアクションを規定する制御セグメントとを含む、ことと、
該データフローが選択された否かを判定するために、該サーバにおいて、該選択セグメントによって規定された該条件を評価することと、
該サーバにおいてトリガメッセージを受信することと、
該トリガメッセージの受信に応答して、該データフローが選択された場合には、クライアントコンピュータにおけるブラウザに該データフローに含まれる該データアイテムを送信することであって、該データアイテムは、該ブラウザによって表示される、ことと、
該サーバにおいて、該ブラウザからのアクションリクエストを受信することであって、該アクションリクエストは、該制御セグメントによって規定された該複数の異なるタイプのアクションのうちの１つを示し、該示されたアクションは、ユーザの該表示されたデータアイテムとの相互作用に基づく、ことと、
該制御セグメントによって規定された該複数の異なるタイプのアクションからの該受信されたアクションリクエスト内において、該示されたアクションを選択することと、
該選択されたアクションを実行することと
を包含する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（背景）
Ａｍｅｒｉｃａ  Ｏｎｌｉｎｅ，Ｉｎｃ．、ＣｏｍｐｕＳｅｒｖｅおよび様々なインターネットワールドワイドウェブサイトのオペレータ等のオンラインサービスプロバイダ（ＯＳＰ）は、電子メール、チャット、ニュース、財務情報、旅行計画情報、局所的な天気情報および他の情報を含む様々なリソースを、クライアントコンピュータにおいてユーザに提供する。
【背景技術】
【０００２】
図１は、クライアントコンピュータ１３１〜１３３はもちろんのことＯＳＰサーバ１１１〜１１６も含むネットワーク１００を示す。各クライアントコンピュータ１３１〜１３３は、ユーザがサーバ１１１〜１１６から検索のための情報を選択することを可能にし、検索された情報をユーザに提示するブラウザまたは他のソフトウェアアプリケーションを実行し得る。ブラウザは、ハイパーテキストリンク、メニュー、ダイアログボックスまたは他のグラフィカルユーザインターフェース（ＧＵＩ）制御オブジェクトを表示し得、キーボードエントリを受け取り得、またはユーザが希望する情報を選択することを可能にする他の入力機構を有し得る。ユーザは、彼らが受信することを望む情報を選択した場合、制御データはブラウザアプリケーションからＯＳＰサーバへ送信され、それに応答して、サーバは選択された情報をユーザへ送信する。
【０００３】
アクセス接続１３４〜１３６、ポイントオブプレゼンス（ｐｏｉｎｔ  ｏｆ  ｐｒｅｓｅｎｃｅ）（ＰＯＰ）１３０およびネットワーク１２０を含むデータパスに渡って、クライアントコンピュータ１３１〜１３３およびサーバ１１１〜１１６におけるブラウザの間をデータがやり取りされ得る。ＰＯＰ１３０は、クライアントコンピュータ１３１〜１３３およびネットワーク１２０の間の通信を可能にし且つ調整するデータ通信設備を含む。ＰＯＰ１３０は、ダイヤルアップモデムバンク、ケーブルモデムバンク、ワイヤレス通信設備または他のデータ転送設備を含み得る。ＰＯＰ１３０は、また、安全および認証設備を実行し得、ネットワーク１２０またはサーバ１１１〜１１６に対する非認証のアクセスを防ぐ。例えば、クライアントコンピュータ１３１〜１３３がネットワーク１２０にアクセスすることを認める前に、ポップ１３０は、クライアントコンピュータのユーザからの有効なユーザネームおよびパスワードの受信を必要とし得る。
【０００４】
さらに、ユーザが選択した情報をクライアントコンピュータへ送信するために、ＯＳＰは、独立して情報を選択してユーザへ情報を送信してもよい。例えば、ＯＳＰは、公告、ビジネスパートナーからの情報、サービスの利用説明および他の役立つ情報をユーザに送信してもよい。ＯＳＰは、ユーザにより選択された情報（“ユーザ選択”情報）および個別のＧＵＩウィンドウを用いてＯＳＰにより選択された情報（“サーバ選択”情報）を提示してもよい。ユーザ選択およびサーバ選択データの個別の提示は、ユーザにより選択された情報とＯＳＰにより選択された情報との区別をつけるのに役立ち得る。
【０００５】
サーバ選択およびユーザ選択データを分けるために、ユーザ選択データは、メインブラウザウィンドウに表示され得、サーバ選択データはポップアップウィンドウ（“ポップアップ”）を用いて表示され得る。ポップアップは、ホストコンピュータの要求に応答してブラウザにより表示され得るＧＵＩウィンドウである。例えば、ユーザが、Ａｍｅｒｉｃａｎ  Ｏｎｌｉｎｅ，Ｉｎｃ．（ＡＯＬ）ｖｅｒｓｉｏｎ  ４．０ブラウザ（“ＡＯＬブラウザ”）を用いて、またはハイパーテキスト転送プロトコルをベースとしたブラウザ（“ＨＴＴＰブラウザ”）を用いてデータを選択する場合、ユーザ選択データは、ホストコンピュータからブラウザへ送信され得、メインブラウザウィンドウに表示され得る。ホストコンピュータはまた、サーバ選択データがユーザに提示され得るようにポップアップウィンドウを表示するためにブラウザに命令を送信する。ユーザは、次に、独立にクローズ、スクロール、サイズ変更およびその他メインおよびポップアップブラウザウィンドウとのやりとりを行い得る。
【０００６】
多重論理相互データアイテムは、ブラウザで受信され得、ウィンドウで表示され得る。同時または順次に、相互データアイテムは表示され得る。例えば、ＯＳＰサーバは、ポップアップウィンドウ内でユーザのために表示される製品広告を選択し得る。製品広告は、説明文ファイルおよび製品を注文するＧＵＩボタンと共にユーザに同時に表示される製品の画像を含み得る。ユーザが、製品を注文するＧＵＩボタンを選択した場合、ユーザのブラウザは、そのボタンが選択されたことを示す制御データをＯＳＰサーバへ送信し得る。それに応答して、ＯＳＰサーバは注文フォームをポップアップウィンドウ内で表示するためにクライアントコンピュータへ送信し得る。表示された注文フォームは、先に表示されているテキスト、画像およびボタン情報に対して差換えまたは追加され得る。従って、ＯＳＰサーバによって選択された製品広告は、同時にユーザに表示される、説明文、画像およびＧＵＩボタン、およびＧＵＩボタンの選択に従って順次表示される注文フォームを含む。以下で説明するように、論理相互データアイテムの収集は“データフロー”と呼ばれる。データフローは、サーバ選択データフローおよびユーザ選択データフローを含み得る。
【０００７】
ＯＳＰはサーバ選択データフロー（およびそれらのサブコンポーネント）を予め選択し得る。予め選択することは、特定のサーバ選択データフローと特定のユーザ選択データフローとを統計的（ｓｔａｔｉｃａｌｌｙ）に結び付けることにより行われ得る。例えば、ＯＳＰは、カーポリッシュ広告データフローとユーザが選択し得る、特定の車のモデルを説明する情報とを結び付け得る。ユーザが、ＯＳＰサーバからの車の特定のモデルについての情報を要求するとき、ＯＳＰサーバは、要求された車の情報をメインブラウザウィンドウ内に表示するために送信し得、関連するカーポリッシュの広告をポップウィンドウ内に表示するするために送信し得る。サーバ選択データフローはまた、他の機構を用いて無作為に決定または選択され得る。例えば、ＯＳＰサーバはユーザ選択データ内のテキストを解析し得、ユーザが興味を示すトピックの決定を試み得る。次に、ＯＳＰサーバは決定されたトピックに基づいてデータフローを選択し得る。
【０００８】
現在の機構がサーバ選択データフローの提示を可能にすることに加え、本願発明者は、このようなデータフローの選択、アレンジ、構築および提示に更なる柔軟性が必要であることを認識する。本願発明者はまた、データフローに関連する統計的データの柔軟な収集（ｇａｔｈｅｒｉｎｇ）およびアプリケーションが必要であることを認識する。例えば、本願発明者は、予め決められたユーザの統計に依存してデータフローのコンテンツを変更し得ることが望ましいと認識し、また、ユーザの身元に基づいてデータフロー内のデータアイテムの選択を変更し得ることが望ましいと認識する。
【発明の開示】
【課題を解決するための手段】
【０００９】
（要旨）
概して、１つの局面において、本発明はコンピュータ実施情報転送方法を特徴とする。その方法は、データフローを選択し、データフローのコンテンツを決定するために、サーバでの選択規則を評価するステップを含む。その方法はまた、データフローのコンテンツをユーザへ提示するために他のコンピュータへ送信するステップを含む。
【００１０】
実施においては、以下の特徴の１つ以上を含み得る。選択規則は、ブール論理を含むプログラミング言語で表される文、様々な操作およびデータアクセス機能性を含む。統計的データセットは、選択規則によって決定され得、データフローがユーザに提示される場合、収集されて格納される統計的データを識別する選択規則によって判定され得る。コンテンツは、クライアントコンピュータにおいてポップアップウィンドウを用いて提示され得る。選択規則は、他のサーバから受け取られた選択の要求に応答して評価され得る。選択規則は、ユーザ、クライアントコンピュータ、サーバコンピュータおよび／またはネットワーク内の他のコンピュータの状態に関連する多数の異なるトリガの内の１つに応答して評価され得る。
【００１１】
他の局面において、本発明はコンピュータ読み取り可能媒体を特徴とする。媒体は、データフローを選択してデータフローのコンテンツを判定するためにコンピュータが選択規則を評価するようにする命令を含む。媒体はまた，データフローのコンテンツをユーザに提示するために他のコンピュータへ送信するための命令を含む。媒体はまた、ユーザの身元に基づいてデータフローに関連する統計的データセットを決定するための命令と、他のサーバからユーザの身元を含む選択の要求を受け取るための命令とを含み得る。１つ以上の選択規則は、選択の要求の受け取りに応答して評価され得る。
【００１２】
概して、他の局面において、本発明は、データベース、ネットワークインターフェース、メモリおよびプロセッサを含むサーバを特徴とする。データベースは、多数の選択規則を含む。各選択は、選択規則に関連するデータフローのコンテンツを決定するための命令を含む。プロセッサは、ネットワークインターフェース、データベースおよびメモリに効果的に接続される。メモリは、データフローを選択してデータフローのコンテンツを決定するためにプロセッサに選択規則を評価させるための実行可能な命令を含む。メモリはまた，プロセッサに、データフローのコンテンツを確認する情報をユーザにコンテンツを提示するために他のコンピュータへ送信させるための命令を含む。
【００１３】
実施において、以下の利点の１つ以上が提供され得る。本発明は、予め決定されたデータまたは動的に決定されたデータに依存するデータフローのコンテンツと、特定のユーザまたはユーザのグループに関連する情報に依存するデータフローのコンテンツとを動的に変更するために用いられ得る。例えば、本発明は、ユーザの身元に基づいてデータフロー内のアイテムを選択するために用いられ得る。本発明はまた、データフローがユーザに提示されたときに収集された統計的情報の動的にカスタマイズされたセットとして用いられ得る。
【００１４】
本発明の他の特徴、オブジェクトおよび利点は、明細書本文および図面からおよび特許請求の範囲から明白である。
【発明を実施するための最良の形態】
【００１５】
（詳細な説明）
サーバ選択データフローの柔軟な選択、提示、構築およびサーバ選択データフローに渡る制御は、選択サーバを用いることにより達成され得る。選択サーバは、規則（“選択規則”）を処理し得、選択、提示、構築およびサーバ選択データフローに渡る制御に影響を与えるために用いられる論理決定をつくり得るネットワーク要素である。選択規則は、特定のユーザに関連する、またはユーザのグループ、ユーザの身元、ユーザが関連するグループ、ユーザプロファイル情報および／または統計的なデータに関連する統計的またはヒストリカルな情報に基づく論理決定をつくるために用いられ得る。選択規則はまた、データフローに関連するデータの収集に影響を与える制御パラメータをセットし得、また、ユーザがデータフローの要素とやりとりをし得る手法に影響を与える制御パラメータをセットし得る。
【００１６】
図２は、選択サーバ２４０を伴うネットワーク２００を示す。クライアントコンピュータ２３１〜２３３のユーザは、クライアントコンピュータによって実行されるブラウザアプリケーションを用いて、情報サーバ２１１〜２１６からのデータを要求し得る。データおよびデータ要求は、ネットワークサービスプロバイダの印刷システム（ＰＯＰ）２３０への接続２３４〜２３６および中間データルーティングネットワーク２２０を介した接続を含み得るデータパスに渡る、クライアントコンピュータ２３１〜２３３におけるブラウザアプリケーションとサーバ２１１〜２１６との間で交換され得る。ネットワーク２２０は、個人的なネットワーク、公的なネットワーク、または個人的および公的なネットワークを組み合わせたもので有り得る。例えば、ネットワーク２２０は、グローバルインターネットに接続される個人的なインターネットプロトコルネットワークを含み得る。ネットワーク２２０は、個々にまたは有機的に、単一のＯＳＰによって動作されるサーバに相互接続され得、または、異なるＯＳＰによって動作されるサーバおよびクライアントに相互接続され得る。
【００１７】
ユーザがネットワーク２００にアクセスしているとき、ユーザ選択およびサーバ選択データの両方がユーザのブラウザへ送信され得る。ユーザ選択データの転送は、ユーザがブラウザから情報サーバ２１１〜２１６への送信を要求することにより開始され得る。サーバ選択データの転送は、トリガが発生した場合に開始され得る。トリガは、サーバ選択データがブラウザに転送されているときおよび／またはブラウザがサーバ選択データの転送を認め得る間にポイントを確認するブラウザおよび／またはネットワーク処理の状態である。例えば、ブラウザは、ユーザ選択データの転送に続いてサーバ選択データを認めることが可能であり得る。このようなブラウザにおいて、ユーザ選択データの要求は、サーバ選択データの以後の転送のためのトリガポイントであり得る。特定の実施でサポートされるトリガポイントは、ネットワーク内のブラウザおよびサーバ、特定のネットワークのアーキテクチャおよび実施のニーズによりサポートされるデータ転送機構に依存して変更し得る。本明細書中で議論される実施例において，以下の６個のトリガポイントがサポートされる。
【００１８】
（１．ログインリクエストトリガ）
ログインリクエストトリガは、クライアントコンピュータ２３１〜２３３に位置するユーザが、ＯＳＰのアクセスネットワークとのデータ転送接続を確立しようとする場合に生じる。ネットワーク２００において、クライアントコンピュータ２３１〜２３３は、ＯＳＰのポイントオブプレゼンス（ＰＯＰ）２３０でＯＳＰのアクセスネットワークに接続することができる。クライアントコンピュータがＰＯＰ２３０に接続する場合、ログインリクエストトリガが生じ得る。例えば、モデムに基づいたインプリメンテーションでは、ログインリクエストトリガは、クライアントコンピュータ２３１〜２３３において電話回線を介してＰＯＰ２３０とデータ接続が確立され、ＰＯＰがユーザからユーザ名およびパスワードデータをリクエストする場合に生じ得る。ログインリクエストトリガはまた、ログインプロシージャをインプリメントする他のサーバにおいて生じ得る。例えば、サーバ２１１〜２１６が、自身のログインプロシージャをインプリメントする場合、ログインリクエストトリガはまた、ユーザがサーバ２１１〜２１６にログインする場合に生じ得る。
【００１９】
（２．ログイン許可トリガ）
ログイン許可トリガは、ユーザのログイン情報が確認された場合に生じる。例えば、ＰＯＰ２３０が、ログインプロシージャ時に提供されたユーザ名およびパスワードが有効であると判定した場合、ログイン許可トリガが生じ得る。
【００２０】
（３．ログイン拒否トリガ）
ログイン拒否トリガは、ユーザのログイン情報が拒否された場合に生じる。例えば、ＰＯＰ２３０が、ログインプロシージャ時に提供されたユーザ名およびパスワードが無効であると判定した場合に、ログイン拒否トリガが生じ得る。
【００２１】
（４．サービスリストトリガ）
サービスリストトリガは、ＯＳＰがユーザに利用可能なサービスを特定した場合に生じ得る。例えば、ネットワーク２００のＡＯＬインプリメンテーションでは、ＡＯＬブラウザがＡＯＬネットワークとデータ接続を確立した後に、ＡＯＬホストシステム２００（このＡＯＬホストシステム２００は、複数のサーバサブコンポーネント２１１〜２１３を有することができる）によってＡＯＬブラウザに利用可能なサービスのリストを表示させ得る。利用可能なサービスのリストが表示されると、サービスリストトリガが生じ得る。サービスリストトリガは、選択サーバ２４０によって（利用可能な選択規則を用いて）処理され得、その結果サーバが選択したデータがＡＯＬブラウザに送信されて、ポップアップウィンドウに表示され得る。
【００２２】
いくつかのインプリメンテーションでは、サービスリストトリガはまた、ユーザが特定のサービスを選択しても生じ得る。このようなインプリメンテーションでは、選択サーバ２４０に送信されるトリガメッセージは、ユーザが選択した特定のサービスを識別し得る。
【００２３】
（５．ユーザ選択データトリガ）
ユーザ選択データトリガは、ユーザがサーバ２１１〜２１６から取り出される特定のユーザ選択データを識別する場合に生じ得る。例えば、ウェブブラウザが、サーバ２１１〜２１６からデータを取り出すためのＨＴＴＰ  ＧＥＴリクエストを作成する場合、ユーザ選択データトリガはサーバ２１１〜２１６によって検出され得る。
【００２４】
（６．ログアウトリクエストトリガ）
ログアウトリクエストトリガは、クライアントコンピュータ２３１〜２３３に位置するユーザが、クライアントコンピュータとＯＳＰのアクセスネットワーク（または、いくつかのインプリメンテーションでは特定のサーバ２１１〜２１６）との間のデータ転送接続が終了されるということを示す場合に生じる。
【００２５】
（トリガプロセシング）
トリガは、情報サーバ２１１〜２１６、ＰＯＰ２３０、クライアントコンピュータ２３１〜２３３、または他のネットワーク２００の要素で検出され得る。図２および３を参照して、トリガが検出されると、生じたトリガタイプを示すトリガメッセージが検出ネットワーク要素から選択サーバ２４０へと送信される（工程３０１〜３０２）。例えば、ユーザのブラウザは、ユーザリクエストデータがブラウザによってリクエストされるときは必ずユーザ選択データトリガメッセージを選択サーバ２４０に送信するようにプログラムされてもよいし、またはユーザリクエストデータトリガメッセージは、データリクエストがブラウザから情報サーバによって受信された場合に、情報サーバ２１１〜２１６によってサーバ２４０に送信されてもよい。
【００２６】
ＨＴＴＰに基づいたインプリメンテーションでは、トリガメッセージは、ＨＴＴＰ  ＧＥＴリクエストで特定されたユニフォーム資源ロケータ（ＵＲＬ）を用いて、ＨＴＴＰブラウザによって選択サーバ２４０に送信され得る。例えば、ユーザリクエストデータが情報サーバ２１１〜２１６からＨＴＴＰブラウザに転送されると、サーバ２１１〜２１６は、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ（登録商標）コードをブラウザに送信して、ポップアップウィンドウを表示し、ＨＴＴＰ  ＧＥＴリクエストを選択サーバ２４０に送信し得る。ＨＴＴＰ  ＧＥＴリクエストは、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコードの一部として情報サーバによって特定されたＵＲＬを含み得る。ＵＲＬは、トリガを決定するために、選択サーバ２４０でのコモンゲートウェイインターフェース（ＣＧＩ）プロセシングを用いて処理されるデータを含み得る。次いで、選択サーバ２４０は、サーバ選択データを選択して、ブラウザに戻ってもよいし、またはサーバ選択データが得られた場合にはサーバ２１１〜２１６を示すＨＴＴＰリダイレクトコマンドをブラウザに送信してもよい。
【００２７】
ＡＯＬインプリメンテーションでは、サーバ２１１〜２１３は、ＡＯＬホストシステム２１０のサブコンポーネントであり得る。トリガは、ＡＯＬホスト２１０によって検出され得、トリガメッセージは、ＡＯＬホスト２１０によって選択サーバ２４０に送信され得る。トリガメッセージは、データのフレームを転送するためのパケット型データ転送プロトコルを用いて、または他のデータ転送プロトコルを用いて送信され得る。これに応答して、選択サーバ２４０は、ホスト２１０からＡＯＬブラウザに送信されるサーバ選択データを特定する応答メッセージをＡＯＬホストに送信し得る。
【００２８】
トリガメッセージが選択サーバ２４０で受信されると、選択サーバ２４０は、データベース２４２に格納された選択規則を処理して、ブラウザに送信され得る１つ以上の候補サーバ選択データフローを特定する（工程３０３〜３０４）（選択規則については以下でさらに説明する）。いくつかのインプリメンテーションでは、選択規則は、サブセットへと区分化され、各サブセットは特定のトリガと関連付けられる。このようなインプリメンテーションでは、トリガに関連つけられたサブセットのみが処理を必要とする。利用可能な各データフローは、関連付けられたデータフローが選択された場合にはブーリアン「真」、またはそのデータフローが選択されない場合にはブーリアン「偽」と評価する選択規則に関連付けられ得る。複数の候補データフローが特定される場合には、選択サーバ２４０はユーザのブラウザに送信されるサーバ選択データフローを決定する（工程３０５）。インプリメンテーションは、どのデータフローが候補データフローのセットから選択されるべきであるかを決定するための優先順位機構を使用してもよい。例えば、選択可能な各データフローは、関連付けられた優先順位値を有しており、候補データフローのセット中の最も高い優先順位データフローを選択し得る。
【００２９】
選択サーバはまた、サーバ選択データフローのサブコンポーネントを決定することができる（工程３０６〜３０７）。いくつかのインプリメンテーションでは、データフローの情報コンテンツが、そのデータフローに関連付けられた選択規則によって決定され得る（工程３０６）。例えば、データフローは、フラワーアレンジメントを購入するという申し込みを示すために用いられ得、申し込みのあったアレンジメントを示す画像を含み得る。アレンジメント内の特定の花は、ユーザの地理的な位置に応じて異なっていてもよい。従って、申し込みに添付される画像は、ユーザの地理的な位置に応じて異なっていてもよい。申し込みに関連付けられた選択規則は、データベース２４２に問合せ、ユーザのプロフィールを取りだし、ユーザの地理的な位置を決定することができる。その後、選択規則は、そのデータフローに含まれる特定の画像を識別することによって、特定のユーザ向けにその花の申し込みデータフローをカスタマイズし得る。
【００３０】
統計学的情報がユーザおよび／または特定のデータフローに関連付けられ得、データベース２４２に格納され得、そして特定のデータフローとのユーザの相互作用によって決定され得る。収集されるべき特定の統計学的情報は、選択規則によって決定され得る（工程３０７）。例えば、選択規則は、特定のサーバ選択データフローがユーザに提示された回数を示す情報をユーザレコードに格納するために用いられ得る。さらに、（以下でさらに説明されるように）ユーザが提示されたデータフローと相互作用するので、統計学的情報が収集されてデータベース２４２に格納され得る。統計学的情報は、例えば、１ユーザごとに、またはユーザが関連付けられたグループに基づいて格納され得る。
【００３１】
次いで、サーバ選択データフローがユーザに送信され得る（工程３０８）。以前に説明したように、データフローは、ＨＴＴＰおよびＪａｖａ（登録商標）Ｓｃｒｉｐｔ（登録商標）プログラミング言語を用いて送信されて、ネットワーク内のサーバからサーバ選択情報を取り出し得る。他のブラウザ技術およびデータ転送機構もまた支援され得る。例えば、「プッシュ」型データ転送技術によってホストシステムは、ブラウザからリクエストを最初に要求することなくデータおよびＧＵＩコントロール情報をブラウザに送信することができる。このようなホストに基づくシステムによって、サーバ選択データがブラウザに送信され得る場合にさらなる制御を可能にし得、ＨＴＴＰに基づくインプリメンテーションよりもさらに多くのトリガ数を支援することができる。ＡＯＬブラウザインプリメンテーションは「プッシュ」型インプリメンテーションのタイプである。
【００３２】
データフローは、異なるセグメントの集合体としてブラウザに送信され得る。セグメントは、情報データ、画像、ＧＵＩボタンおよび応答フォームを含むデータおよびコントロール要素の種々のフォームを含み得るか、またはこれらから構成され得る。これらのデータフローセグメントのうち特定のセグメント（例えば、ＧＵＩボタンおよび応答フォーム）は、ユーザと相互作用し、ユーザからの情報を収集するために用いられ得る。ユーザが、ＧＵＩボタンを選択し、データをフォームに入力し、または応答を生成するなどして、データフローセグメントと相互作用する場合に、ユーザの相互作用を報告するメッセージが選択サーバ２４０または情報サーバ２１１〜２１６に送信され得る。選択サーバ２４０または情報サーバ２１１〜２１６は、さらなるデータフロー要素を送信するか、またはさらなるプロセシングを実行することによってこのような相互作用メッセージに応答し得る（工程３１０〜３１１）。
【００３３】
ユーザ相互作用のプロセシングおよび応答データは、ユーザに送信されるべきさらなるデータフローセグメントを決定する、または選択サーバ２４０がとるべき特定のアクションを決定するために選択規則を用いることを含み得る。例えば、データフローによって、広告がユーザに提示され得、そのユーザは「購入」ＧＵＩボタンを選択することによって応答することができる。「購入」ＧＵＩボタンが選択されると、メッセージが選択サーバ２４０に送信されて、ＧＵＩボタンの選択を報告し得る。その結果、選択サーバ２４０は、ユーザによる購入を完了するように選択規則を処理し得る。選択規則、ユーザ、およびデータベース２４２に格納された情報に応じて選択サーバ２４０は異なるアクションをとることができる。例えば、一方のユーザにはないが、他方のユーザは、データベース２４２に既に格納された請求書発行方法情報を有することができる。選択サーバ２４０が「購入」ボタン選択方法を処理した場合、選択規則プロセシングは、データベース２４２に問合せ、ユーザに送信されるさらなるデータフロー情報を決定するために用いられ得る（工程３１１）。さらなる情報は、（データベース２４２に格納された請求書発行情報を有するユーザについては）請求書発行情報確認表示、または（データベース２４２に請求書発行情報を有していないユーザについては）請求書発行情報を収集するためのフォームを含み得る。
【００３４】
（選択規則）
選択規則は、プログラム変数を規定し、グローバルデータにアクセスし、論理式を評価し、計算を実行し、ローカルデータまたはグローバルデータを更新し、ローカルデータベースまたはリモートデータベースにアクセスする能力といった従来のプログラミング言語の機能を含むプログラミング言語を用いてインプリメントされ得る。適切なプログラミング言語は、数ある中でもツールキットコントロール言語（ＴＣＬ）、Ｊａｖａ（登録商標）ｓｃｒｉｐｔ、Ｖｉｓｕａｌ  Ｂａｓｉｃ  ｓｃｒｉｐｔ（ＶＢ  ｓｃｒｉｐｔ）、または「Ｃ」を含む。選択規則言語は、他の選択規則内で用いられ得る予め規定されたプロシージャのセット（「基本則」）を含み得る。基本則は、人口統計学情報を処理する規則、アカウント情報を処理する規則、ブラウザポップアップにサーバ選択データの表示を制御する規則およびローカルデータベースまたはリモートデータベースにアクセスする規則を含み得る。
【００３５】
選択規則は、データフローを選択し、初期化する規則セグメントおよびこれらデータフローのユーザへの提示を制御し、ユーザ相互作用に応答する別の規則セグメントを用いてインプリメントされ得る。各セグメントは、例えば、変数を設定することによって、または他のセグメントがアクセス可能なメモリまたはデータベースに値を格納することによって他のセグメントのプロセシングに影響を及ぼし得る。例えば、例示的な選択規則（「ｐｏｐ＿５３」）を以下に示す。「ｐｏｐ＿５３」選択規則は、（擬似コードフォームに表されるプロシージャｐｏｐ＿５３として示される）選択セグメントおよび（１〜４とラベル付けされたＡＣＴＩＯＮ文のテーブルとして示される）コントロールセグメントを含む。
【００３６】
図３の工程３０４を再度参照して、ｐｏｐ＿５３選択セグメント（擬似コードプロシージャ）は、値「５３」によって特定されたデータフローが候補データフローであるかどうかを判定する。ｐｏｐ＿５３プロシージャは、「ＩＤ：５３」データフローが候補データフローである場合にはブーリアン「真」値、そうでない場合には「偽」値を返す。
【００３７】
「ｐｏｐ＿５３」をインプリメントするために用いられる例示的な選択規則言語は、別の選択文およびコントロール文を含む。コントロール文は、（１〜４とラベル付けされた）ＡＣＴＩＯＮ文のテーブルとしてインプリメントされる。ＡＣＴＩＯＮ文は、「ＩＤ：５３」データフローがユーザのブラウザに送信される場合、およびユーザが受信したデータフローと相互作用する場合に生じる選択サーバ２４０プロセシングを識別する（例えば、図３の工程３０７〜３１１の間）。各ＡＣＴＩＯＮ文は、４つのフィールド、すなわちライン番号フィールド、オペレーションフィールド、ブランチ値フィールドおよび引数フィールドを含む。ライン番号フィールド内の値は、ＡＣＴＩＯＮ文プロセシングのフローを順序付けるために用いられる。第１のＡＣＴＩＯＮ文がブランチ値フィールド内のライン番号を識別する場合には、ＡＣＴＩＯＮプロセシングは、第１の文が処理された後も特定されたＡＣＴＩＯＮライン番号で続く。従って、以下の例を参照すると、ＡＣＴＩＯＮ文３は、ＡＣＴＩＯＮ文２の後も処理されることになる。第１のＡＣＴＩＯＮ文がブランチ値フィールド内のライン番号を特定しない場合には、ＡＣＴＩＯＮプロセシングは、第１のＡＣＴＩＯＮ文が処理された後は一時停止となる。
【００３８】
ＡＣＴＩＯＮ文はまた、提示されたデータフローとのユーザの相互作用に基づいて、選択サーバ２４０によって処理され得る。例えば、「ＩＤ：５３」データフローを示すポップアップは２つのＧＵＩボタンを含み得る。ＧＵＩボタンのいずれかがユーザによって選択されると、アクションリクエストがブラウザによって収集され得る。アクションリクエストは、ネットワーク２００内の選択サーバ２４０または他のサーバ２１１〜２１６においてコモンゲートウェイインターフェース（ＣＧＩ）ｓｃｒｉｐｔプロセシングを呼び出すハイパーテキストリンクを用いて収集され得る。アクションリクエストはまた、ネットワーク２００内の選択サーバ２４０に直接、または他のサーバ２１１〜２１６を介して送信された他のタイプのデータを用いて収集され得る。例えば、ＡＯＬブラウザは、データをホストシステムに送信することによってアクションリクエストを生成し、次にメッセージを選択サーバ２４０に転送し得る。
【００３９】
選択サーバ２４０がアクションリクエストを受信すると、特定されたＡＣＴＩＯＮ文のＡＣＴＩＯＮ文を処理し続け得る。例えば、アクションリクエストは、選択サーバ２４０が文「２」でＡＣＴＩＯＮプロセシングをし続けるべきであると特定するデータを含み得る。
【００４０】
例示的なポップアップ則
Ｉｄ：５３
Ｒｕｌｅ：
ｐｒｏｃｅｄｕｒｅ  ｐｏｐ＿５３｛  ｝  ｛
プロシージャ変数のｐｆｏｒｍを宣言する；
アクセスされるグローバル変数を特定する；
ｉｆ（ユーザ＝「ｊｏｎｅｓ」）
ｔｈｅｎ｛
データベース２４２からｊｏｎｅｓのデータにアクセスする
；
計算を実行し、変数を設定または変更する（変数はデータフ
ローの提示を変更し、そのデータフローを制御するように設
定され得る。例えば、変数「ｐｆｏｒｍ」をユーザ「ｊｏｎ
ｅｓ」に表示される第１のデータアイテムを特定するように
設定され得る。他の変数は、収集される統計学データを識別
するように設定され得る。異なる統計学のセットがユーザの
個人情報に応じて選択され得る。）；
ユーザ「ｊｏｎｅｓ」に関連付けられた不変グローバル変数
を設定または更新する。不変変数は、トリガごとに存在する
；
必要ならば、システムプロシージャコールを動作する選択サ
ーバにアクセスしてプロセシングを実行する；
：「真」または「偽」の結果を決定し、返す；
｝
ｅｌｅｓ  ｉｆ（ユーザ＝「ｓｍｉｔｈ」）
ｔｈｅｎ｛
プロセシングを実行して、「ｓｉｍｉｔｈ」に関連する変数
を設定する
｝
ｅｌｅｓ  ｉｆ（ｉｓ＿ａ＿ｍｅｍｂｅｒ（ユーザ、グループＩＤ）
ｔｈｅｎ｛
特定のグループ１におけるユーザのメンバシップに基づいて
プロセシングが選択され得る。例えば、プロセシングは、ユ
ーザがクレジットカードのアカウントを有するユーザグルー
プのメンバであるかどうかによって決定され得る
｝
ｅｎｄ  ｉｆ
｝
ＡＣＴＩＯＮ：
ライン番号 オペレーション ブランチ 引数
１    ｄｉｓｐｌａｙ＿ｐｏｐｕｐ    −      ＄ｐｆｏｒｍ
２            ｃｏｕｎｔ            ３      ｕｓｅｒ−ｃｏｕｎｔｅｒ
３        ｍｅｒｏ＿ｉｎｆｏ        −      ＄ｍｉｔａｇ
４        ｃｌｏｓｅ＿ｆｏｒｍ      −
選択サーバ２４０によるｐｏｐ＿５３選択規則の評価によって「ＩＤ：５３」データフローがユーザに提示されるべきであるかどうかが決定される。ｐｏｐ＿５３則の評価が「真」値となった場合には、ＡＣＴＩＯＮライン１は、選択サーバ２４０によって処理される。ＡＣＴＩＯＮライン１のプロセシングの結果「ｄｉｓｐｌａｙ＿ｐｏｐｕｐ」オペレーションが実行される。ライン１の「ｄｉｓｐｌａｙ＿ｐｏｐｕｐ」オペレーションは、データフローがブラウザに送信される場合に、そのデータフローで送信されるべき第１のセグメントを決定する（工程３０８を再度参照）。ＡＣＴＩＯＮライン１は、変数「ｐｆｏｒｍ」を用いてこれらのセグメントを特定する。変数「ｐｆｏｒｍ」は、サーバから受信されたトリガメッセージ中のデータプロセシングに基づいて、以前に受信された選択状態メッセージデータに基づいて、およびデータベースに格納されたデータに基づいてｐｏｐ＿５３選択規則によって設定され得る。変数「ｐｆｏｒｍ」のフォームは規定されたインプリメンテーションである。いくつかのインプリメンテーションでは、「ｐｆｏｒｍ」のような変数は、１つ以上のＵＲＬ、データベースクエリ識別子、またはサーバ選択データへのポインタとして機能し得る他の情報を含み得る。
【００４１】
ＡＣＴＩＯＮライン１がブランチ値を特定しないので、ＡＣＴＩＯＮ文プロセシングは、ＡＣＴＩＯＮライン１のプロセシング以降停止する。ＡＣＴＩＯＮプロセシングは、＄ｐｆｏｒｍによって特定された表示されたデータセグメントとのユーザ相互作用に基づいて再開し得る。例えば、＄ｐｆｏｒｍセグメントは、ブラウザユーザによって選択される場合には、選択サーバ２４０に（直接的に、または間接的に）送信されるアクションリクエストとなるボタンを含み得る。アクションリクエストは、ＡＣＴＩＯＮ文２が処理されるということを示し得る。ＡＣＴＩＯＮ文２は、「ｃｏｕｎｔ」オペレーションが実行されるということを示す。これは、統計学的な情報を収集し、データベース２４２にその情報を格納するために用いられ得る。カウントオペレーションは、値「ｕｓｅｒ−ｃｏｕｎｔｅｒ」によって特定されたカウンタをインクリメントし得る。次いでＡＣＴＩＯＮプロセシングは、ＡＣＴＩＯＮ文３へと分岐し得る。他のＡＣＴＩＯＮ文も同様に処理され得る。
【００４２】
インプリメンテーションは、前述のｐｏｐ＿５３則の例に示されるテーブルに基づいたコントロールデータ機構を用いる必要はない。プロシージャプログラミング方法論のような他のプログラミング方法論を用いて、コントロールデータ関数を表すことができる。例えば、コントロールデータは、ＧＵＩに基づく認証ツールを用いて作成されたコントロールフローチャートの形式で特定され、フローチャートの要素と相互接続したリンクされたデータ構造を用いてデータベース２４２中に格納され得る。
【００４３】
いくつかの実施形態において、選択サーバ２４０は、トリガを受け取る前に選択規則を十分にまたは部分的に評価し得る。これによって、トリガイベント時の選択規則を処理する時間が減少し得る。例えば、各ユーザに対して、選択サーバ２４０が、その各ユーザに提示され得るデータフローを特定するために選択規則を予め評価し得る。一般に、選択規則が、関連付けられたトリガが生じる際にのみ利用可能なダイナミックデータを必要としない場合に、選択規則を予め十分に評価することが可能である。例えば、特定の選択規則がトリガが生じる時間に依存している場合には、その規則はトリガが生じるまで十分に評価することはできない。選択サーバ２４０は、１ユーザごとにデータフローを予め評価した選択を格納し得る。
【００４４】
選択サーバデータベース２４２は、選択サーバプロセッサ２４１と一緒に配置され得るか、またはリモートデータベースであり得る。例えば、データベース２４２は、１つ以上のローカルまたはリモートに配置されたＯｒａｃｌｅ、ＳｙｂａｓｅまたはＩｎｆｏｒｍｉｘリレーショナルデータベース、あるいは別のリレーショナルデータベースシステムまたは非リレーショナルデータベースによってインプリメントされ得る。データベース２４２は、構造化照会言語（ＳＱＬ）、開放型データベース接続性（ＯＤＢＣ）またはデータベースアクセス機構を用いて選択規則からアクセスされ得る。いくつかのインプリメンテーションでは、データベース２４２の要素は、情報サーバ２１１〜２１６に格納され得る。例えば、情報サーバ２１１〜２１６は、選択サーバ２４０によってアクセス可能なデータベースを含み得る。
【００４５】
インプリメンテーションは、特定のユーザに関連付けられたデータをトリガメッセージとして選択サーバに転送することができる。例えば、トリガメッセージがホストシステム２１０から選択サーバへと送信されるインプリメンテーションでは、ホストシステムは、（地理的情報のような）ユーザに関する情報をトリガメッセージ内に含み得る。
【００４６】
データベース２４２は、ユーザの地理的情報およびユーザの現在および／または以前のオンラインセッション中に収集された情報を含み得る。例えば、データベース２４２は、年齢、クレジット情報、ユーザが加入している情報サービス、アドレス情報およびユーザに関連する他のデータを含み得る。選択サーバ２４２はまた、特定のサーバ選択データフローがユーザに、またはユーザのグループのメンバに提示された回数、サーバ選択データフローが提示されてからの経過時間、およびユーザ仕様優先順位情報に基づいて追跡し、選択の決定を行い得る。
【００４７】
選択サーバインプリメンテーションはまた、ユーザのグループに関連付けられたデータを収集し、その収集されたデータに基づいて論理プロセシングおよびコントロールプロセシングを実行し得る。
【００４８】
サーバ２１１〜２１６、クライアント２３１〜２３３および選択サーバ２４０は、Ｉｎｔｅｌ（登録商標）×８６と互換性のあるパーソナルコンピュータ、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ（登録商標）コンピュータ、ＩＢＭ、ＳＵＮおよびＨＰコンピュータ、または他のコンピュータシステムを含み得る。各コンピュータは、中央プロセッサ、ハードディスクドライブ、ＲＡＭメモリ、バックプレーン相互接続、キーボードおよびマウスのようなデータ入力周辺機器、映像ディスプレイドライバカードのような出力周辺機器、およびモデムおよびネットワークインターフェースアダプタのような通信デバイスからなり得るハードウェアリソースを含む。各コンピュータはまた、オペレーティングシステムおよびアプリケーションプログラムを含み得る。例えば、クライアントコンピュータ２３１〜２３３は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）またはＡｐｐｌｅ
ＭａｃＯＳ（登録商標）バージョンのオペレーティングシステムを実行し得、ＡＯＬブラウザ、ＨＴＴＰブラウザまたは他のブラウザアプリケーションをも含み得る。サーバコンピュータ２１１〜２１６は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ＮＴまたはＵＮＩＸ（登録商標）オペレーティングシステムを実行し得、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、ＴＣＰ／ＩＰおよび／または他のデータ交換プロトコルに応答するソフトウェアを含み得る。
【００４９】
サーバ２１１〜２１６は、ユーザの視野から１つのネットワークシステムとして現れる論理的に統合されたホストシステムの一部として機能し得る。例えば、サーバ２１１〜２１３は、ホストシステム２１０のコンポーネントである。Ａｍｅｒｉｃａ  Ｏｎｌｉｎｅ，Ｉｎｃ．（ＡＯＬ）は、数ある中でも電子メール、チャット、ニュース、経済、旅行、天気およびインターネットゲートウェイサービスをＡＯＬユーザに提供し得る複数の別個のサーバを含むホストシステムを動作させる。
【００５０】
本発明は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、あるいはこれらの組み合わせにおいてインプリメントされ得る。本発明の装置は、マシンが読み取り可能な格納デバイスに実際に組み込まれたコンピュータプログラムプロダクトにインプリメントされて、プログラム可能なプロセッサによって実行され得る。本発明の方法は、本発明の機能を実行するための命令のプログラムを実行するプログラム可能なプロセッサによって実行され、入力データについて動作し、出力を生成することができる。本発明は、有利なことには、データおよび命令をデータ格納システムから受信し、データおよび命令をデータ格納システムに転送するように接続された少なくとも１つのプログラム可能なプロセッサ、少なくとも１つの入力デバイスおよび少なくとも１つの出力デバイスを含むプログラム可能なシステム上で実行可能な１つ以上のコンピュータプログラム内にインプリメントされ得る。各コンピュータプログラムは、ハイレベルプロシージャまたはオブジェクト指向プログラミング言語、あるいは所望ならばアセンブリまたはマシン言語でインプリメントされ得る。いずれの場合にせよ言語はコンパイルされた言語または翻訳された言語であり得る。例として、適切なプロセッサは、汎用マイクロプロセッサおよび特定用途向けマイクロプロセッサの両方を含む。一般に、プロセッサは、読み出し専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受信する。コンピュータプログラム命令およびデータを実際に組み込むのに適切な格納デバイスは、不揮発性メモリのすべての形態を含む。このような不揮発性メモリの例としては、ＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリのような半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクのような磁気ディスク、磁気光ディスクおよびＣＤ−ＲＯＭディスクが挙げられる。上記のいずれもが、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補足され得るか、またはこのＡＳＩＣに組み込まれ得る。
【００５１】
本発明の多くの実施形態が説明された。しかしながら、本発明の精神および範囲を逸脱することなく種々の改変例が為され得るということが理解される。従って、他の実施形態は上掲の特許請求の範囲内である。
【図面の簡単な説明】
【００５２】
【図１】図１は、従来技術のコンピュータネットワークの一例を示す。
【図２】図２は、コンピュータネットワークの一例を示す。
【図３】図３は、選択規則処理およびデータフロー転送を示すフローチャートである。
【図１】
2007042121.tif 000003
【図２】
2007042121.tif 000004
【図３】
2007042121.tif 000005