JP3880543B2 - Fragment related work support device, fragment related work support method, and fragment related work support program - Google Patents
Fragment related work support device, fragment related work support method, and fragment related work support program Download PDFInfo
- Publication number
- JP3880543B2 JP3880543B2 JP2003141512A JP2003141512A JP3880543B2 JP 3880543 B2 JP3880543 B2 JP 3880543B2 JP 2003141512 A JP2003141512 A JP 2003141512A JP 2003141512 A JP2003141512 A JP 2003141512A JP 3880543 B2 JP3880543 B2 JP 3880543B2
- Authority
- JP
- Japan
- Prior art keywords
- web page
- fragment
- variable
- determination
- work support
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000012634 fragment Substances 0.000 title claims description 434
- 238000000034 method Methods 0.000 title claims description 153
- 230000005540 biological transmission Effects 0.000 claims description 151
- 238000013467 fragmentation Methods 0.000 claims description 142
- 238000006062 fragmentation reaction Methods 0.000 claims description 142
- 230000008569 process Effects 0.000 claims description 41
- 238000004364 calculation method Methods 0.000 claims description 19
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims description 12
- 244000046052 Phaseolus vulgaris Species 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 20
- 230000008859 change Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、動的Webページをフラグメント化する作業に資するフラグメント関連作業支援装置、フラグメント関連作業支援方法及びフラグメント関連作業支援プログラムに係り、詳しくはフラグメント化作業者による各段階の作業を適切化及び能率化するフラグメント関連作業支援装置、フラグメント関連作業支援方法及びフラグメント関連作業支援プログラムに関するものである。
【0002】
【従来の技術】
[動的Webページのキャッシュ]
動的に生成されるウェブページをキャッシュするためには、URLのパラメータやHTTPのヘッダ情報に基づいてコンテンツを識別するIDを生成し、IDが同じ要求に対してはキャッシュにコピーしておいたコンテンツを返すようにすればよい。非特許文献1では、以下のポリシー・ファイル(cachespec.xml)に記述されたルールによってIDを生成する。
【0003】
【0004】
上記のルールを使うと、newscontroller サーブレットに対して、パラメータ action の値が view のときに、この値とパラメータ category の値に従って IDが生成される。IDが同じになる要求に対しては、キャッシュにコピーがある場合には、サーブレットを実行する代わりに、キャッシュ内のコンテンツが返される。
【0005】
次の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
【0006】
R1 と R2 ではサーブレットを実行して、結果をキャッシュにコピーする。R3 では R1 と同じIDが生成されるので、キャッシュからコンテンツを取り出して返答する。R4 では キャッシュとは無関係にサーブレットを実行する。
【0007】
[フラグメント化]
動的に生成されるページを構成するものの中には、変更の頻度が高い部分と変更の頻度が低い部分が存在している。ページ全体をキャッシュするには、もっとも変更の頻度が高い部分に合わせてコンテンツのコピーを識別する必要がある。このため多くのコピーを格納する必要が生じ、コピーは再使用され難くなる。すなわち、キャッシュの効果が低くなる。この問題を解決するには、変更の頻度に合わせてページを分割し、分割された部分を別々にキャッシュすればよい。分割されたページは JSP では <jsp:include>タグを使って実行時に結合される。
【0008】
このようなキャッシュを有効利用するための動的ウェブページを作成するための開発者の作業は次のようになる:
(1) フラグメント化する範囲の特定を行う。
(2) フラグメントに受け渡すデータの特定を行う。
(3) ページをフラグメントに分割する。
(4) キャッシュにコピーするフラグメントのためのIDを生成するルールを作成する。
【0009】
【非特許文献1】
IBM(株)が市販する”IBM WebSphere” の ダイナミック・フラグメント・キャッシュ(DynaCache)を解説するURL: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 〜』
【0010】
【発明が解決しようとする課題】
動的Webページをキャッシュする仕組みはすでにあり、それを有効利用するためのフラグメント化の方法は知られているが、実用規模のアプリケーションに対して効果的にフラグメント化することは、非特許文献1に開示の従来技術等によっては支障がある。すなわち、フラグメントの範囲が不適切となり、結果、キャッシュにおける各フラグメントのコピーを結合する際のオーバーヘッドが増大したり、キャッシュにおける各フラグメントのコピーの再使用性が悪化したりする。動的Webページのフラグメント化に当たっては、次の困難が存在する。
【0011】
(1)ページが複雑になると、画面のデザインとデータ処理のためのロジックが混在することになる。そのためフラグメント化によってアプリケーションの実行結果に影響がないかどうかは自明でない。或るフラグメントの範囲の指定に対してアプリケーションの動作が変化するかどうかを注意深くチェックする必要がある。
(2)フラグメントのコピーを識別するのに使えるデータは、フラグメントに渡されるパラメータやHTTPのヘッダ情報であるが、或るフラグメント範囲に対してパラメータやHTTPのヘッダ情報として使用することができるデータの種類は自明でない。したがって個々のフラグメント範囲に対して使用可能なデータを調べる必要がある。
(3)フラグメントの範囲が大きすぎると多くの異なるコピーが発生して、個々のコピーは再使用されにくくなる。一方でフラグメントの範囲が小さすぎると実行時のフラグメントの結合のオーバーヘッドが大きくなる。そのため適当な大きさの範囲でフラグメント化する必要があるが、或るフラグメント化でキャッシュが効果的に動作するかどうかはアプリケーションの動的な性質に依存する。したがってフラグメント化は本質的に試行錯誤が必要なプロセスである。ところがフラグメントの範囲を変化させるたびに(1)と(2)が必要になるので、手作業でフラグメント化を繰り返すことは難しい。フラグメント化の判断に必要な情報をフラグメントの範囲の変更に合わせて直ちにユーザにフィードバックするような、対話的にフラグメント化を支援する手法や装置はなかった。
【0012】
本特許出願時では未公知であるが、本特許出願人が特許出願済みのJSPスプリッティング・ツール(JSP Splitting Tool )は、データの依存関係がないフラグメントの特定と分割に使用できる。しかし動的ウェブページのキャッシュのためにはデータによって挙動の異なる部分をフラグメントにすることによって効果を得るので、データの依存関係を積極的に使うように分割する必要がある。そのため、JSPスプリッティング・ツールを、動的Webページの適切なフラグメント化に使用することには支障がある。
【0013】
本発明の目的は、フラグメント化作業者による動的Webページの適フラグメント化作業を適切に支援できるフラグメント関連作業支援装置、フラグメント関連作業支援方法及びフラグメント関連作業支援プログラムを提供することである。
【0014】
【課題を解決するための手段】
本発明のフラグメント関連作業支援装置、方法及びプログラムは、フラグメント化作業者がWebページ・サーバの処理に予め必要な作業を実施するときに該作業を支援する。クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分されている。Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施する。
【0015】
本発明のフラグメント関連作業支援装置は、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対する処理を実施し、次のものを有している。
動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持手段、
作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する構文解析情報作成手段、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知手段。
【0016】
本発明の別のフラグメント関連作業支援装置は次のものを有している。
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する集合算出手段、
集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する判定手段、及び
前記判定手段の判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知手段。
【0017】
本発明の他のフラグメント関連作業支援装置は、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対する処理を実施するものであり、次のものを有している。
指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する第1の集合算出手段、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する第2の集合算出手段、
集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する第3の集合算出手段、、及び
集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知するID候補通知手段。
【0018】
本発明のフラグメント関連作業支援方法は次のステップを有している。
動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持ステップ、
作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する構文解析情報作成ステップ、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知ステップ。
【0019】
本発明の別のフラグメント関連作業支援方法は、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対する処理を実施し、次のステップを有している。
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する集合算出ステップ、
集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する判定ステップ、及び
前記判定ステップの判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知ステップ。
【0020】
本発明の他のフラグメント関連作業支援方法は、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対する処理を実施し、次のステップを有している。
指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する第1の集合算出ステップ、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する第2の集合算出ステップ、
集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する第3の集合算出ステップ、及び
集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知するID候補通知ステップ。
【0021】
本発明のフラグメント関連作業支援プログラムは、前述の各フラグメント関連作業支援装置における各手段としてコンピュータを機能させる。あるいは、前述の各フラグメント関連作業支援方法における各ステップをコンピュータに実行させる。
【0022】
【発明の実施の形態】
以降、本発明を実施の形態について具体的に説明する。なお、本発明は以下の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【0023】
図1はインターネット・システム10の概略図である。Webページ・サーバ12は、記憶装置としてのキャッシュ13を装備している。Webページ・サーバ12は、インターネット14を介して多数のクライアント15から送信コンテンツとしての動的Webページについての送信要求を受け付ける。なお、Webページ・サーバは、インターネット14の代わりにイントラネットへ接続され、イントラネットを介して接続されている各クライアントからの動的Webページについての送信要求を受け付けるようになっていてもよい。
【0024】
動的Webページ生成用ソース・ファイルは、クライアント15への送信用Webページを生成する処理を含み、かつ少なくとも一部がフラグメントに設定されている。すなわち、後述の一般的な動的Webページ生成用ソース・ファイル(以下、「第1の動的Webページ生成用ソース・ファイル」と言う。)では、動的Webページ生成用ソース・ファイル全体がフラグメント化されているのに対し、ジャカルタ・プロジェクト(Jakarta Project)のキャッシュ・タグリブ(Cache Taglib)用の動的Webページ生成用ソース・ファイル(以下、「第2の動的Webページ生成用ソース・ファイル」と言う。)では、動的Webページ生成用ソース・ファイルはその一部のみがフラグメント化される。Webページ・サーバ12は、1個又は2個以上のフラグメントの各々に基づいて生成されたWebページ部分のコピーをキャッシュ13に格納し、クライアント15からのWebページの送信要求に対して、送信要求Webページに係るフラグメントに対応するコピーがキャッシュ13に有るか否かを判断し、有れば、該送信用Webページ部分は該コピーを割り当て、また、無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアント15へ送信する処理を実施する。
【0025】
なお、動的Webページ生成用ソース・ファイルは例えばJSP(Java Server Pages:なお「Java」は登録商標である。)ファイルであり、クライアント15への送信用Webページは例えばHTML(HyperText Markup Language)ファイルである。
【0026】
図2はJSPファイル19とクライアント15からの該JSPファイル19の呼び出しに対してクライアント15のディスプレイにおいて表示される表示内容23との関係を示している。JSPファイル19は動的Webページ生成用ソース・ファイルの一例であり、該JSPファイル19から生成されるHTMLは、該JSPファイル19を基にして生成されてWebページ・サーバ12からクライアント15へ送信される送信用Webページの一例である。或るクライアント15は、JSPファイル19の送信要求を出す。Webページ・サーバ12は、その送信要求を受け付けて、JSPファイル19に係るサーブレットを処理する。該当のサーブレットが無いときは、JSPからサーブレットを生成し、サーブレットを処理する。サーブレットを処理することによりHTMLファイルが生成され、該HTMLファイルがWebページ・サーバ12からクライアント15へ送信され、クライアント15のディスプレイに表示内容23が表示される。フラグメント化されたJSPからは、フラグメントの個数に等しいサーブレットと、それを結合して全体のHTMLファイルを作るサーブレットとが生成される。動的Webページ生成用ソース・ファイル19は、その全体が、重複を排除されつつ先頭から末尾へ順番にフラグメント20a,20b,・・・20nに区分される。一方、表示内容23は、その全体が、重複を排除されつつ内容部分24a,24b,・・・24mに区分されている。1個のJSPファイル19に対して、nは固定されているが、mは種々の条件によって変化する。すなわち、条件によっては、或る1個のフラグメント24に対応する1個のサーブレットは、HTML部分をまったく生成しないこともあるし、2個以上のHTML部分を生成することもある。
【0027】
注意すべきことがある。フラグメント20の中には、動的な送信用Webページ部分ではなく、静的な送信用Webページ部分に対応するフラグメントもあり得ることである。後述のアルゴリズム2〜4は、静的な送信用Webページ部分に対応するフラグメントに対しても、支障なく対処できるようになっているが、このことについては、後述する。
【0028】
本発明に係るフラグメント関連作業支援装置は第1〜第4のツールを装備する。各ツールの機能は次の通りである。
第1のツール:フラグメント抽出のヒントをフラグメント化作業者に提示する。第2のツール:フラグメント化作業者が作業対象のJSPにおいて指定したフラグメント候補に対して、該フラグメントの正当性をチェックする。
第3のツール:フラグメント化作業者が作業対象のJSPにおいて指定したフラグメントに対して、キャッシュIDの指定に使用できるデータを特定する。
第4のツール:フラグメントとキャッシュIDを生成するルールを作成する。
【0029】
第1のツールは、JSPページの中からフラグメント化を考慮すべき部分のヒントを提示する。第1のツールが実装するアルゴリズム1は次の通りである。
【0030】
パターンとしては例えば(1) パラメータやヘッダ情報へのアクセス、(2) Beanへのアクセス、及び(3) ループがある。各々について詳述する。
【0031】
(1) パラメータやヘッダ情報へのアクセス:
パラメータやヘッダ情報へのアクセスがあると、そのアクセスの近辺ではパラメータやヘッダ情報に依存した処理が行われ、それ以外の部分と性質が異なる可能性が高い。たとえば次のようなものをパターンP1,P2として登録しておく。
P1: request.getParameter(...)
P2: <jsp:setProperty name=... property=... param=.../>
【0032】
上記のパターンに対して、次のような入力JSPページを考える。
L1: <%
L2: String user = request.getParameter("user");
L3: if (user.equals("")) {user = defaultUser;}
L4: out.println("User: " + user);
L5: %>
【0033】
P1とL2 がマッチし、L2に対して"パラメータのアクセス"というP1の説明がユーザに提示される。
【0034】
(2) Bean へのアクセス:
Beanへのアクセスがあると、その Bean に依存した出力を行う可能性が高い。次のようなものをパターンとして登録しておく。
P5: <jsp:getProperty ../>
P6: <bean:write ../>
【0035】
(3) ループ:
ループの内側では、繰り返しごとに異なる出力を行う可能性が高い。次のようなものをパターンとして登録しておく。
P3: for (...; ...; ...) {...}
P4: <logic:iterate id=... name=...>...</logic:iterate>
パターンは上記のものに限られたわけではなく、必要に応じてデータベースに追加する。特に一般的な知識だけでなく、プロジェクト固有のタグライブラリに関する情報を追加することによって、より適切なヒントを提示するようにできる。
【0036】
図3は第1のツール28の構成説明図である。JSP構文解析器30は、入力されたJSPページ29に対して、該JSPページ29の構文を解析し、解析結果としてのJSP構文木31を出力する。パターン・データベース32には、JSPページにおいて実行出力のバリエーション・再利用度・変更頻度などが他の部分と異なる可能性が高い箇所のヒューリスティクス(heuristics)に基づいたパターンが登録されている。パターン検査器33は、JSP構文木31とパターン・データベース32の各パターンがJSP構文木31の各部分とのマッチングを行い、JSPページに対する注釈表34を出力する。JSPページに対する注釈表34には、JSPページ29においてパターン・データベース32のパターンとマッチする場所、及びマッチしたパターンに結び付けられている説明が含まれ、フラグメント化作業者はJSPページに対する注釈表34よりJSPページ29におけるフラグメント化可能な場所についての情報を得る。
【0037】
第1のツール28では、JSP構文解析のために、構文木を利用しているが、それに限定されず、他の構文解析方法も適宜、利用可能である。例えば、JSPページ29におけるステートメントを適当に区分し、区分と所定の登録パターンとの対比によって、構文解析することも可能である。
【0038】
図4(a)及び(b)は第1のツール28に登録されるパターン例及び該パターン例を構文解析して出力される構文木を示している。次は入力JSPファイルの内容例を示す。図5は該入力JSPファイルを構文解析して出力される構文木と共に、該構文木において図4のパターンがマッチングした場所を示している。マッチング場所は図5において破線の囲いZ1で示されている。
[入力JSPファイル]
<HTML>
<HEAD>
<TITLE>sample.jsp</TITLE>
</HEAD>
<% String userName = request.getParameter("user_name"); %>
<BODY>
User : <%= userName %>
</BODY>
</HTML>
【0039】
第2のツールは第1のツールで得られたフラグメント化のヒントを基にして、フラグメント化作業者はフラグメントの範囲を指定する。第2のツールではユーザが指定した範囲でフラグメント化可能かどうかをチェックする。フラグメント内での操作の影響がフラグメント外にある場合には、フラグメントを実際に実行して出力を得るのと、フラグメントのキャッシュのコピーから出力を得るのでは結果が異なる可能性がある。そのため、そのような範囲ではフラグメント化できないと判断する。入力として与えられた JSPページに対して、データ依存解析と制御依存解析を行うことによって操作の影響を求める。Bean やタグライブラリのソースコードがない場合には、逆コンパイラを使ってバイトコードを解析する。
【0040】
第2のツールが実装するアルゴリズム2は次の通りである。
【0041】
要約すると、アルゴリズム2では、フラグメント化作業者が入力JSPファイルにおいてフラグメントとして指定した範囲Y1とY1以外の範囲Y2とに入力JSPファイルを区分し、Y1内の操作が影響を与える変数でありかつY2の操作が参照する変数が存在するならば、該範囲Y1のフラグメント化は不可能と判断し、存在しなければ、該範囲Y1のフラグメント化は可能と判断する。
【0042】
フラグメント化不可能との判断がなされた場合には、その旨がフラグメント化作業者に報告され、フラグメント化作業者は範囲の指定のやり直しを行う。これに対して、フラグメント化可能との判断がなされた場合には、フラグメント化作業者は第3のツールを使用する次の段階へ作業を進める。
【0043】
フラグメント化作業者が、動的な送信用Webページ部分に対応しない、すなわち静的な送信用Webページ部分に対応するフラグメントに係る範囲Y1を入力JSPファイルにおいて指定した場合、上記アルゴリズム2においてSfは空集合φとなり、if (Q ∩ Sf ≠ φ) は「否」となる。結果、フラグメント化作業者へは、フラグメント化可能の旨が通知される。
【0044】
図6は第2のツール38の構成説明図である。第2のツール38はJSPページ29及びJSPページの範囲の指定46を入力される。図6のJSPページ29は図3のJSPページ29と同一である。JSPコンパイラ39はJSPページ29をJavaコード40へ変換する。JSPコンパイラ39は、Javaコンパイラとは異なる。Javaコンパイラは、Javaプログラムのソース・コードとしてのJavaコードをバイトコードへ変換するものであり、JSPコンパイラ39は、JSPページ29をソース・コードとしてのJavaコードへ変換するものである。Java構文木解析器41はJavaコード40の構文を解析し、Javaコード40からJava構文木42を生成する。JSPコンパイラ39は、また、JSPページとJavaコードとの対応表43を生成する。図6において点線の境界線より上の各要素における処理は第2のツール38において1度、実行されるのみであり、境界線より下の各要素における処理はフラグメント化作業者がJSPページの範囲の指定46を変更するごとに繰返し実行される。フラグメント化作業者は、JSPページ29を表示したコンピュータ画面においてフラグメントの範囲を指定する。フラグメント化作業者によるフラグメント範囲指定は、図3のJSPページに対する注釈表34の出力に基づく。JSPページからJavaコードへの対応変換器47は、JSPページとJavaコードとの対応表43とJSPページの範囲の指定46とを照合して、Javaコードの範囲の指定48を実施する。Javaコードの範囲の指定48は、Javaコード40においてJSPページの範囲の指定46の対応範囲に相当する。操作の影響検査器51は、Java構文木42とJavaコードの範囲の指定48とからの情報に基づいて前述のアルゴリズム2を実行し、フラグメント化可否のフラグ52を出力する。フラグメント化可否のフラグ52は、JSPページの範囲の指定46がフラグメント化可能か否かについてのフラグメント化作業者へ通知に対応するするものである。
【0045】
第3のツールは、第2のツールにおいてフラグメント化可能と判断された、JSPページ29上の領域に対してキャッシュIDの指定に使用できるデータの特定を行う。キャッシュIDの指定に使用できるデータは次のもののいずれかである。
(a)もとのJSPページに対するパラメータかHTTPヘッダ情報である。
(b)フラグメントに渡されるデータで、プリミティブ型(booleanやintなど)かString型である。
(c)フラグメントに渡されるデータで、返値がプリミティブ型(booleanやintなど)かString型であるメソッドを持っている。
【0046】
次のアルゴリズム3は、上記の条件(a)〜(c)に合うデータを保持している変数を計算するものであり、第3のツールに実装されるものである。(c)のデータに関しては、変数とメソッドの組を計算する。また以降の第4のツール使用のために、フラグメントに渡されるデータを保持する変数すべても計算する。パラメータとヘッダ情報も変数として処理する。そのため入力JSPの最初の文が、仮想的にすべてのパラメータとヘッダ情報に影響を与える操作であるとみなす。
【0047】
【0048】
Va, Vb, Vc, Mc(v) の要素がフラグメント化作業者へ報告される。フラグメント化作業者は報告されたデータを使ってフラグメントのキャッシュIDの指定ができると判断した場合には、次の第4のツール使用の段階へ進む。第3のツールがキャッシュIDの指定には不十分と判断した場合には、フラグメント化作業者はフラグメントの範囲の指定をやり直す。このやり直しにおいては、フラグメント化作業者は、再度、第2及び第3のツールを使用することになる。
【0049】
アルゴリズム3において、「vのクラス」とは、vの型が、プリミティブやStringでなく、クラスである場合に、該クラスのことを言っている。例えば、オブジェクト指向言語のJavaにおいて、abcdなるクラスが定義され、abcdのインスタンスvを生成するときに使用される「abcd v = new abcd()」なる記述に対して、abcdは変数vの型であり、abcdはvのクラスである。「vのクラスとスーパークラスのすべてのメソッド」における「vのクラスとスーパークラス」との関係は、vのクラスは該スーパークラスを継承しているクラスとなっている関係を意味する。
【0050】
アルゴリズム3を要約すると次の通りである。入力JSPファイルに対して、フラグメント化作業者がフラグメントとして指定した記述範囲をY1とし、Y1以外の記述範囲Y2とする。すなわち、入力JSPファイルをY1,Y2の2個に区分する。範囲Y1内の操作が参照する変数X1に対して、範囲Y2内の操作Wが影響を与えるとする。すべての変数X1の内、操作Wが影響を与える変数をX2とすると、X2をキャッシュIDの候補としてフラグメント化作業者に報告する。変数X2が、パラメータやヘッダ情報でなく、また、X2の型がプリミティブやStringでないときは、X2は、その型となっているクラス及び該クラスのスーパークラスに含まれるメソッドに対応付けられる。そして、該メソッドの返値の型がプリミティブかStringであれば、X2と該メソッドの組をキャッシュIDの候補とする。
【0051】
図7は第3のツール55の構成説明図である。第3のツール55において、図6の第2のツール38の要素と同一のものは同符号で示す。データ依存解析器56は、アルゴリズム3の実行において、フラグメント化作業者がJSPページにおいてフラグメントとして指定した範囲Y1における操作に係る情報はJavaコードの範囲の指定48の入力に基づき把握し、また、変数X1,X2、及び操作W等のその他の情報に関してはJava構文木42から入力に基づき把握する。データ依存解析器56からの出力57は、変数表V,Va,Vb,Vc及びメソッド表Mc(v)を含む。
【0052】
フラグメント化作業者は、第3のツールの出力結果に対して、実際にキャッシュIDを生成するためのデータの指定を行う。このデータ指定においては所定のユーザ・インターフェースが利用される。第3のツールの実行結果が次のものであるとする。
Va = {user}
Vb = {id}
Vc = {thinkPad, thinkPadDB}
Mc(thinkPad) = {getName(), getPrice(), getName()}
Mc(thinkPadDB) = {getId()}
【0053】
ユーザ・インターフェースは次のチェックリストをコンピュータ画面に表示する。
【0054】
フラグメント化作業者はキャッシュID を生成するために使うデータを1個又は2個以上、指定する。データの指定はフラグメント化作業者が”□”を選択することにより行われる。選択された”□”はコンピュータ画面上において”■”に変化する。次は、フラグメント化作業者によるデータ指定が行われたチェックリストを示している。
【0055】
ここで選択された項目の変数は、次の第4のツールの使用のために、Vs = {id, thinkPad}、メソッドを Ms(thinkPad) = {getName()} として記憶される。この記録は後述の図8の第4の入力62に対応する。なお、Ms(thinkPad)は、変数thinkPadに係るメソッドMsを意味し、Ms(thinkPad)におけるthinkPadは、Java言語等における引数を意味するものではない。
【0056】
第4のツールは、データが正しく各フラグメントに伝播されるように、またキャッシュIDの生成に必要な値が各フラグメントのパラメータに現れるように、元のJSPページを分割する。なお、フラグメント化処理により、元のJSPページからは、1個の親のJSPページと複数個のフラグメントJSPページとが生成される。データの属性に応じて、以下のように処理方法を選択する。親JSPページのパラメータはフラグメントに自動的に渡されるので、なにもしない。また、スコープが application, session, requestのデータは明示しなくても伝播されるので、それらがキャッシュIDの生成に使われない場合には、なにもしない。第4のツールが実装するアルゴリズム4は次の通りである。なお、アルゴリズム4には後の説明の便宜上、行番号100〜126を左端に付している。
【0057】
【0058】
アルゴリズム4を要約すると、次の通りである。まず、vがVaに属しているか否かの判定1が行われる(行番号101)。判定1の結果が「正」であれば、行番号102の[なにもしない]が実行される。判定1が否であれば、vがVbに属しているか否かの判定2が行われる(行番号103)。判定2の結果の結果が「否」であれば、vがVcに属しているか否かの判定3が行われる(行番号113)。判定2の結果が「正」である場合、さらに、vがVsに属しているか否かの判定21が行われる(行番号104)。判定21の結果が「正」である場合は、行番号105の(1)が実行され、「否」である場合は、vのスコープがpageであるときは行番号108の(1)が実行され、また、vのスコープがpageでないときは行番号110の[なにもしない]が実行される。判定3の結果が「正」である場合、さらに、vがVsに属しているか否かの判定3aが行われる(行番号114)。判定3aの結果が「正」である場合は、行番号116の(2)が実行され、また、「否」である場合は、vのスコープがpageであるか否かの判定3aaが行われる(行番号119)。判定3aaの結果が「正」である場合は、行番号120の(3)が実行され、また、「否」である場合は、行番号122の[なにもしない]が実行される。
【0059】
なお、アルゴリズム3,4は、静的な送信用Webページ部分に対応するフラグメントに対しても、支障なく対処できるようになっている。フラグメント化作業者が、動的な送信用Webページ部分に対応しない、すなわち静的な送信用Webページ部分に対応するフラグメントに係る範囲Y1を入力JSPファイルにおいて指定した場合、アルゴリズム3では、フラグメントに渡されるデータを含む変数の集合Vは空集合φとなるので、Va, Vb, Vc もすべて空集合になる。アルゴリズム4では、アルゴリズム3の結果を受けて、範囲Y1に係るフラグメントに対してはパラメータなどの指定がない、すなわち、常に同じ値のキャッシュIDを生成するルールが出力されることになる。こうして、該フラグメントについては1個のコピーのみ存在し、該1個のコピーが、該フラグメントに係る送信用Webページ部分として使用されることになる。
【0060】
アルゴリズム4におけるフラグメントへのデータの渡し態様は、「なにもしない」を除くと、以下の(1)〜(3)の3個あり、各態様について詳述する。なお、フラグメント fragment.jspとは、フラグメント化対象のJSPページのフラグメントファイルであり、親JSPとは、フラグメント fragment.jspを結合して、フラグメント化対象のJSPページと同一の送信用Webページを生成するJSPファイルである。
【0061】
(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") ... %>
...
------------------------------------------------------------------
【0062】
変数がプリミティブ型の場合、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")... %>
...
------------------------------------------------------------------
【0063】
(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>
...
------------------------------------------------------------------
パラメータ名は他のパラメータと重ならないように生成する。またこのパラメータの値はフラグメントでは不要であるので、フラグメントではこのパラメータにアクセスするコードは挿入されない。
【0064】
(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" />
...
------------------------------------------------------------------
【0065】
第4のツールは、キャッシュIDを生成するルールの出力する機能も装備する。すなわち、第4のツールは、フラグメント化作業者が指定したキャッシュIDの生成に使用する変数の集合 Vs とメソッドの集合Ms(v)を使ってキャッシュ・ポリシーを出力する。第4のツールは次の第5のアルゴリズムも実装する。
【0066】
【0067】
これにより、入力が Vs = {id, thinkPad}、Ms(thinkPad) = {getName()} の場合、次のようなキャッシュ・ポリシー・ファイルが生成される。
【0068】
図8は第4のツール60の構成説明図である。第4のツール60において、図3及び図6の要素と同一の要素は、図3及び図6の要素と同一の符号を付している。第3の入力61は、図7の第3のツール55の出力57である。JSPフラグメント化器65は、JSP構文木31と第1〜第4の入力29,46,61,62とに基づいて変更されたJSP構文木70及びフラグメント構文木71を生成する。JSPフラグメント化器65は、JSPページそのものではなく、JSP構文木31を処理するようになっているので、JSPフラグメント化器65が出力する変更されたJSP構文木70及びフラグメント構文木71も構文木になっている。JSP出力器72は、変更されたJSP構文木70及びフラグメント構文木71をそれぞれ変更されたJSPページ73及びフラグメントJSPページ74へ変換する。変更されたJSPページ73は前述の親JSP main.jspに対応し、フラグメントJSPページ74は前述のfragment.jsp等のフラグメント化ファイルに対応し、変更されたJSPページ73は<jsp:include name="fragment.jsp">等を使って、複数個のフラグメントJSPページ74を結合するようになっている。キャッシュ・ポリシー生成器77は、前述のアルゴリズム5を実現するものであり、キャッシュ・ポリシー・ファイル78は前述の[cachespec.xml]に対応する。
【0069】
図9はフラグメント化作業過程におけるフラグメント化作業者80と統合ツール81との関係をまとめたものである。統合ツール81は、第1のツール28、第2のツール38、第3のツール55、及び第4のツール60を含む。フラグメント化作業者80が行う各作業はフラグメント化作業者80の下側において作業順に上から下へ示されている。フラグメント化作業者80から各ツールへ渡す情報はフラグメント化作業者80から各ツールへ向く矢印で、また、各ツールが処理結果としてフラグメント化作業者80へ通知する事項は各ツールからフラグメント化作業者80へ向く矢印で示されている。
【0070】
今まで説明したJSPページのフラグメント化は、JSPページの全体をフラグメント化するものであったが、JSPページの一部のみをフラグメント化して、フラグメント化した部分に係るコピーのみをキャッシュにコピー場合にも、前述した第1〜第4のツールを適宜、使用できる。ジャカルタ・プロジェクト(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を生成する式を指定する。例示すると、次の通りである。
【0071】
----------------------------------------------
...section A...
<cache:cache name="ad" key="${thinkPadId}">
...section B...
</cache:cache>
...section C...
----------------------------------------------
【0072】
上記のページでは、section B の範囲がキャッシュの対象になり、ad という名前がつけられる。範囲の実行結果のコピーは変数 thinkPadId の値によって識別される。同じキーを生成する場合には、キャッシュにコピーがあればsection Bは実行されず、かわりにコピーが結果として出力される。キャッシュを意識しないで作成された JSP ページに Cache Taglib を埋め込むときに、タグを埋め込む場所を決定するのとキー表現を作成するのに本発明の手法を使うことができる。タグを埋め込む場所を決定することがフラグメントの範囲を決めることに対応し、キー表現を作成することがキャッシュIDを生成するルールの出力に対応する。フラグメント抽出のヒントの提示、フラグメント化の正当性のチェック、キャッシュIDの指定に使用できるデータの特定の各ツールは今まで説明したものと同じである。異なる点は、Cache Taglib の場合はキャッシュされる範囲が別のページに分離されないことである。そのため、前述のアルゴリズム4は次のアルゴリズム4aのように簡略化され、メソッドの実行結果を、キーを作るのに使うときだけローカル変数に格納するようにする。
【0073】
【0074】
フラグメント関連作業支援装置の他の実施の形態について説明する。フラグメント関連作業支援装置は、フラグメント化作業者がWebページ・サーバの処理に関与するフラグメントに関連する作業を実施するときに該作業を支援する。Webページ・サーバは、例えば図1のWebページ・サーバ12である。Webページ・サーバ12は、前述したように、クライアント15へ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュ13に格納し、クライアント15へ送信する送信用Webページに利用可能な送信用Webページ部分のコピーがキャッシュ13に有れば、該送信用Webページ部分は該コピーとして、全体の送信用Webページを送信するようになっている。動的Webページ生成用ソース・ファイルは、通常は、図2のJSPファイル19により説明したように、動的Webページ生成用ソース・ファイル全体がフラグメント化されている。前述したように、ジャカルタ・プロジェクト(Jakarta Project)のキャッシュ・タグリブ(Cache Taglib)用の動的Webページ生成用ソース・ファイルでは、動的Webページ生成用ソース・ファイルの全体ではなく一部のみが適宜、フラグメントに設定される。
【0075】
図10はフラグメント関連作業支援装置100の機能ブロック図である。フラグメント関連作業支援装置100は前述の第1のツールに相当する。フラグメント関連作業支援装置100は、登録パターン保持手段101、構文解析情報作成手段102、及び場所通知手段103を有している。登録パターン保持手段101は、動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分の生成に係る一連の処理を実施する記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する。構文解析情報作成手段102は、フラグメント化作業対象とされた動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する。場所通知手段103は、構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する。
【0076】
登録パターン用記述事項には、クライアント15からの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び/又はループ処理に係る処理事項が含まれる。場所通知手段103は、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報、例えば登録パターン用記述事項とはどのような種類のものか、該登録パターン用記述事項とは具体的に何なのか等の説明情報を通知する。
【0077】
図11はフラグメント関連作業支援装置110の機能ブロック図である。フラグメント関連作業支援装置110は前述の第2のツールに相当する。フラグメント関連作業支援装置110は、集合算出手段111、判定手段112、及びフラグメント化可否情報通知手段113を有し、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対する処理を実施する。集合算出手段111は、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する。判定手段112は、集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する。フラグメント化可否情報通知手段113は、判定手段112の判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知する。
【0078】
図12はフラグメント関連作業支援装置120の機能ブロック図である。フラグメント関連作業支援装置120は前述の第3のツールに相当する。フラグメント関連作業支援装置120は、第1の集合算出手段121、第2の集合算出手段122、第3の集合算出手段123、及びID候補通知手段124を有し、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対する処理を行う。第1の集合算出手段121は、指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する。第2の集合算出手段122は、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する。第3の集合算出手段123は、集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する。ID候補通知手段124は、集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する。
【0079】
図13は図12のフラグメント関連作業支援装置120に機能追加したものの機能ブロック図である。機能追加部分及び変更部分についてのみ説明する。フラグメント関連作業支援装置120は、第1のID候補割当て手段127、第2のID候補割当て手段128、及び第3のID候補割当て手段129を追加装備する。第1のID候補割当て手段127は、変数Gがパラメータ又はヘッダ情報であるか否かと言う第1の判定を行い、該判定の結果が「正」であれば、該変数Gを指定フラグメントD1についての第1の種類のID候補に割当てる。第2のID候補割当て手段128は、第1の判定が「否」であるとき変数Gの型がプリミティブ又はストリングであるか否かと言う第2の判定を行い、該判定結果が「正」であれば該変数Gを指定フラグメントD1についての第2の種類のID候補に割当てる。第3のID候補割当て手段129は、第1及び第2の判定結果が共に否であるとき、変数Gの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドHの集合Iを変数Gに対応付け(以下、Gに対応付けられたIを「I(G)」と言う。)、該I(G)を指定フラグメントD1についての第3の種類のID候補に割当てる。ID候補通知手段124は、指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する情報には、各ID候補の種類に係る情報を含める。
【0080】
図14はフラグメント関連作業支援装置132の機能ブロック図である。フラグメント関連作業支援装置132は前述の第3のツールに相当する。フラグメント関連作業支援装置132は、第1の引渡し設定手段133、第2の引渡し設定手段134、第3の引渡し設定手段135、第4の引渡し設定手段136、第5の引渡し設定手段137、第6の引渡し設定手段138、及び第7の引渡し設定手段139を有し、フラグメント化作業者がID候補通知手段124(図13)から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対する処理を行う。第1の引渡し設定手段133は、該変数Gが第1の種類の変数であるか否かと言う第5の判定S5を行い、該判定S5の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない。第2の引渡し設定手段134は、該変数Gが第2の種類の変数であるか否かと言う第6の判定S6を行い、該判定S6の結果が「正」である場合、該変数Gが選択IDであるか否かの第1の子判定S6_1を行い、該判定第1の子判定S6_1の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する。第3の引渡し設定手段135は、第1の子判定S6_1の結果が「否」である場合に、該変数Gのスコープがページであるか否かの第1の孫判定S6_1_1を行い、該判定第1の孫判定S6_1_1の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する。第4の引渡し設定手段136は、第1の孫判定S6_1_1の結果が「否」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない。第5の引渡し設定手段137は、該変数Gが第3の種類の変数であるか否かと言う第7の判定S7を行い、該判定S7の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かと言う第2の子判定S7_1を行い、該判定S7_1の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する。第6の引渡し設定手段138は、第2の子判定S7_1の結果が「否」である場合に該変数Gのスコープがページであるか否かの第2の孫判定S7_1_1を行い、該判定第2の孫判定S7_1_1の結果が「正」であれば、該指定フラグメントD1における該変数Gのスコープをリクエストへ変更する。第7の引渡し設定手段139は、第2の孫判定S7_1_1の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない。
【0081】
図15はフラグメント関連作業支援装置144の機能ブロック図である。フラグメント関連作業支援装置144は前述の第4のツールに相当する。フラグメント関連作業支援装置144は、第1のコンポーネント設定手段145、第2のコンポーネント設定手段146、及びポリシー・ファイル出力手段148を有し、フラグメント化作業者がID候補通知手段124(図13)から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対する処理を行う。第1のコンポーネント設定手段145は、該変数Gが第1又は第2の種類である場合、該変数Gをコンポーネントに設定する。第2のコンポーネント設定手段146は、該変数Gが選択IDが第3の種類の変数Gである場合は、該変数Gと該変数Gに対応付けられるメソッドI(G)との組から作られるパラメータ名をコンポーネントに設定する。ポリシー・ファイル出力手段148は、第1及び第2のコンポーネント設定手段146により設定されたコンポーネントをコンポーネント情報に含めたポリシー・ファイルを出力する。
【0082】
なお、「ポリシー・ファイル」とWebページ・サーバ12の処理との関係は次のように定義される。すなわち、Webページ・サーバ12は、クライアント15からのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断する。
【0083】
図16はフラグメント関連作業支援装置151の機能ブロック図である。フラグメント関連作業支援装置151はジャカルタ・プロジェクトのキャッシュ・タグリブ(Cache Taglib)用の第4のツールに相当する。フラグメント関連作業支援装置151は、第10の引渡し設定手段152、第11の引渡し設定手段153、及び第12の引渡し設定手段154を有し、フラグメント化作業者がID候補通知手段124(図13)から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対する処理を行う。第10の引渡し設定手段152は、該変数Gが第1及び第2の種類の変数であるか否かと言う第10の判定S10を行い、該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない。第11の引渡し設定手段153は、該変数Gが第3の種類の変数であるか否かと言う第11の判定S11を行い、該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かの第11の子判定S11_1を行い、該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する。第12の引渡し設定手段154は、第11の子判定S11_1の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない。
【0084】
次に、フラグメント関連作業支援方法の実施の形態について説明する。該方法はフラグメント化作業者がWebページ・サーバ12による処理の実施に予め必要な作業を実施するときに該作業を支援する。なお、クライアント15へ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分される。また、Webページ・サーバ12は、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュ13に格納し、クライアント15へ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュ13に有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュ13に無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアント15へ送信する処理を実施する。また、例えば、動的Webページ生成用ソース・ファイルはJSPファイルであり、動的Webページ生成用ソース・ファイル全体がフラグメント化されている。
【0085】
図17は第1のツール28の機能を実現する方法のフローチャートである。S160では、動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する。S161では、作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する。S162では、構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する。
【0086】
登録パターン用記述事項には、クライアント15からの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び/又はループ処理に係る処理事項が含まれる。S162では、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知する。
【0087】
図18は第2のツール38の機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対して、所定の処理を実施する。S165では、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する。S166では、集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定し、判定が「正」であれば、S167へ進み、「否」であれば、該方法を終了する。S167では、指定フラグメントA1は、フラグメントとして不的確である旨を通知する。
【0088】
図19は第3のツール55の機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対して所定の処理を行う。S171では、指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する。S172では、動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する。S173では、集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する。S174では、集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する。
【0089】
図20は図19のフローチャートに係る方法を改善した方法のフローチャートである。S177〜S182がS173とS174との間に挿入される。変数Gがパラメータ又はヘッダ情報であるか否かと言う第1の判定(S177)を行い、該判定の結果が「正」であれば、S178において、該変数Gは第1の種類の変数とし、第1の種類の変数Gは指定フラグメントD1についての第1の種類のID候補に割当てる。第1の判定(S177)が「否」であるとき、変数Gの型がプリミティブ又はストリングであるか否かと言う第2の判定(S179)を行い、該判定結果が「正」であれば、S180において、該変数Gを第2の種類の変数とし、第2の種類の変数Gは指定フラグメントD1についての第2の種類のID候補に割当てる。第1及び第2の判定結果が共に否であるとき、S182において、変数Gは第3の種類の変数とし、第3の種類の変数Gは該変数Gの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドHの集合Iを変数Gに対応付け(以下、Gに対応付けられたIを「I(G)」と言う。)、該I(G)を指定フラグメントD1についての第3の種類のID候補に割当てる。S174では、指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する情報には、各ID候補の種類に係る情報を含める。
【0090】
図21は第4のツール60のID引渡し機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者がID候補通知ステップS174から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対して所定の処理を行う。S185では、該変数Gが第1の種類の変数であるか否かと言う第5の判定を行い、該判定の結果が「正」であれば、S186において、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第1の引渡し設定を実施する。S187では、該変数Gが第2の種類の変数であるか否かと言う第6の判定を行い、該判定の結果が「正」である場合、S188において、該変数Gが選択IDであるか否かの第1の子判定を行い、該判定の結果が「正」であれば、S189において、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第2の引渡し設定を実施する。S188における第1の子判定の結果が「否」である場合に、S190において、該変数Gのスコープがページであるか否かの第1の孫判定を行い、該判定の結果が「正」であれば、S191において、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第3の引渡し設定を実施する。S190における第1の孫判定の結果が「否」であれば、S192において、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第4の引渡し設定を実施する。S193では、該変数Gが第3の種類の変数であるか否かと言う第7の判定を行い、該判定の結果が「正」である場合に、S194において、該変数Gが選択IDに係る変数であるか否かと言う第2の子判定を行い、該判定の結果が「正」であれば、S195において、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第5の引渡し設定を実施する。S194における第2の子判定の結果が「否」である場合に、S196において、該変数Gのスコープがページであるか否かの第2の孫判定を行い、該判定の結果が「正」であれば、S197において、該指定フラグメントD1における該変数Gのスコープをリクエストへ変更する第6の引渡し設定を実施する。S196における第2の孫判定の結果が「否」である場合に、S198において、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第7の引渡し設定を実施する。
【0091】
図22は第4のツール60のポリシー・ファイル出力機能を実現する方法のフローチャートである。該方法では、フラグメント化作業者がID候補通知ステップS174から通知された種類別ID候補の中から選択した1個以上の選択IDに対して所定の処理を行う。S205では、第1又は第2の種類の変数である選択IDは、該選択IDをポリシー・ファイルのコンポーネントに設定する。S206では、第3の種類の変数に係る選択IDは、該選択IDと該選択IDに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する。S207では、第1及び第2のコンポーネント設定ステップS205,S206の設定に基づくポリシー・ファイルを出力する。
【0092】
図23はジャカルタ・プロジェクトのキャッシュ・タグリブ(Cache Taglib)用の第4のツールの機能を実現する方法のフローチャートである。該方法は、フラグメント化作業者がID候補通知手段から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対して所定の処理を行う。S210では、該変数Gが第1及び第2の種類の変数であるか否かと言う第10の判定を行い、該判定の結果が「正」であれば、S211において、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第10の引渡し設定を実施する。S212では、該変数Gが第3の種類の変数であるか否かと言う第11の判定を行い、該判定の結果が「正」である場合に、S213において、該変数Gが選択IDに係る変数であるか否かの第11の子判定を行い該判定の結果が「正」であれば、S214において、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第11の引渡し設定を実施する。S213における第11の子判定の結果が「否」である場合に、S215において、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第12の引渡し設定を実施する。
【0093】
図24はプログラムを実行するためのハードウェア構成図である。本発明に係る装置の各機能を実現するプログラムは例えば図24のハードウェアを使用して実行される。システム・バス220には、CPU221、主記憶装置222及び入出力制御装置223が接続される。前述した方法は、コード化されたプログラムとして実行可能となっている。入出力制御装置223には、ハード・ディスク・インターフェース等が含まれ、CPU221が実行する各種プログラムはハード・ディスク装置等にストアされている。プログラムは、CPU221において実行されるのに先立ち、主記憶装置222にストアされる。CPU221は、主記憶装置222の命令行を順次、読み出して、該プログラムを実行する。
【0094】
まとめとして本発明の構成に関して以下の事項を開示する。
(1):クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持手段、
作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する構文解析情報作成手段、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
(2):動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする(1)記載のフラグメント関連作業支援装置。
(3):前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする(1)記載のフラグメント関連作業支援装置。
(4):前記登録パターン用記述事項には、クライアントからの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び/又はループ処理に係る処理事項が含まれることを特徴とする(1)記載のフラグメント関連作業支援装置。
(5):前記場所通知手段は、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知することを特徴とする(1)記載のフラグメント関連作業支援装置。
【0095】
(6):クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する集合算出手段、
集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する判定手段、及び
前記判定手段の判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
(7):動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする(6)記載のフラグメント関連作業支援装置。
(8):前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする(6)記載のフラグメント関連作業支援装置。
【0096】
(9):クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対し、
指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する第1の集合算出手段、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する第2の集合算出手段、
集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する第3の集合算出手段、及び
集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知するID候補通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。
(10):変数Gがパラメータ又はヘッダ情報であるか否かと言う第1の判定を行い該判定の結果が「正」であれば該変数Gは第1の種類の変数とし第1の種類の変数Gは指定フラグメントD1についての第1の種類のID候補に割当てる第1のID候補割当て手段、
第1の判定が「否」であるとき変数Gの型がプリミティブ又はストリングであるか否かと言う第2の判定を行い該判定結果が「正」であれば該変数Gを第2の種類の変数とし第2の種類の変数Gは指定フラグメントD1についての第2の種類のID候補に割当てる第2のID候補割当て手段、及び
第1及び第2の判定結果が共に否であるとき変数Gは第3の種類の変数とし第3の種類の変数Gは該変数Gの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドHの集合Iを変数Gに対応付け(以下、Gに対応付けられたIを「I(G)」と言う。)該I(G)を指定フラグメントD1についての第3の種類のID候補に割当てる第3のID候補割当て手段、
を有し、
前記ID候補通知手段は、指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する情報には、各ID候補の種類に係る情報を含めることを特徴とする(9)記載のフラグメント関連作業支援装置。
(11):フラグメント化作業者が前記ID候補通知手段から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対し、
該変数Gが第1の種類の変数であるか否かと言う第5の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第1の引渡し設定手段、
該変数Gが第2の種類の変数であるか否かと言う第6の判定を行い該判定の結果が「正」である場合、該変数Gが選択IDであるか否かの第1の子判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第2の引渡し設定手段、
前記第1の子判定の結果が「否」である場合に、該変数Gのスコープがページであるか否かの第1の孫判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第3の引渡し設定手段、
前記第1の孫判定の結果が「否」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第4の引渡し設定手段、
該変数Gが第3の種類の変数であるか否かと言う第7の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かと言う第2の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第5の引渡し設定手段、
第2の子判定の結果が「否」である場合に該変数Gのスコープがページであるか否かの第2の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントD1における該変数Gのスコープをリクエストへ変更する第6の引渡し設定手段、及び
第2の孫判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第7の引渡し設定手段、
を有していることを特徴とする(10)記載のフラグメント関連作業支援装置。
(12):前記Webページ・サーバによる前記処理には、前記Webページ・サーバは、クライアントからのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断すると言う処理が含まれており、
フラグメント化作業者が前記ID候補通知手段から通知された種類別ID候補の中から選択した1個以上の選択IDに対して、
第1又は第2の種類の変数である選択IDは、該選択IDをポリシー・ファイルのコンポーネントに設定する第1のコンポーネント設定手段、
第3の種類の変数に係る選択IDは、該選択IDと該選択IDに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第2のコンポーネント設定手段、及び
前記第1及び前記第2のコンポーネント設定手段の設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力手段、
を有していることを特徴とする(10)記載のフラグメント関連作業支援装置。
(13):フラグメント化作業者が前記ID候補通知手段から通知された種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対し、
該変数Gが第1及び第2の種類の変数であるか否かと言う第10の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第10の引渡し設定手段、
該変数Gが第3の種類の変数であるか否かと言う第11の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かの第11の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第11の引渡し設定手段、及び
第11の子判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第12の引渡し設定手段、
を有していることを特徴とする(10)記載のフラグメント関連作業支援装置。
(14):動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする(9)記載のフラグメント関連作業支援装置。
【0097】
(15):クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持ステップ、
作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する構文解析情報作成ステップ、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。
(16):動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする(15)記載のフラグメント関連作業支援方法。
(17):前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする(15)記載のフラグメント関連作業支援方法。
(18):前記登録パターン用記述事項には、クライアントからの送信用Webページ送信要求に含まれるデータへのアクセスに係る処理事項、ビーンへのアクセスに係る処理事項、及び/又はループ処理に係る処理事項が含まれることを特徴とする(15)記載のフラグメント関連作業支援方法。
(19):前記場所通知ステップでは、登録パターン用記述事項の場所と共に該登録パターン用記述事項の説明情報を通知することを特徴とする(15)記載のフラグメント関連作業支援方法。
【0098】
(20):クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する集合算出ステップ、
集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する判定ステップ、及び
前記判定ステップの判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知ステップ、を有していることを特徴とするフラグメント関連作業支援方法。
(21):動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする(20)記載のフラグメント関連作業支援方法。
(22):前記動的Webページ生成用ソース・ファイル全体がフラグメント化されていることを特徴とする(20)記載のフラグメント関連作業支援方法。
【0099】
(23):クライアントへ送信する送信用Webページを生成する基になる動的Webページ生成用ソース・ファイルが、少なくとも一部において1個以上のフラグメントに区分され、
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対し、
指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する第1の集合算出ステップ、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する第2の集合算出ステップ、
集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する第3の集合算出ステップ、及び
集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知するID候補通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。
(24):変数Gがパラメータ又はヘッダ情報であるか否かと言う第1の判定を行い該判定の結果が「正」であれば該変数Gは第1の種類の変数とし第1の種類の変数Gは指定フラグメントD1についての第1の種類のID候補に割当てる第1のID候補割当てステップ、
第1の判定が「否」であるとき変数Gの型がプリミティブ又はストリングであるか否かと言う第2の判定を行い該判定結果が「正」であれば該変数Gを第2の種類の変数とし第2の種類の変数Gは指定フラグメントD1についての第2の種類のID候補に割当てる第2のID候補割当てステップ、及び
第1及び第2の判定結果が共に否であるとき変数Gは第3の種類の変数とし第3の種類の変数Gは該変数Gの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドHの集合Iを変数Gに対応付け(以下、Gに対応付けられたIを「I(G)」と言う。)該I(G)を指定フラグメントD1についての第3の種類のID候補に割当てる第3のID候補割当てステップ、
を有し、
前記ID候補通知ステップでは、指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する情報には、各ID候補の種類に係る情報を含めることを特徴とする(23)記載のフラグメント関連作業支援方法。
(25):フラグメント化作業者が前記ID候補通知ステップにおいて通知した種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対し、
該変数Gが第1の種類の変数であるか否かと言う第5の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第1の引渡し設定ステップ、
該変数Gが第2の種類の変数であるか否かと言う第6の判定を行い該判定の結果が「正」である場合、該変数Gが選択IDであるか否かの第1の子判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第2の引渡し設定ステップ、
前記第1の子判定の結果が「否」である場合に、該変数Gのスコープがページであるか否かの第1の孫判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第3の引渡し設定ステップ、
前記第1の孫判定の結果が「否」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第4の引渡し設定ステップ、
該変数Gが第3の種類の変数であるか否かと言う第7の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かと言う第2の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第5の引渡し設定ステップ、
第2の子判定の結果が「否」である場合に該変数Gのスコープがページであるか否かの第2の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントD1における該変数Gのスコープをリクエストへ変更する第6の引渡し設定ステップ、及び
第2の孫判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第7の引渡し設定ステップ、
を有していることを特徴とする(24)記載のフラグメント関連作業支援方法。(26):前記Webページ・サーバによる前記処理には、前記Webページ・サーバは、クライアントからのWebページ送信要求に対してポリシー・ファイル内のコンポーネント情報に基づき各送信用Webページ部分を識別して、識別した各送信用Webページ部分についてのキャッシュ内のコピーの使用の可否を判断すると言う処理が含まれており、
フラグメント化作業者が前記ID候補通知ステップにおいて通知した種類別ID候補の中から選択した1個以上の選択IDに対して、
第1又は第2の種類の変数である選択IDは、該選択IDをポリシー・ファイルのコンポーネントに設定する第1のコンポーネント設定ステップ、
第3の種類の変数に係る選択IDは、該選択IDと該選択IDに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第2のコンポーネント設定ステップ、及び
前記第1及び前記第2のコンポーネント設定ステップの設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力ステップ、
を有していることを特徴とする(24)記載のフラグメント関連作業支援方法。(27):フラグメント化作業者が前記ID候補通知ステップにおいて通知した種類別ID候補の中から1個以上選択したものを選択IDとし、集合F3に属する各変数Gに対し、
該変数Gが第1及び第2の種類の変数であるか否かと言う第10の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第10の引渡し設定ステップ、
該変数Gが第3の種類の変数であるか否かと言う第11の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かの第11の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第11の引渡し設定ステップ、及び
第11の子判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第12の引渡し設定ステップ、
を有していることを特徴とする(24)記載のフラグメント関連作業支援方法。(28):動的Webページ生成用ソース・ファイルがJSPファイルであり、前記送信用WebページがHTMLファイルであることを特徴とする(23)記載のフラグメント関連作業支援方法。
(29):(1)〜(14)のいずれかのフラグメント関連作業支援装置における各手段としてコンピュータを機能させるためのフラグメント関連作業支援プログラム。
【0100】
【発明の効果】
本発明によれば、1個の送信用Webページ部分を生成する一連の処理に係る、動的Webページ生成用ソース・ファイルの記述範囲に含まれる可能性がある記述事項が登録パターンとして保持され、作業対象の動的Webページ生成用ソース・ファイル内に対して、各登録パターンに対応する記述事項の場所を通知するようになっているので、フラグメント化作業者は作業対象の動的Webページ生成用ソース・ファイルを適切なフラグメントに能率よく区分することができる。
【図面の簡単な説明】
【図1】インターネット・システムの概略図である。
【図2】JSPとクライアントへ送られたHTMLファイルに基づきクライアントのディスプレイにおいて表示される表示内容との関係を示す図である。
【図3】第1のツールの構成説明図である。
【図4】第1のツールに登録されるパターン例及び該パターン例を構文解析して出力される構文木を示している。
【図5】入力JSPファイルを構文解析して出力される構文木と共に、該構文木において図4のパターンがマッチングした場所を示す図である。
【図6】第2のツールの構成説明図である。
【図7】第3のツールの構成説明図である。
【図8】第4のツールの構成説明図である。
【図9】フラグメント化作業過程におけるフラグメント化作業者と統合ツール81との関係をまとめたものである。
【図10】フラグメント関連作業支援装置の機能ブロック図である。
【図11】フラグメント関連作業支援装置の機能ブロック図である。
【図12】フラグメント関連作業支援装置の機能ブロック図である。
【図13】図12のフラグメント関連作業支援装置に機能追加したものの機能ブロック図である。
【図14】フラグメント関連作業支援装置の機能ブロック図である。
【図15】フラグメント関連作業支援装置の機能ブロック図である。
【図16】フラグメント関連作業支援装置の機能ブロック図である。
【図17】第1のツールの機能を実現する方法のフローチャートである。
【図18】第2のツールの機能を実現する方法のフローチャートである。
【図19】第3のツールの機能を実現する方法のフローチャートである。
【図20】図19のフローチャートに係る方法を改善した方法のフローチャートである。
【図21】第4のツールのID引渡し機能を実現する方法のフローチャートである。
【図22】第4のツールのポリシー・ファイル出力機能を実現する方法のフローチャートである。
【図23】ジャカルタ・プロジェクトのキャッシュ・タグリブ(Cache Taglib)用の第4のツールの機能を実現する方法のフローチャートである。
【図24】プログラムを実行するためのハードウェア構成図である。
【符号の説明】
100:フラグメント関連作業支援装置100、101:登録パターン保持手段、102:構文解析情報作成手段、103:場所通知手段、110:フラグメント関連作業支援装置、111:集合算出手段、112:判定手段、113:フラグメント化可否情報通知手段、120:フラグメント関連作業支援装置、121:第1の集合算出手段、122:第2の集合算出手段、123:第3の集合算出手段、124:ID候補通知手段、127:第1のID候補割当て手段、128:第2のID候補割当て手段、129:第3のID候補割当て手段、132:フラグメント関連作業支援装置、133:第1の引渡し設定手段、134:第2の引渡し設定手段、135:第3の引渡し設定手段、136:第4の引渡し設定手段、137:第5の引渡し設定手段、138:第6の引渡し設定手段、139:第7の引渡し設定手段、144:フラグメント関連作業支援装置、145:第1のコンポーネント設定手段、146:第2のコンポーネント設定手段、148:ポリシー・ファイル出力手段、151:フラグメント関連作業支援装置、152:第10の引渡し設定手段、153:第11の引渡し設定手段、154:第12の引渡し設定手段。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a fragment-related work support device, a fragment-related work support method, and a fragment-related work support program that contribute to the work of fragmenting a dynamic Web page. The present invention relates to a fragment-related work support device, a fragment-related work support method, and a fragment-related work support program that improve efficiency.
[0002]
[Prior art]
Dynamic Web page cache
In order to cache dynamically generated web pages, IDs that identify content are generated based on URL parameters and HTTP header information, and requests with the same ID are copied to the cache. Return the content. In
[0003]
[0004]
Using the above rule, when the value of the parameter action is view, the ID is generated according to this value and the value of the parameter category for the newscontroller servlet. For requests with the same ID, if there is a copy in the cache, the content in the cache is returned instead of executing the servlet.
[0005]
The following R1 to R4 are specific examples of Web page transmission requests from clients.
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
[0006]
R1 and R2 run a servlet and copy the results to the cache. In R3, the same ID as R1 is generated, so the content is retrieved from the cache and returned. R4 executes a servlet regardless of the cache.
[0007]
[Fragmentation]
Among the components of the dynamically generated page, there are a part with a high change frequency and a part with a low change frequency. To cache the entire page, you need to identify a copy of the content that matches the part that changes most frequently. This necessitates storing many copies, making it difficult to reuse the copies. That is, the cache effect is reduced. In order to solve this problem, the page may be divided according to the frequency of change, and the divided parts may be cached separately. Split page is a JSP Combined at runtime using the <jsp: include> tag.
[0008]
The developer's work to create a dynamic web page to effectively use such a cache is as follows:
(1) Specify the range to be fragmented.
(2) Specify the data to be passed to the fragment.
(3) Divide the page into fragments.
(4) Create a rule that generates an ID for the fragment to be copied to the cache.
[0009]
[Non-Patent Document 1]
URL explaining the dynamic fragment cache (DynaCache) of "IBM WebSphere" marketed by IBM Corporation: http://www-3.ibm.com/software/webservers/appserv/doc/v40/ae/infocenter /was/0405.html
(Excerpt from description at the time of filing this patent application) "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
[0010]
[Problems to be solved by the invention]
There is already a mechanism for caching a dynamic Web page, and a fragmentation method for effectively using the dynamic Web page is known. However, effective fragmentation for a practical scale application is described in
[0011]
(1) When a page becomes complicated, screen design and logic for data processing are mixed. Therefore, it is not obvious whether fragmentation does not affect the execution result of the application. It is necessary to carefully check whether the behavior of the application changes with respect to the specification of the range of a certain fragment.
(2) The data that can be used to identify a copy of a fragment is a parameter passed to the fragment or HTTP header information, but the data that can be used as a parameter or HTTP header information for a certain fragment range The type is not obvious. It is therefore necessary to examine the data available for individual fragment ranges.
(3) If the fragment range is too large, many different copies are generated, making it difficult to reuse individual copies. On the other hand, if the fragment range is too small, the overhead of combining the fragments at runtime increases. Therefore, it is necessary to fragment within an appropriate size range, but whether or not the cache operates effectively with certain fragmentation depends on the dynamic nature of the application. Fragmentation is therefore essentially a process that requires trial and error. However, since (1) and (2) are required every time the range of the fragment is changed, it is difficult to repeat fragmentation manually. There has been no method or apparatus for interactively supporting fragmentation in which information necessary for the determination of fragmentation is immediately fed back to the user as the fragment range changes.
[0012]
Although not known at the time of the filing of this patent, the JSP Splitting Tool (JSP Splitting Tool) for which the patent applicant has applied for a patent can be used to identify and split fragments that have no data dependency. However, for dynamic web page caching, since the effect is obtained by fragmenting the part that behaves differently depending on the data, it is necessary to divide the data so as to actively use the data dependency. This makes it difficult to use JSP splitting tools for proper fragmentation of dynamic web pages.
[0013]
An object of the present invention is to provide a fragment-related work support device, a fragment-related work support method, and a fragment-related work support program that can appropriately support an appropriate fragmentation work of a dynamic Web page by a fragmentation worker.
[0014]
[Means for Solving the Problems]
The fragment-related work support apparatus, method, and program of the present invention support a work when a fragmentation worker performs a work required in advance for processing of a Web page server. A dynamic Web page generation source file that is a basis for generating a transmission Web page to be transmitted to a client is at least partially divided into one or more fragments. The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Then, the entire transmission Web page including these transmission Web page portions is transmitted to the client.
[0015]
The fragment-related work support apparatus of the present invention performs processing for the designated fragment A1 designated in the source file for dynamic Web page generation by the fragmentation worker, and has the following.
Each description item that may be included in the description range related to a series of processes that generate a single transmission Web page portion within the dynamic Web page generation source file (hereinafter referred to as a registration pattern) Registered pattern holding means for holding each piece of parsing information as a registered pattern,
Parsing information creation means for creating parsing information of a dynamic web page generation source file (hereinafter referred to as "work target source file"), and
A location notification means for notifying the fragmentation worker of the location where the registered pattern description item exists in the work source file by collating the parsing information with each registered pattern.
[0016]
Another fragment related work support device of the present invention has the following.
For the specified fragment A1 specified by the fragmentation worker in the source file for dynamic Web page generation,
A set calculation means for calculating a set C1 of variables referred to by the operation B2 executed based on a description portion in the dynamic Web page generation source file and outside the designated fragment A1,
Determining means for determining whether the set C1 includes a variable affected by the operation B1 executed based on the description portion in the designated fragment A1, and
If the determination by the determination means is “positive”, the fragmentation availability information notification means for notifying that the designated fragment A1 is improper as a fragment.
[0017]
Another fragment related work support device of the present invention is:
The fragmentation operator performs processing for the designated fragment D1 designated in the dynamic Web page generation source file, and includes the following.
First set calculating means for calculating a set F1 of variables referred to by the operation E1 executed based on the description portion in the designated fragment D1;
A set F2 of an operation E2 which is an operation executed based on a description part in the source file for generating dynamic Web pages and outside the designated fragment D1 and which affects a variable of the set F1 is calculated. A second set calculating means;
A third set calculating means for calculating a set F3 of variables that are affected by the operation E2 included in the set F2 and that belong to the set F1, and
ID candidate notification means for notifying the fragmentation worker of information related to the variable G belonging to the set F3 as an ID candidate for the designated fragment D1.
[0018]
The fragment related work support method of the present invention includes the following steps.
Each description item that may be included in the description range related to a series of processes that generate a single transmission Web page portion within the dynamic Web page generation source file (hereinafter referred to as a registration pattern) A registered pattern holding step for holding each piece of parsing information as a registered pattern,
A parsing information creation step for creating parsing information of a source file for generating a dynamic Web page to be worked on (hereinafter referred to as a working source file); and
A location notification step of notifying the fragmentation worker of the location where the registered pattern description item exists in the work source file by collating the parsing information with each registered pattern.
[0019]
In another fragment related work support method of the present invention, the fragmentation worker performs the process for the designated fragment A1 specified in the dynamic Web page generation source file, and has the following steps.
A set calculation step of calculating a set C1 of variables referred to by the operation B2 executed based on a description portion in the source file for dynamic Web page generation and outside the designated fragment A1,
A determination step of determining whether the set C1 includes a variable affected by the operation B1 executed based on the description portion in the designated fragment A1; and
If the determination in the determination step is “positive”, a fragmentation availability information notification step for notifying that the designated fragment A1 is inaccurate as a fragment.
[0020]
In another fragment related work support method of the present invention, the fragmentation worker performs the process for the designated fragment D1 designated in the dynamic Web page generation source file, and has the following steps.
A first set calculating step for calculating a set F1 of variables referred to by the operation E1 executed based on the description portion in the designated fragment D1;
A set F2 of an operation E2 which is an operation executed based on a description part in the source file for generating dynamic Web pages and outside the designated fragment D1 and which affects a variable of the set F1 is calculated. A second set calculating step;
A third set calculating step of calculating a set F3 of variables that the operation E2 included in the set F2 affects and belongs to the set F1;
An ID candidate notification step of notifying the fragmentation worker of information related to the variable G belonging to the set F3 as an ID candidate for the designated fragment D1.
[0021]
The fragment related work support program of the present invention causes a computer to function as each means in each of the fragment related work support devices described above. Alternatively, the computer executes each step in each of the fragment related work support methods described above.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be specifically described. Needless to say, the present invention is not limited to the following embodiments, and various modifications can be made without departing from the scope of the present invention.
[0023]
FIG. 1 is a schematic diagram of an
[0024]
The dynamic Web page generation source file includes processing for generating a Web page for transmission to the
[0025]
The dynamic web page generation source file is, for example, a JSP (Java Server Pages: “Java” is a registered trademark) file, and the transmission web page to the
[0026]
FIG. 2 shows the relationship between the
[0027]
There is something to watch out for. Among the fragments 20, there may be a fragment corresponding to a static transmission Web page portion instead of a dynamic transmission Web page portion. Algorithms 2 to 4 described later can cope with a fragment corresponding to a static transmission Web page portion without any problem. This will be described later.
[0028]
The fragment related work support apparatus according to the present invention is equipped with first to fourth tools. The function of each tool is as follows.
First tool: Present fragmentation hints to fragmentation workers. Second tool: The fragmentation operator checks the validity of the fragment against the fragment candidate specified in the JSP to be worked on.
Third tool: Specify data that can be used to specify a cache ID for a fragment specified by a fragmentation worker in a JSP to be worked on.
Fourth tool: Create rules to generate fragments and cache IDs.
[0029]
The first tool provides hints on the parts of the JSP page that should be considered for fragmentation.
[0030]
Examples of patterns include (1) access to parameters and header information, (2) access to beans, and (3) loops. Each will be described in detail.
[0031]
(1) Access to parameters and header information:
When there is an access to the parameter or header information, processing depending on the parameter or the header information is performed in the vicinity of the access, and there is a high possibility that the property is different from other parts. For example, the following are registered as patterns P1 and P2.
P1: request.getParameter (...)
P2: <jsp: setProperty name = ... property = ... param = ... />
[0032]
Consider the following input JSP page for the above pattern.
L1: <%
L2: String user = request.getParameter ("user");
L3: if (user.equals ("")) {user = defaultUser;}
L4: out.println ("User:" + user);
L5:%>
[0033]
P1 and L2 match and P1's explanation of “parameter access” is presented to the user for L2.
[0034]
(2) Access to Bean:
When there is access to a bean, there is a high possibility of output depending on the bean. The following are registered as patterns.
P5: <jsp: getProperty ../>
P6: <bean: write ../>
[0035]
(3) Loop:
Inside the loop, there is a high probability of different output for each iteration. The following are registered as patterns.
P3: for (...; ...; ...) {...}
P4: <logic: iterate id = ... name = ...> ... </ logic: iterate>
Patterns are not limited to the above, but are added to the database as needed. In addition to general knowledge, more appropriate hints can be presented by adding information about project specific tag libraries.
[0036]
FIG. 3 is an explanatory diagram of the configuration of the
[0037]
The
[0038]
FIGS. 4A and 4B show a pattern example registered in the
[Input JSP file]
<HTML>
<HEAD>
<TITLE> sample.jsp </ TITLE>
</ HEAD>
<% String userName = request.getParameter ("user_name");%>
<BODY>
User: <% = userName%>
</ BODY>
</ HTML>
[0039]
The second tool uses the fragmentation hints obtained by the first tool to specify the range of fragments. The second tool checks whether fragmentation is possible within the range specified by the user. If the effect of operations within a fragment is outside the fragment, the result may be different between actually executing the fragment to obtain the output and obtaining the output from a cached copy of the fragment. Therefore, it is determined that fragmentation cannot be performed within such a range. The influence of the operation is obtained by performing data dependency analysis and control dependency analysis on the JSP page given as input. If there is no source code for the bean or tag library, use a decompiler to analyze the bytecode.
[0040]
Algorithm 2 implemented by the second tool is as follows.
[0041]
In summary, algorithm 2 divides the input JSP file into a range Y1 specified as a fragment in the input JSP file by the fragmentation operator and a range Y2 other than Y1, and is a variable that affects operations in Y1 and Y2 If there is a variable referred to by the operation of (1), it is determined that fragmentation of the range Y1 is impossible, and if it does not exist, it is determined that fragmentation of the range Y1 is possible.
[0042]
When it is determined that the fragmentation is impossible, the fact is reported to the fragmentation worker, and the fragmentation worker performs the range designation again. On the other hand, if it is determined that fragmentation is possible, the fragmentation operator proceeds to the next stage using the third tool.
[0043]
When the fragmentation operator does not correspond to the dynamic transmission Web page portion, that is, when the range Y1 related to the fragment corresponding to the static transmission Web page portion is specified in the input JSP file, Sf in the above algorithm 2 is The empty set φ, and if (Q ∩ Sf ≠ φ) is “No”. As a result, the fragmentation operator is notified that fragmentation is possible.
[0044]
FIG. 6 is an explanatory diagram of the configuration of the
[0045]
The third tool specifies data that can be used to specify a cache ID for an area on the
(A) The parameter for the original JSP page or HTTP header information.
(B) Data passed to the fragment, which is a primitive type (boolean, int, etc.) or a String type.
(C) Data that is passed to the fragment and has a method whose return value is a primitive type (boolean, int, etc.) or a String type.
[0046]
The following algorithm 3 calculates a variable holding data that satisfies the above conditions (a) to (c), and is implemented in the third tool. For the data in (c), a set of variables and methods is calculated. It also calculates all variables that hold the data passed to the fragment for subsequent use of the fourth tool. Parameters and header information are also processed as variables. For this reason, the first sentence of the input JSP is regarded as an operation that virtually affects all parameters and header information.
[0047]
[0048]
Elements of Va, Vb, Vc, Mc (v) are reported to the fragmenter. If the fragmentation operator determines that the fragment cache ID can be specified using the reported data, the process proceeds to the next fourth tool use stage. If the third tool determines that the cache ID is not sufficient, the fragmentation operator re-specifies the fragment range. In this redo, the fragmentation operator will again use the second and third tools.
[0049]
In Algorithm 3, “v class” refers to a class when the type of v is not a primitive or a String but a class. For example, in the object-oriented language Java, a class abcd is defined, and abcd is the type of variable v for the description "abcd v = new abcd ()" used when creating an instance v of abcd. Yes, abcd is the v class. The relationship between “v class and superclass” in “all methods of v class and superclass” means that v class is a class that inherits the superclass.
[0050]
The algorithm 3 is summarized as follows. For the input JSP file, the description range designated as a fragment by the fragmentation operator is Y1, and the description range Y2 other than Y1 is set. That is, the input JSP file is divided into Y1 and Y2. It is assumed that the operation W in the range Y2 has an influence on the variable X1 referred to by the operation in the range Y1. If the variable that the operation W affects among all the variables X1 is X2, X2 is reported to the fragmentation operator as a cache ID candidate. When the variable X2 is not a parameter or header information, and the type of X2 is not a primitive or String, X2 is associated with a class that is the type and a method included in the superclass of the class. If the return type of the method is primitive or String, the combination of X2 and the method is a cache ID candidate.
[0051]
FIG. 7 is an explanatory diagram of the configuration of the
[0052]
The fragmentation operator designates data for actually generating a cache ID for the output result of the third tool. In this data designation, a predetermined user interface is used. Assume that the execution result of the third tool is as follows.
Va = {user}
Vb = {id}
Vc = {thinkPad, thinkPadDB}
Mc (thinkPad) = {getName (), getPrice (), getName ()}
Mc (thinkPadDB) = {getId ()}
[0053]
The user interface displays the following checklist on the computer screen.
[0054]
The fragmenter specifies one or more data used to generate the cache ID. The data is specified by the fragmenter selecting “□”. The selected “□” changes to “■” on the computer screen. The following shows a checklist in which data is specified by the fragmentation operator.
[0055]
The variable of the item selected here is stored as Vs = {id, thinkPad} and the method is Ms (thinkPad) = {getName ()} for use in the next fourth tool. This recording corresponds to a
[0056]
The fourth tool splits the original JSP page so that the data is correctly propagated to each fragment and the values needed to generate the cache ID appear in the parameters of each fragment. By the fragmentation process, one parent JSP page and a plurality of fragment JSP pages are generated from the original JSP page. The processing method is selected as follows according to the data attribute. The parent JSP page parameters are automatically passed to the fragment, so do nothing. Also, since the data of scope application, session, request is propagated even if it is not specified, do nothing if they are not used for cache ID generation. Algorithm 4 implemented by the fourth tool is as follows. For convenience of explanation, the algorithm 4 is given
[0057]
[0058]
The algorithm 4 is summarized as follows. First, a
[0059]
The algorithms 3 and 4 can cope with a fragment corresponding to a static transmission Web page portion without any trouble. When the fragmentation operator specifies in the input JSP file a range Y1 that does not correspond to the dynamic transmission Web page portion, that is, the fragment corresponding to the static transmission Web page portion, in algorithm 3, Since the variable set V including the passed data becomes the empty set φ, Va, Vb, and Vc are all empty sets. In the algorithm 4, in response to the result of the algorithm 3, no parameter or the like is specified for the fragment related to the range Y1, that is, a rule that always generates a cache ID having the same value is output. Thus, only one copy exists for the fragment, and the one copy is used as a transmission Web page portion related to the fragment.
[0060]
There are three modes (1) to (3) below, except for “do nothing”, in the method of passing data to the fragment in algorithm 4. Each mode will be described in detail. The fragment fragment.jsp is the fragment file of the JSP page to be fragmented. The parent JSP and the fragment fragment.jsp are combined to generate the same Web page for sending as the fragmented JSP page. It is a JSP file.
[0061]
(1) Pass data as fragment parameters. :
For example, to pass the value of the variable id as a parameter, call the fragment Change the JSP page as specified by the <jsp: param> tag.
[Parent JSP main.jsp] ------------------------------------------- ------
...
<jsp: include page = "fragment.jsp" flush = "true">
<jsp: param name = "id" value = "<% = id%>"/>
</ jsp: include>
...
-------------------------------------------------- ----------------
In the fragment, the value is extracted from the request object and used.
[Fragment fragment.jsp] ---------------------------------------
...
<% ... request.getParameter ("id") ...%>
...
-------------------------------------------------- ----------------
[0062]
If the variable is a primitive type, convert it to a String type and make it a parameter. In the fragment, String is converted back to the primitive type and used. For example, when id type is int,
[Parent JSP main.jsp] ------------------------------------------- ------
...
<jsp: include page = "fragment.jsp" flush = "true">
<jsp: param name = "id" value = "<% = Integer.toString (id)%>"/>
</ jsp: include>
...
-------------------------------------------------- ----------------
[Fragment fragment.jsp] ---------------------------------------
...
<% ... Integer.parseInt (request.getParameter ("id") ...%>
...
-------------------------------------------------- ----------------
[0063]
(2) Pass the method execution result as a fragment parameter. :
For example, to pass the value of the result of executing getName () for the variable thinkPad as a parameter, when calling the fragment Change the JSP page as specified by the <jsp: param> tag.
[Parent JSP main.jsp] ------------------------------------------- ------
...
<jsp: include page = "fragment.jsp" flush = "true">
<jsp: param name = "thinkPad_getName" value = "<% = thinkPad.getName ()%>"/></ jsp: include>
...
-------------------------------------------------- ----------------
The parameter name is generated so as not to overlap with other parameters. In addition, since the value of this parameter is not necessary in the fragment, code for accessing this parameter is not inserted in the fragment.
[0064]
(3) Change the scope to request. :
Change declaration of page scope variable to request. When a variable declaration is fragmented, it appears in both the parent JSP and the fragment.
Before fragmentation:
[Parent JSP main.jsp] ------------------------------------------- ------
...
<jsp: useBean id = "thinkPadDB" scope = "page" class = "ThinkPadDB"/>
...
-------------------------------------------------- ----------------
After fragmentation:
[Parent JSP main.jsp] ----------------------------------------
...
<jsp: useBean id = "thinkPadDB" scope = "request" class = "ThinkPadDB"/>
...
<jsp: include name = "fragment.jsp">
-------------------------------------------------- ----------------
[Fragment fragment.jsp] ---------------------------------------
...
<jsp: useBean id = "thinkPadDB" scope = "request" class = "ThinkPadDB"/>
...
-------------------------------------------------- ----------------
[0065]
The fourth tool also has a function for outputting a rule for generating a cache ID. That is, the fourth tool outputs a cache policy by using a set of variables Vs and a set of methods Ms (v) used to generate a cache ID designated by the fragmentation operator. The fourth tool also implements the following fifth algorithm.
[0066]
[0067]
As a result, when the input is Vs = {id, thinkPad} and Ms (thinkPad) = {getName ()}, the following cache policy file is generated.
[0068]
FIG. 8 is an explanatory diagram of the configuration of the
[0069]
FIG. 9 summarizes the relationship between the
[0070]
The JSP page fragmentation described so far was to fragment the entire JSP page. However, when only a part of the JSP page is fragmented, only the copy related to the fragmented part is copied to the cache. Also, the first to fourth tools described above can be used as appropriate. Cache Taglib of Jakarta Project [Jakarta Project, "Cache Taglib version 1.0", http://jakarta.apache.org/taglibs/doc/cache-doc/] in JSP page Specify the range to be cached with the tag. Tags can have name and key attributes. Name each range with the attribute name and specify an expression that generates an ID that identifies the copy of the range with the attribute key. An example is as follows.
[0071]
----------------------------------------------
... section A ...
<cache: cache name = "ad" key = "$ {thinkPadId}">
... section B ...
</ cache: cache>
... section C ...
----------------------------------------------
[0072]
In the above page, the range of section B will be cached and named ad. A copy of the range execution result is identified by the value of the variable thinkPadId. When generating the same key, if there is a copy in the cache, section B is not executed, but instead a copy is output as a result. When embedding Cache Taglib in a JSP page created without considering the cache, the method of the present invention can be used to determine where to embed a tag and to create a key expression. Determining where to embed tags corresponds to determining the range of fragments, and creating a key expression corresponds to the output of a rule that generates a cache ID. The specific tools for data that can be used to present fragment extraction hints, check fragmentation validity, and specify cache IDs are the same as described above. The difference is that in the case of Cache Taglib, the cached range is not separated into separate pages. For this reason, the algorithm 4 described above is simplified as the following algorithm 4a, and the method execution result is stored in a local variable only when it is used to create a key.
[0073]
[0074]
Another embodiment of the fragment related work support apparatus will be described. The fragment related work support device supports the work when the fragmentation worker performs work related to the fragments involved in the processing of the Web page server. The web page server is, for example, the
[0075]
FIG. 10 is a functional block diagram of the fragment related
[0076]
The registered pattern description item includes a processing item related to access to data included in the transmission web page transmission request from the
[0077]
FIG. 11 is a functional block diagram of the fragment related
[0078]
FIG. 12 is a functional block diagram of the fragment related
[0079]
FIG. 13 is a functional block diagram of a function added to the fragment related
[0080]
FIG. 14 is a functional block diagram of the fragment related
[0081]
FIG. 15 is a functional block diagram of the fragment related
[0082]
The relationship between the “policy file” and the processing of the
[0083]
FIG. 16 is a functional block diagram of the fragment related
[0084]
Next, an embodiment of the fragment related work support method will be described. The method supports the work when the fragmentation worker performs a work necessary for the execution of the processing by the
[0085]
FIG. 17 is a flowchart of a method for realizing the function of the
[0086]
The registered pattern description item includes a processing item related to access to data included in the transmission web page transmission request from the
[0087]
FIG. 18 is a flowchart of a method for realizing the function of the
[0088]
FIG. 19 is a flowchart of a method for realizing the function of the
[0089]
FIG. 20 is a flowchart of a method obtained by improving the method according to the flowchart of FIG. S177 to S182 are inserted between S173 and S174. A first determination (S177) is made as to whether or not the variable G is a parameter or header information. If the result of the determination is "positive", the variable G is set as the first type of variable in S178, The first type variable G is assigned to the first type ID candidate for the designated fragment D1. When the first determination (S177) is “No”, a second determination (S179) is performed to determine whether the type of the variable G is a primitive or a string. If the determination result is “Positive”, In S180, the variable G is set as the second type variable, and the second type variable G is assigned to the second type ID candidate for the designated fragment D1. When both the first and second determination results are negative, in S182, the variable G is a third type variable, and the third type variable G is a class as a type of the variable G and a super of the class. A set I of methods H belonging to a class and having a return type of primitive or string is associated with a variable G (hereinafter, I associated with G is referred to as “I (G)”). , I (G) is assigned to the third type ID candidate for the designated fragment D1. In S174, information relating to the type of each ID candidate is included in the information notified to the fragmentation worker as the ID candidate for the designated fragment D1.
[0090]
FIG. 21 is a flowchart of a method for realizing the ID passing function of the
[0091]
FIG. 22 is a flowchart of a method for realizing the policy file output function of the
[0092]
FIG. 23 is a flowchart of a method for realizing the function of the fourth tool for the cache taglib of the Jakarta project. In this method, a fragmentation operator selects one or more types of ID candidates notified from the ID candidate notification means as a selection ID, and performs predetermined processing on each variable G belonging to the set F3. . In S210, a tenth determination is made as to whether or not the variable G is a variable of the first and second types. If the result of the determination is “positive”, the delivery to the designated fragment D1 is performed in S211. The tenth delivery setting that does not explicitly set the data is performed. In S212, an eleventh determination is made as to whether or not the variable G is a third type variable. If the result of the determination is “positive”, the variable G relates to the selection ID in S213. If an eleventh child determination as to whether or not the variable is present and the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is sent to the designated fragment D1 in S214. The eleventh delivery setting is explicitly set as the delivery data. When the result of the eleventh child determination in S213 is “No”, in S215, a twelfth delivery setting is performed in which no explicit setting is made for the delivery data to the designated fragment D1.
[0093]
FIG. 24 is a hardware configuration diagram for executing the program. A program for realizing each function of the apparatus according to the present invention is executed using, for example, the hardware shown in FIG. A
[0094]
As a summary, the following matters are disclosed regarding the configuration of the present invention.
(1): The dynamic Web page generation source file that generates the transmission Web page to be transmitted to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support device that supports a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
Each description item that may be included in the description range related to a series of processes that generate a single transmission Web page portion within the dynamic Web page generation source file (hereinafter referred to as a registration pattern) Registered pattern holding means for holding each piece of parsing information as a registered pattern,
Parsing information creation means for creating parsing information of a dynamic web page generation source file (hereinafter referred to as "work target source file"), and
Location notification means for notifying the fragmentation worker of the location where the registered pattern description item exists in the work source file by comparing the parsing information with each registered pattern;
A fragment-related work support device characterized by comprising:
(2) The fragment-related work support device according to (1), wherein the source file for dynamic Web page generation is a JSP file, and the transmission Web page is an HTML file.
(3) The fragment-related work support apparatus according to (1), wherein the entire dynamic Web page generation source file is fragmented.
(4): The registration pattern description item relates to a processing item related to access to data included in a transmission Web page transmission request from a client, a processing item related to access to a bean, and / or a loop processing. The fragment-related work support device according to (1), wherein processing items are included.
(5) The fragment related work support apparatus according to (1), wherein the location notification means notifies the description information of the registered pattern description items together with the location of the registered pattern description items.
[0095]
(6): The dynamic Web page generation source file that generates the transmission Web page to be transmitted to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support device that supports a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment A1 specified by the fragmentation worker in the source file for dynamic Web page generation,
A set calculation means for calculating a set C1 of variables referred to by the operation B2 executed based on a description portion in the dynamic Web page generation source file and outside the designated fragment A1,
Determining means for determining whether the set C1 includes a variable affected by the operation B1 executed based on the description portion in the designated fragment A1, and
If the determination by the determination means is “positive”, the fragmentation availability information notification means for notifying that the designated fragment A1 is inaccurate as a fragment;
A fragment-related work support device characterized by comprising:
(7) The fragment-related work support device according to (6), wherein the dynamic Web page generation source file is a JSP file, and the transmission Web page is an HTML file.
(8) The fragment related work support apparatus according to (6), wherein the entire dynamic Web page generation source file is fragmented.
[0096]
(9): The dynamic Web page generation source file that generates the transmission Web page to be transmitted to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support device that supports a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment D1 specified by the fragmentation worker in the dynamic Web page generation source file,
First set calculating means for calculating a set F1 of variables referred to by the operation E1 executed based on the description portion in the designated fragment D1;
A set F2 of an operation E2 which is an operation executed based on a description part in the source file for generating dynamic Web pages and outside the designated fragment D1 and which affects a variable of the set F1 is calculated. A second set calculating means;
A third set calculating means for calculating a set F3 of variables that are affected by the operation E2 included in the set F2 and that belong to the set F1, and
ID candidate notifying means for notifying the fragmentation worker of information related to the variable G belonging to the set F3 as an ID candidate for the designated fragment D1,
A fragment-related work support device characterized by comprising:
(10): A first determination is made as to whether or not the variable G is a parameter or header information. If the result of the determination is “positive”, the variable G is defined as a first type variable. Variable G is a first ID candidate assigning means for assigning to a first type ID candidate for the designated fragment D1;
When the first determination is “No”, a second determination is made as to whether or not the type of the variable G is a primitive or a string. If the determination result is “Positive”, the variable G is set to the second type. A second type of variable G as a variable, a second ID candidate assigning means for assigning the second type of variable G to the second type of ID candidate for the designated fragment D1, and
When both the first and second determination results are negative, the variable G is a third type variable, and the third type variable G is a method belonging to a class as a type of the variable G and a superclass of the class. The set I of the method H whose return type is a primitive or a string is associated with the variable G (hereinafter, I associated with G is referred to as “I (G)”). A third ID candidate assigning means for assigning to the third type ID candidate for the designated fragment D1,
Have
The fragment candidate work support described in (9), wherein the ID candidate notification means includes information related to the type of each ID candidate in the information notified to the fragmentation worker as an ID candidate for the designated fragment D1 apparatus.
(11): The fragmentation operator selects one or more types of ID candidates notified from the ID candidate notification means as a selection ID, and for each variable G belonging to the set F3,
A fifth determination is made as to whether or not the variable G is the first type variable. If the result of the determination is “positive”, no explicit setting is made for the delivery data to the designated fragment D1. First delivery setting means;
When a sixth determination is made as to whether or not the variable G is a second type variable, and the result of the determination is “positive”, the first child whether or not the variable G is a selection ID A second delivery setting means for making a judgment and explicitly setting the variable G as delivery data to the designated fragment D1 if the result of the judgment is “positive”;
When the result of the first child determination is “No”, a first grandchild determination is made as to whether or not the scope of the variable G is a page. If the result of the determination is “Positive”, A third delivery setting means for explicitly setting the variable G as delivery data to the designated fragment D1,
If the result of the first grandchild determination is “No”, a fourth delivery setting unit that does not explicitly set the delivery data to the designated fragment D1,
A seventh determination is made as to whether or not the variable G is a third type variable, and if the result of the determination is “positive”, it is determined whether or not the variable G is a variable related to the selection ID. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as delivery data to the designated fragment D1. Delivery setting means,
If the result of the second child determination is “No”, a second grandchild determination is made as to whether the scope of the variable G is a page. If the result of the determination is “Positive”, the designated fragment Sixth delivery setting means for changing the scope of the variable G in D1 to a request; and
A seventh delivery setting unit that does not explicitly set delivery data to the designated fragment D1 when the result of the second grandchild determination is “No”;
The fragment-related work support device according to (10), characterized by comprising:
(12): In the processing by the Web page server, the Web page server identifies each transmission Web page portion based on component information in the policy file in response to a Web page transmission request from a client. And the process of determining whether or not the copy in the cache can be used for each identified web page for transmission is included,
For one or more selection IDs selected from among the type-specific ID candidates notified by the fragmentation operator from the ID candidate notification means,
The selection ID which is a variable of the first or second type is a first component setting means for setting the selection ID to a component of the policy file,
The selection ID related to the third type of variable includes a second component setting means for setting a parameter name consisting of a combination of the selection ID and a method related to the selection ID in a component of the policy file, and
Policy file output means for outputting a policy file based on the settings of the first and second component setting means;
The fragment-related work support device according to (10), characterized by comprising:
(13): The fragmentation worker selects one or more types of ID candidates notified from the ID candidate notification means as a selection ID, and for each variable G belonging to the set F3,
If the variable G is the first and second types of variables and a tenth determination is made and if the result of the determination is “positive”, the explicit setting of the delivery data to the designated fragment D1 10th delivery setting means not to perform,
An eleventh determination is made as to whether or not the variable G is a third type variable, and when the result of the determination is “positive”, whether or not the variable G is a variable related to the selection ID is determined. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as the delivery data to the designated fragment D1. Delivery setting means, and
A twelfth delivery setting means that does not explicitly set the delivery data to the designated fragment D1 when the result of the eleventh child determination is “no”;
The fragment-related work support device according to (10), characterized by comprising:
(14) The fragment-related work support device according to (9), wherein the dynamic Web page generation source file is a JSP file, and the transmission Web page is an HTML file.
[0097]
(15): The dynamic Web page generation source file that generates the transmission Web page to be transmitted to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support method for supporting a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
Each description item that may be included in the description range related to a series of processes that generate a single transmission Web page portion within the dynamic Web page generation source file (hereinafter referred to as a registration pattern) A registered pattern holding step for holding each piece of parsing information as a registered pattern,
A parsing information creation step for creating parsing information of a source file for generating a dynamic Web page to be worked on (hereinafter referred to as a working source file); and
A location notification step of notifying the fragmentation worker of the location where the registered pattern description item exists in the work source file by checking the parsing information with each registered pattern;
A fragment-related work support method characterized by comprising:
(16) The fragment-related work support method according to (15), wherein the source file for dynamic Web page generation is a JSP file, and the transmission Web page is an HTML file.
(17): The fragment related work support method according to (15), wherein the entire source file for generating dynamic Web pages is fragmented.
(18): The registration pattern description item relates to a processing item related to access to data included in a transmission Web page transmission request from a client, a processing item related to access to a bean, and / or a loop processing. The fragment related work support method according to (15), characterized in that a processing item is included.
(19): The fragment related work support method according to (15), wherein in the location notification step, the description information for the registered pattern description item is notified together with the location of the registered pattern description item.
[0098]
(20): The dynamic Web page generation source file that generates the transmission Web page to be transmitted to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support method for supporting a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment A1 specified by the fragmentation worker in the source file for dynamic Web page generation,
A set calculation step of calculating a set C1 of variables referred to by the operation B2 executed based on a description portion in the source file for dynamic Web page generation and outside the designated fragment A1,
A determination step of determining whether the set C1 includes a variable affected by the operation B1 executed based on the description portion in the designated fragment A1; and
If the determination in the determination step is “positive”, the fragment-related work support method includes a fragmentation availability information notification step for notifying that the designated fragment A1 is inaccurate as a fragment. .
(21): The fragment related work support method according to (20), wherein the source file for dynamic Web page generation is a JSP file, and the transmission Web page is an HTML file.
(22) The fragment-related work support method according to (20), wherein the entire dynamic Web page generation source file is fragmented.
[0099]
(23): The dynamic Web page generation source file that generates the transmission Web page to be transmitted to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support method for supporting a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment D1 specified by the fragmentation worker in the dynamic Web page generation source file,
A first set calculating step for calculating a set F1 of variables referred to by the operation E1 executed based on the description portion in the designated fragment D1;
A set F2 of an operation E2 which is an operation executed based on a description part in the source file for generating dynamic Web pages and outside the designated fragment D1 and which affects a variable of the set F1 is calculated. A second set calculating step;
A third set calculating step of calculating a set F3 of variables that the operation E2 included in the set F2 affects and belongs to the set F1;
An ID candidate notification step of notifying the fragmentation worker of information related to the variable G belonging to the set F3 as an ID candidate for the designated fragment D1;
A fragment-related work support method characterized by comprising:
(24): A first determination is made as to whether or not the variable G is a parameter or header information. If the result of the determination is “positive”, the variable G is defined as a first type variable. Variable G is a first ID candidate assignment step for assigning to a first type of ID candidate for the designated fragment D1;
When the first determination is “No”, a second determination is made as to whether or not the type of the variable G is a primitive or a string. If the determination result is “Positive”, the variable G is set to the second type. A second ID candidate assigning step for assigning the second type of variable G as a variable to the second type of ID candidate for the designated fragment D1, and
When both the first and second determination results are negative, the variable G is a third type variable, and the third type variable G is a method belonging to a class as a type of the variable G and a superclass of the class. The set I of the method H whose return type is a primitive or a string is associated with the variable G (hereinafter, I associated with G is referred to as “I (G)”). Assigning a third ID candidate to a third type ID candidate for the designated fragment D1;
Have
In the ID candidate notification step, the information related to the type of each ID candidate is included in the information notified to the fragmentation worker as the ID candidate for the designated fragment D1, and the fragment related work support described in (23) Method.
(25): The fragmentation worker selects one or more types of ID candidates notified from the ID candidate notification step in the ID candidate notification step as a selection ID, and for each variable G belonging to the set F3,
A fifth determination is made as to whether or not the variable G is the first type variable. If the result of the determination is “positive”, no explicit setting is made for the delivery data to the designated fragment D1. A first delivery setting step;
When a sixth determination is made as to whether or not the variable G is a second type variable, and the result of the determination is “positive”, the first child whether or not the variable G is a selection ID A second delivery setting step of making a determination and explicitly setting the variable G as delivery data to the designated fragment D1 if the result of the determination is “positive”;
When the result of the first child determination is “No”, a first grandchild determination is made as to whether or not the scope of the variable G is a page. If the result of the determination is “Positive”, A third delivery setting step of explicitly setting the variable G as delivery data to the designated fragment D1;
If the result of the first grandchild determination is “No”, a fourth delivery setting step that does not explicitly set the delivery data to the designated fragment D1,
A seventh determination is made as to whether or not the variable G is a third type variable, and if the result of the determination is “positive”, it is determined whether or not the variable G is a variable related to the selection ID. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as delivery data to the designated fragment D1. Delivery setting step,
If the result of the second child determination is “No”, a second grandchild determination is made as to whether the scope of the variable G is a page. If the result of the determination is “Positive”, the designated fragment A sixth delivery setting step for changing the scope of the variable G in D1 to a request; and
A seventh delivery setting step in which, when the result of the second grandchild determination is “No”, the explicit setting of the delivery data to the designated fragment D1 is not performed;
(24) The fragment related work support method according to (24). (26): In the processing by the Web page server, the Web page server identifies each transmission Web page portion based on component information in the policy file in response to a Web page transmission request from a client. And the process of determining whether or not the copy in the cache can be used for each identified web page for transmission is included,
For one or more selection IDs selected from the type-specific ID candidates notified by the fragmentation operator in the ID candidate notification step,
A selection ID that is a variable of the first or second type is a first component setting step of setting the selection ID in a component of the policy file;
The selection ID related to the third type of variable includes a second component setting step for setting a parameter name consisting of a combination of the selection ID and a method related to the selection ID in a component of the policy file, and
A policy file output step for outputting a policy file based on the settings of the first and second component setting steps;
(24) The fragment related work support method according to (24). (27): The fragmentation worker selects one or more of the type-specific ID candidates notified in the ID candidate notification step as a selection ID, and for each variable G belonging to the set F3,
If the variable G is the first and second types of variables and a tenth determination is made and if the result of the determination is “positive”, the explicit setting of the delivery data to the designated fragment D1 A tenth delivery setting step without
An eleventh determination is made as to whether or not the variable G is a third type variable, and when the result of the determination is “positive”, whether or not the variable G is a variable related to the selection ID is determined. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as the delivery data to the designated fragment D1. Delivery setting step, and
A twelfth delivery setting step in which, when the result of the eleventh child determination is “no”, the explicit setting of the delivery data to the designated fragment D1 is not performed;
(24) The fragment related work support method according to (24). (28) The fragment-related work support method according to (23), wherein the dynamic Web page generation source file is a JSP file, and the transmission Web page is an HTML file.
(29): A fragment-related work support program for causing a computer to function as each means in the fragment-related work support device according to any one of (1) to (14).
[0100]
【The invention's effect】
According to the present invention, description items that may be included in the description range of the dynamic Web page generation source file related to a series of processes for generating one transmission Web page portion are held as a registration pattern. Because the location of the description items corresponding to each registration pattern is notified to the source file for generating the dynamic Web page to be worked on, the fragmentation worker can use the dynamic Web page to be worked on. The source file for generation can be efficiently divided into appropriate fragments.
[Brief description of the drawings]
FIG. 1 is a schematic diagram of an Internet system.
FIG. 2 is a diagram showing a relationship between JSP and display contents displayed on a client display based on an HTML file sent to the client.
FIG. 3 is an explanatory diagram of a configuration of a first tool.
FIG. 4 shows a pattern example registered in the first tool and a syntax tree output by parsing the pattern example.
FIG. 5 is a diagram showing a location where the pattern of FIG. 4 is matched in the syntax tree together with a syntax tree output by parsing an input JSP file.
FIG. 6 is an explanatory diagram of a configuration of a second tool.
FIG. 7 is a diagram illustrating the configuration of a third tool.
FIG. 8 is a configuration explanatory diagram of a fourth tool.
FIG. 9 summarizes the relationship between the fragmentation worker and the
FIG. 10 is a functional block diagram of a fragment related work support device.
FIG. 11 is a functional block diagram of a fragment-related work support device.
FIG. 12 is a functional block diagram of a fragment-related work support apparatus.
13 is a functional block diagram of a function added to the fragment related work support apparatus of FIG.
FIG. 14 is a functional block diagram of a fragment related work support device.
FIG. 15 is a functional block diagram of a fragment-related work support device.
FIG. 16 is a functional block diagram of a fragment related work support apparatus.
FIG. 17 is a flowchart of a method for realizing the function of the first tool;
FIG. 18 is a flowchart of a method for realizing the function of the second tool;
FIG. 19 is a flowchart of a method for realizing the function of the third tool;
20 is a flowchart of a method obtained by improving the method according to the flowchart of FIG. 19;
FIG. 21 is a flowchart of a method for realizing an ID passing function of a fourth tool.
FIG. 22 is a flowchart of a method for realizing a policy file output function of a fourth tool;
FIG. 23 is a flowchart of a method for realizing the function of the fourth tool for the cache taglib of the Jakarta project.
FIG. 24 is a hardware configuration diagram for executing a program.
[Explanation of symbols]
100: Fragment related
Claims (29)
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持手段、
作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する構文解析情報作成手段、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。The dynamic Web page generation source file that generates the transmission Web page to be sent to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support device that supports a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
Each description item that may be included in the description range related to a series of processes that generate a single transmission Web page portion within the dynamic Web page generation source file (hereinafter referred to as a registration pattern) Registered pattern holding means for holding each piece of parsing information as a registered pattern,
Parsing information creating means for creating parsing information of a dynamic Web page generation source file (hereinafter, working target source file) to be worked on, and a work target by collating the parsing information with each registered pattern Location notification means for notifying the fragmentation worker of the location where the registration pattern description item exists in the source file,
A fragment-related work support device characterized by comprising:
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する集合算出手段、
集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する判定手段、及び
前記判定手段の判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。The dynamic Web page generation source file that generates the transmission Web page to be sent to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support device that supports a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment A1 specified by the fragmentation worker in the source file for dynamic Web page generation,
A set calculation means for calculating a set C1 of variables referred to by the operation B2 executed based on a description portion in the dynamic Web page generation source file and outside the designated fragment A1,
If the set C1 includes a determination unit that determines whether or not the set C1 includes a variable affected by the operation B1 that is executed based on the description portion in the designated fragment A1, and the determination by the determination unit is “positive”, The designated fragment A1 is a fragmentation propriety information notifying means for notifying that the designated fragment A1 is improper as a fragment,
A fragment-related work support device characterized by comprising:
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援装置において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対し、
指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する第1の集合算出手段、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する第2の集合算出手段、
集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する第3の集合算出手段、及び
集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知するID候補通知手段、
を有していることを特徴とするフラグメント関連作業支援装置。The dynamic Web page generation source file that generates the transmission Web page to be sent to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support device that supports a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment D1 specified by the fragmentation worker in the dynamic Web page generation source file,
First set calculating means for calculating a set F1 of variables referred to by the operation E1 executed based on the description portion in the designated fragment D1;
A set F2 of an operation E2 which is an operation executed based on a description part in the source file for generating dynamic Web pages and outside the designated fragment D1 and which affects a variable of the set F1 is calculated. A second set calculating means;
A third set calculating means for calculating a set F3 of variables that the operation E2 included in the set F2 affects and belongs to the set F1, and information related to the variable G that belongs to the set F3 about the designated fragment D1 ID candidate notification means for notifying fragmentation workers as ID candidates;
A fragment-related work support device characterized by comprising:
第1の判定が「否」であるとき変数Gの型がプリミティブ又はストリングであるか否かと言う第2の判定を行い該判定結果が「正」であれば該変数Gを第2の種類の変数とし第2の種類の変数Gは指定フラグメントD1についての第2の種類のID候補に割当てる第2のID候補割当て手段、及び
第1及び第2の判定結果が共に否であるとき変数Gは第3の種類の変数とし第3の種類の変数Gは該変数Gの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドHの集合Iを変数Gに対応付け(以下、Gに対応付けられたIを「I(G)」と言う。)該I(G)を指定フラグメントD1についての第3の種類のID候補に割当てる第3のID候補割当て手段、
を有し、
前記ID候補通知手段は、指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する情報には、各ID候補の種類に係る情報を含めることを特徴とする請求項9記載のフラグメント関連作業支援装置。A first determination is made as to whether or not the variable G is a parameter or header information. If the result of the determination is “positive”, the variable G is a first type variable and the first type variable G is designated. First ID candidate assigning means for assigning to the first type ID candidate for the fragment D1;
When the first determination is “No”, a second determination is made as to whether or not the type of the variable G is a primitive or a string. If the determination result is “Positive”, the variable G is set to the second type. As a variable, the second type variable G is a second ID candidate assigning means for assigning the second type ID candidate for the designated fragment D1, and when both the first and second determination results are negative, the variable G is A third type variable G is a set of methods H belonging to a class as a type of the variable G and a superclass of the class, and whose return type is a primitive or a string. I is associated with the variable G (hereinafter, I associated with G is referred to as “I (G)”). Third that assigns the I (G) to the third type ID candidate for the designated fragment D1. ID candidate assigning means,
Have
10. The fragment related work support according to claim 9, wherein the ID candidate notifying means includes information related to the type of each ID candidate in the information notified to the fragmentation worker as an ID candidate for the designated fragment D1. apparatus.
該変数Gが第1の種類の変数であるか否かと言う第5の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第1の引渡し設定手段、
該変数Gが第2の種類の変数であるか否かと言う第6の判定を行い該判定の結果が「正」である場合、該変数Gが選択IDであるか否かの第1の子判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第2の引渡し設定手段、
前記第1の子判定の結果が「否」である場合に、該変数Gのスコープがページであるか否かの第1の孫判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第3の引渡し設定手段、
前記第1の孫判定の結果が「否」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第4の引渡し設定手段、
該変数Gが第3の種類の変数であるか否かと言う第7の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かと言う第2の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第5の引渡し設定手段、
第2の子判定の結果が「否」である場合に該変数Gのスコープがページであるか否かの第2の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントD1における該変数Gのスコープをリクエストへ変更する第6の引渡し設定手段、及び
第2の孫判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第7の引渡し設定手段、
を有していることを特徴とする請求項10記載のフラグメント関連作業支援装置。The fragmentation operator selects one or more types of candidate IDs notified from the ID candidate notification means as a selection ID, and for each variable G belonging to the set F3,
A fifth determination is made as to whether or not the variable G is the first type variable. If the result of the determination is “positive”, no explicit setting is made for the delivery data to the designated fragment D1. First delivery setting means;
When a sixth determination is made as to whether or not the variable G is a second type variable, and the result of the determination is “positive”, the first child whether or not the variable G is a selection ID A second delivery setting means for making a judgment and explicitly setting the variable G as delivery data to the designated fragment D1 if the result of the judgment is “positive”;
When the result of the first child determination is “No”, a first grandchild determination is made as to whether or not the scope of the variable G is a page. If the result of the determination is “Positive”, A third delivery setting means for explicitly setting the variable G as delivery data to the designated fragment D1,
If the result of the first grandchild determination is “No”, a fourth delivery setting unit that does not explicitly set the delivery data to the designated fragment D1,
A seventh determination is made as to whether or not the variable G is a third type variable, and if the result of the determination is “positive”, it is determined whether or not the variable G is a variable related to the selection ID. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as delivery data to the designated fragment D1. Delivery setting means,
If the result of the second child determination is “No”, a second grandchild determination is made as to whether the scope of the variable G is a page. If the result of the determination is “Positive”, the designated fragment When the result of the sixth delivery setting means for changing the scope of the variable G in D1 to the request and the second grandchild determination is “No”, the explicit setting for the delivery data to the designated fragment D1 is Seventh delivery setting means not to be performed;
The fragment-related work support apparatus according to claim 10, wherein
フラグメント化作業者が前記ID候補通知手段から通知された種類別ID候補の中から選択した1個以上の選択IDに対して、
第1又は第2の種類の変数である選択IDは、該選択IDをポリシー・ファイルのコンポーネントに設定する第1のコンポーネント設定手段、
第3の種類の変数に係る選択IDは、該選択IDと該選択IDに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第2のコンポーネント設定手段、及び
前記第1及び前記第2のコンポーネント設定手段の設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力手段、
を有していることを特徴とする請求項10記載のフラグメント関連作業支援装置。In the processing by the Web page server, the Web page server identifies each Web page portion for transmission based on component information in the policy file in response to a Web page transmission request from a client. Processing to determine whether or not to use the copy in the cache for each Web page part for transmission is included,
For one or more selection IDs selected from among the type-specific ID candidates notified by the fragmentation operator from the ID candidate notification means,
The selection ID which is a variable of the first or second type is a first component setting means for setting the selection ID to a component of the policy file,
The selection ID related to the third type of variable includes: a second component setting unit that sets a parameter name including a combination of the selection ID and a method related to the selection ID in a component of the policy file; and Policy file output means for outputting a policy file based on the setting of the second component setting means;
The fragment-related work support apparatus according to claim 10, wherein
該変数Gが第1及び第2の種類の変数であるか否かと言う第10の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第10の引渡し設定手段、
該変数Gが第3の種類の変数であるか否かと言う第11の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かの第11の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第11の引渡し設定手段、及び
第11の子判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第12の引渡し設定手段、
を有していることを特徴とする請求項10記載のフラグメント関連作業支援装置。The fragmentation operator selects one or more types of candidate IDs notified from the ID candidate notification means as a selection ID, and for each variable G belonging to the set F3,
If the variable G is the first and second types of variables and a tenth determination is made and if the result of the determination is “positive”, the explicit setting of the delivery data to the designated fragment D1 10th delivery setting means not to perform,
An eleventh determination is made as to whether or not the variable G is a third type variable, and when the result of the determination is “positive”, whether or not the variable G is a variable related to the selection ID is determined. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as the delivery data to the designated fragment D1. And a twelfth delivery setting means that does not explicitly set delivery data to the designated fragment D1 when the result of the eleventh child determination is “No”.
The fragment-related work support apparatus according to claim 10, wherein
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
動的Webページ生成用ソース・ファイル内の記述範囲であって1個の送信用Webページ部分を生成する一連の処理に係る記述範囲に含まれる可能性がある各記述事項(以下、登録パターン用記述事項)に対して、それらの構文解析情報をそれぞれ登録パターンとして保持する登録パターン保持ステップ、
作業対象の動的Webページ生成用ソース・ファイル(以下、作業対象ソース・ファイル)の構文解析情報を作成する構文解析情報作成ステップ、及び
前記構文解析情報を各登録パターンと照合することにより作業対象ソース・ファイルにおいて登録パターン用記述事項が存在する場所をフラグメント化作業者へ通知する場所通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。The dynamic Web page generation source file that generates the transmission Web page to be sent to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support method for supporting a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
Each description item that may be included in the description range related to a series of processes that generate a single transmission Web page portion within the dynamic Web page generation source file (hereinafter referred to as a registration pattern) A registered pattern holding step for holding each piece of parsing information as a registered pattern,
A parsing information creation step for creating parsing information of a dynamic Web page generation source file (hereinafter, working target source file) to be worked on, and a work target by collating the parsing information with each registered pattern. A location notification step for notifying the fragmentation worker where the registration pattern description exists in the source file;
A fragment-related work support method characterized by comprising:
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントA1に対し、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントA1外の記述部分に基づいて実行される操作B2が参照する変数の集合C1を算出する集合算出ステップ、
集合C1が、指定フラグメントA1内の記述部分に基づいて実行される操作B1からの影響を受ける変数を含むか否かを判定する判定ステップ、及び
前記判定ステップの判定が「正」であれば、指定フラグメントA1は、フラグメントとして不的確である旨を通知するフラグメント化可否情報通知ステップ、を有していることを特徴とするフラグメント関連作業支援方法。The dynamic Web page generation source file that generates the transmission Web page to be sent to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support method for supporting a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment A1 specified by the fragmentation worker in the source file for dynamic Web page generation,
A set calculation step of calculating a set C1 of variables referred to by the operation B2 executed based on a description portion in the source file for dynamic Web page generation and outside the designated fragment A1,
If the set C1 includes a determination step for determining whether or not the set C1 includes a variable affected by the operation B1 executed based on the description part in the designated fragment A1, and the determination in the determination step is “positive”, A fragment-related work support method, characterized in that the designated fragment A1 includes a fragmentation availability information notification step of notifying that the specified fragment A1 is improper as a fragment.
Webページ・サーバは、1個以上のフラグメントの各々に基づいて生成された送信用Webページ部分のコピーをキャッシュに格納し、クライアントへ送信する送信用Webページの生成に利用可能な送信用Webページ部分のコピーがキャッシュに有れば、該送信用Webページ部分は該コピーを割り当て、また、送信用Webページ部分のコピーがキャッシュに無ければ、フラグメントに基づく送信用Webページ部分を新規に生成し、これら送信用Webページ部分を含む全体の送信用Webページをクライアントへ送信する処理を実施し、
フラグメント化作業者が前記Webページ・サーバによる前記処理の実施のために予め必要な作業を実施するときに該作業を支援するフラグメント関連作業支援方法において、
フラグメント化作業者が動的Webページ生成用ソース・ファイルにおいて指定した指定フラグメントD1に対し、
指定フラグメントD1内の記述部分に基づいて実行される操作E1が参照する変数の集合F1を算出する第1の集合算出ステップ、
動的Webページ生成用ソース・ファイル内の記述部分であってかつ指定フラグメントD1外の記述部分に基づいて実行される操作であって集合F1の変数に影響を及ぼす操作E2の集合F2を算出する第2の集合算出ステップ、
集合F2に含まれる操作E2が影響を与える変数であってかつ集合F1に属する変数の集合F3を算出する第3の集合算出ステップ、及び
集合F3に属する変数Gに係る情報を指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知するID候補通知ステップ、
を有していることを特徴とするフラグメント関連作業支援方法。The dynamic Web page generation source file that generates the transmission Web page to be sent to the client is at least partially divided into one or more fragments,
The Web page server stores a copy of the transmission Web page portion generated based on each of one or more fragments in a cache, and can be used to generate a transmission Web page to be transmitted to the client. If there is a copy of the part in the cache, the sending web page part assigns the copy, and if there is no copy of the sending web page part in the cache, a new sending web page part based on the fragment is generated. Execute the process to send the entire transmission Web page including these transmission Web page parts to the client,
In a fragment related work support method for supporting a work when a fragmentation worker performs a work required in advance for the execution of the processing by the Web page server,
For the specified fragment D1 specified by the fragmentation worker in the dynamic Web page generation source file,
A first set calculating step for calculating a set F1 of variables referred to by the operation E1 executed based on the description portion in the designated fragment D1;
A set F2 of an operation E2 which is an operation executed based on a description part in the source file for generating dynamic Web pages and outside the designated fragment D1 and which affects a variable of the set F1 is calculated. A second set calculating step;
A third set calculation step for calculating a set F3 of variables that are affected by the operation E2 included in the set F2 and that belong to the set F1, and information on the variable G that belongs to the set F3 about the designated fragment D1 ID candidate notification step for notifying the fragmentation worker as an ID candidate,
A fragment-related work support method characterized by comprising:
第1の判定が「否」であるとき変数Gの型がプリミティブ又はストリングであるか否かと言う第2の判定を行い該判定結果が「正」であれば該変数Gを第2の種類の変数とし第2の種類の変数Gは指定フラグメントD1についての第2の種類のID候補に割当てる第2のID候補割当てステップ、及び
第1及び第2の判定結果が共に否であるとき変数Gは第3の種類の変数とし第3の種類の変数Gは該変数Gの型としてのクラスと該クラスのスーパークラスとに属するメソッドであって返り値の型がプリミティブ又はストリングであるメソッドHの集合Iを変数Gに対応付け(以下、Gに対応付けられたIを「I(G)」と言う。)該I(G)を指定フラグメントD1についての第3の種類のID候補に割当てる第3のID候補割当てステップ、
を有し、
前記ID候補通知ステップでは、指定フラグメントD1についてのID候補としてフラグメント化作業者へ通知する情報には、各ID候補の種類に係る情報を含めることを特徴とする請求項23記載のフラグメント関連作業支援方法。A first determination is made as to whether or not the variable G is a parameter or header information. If the result of the determination is “positive”, the variable G is a first type variable and the first type variable G is designated. A first ID candidate assignment step for assigning to a first type ID candidate for fragment D1;
When the first determination is “No”, a second determination is made as to whether or not the type of the variable G is a primitive or a string. If the determination result is “Positive”, the variable G is set to the second type. As a variable, the second type of variable G is a second ID candidate assignment step for assigning the second type of ID candidate for the designated fragment D1, and when both the first and second determination results are negative, the variable G is A third type variable G is a set of methods H belonging to a class as a type of the variable G and a superclass of the class, and whose return type is a primitive or a string. I is associated with the variable G (hereinafter, I associated with G is referred to as “I (G)”). Third that assigns the I (G) to the third type ID candidate for the designated fragment D1. ID candidate assignment step ,
Have
The fragment-related work support according to claim 23, wherein in the ID candidate notification step, information related to the type of each ID candidate is included in the information notified to the fragmentation worker as an ID candidate for the designated fragment D1. Method.
該変数Gが第1の種類の変数であるか否かと言う第5の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第1の引渡し設定ステップ、
該変数Gが第2の種類の変数であるか否かと言う第6の判定を行い該判定の結果が「正」である場合、該変数Gが選択IDであるか否かの第1の子判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第2の引渡し設定ステップ、
前記第1の子判定の結果が「否」である場合に、該変数Gのスコープがページであるか否かの第1の孫判定を行い該判定の結果が「正」であれば、該変数Gを該指定フラグメントD1への引渡しデータとして明示的に設定する第3の引渡し設定ステップ、
前記第1の孫判定の結果が「否」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第4の引渡し設定ステップ、
該変数Gが第3の種類の変数であるか否かと言う第7の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かと言う第2の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第5の引渡し設定ステップ、
第2の子判定の結果が「否」である場合に該変数Gのスコープがページであるか否かの第2の孫判定を行い該判定の結果が「正」であれば、該指定フラグメントD1における該変数Gのスコープをリクエストへ変更する第6の引渡し設定ステップ、及び
第2の孫判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第7の引渡し設定ステップ、
を有していることを特徴とする請求項24記載のフラグメント関連作業支援方法。A fragmentation worker selects one or more types of ID candidates notified from the ID candidate notification step in the ID candidate notification step as a selection ID, and for each variable G belonging to the set F3,
A fifth determination is made as to whether or not the variable G is the first type variable. If the result of the determination is “positive”, no explicit setting is made for the delivery data to the designated fragment D1. A first delivery setting step;
When a sixth determination is made as to whether or not the variable G is a second type variable, and the result of the determination is “positive”, the first child whether or not the variable G is a selection ID A second delivery setting step of making a determination and explicitly setting the variable G as delivery data to the designated fragment D1 if the result of the determination is “positive”;
When the result of the first child determination is “No”, a first grandchild determination is made as to whether or not the scope of the variable G is a page. If the result of the determination is “Positive”, A third delivery setting step of explicitly setting the variable G as delivery data to the designated fragment D1;
If the result of the first grandchild determination is “No”, a fourth delivery setting step that does not explicitly set the delivery data to the designated fragment D1,
A seventh determination is made as to whether or not the variable G is a third type variable, and if the result of the determination is “positive”, it is determined whether or not the variable G is a variable related to the selection ID. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as delivery data to the designated fragment D1. Delivery setting step,
If the result of the second child determination is “No”, a second grandchild determination is made as to whether the scope of the variable G is a page. If the result of the determination is “Positive”, the designated fragment When the result of the sixth delivery setting step for changing the scope of the variable G in D1 to the request and the second grandchild determination is “No”, the explicit setting for the delivery data to the designated fragment D1 is A seventh delivery setting step not to be performed;
25. The fragment related work support method according to claim 24, comprising:
フラグメント化作業者が前記ID候補通知ステップにおいて通知した種類別ID候補の中から選択した1個以上の選択IDに対して、
第1又は第2の種類の変数である選択IDは、該選択IDをポリシー・ファイルのコンポーネントに設定する第1のコンポーネント設定ステップ、
第3の種類の変数に係る選択IDは、該選択IDと該選択IDに係るメソッドの組からなるパラメータ名をポリシー・ファイルのコンポーネントに設定する第2のコンポーネント設定ステップ、及び
前記第1及び前記第2のコンポーネント設定ステップの設定に基づくポリシー・ファイルを出力するポリシー・ファイル出力ステップ、
を有していることを特徴とする請求項24記載のフラグメント関連作業支援方法。In the processing by the Web page server, the Web page server identifies each Web page portion for transmission based on component information in the policy file in response to a Web page transmission request from a client. Processing to determine whether or not to use the copy in the cache for each Web page part for transmission is included,
For one or more selection IDs selected from the type-specific ID candidates notified by the fragmentation operator in the ID candidate notification step,
A selection ID that is a variable of the first or second type is a first component setting step of setting the selection ID in a component of the policy file;
The selection ID related to the third type of variable includes a second component setting step of setting a parameter name consisting of a combination of the selection ID and a method related to the selection ID in a component of the policy file, and the first and the above A policy file output step for outputting a policy file based on the setting of the second component setting step;
25. The fragment related work support method according to claim 24, comprising:
該変数Gが第1及び第2の種類の変数であるか否かと言う第10の判定を行い該判定の結果が「正」であれば、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第10の引渡し設定ステップ、
該変数Gが第3の種類の変数であるか否かと言う第11の判定を行い該判定の結果が「正」である場合に該変数Gが選択IDに係る変数であるか否かの第11の子判定を行い該判定の結果が「正」であれば、該変数Gに対応付けられるメソッドI(G)の実行結果を該指定フラグメントD1への引渡しデータとして明示的に設定する第11の引渡し設定ステップ、及び
第11の子判定の結果が「否」である場合に、指定フラグメントD1への引渡しデータについての明示的な設定は行わない第12の引渡し設定ステップ、
を有していることを特徴とする請求項24記載のフラグメント関連作業支援方法。A fragmentation worker selects one or more types of ID candidates notified from the ID candidate notification step in the ID candidate notification step as a selection ID, and for each variable G belonging to the set F3,
If the variable G is the first and second types of variables and a tenth determination is made and if the result of the determination is “positive”, the explicit setting of the delivery data to the designated fragment D1 A tenth delivery setting step without
An eleventh determination is made as to whether or not the variable G is a third type variable, and when the result of the determination is “positive”, whether or not the variable G is a variable related to the selection ID is determined. If the result of the determination is “positive”, the execution result of the method I (G) associated with the variable G is explicitly set as the delivery data to the designated fragment D1. And a twelfth delivery setting step in which no explicit setting is made for the delivery data to the designated fragment D1 when the result of the eleventh child determination is “no”,
25. The fragment related work support method according to claim 24, comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003141512A JP3880543B2 (en) | 2003-05-20 | 2003-05-20 | Fragment related work support device, fragment related work support method, and fragment related work support program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003141512A JP3880543B2 (en) | 2003-05-20 | 2003-05-20 | Fragment related work support device, fragment related work support method, and fragment related work support program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004348207A JP2004348207A (en) | 2004-12-09 |
| JP3880543B2 true JP3880543B2 (en) | 2007-02-14 |
Family
ID=33529850
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003141512A Expired - Fee Related JP3880543B2 (en) | 2003-05-20 | 2003-05-20 | Fragment related work support device, fragment related work support method, and fragment related work support program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3880543B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4671402B2 (en) * | 2005-02-15 | 2011-04-20 | 株式会社野村総合研究所 | Web page providing apparatus and web page providing method |
| JP5602677B2 (en) * | 2011-05-26 | 2014-10-08 | 日本電信電話株式会社 | WEB information prefetching method, prefetching proxy server device, and information storage server device |
-
2003
- 2003-05-20 JP JP2003141512A patent/JP3880543B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004348207A (en) | 2004-12-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8745579B2 (en) | Methods and systems for dynamically composing distributed interactive applications from high-level programming languages | |
| US6021416A (en) | Dynamic source code capture for a selected region of a display | |
| US6675230B1 (en) | Method, system, and program for embedding a user interface object in another user interface object | |
| US7287247B2 (en) | Instrumenting a software application that includes distributed object technology | |
| US6151701A (en) | Method for reconstructing debugging information for a decompiled executable file | |
| US8615750B1 (en) | Optimizing application compiling | |
| US20080040333A1 (en) | Evaluating queries against in-memory objects without serialization | |
| US8136095B2 (en) | Relations in fuzzing data | |
| US20040040012A1 (en) | Optimization of portable operations in a client-server environment | |
| JP3808020B2 (en) | Web server having Java servlet function, Java program update method, and computer program | |
| JP2005011345A (en) | Code segment creating method and system for the same | |
| US20040073552A1 (en) | Software mechanism for efficient compiling and loading of java server pages (JSPs) | |
| WO2009072145A1 (en) | Templating system and method for updating content in real time | |
| US20140053285A1 (en) | Methods for detecting plagiarism in software code and devices thereof | |
| US7509335B2 (en) | System and method for extensible Java Server Page resource management | |
| US8615729B2 (en) | Extending existing model-to-model transformations | |
| US20090055811A1 (en) | Reducing the run-time cost ofinvoking a server page | |
| US9244706B2 (en) | Command line shell command generation based on schema | |
| CN115292641A (en) | Page generation method, device, server and storage medium | |
| JP3880543B2 (en) | Fragment related work support device, fragment related work support method, and fragment related work support program | |
| WO2005088445A1 (en) | Script generation | |
| JP5758311B2 (en) | Test code generation device, test code generation method, test code generation program | |
| Hills et al. | A rewrite framework for language definitions and for generation of efficient interpreters | |
| US8010955B2 (en) | Reducing the run-time cost of incorporating custom tags in a server page | |
| Gilray et al. | A survey of polyvariance in abstract interpretations |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061101 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20061101 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061107 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091117 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |