(57)【要約】【課題】開発者が終了処理に留意しなくても適切に変数の処理を行うことができる開発フレームワークを提供する。【解決手段】本発明に係る開発フレームワークは、ウェブアプリケーションのソフトウェアシステムを開発するために使用されるフレームワークであって、ウェブアプリケーションを構成する１以上のグループごとに変数を管理する。ウェブアプリケーションは複数のページによって構成され、ページ間移動が行われる際に遷移元のページと遷移先のページとが同じグループに属するか否かを判定し、遷移元のページと遷移先のページとが同じグループに属しない場合には、当該グループで保持していた変数を破棄する。【選択図】  図２
2004171492.tif 000002
【特許請求の範囲】
【請求項１】
ウェブアプリケーションのソフトウェアシステムを開発するために使用されるフレームワークであって、ウェブアプリケーションを構成する１以上の機能のグループごとに変数を管理することを特徴とする開発フレームワーク。
【請求項２】
前記ウェブアプリケーションは複数のページによって構成され、ページ間移動が行われる際に遷移元のページと遷移先のページとが同じグループに属するか否かを判定し、遷移元のページと遷移先のページとが同じグループに属しない場合には、当該グループで保持していた変数を破棄する、ことを特徴とする請求項１に記載の開発フレームワーク。
【請求項３】
現在のページが属するグループに関する情報を格納するカレントグループ格納手段と、
ページのリクエストがあったときに、リクエストされたページが属するグループを分析すると共に、リクエストされたページと現在のページとが同じグループに属するか否か、前記カレントグループ格納手段を参照して判定する判定手段と、
前記判定手段によって現在のページとリクエストされたページとが同じグループに属さないと判定された場合に保持していた変数を破棄する変数破棄手段と、
を備え、
前記判定手段によって現在のページとリクエストされたページとが同じグループに属さないと判定された場合にリクエストのあったページのグループを前記カレントグループ格納手段に格納する、
ことを特徴とする開発フレームワーク。
【請求項４】
前記ページのロケーションを示すＵＲＬには、そのページが属するグループに関する情報が含まれ、
リクエストに含まれるページのＵＲＬを参照することによって当該ページが属するグループを特定する、
ことを特徴とする請求項３に記載の開発フレームワーク。
【請求項５】
ウェブアプリケーションのソフトウェアシステムを開発するための開発支援方法であって、ウェブアプリケーションを構成する１以上の機能のグループごとに変数を管理することを特徴とする開発支援方法。
【請求項６】
前記ウェブアプリケーションは複数のページによって構成され、ページ間移動が行われる際に遷移元のページと遷移先のページとが同じグループに属するか否かを判定し、遷移元のページと遷移先のページとが同じグループに属しない場合には、当該グループで保持していた変数を破棄する、ことを特徴とする請求項１に記載の開発支援方法。
【請求項７】
現在のページが属するグループに関する情報をカレントグループ格納手段に格納させるカレントグループ格納ステップと、
ページのリクエストがあったときに、リクエストされたページが属するグループを分析すると共に、リクエストされたページと現在のページとが同じグループに属するか否か、前記カレントグループ格納手段を参照して判定する判定ステップと、
前記判定ステップにおいて現在のページとリクエストされたページとが同じグループに属さないと判定された場合に保持していた変数を破棄する変数破棄ステップと、
を備えることを特徴とする開発支援方法。
【請求項８】
前記ページのロケーションを示すＵＲＬには、そのページが属するグループに関する情報が含まれ、
リクエストに含まれるページのＵＲＬを参照することによって当該ページが属するグループを特定する、
ことを特徴とする請求項７に記載の開発支援方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はウェブアプリケーションのソフトウェアシステムの開発フレームワーク及び開発支援方法に関し、特に、インターネットシステムやイントラネットシステム等のウェブシステムにおいて、クライアントとサーバとの間でやり取りされる情報を管理する形態に関する。
【０００２】
【従来の技術】
ウェブシステムにおいて、例えば、データベース検索やオンラインショッピングなどの各種サービスは次のようにして提供される。まず、ウェブブラウザを有するクライアントがサービスを提供するサーバに対してリクエストを送信し、アプリケーションサーバがそのリクエストに対する応答をクライアントに送信し、クライアントがその応答を受信してその応答に基づいてウェブページを表示する。このようなウェブアプリケーションにおいては、例えば、ショッピングサイトにおいて商品の選択から購入までの一つの処理が複数のページにわたって行われる場合があり、このような場合は複数ページ間で変数を保持する必要がある。このため、クライアントとサーバとの間でやり取りされる一連の情報を管理する単位としてセッションが用いられる。セッションは、クライアントとサーバとの間の接続がオープンしてから終了するまで保持され、その間に実行されるリクエストや応答における変数はそのセッションが終了するまで保持される。このようなセッション管理の方法については、特許文献１又は特許文献２などに記載されている。
【０００３】
【特許文献１】
特開２００２−１８３０８５号公報
【特許文献２】
特開２０００−２２２３５３号公報
【０００４】
【発明が解決しようとする課題】
上記したセッション管理のしくみでは、サーバが変数を管理するので、サーバに接続されるクライアントが増加すると、サーバの負担が大きくなるという問題がある。このため、ウェブアプリケーションの開発者は、不必要となった変数を破棄するために、変数を破棄する処理をプログラム中に明示的に組み込まなければならない。また、変数を破棄する処理を組み込んだとしても、開発者の意図しない処理によって接続が終了されなかった場合などは、セッションがタイムアウトになるまで変数が残ってしまい、サーバの負担となることが懸念される。
【０００５】
そこで、本発明は上記課題を解決し、開発者が終了処理に留意しなくても適切に変数の処理を行うことができる開発フレームワーク及び開発支援方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明に係る開発フレームワーク（開発支援方法）は、ウェブアプリケーションのソフトウェアシステムを開発するために使用されるフレームワーク（開発支援方法）であって、ウェブアプリケーションを構成する１以上の機能のグループごとに変数を管理することを特徴とする。
【０００７】
このように提供するサービスに基づいてウェブアプリケーションを機能ごとのグループにグループ化し、そのグループごとに変数を管理することにより、効率的に変数を管理してサーバの負担を軽減させることができる。なお、「グループ」とは、ウェブアプリケーションを構成する複数のページのうち、同じサービスを提供するページ群を意味する。
【０００８】
上記開発フレームワーク（開発支援方法）において、ウェブアプリケーションは複数のページによって構成され、ページ間移動が行われる際に遷移元のページと遷移先のページとが同じグループに属するか否かを判定し、遷移元のページと遷移先のページとが同じグループに属しない場合には、当該グループで保持していた変数を破棄する、ことを特徴としても良い。
【０００９】
このようにページ間移動があったときに、遷移元と遷移先のページが同じグループに属するか否かを判定して、同じグループに属さない場合には、変数を破棄することにより、開発者が特に意識しなくても不必要な変数が破棄されるため、サーバの負担を軽減させることができる。
【００１０】
また、本発明に係る開発フレームワークは、現在のページが属するグループに関する情報を格納するカレントグループ格納手段と、ページのリクエストがあったときに、リクエストされたページが属するグループを分析すると共に、リクエストされたページと現在のページとが同じグループに属するか否か、カレントグループ格納手段を参照して判定する判定手段と、判定手段によって現在のページとリクエストされたページとが同じグループに属さないと判定された場合に保持していた変数を破棄する変数破棄手段と、を備え、判定手段によって現在のページとリクエストされたページとが同じグループに属さないと判定された場合にリクエストのあったページのグループをカレントグループ格納手段に格納する、ことを特徴とする。
【００１１】
また、本発明に係る開発支援方法は、現在のページが属するグループに関する情報をカレントグループ格納手段に格納させるカレントグループ格納ステップと、ページのリクエストがあったときに、リクエストされたページが属するグループを分析すると共に、リクエストされたページと現在のページとが同じグループに属するか否か、カレントグループ格納手段を参照して判定する判定ステップと、判定ステップにおいて現在のページとリクエストされたページとが同じグループに属さないと判定された場合に保持していた変数を破棄する変数破棄ステップと、を備えることを特徴とする。
【００１２】
このように、現在のページが属するグループの情報を格納し、クライアントからリクエストがあった場合に、リクエストのあったページが現在のページが属するグループと同じであるか判定して、同じでない場合には変数を破棄する構成（方法）により、不必要な変数を破棄してサーバの負担を軽減させることができる。
【００１３】
上記開発フレームワーク（開発支援方法）は、前記ページのロケーションを示すＵＲＬには、そのページが属するグループに関する情報が含まれ、リクエストに含まれるページのＵＲＬを参照することによって当該ページが属するグループを特定する、ことを特徴としても良い。
【００１４】
このようにページのＵＲＬにそのページが属するグループの情報を含めることにより、それぞれのページが属するグループを容易に特定することができる。また、ウェブアプリケーション開発時において、ＵＲＬを書き出すツールを拡張することにより、ページのグルーピングを自動的に行うことができる。
【００１５】
【発明の実施の形態】
以下、図面と共に本発明に係る開発フレームワークの好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１６】
まず、本実施形態に係る開発フレームワークが適用される環境について図１を参照しながら説明する。開発フレームワークは、サーバ１０及びクライアント２０がインターネット３０によって接続された図１に示されるような環境において、アプリケーションを提供するサーバ１０を開発する際に適用される。図１に示される環境において、クライアント２０がサービスを受けるためには、まず、クライアント２０がサーバ１０に対して接続要求を送信する。サーバ１０は、クライアント２０から送信された接続要求を受信すると、クライアント２０に対してレスポンスを送信する。これによってサーバ１０とクライアント２０との間の接続が確立されてセッションが開始される。続いて、クライアント２０はサーバ１０に対してリクエストを送信し、サーバ１０がそのリクエストに対するレスポンスを送信することによってクライアント２０とサーバ１０との間で必要な情報のやりとりが行われる。そして、サーバ１０がセッション終了処理を行うことによってセッションを終了させる。サーバ１０は、クライアント２０から終了ボタンを押されたとの通知を受信した場合や、一定時間通知がない状態が継続したときのタイムアウトなどに応じてセッションの終了処理を行う。
【００１７】
次に、本実施形態に係る開発フレームワークについて図２を参照しながら説明する。図２に示されるように、ウェブアプリケーションは複数のフォーム（ページ）から構成されるが、本実施形態に係る開発フレームワークでは、これらのフォームを機能ごとにグループ化する。例えば、フォームＡ１が会社組織について紹介するフォーム、フォームＡ２がプレスリリースについて紹介するフォーム、フォームＡ３が人事情報について紹介するフォーム、フォームＡ４が問合せフォームとすれば、これらのフォームＡ１〜Ａ４は会社概要を紹介する機能を有するグループＡに属するとしてグループ化することができる。
【００１８】
なお、それぞれのフォームのグループ化は、ＵＲＬにグループ名を含ませることによって分類することができる。すなわち、それぞれのフォームのＵＲＬを、“ｈｔｔｐ／／ホスト名：ポート／アプリケーション名／グループ名／フォーム名．ｆｏｒｍ”で表し、グループ名が同じフォームは同じグループとして分類する。本実施形態に係る開発フレームワークは、ウェブアプリケーション開発時において、フォーム名の上のディレクトリにグループ名を付与したＵＲＬを自動的に作成し、開発者が特に意識しなくてもフォームのグループ化が行われる。
【００１９】
次に、本実施形態に係る開発フレームワークによる処理フローについて図３を参照しながら説明する。図３は開発フレームワークの処理フローを示すフローチャートである。なお、サーバ１０が本実施形態に係る開発フレームワーク上で開発されている。図３を参照すると、まず、クライアント２０からサーバ１０に対してリクエストを送信し（Ｓ１０）、サーバ１０はクライアント２０から送信されたリクエストを受信する（Ｓ１２）。リクエストには、クライアントに表示したいフォームのＵＲＬが含まれている。次に、サーバ１０は、受信したリクエストを分析してリクエストされたフォームが属するグループを解析し（Ｓ１４）、この結果に基づいて遷移先のフォームのグループが遷移元のグループと同じか否か判定する（Ｓ１６）。遷移元と遷移先のフォームが同じグループに属すると判定された場合には、サーバ１０は、リクエストされたフォームのデータをクライアント２０に送信し（Ｓ２２）、クライアント２０において表示させる（Ｓ２４）。遷移元と遷移先のフォームが異なるグループに属すると判定された場合には、保存されたカレントグループをリクエストされたフォームが属するグループによって更新し（Ｓ１８）、続いて、保存していた変数を破棄する（Ｓ２０）。その後、サーバ１０は、リクエストされたフォームのデータをクライアント２０に送信し（Ｓ２２）、クライアント２０において表示させる（Ｓ２４）。以上が、本実施形態に係る開発フレームワーク上で開発されたサーバ１０にクライアント２０からリクエストが送信され、サーバ１０からクライアント２０にレスポンスが返されるまでのフローであり、セッション継続中はこのフローが繰り返される。
【００２０】
次に、図４（ａ）〜図４（ｃ）に示す具体例を参照しながら、上記のフローをさらに詳しく説明する。まず、クライアント２０が、“ｈｔｔｐ／／ＸＸＸ：ＺＺＺ／ａｐｐｌｉｃａｔｉｏｎ／グループＡ／フォームＡ１．ｆｏｒｍ”のフォームを表示することをリクエストする（図４（ａ）参照）。最初のリクエストでは、カレントグループ名は保存されていないので、サーバはグループＡをメモリ（カレントグループ格納領域）に格納すると共に、リクエストされたフォームを表示する。表示されたフォームにおいて、氏名データＭＭＭと、住所データＮＮＮが入力されると、この入力されたデータ（変数）をメモリ（変数格納領域）に格納する。続いて、クライアント２０が“ｈｔｔｐ／／ＸＸＸ：ＺＺＺ／ａｐｐｌｉｃａｔｉｏｎ／グループＡ／フォームＡ２．ｆｏｒｍ”のフォームを表示することをリクエストする（図４（ｂ）参照）。このリクエストを分析すると、フォームＡ２はグループＡに属することが分かる。このグループＡが現在のグループと同じか否か、メモリに格納されたカレントグループの情報に基づいて判定する。ここでは、メモリにカレントグループとしてグループＡが格納されているので、リクエストされたフォームが属するグループＡと同じである。この結果により、サーバ１０は、クライアント２０からリクエストされたフォームを表示する。これは、図３におけるステップＳ１６から直接にステップＳ２２に遷移するフローである。表示されたフォームにおいて、電話データＯＯＯと、性別データＰＰＰが入力されると、この入力されたデータをメモリに格納する。メモリには、前回入力された氏名データＭＭＭ及び住所データＮＮＮも保存されている。次に、クライアント２０が“ｈｔｔｐ／／ＸＸＸ：ＺＺＺ／ａｐｐｌｉｃａｔｉｏｎ／グループＢ／フォームＢ１．ｆｏｒｍ”のフォームを表示することをリクエストする（図４（ｃ）参照）。このリクエストを分析すると、フォームＢ１はグループＢに属することが分かる。このグループＢが現在のグループと同じか否かメモリに格納されたカレントグループの情報に基づいて判定する。ここでは、メモリにカレントグループとしてグループＡが格納されているので、リクエストされたフォームが属するグループＢと異なる。従って、サーバ１０は、リクエストされたフォームが属するグループＢをカレントグループとしてメモリに格納し、続いてメモリに保存していたデータ（変数）を破棄した後に、クライアント２０からリクエストされたフォームを表示する。表示されたフォームにおいて、品目ＱＱＱと、数量ＲＲＲが入力されると、この入力されたデータをメモリに格納する。なお、前回までに入力されてメモリに格納されていた氏名データＭＭＭ、住所データＮＮＮ、電話データＯＯＯ、性別データＰＰＰは破棄されている。
【００２１】
このように、本実施形態に係る開発フレームワーク上で開発されたウェブアプリケーション提供用のサーバ１０は、提供するアプリケーションの機能が異なるフォーム（ページ）に遷移する際には、保持していた変数を破棄するので、サーバ１０にアプリケーションの処理に不必要な変数を保存しなくても良く、サーバ１０の負担を軽減させることができる。また、本実施形態に係る開発フレームワークにより、ウェブアプリケーションの開発を支援することができる。
【００２２】
【発明の効果】
本発明によれば、提供するサービスに基づいてウェブアプリケーションを機能ごとのグループにグループ化し、そのグループごとに変数を管理することにより、効率的に変数を管理してサーバの負担を軽減させることができる。
【図面の簡単な説明】
【図１】開発フレームワークが適用される環境を説明する図である。
【図２】開発フレームワークの概念を説明する図である。
【図３】開発フレームワークによる処理フローを示すフローチャートである。
【図４】開発フレームワークによる処理フローによる具体例を示す図である。
【符号の説明】
１０…サーバ、２０…クライアント、３０…インターネット。
【図１】
2004171492.tif 000003
【図２】
2004171492.tif 000004
【図３】
2004171492.tif 000005
【図４】
2004171492.tif 000006