(57)【特許請求の範囲】
【請求項１】
クライアント端末からの要求を受けて対応するビジネスロジックを呼び出す要求処理部と、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答する応答処理部とを有し、
複数の種類のデバイスからなる前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させるマルチデバイス対応Ｗｅｂサーバシステムであって、
さらに、前記クライアント端末からの要求に基づいて、前記クライアント端末のデバイスの種類に係る情報を取得するデバイス取得部を有し、
前記応答処理部は、ソースコードに含まれる、前記クライアント端末の画面上に表示する１つ以上の入出力項目についてのラベルコントロールのテキストを示す表示名の情報と前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトについて、前記デバイス取得部により取得した前記クライアント端末のデバイスの種類に応じた、前記パーツオブジェクトの承継元の上位クラスに実装された、前記ラベルコントロールおよび／または前記入出力コントロールを表示する際の第１の調整内容に基づいて、前記クライアント端末の画面上に対応する前記ラベルコントロールおよび／または前記入出力コントロールを表示させるＨＴＭＬデータを生成することを特徴とするマルチデバイス対応Ｗｅｂサーバシステム。
【請求項２】
請求項１に記載のマルチデバイス対応Ｗｅｂサーバシステムにおいて、
さらに、前記応答処理部は、前記デバイス取得部により取得した前記クライアント端末のデバイスの種類に応じた、画面を描画するオブジェクトに実装された前記クライアント端末に画面を表示する際の第２の調整内容に基づいて、前記クライアント端末に画面を表示させるＨＴＭＬデータを生成することを特徴とするマルチデバイス対応Ｗｅｂサーバシステム。
【請求項３】
請求項１または２に記載のマルチデバイス対応Ｗｅｂサーバシステムにおいて、
前記パーツオブジェクトは、前記ラベルコントロールと、指定された種類の前記入出力コントロールとを組み合わせて表示し、もしくは前記ラベルコントロールおよび／または前記入出力コントロールを表示しないよう表示制御することを特徴とするマルチデバイス対応Ｗｅｂサーバシステム。
【請求項４】
請求項１〜３のいずれか１項に記載のマルチデバイス対応Ｗｅｂサーバシステムにおいて、
前記パーツオブジェクトは、表示する前記入出力コントロールに応じた制御処理を実装していることを特徴とするマルチデバイス対応Ｗｅｂサーバシステム。
【請求項５】
複数の種類のデバイスからなるクライアント端末からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答するアプリケーションプログラムを稼働させるＷｅｂサーバシステムにおけるマルチデバイス対応方法であって、
前記Ｗｅｂサーバシステムが、前記クライアント端末からの要求に基づいて、前記クライアント端末のデバイスの種類に係る情報を取得する第１の手順と、
前記Ｗｅｂサーバシステムが、ソースコードに含まれる、前記クライアント端末の画面上に表示する１つ以上の入出力項目についてのラベルコントロールのテキストを示す表示名の情報と前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトについて、前記第１の手順により取得した前記クライアント端末のデバイスの種類に応じた、前記パーツオブジェクトの承継元の上位クラスに実装された、前記ラベルコントロールおよび／または前記入出力コントロールを表示する際の調整内容に基づいて、前記クライアント端末の画面上に対応する前記ラベルコントロールおよび／または前記入出力コントロールを表示させるＨＴＭＬデータを生成する第２の手順とを有することを特徴とするＷｅｂサーバシステムにおけるマルチデバイス対応方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバシステムにおけるマルチデバイス対応の技術に関し、特に、データ辞書を用いて１つのソースコードで複数のデバイスに対応するマルチデバイス対応ＷｅｂサーバシステムおよびＷｅｂサーバシステムにおけるマルチデバイス対応方法に適用して有効な技術に関するものである。
【背景技術】
【０００２】
ＩＴ技術の進歩により携帯型端末の性能が大きく向上したことから、インターネット等を介したＷｅｂサイトへのアクセスは、従来のＰＣ（Personal Computer）等に限らず、携帯電話やスマートフォン、タブレット型端末など種々のデバイスから行われるようになっている。これらのデバイスは、Ｗｅｂサイトの画面を表示するためのディスプレイのサイズや解像度がそれぞれ異なる。そこで、ＷｅｂサイトやＷｅｂアプリケーションの構築においては、開発・保守の負荷増大を防止しつつ、これら複数のデバイスに対して画面表示を最適化するマルチデバイス対応が考慮される。
【０００３】
このようなマルチデバイス対応の手法としては、例えば、従来から行われているものとして、同一内容について各デバイスのディスプレイのサイズや解像度毎にそれぞれ調整・最適化された個別のコンテンツを予め用意しておき、ユーザが使用するデバイス等に応じてこれらを自動もしくは手動で選択して使用するという手法がある。また、同一のソースコードについてこれを変更することなく、アプリケーションプログラムにおいてコンテンツを動的に変更・生成することで複数のデバイスに対応することも検討されている。
【０００４】
コンテンツを動的に変更することに関連して、例えば、特開２００１−５１８２１号公報（特許文献１）に記載された技術では、ページテンプレートに、表示エリア特定情報と、表示属性とをパラメータとして有しているサーブレットを定義し、サーブレットがウエブサーバで認識されると、表示エリア特定情報に関連付けられている複数のパーツＢｅａｎを特定する。パーツは、その表示エリアに埋め込むオブジェクトのイメージデータ、リンク先のＵＲＬ（Uniform Resource Locator）情報がプロパティとして設定され、また、スケジュール情報等の表示条件情報が関連付けられている。表示エリア特定情報に関連付けられている複数のパーツＢｅａｎのそれぞれで、表示条件が調べられ、表示条件を満たすプロパティであるリンク情報をもとに、表示エリアに埋めこむオブジェクトを形成するイメージデータや、リンク先のＵＲＬ情報を取得し、ＨＴＭＬを生成する。これにより、サーバプログラムの修正をすることなく、ページテンプレートに埋めこむコンテンツの内容をダイナミックに変更することを可能とする。
【０００５】
また、例えば、特開２００９−７６０９９号公報（特許文献２）に記載された技術では、サービス提供装置は、表示装置と、通信部と、通信部を介してサービス提供のための実行コードを取得する取得部と、入手した実行コードを記憶する実行コード記憶部と、実行コードの実行時に表示される画面の構成を定める画面構成情報を記憶する画面構成情報記憶部とを有する。また、サービスの提供時までに、サービスの提供に必要な実行コード及び画面構成情報が実行コード記憶部及び画面構成情報記憶部に記憶されているよう、各部を管理し、サービスの提供の指示を受けたことに応答して、実行コード記憶部に記憶された実行コードを、画面構成情報記憶部に記憶された画面構成情報を用いて実行する管理部とを有する。これにより、サービス提供のために必要なときに、最新の実行コードまたは画面構成情報を入手し、装置内に記憶された実行コード及び画面構成情報を効果的に管理しながら、最新のサービスを提供することを可能とする。
【０００６】
また、例えば、特開２００２−１３２６４６号公報（特許文献３）に記載された技術では、ウェブプロキシサーバは、クライアント機器によって生成されるクライアント要求を処理することによりクライアントタイプを決定し、クライアント要求において識別されるウェブコンテンツを検索する。また、ウェブコンテンツと特定のクライアントタイプとに関連する１つまたは複数のオーグメンテーションファイルを検索して、これによりウェブコンテンツを変更し、変更したウェブコンテンツをクライアント機器に配信する。これにより、ウェブプロキシサーバの所有または制御をする必要なく、効率的に異なるクライアントをサポートするために、ウェブコンテンツを変換・補完することを可能とする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−５１８２１号公報
【特許文献２】特開２００９−７６０９９号公報
【特許文献３】特開２００２−１３２６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、ＷｅｂサイトやＷｅｂアプリケーションをマルチデバイス対応するためには、クライアント端末のデバイスの種類、特にディスプレイのサイズや解像度に応じて画面表示の内容を最適化することが必要となる。特に、スマートフォンやタブレット型端末では、入出力デバイスとしてタッチパネルが用いられ、ユーザはマウスではなく画面上に直接指で触れることで操作を行う。従って、ここでの画面内容の動的な変更は、主に、画面上の部品（コントロール）の配置や大きさなどの外観について、視認および指での操作をし易いように最適化することが中心となる。
【０００９】
この点、例えば、上記の特許文献１に記載された技術では、サーバにおいて表示条件に応じてコンテンツの内容を動的に変更することは可能であるが、クライアント端末の状況を考慮してコンテンツを最適化するような変更については考慮されていない。一方、上記の特許文献２に記載された技術では、クライアント端末側に実行コードや画面構成情報等を保持することで、クライアント端末の状況を考慮してコンテンツの内容を動的に変更することが可能である。しかしながら、このような構成では、携帯端末など、処理能力や記憶容量に制限があるデバイスをクライアント端末とする場合には問題を有する。
【００１０】
また、上記の特許文献３に記載された技術では、クライアント端末の環境に応じてオーグメンテーションファイルを取得し、これに応じてコンテンツを動的に変更することができる。しかしながら、どのように実装するのが効率的かという点について具体的な実装手法等は開示されていない。また、プロキシサーバを有さない構成ではどのように実装するのが効率的かという点についても開示されていない。
【００１１】
そこで本発明の目的は、Ｗｅｂアプリケーションにおいて、画面上に入出力項目を表示するためのコントロールの外観や属性、制御処理などを含むユーザインタフェースを、クライアント端末のデバイスに応じて、ソースコードを変更することなく動的に変更することを可能とするマルチデバイス対応ＷｅｂサーバシステムおよびＷｅｂサーバシステムにおけるマルチデバイス対応方法を提供することにある。
【００１２】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１４】
本発明の代表的な実施の形態によるマルチデバイス対応Ｗｅｂサーバシステムは、クライアント端末からの要求を受けて対応するビジネスロジックを呼び出す要求処理部と、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答する応答処理部とを有し、複数の種類のデバイスからなる前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させるマルチデバイス対応Ｗｅｂサーバシステムであって、以下の特徴を有するものである。
【００１５】
すなわち、マルチデバイス対応Ｗｅｂサーバシステムは、さらに、前記クライアント端末からの要求に基づいて、前記クライアント端末のデバイスの種類に係る情報を取得するデバイス取得部を有し、前記応答処理部は、ソースコードに含まれる、前記クライアント端末の画面上に表示する１つ以上の入出力項目についてのラベルコントロールのテキストを示す表示名の情報と前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトについて、前記デバイス取得部により取得した前記クライアント端末のデバイスの種類に応じた、前記パーツオブジェクトの承継元の上位クラスに実装された、前記ラベルコントロールおよび／または前記入出力コントロールを表示する際の第１の調整内容に基づいて、前記クライアント端末の画面上に対応する前記ラベルコントロールおよび／または前記入出力コントロールを表示させるＨＴＭＬデータを生成することを特徴とするものである。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１７】
すなわち、本発明の代表的な実施の形態によれば、Ｗｅｂアプリケーションにおいて、画面上に入出力項目を表示するためのコントロールの外観や属性、制御処理などを含むユーザインタフェースを、クライアント端末のデバイスに応じて、ソースコードを変更することなく動的に変更することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態であるマルチデバイス対応Ｗｅｂサーバシステムの構成例について概要を示した図である。
【図２】本発明の一実施の形態におけるパーツオブジェクトにより対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。
【図３】本発明の一実施の形態におけるパーツオブジェクトにより表示されるコントロールの外観等をクライアント端末のデバイスに応じて変更する際の処理の例について概要を示した図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
本発明の一実施の形態であるマルチデバイス対応Ｗｅｂサーバシステムは、ソースコードを変更することなく複数種類のデバイスからなるクライアント端末に対してユーザインタフェースを提供することを可能とする。ここでは、画面自体および／または画面上に表示するコントロールを表示する機能において、後述するように、表示するデバイス毎に入出力項目の表示方法を調整し、最適化して表示することができる機能を有している。これにより、例えば、アプリケーションの開発を複数のデバイスを対象として同時並行的に行うことができ、また、対応するデバイスの追加が容易となり拡張性を向上させることが可能となる。
【００２１】
本実施の形態では、例えば、業務データベースにアクセスするＣＲＵＤ（Create,Read,Update,Delete）型のＷｅｂアプリケーションプログラムにおいて、画面上の入出力項目（例えば、業務データベースからデータを取得するための検索条件の内容を指定する入力項目や、検索結果の内容を表示する出力項目）に係る内容を表示するために、標準的なコントロールオブジェクト（以下では単に“コントロール”と記載する場合がある）を直接用いるのではなく、後述するような、表示名称とコントロールの設定内容や制御処理および説明テキストの各データが一体となったパーツオブジェクトを用いるものとする。
【００２２】
このパーツオブジェクトは、画面上にどのようなコントロールを表示するか（例えば、テキストコントロールのみ、（テキストコントロールと）入力フィールド、（テキストコントロールと）ドロップダウンリスト、…等）をパラメータとして指定することが可能である。また、コントロールの属性値（例えば、テキストコントロールに表示されるテキストの内容や、入力フィールドの長さ等）や、制御情報（例えば、入力データの妥当性チェックをどのように行うか等）などについても指定することができるものとし、指定された内容に従ってコントロールを表示および制御するよう実装されている。
【００２３】
換言すると、パーツオブジェクトは、入力フィールドやドロップダウンリスト、テキストなどの、入出力項目のデータを取り扱う入出力コントロールと、入出力項目の名称等を表示するテキストコントロールであるラベルコントロールとを組み合わせて表示するよう構成されており、これらのコントロールの出力のパターンを指定可能であるという構成を有する。
【００２４】
このとき、ラベルコントロールと入出力コントロールとを一括して整合性を持った形でコントロールの幅等の属性値を調整することができるため、ユーザが個別に整合性を持つように属性値等を指定するという煩雑な処理の必要がなく、表示されるコントロールの外観の調整を行うことができる。この調整には、例えば、表示可能領域に対して、ラベルコントロールが意図しない箇所で改行されたり、逆に意図した箇所で改行されなかったり等を防止するよう、ラベルコントロールと入出力コントロールの表示幅を一体的に調整することや、ラジオボタンなどデバイスやＯＳ（Operating System）等によって外観が異なる入出力コントロールについて、ラベルコントロールと一体的に表示位置や幅等を調整することなどが含まれる。
【００２５】
本実施の形態では、Ｗｅｂアプリケーションプログラムは、画面上の各入出力項目に係る内容について当該パーツオブジェクトを使用して表示するものとしてソースコードが作成されているものとする。すなわち、パーツオブジェクトを使用して間接的にコントロールを表示する（パーツオブジェクトがＷｅｂサーバシステム上での実行時に対象のコントロールを表示するＨＴＭＬ（HyperText Markup Language）やスクリプト等を動的に生成する）。また、アクセスする対象のデータベースの各カラムと画面上の入出力項目とのマッピングに係る情報は、データベースの各カラムの識別情報（例えばカラム名称）と、対応するパーツオブジェクトの識別情報（例えばＨＴＭＬのＩＤ属性値）とのマッピング情報としてソースコード上に保持する。
【００２６】
さらに、本実施の形態では、各パーツオブジェクトにおいてラベルコントロールに表示するテキスト、および入出力コントロールの属性値や制御処理に係る情報などについて、後述するように、一部を除き、ソースコード上で直接指定するのではなく、パーツオブジェクトのＩＤもしくは対応するデータベースのカラム名称等の識別情報と関連付けられた辞書データとして外出しにして保持するよう構成する。また、パーツオブジェクトの機能を実装したクラスの継承元の上位クラスにおいて、コントロールの表示方法を上述したようにデバイス毎に最適化する処理を実装するとともに、画面全体を描画する機能を有するオブジェクトにおいて、個別のコントロールではなく画面全体の表示方法をデバイス毎に最適化する処理を実装する。
【００２７】
これらにより、いったん生成されたソースコードに対して変更を加えずに、画面の表示方式や、パーツオブジェクトにより画面上に表示されるコントロールの外観や属性等をクライアント端末のデバイスに応じて動的に変更可能とする。
【００２８】
＜システム構成＞
図１は、本発明の一実施の形態であるマルチデバイス対応Ｗｅｂサーバシステムの構成例について概要を示した図である。マルチデバイス対応Ｗｅｂサーバシステム１００は、例えば、サーバ機器やクラウドコンピューティング環境での仮想サーバなどのコンピュータ機器により構成され、図示しないＯＳやＤＢＭＳ（DataBase Management System）、Ｗｅｂサーバプログラムなどのミドルウェアに加え、ユーザが作成したソースコード１０１もしくはそこから呼び出されるライブラリやオブジェクト等のソフトウェアプログラムにより実装される要求処理部１１０、辞書処理部１２０、ビジネスロジック１３０、および応答処理部１４０などの各部を有する。また、データベースやファイルテーブル等により実装される辞書テーブル１２１を有する。
【００２９】
また、マルチデバイス対応Ｗｅｂサーバシステム１００は、インターネット等のネットワーク３００を介して接続されるクライアント端末２００上の図示しないＷｅｂブラウザ等のプログラムからの要求に対して、ビジネスロジック１３０により業務データベース（ＤＢ）１３１にアクセスして処理を行い、クライアント端末２００に対してＨＴＭＬデータ１０２を出力して応答することによってサービスを提供する。なお、本実施の形態では、クライアント端末２００として例えば、ＰＣや、携帯電話、スマートフォン、タブレット型端末など、ディスプレイのサイズや解像度、タッチパネルの有無などが異なる複数種類のデバイスが利用可能である。
【００３０】
要求処理部１１０は、クライアント端末２００からの要求を受けて、対応するソースコード１０１に基づいてコンテンツ（ビジネスロジック１３０）を呼び出す機能を有し、ソフトウェアプログラムにより実装されるＩＤ変換部１１１、およびデバイス取得部１１２などの各部を有する。ＩＤ変換部１１１は、要求メッセージに含まれる、画面上の入力項目に対応するパーツオブジェクトの識別情報（ＩＤ）を、ソースコード１０１に保持されたマッピング情報に基づいて、入出力項目に対応する業務ＤＢ１３１のカラムの識別情報（カラム名称等）に変換する機能を有する。
【００３１】
このマッピング情報は、画面上に表示されるパーツオブジェクトの識別情報（例えばＨＴＭＬのＩＤ属性値）と、アクセスする対象の業務ＤＢ１３１の各カラムの識別情報（カラム名等）との対応を保持する。これにより、後述するように、ソースコード１０１において画面上に配置された各パーツオブジェクトは、まずＩＤ変換部１１１によって自身のＩＤに対応するカラム名称を取得した後、当該カラム名称をキーとして、業務ＤＢ１３１へのアクセスや、後述する辞書テーブル１２１からの辞書データの取得等の後続の処理を行うことができる。
【００３２】
従って、クライアント端末２００に応答するＨＴＭＬデータ１０２上では、各パーツオブジェクト（によって表示されるコントロール）において、対応する業務ＤＢ１３１のカラム名称をキー等の情報として直接指定する必要がなく、自身のＩＤをキー等の情報とすることができるため、実際のカラム名称をＨＴＭＬデータ１０２上から隠蔽してセキュリティの強化を図ることが可能である。なお、このような変換を行わず、ＨＴＭＬデータ１０２上で各パーツオブジェクト（によって表示されるコントロール）において対応する業務ＤＢ１３１のカラム名称をキー等の情報として直接指定するようにしてもよい。
【００３３】
デバイス取得部１１２は、要求メッセージに基づいて、クライアント端末２００のデバイスの種類に係る情報を取得する。この情報には、例えば、機器の種別を特定する情報や、ＯＳ、Ｗｅｂブラウザやそのバージョン等を識別する情報などが含まれ得る。この情報は、例えば、要求メッセージのＵｓｅｒ−Ａｇｅｎｔヘッダから取得するなど、公知の技術により取得することができる。なお、ここで得られたデバイスの情報からディスプレイの大きさや解像度の情報が判別できないような場合も生じ得るため、例えば、デバイスの種類と解像度等との対応関係をデバイステーブル１０４として保持し、新たなデバイスの追加等に対して柔軟に定義の追加や変更を可能とするようにしてもよい。
【００３４】
なお、要求処理部１１０は、この他に例えば、画面上のパーツオブジェクトを介して指定された入力項目のデータの内容について一般的な妥当性チェックを行う機能を有していてもよい。妥当性チェックの種類としては、例えば、文字数や文字タイプ（数字やアルファベット、かな、全半角など）、使用可能文字の制限、日時や各種コード値などのフォーマットチェックなど種々のものが考えられ、その内容も異なり得る。
【００３５】
従って、本実施の形態では、パーツオブジェクト等において複数パターンの妥当性チェックのタイプを予め実装しておき、対象の入力項目についていずれのタイプを用いるかを動的に選択・決定するものとする。ここでは、後述する辞書処理部１２０を介して辞書テーブル１２１にアクセスし、対象の入力項目に対応する辞書データの内容から妥当性チェックのタイプとして指定されている情報を取得して決定する。
【００３６】
辞書処理部１２０は、辞書テーブル１２１から、指定されたキー（本実施の形態では、例えば、対象の入出力項目（パーツオブジェクト）に対応する業務ＤＢ１３１のカラム名称）に対する辞書データを取得して出力する機能を有する。辞書テーブル１２１における辞書データの内容やフォーマットは特に限定されない。本実施の形態では、簡易な手法として、例えば後述するように、画面を介して業務ＤＢ１３１の対象のカラムへのデータの入出力処理を行うのに必要な種々のデータ（入出力を行うためのパーツオブジェクトの属性値や制御のために必要なパラメータ等）を所定の順序でカンマ区切り等で指定するものとする。
【００３７】
具体的には、例えば、対応するパーツオブジェクトにおいてラベルコントロールを表示する際の内容である表示名称や、入出力コントロールとして入力フィールドを表示する際の長さ（文字数）、妥当性チェックの種別やＩＭＥのモードなどの制御処理の内容に係る指定、出力データをテーブルに一覧表示する際の短縮されたテキストである短縮表示名称および表示幅、ドロップダウンリスト等により表示する際の値リストなどが考えられる。
【００３８】
ビジネスロジック１３０は、業務ＤＢ１３１を利用して業務アプリケーションとしての処理を行う機能を有する。本実施の形態では、上述したように、業務ＤＢ１３１に対するＣＲＵＤ型アプリケーションを対象とするが、特にこれに限定されるものではない。
【００３９】
応答処理部１４０は、ソースコード１０１の内容に基づくビジネスロジック１３０等の処理結果に基づいてＨＴＭＬデータ１０２を生成し、クライアント端末２００に対して応答する機能を有し、ソフトウェアプログラムにより実装される表示変更部１４１、および表示部１４２などの各部を有する。
【００４０】
表示変更部１４１は、応答に含まれる各出力項目について、対応するパーツオブジェクトをクライアント端末２００の画面上に表示する際のラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値を取得する。ここでは、辞書処理部１２０を介して辞書テーブル１２１にアクセスして、対象の出力項目（パーツオブジェクト）に対応する辞書データから表示名称や属性値等の各種パラメータ値を取得する。また、デバイス取得部１１２によって取得したデバイスの種類もしくはディスプレイの解像度等の情報に基づいて、画面表示の方式や、パーツオブジェクトが表示するコントロールの表示方法についての調整内容を取得する。
【００４１】
表示部１４２は、表示変更部１４１が取得した、各パーツオブジェクトについてのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値に基づいて、各パーツオブジェクトにより表示されるコントロールが配置された応答画面のＨＴＭＬデータ１０２を生成する機能を有する。このとき、表示変更部１４１によって取得した調整内容に基づいて、画面表示の方式やコントロールの表示方法を、対象のデバイスに対して最適となるよう調整する。
【００４２】
＜画面表示処理＞
図２は、ＣＲＵＤ型アプリケーションにおいてパーツオブジェクトにより対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。図２の例では、業務ＤＢ１３１からデータを読み出す際の検索条件を入力する画面において、“顧客名”を指定する入力フィールドを表示する場合の例を抜粋して示している。
【００４３】
図の上段に示しているＷｅｂアプリケーションプログラムのソースコード１０１では、“顧客名”を指定する入力フィールドを表示するためにパーツオブジェクト１０３を呼び出している。具体的には、まず、ソースコード１０１上に保持されているマッピング情報（図２の例では、array()により対応関係を保持している）からＩＤ（“Ａ０１”）に対応するカラム名称（“customer_name”）の情報を取得する。
【００４４】
その後、例えば、パーツオブジェクト１０３の機能を実装したクラスから継承したサブクラスについてインスタンスを作成する形で呼び出す（“CF_itemDic();”）。図２の例では、パラメータの一部として、呼び出す辞書テーブル１２１のタイプ（“共通辞書”）、表示する入出力コントロールのタイプ（“入力フィールド”）、ＨＴＭＬのＩＤ属性値（“Ａ０１”）などを指定して呼び出した状態を簡略化して示している。なお、ＨＴＭＬのＩＤ属性値（“Ａ０１”）は、マッピング情報によりカラム名称（“customer_name”）に動的に変換される。
【００４５】
このようなコードにより呼び出されたパーツオブジェクト１０３は、データとして、少なくとも表示名（ラベルコントロールのテキスト）と表示する入出力コントロールの内容に係る情報を含むデータを保持する。図２に示すように、さらに説明テキストなどの他の情報を保持していてもよい。図２の例では、パーツオブジェクト１０３の上記の３つの情報のうち、コントロールについては、ソースコード１０１において“入力フィールド”がパラメータとして指定されているため、これが設定される。
【００４６】
呼び出されたパーツオブジェクト１０３は、さらに、所定の関数やメソッド等により辞書処理部１２０を介して辞書テーブル１２１（“共通辞書”）にアクセスして、カラム名称（“customer_name”）に対応する辞書データ（本実施の形態では“顧客名”、４０文字、２０文字、…などの複数の値の集合）を取得する。
【００４７】
図２の例では、辞書テーブル１２１の辞書データの例として、上から順に、名称（ラベルコントロールに表示するテキスト）、入力フィールドの場合の長さ（半角時の文字数）、入力フィールドの場合の最大長さ（文字数）、入力データの妥当性チェックのタイプ、ＩＭＥの初期モード、説明コメント、テーブルに一覧表示する場合のテキスト（表示名）、およびテーブルに一覧表示する場合の表示幅（ピクセル値）などの情報を保持するものとしている。なお、これらの辞書データを取得する際の出力フォーマットとしては、例えば、これらの値をカンマ等で区切った一連の文字列としてもよいし、連想配列等のアクセスしやすいデータとしてもよい。
【００４８】
辞書テーブル１２１については、処理効率を考慮した場合、初期処理もしくは最初のアクセス時にメモリ上に辞書データの内容を展開するのが望ましい。この場合、全ての辞書データを展開するとメモリ使用量を圧迫したり、展開処理に時間を要したり等、却って処理効率が低下する場合がある。従って、実装上は、必要な時に必要な範囲の辞書データをメモリ上に展開できるようにするのが望ましい。
【００４９】
そこで、本実施の形態では、適用範囲が異なる複数の辞書テーブル１２１からなる階層構造を有し、これらを適宜選択して使用する構成をとる。例えば、マルチデバイス対応Ｗｅｂサーバシステム１００上で稼働するシステムやアプリケーション全体で共通の辞書（“共通辞書”）や、指定されたＷｅｂサイト内でのみ共通の辞書（“サイト辞書”）、サブシステム内でのみ共通の辞書（“ライブラリ辞書”）、画面単位での辞書（“コントローラ辞書”）などの、適用範囲が異なる複数種類の辞書テーブル１２１を有するものとする。
【００５０】
この場合、例えば、“コントローラ辞書”などの適用範囲の狭い辞書を参照して該当する辞書データが得られなかった場合に、“ライブラリ辞書”→“サイト辞書”→“共通辞書”と順に上位の（適用範囲が広い）辞書テーブル１２１に遡って参照できるようにしてもよい。また、辞書データが得られなかったとしてデフォルト値を用いるようにしたりエラーとしたりしてもよい。
【００５１】
パーツオブジェクト１０３は、取得した辞書データから必要なデータを抽出して、コントロールを表示したり制御したりする際のパラメータとして設定する。例えば、入出力コントロールとして入力フィールドを表示する場合の属性値として、辞書データから取得したフィールドの長さを設定するとともに、妥当性チェックのタイプやＩＭＥの初期モードなどの値、説明テキストの内容などを設定する。なお、入力データの妥当性チェックや、ＩＭＥのモード設定などの入出力コントロールの制御に係る処理は、要求処理部１１０や表示部１４２等の機能であるが、具体的な実装としては、例えば、パーツオブジェクト１０３の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト１０３が有する、もしくはパーツオブジェクト１０３が呼び出すことができる機能として実装しておくものとする。
【００５２】
これにより、図２の下段の画面例に示すように、実行時に“顧客名”を指定するための入力フィールドのコントロールを表示するよう、パーツオブジェクト１０３がＨＴＭＬデータ１０２を生成することができる。このとき、例えば、パーツオブジェクト１０３の説明テキストの情報を当該入出力項目についてのヘルプ情報等として用いることができる。
【００５３】
なお、入力フィールドを表示する場合、入力フィールドのコントロールだけを表示したのでは何を入力すべきかが不明であるため、本実施の形態では、図２に示すように、当該パーツオブジェクト１０３に対応する入出力項目の表示名を表示するテキストコントロール（“顧客名”）を入力フィールドに隣接させてラベルとして表示する（ラベルコントロール）。当該テキストは、パーツオブジェクト１０３の保持データにおける表示名の情報、すなわちパーツオブジェクト１０３が辞書テーブル１２１から取得した辞書データの名称の値（“顧客名”）を設定する。
【００５４】
このようなＨＴＭＬデータ１０２の生成に係る処理は、表示部１４２等の機能であるが、具体的な実装としては、例えば、パーツオブジェクト１０３の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト１０３が有する、もしくはパーツオブジェクト１０３が呼び出すことができる機能として実装しておくものとする。なお、ここでは、上述したように、表示するラベルコントロールや入出力コントロール、および説明テキストの３つの要素について、一括して整合性を持った形で外観等に係る属性値を調整するものとする。
【００５５】
また、図２の例では、入出力コントロールとして入力フィールドを表示する場合を示しているが、他のコントロールを表示することも可能である。ソースコード１０１において表示する入出力コントロールのタイプを“入力フィールド”ではなく、例えば、“ドロップダウンリスト”などを指定することで、ドロップダウンリストを表示するようなＨＴＭＬデータ１０２を生成するようパーツオブジェクト１０３を実装することができる。
【００５６】
このように、本実施の形態では、入出力項目をパーツオブジェクト１０３により表示するＨＴＭＬデータ１０２を生成することができる。従って、本実施の形態におけるＣＲＵＤ型アプリケーションは、業務ＤＢ１３１の各カラムに対応する入出力項目としてパーツオブジェクト１０３を所定のルールに従って画面上に配置し、標準的な機能や動作の実装と組み合わせるようソースコード１０１を作成することで実現することができる。また、アプリケーションプログラムの開発支援システム等として、このようなソースコード１０１を自動的に生成する機能を実装することも可能である。
【００５７】
例えば、業務ＤＢ１３１へのエントリーの登録（Ｃ：Create）を行うアプリケーションとしては、業務ＤＢ１３１の各カラムに対して登録するデータを指定する入力フィールドを画面上に表示するためのパーツオブジェクト１０３を、業務ＤＢ１３１のカラムの並び順に従って配置するようソースコード１０１を作成する。このとき、必要に応じて画面表示するコントロールのＩＤとカラムの名称との対応関係をマッピング情報として保持しておく。さらに、標準的な機能として業務ＤＢ１３１へのエントリーの登録を実行するための“登録”ボタンや“キャンセル”ボタンなどを配置する。さらに、辞書テーブル１２１に各パーツオブジェクト１０３についてコントロールを表示する際に用いる属性値や制御情報などの情報を辞書データとして保持しておく。このとき、各項目について特に指定がされない場合はそれぞれデフォルト値により設定する。
【００５８】
また、例えば、業務ＤＢ１３１に対する検索（Ｒ：Read）を行うアプリケーションとしては、上記と同様に、業務ＤＢ１３１を検索するための条件を指定する入力フィールドを画面上に表示するためのパーツオブジェクト１０３を配置するようソースコード１０１を作成する。このとき、業務ＤＢ１３１の対象テーブルの全カラムについて検索条件として指定可能とすると過剰になることから、例えば、暫定的に先頭の５つのカラムについてだけ入力フィールドを表示するなどの簡略化を行ない、後から変更可能としてもよい。また、必要に応じて画面表示するコントロールのＩＤとカラムの名称との対応関係をマッピング情報として保持しておく。さらに、標準的な機能として業務ＤＢ１３１のエントリーの検索を行うための“検索”ボタンなどを配置する。
【００５９】
また、例えば、検索条件を入力する領域の下部に、検索結果を表示するためのテーブル（表）コントロールを自動的に配置する。ここでは、例えば、テーブルコントロールのオブジェクトの項目定義配列に、業務ＤＢ１３１の各カラムに対応するパーツオブジェクト１０３の呼び出しに相当する内容を設定する。これにより、テーブルコントロールの各列に業務ＤＢ１３１の各カラムの内容が表示されるよう、表示部１４２もしくはパーツオブジェクト１０３を実装することが可能である。
【００６０】
図３は、パーツオブジェクト１０３により表示されるコントロールの外観等をクライアント端末２００のデバイスに応じて変更する際の処理の例について概要を示した図である。ここでは、図２の例に示したソースコード１０１の内容は変更せずに、パーツオブジェクト１０３の継承元の上位クラスにおいて、予め、デバイスの種別毎にコントロールの表示方法を調整する際の定義とその処理を実装しておくものとする（図３の例では、説明の便宜上、パーツオブジェクト１０３において“デバイスＡ”と“デバイスＢ”と“解像度Ｃ”用の調整内容を定義した形として示している）。調整内容としては、例えば、入力フィールドやボタン等のコントロールを表示する場合の幅や高さの調整等とすることができる。
【００６１】
また、画面全体を描画する画面描画オブジェクト１０５においても、予め、デバイスの種別毎に画面表示の方式を調整する際の定義とその処理を実装しておくものとする（図３の例では、“デバイスＡ”と“解像度Ｃ”用の調整内容を定義した形で示している）。調整内容としては、例えば、画面全体の背景色等の配色の調整や、サイドメニューの表示方法、各コントロールの配置ポリシー等とすることができる。
【００６２】
図３の例に示すように、デバイス取得部１１２によって取得したクライアント端末２００のデバイスの種別が“デバイスＣ”である場合、デバイス取得部１１２がデバイステーブル１０４を参照して対応する解像度等の情報の有無を確認する。図３の例では、“デバイスＣ”に対して解像度の情報として“解像度Ｃ”が得られることを示している。
【００６３】
パーツオブジェクト１０３は、表示変更部１４１の機能により、“解像度Ｃ”についてのコントロールを表示する際の調整内容の情報（図３の例では、“入力フィールドを表示する場合は高さを１５ピクセルプラスする”）を取得し、表示部１４２の機能により、調整内容に基づいて表示する入出力コントロールの外観等を“デバイスＣ”に最適となるよう調整する。例えば、“顧客名”の入力フィールドについて、図２の画面例と比べて高さを高くしている。
【００６４】
また、画面描画オブジェクト１０５（すなわち、表示部１４２の一部）は、表示変更部１４１の機能により、“解像度Ｃ”についての画面全体を表示する際の調整内容の情報（図３の例では、“サイドメニューを隠す”）を取得し、表示部１４２の機能により、画面表示の方式をこれに基づいて調整する。例えば、図２の画面例で展開して表示されていたサイドメニューを畳み込んで“メニュー”というリンクとして表示している。
【００６５】
ＰＣなどと比べて、タブレット型端末やスマートフォンでは、解像度は高くてもディスプレイのサイズが小さく、さらにタッチパネルを用いて入出力が行われる場合が多い。このとき、例えば、入力フィールドの高さが低かったり、ボタンが小さかったりすると、指で触れて操作することが困難になる場合があるため、このようなタッチパネルを有するデバイスでは、入力フィールド等の大きさを大きく（特に高さを高く）したり、縦に並んで配置されるコントロール間の間隔を空けるなどにより指で触れる場合に誤操作を回避するよう表示の最適化を行う。
【００６６】
また、ディスプレイのサイズが小さいことから、効率的にコントロールを配置するため、サイドメニュー等のメニューを畳み込んだり、横に並べて配置していた各コントロールを縦に並べるようにしたりなど、配置のルールを変更するよう画面全体の表示の方式を変更するよう実装することも可能である。
【００６７】
上記のように、パーツオブジェクト１０３の承継元の上位クラスや、画面描画オブジェクト１０５においてデバイス毎に表示を最適化する処理を実装しておくことで、アプリケーションプログラムの開発の際には、クライアント端末２００のデバイスの種類を特に意識することなく、ソースコード１０１を作成することができる。また、対応するデバイスの種類を追加したり、表示方式を変更する場合にも、パーツオブジェクト１０３の承継元の上位クラスや画面描画オブジェクト１０５の処理内容を追加・修正するだけで対応することができ、ソースコード１０１の修正を不要とすることができる。
【００６８】
以上に説明したように、本発明の一実施の形態であるマルチデバイス対応Ｗｅｂサーバシステム１００によれば、Ｗｅｂアプリケーションプログラムのユーザインタフェースにおいて入出力項目に対応するコントロールを表示するためのパーツオブジェクト１０３および／または画面全体の表示を行う画面描画オブジェクト１０５が、クライアント端末２００のデバイスの種類、特にディスプレイの大きさや解像度に基づいて、画面自体および／または画面上に入出力項目を表示するためのコントロールの外観や属性等を含むユーザインタフェースを動的に変更する。これにより、アプリケーションのソースコード１０１を変更することなく、クライアント端末２００のデバイスに応じてユーザインタフェースを動的に最適化することが可能となる。
【００６９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、本実施の形態では、標準的なＣＲＵＤ型のＷｅｂアプリケーションを対象にしているがこれに限らない。ユーザが、辞書テーブル１２１とパーツオブジェクト１０３を組み合わせた形で、ユーザインタフェースやビジネスロジックなどの動作内容も含めて構築した独自のアプリケーション（Ｗｅｂアプリケーションに限らず、クライアント／サーバ型やスタンドアロン型などであってもよい）に対して、同様の概念によりパーツオブジェクト１０３や画面描画オブジェクト１０５を実装してマルチデバイス対応することが可能である。
【００７０】
また、本実施の形態では、マルチデバイス対応として、クライアント端末２００のデバイス毎のディスプレイのサイズや解像度、タッチパネルの有無に対応して表示画面を最適化するように、パーツオブジェクト１０３や画面描画オブジェクト１０５を実装しているが、同様の仕組みを用いて、ＯＳやＷｅｂブラウザ、そのバージョン等が異なるマルチプラットフォームに対応するように、パーツオブジェクト１０３や画面描画オブジェクト１０５の実装を行うことも当然可能である。
【産業上の利用可能性】
【００７１】
本発明は、データ辞書を用いて１つのソースコードで複数のデバイスに対応するマルチデバイス対応ＷｅｂサーバシステムおよびＷｅｂサーバシステムにおけるマルチデバイス対応方法に利用可能である。
【符号の説明】
【００７２】
１００…マルチデバイス対応Ｗｅｂサーバシステム、１０１…ソースコード、１０２…ＨＴＭＬデータ、１０３…パーツオブジェクト、１０４…デバイステーブル、１０５…画面描画オブジェクト、１１０…要求処理部、１１１…ＩＤ変換部、１１２…デバイス取得部、１２０…辞書処理部、１２１…辞書テーブル、１３０…ビジネスロジック、１３１…業務データベース（ＤＢ）、１４０…応答処理部、１４１…表示変更部、１４２…表示部、
２００…クライアント端末、
３００…ネットワーク。
【図１】
0005658196.tif 000002
【図２】
0005658196.tif 000003
【図３】
0005658196.tif 000004