(57)【要約】【課題】Ｗｅｂアプリケーションについて、スタンドアロン環境で動作可能なデモアプリケーションを容易に生成するデモアプリケーション生成システムを提供する。【解決手段】Ｗｅｂアプリケーションプログラムがクライアント端末２００に対して画面を生成して出力する際に出力バッファからＨＴＭＬデータ１０２を取得し、ＨＴＭＬデータ１０２に含まれるＵＲＬ表現もしくはパスをクライアント端末２００上の所定のディレクトリを基準とした第１のローカルパスにそれぞれ変換し、またＨＴＭＬデータ１０２の所在場所のパスを第２のローカルパスに変換し、クライアント端末２００上の第２のローカルパスにＨＴＭＬデータ１０２からなるＨＴＭＬファイルを出力し、さらにＨＴＭＬデータ１０２が参照するリソース１０４を含む各ファイルについてクライアント端末２００上の対応する第１のローカルパスにそれぞれ出力もしくはコピーする。【選択図】図１
2014059699.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末上からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答して画面表示させることで前記クライアント端末に対してサービスを提供するＷｅｂアプリケーションプログラムを稼働させるとともに、前記Ｗｅｂアプリケーションプログラムの所定の画面遷移について前記クライアント端末で単独で再現可能とするデモアプリケーションを生成するデモアプリケーション生成システムであって、
前記Ｗｅｂアプリケーションプログラムが前記クライアント端末に対して応答する画面を生成して出力する際に、生成された前記画面のＨＴＭＬデータを保持する出力バッファから前記ＨＴＭＬデータを取得し、前記ＨＴＭＬデータに含まれるＵＲＬ表現もしくはパスを、前記クライアント端末上の所定のディレクトリを基準とした第１のローカルパスにそれぞれ変換し、また、前記ＨＴＭＬデータの所在場所のパスを前記所定のディレクトリを基準とした第２のローカルパスに変換し、
前記デモアプリケーションとして、前記クライアント端末上の前記第２のローカルパスにより示される場所に前記ＨＴＭＬデータからなるＨＴＭＬファイルを出力し、さらに前記ＨＴＭＬデータが参照するリソースを含む各ファイルについて、前記クライアント端末上の対応する前記第１のローカルパスにより示される場所にそれぞれ出力もしくはコピーすることを特徴とするデモアプリケーション生成システム。
【請求項２】
請求項１に記載のデモアプリケーション生成システムにおいて、
前記ＨＴＭＬデータが参照する前記リソースを含む各ファイルについて、それぞれファイルに含まれるＵＲＬ表現もしくはパスを、前記所定のディレクトリを基準とした第３のローカルパスに変換することを特徴とするデモアプリケーション生成システム。
【請求項３】
請求項１または２に記載のデモアプリケーション生成システムにおいて、
前記第１および第２のローカルパスからなる前記所定のディレクトリ以下の階層構成は、前記Ｗｅｂアプリケーションプログラムに係るファイルやリソースが配置されているディレクトリの階層構成と対応していることを特徴とするデモアプリケーション生成システム。
【請求項４】
クライアント端末上からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答して画面表示させることで前記クライアント端末に対してサービスを提供するＷｅｂアプリケーションプログラムを稼働させるとともに、前記Ｗｅｂアプリケーションプログラムの所定の画面遷移について前記クライアント端末で単独で再現可能とするデモアプリケーションを生成するＷｅｂサーバシステムとしてコンピュータを動作させるデモアプリケーション生成プログラムであって、
前記Ｗｅｂアプリケーションプログラムが前記クライアント端末に対して応答する画面を生成して出力する際に、生成された前記画面のＨＴＭＬデータを保持する出力バッファから前記ＨＴＭＬデータを取得し、前記ＨＴＭＬデータに含まれるＵＲＬ表現もしくはパスを、前記クライアント端末上の所定のディレクトリを基準とした第１のローカルパスにそれぞれ変換し、また、前記ＨＴＭＬデータの所在場所のパスを前記所定のディレクトリを基準とした第２のローカルパスに変換し、
前記デモアプリケーションとして、前記クライアント端末上の前記第２のローカルパスにより示される場所に前記ＨＴＭＬデータからなるＨＴＭＬファイルを出力し、さらに前記ＨＴＭＬデータが参照するリソースを含む各ファイルについて、前記クライアント端末上の対応する前記第１のローカルパスにより示される場所にそれぞれ出力もしくはコピーすることを特徴とするデモアプリケーション生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションプログラムの開発技術に関し、特に、スタンドアロン環境で動作するデモ用アプリケーションを生成するデモアプリケーション生成システムおよびデモアプリケーション生成プログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
Ｗｅｂアプリケーションプログラムによるシステムやサービスは、主に、Ｗｅｂサーバ上で稼働するアプリケーションプログラムに対して、ユーザがクライアント端末上で稼働するＷｅｂブラウザ等を利用してアクセスすることで実行される。ユーザに対しては、Ｗｅｂブラウザを介してユーザインタフェースが提供される。
【０００３】
このユーザインタフェース（画面の内容や画面遷移等）を簡易的に再現することで、他の顧客やシステムの利用者等に対して、システムやサービスの機能、動作や、画面レイアウト、処理手順等を説明したり内容を確認したりするためのデモ用のアプリケーションプログラムやプロトタイプ等（以下では、これらを総称して“デモアプリケーション”と記載する場合がある）が必要とされる場合がある。Ｗｅｂアプリケーションによるサービスや機能などを動作させるためには、本来、Ｗｅｂサーバとクライアント端末がネットワークを介して接続される構成が必要となるところ、デモを実行するためにそのような構成を用意できない場合も多い。
【０００４】
これに対して、例えば、デモ用のクライアント端末にＷｅｂサーバプログラムを導入してローカルでＷｅｂサーバ機能を稼働させることで、クライアント端末だけのスタンドアロン環境でＷｅｂアプリケーションを実行させる構成としてデモ環境を実現する場合がある。しかしながら、このような構成ではクライアント端末の負担が大きくなってしまう。一方で、クライアント端末だけのスタンドアロン環境で動作可能なアプリケーションを作成して、デモに用いたりプロトタイプとしたりすることも一般的に行われる。例えば、クライアント端末上で、本来のＷｅｂアプリケーションプログラムとしても展開可能なアプリケーションプログラムを直接開発することも可能である（例えば非特許文献１など参照）。
【０００５】
また、本来のＷｅｂアプリケーションプログラムとは別に、ＨＴＴＰ（HyperText Transfer Protocol）を利用せずにスタンドアロン環境でローカルファイルを直接アクセスすることで動作可能なデモアプリケーションを、本来のＷｅｂアプリケーションに基づいて作成することも行われる。
【０００６】
例えば、まず、クライアント端末のＷｅｂブラウザを介してＷｅｂサーバにアクセスし、本来のＷｅｂアプリケーションプログラムを一度動作させて、Ｗｅｂブラウザ上に画面を表示させる。このとき、Ｗｅｂブラウザの機能によりＨＴＭＬ（HyperText Markup Language）のソースコードを表示し、この中でＷｅｂサーバ上のファイルやリソースを参照しているパスを、クライアント端末のローカル環境での対応するフォルダやディレクトリを参照するパスに変換した上で、ＨＴＭＬファイルとしてローカルに保存する。また、参照するリソース自体についてもそれぞれ必要に応じて上記と同様にパスを変換する。
【０００７】
さらに、これらのリソースのファイルをＷｅｂサーバから取得してクライアント端末のローカルの所定のパスに保存する。このような手順で、クライアント端末側にＨＴＭＬファイルや必要なリソースを配置するという作業を、Ｗｅｂアプリケーションでの必要な画面遷移の各画面で行うことで、クライアント端末のスタンドアロン環境で動作するデモアプリケーションを作成することが可能である。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】マイクロソフト、“.NET Framework 4  ファイルシステムＷｅｂサイトプロジェクト”、インターネット＜URL：http://msdn.microsoft.com/ja-jp/library/e5x4xz73＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
例えば、既に開発されているＷｅｂアプリケーションについて、上述した手法を用いて、画面遷移の各画面について出力されたＨＴＭＬのソースコードについてそれぞれパス等を変換した上でローカルにファイルやリソース等を保存することで、クライアント端末等のＷｅｂブラウザでのスタンドアロン環境で動作するデモアプリケーションを作成することが可能である。しかしながら、上述した手法では作成のための人手による処理や手順が非常に多く煩雑であり、また、パス等の変換に漏れなどが生じる可能性も高い。
【００１０】
そこで本発明の目的は、動作可能な状態にあるＷｅｂアプリケーションについて、スタンドアロン環境で動作可能なデモアプリケーションを容易に生成するデモアプリケーション生成システムおよびデモアプリケーション生成プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１２】
本発明の代表的な実施の形態によるデモアプリケーション生成システムは、クライアント端末上からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答して画面表示させることで前記クライアント端末に対してサービスを提供するＷｅｂアプリケーションプログラムを稼働させるとともに、前記Ｗｅｂアプリケーションプログラムの所定の画面遷移について前記クライアント端末で単独で再現可能とするデモアプリケーションを生成するデモアプリケーション生成システムであって、以下の特徴を有するものである。
【００１３】
すなわち、デモアプリケーション生成システムは、前記Ｗｅｂアプリケーションプログラムが前記クライアント端末に対して応答する画面を生成して出力する際に、生成された前記画面のＨＴＭＬデータを保持する出力バッファから前記ＨＴＭＬデータを取得し、前記ＨＴＭＬデータに含まれるＵＲＬ表現もしくはパスを、前記クライアント端末上の所定のディレクトリを基準とした第１のローカルパスにそれぞれ変換し、また、前記ＨＴＭＬデータの所在場所のパスを前記所定のディレクトリを基準とした第２のローカルパスに変換する。
【００１４】
さらに、前記デモアプリケーションとして、前記クライアント端末上の前記第２のローカルパスにより示される場所に前記ＨＴＭＬデータからなるＨＴＭＬファイルを出力し、さらに前記ＨＴＭＬデータが参照するリソースを含む各ファイルについて、前記クライアント端末上の対応する前記第１のローカルパスにより示される場所にそれぞれ出力もしくはコピーすることを特徴とするものである。
【００１５】
また、本発明は、コンピュータを上記のようなデモアプリケーション生成システムとして動作させるプログラムにも適用することができる。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１７】
すなわち、本発明の代表的な実施の形態によれば、動作可能な状態にあるＷｅｂアプリケーションについて、スタンドアロン環境で動作可能なデモアプリケーションを容易に生成することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態であるデモアプリケーション生成システムの構成例について概要を示した図である。
【図２】本発明の一実施の形態におけるパーツオブジェクトにより対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。
【図３】本発明の一実施の形態におけるＨＴＭＬデータからローカルデータを生成する処理の流れの例について概要を示したフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
＜概要＞
本発明の一実施の形態であるデモアプリケーション生成システムは、例えば、Ｗｅｂサーバ上で動作し、業務データベースにアクセスするいわゆるＣＲＵＤ（Create,Read,Update,Delete）型のＷｅｂアプリケーションプログラムの画面遷移について、クライアント端末のＷｅｂブラウザ等のスタンドアロン環境で単独で再現可能なデモアプリケーションを容易に生成することを可能とするＷｅｂサーバシステムである。
【００２１】
本実施の形態では、例えば、ＣＲＵＤ型のＷｅｂアプリケーションプログラムにおいて、画面上の入出力項目（例えば、業務データベースからデータを取得するための検索条件の内容を指定する入力項目や、検索結果の内容を表示する出力項目）に係る内容を表示するために、標準的なコントロールオブジェクト（以下では単に“コントロール”と記載する場合がある）を直接用いるのではなく、後述するような、表示名称とコントロールの設定内容や制御処理および説明テキストの各データが一体となったパーツオブジェクトを用いるものとする。
【００２２】
このパーツオブジェクトは、画面上にどのようなコントロールを表示するか（例えば、テキストコントロールのみ、（テキストコントロールと）入力フィールド、（テキストコントロールと）ドロップダウンリスト、…等）をパラメータとして指定することが可能である。また、コントロールの属性値（例えば、テキストコントロールに表示されるテキストの内容や、入力フィールドの長さ等）や、制御情報（例えば、入力データの妥当性チェックをどのように行うか等）などについても指定することができるものとし、指定された内容に従ってコントロールを表示および制御するよう実装されている。
【００２３】
換言すると、パーツオブジェクトは、入力フィールドやドロップダウンリスト、テキストなどの、入出力項目のデータを取り扱う入出力コントロールと、入出力項目の名称等を表示するテキストコントロールであるラベルコントロールとを組み合わせて表示するよう構成されており、これらのコントロールの出力のパターンを指定可能であるという構成を有する。
【００２４】
このとき、ラベルコントロールと入出力コントロールとを一括して整合性を持った形でコントロールの幅等の属性値を調整することができるため、ユーザが個別に整合性を持つように属性値等を指定するという煩雑な処理の必要がなく、表示されるコントロールの外観の調整を行うことができる。この調整には、例えば、表示可能領域に対して、ラベルコントロールが意図しない箇所で改行されたり、逆に意図した箇所で改行されなかったり等を防止するよう、ラベルコントロールと入出力コントロールの表示幅を一体的に調整することなどが含まれる。
【００２５】
本実施の形態では、Ｗｅｂアプリケーションプログラムは、画面上の各入出力項目に係る内容について当該パーツオブジェクトを使用して表示するものとしてソースコードが作成されているものとする。すなわち、パーツオブジェクトを使用して間接的にコントロールを表示する（パーツオブジェクトがＷｅｂサーバシステム上での実行時に対象のコントロールを表示するＨＴＭＬデータやスクリプト等を動的に生成する）。また、アクセスする対象のデータベースの各カラムと画面上の入出力項目とのマッピングに係る情報は、データベースの各カラムの識別情報（例えばカラム名称）と、対応するパーツオブジェクトの識別情報（例えばＨＴＭＬのＩＤ属性値）とのマッピング情報としてソースコード上に保持する。
【００２６】
さらに、本実施の形態では、各パーツオブジェクトにおいてラベルコントロールに表示するテキスト、および入出力コントロールの属性値や制御処理に係る情報などについて、後述するように、一部を除き、ソースコード上で直接指定するのではなく、パーツオブジェクトのＩＤもしくは対応するデータベースのカラム名称等の識別情報と関連付けられた辞書データとして外出しにして保持するよう構成する。これにより、いったん生成されたソースコードに対して変更を加えずに、画面の表示方式や、パーツオブジェクトにより画面上に表示されるコントロールの外観や属性等を動的に変更可能とする。
【００２７】
また、上記の辞書データへのアクセスなど、パーツオブジェクトが共通して有する機能を継承元のクラスに実装しておき、開発時には当該クラスを継承して各パーツオブジェクトを作成するようにすることで、開発者がパーツオブジェクトの機能を都度実装することなくＷｅｂアプリケーションプログラムを開発できるようにしている。
【００２８】
ここで、本実施の形態のデモアプリケーション生成システムは、Ｗｅｂアプリケーションプログラムについて、ユーザが実際に動作させて画面遷移させると、Ｗｅｂサーバプログラムによって各画面が生成されて出力されるタイミングで、Ｗｅｂサーバプログラムの出力バッファに蓄積された画面のＨＴＭＬデータに基づいて、クライアント端末のローカルで動作可能なようにパス等を変換したローカルデータを自動的に生成する。このローカルデータを、必要なリソースと合わせてクライアント端末の所定のフォルダやディレクトリ（Ｗｅｂサーバ上と同じ階層構成を有する）に送信して格納する。
【００２９】
このような手法により、実行したＷｅｂアプリケーションの画面遷移に対応した、クライアント端末上で単独で動作するデモアプリケーションを自動的に生成することができる。なお、このような手法によるデモアプリケーションの生成は、上述したように、従来は主にユーザが画面毎に手作業により行なっていた。これに対し、本実施の形態では、このようなデモアプリケーションの生成処理を自動的に行うことができ、ユーザの負荷を大幅に低減させることができる。
【００３０】
なお、本実施の形態では、Ｗｅｂアプリケーションプログラムを上記のパーツオブジェクトを用いて開発するものとしているが、本実施の形態では、上述したように、出力バッファに蓄積された画面のＨＴＭＬデータに基づいてデモアプリケーションを生成するため、出力バッファからＨＴＭＬデータを取得する処理を実装することが可能のものであれば、特に上記のパーツオブジェクトを用いたものに限られず、どのようなＷｅｂアプリケーションプログラムも対象とすることができる。
【００３１】
＜システム構成＞
図１は、本発明の一実施の形態であるデモアプリケーション生成システムの構成例について概要を示した図である。デモアプリケーション生成システム１００は、例えば、サーバ機器やクラウドコンピューティング環境での仮想サーバなどのコンピュータ機器により構成され、図示しないＯＳやＤＢＭＳ（DataBase Management System）、Ｗｅｂサーバプログラムなどのミドルウェアに加え、ユーザが作成したソースコード１０１もしくはそこから呼び出されるライブラリやオブジェクト等のソフトウェアプログラムにより実装される要求処理部１１０、辞書処理部１２０、ビジネスロジック１３０、および応答処理部１４０などの各部を有するＷｅｂサーバシステムである。
【００３２】
また、デモアプリケーション生成システム１００は、インターネット等のネットワーク３００を介して接続されるクライアント端末２００上の図示しないＷｅｂブラウザ等のプログラムからの要求に対して、ビジネスロジック１３０により業務データベース（ＤＢ）１３１にアクセスして処理を行い、クライアント端末２００に対してＨＴＭＬデータ１０２を出力して応答することによってサービスを提供する。
【００３３】
要求処理部１１０は、クライアント端末２００からの要求を受けて、対応するソースコード１０１に基づいてコンテンツ（ビジネスロジック１３０）を呼び出す機能を有し、ソフトウェアプログラムにより実装されるＩＤ変換部１１１、および入力チェック部１１２などの各部を有する。ＩＤ変換部１１１は、要求メッセージに含まれる画面上の入力項目に対応する、ソースコード１０１に記載されたパーツオブジェクト１０３の識別情報（ＩＤ）を、ソースコード１０１に保持されたマッピング情報に基づいて、入出力項目に対応する業務ＤＢ１３１のカラムの識別情報（カラム名称等）に変換する機能を有する。
【００３４】
このマッピング情報は、画面上に表示されるパーツオブジェクト１０３の識別情報（例えばＨＴＭＬのＩＤ属性値）と、アクセスする対象の業務ＤＢ１３１の各カラムの識別情報（カラム名等）との対応を保持する。これにより、後述するように、ソースコード１０１において画面上に配置された各パーツオブジェクト１０３は、まずＩＤ変換部１１１によって自身のＩＤに対応するカラム名称を取得した後、当該カラム名称をキーとして、業務ＤＢ１３１へのアクセスや、後述する辞書テーブル１２１からの辞書データの取得等の後続の処理を行うことができる。
【００３５】
従って、クライアント端末２００に応答するＨＴＭＬデータ１０２上では、各パーツオブジェクト１０３（によって表示されるコントロール）において、対応する業務ＤＢ１３１のカラム名称をキー等の情報として直接指定する必要がなく、自身のＩＤをキー等の情報とすることができるため、実際のカラム名称をＨＴＭＬデータ１０２上から隠蔽してセキュリティの強化を図ることが可能である。なお、このような変換を行わず、ＨＴＭＬデータ１０２上で各パーツオブジェクト１０３において対応する業務ＤＢ１３１のカラム名称をキー等の情報として直接指定するようにしてもよい。
【００３６】
入力チェック部１１２は、要求メッセージに含まれる、画面上のパーツオブジェクト１０３を介して指定された入力項目のデータの内容について一般的な妥当性チェックを行う機能を有する。妥当性チェックの種類としては、例えば、文字数や文字タイプ（数字やアルファベット、かな、全半角など）、使用可能文字の制限、日時や各種コード値などのフォーマットチェックなどが考えられる。
【００３７】
妥当性チェックの内容は、例えば、システム（特にクライアント端末２００）の言語環境によって異なるものとなり得る。従って、本実施の形態では、入力チェック部１１２において言語毎のバリエーションも考慮した複数パターンの妥当性チェックのタイプを実装しておき、対象の入力項目についていずれのタイプを用いるかを、言語環境に応じて選択・決定するものとする。ここでは、後述する辞書処理部１２０を介して、対象の言語の辞書テーブル１２１にアクセスし、対象の入力項目に対応する辞書データの内容から妥当性チェックのタイプの情報を取得して決定するものとする。
【００３８】
辞書処理部１２０は、データベースやファイルテーブル等により実装される辞書テーブル１２１を有し、例えば、辞書テーブル１２１から、指定されたキー（本実施の形態では、例えば、対象の入出力項目（パーツオブジェクト１０３）に対応する業務ＤＢ１３１のカラム名称）に対する辞書データを取得して出力する機能を有する。辞書テーブル１２１は、例えば、対象となる言語環境やＷｅｂアプリケーションプログラムの業務種別等のカテゴリー毎に複数用意し、選択して使用するようにしてもよい。
【００３９】
辞書テーブル１２１における辞書データの内容やフォーマットは特に限定されない。本実施の形態では、簡易な手法として、例えば後述するように、画面を介して業務ＤＢ１３１の対象のカラムへのデータの入出力処理を行うのに必要な種々のデータ（入出力を行うためのパーツオブジェクト１０３の属性値や制御のために必要なパラメータ等）を所定の順序でカンマ区切り等により指定するものとする。
【００４０】
具体的には、例えば、対応するパーツオブジェクト１０３においてラベルコントロールを表示する際の内容である表示名称や、入出力コントロールとして入力フィールドを表示する際の長さ（文字数）、妥当性チェックの種別やＩＭＥのモードなどの制御処理の内容に係る指定、出力データをテーブルに一覧表示する際の短縮されたテキストである短縮表示名称および表示幅、ドロップダウンリスト等により表示する際の値リストなどが考えられる。
【００４１】
なお、図１の例では、辞書処理部１２０をデモアプリケーション生成システム１００上に実装する構成としているが、これに限らず、デモアプリケーション生成システム１００とは別のサーバ機器上に独立して構築してもよい。
【００４２】
ビジネスロジック１３０は、業務ＤＢ１３１を利用して業務アプリケーションとしての処理を行う機能を有する。本実施の形態では、上述したように、業務ＤＢ１３１に対するＣＲＵＤ型アプリケーションを対象とするが、特にこれに限定されるものではない。
【００４３】
応答処理部１４０は、ソースコード１０１の内容に基づくビジネスロジック１３０等の処理結果に基づいてＨＴＭＬデータ１０２を生成し、クライアント端末２００に対して応答する機能を有し、ソフトウェアプログラムにより実装される表示調整部１４１、表示部１４２、およびローカルデータ生成部１４３などの各部を有する。
【００４４】
表示調整部１４１は、応答に含まれる各出力項目について、対応するパーツオブジェクト１０３を表示するためのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値を取得する。ここでは、辞書処理部１２０を介して対応する言語環境等の辞書テーブル１２１にアクセスして、対象の出力項目（パーツオブジェクト１０３）に対応する辞書データから表示名称や属性値等の各種パラメータ値を取得する。
【００４５】
表示部１４２は、表示調整部１４１が取得した、各パーツオブジェクトについてのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値に基づいて、各パーツオブジェクトにより表示されるコントロールが配置された応答画面のＨＴＭＬデータ１０２を生成する機能を有する。
【００４６】
ローカルデータ生成部１４３は、表示部１４２により生成されたＨＴＭＬデータ１０２に基づいてローカルデータ１０５を生成し、必要なリソース１０４と合わせてクライアント端末２００の所定のフォルダやディレクトリに送信して格納することで、クライアント端末２００上にデモアプリケーションを生成する機能を有する。
【００４７】
具体的には、例えばまず、図示しないＷｅｂサーバプログラムの出力バッファに蓄積されたＨＴＭＬデータ１０２について、クライアント端末２００に対して出力される際にこれを取得する。このタイミングは具体的には例えば出力する“直前”であり、本実施の形態では、画面に表示各するコントロールはパーツオブジェクト１０３を用いて表示するものとしているため、例えば、パーツオブジェクト１０３を表示（ＨＴＭＬを生成）して画面を生成するための共通のクラス等において、最後のＨＴＭＬタグ（“</html>”）を書き出す際に所定のメソッド等を呼び出すようにしてもよい。
【００４８】
また、本実施の形態と異なり、画面表示のためにパーツオブジェクト１０３を用いない場合であっても、例えば、各画面共通で最後に所定のメソッド等を呼び出すようなコードを１行追加することで同様の処理を行なうようにしてもよい。また、終了時のトレースポイントやログ出力などのデバッグコードが呼び出された際に実行するなど、画面生成が完了する際のイベントをキャッチすることができる手段であれば適宜利用することができる。
【００４９】
画面生成完了時に出力バッファから取得したＨＴＭＬデータ１０２に対して、ローカルデータ生成部１４３は、さらに、当該ＨＴＭＬデータ１０２についてクライアント端末２００のスタンドアロン環境で動作可能となるように、後述するようなパス変換等を行なってローカルデータ１０５を生成する。ＨＴＭＬデータ１０２が参照する画像データや他のスクリプトファイル等の必要なリソース１０４についても同様にパス変換等を行う。生成したローカルデータ１０５および必要なリソース１０４はクライアント端末２００の所定のフォルダやディレクトリに送信して格納する。
【００５０】
クライアント端末２００では、Ｗｅｂブラウザ等を利用してローカルの所定のフォルダやディレクトリに格納されたローカルデータ１０５および必要なリソース１０４からなるデモアプリケーションにアクセスすることで、Ｗｅｂサーバを必要とせずにスタンドアロン環境でＷｅｂアプリケーションの画面内容や画面遷移を再現することが可能となる。
【００５１】
＜Ｗｅｂアプリケーションの画面表示処理＞
図２は、ＣＲＵＤ型アプリケーションにおいてパーツオブジェクト１０３により対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。図２の例では、業務ＤＢ１３１からデータを読み出す際の検索条件を入力する画面において、“顧客名”を指定する入力フィールドを表示する場合の例を抜粋して示している。
【００５２】
図の上段に示しているＷｅｂアプリケーションプログラムのソースコード１０１では、“顧客名”を指定する入力フィールドを表示するためにパーツオブジェクト１０３を呼び出している。具体的には、まず、ソースコード１０１上に保持されているマッピング情報（図２の例では、array()により対応関係を保持している）からＩＤ（“Ａ０１”）に対応するカラム名称（“customer_name”）の情報を取得する。
【００５３】
その後、例えば、パーツオブジェクト１０３の機能を実装したクラスから継承したサブクラスについてインスタンスを作成する形で呼び出す（“CF_itemDic();”）。図２の例では、パラメータの一部として、呼び出す辞書テーブル１２１のタイプ（“共通辞書”）、表示する入出力コントロールのタイプ（“入力フィールド”）、ＨＴＭＬのＩＤ属性値（“Ａ０１”）などを指定して呼び出した状態を簡略化して示している。なお、ＨＴＭＬのＩＤ属性値（“Ａ０１”）は、マッピング情報によりカラム名称（“customer_name”）に動的に変換される。
【００５４】
このようなコードにより呼び出されたパーツオブジェクト１０３は、データとして、少なくとも表示名であるラベル（ラベルコントロールのテキスト）の論理要素と、表示する入出力コントロールの内容に係る論理要素についての情報を保持する。さらに図２に示すように、内容を説明するテキスト等からなるコメントの論理要素について情報を保持していてもよい。図２の例では、パーツオブジェクト１０３の上記の３つの論理要素のうち、コントロールについては、ソースコード１０１において“入力フィールド”がパラメータとして指定されているため、これが設定される。
【００５５】
呼び出されたパーツオブジェクト１０３は、さらに、所定の関数やメソッド等により辞書処理部１２０を介して対象の辞書テーブル１２１（“共通辞書”）にアクセスして、カラム名称（“customer_name”）に対応する辞書データ（本実施の形態では“顧客名”、４０文字、２０文字、…などの複数の値の集合）を取得する。
【００５６】
図２の例では、辞書テーブル１２１の辞書データとして、上から順に、名称（ラベルコントロールに表示するテキスト）、入力フィールドの場合の長さ（半角時の文字数）、入力フィールドの場合の最大長さ（文字数）、入力データの妥当性チェックのタイプ、ＩＭＥの初期モード、説明コメント、テーブルに一覧表示する場合のテキスト（表示名）、およびテーブルに一覧表示する場合の表示幅（ピクセル値）などの情報を保持するものとしている。なお、これらの辞書データを取得する際の出力フォーマットとしては、例えば、これらの値をカンマ等で区切った一連の文字列としてもよいし、連想配列等のアクセスしやすいデータとしてもよい。
【００５７】
辞書テーブル１２１については、処理効率を考慮した場合、初期処理もしくは最初のアクセス時にメモリ上に辞書データの内容を展開するのが望ましい。この場合、全ての辞書データを展開するとメモリ使用量を圧迫したり、展開処理に時間を要したり等、却って処理効率が低下する場合がある。従って、実装上は、必要な時に必要な範囲の辞書データをメモリ上に展開できるようにするのが望ましい。
【００５８】
そこで、本実施の形態では、適用範囲が異なる複数の辞書テーブル１２１からなる階層構造を有し、これらを適宜選択して使用する構成をとる。例えば、デモアプリケーション生成システム１００上で稼働するシステムやアプリケーション全体で共通の辞書（“共通辞書”）や、指定されたＷｅｂサイト内でのみ共通の辞書（“サイト辞書”）、サブシステム内でのみ共通の辞書（“ライブラリ辞書”）、画面単位での辞書（“コントローラ辞書”）などの、適用範囲が異なる複数種類の辞書テーブル１２１を有するものとする。
【００５９】
この場合、例えば、“コントローラ辞書”などの適用範囲の狭い辞書を参照して該当する辞書データが得られなかった場合に、“ライブラリ辞書”→“サイト辞書”→“共通辞書”と順に上位の（適用範囲が広い）辞書テーブル１２１に遡って参照できるようにしてもよい。また、辞書データが得られなかったとしてデフォルト値を用いるようにしたりエラーとしたりしてもよい。
【００６０】
パーツオブジェクト１０３は、取得した辞書データから必要なデータを抽出して、コントロールを表示したり制御したりする際のパラメータとして設定する。例えば、入出力コントロールとして入力フィールドを表示する場合の属性値として、辞書データから取得したフィールドの長さを設定するとともに、妥当性チェックのタイプやＩＭＥの初期モードなどの値、説明コメントの内容などを設定する。なお、入力データの妥当性チェックや、ＩＭＥのモード設定などの入出力コントロールの制御に係る処理は、入力チェック部１１２や表示部１４２の機能であるが、具体的な実装としては、例えば、パーツオブジェクト１０３の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト１０３が有する、もしくはパーツオブジェクト１０３が呼び出すことができる機能として実装しておくものとする。
【００６１】
これにより、図２の下段の画面２０１の例に示すように、実行時に“顧客名”を指定するための入力フィールドのコントロールを表示するよう、パーツオブジェクト１０３がＨＴＭＬデータ１０２を生成することができる。このとき例えば、パーツオブジェクト１０３の説明コメントの情報を当該入出力項目についてのヘルプ情報等として用いることができる。
【００６２】
なお、入力フィールドを表示する場合、入力フィールドのコントロールだけを表示したのでは何を入力すべきかが不明であるため、本実施の形態では、図２に示すように、当該パーツオブジェクト１０３に対応する入出力項目の表示名（“顧客名”）を表示するテキストコントロールを入力フィールドに隣接させてラベルとして表示する（ラベルコントロール）。当該テキストは、パーツオブジェクト１０３の保持データにおけるラベルの情報、すなわちパーツオブジェクト１０３が辞書テーブル１２１から取得した辞書データの名称の値（“顧客名”）を設定する。
【００６３】
このようなＨＴＭＬデータ１０２の生成に係る処理は、表示部１４２等の機能であるが、具体的な実装としては、例えば、パーツオブジェクト１０３の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト１０３が有する、もしくはパーツオブジェクト１０３が呼び出すことができる機能として実装しておくものとする。なお、ここでは、上述したように、表示するラベルコントロールや入出力コントロール、および説明コメントを表示するコメントコントロールの３つの要素を一つの単位として、一括して整合性を持った形でレイアウトや外観に係る属性値等を調整するものとする。
【００６４】
以上のような処理によって応答処理部１４０の表示部１４２や表示調整部１４１等により生成され、図示しないＷｅｂサーバプログラムの出力バッファに蓄積されたＨＴＭＬデータ１０２について、クライアント端末２００に対して出力される直前にローカルデータ生成部１４３がこれを取得して、ローカルデータ１０５を生成する。本実施の形態では、上述したように、例えば、パーツオブジェクト１０３を表示（ＨＴＭＬを生成）して画面を生成するための共通のクラス等において、最後のＨＴＭＬタグ（“</html>”）を書き出す際に所定のメソッド等を呼び出すことによってこれを実行する。
【００６５】
＜ローカルデータ生成処理＞
図３は、ＨＴＭＬデータ１０２からローカルデータ１０５を生成する処理の流れの例について概要を示したフローチャートである。ローカルデータ生成部１４３は、上述したように、クライアント端末２００に対して画面遷移における各画面のＨＴＭＬデータ１０２が生成され出力される直前（ＨＴＭＬデータ１０２からなる画面生成が完了するとき）のタイミングで呼び出される。呼び出されると、まず、図示しないＷｅｂサーバプログラムの出力バッファに蓄積されたＨＴＭＬデータ１０２を取り出し、その中に記載されている各ＨＴＭＬタグについて、必要に応じて見やすいように階層毎にタブやインデントを設定して階段状になるよう編集する（Ｓ０１）。
【００６６】
次に、ＨＴＭＬデータ１０２について、記載されているファイルやリソース１０４のパスを変換する（Ｓ０２）。具体的には、例えば、“href="/”や“href='/”、“src="/”や“src='/”、“url('/”や“url("/”、その他のＵＲＬ表現からなる内部パスを、“file:///”に続くローカルパスに変換する。
【００６７】
ここで、ローカルパス変換とは、パス表現が“/”で始まる絶対パスの場合は、クライアント端末２００上での保存先の基準となる所定のディレクトリやフォルダ（例えば、“c:\design”など。以下では“出力先ディレクトリ”と記載する）の文字列を先頭に付加してローカルパスを得る。一方、パス表現が“../”で始まる相対バスの場合は、“../”の数だけ、デモアプリケーション生成システム１００上での配置場所をルート方向に遡ってたどった場所の絶対パスを取得した後、出力先ディレクトリの文字列を先頭に付加してローカルパスを得る。ローカルパスの文字列は、クライアント端末２００のプラットフォームに応じて適宜書式を変換する。このとき、ＵＲＬが“/”で終わる場合は、“index.html”をファイル名にするとともに、パラメータ部分のファイル名も、後述する処理でクライアント端末２００にコピーした際のファイル名に同期して、プラットフォームに応じた適切なファイル名に変換する。なお、出力先ディレクトリの値は、例えば、辞書テーブル１２１に辞書データとして設定・登録しておくことができる。
【００６８】
その後、ＨＴＭＬデータ１０２自体の配置場所についてもローカルパス変換を行って配置場所のパスを取得し、クライアント端末２００上における当該配置場所に変換後のＨＴＭＬデータ１０２をファイルとして出力する（Ｓ０３）。配置場所にフォルダやディレクトリが存在しない場合は新たに作成して出力する。
【００６９】
さらに、ステップＳ０２においてＨＴＭＬデータ１０２の中で“file:///…”に変換したパスに対応するファイルをリソース１０４から抽出し（Ｓ０４）、抽出した各ファイルについて内部に記載されているＵＲＬ表現からなるパスをローカルパスに変換し（Ｓ０５）、変換したファイルやリソース１０４等をクライアント端末２００上の所定の配置場所に出力もしくはコピーする（Ｓ０６）。
【００７０】
例えば、抽出したファイルがＣＳＳ（Cascading Style Sheets）ファイルである場合は、その中の“url(…)”内の画像ファイルについて上記のローカルパス変換を行うとともに、クライアント端末２００上における当該パスの場所にリソース１０４から画像ファイルをコピーする。また、ＣＳＳファイル自体の配置場所についてもローカルパス変換を行なって配置場所のパスを取得し、クライアント端末２００上における当該配置場所に変換後のＣＳＳファイルを出力する。
【００７１】
なお、ＣＳＳファイルにおいて圧縮ファイルを用いている場合は、ネーミングルール等で圧縮前のファイルであることが特定できるようにした上でサーバ上に圧縮前のファイルを事前配置しておき、これらを用いて処理を行うものとする。同様に、外部ファイルについても、サーバ上の配置場所との変換ルール等を定めておき、外部ファイルであることが特定できるようにした上でサーバ上に事前配置しておくものとする。
【００７２】
また、抽出したファイルがＪＳファイル（JavaScript（登録商標）外部ファイル）である場合は、ＪＳファイル内の画像ファイルを抽出してローカルパス変換を行うとともに、クライアント端末２００上における当該パスの場所にリソース１０４から画像ファイルをコピーする。また、ＪＳファイル内の各ＵＲＬ表現からなる内部パスについてローカルパスへの変換を行う。さらに、ＪＳファイル自体の配置場所についてもローカルパス変換を行なって配置場所のパスを取得し、クライアント端末２００上における当該配置場所に変換後のＪＳファイルを出力する。
【００７３】
また、抽出したファイルが画像ファイルである場合は、変換後のＨＴＭＬデータ１０２において既にローカルパス変換されている画像ファイルのパスについて、クライアント端末２００上の対応する場所にリソース１０４から画像ファイルをコピーする。
【００７４】
上述したような一連の処理により、ユーザがＷｅｂアプリケーションを実行して画面遷移させた際に、各画面をクライアント端末２００上で単独で表示させることが可能なデモアプリケーションを自動的に生成してクライアント端末２００上に出力することが可能となる。
【００７５】
なお、例えば、デモアプリケーションを生成する機能を有効にするか否かの設定情報をデモアプリケーション生成システム１００に保持して、当該機能が無効にされている場合は、Ｗｅｂアプリケーションを実行して画面遷移させてもデモアプリケーションを生成しないようにすることができる。また、当該デモアプリケーション生成システム１００を、Ｗｅｂアプリケーションプログラムの開発環境等と結合させて構築し、開発した画面の確認やシミュレーションなどの動作時に合わせてデモアプリケーションを生成するようにしてもよい。
【００７６】
以上に説明したように、本発明の一実施の形態であるデモアプリケーション生成システム１００によれば、ユーザは、クライアント端末２００を介して一度Ｗｅｂアプリケーションを実行させて画面を遷移させれば、画面遷移に含まれる各画面について、クライアント端末２００上の所定の出力先ディレクトリの配下に、デモアプリケーション生成システム１００（Ｗｅｂサーバ）と同じＵＲＬ構造で必要なＨＴＭＬファイルやリソースファイルを自動的に配置することができ、クライアント端末２００上で単独で動作するデモアプリケーションを自動的に生成することができる。これにより、デモアプリケーションの作成負荷を大幅に低減させることが可能となる。
【００７７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７８】
例えば、上述したようなデモアプリケーションの生成以外にも、例えば、ＨＴＭＬファイルとＪＳファイル、およびＣＳＳファイルからなるローカルファイルをＺＩＰフォーマット等により圧縮して配信するシステムに対して、本実施の形態の仕組みで生成したデータを適用することも可能である。
【産業上の利用可能性】
【００７９】
本発明は、スタンドアロン環境で動作するデモ用アプリケーションを生成するデモアプリケーション生成システムおよびデモアプリケーション生成プログラムに利用可能である。
【符号の説明】
【００８０】
１００…デモアプリケーション生成システム、１０１…ソースコード、１０２…ＨＴＭＬデータ、１０３…パーツオブジェクト、１０４…リソース、１０５…ローカルデータ、１１０…要求処理部、１１１…ＩＤ変換部、１１２…入力チェック部、１２０…辞書処理部、１２１…辞書テーブル、１３０…ビジネスロジック、１３１…業務データベース（ＤＢ）、１４０…応答処理部、１４１…表示調整部、１４２…表示部、１４３…ローカルデータ生成部、
２００…クライアント端末、２０１…画面、
３００…ネットワーク。
【図１】
2014059699.tif 000003
【図２】
2014059699.tif 000004
【図３】
2014059699.tif 000005