以下に添付図面を参照して、この発明にかかる画面情報提供プログラム、画面情報提供方法、作成支援プログラムおよび作成支援方法の好適な実施の形態を詳細に説明する。
(画面情報提供装置101の一実施例)
図1は、実施の形態にかかる画面情報提供装置の一実施例を示す説明図である。図1において、画面情報提供装置101は、クライアント端末102に提供する画面の画面情報をクライアント端末102に送信するコンピュータである。クライアント端末102は、画面情報提供装置101から提供される画面の画面情報を表示するコンピュータである。
ここで、画面は、一つ以上の画面項目を含む。画面項目の種類としては、例えば、表示項目と入力項目がある。表示項目は、クライアント端末102のユーザに提示する情報を表示する項目である。入力項目は、クライアント端末102のユーザが情報(入力データ)を入力するための項目である。
また、画面情報提供装置101は、画面遷移定義情報110にアクセス可能である。ここで、画面遷移定義情報110とは、クライアント端末102に提供される複数の画面の画面ごとの定義情報を含むものである。画面の定義情報とは、該画面に含まれる画面項目に対応付けられた画面遷移指示と、該画面の遷移先の画面とを関連付ける情報である。
以下、画面情報提供装置101が実行する画面情報提供処理の処理手順の一例について説明する。
(1)画面情報提供装置101は、第1の画面の表示要求103をクライアント端末102から受信する。
(2)画面情報提供装置101は、第1の画面の表示要求103をクライアント端末102から受信した場合、管理プログラム120を起動する。ここで、管理プログラム120とは、第1の画面に含まれる各々の画面項目の表示データを定義する処理を行うプログラムである。管理プログラム120は、第1の画面に含まれる各々の画面項目と、各々の画面項目に係る処理を行う処理プログラム130の変数とについて予め定められた対応関係に基づいて、各々の画面項目についての表示データを定義する。具体的には、例えば、管理プログラム120では、各々の入力項目に関する入力データを、各々の入力項目に対応する変数に代入し、処理プログラム130の処理による変数についての戻り値を変数に対応する入力項目についての表示データと定義する。
(3)画面情報提供装置101は、第1の画面の画面情報104をクライアント端末102に送信する。この結果、クライアント端末102の表示画面に第1の画面が表示される。なお、各画面の画面情報は、例えば、画面情報提供装置101において、処理プログラム130の処理結果に基づいて作成される。
(4)画面情報提供装置101は、クライアント端末102から処理要求105を受信する。処理要求105は、例えば、処理プログラム130の処理や画面遷移を要求するものである。
(5)画面情報提供装置101は、クライアント端末102から処理要求105を受信した場合、処理要求105に含まれる第1の画面の画面項目についての入力データが画面遷移指示であるか否かを判定する。
(6)画面情報提供装置101は、該入力データが画面遷移指示でないと判定した場合、該入力データについての処理を管理プログラム120に実行させる。この結果、該入力データが該入力データに関する入力項目に対応する変数に代入され、処理プログラム130の処理による変数についての戻り値が、該入力データに関する入力項目についての表示データとして定義される。
(7)画面情報提供装置101は、該入力データが画面遷移指示であると判定した場合、画面遷移定義情報110を参照することにより、処理要求に含まれる第1の画面の画面項目に対応付けられた画面遷移指示と関連付けられた第2の画面を特定する。具体的には、例えば、まず、画面情報提供装置101が、画面遷移定義情報110の中から第1の画面の定義情報を検索する。そして、画面情報提供装置101が、検索した第1の画面の定義情報を参照して、処理要求に含まれる第1の画面の画面項目に対応する画面遷移指示と関連付けられた第2の画面を特定する。また、画面遷移プログラム111を実行することで管理プログラムの値(処理プログラムの実行結果)をチェックし、遷移先の第2の画面が画面遷移定義情報から特定したものでよいかどうか検証できる。
(8)画面情報提供装置101は、特定した第2の画面の画面情報106をクライアント端末102に送信する。この結果、クライアント端末102の表示画面に第2の画面が表示される。
以上説明した画面情報提供装置101によれば、画面遷移に係る画面遷移定義情報110を参照することにより、処理要求105に含まれる第1の画面の画面項目に対応付けられた画面遷移指示と関連付けられた遷移先の第2の画面を特定することができる。このように、管理プログラム120および処理プログラム130と分離して画面遷移定義情報110を管理することにより、管理プログラム120や処理プログラム130を他の画面にそのまま流用可能となり、画面作成にかかる作業の効率化を図ることができる。
(Webシステム200のシステム構成)
次に、実施の形態にかかる画面情報提供装置101をWebシステム200のWebサーバ(以下、「Webサーバ101」と表記する)に適用した場合について説明する。
図2は、実施の形態にかかるWebシステムの一実施例を示すシステム構成図である。図2において、Webシステム200は、Webサーバ101とクライアント端末101とを含む構成である。Webシステム200において、Webサーバ101とクライアント端末102とは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク240を介して相互に通信可能に接続されている。
Webサーバ101は、クライアント端末102のWebブラウザ201からの要求電文Rq(HTML電文)に応じて、HTML文書を含む応答電文Rs(HTML電文)を動的に生成して送信する。クライアント端末102は、Webブラウザ201を備え、Webサーバ101と通信する。クライアント端末102は、例えば、PC、スマートフォン、携帯電話などである。
ここで、Webシステム200は、開発環境220と実行環境230とに区分けされている。開発環境220は、サービス定義プログラム202と画面定義プログラム203とを含む。サービス定義プログラム202は、サービスビーン204とビジネスロジック205のスタブ(雛形)とサービス定義206とを出力するプログラムである。
サービスビーン204は、クライアント端末102に提供されるサービス単位のプログラムである。サービスとは、クライアント端末102に提供される情報処理である。サービスとしては、例えば、契約者の住所、氏名等の顧客情報を提示したり、契約者が契約している基本的なサービスの契約情報を提示したり、契約者が契約しているオプション的なサービスの契約情報を提示するものがある。サービスビーン204は、図1に示した管理プログラム120に相当する。
ビジネスロジック205は、クライアント端末102に提供される各サービスの業務処理に関わる記述がされたプログラムである。ビジネスロジック205としては、例えば、契約者の住所、氏名等の顧客情報を記憶する顧客マスタから、該当する契約者の顧客情報を検索するものがある。ビジネスロジック205は、図1に示した処理プログラム130に相当する。サービス定義206は、クライアント端末102に提供されるサービスおよび各サービスで扱う情報項目の一覧を示す情報である。
画面定義プログラム203は、画面遷移ロジック207およびサービス定義206を参照して、画面遷移定義208と画面プログラム209とを出力するプログラムである。画面遷移ロジック207は、ビジネスロジック205の処理結果に基づいて、遷移先の画面を判定するためのプログラムであり、図1に示した画面遷移プログラム111に相当する。画面遷移定義208は、画面遷移の制御に関する定義情報が記述されたものである。画面遷移定義208は、図1に示した画面遷移定義情報110に相当する。画面プログラム209は、画面を動的に構成するためのプログラム(例えば、JSP)である。
開発環境220は、例えば、Webシステム200の開発者(例えば、図8に示す業務設計者801、画面デザイナ802、ビジネスロジックプログラマ803等)が使用するコンピュータにより実現される。なお、サービス定義プログラム202によってビジネスロジック205のスタブが出力されるが、その後行われる業務処理の内容に依存する実装ならびに画面遷移ロジック207の実装は、一般的な開発環境やテキストエディタを使用する。
実行環境230は、Webサーバ101とクライアント端末102とにより実現される。Webサーバ101は、画面ビーン210を有する。画面ビーン210は、クライアント端末102のWebブラウザ201に提供する画面の画面表示にかかるプログラムである。Webサーバ101は、画面ビーン210を実行することにより、Webブラウザ201からの要求電文Rqを処理する。
具体的には、例えば、Webサーバ101が、開発環境220から配備されたサービスビーン204、完成したビジネスロジック205、画面遷移ロジック207、画面遷移定義208および画面プログラム209を参照して、要求電文Rqを処理する。そして、Webサーバ101が、要求電文Rqの処理結果として応答電文Rsを作成し、Webブラウザ201に返却する。この結果、Webブラウザ201において、Webサーバ101からの応答電文Rsをもとに画面表示が更新される。
図2において、サービスビーン204、ビジネスロジック205、画面遷移ロジック207、画面プログラム209、画面ビーン210の数の関係は『サービスビーン:ビジネスロジック:画面遷移ロジック:画面プログラム:画面ビーン=n:n:1:1:1』である。これは、1回の要求電文Rqの受信時に実行される数の関係を示している。
(コンピュータのハードウェア構成)
次に、Webシステム200内のWebサーバ101、クライアント端末102等のコンピュータのハードウェア構成について説明する。
図3は、コンピュータのハードウェア構成を示すブロック図である。図3において、コンピュータは、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、I/F(Interface)308と、ディスプレイ309と、キーボード310と、マウス311と、を備えている。また、各構成部はバス300によってそれぞれ接続されている。
ここで、CPU301は、コンピュータの全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
I/F308は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク240に接続され、このネットワーク240を介して他のコンピュータに接続される。そして、I/F308は、ネットワーク240と内部のインタフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F308には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ309は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ309は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
(ビーン400のデータ構造)
次に、図2に示したサービスビーン204、ビジネスロジック205および画面ビーン210(ここでは、総称して「ビーン400」という)のデータ構造について説明する。
図4は、画面1のビーンのデータ構造の一例を示す説明図(その1)である。図4において、画面1は、クライアント端末102のWebブラウザ201に提供される画面の一例である。画面1は、3つのサービスA,B,Cを扱う画面である。画面プログラム401は、図2に示した画面プログラム209の一例であり、画面1を構成するためのプログラムである。
ビーン400は、画面1の画面表示にかかるプログラムである。具体的には、ビーン400は、インタフェースプログラム410とビジネスロジックA,B,Cとに分割されている。インタフェースプログラム410は、画面プログラム401とビジネスロジックA,B,Cとの間のインタフェースの役割を果たすプログラムである。
インタフェースプログラム410は、画面ビーン210と、サービスA,B,CごとのサービスビーンA,B,Cとの2階層に分かれた構造となっている。ビジネスロジックA,B,Cは、図2に示したビジネスロジック205の一例であり、各サービスA,B,Cの業務処理に関わる記述がされたプログラムである。
画面ビーン210は、Webブラウザ201に提供される全画面に共通した情報を保持するプログラムである。サービスビーンA,B,Cは、図2に示したサービスビーン204の一例であり、サービスA,B,C単位のプログラムである。
すなわち、ビーン400は、画面ビーン210を親、サービスビーン204を子として配列にオブジェクトを格納し、画面ごとに、1つの画面ビーン210、複数(1以上)のサービスビーン204およびビジネスロジック205が対応する階層構造を有している。
このように、本実施の形態では、インタフェースプログラム410を、画面ビーン210とサービスビーン204とに分割し、サービスビーン204とビジネスロジック205とをセットで部品化する。これにより、プログラム外の定義(例えば、画面遷移定義208)によって、画面とサービスビーン204およびビジネスロジック205との関連付けを柔軟に変更でき、動的にビーン400のオブジェクトを構成することができる。
また、画面ビーン210に画面の識別子や画面に配置されたボタンの識別子を保持し、全画面で汎用することにより、画面遷移の処理を個々のビジネスロジック205から独立させることができる。さらに、画面ビーン210には、動作パラメータといったシステム共通情報を保持することもできる。
以下、図5を用いて、ビーン400のデータ構造をより詳細に説明する。
図5は、画面1のビーンのデータ構造の一例を示す説明図(その2)である。図5において、画面ビーン210は、画面IDの属性およびgetter(取得)/setter(置換)メソッドを持つ。画面IDは、クライアント端末102のWebブラウザ201に提供される画面の識別子である。
また、画面ビーン210は、ボタンIDの属性およびgetter/setterメソッドを含む。ボタンIDは、画面上に表示されるボタン(例えば、図4に示した画面1上のボタンa、ボタンb)の識別子である。ボタンは、画面上に表示される画面項目の一例であり、例えば、クライアント端末102のユーザにより、画面遷移を指示する際に選択される。
また、画面ビーン210は、画面(例えば、画面1)に対応するサービスビーン204の属性およびadd(追加)/remove(削除)/getter/setterメソッドを含む。また、画面ビーン210は、システム共通情報の属性およびadd/remove/getter/setterメソッドを含む。
なお、上述した各種メソッドは、各情報項目のオブジェクトを追加/削除/置換/取得するメソッドである。また、属性「String」は文字列の型、属性「ArrayList」は配列の型、属性「Long」は数字の型、属性「Boolean」は真偽値を表している。
ここで、サービスビーン204は、各サービスで使用する情報項目のgetter/setterメソッドを含む。例えば、サービスビーンAは、サービスAで使用する項目a、項目bのgetter/setterメソッドを含む。画面ビーン210とサービスビーン204のオブジェクトは、「1:複数(図5では「3」)」に対応する。
Webサーバ101は、画面遷移定義208に設定された画面IDとサービスビーン204の関連付けに従って、画面で使用するサービスビーン204のオブジェクトを定義順にArrayListに格納する。例えば、Webサーバ101は、画面1の表示要求を受け付けた後、次画面の表示要求を受け付けるまで、画面1で使用するサービスビーンA〜Cのオブジェクトを定義順にArrayListに格納する。
ビジネスロジック205とサービスビーン204のオブジェクトは、「1:1」に対応する。Webサーバ101は、画面遷移定義208に設定された画面IDと、サービスビーン204およびビジネスロジック205の組合せとの関連付けに従って、各画面の初期処理、遷移処理の各タイミングで、定義順にビジネスロジック205を呼び出す。
この結果、ビジネスロジック205に対応するサービスビーン204のオブジェクトが引数で渡される。ビジネスロジック205では、サービスビーン204のgetterメソッドを使って値を取り出し、業務処理を行い、その処理結果をサービスビーン204のsetterメソッドを使用して格納する。
なお、初期処理とは、Webサーバ101において、画面の表示要求の受付時に、サービスビーン204のオブジェクトが存在しない場合に実行される処理である。遷移処理とは、Webサーバ101において、ある画面から次画面への遷移要求の受付時に実行される処理である。ビジネスロジック205では、画面ビーン210のシステム共通情報も操作可能である。
画面プログラム209と画面ビーン210とサービスビーン204は、「1:1:複数(図5では「3」)」に対応する。画面プログラム209は、画面ビーン210や各画面に対応するサービスビーン204のメソッドを使用する。具体的には、例えば、画面プログラム209は、JSPの形態で、画面遷移定義208と整合性を持って、画面ビーン210やサービスビーン204のメソッドをプログラムに展開する。ここで、画面プログラム209の具体例について説明する。
図6は、画面プログラムの具体例を示す説明図(その1)である。図6において、画面プログラム600は、画面1の画面項目の配置構成に応じて、画面ビーン210やサービスビーンA,B,Cのメソッドを使用する画面プログラム209である。なお、図面では、画面プログラム600の一部を抜粋して表示している。
ここでは、サービスビーンA,B,Cが「A→B→C」の順に配列されている。すなわち、サービスビーンAが配列の1番目(インデックス:0)、サービスビーンBが配列の2番目(インデックス:1)、サービスビーンCが配列の3番目(インデックス:2)となっている。
例えば、画面プログラム600の記述601は、配列の1番目のサービスビーンAの項目aの値を取得するためのものである。記述602は、配列の2番目のサービスビーンBの項目cの値を取得するためのものである。記述603は、配列の3番目のサービスビーンCの項目fの値を取得するためのものである。
上述したビーン400のデータ構造によれば、画面の構成変更を柔軟に行うことができる。具体的には、画面単位の粒度で各種プログラムを構成するのではなく、サービス単位の粒度で各種プログラムを構成することで、柔軟に画面の構成を変更できるようになる。
例えば、図4に示した画面1のサービスA,B,CのうちサービスCだけを別画面として新規に作成する場合、サービスCのサービスビーンCおよびビジネスロジックCを別画面に流用することができる。また、画面1に新たなサービスDを追加する場合、サービスDのサービスビーンDおよびビジネスロジックDのみを作成し、画面遷移定義208および画面プログラム209を修正すればよい。
ここで、一例として、画面1のサービスA,B,CのうちサービスCだけを別画面として新規に作成する場合について説明する。
図7は、画面2のビーンのデータ構造の一例を示す説明図である。図7において、画面2は、クライアント端末102のWebブラウザ201に提供される画面の一例である。画面2は、サービスCを扱う画面である。画面プログラム701は、図2に示した画面プログラム209の一例であり、画面2を動的に構成するためのプログラムである。
ここで、画面ビーン210、サービスビーンCおよびビジネスロジックCは、画面1を表示するために既に作成済みのプログラムである。すなわち、画面2を提供するために、サービスビーンCおよびビジネスロジックCの作成や修正は不要であり、画面遷移定義208の修正や画面プログラム701の作成を行うだけで対応することができる。
(開発環境220の作業手順)
次に、実施の形態にかかる開発環境220の作業手順について説明する。
図8は、開発環境の作業手順の一例を示す説明図である。図8において、業務設計者801は、サービス定義プログラム202により、サービス定義206とサービスビーン204を作成する。具体的には、例えば、業務設計者801は、業務画面やビジネスロジック205を実装する前段階で、業務要件定義と機能設計によって、どのような業務を実現したいかを決める。
そして、業務設計者801は、入出力情報項目が確定した段階で、サービス定義206とサービスビーン204を作成する。サービス定義206は、画面定義プログラム203で特定のサービスを実装した画面を作成する際に、利用候補となる情報項目を取得するための定義である。
この結果、サービス定義プログラム202により、サービス定義206とサービスビーン204が出力される。また、サービス定義プログラム202により、サービスビーン204とのインタフェースが確定した状態で作成されたビジネスロジック205のスタブが出力される。
このあと、画面デザイナ802は、作成装置810において、画面定義プログラム203により、画面遷移定義208と画面プログラム209を作成する。作成装置810は、画面遷移定義208と画面プログラム209を作成するコンピュータである。作成装置810のハードウェア構成は、例えば、図3に示した構成部301〜311により実現される。
具体的には、例えば、画面デザイナ802は、サービス定義206を入力し、画面定義プログラム203によりHTMLを編集しながら、画面IDの指定、個々の画面上に表示される画面項目とサービス定義206の情報項目との関連付けを指定する。
また、画面デザイナ802は、個々の画面上に表示されるボタンのボタンIDとイベントIDと遷移先画面IDとの関連付けを指定する。ボタンIDは、画面上に表示されるボタンの識別子である。イベントIDとは、関連付けられたボタンが選択された際に発生するイベントの識別子である。また、遷移先画面IDは、関連付けられたボタンが表示されている画面の遷移先の画面の識別子である。この結果、画面定義プログラム203により、画面プログラム209と画面遷移定義208が出力される。
一方、ビジネスロジックプログラマ803は、サービス定義プログラム202により作成されたビジネスロジック205のスタブに対して、一般的な開発環境やテキストエディタを使用して、業務処理内容に依存する実装を行い、ビジネスロジック205を完成させる。また、ビジネスロジックプログラマ803は、一般的な開発環境やテキストエディタを使用して、画面遷移ロジック207を作成する。
このように、本実施の形態にかかる開発環境220によれば、画面デザイナ802とビジネスロジックプログラマ803との作業依存がないため、役割の異なる担当者が並行して作業を進めることができる。
(作成装置810の編集画面の具体例)
次に、図8に示した画面デザイナ802が使用する作成装置810のディスプレイ309に表示される編集画面の具体例について説明する。
図9は、作成装置の編集画面の具体例を示す説明図(その1)である。図9において、編集画面901〜903は、Webブラウザ201に提供される画面上の表示項目および入力項目に対して、サービスと情報項目とを関連付けるための画面である。表示項目は、ビジネスロジック205の処理結果をクライアント端末102のユーザに見せるための画面上の項目である。入力項目は、クライアント端末102のユーザが画面上で設定した文字列や選択した結果をビジネスロジック205に渡すための項目である。
以下、作成装置810において、画面上の表示項目および入力項目に対して、サービスと情報項目とを関連付ける手順例(9−1)〜(9−4)について説明する。
(9−1)作成装置810は、画面デザイナ802の操作入力により、Webブラウザ201に提供する画面上に表示する表示項目および入力項目を作成する。この結果、編集画面901において、入力項目a、表示項目bおよび表示項目cが表示されている。
(9−2)作成装置810は、画面デザイナ802の操作入力により、編集画面901に表示された入力項目a、表示項目bおよび表示項目cの中から、任意の入力項目または表示項目の選択を受け付ける。ここでは、入力項目aが選択された結果、編集画面902において、クライアント端末102に提供されるサービスの一覧表910が表示されている。
なお、編集画面902に一覧表示される各サービス(例えば、サービスA)は、サービスビーン204とビジネスロジック205との組合せ(例えば、図4に示したサービスビーンAとビジネスロジックAとの組合せ)を示している。また、編集画面902に一覧表示される各サービスは、サービス定義206に含まれている。
(9−3)作成装置810は、画面デザイナ802の操作入力により、編集画面902に表示されたサービスの一覧表910の中から、入力項目aと関連付けるサービスの選択を受け付ける。ここでは、サービスAが選択された結果、編集画面903において、サービスAで扱う情報項目(サービスビーンAの情報項目)の一覧表920が表示されている。
(9−4)作成装置810は、画面デザイナ802の操作入力により、編集画面903に表示された情報項目の一覧表920の中から、サービスAと関連付ける情報項目の選択を受け付ける。
この結果、作成装置810は、上記(9−2)において選択された任意の入力項目または表示項目と、上記(9−3)において選択されたサービスと、上記(9−4)において選択された情報項目とを関連付けて出力する。ここでは、上記(9−4)において項目aが選択された結果、入力項目aとサービスAと項目aとが関連付けられて出力される。
このように、作成装置810によれば、画面上に表示される各々の表示項目や入力項目と、サービス204と、サービスビーン204の情報項目(変数)と、ビジネスロジック205とを関連付けることができる。この関連付け結果は、画面遷移定義208および画面プログラム209の作成に利用される。
また、作成装置810は、上記(9−2)において入力項目(ボタン)の選択を受け付けた後、画面デザイナ802の操作入力により、画面の遷移先となる他の画面の選択を受け付けることにしてもよい。そして、作成装置810は、選択された入力項目(ボタン)と、選択された画面の遷移先となる他の画面とを関連付けて出力することにしてもよい。この関連付け結果は、画面遷移定義208の作成に利用される。
なお、上述した説明では、上記(9−1)において、画面上に表示する表示項目および入力項目を作成した後、上記(9−2)〜(9−4)の手順を行うことにしたが、これに限らない。以下、図10を用いて、作成装置810において、画面上の表示項目および入力項目に対して、サービスと情報項目とを関連付ける他の手順例(10−1)〜(10−4)について説明する。
図10は、作成装置の編集画面の具体例を示す説明図(その2)である。図10において、編集画面1001〜1003は、Webブラウザ201に提供される画面上の表示項目および入力項目に対して、サービスと情報項目とを関連付けるための画面である。
(10−1)作成装置810は、Webブラウザ201に提供する画面上に表示する表示項目および入力項目と、サービスと、項目との関連付けを表す一覧表1010を表示する。
(10−2)作成装置810は、画面デザイナ802の操作入力により、一覧表1010の中から、任意の入力項目または表示項目の選択を受け付ける。ここでは、入力項目aが選択された結果、編集画面1002において、クライアント端末102に提供される複数のサービスの一覧表1020が表示されている。
(10−3)作成装置810は、画面デザイナ802の操作入力により、編集画面1002に表示されたサービスの一覧表1020の中から、入力項目aと関連付けるサービスの選択を受け付ける。ここでは、サービスAが選択された結果、編集画面1003において、サービスAで扱う情報項目(サービスビーンAの情報項目)の一覧表1030が表示されている。
(10−4)作成装置810は、画面デザイナ802の操作入力により、編集画面1003に表示された情報項目の一覧表1030の中から、サービスAと関連付ける情報項目の選択を受け付ける。ここでは、項目aが選択された結果、入力項目aとサービスAと項目aとが関連付けられて出力される。
このように、一覧表1010を提示して、予め作成された表示項目や入力項目のうちの必要となるものに対して、サービスと項目の関連付けを行うことにより、画面デザインを先に完成させてから、サービスと項目の関連付けをまとめて行うこともできる。
(画面プログラム209の具体例)
ここで、作成装置810において、画面上の表示項目や入力項目と、サービスと、サービスビーン204の情報項目と、ビジネスロジック205との関連付けが行われた結果、出力される画面プログラム209の具体例について説明する。
図11は、画面プログラムの具体例を示す説明図(その2)である。図11において、画面プログラム1100は、画面の表示項目や入力項目の配置構成に応じて、画面ビーン210やサービスビーン204のメソッドを使用する画面プログラム209である。
画面プログラム1100において、網掛け部分1110は、サービスビーン204の値を動的に表示するための記述である。具体的には、網掛け部分1110は、画面で扱う3つ目のサービスビーン204が保持する情報項目(この例では、ArrayListの先頭に格納された値)を、サービスビーン204が持つgetterメソッドを使って自動生成するプログラム部位である。
画面プログラム1100によれば、Webサーバ101からWebブラウザ201への応答時には、サービスビーン204が保持する値が動的に応答電文Rsに反映される。また、Webブラウザ201からWebサーバ101への要求時には、要求電文Rqに設定された値がサービスビーン204に格納される。
このように、画面プログラム1100によれば、画面ビーン210の配下にあるサービスビーン204へアクセスすることができる。これにより、画面デザイナ802は、画面ビーン210やサービスビーン204の構造を理解してプログラムロジックを作成する必要がなく、画面デザインに専念することができる。また、サービスビーン204が持つ情報項目と関連付ける表示項目や入力項目は、画面上の任意の場所に配置することができるため、フレーム分割のような画面レイアウトにおける制約がない。
(画面遷移定義208の具体例)
次に、作成装置810において、画面上の表示項目や入力項目と、サービスと、サービスビーン204の情報項目と、ビジネスロジック205と、遷移先の画面との関連付けが行われた結果、出力される画面遷移定義208の具体例について説明する。以下説明のため、Webブラウザ201に提供される任意の画面を「画面Si」と表記する。
図12は、画面遷移定義の具体例を示す説明図である。図12において、画面遷移定義208は、Webブラウザ201に提供される画面Siごとの定義情報(例えば、定義情報1210,1220)を含む。
ここで、定義情報は、画面Siと、画面プログラム209と、サービスビーン204と、ビジネスロジック205との対応関係を示す情報である。具体的には、例えば、定義情報には、画面Siの画面IDと、画面プログラム209のファイル名と、サービスビーン204のサービスビーンIDと、ビジネスロジック205のビジネスロジックIDとが対応付けて記述されている。
また、定義情報は、画面Siと、遷移先の次画面(以下、「次画面Sj」という)との対応関係を示す情報である。具体的には、例えば、定義情報には、画面Siの画面IDと、ボタンのボタンIDと、画面遷移ロジック207の画面遷移ロジックIDと、次画面Sjの画面IDとが対応付けて記述されている。ボタンは、画面Si上に表示される入力項目の一例である。
また、定義情報において、サービスビーン204の定義順は、画面ビーン210のArrayListに格納される順番を表している。サービスビーン204の定義順は、例えば、図9に示した(9−3)において、サービスの一覧表910の中から選択されたサービスの順番に従ったものとなる。
定義情報1210を例に挙げると、画面Siの画面ID「画面1」と、画面プログラム209のファイル名「PG001.jsp」とが対応付けて記述されている。また、定義情報1210には、画面Siの画面ID「画面1」と、サービスビーン204のサービスビーンID「サービスA」と、ビジネスロジック205のビジネスロジックID「サービスAロジック」とが対応付けて記述されている。また、定義情報1210には、画面ID「画面1」と、サービスビーン204のサービスビーンID「サービスB」と、ビジネスロジック205のビジネスロジックID「サービスBロジック」とが対応付けて記述されている。
また、定義情報1210には、画面Siの画面ID「画面1」と、ボタンのボタンID「次へ」と、イベントID「NEXT_PAGE_EVENT」と次画面Sjの画面ID「画面2」とが対応付けて記述されている。なお、このイベントIDは、画面Si上においてボタン「次へ」が選択された際に発生するイベントの識別子である。
定義情報1210によれば、画面1に対応するサービスビーン204およびビジネスロジック205を特定することができる。また、定義情報1210によれば、画面ビーン210のArrayListに格納されるサービスビーン204の格納順を特定することができる。また、定義情報1210によれば、画面1の遷移先の画面2、および画面1から画面2への遷移条件を特定することができる。
定義情報1220を例に挙げると、画面Siの画面ID「画面2」と、画面プログラム209のファイル名「PG002.jsp」とが対応付けて記述されている。また、画面Siの画面ID「画面2」と、サービスビーン204のサービスビーンID「サービスA」と、ビジネスロジック205のビジネスロジックID「サービスAロジック」とが対応付けて記述されている。また、画面ID「画面2」と、サービスビーン204のサービスビーンID「サービスC」と、ビジネスロジック205のビジネスロジックID「サービスCロジック」とが対応付けて記述されている。
また、定義情報1220には、画面Siの画面ID「画面2」と、ボタンのボタンID「次へ」と、画面遷移ロジック207の画面遷移ロジックID「エラー画面への振り分けチェックロジック」とが対応付けて記述されている。さらに、定義情報1220には、イベントID「NEXT_PAGE_EVENT」と対応付けて、次画面Sjの画面ID「画面3」が記述されている。同様に、イベントID「ERROR_PAGE_EVENT」と対応付けて、次画面Sjの画面ID「エラー画面」が記述されている。なお、このイベントIDは、画面遷移ロジック「エラー画面への振り分けチェックロジック」を実行した結果、発生するイベントの識別子である。
定義情報1220によれば、画面2に対応するサービスビーン204およびビジネスロジック205を特定することができる。また、定義情報1220によれば、画面2の遷移先の画面(画面3またはエラー画面)、および画面2から遷移先の画面(画面3またはエラー画面)への遷移条件を特定することができる。
画面遷移定義208は、Webサーバ101により、Webブラウザ201から初期画面の要求および画面遷移が発生した際に参照され、サービスビーン204のオブジェクトが動的に生成され、画面ビーン210の子オブジェクトが定義順に配列に格納される。
(要求電文Rqの具体例)
次に、クライアント端末102のWebブラウザ201からWebサーバ101に送信される要求電文Rqの具体例について説明する。
図13は、要求電文の具体例を示す説明図である。図13において、要求電文Rqは、HTTPプロトコルに従って記述された電文である。要求電文Rqは、ヘッダ部1310とボディ部1320とを含む。ヘッダ部1310には、Webサーバ101とクライアント端末102のWebブラウザ201との間の通信プロトコルであるHTTPプロトコルの規約に則った情報が記述されている。
ボディ部1320には、クライアント端末102のユーザにより画面Siに設定された値や選択されたボタンのボタンID等がリクエストパラメータとして格納されている。リクエストパラメータは、パラメータ名称(例えば、SCREEN00001−01/wsv_keiyaku_list/0/select等)とパラメータ値(例えば、true等)を、イコール記号(=)でつないだものである。複数のパラメータが存在する場合は、リクエストパラメータをアンド記号(&)でつなぐ。
初回の要求電文Rqには、表示要求する画面Siの画面ID(例えば、Screen id=“画面1”)が含まれる。また、図13に示した例は、2回目以降の要求電文Rqのため、ヘッダ部1310の「Cookie」にセッションID「600JIDB368…Q6A」が格納されている。セッションIDは、Webサーバ101が応答電文Rsのクッキーに格納してクライアント端末102に送る文字列であり、応答電文Rsを発行したクライアント端末102を識別するためのものである。
(Webサーバ101の機能的構成)
図14は、Webサーバの機能的構成の一例を示すブロック図である。図14において、Webサーバ101は、受信部1401と、判定部1402と、第1の生成部1403と、特定部1404と、第2の生成部1405と、実行部1406と、送信部1407と、設定部1408と、判断部1409と、削除部1410と、決定部1411と、を含む構成である。各機能部(受信部1401〜決定部1411)は、具体的には、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F308により、その機能を実現する。
受信部1401は、クライアント端末102から要求電文Rqを受信する機能を有する。具体的には、例えば、受信部1401が、ネットワーク240を介して、クライアント端末102のWebブラウザ201から要求電文Rq(例えば、図13参照)を受信する。
判定部1402は、受信された要求電文Rqに基づいて、最初の画面表示か否かを判定する機能を有する。具体的には、例えば、判定部1402が、要求電文RqのクッキーにセッションIDが含まれている場合、最初の画面表示ではないと判定する。一方、要求電文RqのクッキーにセッションIDが含まれていない場合、判定部1402が、最初の画面表示であると判定する。
第1の生成部1403は、判定部1402によって最初の画面表示であると判定された場合、画面ビーン210のオブジェクトを生成する。画面ビーン210のオブジェクトを生成とは、例えば、画面ビーン210に記述されている変数や関数(または、関数のポインタ)をRAM303に展開することである。
また、第1の生成部1403は、要求電文Rqに含まれるリクエストパラメータの中から、表示要求されている画面Siの画面IDを取得する。例えば、要求電文Rqに「Screen id=“画面1”」というリクエストパラメータと値が含まれている場合、画面IDは「画面1」となる。
そして、第1の生成部1403は、表示要求されている画面Siの画面IDを画面ビーン210のオブジェクトに設定する。具体的には、例えば、第1の生成部1403が、図5に示した画面ビーン210の情報項目「画面ID」に、表示要求されている画面Siの画面IDを設定する。
画面ビーン210のオブジェクトは、最初の画面表示以降、例えば、Webサーバ101とWebブラウザ201とのセッションが維持される限り保持され、動作パラメータといったシステム共通情報を永続的に持つことができる。ただし、画面ビーン210のオブジェクトの画面IDやボタンIDの情報等は更新される。
特定部1404は、要求電文Rqにより表示要求されている画面Siに対応するサービスビーン204を特定する。具体的には、例えば、まず、特定部1404が、画面遷移定義208の中から、画面ビーン210のオブジェクトに設定されている画面Siの画面IDに対応する定義情報を検索する。例えば、画面ビーン210のオブジェクトに設定されている画面Siの画面IDが「画面1」の場合、画面遷移定義208の中から定義情報1210が検索される。
そして、特定部1404が、検索した定義情報を参照して、画面Siの画面IDに対応するサービスビーンIDを特定する。例えば、画面遷移定義208の中から定義情報1210が検索された場合、特定部1404が、画面ID「画面1」に対応するサービスビーンID「サービスA」および「サービスB」を定義順に特定する。
また、特定部1404は、検索した定義情報を参照して、特定したサービスビーン204に対応するビジネスロジック205のオブジェクトを特定する。例えば、定義情報1210が検索された場合、特定部1404が、サービスビーンID「サービスA」および「サービスB」に対応するビジネスロジックID「サービスAロジック」および「サービスBロジック」を定義順に特定する。
このように、要求電文Rqに含まれる画面Siの画面IDを手掛かりに画面遷移定義208を参照することで、画面Siに対応するサービスビーン204およびビジネスロジック205を特定することができる。
第2の生成部1405は、画面Siに対応するサービスビーン204のオブジェクトを生成する。具体的には、例えば、第2の生成部1405が、サービスビーン格納領域1420の中から、特定された画面Siの画面IDに対応するサービスビーンIDのサービスビーン204を検索する。
ここで、サービスビーン格納領域1420は、例えば、図2に示したサービス定義206に定義されているサービスごとのサービスビーン204を格納する格納領域である。そして、第2の生成部1405が、画面遷移定義208の定義情報に定義された定義順にサービスビーン204のオブジェクトを生成する。
なお、以下の説明では、画面Siの画面IDに対応するサービスビーン204のサービスビーンIDを定義順に「サービスビーンs1〜sK」と表記する。また、サービスビーンs1〜sKのうち任意のサービスビーンを「サービスビーンsk」と表記する(k=1,2,…,K)。
また、第2の生成部1405は、サービスビーン204に対応するビジネスロジック205のオブジェクトを生成する。具体的には、例えば、まず、第2の生成部1405が、ビジネスロジック格納領域1430の中から、サービスビーンs1〜sKに対応するビジネスロジックID(以下、「ビジネスロジックb1〜bK」という)に対応するビジネスロジック205を検索する。
ここで、ビジネスロジック格納領域1430は、例えば、サービス定義206に定義されている各サービスのサービスビーン204に対応するビジネスロジック205を格納する格納領域である。そして、第2の生成部1405が、画面遷移定義208の定義情報に定義された定義順にビジネスロジック205のオブジェクトを生成する。
実行部1406は、サービスビーン204に対応するビジネスロジック205の初期処理を実行する。具体的には、例えば、実行部1406が、各ビジネスロジックb1〜bKのビジネスロジック205の初期処理を実行する。この結果、サービスビーン204の情報項目がsetterメソッドにより更新され、サービスビーン204のオブジェクトに初期値が設定される。
そして、実行部1406が、画面ビーン210の情報項目「サービスビーン」の配列にサービスビーン204およびビジネスロジック205のオブジェクトを格納する。画面ビーン210の情報項目「サービスビーン」の配列に格納とは、例えば、生成したサービスビーン204のオブジェクトのポインタを格納することである。
なお、実行部1406は、配列に格納済みのサービスビーン204に対応するビジネスロジック205の初期処理は実行しない。
また、実行部1406は、画面Siに対応する画面プログラム209を実行する。具体的には、例えば、まず、実行部1406が、画面遷移定義208の定義情報を参照して、画面プログラム格納領域1440の中から、画面Siの画面IDに対応する画面プログラム209を検索する。ここで、画面プログラム格納領域1440は、例えば、Webブラウザ201に提供される画面ごとの画面プログラム209を格納する格納領域である。
そして、実行部1406が、検索した画面プログラム209を実行する。この結果、画面Siの画面IDに対応するサービスビーン204のオブジェクトに設定された各情報項目の値が、画面プログラム209の記述に従って埋め込まれた応答電文Rsが作成される。
送信部1407は、作成された応答電文Rsをクライアント端末102に送信する。具体的には、例えば、送信部1407が、ネットワーク240を介して、クライアント端末102のWebブラウザ201に応答電文Rsを送信する。
設定部1408は、判定部1402によって最初の画面表示ではないと判定された場合、要求電文Rqに含まれる画面Si上の入力項目の入力値を、サービスビーン204のオブジェクトに設定する。入力値とは、画面Si上の入力項目に設定された値(例えば、ユーザID、検索キーワード、日付等)である。入力値は、例えば、クライアント端末102のキーボード310やマウス311を用いたユーザの操作により入力される。
具体的には、例えば、まず、設定部1408が、要求電文Rqの中から、画面Si上の入力項目に関するリクエストパラメータを選択する。次に、設定部1408が、選択したリクエストパラメータのパラメータ名から、パラメータ値の格納対象となるサービスビーン204の配列の順番と情報項目の項目名を特定する。
なお、パラメータ名には、例えば、「SCREEN00001−01wsv_keiyaku_list/0/select」(図13参照)のように、サービスビーン204の配列の順番と情報項目の項目名が特定できる情報が埋め込まれている。この場合、サービスビーン204「SCREEN00001−01wsv_keiyaku_list」の配列の順番は「0」、情報項目の項目名は「select」である。
このあと、設定部1408が、サービスビーンs1〜sKの中から、格納対象となるサービスビーン204の配列の順番に対応するサービスビーンskを特定する。次に、設定部1408が、特定したサービスビーンskに対応するサービスビーン204の情報項目のうち、格納対象となる情報項目の項目名からsetterメソッドを特定する。そして、設定部1408が、特定したsetterメソッドを使用して、入力項目の入力値(パラメータ値)をサービスビーン204のオブジェクトに設定する。
このように、要求電文Rqのリクエストパラメータに含まれるサービスビーン204の配列の順番と項目名を手掛かりに、画面Si上の入力項目の入力値の設定先となるサービスビーン204の情報項目を特定して、入力値を設定することができる。
また、実行部1406は、サービスビーン204のオブジェクトに画面Si上の入力項目の入力値が設定された場合、サービスビーン204に対応するビジネスロジック205の遷移処理を実行する。遷移処理とは、画面遷移時の業務処理である。この結果、サービスビーン204の情報項目がgetterメソッドにより参照され、サービスビーン204のオブジェクトに設定された入力項目の入力値に基づく業務処理が行われる。
判断部1409は、画面遷移定義208の定義情報を参照して、遷移処理が実行されたビジネスロジック205に対応するサービスビーン204のオブジェクトを削除するか否かを判断する。すなわち、判断部1409が、遷移処理が実行されたビジネスロジック205に対応するサービスビーン204を継続して実行するか否かを判断する。具体的には、例えば、判断部1409が、遷移処理が実行されたビジネスロジックbkに対応するサービスビーンskに保持指定が付与されているか否かを判断する。
ここで、保持指定とは、画面Siに対応するサービスビーン204と遷移先の画面Sjとを関連付ける情報である。保持指定が付与されているサービスビーン204は、遷移先の画面Sjでも継続して使用することを意味する。図12の例では、定義情報1210の中の「hold screenID」が保持指定を示す記述である。すなわち、サービスビーンID「サービスA」のサービスビーン204に保持指定「hold screenID」が付与されている。
削除部1410は、遷移処理が実行されたビジネスロジック205に対応するサービスビーン204のオブジェクトを削除すると判断された場合、サービスビーン204のオブジェクトを削除する。すなわち、削除部1410が、遷移処理が実行されたビジネスロジック205に対応するサービスビーン204の実行を終了させる。
具体的には、例えば、削除部1410が、RAM303に展開されているサービスビーンskおよびビジネスロジックbkのオブジェクトを削除する。一方、遷移処理が実行されたビジネスロジック205に対応するサービスビーン204のオブジェクトを削除しないと判断された場合、削除部1410は、サービスビーン204のオブジェクトを削除しない。
これにより、保持指定されているサービスビーン204のオブジェクトを複数の画面に跨って保持することができ、該当のサービスビーン204に対応する画面Si上の画面項目を、遷移先の画面に継続して表示することができる。
決定部1411は、要求電文Rqに含まれるリクエストパラメータのパラメータ値に基づいて、遷移先の画面Sjを決定する。具体的には、例えば、まず、決定部1411が、画面ビーン210のオブジェクトに設定されている画面Siの画面IDを取得する。
また、決定部1411が、要求電文Rqの中から、画面Si上のボタンおよびイベントに関するリクエストパラメータを取得する。図13に示した要求電文Rqを例に挙げると、ボディ部1320に記述されたリクエストパラメータのうち、ボタンに関するリクエストパラメータは「btn=次へ」(図中、符号1322)である。また、イベントに関するリクエストパラメータは「evt=NEXT_PAGE_TRANSFER」(図中、符号1323)である。
このため、決定部1411が、ボタンに関するリクエストパラメータ「btn=次へ」およびイベントに関するリクエストパラメータ「evt=NEXT_PAGE_TRANSFER」を取得する。そして、決定部1411が、取得したリクエストパラメータからボタンIDおよびイベントIDを特定する。
上記例では、決定部1411が、ボタンID「次へ」およびイベントID「NEXT_PAGE_TRANSFER」を特定する。なお、ボタンIDは、クライアント端末102のユーザにより選択された画面Si上のボタンの識別子である。イベントIDは、クライアント端末102のユーザにより選択されたボタンに関連付けられているイベントの識別子である。
このあと、決定部1411が、画面遷移定義208の定義情報を参照して、ボタンIDおよびイベントIDの組合せに対応する次画面Sjの画面IDを特定する。画面遷移定義208の定義情報1210を例に挙げると、例えば、ボタンIDおよびイベントIDの組合せを「次へ」および「NEXT_PAGE_TRANSFER」とすると、次画面Sjの画面IDは「画面2」となる。このため、決定部1411が、遷移先の次画面Sjを画面2に決定し、画面ビーン210の情報項目「画面ID」に、次画面Sjの画面ID「画面2」を設定する。
このように、Webブラウザ201に現在提供されている画面Siの画面IDと、要求電文Rqのリクエストパラメータに含まれるボタンIDおよびイベントIDを手掛かりに画面遷移定義208を参照することにより、遷移先の次画面Sjを特定することができる。
また、実行部1406は、要求電文Rqに含まれるボタンIDに対応する画面遷移ロジック207がある場合、画面遷移ロジック207を実行する機能を有する。具体的には、例えば、実行部1406が、画面遷移定義208の定義情報を参照して、要求電文Rqに含まれるボタンIDに対応する画面遷移ロジックIDを特定する。
画面遷移定義208の定義情報1220を例に挙げると、決定部1411が、例えば、ボタンID「次へ」に対応する画面遷移ロジックID「エラー画面への振り分けチェックロジック」を特定する。次に、実行部1406が、画面遷移ロジック格納領域1450の中から、特定した画面遷移ロジックIDに対応する画面遷移ロジック207を検索する。
ここで、画面遷移ロジック格納領域1450は、例えば、ビジネスロジック205に対応する画面遷移ロジック207を格納する格納領域である。そして、実行部1406が、検索した画面遷移ロジック207を実行する。なお、要求電文Rqに含まれるボタンIDに対応する画面遷移ロジックIDが存在しない場合、画面遷移ロジック207の実行は行われない。
すなわち、実行部1406が、ボタンIDに対応する画面遷移ロジック207を実行することにより、例えば、サービスビーン204のオブジェクトの中身を確認して、ビジネスロジック205がエラーで終了しないかどうかをチェックする。ここで、エラーが発生した場合、決定部1411が、エラーが発生したことを示すイベントIDを実行部1406から受信する。
そして、決定部1411が、画面遷移定義208の定義情報を参照して、ボタンIDおよびエラーが発生したことを示すイベントIDの組合せに対応する次画面Sjの画面IDを特定する。画面遷移定義208の定義情報1210を例に挙げると、例えば、ボタンIDおよびイベントIDの組合せを「次へ」および「ERROR_PAGE_TRANSFER」とすると、次画面Sjの画面IDは「エラー画面」となる。
このため、決定部1411が、遷移先の次画面Sjをエラー画面に決定し、画面ビーン210の情報項目「画面ID」に、次画面Sjの画面ID「エラー画面」を設定する。一方、エラーが発生しない場合は、実行部1406が、ボタンIDと関連付けられたイベントIDと同じイベントIDを決定部1411に送信することになる。
なお、上述した各種格納領域1420,1430,1440,1450は、Webサーバ101が備える構成であってもよく、また、Webサーバ101がアクセス可能な外部のコンピュータが備える構成であってもよい。
(Webサーバ101の画面情報提供処理手順)
次に、図15〜図19を用いて、実施の形態にかかるWebサーバ101の画面情報提供処理手順について説明する。
図15〜図19は、実施の形態にかかるWebサーバの画面情報提供処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、受信部1401により、クライアント端末102から要求電文Rqを受信したか否かを判断する(ステップS1501)。
ここで、要求電文Rqを受信するのを待って(ステップS1501:No)、受信した場合(ステップS1501:Yes)、判定部1402により、受信された要求電文Rqに基づいて、最初の画面表示か否かを判定する(ステップS1502)。ここで、最初の画面表示ではない場合(ステップS1502:No)、図17に示すステップS1701に移行する。
一方、最初の画面表示の場合(ステップS1502:Yes)、第1の生成部1403により、画面ビーン210のオブジェクトを生成する(ステップS1503)。このあと、第1の生成部1403により、要求電文Rqのリクエストパラメータの中から、表示要求されている画面Siの画面IDを取得する(ステップS1504)。
そして、第1の生成部1403により、画面ビーン210のオブジェクトに、取得した画面Siの画面IDを設定して(ステップS1505)、図16に示すステップS1601に移行する。これにより、Webブラウザ201から表示要求されている画面Siの画面IDを画面ビーン210のオブジェクトに設定することができる。
図16のフローチャートにおいて、まず、特定部1404により、画面遷移定義208の中から、画面ビーン210のオブジェクトに設定されている画面Siの画面IDに対応する定義情報を検索する(ステップS1601)。そして、特定部1404により、検索した定義情報を参照して、画面Siの画面IDに対応するサービスビーンIDおよびビジネスロジックIDを特定する(ステップS1602)。
このあと、第2の生成部1405により、サービスビーンskの「k」を「k=1」とし(ステップS1603)、サービスビーンskおよびビジネスロジックbkが画面ビーン210の配列に存在するか否かを判断する(ステップS1604)。ここで、画面ビーン210の配列に存在する場合(ステップS1604:Yes)、ステップS1609に移行する。
一方、画面ビーン210の配列に存在しない場合(ステップS1604:No)、第2の生成部1405により、サービスビーンskおよびビジネスロジックbkのオブジェクトを生成する(ステップS1605)。次に、実行部1406により、ビジネスロジックbkの初期処理を実行する(ステップS1606)。
そして、実行部1406により、画面ビーン210の配列にサービスビーンskおよびビジネスロジックbkのオブジェクトを格納する(ステップS1607)。このあと、第2の生成部1405により、サービスビーンskの「k」をインクリメントして(ステップS1608)、「k」が「K」より大きくなったか否かを判断する(ステップS1609)。
ここで、「k」が「K」以下の場合(ステップS1609:No)、ステップS1604に戻る。一方、「k」が「K」より大きい場合(ステップS1609:Yes)、図19に示すステップS1901に移行する。
これにより、要求電文Rqに含まれる画面Siの画面IDを手掛かりに画面遷移定義208を参照することで、画面Siに対応するサービスビーン204およびビジネスロジック205を特定して、ビジネスロジック205の初期処理を実行することができる。
図17のフローチャートにおいて、まず、設定部1408により、画面ビーン210のオブジェクトに設定されている画面Siの画面IDを取得する(ステップS1701)。そして、設定部1408により、要求電文Rqの中から、画面Si上の入力項目に関するリクエストパラメータを選択する(ステップS1702)。
次に、設定部1408により、選択したリクエストパラメータのパラメータ名から、パラメータ値の格納対象となるサービスビーン204の配列の順番と情報項目の項目名を特定する(ステップS1703)。そして、設定部1408により、ステップS1701に取得した画面IDに対応するサービスビーンs1〜sKの中から、格納対象となるサービスビーン204の配列の順番に対応するサービスビーンIDを特定する(ステップS1704)。
このあと、設定部1408により、特定したsetterメソッドを使用して、入力項目の入力値(パラメータ値)をサービスビーン204のオブジェクトに設定する(ステップS1705)。そして、設定部1408により、要求電文Rqの中から選択していない未選択の画面Si上の入力項目に関するリクエストパラメータがあるか否かを判断する(ステップS1706)。
ここで、未選択のリクエストパラメータがある場合(ステップS1706:Yes)、ステップS1702に戻る。一方、未選択のリクエストパラメータがない場合(ステップS1706:No)、図18のステップS1801に移行する。これにより、クライアント端末102のユーザにより入力された入力項目の入力値をサービスビーン204のオブジェクトに設定することができる。
図18のフローチャートにおいて、まず、実行部1406により、画面遷移定義208の定義情報を参照して、画面ビーン210のオブジェクトに設定されている画面Siの画面IDに対応するサービスビーンIDおよびビジネスロジックIDを特定する(ステップS1801)。
このあと、実行部1406により、サービスビーンskの「k」を「k=1」とし(ステップS1802)、サービスビーンskに対応するビジネスロジックbkの遷移処理を実行する(ステップS1803)。次に、判断部1409により、遷移処理が実行されたビジネスロジックbkに対応するサービスビーンskに保持指定が付与されているか否かを判断する(ステップS1804)。
ここで、保持指定が付与されている場合(ステップS1804:Yes)、ステップS1806に移行する。一方、保持指定が付与されていない場合(ステップS1804:No)、削除部1410により、画面ビーン210の配列に格納されているサービスビーンskのオブジェクトを削除する(ステップS1805)。
このあと、実行部1406により、サービスビーンskの「k」をインクリメントして(ステップS1806)、「k」が「K」より大きくなったか否かを判断する(ステップS1807)。ここで、「k」が「K」以下の場合(ステップS1807:No)、ステップS1803に戻る。
一方、「k」が「K」より大きい場合(ステップS1807:Yes)、決定部1411により、要求電文Rqのリクエストパラメータの中から、ボタンIDおよびイベントIDを取得する(ステップS1808)。次に、決定部1411により、画面遷移定義208の定義情報を参照して、ボタンIDおよびイベントIDの組合せに対応する次画面Sjの画面IDを特定する(ステップS1809)。
そして、決定部1411により、画面ビーン210に次画面Sjの画面IDを設定して(ステップS1810)、図16に示したステップS1601に移行する。
これにより、要求電文Rqに含まれる画面Siの画面IDを手掛かりに、画面Siに対応するサービスビーン204およびビジネスロジック205を特定して、ビジネスロジック205の遷移処理を実行することができる。また、保持指定されているサービスビーン204のオブジェクトを複数の画面に跨って保持することができ、該当のサービスビーン204に対応する画面Si上の入力項目を、遷移先の画面に継続して表示することができる。
図19のフローチャートにおいて、まず、決定部1411により、要求電文Rqのリクエストパラメータの中に、ボタンIDおよびイベントIDが存在するか否かを判断する(ステップS1901)。
ここで、ボタンIDおよびイベントIDが存在する場合(ステップS1901:Yes)、決定部1411により、画面遷移定義208の定義情報を参照して、ボタンIDに対応する画面遷移ロジックIDがあるか否かを判断する(ステップS1902)。
そして、ボタンIDに対応する画面遷移ロジックIDがある場合(ステップS1902:Yes)、実行部1406により、ボタンIDに対応する画面遷移ロジック207を実行する(ステップS1903)。このあと、決定部1411により、画面遷移ロジック207が返すイベントID(実行結果)が元のイベントIDと同じか否かを判断する(ステップS1904)。なお、元のイベントIDとは、要求電文Rqのリクエストパラメータに格納されているイベントIDである。
ここで、イベントIDが同じ場合(ステップS1904:Yes)、ステップS1907に移行する。一方、イベントIDが異なる場合(ステップS1904:No)、決定部1411により、画面遷移定義208の定義情報を参照して、ボタンIDおよびイベントIDの組合せに対応する次画面Sjの画面IDを特定する(ステップS1905)。なお、ここでのイベントIDは、画面遷移ロジック207が実行された結果返ってくるイベントIDである。
そして、決定部1411により、画面ビーン210に次画面Sjの画面IDを設定して(ステップS1906)、図16に示したステップS1601に移行する。
また、ステップS1902において、ボタンIDに対応する画面遷移ロジックIDがない場合(ステップS1902:No)、ステップS1905に移行する。
そして、決定部1411により、画面遷移定義208の定義情報を参照して、ボタンIDおよびイベントIDの組合せに対応する次画面Sjの画面IDを特定する(ステップS1905)。なお、ここでのイベントIDは、要求電文Rqに含まれるボタンIDと関連するイベントIDである。
そして、決定部1411により、画面ビーン210に次画面Sjの画面IDを設定して(ステップS1906)、図16に示したステップS1601に移行する。
また、ステップS1901において、ボタンIDおよびイベントIDが存在しない場合(ステップS1901:No)、実行部1406により、画面Siの画面IDに対応する画面プログラム209を実行する(ステップS1907)。そして、送信部1407により、画面プログラム209が実行された結果作成される応答電文RsをWebブラウザ201に送信して(ステップS1908)、本フローチャートによる一連の処理を終了する。
これにより、Webブラウザ201に現在提供されている画面Siの画面IDと、要求電文Rqのリクエストパラメータに含まれるボタンIDおよびイベントIDを手掛かりに、遷移先の次画面Sjを特定することができる。
(複数の画面に跨ってサービスを維持する具体例)
ここで、上述した保持指定「hold screenID」を利用して、複数の画面に跨ってサービスビーン204のオブジェクトを保持する具体例について説明する。
図20は、複数の画面に跨ってサービスビーンのオブジェクトを保持する具体例を示す説明図である。図20において、画面1と画面2に跨って、サービスAのサービスビーン204のオブジェクトを保持する例が示されている。
ここでは、画面1と画面2に跨って、サービスAのサービスビーン204のオブジェクトを保持するために、画面遷移定義208の定義情報1210に、「サービスA」の保持指定「hold screenID」が記述されている(図中、符号2001)。
このため、画面1のWebサーバ101側の処理が終了した後も、「サービスA」のオブジェクトが削除されない。また、画面2の表示時に、「サービスA」のオブジェクトが既に存在するため、「サービスA」のオブジェクト生成と「サービスAロジック」の初期処理は実行されない。
この結果、「サービスC」のオブジェクト生成と「サービスCロジック」の初期処理のみが実行され、画面プログラム209の実行時に、「サービスA」および「サービスC」の値が応答電文Rsに設定される。これによって、画面2と画面1で「サービスA」の同じ情報項目を使用する場合、画面1で入力された内容は、画面2で引き続き表示される。
このように、本実施の形態では、画面Siとビジネスロジック205の粒度が独立であるため、1つの画面Siに複数のサービスビーン204のオブジェクトを割当可能であるとともに、複数画面に跨ってサービスビーン204のオブジェクトを保持できる。
これにより、例えば、画面Siに入力された内容を遷移先の次画面Sjで確認表示する場合や、別サービスの画面を既存の画面遷移に割り込んで追加する場合などに、ビジネスロジック205側で画面遷移の考慮が不要となる。すなわち、インタフェースプログラム410やビジネスロジック205の修正作業が不要となる。また、後述の図21および図23に示すように、PC画面と携帯電話端末のように画面表示サイズが異なるクライアント端末102向けのWebサイトにおいて、サービスビーン204やビジネスロジック205を共用することができる。
(画面と画面遷移定義の一例)
次に、Webブラウザ201に提供される画面Siと画面遷移定義208の定義情報の一例について説明する。
図21は、PCの画面例を示す説明図である。図22は、PCの画面例に対応する定義情報を示す説明図である。図23は、携帯電話端末の画面例を示す説明図である。図24は、携帯電話端末の画面例に対応する定義情報を示す説明図である。
図21において、画面「住所登録(PC)画面」は、PCのクライアント端末102に表示される画面例である。画面「住所登録(PC)画面」には、「名前」、「フリガナ」、「郵便番号」、「都道府県」、「市区郡」、「町村名と番地」、「ビル・マンション名」、「自宅電話番号」、「携帯電話番号」、「メールアドレス」および「メールアドレス再入力」の入力項目が表示されている。
図22において、定義情報2200は、画面「住所登録(PC)画面」と、画面プログラム209と、サービスビーン204と、ビジネスロジック205と、次画面「登録住所確認画面」との対応関係を示す情報である。PCの画面例では、上述した複数の入力項目が一画面に表示されているため、定義情報は一つである。
図23において、画面「住所登録(携帯)画面1」、画面「住所登録(携帯)画面2」、画面「住所登録(携帯)画面3」および画面「住所登録(携帯)画面4」は、携帯電話端末のクライアント端末102に表示される画面例である。携帯電話端末は、PCに比べてディスプレイ309の大きさが小さいため、図21に示したPCの画面「住所登録(PC)画面」では一括表示されている複数の入力項目が、複数の画面に分割して表示されている。
画面「住所登録(携帯)画面1」には、「名前」および「フリガナ」の入力項目が表示されている。画面「住所登録(携帯)画面2」には、「郵便番号」、「都道府県」、「市区郡」、「町村名と番地」および「ビル・マンション名」の入力項目が表示されている。画面「住所登録(携帯)画面3」には、「自宅電話番号」および「携帯電話番号」の入力項目が表示されている。画面「住所登録(携帯)画面4」には、「メールアドレス」および「メールアドレス再入力」の入力項目が表示されている。
本実施の形態によれば、携帯電話端末の各画面上の入力項目とサービスビーン「住所登録情報」の項目とを関連付けることにより、PCの画面「住所登録(PC)画面」で使用したサービスビーン「住所登録情報」を流用することができる。
ただし、携帯電話端末では、PCの画面「住所登録(PC)画面」で一括表示されている複数の入力項目が、4つの画面に分割して表示されるため、画面ごとの定義情報が作成される。
図24において、定義情報2410は、画面「住所登録(携帯)画面1」と、画面プログラム209と、サービスビーン204と、ビジネスロジック205と、次画面「住所登録(携帯)画面2」との対応関係を示す情報である。定義情報2420は、画面「住所登録(携帯)画面2」と、画面プログラム209と、サービスビーン204と、ビジネスロジック205と、次画面「住所登録(携帯)画面3」との対応関係を示す情報である。
定義情報2430は、画面「住所登録(携帯)画面3」と、画面プログラム209と、サービスビーン204と、ビジネスロジック205と、次画面「住所登録(携帯)画面4」との対応関係を示す情報である。定義情報2440は、画面「住所登録(携帯)画面4」と、画面プログラム209と、サービスビーン204と、ビジネスロジック205と、次画面「登録住所確認画面」との対応関係を示す情報である。
携帯電話端末の画面例では、上述した複数の入力項目が4つの画面に分割して表示されているため、定義情報は四つ(定義情報2410,2420,2430,2440)となる。
以上説明したように、本実施の形態にかかるWebサーバ101によれば、画面遷移定義208を参照することにより、要求電文Rqに含まれる画面Si上のボタンおよびイベントに関するリクエストパラメータと関連付けられた遷移先の次画面Sjを特定することができる。
すなわち、画面遷移に係る定義情報(画面遷移定義208)をサービスビーン204およびビジネスロジック205と分離して管理することができる。これにより、サービスビーン204やビジネスロジック205を他の画面にそのまま流用可能となり、画面作成にかかる作業の効率化を図ることができる。
また、Webサーバ101によれば、画面遷移定義208を参照することにより、要求電文Rqに含まれる画面Siの画面IDに対応するサービスビーン204およびビジネスロジック205を特定することができる。
すなわち、各画面Siに対応するサービス(サービスビーン204、ビジネスロジック205)に係る定義情報(画面遷移定義208)をサービスビーン204およびビジネスロジック205と分離して管理することができる。これにより、サービスビーン204やビジネスロジック205を複数の画面に流用可能となり、画面作成にかかる作業の効率化を図ることができる。
また、Webサーバ101によれば、画面遷移定義208を参照することにより、保持指定されているサービスビーン204のオブジェクトを複数の画面に跨って保持することができる。これにより、保持指定されているサービスビーン204に対応する画面Si上の画面項目を、遷移先の次画面Sjに継続して表示することができる。
また、本実施の形態にかかる作成装置810によれば、画面デザイナ802の操作入力により、画面Si上に表示させる画面項目と、サービスビーン204(およびビジネスロジック205)と、サービスビーン204の情報項目とを関連付けることができる。これにより、画面Si上の画面項目とサービスビーン204の情報項目との対応関係が定義された画面遷移定義208および画面プログラム209を作成することができる。
これらのことから、本画面情報提供プログラム、画面情報提供方法、作成支援プログラムおよび作成支援方法によれば、画面の遷移や構成を簡単かつ柔軟に変更することができる。これにより、インターネット上のWebサイト等において、顧客ニーズに合致した商品やサービスを迅速に提供することができるようになる。
例えば、Webサイトが商業上の戦略から、新規の顧客獲得や既存顧客の囲い込みのために、短いサイクルで新しいサービスの提供を行うことができる。また、ある時期だけスポット的に画面遷移を変えたり、お勧め商品や新サービスを画面上の最も目立つ箇所に表示するなどの画面の構成変更に柔軟に対応することができる。
(実施例)
次に、本実施の形態にかかる一実施例として、顧客管理システムのサービス申込画面に割引サービスを申し込むための入力領域(画面項目の集合)を追加する場合の一連の手順、および作成される各種プログラムについて説明する。
図25は、割引サービスを申し込むための入力領域を追加する前のサービス申込画面を示す説明図である。また、図26は、割引サービスを申し込むための入力領域を追加した後のサービス申込画面を示す説明図である。
図25において、サービス申込画面2500には、顧客情報の入力領域2510および基本サービス契約情報の入力領域2520が表示されている。また、図26において、サービス申込画面2500には、割引サービス契約申込の入力領域2610が追加された結果、顧客情報の入力領域2510、基本サービス契約情報の入力領域2520および割引サービス契約申込の入力領域2610が表示されている。
図27は、割引サービス契約申込機能の設計情報の設定例を示す説明図である。図27において、業務設計者801(図8参照)により、割引サービス契約申込機能を実現するための設計情報2700をサービス定義プログラム202に設定しているイメージが示されている。
具体的には、設計情報2700として、サービス名「割引サービス申込」、サービスビーンID「com.fujitsu…EntrySVCBean」、ビジネスロジックID「com.fujitsu…EntrySVCLogic」が設定されている。また、設計情報2700として、項目ID(例えば、select)と項目名(例えば、選択)とデータタイプ(例えば、Boolean)との関連付けが設定されている。
割引サービス契約申込機能を実現するための設計情報が設定された結果、例えば、図28に示すサービス定義2800と図29に示すサービスビーン2900と図30に示すビジネスロジックのスタブ3000とが作成される。
図28は、割引サービス申込機能のサービス定義を示す説明図である。図28において、サービス定義2800には、割引サービス契約申込機能を実装した画面を作成する際に、利用候補となる情報項目を取得するための定義が示されている。具体的には、例えば、サービス定義2800には、図27に示した設計情報2700に従って、利用候補となる情報項目が定義されている。
図29は、割引サービス申込機能のサービスビーンを示す説明図である。図29において、サービスビーン2900は、割引サービス申込機能のサービスビーン204である。サービスビーン2900は、割引サービス申込機能で使用する各種項目(例えば、選択、割引サービスコード等)のgetter/setterメソッドを含む。作成されたサービスビーン2900は、Webサーバ101に配備される(図8参照)。
図30は、割引サービス申込機能のビジネスロジックのスタブを示す説明図である。図30において、ビジネスロジックのスタブ3000は、割引サービス申込機能のビジネスロジック205を作成するための雛形である。
ビジネスロジックプログラマ803(図8参照)は、ビジネスロジック205のスタブ3000に対して、一般的な開発環境やテキストエディタを使用して、割引サービス申込内容に依存する実装を行い、ビジネスロジック205を完成させる。作成されたビジネスロジック205は、Webサーバ101に配備される(図8参照)。
図31〜図33は、画面定義プログラムにより提供される編集画面の具体例を示す説明図である。図31には、作成装置810において、画面デザイナ802が画面定義プログラム203を使ってサービス申込画面に割引サービスを申し込むための入力領域3100を追加する画面例が示されている。
また、図32には、サービス申込画面に割引サービス申込機能のサービスビーン2900(図29参照)を追加する画面3210,3220,3230が示されている。具体的には、画面3210において、画面デザイナ802が追加ボタン3211を選択すると、画面3220が表示される。
画面3220において、サービス一覧3221の中から画面デザイナ802が追加するサービスとして「割引サービス申込」を選択し設定ボタン3222を選択すると、サービス申込画面に割引サービス申込機能が追加されたことを示す画面3230が表示される。
また、図33には、割引サービス申込機能のサービス定義2800(図28参照)を参照しながら、追加した入力領域に割引サービス申込機能の入出力情報項目を関連付ける画面3310,3320,3330が示されている。
具体的には、画面3310には、Webブラウザ201に提供する画面上に表示する画面項目(表示項目、入力項目)とサービスと項目との関連付けを表す一覧表3311が表示されている。画面3310において、画面デザイナ802が、一覧表3311の中から、画面項目3312を選択すると、画面3320が表示される。
画面3320には、クライアント端末102に提供される複数のサービスの一覧表3321が表示されている。画面3320において、画面デザイナ802が、一覧表3321の中から、画面項目3312と関連付けるサービス3322を選択すると、画面3330が表示される。
画面3330には、サービス3322で扱う情報項目(サービスビーン2900の情報項目)の一覧表3331が表示されている。画面3330において、画面デザイナ802が、一覧表3331の中から、サービス3322と関連付ける情報項目3332を選択する。この結果、画面項目3312とサービス3322と情報項目3332とが関連付けられて出力される。
そして、画面定義プログラム203により、新たな画面プログラム209(例えば、後述の図34および図35参照)と画面遷移定義208(例えば、後述の図36参照)が作成される。
図34および図35は、サービス申込画面の画面プログラムの具体例を示す説明図である。図34および図35において、画面プログラム3400は、サービス申込画面の画面プログラム209である。画面プログラム3400において、符号3410は、サービス申込画面に割引サービスを申し込むための入力領域3100(図31参照)が追加された結果、新たに追加されたプログラム記述を示している。作成された画面プログラム3400は、Webサーバ101に配備される(図8参照)。
図36は、サービス申込画面の画面遷移定義を示す説明図である。図36において、画面遷移定義208には、Webブラウザ201に提供されるサービス申込画面の定義情報3610が記述されている。定義情報3610において、定義情報3620は、追加された割引サービス申込機能の定義情報である。
具体的には、定義情報3610には、サービス申込画面に設定されているサービスビーン204が画面定義プログラム203の指定順に定義されている。サービス申込画面の表示時には、定義情報3610に定義されている順に、各サービスビーン204に対応するビジネスロジック205が実行される。
なお、図36に示した例では、3番目(最後)に割引サービス申込を追加した例である。例えば、割引サービス申込機能を2番目に追加した場合、サービス申込画面の画面プログラム209には割引サービス申込機能のプログラムが挿入されるとともに、3番目になったサービス(基本サービス申込)の配列位置が1から2に更新される(先頭は0)。また、画面遷移定義208には、2番目のサービス(割引サービス申込)に関わる部分が、3番目のサービス(基本サービス申込)の直前に挿入される。作成された画面遷移定義208は、Webサーバ101に配備される(図8参照)。
Webブラウザ201は、上述した手順により作成されたサービスビーン2900、ビジネスロジック205および画面プログラム3400が配備されたWebサーバ101にアクセスすると、図26に示したサービス申込画面2500が表示される。ここで、Webブラウザ201がWebサーバ101にアクセスして、図26に示したサービス申込画面2500を表示した際のアクセスログについて説明する。
図37は、アクセスログの一例を示す説明図である。図37において、アクセスログ3700は、Webブラウザ201がWebサーバ101にアクセスして、図26に示したサービス申込画面2500を表示した際のログである。アクセスログ3700のログ3701,3702,3703によれば、追加された割引サービス申込機能のビジネスロジック205が、図32に示した画面3230で設定した順に実行されていることがわかる。
なお、本実施の形態で説明した画面情報提供方法および作成支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画面情報提供プログラムおよび作成支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本画面情報提供プログラムおよび作成支援プログラムは、インターネット等のネットワークを介して配布してもよい。