(57)【特許請求の範囲】
【請求項１】
複数の画面部品を含む画面において、リクエストに応答して、提示すべき画面を、第１の画面から第２の画面に遷移させる方法であって、
前記複数の画面部品を含む画面を一意的に特定する画面ＩＤを用いて、提示している画面を示す現在画面ＩＤと、当該画面にて実行可能なモジュールに対応するコマンドオブジェクトを特定する情報、当該コマンドオブジェクトにて呼び出されるメソッドを特定する情報、および、遷移すべき少なくとも一以上の画面ＩＤを定義した定義テーブルを設けるステップと、
前記第１の画面の複数の画面部品のいずれかに関連して、前記コマンドオブジェクトを特定する情報およびメソッドを特定する情報を示すパラメタを含む要求を受理するステップと、
前記要求の受理に応答して、前記定義テーブルを参照して、前記第１の画面を現在画面ＩＤとして、コマンドオブジェクトを特定する情報およびメソッドを特定する情報とともに、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップと、
特定された画面ＩＤにしたがって、前記第２の画面を生成し、当該第２の画面を提示するステップと、を備え、
前記定義テーブルを設けるステップが、
前記コマンドオブジェクトを特定する情報として、任意のコマンドオブジェクトを示す情報を設定するステップを含み、
前記遷移すべき画面ＩＤを特定するステップが、
前記定義情報テーブル中、前記現在画面ＩＤおよびメソッドを特定する情報に関連するコマンドオブジェクトを特定する情報が、任意のコマンドオブジェクトを示す情報であった場合に、前記コマンドオブジェクトを特定する情報の如何に関わらず、現在画面ＩＤ、メソッドを特定する情報、および、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップを含むことを特徴とする画面遷移方法。
【請求項２】
前記定義テーブルを設けるステップが、
前記現在画面ＩＤの各々に対応して、少なくとも、処理結果が成功であった場合に遷移すべき画像を示す第１の画面ＩＤと、処理結果が失敗であった場合に遷移すべき画像を示す第２の画面ＩＤとを定義するステップを含むことを特徴とする請求項１に記載の画面遷移方法。
【請求項３】
前記定義テーブルを設けるステップが、
前記現在画面ＩＤを特定する情報として、任意の画面を示す情報を設定するステップを含み、
前記遷移すべき画面ＩＤを特定するステップが、
前記定義情報テーブル中、コマンドオブジェクトを特定する情報およびメソッドを特定する情報に関連する現在画面ＩＤを特定する情報が、任意の画面を示す情報であった場合に、前記現在画面ＩＤの如何に関わらず、前記コマンドオブジェクトを特定する情報、メソッドを特定する情報、および、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップを含むことを特徴とする請求項１または２に記載の画面遷移方法。
【請求項４】
前記定義テーブルを設けるステップが、
前記メソッドを特定する情報として、任意のメソッドを示す情報を設定するステップを含み、
前記遷移すべき画面ＩＤを特定するステップが、
前記定義情報テーブル中、現在画面ＩＤおよびコマンドオブジェクトを特定する情報に関連するメソッドを特定する情報が、任意のメソッドを示す情報であった場合に、前記メソッドを特定する情報の如何に関わらず、前記コマンドオブジェクトを特定する情報、現在画面ＩＤ、および、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップを含むことを特徴とする請求項１ないし３の何れか一項に記載の画面遷移方法。
【請求項５】
複数の画面部品を含む画面において、リクエストに応答して、提示すべき画面を、第１の画面から第２の画面に遷移させるためにコンピュータを動作させるプログラムであって、
前記複数の画面部品を含む画面を一意的に特定する画面ＩＤを用いて、提示している画面を示す現在画面ＩＤと、当該画面にて実行可能なモジュールに対応するコマンドオブジェクトを特定する情報、当該コマンドオブジェクトにて呼び出されるメソッドを特定する情報、および、当該コマンドオブジェクトのメソッドの実行により引き起こされた処理の結果、遷移すべき少なくとも一以上の画面ＩＤを定義した定義テーブルを設けるステップと、
前記第１の画面の複数の画面部品のいずれかに関連して、前記コマンドオブジェクトを特定する情報およびメソッドを特定する情報を示すパラメタを含む要求を受理するステップと、
前記要求の受理に応答して、前記定義テーブルを参照して、前記第１の画面を現在画面ＩＤとして、コマンドオブジェクトを特定する情報およびメソッドを特定する情報とともに、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップと、
特定された画面ＩＤにしたがって、前記第２の画面を生成し、当該第２の画面を提示するステップとを、前記コンピュータに実行させ、
前記定義テーブルを設けるステップにおいて、
前記コマンドオブジェクトを特定する情報として、任意のコマンドオブジェクトを示す情報を設定するステップを、前記コンピュータに実行させ、
前記遷移すべき画面ＩＤを特定するステップにおいて、
前記定義情報テーブル中、現在画面ＩＤおよびメソッドを特定する情報に関連するコマンドオブジェクトを特定する情報が、任意のコマンドオブジェクトを示す情報であった場合に、前記コマンドオブジェクトを特定する情報の如何に関わらず、現在画面ＩＤ、メソッドを特定する情報、および、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップを、前記コンピュータに実行させることを特徴とする、コンピュータにより読み出し可能なプログラム。
【請求項６】
前記定義テーブルを設けるステップにおいて、
前記現在画面ＩＤの各々に対応して、少なくとも、処理結果が成功であった場合に遷移すべき画像を示す第１の画面ＩＤと、処理結果が失敗であった場合に遷移すべき画像を示す第２の画面ＩＤとを定義するステップを、前記コンピュータに実行させることを特徴とする請求項５に記載のプログラム。
【請求項７】
前記定義テーブルを設けるステップにおいて、
前記現在画面ＩＤを特定する情報として、任意の画面を示す情報を設定するステップを、前記コンピュータに実行させ、
前記遷移すべき画面ＩＤを特定するステップにおいて、
前記定義情報テーブル中、コマンドオブジェクトを特定する情報およびメソッドを特定する情報に関連する現在画面ＩＤを特定する情報が、任意の画面を示す情報であった場合に、前記現在画面ＩＤの如何に関わらず、前記コマンドオブジェクトを特定する情報、メソッドを特定する情報、および、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップを、前記コンピュータに実行させることを特徴とする請求項５または６に記載のプログラム。
【請求項８】
前記定義テーブルを設けるステップにおいて、
前記メソッドを特定する情報として、任意のメソッドを示す情報を設定するステップを、前記コンピュータに実行させ、
前記遷移すべき画面ＩＤを特定するステップにおいて、
前記定義情報テーブル中、現在画面ＩＤおよびコマンドオブジェクトを特定する情報に関連するメソッドを特定する情報が、任意のメソッドを示す情報であった場合に、前記メソッドを特定する情報の如何に関わらず、前記コマンドオブジェクトを特定する情報、現在画面ＩＤ、および、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップを、前記コンピュータに実行させることを特徴とする請求項５ないし７の何れか一項に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ウェブページなどのステートレスなプロトコル上での画面遷移を制御する方法およびプログラムに関する。
【０００２】
【従来の技術】
近年、動的にウェブページを表示するシステムにおいて、ＭＶＣ（Model View Controller）アーキテクチャが普及している。これは、Ｊ２ＥＥ（Java（登録商標） 2 Platform, Enterprise Edition）にて標準として採用されている手法で、画面インタフェースと業務処理とを分離させることを目的としており、各機能の専門家による分業により、ウェブページを用いたシステムを設計できるようになっている。
【０００３】
ＭＶＣアーキテクチャにおいて、コントローラは、ユーザからの要求を受け付けて、モデルを呼び出す。コントローラは、ビューとモデルを結びつける働きをするため、これらに対する知識を有している。モデルは、コマンドオブジェクトと同義であり、クラスの名前（クラス名）およびメソッド（メソッド名）を持っている。モデルは、業務機能を実行し、あるいは、データに対する振る舞いを定義する。モデルは、コントローラやビューについては関知しない。ビューは、モデルからの情報に基づいて画面を描画する。
【０００４】
従来のＭＶＣアーキテクチャにおいて、モジュール名および結果という２つのパラメタを利用して、画面遷移を制御する手法が知られている。ここでは、モジュール名と、結果画面とが対応付けられ、モジュール名に関連する処理の実行に伴って遷移すべき画面が決定されている。
【０００５】
たとえば、商品の注文において、商品の検索、参照、登録、追加、および、変更の機能が可能であると、注文検索、注文参照、注文登録、注文追加、注文変更というモジュール名の各々について、成功した場合に遷移すべき画面を特定する情報、および、失敗した場合に遷移すべき画面を特定する情報を対応付けたテーブルが利用される。
【０００６】
【発明が解決しようとする課題】
上記従来の手法においては、以下のような問題点があった。
まず、どの画面からも、モジュールに関連する処理が呼び出されると、呼び出し画面に関係なく画面が決定されてしまった。これを避けるためには、著しく細かく分割されたモジュール名を用意しておくか、或いは、結果を細かく分割しておく必要があった。これにより、画面遷移に定義する値の種類が著しく増大し、定義自体が難解なものとなるという問題点があった。
【０００７】
モジュール名を分割する、或いは、結果の値を分割するということは、遷移先の画面を指定することと実施的に等しくなるという問題点もあった。
そのため、画面遷移の変更や、新たな機能の追加にともなって、モジュールを分割するか、或いは、モジュール自体を修正しなければならないという問題点もあった。
【０００８】
本発明は、簡単な構造で木目の細かい画面遷移を制御できるとともに、遷移の変更や画面の追加にも、モジュールを変更することなく対応できる画面遷移の手法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の目的は、リクエストに応答して、提示すべき画面を、ある画面から他の画面に遷移させる方法であって、画面を一意的に特定する画面ＩＤを用いて、提示している画面を示す現在画面ＩＤと、当該画面にて実行可能なモジュールに対応するコマンドオブジェクトを特定する情報、当該コマンドオブジェクトにて呼び出されるメソッドを特定する情報、および、当該コマンドオブジェクトのメソッドの実行により引き起こされた処理の結果、遷移すべき少なくとも一以上の画面ＩＤを定義した定義テーブルを設けるステップと、前記ある画面に関連して、前記コマンドオブジェクトを特定する情報およびメソッドを特定する情報を示すパラメタを含む要求を受理するステップと、前記要求の受理に応答して、前記定義テーブルを参照して、前記ある画面を現在画面ＩＤとして、コマンドオブジェクトを特定する情報およびメソッドを特定する情報とともに、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップと、特定された画面ＩＤに対応つけられた画面を提示するステップとを備えたことを特徴とする画面遷移方法により達成される。
【００１０】
本発明によれば、定義テーブルにおいて、少なくとも、現在画面ＩＤ、コマンドオブジェクトを特定する情報および呼び出されるメソッドを特定する情報とに基づき、遷移すべき画面ＩＤが決定される。したがって、画面遷移を容易に定義することができ、かつ、定義すべき情報の把握も容易にすることができる。
また、定義テーブルにおいて、遷移する画面のＩＤのみを変更すること、或いは、呼び出されるメソッドを変更することにより、レイアウトの変更や追加を実現することが可能となる。
【００１１】
好ましい実施態様においては、前記定義テーブルを設けるステップが、前記現在画面ＩＤの各々に対応して、少なくとも、処理結果が成功であった場合に遷移すべき画像を示す第１の画面ＩＤと、処理結果が失敗であった場合に遷移すべき画像を示す第２の画面ＩＤとを定義するステップを含む。無論、成功／失敗の２値に限定されるものではなく、一意的な画面遷移や、３つ以上に分岐する可能性のある画面遷移に適用できることは言うまでもない。
【００１２】
別の好ましい実施態様においては、前記定義テーブルを設けるステップが、選択的に、前記コマンドオブジェクトを特定する情報として、任意のコマンドオブジェクトを示す情報を設定するステップを含む。これは、いわゆるワイルドカードとなる。つまり、定義テーブル中にコマンドオブジェクトを特定する情報として、ワイルドカードを用意することで、たとえば、ウェブページの「戻る」ボタンをオンした際の処理を容易に実現することができる。従来の手法では、これを実現するためには、「戻る」を実現するためのモジュールを用意する必要があったが、上記実施態様によれば、モジュールを用意しておく必要が無くなる。
【００１３】
さらに別の好ましい実施態様においては、前記定義テーブルを設けるステップが、選択的に、前記現在画面ＩＤを特定する情報として、任意の画面を示す情報を設定するステップを含む。また、前記定義テーブルを設けるステップが、選択的に、前記メソッドを特定する情報として、任意のメソッドを示す情報を設定するステップを含んでいても良い。これらは、それぞれ、現在画面ＩＤをワイルドカードとする場合と、メソッドをワイルドカードとする場合に対応する。
【００１４】
さらに好ましい実施態様においては、前記遷移すべき画面ＩＤを特定するステップが、コマンドオブジェクトを示す情報により特定されるクラスの、前記メソッドを示す情報により特定されるメソッドを呼び出すステップと、前記呼び出されたメソッドに関連するモジュールが、定められた処理を実行するステップと、前記処理を実行した結果に基づいて、前記定義テーブルを把握したハンドラが、前記遷移すべき画面ＩＤを決定するステップとを含む。
【００１５】
より好ましい実施態様においては、さらに、前記画面を提示するステップが、決定された画面ＩＤにしたがって、当該画面ＩＤにて示されるページにディスパッチするステップを備えている。前記画面を提示するステップが、前記ディスパッチに応答して、前記関連するモジュールから結果を取得するステップを含むことが、より望ましい。
【００１６】
また、本発明の目的は、リクエストに応答して、提示すべき画面を、ある画面から他の画面に遷移させるためにコンピュータを動作させるプログラムであって、画面を一意的に特定する画面ＩＤを用いて、提示している画面を示す現在画面ＩＤと、当該画面にて実行可能なモジュールに対応するコマンドオブジェクトを特定する情報、当該コマンドオブジェクトにて呼び出されるメソッドを特定する情報、および、当該コマンドオブジェクトのメソッドの実行により引き起こされた処理の結果、遷移すべき少なくとも一以上の画面ＩＤを定義した定義テーブルを設けるステップと、前記ある画面に関連して、前記コマンドオブジェクトを特定する情報およびメソッドを特定する情報を示すパラメタを含む要求を受理するステップと、前記要求の受理に応答して、前記定義テーブルを参照して、前記ある画面を現在画面ＩＤとして、コマンドオブジェクトを特定する情報およびメソッドを特定する情報とともに、処理結果にしたがって、遷移すべき画面ＩＤを特定するステップと、特定された画面ＩＤに対応つけられた画面を提示するステップとを、前記コンピュータに実行させることを特徴とする、コンピュータにより読み出し可能なプログラムにより達成される。
【００１７】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態につき説明を加える。図１は、本発明の実施の形態にかかるシステムの概略を示すブロックダイヤグラムである。図１に示すように、本実施の形態においては、インターネット１２に、クライアントマシン１４−１、１４−２、・・・や、サーバ１６が接続されている。サーバ１６は、クライアントマシン１４からの種々のリクエストに対して、所定のコンテンツ（たとえば、画像）を提供することができる。
無論、本発明は、クライアントマシン１４はインターネット１２を介してサーバ１６に接続できる形態に限定されるものではなく、ＬＡＮやＷＡＮなど任意のネットワークを介して接続されたものに適用できることは言うまでもない。
【００１８】
図２は、本実施の形態にかかるサーバ１６の構成を示すブロックダイヤグラムである。図２に示すように、サーバ１６は、ＭＶＣモデル中の、コントローラに相当する第１の部分２０と、モデルに相当する第２の部分２２と、ビューに相当する第３の部分２４とを有している。また、サーバ１６は、モデルを管理するモデルマネージャ２６を有している。
【００１９】
第１の部分２０は、プロキシサーブレット３０、リクエストプロセッサ３２、コマンドハンドラ３４、フローマネージャ３６およびコマンドフローハンドラ４０を備えている。プロキシサーブレット３０は、クライアントマシン１４において現在のページを閲覧しているユーザが、入力装置を操作することによりサーバ１６に伝達された要求(Http Request)を受理して、リクエストプロセッサ３２に伝達する。
【００２０】
コマンドハンドラ３４は、画面からのパラメタを取得してＥＪＢ(Enterprise Java Beans：登録商標)オブジェクト（コマンドオブジェクト）を呼び出す。コマンドフローハンドラ４０は、後述する画面遷移の定義を読み込んでおき、画面ＩＤを決定して、所定のページをセット（setPage）する。
第２の部分２２は、種々のコマンドＥＪＢ４２−１、４２−２、・・・から構成される。本実施の形態においては、業務機能の単位でＥＪＢが作成されている。コマンドハンドラ３４により選択されて呼び出されたＥＪＢ４２は、データベース４４をアクセスして、必要なオブジェクト４６の読み出し等の処理を実行する。
【００２１】
また、第３の部分２４は、種々のＪＳＰ(Java Server Pages：登録商標)を含む。たとえば、第３の部分２４には、クライアントマシンに与えられる最終結果のページ（Proxy.jsp）４８や、これを構成するページ(Page.jsp)５０。Page.jspを構成するポートレット(portlet.jsp)５２−１、５２−２、・・・が含まれる。本実施の形態にかかるページ構成について、以下に説明する。
【００２２】
図３は、いわゆるコンポジットビューを説明する図である。本実施の形態において、画面３００は、複数の部品３０１〜３０３に分割されている。それぞれの部分は、ＪＳＰに対応している。たとえば、ヘッダー部品３０１は、ある第１のＪＳＰ(header.jsp)３１１に対応し、メニュー部品３０２は、第２のＪＳＰ(menu.jsp)３１２に対応している。また、メッセージ部品３０３は、第３のＪＳＰ(message.jsp)３１３に対応している。コンポジットビューを採用することにより、たとえば、画面遷移の際に、ヘッダー部品３０１やメニュー部品３０２が同一であるようなものを生成して、クライアントマシンに与えることができる。
【００２３】
図４は、本実施の形態にて用いられるページ構成を示す図である。図４に示すように、本実施の形態においては、ヘッダー画面部品４１１とフッター画像部品４１２とが全ての画像の上部および下部にそれぞれ配置される。図４（ａ）において、ある画像（Ａ０１）４０１では、ヘッダー画面部品４１１、注文検索条件画面部品４１３およびフッター画面部品４１２から構成され、その一方、他の画像（Ａ０２）４０２では、注文検索条件画面部品４１３の代わりに、注文一覧画面部品４１４が含まれている。
【００２４】
図４（ｂ）は、ページ構成をより詳細に示す図である。図４（ｂ）に示すように、ページに対応するProxy.jsp（符号４２０）は、ヘッダー画面部品４１１に対応するheader.jsp（符号４２１）、フッター画面部品４１２に対応するfooter.jsp（符号４２２）、および、画像によって変わりうるpage.jsp（符号４３０参照）とを含む。さらに、page.jspは、種々の画面部品である［portlet］.jsp（符号４３３、４３４参照）を含む。
【００２５】
本実施の形態においては、［portlet］.jspとして、たとえば、以下のものが用意されている。
ordersearch.jsp：注文検索画面部品
orderlist.jsp：注文一覧画面部品
orderinput.jsp：注文入力画面部品
orderinfo.jsp：注文表示画面部品
inventorysearch.jsp：在庫検索画面部品
inventorylist.jsp：在庫一覧画面部品
無論、これらに限定されるものではなく、他の画面部品（たとえば、ログイン画面部品）が用意されていることは言うまでも無い。
【００２６】
［適用例１］
本実施の形態においては、これら画面部品にＩＤ（画面ＩＤ）が付与され、図５に示すような画面遷移が定義されている。画面遷移を定義したテーブル（定義テーブル）５００は、ＥＪＢコマンドフローハンドラ４０にて読み込まれている。定義テーブル５００においては、現在表示されている（表示のために用いられている）画面の画面ＩＤ（符号５０１参照）、コマンド名（符号５０２参照）、メソッド名（符号５０３参照）、成功の場合に遷移する第１の結果画面の画面ＩＤ（符号５０４参照）、および、失敗の場合に遷移する第２の結果画面の画面ＩＤ（符号５０５参照）とが含まれる。これは、現在表示されている画面の画面ＩＤが「Ｘ０１（ログイン画面）」であるときに、関連付けられたコマンド名「ログインコマンド」に基づいて、メソッド名「ログイン」が呼び出されることを意味している。また、ユーザによるユーザＩＤやパスワードの入力の結果、ログインが成功した場合には、画面ＩＤが「Ａ０１」である画面に遷移し、その一方、ログインが失敗した場合には、画面ＩＤが「Ｘ０１」である画面に遷移することを示している。
【００２７】
図６は、注文に関連する画面間の遷移の例を示す図である。この例では、コンポジットビューが採用され、各画面（たとえば、符号６０１参照）の上下には、共通して、ヘッダー画面部品６１１およびフッター画面部品６１２が設けられる。
この例では、ユーザが検索をしようとすることで、注文検索画面画面部品６１３から、注文一覧画面部品６２３に遷移し（矢印６０６参照）、その一方、追加注文をしようとすることで、注文入力画面部品６３３に遷移する（矢印６０７参照）。図６において、矢印６０６〜６０７の遷移は、それぞれ、図５における欄５０６〜５１０に定義された画面遷移のうち、成功した場合に対応している。
【００２８】
図５に示す定義に従った画面遷移の処理につき、図７および図８を参照して説明を加える。図７は、現在画面ＩＤ＝Ａ０１であるときに、コマンド名＝注文コマンド、メソッド名＝検索が実行された結果、成功と判断されて画面遷移が実行された場合（図５の符号５０６および図６の矢印６０６参照）を示し、図８は、失敗となった場合を示す。
なお、図７および図８においては、また、後に説明する図１３および図１４においては、説明を簡単にするため、図２に示していた一部の構成要素のうち、リクエストプロセッサ３２およびフローマネージャ３６を省略している。
【００２９】
図７において、コマンド名＝“注文コマンド”およびメソッド名＝“検索”というパラメタを含む“Http  Request”がプロキシサーブレット３０に伝達されると（ステップ７０１）、ＥＪＢコマンドハンドラ３４が呼び出される（ステップ７０２）。ＥＪＢコマンドハンドラ３４は、コマンド名＝“注文コマンド”およびメソッド名＝“検索”であることに応答して、“OrderCommand"クラスの“find”メソッドを呼び出す（ステップ７０３）。これにより、オーダーコマンドモジュール４２−ｉは、データベース４４中のオブジェクトを検索する。所定の値や項目を見出すことができ、検索が成功すると、ＥＪＢコマンドフローハンドラ７０４が呼び出される（ステップ７０４）。
【００３０】
ＥＪＢコマンドフローハンドラ７０４は、読み込んでおいた定義テーブル（図５参照）中の現在画面ＩＤ、コマンド名、メソッド名および検索結果（成功）を参照して、遷移すべき画面ＩＤ＝Ａ０２を決定する。これにより、プロキシサーブレット３０は、画面ＩＤ＝Ａ０２にディスパッチする（ステップ７０５）。画面部品「A02.jsp」は、画面部品「orderlist.jsp」を含み（矢印７０６参照）、画面部品「orderlist.jsp」は、オーダーコマンドモジュール４２−ｉから検索結果を取得する。これにより、注文一覧結果部品６２３を含むような画面６０２（画面ＩＤ＝Ａ０２）を取得することができる（ステップ７０７参照）。
【００３１】
図８において、ステップ８０１〜８０３に関する処理は、図７のステップ７０１〜７０３と同様である。オーダーコマンドモジュール４２−ｉが呼び出されると、検索を行うが、この場合には、検索条件が不正のため検索結果を得られない、つまり、検索失敗となる。この場合には、プロキシサーブレット３０に呼び出された（ステップ８０４参照）ＥＪＢコマンドフローハンドラ４０は読み込んでおいた定義テーブル（図５参照）中の現在画面ＩＤ、コマンド名、メソッド名および検索結果（失敗）を参照して、遷移すべき画面ＩＤ＝Ａ０１を決定する。これにより、再度、注文検索条件画面部品６１３を含む画面６０１（画面ＩＤ＝Ａ０１）が、クライアントマシンの表示装置に表示されることになる。
定義テーブル５００の欄５０７〜５１０（図６の矢印６０７〜６１０）に記載された画面遷移も同様に実現することができる。
【００３２】
［適用例２］
本実施の形態は、他の画面遷移、たとえば、コンポジットビューを利用したものの画面遷移にも利用できることは言うまでもない。図９は、他の例（適用例２）における定義テーブルの例を示す図、図１０は、画面遷移を説明する図である。この例は、各画面（図１０の符号１０１１、１０１２参照）において、注文の一覧（注文一覧画面部品）を見ながら、ユーザが入力をしたい場合に有用である。
【００３３】
適用例２においては、図５や図６に示した適用例１と同じコマンド（注文コマンド）を利用して、別のレイアウトの画面を構築している。つまり、本実施の形態においては、定義テーブルの作り方により、同じ部品を使っているにもかかわらず、別の画面遷移や画面レイアウトを構築することが可能となる。
図９における欄９０１〜９０７における現在画面から成功した場合の結果画面への遷移は、それぞれ、図１０の矢印１００１〜１００７に対応する。
【００３４】
［適用例３］
また、在庫を見ながら注文データを入力したいというニーズがあれば、図１１に示すような定義テーブルを用意すればよい。ここでは、コマンド名＝在庫コマンドを追加している。図１２は、上記定義テーブルが利用された画面遷移を説明する図である。図１１における欄１１０１〜１１０７における現在画面から成功した場合の結果画面への遷移は、それぞれ、図１２の矢印１２０１〜１２０７に対応する。
【００３５】
図１１および図１２に示すように、画面ＩＤ＝Ｃ０１の画面（注文検索画面）が表示されている状態で、コマンド名＝“注文コマンド”かつメソッド名＝“追加”というパラメタが与えられ、結果が成功であると、在庫検索条件画面部品、在庫一覧画面部品および注文入力画面部品からなる、画面ＩＤ＝Ｃ０３の画面（注文変更・追加画面）に遷移することができる。さらに、画面ＩＤ＝Ｃ０２の画面が表示されている状態で、コマンド名＝“注文コマンド”かつメソッド名“参照”というパラメタが与えられ、結果が成功であると、在庫検索条件画面部品、在庫一覧画面部品および注文表示画面部品からなる、画面ＩＤ＝Ｃ０４の画面（注文確認画面）に遷移することができる。
【００３６】
適用例３に関して、図１３および図１４を参照して、画面遷移の際に実行される処理例をより詳細に説明する。図１３は、現在画面ＩＤ＝Ｃ０３であるときに、コマンド名＝注文コマンド、メソッド名＝登録が実行された結果、成功と判断されて画面遷移が実行された場合（図１１の符号１１０５および図１２の符号１２０５参照）を示す。
【００３７】
図１３において、コマンド名＝“注文コマンド”およびメソッド名＝“登録”というパラメタを含む“Http Request"がプロキシサーブレット３０に伝達されると（ステップ１３０１）、ＥＪＢコマンドハンドラ３４が呼び出され（ステップ１３０２）、“OrderCommand"クラスの“reqist"メソッドが呼び出される（ステップ１３０３）。これにより、オーダーコマンドモジュール４２−ｐは、必要な登録処理（たとえば、ＤＢ４４へのデータ記憶）を実行する。登録処理の結果、これが成功であった場合には、ＥＪＢコマンドフローハンドラ４０が呼び出される（ステップ１３０４）。
【００３８】
ＥＪＢコマンドフローハンドラ４０は、読み込んでいた定義テーブル（図１１参照）中の現在画面ＩＤ、コマンド名、メソッド名および登録結果（成功）を参照して、遷移すべき画面ＩＤ＝Ｃ０４を決定する。これにより、プロキシサーブレット３０は、画像ＩＤ＝Ｃ０４にディスパッチする（ステップ１３０５）。
【００３９】
画面部品「C03.jsp」は、３つの画面部品「inventorysearch.jsp」、「inventorylist.jsp」および「orderinfo.jsp」を含み、オーダーコマンドモジュール４２−ｐから、注文入力に必要な情報を取得するとともに、在庫コマンドモジュール４２−ｑから、在庫リストを取得する。これにより、在庫検索条件画面部品（「inventorysearch.jsp」に対応）、在庫一覧画面部品（「inventorylist.jsp」に対応）、および、注文表示画面部品（「orderinfo.jsp」に対応）を含む、注文確認画面（画面ＩＤ＝Ｃ０４）が、クライアントマシンの表示装置に表示される（ステップ１３０６）。
【００４０】
図１４は、同様に、現在画面ＩＤ＝Ｃ０３であるときに、コマンド名＝注文コマンド、メソッド名＝検索が実行された結果、成功と判断されて画面遷移が実行された場合（図１１の符号１１０６および図１２の符号１２０６参照）を示す。図１４において、コマンド名＝“在庫コマンド”およびメソッド名＝“検索”というパラメタを含む“Http Request"がプロキシサーブレット３０に伝達されると（ステップ１４０１）、ＥＪＢコマンドハンドラ３４が呼び出され（ステップ１３０２）、“InventoryCommand"クラスの“find"メソッドが呼び出される（ステップ１４０３）。これにより、在庫コマンドモジュール４２−ｑは、必要な件検索処理を実行する。検索処理の結果、これが成功であった場合には、ＥＪＢコマンドフローハンドラ４０が呼び出される（ステップ１４０４）。
【００４１】
ＥＪＢコマンドフローハンドラ４０は、読み込んでいた定義テーブル（図１１参照）中の現在画面ＩＤ、コマンド名、メソッド名および検索結果（成功）を参照して、遷移すべき画面ＩＤ＝Ｃ０３を決定する。これにより、プロキシサーブレット３０は、画像ＩＤ＝Ｃ０３にディスパッチする（ステップ１４０５）。
【００４２】
画面部品「C03.jsp」は、３つの画面部品「inventorysearch.jsp」、「inventorylist.jsp」および「orderinput.jsp」を含み、オーダーコマンドモジュール４２−ｐから、注文入力に必要な情報を取得するとともに、在庫コマンドモジュール４２−ｑから、検索結果を示す情報を取得する。これにより、３つの画面部品（「＊＊＊.jsp」）に夫々対応する在庫検索条件画面部品、在庫一覧画面部品および注文入力画面部品からなる、注文変更・追加画面が、クライアントマシンの表示装置に表示される。
【００４３】
［適用例４］
ここでは、ワイルドカードを利用した例につき説明を加える。この例では、各画面の何れかの画面部品に「戻る」というボタン（戻りボタン）が配置され、当該「戻りボタン」をユーザがオン（ないしクリック）することにより、画面遷移が規定される。図１５は、ワイルドカードを用いた画面遷移の定義例を示す図である。図１５に示すように、それぞれの現在画面に対して、コマンド名にかかわらず（図中、アステリスク「＊」で示されている。）、メソッド名＝戻るというパラメタを含む“Http Request”が、プロキシサーブレット３０に伝達されると、これに応答した処理が実行される。
【００４４】
たとえば、現在画面ＩＤ＝Ａ０１である場合（符号１５０１参照）に、どのようなコマンド名であっても、「戻りボタン」が指定され、処理結果が成功であれば、画面ＩＤ＝Ｘ０２であるような画面に遷移する（図１６のステップ１６０１参照）。図１６に示すように、コマンド名の如何にかかわらず、メソッド名＝戻るを定義するのみで、もとの画面に戻るような画面遷移（矢印１６０１〜１６０４参照）を実現することができる。なお、図１５における欄１５０１〜１５０４が、それぞれ、欄１６０１〜１６０４に対応する。
【００４５】
このように、本実施の形態によれば、現在画面ＩＤ、モジュール名およびメソッド名に関連付けて、遷移すべき画面ＩＤを、成功の場合と失敗の場合をそれぞれ定義している。したがって、多機能なモジュールであっても、シンプルな定義テーブルを利用することができる。たとえば、モジュー名＝注文であるようなモジュールについて、検索、参照、登録、変更の４種の機能があり、それぞれ遷移に成功／失敗があれば、８つの画面遷移を定義する必要があるが、本実施の形態によれば、機能ごとに成功／失敗のそれぞれについて総計４つの画面遷移を定義しておけばよい。
【００４６】
また、表示される画面に遷移ロジックを記述する必要が無い。上述した従来の手法をとると、結果と遷移先画面とを考慮しなければならず、実質的に遷移ロジックを記述しているのに等しい。これに対して、本実施の形態によれば、画面遷移をさせるボタンに、「何をさせるか」つまり「そのコマンドのどのメソッドを呼ぶか」を考えて実装することが可能となる。
【００４７】
さらに、コマンドオブジェクトを変更せずにレイアウトを自由に定義することができる。結果画面のレイアウトが異なることは、結果画面ＩＤが異なることになる。従来の手法において、一つのモジュールから遷移する結果画面ＩＤ（つまりレイアウト）を増やすと、モジュールの返す結果の数を増やす必要がある。このため、従来手法ではモジュール本体の変更が必要であった。これに対して、本発明によれば、画面遷移の定義を増やすのみで対応することが可能となる。
【００４８】
たとえば、適用例１および適用例２に示すように、権限や役割に応じてレイアウトを簡単に変えることができる。また、適用例３に示すように、複数機能のコンポジットビューに対応することも可能である。
このように本実施の形態によれば、定義テーブルを変更するだけで、同じコマンドオブジェクトと画面部品を用いて、種々のレイアウトを実現することが可能となる。
【００４９】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態においては、インターネット１２に接続されたクライアントマシン１４からの要求である“Http Request”に応答して、サーバ１４が処理を実行し、クライアントマシン１４の表示装置に表示すべき画面を遷移しているが、これに限定されるものではなく、他のネットワーク、たとえば、ＷＡＮやＬＡＮにて接続されたクライアントマシン／サーバ間における画面提示および遷移や、単体のコンピュータにおける画面提示およびその遷移にも適用できることは言うまでもない。
【００５０】
また、前記実施の形態の適用例４においては、コマンド名にワイルドカード（図１５においてアステリスク「＊」で示した）を利用し、任意のコマンド名の「戻る」というメソッドに関する画面遷移を説明したが、ワイルドカードが利用できる項目は、コマンド名に限定されるものではなく、現在画面ＩＤやメソッド名にワイルドカードを利用しても良い。たとえば、適用例１（図５参照）に関して、他のレイアウトを考えなくて良いのであれば、現在画面ＩＤを全てワイルドカードにしても良い。また、ログアウトした場合に終了画面に遷移することを記述する場合に、現在画面ＩＤをワイルドカードにするのも有効である。
【００５１】
【発明の効果】
本発明によれば、簡単な構造で木目の細かい画面遷移を制御できるとともに、モジュール（コマンドオブジェクト）を変更することなく、画面遷移の変更や画面の追加に柔軟に対応できる画面遷移の手法を提供することが可能となる。
【図面の簡単な説明】
【図１】  図１は、本発明の実施の形態にかかるシステムの概略を示すブロックダイヤグラムである。
【図２】  図２は、本実施の形態にかかるサーバ１６の構成を示すブロックダイヤグラムである。
【図３】  図３は、いわゆるコンポジットビューを説明する図である。
【図４】  図４は、本実施の形態にて用いられるページ構成を示す図である。
【図５】  図５は、本実施の形態における定義テーブルの一例を示す図である。
【図６】  図６は、図５に示す定義テーブルを利用した画面遷移を示す図である。
【図７】  図７は、本実施の形態にかかる定義テーブルを利用した画面遷移における処理例を示す図である。
【図８】  図８は、本実施の形態にかかる定義テーブルを利用した画面遷移における処理例を示す図である。
【図９】  図９は、本実施の形態における定義テーブルの他の例を示す図である。
【図１０】  図１０は、図９に示す定義テーブルを利用した画面遷移を示す図である。
【図１１】  図１１は、本実施の形態における定義テーブルのさらに他の例を示す図である。
【図１２】  図１２は、図１１に示す定義テーブルを利用した画面遷移を示す図である。
【図１３】  図１３は、本実施の形態にかかる定義テーブルを利用した画面遷移における処理例を示す図である。
【図１４】  図１４は、本実施の形態にかかる定義テーブルを利用した画面遷移における処理例を示す図である。
【図１５】  図１５は、本実施の形態における定義テーブルのさらに他の例を示す図である。
【図１６】  図１６は、図９に示す定義テーブルを利用した画面遷移を示す図である。
【符号の説明】
１４    クライアントマシン
１６    サーバ
３０    プロキシサーブレット
３２    リクエストプロセッサ
３４    コマンドハンドラ
３６    フローマネージャ
４０    コマンドフローハンドラ
【図１】
0004039842.tif 000002
【図２】
0004039842.tif 000003
【図３】
0004039842.tif 000004
【図４】
0004039842.tif 000005
【図５】
0004039842.tif 000006
【図６】
0004039842.tif 000007
【図７】
0004039842.tif 000008
【図８】
0004039842.tif 000009
【図９】
0004039842.tif 000010
【図１０】
0004039842.tif 000011
【図１１】
0004039842.tif 000012
【図１２】
0004039842.tif 000013
【図１３】
0004039842.tif 000014
【図１４】
0004039842.tif 000015
【図１５】
0004039842.tif 000016
【図１６】
0004039842.tif 000017