(57)【要約】【課題】データを検索する複数の第１のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する。【解決手段】本方法は、ワークフロー文書の選択されたタスクを、その選択されたタスクの第１のタイプの命令を使用して処理すること、その選択されたタスクの第２のタイプの命令を使用して、処理するステップの結果をマークアップ言語フラグメントに変換することと、マークアップ言語フラグメントを応答文書に記憶すること、処理するステップ、変換するステップ、および記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、処理するステップ、変換するステップ、および記憶するステップを繰り返すこととを含む。【選択図】図４
2005507523.tif 000002
【特許請求の範囲】
【請求項１】
データを検索する複数の第１のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、該選択されたタスクの前記第１のタイプの命令を使用して処理することと、
前記選択されたタスクの前記第２のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことであって、それによって複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すこと
とを含むワークフロー文書から応答文書を動的に生成する方法。
【請求項２】
前記ワークフロー文書の選択されたタスクを処理する前記ステップは、
前記ワークフロー文書を構文解析することと、
前記第１のタイプのワークフロー命令および前記第２のタイプのワークフロー命令を前記選択されたタスクから抽出することと、
前記第１のタイプのワークフロー命令を実行することであって、それによってデータを検索する、前記第１のタイプのワークフロー命令を実行することと
を含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項３】
前記処理するステップは、あらかじめ定められた一連のタスクに対して実行される
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項４】
前記繰り返すステップは、
現在のタスクの処理を完了する前に、次のタスクを処理すること
を含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項５】
前記選択されたタスクの前記第１のタイプのワークフロー命令を処理する前記ステップは、
データベース呼び出しを行うことによって、データベースからデータを検索すること
を含む
請求項２に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項６】
前記選択されたタスクの前記第１のタイプのワークフロー命令を処理する前記ステップは、
前記ワークフロー文書に組み込まれる別のワークフロー文書を呼び出すことと、
前記別のワークフロー文書を処理することと
を含む
請求項２に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項７】
前記処理するステップは、
データを検索すること
を含み、
前記変換するステップは、
前記検索したデータをマークアップ言語コードのような中間コードに組み込むこと
をさらに含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項８】
前記変換するステップは、
前記処理するステップの結果のサブセットを変換すること
を含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項９】
前記変換するステップは、
前記処理するステップの結果の正当性を確認すること
をさらに含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１０】
前記処理するステップは、
クライアントサーバ環境のクライアントから応答文書の要求を受信すること、前記ワークフロー文書を検索することと、
前記ワークフロー文書をワークフロープロセッサに送信することと
をさらに含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１１】
前記処理するステップの結果にハイパーリンクを挿入すること
をさらに含む請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１２】
前記処理するステップの結果にデジタル署名を挿入すること
をさらに含む請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１３】
前記処理するステップおよび前記変換するステップは、クライアントサーバ環境のサーバ側で実行される
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１４】
前記処理するステップおよび前記変換するステップは、クライアントサーバ環境のクライアント側で実行される
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１５】
前記変換するステップは、
一時的なコードの形で結果を生成することと、
続いて、該一時的なコードをマークアップ言語フラグメントに変換することと
を含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１６】
前記変換するステップは、
前記第１のタイプのワークフロー命令を実行することにより検索されたデータを受信することと、
前記第２のタイプのワークフロー命令を実行することと
を含み、
該実行するステップは、
前記受信したデータに変換を適用すること
を含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１７】
前記第２のタイプのワークフロー命令を実行する前記ステップは、
前記変換を含むＸＳＬ文書を検索すること
をさらに含む
請求項１６に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１８】
ウェブブラウザに表示するために、前記応答文書をクライアントサーバ環境のクライアントに伝送すること
をさらに含む請求項１６に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項１９】
前記ワークフロー文書のエラーをチェックすること、
エラーが発生すると、該エラーが発生した該ワークフロー文書の箇所および／または該エラーのタイプを特定するエラーコードを前記応答文書に挿入することと
をさらに含む請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項２０】
対応する第１のタイプのワークフロー命令に関連付けられた、前記第２のタイプのワークフロー命令の少なくとも１つは、
第１の連続したワークフロー命令および第２の連続したワークフロー命令
を含み、
前記変換するステップは、
前記第１のタイプのワークフロー命令の結果に対して前記第１の連続したワークフロー命令を実施することと、その後に、
前記第１の連続したワークフロー命令の結果に対して前記第２の連続したワークフロー命令を実施することと
を含む
請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項２１】
前記第１のタイプのワークフロー命令および前記第２のタイプのワークフロー命令を含むあらかじめ定められたワークフロー文書を使用することであって、それによって前記応答文書を動的に生成するための前記ワークフロー文書を生成する、あらかじめ定められたワークフロー文書を使用すること
をさらに含む請求項１に記載のワークフロー文書から応答文書を動的に生成する方法。
【請求項２２】
データを検索する複数の第１のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、
前記第１のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成する処理手段と、
前記対応する第２のタイプのワークフロー命令のそれぞれを実行して、前記処理手段の前記出力のそれぞれを前記複数のマークアップ言語フラグメントの１つに変換する変換手段と、
前記変換手段によって生成された前記複数のマークアップ言語フラグメントのそれぞれを前記応答文書に記憶するデータ記憶装置と
を備えるワークフロー文書から応答文書を動的に生成するシステム。
【請求項２３】
前記処理手段は、
前記ワークフロー文書を構文解析して、前記複数の第１のタイプの命令および前記対応する複数の第２のタイプの命令を実行するために抽出するパーサ
を備える
請求項２２に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項２４】
前記複数の第１のタイプの命令は、
少なくとも１つのＸＭＬ命令
を含み、
前記複数の第２のタイプの命令は、
少なくとも１つのＸＳＬフォーマット命令またはＣＳＳフォーマット命令
を含む
請求項２２に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項２５】
前記複数の第１のタイプの命令は、
少なくとも１つのＸＭＬ命令
を含み、
前記複数の第２のタイプの命令は、
少なくともＸＱｕｅｒｙ動作
を含む
請求項２２に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項２６】
前記処理手段および前記変換手段は、
ワークフロープロセッサ
を備え、
該システムは、
前記ワークフロープロセッサにアクセスするサーブレット
をさらに備える請求項２２に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項２７】
前記ワークフロープロセッサおよび前記サーブレットは、メッセージキューを介して通信するように配置される
請求項２６に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項２８】
前記サーブレットは、前記応答文書の前記マークアップ言語フラグメントをクライアントサーバ環境のクライアントに伝送するように配置される
請求項２６に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項２９】
クライアントサーバ環境のクライアントから応答文書の要求を受信する通信サーバと、
前記ワークフロー文書を検索して該ワークフロー文書を前記ワークフロープロセッサに渡す手段と
をさらに備える請求項２２に記載のワークフロー文書から応答文書を動的に生成するシステム。
【請求項３０】
請求項１に記載の方法を実施するコンピュータを構成するように配置されたコンピュータプログラムを含む
データキャリア。
【請求項３１】
請求項１に記載の方法に使用するワークフロー文書であって、
データを検索する第１のタイプのワークフロー命令と、
前記検索したデータをマークアップ言語フラグメントに変換する、対応する第２のタイプのワークフロー命令とをそれぞれが含む複数のワークフロータスクと
を含むワークフロー文書。
【請求項３２】
前記第１のタイプのワークフロー命令および前記第２のタイプのワークフロー命令は、
マークアップ言語で記述されたコード
を含む
請求項３１に記載のワークフロー文書。
【請求項３３】
前記マークアップ言語は、
ＸＭＬ
を含む
請求項３２に記載のワークフロー文書。
【請求項３４】
前記第１のタイプのワークフロー命令は、検索される前記データのタイプおよび場所を指定する
請求項３１に記載のワークフロー文書。
【請求項３５】
前記ワークフロータスクは、該タスクが非同期に実行できるかどうかを指定する
請求項３１に記載のワークフロー文書。
【請求項３６】
前記第２のタイプのワークフロー命令は、前記検索されたデータを変換するための変換を含む文書の位置を指定する
請求項３１に記載のワークフロー文書。
【請求項３７】
前記第２のタイプのワークフロー命令は、
ＸＳＬ命令またはＣＳＳ命令
を含む
請求項３６に記載のワークフロー文書。
【請求項３８】
前記第２のタイプのワークフロー命令は、
ＸＱｕｅｒｙ命令
を含む
請求項３６に記載のワークフロー文書。
【請求項３９】
どのタスクを実行するかを決定するための条件論理文
をさらに含む請求項３１に記載のワークフロー文書。
【請求項４０】
ウェブページといった動的応答文書を設計する方法であって、
複数のワークフロータスクを含むワークフロー文書を作成すること
を含み、
該作成するステップは、
データを検索する複数の第１のタイプのワークフロー命令と、
前記検索したデータを、対応する複数の一般に理解されるフォーマット言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令と
を指定すること
を含む
ウェブページといった動的応答文書を設計する方法。
【請求項４１】
前記指定するステップは、
第１のタイプのワークフロー命令または第２のタイプのワークフロー命令を、あらかじめ定められたこのような命令のライブラリから選択すること
を含む
請求項４０に記載のウェブページといった動的応答文書を設計する方法。
【請求項４２】
請求項２２に記載のシステムを構成するように配置されたコンピュータプログラム
を含むデータキャリア。
【請求項４３】
データを検索する複数の第１のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、該選択されたタスクの前記第１のタイプの命令を使用して処理することと、
前記選択されたタスクの前記第２のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことであって、それによって複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことと
を含み、
対応する第１のタイプのワークフロー命令に関連付けられた、前記第２のタイプのワークフロー命令の少なくとも１つは、
第１の連続したワークフロー命令および第２の連続したワークフロー命令
を含み、
前記変換するステップは、
前記第１のタイプのワークフロー命令の結果に対して前記第１の連続したワークフロー命令を実施することと、
その後に、前記第１の連続したワークフロー命令の結果に対して前記第２の連続したワークフロー命令を実施することと
を含む
ワークフロー文書から応答文書を動的に生成する方法。
【請求項４４】
データを検索する複数の第１のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、その選択されたタスクの前記第１のタイプの命令を使用して処理することと、
その選択されたタスクの前記第２のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および、前記記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成し、該繰り返すステップは、現在のタスクの処理の完成前に次のタスクの処理をすることをさらに含む繰り返すことと
を含むワークフロー文書から応答文書を動的に生成する方法。
【請求項４５】
データを検索する複数の第１のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、
ワークフロー文書の選択されたタスクを、その選択されたタスクの前記第１のタイプの命令を使用して処理することと、
その選択されたタスクの前記第２のタイプの命令を使用して、前記処理するステップの結果をマークアップ言語フラグメントに変換することと、
前記マークアップ言語フラグメントを応答文書に記憶することと、
前記処理するステップ、前記変換するステップ、および前記記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成し、該繰り返すステップは、前記ワークフロー文書に組み込まれる別のワークフロー文書を呼び出すこと、該別のワークフロー文書を処理することとをさらに含む繰り返すことと
を含むワークフロー文書から応答文書を動的に生成する方法。
【請求項４６】
データを検索する複数のＸＭＬコードフラグメントと、前記検索したデータをフォーマットする複数のＸＳＬ変換とを含むワークフロー文書からＸＭＬ文書を動的に生成する方法であって、
前記ワークフロー文書の選択されたタスクを、該選択されたタスクの前記ＸＭＬコードフラグメントを使用して処理することであって、それによってデータを検索する、前記ワークフロー文書の選択されたタスクを処理すること、および、前記検索したデータを別のＸＭＬコードフラグメントに組み込むことと、
前記選択されたタスクの前記ＸＳＬ変換を使用して、前記別のＸＭＬコードフラグメントをフォーマットすることと、
前記フォーマットしたＸＭＬコードフラグメントを応答文書に記憶することと、
前記処理するステップ、前記フォーマットするステップ、および前記記憶するステップを繰り返すことであって、それによって、複数のフォーマットしたＸＭＬコードフラグメントを含む完成したＸＭＬ文書を作成する、前記処理するステップ、前記フォーマットするステップ、および前記記憶するステップを繰り返すことと
を含む方法。
【請求項４７】
データを検索する複数の第１のタイプのワークフロー命令と、前記検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、
前記第１のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成するワークフロープロセッサと、
前記対応する第２のタイプのワークフロー命令のそれぞれを実行して、前記ワークフロープロセッサの前記出力のそれぞれを前記複数のマークアップ言語フラグメントの１つに変換するワークフロー変換器と、
前記ワークフロー変換器によって生成された前記複数のマークアップ言語フラグメントのそれぞれを前記応答文書に記憶するデータ記憶装置と
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の技術分野］
本発明は、文書生成に関する改良に関する。
特に、本発明は、応答文書、例えばウェブページの動的な作成に関するが、これに限られるものではない。
本発明は、多くの応用分野を有し、この応用分野には、電子商取引ウェブサイト、ウェブページ制作、およびＸＭＬ文書生成が含まれるが、これらに限定されるものではない。
【背景技術】
【０００２】
［発明の背景］
インターネットは、ＴＣＰ／ＩＰプロトコルスイートを使用して、通信リンクを介して互いに通信するコンピュータおよびコンピュータネットワークの集まりである。
インターネットは、さまざまな異なるサービスをユーザに提供する。
このさまざまな異なるサービスは、例えば、電子メール、ＦＴＰ、ゴーファー（Gopher）、テルネット（Telnet）、およびワールドワイドウェブといったサービスである。
ワールドワイドウェブ（以下では「ウェブ」と呼ぶ）は、世界中に配置されたＨＴＴＰ（ハイパーテキスト転送プロトコル（Hypertext Transfer Protocol））サーバコンピュータに存在する相互リンクされた文書の集合である。
これらの相互リンクされた文書は、「ウェブページ」として知られており、通常、ハイパーテキストマークアップ言語（Hypertext Markup Language（ＨＴＭＬ））で記述される。
ウェブページは、ユニフォームリソースロケータ（ＵＲＬ）によって特定される。
ユニフォームリソースロケータは、特定のコンピュータおよびパス名を指定するものであり、このコンピュータおよびパス名によって、ウェブページにアクセスすることができる。
【０００３】
関係するウェブページ、ならびに、ファイル、スクリプト、データベース、および画像といった他の構成要素の群は、結合されて、ウェブサイトを形成する。
ウェブサイトを閲覧するために、ウェブページが、ＨＴＴＰを使用してサーバコンピュータからユーザコンピュータ（「クライアントコンピュータ」として知られている）に伝送され、ウェブブラウザに表示される。
ウェブブラウザは、ユーザがＨＴＭＬ文書を捜しだして閲覧するソフトウェアアプリケーションである。
ユーザは、ウェブページにアクセスするために、ウェブページのＵＲＬをウェブブラウザに入力し、ウェブブラウザは、要求されたウェブページを捜しだして表示する。
【０００４】
ＨＴＭＬは、標準汎用マークアップ言語（ＳＧＭＬ（Standard Markup Generalized Language））のサブセットである。
標準汎用マークアップ言語は、フォーマット、インデックス、およびリンクされた情報を含むプラットフォームおよびアプリケーションから独立した文書を提供する手段である。
ＳＧＭＬは、文法と同様の構造を提供し、この構造によって、ユーザは、自身の文書の構造と、この構造を表すのに使用されるタグとを定義することができる。
タグは、文書に挿入されるコマンドであり、その文書または文書の一部がどのようにフォーマットされるべきかを指定するコマンドである。
【０００５】
ＨＴＭＬウェブページは、テキストエディタを使用して作成することもできるし、あるいは、ＤｒｅａｍＷｅａｖｅｒ（商標）またはＦｒｏｎｔＰａｇｅ（商標）といったソフトウェアパッケージを使用して作成することもできる。
これらのソフトウェアパッケージにより、設計者は、おそらく少量のＨＴＭＬを除き、基礎となるプログラムコードについて何も知る必要なく、機能的で魅力的なウェブサイトを作成することが可能となる。
このようにして作成されたページは、「静的ウェブページ」として知られている。
これらの静的ウェブページは、通例、ＩＳＰ（インターネットサービスプロバイダ）によって設けられるサーバに存在し、それによって、そのウェブページがユーザ自身のサーバまたは企業自身のサーバに存在する場合よりも高速で信頼性のあるサービスが提供される。
しかしながら、これらのウェブページのコンテンツを変更する場合、実際のＨＴＭＬテキストを編集しなければならなくなる。
これを行うには、ユーザが、自身でＨＴＭＬウェブページを編集して、それらのＨＴＭＬウェブページをＩＳＰに返信する必要がある。
これの不利な点は、ＩＳＰの中には、１年あたりのウェブサイトへの自由な訂正をある一定の回数しか許可していないものがあるということである。
ユーザが、これよりも多くの訂正を行いたい場合、追加手数料を支払うことなる可能性がある。
【０００６】
この不利な点は、動的コンテンツの表示能力を有するウェブページを使用することにより克服することができる。
この動的コンテンツは、例えば、現在の金利、天気情報、旅行情報などであってもよい。
この情報は、データベースに保持される可能性があり、ウェブ設計者は、この情報をウェブページに挿入するために、データベースを呼び出さなければならい。
これを行うには、ある一定量のプログラミングの知識が必要となる。
確かに、ウェブページの直接的な設計とは異なるものに、プログラムロジックのある知識が必要とされる可能性があり、ほとんどのウェブ設計者は、この知識を利用することができない。
これは、ウェブサイトの機能が、例えばＪａｖａ（登録商標）といったプログラム言語の使用または共通ゲートウェイインターフェース（ＣＧＩ）スクリプトの使用によって提供される可能性があることによるものである。
【０００７】
ＣＧＩは、ウェブサーバとＣＧＩプログラムとの間で情報を転送するための仕様である。
ＣＧＩプログラムは、ＣＧＩ仕様と適合するデータを受け取って、ＣＧＩ仕様と適合するデータを返すように設計された任意のプログラムである。
このプログラムは、どのプログラム言語でも記述することができ、このプログラム言語には、Ｃ、Ｐｅｒｌ、Ｊａｖａ、またはＶｉｓｕａｌ  Ｂａｓｉｃが含まれる。
ＣＧＩプログラムは、ウェブサーバがユーザと動的に対話するための最も一般的な方法である。
書式を含む多くのＨＴＭＬウェブページは、例えば、その書式のデータがウェブサーバに送信されるとすぐに、ＣＧＩプログラムを使用して、そのデータを処理する。
ＣＧＩを使用することによる１つの不利な点は、ＣＧＩスクリプトが実行されるたびに、新しいプロセスがサーバで起動されることである。
これは、サーバの速度をかなり遅くすることがある。
【０００８】
動的な情報をウェブユーザに提供する、まずます一般的となってきた別の方法は、ウェブサーバではなくクライアントのマシンで実行されるスクリプトまたはプログラムを含めることである。
これらのプログラムは、Ｊａｖａスクリプト、Ｊａｖａアプレット、またはＡｃｔｉｖｅＸコントロールとすることができる。
しかしながら、この場合も、これらのツールには、ある一定量のプログラムロジックが必要であり、ウェブ設計者は、その知識を深く有するとは考えられない。
【０００９】
動的なウェブページを作成するさらに別の方法は、例えばサーブレット（すなわち小さなＪａｖａプログラム）といったプログラムを使用するものである。
このプログラムは、サーバに設けられ、サーバで実行される。
サーブレットの機能は、以下に説明するＪａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ（商標）（以下、ＪＳＰと呼ぶ）を使用することによって拡張されている。
【００１０】
Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅは、標準的なＨＴＭＬページと非常によく似ているが、静的ＨＴＭＬと共に、「スクリプトレット」として知られている小さなスクリプトからなる。
スクリプトレットは、Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅが要求された時に実行される少量のコードであり、したがって、スクリプトレットは、ページの動的コンテンツを生成するのに使用することができる。
スクリプトレットは、次の書式：<％  Ｊａｖａコード  ％>を有する。
これらのマーカ内にある任意のコードが、サーバで処理される。
ＪＳＰエンジン（例えばサーブレット）は、サーバに設けられ、サーバは、ＪＳＰスクリプトレットを解釈して、例えば、ファイルを含めるか、または、データベースにアクセスすることによって、ウェブページの動的コンテンツを生成する。
この動的コンテンツは、その後、静的ＨＴＭＬと結合され、ユーザのウェブブラウザに返信されるＨＴＭＬページが作成される。
【００１１】
しかしながら、ＪＳＰは、静的ＨＴＭＬおよび動的な構成要素を混合したものであるので、真に動的なウェブページを作成することは非常に難しい。
さらに、ＪＳＰは、ウェブ設計者の問題の原因となるＪａｖａコードをＨＴＭＬウェブページに組み込む。
この問題を克服しようとして、ＪＰＳカスタムタグが開発されている。
これらのタグにより、ウェブ開発者は、理論的には、すべてのＪａｖａコードを取り除くことができるが、これは、タグを最初に作成することの難しさ、あるいは、設計者の要求を満たす既存のタグライブラリを見つけることの難しさを伴わないわけではない。
カスタムタグによっても、純粋なＪＳＰページのすべてのＪａｖａコードを取り除くことは、事実上不可能である。
具体的には、複雑なＨＴＭＬ書式がサーバに送信されて、ＪＳＰがその書式データの妥当性の確認を行わなければならない場合、純粋なＪＳＰ手法は、より扱いにくくなる。
【００１２】
SunのＪＳＰに類似する技術が、MicrosoftのＡｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅ（ＡＳＰ）である。
ＡＳＰは、例えば電子商取引で使用される対話型ウェブページを作成して、ウェブアプリケーションを構築するのに使用できるサーバ側のスクリプト作成環境である。
より具体的には、ＡＳＰは、テキストおよびＨＴＭＬタグ（標準的なウェブページと同様）だけでなく、例えばＶＢＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔといったスクリプト言語（すなわち、特別なタスクまたは限定的なタスクを実行するように設計された簡単なプログラム言語）で記述されたコマンドをも含むテキストファイルである。
サーバは、ＡＳＰファイルの要求を受信すると、これらのスクリプトコマンドをサーバにおいて処理し、ウェブページを構築する。
このウェブページは、次に、その後の表示のために、ウェブブラウザに送信される。
ＡＳＰを使用して動的なウェブページを作成することの不利な点は、ＶＢＳｃｉｐｔが使用されると、このスクリプトコードが、Ｖｉｓｕａｌ  Ｂａｓｉｃで記述され、あらゆるサーバで実行できるとは限らないということである。
これに加えて、プログラムロジックが、ウェブページのコンテンツのフォーマットから完全に分離されていないことが挙げられる。
【００１３】
スクリプト言語ＸＳＰ（ＸＭＬサーバページ言語）で記述されたスクリプトを使用して、ＸＭＬ文書の様式およびコンテンツを生成する方法は、特許文献１（英国公開特許ＧＢ  ２  ３５９  ６４５Ａ（Dell Products L.P.））に記載されている。
このスクリプト言語は、ＸＭＬ文書に含まれるコンテンツを指定する第１の文書を生成するための制御文、および、ＸＭＬ文書のコンテンツの様式を指定する第２の文書を生成するための制御文を含む。
この方法は、単一コンテンツの文書および単一様式の文書のみを作成するので、そのコンテンツをどのような様式にするかを制御するために、スクリプトには制御ロジックが含まれなければならない。
これに加えて、ＸＭＬの命令およびＸＳＬの命令が、ＸＳＰスクリプトに組み込まれる。
したがって、十分に様式化されたＸＭＬ文書を作成するには、依然として、ある一定量のプログラミングの知識が、この方法を使用するウェブ設計者に必要となる。
【００１４】
このデータ、プレゼンテーション、およびプログラムロジックの分離の問題は、ウェブ開発者に常に課題となってきたが、上述した解決への試みには、すべて難しい点が存在する。
【特許文献１】
英国公開特許ＧＢ  ２  ３５９  ６４５Ａ
【発明の開示】
【発明が解決しようとする課題】
【００１５】
したがって、例えばウェブページであって、そのページのレイアウトの設計が、そのページの基礎を成すプログラムロジックから完全に独立したウェブページ、といった文書を動的に生成する方法に対する要求が存在する。
【課題を解決するための手段】
【００１６】
［発明の概要］
本発明の第１の態様によれば、データを検索する複数の第１のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成する方法であって、ワークフロー文書の選択されたタスクを、その選択されたタスクの第１のタイプの命令を使用して処理すること、その選択されたタスクの第２のタイプの命令を使用して、処理するステップの結果をマークアップ言語フラグメントに変換すること、マークアップ言語フラグメントを応答文書に記憶すること、処理するステップ、変換するステップ、および記憶するステップを繰り返すことであって、それによって、複数のマークアップ言語フラグメントを含む完成した応答文書を作成する、処理するステップ、変換するステップ、および記憶するステップを繰り返すこと、とを含む方法が提供される。
【００１７】
本発明の第２の態様によれば、データを検索する複数の第１のタイプのワークフロー命令と、検索したデータを複数のマークアップ言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを含むワークフロー文書から応答文書を動的に生成するシステムであって、第１のタイプのワークフロー命令のそれぞれを処理して、対応する出力を生成する処理手段と、対応する第２のタイプのワークフロー命令のそれぞれを実行して、処理手段の出力のそれぞれを複数のマークアップ言語フラグメントの１つに変換する変換手段と、変換手段によって生成された複数のマークアップ言語フラグメントのそれぞれを応答文書に記憶するデータ記憶装置と、を備えるシステムが提供される。
【００１８】
本発明の第３の態様によれば、上記方法および／またはシステムに使用するワークフロー文書であって、複数のワークフロータスクであって、各タスクが、データを検索する第１のタイプのワークフロー命令と、検索したデータをマークアップ言語フラグメントに変換する、対応する第２のタイプのワークフロー命令とを含む、複数のワークフロータスクを含むワークフロー文書が提供される。
【００１９】
したがって、マークアップ言語で記述される文書（例えばウェブページ）の構築を、複数のワークフロータスクの組み立て、実行、そして変換描写に削減することができる。
さらに、プログラミング要素（動的コンテンツ）を、設計要素（ウェブページの動的コンテンツのフォーマット）から完全に分離することができる。
これにより、ウェブ設計者は、第２のタイプの命令を単に変更することにより、ウェブページ生成命令の動的なプログラミング部分の必ずしもすべてを変更する必要なく、ウェブページ（またはマークアップ言語で記述された他の文書）の動的コンテンツの外観を変更することができる。
【００２０】
また、このように動的ウェブコンテンツ生成命令を分離することにより、ウェブ設計者は、ウェブプログラマから完全に独立して作業することができ、それによって、ウェブサイト開発全体の時間を短縮することができる。
さらに、第２のタイプの命令のライブラリが作成されている場合、ウェブ設計者は、関連付けられた第１のタイプのコマンドによって取得された、動的ウェブコンテンツに適用される必要な動的スタイルを簡単に選択することができる。
【００２１】
ワークフロー文書は、ワークフロープロセッサによって処理されることが好ましく、サーバに存在するサーブレットを通じてアクセスされることが最も好ましい。
ワークフロープロセッサは、サーバに位置する小さなプログラムであり、好ましくはメッセージキューを介してサーブレットと対話する。
ワークフロー文書の処理は、ワークフロー文書を構文解析すること、第１のタイプのワークフロー命令および第２のタイプのワークフロー命令を抽出すること、その後に第１のタイプのワークフロー命令を実行してデータを検索することとを含むことが好ましい。
このデータは、ウェブページコンテンツを含んでもよい。
構文解析は、例えばＸｅｒｃｅｓまたはＣｒｉｍｓｏｎといったＸＭＬパーサを使用して行うことができる。
これらのＸＭＬパーサは、Ａｐａｃｈｅ機関から入手することができる。
検索されたデータは、中間コードに組み込まれることが好ましい。
この中間コードは、例えばＸＭＬといったマークアップコードであってもよい。
次に、中間コードは、第２のタイプのワークフロー命令を実行することにより、マークアップ言語フラグメントに変換される（このマークアップ言語は、ウェブブラウザによって理解されることが好ましい）。
次に、応答文書は、クライアントサーバ環境のクライアントマシンで表示（または別の処理）を行うためにクライアントに返されることが好ましい。
この応答文書は、例えばＨＴＭＬといった、ウェブブラウザによって理解される言語で記述されることが好ましい。
しかしながら、本方法を必ずしもクライアントサーバ環境で実行する必要はなく、ネットワークの一部でないパーソナルコンピュータで実行することもできるし、他の任意の適切なコンピューティング環境で実行することもできる。
【００２２】
ワークフロー文書に含まれるワークフロータスクは、ワークフロー文書に現れる順番で実行することが好ましい。
しかしながら、それらのタスクは、異なる順序で実行することもできる。
【００２３】
第１のワークフロー命令および第２のワークフロー命令は、マークアップ言語で記述されることが好ましい。
ワークフロー命令（およびワークフロー文書全体）は、拡張可能マークアップ言語（ＸＭＬ（eXtensible Markup Language））で記述されることが最も好ましい。
第１のタイプのワークフロー命令を、以下では、ＸＭＬ命令と呼ぶこととする。
ただし、この命令は、別のワークフロー言語を使用して定義することもできる。
【００２４】
中間コードとＸＭＬ命令の実行により検索されたデータとを組み合わせたものを、以下では、ＸＭＬフラグメントと呼ぶこととする。
【００２５】
ＸＭＬは、情報を「自己記述型」にするように設計されているＳＧＭＬに基づいた比較的新しいマークアップ言語である。
ＸＭＬは、ユーザ定義のマークアップ言語を作成するのに使用できるルールからなる。
あるＸＭＬのルールは、タグが、常に２つ一組として使用されなければならず、そのタグが参照するデータを取り囲まなければならないというものである。
別のルールは、ツリーを形成するようにタグを互いの中にネストできるというものである。
このように、ＸＭＬは、コンピュータプログラムが処理し、理解することができるだけでなく、普通のテキストで記述されるので、ユーザも理解することができる。
ＸＭＬにより、設計者は、自身のカスタム化されたタグを作成して、自身のアプリケーション特有の文書タイプを作成することが可能になる。
さらに、ＨＴＭＬのリンクが、他の１つの文書だけを参照できるのと異なり、ＸＭＬは、例えば、複数の文書を指し示すリンクをサポートすることにより、ＨＴＭＬよりも高機能をサポートする。
【００２６】
ＸＭＬ文書は、ノードからなるツリーとして構造化される。
各ノードは、他のノードを包含することができる。
これらの「包含された」ノードのそれぞれは、子ノードと定義される。
これらの包含されたノードのそれぞれも、同様にして、子ノードを持つことがあり、それ以降の子ノードについても同様である。
例えば、次のようになる。
【００２７】
2005507523.tif 000003
【００２８】
この例では、Ａは、ルールノードであり、Ｂは、Ａの子ノードであり、Ｃは、Ｂの子ノードであり、Ｄは、Ｃの子ノードである。
【００２９】
上述したように、ウェブページは、大部分、ＨＴＭＬで記述される。
ＨＴＭＬは、ウェブページの情報をフォーマットするために、例えば<ｐ>（パラグラフの開始を示す）および<ｂ>（ボールド体のテキストを示す）といったあらかじめ定義されたタグを使用する。
これらのタグの意味は、ウェブブラウザによってよく理解される。
ＸＭＬによると、とにかくあらゆるタグを使用することができる。
しかしながら、これらのタグの意味は、ウェブブラウザによって自動的には理解されない。
例えば、<ｔａｂｌｅ>は、ＨＴＭＬテーブルを意味することがあるが、ＸＭＬで記述された文書で使用された場合、１つの家具を意味することがある。
【００３０】
ＸＭＬのタグは、ユーザが定義するので、ＸＭＬ文書を表示する標準的な方法は存在しない。
したがって、その文書をどのように表示すべきかを記述する方法が必要とされる。
ＸＭＬ文書をどのように表示すべきかを指示する１つの方法は、例えばカスケーディングスタイルシート（ＣＳＳ（Cascading Style Sheet））および拡張可能スタイルシート言語（ＸＳＬ（eXtensible Style sheet Language））といった「スタイルシート」の使用を通じて指示するものである。
ＸＳＬファイルは、それ自体、ＸＭＬを使用して記述される。
【００３１】
ＸＳＬは、ＸＭＬ文書を変換する方法と、ＸＭＬ文書をフォーマットする方法との２つの部分からなる。
すなわち、ウェブブラウザが、ＸＳＬを表示することができるように、ＸＳＬは、ＸＭＬをＨＴＭＬまたはＸＨＴＭＬ（ＸＨＴＭＬは、ＳＧＭＬの代わりにＸＭＬの応用として、ＨＴＭＬ４．０の再定式化である）に変換することができる。
また、ＸＳＬは、ＸＭＬ文書のデータの値に基づいて、そのデータをフォーマットすることができる。
ＸＭＬ文書を、従来技術で知られている別のフォーマットの出力文書に変換するのに必要なステップを示した概略ブロック図を図１ａに示す。
【００３２】
各ＸＭＬのフラグメントは、第２のタイプの命令によってマークアップ言語（このマークアップ言語は、ウェブブラウザによって理解されるものが好ましい）のフラグメントに変換される。
この変換は、ＸＭＬのフラグメントに適用する変換を指定することにより行われることが好ましい。
この第２の命令は、どの変換がＸＭＬのフラグメントに適用されるかを指定する。
この変換は、ＸＳＬ−Ｔとして知られているＸＳＬ変換であることが好ましい。
ＸＳＬ−Ｔは、ＸＳＬ−Ｔ文書またはスタイルシート内で定義されることが最も好ましい。
しかしながら、ＸＳＬ変換だけでなく代わりとなる変換タイプを指定することが望ましい場合もある。
例えば、第２のタイプの命令は、オペレーションを指定することができる。
このオペレーションは、ＸＱｕｅｒｙ命令によって指定することができ、ＸＱｕｅｒｙ命令によって、ＸＭＬ文書に問い合わせを行い、その出力としてＸＭＬ文書を作成することが可能となる。
以下の例では、２つのワークフロータスクを示す。
第１のタスクは、ＸＭＬデータを検索する第１の命令と、ＸＱｕｅｒｙ命令を指定する第２の命令とを含む。
【００３３】
2005507523.tif 000004
【００３４】
第１のワークフロータスクの第２の命令は、名前ｔｍｐ１．ｘｍｌの下に記憶される文書を作成するｂｏｏｋｓ．ｘｍｌ文書に問い合わせを行う。
次に、この文書は、第２のワークフロータスクによって指定されるＸＳＬ−Ｔ文書を使用してＨＴＭＬ文書に変換され、その結果が表示される。
文書ｂｏｏｋｓ．ｘｍｌを以下に示す。
【００３５】
2005507523.tif 000005
2005507523.tif 000006
【００３６】
問い合わせの一例を、「１９９１年以降にAddison-Wesleyによって出版された本を、それらの出版年および題名を含めて一覧表示せよ」によって与えることができる。
これは、以下によって与えられる。
【００３７】
2005507523.tif 000007
【００３８】
上記問い合わせにより、以下の結果が得られる。
【００３９】
2005507523.tif 000008
【００４０】
第２のタイプのワークフロー命令は、例えば妥当性確認（ウェブ設計者は、例えば、文書が正しく記入されていること、または、文書がある指定されたシンタックスに適合していることをチェックしたい場合がある）、および、検索されたデータにデジタル署名を挿入するといった他のタイプのオペレーションを指定することができる。
【００４１】
ＸＭＬ命令は、検索されるデータ、および、そのデータがどのようにアクセスされるか、または、どのように生成されるかを指定する。
したがって、ＸＭＬ命令は、「リソースタイプ（resource type）」指定子と、そのリソースが記憶されている場所を指し示す「ロケーション（location）」とからなることが好ましい（リソースは、ＸＭＬフラグメントを返すことができる任意のソフトウェアコンポーネントである）。
例えば、リソースタイプは、ファイルであってもよく、この場合、そのロケーションは、例えばＵＲＬによって指定されるこのファイルのロケーションとなる。
【００４２】
ファイルの呼び出しに加えて、ＸＭＬ命令は、例えば、データベースを呼び出してデータを検索することができ、静的テキストまたは提携コンテンツ（syndicated content）（すなわち、例えば画像データベースプロバイダといったサードパーティから取得されるコンテンツ）を要求することができる。
また、ＸＭＬ命令は、ウェブサイトまたはページとのユーザの対話についての状態情報を取得するために使用することもできる。
例えば、ＸＭＬ命令は、ユーザが記入したＨＴＭＬ書式を処理する必要があることを指定する命令であってもよい。
データベースの呼び出しを例に取ると、ＸＭＬ命令は、データベースを呼び出してＸＭＬ中間コードを取得する機能を呼び出し、データベースから返される、ＸＭＬフラグメントを与える情報を「ラップ（wrap round）」する。
【００４３】
データベースの呼び出しは、直接実行することもできるし、例えばＥｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎ（ＥＪＢ）といったコンポーネントを介して実行することもできる。
ＥＪＢは、標準化されたインターフェースを有するソフトウェアコンポーネントである。
ＥＪＢを使用する利点は、「ハウスキーピング（house-keeping）」コードの多くが、ＥＪＢコンテナによって処理され、このＥＪＢコンテナが、ウェブ開発者の生産性を向上させることである。
【００４４】
ＸＭＬ命令は、さらに「名前（name）」を指定することができる。
このようなワークフロー命令について、ワークフロー文書に組み込まれたものを以下に示す。
【００４５】
2005507523.tif 000009
【００４６】
名前が指定された場合には、新しい子要素が、その指定された名前を有する応答文書のルートノードに追加され、ＸＳＬ変換の出力は、その新しい子ノードに挿入される。
これは、次のように示される。
【００４７】
2005507523.tif 000010
【００４８】
名前が指定されない場合には、ＸＳＬ変換の出力は、次のように、応答文書のルールノードの子として直接追加される。
【００４９】
2005507523.tif 000011
【００５０】
また、ＸＭＬ命令を使用して、別のワークフロー文書を呼び出すこともできる。
本発明の特定の特徴は、あるワークフロー文書（すなわち「子」のワークフロー文書）を別のワークフロー文書（「親」のワークフロー文書）内から参照できることである。
これにより、ワークフロー文書を、モジュール的な階層的形式で再利用することが可能になり、ウェブページを動的に作成する際の時間および費用を節減することが可能になる。
ユーザが特定のどのワークフロー文書を実行することができるかを指定するための備えも本発明には存在することが好ましい。
また、ワークフロー文書は、必要に応じて、例えばｉｆ…ｅｌｓｅ文といった条件文をサポートすることもできる。
【００５１】
クライアントサーバ環境では、そのクライアントサーバ環境のサーバ側でＸＭＬ命令を実行することが最も好ましい。
しかしながら、クライアント側でＸＭＬ命令を実行してもよい。
クライアントサーバ環境のクライアント側でＸＭＬ命令を実行する理由は、ＸＳＬ−Ｔ変換の計算コストが、場合によっては大きくなる可能性があり、これにより、サーバの負荷が重くなった場合に、応答文書（例えばウェブページ）の要求に対する応答時間が悪化する可能性があるからである。
負荷を再分散するために、ワークフロー文書を専用のクライアントで実行することができる。
このワークフローの実行は、２つの相違点を除いて、前述したものと非常に類似している。
第１に、クライアントは、サーバから各ＸＭＬフラグメントを要求する必要がある。
第２に、クライアントは、サーバからＸＳＬ−Ｔスタイルシートも要求する必要がある。
このすべてのＸＳＬ−ＴスタイルシートおよびＸＭＬフラグメントの要求は、簡単なプロトコルを使用して実施することができる。
クライアントは、ＸＭＬフラグメントの変換および応答文書の構築を担当することになる。
【００５２】
ワークフロータスクは、タスクを実行する順序を指定することができる。
また、ワークフロータスクは、以下に示すように、タスクを非同期に実行できるかどうかを指定することもできる。
【００５３】
2005507523.tif 000012
【００５４】
リモート文書を転送するには、比較的長い時間を要することがある。
したがって、上記２つのワークフロータスクを非同期（すなわち、asynch="true"）とすることにより、それらの命令をほぼ並列に実行することが可能になる。
リモート文書が返されるとすぐに、そのリモート文書は、対応するタスクの第２の命令で指定された変換を使用して処理される。
この手法は、順に返信されるリモート文書のそれぞれを待つよりもずっと高速である。
【００５５】
ＸＳＬ−Ｔフラグメントの再利用をサポートするために、ＸＭＬフラグメントは、デバイスに依存しない標準的な言語に適合することが好ましい。
これは、ＸＳＬ−Ｔが、ＸＭＬ文書の構造の変化に敏感であるので、ＸＳＬ−Ｔを処理するように記述するためである。
すなわち、ＸＭＬ文書の構造が変化すると、ＸＳＬ−Ｔも、所望のスタイルおよびフォーマットの効果を生み出すように変化させることが必要な場合がある。
ＸＳＬ−Ｔコードを頻繁に編集すると、多大な時間を要し、コストがかさむことになる。
したがって、ＸＭＬフラグメント用のマークアップ言語を指定することが有利である。
このマークアップ言語が取る正確な書式は、サーバを配備した組織のハウスルールによって決定することができる。
このような言語の一例を以下に示す。
【００５６】
この例では、次の４つのＸＭＬ要素タイプ、すなわち「グループ要素」、「コンテナ要素」、「複雑型要素」、および「リーフ要素」が定義される。
ここで、グループ要素は、ルートノードであり、コンテナ要素は、グループ要素の子ノードであり、複雑型要素は、コンテナ要素の子ノードであり、リーフ要素は、複雑型要素の子ノードである。
したがって、例えば、ＸＭＬのグループ要素は、複数のテーブル行（コンテナ要素）から形成されるＨＴＭＬテーブルであってもよい。
各テーブル行は、多数のテーブルセル（複雑型要素）から構成することができ、各テーブルセルは、テキストの項目（リーフ要素）を含むことができる。
以下のテーブルは、ＸＳＬ−Ｔ変換または他の適切な変換を使用してＸＭＬ要素を変換することにより形成することができるＨＴＭＬ要素の例を与える。
【００５７】
【表１】
2005507523.tif 000013
【００５８】
上記で定義したマークアップ言語は、どの特定のレイアウト情報もスタイル情報も規定しないので、単にＸＳＬ−Ｔコードを変更することにより、リストとしてＸＭＬ要素を描写することもできる。
したがって、ワークフロープロセッサによって作成された応答（ＨＴＭＬ）文書の外見および雰囲気は、ＸＳＬ−Ｔ変換によって決定される。
このことの利点は、ＸＳＬ−Ｔスタイルシート（したがって変換）が変更されると、ＸＭＬフラグメント構造も変更することなく、これらのＸＭＬフラグメントを生成するために使用されるＸＭＬ命令も変更することなく、ＨＴＭＬ出力の外観を変更することができることである。
例えば、上記ＸＭＬ要素を移動通信用の無線マークアップ言語に変換するための変換を提供することができる。
【００５９】
ウェブページを生成するＸＳＬ−Ｔ手法は、従来の手法を上回る明らかな利点を有する。
このＸＳＬ−Ｔ手法は、その構成部分が明確に分離されるという異なった利点を有する。
すなわち、スタイルが、プログラムロジックおよびコンテンツから分離される。
プロジェクト管理の観点から、これにより、ウェブ設計者が、自身のタスクを開始または完了する前に、より複雑なコードが作成されるのを待ち続けている間、ウェブプログラマを過負荷にするのではなく、すべてのプロジェクトのメンバは、並行して作業することが可能になる。
これにより、時間および費用の双方が節減される。
本発明の別の利点は、ＸＳＬ−Ｔコードを再利用できるということである。
これは、企業内で内部的に行うこともできるし、より広いウェブコミュニティの努力の一環として行うこともできる。
ＸＭＬ／ＸＳＬ−Ｔフラグメントを使用することの別の利点は、デバイスに依存しないウェブページの制作をより簡単にサポートできることである。
【００６０】
ＸＳＬ−Ｔ手法の主な利点は、実行時の性能である。
ほとんどのアプリケーションにとって、実行時の性能は、十分高速であるが、性能が十分でない場合、より有利な手法は、ＸＳＬ−Ｔスタイルシートをメモリ内で一度構文解析して、その後、繰り返し使用するために、スタイルシートをメモリに保持することである。
これは、本明細書で説明するワークフロープロセッサの実施の形態で取られる手法である。
【００６１】
ワークフロー文書は、設計者が作成するのが好都合である。
応答文書が、ウェブページとして使用される場合、設計者は、ウェブ設計者とすることができる。
この設計者は、ＸＭＬフラグメントおよびＸＭＬ命令定義のリポジトリと、ＸＳＬ−Ｔ変換のリポジトリとにアクセスし、ＸＭＬフラグメントをフォーマットして、あるスタイルにすることができる。
その後、設計者が、ＸＭＬ命令およびそのそれぞれのＸＳＬ−Ｔ変換を含む少なくとも１つのワークフロータスクを指定することにより、ワークフロー文書を作成することができる。
また、設計者は、これらのＸＳＬ−Ｔ変換を開発することもできる。
ウェブプログラマ／ソフトウェア開発者は、ＸＭＬ命令からＸＭＬフラグメントを作成するコードを記述することを担当することが好ましい。
これらのＸＭＬフラグメントの構造は、設計者によって承諾されることが好ましく、プログラマ／開発者は、前述したようなデバイスに依存しないマークアップを使用することが好ましい。
【００６２】
ＸＳＬ−Ｔ変換は、静的ＸＭＬファイルを使用することにより、どのサーブレットまたはデータベースコードからも完全に独立に開発することができる。
しかしながら、ＸＳＬ−Ｔコードフラグメントは、あらゆるＸＭＬコードフラグメントを変換する必要があるとは限らない。
これは、ウェブブラウザまたは他の適切なアプリケーションによって理解可能な書式にすでに描写されているＸＭＬコードフラグメントの組み込みをサポートする。
【００６３】
ワークフロー文書を使用する利点は、プログラムロジックがワークフロー文書に含まれないことである。
プログラムロジックは、小さな文書から大きな文書へ拡大することが容易ではなく（このロジックは、大きな文書用に書き直さなければならないことがある）、また、保守も難しい。
【００６４】
ワークフロータスクは、第１のＸＭＬ命令および複数のＸＳＬ命令を含むことができる。
例えば、ワークフロータスクが２つのＸＳＬ命令を含む場合、ワークフロープロセッサは、次のようにしてこのワークフロータスクを解釈する。
ＸＭＬ命令が実行され、第１のＸＭＬフラグメントＦ１が検索される。
次に、フラグメントＦ１は、第１のＸＳＬ命令を使用して変換される。
この変換の出力が、別のＸＭＬフラグメントＦ２である。
次に、Ｆ２は、第２のＸＳＬ命令によって変換されて、第３のＸＭＬフラグメントＦ３が作成される。
この第３のＸＭＬフラグメントＦ３は、応答文書に挿入される。
例えば、このワークフロータスクは、次のように指定することができる。
【００６５】
2005507523.tif 000014
【００６６】
変換ｔｒａｎｓｆｏｒｍ１．ｘｓｌは、（リモートウェブサイトｓｏｍｅＷｅｂＳｉｔｅで利用可能な）ｓｏｕｒｃｅ．ｘｍｌに適用され、その出力は、ｔｒａｎｓｆｏｒｍ２．ｘｓｌによって操作される。
それ以降も同様に処理される。
これを行う理由は、最初に、外部のＸＭＬ文書を社内のフォーマットに変換し、次に、社内のフォーマットを例えばＨＴＭＬのテーブルに変換するためである。
この利点は、第２の変換が、その後、何度も再利用可能であることである。
すなわち、新しいデータ源が、外部のサイトから提供されるごとに、新しいｔｒａｎｓｆｏｒｍｌ．ｘｓｌを記述して、社内のフォーマットに変換することができる。
【００６７】
ワークフロー文書は、それ自体がＸＭＬ文書であってもよいので、本発明の方法は、第１の事前に記述されたワークフロー文書から第２のワークフロー文書を動的に生成するために有利に使用することができる。
次に、第２のワークフロー文書は、例えばＨＴＭＬページを生成するために、ワークフロープロセッサによって処理することができる。
例えば、ウェブブラウザの異なる型および異なる版は、異なる方法でデータを表示する。
ウェブ設計者およびウェブプログラマは、おそらく、ユーザが使用している特定のウェブブラウザを前もって知っていることはないであろう。
事前に記述されたワークフロー文書は、新しいワークフロー文書を動的に生成するＸＭＬ命令を呼び出す。
この新しいワークフロー文書が、ユーザの特定のブラウザ用のＸＳＬフォーマット命令を含む。
この新しいワークフロー文書が、次に、実行されて、ＨＴＭＬウェブページを作成する。
ワークフロー文書を実行のためワークフロープロセッサに渡す前に、ワークフロー文書を個人専用にすることもできる。
【００６８】
本発明の方法は、完全なウェブサイトを生成するために使用することができる。
このウェブサイトの各ウェブページは、単一のワークフロー文書を実行することによって作成されることが好ましい。
同じウェブサイトに属するさまざまなワークフロー文書への呼び出しを区別するために、ウェブブラウザによってサーバに送信されるＨＴＴＰ要求のヘッダは、ワークフロー文書識別子を含むことが好都合である。
例えば、http://localhost:8080/servlet/servletName?WfID=NといったＵＲＬを、対象となるワークフロー文書を識別するのに使用することができる。
ここで、Ｎは、一意の識別子である。
次に、サーブレットは、ＨＴＴＰ要求からこの一意の識別子を抽出する役割を果たす。
また、サーブレットは、ワークフロー識別子を、そのワークフロー文書が記憶されている場所にマッピングするテーブルを含むこともできる。
ワークフロー文書は、サーブレットと同じサーバに記憶されてもよい。
あるいは、ワークフロー文書は、リモートサーバまたはデータベースに記憶されてもよい。
複数のサーブレットの要求が、並列に処理されてもよい。
【００６９】
ウェブサイトは、ウェブページのハイパーリンクを介して接続されたワークフロー文書の論理的集合と考えることができる。
時に、ウェブページの異なるハイパーリンクを介して同じコンテンツまたはデータにリンクすることが望ましい場合がある。
ワークフロー文書から生成されるウェブページのハイパーリンクは、ＸＳＬ−Ｔ変換プロセスが行われる前に、ＸＭＬフラグメントに挿入されることが好ましい。
これを図１ｂに示す。
これらのハイパーリンクは、内部ワークフローリンク（すなわち、そのワークフロー文書と同じウェブサイトの一部である他のワークフロー文書へのリンク）、外部ワークフローリンク（すなわち、異なるウェブサイトに属するワークフロー文書へのリンク）、および外部リンク（すなわち、ワークフローでない文書へのリンク）であってもよい。
ウェブサイトのコンテンツからハイパーリンクをこのように分離することにより、本発明のさらに別の利点が提供される。
すなわち、異なるリンクがその内部に組み込まれた２つの別々のコンテンツファイルを作成する必要はなく、異なるハイパーリンクを利用することによって、単一のコンテンツファイルを異なる状況で使用することができる。
ハイパーリンクがコンテンツから分離されている場合、ウェブサイトのハイパーリンクの管理も、より簡単になる。
【００７０】
このハイパーリンク情報は、ワークフロー文書として検索される分離した環境設定ファイルに記憶されることが好都合であり、このワークフロー文書は、ワークフロープロセッサによって処理されることになる。
この環境設定ファイルは、サーバに記憶されることが好ましい。
【００７１】
本発明の方法は、ワークフロー文書の処理中、エラー処理も行うことができる。
このエラー処理は、例えば、本方法によって生成される文書にエラーコードを挿入することにより行われる。
このエラーコードは、エラーが発生したワークフロー文書の箇所および／またはエラーのタイプを示す。
【００７２】
また、本発明は、例えばウェブページといった動的な応答文書を設計する方法にも拡張される。
この方法は、複数のワークフロータスクを含むワークフロー文書を作成することを含み、該作成するステップは、データを検索する複数の第１のタイプのワークフロー命令と、上記検索したデータを、対応する複数の一般に理解されるフォーマット言語フラグメントに変換する複数の第２のタイプの対応するワークフロー命令とを指定することを含む。
上記指定するステップは、第１のタイプのワークフロー命令または第２のタイプのワークフロー命令を、あらかじめ定められたこのような命令のライブラリから選択することを含むことが好ましい。
【００７３】
また、本発明は、上述したような本発明の方法および／またはシステムを実施するコンピュータを構成するように配置されたコンピュータプログラムを含むデータキャリアをカバーするものとみなすこともできる。
【００７４】
次に、添付図面を参照して、本発明の現時点の好ましい実施の形態を説明するが、これは、単なる例にすぎない。
【発明を実施するための最良の形態】
【００７５】
［好ましい実施の形態の詳細な説明］
図２を参照して、本発明の実施に適した、従来技術で既知のクライアントサーバシステム８を示す。
このクライアントサーバシステム８は、クライアントコンピュータ１０を備える。
このクライアントコンピュータ１０は、インターネット１４を介してサーバコンピュータ１２に接続される。
サーバ１２は、オプションとして、別の接続１８によりデータベース１６に接続される。
図２の矢印は、クライアントコンピュータ１０とサーバ１２との間、および、サーバ１２とデータベース１６との間で、データを双方向に交換できることを示している。
ユーザ２０がインターネットを通じてさまざまなサーバおよびウェブサイトに自在に移動できるようにするために、クライアントコンピュータ１０には、インターネットブラウザまたはウェブブラウザ２２が設けられる。
システム８のサーバ側には、ワークフロープロセッサ２５と共に、ウェブサーバ１２上で実行されるサーブレット２４が設けられる。
【００７６】
図面の図３を参照して、「ワークフロー文書」として知られている文書２６の概略図を示す。
ワークフロー文書の概略構造のみを示している。
ワークフロー文書は、図２に示すように、クライアントサーバシステム８のサーバ側に配置される。
この文書２６は、複数のワークフロータスク２７を含む。
各ワークフロータスク２７は、各ＸＳＬ−Ｔフォーマット／変換命令３０と共にＸＭＬフラグメントを検索するためのＸＭＬ命令２８を含む。
図３の略図は、第１のワークフロータスク２７ａおよび第２のワークフロータスク２７ｂを明示的に示している。
第１のワークフロータスク２７ａおよび第２のワークフロータスク２７ｂは、それらのそれぞれの第１のＸＭＬ命令２８ａおよび第２のＸＭＬ命令２８ｂ、ならびに対応する第１のＸＳＬ−Ｔフォーマット命令３０ａおよび第２のＸＳＬ−Ｔフォーマット命令３０ｂを有する。
しかしながら、このワークフロー文書は、任意の個数のワークフロータスク２７を含むことができる。
ＸＳＬ−Ｔフォーマット命令３０ａ、３０ｂも、ＸＭＬで記述されるので、ワークフロー文書２６は、それ自体、ＸＭＬ文書である。
このワークフロー文書を使用して、ウェブページ３２が、サーバ１２で動的に作成される。
これを行う方法を次に説明する。
【００７７】
図面の図４を参照して、本発明の好ましい実施の形態による方法の概要を示す。
この方法１００は、ステップ１０２で、ユーザ２０がサーバ１２からのウェブページ３２を要求することから開始する。
この要求は、ウェブページ（図示せず）のＵＲＬをウェブブラウザ２２に入力することにより行われる。
ウェブブラウザ２２は、要求されたウェブページを取得するために、ＧＥＴ要求をインターネット１４を介してサーバ１２に送信する。
次に、ステップ１０３で、サーバ１２に設けられているサーブレット２４が、このＧＥＴ要求を処理し、ステップ１０４で、記憶されたワークフロー文書２６を検索する。
このワークフロー文書２６は、サーバ１２に接続されたデータベース１６に存在するものとして示されている。
しかしながら、ワークフロー文書２６は、サーバ１２に存在してもよいし、リモートサーバ（図示せず）に存在してもよい。
【００７８】
次に、ステップ１０８でＨＴＭＬファイル４２を生成するために、ステップ１０６で、ワークフロー文書２６がワークフロープロセッサ２５によって処理される。
次に、ステップ１１０で、このＨＴＭＬファイル４２は、クライアントマシン１０に送信される。
ＨＴＭＬファイル４２は、送信されるとすぐに、ステップ１１２で、ユーザのウェブブラウザ２２によりウェブページ３２として表示される。
次に、図５を参照して、方法１００のステップ１０３からステップ１１０をさらに詳細に説明する。
【００７９】
まず、ステップ２０２で、サーブレット２４が、ウェブブラウザ２２からのＨＴＴＰ要求を受信する。
ＨＴＴＰ要求は、ワークフロー文書番号１２３を呼び出す"localhost:8080/servlet/WorkflowServ?workflow="123"に送信される。
サーブレットは、ステップ２０４で、この要求を処理し、ステップ２０５で、ワークフロー文書番号１２３を検索する。
ユーザ２０が、ＨＴＭＬウェブページではなくワークフロー文書２６を要求していることに気付かないように、ワークフロー文書の検索に使用されるＨＴＴＰ要求は、エイリアスであってもよい。
次に、ステップ２０６で、このワークフロー文書２６が、メッセージの内部にカプセル化され、このメッセージは、その後、ステップ２０８でワークフローインバウンドメッセージキューに置かれる。
【００８０】
サーブレットのオペレーションと並行して、ワークフロープロセッサ２５は、ステップ２１０で、ワークフローインバウンドメッセージキューに置かれるメッセージを繰り返しリスンする。
メッセージがキューに存在すると、ワークフロープロセッサ２５は、ステップ２１４で、その内部キューの最初のメッセージ２０読み出し、ステップ２１４で、ワークフロー文書番号１２３をメッセージから抽出する。
一方で、これらの読み出しステップおよび抽出ステップに先立って、ワークフロープロセッサは初期化される。
その初期化中に、ワークフロープロセッサ２５は、ステップ２１６で、環境設定ファイルを読み出す。
この環境設定ファイルは、ワークフロープロセッサ２５の情報を含む。
この情報としては、例えば、ホスト名、サーバポート番号、文書源の場所、および他のサイトマップなどといったものがある。
この情報は、ワークフロープロセッサ２５が、他のワークフロー文書およびサイトへのＵＲＬリンクを生成することを可能とするために必要とされる。
サイト管理者が、例えば、別のマシンのサーブレットおよびワークフロープロセッサを実行したい場合には、この環境設定ファイルのみを編集する必要がある。
【００８１】
次に、ステップ２１８で、ワークフロープロセッサ２５は、抽出したワークフロー文書を処理する。
この処理には、ワークフロー文書２６を構文解析して、ワークフロー文書２６内のワークフロータスク２７を順に実行することが含まれる。
ワークフロー文書２６の処理に要するステップを図６によって示し、以下に説明する。
【００８２】
図６を参照して、ステップ３０２で、ワークフロープロセッサ２５は、構文解析したワークフロー文書から第１のワークフロータスク２７を得て、第１のＸＭＬ命令２８ａを読み出す。
次に、ステップ３０４で、このＸＭＬ命令は、ワークフロープロセッサ２５により実行される。
ＸＭＬ命令２８を使用して、データベース呼び出しを行うことにより、ウェブページ３２に含めるための動的コンテンツを検索することができる。
この場合、ＸＭＬ命令によって返されるＸＭＬフラグメントは、データベースから取得された、ＸＭＬコードに組み込まれた情報を含む。
ＸＭＬ命令２８を使用して、異なるサーバまたはデータベースに配置された静的ＸＭＬコード３４を検索することもできる。
別の例では、ＸＭＬ命令２８を実行して、ＸＭＬ中間コードにも組み込まれる提携コンテンツ３８を取得することができる。
ＸＭＬ命令２８を使用して、別のワークフロー文書を検索することもできる。
この様子を図７によって示す。
この図では、３つのネストされたワークフロー文書２６ａ、２６ｂ、および２６ｃを示している。
ワークフロー文書２６ａの第１のＸＭＬ命令２８ａが、第２のワークフロー文書２６ｂを呼び出す。
次に、このワークフロー文書の第１のＸＭＬ命令２８ｂは、第３のワークフロー文書２６ｃの呼び出しを行うことができる。
このプロセスは、このステップで終了することもできるし、この第３のワークフロー文書２６ｃのＸＭＬ命令が、さらにワークフロー文書の呼び出しを行い、かつ／または、さらにＸＭＬフラグメントを検索することもできる。
【００８３】
図６に戻って、第１のＸＭＬ命令２８ａを実行し、それによって、ＸＭＬフラグメントを作成した後、ワークフロープロセッサ２５は、ステップ３０６で、各ＸＳＬ−Ｔフォーマット命令を得る。
ステップ３０８で、このＸＳＬ−Ｔコードは使用されて、ＸＭＬ命令２８の実行により作成されたＸＭＬフラグメントがフォーマットされる。
次に、フォーマットされたデータは、ステップ３１０で、ＨＴＭＬファイル４２（図１３参照）に書き込まれる。
次に、ステップ３１２で、サーブレット２４は、すべてのＸＭＬタスク２７が実行されたかどうかをチェックする。
実行するＸＭＬタスクが残っている場合には、それらのタスクのすべてが処理されるまで、ステップ３０２からステップ３１０が繰り返される。
次に、ステップ３１４で、完成したＨＴＭＬファイル４２が、外部メッセージキューに出力される。
【００８４】
次に図５に戻って、動的に生成されたＨＴＭＬファイル４２が、ワークフロープロセッサ２５によって外部メッセージキューに置かれた（ステップ２２０）後、サーブレット２４は、そのキューからメッセージを検索するように通知を受ける。
キューにメッセージが存在する場合、サーブレットは、ステップ２２２で、生成されたＨＴＭＬファイル４２をキューから抽出する。
次に、ステップ２２４で、このＨＴＭＬファイルは、ＨＴＴＰを介してクライアント１０に送信される。
次に、ステップ２２６で、このＨＴＭＬファイルは、クライアントコンピュータのウェブブラウザ２２によって表示され、ユーザは、「通常の」ウェブページ３２としてそのＨＴＭＬファイルを見る。
【００８５】
次に、図８を参照して、本発明の好ましい実施の形態と共に使用するワークフロー文書２６を作成するプロセスを説明する。
ウェブ設計者（６０）は、２つのリポジトリ４４および４６（データベース１６ａおよび１６ｂとして示す）にアクセスすることができる。
第１のリポジトリ４４は、ＸＭＬフラグメントの詳細およびこれらの詳細の取得を可能にするメカニズム２８を含むデータベースまたはファイル記憶装置である。
例えば、前述したように、命令２８は、データベース呼び出し、他のワークフロー文書２６の検索、静的テキストの検索などを行うことができる。
これらの命令２８は、ウェブ技術とインターネットが機能する方法とについて深い知識を有するウェブプログラマまたはウェブ開発者が（ウェブ設計者と相談して）事前に記述する。
【００８６】
第２のリポジトリ４６は、ＸＭＬで事前に記述されるＸＳＬ−Ｔフォーマット命令３０のライブラリを含むデータベースまたはファイル記憶装置である。
これらのＸＳＬ−Ｔ文書は、ウェブ設計者によって記述される可能性が高い。
【００８７】
ウェブブラウザ２２に表示するウェブページ２２を生成するのに適したワークフロー文書２６を作成するために、ウェブ設計者は、新しいワークフロー文書を作成し、文書２５にＸＭＬ命令を挿入し、ＸＭＬ命令の実行により返される各ＸＭＬフラグメントの変換に使用するＸＳＬ−Ｔ文書を指定する。
したがって、例えば、第１のＸＭＬ命令２８が、ウェストエンドショーの予備の劇場券についての詳細を取得するためのデータベースの呼び出しである場合、対応するＸＳＬ−Ｔフォーマット命令は、このデータをウェブページ３２にどのように表示するかを記述することになる。
【００８８】
次に、本発明の好ましい実施の形態の一使用例を説明する。
この例は、データベースの呼び出し、および、ウェブブラウザ２２に表示されるウェブページ３２に書式５４としてその結果データを表示することに関係したものである。
まず、ＪＳＰページ４８の一部のソースコードを解説して、本発明の利点をより良く例示する。
このソースコードを図９に示す。
この図から、ＪＳＰページ４８が、静的ＨＴＭＬコード（通常の字体で示す）、および、Ｊａｖａプログラム言語で記述されたＪＳＰの式５０（ボールド体で示す）を含むことが分かる。
サーバ１２でＪＳＰページ４８を処理することにより、図１０に示すＨＴＭＬウェブページ３２が作成される。
【００８９】
次に、ＪＳＰソースコードを詳細に見ることにする。
コードのライン１は、記入可能であり、かつ、サーバ１２に書き込み（post）可能な書式として、ウェブページ３２が表示されることをウェブブラウザ２２に通知する。
また、ライン１は、ＪＳＰページの名前（「ｅｘａｍｐｌｅ．ｊｓｐ」）も含む。
コードのライン３は、この書式がテーブル５４として表示されることをブラウザ２２に告げる。
ライン４のＨＴＭＬタグ<ｔｒ>およびライン８のＨＴＭＬタグ<／ｔｒ>は、それぞれ、テーブル行の開始および終了を示す。
その間にあるライン５から７は、テーブルの列の見出しを与える。
ここで、テーブルの第１列の見出しは空であり、第２列の見出しは、「Ｓｈｏｗ」（ショー）であり、第３列の見出しは、「Ｓｅａｔｓ  Ｒｅｍａｉｎｉｎｇ」（残っている席）である。
ＪＳＰソースコードのライン１１および１２は、データベースを呼び出して、データベースに入力されている劇場のショーについての詳細を検索する。
このコードは、動的であり、ウェブブラウザによって表示されるテーブルのサイズは、データベースが検索したショーの個数に依存する。
【００９０】
ライン１４から２６のコードは、テーブルの第１列に表示するものをウェブブラウザ２２に告げる。
特定のショーの席が残っている場合には、ラジオボタン５２が表示される。
席が残っていない場合には、テーブルセル５４は、空白のままとなる。
ライン２８から３０は、テーブルの第２列にショーの名前を表示し、ライン３１から３３は、その特定のショーの空席の個数を表示する。
ＪＳＰソースコード４８は、ウェブプログラマの視点からは理解するのが容易であるが、プログラミングの経験のない可能性のあるウェブ設計者には必ずしも見てすぐに分かるとは限らない。
ウェブ設計者は、通例、販売されているＷＹＳＩＷＹＧ（What You See Is What You Get）のウェブ設計パッケージの１つを使用し、これらのパッケージは、下にあるコードを設計者に見せない。
【００９１】
次に、本発明の好ましい実施の形態を使用する同じウェブページ３２を作成するコードを解説する。
図１０に示すウェブページ３２は、以下のワークフロー文書によって生成することができる。
このワークフロー文書は、データベースを呼び出すＸＭＬ命令２８、および、関連したＸＳＬ−Ｔフォーマット命令３０を含む。
【００９２】
2005507523.tif 000015
【００９３】
次に、このワークフロー文書の処理を説明する。
まず、ワークフロー文書は、構文解析されて、ＸＭＬ命令２８が取得される。
次に、このＸＭＬ命令は、ワークフロープロセッサ２５によって実行される。
ＸＭＬ命令２８は、データベース呼び出し（"DB"）として指定される「リソースタイプ（resource type）」を含む。
ＸＭＬ命令２８の属性「ｌｏｃ」は、書式ｃｌａｓｓ：：ｍｅｔｈｏｄで表される。
この例では、ＣｏｎｆＲｅｇ（ｃｏｎｆｅｒｅｎｃｅ  ｒｅｇｉｓｔｒａｔｉｏｎ（会議参加登録）の短縮形）は、クラスの名前であり、ｇｅｔＳｅａｔｓは、起動するクラスメソッド（ｃｌａｓｓ  ｍｅｔｈｏｄ）の名前である。
このクラスは、サーブレットに登録されるので、パス名もファイルロケーションも指定する必要はない。
クラス「ＣｏｎｆＲｅｇ」は、データベースからデータを読み出すコード、および、そのコードを書き込んで、このデータを含むＸＭＬコードフラグメントを作成するコードを含めて、ウェブ開発者またはウェブプログラマによって開発されることになる。
図９に示す（Duane K. FieldsおよびMark A. Kolb, Manning Publications 2000による"Web Development with Java Server pages"からの）Ｊａｖａコードスクリプトの断片である以下のコードの部分は、このクラスメソッドに有効に含まれる。
【００９４】
String sql="SELECT * FROM SHOWS";
ResultSet results=connection.executeQuery(sql);
While(results.next()){
【００９５】
このクラスメソッドの呼び出し「ｇｅｔＳｅａｔｓ」の出力は、サーブレット２４に返される。
この出力は、図１１に示すＸＭＬフラグメント５６となる。
【００９６】
上記ワークフロー文書は、書式５４の設計およびフォーマットが、書式のプログラムロジックおよびコンテンツから完全に分離していることを示す。
本発明の好ましい実施の形態では、プログラムロジックは、クラス「ＣｏｎｆＲｅｇ」およびメソッド「ｇｅｔＳｅａｔｓ」に組み込まれ、スタイルおよびフォーマットは、ＸＳＬファイルに設けられる。
したがって、ウェブ設計者は、クラスを参照して、そのクラスに属する方法を呼び出すことのみ必要となる。
これは、図９に示すＪＳＰページとは大きく異なっている。
図９に示すＪＳＰページでは、Ｊａｖａコードがページに組み込まれる。
【００９７】
図１１に示すＸＭＬフラグメントをフォーマットするために、ＸＳＬ−Ｔファイル「ｒｅｎｄｅｒＦｏｒｍ」が呼び出される。
このファイル内で定義されるＸＳＬ−Ｔスタイルシートを図１２に示す。
ＸＳＬは、テンプレートルールに基づく宣言型言語である。
各テンプレートルールは、パターンおよびアクションからなり、ｘｓｌ：ｔｅｍｐｌａｔｅにより指定される。
ＸＳＬ−Ｔの詳細な解説の情報は、当業者に容易に入手可能であるので、本明細書では、詳細に解説しないこととする。
【００９８】
図１２に示すスタイルシートの例には、４つのテンプレートルール「ＧｒｏｕｐＥｌｅｍｅｎｔ（グループ要素）」、「ＣｏｎｔａｉｎｅｒＥｌｅｍｅｎｔ（コンテナ要素）」、「ＴｅｘｔＥｌｅｍｅｎｔ（テキスト要素）」、および「ＣｏｍｐｌｅｘＥｌｅｍｅｎｔ（複雑型要素）」がある。
これら４つのテンプレートルールのパターンは、ＸＭＬコードフラグメント５６の<ＧｒｏｕｐＥｌｅｍｅｎｔ>タグに一致する「ＧｒｏｕｐＥｌｅｍｅｎｔ」、ＸＭＬコードフラグメントの<ＣｏｎｔａｉｎｅｒＥｌｅｍｅｎｔ>タグに一致する「ＣｏｎｔａｉｎｅｒＥｌｅｍｅｎｔ」などである。
【００９９】
ルールのアクションは、各ルールの本体によって指定される。
例えば、「ＣｏｍｐｌｅｘＥｌｅｍｅｎｔ」のｘｓｌ：ｔｅｍｐｌａｔｅは、ＸＭＬフラグメント５６に適用されると、テーブルセルを定義するＨＴＭＬタグ<ｔｄ>および<／ｔｄ>を作成する一方、「ＴｅｘｔＥｌｅｍｅｎｔ」のｘｓｌ：ｔｅｍｐｌａｔｅは、ＸＭＬ文書のテキスト要素の本体をＨＴＭＬ出力に単に挿入するだけである。
【０１００】
ウェブブラウザ２２に表示されるテーブル５４の追加行が、データベース呼び出しによって返されると、ＸＳＬ−Ｔスタイルシート５８は、ウェブ設計者からの介入なく、それらの行をフォーマットする。
例えば、ある一定のフォントまたは色でテキストを表示するといった異なる属性が必要とされる場合、このコードをＸＳＬ−Ｔファイルまたはカスケーディングスタイルシート（ＣＳＳ）に簡単に追加することができる。
ＸＳＬ−Ｔファイル内にはロジックは適用されず、スタイルおよびマークアップコードのみが指定されることに留意されたい。
この手法により、ウェブ開発者またはウェブプログラマの役割と、ＸＭＬタグを承諾することだけが必要とされるウェブ設計者の役割との分離が簡単になる。
コードおよびロジックは、ウェブページ制作プロセスから分離される。
【０１０１】
ワークフロー文書２６から作成されたＨＴＭＬコードを単純にした版を図１３に与える。
完成したＨＴＭＬファイルが、クライアント１０に送信されると、このＨＴＭＬファイルは、図１０に示すコンテンツと同じコンテンツを有するウェブページ３２として表示される。
図９のＪＳＰコードによって作成されたウェブページと、ワークフロー文書２６から作成されたウェブページとは、可能な限り同一であるが、これは、もちろん、ウェブブラウザの設定ならびにＸＳＬ−Ｔスタイルシートで指定されるフォーマット命令およびスタイル命令に依存する。
【０１０２】
本発明の特定の実施の形態を説明してきたが、当該実施の形態は、模範的なものにすぎず、適切な知識および技術の所持者に思い浮かぶような変形および変更を、添付の特許請求の範囲に宣言するような本発明の精神および範囲から逸脱することなく行い得ることが理解されるべきである。
例えば、本発明は、ウェブブラウザに表示される書式からのデータのプレゼンテーションおよび処理に使用することにも適している。
応答文書は、表示スクリーンに描写するための書式でフォーマットされる必要はないが、実際には、ウェブブラウザとは異なるアプリケーションプログラムを実行するクライアントによって消費されるように記述されたＸＭＬ文書であってもよい。
また、本発明の方法は、クライアントサーバ環境で実行されることに限定されるものでもない。
本発明の方法は、１台のコンピュータ、複数のコンピュータからなるネットワーク、またはコンピュータの他の任意の適切な構成を使用して実行されてもよい。
【図面の簡単な説明】
【０１０３】
【図１ａ】従来技術によるＸＳＬ−Ｔスタイルシートを使用したＸＭＬコードのフォーマットを示す概略ブロック図である。
【図１ｂ】本発明の一実施の形態によって生成される応答文書にリンクを加える方法を示す概略ブロック図である。
【図２】本発明の現時点の好ましい実施の形態を実施するのに適したクライアントサーバシステムを示す概略図である。
【図３】本実施の形態で使用されるワークフロー文書の概略図である。
【図４】本発明の本実施の形態によりウェブページを作成するワークフロー文書を処理する方法を示すハイブリッド流れ図である。
【図５】図４に示す方法のステップ１０３〜ステップ１１０をさらに詳細に示す流れ図である。
【図６】図４に示す方法の処理ステップの流れ図である。
【図７】本実施の形態によって生成できるネストしたワークフロー文書を示す図である。
【図８】本実施の形態によるウェブ設計者によるワークフロー文書の生成を示す概略図である。
【図９】書式を生成する従来技術のＪａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅのソースコードを示す。
【図１０】図９のソースコードにより生成されるウェブページを示す概略図である。
【図１１】本実施の形態によるワークフロー文書により生成されて、図１０に示すウェブページに表示されたテーブルのコンテンツを提供するＸＭＬフラグメントを示す。
【図１２】図１１のＸＭＬフラグメントをフォーマットすることに使用されるＸＳＬ−Ｔコードのセグメントを示す。
【図１３】本実施の形態のワークフロー文書により生成されて、図１０に示すウェブページに表示されたテーブルを作成するＨＴＭＬコードを示す。
【符号の説明】
【０１０４】
１２・・・サーバ、
１４・・・インターネット、
１６・・・データベース、
２０・・・ユーザ、
２２・・・ウェブブラウザ、
３２・・・ウェブページ、
３４・・・静的ＸＭＬコード、
２４・・・サーブレット、
２５・・・ワークフロープロセッサ、
２６・・・ワークフロー文書、
２７・・・第１のワークフロータスク、
２８・・・第１のＸＭＬ命令２８、
３０・・・ＸＳＬ−Ｔフォーマット命令、
３８・・・提携コンテンツ、
４２・・・ＨＴＭＬファイル、
４４，４６・・・リポジトリ、
４８・・・ＪＳＰページ、
５０・・・Ｊａｖａプログラム言語で記述されたＪＳＰの式、
５２・・・ラジオボタン、
５６・・・ＸＭＬフラグメント、
５８・・・ＸＳＬ−Ｔスタイルシート、
【図１ａ】
2005507523.tif 000016
【図１ｂ】
2005507523.tif 000017
【図２】
2005507523.tif 000018
【図３】
2005507523.tif 000019
【図４】
2005507523.tif 000020
【図５】
2005507523.tif 000021
【図６】
2005507523.tif 000022
【図７】
2005507523.tif 000023
【図８】
2005507523.tif 000024
【図９】
2005507523.tif 000025
【図１０】
2005507523.tif 000026
【図１１】
2005507523.tif 000027
【図１２】
2005507523.tif 000028
【図１３】
2005507523.tif 000029
【国際公開パンフレット】
2005507523.tif 000030
2005507523.tif 000031
2005507523.tif 000032
2005507523.tif 000033
2005507523.tif 000034
2005507523.tif 000035
2005507523.tif 000036
2005507523.tif 000037
2005507523.tif 000038
2005507523.tif 000039
2005507523.tif 000040
2005507523.tif 000041
2005507523.tif 000042
2005507523.tif 000043
2005507523.tif 000044
2005507523.tif 000045
2005507523.tif 000046
2005507523.tif 000047
2005507523.tif 000048
2005507523.tif 000049
2005507523.tif 000050
2005507523.tif 000051
2005507523.tif 000052
2005507523.tif 000053
2005507523.tif 000054
2005507523.tif 000055
2005507523.tif 000056
2005507523.tif 000057
2005507523.tif 000058
2005507523.tif 000059
2005507523.tif 000060
2005507523.tif 000061
2005507523.tif 000062
2005507523.tif 000063
2005507523.tif 000064
2005507523.tif 000065
2005507523.tif 000066
2005507523.tif 000067
2005507523.tif 000068
2005507523.tif 000069
2005507523.tif 000070
2005507523.tif 000071
2005507523.tif 000072
2005507523.tif 000073
2005507523.tif 000074
2005507523.tif 000075
2005507523.tif 000076
2005507523.tif 000077
【国際公開パンフレット（コレクトバージョン）】
2005507523.tif 000078
【国際調査報告】
2005507523.tif 000079
2005507523.tif 000080