情報処理装置、情報処理方法およびプログラム
【課題】 Webサービスにおいてユーザにとって習慣的に親和性のある暦部品に置換を実現する
【解決手段】
ユーザによる国および/または地域の指定を受け付け、ユーザから指定された国および/または地域の情報を外部サーバに非同期通信を用いて送信し、該外部サーバから該国および/または地域と親和性のある暦の暦部品を非同期通信により取得し、該取得した暦部品を表示する情報処理装置。
【解決手段】
ユーザによる国および/または地域の指定を受け付け、ユーザから指定された国および/または地域の情報を外部サーバに非同期通信を用いて送信し、該外部サーバから該国および/または地域と親和性のある暦の暦部品を非同期通信により取得し、該取得した暦部品を表示する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webアプリケーションが提供する画面を構成する画面部品のカスタマイズを行う技術に関するものである。
【背景技術】
【0002】
近年のインターネットの急速な普及と,それに伴うWeb上での技術の進化に伴い、ブラウザ型ウェブアプリケーションの利用が急速に広がっている。
【0003】
また、近年の国際化に伴い、それぞれ異なる国・地域に住み、異なる言語や異なる暦を使うユーザが同一のWebサービスを利用する機会が増加している。
【0004】
そして、Webサービスの利用にあたっては、Webサービスによりユーザ登録を求められるのが一般的であり、ユーザ登録においてはユーザの氏名、性別、生年月日、連絡先などの個人情報をシステムに登録することになる。
【0005】
そこで、異なる言語を使用するユーザの操作性を向上させるべく、ユーザから「国・地域」の選択を受け付けることで、表示言語の切り替えを行ってくれるサイトも存在する。
【0006】
また、ユーザの所望に応じて暦の切り替えを行う技術として、例えば特許文献1のように、電話、ファクシミリ等の通信端末装置が備えるディスプレイの暦を西暦又は和暦で表示する技術が公開されている。
【特許文献1】特開2001−350562号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、Webサービスが表示言語の切り替えを行ったとしても、生年月日を入力するための暦部品についてはアプリケーション固定であることが多く、暦部品の置換はなされない。
【0008】
そのため、Webサービスが提供する画面内の生年月日の入力フォームが西暦の場合、ユーザが選択した「国・地域」が日本であろうがイスラム圏の国家であろうが、生年月日は西暦での入力が要求されることになり、入力間違いが生じてしまう。
【0009】
また、特許文献1において公開されている技術についても、通信端末装置上での暦表示の切り替えに関する技術であり、Webサービスの利用にあたり求められるユーザ登録・編集フォームで利用することまでは考えられていない。
【課題を解決するための手段】
【0010】
そこで、本発明の目的は、ユーザからの「国・地域」の選択を受け付け、ユーザにとって慣習的に親和性のある暦部品に置き換えを行うことで、異なる国・地域に住み、異なる言語や異なる暦を使うユーザにとって使いやすいWebサービスを提供する仕組みを実現することにある。
【0011】
本発明の情報処理装置は、暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置であって、ユーザから国および/または地域の情報の指定を受け付ける受付手段と、前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、前記取得手段により取得した暦部品を表示する表示手段とを備えることを特徴とする。
【0012】
また、本発明の情報処理方法は、暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置の情報処理方法であって、受付手段が、ユーザから国および/または地域の情報の指定を受け付ける受付工程と、送信手段が、前記受付工程でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信工程と、取得手段が、前記送信工程で前記送信手段により送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得工程と、表示手段が、前記取得工程で前記取得手段により取得した暦部品を表示する表示工程とを備えることを特徴とする。
【発明の効果】
【0013】
また、本発明のプログラムは、暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置をユーザから国および/または地域の情報の指定を受け付ける受付手段と、前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、前記取得手段により取得した暦部品を表示する表示手段として機能させることを特徴とする。
【0014】
本発明によれば、同一のWebサービスを利用しながらも年月日を入力する際、ユーザは慣習的になじみのある暦部品の使用が可能となり、例えば入力間違いを減らせるといったように、ユーザの操作性を向上させることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施例に係る情報処理システムの構成を示す図である。
【図2】クライアントPC、Webサーバ、アプリケーションサーバ、データベースサーバの基本構成を示すブロック図である。
【図3】クライアントPCのディスプレイにインターネットアプリケーションの画面が表示される前の状態における機能構成図である。
【図4】クライアントPCのディスプレイにインターネットアプリケーションの画面が表示された状態における機能構成図である。
【図5】JSON形式の画面デザインデータの書式の一例を示す図である。
【図6】英米向けの画面デザインデータの一例を示す図である。
【図7】図6に示すデザインデータにより生成した画面を示す図である。
【図8】「国・地域」で日本が選択された場合のデザインデータの一例を示す図である。
【図9】図8に示すデザインデータにより生成した画面を示す図である。
【図10】図7に示す英米向け画面をセットアップする処理におけるクライアントPCの処理を示すフローチャートである。
【図11】図7に示す英米向け画面をセットアップする処理におけるサーバ側の処理を示すフローチャートである。
【図12】言語・暦部品を日本向けに書き換える処理におけるクライアントPCの処理を示すフローチャートである。
【図13】言語・暦部品を日本向けに書き換える処理におけるサーバ側の処理を示すフローチャートである。
【図14】画面上の暦部品を介して年月日の登録をする処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を適用した好適な実施例を、添付図面を参照しながら詳細に説明する。
【0017】
図1は、本発明におけるWebアプリケーションを実現するシステム構成の一例を示す図である。
【0018】
101はWebサーバであって、クライアントPC107のブラウザからの要求に応じて、蓄積しているHTML文書や画像等の表示を返すサービスが稼動する。
【0019】
102はアプリケーションサーバであって、Webアプリケーションが稼動する。アプリケーション標準の要件についてはアプリケーションサーバ102で管理する。
【0020】
103はデータベースサーバであって、アプリケーション標準の要件に対するカスタマイズの要件、すなわち文言、ロゴ、部品のデザインデータなどを記憶している。なお、アプリケーションの処理結果もここに記憶する。
【0021】
104はWebサーバ101とアプリケーションサーバ102を相互にデータ通信可能に接続するためのネットワークである。
【0022】
105はアプリケーションサーバ102とデータベースサーバ103を相互にデータ通信可能に接続するためのネットワークである。
【0023】
106はWebサーバ101とクライアントPC107−1、107−2、…107−Nを相互にデータ通信可能に接続するためのネットワークである。
【0024】
なお、Webサーバ101、アプリケーションサーバ102及びデータベースサーバ103はネットワーク上に分散していても、分散していなくてもどちらの構成であってもかまわない。
【0025】
107−1、107−2・・・107−Nは同じWebアプリケーションを使用するクライアントPCの集合である。
【0026】
次に、図2を用いて、図1に示したWebサーバ101、アプリケーションサーバ102、データベースサーバ103、クライアントPC107のハードウェア構成について説明する。
【0027】
図2は、Webサーバ101、アプリケーションサーバ102、データベースサーバ103、クライアントPC107に適用可能な情報処理装置のハードウェア構成例を示すブロック図である。CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0028】
図2に示すように、Webサーバ101、アプリケーションサーバ102、データベースサーバ103、クライアントPC107は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)203、ROM(Read Only Memory)202、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0029】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(BASIC INPUT / OUTPUT SYSTEM)やオペレーティングシステムプログラム(以下、OS)や、各コンピュータが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が外部メモリ211に記憶されている。なお外部メモリ211はデータベースであってもよい。
【0030】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、ロードしたプログラムを実行することで各種動作を実現するものである。
【0031】
また、入力コントローラ(入力C)205は、入力装置209からの入力を制御する。なお、入力装置は、マウス等のポインティングデバイスでもキーボードでもいずれの入力装置であってもよい。
【0032】
ビデオコントローラ(VC)206は、ディスプレイ210等の表示器への表示を制御する。なお、表示器は液晶ディスプレイでもCRTディスプレイでもいずれの表示器でも構わない。これらは必要に応じてユーザが使用するものである。
【0033】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)等の外部メモリ211へのアクセスを制御する。
【0034】
通信I/Fコントローラ(通信I/FC)208は、ネットワーク(例えば、図1に示したLAN104)を介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0035】
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上に各種操作画面およびマウスカーソル等(不図示)を表示しユーザ指示を可能とする。
【0036】
なお、後述する各処理を実現するためのプログラムは、例えば外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイルおよび各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明についても後述する。
【0037】
次に、図3、図4を用いて、本発明におけるクライアントPC107、Webサーバ101、アプリケーションサーバ102、データベースサーバ103の機能構成を説明する。なお、図3は、クライアントPC107のディスプレイ210にインターネットアプリケーションの画面が表示される前の状態における機能構成図であり、図4は、クライアントPC107のディスプレイ210にインターネットアプリケーションの画面が表示された状態における機能構成図である。
【0038】
Webブラウザ10は、マイクロソフト社のインターネットエクスプローラのようなWebブラウザである。Webブラウザ10のプログラムはクライアントPC107が備える記憶領域(ROM202や外部メモリ211)に記憶されている。
【0039】
ユーザインターフェース部20は、Webブラウザ10の外観を表す領域であり、主にURL入力欄21、メニューバー22、ツールバー23及び画面表示部24から構成されている。URLとは、インターネット上のリソース(資源)を特定するための形式的な記号の並びであり、WWWをはじめとするインターネットアプリケーションにおいて提供されるリソースを、主にその所在を表記することで特定する。なお、リソースとは(主にインターネット上の)データやサービスを指す。本発明ではWebブラウザ10とWebサーバ101間の通信はHTTPという通信規約を使用するものとする。Webブラウザ10が備えるURL入力欄21において「http://ホスト名:ポート番号/ファイル名」という書式でインターネット上のリソースを指定する。ここで、Webサーバ101が稼動するホストのホスト名が解決されない場合はホスト名の代わりにホストのIPアドレスを指定してもかまわない。また、ポート番号とはWebサーバ101にてWebサーバのプロセスが利用しているポートを指す。ツールバー23にはユーザが頻繁に使用する機能を起動するボタンが配置されている。ブラウザの操作はメニューバー22上のメニュー項目やツールバー23上のボタンを介して行う。画面表示部24にはインターネットアプリケーションの画面が表示される。
【0040】
JavaScriptエンジン30はJavaScript言語実行エンジンであって、Webブラウザ10の内部に組み込まれている。
【0041】
Webサーバ101−1はオープンソースソフトウェアのApacheやマイクロソフト社のIIS(Internet Information Server)のようなWebサーバ101のプログラムである。Webサーバ101のプログラムはWebサーバ101の記憶領域(ROM202や外部メモリ211)に記憶されている。なお、Webサーバ101のプログラム101−1は記憶領域に記憶されているWebサーバ設定ファイルの内容に従って動作する。Webサーバ101のプログラム101−1はWebブラウザ10から送信されてくるURLを解析し、Webサーバ101の記憶領域に記憶しているファイルを要求元であるWebブラウザ10に送信するか、受信したリクエストをアプリケーションサーバ102に転送するかを判断する。本実施例においてはこの判断をファイル名の拡張子の種類より判断している。具体的にはHttpリクエストに含まれるファイル名の拡張子が「do」の場合はサービスと判断し、それ以外の拡張子ではファイルの要求と判断するよう設定した。
【0042】
なお、本発明におけるWebサーバ101の記憶領域は、HTMLにより記述されている画面の雛形101−2やJavaScriptにより実装された画面部品101−3及びその画面部品が利用するJavaScriptクラスライブラリ101−4等をファイル形式で記憶している。HTMLにより記述されている標準画面の雛形データは拡張子が「html」のファイルに、JavaScriptにより実装された画面部品やJavaScriptクラスライブラリは拡張子が「js」のファイルに記憶されている。
【0043】
Webサーバ101のプログラム101−1は、要求元であるWebブラウザ10がファイルを要求していると判断した場合、すなわち、Httpリクエストに含まれるファイル名の拡張子が「do」ではない場合、URLのファイル名に基づき記憶領域を検索し、要求されたファイルを要求元のWebブラウザ10に送信する。
【0044】
Webサーバ101のプログラム101−1は、要求元がサービスの実行を要求していると判断した場合、すなわち、Httpリクエストに含まれるファイル名の拡張子が「do」である場合、Webサーバ101のCPU201は受信したリクエストをアプリケーションサーバ102上で稼動するアプリケーションサーバのプログラム102−1に転送する。
【0045】
プログラム102−1は、アプリケーションサーバ102の記憶領域に記憶され、アプリケーションサーバ102のCPU201により記憶領域からRAMにロードされ、実行される。
【0046】
アプリケーションサーバのプログラム102−1は、サービスプログラムコンテナ(102−2)を持ち、このサービスプログラムコンテナ上でアプリケーションを構成する各種のサービスプログラム(102−3、102−4、…)が稼動する。
【0047】
102−3は、ユーザのHttpリクエストに含まれるサービス名からサービスプログラムを特定するアプリケーションプログラムである。
【0048】
102−4は、国・地域別のデザインデータをデータベースサーバ103上で稼動するデータベースプログラムに問い合わせて取得し、そのデザインデータをJSON(JavaScript Object Notation)という構造化データ書式で整形し、要求元のWebブラウザ10にそのデザインデータを送信するアプリケーションプログラムである。
【0049】
103−1は、データベースサーバのプログラムであり、データベースサーバ103の記憶領域に記憶されている。
【0050】
103−2は、画面に表示する文言を国・地域別の言語で記憶する領域である。
【0051】
103−3は、暦部品の種類を国・地域別に分類して記憶する領域である。ここに記憶された国・地域別の暦部品に従い、ユーザから選択された国・地域に対応する暦部品をパネル25に表示する。
【0052】
図4は、図3の機能構成図におけるインターネットアプリケーションの画面を表示する画面表示部24にインターネットアプリケーションの画面が表示された状態における機能構成図である。
【0053】
図4における画面表示部24は、JavaScriptにより実装された画面部品パネル25を持ち、さらにそのパネルは国・地域を選択するドロップダウンリスト26、ユーザ名入力フィールド27、生年月日を入力する暦部品28、暦部品により入力された生年月日を表示するラベル29等のJavaScriptにより実装された画面部品を持つ構成となっている。
【0054】
さらに、JavaScriptにより実装された画面部品の中にはWebサーバ101のプログラム101−1と非同期通信を行う非同期通信処理部40を持つ画面部品もある。
【0055】
画面表示部24に表示されているJavaScriptにより実装された画面部品やその画面部品に組み込まれている非同期通信処理部40は、Webブラウザ10が初期表示画面を構築する過程でWebサーバ101により取得したものである。
【0056】
ここで非同期通信処理部40について説明する。非同期通信処理部40は送信部41と受信部42より構成されている。画面部品は送信部41にてJavaScriptのクラスライブラリである「XMLHttpRequest」というクラスを使用することで画面部品からWebサーバ101に非同期通信でHttpリクエストを送ることが出来る。非同期通信で送信したHttpリクエストのレスポンスは受信部42で受け取る。
【0057】
本発明においては、パネル25や国・地域を選択するドロップダウンリスト26に非同期通信処理部40を持たせている。
【0058】
なお、パネル25が備える非同期通信処理部40の送信部41はWebサーバ101にアプリケーション標準の画面デザインを要求するよう実装され、受信部42は受信した画面デザインデータで画面を構築するよう実装されている。
【0059】
国・地域を選択するドロップダウンリスト26が備える非同期通信処理部40の送信部41は、ユーザにより国・地域が選択されると選択された国・地域と親和性の取れた画面デザインをWebサーバ101に要求するよう実装され、受信部42は得られたデザインデータをパネル25に渡し画面の書き換え依頼をするよう実装されている。
【0060】
なお、ユーザによるインターネットアプリケーションの操作は画面部品26〜29等を介して行う。
【0061】
以上がクライアントPC107、Webサーバ101、アプリケーションサーバ102、データベースサーバ103の機能構成についての説明である。
【0062】
次に、本発明におけるJSON形式の画面デザインデータの書式と記述例について説明する。
【0063】
まず、JSON形式の画面デザインデータの書式について説明する。図5に本発明におけるJSON形式の画面デザインデータの書式を載せる。画面デザインデータは、画面部品の種類501、画面部品を特定する識別子502(xtype)、画面部品の幅503(width)、画面部品の高さ504(height)、画面部品が参照するデータモデルの識別子505(model)、イベントハンドラの識別子506(handler)などより構成される。
【0064】
図6は、JSON形式の画面デザインデータの記述例であり、図7に示す画面を図5の書式に従い設計した場合の記述例である。また、図8に示す記述例は、図9に示す画面を設計した場合の記述例である。
【0065】
以上が本発明におけるJSON形式の画面デザインデータの書式と記述例についての説明である。
【0066】
次に、図10のフローチャートで示す処理について説明する。図10は、例えば、図7に示す英米圏向けの画面を、クライアントPC107が備えるディスプレイ210に表示されるWebブラウザ10に表示する処理におけるクライアントPC107の処理を示すフローチャートである。なお、本発明におけるカスタマイズとは、文言の他言語化や暦部品の置換のことを指す。
【0067】
なお、本実施例で説明する画面はユーザ情報を登録する画面を想定している。従って、画面の外観はユーザ名、ユーザの所属する国・地域、生年月日、性別、メールアドレスなどを編集する画面部品より構成されているものとする。
【0068】
また、Webブラウザ10の各種プログラムはクライアントPC107が備える記憶領域に記憶されている。ユーザからのWebブラウザプログラムの起動命令がCPU201に通知されると、CPU201はWebブラウザ10のプログラムを記憶領域からRAMにロードし、実行する。
ステップS1001では、クライアントPC107のCPU201は、URL入力欄21によりユーザからのURLの入力を受け付ける。なお、ここではURL入力欄にはWebサーバ101にアプリケーションの標準画面をリクエストするデータの入力が行われたとする。ユーザによりURLの入力がなされると、クライアントPC107のCPU201はステップS1001で受け付けたデータ(URL)をRAMに保存するとともに、URL入力欄21の表示内容をユーザが入力したデータ(URL)に変更する。仮に、ユーザにより入力されたURLが「http://serverhost:8080/RegistUser.html」であったとすると、HTTPリクエストを送信するWebサーバのホスト名はserverhost、ポート番号は8080、ファイル名はRegistUser.htmlであることになる。
【0069】
ステップS1002では、クライアントPC107のCPU201は、ユーザによるクライアントPC107に備えられているキーボードやマウスなどのポインティングデバイスからの指示に基づいたWebブラウザ10が備えるツールバー23上の送信ボタンに対して発行される押下イベントが検出されると、CPU201はRAMよりWebブラウザ10が備えるURL入力欄21にユーザにより入力されたデータを取り出し、そのデータをWebサーバ101に同期通信50を利用して送信する。なお、CPU201がWebサーバ101にサービスをリクエストするときはHTTPプロトコルのPOSTメソッドを利用し、リソースの取得をしたい場合にはGETメソッドを使用する。ここではステップS1001にてRegistUser.htmlというHTMLファイルの取得を要求しているのでGETメソッドが使われることになる。
【0070】
ステップS1003では、クライアントPC107のCPU201は、Webサーバ101からのレスポンスデータを同期通信51を利用して受信する。そして、受信したレスポンスデータをRAM203に記憶する。
【0071】
なお、このフローチャートにおけるレスポンスデータはHTML(HyperText Markup Language)で書かれているものとする。また、本実施例におけるスクリプトとは特に断りがない限りJavaScriptのことを指す。なお、レスポンスデータとして受信するHTML文書RegistUser.htmlには画面部品を実装したスクリプト、非同期通信処理部40を備えた画面部品を実装したスクリプト及びそれらのスクリプトが使用するクラスライブラリをWebサーバ101に要求する命令が記述されている。
【0072】
ステップS1004では、クライアントPC107のCPU201はステップS1003でWebブラウザ10が受信したレスポンスデータの命令を解釈する。
【0073】
そして、ステップS1005では、クライアントPC107のCPU201はステップS1004で解釈した命令がWebサーバ101へのリクエストか否かを判断する。
【0074】
Webサーバ101へのリクエストであれば(ステップS1005:YES)処理をステップS1002へ移行し、再度Webサーバ101へリクエストを送信する。
【0075】
Webサーバ101へのリクエストでなければ(ステップS1005:NO)、処理をステップS1006に移行し、その命令の内容を判断する。
【0076】
ステップS1006で、ステップS1004で解釈した命令がスクリプトが利用するクラスライブラリの要求であると判断された場合(ステップS1006:クラスライブラリ)、クライアントPC107のCPU201は処理をステップS1007に移行し、当該クラスライブラリをRAM203に取り込む。
【0077】
S1006においてクラスライブラリの要求でない判断された場合は(ステップS1006:クラスライブラリ以外)、クライアントPC107のCPU201は、処理をステップS1008に移行する。
【0078】
ステップS1008では、S1007を実行中、そのスクリプトの中に直ちに実行しなければならない非同期通信処理が存在するか否かを判断する。
【0079】
S1008にて実行しなければならない非同期通信処理が存在しないと判断した場合は(ステップS1008:NO)、処理を終了する(END)。
【0080】
S1008にて実行しなければならない非同期通信処理が存在すると判断した場合(ステップS1008:YES)、クライアントPC107のCPU201は非同期通信60を利用して画面構築に必要なデザインデータをWebサーバ101にリクエストする(S1009)。なお、ここでは標準画面の構築に必要なデザインデータをリクエストする命令が存在すると仮定する。このリクエスト命令のURLがhttp://serverhost:8080/ GetDesigneData.do?country=Americaであるとすると、リクエストの送信先となるWebサーバ101のホスト名はserverhost、ポート番号は8080、サービス名はGetStandardDesigneData.do、サービスプログラムに引き渡される引数はcountry=Americaとなる。
【0081】
また、サービスプログラムに渡される引数はkey=value のような組で記述する。なお、送信したい組が複数個ある場合にはkey1=value1&key2=value2&…keyN=valueNのように&で区切る。この例では初期表示を英米圏のユーザ向けの画面としているため、country=Americaとなる。また、URLの中で出現する「?」はサービス名と引数の区切り文字である。
【0082】
ステップS1010では、クライアントPC107のCPU201は、Webサーバ101が非同期通信61を利用して送信したレスポンスデータを受信する。このレスポンスデータにはS1009にてリクエストした標準画面の構築に必要なデザインデータ(図6)が含まれている。
【0083】
ステップS1010でデザインデータを受信すると、クライアントPC107のCPU201は、処理をステップS1007に戻し、受信したレスポンスデータに含まれるデザインデータを利用して画面を構築する(ステップS1011)。
【0084】
このように情報処理装置107のCPU201は、レスポンスデータにWebサーバ101へのリクエスト命令が存在しなくなるまで再帰的にWebサーバに問い合わせを行い、受信したデータを利用して標準画面(図7)を構築する。
【0085】
次に、図11のフローチャートで示す処理について説明する。図11は、例えば、図7に示す英米圏向けの画面を、クライアントPC107が備えるディスプレイ210に表示されるWebブラウザ10に表示する処理におけるサーバ側の処理を示すフローチャートである。なお、Webサーバ101のプログラム101−1はWebサーバ101の記憶領域に記憶され、必要に応じRAM203にロードされ、CPU201によって実行される。
【0086】
ステップS1101では、Webサーバ101のCPU201はHTTPリクエストをクライアントPC107から受信し、Webサーバ101のCPU201は受信したHTTPリクエストをRAM203に記憶する。
【0087】
そして、処理をステップS1102に移行し、Webサーバ101のCPU201はRAM203に記憶したHTTPリクエストを読み出し解析を行う。
【0088】
そしてステップS1103では、Webサーバ101のCPU201は、解析したリクエストがファイルの要求なのかサービス実行の要求なのかを判断する。
【0089】
なお、Webサーバ101のCPU201がステップS1103の判断で用いる規則はあらかじめWebサーバ101が備える記憶領域にファイル形式で保管しているものとする。Webサーバ101のCPU201はこの設定ファイルを記憶領域からRAM203にロードし、CPU201はリクエストがファイルの要求なのかサービス実行なのかを判断する際に当該設定ファイルを参照する。
【0090】
本実施例では、URLのファイル名の拡張子が「do」の場合はサービスと判断するようファイルに定義するものとし、例えばファイル名の拡張子が「html」や「js」などで指定されているとすると、CPU201はリクエストがファイルであると判断する。
【0091】
ステップS1103で、リクエストがファイルであると判断すると(ステップS1103:NO)、処理をステップS1104に移行し、ファイル名に従い特定されるファイルを記憶領域から取得し、その内容のデータをRAM203に記憶する。
【0092】
そして、Webサーバ101のCPU201はRAM203よりファイルの内容のデータを読み込み、レスポンスデータを作り(ステップS1105)、処理をステップS1112へ進める。
【0093】
他方、ステップS1103でリクエストがサービスであると判断した場合は(ステップS1103:YES)、Webサーバ101のCPU201は処理をステップS1106へ移行し、RAM203から取り出したリクエストをアプリケーションサーバ102へ転送する。
【0094】
なお、ステップS1103でリクエストがサービスであると判断する場合としては、例えば、Webサーバ101のCPU201が受信したリクエストがhttp://serverhost:8080/ GetDesigneData.do?country=Americaであった場合などが挙げられる。
【0095】
ステップS1107では、アプリケーションサーバ102のCPU201は、Webサーバ101から送信されたリクエストを受信し、解析する。
【0096】
次いでステップS1108では、ステップS1107で受信したリクエストに従いサービスプログラムを特定する。
【0097】
具体的には、アプリケーションサーバ102の記憶領域にはサービス名と処理プログラムの関係が定義されているファイルが記憶され、アプリケーションサーバ102のCPU201はファイルの内容をRAM203に読込み、サービス名をKEYとする連想配列を用いてサービス名と処理プログラムの関係を記憶している。
【0098】
HTTPリクエストを受けたアプリケーションサーバ102のCPU201は受信したリクエストを解析し、アプリケーションサーバ102のCPU201はURLの解析により得たサービス名をKEYにRAM203に記憶されている前記連想配列に問い合わせを行い、実行すべきサービスプログラムを特定する(ステップS1108)。
【0099】
仮に、サービスプログラムの名称がGetDesigneDataならば、アプリケーションサーバ102のCPU201はこの名称をKEYに連想配列を検索し、対応するサービスプログラムを特定し実行する。なお、本実施例では、GetDesigneDataに対応するプログラムは画面デザインを作成するサービスプログラムとする。このサービスプログラムに「country」の値である「America」を渡すと、サービスプログラムはその引数の値ともっとも親和性の取れたデザインデータを作成する。
【0100】
そして、アプリケーションサーバ102のCPU201は処理をステップS1109に移行し、特定したサービスプログラムを記憶領域からRAM203に読み込み、サービスプログラムを実行する。この例では、CPU201はデータベースサーバ103に「country」の値である「America」と最も親和性の取れた画面のデザインデータを問い合わせ取得し、さらにそのデータをJSON形式(図5)のデータに変換し、RAM203に記憶する。
【0101】
ステップS1110では、アプリケーションサーバ102のCPU201はRAM203に記憶されたJSON形式の標準画面のデザインデータを参照し、その標準画面のデザインデータをレスポンスデータに埋め込みRAM203に記憶する。
【0102】
そして、ステップS1111に処理を移行し、アプリケーションサーバ102のCPU201はRAM203に記憶された標準画面のデザインデータを含むレスポンスデータを参照し、Webサーバ101に送信する。
【0103】
そして、Webサーバ101のCPU201はステップS1111で送信されたレスポンスデータを受信し、受信したレスポンスデータをクライアントPC107のWebブラウザ10に送信する(ステップS1112)。
【0104】
次に、図12のフローチャートで示す処理について説明する。図12は、クライアントPC107のWebブラウザ10の画面に表示される文言をユーザにより選択された「国・地域」で使用されている言語へ書き換えを行い、Webブラウザ10の画面に表示されている暦部品をユーザにより選択された「国・地域」と親和性の高い暦部品に置換する処理におけるクライアントPC107の処理を示すフローチャートである。
【0105】
ステップS1201では、クライアントPC107のCPU201は、Webアプリケーションの画面が備える「国・地域」を選択する画面部品に対するユーザからの選択イベントを受け付ける。
【0106】
そして、クライアントPC107のCPU201はステップS1201で受け付けた「国・地域」のデータをRAM203に保存するとともに、画面部品の表示内容をユーザにより選択された「国・地域」のデータに変更する。なお、ここでは「Japan」が選択されたとする。
【0107】
そして、ステップS1202では、クライアントPC107のCPU201は、ユーザにより選択された「国・地域」と親和性の取れた文言データや暦部品の種類をWebサーバ101に要求するためにHTTPリクエストURLを作りRAM203に記憶する。なお、「国・地域」を選択する画面部品でJapanが選択されているのでステップS1202にて作成されるHTTPリクエストURLはhttp://serverhost:8080/GetDesigneData.do? country=Japanとなる。ここで、country=Japanはサービスプログラムに渡される引数を表す。
【0108】
そして、ステップS1203では、クライアントPC107のCPU201はステップS1202で記憶したHTTPリクエストURLをRAM203より読み出し、そのリクエストメッセージを非同期通信60を利用してWebサーバ101に送信する。Webサーバにサービスの実行を要求するためHTTPメソッドには「POST」を使用する。
【0109】
そして、ステップS1204では、クライアントPC107のCPU201はユーザにより選択された「国・地域」と親和性の取れた文言データや暦部品の種類を含む画面デザインデータ(図9)を非同期通信61によりレスポンスデータとしてWebサーバ101から受信し、RAM203に記憶する。
【0110】
そして、ステップS1205に処理を移行し、クライアントPC107のCPU201はステップS1204でRAM203に記憶したレスポンスメッセージを参照し解釈を始める。
【0111】
ステップS1205における解釈の結果、カスタマイズが必要な部品があるか否かを判断する(ステップS1206)。
【0112】
カスタマイズが必要な部品があると判断した場合(ステップS1206:YES)は、処理をステップS1207に移行し、カスタマイズが必要な部品が無いと判断した場合(ステップS1206:NO)は、本フローチャートの処理を終了する。
【0113】
ここで、クライアントPC107のCPU201がWebブラウザ10内の画面の暦部品の置換(カスタマイズ)をするかしないかについてどのように判断しているかについて説明する。
【0114】
まず、CPU201は受信部42が受信したレスポンスデータ内に存在する画面部品のidの値とWebブラウザ10内の画面を構成する画面部品のidの値を比較し、一致する画面部品が存在するかを調べる。Idの値が一致する画面部品が存在する場合、さらに互いのxtypeの値を比較し、値が異なっていればWebブラウザ10内の画面を構成する画面部品をレスポンスデータの画面部品に置き換える必要があると判断する。一方、互いのxtypeの値を比較し、値が一致していれば置き換え(カスタマイズ)は不要と判断する。
【0115】
そして、ステップS1207では、クライアントPC107のCPU201が暦部品の置換が必要であるか否かを判断する。暦部品の置換が必要であると判断すると(ステップS1207:YES)、処理をステップS1208に移行し、レスポンスデータから取得したxtypeの値をKEYにして、RAM203から異なる暦部品を実装したスクリプトを読み出し、画面を構成している既存の暦部品と置換する。
【0116】
他方、暦部品の置換が必要ないと判断すると(ステップS1207:NO)、処理をステップS1209に移行する。
【0117】
ステップS1209では、クライアントPC107のCPU201は、文言の他言語化が必要であるか否かを判断する。文言の他言語化が必要であると判断すると(ステップS1209:YES)、処理をステップS1210に移行し、文言を他言語化する。
【0118】
ここで、クライアントPC107のCPU201がWebブラウザ内の画面に存在する文言の他言語化をするか否かをどのように判断しているかについて説明する。
【0119】
まず、CPU201は受信部42が受信したレスポンスデータ内に存在する画面部品のidの値とWebブラウザ内の画面を構成する画面部品のidの値を比較し、一致する画面部品が存在するかを調べる。一致する画面部品が存在する場合、さらに互いのlabelの値を比較し、値が異なっていればWebブラウザ内の画面を構成する画面部品に表示される文言をレスポンスデータの文言に置き換える必要があると判断する。一方、互いのlabelの値を比較し、値が一致していれば置き換えは不要であると判断する。
【0120】
クライアントPC107のCPU201が文言の置き換えが必要であると判断した場合、レスポンスデータから取得したlabelの値を用いて既存の文言を書き替える(ステップS1210)。そして、クライアントPC107のCPU201はステップS1206に処理を移す。
【0121】
なお、ステップS1209において文言の他言語化が不要であると判断した場合(ステップS1209:NO)は、処理をステップS1211に移行し、その他必要な処理を行う。そして、処理をステップS1206に移行する。
ステップS1206においてクライアントPC107のCPU201が、処理すべき命令が存在していないと判断した場合には、本フローチャートで示す処理を終了する(END)。本フローチャートの処理の結果、Webブラウザの画面表示部24は図9のように書き換えられることになる。
【0122】
次に、図13のフローチャートで示す処理について説明する。図13は、クライアントPC107のWebブラウザ10の画面に表示される文言のユーザにより選択された「国・地域」で使用されている言語への書き換えや、Webブラウザ10の画面に表示されている暦部品をユーザにより選択された「国・地域」と親和性の高い暦部品に置換する処理におけるサーバ側の処理を示すフローチャートである。
【0123】
ステップS1301では、Webサーバ101のCPU201はクライアントPCからHTTPリクエストを受信し、受信したリクエストURLをRAM203に記憶する。
【0124】
なお、本実施例では、受信したURLをhttp://serverhost:8080/GetDesigneData.do? country=Japanとする。
【0125】
そして、Webサーバ101のCPU201はRAM203に記憶したリクエストのURLを読み出し解析を行い、そのリクエストがファイルの要求なのかサービス実行の要求なのかを判断する。本実施例では、受信したURLはhttp://serverhost:8080/GetDesigneData.do? country=Japanであるため、Webサーバ101のCPU201はサービス実行の要求と判断し、リクエストのURLをアプリケーションサーバ102に転送する(ステップS1302)。
【0126】
そして、ステップS1303では、アプリケーションサーバ102のCPU201はステップS1302で転送されたリクエストのURLを解析し、実行するサービスプログラムを判断する。
【0127】
実行するサービスプログラムが「国・地域」に対応するデータの取得である場合には、処理をステップS1304に移行し、その他のサービスである場合には処理をステップS1305に移行する。
【0128】
なお、本実施例においては、GetDesigneDataにより特定されるサービスプログラムは、引数として受け取った「国・地域」を利用して画面部品に表示する文言や暦部品の種類をデータベースサーバ103に問い合わせ、取り出すものである。
したがって、ステップS1304に移行することになる。
【0129】
そして、ステップS1304において、アプリケーションサーバ102のCPU201は特定したサービスプログラムを記憶領域からRAM203に読み込み、サービスプログラムの実行を開始する。
【0130】
アプリケーションサーバ102のCPU201は、「国・地域」の値がJapanなので、Japanに対応する文言や暦部品のタイプをデータベースサーバ103に問い合わせ、取り出した値をRAM203に記憶する。
【0131】
そして、処理をステップS1306に移行し、アプリケーションサーバ102のCPU201は、RAM203に記憶されている暦部品のタイプと画面部品に表示する文言を参照し、JSON形式の画面デザインデータに整形する。さらにアプリケーションサーバ102のCPU201はその画面デザインデータを含むレスポンスメッセージを作りRAM203に記憶する。
【0132】
そして、処理をステップS1307に移行し、アプリケーションサーバ102のCPU201はRAM203に記憶されているレスポンスメッセージを参照し、Webサーバ101に送信する。
【0133】
Webサーバ101のCPU201は受信したレスポンスメッセージをWebブラウザ10に非同期通信61を利用して送信する。
【0134】
図14は、ユーザがクライアントPC107のWebブラウザ10上の暦部品を使用して年月日を登録する処理を示すフローチャートである。
【0135】
ステップS1401では、クライアントPC107のCPU201は、クライアントPC107が備えるディスプレイ210に表示されるWebブラウザ10に表示される画面の構成要素である暦部品に対する操作を受け付ける。
【0136】
クライアントPC107のCPU201が暦部品に対する編集確定イベントを検出すると、処理をステップS1402に移行し、CPU201は暦部品上で設定された年月日データを取り出し、そのデータをRAM203に記憶する。
【0137】
そして、処理をステップS1403に移行し、CPU201はRAM203より年月日データを取り出し、年月日表示フィールドに表示する年月日を書き換える。
【0138】
上述する処理を行うことにより、ユーザにより国・地域が選択されることで、選択された国・地域に親和する暦を表示することが可能となり、ユーザの操作性の向上を図ることができる。さらに、暦部品の置換えを非同期通信を用いて行うことで、画面全体が更新されることがないため、画面のちらつきが低減され、ユーザの不快感。ストレスを低減させることが可能とる。
【0139】
以上のように、前述した実施例の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0140】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0141】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0142】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0143】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0144】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0145】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施例およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0146】
101 Webサーバ
102 アプリケーションサーバ
103 データベースサーバ
104、105、106 ネットワーク
107−1、107−2、107−N クライアントPC
【技術分野】
【0001】
本発明は、Webアプリケーションが提供する画面を構成する画面部品のカスタマイズを行う技術に関するものである。
【背景技術】
【0002】
近年のインターネットの急速な普及と,それに伴うWeb上での技術の進化に伴い、ブラウザ型ウェブアプリケーションの利用が急速に広がっている。
【0003】
また、近年の国際化に伴い、それぞれ異なる国・地域に住み、異なる言語や異なる暦を使うユーザが同一のWebサービスを利用する機会が増加している。
【0004】
そして、Webサービスの利用にあたっては、Webサービスによりユーザ登録を求められるのが一般的であり、ユーザ登録においてはユーザの氏名、性別、生年月日、連絡先などの個人情報をシステムに登録することになる。
【0005】
そこで、異なる言語を使用するユーザの操作性を向上させるべく、ユーザから「国・地域」の選択を受け付けることで、表示言語の切り替えを行ってくれるサイトも存在する。
【0006】
また、ユーザの所望に応じて暦の切り替えを行う技術として、例えば特許文献1のように、電話、ファクシミリ等の通信端末装置が備えるディスプレイの暦を西暦又は和暦で表示する技術が公開されている。
【特許文献1】特開2001−350562号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、Webサービスが表示言語の切り替えを行ったとしても、生年月日を入力するための暦部品についてはアプリケーション固定であることが多く、暦部品の置換はなされない。
【0008】
そのため、Webサービスが提供する画面内の生年月日の入力フォームが西暦の場合、ユーザが選択した「国・地域」が日本であろうがイスラム圏の国家であろうが、生年月日は西暦での入力が要求されることになり、入力間違いが生じてしまう。
【0009】
また、特許文献1において公開されている技術についても、通信端末装置上での暦表示の切り替えに関する技術であり、Webサービスの利用にあたり求められるユーザ登録・編集フォームで利用することまでは考えられていない。
【課題を解決するための手段】
【0010】
そこで、本発明の目的は、ユーザからの「国・地域」の選択を受け付け、ユーザにとって慣習的に親和性のある暦部品に置き換えを行うことで、異なる国・地域に住み、異なる言語や異なる暦を使うユーザにとって使いやすいWebサービスを提供する仕組みを実現することにある。
【0011】
本発明の情報処理装置は、暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置であって、ユーザから国および/または地域の情報の指定を受け付ける受付手段と、前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、前記取得手段により取得した暦部品を表示する表示手段とを備えることを特徴とする。
【0012】
また、本発明の情報処理方法は、暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置の情報処理方法であって、受付手段が、ユーザから国および/または地域の情報の指定を受け付ける受付工程と、送信手段が、前記受付工程でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信工程と、取得手段が、前記送信工程で前記送信手段により送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得工程と、表示手段が、前記取得工程で前記取得手段により取得した暦部品を表示する表示工程とを備えることを特徴とする。
【発明の効果】
【0013】
また、本発明のプログラムは、暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置をユーザから国および/または地域の情報の指定を受け付ける受付手段と、前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、前記取得手段により取得した暦部品を表示する表示手段として機能させることを特徴とする。
【0014】
本発明によれば、同一のWebサービスを利用しながらも年月日を入力する際、ユーザは慣習的になじみのある暦部品の使用が可能となり、例えば入力間違いを減らせるといったように、ユーザの操作性を向上させることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施例に係る情報処理システムの構成を示す図である。
【図2】クライアントPC、Webサーバ、アプリケーションサーバ、データベースサーバの基本構成を示すブロック図である。
【図3】クライアントPCのディスプレイにインターネットアプリケーションの画面が表示される前の状態における機能構成図である。
【図4】クライアントPCのディスプレイにインターネットアプリケーションの画面が表示された状態における機能構成図である。
【図5】JSON形式の画面デザインデータの書式の一例を示す図である。
【図6】英米向けの画面デザインデータの一例を示す図である。
【図7】図6に示すデザインデータにより生成した画面を示す図である。
【図8】「国・地域」で日本が選択された場合のデザインデータの一例を示す図である。
【図9】図8に示すデザインデータにより生成した画面を示す図である。
【図10】図7に示す英米向け画面をセットアップする処理におけるクライアントPCの処理を示すフローチャートである。
【図11】図7に示す英米向け画面をセットアップする処理におけるサーバ側の処理を示すフローチャートである。
【図12】言語・暦部品を日本向けに書き換える処理におけるクライアントPCの処理を示すフローチャートである。
【図13】言語・暦部品を日本向けに書き換える処理におけるサーバ側の処理を示すフローチャートである。
【図14】画面上の暦部品を介して年月日の登録をする処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を適用した好適な実施例を、添付図面を参照しながら詳細に説明する。
【0017】
図1は、本発明におけるWebアプリケーションを実現するシステム構成の一例を示す図である。
【0018】
101はWebサーバであって、クライアントPC107のブラウザからの要求に応じて、蓄積しているHTML文書や画像等の表示を返すサービスが稼動する。
【0019】
102はアプリケーションサーバであって、Webアプリケーションが稼動する。アプリケーション標準の要件についてはアプリケーションサーバ102で管理する。
【0020】
103はデータベースサーバであって、アプリケーション標準の要件に対するカスタマイズの要件、すなわち文言、ロゴ、部品のデザインデータなどを記憶している。なお、アプリケーションの処理結果もここに記憶する。
【0021】
104はWebサーバ101とアプリケーションサーバ102を相互にデータ通信可能に接続するためのネットワークである。
【0022】
105はアプリケーションサーバ102とデータベースサーバ103を相互にデータ通信可能に接続するためのネットワークである。
【0023】
106はWebサーバ101とクライアントPC107−1、107−2、…107−Nを相互にデータ通信可能に接続するためのネットワークである。
【0024】
なお、Webサーバ101、アプリケーションサーバ102及びデータベースサーバ103はネットワーク上に分散していても、分散していなくてもどちらの構成であってもかまわない。
【0025】
107−1、107−2・・・107−Nは同じWebアプリケーションを使用するクライアントPCの集合である。
【0026】
次に、図2を用いて、図1に示したWebサーバ101、アプリケーションサーバ102、データベースサーバ103、クライアントPC107のハードウェア構成について説明する。
【0027】
図2は、Webサーバ101、アプリケーションサーバ102、データベースサーバ103、クライアントPC107に適用可能な情報処理装置のハードウェア構成例を示すブロック図である。CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0028】
図2に示すように、Webサーバ101、アプリケーションサーバ102、データベースサーバ103、クライアントPC107は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)203、ROM(Read Only Memory)202、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0029】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(BASIC INPUT / OUTPUT SYSTEM)やオペレーティングシステムプログラム(以下、OS)や、各コンピュータが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が外部メモリ211に記憶されている。なお外部メモリ211はデータベースであってもよい。
【0030】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、ロードしたプログラムを実行することで各種動作を実現するものである。
【0031】
また、入力コントローラ(入力C)205は、入力装置209からの入力を制御する。なお、入力装置は、マウス等のポインティングデバイスでもキーボードでもいずれの入力装置であってもよい。
【0032】
ビデオコントローラ(VC)206は、ディスプレイ210等の表示器への表示を制御する。なお、表示器は液晶ディスプレイでもCRTディスプレイでもいずれの表示器でも構わない。これらは必要に応じてユーザが使用するものである。
【0033】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)等の外部メモリ211へのアクセスを制御する。
【0034】
通信I/Fコントローラ(通信I/FC)208は、ネットワーク(例えば、図1に示したLAN104)を介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0035】
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上に各種操作画面およびマウスカーソル等(不図示)を表示しユーザ指示を可能とする。
【0036】
なお、後述する各処理を実現するためのプログラムは、例えば外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイルおよび各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明についても後述する。
【0037】
次に、図3、図4を用いて、本発明におけるクライアントPC107、Webサーバ101、アプリケーションサーバ102、データベースサーバ103の機能構成を説明する。なお、図3は、クライアントPC107のディスプレイ210にインターネットアプリケーションの画面が表示される前の状態における機能構成図であり、図4は、クライアントPC107のディスプレイ210にインターネットアプリケーションの画面が表示された状態における機能構成図である。
【0038】
Webブラウザ10は、マイクロソフト社のインターネットエクスプローラのようなWebブラウザである。Webブラウザ10のプログラムはクライアントPC107が備える記憶領域(ROM202や外部メモリ211)に記憶されている。
【0039】
ユーザインターフェース部20は、Webブラウザ10の外観を表す領域であり、主にURL入力欄21、メニューバー22、ツールバー23及び画面表示部24から構成されている。URLとは、インターネット上のリソース(資源)を特定するための形式的な記号の並びであり、WWWをはじめとするインターネットアプリケーションにおいて提供されるリソースを、主にその所在を表記することで特定する。なお、リソースとは(主にインターネット上の)データやサービスを指す。本発明ではWebブラウザ10とWebサーバ101間の通信はHTTPという通信規約を使用するものとする。Webブラウザ10が備えるURL入力欄21において「http://ホスト名:ポート番号/ファイル名」という書式でインターネット上のリソースを指定する。ここで、Webサーバ101が稼動するホストのホスト名が解決されない場合はホスト名の代わりにホストのIPアドレスを指定してもかまわない。また、ポート番号とはWebサーバ101にてWebサーバのプロセスが利用しているポートを指す。ツールバー23にはユーザが頻繁に使用する機能を起動するボタンが配置されている。ブラウザの操作はメニューバー22上のメニュー項目やツールバー23上のボタンを介して行う。画面表示部24にはインターネットアプリケーションの画面が表示される。
【0040】
JavaScriptエンジン30はJavaScript言語実行エンジンであって、Webブラウザ10の内部に組み込まれている。
【0041】
Webサーバ101−1はオープンソースソフトウェアのApacheやマイクロソフト社のIIS(Internet Information Server)のようなWebサーバ101のプログラムである。Webサーバ101のプログラムはWebサーバ101の記憶領域(ROM202や外部メモリ211)に記憶されている。なお、Webサーバ101のプログラム101−1は記憶領域に記憶されているWebサーバ設定ファイルの内容に従って動作する。Webサーバ101のプログラム101−1はWebブラウザ10から送信されてくるURLを解析し、Webサーバ101の記憶領域に記憶しているファイルを要求元であるWebブラウザ10に送信するか、受信したリクエストをアプリケーションサーバ102に転送するかを判断する。本実施例においてはこの判断をファイル名の拡張子の種類より判断している。具体的にはHttpリクエストに含まれるファイル名の拡張子が「do」の場合はサービスと判断し、それ以外の拡張子ではファイルの要求と判断するよう設定した。
【0042】
なお、本発明におけるWebサーバ101の記憶領域は、HTMLにより記述されている画面の雛形101−2やJavaScriptにより実装された画面部品101−3及びその画面部品が利用するJavaScriptクラスライブラリ101−4等をファイル形式で記憶している。HTMLにより記述されている標準画面の雛形データは拡張子が「html」のファイルに、JavaScriptにより実装された画面部品やJavaScriptクラスライブラリは拡張子が「js」のファイルに記憶されている。
【0043】
Webサーバ101のプログラム101−1は、要求元であるWebブラウザ10がファイルを要求していると判断した場合、すなわち、Httpリクエストに含まれるファイル名の拡張子が「do」ではない場合、URLのファイル名に基づき記憶領域を検索し、要求されたファイルを要求元のWebブラウザ10に送信する。
【0044】
Webサーバ101のプログラム101−1は、要求元がサービスの実行を要求していると判断した場合、すなわち、Httpリクエストに含まれるファイル名の拡張子が「do」である場合、Webサーバ101のCPU201は受信したリクエストをアプリケーションサーバ102上で稼動するアプリケーションサーバのプログラム102−1に転送する。
【0045】
プログラム102−1は、アプリケーションサーバ102の記憶領域に記憶され、アプリケーションサーバ102のCPU201により記憶領域からRAMにロードされ、実行される。
【0046】
アプリケーションサーバのプログラム102−1は、サービスプログラムコンテナ(102−2)を持ち、このサービスプログラムコンテナ上でアプリケーションを構成する各種のサービスプログラム(102−3、102−4、…)が稼動する。
【0047】
102−3は、ユーザのHttpリクエストに含まれるサービス名からサービスプログラムを特定するアプリケーションプログラムである。
【0048】
102−4は、国・地域別のデザインデータをデータベースサーバ103上で稼動するデータベースプログラムに問い合わせて取得し、そのデザインデータをJSON(JavaScript Object Notation)という構造化データ書式で整形し、要求元のWebブラウザ10にそのデザインデータを送信するアプリケーションプログラムである。
【0049】
103−1は、データベースサーバのプログラムであり、データベースサーバ103の記憶領域に記憶されている。
【0050】
103−2は、画面に表示する文言を国・地域別の言語で記憶する領域である。
【0051】
103−3は、暦部品の種類を国・地域別に分類して記憶する領域である。ここに記憶された国・地域別の暦部品に従い、ユーザから選択された国・地域に対応する暦部品をパネル25に表示する。
【0052】
図4は、図3の機能構成図におけるインターネットアプリケーションの画面を表示する画面表示部24にインターネットアプリケーションの画面が表示された状態における機能構成図である。
【0053】
図4における画面表示部24は、JavaScriptにより実装された画面部品パネル25を持ち、さらにそのパネルは国・地域を選択するドロップダウンリスト26、ユーザ名入力フィールド27、生年月日を入力する暦部品28、暦部品により入力された生年月日を表示するラベル29等のJavaScriptにより実装された画面部品を持つ構成となっている。
【0054】
さらに、JavaScriptにより実装された画面部品の中にはWebサーバ101のプログラム101−1と非同期通信を行う非同期通信処理部40を持つ画面部品もある。
【0055】
画面表示部24に表示されているJavaScriptにより実装された画面部品やその画面部品に組み込まれている非同期通信処理部40は、Webブラウザ10が初期表示画面を構築する過程でWebサーバ101により取得したものである。
【0056】
ここで非同期通信処理部40について説明する。非同期通信処理部40は送信部41と受信部42より構成されている。画面部品は送信部41にてJavaScriptのクラスライブラリである「XMLHttpRequest」というクラスを使用することで画面部品からWebサーバ101に非同期通信でHttpリクエストを送ることが出来る。非同期通信で送信したHttpリクエストのレスポンスは受信部42で受け取る。
【0057】
本発明においては、パネル25や国・地域を選択するドロップダウンリスト26に非同期通信処理部40を持たせている。
【0058】
なお、パネル25が備える非同期通信処理部40の送信部41はWebサーバ101にアプリケーション標準の画面デザインを要求するよう実装され、受信部42は受信した画面デザインデータで画面を構築するよう実装されている。
【0059】
国・地域を選択するドロップダウンリスト26が備える非同期通信処理部40の送信部41は、ユーザにより国・地域が選択されると選択された国・地域と親和性の取れた画面デザインをWebサーバ101に要求するよう実装され、受信部42は得られたデザインデータをパネル25に渡し画面の書き換え依頼をするよう実装されている。
【0060】
なお、ユーザによるインターネットアプリケーションの操作は画面部品26〜29等を介して行う。
【0061】
以上がクライアントPC107、Webサーバ101、アプリケーションサーバ102、データベースサーバ103の機能構成についての説明である。
【0062】
次に、本発明におけるJSON形式の画面デザインデータの書式と記述例について説明する。
【0063】
まず、JSON形式の画面デザインデータの書式について説明する。図5に本発明におけるJSON形式の画面デザインデータの書式を載せる。画面デザインデータは、画面部品の種類501、画面部品を特定する識別子502(xtype)、画面部品の幅503(width)、画面部品の高さ504(height)、画面部品が参照するデータモデルの識別子505(model)、イベントハンドラの識別子506(handler)などより構成される。
【0064】
図6は、JSON形式の画面デザインデータの記述例であり、図7に示す画面を図5の書式に従い設計した場合の記述例である。また、図8に示す記述例は、図9に示す画面を設計した場合の記述例である。
【0065】
以上が本発明におけるJSON形式の画面デザインデータの書式と記述例についての説明である。
【0066】
次に、図10のフローチャートで示す処理について説明する。図10は、例えば、図7に示す英米圏向けの画面を、クライアントPC107が備えるディスプレイ210に表示されるWebブラウザ10に表示する処理におけるクライアントPC107の処理を示すフローチャートである。なお、本発明におけるカスタマイズとは、文言の他言語化や暦部品の置換のことを指す。
【0067】
なお、本実施例で説明する画面はユーザ情報を登録する画面を想定している。従って、画面の外観はユーザ名、ユーザの所属する国・地域、生年月日、性別、メールアドレスなどを編集する画面部品より構成されているものとする。
【0068】
また、Webブラウザ10の各種プログラムはクライアントPC107が備える記憶領域に記憶されている。ユーザからのWebブラウザプログラムの起動命令がCPU201に通知されると、CPU201はWebブラウザ10のプログラムを記憶領域からRAMにロードし、実行する。
ステップS1001では、クライアントPC107のCPU201は、URL入力欄21によりユーザからのURLの入力を受け付ける。なお、ここではURL入力欄にはWebサーバ101にアプリケーションの標準画面をリクエストするデータの入力が行われたとする。ユーザによりURLの入力がなされると、クライアントPC107のCPU201はステップS1001で受け付けたデータ(URL)をRAMに保存するとともに、URL入力欄21の表示内容をユーザが入力したデータ(URL)に変更する。仮に、ユーザにより入力されたURLが「http://serverhost:8080/RegistUser.html」であったとすると、HTTPリクエストを送信するWebサーバのホスト名はserverhost、ポート番号は8080、ファイル名はRegistUser.htmlであることになる。
【0069】
ステップS1002では、クライアントPC107のCPU201は、ユーザによるクライアントPC107に備えられているキーボードやマウスなどのポインティングデバイスからの指示に基づいたWebブラウザ10が備えるツールバー23上の送信ボタンに対して発行される押下イベントが検出されると、CPU201はRAMよりWebブラウザ10が備えるURL入力欄21にユーザにより入力されたデータを取り出し、そのデータをWebサーバ101に同期通信50を利用して送信する。なお、CPU201がWebサーバ101にサービスをリクエストするときはHTTPプロトコルのPOSTメソッドを利用し、リソースの取得をしたい場合にはGETメソッドを使用する。ここではステップS1001にてRegistUser.htmlというHTMLファイルの取得を要求しているのでGETメソッドが使われることになる。
【0070】
ステップS1003では、クライアントPC107のCPU201は、Webサーバ101からのレスポンスデータを同期通信51を利用して受信する。そして、受信したレスポンスデータをRAM203に記憶する。
【0071】
なお、このフローチャートにおけるレスポンスデータはHTML(HyperText Markup Language)で書かれているものとする。また、本実施例におけるスクリプトとは特に断りがない限りJavaScriptのことを指す。なお、レスポンスデータとして受信するHTML文書RegistUser.htmlには画面部品を実装したスクリプト、非同期通信処理部40を備えた画面部品を実装したスクリプト及びそれらのスクリプトが使用するクラスライブラリをWebサーバ101に要求する命令が記述されている。
【0072】
ステップS1004では、クライアントPC107のCPU201はステップS1003でWebブラウザ10が受信したレスポンスデータの命令を解釈する。
【0073】
そして、ステップS1005では、クライアントPC107のCPU201はステップS1004で解釈した命令がWebサーバ101へのリクエストか否かを判断する。
【0074】
Webサーバ101へのリクエストであれば(ステップS1005:YES)処理をステップS1002へ移行し、再度Webサーバ101へリクエストを送信する。
【0075】
Webサーバ101へのリクエストでなければ(ステップS1005:NO)、処理をステップS1006に移行し、その命令の内容を判断する。
【0076】
ステップS1006で、ステップS1004で解釈した命令がスクリプトが利用するクラスライブラリの要求であると判断された場合(ステップS1006:クラスライブラリ)、クライアントPC107のCPU201は処理をステップS1007に移行し、当該クラスライブラリをRAM203に取り込む。
【0077】
S1006においてクラスライブラリの要求でない判断された場合は(ステップS1006:クラスライブラリ以外)、クライアントPC107のCPU201は、処理をステップS1008に移行する。
【0078】
ステップS1008では、S1007を実行中、そのスクリプトの中に直ちに実行しなければならない非同期通信処理が存在するか否かを判断する。
【0079】
S1008にて実行しなければならない非同期通信処理が存在しないと判断した場合は(ステップS1008:NO)、処理を終了する(END)。
【0080】
S1008にて実行しなければならない非同期通信処理が存在すると判断した場合(ステップS1008:YES)、クライアントPC107のCPU201は非同期通信60を利用して画面構築に必要なデザインデータをWebサーバ101にリクエストする(S1009)。なお、ここでは標準画面の構築に必要なデザインデータをリクエストする命令が存在すると仮定する。このリクエスト命令のURLがhttp://serverhost:8080/ GetDesigneData.do?country=Americaであるとすると、リクエストの送信先となるWebサーバ101のホスト名はserverhost、ポート番号は8080、サービス名はGetStandardDesigneData.do、サービスプログラムに引き渡される引数はcountry=Americaとなる。
【0081】
また、サービスプログラムに渡される引数はkey=value のような組で記述する。なお、送信したい組が複数個ある場合にはkey1=value1&key2=value2&…keyN=valueNのように&で区切る。この例では初期表示を英米圏のユーザ向けの画面としているため、country=Americaとなる。また、URLの中で出現する「?」はサービス名と引数の区切り文字である。
【0082】
ステップS1010では、クライアントPC107のCPU201は、Webサーバ101が非同期通信61を利用して送信したレスポンスデータを受信する。このレスポンスデータにはS1009にてリクエストした標準画面の構築に必要なデザインデータ(図6)が含まれている。
【0083】
ステップS1010でデザインデータを受信すると、クライアントPC107のCPU201は、処理をステップS1007に戻し、受信したレスポンスデータに含まれるデザインデータを利用して画面を構築する(ステップS1011)。
【0084】
このように情報処理装置107のCPU201は、レスポンスデータにWebサーバ101へのリクエスト命令が存在しなくなるまで再帰的にWebサーバに問い合わせを行い、受信したデータを利用して標準画面(図7)を構築する。
【0085】
次に、図11のフローチャートで示す処理について説明する。図11は、例えば、図7に示す英米圏向けの画面を、クライアントPC107が備えるディスプレイ210に表示されるWebブラウザ10に表示する処理におけるサーバ側の処理を示すフローチャートである。なお、Webサーバ101のプログラム101−1はWebサーバ101の記憶領域に記憶され、必要に応じRAM203にロードされ、CPU201によって実行される。
【0086】
ステップS1101では、Webサーバ101のCPU201はHTTPリクエストをクライアントPC107から受信し、Webサーバ101のCPU201は受信したHTTPリクエストをRAM203に記憶する。
【0087】
そして、処理をステップS1102に移行し、Webサーバ101のCPU201はRAM203に記憶したHTTPリクエストを読み出し解析を行う。
【0088】
そしてステップS1103では、Webサーバ101のCPU201は、解析したリクエストがファイルの要求なのかサービス実行の要求なのかを判断する。
【0089】
なお、Webサーバ101のCPU201がステップS1103の判断で用いる規則はあらかじめWebサーバ101が備える記憶領域にファイル形式で保管しているものとする。Webサーバ101のCPU201はこの設定ファイルを記憶領域からRAM203にロードし、CPU201はリクエストがファイルの要求なのかサービス実行なのかを判断する際に当該設定ファイルを参照する。
【0090】
本実施例では、URLのファイル名の拡張子が「do」の場合はサービスと判断するようファイルに定義するものとし、例えばファイル名の拡張子が「html」や「js」などで指定されているとすると、CPU201はリクエストがファイルであると判断する。
【0091】
ステップS1103で、リクエストがファイルであると判断すると(ステップS1103:NO)、処理をステップS1104に移行し、ファイル名に従い特定されるファイルを記憶領域から取得し、その内容のデータをRAM203に記憶する。
【0092】
そして、Webサーバ101のCPU201はRAM203よりファイルの内容のデータを読み込み、レスポンスデータを作り(ステップS1105)、処理をステップS1112へ進める。
【0093】
他方、ステップS1103でリクエストがサービスであると判断した場合は(ステップS1103:YES)、Webサーバ101のCPU201は処理をステップS1106へ移行し、RAM203から取り出したリクエストをアプリケーションサーバ102へ転送する。
【0094】
なお、ステップS1103でリクエストがサービスであると判断する場合としては、例えば、Webサーバ101のCPU201が受信したリクエストがhttp://serverhost:8080/ GetDesigneData.do?country=Americaであった場合などが挙げられる。
【0095】
ステップS1107では、アプリケーションサーバ102のCPU201は、Webサーバ101から送信されたリクエストを受信し、解析する。
【0096】
次いでステップS1108では、ステップS1107で受信したリクエストに従いサービスプログラムを特定する。
【0097】
具体的には、アプリケーションサーバ102の記憶領域にはサービス名と処理プログラムの関係が定義されているファイルが記憶され、アプリケーションサーバ102のCPU201はファイルの内容をRAM203に読込み、サービス名をKEYとする連想配列を用いてサービス名と処理プログラムの関係を記憶している。
【0098】
HTTPリクエストを受けたアプリケーションサーバ102のCPU201は受信したリクエストを解析し、アプリケーションサーバ102のCPU201はURLの解析により得たサービス名をKEYにRAM203に記憶されている前記連想配列に問い合わせを行い、実行すべきサービスプログラムを特定する(ステップS1108)。
【0099】
仮に、サービスプログラムの名称がGetDesigneDataならば、アプリケーションサーバ102のCPU201はこの名称をKEYに連想配列を検索し、対応するサービスプログラムを特定し実行する。なお、本実施例では、GetDesigneDataに対応するプログラムは画面デザインを作成するサービスプログラムとする。このサービスプログラムに「country」の値である「America」を渡すと、サービスプログラムはその引数の値ともっとも親和性の取れたデザインデータを作成する。
【0100】
そして、アプリケーションサーバ102のCPU201は処理をステップS1109に移行し、特定したサービスプログラムを記憶領域からRAM203に読み込み、サービスプログラムを実行する。この例では、CPU201はデータベースサーバ103に「country」の値である「America」と最も親和性の取れた画面のデザインデータを問い合わせ取得し、さらにそのデータをJSON形式(図5)のデータに変換し、RAM203に記憶する。
【0101】
ステップS1110では、アプリケーションサーバ102のCPU201はRAM203に記憶されたJSON形式の標準画面のデザインデータを参照し、その標準画面のデザインデータをレスポンスデータに埋め込みRAM203に記憶する。
【0102】
そして、ステップS1111に処理を移行し、アプリケーションサーバ102のCPU201はRAM203に記憶された標準画面のデザインデータを含むレスポンスデータを参照し、Webサーバ101に送信する。
【0103】
そして、Webサーバ101のCPU201はステップS1111で送信されたレスポンスデータを受信し、受信したレスポンスデータをクライアントPC107のWebブラウザ10に送信する(ステップS1112)。
【0104】
次に、図12のフローチャートで示す処理について説明する。図12は、クライアントPC107のWebブラウザ10の画面に表示される文言をユーザにより選択された「国・地域」で使用されている言語へ書き換えを行い、Webブラウザ10の画面に表示されている暦部品をユーザにより選択された「国・地域」と親和性の高い暦部品に置換する処理におけるクライアントPC107の処理を示すフローチャートである。
【0105】
ステップS1201では、クライアントPC107のCPU201は、Webアプリケーションの画面が備える「国・地域」を選択する画面部品に対するユーザからの選択イベントを受け付ける。
【0106】
そして、クライアントPC107のCPU201はステップS1201で受け付けた「国・地域」のデータをRAM203に保存するとともに、画面部品の表示内容をユーザにより選択された「国・地域」のデータに変更する。なお、ここでは「Japan」が選択されたとする。
【0107】
そして、ステップS1202では、クライアントPC107のCPU201は、ユーザにより選択された「国・地域」と親和性の取れた文言データや暦部品の種類をWebサーバ101に要求するためにHTTPリクエストURLを作りRAM203に記憶する。なお、「国・地域」を選択する画面部品でJapanが選択されているのでステップS1202にて作成されるHTTPリクエストURLはhttp://serverhost:8080/GetDesigneData.do? country=Japanとなる。ここで、country=Japanはサービスプログラムに渡される引数を表す。
【0108】
そして、ステップS1203では、クライアントPC107のCPU201はステップS1202で記憶したHTTPリクエストURLをRAM203より読み出し、そのリクエストメッセージを非同期通信60を利用してWebサーバ101に送信する。Webサーバにサービスの実行を要求するためHTTPメソッドには「POST」を使用する。
【0109】
そして、ステップS1204では、クライアントPC107のCPU201はユーザにより選択された「国・地域」と親和性の取れた文言データや暦部品の種類を含む画面デザインデータ(図9)を非同期通信61によりレスポンスデータとしてWebサーバ101から受信し、RAM203に記憶する。
【0110】
そして、ステップS1205に処理を移行し、クライアントPC107のCPU201はステップS1204でRAM203に記憶したレスポンスメッセージを参照し解釈を始める。
【0111】
ステップS1205における解釈の結果、カスタマイズが必要な部品があるか否かを判断する(ステップS1206)。
【0112】
カスタマイズが必要な部品があると判断した場合(ステップS1206:YES)は、処理をステップS1207に移行し、カスタマイズが必要な部品が無いと判断した場合(ステップS1206:NO)は、本フローチャートの処理を終了する。
【0113】
ここで、クライアントPC107のCPU201がWebブラウザ10内の画面の暦部品の置換(カスタマイズ)をするかしないかについてどのように判断しているかについて説明する。
【0114】
まず、CPU201は受信部42が受信したレスポンスデータ内に存在する画面部品のidの値とWebブラウザ10内の画面を構成する画面部品のidの値を比較し、一致する画面部品が存在するかを調べる。Idの値が一致する画面部品が存在する場合、さらに互いのxtypeの値を比較し、値が異なっていればWebブラウザ10内の画面を構成する画面部品をレスポンスデータの画面部品に置き換える必要があると判断する。一方、互いのxtypeの値を比較し、値が一致していれば置き換え(カスタマイズ)は不要と判断する。
【0115】
そして、ステップS1207では、クライアントPC107のCPU201が暦部品の置換が必要であるか否かを判断する。暦部品の置換が必要であると判断すると(ステップS1207:YES)、処理をステップS1208に移行し、レスポンスデータから取得したxtypeの値をKEYにして、RAM203から異なる暦部品を実装したスクリプトを読み出し、画面を構成している既存の暦部品と置換する。
【0116】
他方、暦部品の置換が必要ないと判断すると(ステップS1207:NO)、処理をステップS1209に移行する。
【0117】
ステップS1209では、クライアントPC107のCPU201は、文言の他言語化が必要であるか否かを判断する。文言の他言語化が必要であると判断すると(ステップS1209:YES)、処理をステップS1210に移行し、文言を他言語化する。
【0118】
ここで、クライアントPC107のCPU201がWebブラウザ内の画面に存在する文言の他言語化をするか否かをどのように判断しているかについて説明する。
【0119】
まず、CPU201は受信部42が受信したレスポンスデータ内に存在する画面部品のidの値とWebブラウザ内の画面を構成する画面部品のidの値を比較し、一致する画面部品が存在するかを調べる。一致する画面部品が存在する場合、さらに互いのlabelの値を比較し、値が異なっていればWebブラウザ内の画面を構成する画面部品に表示される文言をレスポンスデータの文言に置き換える必要があると判断する。一方、互いのlabelの値を比較し、値が一致していれば置き換えは不要であると判断する。
【0120】
クライアントPC107のCPU201が文言の置き換えが必要であると判断した場合、レスポンスデータから取得したlabelの値を用いて既存の文言を書き替える(ステップS1210)。そして、クライアントPC107のCPU201はステップS1206に処理を移す。
【0121】
なお、ステップS1209において文言の他言語化が不要であると判断した場合(ステップS1209:NO)は、処理をステップS1211に移行し、その他必要な処理を行う。そして、処理をステップS1206に移行する。
ステップS1206においてクライアントPC107のCPU201が、処理すべき命令が存在していないと判断した場合には、本フローチャートで示す処理を終了する(END)。本フローチャートの処理の結果、Webブラウザの画面表示部24は図9のように書き換えられることになる。
【0122】
次に、図13のフローチャートで示す処理について説明する。図13は、クライアントPC107のWebブラウザ10の画面に表示される文言のユーザにより選択された「国・地域」で使用されている言語への書き換えや、Webブラウザ10の画面に表示されている暦部品をユーザにより選択された「国・地域」と親和性の高い暦部品に置換する処理におけるサーバ側の処理を示すフローチャートである。
【0123】
ステップS1301では、Webサーバ101のCPU201はクライアントPCからHTTPリクエストを受信し、受信したリクエストURLをRAM203に記憶する。
【0124】
なお、本実施例では、受信したURLをhttp://serverhost:8080/GetDesigneData.do? country=Japanとする。
【0125】
そして、Webサーバ101のCPU201はRAM203に記憶したリクエストのURLを読み出し解析を行い、そのリクエストがファイルの要求なのかサービス実行の要求なのかを判断する。本実施例では、受信したURLはhttp://serverhost:8080/GetDesigneData.do? country=Japanであるため、Webサーバ101のCPU201はサービス実行の要求と判断し、リクエストのURLをアプリケーションサーバ102に転送する(ステップS1302)。
【0126】
そして、ステップS1303では、アプリケーションサーバ102のCPU201はステップS1302で転送されたリクエストのURLを解析し、実行するサービスプログラムを判断する。
【0127】
実行するサービスプログラムが「国・地域」に対応するデータの取得である場合には、処理をステップS1304に移行し、その他のサービスである場合には処理をステップS1305に移行する。
【0128】
なお、本実施例においては、GetDesigneDataにより特定されるサービスプログラムは、引数として受け取った「国・地域」を利用して画面部品に表示する文言や暦部品の種類をデータベースサーバ103に問い合わせ、取り出すものである。
したがって、ステップS1304に移行することになる。
【0129】
そして、ステップS1304において、アプリケーションサーバ102のCPU201は特定したサービスプログラムを記憶領域からRAM203に読み込み、サービスプログラムの実行を開始する。
【0130】
アプリケーションサーバ102のCPU201は、「国・地域」の値がJapanなので、Japanに対応する文言や暦部品のタイプをデータベースサーバ103に問い合わせ、取り出した値をRAM203に記憶する。
【0131】
そして、処理をステップS1306に移行し、アプリケーションサーバ102のCPU201は、RAM203に記憶されている暦部品のタイプと画面部品に表示する文言を参照し、JSON形式の画面デザインデータに整形する。さらにアプリケーションサーバ102のCPU201はその画面デザインデータを含むレスポンスメッセージを作りRAM203に記憶する。
【0132】
そして、処理をステップS1307に移行し、アプリケーションサーバ102のCPU201はRAM203に記憶されているレスポンスメッセージを参照し、Webサーバ101に送信する。
【0133】
Webサーバ101のCPU201は受信したレスポンスメッセージをWebブラウザ10に非同期通信61を利用して送信する。
【0134】
図14は、ユーザがクライアントPC107のWebブラウザ10上の暦部品を使用して年月日を登録する処理を示すフローチャートである。
【0135】
ステップS1401では、クライアントPC107のCPU201は、クライアントPC107が備えるディスプレイ210に表示されるWebブラウザ10に表示される画面の構成要素である暦部品に対する操作を受け付ける。
【0136】
クライアントPC107のCPU201が暦部品に対する編集確定イベントを検出すると、処理をステップS1402に移行し、CPU201は暦部品上で設定された年月日データを取り出し、そのデータをRAM203に記憶する。
【0137】
そして、処理をステップS1403に移行し、CPU201はRAM203より年月日データを取り出し、年月日表示フィールドに表示する年月日を書き換える。
【0138】
上述する処理を行うことにより、ユーザにより国・地域が選択されることで、選択された国・地域に親和する暦を表示することが可能となり、ユーザの操作性の向上を図ることができる。さらに、暦部品の置換えを非同期通信を用いて行うことで、画面全体が更新されることがないため、画面のちらつきが低減され、ユーザの不快感。ストレスを低減させることが可能とる。
【0139】
以上のように、前述した実施例の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0140】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0141】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0142】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0143】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0144】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0145】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施例およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0146】
101 Webサーバ
102 アプリケーションサーバ
103 データベースサーバ
104、105、106 ネットワーク
107−1、107−2、107−N クライアントPC
【特許請求の範囲】
【請求項1】
暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置であって、
ユーザから国および/または地域の情報の指定を受け付ける受付手段と、
前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、
前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、
前記取得手段により取得した暦部品を表示する表示手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記送信手段は、非同期通信を用いて前記外部サーバに国または/および地域の情報を送信することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記取得手段は、外部サーバから非同期通信を用いて暦部品を取得することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置の情報処理方法であって、
受付手段が、ユーザから国および/または地域の情報の指定を受け付ける受付工程と、
送信手段が、前記受付工程でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信工程と、
取得手段が、前記送信工程で前記送信手段により送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得工程と、
表示手段が、前記取得工程で前記取得手段により取得した暦部品を表示する表示工程と
を備えることを特徴とする情報処理装置。
【請求項5】
暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置を
ユーザから国および/または地域の情報の指定を受け付ける受付手段と、
前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、
前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、
前記取得手段により取得した暦部品を表示する表示手段として機能させることを特徴とするプログラム。
【請求項1】
暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置であって、
ユーザから国および/または地域の情報の指定を受け付ける受付手段と、
前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、
前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、
前記取得手段により取得した暦部品を表示する表示手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記送信手段は、非同期通信を用いて前記外部サーバに国または/および地域の情報を送信することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記取得手段は、外部サーバから非同期通信を用いて暦部品を取得することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置の情報処理方法であって、
受付手段が、ユーザから国および/または地域の情報の指定を受け付ける受付工程と、
送信手段が、前記受付工程でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信工程と、
取得手段が、前記送信工程で前記送信手段により送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得工程と、
表示手段が、前記取得工程で前記取得手段により取得した暦部品を表示する表示工程と
を備えることを特徴とする情報処理装置。
【請求項5】
暦部品と国および/または地域の情報とを対応付けて記憶する外部サーバとの通信を行う情報処理装置を
ユーザから国および/または地域の情報の指定を受け付ける受付手段と、
前記受付手段でユーザから指定された国および/または地域の情報を前記外部サーバに送信する送信手段と、
前記送信された国および/または地域の情報に対応付けられた暦部品を前記外部サーバから取得する取得手段と、
前記取得手段により取得した暦部品を表示する表示手段として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−238131(P2011−238131A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2010−110467(P2010−110467)
【出願日】平成22年5月12日(2010.5.12)
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願日】平成22年5月12日(2010.5.12)
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】
[ Back to top ]