説明

パス変換装置及びプログラム

【課題】 アプリケーション毎に仕組みを作成せずに画面の構成や入力項目の数をロケール毎に切替え可能である上、ロケール毎に切り替える対象を管理する必要を無くす。
【解決手段】 実施形態のパス変換装置は、パス変換手段、パス存在チェック手段及びパス送出手段を備えている。前記パス変換手段は、前記入力を受け付けたパスの一部を前記パス変換ルール内の各々の変換ルールに基づいて個別に前記変換文字列に変換し、当該変換文字列内の変数を前記取得されたロケールに置換することにより、当該入力を受け付けたパスを複数のパスに変換し、当該複数のパスからなるパス変換候補を生成する。前記パス存在チェック手段は、当該パス変換候補内の各パスについて前記リスト情報内に存在するかをチェックする。前記パス送出手段は、前記チェックの結果、前記存在するパスを前記変換されたパスとして前記アプリケーション部に送出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、国際化に対応した画面表示のためのパス変換装置及びプログラムに関する。
【背景技術】
【0002】
アプリケーションの国際化とは、利用者のロケール(言語・国・地域を表すもの)に合わせて、画面の表示内容や処理を切替えることである。
【0003】
Java(登録商標) EEアプリケーションを国際化する場合、リソースバンドルという技術が一般的に用いられる。リソースバンドルは、文字列をロケール毎に管理する機能である。リソースバンドルによれば、利用者のロケールに合わせて、画面に表示される文字列を切替可能となる。例えば、日本語の利用者に対しては画面内の文字列を日本語に切り替え、英語の利用者に対しては画面内の文字列を英語に切り替えることが可能となる。
【0004】
また、Java EEアプリケーションの分野で活動が活発なOSS(Open Source Software)のフレームワークには、文字列だけでなく、利用者が入力したデータのバリデーションや、日付、数値、通貨のフォーマットを切替える仕組みを持つものも存在する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−112708号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、以上のようなリソースバンドルやOSSのフレームワークは、通常は何の問題もないが、本発明者の検討によれば、第1及び第2の点で改良の余地がある。
【0007】
第1の点は、切替える対象が、文字列単位や入力項目単位という画面内の1要素である点である。実際のシステム開発では、1要素単位の切替えで済まず、画面の構成(レイアウト)や入力項目数の数をロケール毎に切替える必要に迫られることがある。例えば、ロケールが日本語の画面と英語の画面では、同じ内容の文であっても文を構成する文字列の文字数が大幅に異なるため、ロケールに応じて画面の構成を切り替える必要がある。
【0008】
また例えば、名前を入力するフォームの場合、ロケールが日本語の画面では、姓、名の順にフォームが配置された構成に加え、漢字とフリガナの入力項目が必要になる。
【0009】
しかしながら、ロケールが英語の画面では、名、姓の順にフォームが配置された構成だけで済み、漢字とフリガナの入力項目が不要となる。従って、画面の構成や入力項目数をロケール毎に切替えるためには、個々のアプリケーション毎に仕組みを作成する必要がある。
【0010】
第2の点は、ロケール毎に切替える対象を管理する必要がある点である。例えば、リソースバンドルであれば、ロケールと文字列の対応を定義し管理する必要がある。また、バリデーションであれば、ロケールとバリデーションルールの関係を定義し管理する必要がある。そのため、切替え対象を追加/変更する場合、切替え対象の作成作業と関係定義の更新作業という2段階の作業が必要になる。
【0011】
本発明が解決しようとする課題は、アプリケーション毎に仕組みを作成せずに画面の構成や入力項目の数をロケール毎に切替え可能であることに加え、ロケール毎に切り替える対象を管理する必要を無くし得るパス変換装置及びプログラムを提供することである。
【課題を解決するための手段】
【0012】
実施形態のパス変換装置は、ロケールに応じた複数の画面構成ファイルを含むアプリケーションを実行するアプリケーション部から前記各画面構成ファイルを指定するパスの入力を受け付ける。前記パス変換装置は、当該入力を受け付けたパスを前記アプリケーションの利用者のロケールに応じて変換し、当該変換されたパスを前記アプリケーション部に送出する。
【0013】
前記パス変換装置は、ロケール管理手段、パスリスト記憶手段、変換ルール記憶手段、ロケール取得手段、パス変換手段、パス存在チェック手段及びパス送出手段を備えている。
【0014】
前記ロケール管理手段は、前記利用者のロケールを管理する。
【0015】
前記パスリスト記憶手段は、前記各画面構成ファイルを個別に示す各パスのリスト情報を記憶する。
【0016】
前記変換ルール記憶手段は、前記パスの一部である変換対象と、当該変換対象が変換される変換文字列であってロケールを示す変数を含む前記変換文字列とを定義した複数の変換ルールからなるパス変換ルールを記憶する。
【0017】
前記ロケール取得手段は、前記アプリケーション部からパスの入力を受け付けると、ロケール管理手段からロケールを取得する。
【0018】
前記パス変換手段は、前記入力を受け付けたパスの一部を前記パス変換ルール内の各々の変換ルールに基づいて個別に前記変換文字列に変換し、当該変換文字列内の変数を前記取得されたロケールに置換することにより、当該入力を受け付けたパスを複数のパスに変換し、当該複数のパスからなるパス変換候補を生成する。
【0019】
前記パス存在チェック手段は、当該パス変換候補内の各パスについて前記リスト情報内に存在するかをチェックする。
【0020】
前記パス送出手段は、前記パス存在チェック手段によるチェックの結果、前記リスト情報内に存在するパスを前記変換されたパスとして前記アプリケーション部に送出する。
【図面の簡単な説明】
【0021】
【図1】第1の実施形態に係るパス変換装置が適用されたクライアントサーバシステムの構成を示す模式図である。
【図2】同実施形態におけるパス変換ルールの例を示す模式図である。
【図3】同実施形態におけるパスを変換する例を示す模式図である。
【図4】同実施形態におけるパスリストを説明するための模式図である。
【図5】同実施形態における動作を説明するためのシーケンス図である。
【図6】同実施形態における動作の一部を説明するためのフローチャートである。
【図7】第2の実施形態に係るパス変換装置が適用されたクライアントサーバシステムの構成を示す模式図である。
【図8】同実施形態における動作を説明するためのシーケンス図である。
【図9】第3の実施形態に係るパス変換装置が適用されたクライアントサーバシステムの構成を示す模式図である。
【図10】同実施形態における動作を説明するためのシーケンス図である。
【図11】同実施形態における画面構成ファイル内のパスの変換例を示す模式図である。
【発明を実施するための形態】
【0022】
以下、各実施形態について図面を用いて説明するが、その前に各実施形態に共通する概要を述べる。
【0023】
各実施形態は、ロケール毎に切替える対象を画面の要素単位だけではなく、利用するファイル自体を切替える仕組みを述べている。切り替え対象は、画面構成ファイル(HTMLやJSP等の画面ファイルや画面から参照されるスタイルシート、画像ファイル、JavaScript(登録商標)ファイル等)である。切替える方法として、画面構成ファイルへのパスを、ロケール情報を含めたパスへ自動で変換する仕組みを述べている。
【0024】
このような各実施形態によれば、画面構成ファイルを切替える構成により、画面の構成(レイアウト,入力項目の増減)、画面上で動作するロジック(Javascript)などをロケール毎に変更することが可能となる。
【0025】
また、各実施形態によれば、ロケールと切替え対象の画面構成ファイルの関係を、パス変換ルールとアプリケーション内の構造により管理する構成により、個々の画面構成ファイルとロケールの対応関係を別途管理する必要を無くすことができる。
【0026】
従って、各実施形態によれば、アプリケーション毎に仕組みを作成せずに画面の構成や入力項目の数をロケール毎に切替え可能であることに加え、ロケール毎に切り替える対象を管理する必要を無くすことができる。以上が各実施形態に共通する概要である。続いて、各実施形態について具体的に説明する。
【0027】
<第1の実施形態>
図1は第1の実施形態に係るパス変換装置が適用されたクライアントサーバシステムの構成を示す模式図である。このクライアントサーバシステムは、複数のクライアント装置Cjp,…,Cus,…,Csr,…がネットワークを介してサーバ装置Svに接続されている。なお、各クライアント装置Cjp,…,Cus,…,Csr,…の添字{jp},{us},{sr}は、それぞれ設定されたロケールが日本、米国及びセルビア語を示すことを表している。また、各クライアント装置Cjp,…,Cus,…,Csr,…は、ロケールが示す内容を除き、互いに同一構成のブラウザを有するため、ここでは日本を示すロケールがブラウザに設定されたクライアント装置Cjpを代表例に挙げて説明する。
【0028】
クライアント装置Cjpは、通常のブラウザを有する通常のコンピュータであり、具体的には例えば、ユーザの操作により、ロケールを含むリクエストをサーバ装置Svに送信する機能と、ロケールを表すリンクやボタンの選択操作により、当該選択されたロケールをサーバ装置Svに送信する機能と、サーバ装置Svから画面構成ファイルの内容を示す画面構成データを受けると、この画面構成データに基づいて画面を表示する機能とを備えたブラウザを有している。なお、ロケールを含むリクエストをサーバに送信することは、HTTP(HyperText Transfer Protocol)に定められている。
【0029】
一方、サーバ装置Svは、パス変換装置100及びアプリケーション部200を備えている。
【0030】
パス変換装置100は、ロケールに応じた複数の画面構成ファイルを含むアプリケーションを実行するアプリケーション部200から当該各画面構成ファイルを指定するパスの入力を受け付けると、当該パスを当該アプリケーションの利用者のロケールに応じて変換し、当該変換されたパスをアプリケーション部200に送出する機能をもっている。
【0031】
補足すると、パス変換装置200は、利用者の国際化に対応し、画面構成ファイルへのパスを国際化したパスに変換する装置である。
【0032】
国際化したパスとは、パス内にロケール情報を含んだパスを意味する。例えばアプリケーション部200から入力されたパスが”/index.jsp”とした場合、国際化したパスは、”/index_ja_JP.jsp”や”/ja_JP/index.jsp”のようにロケールを表す”ja_JP”をパスに含めたものである。アプリケーション部200から入力されるパスをどのように国際化したパスに変換するかのルールはパス変換ルール131に定義される。なお、国際化したパスは、ロケールに応じたパスと呼んでもよい。
【0033】
このようなパス変換装置100は、具体的には、パス生成部110、ロケール管理部120、パス変換部130及びパス存在チェック部140を備えている。
【0034】
パス生成部110は、アプリケーション部200からの入力であるパスを受付け、適切に国際化したパスを返却する部分である。適切に国際化したパスとは、パス変換ルール131に定義されたルールにより変換され、且つアプリケーション内にそのパスが示す画面構成ファイルが存在するものである。
【0035】
このようなパス生成部110は、具体的には例えば、以下の機能(f110-1)〜(f110-3)をもっている。
【0036】
(f110-1) アプリケーション部200からパスの入力を受け付けると、ロケール管理部120からロケールを取得する機能。
【0037】
(f110-2) 当該取得したロケールと、当該入力を受け付けたパスとをパス変換部130に送出し、パス変換部130から変換後の複数のパスからなるパス変換候補を受ける機能。なお、この機能(f110-2)は必須ではなく、例えば、パス生成部110とパス変換部130とを一体的に設けることにより、省略可能である。
【0038】
(f110-3) 当該パス変換候補をパス存在チェック部140に送出する機能。
【0039】
(f110-4) パス存在チェック部140によるチェックの結果、パスリスト(各パスのリスト情報)141内に存在するパスを、パス変換装置100により変換されたパスとしてアプリケーション部200に送出するパス送出機能。
【0040】
また、パス変換部110は、さらに、以下の機能(f110-5)を備えてもよい。
【0041】
(f110-5) パス存在チェック部140によるチェックの結果、パス変換候補内の全てのパスがパスリスト141内に存在しない場合、アプリケーション部200から入力を受け付けたパスを、パス変換装置100により変換されたパスとしてアプリケーション部200に送出する機能。ここで、入力を受け付けたパスは、ロケールを含まないパスであって、例えば、英語圏に対応した画面構成ファイルを示している。なお、この英語圏に対応した画面構成ファイルは、英語圏のみに対応したものでもよく、英語圏に加えて他の所望の言語圏に対応したものでもよい。
【0042】
ロケール管理部120は、アプリケーション部200を利用するアプリケーション利用者のロケールを管理する機能をもっている。ロケールとは、アプリケーション利用者が扱う言語、所属する国や地域を表すものである。Javaでは通常、「言語_国_バリアント」という形式で扱われる。日本語であれば「ja」、英語であれば「en」と表現され、日本であれば「ja_JP」、米国であれば「en_US」と表現される。バリアントまで表すものとしては、セルビア語(ボスニア・ヘルツェゴビナ、ラテン)の「sr_BA_LATN」がある。
【0043】
ロケールはクライアント装置Cjp,…に利用されるブラウザに設定されており、ブラウザからリクエストをサーバ装置Svに送信する際にロケールも送信される。なお、図1には、日本を表すロケールが設定されたクライアント装置Cjpと、米国を表すロケールが設定されたクライアント装置Cusと、セルビア語を表すロケールが設定されたクライアント装置Csrとを示している。
【0044】
また、アプリケーションによってはブラウザに設定されたロケールではなく、アプリケーションの画面上に「日本語」「English」等が記述されたボタンやリンクが表示され、このボタンやリンクをアプリケーション利用者が選択することにより、クライアント装置Cjp,…が利用するロケールをアプリケーション部200に送信する方法をとるものも多く見られる。
【0045】
ロケール管理部120が管理するロケールは、上記ブラウザに設定されたロケールと、ボタンやリンクにより選択されるロケールの両方である。ロケールの管理方法としてはアプリケーションのセッション領域を使用することが可能である。セッションはアプリケーション部200の利用者個々に割り当てられる領域である。セッション領域を利用してロケールを管理することにより、様々な言語を利用する不特定多数の利用者がアプリケーション部200を利用したとしても、各々の利用者のロケールを適切に管理することが可能である。
【0046】
パス変換部130は、パス生成部110により入力を受け付けたパスの一部をパス変換ルール131内の各々の変換ルールに基づいて個別に変換文字列に変換し、当該変換文字列内の変数を、パス生成部110により取得されたロケールに置換することにより、当該入力を受け付けたパスを複数のパスに変換し、当該複数のパスからなるパス変換候補を生成するパス変換機能をもっている。
【0047】
補足すると、変換後のパスは1つではなく複数である。例えば、変換対象のパスが「/css/app-style.css」で、ロケールが「ja_JP」の場合、「/css/app-style_ja_JP.css」「/css/app-style_ja.css」「/css/app-style.css」のように変換後のパスが3種類作成される。
【0048】
変換後のパスが複数であることは、ロケールが階層的な意味を持っていることと、javaでロケールを扱う場合にはより狭いロケールの階層から優先的に扱うことに由来する。ロケールが「ja_JP」の場合、第1に「ja_JP」が優先され、次に「ja」が、その後に「ロケール情報無し」が適用される。このような優先度があることから、変換後のパスを複数作成しておき、パス存在チェック部140でのチェック結果に基づいて、実際に利用するパスを決める方式としている。
【0049】
パス変換ルール131は、ロケールを使いパスをどのように変換するかを定義した情報であり、具体的には、パスの一部である変換対象と、当該変換対象が変換される変換文字列であってロケールを示す変数を含む当該変換文字列とを定義した複数の変換ルールからなる情報である。パス変換部130はこのパス変換ルール131に定義された各変換ルールに基づきパスを変換する。パス変換ルール131は、図2に例を示すように、パス中の変換対象と変換文字列を定義している。変換ルール例1では、パス内の”.”を”_${locale}.”に変換するというルールである。”${locale}”が変数でありロケールに置換される。パス変換ルール131としては、3つの例を示したが、これに限らず、パス上の一部の文字を、ロケールを含めた文字列に変換する変換ルールであれば、任意の変換ルールを定義可能となっている。図2のパス変換ルール131を用いて、パス変換部130がパスを変換する例を図3に示す。図3はロケールが「ja_JP」の場合のパス変換例を示している。パス変換部130は、予め定義されたパス変換ルール131をメモリ(図示せず)に書込む機能を有するが、このメモリは、パス変換部130の内部に限らず、パス変換部130の外部にあってもよい。
【0050】
パス存在チェック部140は、パス変換部130により変換された複数のパスからなるパス変換候補内の各パスについてパスリスト141内に存在するかをチェックする機能をもっている。補足すると、パス存在チェック部140は、パスリスト141を利用して、国際化したパスが示す画面構成ファイルが、アプリケーション内に存在するかをチェックするものである。
【0051】
パスリスト141は、各画面構成ファイルを個別に示す各パスのリスト情報であり、図4に示すように、アプリケーションの構造から作成される。パスリスト141は、パス存在チェック部140がパスの存在チェックをする際に、毎回アプリケーション内のパスチェックをする負荷を無くす役割をもっている。パス存在チェック部140は、予め画面構成ファイルの情報をパスリスト141としてメモリ(図示せず)に書込むことで、パスチェックの効率化を図っている。パスリスト141を書込む(構築する)タイミングは、アプリケーション起動時もしくは、パス存在チェック部140が最初にパスチェックをするタイミングのいずれかである。なお、パスリスト141が書込まれるメモリは、パス存在チェック部140の内部に限らず、パス存在チェック部140の外部にあってもよい。
【0052】
また、アプリケーション内には画面構成ファイルではないファイルも存在する。たとえばjarファイル等のライブラリファイルやロジックを構成するclassファイルである。Java EEアプリケーションの場合、これら画面構成ファイルではないファイルの構成が規定されている。JarファイルはAppContext/WEB-INF/libに配置されることが一般的であり、classファイルはAppContext/WEB-INF/classesに配置されることが一般的である。パスリスト141を作成する際に、これら画面構成ファイル以外のファイルが配置されるパスをパスリスト141に含めない構成により、パスリスト141の構築とパスのチェックとの効率化を図ることが可能である。
【0053】
なお、以上のようなパス変換装置100は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からコンピュータにインストールされ、当該コンピュータにパス変換装置100の機能を実現させるためのプログラムが用いられる。また、パス変換装置100は、例えば、パス生成装置、パス管理装置又はリソース管理装置のような他の名称に読み替えてもよい。
【0054】
一方、アプリケーション部200は、国際化に対応したパス変換装置100を利用するアプリケーション(プログラム)を実行するプロセッサの一機能として実現される。アプリケーション部200のアプリケーションとしては、Java EEアプリケーションを前提にしている。アプリケーション部200は、クライアント装置Cjpから受けたリクエストに基づいて、国際化に対応したパス変換装置100に対し、国際化未対応(ロケールに未対応)のパスを入力する機能と、パス変換装置100によりロケールに対応して変換されたパスを受ける機能と、当該受けたパスに基づく画面構成ファイルをクライアント装置Cjpに送信する機能とをもっている。
【0055】
次に、以上のように構成されたパス変換装置が適用されたクライアントサーバシステムの動作を図5のシーケンス図及び図6のフローチャートを用いて説明する。
【0056】
アプリケーション部200は、クライアント装置Cjpから受けたリクエストに基づいて、国際化未対応のパス(変換対象パス)を含むパス生成依頼メッセージをパス生成部110に入力する(ST101)。
【0057】
パス生成部110は、パス生成依頼メッセージに含まれる変換対象パスの入力を受け付けると、ロケール取得メッセージをロケール管理部120に送出することにより、ロケール管理部120から、現在アプリケーションを利用しているアプリケーション利用者のロケールを取得する(ST102)。
【0058】
パス生成部110は、当該取得したロケールと、当該入力を受け付けた変換対象パスとを含むパス変換候補取得メッセージをパス変換部130に送出する(ST103)。
【0059】
パス変換部130は、パス変換ルール131に定義された各々の変換ルールを取得する(ST104)。
【0060】
パス変換部130は、パス変換候補取得メッセージ内の変換対象パスの一部をパス変換ルール131内の各々の変換ルールに基づいて個別に変換文字列に変換し、当該変換文字列内の変数をパス変換候補取得メッセージ内のロケールに置換することにより、当該変換対象パスを複数のパスに変換し、当該複数のパスからなるパス変換候補リストを生成する(ST105)。
【0061】
これにより、パス生成部110は、ステップST103のパス変換候補取得メッセージに対する戻り値として、変換後の複数のパスからなるパス変換候補リストを取得する。
【0062】
パス生成部110は、当該取得したパス変換候補リスト内の各パスのうち、適切なパスを決定する(ST106)。適切なパスとはアプリケーション内に存在するパスを意味する。ステップST106においては、ロケールの優先度を考慮し、図6のステップST106−1〜ST106−8に示すように、優先度の高いものからパス存在チェック部140によるチェックを実行し、存在を確認できたパスを適切なパスとしてアプリケーション部200に返却する。
【0063】
例えば、ステップST106−1において、パス生成部140は、パス変換候補内で最高の優先度をもつパス({言語_国_バリアント}が付与されたパス)を含む存在確認依頼メッセージをパス存在チェック部140に送出する。
【0064】
パス存在チェック部140は、存在確認依頼メッセージを受けると、パスリスト141を参照し、存在確認依頼メッセージ内のパスが当該パスリスト141内に存在するかをチェックし(ST107,ST108)、存在する(true)か否(false)かを示すチェック結果をパス生成部140に送出する。
【0065】
ここで、パス存在チェック部140によるチェックの結果、パスリスト141内に存在する場合(ST106−2;true)には、パス生成部140は、当該存在するパス({言語_国_バリアント}が付与されたパス)を、変換されたパスとしてアプリケーション部200に送出する(ST106−8)
一方、パス存在チェック部140によるチェックの結果、パスリスト141内に存在しない場合(ST106−2;false)には、ステップST106−3において、パス生成部110は、次に優先度の高いパス({言語_国}が付与されたパス)を含む存在確認依頼メッセージをパス存在チェック部140に送出する。
【0066】
パス存在チェック部140は、前述同様に、存在確認依頼メッセージ内のパスをチェックし(ST107,ST108)、チェック結果をパス生成部140に送出する。
【0067】
パス存在チェック部140によるチェックの結果、パスリスト141内に存在する場合(ST106−4;true)には、パス生成部140は、当該存在するパス({言語_国}が付与されたパス)を、変換されたパスとしてアプリケーション部200に送出する(ST106−8)
また一方、パス存在チェック部140によるチェックの結果、パスリスト141内に存在しない場合(ST106−4;false)には、ステップST106−5において、パス生成部110は、次に優先度の高いパス({言語}が付与されたパス)を含む存在確認依頼メッセージをパス存在チェック部140に送出する。
【0068】
パス存在チェック部140は、前述同様に、存在確認依頼メッセージ内のパスをチェックし(ST107,ST108)、チェック結果をパス生成部140に送出する。
【0069】
パス存在チェック部140によるチェックの結果、パスリスト141内に存在する場合(ST106−6;true)には、パス生成部140は、当該存在するパス({言語}が付与されたパス)を、変換されたパスとしてアプリケーション部200に送出する(ST106−8)
また一方、パス存在チェック部140によるチェックの結果、パスリスト141内に存在しない場合(ST106−6;false)には、パス生成部110は、ステップST101で入力された変換対象パス(ロケールを含まないパス)を、変換されたパスとしてアプリケーション部200に送出する(ST106−7,ST106−8)。なお、ロケールを含まないパスは、例えば、英語圏に対応した画像構成ファイルを示している。
【0070】
ステップST106−8の完了後、アプリケーション部200は、ステップST101のパス生成依頼メッセージに対する戻り値として、変換されたパスを取得する。
【0071】
アプリケーション部200は、取得したパスに指定された画面構成ファイルの内容を示す画面構成データをリクエストに対するレスポンスとして、クライアント装置Cjpに送信する。
【0072】
クライアント装置Cjpでは、この画面構成データに基づいて画面を表示する。この画面は、画面構成ファイルが利用者のロケールに応じたものであるため、同様に、利用者のロケールに応じた内容が表示される。
【0073】
上述したように本実施形態によれば、入力を受け付けたパスの一部を、利用者のロケールを含む変換文字列に個別に変換することにより、当該入力を受け付けたパスを複数のパスからなるパス変換候補に変換し、当該パス変換候補内の各パスについてパスリスト141内に存在するかをチェックし、存在するパスを変換されたパスとしてアプリケーション部200に送出する構成により、アプリケーション毎に仕組みを作成せずに画面の構成や入力項目の数をロケール毎に切替え可能であることに加え、ロケール毎に切り替える対象を管理する必要を無くすことができる。
【0074】
補足すると、本実施形態によれば、ロケールに合わせて利用する画面構成ファイルを切替える仕組みをアプリケーションにコーディングする必要がなく、開発効率と保守性を向上させることができる。
【0075】
また、本実施形態によれば、アプリケーションの実際の構造を元にロケールと画面構成ファイルの対応を判断するため、別途テーブルなどによりロケールと画面構成ファイルの関係を管理することによる不整合(実構成とテーブルの不整合)がなく、品質を向上させることができる。
【0076】
さらに、本実施形態によれば、アプリケーションとして対応するロケールの追加が画面構成ファイルの追加だけで済むため、アプリケーションの拡張性を向上させることができる。
【0077】
<第2の実施形態>
図7は第2の実施形態に係るパス変換装置が適用されたクライアントサーバシステムの構成を示す模式図であり、図1と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【0078】
すなわち、第2の実施形態は、第1の実施形態の適用例であり、アプリケーション部200における画面遷移に適用した場合、表示する画面がロケール毎に切替え可能となっている。
【0079】
画面遷移を行なう場合、通常、アプリケーション部200を実行するアプリケーションサーバ部400に対して次に表示する画面を指示する。指示は、通常、画面ファイル(HTMLやJSP等)へのパスを用いる。このとき、アプリケーション部200とアプリケーションサーバ部400の間にパス変換装置100を介在させることで、アプリケーションのコード内に国際化に対応した切替え処理のコードが不要となる。
【0080】
アプリケーションを開発する場合、アプリケーション部200とアプリケーションサーバ部400との間の層にフレームワークというソフトウェアを導入するのが一般的であり、例えば、このフレームワークの実行により実現される機能部がパス変換装置100を含んでいる。
【0081】
これに伴い、本実施形態のサーバ装置Svは、図1に示したアプリケーション部200とパス変換装置100との間に画面遷移パス処理部300が配置され、画面遷移パス処理部300にはアプリケーションサーバ部400が接続されている。
【0082】
ここで、画面遷移パス処理部300は、例えば、フレームワークの1機能として組み込まれて実装される。画面遷移パス処理部300は、アプリケーション部200により次の画面が指定された場合に実行される。画面遷移パス処理部300は、アプリケーション部200が指定した次の画面のパスを、パス変換装置100によって、国際化したパスに変換する。画面遷移パス処理部300は、国際化したパスを次の画面としてアプリケーションサーバ部400に通知する。
【0083】
補足すると、アプリケーション部200とアプリケーションサーバ部400との間に画面遷移パス処理部300が介在することで、アプリケーション部200が、次の画面を指定するパスに対し、ロケールによる切替えを意識することがない。
【0084】
アプリケーションサーバ部400は、アプリケーションを動作させるミドルウェア(アプリケーションサーバ)の実行により実現される機能部である。アプリケーションサーバ部400は、画面遷移パス処理部300が指定するパス上にある画面ファイルをクライアント装置Cjpに表示させる。
【0085】
次に、以上のように構成されたクライアントサーバシステムの動作を図8のシーケンス図を用いて説明する。なお、ステップST101’,ST108’は、前述したステップST101,ST108と同様の処理であるが、入出力先などが前述とは異なるため、「’」の符号をステップ番号に付している。
【0086】
アプリケーション部200は、次に表示する画面のパスを指定するメッセージを画面遷移パス処理部300に送出する(ST10)。Java EEアプリケーションでは、通常、画面の指定にはパスを利用する。本実施形態でも、通常のJava EEアプリケーションと同様に、パスにより次の画面を指定する。例えば、「/menu.html」のように指定する。
【0087】
画面遷移パス処理部300は、指定された次の画面のパスを含む国際化依頼メッセージ(パス変換依頼メッセージ)をパス変換装置100に入力する(ST101’)。
【0088】
パス変換装置100は、前述したステップST102〜ST107と同様に、入力を受け付けたパスを、国際化したパスに変換し(ST102〜ST107)、当該変換されたパスを画面遷移パス処理部300に送出する(ST108’)。
【0089】
例えば、アプリケーションの構造が図4に示す構造で、利用者のロケールが日本(ja_JPまたはja)の場合は、国際化した次の画面のパスとして「/menu_ja.html」が生成される。利用者のロケールが米国などの英語圏(en_US、en_GB、en等)の場合は、国際化した次の画面のパスとして「/menu_en.html」が生成される。利用者のロケールが日本でも英語圏でもない場合は、「/menu.html」が国際化した次の画面のパスとして生成される。
【0090】
画面遷移パス処理部300は、パス変換装置100により、国際化した次の画面のパスを指定するメッセージをアプリケーションサーバ部400に送出する(ST110)。
【0091】
アプリケーションサーバ部400は、ステップST110で指定されたパスに基づいて、当該パスが示す画面構成ファイルの内容を含む画面構成データを作成し、この画面構成データを、次の画面としてクライアント装置Cjpに表示させる。
【0092】
上述したように本実施形態によれば、第1の実施形態の効果に加え、アプリケーション部200における画面遷移に適用した場合であっても、表示する画面をロケール毎に切替えることができる。
【0093】
<第3の実施形態>
図9は第3の実施形態に係るパス変換装置が適用されたクライアントサーバシステムの構成を示す模式図である。
【0094】
第3の実施形態は、第1の実施形態の他の適用例であり、画面ファイルから参照されるファイルの指定に適用した場合、参照されるファイルがロケール毎に切替え可能となっている。
【0095】
画面ファイルから参照されるファイルとしては、画像ファイル、スタイルシート、JavaScriptファイル等がある。これらファイルを参照する場合、画面ファイル内に参照するファイルへのパスを記述する。参照するファイルへのパスの部分にパス変換装置100を適用することで、記述するファイルへのパスに対して国際化を意識しなくても、実際に参照されるパスが国際化されたパスになる。
【0096】
Java EEアプリケーションでは、画面ファイルは、JSP(Java Server Pages)で記述されることが一般的である。JSPを記述する技術としてタグライブラリという技術がある。本実施形態は、パス変換装置100の技術をタグライブラリが利用する例を示す。
【0097】
これに伴い、本実施形態のサーバ装置Svは、図1に示したアプリケーション部200に代えて、画面アプリケーション部500及び参照パス国際化部600を備えている。
【0098】
ここで、画面アプリケーション部500は、画面ファイルにより画面を生成する画面アプリケーションを実行する機能部である。Java EEアプリケーションでは、通常、JSPとして画面ファイルが作成されるが、JSP以外の技術で画面ファイルを作成してもよい。
【0099】
参照パス国際化部600は、画面アプリケーション部500の画面ファイル内に指定されるパスを国際化する機能部である。画面ファイルをJSPとして作成した場合、参照パス国際化部600は、タグライブラリという形式を用いることが一般的であるが、タグライブラリ以外の形式を用いてもよい。
【0100】
次に、以上のように構成されたクライアントサーバシステムの動作を図10のシーケンス図を用いて説明する。なお、ステップST101”,ST108”は、前述したステップST101,ST108と同様の処理であるが、入出力先などが前述とは異なるため、「”」の符号をステップ番号に付している。
【0101】
画面アプリケーション部500は、参照するファイルを示す参照パスを指定するメッセージを参照パス国際化部600に送出する(ST20)。Java EEアプリケーションでは、例えば「/css/app-style.css」のように、参照パスを指定する。
【0102】
参照パス国際化部600は、指定された参照パスを含む国際化依頼メッセージ(パス変換依頼メッセージ)をパス変換装置100に入力する(ST101”)。
【0103】
パス変換装置100は、前述したステップST102〜ST107と同様に、入力を受け付けたパスを国際化したパスに変換し(ST102〜ST107)、当該変換されたパスを参照パス国際化部600に送出する(ST108”)。
【0104】
例えば、アプリケーションの構造が図4に示す構造で、利用者のロケールが日本(ja_JPまたはja)の場合は、国際化した参照パスとして「/css/app-style_ja.css」が生成される。利用者のロケールが日本以外の場合は、「/css/app-style.css」が国際化した参照パスとして生成される。
【0105】
ここで、国際化した参照パスは、アプリケーションの内部構造に基づくものである。画面ファイルから参照するパスは、パス指定の仕方によっては内部構造のパスだけではなく、アプリケーションのルート(アプリケーションコンテキスト)から指定する必要がある。図4に示す構成の場合、参照パス国際化部600は、参照パス「/css/app-style_ja.css」を参照パス「/AppContext/css/app-style_ja.css」のように先頭にアプリケーションコンテキストを付与する(ST120)。本処理は必須ではなくオプションである。
【0106】
画面アプリケーション部500は、国際化した参照パスを画面に設定(画面構成データに設定)する(ST122)。国際化した参照パスが設定された画面構成データは、クライアント装置Cjpに送信される。クライアント装置Cjpは、この画面構成データに基づいて、国際化した画面を表示する。
【0107】
図11は画面構成ファイル内のパスの変換例を示す模式図である。図11上側に示す変換前の画面構成ファイルf1において、<i18n:url>というタグライブラリのバリュー(value)には、国際化されていない参照パスが定義されている。この参照パスを含む<i18n:url>のタグの部分は、図11下側の変換後の画面構成ファイルf1jp,f1en”に示すように、前述した処理によって、国際化した参照パスに変換される。
【0108】
上述したように本実施形態によれば、第1の実施形態の効果に加え、画面ファイルから参照されるファイルの指定に適用した場合、参照されるファイルをロケール毎に切替えることができる。
【0109】
以上説明した少なくとも一つの実施形態によれば、パス変換装置100が、入力を受け付けたパスを、アプリケーション利用者のロケールを含むパスに変換し、当該変換したパスを送出する構成により、アプリケーション毎に仕組みを作成せずに画面の構成や入力項目の数をロケール毎に切替え可能であることに加え、ロケール毎に切り替える対象を管理する必要を無くすことができる。
【0110】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0111】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0112】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0113】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0114】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0115】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0116】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0117】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0118】
100…パス変換装置、110…パス生成部、120…ロケール管理部、130…パス変換部、131…パス変換ルール、140…パス存在チェック部、141…パスリスト、200…アプリケーション部、300…画面遷移パス処理部、400…アプリケーションサーバ部、500…画面アプリケーション部、600…参照パス国際化部、Cjp,Cus,Csr,…クライアント装置、Sv…サーバ装置。

【特許請求の範囲】
【請求項1】
ロケールに応じた複数の画面構成ファイルを含むアプリケーションを実行するアプリケーション部から前記各画面構成ファイルを指定するパスの入力を受け付けると、当該パスを前記アプリケーションの利用者のロケールに応じて変換し、当該変換されたパスを前記アプリケーション部に送出するパス変換装置であって、
前記利用者のロケールを管理するロケール管理手段と、
前記各画面構成ファイルを個別に示す各パスのリスト情報を記憶するパスリスト記憶手段と、
前記パスの一部である変換対象と、当該変換対象が変換される変換文字列であってロケールを示す変数を含む前記変換文字列とを定義した複数の変換ルールからなるパス変換ルールを記憶する変換ルール記憶手段と、
前記アプリケーション部からパスの入力を受け付けると、ロケール管理手段からロケールを取得するロケール取得手段と、
前記入力を受け付けたパスの一部を前記パス変換ルール内の各々の変換ルールに基づいて個別に前記変換文字列に変換し、当該変換文字列内の変数を前記取得されたロケールに置換することにより、当該入力を受け付けたパスを複数のパスに変換し、当該複数のパスからなるパス変換候補を生成するパス変換手段と、
当該パス変換候補内の各パスについて前記リスト情報内に存在するかをチェックするパス存在チェック手段と、
前記パス存在チェック手段によるチェックの結果、前記リスト情報内に存在するパスを前記変換されたパスとして前記アプリケーション部に送出するパス送出手段と、
を備えたことを特徴とするパス変換装置。
【請求項2】
請求項1に記載のパス変換装置において、
前記パス存在チェック手段によるチェックの結果、前記パス変換候補内の全てのパスが前記リスト情報内に存在しない場合、前記入力を受け付けたパスを前記変換されたパスとして前記アプリケーション部に送出する手段、
を更に備え、
前記入力を受け付けたパスは、前記ロケールを含まないパスであって、英語圏に対応した画面構成ファイルを示すことを特徴とするパス変換装置。
【請求項3】
ロケールに応じた複数の画面構成ファイルを含むアプリケーションを実行するアプリケーション部から前記各画面構成ファイルを指定するパスの入力を受け付けると、当該パスを前記アプリケーションの利用者のロケールに応じて変換し、当該変換されたパスを前記アプリケーション部に送出し、且つパスリスト記憶手段及び変換ルール記憶手段を備えたパス変換装置に用いられるプログラムであって、
前記パス変換装置を、
前記利用者のロケールを管理するロケール管理手段、
前記各画面構成ファイルを個別に示す各パスのリスト情報を前記パスリスト記憶手段に書込む手段、
前記パスの一部である変換対象と、当該変換対象が変換される変換文字列であってロケールを示す変数を含む前記変換文字列とを定義した複数の変換ルールからなるパス変換ルールを前記変換ルール記憶手段に書込む手段、
前記アプリケーション部からパスの入力を受け付けると、ロケール管理手段からロケールを取得するロケール取得手段、
前記入力を受け付けたパスの一部を前記パス変換ルール内の各々の変換ルールに基づいて個別に前記変換文字列に変換し、当該変換文字列内の変数を前記取得されたロケールに置換することにより、当該入力を受け付けたパスを複数のパスに変換し、当該複数のパスからなるパス変換候補を生成するパス変換手段、
当該パス変換候補内の各パスについて前記リスト情報内に存在するかをチェックするパス存在チェック手段、
前記パス存在チェック手段によるチェックの結果、前記リスト情報内に存在するパスを前記変換されたパスとして前記アプリケーション部に送出するパス送出手段、
として機能させるためのプログラム。
【請求項4】
請求項3に記載のプログラムにおいて、
前記パス存在チェック手段によるチェックの結果、前記パス変換候補内の全てのパスが前記リスト情報内に存在しない場合、前記入力を受け付けたパスを前記変換されたパスとして前記アプリケーション部に送出する手段、
を更に備え、
前記入力を受け付けたパスは、前記ロケールを含まないパスであって、英語圏に対応した画面構成ファイルを示すプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−198810(P2012−198810A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−63270(P2011−63270)
【出願日】平成23年3月22日(2011.3.22)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】