(57)【特許請求の範囲】
【請求項１】
クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持手段、
作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する構文解析情報作成手段、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
【請求項２】
動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする請求項１記載のフラグメント関連作業支援装置。
【請求項３】
前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする請求項１記載のフラグメント関連作業支援装置。
【請求項４】
前記登録パターン用記述事項には、クライアントからの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び／又はループ処理に係る処理事項が含まれることを特徴とする請求項１記載のフラグメント関連作業支援装置。
【請求項５】
前記場所通知手段は、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知することを特徴とする請求項１記載のフラグメント関連作業支援装置。
【請求項６】
クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する集合算出手段、
集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する判定手段、及び
前記判定手段の判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
【請求項７】
動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする請求項６記載のフラグメント関連作業支援装置。
【請求項８】
前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする請求項６記載のフラグメント関連作業支援装置。
【請求項９】
クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対し、
指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する第１の集合算出手段、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する第２の集合算出手段、
集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する第３の集合算出手段、及び
集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知するＩＤ候補通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
【請求項１０】
変数Ｇがパラメータ又はヘッダ情報であるか否かと言う第１の判定を行い該判定の結果が「正」であれば該変数Ｇは第１の種類の変数とし第１の種類の変数Ｇは指定フラグメントＤ１についての第１の種類のＩＤ候補に割当てる第１のＩＤ候補割当て手段、
第１の判定が「否」であるとき変数Ｇの型がプリミティブ又はストリングであるか否かと言う第２の判定を行い該判定結果が「正」であれば該変数Ｇを第２の種類の変数とし第２の種類の変数Ｇは指定フラグメントＤ１についての第２の種類のＩＤ候補に割当てる第２のＩＤ候補割当て手段、及び
第１及び第２の判定結果が共に否であるとき変数Ｇは第３の種類の変数とし第３の種類の変数Ｇは該変数Ｇの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドＨの集合Ｉを変数Ｇに対応付け（以下、Ｇに対応付けられたＩを「Ｉ（Ｇ）」と言う。）該Ｉ（Ｇ）を指定フラグメントＤ１についての第３の種類のＩＤ候補に割当てる第３のＩＤ候補割当て手段、
を有し、
前記ＩＤ候補通知手段は、指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する情報には、各ＩＤ候補の種類に係る情報を含めることを特徴とする請求項９記載のフラグメント関連作業支援装置。
【請求項１１】
フラグメント化作業者が前記ＩＤ候補通知手段から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１の種類の変数であるか否かと言う第５の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１の引渡し設定手段、
該変数Ｇが第２の種類の変数であるか否かと言う第６の判定を行い該判定の結果が「正」である場合、該変数Ｇが選択ＩＤであるか否かの第１の子判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第２の引渡し設定手段、
前記第１の子判定の結果が「否」である場合に、該変数Ｇのスコープがページであるか否かの第１の孫判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第３の引渡し設定手段、
前記第１の孫判定の結果が「否」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第４の引渡し設定手段、
該変数Ｇが第３の種類の変数であるか否かと言う第７の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かと言う第２の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第５の引渡し設定手段、
第２の子判定の結果が「否」である場合に該変数Ｇのスコープがページであるか否かの第２の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントＤ１における該変数Ｇのスコープをリクエストへ変更する第６の引渡し設定手段、及び
第２の孫判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第７の引渡し設定手段、
を有していることを特徴とする請求項１０記載のフラグメント関連作業支援装置。
【請求項１２】
前記Webページ・サーバによる前記処理には、前記Webページ・サーバは、クライアントからのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断すると言う処理が含まれており、
フラグメント化作業者が前記ＩＤ候補通知手段から通知された種類別ＩＤ候補の中から選択した１個以上の選択ＩＤに対して、
第１又は第２の種類の変数である選択ＩＤは、該選択ＩＤをポリシー・ファイルのコンポーネントに設定する第１のコンポーネント設定手段、
第３の種類の変数に係る選択ＩＤは、該選択ＩＤと該選択ＩＤに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第２のコンポーネント設定手段、及び
前記第１及び前記第２のコンポーネント設定手段の設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力手段、
を有していることを特徴とする請求項１０記載のフラグメント関連作業支援装置。
【請求項１３】
フラグメント化作業者が前記ＩＤ候補通知手段から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１及び第２の種類の変数であるか否かと言う第１０の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１０の引渡し設定手段、
該変数Ｇが第３の種類の変数であるか否かと言う第１１の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かの第１１の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第１１の引渡し設定手段、及び
第１１の子判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１２の引渡し設定手段、
を有していることを特徴とする請求項１０記載のフラグメント関連作業支援装置。
【請求項１４】
動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする請求項９記載のフラグメント関連作業支援装置。
【請求項１５】
クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持ステップ、
作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する構文解析情報作成ステップ、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。
【請求項１６】
動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする請求項１５記載のフラグメント関連作業支援方法。
【請求項１７】
前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする請求項１５記載のフラグメント関連作業支援方法。
【請求項１８】
前記登録パターン用記述事項には、クライアントからの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び／又はループ処理に係る処理事項が含まれることを特徴とする請求項１５記載のフラグメント関連作業支援方法。
【請求項１９】
前記場所通知ステップでは、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知することを特徴とする請求項１５記載のフラグメント関連作業支援方法。
【請求項２０】
クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する集合算出ステップ、
集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する判定ステップ、及び
前記判定ステップの判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知ステップ、を有していることを特徴とするフラグメント関連作業支援方法。
【請求項２１】
動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする請求項２０記載のフラグメント関連作業支援方法。
【請求項２２】
前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする請求項２０記載のフラグメント関連作業支援方法。
【請求項２３】
クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対し、
指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する第１の集合算出ステップ、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する第２の集合算出ステップ、
集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する第３の集合算出ステップ、及び
集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知するＩＤ候補通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。
【請求項２４】
変数Ｇがパラメータ又はヘッダ情報であるか否かと言う第１の判定を行い該判定の結果が「正」であれば該変数Ｇは第１の種類の変数とし第１の種類の変数Ｇは指定フラグメントＤ１についての第１の種類のＩＤ候補に割当てる第１のＩＤ候補割当てステップ、
第１の判定が「否」であるとき変数Ｇの型がプリミティブ又はストリングであるか否かと言う第２の判定を行い該判定結果が「正」であれば該変数Ｇを第２の種類の変数とし第２の種類の変数Ｇは指定フラグメントＤ１についての第２の種類のＩＤ候補に割当てる第２のＩＤ候補割当てステップ、及び
第１及び第２の判定結果が共に否であるとき変数Ｇは第３の種類の変数とし第３の種類の変数Ｇは該変数Ｇの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドＨの集合Ｉを変数Ｇに対応付け（以下、Ｇに対応付けられたＩを「Ｉ（Ｇ）」と言う。）該Ｉ（Ｇ）を指定フラグメントＤ１についての第３の種類のＩＤ候補に割当てる第３のＩＤ候補割当てステップ、
を有し、
前記ＩＤ候補通知ステップでは、指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する情報には、各ＩＤ候補の種類に係る情報を含めることを特徴とする請求項２３記載のフラグメント関連作業支援方法。
【請求項２５】
フラグメント化作業者が前記ＩＤ候補通知ステップにおいて通知した種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１の種類の変数であるか否かと言う第５の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１の引渡し設定ステップ、
該変数Ｇが第２の種類の変数であるか否かと言う第６の判定を行い該判定の結果が「正」である場合、該変数Ｇが選択ＩＤであるか否かの第１の子判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第２の引渡し設定ステップ、
前記第１の子判定の結果が「否」である場合に、該変数Ｇのスコープがページであるか否かの第１の孫判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第３の引渡し設定ステップ、
前記第１の孫判定の結果が「否」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第４の引渡し設定ステップ、
該変数Ｇが第３の種類の変数であるか否かと言う第７の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かと言う第２の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第５の引渡し設定ステップ、
第２の子判定の結果が「否」である場合に該変数Ｇのスコープがページであるか否かの第２の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントＤ１における該変数Ｇのスコープをリクエストへ変更する第６の引渡し設定ステップ、及び
第２の孫判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第７の引渡し設定ステップ、
を有していることを特徴とする請求項２４記載のフラグメント関連作業支援方法。
【請求項２６】
前記Webページ・サーバによる前記処理には、前記Webページ・サーバは、クライアントからのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断すると言う処理が含まれており、
フラグメント化作業者が前記ＩＤ候補通知ステップにおいて通知した種類別ＩＤ候補の中から選択した１個以上の選択ＩＤに対して、
第１又は第２の種類の変数である選択ＩＤは、該選択ＩＤをポリシー・ファイルのコンポーネントに設定する第１のコンポーネント設定ステップ、
第３の種類の変数に係る選択ＩＤは、該選択ＩＤと該選択ＩＤに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第２のコンポーネント設定ステップ、及び
前記第１及び前記第２のコンポーネント設定ステップの設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力ステップ、
を有していることを特徴とする請求項２４記載のフラグメント関連作業支援方法。
【請求項２７】
フラグメント化作業者が前記ＩＤ候補通知ステップにおいて通知した種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１及び第２の種類の変数であるか否かと言う第１０の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１０の引渡し設定ステップ、
該変数Ｇが第３の種類の変数であるか否かと言う第１１の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かの第１１の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第１１の引渡し設定ステップ、及び
第１１の子判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１２の引渡し設定ステップ、
を有していることを特徴とする請求項２４記載のフラグメント関連作業支援方法。
【請求項２８】
動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする請求項２３記載のフラグメント関連作業支援方法。
【請求項２９】
請求項１〜１４のいずれかのフラグメント関連作業支援装置における各手段としてコンピュータを機能させるためのフラグメント関連作業支援プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動的Webページをフラグメント化する作業に資するフラグメント関連作業支援装置、フラグメント関連作業支援方法及びフラグメント関連作業支援プログラムに係り、詳しくはフラグメント化作業者による各段階の作業を適切化及び能率化するフラグメント関連作業支援装置、フラグメント関連作業支援方法及びフラグメント関連作業支援プログラムに関するものである。
【０００２】
【従来の技術】
［動的Webページのキャッシュ］
動的に生成されるウェブページをキャッシュするためには、URLのパラメータやHTTPのヘッダ情報に基づいてコンテンツを識別するIDを生成し、IDが同じ要求に対してはキャッシュにコピーしておいたコンテンツを返すようにすればよい。非特許文献１では、以下のポリシー・ファイル(cachespec.xml)に記述されたルールによってIDを生成する。
【０００３】
0003880543.tif 000002
【０００４】
上記のルールを使うと、newscontroller サーブレットに対して、パラメータ action の値が view のときに、この値とパラメータ category の値に従って IDが生成される。IDが同じになる要求に対しては、キャッシュにコピーがある場合には、サーブレットを実行する代わりに、キャッシュ内のコンテンツが返される。
【０００５】
次のR1〜R4はクライアントからのWebページ送信要求の具体例である。
R1. http:// ... /newscontroller?action=view&category=sports&user=Al
R2. http:// ... /newscontroller?action=view&category=music&user=Bob
R3. http:// ... /newscontroller?action=view&category=sports&user=Chris
R4. http:// ... /newscontroller?action=request&category=sports&user=Don
【０００６】
R1 と R2 ではサーブレットを実行して、結果をキャッシュにコピーする。R3 では R1 と同じIDが生成されるので、キャッシュからコンテンツを取り出して返答する。R4 では キャッシュとは無関係にサーブレットを実行する。
【０００７】
［フラグメント化］
動的に生成されるページを構成するものの中には、変更の頻度が高い部分と変更の頻度が低い部分が存在している。ページ全体をキャッシュするには、もっとも変更の頻度が高い部分に合わせてコンテンツのコピーを識別する必要がある。このため多くのコピーを格納する必要が生じ、コピーは再使用され難くなる。すなわち、キャッシュの効果が低くなる。この問題を解決するには、変更の頻度に合わせてページを分割し、分割された部分を別々にキャッシュすればよい。分割されたページは JSP では <jsp:include>タグを使って実行時に結合される。
【０００８】
このようなキャッシュを有効利用するための動的ウェブページを作成するための開発者の作業は次のようになる：
(1) フラグメント化する範囲の特定を行う。
(2) フラグメントに受け渡すデータの特定を行う。
(3) ページをフラグメントに分割する。
(4) キャッシュにコピーするフラグメントのためのIDを生成するルールを作成する。
【０００９】
【非特許文献１】
ＩＢＭ（株）が市販する”IBM WebSphere” の ダイナミック・フラグメント・キャッシュ（DynaCache）を解説するＵＲＬ：http://www-3.ibm.com/software/webservers/appserv/doc/v40/ae/infocenter/was/0405.html
（本特許出願時の記述抜粋）『Dynamic fragment cache：A WebSphere Application Server performance enhancement is the ability to cache the output of dynamic servlets and JSP files, a technology that improves application performance. This technology, working within an application server's Java Virtual Machine (JVM), intercepts calls to a servlet's service method, and checks whether the invocation can be served from a cache. Because J2EE applications have such high read-write ratios and can tolerate a small degree of latency in the freshness of their data, fragment caching creates an opportunity 〜』
【００１０】
【発明が解決しようとする課題】
動的Webページをキャッシュする仕組みはすでにあり、それを有効利用するためのフラグメント化の方法は知られているが、実用規模のアプリケーションに対して効果的にフラグメント化することは、非特許文献１に開示の従来技術等によっては支障がある。すなわち、フラグメントの範囲が不適切となり、結果、キャッシュにおける各フラグメントのコピーを結合する際のオーバーヘッドが増大したり、キャッシュにおける各フラグメントのコピーの再使用性が悪化したりする。動的Webページのフラグメント化に当たっては、次の困難が存在する。
【００１１】
（１）ページが複雑になると、画面のデザインとデータ処理のためのロジックが混在することになる。そのためフラグメント化によってアプリケーションの実行結果に影響がないかどうかは自明でない。或るフラグメントの範囲の指定に対してアプリケーションの動作が変化するかどうかを注意深くチェックする必要がある。
（２）フラグメントのコピーを識別するのに使えるデータは、フラグメントに渡されるパラメータやHTTPのヘッダ情報であるが、或るフラグメント範囲に対してパラメータやHTTPのヘッダ情報として使用することができるデータの種類は自明でない。したがって個々のフラグメント範囲に対して使用可能なデータを調べる必要がある。
（３）フラグメントの範囲が大きすぎると多くの異なるコピーが発生して、個々のコピーは再使用されにくくなる。一方でフラグメントの範囲が小さすぎると実行時のフラグメントの結合のオーバーヘッドが大きくなる。そのため適当な大きさの範囲でフラグメント化する必要があるが、或るフラグメント化でキャッシュが効果的に動作するかどうかはアプリケーションの動的な性質に依存する。したがってフラグメント化は本質的に試行錯誤が必要なプロセスである。ところがフラグメントの範囲を変化させるたびに（１）と（２）が必要になるので、手作業でフラグメント化を繰り返すことは難しい。フラグメント化の判断に必要な情報をフラグメントの範囲の変更に合わせて直ちにユーザにフィードバックするような、対話的にフラグメント化を支援する手法や装置はなかった。
【００１２】
本特許出願時では未公知であるが、本特許出願人が特許出願済みのJSPスプリッティング・ツール（JSP Splitting Tool ）は、データの依存関係がないフラグメントの特定と分割に使用できる。しかし動的ウェブページのキャッシュのためにはデータによって挙動の異なる部分をフラグメントにすることによって効果を得るので、データの依存関係を積極的に使うように分割する必要がある。そのため、JSPスプリッティング・ツールを、動的Webページの適切なフラグメント化に使用することには支障がある。
【００１３】
本発明の目的は、フラグメント化作業者による動的Webページの適フラグメント化作業を適切に支援できるフラグメント関連作業支援装置、フラグメント関連作業支援方法及びフラグメント関連作業支援プログラムを提供することである。
【００１４】
【課題を解決するための手段】
本発明のフラグメント関連作業支援装置、方法及びプログラムは、フラグメント化作業者がWebページ・サーバの処理に予め必要な作業を実施するときに該作業を支援する。クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分されている。Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施する。
【００１５】
本発明のフラグメント関連作業支援装置は、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対する処理を実施し、次のものを有している。
動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持手段、
作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する構文解析情報作成手段、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知手段。
【００１６】
本発明の別のフラグメント関連作業支援装置は次のものを有している。
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する集合算出手段、
集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する判定手段、及び
前記判定手段の判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知手段。
【００１７】
本発明の他のフラグメント関連作業支援装置は、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対する処理を実施するものであり、次のものを有している。
指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する第１の集合算出手段、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する第２の集合算出手段、
集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する第３の集合算出手段、、及び
集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知するＩＤ候補通知手段。
【００１８】
本発明のフラグメント関連作業支援方法は次のステップを有している。
動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持ステップ、
作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する構文解析情報作成ステップ、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知ステップ。
【００１９】
本発明の別のフラグメント関連作業支援方法は、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対する処理を実施し、次のステップを有している。
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する集合算出ステップ、
集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する判定ステップ、及び
前記判定ステップの判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知ステップ。
【００２０】
本発明の他のフラグメント関連作業支援方法は、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対する処理を実施し、次のステップを有している。
指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する第１の集合算出ステップ、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する第２の集合算出ステップ、
集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する第３の集合算出ステップ、及び
集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知するＩＤ候補通知ステップ。
【００２１】
本発明のフラグメント関連作業支援プログラムは、前述の各フラグメント関連作業支援装置における各手段としてコンピュータを機能させる。あるいは、前述の各フラグメント関連作業支援方法における各ステップをコンピュータに実行させる。
【００２２】
【発明の実施の形態】
以降、本発明を実施の形態について具体的に説明する。なお、本発明は以下の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【００２３】
図１はインターネット・システム１０の概略図である。Webページ・サーバ１２は、記憶装置としてのキャッシュ１３を装備している。Webページ・サーバ１２は、インターネット１４を介して多数のクライアント１５から送信コンテンツとしての動的Webページについての送信要求を受け付ける。なお、Webページ・サーバは、インターネット１４の代わりにイントラネットへ接続され、イントラネットを介して接続されている各クライアントからの動的Webページについての送信要求を受け付けるようになっていてもよい。
【００２４】
動的Webページ生成用ソース・ファイルは、クライアント１５への送信用Webページを生成する処理を含み、かつ少なくとも一部がフラグメントに設定されている。すなわち、後述の一般的な動的Webページ生成用ソース・ファイル（以下、「第１の動的Webページ生成用ソース・ファイル」と言う。）では、動的Webページ生成用ソース・ファイル全体がフラグメント化されているのに対し、ジャカルタ・プロジェクト（Jakarta Project）のキャッシュ・タグリブ（Cache Taglib）用の動的Webページ生成用ソース・ファイル（以下、「第２の動的Webページ生成用ソース・ファイル」と言う。）では、動的Webページ生成用ソース・ファイルはその一部のみがフラグメント化される。Webページ・サーバ１２は、１個又は２個以上のフラグメントの各々に基づいて生成されたWebページ部分のコピーをキャッシュ１３に格納し、クライアント１５からのWebページの送信要求に対して、送信要求Webページに係るフラグメントに対応するコピーがキャッシュ１３に有るか否かを判断し、有れば、該送信用Webページ部分は該コピーを割り当て、また、無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアント１５へ送信する処理を実施する。
【００２５】
なお、動的Webページ生成用ソース・ファイルは例えばＪSP（Java Server Pages：なお「Java」は登録商標である。）ファイルであり、クライアント１５への送信用Webページは例えばHTML（HyperText Markup Language）ファイルである。
【００２６】
図２はJSPファイル１９とクライアント１５からの該JSPファイル１９の呼び出しに対してクライアント１５のディスプレイにおいて表示される表示内容２３との関係を示している。JSPファイル１９は動的Webページ生成用ソース・ファイルの一例であり、該JSPファイル１９から生成されるHTMLは、該JSPファイル１９を基にして生成されてWebページ・サーバ１２からクライアント１５へ送信される送信用Webページの一例である。或るクライアント１５は、JSPファイル１９の送信要求を出す。Webページ・サーバ１２は、その送信要求を受け付けて、JSPファイル１９に係るサーブレットを処理する。該当のサーブレットが無いときは、JSPからサーブレットを生成し、サーブレットを処理する。サーブレットを処理することによりHTMLファイルが生成され、該HTMLファイルがWebページ・サーバ１２からクライアント１５へ送信され、クライアント１５のディスプレイに表示内容２３が表示される。フラグメント化されたJSPからは、フラグメントの個数に等しいサーブレットと、それを結合して全体のHTMLファイルを作るサーブレットとが生成される。動的Webページ生成用ソース・ファイル１９は、その全体が、重複を排除されつつ先頭から末尾へ順番にフラグメント２０ａ，２０ｂ，・・・２０ｎに区分される。一方、表示内容２３は、その全体が、重複を排除されつつ内容部分２４ａ，２４ｂ，・・・２４ｍに区分されている。１個のJSPファイル１９に対して、ｎは固定されているが、ｍは種々の条件によって変化する。すなわち、条件によっては、或る１個のフラグメント２４に対応する１個のサーブレットは、ＨＴＭＬ部分をまったく生成しないこともあるし、２個以上のＨＴＭＬ部分を生成することもある。
【００２７】
注意すべきことがある。フラグメント２０の中には、動的な送信用Webページ部分ではなく、静的な送信用Webページ部分に対応するフラグメントもあり得ることである。後述のアルゴリズム２〜４は、静的な送信用Webページ部分に対応するフラグメントに対しても、支障なく対処できるようになっているが、このことについては、後述する。
【００２８】
本発明に係るフラグメント関連作業支援装置は第１〜第４のツールを装備する。各ツールの機能は次の通りである。
第１のツール：フラグメント抽出のヒントをフラグメント化作業者に提示する。第２のツール：フラグメント化作業者が作業対象のJSPにおいて指定したフラグメント候補に対して、該フラグメントの正当性をチェックする。
第３のツール：フラグメント化作業者が作業対象のJSPにおいて指定したフラグメントに対して、キャッシュIDの指定に使用できるデータを特定する。
第４のツール：フラグメントとキャッシュIDを生成するルールを作成する。
【００２９】
第１のツールは、JSPページの中からフラグメント化を考慮すべき部分のヒントを提示する。第１のツールが実装するアルゴリズム１は次の通りである。
0003880543.tif 000003
【００３０】
パターンとしては例えば(1) パラメータやヘッダ情報へのアクセス、(2) Beanへのアクセス、及び(3) ループがある。各々について詳述する。
【００３１】
(1) パラメータやヘッダ情報へのアクセス：
パラメータやヘッダ情報へのアクセスがあると、そのアクセスの近辺ではパラメータやヘッダ情報に依存した処理が行われ、それ以外の部分と性質が異なる可能性が高い。たとえば次のようなものをパターンP1,P2として登録しておく。
P1: request.getParameter(...)
P2: <jsp:setProperty name=... property=... param=.../>
【００３２】
上記のパターンに対して、次のような入力JSPページを考える。
L1: <%
L2: String user = request.getParameter("user");
L3: if (user.equals("")) {user = defaultUser;}
L4: out.println("User: " + user);
L5: %>
【００３３】
P1とL2 がマッチし、L2に対して"パラメータのアクセス"というP1の説明がユーザに提示される。
【００３４】
(2) Bean へのアクセス：
Beanへのアクセスがあると、その Bean に依存した出力を行う可能性が高い。次のようなものをパターンとして登録しておく。
P5: <jsp:getProperty ../>
P6: <bean:write ../>
【００３５】
(3) ループ：
ループの内側では、繰り返しごとに異なる出力を行う可能性が高い。次のようなものをパターンとして登録しておく。
P3: for (...; ...; ...) {...}
P4: <logic:iterate id=... name=...>...</logic:iterate>
パターンは上記のものに限られたわけではなく、必要に応じてデータベースに追加する。特に一般的な知識だけでなく、プロジェクト固有のタグライブラリに関する情報を追加することによって、より適切なヒントを提示するようにできる。
【００３６】
図３は第１のツール２８の構成説明図である。JSP構文解析器３０は、入力されたJSPページ２９に対して、該JSPページ２９の構文を解析し、解析結果としてのJSP構文木３１を出力する。パターン・データベース３２には、JSPページにおいて実行出力のバリエーション・再利用度・変更頻度などが他の部分と異なる可能性が高い箇所のヒューリスティクス（heuristics）に基づいたパターンが登録されている。パターン検査器３３は、JSP構文木３１とパターン・データベース３２の各パターンがJSP構文木３１の各部分とのマッチングを行い、JSPページに対する注釈表３４を出力する。JSPページに対する注釈表３４には、JSPページ２９においてパターン・データベース３２のパターンとマッチする場所、及びマッチしたパターンに結び付けられている説明が含まれ、フラグメント化作業者はJSPページに対する注釈表３４よりJSPページ２９におけるフラグメント化可能な場所についての情報を得る。
【００３７】
第１のツール２８では、JSP構文解析のために、構文木を利用しているが、それに限定されず、他の構文解析方法も適宜、利用可能である。例えば、JSPページ２９におけるステートメントを適当に区分し、区分と所定の登録パターンとの対比によって、構文解析することも可能である。
【００３８】
図４（ａ）及び（ｂ）は第１のツール２８に登録されるパターン例及び該パターン例を構文解析して出力される構文木を示している。次は入力JSPファイルの内容例を示す。図５は該入力JSPファイルを構文解析して出力される構文木と共に、該構文木において図４のパターンがマッチングした場所を示している。マッチング場所は図５において破線の囲いＺ１で示されている。
［入力JSPファイル］
<HTML>
<HEAD>
<TITLE>sample.jsp</TITLE>
</HEAD>
<% String userName = request.getParameter("user_name"); %>
<BODY>
User : <%= userName %>
</BODY>
</HTML>
【００３９】
第２のツールは第１のツールで得られたフラグメント化のヒントを基にして、フラグメント化作業者はフラグメントの範囲を指定する。第２のツールではユーザが指定した範囲でフラグメント化可能かどうかをチェックする。フラグメント内での操作の影響がフラグメント外にある場合には、フラグメントを実際に実行して出力を得るのと、フラグメントのキャッシュのコピーから出力を得るのでは結果が異なる可能性がある。そのため、そのような範囲ではフラグメント化できないと判断する。入力として与えられた JSPページに対して、データ依存解析と制御依存解析を行うことによって操作の影響を求める。Bean やタグライブラリのソースコードがない場合には、逆コンパイラを使ってバイトコードを解析する。
【００４０】
第２のツールが実装するアルゴリズム２は次の通りである。
0003880543.tif 000004
【００４１】
要約すると、アルゴリズム２では、フラグメント化作業者が入力JSPファイルにおいてフラグメントとして指定した範囲Ｙ１とＹ１以外の範囲Ｙ２とに入力JSPファイルを区分し、Ｙ１内の操作が影響を与える変数でありかつＹ２の操作が参照する変数が存在するならば、該範囲Ｙ１のフラグメント化は不可能と判断し、存在しなければ、該範囲Ｙ１のフラグメント化は可能と判断する。
【００４２】
フラグメント化不可能との判断がなされた場合には、その旨がフラグメント化作業者に報告され、フラグメント化作業者は範囲の指定のやり直しを行う。これに対して、フラグメント化可能との判断がなされた場合には、フラグメント化作業者は第３のツールを使用する次の段階へ作業を進める。
【００４３】
フラグメント化作業者が、動的な送信用Webページ部分に対応しない、すなわち静的な送信用Webページ部分に対応するフラグメントに係る範囲Ｙ１を入力JSPファイルにおいて指定した場合、上記アルゴリズム２においてSfは空集合φとなり、if (Q ∩ Sf ≠ φ) は「否」となる。結果、フラグメント化作業者へは、フラグメント化可能の旨が通知される。
【００４４】
図６は第２のツール３８の構成説明図である。第２のツール３８はJSPページ２９及びJSPページの範囲の指定４６を入力される。図６のJSPページ２９は図３のJSPページ２９と同一である。JSPコンパイラ３９はJSPページ２９をJavaコード４０へ変換する。JSPコンパイラ３９は、Javaコンパイラとは異なる。Javaコンパイラは、Javaプログラムのソース・コードとしてのJavaコードをバイトコードへ変換するものであり、JSPコンパイラ３９は、JSPページ２９をソース・コードとしてのJavaコードへ変換するものである。Java構文木解析器４１はJavaコード４０の構文を解析し、Javaコード４０からJava構文木４２を生成する。JSPコンパイラ３９は、また、JSPページとJavaコードとの対応表４３を生成する。図６において点線の境界線より上の各要素における処理は第２のツール３８において１度、実行されるのみであり、境界線より下の各要素における処理はフラグメント化作業者がJSPページの範囲の指定４６を変更するごとに繰返し実行される。フラグメント化作業者は、JSPページ２９を表示したコンピュータ画面においてフラグメントの範囲を指定する。フラグメント化作業者によるフラグメント範囲指定は、図３のJSPページに対する注釈表３４の出力に基づく。JSPページからJavaコードへの対応変換器４７は、JSPページとJavaコードとの対応表４３とJSPページの範囲の指定４６とを照合して、Javaコードの範囲の指定４８を実施する。Javaコードの範囲の指定４８は、Javaコード４０においてJSPページの範囲の指定４６の対応範囲に相当する。操作の影響検査器５１は、Java構文木４２とJavaコードの範囲の指定４８とからの情報に基づいて前述のアルゴリズム２を実行し、フラグメント化可否のフラグ５２を出力する。フラグメント化可否のフラグ５２は、JSPページの範囲の指定４６がフラグメント化可能か否かについてのフラグメント化作業者へ通知に対応するするものである。
【００４５】
第３のツールは、第２のツールにおいてフラグメント化可能と判断された、JSPページ２９上の領域に対してキャッシュIDの指定に使用できるデータの特定を行う。キャッシュIDの指定に使用できるデータは次のもののいずれかである。
（ａ）もとのJSPページに対するパラメータかHTTPヘッダ情報である。
（ｂ）フラグメントに渡されるデータで、プリミティブ型（booleanやintなど）かString型である。
（ｃ）フラグメントに渡されるデータで、返値がプリミティブ型（booleanやintなど）かString型であるメソッドを持っている。
【００４６】
次のアルゴリズム３は、上記の条件（ａ）〜（ｃ）に合うデータを保持している変数を計算するものであり、第３のツールに実装されるものである。（ｃ）のデータに関しては、変数とメソッドの組を計算する。また以降の第４のツール使用のために、フラグメントに渡されるデータを保持する変数すべても計算する。パラメータとヘッダ情報も変数として処理する。そのため入力JSPの最初の文が、仮想的にすべてのパラメータとヘッダ情報に影響を与える操作であるとみなす。
【００４７】
0003880543.tif 000005
0003880543.tif 000006
【００４８】
Va, Vb, Vc, Mc(v) の要素がフラグメント化作業者へ報告される。フラグメント化作業者は報告されたデータを使ってフラグメントのキャッシュIDの指定ができると判断した場合には、次の第４のツール使用の段階へ進む。第３のツールがキャッシュIDの指定には不十分と判断した場合には、フラグメント化作業者はフラグメントの範囲の指定をやり直す。このやり直しにおいては、フラグメント化作業者は、再度、第２及び第３のツールを使用することになる。
【００４９】
アルゴリズム３において、「vのクラス」とは、vの型が、プリミティブやStringでなく、クラスである場合に、該クラスのことを言っている。例えば、オブジェクト指向言語のJavaにおいて、abcdなるクラスが定義され、abcdのインスタンスvを生成するときに使用される「abcd v = new abcd()」なる記述に対して、abcdは変数vの型であり、abcdはvのクラスである。「vのクラスとスーパークラスのすべてのメソッド」における「vのクラスとスーパークラス」との関係は、vのクラスは該スーパークラスを継承しているクラスとなっている関係を意味する。
【００５０】
アルゴリズム３を要約すると次の通りである。入力JSPファイルに対して、フラグメント化作業者がフラグメントとして指定した記述範囲をＹ１とし、Ｙ１以外の記述範囲Ｙ２とする。すなわち、入力JSPファイルをＹ１，Ｙ２の２個に区分する。範囲Ｙ１内の操作が参照する変数Ｘ１に対して、範囲Ｙ２内の操作Ｗが影響を与えるとする。すべての変数Ｘ１の内、操作Ｗが影響を与える変数をＸ２とすると、Ｘ２をキャッシュＩＤの候補としてフラグメント化作業者に報告する。変数Ｘ２が、パラメータやヘッダ情報でなく、また、Ｘ２の型がプリミティブやStringでないときは、Ｘ２は、その型となっているクラス及び該クラスのスーパークラスに含まれるメソッドに対応付けられる。そして、該メソッドの返値の型がプリミティブかStringであれば、Ｘ２と該メソッドの組をキャッシュＩＤの候補とする。
【００５１】
図７は第３のツール５５の構成説明図である。第３のツール５５において、図６の第２のツール３８の要素と同一のものは同符号で示す。データ依存解析器５６は、アルゴリズム３の実行において、フラグメント化作業者がJSPページにおいてフラグメントとして指定した範囲Ｙ１における操作に係る情報はJavaコードの範囲の指定４８の入力に基づき把握し、また、変数Ｘ１，Ｘ２、及び操作Ｗ等のその他の情報に関してはJava構文木４２から入力に基づき把握する。データ依存解析器５６からの出力５７は、変数表Ｖ，Ｖａ，Ｖｂ，Ｖｃ及びメソッド表Ｍｃ（ｖ）を含む。
【００５２】
フラグメント化作業者は、第３のツールの出力結果に対して、実際にキャッシュIDを生成するためのデータの指定を行う。このデータ指定においては所定のユーザ・インターフェースが利用される。第３のツールの実行結果が次のものであるとする。
Va = {user}
Vb = {id}
Vc = {thinkPad, thinkPadDB}
Mc(thinkPad) = {getName(), getPrice(), getName()}
Mc(thinkPadDB) = {getId()}
【００５３】
ユーザ・インターフェースは次のチェックリストをコンピュータ画面に表示する。
0003880543.tif 000007
【００５４】
フラグメント化作業者はキャッシュID を生成するために使うデータを１個又は２個以上、指定する。データの指定はフラグメント化作業者が”□”を選択することにより行われる。選択された”□”はコンピュータ画面上において”■”に変化する。次は、フラグメント化作業者によるデータ指定が行われたチェックリストを示している。
0003880543.tif 000008
【００５５】
ここで選択された項目の変数は、次の第４のツールの使用のために、Vs = {id, thinkPad}、メソッドを  Ms(thinkPad) = {getName()}  として記憶される。この記録は後述の図８の第４の入力６２に対応する。なお、Ms(thinkPad)は、変数thinkPadに係るメソッドMsを意味し、Ms(thinkPad)におけるthinkPadは、Java言語等における引数を意味するものではない。
【００５６】
第４のツールは、データが正しく各フラグメントに伝播されるように、またキャッシュIDの生成に必要な値が各フラグメントのパラメータに現れるように、元のJSPページを分割する。なお、フラグメント化処理により、元のJSPページからは、１個の親のJSPページと複数個のフラグメントJSPページとが生成される。データの属性に応じて、以下のように処理方法を選択する。親JSPページのパラメータはフラグメントに自動的に渡されるので、なにもしない。また、スコープが application, session, requestのデータは明示しなくても伝播されるので、それらがキャッシュIDの生成に使われない場合には、なにもしない。第４のツールが実装するアルゴリズム４は次の通りである。なお、アルゴリズム４には後の説明の便宜上、行番号100〜126を左端に付している。
【００５７】
0003880543.tif 000009
0003880543.tif 000010
【００５８】
アルゴリズム４を要約すると、次の通りである。まず、vがVaに属しているか否かの判定１が行われる（行番号101）。判定１の結果が「正」であれば、行番号102の[なにもしない]が実行される。判定１が否であれば、vがVbに属しているか否かの判定２が行われる（行番号103）。判定２の結果の結果が「否」であれば、vがVcに属しているか否かの判定３が行われる（行番号113）。判定２の結果が「正」である場合、さらに、vがVsに属しているか否かの判定２１が行われる（行番号104）。判定２１の結果が「正」である場合は、行番号105の(1)が実行され、「否」である場合は、vのスコープがpageであるときは行番号108の(1)が実行され、また、vのスコープがpageでないときは行番号110の[なにもしない]が実行される。判定３の結果が「正」である場合、さらに、vがVsに属しているか否かの判定３ａが行われる（行番号114）。判定３ａの結果が「正」である場合は、行番号116の(2)が実行され、また、「否」である場合は、vのスコープがpageであるか否かの判定３ａａが行われる（行番号119）。判定３ａａの結果が「正」である場合は、行番号120の(3)が実行され、また、「否」である場合は、行番号122の[なにもしない]が実行される。
【００５９】
なお、アルゴリズム３，４は、静的な送信用Webページ部分に対応するフラグメントに対しても、支障なく対処できるようになっている。フラグメント化作業者が、動的な送信用Webページ部分に対応しない、すなわち静的な送信用Webページ部分に対応するフラグメントに係る範囲Ｙ１を入力JSPファイルにおいて指定した場合、アルゴリズム３では、フラグメントに渡されるデータを含む変数の集合Vは空集合φとなるので、Va, Vb, Vc もすべて空集合になる。アルゴリズム４では、アルゴリズム３の結果を受けて、範囲Ｙ１に係るフラグメントに対してはパラメータなどの指定がない、すなわち、常に同じ値のキャッシュＩＤを生成するルールが出力されることになる。こうして、該フラグメントについては１個のコピーのみ存在し、該１個のコピーが、該フラグメントに係る送信用Webページ部分として使用されることになる。
【００６０】
アルゴリズム４におけるフラグメントへのデータの渡し態様は、「なにもしない」を除くと、以下の(1)〜(3)の３個あり、各態様について詳述する。なお、フラグメント fragment.jspとは、フラグメント化対象のJSPページのフラグメントファイルであり、親JSPとは、フラグメント fragment.jspを結合して、フラグメント化対象のJSPページと同一の送信用Webページを生成するJSPファイルである。
【００６１】
(1) データをフラグメントのパラメータとして渡す。：
例えば変数 id の値をパラメータとして渡すには、フラグメントを呼び出すときに<jsp:param>タグで指定するようにJSPページを変更する。
[親JSP main.jsp]-------------------------------------------------
...
<jsp:include page="fragment.jsp" flush="true">
<jsp:param name="id" value="<%= id %>"/>
</jsp:include>
...
------------------------------------------------------------------
またフラグメントでは、requestオブジェクトから値を取り出して使用する。
[フラグメント fragment.jsp]---------------------------------------
...
<% ... request.getParameter("id") ... %>
...
------------------------------------------------------------------
【００６２】
変数がプリミティブ型の場合、String 型に変換してパラメータにする。またフラグメントでは String をプリミティブ型に戻して使用する。例えばid の型が int のとき、
[親JSP main.jsp]-------------------------------------------------
...
<jsp:include page="fragment.jsp" flush="true">
<jsp:param name="id" value="<%= Integer.toString(id) %>"/>
</jsp:include>
...
------------------------------------------------------------------
[フラグメント fragment.jsp]---------------------------------------
...
<% ...Integer.parseInt(request.getParameter("id")... %>
...
------------------------------------------------------------------
【００６３】
(2) メソッドの実行結果をフラグメントのパラメータとして渡す。：
例えば変数thinkPadに対してgetName()を実行した結果の値をパラメータとして渡すには、フラグメントを呼び出すときに<jsp:param>タグで指定するようにJSPページを変更する。
[親JSP main.jsp]-------------------------------------------------
...
<jsp:include page="fragment.jsp" flush="true">
<jsp:param name="thinkPad_getName" value="<%= thinkPad.getName() %>"/></jsp:include>
...
------------------------------------------------------------------
パラメータ名は他のパラメータと重ならないように生成する。またこのパラメータの値はフラグメントでは不要であるので、フラグメントではこのパラメータにアクセスするコードは挿入されない。
【００６４】
(3) スコープをrequestに変更する。：
pageスコープの変数の宣言を、requestに変更する。変数の宣言はフラグメント化すると、親JSPとフラグメントの両方に現れる。
フラグメント化前：
[親JSP main.jsp]-------------------------------------------------
...
<jsp:useBean id="thinkPadDB" scope="page" class="ThinkPadDB" />
...
------------------------------------------------------------------
フラグメント化後：
[親JSP main.jsp]----------------------------------------
...
<jsp:useBean id="thinkPadDB" scope="request" class="ThinkPadDB" />
...
<jsp:include name="fragment.jsp">
------------------------------------------------------------------
[フラグメント fragment.jsp]---------------------------------------
...
<jsp:useBean id="thinkPadDB" scope="request" class="ThinkPadDB" />
...
------------------------------------------------------------------
【００６５】
第４のツールは、キャッシュIDを生成するルールの出力する機能も装備する。すなわち、第４のツールは、フラグメント化作業者が指定したキャッシュIDの生成に使用する変数の集合 Vs とメソッドの集合Ms(v)を使ってキャッシュ・ポリシーを出力する。第４のツールは次の第５のアルゴリズムも実装する。
【００６６】
0003880543.tif 000011
【００６７】
これにより、入力が Vs = {id, thinkPad}、Ms(thinkPad) = {getName()}  の場合、次のようなキャッシュ・ポリシー・ファイルが生成される。
0003880543.tif 000012
【００６８】
図８は第４のツール６０の構成説明図である。第４のツール６０において、図３及び図６の要素と同一の要素は、図３及び図６の要素と同一の符号を付している。第３の入力６１は、図７の第３のツール５５の出力５７である。JSPフラグメント化器６５は、JSP構文木３１と第１〜第４の入力２９，４６，６１，６２とに基づいて変更されたJSP構文木７０及びフラグメント構文木７１を生成する。JSPフラグメント化器６５は、JSPページそのものではなく、JSP構文木３１を処理するようになっているので、JSPフラグメント化器６５が出力する変更されたJSP構文木７０及びフラグメント構文木７１も構文木になっている。JSP出力器７２は、変更されたJSP構文木７０及びフラグメント構文木７１をそれぞれ変更されたJSPページ７３及びフラグメントJSPページ７４へ変換する。変更されたJSPページ７３は前述の親JSP main.jspに対応し、フラグメントJSPページ７４は前述のfragment.jsp等のフラグメント化ファイルに対応し、変更されたJSPページ７３は<jsp:include name="fragment.jsp">等を使って、複数個のフラグメントJSPページ７４を結合するようになっている。キャッシュ・ポリシー生成器７７は、前述のアルゴリズム５を実現するものであり、キャッシュ・ポリシー・ファイル７８は前述の[cachespec.xml]に対応する。
【００６９】
図９はフラグメント化作業過程におけるフラグメント化作業者８０と統合ツール８１との関係をまとめたものである。統合ツール８１は、第１のツール２８、第２のツール３８、第３のツール５５、及び第４のツール６０を含む。フラグメント化作業者８０が行う各作業はフラグメント化作業者８０の下側において作業順に上から下へ示されている。フラグメント化作業者８０から各ツールへ渡す情報はフラグメント化作業者８０から各ツールへ向く矢印で、また、各ツールが処理結果としてフラグメント化作業者８０へ通知する事項は各ツールからフラグメント化作業者８０へ向く矢印で示されている。
【００７０】
今まで説明したJSPページのフラグメント化は、JSPページの全体をフラグメント化するものであったが、JSPページの一部のみをフラグメント化して、フラグメント化した部分に係るコピーのみをキャッシュにコピー場合にも、前述した第１〜第４のツールを適宜、使用できる。ジャカルタ・プロジェクト（Jakarta Project）のキャッシュ・タグリブ（Cache Taglib） [Jakarta Project, "Cache Taglib version 1.0",http://jakarta.apache.org/taglibs/doc/cache-doc/] ではJSPページの中でキャッシュする範囲をタグによって指定する。タグには nameと key の属性が付加できる。属性 name で個々の範囲に名前をつけ、属性 keyで範囲のコピーを識別するIDを生成する式を指定する。例示すると、次の通りである。
【００７１】
----------------------------------------------
...section A...
<cache:cache name="ad" key="${thinkPadId}">
...section B...
</cache:cache>
...section C...
----------------------------------------------
【００７２】
上記のページでは、section B の範囲がキャッシュの対象になり、ad という名前がつけられる。範囲の実行結果のコピーは変数 thinkPadId の値によって識別される。同じキーを生成する場合には、キャッシュにコピーがあればsection Bは実行されず、かわりにコピーが結果として出力される。キャッシュを意識しないで作成された JSP ページに Cache Taglib を埋め込むときに、タグを埋め込む場所を決定するのとキー表現を作成するのに本発明の手法を使うことができる。タグを埋め込む場所を決定することがフラグメントの範囲を決めることに対応し、キー表現を作成することがキャッシュIDを生成するルールの出力に対応する。フラグメント抽出のヒントの提示、フラグメント化の正当性のチェック、キャッシュIDの指定に使用できるデータの特定の各ツールは今まで説明したものと同じである。異なる点は、Cache Taglib の場合はキャッシュされる範囲が別のページに分離されないことである。そのため、前述のアルゴリズム４は次のアルゴリズム４ａのように簡略化され、メソッドの実行結果を、キーを作るのに使うときだけローカル変数に格納するようにする。
【００７３】
0003880543.tif 000013
【００７４】
フラグメント関連作業支援装置の他の実施の形態について説明する。フラグメント関連作業支援装置は、フラグメント化作業者がWebページ・サーバの処理に関与するフラグメントに関連する作業を実施するときに該作業を支援する。Webページ・サーバは、例えば図１のWebページ・サーバ１２である。Webページ・サーバ１２は、前述したように、クライアント１５へ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュ１３に格納し、クライアント１５へ送信する送信用Webページに利用可能な送信用Webページ部分のコピーがキャッシュ１３に有れば、該送信用Webページ部分は該コピーとして、全体の送信用Webページを送信するようになっている。動的Webページ生成用ソース・ファイルは、通常は、図２のJSPファイル１９により説明したように、動的Webページ生成用ソース・ファイル全体がフラグメント化されている。前述したように、ジャカルタ・プロジェクト（Jakarta Project）のキャッシュ・タグリブ（Cache Taglib）用の動的Webページ生成用ソース・ファイルでは、動的Webページ生成用ソース・ファイルの全体ではなく一部のみが適宜、フラグメントに設定される。
【００７５】
図１０はフラグメント関連作業支援装置１００の機能ブロック図である。フラグメント関連作業支援装置１００は前述の第１のツールに相当する。フラグメント関連作業支援装置１００は、登録パターン保持手段１０１、構文解析情報作成手段１０２、及び場所通知手段１０３を有している。登録パターン保持手段１０１は、動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分の生成に係る一連の処理を実施する記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する。構文解析情報作成手段１０２は、フラグメント化作業対象とされた動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する。場所通知手段１０３は、構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する。
【００７６】
登録パターン用記述事項には、クライアント１５からの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び／又はループ処理に係る処理事項が含まれる。場所通知手段１０３は、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報、例えば登録パターン用記述事項とはどのような種類のものか、該登録パターン用記述事項とは具体的に何なのか等の説明情報を通知する。
【００７７】
図１１はフラグメント関連作業支援装置１１０の機能ブロック図である。フラグメント関連作業支援装置１１０は前述の第２のツールに相当する。フラグメント関連作業支援装置１１０は、集合算出手段１１１、判定手段１１２、及びフラグメント化可否情報通知手段１１３を有し、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対する処理を実施する。集合算出手段１１１は、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する。判定手段１１２は、集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する。フラグメント化可否情報通知手段１１３は、判定手段１１２の判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知する。
【００７８】
図１２はフラグメント関連作業支援装置１２０の機能ブロック図である。フラグメント関連作業支援装置１２０は前述の第３のツールに相当する。フラグメント関連作業支援装置１２０は、第１の集合算出手段１２１、第２の集合算出手段１２２、第３の集合算出手段１２３、及びＩＤ候補通知手段１２４を有し、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対する処理を行う。第１の集合算出手段１２１は、指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する。第２の集合算出手段１２２は、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する。第３の集合算出手段１２３は、集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する。ＩＤ候補通知手段１２４は、集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する。
【００７９】
図１３は図１２のフラグメント関連作業支援装置１２０に機能追加したものの機能ブロック図である。機能追加部分及び変更部分についてのみ説明する。フラグメント関連作業支援装置１２０は、第１のＩＤ候補割当て手段１２７、第２のＩＤ候補割当て手段１２８、及び第３のＩＤ候補割当て手段１２９を追加装備する。第１のＩＤ候補割当て手段１２７は、変数Ｇがパラメータ又はヘッダ情報であるか否かと言う第１の判定を行い、該判定の結果が「正」であれば、該変数Ｇを指定フラグメントＤ１についての第１の種類のＩＤ候補に割当てる。第２のＩＤ候補割当て手段１２８は、第１の判定が「否」であるとき変数Ｇの型がプリミティブ又はストリングであるか否かと言う第２の判定を行い、該判定結果が「正」であれば該変数Ｇを指定フラグメントＤ１についての第２の種類のＩＤ候補に割当てる。第３のＩＤ候補割当て手段１２９は、第１及び第２の判定結果が共に否であるとき、変数Ｇの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドＨの集合Ｉを変数Ｇに対応付け（以下、Ｇに対応付けられたＩを「Ｉ（Ｇ）」と言う。）、該Ｉ（Ｇ）を指定フラグメントＤ１についての第３の種類のＩＤ候補に割当てる。ＩＤ候補通知手段１２４は、指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する情報には、各ＩＤ候補の種類に係る情報を含める。
【００８０】
図１４はフラグメント関連作業支援装置１３２の機能ブロック図である。フラグメント関連作業支援装置１３２は前述の第３のツールに相当する。フラグメント関連作業支援装置１３２は、第１の引渡し設定手段１３３、第２の引渡し設定手段１３４、第３の引渡し設定手段１３５、第４の引渡し設定手段１３６、第５の引渡し設定手段１３７、第６の引渡し設定手段１３８、及び第７の引渡し設定手段１３９を有し、フラグメント化作業者がＩＤ候補通知手段１２４（図１３）から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対する処理を行う。第１の引渡し設定手段１３３は、該変数Ｇが第１の種類の変数であるか否かと言う第５の判定Ｓ５を行い、該判定Ｓ５の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない。第２の引渡し設定手段１３４は、該変数Ｇが第２の種類の変数であるか否かと言う第６の判定Ｓ６を行い、該判定Ｓ６の結果が「正」である場合、該変数Ｇが選択ＩＤであるか否かの第１の子判定Ｓ６＿１を行い、該判定第１の子判定Ｓ６＿１の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する。第３の引渡し設定手段１３５は、第１の子判定Ｓ６＿１の結果が「否」である場合に、該変数Ｇのスコープがページであるか否かの第１の孫判定Ｓ６＿１＿１を行い、該判定第１の孫判定Ｓ６＿１＿１の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する。第４の引渡し設定手段１３６は、第１の孫判定Ｓ６＿１＿１の結果が「否」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない。第５の引渡し設定手段１３７は、該変数Ｇが第３の種類の変数であるか否かと言う第７の判定Ｓ７を行い、該判定Ｓ７の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かと言う第２の子判定Ｓ７＿１を行い、該判定Ｓ７＿１の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する。第６の引渡し設定手段１３８は、第２の子判定Ｓ７＿１の結果が「否」である場合に該変数Ｇのスコープがページであるか否かの第２の孫判定Ｓ７＿１＿１を行い、該判定第２の孫判定Ｓ７＿１＿１の結果が「正」であれば、該指定フラグメントＤ１における該変数Ｇのスコープをリクエストへ変更する。第７の引渡し設定手段１３９は、第２の孫判定Ｓ７＿１＿１の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない。
【００８１】
図１５はフラグメント関連作業支援装置１４４の機能ブロック図である。フラグメント関連作業支援装置１４４は前述の第４のツールに相当する。フラグメント関連作業支援装置１４４は、第１のコンポーネント設定手段１４５、第２のコンポーネント設定手段１４６、及びポリシー・ファイル出力手段１４８を有し、フラグメント化作業者がＩＤ候補通知手段１２４（図１３）から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対する処理を行う。第１のコンポーネント設定手段１４５は、該変数Ｇが第１又は第２の種類である場合、該変数Ｇをコンポーネントに設定する。第２のコンポーネント設定手段１４６は、該変数Ｇが選択ＩＤが第３の種類の変数Ｇである場合は、該変数Ｇと該変数Ｇに対応付けられるメソッドＩ（Ｇ）との組から作られるパラメータ名をコンポーネントに設定する。ポリシー・ファイル出力手段１４８は、第１及び第２のコンポーネント設定手段１４６により設定されたコンポーネントをコンポーネント情報に含めたポリシー・ファイルを出力する。
【００８２】
なお、「ポリシー・ファイル」とWebページ・サーバ１２の処理との関係は次のように定義される。すなわち、Webページ・サーバ１２は、クライアント１５からのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断する。
【００８３】
図１６はフラグメント関連作業支援装置１５１の機能ブロック図である。フラグメント関連作業支援装置１５１はジャカルタ・プロジェクトのキャッシュ・タグリブ（Cache Taglib）用の第４のツールに相当する。フラグメント関連作業支援装置１５１は、第１０の引渡し設定手段１５２、第１１の引渡し設定手段１５３、及び第１２の引渡し設定手段１５４を有し、フラグメント化作業者がＩＤ候補通知手段１２４（図１３）から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対する処理を行う。第１０の引渡し設定手段１５２は、該変数Ｇが第１及び第２の種類の変数であるか否かと言う第１０の判定Ｓ１０を行い、該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない。第１１の引渡し設定手段１５３は、該変数Ｇが第３の種類の変数であるか否かと言う第１１の判定Ｓ１１を行い、該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かの第１１の子判定Ｓ１１＿１を行い、該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する。第１２の引渡し設定手段１５４は、第１１の子判定Ｓ１１＿１の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない。
【００８４】
次に、フラグメント関連作業支援方法の実施の形態について説明する。該方法はフラグメント化作業者がWebページ・サーバ１２による処理の実施に予め必要な作業を実施するときに該作業を支援する。なお、クライアント１５へ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分される。また、Webページ・サーバ１２は、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュ１３に格納し、クライアント１５へ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュ１３に有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュ１３に無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアント１５へ送信する処理を実施する。また、例えば、動的Webページ生成用ソース・ファイルはJSPファイルであり、動的Webページ生成用ソース・ファイル全体がフラグメント化されている。
【００８５】
図１７は第１のツール２８の機能を実現する方法のフローチャートである。Ｓ１６０では、動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する。Ｓ１６１では、作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する。Ｓ１６２では、構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する。
【００８６】
登録パターン用記述事項には、クライアント１５からの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び／又はループ処理に係る処理事項が含まれる。Ｓ１６２では、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知する。
【００８７】
図１８は第２のツール３８の機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対して、所定の処理を実施する。Ｓ１６５では、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する。Ｓ１６６では、集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定し、判定が「正」であれば、Ｓ１６７へ進み、「否」であれば、該方法を終了する。Ｓ１６７では、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知する。
【００８８】
図１９は第３のツール５５の機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対して所定の処理を行う。Ｓ１７１では、指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する。Ｓ１７２では、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する。Ｓ１７３では、集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する。Ｓ１７４では、集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する。
【００８９】
図２０は図１９のフローチャートに係る方法を改善した方法のフローチャートである。Ｓ１７７〜Ｓ１８２がＳ１７３とＳ１７４との間に挿入される。変数Ｇがパラメータ又はヘッダ情報であるか否かと言う第１の判定（Ｓ１７７）を行い、該判定の結果が「正」であれば、Ｓ１７８において、該変数Ｇは第１の種類の変数とし、第１の種類の変数Ｇは指定フラグメントＤ１についての第１の種類のＩＤ候補に割当てる。第１の判定（Ｓ１７７）が「否」であるとき、変数Ｇの型がプリミティブ又はストリングであるか否かと言う第２の判定（Ｓ１７９）を行い、該判定結果が「正」であれば、Ｓ１８０において、該変数Ｇを第２の種類の変数とし、第２の種類の変数Ｇは指定フラグメントＤ１についての第２の種類のＩＤ候補に割当てる。第１及び第２の判定結果が共に否であるとき、Ｓ１８２において、変数Ｇは第３の種類の変数とし、第３の種類の変数Ｇは該変数Ｇの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドＨの集合Ｉを変数Ｇに対応付け（以下、Ｇに対応付けられたＩを「Ｉ（Ｇ）」と言う。）、該Ｉ（Ｇ）を指定フラグメントＤ１についての第３の種類のＩＤ候補に割当てる。Ｓ１７４では、指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する情報には、各ＩＤ候補の種類に係る情報を含める。
【００９０】
図２１は第４のツール６０のＩＤ引渡し機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者がＩＤ候補通知ステップＳ１７４から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対して所定の処理を行う。Ｓ１８５では、該変数Ｇが第１の種類の変数であるか否かと言う第５の判定を行い、該判定の結果が「正」であれば、Ｓ１８６において、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１の引渡し設定を実施する。Ｓ１８７では、該変数Ｇが第２の種類の変数であるか否かと言う第６の判定を行い、該判定の結果が「正」である場合、Ｓ１８８において、該変数Ｇが選択ＩＤであるか否かの第１の子判定を行い、該判定の結果が「正」であれば、Ｓ１８９において、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第２の引渡し設定を実施する。Ｓ１８８における第１の子判定の結果が「否」である場合に、Ｓ１９０において、該変数Ｇのスコープがページであるか否かの第１の孫判定を行い、該判定の結果が「正」であれば、Ｓ１９１において、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第３の引渡し設定を実施する。Ｓ１９０における第１の孫判定の結果が「否」であれば、Ｓ１９２において、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第４の引渡し設定を実施する。Ｓ１９３では、該変数Ｇが第３の種類の変数であるか否かと言う第７の判定を行い、該判定の結果が「正」である場合に、Ｓ１９４において、該変数Ｇが選択ＩＤに係る変数であるか否かと言う第２の子判定を行い、該判定の結果が「正」であれば、Ｓ１９５において、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第５の引渡し設定を実施する。Ｓ１９４における第２の子判定の結果が「否」である場合に、Ｓ１９６において、該変数Ｇのスコープがページであるか否かの第２の孫判定を行い、該判定の結果が「正」であれば、Ｓ１９７において、該指定フラグメントＤ１における該変数Ｇのスコープをリクエストへ変更する第６の引渡し設定を実施する。Ｓ１９６における第２の孫判定の結果が「否」である場合に、Ｓ１９８において、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第７の引渡し設定を実施する。
【００９１】
図２２は第４のツール６０のポリシー・ファイル出力機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者がＩＤ候補通知ステップＳ１７４から通知された種類別ＩＤ候補の中から選択した１個以上の選択ＩＤに対して所定の処理を行う。Ｓ２０５では、第１又は第２の種類の変数である選択ＩＤは、該選択ＩＤをポリシー・ファイルのコンポーネントに設定する。Ｓ２０６では、第３の種類の変数に係る選択ＩＤは、該選択ＩＤと該選択ＩＤに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する。Ｓ２０７では、第１及び第２のコンポーネント設定ステップＳ２０５，Ｓ２０６の設定に基づくポリシー・ファイルを出力する。
【００９２】
図２３はジャカルタ・プロジェクトのキャッシュ・タグリブ（Cache Taglib）用の第４のツールの機能を実現する方法のフローチャートである。該方法は、フラグメント化作業者がＩＤ候補通知手段から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対して所定の処理を行う。Ｓ２１０では、該変数Ｇが第１及び第２の種類の変数であるか否かと言う第１０の判定を行い、該判定の結果が「正」であれば、Ｓ２１１において、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１０の引渡し設定を実施する。Ｓ２１２では、該変数Ｇが第３の種類の変数であるか否かと言う第１１の判定を行い、該判定の結果が「正」である場合に、Ｓ２１３において、該変数Ｇが選択ＩＤに係る変数であるか否かの第１１の子判定を行い該判定の結果が「正」であれば、Ｓ２１４において、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第１１の引渡し設定を実施する。Ｓ２１３における第１１の子判定の結果が「否」である場合に、Ｓ２１５において、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１２の引渡し設定を実施する。
【００９３】
図２４はプログラムを実行するためのハードウェア構成図である。本発明に係る装置の各機能を実現するプログラムは例えば図２４のハードウェアを使用して実行される。システム・バス２２０には、ＣＰＵ２２１、主記憶装置２２２及び入出力制御装置２２３が接続される。前述した方法は、コード化されたプログラムとして実行可能となっている。入出力制御装置２２３には、ハード・ディスク・インターフェース等が含まれ、ＣＰＵ２２１が実行する各種プログラムはハード・ディスク装置等にストアされている。プログラムは、ＣＰＵ２２１において実行されるのに先立ち、主記憶装置２２２にストアされる。ＣＰＵ２２１は、主記憶装置２２２の命令行を順次、読み出して、該プログラムを実行する。
【００９４】
まとめとして本発明の構成に関して以下の事項を開示する。
（１）：クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持手段、
作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する構文解析情報作成手段、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
（２）：動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする（１）記載のフラグメント関連作業支援装置。
（３）：前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする（１）記載のフラグメント関連作業支援装置。
（４）：前記登録パターン用記述事項には、クライアントからの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び／又はループ処理に係る処理事項が含まれることを特徴とする（１）記載のフラグメント関連作業支援装置。
（５）：前記場所通知手段は、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知することを特徴とする（１）記載のフラグメント関連作業支援装置。
【００９５】
（６）：クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する集合算出手段、
集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する判定手段、及び
前記判定手段の判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
（７）：動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする（６）記載のフラグメント関連作業支援装置。
（８）：前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする（６）記載のフラグメント関連作業支援装置。
【００９６】
（９）：クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対し、
指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する第１の集合算出手段、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する第２の集合算出手段、
集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する第３の集合算出手段、及び
集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知するＩＤ候補通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
（１０）：変数Ｇがパラメータ又はヘッダ情報であるか否かと言う第１の判定を行い該判定の結果が「正」であれば該変数Ｇは第１の種類の変数とし第１の種類の変数Ｇは指定フラグメントＤ１についての第１の種類のＩＤ候補に割当てる第１のＩＤ候補割当て手段、
第１の判定が「否」であるとき変数Ｇの型がプリミティブ又はストリングであるか否かと言う第２の判定を行い該判定結果が「正」であれば該変数Ｇを第２の種類の変数とし第２の種類の変数Ｇは指定フラグメントＤ１についての第２の種類のＩＤ候補に割当てる第２のＩＤ候補割当て手段、及び
第１及び第２の判定結果が共に否であるとき変数Ｇは第３の種類の変数とし第３の種類の変数Ｇは該変数Ｇの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドＨの集合Ｉを変数Ｇに対応付け（以下、Ｇに対応付けられたＩを「Ｉ（Ｇ）」と言う。）該Ｉ（Ｇ）を指定フラグメントＤ１についての第３の種類のＩＤ候補に割当てる第３のＩＤ候補割当て手段、
を有し、
前記ＩＤ候補通知手段は、指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する情報には、各ＩＤ候補の種類に係る情報を含めることを特徴とする（９）記載のフラグメント関連作業支援装置。
（１１）：フラグメント化作業者が前記ＩＤ候補通知手段から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１の種類の変数であるか否かと言う第５の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１の引渡し設定手段、
該変数Ｇが第２の種類の変数であるか否かと言う第６の判定を行い該判定の結果が「正」である場合、該変数Ｇが選択ＩＤであるか否かの第１の子判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第２の引渡し設定手段、
前記第１の子判定の結果が「否」である場合に、該変数Ｇのスコープがページであるか否かの第１の孫判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第３の引渡し設定手段、
前記第１の孫判定の結果が「否」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第４の引渡し設定手段、
該変数Ｇが第３の種類の変数であるか否かと言う第７の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かと言う第２の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第５の引渡し設定手段、
第２の子判定の結果が「否」である場合に該変数Ｇのスコープがページであるか否かの第２の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントＤ１における該変数Ｇのスコープをリクエストへ変更する第６の引渡し設定手段、及び
第２の孫判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第７の引渡し設定手段、
を有していることを特徴とする（１０）記載のフラグメント関連作業支援装置。
（１２）：前記Webページ・サーバによる前記処理には、前記Webページ・サーバは、クライアントからのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断すると言う処理が含まれており、
フラグメント化作業者が前記ＩＤ候補通知手段から通知された種類別ＩＤ候補の中から選択した１個以上の選択ＩＤに対して、
第１又は第２の種類の変数である選択ＩＤは、該選択ＩＤをポリシー・ファイルのコンポーネントに設定する第１のコンポーネント設定手段、
第３の種類の変数に係る選択ＩＤは、該選択ＩＤと該選択ＩＤに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第２のコンポーネント設定手段、及び
前記第１及び前記第２のコンポーネント設定手段の設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力手段、
を有していることを特徴とする（１０）記載のフラグメント関連作業支援装置。
（１３）：フラグメント化作業者が前記ＩＤ候補通知手段から通知された種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１及び第２の種類の変数であるか否かと言う第１０の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１０の引渡し設定手段、
該変数Ｇが第３の種類の変数であるか否かと言う第１１の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かの第１１の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第１１の引渡し設定手段、及び
第１１の子判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１２の引渡し設定手段、
を有していることを特徴とする（１０）記載のフラグメント関連作業支援装置。
（１４）：動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする（９）記載のフラグメント関連作業支援装置。
【００９７】
（１５）：クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
動的Webページ生成用ソース・ファイル内の記述範囲であって１個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項（以下、登録パターン用記述事項）に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持ステップ、
作業対象の動的Webページ生成用ソース・ファイル（以下、作業対象ソース・ファイル）の構文解析情報を作成する構文解析情報作成ステップ、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。
（１６）：動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする（１５）記載のフラグメント関連作業支援方法。
（１７）：前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする（１５）記載のフラグメント関連作業支援方法。
（１８）：前記登録パターン用記述事項には、クライアントからの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び／又はループ処理に係る処理事項が含まれることを特徴とする（１５）記載のフラグメント関連作業支援方法。
（１９）：前記場所通知ステップでは、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知することを特徴とする（１５）記載のフラグメント関連作業支援方法。
【００９８】
（２０）：クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＡ１に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＡ１外の記述部分に基づいて実行される操作Ｂ２が参照する変数の集合Ｃ１を算出する集合算出ステップ、
集合Ｃ１が、指定フラグメントＡ１内の記述部分に基づいて実行される操作Ｂ１からの影響を受ける変数を含むか否かを判定する判定ステップ、及び
前記判定ステップの判定が「正」であれば、指定フラグメントＡ１は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知ステップ、を有していることを特徴とするフラグメント関連作業支援方法。
（２１）：動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする（２０）記載のフラグメント関連作業支援方法。
（２２）：前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする（２０）記載のフラグメント関連作業支援方法。
【００９９】
（２３）：クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において１個以上のフラグメントに区分され、
Webページ・サーバは、１個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントＤ１に対し、
指定フラグメントＤ１内の記述部分に基づいて実行される操作Ｅ１が参照する変数の集合Ｆ１を算出する第１の集合算出ステップ、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントＤ１外の記述部分に基づいて実行される操作であって集合Ｆ１の変数に影響を及ぼす操作Ｅ２の集合Ｆ２を算出する第２の集合算出ステップ、
集合Ｆ２に含まれる操作Ｅ２が影響を与える変数であってかつ集合Ｆ１に属する変数の集合Ｆ３を算出する第３の集合算出ステップ、及び
集合Ｆ３に属する変数Ｇに係る情報を指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知するＩＤ候補通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。
（２４）：変数Ｇがパラメータ又はヘッダ情報であるか否かと言う第１の判定を行い該判定の結果が「正」であれば該変数Ｇは第１の種類の変数とし第１の種類の変数Ｇは指定フラグメントＤ１についての第１の種類のＩＤ候補に割当てる第１のＩＤ候補割当てステップ、
第１の判定が「否」であるとき変数Ｇの型がプリミティブ又はストリングであるか否かと言う第２の判定を行い該判定結果が「正」であれば該変数Ｇを第２の種類の変数とし第２の種類の変数Ｇは指定フラグメントＤ１についての第２の種類のＩＤ候補に割当てる第２のＩＤ候補割当てステップ、及び
第１及び第２の判定結果が共に否であるとき変数Ｇは第３の種類の変数とし第３の種類の変数Ｇは該変数Ｇの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドＨの集合Ｉを変数Ｇに対応付け（以下、Ｇに対応付けられたＩを「Ｉ（Ｇ）」と言う。）該Ｉ（Ｇ）を指定フラグメントＤ１についての第３の種類のＩＤ候補に割当てる第３のＩＤ候補割当てステップ、
を有し、
前記ＩＤ候補通知ステップでは、指定フラグメントＤ１についてのＩＤ候補としてフラグメント化作業者へ通知する情報には、各ＩＤ候補の種類に係る情報を含めることを特徴とする（２３）記載のフラグメント関連作業支援方法。
（２５）：フラグメント化作業者が前記ＩＤ候補通知ステップにおいて通知した種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１の種類の変数であるか否かと言う第５の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１の引渡し設定ステップ、
該変数Ｇが第２の種類の変数であるか否かと言う第６の判定を行い該判定の結果が「正」である場合、該変数Ｇが選択ＩＤであるか否かの第１の子判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第２の引渡し設定ステップ、
前記第１の子判定の結果が「否」である場合に、該変数Ｇのスコープがページであるか否かの第１の孫判定を行い該判定の結果が「正」であれば、該変数Ｇを該指定フラグメントＤ１への引渡しデータとして明示的に設定する第３の引渡し設定ステップ、
前記第１の孫判定の結果が「否」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第４の引渡し設定ステップ、
該変数Ｇが第３の種類の変数であるか否かと言う第７の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かと言う第２の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第５の引渡し設定ステップ、
第２の子判定の結果が「否」である場合に該変数Ｇのスコープがページであるか否かの第２の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントＤ１における該変数Ｇのスコープをリクエストへ変更する第６の引渡し設定ステップ、及び
第２の孫判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第７の引渡し設定ステップ、
を有していることを特徴とする（２４）記載のフラグメント関連作業支援方法。（２６）：前記Webページ・サーバによる前記処理には、前記Webページ・サーバは、クライアントからのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断すると言う処理が含まれており、
フラグメント化作業者が前記ＩＤ候補通知ステップにおいて通知した種類別ＩＤ候補の中から選択した１個以上の選択ＩＤに対して、
第１又は第２の種類の変数である選択ＩＤは、該選択ＩＤをポリシー・ファイルのコンポーネントに設定する第１のコンポーネント設定ステップ、
第３の種類の変数に係る選択ＩＤは、該選択ＩＤと該選択ＩＤに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第２のコンポーネント設定ステップ、及び
前記第１及び前記第２のコンポーネント設定ステップの設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力ステップ、
を有していることを特徴とする（２４）記載のフラグメント関連作業支援方法。（２７）：フラグメント化作業者が前記ＩＤ候補通知ステップにおいて通知した種類別ＩＤ候補の中から１個以上選択したものを選択ＩＤとし、集合Ｆ３に属する各変数Ｇに対し、
該変数Ｇが第１及び第２の種類の変数であるか否かと言う第１０の判定を行い該判定の結果が「正」であれば、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１０の引渡し設定ステップ、
該変数Ｇが第３の種類の変数であるか否かと言う第１１の判定を行い該判定の結果が「正」である場合に該変数Ｇが選択ＩＤに係る変数であるか否かの第１１の子判定を行い該判定の結果が「正」であれば、該変数Ｇに対応付けられるメソッドＩ（Ｇ）の実行結果を該指定フラグメントＤ１への引渡しデータとして明示的に設定する第１１の引渡し設定ステップ、及び
第１１の子判定の結果が「否」である場合に、指定フラグメントＤ１への引渡しデータについての明示的な設定は行わない第１２の引渡し設定ステップ、
を有していることを特徴とする（２４）記載のフラグメント関連作業支援方法。（２８）：動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする（２３）記載のフラグメント関連作業支援方法。
（２９）：（１）〜（１４）のいずれかのフラグメント関連作業支援装置における各手段としてコンピュータを機能させるためのフラグメント関連作業支援プログラム。
【０１００】
【発明の効果】
本発明によれば、１個の送信用Webページ部分を生成する一連の処理に係る、動的Webページ生成用ソース・ファイルの記述範囲に含まれる可能性がある記述事項が登録パターンとして保持され、作業対象の動的Webページ生成用ソース・ファイル内に対して、各登録パターンに対応する記述事項の場所を通知するようになっているので、フラグメント化作業者は作業対象の動的Webページ生成用ソース・ファイルを適切なフラグメントに能率よく区分することができる。
【図面の簡単な説明】
【図１】インターネット・システムの概略図である。
【図２】JSPとクライアントへ送られたHTMLファイルに基づきクライアントのディスプレイにおいて表示される表示内容との関係を示す図である。
【図３】第１のツールの構成説明図である。
【図４】第１のツールに登録されるパターン例及び該パターン例を構文解析して出力される構文木を示している。
【図５】入力JSPファイルを構文解析して出力される構文木と共に、該構文木において図４のパターンがマッチングした場所を示す図である。
【図６】第２のツールの構成説明図である。
【図７】第３のツールの構成説明図である。
【図８】第４のツールの構成説明図である。
【図９】フラグメント化作業過程におけるフラグメント化作業者と統合ツール８１との関係をまとめたものである。
【図１０】フラグメント関連作業支援装置の機能ブロック図である。
【図１１】フラグメント関連作業支援装置の機能ブロック図である。
【図１２】フラグメント関連作業支援装置の機能ブロック図である。
【図１３】図１２のフラグメント関連作業支援装置に機能追加したものの機能ブロック図である。
【図１４】フラグメント関連作業支援装置の機能ブロック図である。
【図１５】フラグメント関連作業支援装置の機能ブロック図である。
【図１６】フラグメント関連作業支援装置の機能ブロック図である。
【図１７】第１のツールの機能を実現する方法のフローチャートである。
【図１８】第２のツールの機能を実現する方法のフローチャートである。
【図１９】第３のツールの機能を実現する方法のフローチャートである。
【図２０】図１９のフローチャートに係る方法を改善した方法のフローチャートである。
【図２１】第４のツールのＩＤ引渡し機能を実現する方法のフローチャートである。
【図２２】第４のツールのポリシー・ファイル出力機能を実現する方法のフローチャートである。
【図２３】ジャカルタ・プロジェクトのキャッシュ・タグリブ（Cache Taglib）用の第４のツールの機能を実現する方法のフローチャートである。
【図２４】プログラムを実行するためのハードウェア構成図である。
【符号の説明】
１００：フラグメント関連作業支援装置１００、１０１：登録パターン保持手段、１０２：構文解析情報作成手段、１０３：場所通知手段、１１０：フラグメント関連作業支援装置、１１１：集合算出手段、１１２：判定手段、１１３：フラグメント化可否情報通知手段、１２０：フラグメント関連作業支援装置、１２１：第１の集合算出手段、１２２：第２の集合算出手段、１２３：第３の集合算出手段、１２４：ＩＤ候補通知手段、１２７：第１のＩＤ候補割当て手段、１２８：第２のＩＤ候補割当て手段、１２９：第３のＩＤ候補割当て手段、１３２：フラグメント関連作業支援装置、１３３：第１の引渡し設定手段、１３４：第２の引渡し設定手段、１３５：第３の引渡し設定手段、１３６：第４の引渡し設定手段、１３７：第５の引渡し設定手段、１３８：第６の引渡し設定手段、１３９：第７の引渡し設定手段、１４４：フラグメント関連作業支援装置、１４５：第１のコンポーネント設定手段、１４６：第２のコンポーネント設定手段、１４８：ポリシー・ファイル出力手段、１５１：フラグメント関連作業支援装置、１５２：第１０の引渡し設定手段、１５３：第１１の引渡し設定手段、１５４：第１２の引渡し設定手段。
【図１】
0003880543.tif 000014
【図２】
0003880543.tif 000015
【図３】
0003880543.tif 000016
【図４】
0003880543.tif 000017
【図５】
0003880543.tif 000018
【図６】
0003880543.tif 000019
【図７】
0003880543.tif 000020
【図８】
0003880543.tif 000021
【図９】
0003880543.tif 000022
【図１０】
0003880543.tif 000023
【図１１】
0003880543.tif 000024
【図１２】
0003880543.tif 000025
【図１３】
0003880543.tif 000026
【図１４】
0003880543.tif 000027
【図１５】
0003880543.tif 000028
【図１６】
0003880543.tif 000029
【図１７】
0003880543.tif 000030
【図１８】
0003880543.tif 000031
【図１９】
0003880543.tif 000032
【図２０】
0003880543.tif 000033
【図２１】
0003880543.tif 000034
【図２２】
0003880543.tif 000035
【図２３】
0003880543.tif 000036
【図２４】
0003880543.tif 000037