(57)【要約】【課題】インターネット内で、動的ウェブ・ページ、例えば、データベース・クエリを実行して作成したレポートなどを送り届けるための方法およびシステムを提供すること。【解決手段】サーバ・コンピュータ上でクエリを実行し、その結果得られたレコードをＨＴＭＬ文書のヘッダ中のスクリプト変数としてクライアント・コンピュータに送信する。ＨＴＭＬ文書のボディは、レコード用のビュー・テンプレートを定義する、スクリプト変数を表示するためのタグを含む。クエリの結果を対応するビュー・テンプレートに基づいてクライアント・コンピュータに表示するために、クライアント・コンピュータ上のブラウザが、ＨＴＭＬタグの解釈を担当する。【選択図】図２
2005502967.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内で動的情報を送り届ける方法であって、
クライアント・コンピュータが、前記ネットワークのサーバ・コンピュータに前記動的情報をリクエストするステップと、
前記サーバ・コンピュータの制御下で、前記動的情報を取得するステップと、
前記サーバ・コンピュータの制御下で、前記動的情報用のビュー・テンプレートを取得するステップと、
前記動的情報と前記ビュー・テンプレートを、前記サーバ・コンピュータから前記クライアント・コンピュータに送信するステップと、
前記クライアント・コンピュータの制御下で、前記動的情報を前記ビュー・テンプレートに組み込んで、前記ビュー・テンプレートに基づいて前記動的情報を前記クライアント・コンピュータに表示するステップとを含む方法。
【請求項２】
前記動的情報が、複数のレコードを含み、前記ビュー・テンプレートが、複数の変数を表示するための命令を含む第１のセクションを含み、前記動的情報を取得する前記ステップが、各レコードを順次取り出すステップと、前記レコードを前記ビュー・テンプレートの第２のセクションの対応する変数に割り当てるステートメントを挿入するステップとを含み、前記動的情報を前記ビュー・テンプレートに組み込む前記ステップが、前記命令を実行するステップを含む、請求項１に記載の方法。
【請求項３】
前記挿入されたステートメントを含む前記ビュー・テンプレートが、ウェブ・ページを定義し、前記命令が、マークアップ・タグを含み、前記ステートメントが、スクリプト・コードを含む、請求項２に記載の方法。
【請求項４】
複数の構造モデルであって、その各々が前記クライアント・コンピュータに表示される対応する構造用であり、各々が複数の静的パラメータを含む複数の構造モデルを提供するステップと、
各構造モデルの前記静的パラメータ用の現行の１組の値を提供するステップと、
各構造を前記対応する構造モデルから前記静的パラメータを前記現行の１組の値で置き換えることによってオフラインで生成するステップと、
前記サーバ・コンピュータ上で前記生成された構造を利用可能にするステップとをさらに含む、請求項１に記載の方法。
【請求項５】
各構造モデルの前記静的パラメータ用の複数の異なる組の値であって、各組の値が対応するバージョン識別情報によって定められる複数の異なる組の値を格納するステップと、
前記現行の１組の値の前記バージョン識別情報を各構造モデルに関連づけるステップと、
各構造モデルの前記静的パラメータ用の前記現行の１組の値を前記関連づけられたバージョン識別情報に基づいて取得するステップとをさらに含む、請求項４に記載の方法。
【請求項６】
前記対応する構造の表示スタイルを定めるスタイル識別情報を各構造モデルに関連づけるステップをさらに含み、各構造をオフラインで生成する前記ステップが、前記スタイル識別情報が定める表示スタイルで前記現行の１組の値を挿入するステップを含む、請求項４に記載の方法。
【請求項７】
前記構造の開発システム用の複数の権限プロファイルを保存するステップと、
選択された権限プロファイルで前記開発システムのセクションを開始するステップと、
前記選択された権限プロファイルに基づいて前記構造モデルまたは前記静的パラメータ用の値の組にアクセスするステップとをさらに含む、請求項５に記載の方法。
【請求項８】
データ処理システムの作業メモリにロード可能なコンピュータ・プログラム・アプリケーションであって、前記アプリケーションを前記データ処理システム上で実行すると、ネットワーク内で動的情報を送り届ける方法が実行され、前記方法が、
クライアント・コンピュータが、前記ネットワークのサーバ・コンピュータに前記動的情報をリクエストするステップと、
前記サーバ・コンピュータの制御下で、前記動的情報を取得するステップと、
前記サーバ・コンピュータの制御下で、前記動的情報用のビュー・テンプレートを取得するステップと、
前記動的情報と前記ビュー・テンプレートを、前記サーバ・コンピュータから前記クライアント・コンピュータに送信するステップと、
前記クライアント・コンピュータの制御下で、前記動的情報を前記ビュー・テンプレートに組み込んで、前記ビュー・テンプレートに基づいて前記動的情報を前記クライアント・コンピュータに表示するステップとを含むコンピュータ・プログラム・アプリケーション。
【請求項９】
請求項８に記載のアプリケーションを保存するコンピュータ可読媒体を含むプログラム・アプリケーション製品。
【請求項１０】
ネットワークのサーバ・コンピュータの作業メモリにロード可能なコンピュータ・プログラムであって、前記プログラムを前記サーバ・コンピュータ上で実行すると、前記ネットワーク内で動的情報を送り届ける方法が実行され、前記方法が、
前記ネットワークのクライアント・コンピュータから前記動的情報を求めるリクエストを受信するステップと、
前記動的情報を取得するステップと、
前記動的情報用のビュー・テンプレートを取得するステップと、
前記動的情報と前記ビュー・テンプレートを前記クライアント・コンピュータに送信し、前記ビュー・テンプレートに基づいて前記動的情報を前記クライアント・コンピュータに表示するために、前記クライアント・コンピュータに前記動的情報を前記ビュー・テンプレートに組み込ませるステップとを含むコンピュータ・プログラム。
【請求項１１】
請求項１０に記載のプログラムを保存するコンピュータ可読媒体を含むプログラム製品。
【請求項１２】
クライアント・コンピュータとサーバ・コンピュータを含むネットワーク内で動的情報を送り届けるためのシステムであって、前記クライアント・コンピュータが、前記動的情報を前記サーバ・コンピュータにリクエストする手段を含み、前記サーバ・コンピュータが、前記動的情報を取得する手段と、前記動的情報用のビュー・テンプレートを取得する手段と、前記動的情報と前記ビュー・テンプレートを前記クライアント・コンピュータに送信する手段とを含み、前記クライアント・コンピュータが、前記動的情報を前記ビュー・テンプレートに組み込んで、前記ビュー・テンプレートに基づいて前記動的情報を前記クライアント・コンピュータに表示する手段をさらに含むシステム。
【請求項１３】
クライアント・コンピュータとサーバ・コンピュータを含むネットワーク内で動的情報を送り届けるためのシステムであって、前記クライアント・コンピュータが、前記動的情報を前記サーバ・コンピュータにリクエストするためのソフトウェア・モジュールを含み、前記サーバ・コンピュータが、前記動的情報を取得するためのソフトウェア・モジュールと、前記動的情報用のビュー・テンプレートを取得するためのソフトウェア・モジュールと、前記動的情報と前記ビュー・テンプレートを前記クライアント・コンピュータに送信するためのソフトウェア・モジュールとを含み、前記クライアント・コンピュータが、前記動的情報を前記ビュー・テンプレートに組み込んで、前記ビュー・テンプレートに基づいて前記動的情報を前記クライアント・コンピュータに表示するためのソフトウェア・モジュールをさらに含むシステム。
【請求項１４】
クライアント・コンピュータとサーバ・コンピュータを含むネットワーク内で動的情報を送り届けるためのシステムであって、前記クライアント・コンピュータが、前記動的情報を前記サーバ・コンピュータにリクエストするためのブラウザを含み、前記サーバ・コンピュータが、前記動的情報と、前記動的情報用のウェブ・ページ・テンプレートを取得するためのスクリプト・モジュールと、前記動的情報と前記ウェブ・ページ・テンプレートを前記クライアント・コンピュータに送信するためのウェブ・サーバ・モジュールとを含み、前記クライアント・コンピュータが、前記動的情報を前記ウェブ・ページ・テンプレートに組み込んで、前記ウェブ・ページ・テンプレートに基づいて前記動的情報を前記クライアント・コンピュータに表示するためのブラウザをさらに含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内で動的情報を送り届けるための方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータのネットワークが、分散データ処理システムを実施するのに広く利用されている。具体的には、過去数年の間に、インターネットが広範囲に普及した。インターネットは、膨大な数のコンピュータを接続する、非集中型の構造をもったネットワークのネットワークである。インターネットは、クライアント／サーバ方式のアーキテクチャをもち、ネットワークのサーバ・コンピュータが共用リソースを管理し、クライアント・コンピュータはネットワークを介して共用リソースにアクセスする。
【０００３】
インターネットでは、各クライアント・コンピュータは、サーバ・コンピュータと動的に対話を行って、サーバ・コンピュータから提供されるたび内容が変わる情報をダウンロードし、表示することもできる。この機能は一般に、サーバ・コンピュータ上でデータベース・クエリを実行した結果であるレポートを生成し、配布するのに利用される。
【０００４】
インターネット内で動的情報を送り届けるための、当技術分野で周知のソリューションは、プログラム、例えば、ＣＧＩ（共通ゲートウェイ・インタフェース）に準拠したデータを受け取り、また返すように設計されたプログラムを実行することである。ＣＧＩは、クライアント・コンピュータから受信したリクエストに応答して、対応する特定のタスクをサーバ・コンピュータ上で実行する。例えば、ＣＧＩプログラムが、サーバ・コンピュータのデータベース上でクエリを実行すると、そのクエリの結果である各レコードが、ＣＧＩプログラムの対応する変数に格納される。これらの変数を読み取り、また適切な操作を実行することで、サーバ・コンピュータ上でレポートを作成する。その後、表示準備の整った形で、レポートをクライアント・コンピュータに送信する。
【０００５】
上記のソリューションの難点は、サーバ・コンピュータのデータベースで用いられるデータ・モデルは通常、サーバ・コンピュータが生成できるレポートのすべてに適合しているわけではないので、データに直接アクセスできない場合もあることである。言い換えると、レポートを作成するＣＧＩプログラムは、１つのデータベース・テーブルにクエリを直接発行するだけでは不十分であり、レポートの表中に示される１行を作成するのに、様々なデータベース・テーブルにクエリを発行しなければならないこともある。これは、クエリの結果であるレコードの数が事前にはわからないため、ＣＧＩプログラムの変数を格納するのに動的メモリ割当てプロセス（dynamic memory allocation process）を用いることを意味する。その結果、ＣＧＩプログラムは、サーバ・コンピュータ上でのメモリ割当て不足が原因で、実行中にエラーを起しやすくなる。
【０００６】
さらに、クエリを実行し、レポートを作成するＣＧＩプログラムは、非常に複雑である。したがって、このプログラムを実行すると、サーバ・コンピュータのパフォーマンスに深刻な影響が及ぶ。この難点は、複雑なレポートを求める多数のリクエストを同時に受け付ける、高可用性のサーバ・コンピュータで特に深刻である。この場合、サーバ・コンピュータ上でリソースが大量に消費されることで、サーバ・コンピュータの応答時間が増大し、その結果、ネットワーク全体の動作が遅くなる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、サーバ・コンピュータの信頼性を向上させることである。
【０００８】
本発明の別の目的は、サーバ・コンピュータ上に割当て、管理するメモリ量を減少させることである。
【０００９】
本発明のさらに別の目的は、サーバ・コンピュータ上での動的メモリ割当てプロセスを回避することである。
【００１０】
さらに、本発明の目的は、ネットワークのパフォーマンスを向上させることである。
【００１１】
本発明の別の目的は、サーバ・コンピュータの応答時間を減少させることである。
【００１２】
本発明のさらに別の目的は、クライアント・コンピュータが発行する各リクエストに応答してサーバ・コンピュータが実行する処理を簡略化することである。
【課題を解決するための手段】
【００１３】
上記およびその他の関連する目的の達成は、クライアント・コンピュータがネットワークのサーバ・コンピュータに動的情報をリクエストするステップと、サーバ・コンピュータの制御下で動的情報を取得するステップと、サーバ・コンピュータの制御下で動的情報用のビュー・テンプレートを取得するステップと、動的情報とビュー・テンプレートをサーバ・コンピュータからクライアント・コンピュータに送信するステップと、クライアント・コンピュータの制御下で動的情報をビュー・テンプレートに組み込んで、クライアント・コンピュータにビュー・テンプレートに基づいて動的情報を表示するステップとを含む、ネットワーク内で動的情報を送り届ける方法によって実現される。
【００１４】
本発明はまた、前記方法を実行するためのコンピュータ・プログラム・アプリケーションと、アプリケーションを格納した製品も提供する。さらに、本発明は、ネットワーク内で動的情報を送り届けるための対応するシステムを提供する。
【００１５】
さらに、本発明は、サーバ・コンピュータの作業メモリに直接ロード可能なコンピュータ・プログラムであって、ネットワークのサーバ・コンピュータ上で実行すると、ネットワーク内で動的情報を送り届ける方法を実行するコンピュータ・プログラムを提供する。前記方法は、ネットワークのクライアント・コンピュータから動的情報を求めるリクエストを受信するステップと、動的情報を取得するステップと、動的情報用のビュー・テンプレートを取得するステップと、動的情報とビュー・テンプレートをクライアント・コンピュータに送信し、クライアント・コンピュータにビュー・テンプレートに基づいて動的情報が表示されるように、クライアント・コンピュータに動的情報をビュー・テンプレートに組み込ませるステップとを含む。
【００１６】
最後に、本発明は、前記プログラムを格納した製品を提供する。
【００１７】
本発明の特徴であると考えられる新規な特徴を、添付の特許請求の範囲に記載する。しかし、本発明自体、ならびに本発明の上記およびその他の関連する目的および利点は、以下の詳細な説明を参照し、添付の図面と併せ読むことによって、最もよく理解されるであろう。
【発明を実施するための最良の形態】
【００１８】
図１を個別に参照すると、データ処理システム１００が示されている。システム１００は、具体的にはインターネットとすることができるネットワーク１０５を含む。ネットワーク１０５は、遠距離通信構造を介して互いに接続された膨大な数のコンピュータによって形成される。クライアント・コンピュータ１１０ｃは、インターネット・サービス・プロバイダ、すなわちＩＳＰ（図示せず）を介して、インターネット１０５にアクセスする。クライアント・コンピュータ１１０ｃのユーザは、インターネット１０５にアクセスすることで、情報を交換し、電子メールを送受信し、文書を見ることができるようになる。具体的には、サーバ・コンピュータ１１０ｓのシステム（ワールド・ワイド・ウェブ）が、ウェブ・ページとして知られるハイパーテキスト文書を管理する。各ウェブ・ページは、他の文書や、グラフィックス、音声、映像ファイルへのリンクをサポートする言語であるＨＴＭＬで記述される。ウェブは、メッセージをどのようにフォーマットし送信するか、また様々なコマンドに応答してクライアント・コンピュータ１１０ｃおよびサーバ・コンピュータ１１０ｓがどのように動作すべきかを定義したＨＴＴＰプロトコルを使用する。インターネット１０５の汎用的なサーバ・コンピュータ１１０ｓは、ローカル・エリア・ネットワーク（ＬＡＮ）１１２を介して、対応する開発コンピュータ（development computer）１１０ｄに結合される。
【００１９】
一般にパーソナル・コンピュータ（ＰＣ）からなる各クライアント・コンピュータ１１０ｃは、通信バス１１５ｃに並列に接続される複数のユニットによって形成される。詳細に述べると、マイクロプロセッサ（μＰ）１２０ｃがクライアント・コンピュータ１１０ｃの動作を制御し、一般にＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）である作業メモリ１２５ｃをマイクロプロセッサ１２０ｃが直接使用し、読取り専用メモリ（ＲＯＭ）１３０ｃがクライアント・コンピュータ１１０ｃのブートストラップ用の基本プログラムを格納する。複数の周辺装置がさらに、（それぞれのインタフェースによって）バス１１５ｃに接続される。具体的には、大規模メモリは、磁気ハードディスク１３５ｃと、ＣＤ−ＲＯＭ１４５ｃ読取り用ドライバ１４０ｃからなる。さらに、クライアント・コンピュータ１１０ｃは、（例えば、キーボードやマウスからなる）入力装置（ＩＮ）１５０ｃ、および（例えば、モニタやプリンタからなる）出力装置（ＯＵＴ）１５５ｃを含む。クライアント・コンピュータ１１０ｃをインターネット１０５に接続するのに、モデム１６０ｃが使用される。
【００２０】
（例えば、ミニ・コンピュータからなる）各サーバ・コンピュータ１１０ｓも同様に、バス１１５ｓ、複数のマイクロプロセッサ１２０ｓ、ＤＲＡＭ１２５ｓ、およびＲＯＭ１３０ｓによって形成され、サーバ・コンピュータ１１０ｓはさらに、ハードディスク１３５ｓ、ＣＤ−ＲＯＭ１４５ｓ用ドライバ１４０ｓ、入力装置１５０ｓ、および出力装置１５５ｓを含む。モデム１６０ｓがサーバ・コンピュータ１１０ｓをインターネット１０５に結合し、一方、サーバ・コンピュータ１１０ｓをＬＡＮ１１２に接続するには、ネットワーク・インタフェース・カード（ＮＩＣ）１６５ｓを使用する。開発コンピュータ１１０ｄにも類似の構造が用いられる。具体的には、開発コンピュータ１１０ｄは、バス１１５ｄ、複数のマイクロプロセッサ１２０ｄ、ＤＲＡＭ１２５ｄ、ＲＯＭ１３０ｄ、ハードディスク１３５ｄ、ＣＤ−ＲＯＭ１４５ｄ用ドライバ１４０ｄ、入力装置１５０ｄ、出力装置１５５ｄ、およびＮＩＣ１６５ｄを含む。
【００２１】
（イントラネットなど）異なるネットワークを想定する場合、（例えば、ネットワーク・コンピュータまたはウェブＴＶシステムをＰＣに代って利用するなど）各クライアント・コンピュータ、サーバ・コンピュータ、および開発コンピュータが異なる構造をもつ場合、コンピュータが（スキャナまたはウェブ・カメラなど）異なる装置を含む場合、サーバ・コンピュータが開発コンピュータに（例えば、ポイント・ツー・ポイント接続など）異なる方式で結合される場合、サーバ・コンピュータと開発コンピュータが単一システムの別個の論理パーティションからなる場合などにも同様の議論があてはまる。
【００２２】
次に図２を考察すると、クライアント・コンピュータ１１０ｃ、サーバ・コンピュータ１１０ｓ、開発コンピュータ１１０ｄそれぞれの、作業メモリ１２５ｃ、１２５ｓ、１２５ｄの部分的な内容が示されている。情報（プログラムおよびデータ）は、通常それぞれのハードディスクに保存され、プログラムを実行するときに作業メモリに（少なくとも部分的に）ロードされて、オペレーティング・システムおよびその他のアプリケーション・プログラム（図示せず）と一緒に置かれる。プログラムは最初にＣＤ−ＲＯＭからハードディスクにインストールされる。
【００２３】
クライアント・コンピュータについて具体的に考察すると、作業メモリ１２５ｃ内には入力インタフェース（ＩＮ）２０５が常駐し、入力インタフェース２０５は、クライアント・コンピュータのユーザが（キーボードおよびマウスを用いて）データまたはコマンドあるいはその両方を入力する際に使用される。入力インタフェース２０５は、ブラウザ２１０に結合され、ユーザは、ブラウザを使用することで、インターネット内をサーフしながら、ウェブ・ページを探し、表示することができる。ブラウザ２１０は、プラグイン・モジュール（plug-in module）２１２を使用することで、Ｊａｖａ（Ｒ）Ｓｃｒｉｐｔ言語で記述された命令を解釈できるようになる。ブラウザ２１０は、クライアント・コンピュータのモニタ用の出力バッファ（ＯＵＴ）２１５と直接インタフェースをとる。
【００２４】
サーバ・コンピュータ１１０ｓの作業メモリ１２５ｓは、各クライアント・コンピュータが発行したコマンドを実行し、対応するウェブ・ページを送り返す、ウェブ・サーバ・モジュール（web server module）２２０を含む。ウェブ・サーバ・モジュール２２０は、静的ウェブ・ページ２２５のリポジトリにアクセスする。各ウェブ・ページは、ウェブ・サーバ・モジュール２２０がリクエストに応じて取り出すＨＴＭＬ文書で構成される。ウェブ・サーバ・モジュールはさらに、その各々がＣＧＩプログラムでなるスクリプト２３０の実行を制御する。ＣＧＩプログラム２３０は、動的ウェブ・ページ用のビュー・テンプレート２３５のリポジトリにアクセスする。各ビュー・テンプレート２３５は、ヘッダおよびボディをもったＨＴＭＬ文書からなる。ヘッダは、一連のスクリプト・オブジェクトを宣言する命令をもったスクリプトを含み、ボディは、スクリプト・オブジェクトの異なるインスタンスに関連するスクリプト変数を表示するための一連のマークアップ・タグを含む。パブリシング・モジュール（publishingmodule）２４０は、ウェブ・ページ２２５およびビュー・テンプレート２３５の更新を制御する。
【００２５】
ＣＧＩプログラム２３０は、データベース２５０上でクエリを実行して、クライアント・コンピュータのユーザがリクエストした動的情報を取得する。ＣＧＩプログラム２３０が作成したウェブ・ページ２５３を、ウェブ・サーバ・モジュール２２０に供給するのに、出力バッファが使用される。各ウェブ・ページ２５３は、対応するビュー・テンプレート２３５から、一連のステートメントをそのヘッダに挿入することによって取得される。各ステートメントは、データベースから抽出したレコード（またはフィールド）の値を、対応するスクリプト変数に割り当てる。
【００２６】
以下のコードは、上で述べたようにして対応するビュー・テンプレートから作成されたウェブ・ページの簡単な例を提供する。
【００２７】
2005502967.tif 000003
【００２８】
ＨＴＭＬ文書は、＜ｈｔｍｌ＞タグから始まり、＜／ｈｔｍｌ＞タグで終る。そのウェブ・ページが何に関するか（Data-View Test）の定義は、＜ｈｅａｄ＞タグと＜／ｈｅａｄ＞タグの間に記述する。ウェブ・ページに含まれる情報はすべて、＜ｂｏｄｙ＞タグと＜／ｂｏｄｙ＞タグの間に収める。
【００２９】
ＨＴＭＬ文書は、Ｊａｖａ（Ｒ）Ｓｃｒｉｐｔ言語で記述されたスクリプトを識別するタグで始まるデータ・セクションをもつ。このスクリプトは、２つの行をもつ表からなるＴａｂｌｅＯｂｊオブジェクトの定義を含む。その後で、このオブジェクト用の変数ＴａｂｌｅＶａｒを宣言し、データベース上でクエリを実行して得た動的情報をこの変数に割り当てる。この例では、語「Ｔｅｘｔ１」と語「Ｔｅｘｔ２」がクエリの結果であり、変数ＴａｂｌｅＶａｒの第１行と第２行にそれぞれ割り当てられる。スクリプトは、＜／ＳＣＲＩＰＴ＞タグで終る。
【００３０】
ＨＴＭＬ文書はさらに、（対応するコメント行から始まる）ビュー・セクションを含む。表は、＜ｔａｂｌｅ  ｂｏｒｄｅｒ＝１＞タグと＜／ｔａｂｌｅ＞タグの間に定義される。表の新しい行は、＜ｔｒ＞タグから始まる。＜ｔｄ＞タグと＜／ｔｄ＞タグは、行の各欄に入れる情報を示す。この例では、語「Ｒｏｗ１」と、Ｊａｖａ（Ｒ）Ｓｃｒｉｐｔコマンドｄｏｃｕｍｅｎｔ．ｗｒｉｔｅの結果である語「Ｔｅｘｔ１」が、表の第１行に含まれる。行定義は、＜／ｔｒ＞タグで終る。同様に、表の第２行は、語「Ｒｏｗ２」と語「Ｔｅｘｔ２」からなる。
【００３１】
ＨＴＭＬ文書がクライアント・コンピュータに送信されると、ブラウザがＨＴＭＬタグを解釈する。その結果、サーバ・コンピュータのデータベースから取得した動的情報が入った表が、クライアント・コンピュータに表示される。
【００３２】
ウェブ・ページのクライアント・コンピュータへの表示は、別個の連続した２ステップに分けられる。第１のステップでは、動的情報をデータベースから取得し、それをスクリプト変数としてクライアント・コンピュータに渡す。第２のステップでは、スクリプト変数を参照する命令をクライアント・コンピュータに送信し、動的情報をクライアント・コンピュータに表示するために、ブラウザがそれらの命令の実行を担当する。
【００３３】
言い換えると、ネットワーク内で動的情報を送り届けるプロセスは、モデル−ビュー−コントローラ・パラダイムに基づいた（各々がそのタスクに専用の）ほとんど独立した３つのコンポーネントによって処理される。具体的には、モデルを実施したものがスクリプトであり、操作する動的情報を保有する。ビューを実施したものがテンプレートであり、ユーザに対する動的情報のグラフィカル表示またはテキスト表示あるいはその両方を管理する。コントローラを実施したものがブラウザであり、すべてのユーザ・アクションに応答し、モデルおよびビューに適切に通知する。
【００３４】
次に開発コンピュータについて考察すると、作業メモリ１２５ｄ内には管理ツール（managingtool）２５５が常駐し、ツール２５５を使用して、構造モデル・データベース２６０、イメージ・データベース２６３、およびテキスト・データベース２６５に対する編集、表示、検索、入力、およびその他の管理機能の実行を行う。各構造モデル２６０は、対応する静的ウェブ・ページ２２５またはビュー・テンプレート２３５のレイアウトを定義する。構造モデル２６０は、（対応するイメージ識別情報によって示される）イメージ２６３への参照を含む。例えば、イメージは、ナビゲーション・ボタンまたはページ・タイトル・バナーの背景画を定義する。文字列を各イメージに関連づけるには、静的パラメータを使用する。構造モデル２６０はさらに、文字列の言語を定義するフィールド（ＬＡＮＧ）、および文字の字体を定義するフィールド（ＦＯＮＴ）を含む。テキスト・データベース２６５は、各パラメータ用のレコードを含み、レコードは、パラメータに関連づけられた、一連の様々な言語に翻訳された文字列で構成される。
【００３５】
生成モジュール（generating module）２７０が、データベース２６０、２６３、２６５にアクセスする。生成モジュール２７０は、新しいウェブ・ページ２２５およびビュー・テンプレート２３５を作成する。生成されたウェブ・ページおよびビュー・テンプレートは、サーバ・コンピュータのパブリシング・モジュール２４０に送信される。各ウェブ・ページ２２５またはビュー・テンプレート２３５は、それぞれ対応する構造モデル２６０から、関連するイメージおよび文字列を挿入することによって取得される。選択された言語の文字列が、選択された字体で追加される。
【００３６】
アクセス・モジュール（access module）２７５は、管理ツール２５５を使用する際の様々な特権を管理し、開発コンピュータの特定のユーザまたはユーザ・グループにそれらの特権が付与される。この目的のため、各々が個々の権限によって定義される様々なプロファイルをインベントリ（inventory）２８０に保存する。インベントリ２８５は、各ユーザ（またはユーザ・グループ）を対応する権限プロファイルに関連づける。例えば、ウェブ管理者には、新しいウェブ・ページとビュー・テンプレートを生成し、発行する権限が与えられ、ウェブ開発者には、構造モデル・データベース２６０にアクセスする権限が与えられ、グラフィック・デザイナには、イメージ・データベース２６３にアクセスする権限が与えられ、翻訳者には、テキスト・データベース２６５にアクセスする権限が与えられる。
【００３７】
アプリケーション全体（クライアント・コンピュータ、サーバ・コンピュータ、および開発コンピュータ上のプログラム）および対応するデータが異なる方式で構造化される場合、異なるモジュールまたは機能が提供される場合、データベースが別の場所に格納される場合、サーバ・コンピュータ上のスクリプトがＳＳＩ（サーバ・サイド・インクルード）など異なる規格に準拠する場合、ウェブ・ページが（例えば、同等なマークアップ・タグと異なる言語で記述されたスクリプトを用いる）異なる方式で定義される場合にも同様の議論があてはまる。あるいは、各構造モデルは同等の静的パラメータを含み、ＬＡＮＧおよびＦＯＮＴフィールドを（例えば、別のデータベースに格納されるなど）異なる方式で構造モデルと関係づけ、ＬＡＮＧフィールドを（例えば、別の地域情報を定義するなど）同等のバージョン識別情報で置き換え、ＦＯＮＴフィールドを（例えば、文字の色を定義するなど）同等のスタイル識別情報で置き換えなどする。
【００３８】
図３を参照すると、開発コンピュータの動作には、ブロック３０５から開始する方法３００の実行が含まれる。ブロック３１０で、一連の可能な選択肢をもったメニューを開発コンピュータのモニタに表示する。次に方法は、選択された選択肢に対応する動作を実施する。具体的には、ユーザが管理機能を選択した場合、ブロック３１５〜ブロック３２０が実行され、ユーザが編集機能を選択した場合、ブロック３２５〜ブロック３４０が実行され、ユーザが発行機能を選択した場合、ブロック３４５〜ブロック３７２が実行される。そうではなく、ユーザが出口オプションを選択した場合、方法は最終ブロック３７５で終了する。
【００３９】
次にブロック３１５（管理機能）を考察すると、システム管理者はここで、権限プロファイルを挿入、更新、および削除することができる。ブロック３２０では、システム管理者は、各ユーザ（またはユーザ・グループ）に関連づけられた権限プロファイルを変更することができる。その後、方法はブロック３１０に復帰して、新しいコマンドを待機する。
【００４０】
ブロック３２５（編集機能）を参照すると、方法はここで、現ユーザに関連づけられた権限プロファイルを検査する。ユーザが（開発コンピュータ上で）ウェブ開発者としてセクションを開始した場合、方法はブロック３３０に進む。ユーザはこのブロックで、新しい構造モデルを挿入し、または古い構造モデルを削除することができる。さらに、ユーザは、例えば、レイアウトまたは内容（イメージおよび文字列）を変更するなど、既存の構造モデルを更新することができる。各構造モデルに対して、次にユーザは、ブロック３３５で（文字列の言語を定義して）ＬＡＮＧフィールドを更新することができ、ブロック３３６で（文字の字体を定義して）ＦＯＮＴフィールドを更新することができる。ユーザがグラフィック・デザイナとしてセクションを開始した場合（ブロック３２５）、方法はブロック３３８に進み、この場合、ユーザは構造モデルが使用する各イメージを更新できる。ユーザが翻訳者としてセクションを開始した場合（ブロック３２５）、方法はブロック３４０に進み、ユーザはテキスト・データベースの文字列を異なる言語に変えることができる。いずれの場合も、次に方法はブロック３１０に復帰して、新しいコマンドを待機する。
【００４１】
次にブロック３４５（発行機能）を参照すると、ウェブ管理者はここで、配備する構造モデルを選択する。方法はブロック３５０で、第１の構造モデルの文字列用に選択された言語を（ＬＡＮＧフィールドに基づいて）識別する。方法は同様に、第１の構造モデルの文字用に選択された字体を（ＦＯＮＴフィールドに基づいて）識別する。方法はブロック３６０に進み、構造モデル中で定義されたイメージと、対応するパラメータに関連づけられた（選択された言語の）文字列を、それぞれのデータベースから取得する。次にブロック３６５で、イメージ識別情報を対応するイメージに置き換え、パラメータを対応する文字列に（選択された字体で）置き換えることによって、ウェブ・ページをオフラインで生成する。ブロック３７０で、結果として得られたウェブ・ページを、発行し作成に用いるために（in order to be published and put into production）、サーバ・コンピュータに送信する。方法はブロック３７２で、最後の構造モデルが処理されたかどうかチェックする。処理されていない場合、方法はブロック３５０に復帰して、次の構造モデルについて上記の動作を繰り返す。処理された場合、方法はブロック３１０に復帰して、新しいコマンドを待機する。
【００４２】
図４に移ると、クライアント・コンピュータのユーザが、（データベース・クエリを実行した結果のレポートなど）サーバ・コンピュータから動的情報の受信を望むときには、方法４００を構成する非順次処理が、クライアント・コンピュータおよびサーバ・コンピュータ上で実行される。ブロック４０５で、ブラウザが実行を開始し、次にブロック４０７で、ユーザ・アクションを待機するアイドル・ループに入る。ユーザがコマンドを入力した場合、ブロック４１０、４１５、４６５が実行される。逆に、ユーザがブラウザを閉じることを選択した場合、ブラウザの実行は最終ブロック４７０で終了する。
【００４３】
ブロック４１０を具体的に考察すると、ユーザは、動的情報を選別するためのフィルタを入力し、クライアント・コンピュータに現在表示されているウェブ・ページのホット・スポットを選択して対応するリクエストをサーバ・コンピュータに発行する。ウェブ・サーバ・モジュールが関連するコマンドを受信すると、（コマンド中で関連アクションとして示された）ＣＧＩプログラムが実行を開始する。次にブラウザはブロック４１５でアイドル・ループに入り、リクエストしたウェブ・ページがサーバ・コンピュータから届くまで待機する。
【００４４】
それと同時に、ＣＧＩプログラムがブロック４２０から開始する。方法はブロック４２５に進み、ＣＧＩプログラムは、関連するビュー・テンプレートを取得する。次に方法はブロック４３０に進み、ＣＧＩプログラムは、ユーザが提供し、パラメータとしてＣＧＩプログラムに渡されたフィルタに基づいて、データベース上で第１のクエリを実行する。ブロック４３５で、データベースから取り出した第１のレコードを、ＣＧＩプログラムのバッファ変数に割り当てる。方法はブロック４４０に進み、ＣＧＩプログラムのバッファ変数の内容を第１のスクリプト変数に割り当てるステートメントが、ビュー・テンプレートのヘッダに挿入される。ブロック４４５で、ＣＧＩプログラムは、クエリの最後のレコードがデータベースから取り出されたかどうかチェックする。取り出されていなければ、方法はブロック４３５に復帰して、（クエリの次のレコードを同じバッファ変数に割り当て）別のステートメントをビュー・テンプレートに挿入する。取り出されていれば、方法はブロック４５０で、最後のクエリが実行されたかどうかチェックする。実行されていなければ、方法はブロック４３０に復帰して、次のクエリをデータベース上で実行する。実行されていれば、ブロック４５５で、結果のウェブ・ページが出力バッファに挿入され、次にＣＧＩプログラムは、このウェブ・ページをクライアント・コンピュータに送信させるために、ブロック４６０で実行を終了する。
【００４５】
ブラウザは、ウェブ・ページのサーバ・コンピュータからの受信に応答して、ブロック４６５で動作を再開する。ブラウザは、受信した文書中に含まれるＨＴＭＬタグを解釈する。その結果、ウェブ・ページが、ビュー・セクションに格納された命令に基づき、またデータ・セクションのスクリプト変数に格納された動的情報を用いて、クライアント・コンピュータのモニタに表示される。次に方法はブロック４０７に復帰して、新しいコマンドを待機する。
【００４６】
プログラムが、例えば、エラー・ルーチンやエスケープ機能をもつ同等の方法を実行する場合、（例えば、天気予報など）様々な情報が、クライアント・コンピュータからサーバ・コンピュータに動的にリクエストされる場合、動的情報およびビュー・テンプレートが異なる方式で取得される場合などにも同様の議論があてはまる。
【００４７】
より一般に、本発明は、ネットワーク内で動的情報を送り届ける方法を提供する。この方法は、クライアント・コンピュータがネットワークのサーバ・コンピュータに動的情報をリクエストするステップから開始する。動的情報および動的情報用のビュー・テンプレートを、サーバ・コンピュータの制御下で取得する。次に、動的情報およびビュー・テンプレートを、サーバ・コンピュータからクライアント・コンピュータに送信する。動的情報をクライアント・コンピュータの制御下でビュー・テンプレートに組み込んで、クライアント・コンピュータにビュー・テンプレートに基づいて動的情報を表示する。
【００４８】
本発明のソリューションでは、ウェブ・ページ内での情報分配は後でクライアント・コンピュータが実施するので、動的情報全部をサーバ・コンピュータ上で利用可能な状態にしておく必要がない。したがって、データベース上で実行したクエリの結果である各レコードを、直ちに取り出し、送信することができる。こうすることで、サーバ・コンピュータ上に割り当て、管理するメモリ量を減少させることができ、動的メモリ割当てプロセスを回避できる。その結果、サーバ・コンピュータの信頼性が大きく向上する。
【００４９】
考案されたソリューションは、クライアント・コンピュータが発行した各リクエストに応答してサーバ・コンピュータ上で実行するプロセスを簡略化する。実際、サーバ・コンピュータ上で実行するＣＧＩプログラムは、データベースからレコードを取得し、（どのような操作も実行せずに）そのレコードを対応するスクリプト変数に割り当てるステートメントをビュー・テンプレートに挿入するだけである。さらに、個々のウェブ・ページ内でのレコードの表示順序にかかわりなく、レコードをデータベースから順次取り出すことができる。このことによって、サーバ・コンピュータの応答時間が短縮される。動的情報を実際に表示するのに必要とされる動作の大部分は、多数のクライアント・コンピュータ間で分散され、それらのクライアント・コンピュータは通常、利用されていない多くのリソースをもつ。その結果、ネットワークのパフォーマンスが全体として大きく向上する。このソリューションは、様々な用途が企図されてはいるが、高可用性のサーバ・コンピュータで特に有利である。
【００５０】
上記の本発明の好ましい実施形態は、さらなる利点を提供する。例えば、レコードは順次取り出され、現レコードを対応する変数に割り当てる対応するステートメントは、ビュー・テンプレートの第１のセクションに挿入される。ビュー・テンプレートの第２のセクションは、その変数を表示するための、クライアント・コンピュータ上で実行される命令を含む。
【００５１】
この構造は、非常に多くの目的に利用できる。さらに、動的情報を対応するビュー・テンプレートに組み込むには、クエリの実行結果であるレコードを割り当てた変数を表示するための命令を実行する必要があるだけである。
【００５２】
好ましくは、挿入されたステートメントをもつビュー・テンプレートが、ウェブ・ページを定義する。マークアップ・タグが命令であり、スクリプト・コードがステートメントである。
【００５３】
このようにして、ビュー・テンプレートの異なるセクションが（動的情報と対応する命令を提供して）、それらの間で直接に相互作用する。さらに、標準的なブラウザは一般に、スクリプトを記述するのに使用する言語をサポートするので、提案されたソリューションを実施するのに、クライアント・コンピュータ側を変更する必要は全くない。
【００５４】
あるいは、ビュー・テンプレートおよび結果のウェブ・ページは、（例えば、動的情報を別ファイルに格納するなど）異なる構造をもち、方法はクライアント・コンピュータに表示される異なる構造を利用するネットワーク内で実施され、動的情報および対応する命令はクライアント・コンピュータに別々に送信され、動的情報とビュー・テンプレートはクライアント・コンピュータ上で異なる方式で組み合わされなどする。
【００５５】
本発明の有利な実施形態では、（静的ウェブ・ページやビュー・テンプレートなど）クライアント・コンピュータに表示される各構造は、静的パラメータを含む対応する構造モデルからオフラインで生成される。
【００５６】
この特徴により、新しいウェブ・ページを作成するプロセスが非常に効率的なものになる。具体的には、イメージや文字列などウェブ・ページの異なるコンポーネントを、独立に分類し、モデル化することができる。さらに、考案された特徴は、ウェブ・ページの膨大な数の組において、自動的な変更を速やかに実施するための方法を提供する。このプロセスは（サーバ・コンピュータ上ではどのような操作も行わず）オフラインで実施されるので、ネットワークのパフォーマンスが損なわれない。
【００５７】
好ましくは、各構造モデルは、（例えば、文字列の言語など）静的パラメータに割り当てる現行の１組の値を定めるバージョン識別情報を含む。こうすることにより、バージョンのどのような変更も、非常に簡単かつ素早い方式で、多数のウェブ・ページに同時に反映させることができる。
【００５８】
さらに、構造モデルはさらに、（例えば、文字の字体など）ウェブ・ページの体裁を定義するスタイル識別情報を含む。この場合でも、ウェブ・ページのスタイルのどのような変更も、非常に簡単かつ素早く行われる。
【００５９】
有利には、上記の要素へのアクセスは、異なる権限プロファイルに基づいて制御される。
【００６０】
提案された特徴により、ウェブ・ページの役割による管理の実施が可能になる。例えば、グラフィック・デザイナはイメージを生成するが、外国語について知る必要はない。イメージ上部に置かれる文字列の変更は、翻訳者が独立に行う。
【００６１】
あるいは、開発コンピュータにアクセスするための異なる特権は提供されず、字体識別情報もバージョン識別情報も構造モデルには含まれず、またはウェブ・ページは標準的な方式で生成される。反対に、これらの追加の特徴は、上で説明した動的情報を送り届ける方法を用いなくても、クライアント・コンピュータに表示するあらゆる種類の構造を生成するために（単独でまたは互いに組み合わせて）使用するのに適している。
【００６２】
有利には、本発明によるソリューションは、ＣＤ−ＲＯＭで提供できるコンピュータ・プログラム・アプリケーションで実施される。
【００６３】
あるいは、プログラムを、フロッピ・ディスクで配布、ハードディスクにプレロード、またはその他のコンピュータ可読媒体に格納することができ、インターネットを介してコンピュータに送信することができ、放送することができ、またはより一般にコンピュータの作業メモリにロード可能なその他の形式で提供される。しかし、本発明による方法は、例えば、半導体材料のチップに統合されたハードウェア構造によって実施することも可能である。
【００６４】
さらに、サーバ・コンピュータ上のプログラムは、既存ブラウザと共に使用するために、（他のプログラムとは独立に）スタンドアロン製品として実施され、販売されるのに適していることに留意されたい。
【００６５】
もちろん、当業者であれば、本発明について教示された後、局所的かつ特殊な要件を満足するために、上で説明したソリューションに様々な修正および変更を施すことができるが、それらのすべては、添付の特許請求の範囲によって規定される本発明の保護の範囲内に含まれる。
【図面の簡単な説明】
【００６６】
【図１】本発明の方法を利用することができるデータ処理システムの概略図である。
【図２】システムのクライアント・コンピュータ、サーバ・コンピュータ、および開発コンピュータの作業メモリの部分的内容を示す図である。
【図３】静的ウェブ・ページおよびビュー・テンプレートをオフラインで生成するのに使用する方法のロジックを説明するフローチャートである。
【図４】動的情報を送り届けるのに使用する方法のロジックを説明するフローチャートである。
【図１】
2005502967.tif 000004
【図２】
2005502967.tif 000005
【図３】
2005502967.tif 000006
【図４】
2005502967.tif 000007
【国際公開パンフレット】
2005502967.tif 000008
2005502967.tif 000009
2005502967.tif 000010
2005502967.tif 000011
2005502967.tif 000012
2005502967.tif 000013
2005502967.tif 000014
2005502967.tif 000015
2005502967.tif 000016
2005502967.tif 000017
2005502967.tif 000018
2005502967.tif 000019
2005502967.tif 000020
2005502967.tif 000021
2005502967.tif 000022
2005502967.tif 000023
2005502967.tif 000024
2005502967.tif 000025
2005502967.tif 000026
2005502967.tif 000027
2005502967.tif 000028
2005502967.tif 000029
2005502967.tif 000030
2005502967.tif 000031
2005502967.tif 000032
2005502967.tif 000033
2005502967.tif 000034
2005502967.tif 000035
2005502967.tif 000036
2005502967.tif 000037
2005502967.tif 000038
2005502967.tif 000039
【国際公開パンフレット（コレクトバージョン）】
2005502967.tif 000040
2005502967.tif 000041
【国際調査報告】
2005502967.tif 000042
2005502967.tif 000043
2005502967.tif 000044