(57)【要約】【課題】モバイル端末等において、オフライン時にもデータの要求及びレスポンスの取得ができ、また効率的なデータの保持が可能となる仕組みを提供する。【解決手段】図３（ｂ）のように、ウェブブラウザで動作するビジネスロジックは、データ要求を行う必要が発生した場合には、データモデルストアに対してデータ要求を行う。データモデルストアは、サーバに対してデータ要求を行い、レスポンスされたデータの解析および保管を行った後に、取得したデータをビジネスロジックに引き渡す。また、サーバがデータモデルストアに対してデータ更新を通知することにより、データモデルストアは保管するデータを最新のものに更新する。図３（ｃ）のように、モバイル端末がオフライン時には、ビジネスロジックからのデータ要求に対して、データモデルストアはそれまでに保管したデータから該当するものを抽出しデータを引き渡す。【選択図】図３
2016126397.tif 000002
【特許請求の範囲】
【請求項１】
処理要求に対してデータを返信するサーバと情報処理装置とがネットワークを介して接続された情報処理システムであって、
前記情報処理装置は、
前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部と、
前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部と、
前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記情報処理装置は、当該情報処理端末がオンラインか否かを判定するオンライン判定部を、さらに備え、
前記データモデル制御部は、オンラインと判定された場合には、前記サーバに対して前記処理要求を行い、オフラインと判定された場合には、前記データモデル保管部から前記処理要求に対するデータを取得する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サーバは、データに更新があった場合に、前記情報処理装置へ通知する更新通知部を備え、
前記情報処理装置は、通知に含まれるデータモデルに対応するデータモデルが前記データモデル保管部に保管されている場合には、当該データモデルを更新する更新手段を、更に備える
ことを特徴とする請求項１又は請求項２に記載の情報処理システム。
【請求項４】
処理要求に対してデータを返信するサーバと、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部を備える情報処理装置とがネットワークを介して接続された情報処理システムの制御方法であって、
前記情報処理装置は、
前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析ステップと、
前記解析ステップにより解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御ステップと、
を含むことを特徴とする情報処理システムの制御方法。
【請求項５】
処理要求に対してデータを返信するサーバと情報処理装置とがネットワークを介して接続された情報処理システムのプログラムであって、
前記情報処理装置であるコンピュータを、
前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析手段、
前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管手段、
前記解析手段により解析された前記データモデルについて、前記データモデル保管手段に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管手段に追加するデータモデル制御部、
として機能させるための情報処理システムのプログラム。
【請求項６】
処理要求に対してデータを返信するサーバとネットワークを介して接続された情報処理装置であって、
前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部と、
前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部と、
前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部と、
を備えることを特徴とする情報処理装置。
【請求項７】
処理要求に対してデータを返信するサーバとネットワークを介して接続された、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部を備える情報処理装置の制御方法であって、
前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析ステップと、
前記解析ステップにより解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータを、処理要求に対してデータを返信するサーバとネットワークを介して接続された情報処理装置として機能させるためのプログラムであって、
前記コンピュータを、
前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部、
前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部、
前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブアプリケーションにおいて、オフライン時に使用するデータを保持および更新する技術に関する。
【背景技術】
【０００２】
ウェブアプリケーションは一般に、クライアント（ウェブブラウザ）が、データが必要になった際に、サーバに対してデータ取得のリクエストを行い、サーバはリクエストに応じてデータベースなどから必要なデータの取得をおこなったのちクライアントに対してレスポンスを行い、クライアントはサーバから受け取ったデータを画面に表示する、という形で構成される。
【０００３】
近年、モバイル端末（スマートフォン、タブレット端末など）が普及しているが、これらの端末は電波状態などによりサーバと通信できないオフライン状態となる場合がある。その場合、上記のサーバへのリクエストの送信およびレスポンスの取得が行えないため、画面の更新が行えず、ウェブアプリケーションは利用できない状態となる。
【０００４】
このような状態でもウェブアプリケーションを利用可能とするために、特許文献１には、クライアントと同一端末上にローカルプロキシというサーバとの通信を中継するモジュールを別途配置し、オフライン時にはローカルプロキシ自体がサーバの役割を担う発明が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２０１０−５１２０１３
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記特許文献１の方法では、端末上に別のモジュールを配置する必要がありモバイル端末のブラウザにおいては利用することが出来ない環境であることが多いという問題がある。さらに上記特許文献１の方法では、通信の内容をすべて一時保存することになるため、保持するデータ量が多くなるばかりでなく、同じデータを複数保持するなど冗長になる可能性が高いという問題がある。
【０００７】
そこで、本発明の目的は、モバイル端末等において、外部モジュールを使用することなく、オフライン時にもリクエストの要求及びレスポンスの取得ができ、また効率的なデータの保持が可能となる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
前述した課題を解決するための第１の発明は、処理要求に対してデータを返信するサーバと情報処理装置とがネットワークを介して接続された情報処理システムであって、前記情報処理装置は、前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部と、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部と、前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部と、を備えることを特徴とする情報処理システムである。
第１の発明によって、情報処理システムの情報処理装置は、サーバから取得した処理要求に対するデータを、データモデル単位のデータに解析し、データモデルごとに最新の状態でデータを保管することができる。したがって、効率的なデータの保持が可能となる。
【０００９】
また、前記情報処理装置は、当該情報処理端末がオンラインか否かを判定するオンライン判定部を、さらに備え、前記データモデル制御部は、オンラインと判定された場合には、前記サーバに対して前記処理要求を行い、オフラインと判定された場合には、前記データモデル保管部から前記処理要求に対するデータを取得することが望ましい。
これによって、情報処理システムの情報処理装置は、オンラインかオフライン
かを問わず、最新のデータを取得することができる。すなわち、外部モジュールを使用することなくオフライン時にもウェブアプリケーションを動作させることができる。
【００１０】
また、前記サーバは、データに更新があった場合に、前記情報処理装置へ通知する更新通知部を備え、前記情報処理装置は、通知に含まれるデータモデルに対応するデータモデルが前記データモデル保管部に保管されている場合には、当該データモデルを更新する更新手段を、更に備えることが望ましい。
これによって、サーバ側のデータに更新があった場合でも、情報処理システムの情報処理装置は、データモデルごとに最新の状態でデータを保管することができる。
【００１１】
第２の発明は、処理要求に対してデータを返信するサーバと、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部を備える情報処理装置とがネットワークを介して接続された情報処理システムの制御方法であって、前記情報処理装置は、前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析ステップと、前記解析ステップにより解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御ステップと、を含むことを特徴とする情報処理システムの制御方法である。
第２の発明によって、情報処理システムの情報処理装置は、サーバから取得した処理要求に対するデータを、データモデル単位のデータに解析し、データモデルごとに最新の状態でデータを保管することができる。したがって、効率的なデータの保持が可能となる。
【００１２】
第３の発明は、処理要求に対してデータを返信するサーバと情報処理装置とがネットワークを介して接続された情報処理システムのプログラムであって、前記情報処理装置であるコンピュータを、前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析手段、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管手段、前記解析手段により解析された前記データモデルについて、前記データモデル保管手段に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管手段に追加するデータモデル制御部、として機能させるための情報処理システムのプログラムである。
第３の発明に係る情報処理システムのプログラムを、汎用コンピュータにインストールすることによって、第１の発明に係る情報処理システムを得て、第２の発明に係る情報処理システムの制御方法を実行することができる。
【００１３】
第４の発明は、処理要求に対してデータを返信するサーバとネットワークを介して接続された情報処理装置であって、前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部と、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部と、前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部と、を備えることを特徴とする情報処理装置である。
第４の発明によって、情報処理装置は、サーバから取得した処理要求に対するデータを、データモデル単位のデータに解析し、データモデルごとに最新の状態でデータを保管することができる。したがって、効率的なデータの保持が可能となる。
【００１４】
第５の発明は、処理要求に対してデータを返信するサーバとネットワークを介して接続された、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部を備える情報処理装置の制御方法であって、前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析ステップと、前記解析ステップにより解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御ステップと、を含むことを特徴とする情報処理装置の制御方法である。
第５の発明によって、情報処理装置は、サーバから取得した処理要求に対するデータを、データモデル単位のデータに解析し、データモデルごとに最新の状態でデータを保管することができる。したがって、効率的なデータの保持が可能となる。
【００１５】
第６の発明は、コンピュータを、処理要求に対してデータを返信するサーバとネットワークを介して接続された情報処理装置として機能させるためのプログラムであって、前記コンピュータを、前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部、前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部、前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部、として機能させるためのプログラムである。
第６の発明に係る情報処理装置のプログラムを、汎用コンピュータにインストールすることによって、第４の発明に係る情報処理装置を得て、第５の発明に係る情報処理装置の制御方法を実行することができる。
【発明の効果】
【００１６】
本発明によれば、モバイル端末等において、外部モジュールを使用することなくオフライン時にもウェブアプリケーションを動作させることができる。また本発明によれば、一時保存するデータの管理を効率的に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の情報処理システムの構成の一例を示すシステム構成図である。
【図２】本発明に適用可能な情報処理装置のハードウェアの構成の一例を示すブロック図である。
【図３】（ａ）一般的なウェブアプリケーションの構成の一例を示すブロック図である。（ｂ）（ｃ）本発明のウェブアプリケーションの構成を示すブロック図である。
【図４】本発明におけるアプリケーションサーバからのレスポンスの一例を示す図である。
【図５】本発明におけるウェブアプリケーションの画面の一例を示す図である。
【図６】本発明におけるデータモデルストアの構成を示すブロック図である。
【図７】本発明におけるデータ取得要求受信時の処理の内容の一例を示したフローチャートである。
【図８】本発明におけるレスポンス解析処理の内容の一例を示したフローチャートである。
【図９】本発明におけるデータモデル定義の一例を示す図である。
【図１０】本発明におけるデータモデル保管部およびパラメータ対応ＰＫ保管部の内容の一例を示した図である。
【図１１】本発明におけるストアデータ取得処理の内容の一例を示したフローチャートである。
【図１２】本発明におけるデータ更新通知受信時の処理の内容の一例を示したフローチャートである。
【図１３】本発明におけるアプリケーションサーバからのデータ更新通知の一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
図１は、本発明の情報処理システム１の構成の一例を示すシステム構成図である。情報処理システム１は、アプリケーションサーバ１００、データベースサーバ１０１、スマートフォン１０２、タブレットＰＣ（Personal Computer）１０３、及びノートＰＣ１０４などから構成される。
【００１９】
アプリケーションサーバ１００はインターネットを介してスマートフォン１０２、タブレットＰＣ１０３またはノートＰＣ１０４などのモバイル端末１０５から接続される。これらのモバイル端末１０５はインターネットへ無線を介して接続する。また、アプリケーションサーバ１００にはデータベースサーバ１０１などが配置（又はネットワークを介して接続）され、データの供給を行う構成となっている。なお、本発明においてはアプリケーションサーバ１００、データベースサーバ１０１およびそれに類するサーバ群がどのような構成をとっていても構わない。
【００２０】
なお、情報処理システム１によって、本発明に係る「情報処理システム」の一例が構成されている。
【００２１】
以下、図２を用いて、図１に示したアプリケーションサーバ１００、データベースサーバ１０１、スマートフォン１０２、タブレットＰＣ１０３、及び、ノートＰＣ１０４に適用可能な情報処理装置のハードウェア構成について説明する。
【００２２】
図２（ａ）は、図１に示したアプリケーションサーバ１００、データベースサーバ１０１、及び、ノートＰＣ１０４に適用可能な情報処理装置のハードウェア構成を示すブロック図である。
【００２３】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Basic Input／Output System）やオペレーティングシステムプログラム（以下、ＯＳという）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【００２４】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００２５】
また、入力コントローラ２０５は、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。ビデオコントローラ２０６は、ディスプレイ２１０等の表示器への表示を制御する。なお、図２では、ディスプレイ２１０と記載しているが、ディスプレイ２１０はＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ等の表示器であってよい。これらは必要に応じて管理者が使用するものである。
【００２６】
メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、ソリッドステートドライブ（ＳＳＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２７】
通信Ｉ／Ｆコントローラ２０８は、ネットワーク（例えば、図１に示したインターネット等）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）等を用いた通信等が可能である。
【００２８】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等によるユーザ指示を可能とする。
【００２９】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ２１１に格納されており、これらについての詳細な説明も後述する。
【００３０】
図２（ｂ）は、図１に示したスマートフォン１０２、及び、タブレットＰＣ１０３に適用可能な情報処理装置のハードウェア構成を示すブロック図である。図２（ａ）に示した情報処理装置のハードウェア構成とほぼ同様の構成であるのでその説明を省略する。なお、入力コントローラ２０５は画面に設置されたタッチセンサ２１２による入力を制御する。
【００３１】
次に、図３を用いて、本発明のウェブアプリケーションの構成について説明する。
【００３２】
図３（ａ）は、一般的なウェブアプリケーションの構成の一例を示す図である。図３（ａ）において、モバイル端末１０５の備えるウェブブラウザ３０１内で動作するアプリケーションがアプリケーションサーバ１００に対してＨＴＴＰ（Hypertext Transfer Protocol）またはＨＴＴＰＳ（Hypertext
Transfer Protocol Secure）のプロトコルを使用して、データ取得要求（以下、リクエストともいう）を行う。この際のデータ取得要求は、画面全体のＨＴＭＬ（HyperText Markup Language）を要求するのでなく、画面構造の定義や表示する項目などのデータ部分のみをＸＨＲ（XMLHttpRequest）のＡＰＩ（Application Programming
Interface）を利用して取得する方法が一般的になっている。
【００３３】
データ取得要求を受信したアプリケーションサーバ１００は、データベースサーバ１０１などから要求された内容に対応するデータを取得し、ウェブブラウザ３０１に対してレスポンスを送信する。
【００３４】
この際のウェブブラウザ３０１が行うリクエスト（データ取得要求）は、ＵＲＬ（Uniform Resource Locator）とパラメータで構成されている。
図４は、ウェブブラウザ３０１が行うリクエストに対して、アプリケーションサーバ１００が返信するレスポンスの例を示す図である。
【００３５】
例えば、商品一覧の画面を取得するリクエストの場合には、ウェブブラウザ３０１は「／ｆｏｒｍ／ｐｒｏｄｕｃｔＬｉｓｔ」というようなＵＲＬでアプリケーションサーバ１００に対してリクエストを行う。これに対して、アプリケーションサーバ１００は、図４（ａ）に示す「／ｆｏｒｍ／ｐｒｏｄｕｃｔＬｉｓｔのレスポンス」４０１のようなＪＳＯＮ（JavaScript（登録商標）Object Notation）と呼ばれる形式で、要求されたデータを返信する。
【００３６】
また、例えば、商品一覧のうち文房具の画面を取得するリクエストの場合には、ウェブブラウザ３０１は「／ｐｒｏｄｕｃｔＬｉｓｔ」というＵＲＬと「？ｔｙｐｅ＝ｓｔａｔｉｏｎｅｒｙ」というパラメータで、アプリケーションサーバ１００に対してリクエストを行う。これに対して、アプリケーションサーバ１００は、図４（ｂ）に示す「／ｐｒｏｄｕｃｔＬｉｓｔ？ｔｙｐｅ＝ｓｔａｔｉｏｎｅｒｙのレスポンス」４０２を返信する。
また、例えば、商品詳細の画面を取得するリクエストの場合には、ウェブブラウザ３０１は「／ｐｒｏｄｕｃｔＤｅｔａｉｌ／Ｂ０１００」というＵＲＬでアプリケーションサーバ１００に対してリクエストを行う。これに対して、アプリケーションサーバ１００は、図４（ｃ）に示す「／ｐｒｏｄｕｃｔＤｅｔａｉｌ／Ｂ０１００のレスポンス」４０３を返信する。
【００３７】
図４の例では、ａｊａｘ（Asynchronous
JavaScript（登録商標）and XML）のような技術が利用され、画面全体を書き換えるのではなく、データモデルが部分的に書き換わるようになっている。
【００３８】
以下、本実施形態におけるウェブアプリケーションの全体の流れを説明する。
【００３９】
本発明では、図３（ｂ）に示すように、モバイル端末１０５の備えるウェブブラウザ３０１で動作するアプリケーションのビジネスロジック３０２が、直接アプリケーションサーバ１００に対してデータ取得要求を行うのではなく、ウェブブラウザ３０１で動作するアプリケーションのデータモデルストア３０３を経由して、データの取得を行うことにより実現される。なお、ビジネスロジックとは、一般にデータベース等とユーザーインタフェースとの間の情報の流れを制御するアプリケーション（プログラム）のことをいう。
【００４０】
ビジネスロジック３０２でアプリケーションサーバ１００に対してデータ取得要求を行う必要が発生した場合には、ビジネスロジック３０２はデータモデルストア３０３に対してデータ取得要求を行う。データモデルストア３０３はアプリケーションサーバ１００に対してデータ取得要求を行い、レスポンスされたデータの解析および保管を行った後に、取得したデータをビジネスロジック３０２に引き渡す。
【００４１】
また、本発明では、他の端末などによるアプリケーションサーバ１００側のデータの変更があった場合に、アプリケーションサーバ１００がデータモデルストア３０３に対してデータ更新を通知することにより、データモデルストア３０３は保管するデータを最新のものに更新する。データ更新通知は、ＷｅｂＳｏｃｋｅｔなどの技術を用いて行う。
これによれば、オンライン時にアプリケーションサーバ１００側のデータの変更があった場合に、データモデルストア３０３に一時保存したデータを最新の状態に保つことができる。
【００４２】
また、本発明においては、図３（ｃ）に示すように、ウェブブラウザ３０１を備えるモバイル端末１０５がネットワークに接続できないオフライン状態の場合には、ビジネスロジック３０２からのデータ取得要求に対して、データモデルストア３０３は、それまでに保管したデータから該当するものを抽出し、アプリケーションサーバ１００からの応答と同じ形式でデータを引き渡す。これにより、ビジネスロジック３０２は当該端末がオフラインなのかオンラインなのかを問わず、また、その差を意識することなく、データを取得することが可能となる。
【００４３】
なお、アプリケーションサーバ１００によって、本発明に係る「処理要求に対してデータを返信するサーバ」の一例が構成されており、データモデルストア３０３によって、本発明に係る「情報処理装置」の一例が構成されている。
【００４４】
図５は、ウェブアプリケーションの画面の一例である。図５（ａ）に示す商品一覧５０１は、複数のデータを一覧形式で表示する場合の例である。ＵＲＬを指定して表示ボタンを押下することで対応する表示内容が更新される。図５（ｂ）に示す商品詳細５０２は、１件分のデータ（例ではＡ０００１）を表示する画面の例である。ビジネスロジック３０２が、サーバから取得したデータ（レスポンス）をこのような画面の該当箇所にはめ込むことでウェブアプリケーションは構成される。このようなデータ取得において、本発明が適用可能である。また、これらの画面構成自体をフォーム定義データとしてアプリケーションサーバ１００から取得するような場合でも、本発明が適用可能である。
画面のレイアウトは別途定義されているものとする（不図示）。
【００４５】
図６は、データモデルストア３０３の機能構成の一例を示すブロック図である。なお、各機能ブロックが処理する詳細な制御については、後述するフローチャートにて説明する。
【００４６】
データ要求受付部６０１は、ビジネスロジック３０２からデータ取得要求を受け付けるものである。
オンライン判定部６０２は、データモデルストア３０３を備えるモバイル端末１０５がオンラインなのかオフラインなのかの判定を行うものである。
サーバ呼出部６０３は、アプリケーションサーバ１００に対して、データ取得要求を行うものである。
【００４７】
レスポンス解析部６０４は、アプリケーションサーバ１００からレスポンスを受信して、レスポンス解析処理（図８参照）を行うものである。
パラメータ対応ＰＫ保管部６０５は、データモデル（データＩＤ）ごとにパラメータに対応付けてＰＫ（Primary Key）を保管するものである（図１０（ｂ）参照）。
データモデル保管部６０６は、データモデル１００２ごとにＰＫに対応付けてデータをＪＳＯＮ形式で保管するものである（図１０（ａ）参照）。
【００４８】
保管データ呼出部６０７は、モバイル端末１０５がオフラインの場合に、パラメータ対応ＰＫ保管部６０５及びデータモデル保管部６０６を用いて、ストアデータ取得処理（図１１参照）を行い、レスポンスを復元するものである。
更新通知受付部６０８は、アプリケーションサーバ１００からのデータ更新通知を受け付けるものである。
レスポンス返信部６０９は、レスポンス解析部６０４又は保管データ呼出部６０７が取得したレスポンスをビジネスロジック３０２に返信するものである。
【００４９】
以下では、図７、図８、及び図１１のフローチャートを参照して、モバイル端末１０５に備えるデータモデルストア３０３が、データを取得する処理について説明する。
【００５０】
図７では、データモデルストア３０３がデータ取得要求を受信した際の処理の流れについて説明する。本処理は、ビジネスロジック３０２がアプリケーションサーバ１００のデータを必要とした際に実施される。
【００５１】
ステップＳ７０１において、モバイル端末１０５のＣＰＵ２０１（データ要求受付部６０１）は、ビジネスロジック３０２からデータ取得要求を受け付ける。
【００５２】
ステップＳ７０２において、データ要求受付部６０１がデータ取得要求を受信した時点で、モバイル端末１０５のＣＰＵ２０１（オンライン判定部６０２）は、モバイル端末１０５がオンラインなのかオフラインなのかの判定を行う。この判定はウェブブラウザ３０１から提供されるプロパティを参照する事によって行われる。
【００５３】
オンライン判定部６０２がモバイル端末１０５はオンラインであると判定した場合には（ステップＳ７０２でＹｅｓ）、ステップＳ７０３において、モバイル端末１０５のＣＰＵ２０１（サーバ呼出部６０３）は、アプリケーションサーバ１００に対して、データ取得要求を行う。
そうすると、アプリケーションサーバ１００のＣＰＵ（２０１）は、一般のウェブアプリケーションの場合と同様にデータの取得を行い、その内容をレスポンス（図４参照）として返信する。
【００５４】
ステップＳ７０４において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、アプリケーションサーバ１００からレスポンスを受信して、レスポンスの解析を行う。レスポンス解析処理については、図８を参照して後述する。
【００５５】
一方、オンライン判定部６０２がモバイル端末１０５はオフラインであると判定した場合には（ステップＳ７０２でＮｏ）、ステップＳ７０５において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７等）は、ストア済のデータの取得処理を行う。ストアデータの取得処理については図１１を参照して後述する。
【００５６】
ステップＳ７０６において、モバイル端末１０５のＣＰＵ２０１（レスポンス返信部６０８）は、ステップＳ７０４またはステップＳ７０５において取得したデータをビジネスロジック３０２に引き渡す。
【００５７】
なお、オンライン判定部６０２及びステップＳ７０２によって、本発明に係る「当該情報処理端末がオンラインか否かを判定するオンライン判定部」の一例が構成されている。
また、このステップＳ７０２−ステップＳ７０５によって、本発明に係る「前記データモデル制御部は、オンラインと判定された場合には、前記サーバに対して前記処理要求を行い、オフラインと判定された場合には、前記データモデル保管部から前記処理要求に対するデータを取得する」の一例が構成されている。
【００５８】
続いて、図８では、図７のステップＳ７０４においてデータモデルストア３０３のレスポンス解析部６０４等が行う、アプリケーションサーバ１００からのレスポンスの解析処理について説明する。
【００５９】
ステップＳ８０１において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、サーバ呼出部６０３が使用したリクエストのＵＲＩを取得する。ここでは、リクエストした際のＵＲＬからホスト名やアプリケーション名を除いた部分をＵＲＩ（Uniform Resource Identifier）と呼ぶ。たとえば図４に示した「／ｆｏｒｍ／ｐｒｏｄｕｃｔＬｉｓｔ」の部分を指す。
【００６０】
ステップＳ８０２において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、ステップＳ８０１で取得したＵＲＩにマッチするデータモデル定義があるかどうかの判定を行う。
【００６１】
図９は、データモデル定義の例９０１を示す図である。この例において、「ＦｏｒｍＤｅｆ」のデータモデル定義９０２では、「ＦｏｒｍＤｅｆ」というデータＩＤのデータモデルが、「／ｆｏｒｍ／」というＵＲＩで取得され、その際のＰＫ（Primary Key（プライマリーキー）、一意キー）は「ｆｏｒｍＩｄ」である旨を示している。なお、ＰＫの「ｆｏｒｍＩｄ」は、ＵＲＩの「／ｆｏｒｍ／」の後ろに書かれたパラメータが利用されるようになっている。例えば、図５（ａ）の商品一覧５０１の例では「ｐｒｏｄｕｃｔＬｉｓｔ」、図５（ｂ）の商品詳細５０２の例では「ｐｒｏｄｕｃｔＤｅｔａｉｌ」である。
【００６２】
また、「Ｐｒｏｄｕｃｔ」のデータモデル定義９０３では、「Ｐｒｏｄｕｃｔ」というデータＩＤのデータモデルが、「／ｐｒｏｄｕｃｔＬｉｓｔ」というＵＲＩと「／ｐｒｏｄｕｃｔＤｅｔａｉｌ／」というＵＲＩで取得され、その際のＰＫは、前者については配列の各項目の「ｉｄ」であり、後者については「ｉｄ」である旨を示している。
【００６３】
すなわち、ステップＳ８０２では、ステップＳ８０１で取得したＵＲＩが、このようなデータモデル定義のＵＲＩの中に一致するものが存在するのかどうかの判定を行う。
【００６４】
ＵＲＩにマッチするデータモデル定義が存在すると判定した場合には（ステップＳ８０２でＹｅｓ）、ステップＳ８０３において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、ＵＲＩにマッチするデータモデル定義のＰＫの情報を特定する。
【００６５】
ステップＳ８０４において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、レスポンスに含まれるデータ（図４参照）から、ステップＳ８０３で特定したＰＫに対応するデータの実体（ＪＳＯＮ形式）を特定する。
【００６６】
ステップＳ８０５において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、ステップＳ８０３で特定したＰＫに対応するデータがデータモデル保管部６０６に保管されているかどうかを判定する。
【００６７】
保管されている場合には（ステップＳ８０５でＹｅｓ）、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、ステップＳ８０６において、データモデル保管部６０６の前記ＰＫに対応するデータを、ステップＳ８０４で特定したデータの実体で上書きする。
【００６８】
一方、保管されていない場合には（ステップＳ８０５でＮｏ）、ステップＳ８０７において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、データモデル保管部６０６に前記ＰＫに対応するデータとして、ステップＳ８０４で特定したデータの実体を保管（追加）する。
【００６９】
図１０（ａ）は、データモデル保管部６０６に保管されている内容の例１００１を示す図である。図１０（ａ）に示すように、データモデル保管部６０６には、データモデル（データＩＤ）１００２ごとに、ＰＫ１００３に対応付けて、データ１００４がＪＳＯＮ形式で保管されており、どのデータモデル（データＩＤ）１００２のどのＰＫ１００３がどのようなデータ１００４なのかが、判定可能な状態で保管されている。なお、データモデル保管部６０６の内容は、同一データモデル（データＩＤ）１００２の同一ＰＫ１００３のデータ１００４はステップＳ８０６で上書きしているため、データの冗長性を廃することが可能となっている。
【００７０】
図８の説明に戻る。ステップＳ８０８において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、レスポンスの中にまだデータが含まれるかどうかを判定し、含まれる場合には（ステップＳ８０８でＹｅｓ）、ステップＳ８０３へ戻り、処理を繰り返す。
【００７１】
一方、レスポンスの中にデータがもう含まれていない場合には（ステップＳ８０８でＮｏ）、ステップＳ８０９において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、リクエストのＵＲＬに含まれるパラメータを特定する。パラメータとは、図４（ｂ）のレスポンス４０２に示したような「？ｔｙｐｅ＝ｓｔａｔｉｏｎｅｒｙ」のようなＵＲＬの一部のことを指す。
【００７２】
ステップＳ８１０において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、ステップＳ８０９で特定したパラメータと、これまでにデータモデル保管部６０６に保管したＰＫとの対応情報を、パラメータ対応ＰＫ保管部６０５に保存する。
【００７３】
図１０（ｂ）は、パラメータ対応ＰＫ保管部６０５に保管されている内容の例１００５を示す図である。図１０（ｂ）に示すように、パラメータ対応ＰＫ保管部６０５は、データモデル（データＩＤ）１００６ごとに、パラメータ（Ｐａｒａｍ）１００７に対応付けて、ＰＫ１００８が保管されており、どのデータモデル（データＩＤ）１００６のどのパラメータ１００７の際に、どのＰＫ１００８がレスポンスに含まれていたかが判定可能な状態で保管されている。パラメータ対応ＰＫ保管部６０５には、データでなくＰＫ１００８のみを保管するため、同じＰＫ１００８が複数のレスポンスに含まれている場合でも、保存されるＰＫ１００８は１つとなる。
【００７４】
一方、ＵＲＩにマッチするデータモデル定義が存在しないと判定した場合には（ステップＳ８０２でＮｏ）、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、そのまま処理を終了する。
以上で、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）が行うレスポンス解析処理は終了である。
【００７５】
なお、ステップＳ８０１−ステップＳ８０４によって、本発明に係る「前記サーバから、処理要求に対するデータを受信して、データモデル単位のデータに解析する解析部」の一例が構成されている。
また、ステップＳ８０５−ステップＳ８０７によって、本発明に係る「前記解析部により解析された前記データモデルについて、前記データモデル保管部に対応するデータモデルが既に保管されている場合には前記データモデルを上書きし、保管されていない場合には前記データモデルを前記データモデル保管部に追加するデータモデル制御部」の一例が構成されている。
また、データモデル保管部６０６によって、本発明に係る「前記サーバから受信したデータをデータモデル単位で保管するデータモデル保管部」の一例が構成されている。
【００７６】
続いて、図１１では、図７のステップＳ７０５においてデータモデルストア３０３の保管データ呼出部６０７等が行うストアデータ取得処理について説明する。
【００７７】
ステップＳ１１０１において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７）は、データ要求受付部６０１が受け付けたリクエストのＵＲＩを取得する。処理内容としては、図８のステップＳ８０１と同様である。
【００７８】
ステップＳ１１０２において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７）は、データ要求受付部６０１が受け付けたリクエストのパラメータを取得する。処理内容としては、図８のステップＳ８０９と同様である。
【００７９】
次に、ステップＳ１１０３において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７）は、パラメータ対応ＰＫ保管部６０５のパラメータを検索し、ステップＳ１１０２で取得したパラメータがあるかどうかを判定する。
【００８０】
該当するパラメータがない場合には（ステップＳ１１０３でＮｏ）、ステップＳ１１０７において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７又はレスポンス返信部６０９）は、データが取得できない旨のエラーをビジネスロジック３０２に返してストアデータ取得処理を終了する。
【００８１】
一方、該当するパラメータがある場合には（ステップＳ１１０３でＹｅｓ）、ステップＳ１１０４において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７）は、パラメータ対応ＰＫ保管部６０５（図１０（ｂ）参照）からパラメータに対応するＰＫのリストを取得する。
【００８２】
ステップＳ１１０５において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７）は、データモデル保管部６０６（図１０（ａ）参照）から、ステップＳ１１０４で取得したＰＫのリストに対応するデータを取得する。
【００８３】
ステップＳ１１０６において、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７）は、ステップＳ１１０５で取得したデータを、図４に示したアプリケーションサーバ１００からのレスポンスと同じ形式に連結する。
【００８４】
その後、モバイル端末１０５のＣＰＵ２０１（レスポンス返信部６０９）は、レスポンスをビジネスロジック３０２に返して処理を終了する（図７のステップＳ７０６）。
以上で、モバイル端末１０５のＣＰＵ２０１（保管データ呼出部６０７等）が行うストアデータ取得処理は終了である。
【００８５】
次に、図１２のフローチャートを参照して、モバイル端末１０５に備えるデータモデルストア３０３が、データ更新通知を受信して、保管データを更新するデータ更新処理について説明する。
データ更新処理は、更新通知受付部６０８がアプリケーションサーバ１００からのデータ更新通知を受け付けた際に実施される。データ更新通知の方法については、本実施形態ではＷｅｂＳｏｃｋｅｔなどの技術を想定しているが、他の通知方法でも構わない。
【００８６】
図１３は、データ更新通知の例を示す図である。この例において、フォーム定義の更新情報１３０２では、「ＦｏｒｍＤｅｆ」というデータＩＤのデータモデルの、ＰＫが「ｐｒｏｄｕｃｔＤｅｔａｉｌ」および「ｐｒｏｄｕｃｔＤｅｔａｉｌＤｉａｌｏｇ」のデータが更新され、ＵＲＩ「／ｆｏｒｍ／」でデータが取得可能であることを示している。また、商品定義の更新情報１３０３では、「Ｐｒｏｄｕｃｔ」というデータＩＤのデータモデルの、ＰＫが「Ａ０００２」、「Ｂ０１００」および「Ｃ０１０１」のデータが更新され、ＵＲＩ「／ｐｒｏｄｕｃｔ／」で取得可能であることを示している。
【００８７】
図１２の説明に戻る。まず、ステップＳ１２０１において、モバイル端末１０５のＣＰＵ２０１（更新通知受付部６０８）は、アプリケーションサーバ１００から、データ更新通知を受信する。
【００８８】
ステップＳ１２０２において、モバイル端末１０５のＣＰＵ２０１（更新通知受付部６０８）は、データ更新通知に含まれるデータモデルのデータＩＤがデータモデル保管部６０６に格納済みのデータモデルであり、かつ対応するＰＫがデータモデル保管部６０６に保管済みのＰＫであるかどうかの判定を行う。アプリケーションサーバ１００、はデータモデルストア３０３がどのデータモデルのどのＰＫのデータを保持しているかを把握しなくてもよいため、データ更新通知にはデータモデル保管部６０６に保管されていないデータについての通知が含まれることがあるため、この判定を行う。
【００８９】
データモデル保管部６０６に保管されていないデータについてのデータ更新通知である場合には（ステップＳ１２０２でＮｏ）、モバイル端末１０５のＣＰＵ２０１（更新通知受付部６０８）は、ステップＳ１２０５へ進み、他のデータモデルについて処理を続行する。
【００９０】
一方、データモデル保管部６０６に保管されているデータについてのデータ更新通知である場合には（ステップＳ１２０２でＹｅｓ）、ステップＳ１２０３において、モバイル端末１０５のＣＰＵ２０１（サーバ呼出部６０３）は、格納済みのデータモデルのＰＫについて、データ更新通知に含まれるＵＲＩにＰＫを連結して、アプリケーションサーバ１００に対してデータ取得要求を行う。この要求の処理内容は、図７のステップＳ７０３と同様である。
【００９１】
ステップＳ１２０４において、モバイル端末１０５のＣＰＵ２０１（レスポンス解析部６０４）は、アプリケーションサーバ１００からのレスポンスについて解析処理を行い、データモデル保管部６０６に保管されたデータを更新する。詳細な処理内容は、図７のステップＳ７０４と同様であり、図８で説明した処理と同様である。
【００９２】
ステップＳ１２０５では、モバイル端末１０５のＣＰＵ２０１（更新通知受付部６０８）は、データ更新通知に他のデータモデルについての通知が含まれているか判定し、含まれている場合ステップＳ１２０２から繰り返し、含まれていない場合、データ更新処理を終了する。
【００９３】
なお、このステップＳ１２０１によって、本発明に係る「前記サーバは、データに更新があった場合に、前記情報処理装置へ通知する更新通知部」の一例が構成されている。
また、このステップＳ１２０２−ステップＳ１２０４によって、本発明に係る「前記情報処理装置は、通知に含まれるデータモデルに対応するデータモデルが前記データモデル保管部に保管されている場合には、当該データモデルを更新する更新手段」の一例が構成されている。
【００９４】
［実施形態の効果］
本実施形態のデータモデルストア３０３によれば、オフライン時でも、データ取得要求に対するレスポンスの取得ができ、ウェブアプリケーションを動作させることができる。
本実施形態のデータモデルストア３０３によれば、アプリケーションサーバ１００からレスポンスを取得した際に、レスポンスを解析して、保管しているデータを最新の状態に保つことができる。したがって、オフライン時でも新しいデータでウェブアプリケーションを動作させることができる。
【００９５】
また、本実施形態のデータモデルストア３０３によれば、アプリケーションサーバ１００等と通信可能な場合にデータ更新通知を受け付けると、アプリケーションサーバ１００からレスポンスを取得、解析して、保管しているデータを最新の状態に保つことができる。したがって、オフライン時でも新しいデータでウェブアプリケーションを動作させることができる。
また、本実施形態のデータモデルストア３０３によれば、データモデル単位でデータを一時保存するので、保存する容量を小さくできるとともに、データモデル単位での更新も行うことができる。したがって、一時保存するデータの管理を効率的に行うことができる。
【００９６】
以上、添付図面を参照しながら、本発明に係るモバイル端末の備えるデータモデルストア等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００９７】
１・・・・・・・情報処理システム
１００・・・・・アプリケーションサーバ
１０１・・・・・データベースサーバ
１０２・・・・・スマートフォン
１０３・・・・・タブレットＰＣ
１０４・・・・・ノートＰＣ
１０５・・・・・モバイル端末
２０１・・・・・ＣＰＵ
３０１・・・・・ウェブブラウザ
３０２・・・・・ビジネスロジック
３０３・・・・・データモデルストア
６０１・・・・・データ要求受付部
６０２・・・・・オンライン判定部
６０３・・・・・サーバ呼出部
６０４・・・・・レスポンス解析部
６０５・・・・・パラメータ対応ＰＫ保管部
６０６・・・・・データモデル保管部
６０７・・・・・保管データ呼出部
６０８・・・・・更新通知受付部
６０９・・・・・レスポンス返信部
９０１・・・・・データモデル定義の例
１００１・・・・データモデル保管部の内容の例
１００２・・・・パラメータ対応ＰＫ保管部の内容の例
【図１】
2016126397.tif 000003
【図２】
2016126397.tif 000004
【図３】
2016126397.tif 000005
【図４】
2016126397.tif 000006
【図５】
2016126397.tif 000007
【図６】
2016126397.tif 000008
【図７】
2016126397.tif 000009
【図８】
2016126397.tif 000010
【図９】
2016126397.tif 000011
【図１０】
2016126397.tif 000012
【図１１】
2016126397.tif 000013
【図１２】
2016126397.tif 000014
【図１３】
2016126397.tif 000015