特許第6246672号(P6246672)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6246672
(24)【登録日】2017年11月24日
(45)【発行日】2017年12月13日
(54)【発明の名称】ウェブアプリケーションシステム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20171204BHJP
   G06F 11/34 20060101ALI20171204BHJP
【FI】
   G06F9/46 465D
   G06F11/34 166
【請求項の数】3
【全頁数】27
(21)【出願番号】特願2014-149429(P2014-149429)
(22)【出願日】2014年7月23日
(65)【公開番号】特開2016-24700(P2016-24700A)
(43)【公開日】2016年2月8日
【審査請求日】2016年9月21日
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110001612
【氏名又は名称】きさらぎ国際特許業務法人
(72)【発明者】
【氏名】古城 仁士
(72)【発明者】
【氏名】落合 信
【審査官】 井上 宏一
(56)【参考文献】
【文献】 特開平10−228453(JP,A)
【文献】 特開2012− 79124(JP,A)
【文献】 特開2004−264957(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46 −9/54
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
端末装置である第1の実行環境及びサーバである第2の実行環境を備え、
前記第1の実行環境は、第1の記憶手段と、第1の判定手段と、第1の実行手段と、第1の計測手段と、を有し、
前記第1の記憶手段は、処理を単位処理を用いて記述した情報である処理実行計画情報と、単位処理を特定する情報、処理の要求元を特定する情報、当該単位処理の実行環境を特定する情報、及び当該単位処理の負荷の値を有する第1の処理実行履歴情報と、を記憶
前記第1の判定手段は、前記処理実行計画情報に含まれる各単位処理を前記第1の実行環境又は前記第2の実行環境のどちらで行うかを前記第1の処理実行履歴情報に含まれる負荷の値に基づいて判定し、前記第1の実行環境で行うと判定された単位処理を前記第1の実行手段に実行させ、
前記第1の実行手段は、前記第1の判定手段に指定された単位処理を実行
前記第1の計測手段は、前記第1の実行手段により実行された単位処理それぞれの負荷を計測し、計測の結果得られた負荷の値を、前記第1の処理実行履歴情報に書き込
前記第2の実行環境は、第2の記憶手段と、第2の判定手段と、第2の実行手段と、第2の計測手段と、を有し、
前記第2の記憶手段は、前記処理実行計画情報と同一の情報と、単位処理を特定する情報、処理の要求元を特定する情報、当該単位処理の実行環境を特定する情報、及び当該単位処理の負荷の値を有する第2の処理実行履歴情報と、を記憶
前記第2の判定手段は、前記処理実行計画情報に含まれる各単位処理を前記第1の実行環境及び前記第2の実行環境のどちらで行うかを前記第2の処理実行履歴情報に含まれる負荷の値に基づいて判定し、前記第2の実行環境で行うと判定された単位処理を前記第2の実行手段に実行させ、
前記第2の実行手段は、前記第2の判定手段に指定された単位処理を実行
前記第2の計測手段は、前記第2の実行手段によって実行された単位処理それぞれの負荷を計測し、計測の結果得られた負荷の値を、前記第2の処理実行履歴情報に書き込
前記第1の実行環境は、前記端末装置の種類又は種別を特定する情報である端末種別情報を送信する第1の管理手段を更に有し、
前記第2の実行環境は、前記端末種別情報に基づいて、前記第2の処理実行履歴情報から、実行環境を特定する情報として前記端末種別情報に対応する情報が格納されているレコード、及び実行環境を特定する情報としてサーバを示す情報が格納されているレコードを抽出し、抽出した前記レコードからなる第3の処理実行履歴情報を生成し、これを前記第1の管理手段に送信する第2の管理手段を更に有し、
前記第1の管理手段は、前記第3の処理実行履歴情報を、新たな第2の処理実行履歴情報として前記第1の記憶手段に記憶させ、
前記第1の管理手段は、前記第1の処理実行履歴情報を前記第2の管理手段に送信し、
前記第2の管理手段は、受信した前記第1の処理実行履歴情報に基づいて、前記第2の処理実行履歴情報を更新する
ウェブアプリケーションシステム。
【請求項2】
前記第1の判定手段は、前記第1の処理実行履歴情報に含まれる負荷の値を参照して、前記第1の実行環境における当該単位処理の負荷の値と、前記第2の実行環境における当該単位処理の負荷の値と通信にかかる負荷の合計値を比較して、当該単位処理を前記第1の実行手段及び前記第2の実行手段のいずれに実行させるかを判定し、
前記第2の判定手段は、前記第2の処理実行履歴情報に含まれる負荷の値を参照して、前記第1の実行環境における当該単位処理の負荷の値及び通信にかかる負荷の合計と、前記第2の実行環境における当該単位処理の負荷の値を比較して、当該単位処理を前記第1の実行手段及び前記第2の実行手段のいずれに実行させるかを判定する
請求項1のウェブアプリケーションシステム。
【請求項3】
前記第1の記憶手段は、前記処理実行計画情報に記述された単位処理を特定する情報と、前記第1の実行手段が実行する単位処理を特定する情報とを対応付けて記述した情報である処理対応表情報をさらに記憶し、
前記第2の記憶手段は、前記処理実行計画情報に記述された単位処理を特定する情報と、前記第2の実行手段が実行する単位処理を特定する情報とを対応付けて記述した情報である処理対応表情報をさらに記憶する
請求項1又は2のウェブアプリケーションシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載の実施の形態は、ウェブアプリケーションシステムに関する。
【背景技術】
【0002】
ウェブアプリケーション(Web application)は、インターネット(若しくはイントラネット)などのネットワークを介して使用するアプリケーションソフトウェアである。多くの場合、これらのアプリケーションは、端末のブラウザ上で動作するプログラミング言語(例えばJavaScript(登録商標))によるプログラムと、サーバ側のプログラムが協調することによって動作し、ユーザはそれを端末のブラウザ上で使用する。
【0003】
近年のインターネットの普及と技術進展に伴い、従来はデスクトップアプリケーションとして実装されていた機能も、ウェブアプリケーションとして提供される場合が増えている。ウェブアプリケーションの一例としては、ブログ、電子掲示板、インターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−101523号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ウェブアプリケーションにおいて、各端末の計算機資源に合わせた負荷と応答性の調整を行いたいというニーズがあった。例えば、電力制御システムにおいて中央制御室では高性能な端末装置を使用する一方、各作業員はそれほど性能の高くない手持ちの端末装置を使用している環境において、より高速にウェブアプリケーションの実行を可能とするには、適切に各端末装置とサーバでの処理の分配を行う必要がある。
【0006】
また、ウェブアプリケーションにおいて、負荷と応答性の調整を行いたいというニーズがあるが、各種端末装置の機種に合わせたウェブアプリケーションの開発は、工数/保守の観点で困難である。
【0007】
また、ウェブアプリケーションにおいて、端末装置からサーバへ処理の移動(又はその逆)が困難という問題もあった。これは以下の理由による。
(1)データソースやGUI部品に依存する処理が遍在しているため
(2)画面遷移型ウェブアプリケーションから非画面遷移型ウェブアプリケーションへの変更が困難なため
(3)端末が多様であるため
(4)単純な負荷平均化ではないため
【0008】
本発明の目的は、端末装置とサーバの両者において実行可能な処理を、負荷に応じ端末装置又はサーバに動的に割り振ることが可能なウェブアプリケーションシステムを提供することにある。
【課題を解決するための手段】
【0009】
本発明の実施の形態はウェブアプリケーションシステムとして提案される。
このウェブアプリケーションシステムは、第1の記憶手段と、第1の計測手段と、第1の判定手段と、第2の記憶手段と、第2の計測手段と、第1の計測手段と、第1の判定手段とを有する。
【0010】
第1の記憶手段は、処理を単位処理を用いて記述した情報である処理実行計画情報と、単位処理を特定する情報と、処理の要求元を特定する情報と、当該単位処理の実行環境を特定する情報と、当該単位処理の負荷の値と有する第1の処理実行履歴情報とを記憶する。
【0011】
第1の計測手段は、第1の実行手段により実行された単位処理それぞれの負荷を計測し、計測の結果得られた負荷の値を、前記第1の処理実行履歴情報に書き込む。
第1の実行手段は、第1の判定手段又は第2の判定手段に指定された単位処理を、第1の実行環境において実行する。
【0012】
第1の実行手段は、前記処理実行計画情報に含まれる各単位処理を前記第1の実行環境又は前記第2の実行環境のどちらで行うかを、前記第1の処理実行履歴情報に含まれる負荷の値に基づいて判定し、この判定の結果に基づいて各単位処理を前記第1の実行手段又は第2の実行手段のいずれかに実行させる。
【0013】
第2の記憶手段は、前記処理実行計画情報と同一の情報と、単位処理を特定する情報と、処理の要求元を特定する情報と、当該単位処理の実行環境を特定する情報と、当該単位処理の負荷の値と有する第2の処理実行履歴情報とを記憶する。
【0014】
第2の計測手段は、第2の実行手段によって実行された単位処理それぞれの負荷を計測し、計測の結果得られた負荷の値を、前記第2の処理実行履歴情報に書き込む。
第2の実行手段は、前記第1の判定手段又は第2の判定手段に指定された単位処理を、第2の実行環境において実行する。
【0015】
第2の判定手段は、処理実行計画情報に含まれる各単位処理を前記第1の実行環境及び前記第2の実行環境のどちらで行うかを、前記第2の処理実行履歴情報に含まれる負荷の値に基づいて判定し、この判定の結果に基づいて、各単位処理を前記第1の実行手段及び前記第2の実行手段のいずれかに実行させる。
【0016】
上記ウェブアプリケーションシステムにおいて、前記第1の判定手段は、前記第1の処理実行履歴情報に含まれる負荷の値を参照して、前記第1の実行環境における当該単位処理の負荷の値と、前記第2の実行環境における当該単位処理の負荷の値と通信にかかる負荷の合計値を比較して、当該単位処理を前記第1の実行手段及び前記第2の実行手段のいずれに実行させるかを判定し、前記第2の判定手段は、前記第2の処理実行履歴情報に含まれる負荷の値を参照して、前記第1の実行環境における当該単位処理の負荷の値及び通信にかかる負荷の合計と、前記第2の実行環境における当該単位処理の負荷の値を比較して、当該単位処理を前記第1の実行手段及び前記第2の実行手段のいずれに実行させるかを判定するようにしてもよい。
【0017】
また、上記ウェブアプリケーションシステムは、端末装置の種類又は種別を特定する情報である端末種別情報を送信する第1の管理手段と、前記端末種別情報に基づいて、前記第2の処理実行履歴情報から、前記実行環境を特定する情報として前記端末種別情報に対応する情報が格納されているレコード、及び前記実行環境を特定する情報としてサーバを示す情報が格納されているレコードを抽出し、抽出したレコードからなる第3の処理実行履歴情報を生成し、これを前記第1の管理手段に送信する第2の管理手段とをさらに有し、前記第1の管理手段は、前記第3の処理実行履歴情報を、新たな第2の処理実行履歴情報として前記第1の記憶手段に記憶させるようにしてもよい。
【0018】
さらにまた、上記ウェブアプリケーションシステムにおいて、前記第1の管理手段は、前記第1の処理実行履歴情報を前記第2の管理手段に送信し、前記第2の管理手段は、受信した前記第1の処理実行履歴情報に基づいて、前記第2の処理実行履歴情報を更新するようにしてもよい。
【0019】
さらにまた、上記ウェブアプリケーションシステムにおいて、前記第1の記憶手段は、前記処理実行計画情報に記述された単位処理を特定する情報と、前記第1の実行手段が実行する単位処理を特定する情報とを対応付けて記述した情報である処理対応表情報をさらに記憶し、前記第2の記憶手段は、前記処理実行計画情報に記述された単位処理を特定する情報と、前記第2の実行手段が実行する単位処理を特定する情報とを対応付けて記述した情報である処理対応表情報をさらに記憶するようにしてもよい。
【図面の簡単な説明】
【0020】
図1】本実施の形態にかかるウェブアプリケーションシステムの構成例を示すブロック図
図2】実施の形態に係るサーバの構成例を示す機能ブロック図
図3】サーバ側処理実行履歴記憶部に記憶される処理実行履歴情報のデータ構成例を示す図
図4図3に示した処理実行履歴情報から生成した、端末装置側処理実行履歴情報のデータ構成例を示す図
図5】単位処理1、及び単位処理3から単位処理6までの5つの単位処理からなる処理の流れ(処理実行計画)の例を示す図
図6図5に示した処理の流れを記述した処理実行計画情報のデータ構成例を示した図
図7】処理対応表情報のデータ構成例を示した図
図8】実施の形態に係る端末装置の構成例を示す機能ブロック図
図9】ウェブアプリケーションシステムにおける初期化処理の例を示したシーケンス図
図10】処理実行計画情報のデータ例を示す
図11】単位処理1から単位処理4の負荷を計測した場合に得られると仮定した負荷の値を格納した処理実行履歴情報を示す図
図12】端末装置側処理対応表記憶部に記憶されている処理対応表情報を示す図
図13】サーバ側処理対応表記憶部に記憶されている処理対応表情報を示す図
図14】ウェブアプリケーションシステムにおける端末装置起点での処理実行計画の実行動作の例を示したシーケンス図
図15図14に続く、ウェブアプリケーションシステムにおける端末装置起点での処理実行計画の実行動作の例を示したシーケンス図
図16】初期化処理開始前の、端末装置側処理実行履歴記憶部に記憶されている端末装置側処理実行履歴情報、及びサーバ側処理実行履歴記憶部に記憶されているサーバ側処理実行履歴情報のデータ例を示す図
図17】ステップS101からステップS103まで終了した時点における端末装置側処理実行履歴情報及びサーバ側処理実行履歴情報のデータ例を示す図
図18図17に示した状態の後、ステップS201からステップS205まで終了した時点における、端末装置側処理実行履歴情報及びサーバ側処理実行履歴情報のデータ例を示す図
図19】端末装置側処理実行履歴情報、及びサーバ側処理実行履歴情報のデータ例を示す図
図20】端末装置側処理実行履歴情報、及びサーバ側処理実行履歴情報のデータ例を示す図
図21】端末装置側処理実行履歴情報、及びサーバ側処理実行履歴情報のデータ例を示す図
図22】端末装置側処理実行履歴情報、及びサーバ側処理実行履歴情報のデータ例を示す図
図23】端末装置側処理分配部及びサーバ側処理分配部の主たる動作である処理分配処理の一例を示したフローチャート
図24図23に続くフローチャート
図25】端末装置側管理部の主たる動作の一つである端末装置側通信時間計測処理の一例を示したフローチャート
図26】端末装置側通信時間計測要求受信時処理の一例を示したフローチャート
図27】サーバ側通信時間計測処理の一例を示したフローチャート
図28】サーバ側通信時間計測要求受信時処理の一例を示したフローチャート
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施の形態に係るウェブアプリケーションシステムを説明する。
[0.用語の定義]
本明細書中で使用する用語の定義を述べる。
【0022】
[0.1.ウェブアプリケーション]
「ウェブアプリケーション」とは、ウェブブラウザ上で動作するアプリケーションをいう。また「ウェブアプリケーションシステム」とは、ウェブアプリケーションを実行するシステムをいう。
【0023】
[0.2.サーバ]
「サーバ」とは、ウェブアプリケーションを動作させるための環境(ハードウェア)をいう。
【0024】
[0.3.端末装置]
「端末装置」とは、サーバで動作しているウェブアプリケーションをロードし、実行する環境(ハードウェア)をいう。
【0025】
[0.4.GUI部品]
「GUI部品」とは、ウェブアプリケーションのGUI(Graphical User Interface)を構成している部品をいう。
【0026】
[0.5.データソース]
「データソース」とは、データを保持している装置をいう。
【0027】
[0.6.画面遷移型ウェブアプリケーション]
「画面遷移型ウェブアプリケーション」とは、URL(Uniform Resource Locator)の変更を伴うウェブアプリケーションをいう。
【0028】
[0.7.非画面遷移型ウェブアプリケーション]
「非画面遷移型ウェブアプリケーション」とは、URLの変更を伴わないウェブアプリケーションをいう。
【0029】
[1.実施の形態]
[1.1.構成例]
本発明の実施の形態の一つは、ウェブアプリケーションシステムとして提案される。このウェブアプリケーションシステムは、端末装置とサーバの両者において実行可能な処理を、負荷に応じ端末装置又はサーバに動的に割り振りながら、ウェブアプリケーションを実行するシステムである。
【0030】
図1に本実施の形態にかかるウェブアプリケーションシステムの構成例を示すブロック図を示す。このウェブアプリケーションシステム1は、サーバ10と端末装置20を有する。端末装置20は,同一機器、同一機種、同一仕様モデル等でなくともよい。サーバ10はネットワーク30に接続されている。端末装置20のそれぞれは、ネットワーク30に接続されている、若しくは接続可能である。サーバ10と各端末装置20はネットワーク30を経由して相互にデータの送受信を行うことができる。
【0031】
[1.1.1.サーバ]
サーバ10は、ウェブアプリケーションを実行する環境を提供する装置である。サーバ10は、例えばコンピュータ、ワークステーションなどの情報処理装置によって実現される装置であって、この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読み出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。なお、サーバ10は本実施の形態の第2の実行環境に相当する。
【0032】
本発明の実施の形態に係るサーバ10の構成例について説明する。図2は、本実施の形態に係るサーバ10の構成例を示す機能ブロック図である。なお、機能ブロック図中に示す構成要素は、サーバ10の機能を機能ごとにまとめてブロックとして捉えたものであり、ウェブアプリケーションシステムが各構成要素に対応する基板、装置、回路、部品などの物理的構成要素を備えていなければならないことを意味するわけではない。また、「接続」とは、データ、情報、命令などの送信及び/又は受信、受け取り、受け渡しなどが可能な状態になっていることをいい、互いに配線で連結されているような物理的な接続に限られる意味ではない。本明細書中の他の構成要素の機能ブロック図の説明についても同様である。
【0033】
サーバ10は、サーバ側通信部101と、サーバ側管理部102と、サーバ側処理分配部103と、サーバ側負荷計測部104と、サーバ側処理実行部105と、データ操作機能部106と、データソース部107と、サーバ側処理実行履歴記憶部108と、サーバ側処理実行計画記憶部109と、サーバ側処理対応表記憶部110とを有する。
【0034】
サーバ側通信部101はネットワーク30に接続されている。サーバ側管理部102はサーバ側通信部101、サーバ側処理実行履歴記憶部108に接続されている。サーバ側処理分配部103はサーバ側管理部102に接続されていると共に、サーバ側処理実行履歴記憶部108、サーバ側処理実行計画記憶部109、サーバ側処理対応表記憶部110に接続されている。サーバ側負荷計測部104はサーバ側処理分配部103に接続されている。サーバ側処理実行部105はサーバ側処理分配部103に接続されている。データ操作機能部106はデータソース部107に接続されている。サーバ側負荷計測部104は、サーバ側処理実行履歴記憶部108及びサーバ側処理実行部105と接続されている。
【0035】
[1.1.1.1.サーバ側通信部]
サーバ側通信部101は、ネットワーク30を経由して端末装置20サーバ10間のデータ送受信を行う機能を有する。サーバ側通信部101は、例えばネットワークアダプタ、LANボードなどで実現される。
【0036】
[1.1.1.2.サーバ側管理部]
サーバ側管理部102は、サーバ10における各部各処理の実行の制御を行う機能を有する。サーバ側管理部102は、本実施の形態の第2の管理手段に相当する。
【0037】
[1.1.1.3.サーバ側処理分配部]
サーバ側処理分配部103は、処理実行計画情報に含まれる各単位処理を端末装置20とサーバ10のどちらで行うかを判定し、この判定結果に基づいて各単位処理を端末装置20又はサーバ10で実行させる機能を有する。サーバ側処理分配部103は、本実施の形態の第2の判定手段に相当する。
【0038】
[1.1.1.4.サーバ側処理実行履歴記憶部]
サーバ側処理実行履歴記憶部108は、処理実行履歴情報を記憶する機能を有する。サーバ側処理実行履歴記憶部108は、本実施の形態の第2の記憶手段に相当する。
【0039】
図3に、サーバ側処理実行履歴記憶部108に記憶される処理実行履歴情報のデータ構成例を示す。処理実行履歴情報500Sは、単位処理ごとに、一つのレコード510を有するデータであって、各レコード510は対応する単位処理を特定する情報(例えば、処理名)を格納するフィールド521、処理の要求元を特定する情報を格納するフィールド522、当該単位処理の実行場所を特定する情報を格納するフィールド523、当該単位処理の負荷の値を格納するフィールド524を有している。
【0040】
[1.1.1.5.サーバ側処理実行計画記憶部]
サーバ側処理実行計画記憶部109は、本システム1で実行される処理全体を小さな処理(「単位処理」)の連結を用いて記述した情報である処理実行計画情報を記憶する機能を有する。本実施の形態の第2の記憶手段に相当する。
【0041】
図5に、単位処理1、及び単位処理3から単位処理6までの5つの単位処理からなる処理の流れ(処理実行計画)の例を示す。この処理は、単位処理1を起点として、その後順に単位処理3、単位処理4、単位処理5に進み、単位処理5で処理を終了する。また、単位処理3の実行後、単位処理6も実行される。なお、単位処理1及び単位処理5は端末装置20でのみ実行され、単位処理4及び単位処理6はサーバ10のみで実行され、単位処理3は端末装置20及びサーバ10のいずれでも実行可能な単位処理であるものとする。
【0042】
図6は、図5に示した処理の流れを記述した処理実行計画情報のデータ構成例を示した図である。処理実行計画情報600は、一つの単位処理について一つのレコード610を有するデータである。各レコード610は、対応する単位処理を特定する情報(例えば、処理名)を格納するフィールド621、当該単位処理の次に実行する単位処理を特定する情報(例えば、処理名)を格納するフィールド622、当該単位処理の実行場所を特定する情報を格納するフィールド623を有している。
【0043】
[1.1.1.6.サーバ側処理対応表記憶部]
サーバ側処理対応表記憶部110は、処理実行計画情報に記述された単位処理を特定する情報と、実際に実行する単位処理を特定する情報とを対応付けて記述した情報である処理対応表情報を記憶する機能を有する。サーバ側処理対応表記憶部110は、本実施の形態の第2の記憶手段に相当する。
【0044】
サーバ側処理分配部103は、処理の要求元(例:端末装置、サーバ)に応じて実際に実行する処理を切り替える。処理対応表情報に存在しない場合は、要求された処理名をそのまま使用して、サーバ側処理実行部105に該当する単位処理の実行を命令する。
【0045】
図7は、処理対応表情報のデータ構成例を示した図である。処理対応表情報700は、一つの単位処理について一つのレコード710を有するデータである。各レコード710は、対応する単位処理を特定する情報(例えば、処理名)を格納するフィールド721、当該単位処理の要求元を特定する情報(例えば、端末装置かサーバ化を区別する値、文字列)を格納するフィールド722、及び実際に実行する単位処理を特定する情報を格納するフィールド723を有している。
【0046】
[1.1.1.7.サーバ側負荷計測部]
サーバ側負荷計測部104は、サーバ10において実行された単位処理それぞれの負荷を計測し、計測の結果得られた負荷の値を、サーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報に書き込む機能を有する。サーバ側負荷計測部104は、本実施の形態の第2の計測手段に相当する。
【0047】
[1.1.1.8.サーバ側処理実行部]
サーバ側処理実行部105は、サーバ側処理分配部103がサーバ10で実行すると判定した単位処理を実行する機能を有する。サーバ側処理実行部105は、本実施の形態の第2の実行手段に相当する。
【0048】
サーバ側処理実行部105は、その実行環境をサーバ10とする単位処理111、及びその実行環境をサーバ10と端末装置20の双方とする単位処理111を全て有している。なお、サーバ10と端末装置20の双方とする単位処理111は、サーバ10側と端末装置20側では別の単位処理を特定する情報(例えば、処理名)が与えられており、処理実行計画情報での単位処理を特定する情報と、サーバ10側での単位処理を特定する情報及びサーバ10側での単位処理を特定する情報は、処理対応表情報によって対応付けされている。例えば、処理実行計画情報において「処理3」と記述された単位処理について、処理対応表情報は、処理3に対応するサーバ10側で実行される単位処理の処理名は「単位処理3S」であり、単位処理3に対応する端末装置20側で実行される単位処理の処理名は「単位処理3T」であると記述する。
【0049】
[1.1.1.9.データ操作機能部]
データ操作機能部106は、データソース部107に格納されたデータソース(データベース)を操作するための機能を有する。データ操作機能部106は、例えばDBMS(database management system)である。
【0050】
[1.1.1.10.データソース部]
データソース部107は、データの集合を記憶し、ウェブアプリケーションで使用するデータを格納する機能を有する。
【0051】
[1.1.2.端末装置]
端末装置20は、サーバ10で動作するウェブアプリケーションをロードし実行する環境を提供する装置である。端末装置20は、コンピュータ、携帯電話器、タブレットPC、スマートフォン、業務用通信端末などの情報処理装置によって実現される装置であって、情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読み出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。端末装置10は、本実施の形態の第1の実行環境に相当する。
本発明の実施の形態に係る端末装置20の構成例について説明する。図8は、本実施の形態に係る端末装置20の構成例を示す機能ブロック図である。
【0052】
端末装置20は、端末装置側通信部201と、端末装置側管理部202と、端末装置側処理分配部203と、端末装置側負荷計測部204と、端末装置側処理実行部205と、GUI部品操作機能部206と、GUI部品部207と、端末装置側処理実行履歴記憶部208と、端末装置側処理実行計画記憶部209と、端末装置側処理対応表記憶部210とを有する。
【0053】
端末装置側通信部201はネットワーク30に接続されているか、ネットワーク30と接続可能である。端末装置側管理部202は端末装置側通信部201、端末装置側処理実行履歴記憶部208に接続されている。端末装置側処理分配部203は端末装置側管理部202に接続されていると共に、端末装置側処理実行履歴記憶部208、端末装置側処理実行計画記憶部209、端末装置側処理対応表記憶部210に接続されている。端末装置側負荷計測部204は端末装置側処理分配部203、端末装置側処理実行履歴記憶部208、端末装置側処理実行部205に接続されている。端末装置側処理実行部205は端末装置側処理分配部203に接続されている。GUI部品操作機能部206はGUI部品部207に接続されている。
【0054】
[1.1.2.1.端末装置側通信部]
端末装置側通信部201は、ネットワーク30を経由して端末装置20とサーバ10間のデータ送受信を行う機能を有する。端末装置側通信部201は、例えば無線LANボード、ネットワークアダプタなどで実現される。
【0055】
[1.1.2.2.端末装置側管理部]
端末装置側管理部202は、端末装置20における各部各処理の実行の制御を行う機能を有する。端末装置側管理部202は、本実施の形態の第1の管理手段に相当する。
【0056】
[1.1.2.3.端末装置側処理分配部]
端末装置側処理分配部203は、処理実行計画情報に含まれる各単位処理を端末装置20とサーバ10のどちらで行うかを判定し、この判定結果に基づいて各単位処理を端末装置20又はサーバ10で実行させる機能を有する。端末装置側処理分配部203は、本実施の形態の第1の判定手段に相当する。
【0057】
[1.1.2.4.端末装置側処理実行履歴記憶部]
端末装置側処理実行履歴記憶部208は、処理実行履歴情報を記憶する機能を有する。処理実行履歴情報は、サーバ側処理実行履歴記憶部108によって記憶される処理実行履歴情報と同一のデータ構成を有している。端末装置側処理実行履歴記憶部208は、本実施の形態の第1の記憶手段に相当する。
【0058】
端末装置側処理実行履歴記憶部208に記憶される処理実行履歴情報(「端末装置側処理実行履歴情報」と呼ぶ)は、後述する初期化処理時に、サーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報(「サーバ側処理実行履歴情報」と呼ぶ)から、実行場所が当該端末装置20の端末種別と同じであるレコード510、又は実行場所がサーバ10であるレコード510のみを取り出し、これら取り出したレコード510からなるデータを端末装置側処理実行履歴情報として記憶する。
【0059】
図4に、図3に示した処理実行履歴情報500Sから生成した、端末装置側処理実行履歴情報のデータ構成例を示す。端末装置側処理実行履歴情報500Tは、処理実行履歴情報500Sと同様に、単位処理ごとに、一つのレコード510を有するデータであって、各レコード510は対応する単位処理を特定する情報(例えば、単位処理名)を格納するフィールド521、処理の要求元を特定する情報を格納するフィールド522、当該単位処理の実行場所を特定する情報を格納するフィールド523、当該単位処理の負荷の値を格納するフィールド524を有している。
【0060】
[1.1.2.5.端末装置側処理実行計画記憶部]
端末装置側処理実行計画記憶部209は、本システム1で実行される処理を小さな処理(「単位処理」)の連結によって記述した情報である処理実行計画情報を記憶する機能を有する。端末装置側処理実行計画記憶部209は、本実施の形態の第1の記憶手段に相当する。
この処理実行計画情報は、サーバ側処理実行計画記憶部109で記憶される処理実行計画情報と同様のデータ構成を有するデータである。
【0061】
[1.1.2.6.端末装置側処理対応表記憶部]
端末装置側処理対応表記憶部210は、処理実行計画情報に記述された単位処理を特定する情報と、実際に実行する単位処理を特定する情報とを対応付けて記述した情報である処理対応表情報を記憶する機能を有する。端末装置側処理対応表記憶部210は、本実施の形態の第1の記憶手段に相当する。この処理対応表情報は、前述したサーバ側処理対応表記憶部110で記憶される処理対応表情報と同様のデータ構成を有するデータである。
【0062】
[1.1.2.7.端末装置側負荷計測部]
端末装置側負荷計測部204は、サーバ10において実行された単位処理それぞれの負荷を計測し、計測の結果得られた負荷の値を、端末装置側処理実行計画記憶部209で記憶されている処理実行履歴情報に書き込む機能を有する。端末装置側負荷計測部204は、本実施の形態の第1の計測手段に相当する。
【0063】
[1.1.2.8.端末装置側処理実行部]
端末装置側処理実行部205は、端末装置側処理分配部203が端末装置20で実行すると判定した単位処理を実行する機能を有する。端末装置側処理実行部205は、本実施の形態の第1の計測手段に相当する。
【0064】
端末装置側処理実行部205は、その実行環境を端末装置20とする単位処理111、及びその実行環境をサーバ10と端末装置20の双方とする単位処理111を全て有している。なお、実行環境をサーバ10と端末装置20の双方とする単位処理111は、サーバ10側と端末装置20側では別の単位処理を特定する情報(例えば、処理名)が与えられており、処理実行計画情報での単位処理を特定する情報と、サーバ10側での単位処理を特定する情報及びサーバ10側での単位処理を特定する情報は、処理対応表情報によって対応付けされている。
【0065】
[1.1.2.9.GUI部品部]
GUI部品部207は、ウェブアプリケーションのGUI(Graphical User Interface)を構成している部品として機能する。
【0066】
[1.1.2.10.GUI部品操作機能部]
GUI部品操作機能部206は、GUI部品部207によって提供されるGUI部品を操作する機能を提供する。
【0067】
[1.2.動作例]
[1.2.1.システム全体の動作例]
本実施の形態に係るウェブアプリケーションシステム1全体の動作を説明する。図9にウェブアプリケーションシステム1における初期化処理の例を示したシーケンス図を掲げる。また、図10に、上記初期化処理開始時点において端末装置側処理実行計画記憶部209及びサーバ側処理実行計画記憶部109に記憶されている処理実行計画情報600のデータ例を示す。図10に示す処理実行計画情報600は、単位処理1、単位処理3、単位処理4を順に実行することを内容とする処理実行計画を記述している。単位処理1、単位処理4は「端末装置」で実行可能な処理であることが記述されており、単位処理3はサーバ及び端末装置の双方で実行可能な処理であることが記述されている。
【0068】
また、ウェブアプリケーションシステム1において、各単位処理の負荷を端末装置20若しくはサーバ10にて計測した場合に得られる負荷の値を図11に示すように仮定する。図11は単位処理1から単位処理4の負荷を計測した場合に得られると仮定した負荷の値を格納した処理実行履歴情報を示す図である。
【0069】
さらにまた、図12に、端末装置側処理対応表記憶部210に記憶されている処理対応表情報700Tを示し、図13に、サーバ側処理対応表記憶部110に記憶されている処理対応表情報700Sを示す。なお、処理対応表情報700Sは、いずれの単位処理のレコードも有していない。
【0070】
[1.2.1.初期化処理]
図9を参照しながら、ウェブアプリケーションシステム1の初期化処理の動作を説明する。この「初期化処理」は、端末装置20とサーバ10の間で、処理実行履歴情報を一致させるための処理である。
【0071】
初期化処理において、端末装置20が電源投入などにより起動すると、端末装置20、より詳しくは端末装置側管理部202は、サーバ10、より詳しくはサーバ側管理部102に端末種別情報を送信する(S101)。端末種別情報は、当該端末装置20の機種などを特定する情報である。
【0072】
サーバ10、より詳しくはサーバ側管理部102は、上記端末種別情報を元にして、サーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報から、当該端末装置20に使用させるための処理実行履歴情報を生成する(S102)。当該端末装置20に使用させるための処理実行履歴情報とは、実行場所(実行環境と同義、以下同じ)を格納するフィールド523に当該端末装置20に対応する種別情報が格納されているレコード510、及び実行場所を格納するフィールド523にサーバを示す情報が格納されているレコード510のみを含むように書き換えられた処理実行履歴情報である。サーバ10、より詳しくはサーバ側管理部102は、ステップS102で生成した処理実行履歴情報を当該端末装置20に送信する(S103)。
以上で初期化処理は終了する。
【0073】
[1.2.2.端末装置起点での処理実行]
図14及び図15を参照しながら、ウェブアプリケーションシステム1における端末装置20から処理実行要求が発せられた場合の処理実行計画実行の動作を説明する。図14は、ウェブアプリケーションシステム1における端末装置起点での処理実行計画の実行動作の例を示したシーケンス図であり、図15は、図14に続くシーケンス図である。
【0074】
まず、端末装置20、より詳しくは端末装置側管理部202はユーザからの処理実行要求入力を受け付ける(S201)。処理実行要求入力は、例えばアイコンのタップ、アプリの起動などである。
【0075】
処理実行要求入力を受け付けた端末装置20、より詳しくは端末装置側管理部202は、端末装置側処理分配部203に処理実行要求を渡す(S202)。この処理実行要求には、実行環境を指定する情報、処理要求元を示す情報、通信負荷を示す情報が付加されているものとする。
【0076】
処理実行要求を受け取った端末装置側処理分配部203は、上記の実行環境を指定する情報、処理要求元を示す情報、通信負荷を示す情報、及び端末装置側処理実行計画記憶部209に記憶されている処理実行計画情報、端末装置側処理実行履歴記憶部208処理実行履歴情報から、処理負荷の推定値を算出する(S203)。
【0077】
次に端末装置側処理分配部203は、ステップS203において算出した処理負荷の推定値に基づいて、処理実行計画情報に含まれる複数の一連の単位処理の内、どこまでの単位処理を当該端末装置20において実行するかを決定する(S204)。なお、このステップS204で決定した単位処理の範囲を「端末側処理範囲」と呼ぶ。
【0078】
次に端末装置側処理分配部203は、上記の端末側処理範囲に含まれる単位処理のそれぞれを処理実行計画情報に記述された順番通りに実行する(S205)。但し、端末装置側処理分配部203は、単位処理の実行に際して端末装置側処理対応表記憶部210に記憶されている処理対応表情報を読み取り、処理実行計画情報に記述された処理(例えば、単位処理4)に対応する単位処理であって、処理対応表情報に記述された単位処理(単位処理4A)を実行する。
【0079】
ステップS205の実行に合わせて、端末装置側負荷計測部204は、上記の端末側処理範囲に含まれる単位処理のそれぞれの負荷を計測する(S206)。端末装置側負荷計測部204は、上記計測の結果得られた負荷の値を、端末装置側処理実行履歴記憶部208に記憶されている処理実行履歴情報に書き込む(S207)。
【0080】
次に端末装置側処理分配部203は、上記処理実行計画における端末側処理範囲以降の単位処理の実行をサーバ10に要求する旨の命令を端末装置側管理部202に渡す(S208)。この命令を受け取った端末装置側管理部202は上記処理実行計画における端末側処理範囲以降の単位処理の実行を要求する実行要求メッセージをサーバ10、より詳しくはサーバ側管理部102に送信する(S209)。
【0081】
また、端末装置側管理部202は端末装置側処理実行履歴記憶部208に記憶されている処理実行履歴情報を読み出し、この処理実行履歴情報をサーバ10、より詳しくはサーバ側管理部102に送信する(S210)。
【0082】
処理実行履歴情報を受信したサーバ側管理部102は、サーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報を、ステップS210で端末装置20から受信した処理実行履歴情報に置き換える(更新する)(S211)。
【0083】
サーバ側管理部102は、ステップS209において送信された実行要求メッセージにおいて指定された単位処理(複数の場合あり)を実行するように、サーバ側処理分配部103に要求する(S212)。
【0084】
上記単位処理の実行を要求されたサーバ側処理分配部103は、サーバ側処理実行計画記憶部109に記憶されている処理実行計画情報、及びサーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報に基づいて、実行要求メッセージにおいて指定された単位処理それぞれの処理負荷の推定値を算出する(S213)。
【0085】
サーバ側処理分配部103は、上記推定値に基づいて、処理実行計画情報に含まれる単位処理の内、どこまでの単位処理をサーバ10で実行するかを決定する(S214)。このステップS214で決定した単位処理の範囲を「サーバ側処理範囲」と呼ぶ。
サーバ側処理分配部103は、ステップS214において決定したサーバ側処理範囲に含まれる単位処理(複数この場合あり)を順次実行する(S215)。
【0086】
サーバ側処理範囲に含まれる単位処理の実行完了後、サーバ側処理分配部103は、上記処理実行計画におけるサーバ側処理範囲以降の単位処理の実行を要求する命令をサーバ側管理部102に渡す(S216)。この命令を受け取ったサーバ側管理部102は上記処理実行計画におけるサーバ側処理範囲以降の単位処理の実行を要求する実行要求メッセージを端末装置20、より詳しくは端末装置側管理部202に送信する(S217)。
【0087】
また、サーバ側管理部102は、サーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報の内、「実行場所」が当該端末装置20の端末種別と一致する行のデータ、或いは「実行場所」がサーバ10と一致するレコード(行)のデータを取り出し、これらレコード(行)のデータを処理実行履歴情報として端末装置側管理部202に送信する(S218)。
【0088】
この後端末装置側管理部202は、前述のステップS202に戻り、ステップS202以降の処理を続行していく。
ウェブアプリケーションシステム1は、処理実行計画に含まれる全ての単位処理の実行を完了すると、端末側起点の動作である処理実行計画処理を終了する。
以上で端末装置起点での処理実行の説明を終了する。
【0089】
[具体例]
上記初期化処理及び端末装置起点の処理実行の具体例を示す。
図16に、初期化処理開始前の、端末装置側処理実行履歴記憶部208に記憶されている処理実行履歴情報(区別のため「端末装置側処理実行履歴情報500T」とする)、及びサーバ側処理実行履歴記憶部108に記憶されている処理実行履歴情報(区別のため「サーバ側処理実行履歴情報500S」とする)のデータ例を示す。図16中(A)が端末装置側処理実行履歴情報500Tであり、(B)がサーバ側処理実行履歴情報500Sである。初期化処理開始前において、端末装置側処理実行履歴情報500T及びサーバ側処理実行履歴情報500S共に空の状態である。
【0090】
図16に示した状態の後、ステップS101からステップS103まで終了した時点における端末装置側処理実行履歴情報500T及びサーバ側処理実行履歴情報500Sのデータ例を図17に示す。サーバ側処理実行履歴情報500Sが空のままのため、端末装置側処理実行履歴情報500Tも空である。
【0091】
図17に示した状態の後、ステップS201からステップS205まで終了した時点における、端末装置側処理実行履歴情報500T及びサーバ側処理実行履歴情報500Sのデータ例を図18に示す。図18に示す端末装置側処理実行履歴情報500Tには、端末装置側負荷計測部204によって計測された負荷の値が格納されている。なお、この値は図11に示したデータによるものである。サーバ側処理実行履歴情報500Sは、この時点では空のままである。
【0092】
ステップS201からステップS205において、端末装置側管理部202から単位処理1の処理要求を受けた端末装置側処理分配部203は、単位処理1を端末装置20で実行するか、サーバ10に実行させるかを端末装置側処理実行履歴情報500Tに基づいて判定する。単位処理1の負荷の値は、端末装置20で実行した場合の負荷の値は「14」、サーバ10で実行した場合の負荷の値は「0」であるため、通信(負荷の値は20と計測されているとする)を考慮した上で、端末装置20での単位処理1の実行を選択し、端末装置側処理実行部205に単位処理1の実行を命令し、端末装置側処理実行部205は単位処理1を実行する。これで単位処理1の実行は終了したため、端末装置側処理分配部203は端末装置側管理部202に単位処理1の処理要求を送信しない。
【0093】
次に、端末装置側管理部202から単位処理3の処理要求を受けた端末装置側処理分配部203は、単位処理3を端末装置20で実行するか、サーバ10に実行させるかを端末装置側処理実行履歴情報500Tに基づいて判定する。単位処理3の負荷の値は、端末装置20で実行した場合の負荷の値は「100」、サーバ10で実行した場合の負荷の値は「0」であるため、通信(負荷の値は20と計測されているとする)を考慮した上で、サーバ10での単位処理3の実行を選択し、単位処理3の実行をサーバ10に要求するよう端末装置側管理部202に命令する。このとき、端末装置側管理部202は図18に示した端末装置側処理実行履歴情報500Tをサーバ10に送信する。
【0094】
上記端末装置側処理実行履歴情報500Tを受信したサーバ10、より詳しくはサーバ側処理分配部103は、サーバ側処理実行履歴記憶部108に記憶されているサーバ側処理実行履歴情報500Sを、端末装置側処理実行履歴情報500Tを取り込むように更新する。
【0095】
次にサーバ10、より詳しくはサーバ側処理分配部103は、単位処理3を端末装置20に実行させるかサーバ10で実行するかを、サーバ側処理実行履歴情報500Sに基づいて判定する。単位処理3の負荷の値は、端末装置20で実行した場合の負荷の値は「100」、サーバ10で実行した場合の負荷の値は「0」であるため、通信(負荷の値は20と計測されているとする)を考慮した上で、サーバ10での単位処理3の実行を選択し、単位処理3の実行をサーバ10に要求するよう端末装置側管理部202に命令する。
【0096】
端末装置側管理部202から受信した単位処理3の実行要求に応じて、単位処理3の実行をサーバ側処理実行部105に命令し、サーバ側処理実行部105は単位処理3を実行する。サーバ側負荷計測部104は単位処理3の負荷の値を計測し、サーバ側処理実行履歴情報500Sに計測した負荷の値を書込む。その結果、処理名を「処理3」とし、要求元を「端末」とし、実行場所を「サーバ」とし、負荷を「10」とするレコードがサーバ側処理実行履歴情報500Sに追加される。この状態での端末装置側処理実行履歴情報500T、及びサーバ側処理実行履歴情報500Sのデータ例を図19に示す。
【0097】
次に、サーバ側処理分配部103は、単位処理4の実行環境は端末装置20のみなので、単位処理4の実行を端末装置20に要求するようサーバ側管理部102に命令する。サーバ側管理部102は端末装置20、より詳しくは端末装置側管理部202に単位処理4の実行要求メッセージを送信する。
【0098】
このとき、サーバ側管理部102は図19に示したサーバ側処理実行履歴情報500Sから端末装置用の処理実行履歴情報を生成し、端末装置用の処理実行履歴情報この端末装置20、より詳しく端末装置側管理部202に送信する。
【0099】
上記端末装置用の処理実行履歴情報を受信した端末装置20、より詳しく端末装置側管理部202は上記処理実行履歴情報に基づいて、端末装置側処理実行履歴記憶部208に記憶されている端末装置側処理実行履歴情報500Tの内容を更新する。
【0100】
また、端末装置20、より詳しく端末装置側管理部202は、サーバ10からの単位処理4の実行要求に基づいて、端末装置側処理分配部203に単位処理4の実行要求を渡す。端末装置側処理分配部203は単位処理4の実行を端末装置側処理実行部205に要求し、端末装置側処理実行部205は単位処理4を実行する。端末装置側負荷計測部204は、単位処理4の負荷の値(サーバ10が要求元で、実行環境が端末装置である場合の負荷)を計測し、計測結果を受け取った端末装置側処理分配部203はこの負荷の値を端末装置側処理実行履歴情報500Tに書き加える。図20に、この時点での端末装置側処理実行履歴情報500T、及びサーバ側処理実行履歴情報500Sのデータ例を示す。
この後、端末装置20は、単位処理1、単位処理3、単位処理4からなる処理実行計画をさらに実行するものとして説明を続ける。
【0101】
端末装置側管理部202は、単位処理1の実行を端末装置側処理分配部203に要求すると、端末装置側処理分配部203は、単位処理1を端末装置側処理実行部205に実行させる。
【0102】
次に、端末装置側処理分配部203は、図20に示す端末装置側処理実行履歴情報500Tの内容に基づいて、単位処理3を端末装置20で実行するかサーバ10に実行させるかを判定する。端末装置側処理実行履歴情報500Tは、単位処理3の負荷の値について、端末装置20で実行した場合の負荷の値は「100」、サーバ10で実行した場合の負荷の値は「10」であることを記述しているため、端末装置側処理分配部203は、通信(負荷の値は20と計測されているとする)を考慮した上で、より負荷の値の少ないサーバ10での単位処理3の実行を選択し、単位処理3の実行をサーバ10に要求するよう端末装置側管理部202に命令する。このとき、端末装置側管理部202は図20に示した端末装置側処理実行履歴情報500Tをサーバ10に送信する。
【0103】
図20に示した端末装置側処理実行履歴情報500Tを受信したサーバ10、より詳しくはサーバ側管理部102は、サーバ側処理実行履歴記憶部108に記憶されているサーバ側処理実行履歴情報500Sを、上記端末装置側処理実行履歴情報500Tを取り込むように更新する。この時点での端末装置側処理実行履歴情報500T、及びサーバ側処理実行履歴情報500Sのデータ例を図21に示す。
【0104】
次にサーバ10、より詳しくはサーバ側管理部102は、端末装置側管理部202から受信した単位処理3の実行要求に応じて、単位処理3の実行をサーバ側処理分配部103に命令する。サーバ側処理分配部103は、図21に示すサーバ側処理実行履歴情報500Sの内容に基づいて、単位処理3を端末装置20に実行させるか、サーバ10で実行するかを判定する。サーバ側処理実行履歴情報500Sは単位処理3の負荷の値は、端末装置20で実行した場合の負荷の値は「100」、サーバ10で実行した場合の負荷の値は「10」であることを記述しているため、端末装置側処理分配部203は、通信(負荷の値は20と計測されているとする)を考慮した上で、より負荷の値の少ないサーバ10での単位処理3の実行を選択し、単位処理3の実行をサーバ側処理実行部105に命令し、サーバ側処理実行部105は単位処理3を実行する。サーバ側負荷計測部104は単位処理3の負荷の値を計測し、サーバ側処理実行履歴情報500Sに計測した負荷の値を書込む。
【0105】
次に、サーバ側処理分配部103は、単位処理4の実行環境は端末装置20のみなので、単位処理4の実行を端末装置20に要求するようサーバ側管理部102に命令する。サーバ側管理部102は端末装置20、より詳しくは端末装置側管理部202に単位処理4の実行要求を送信する。
【0106】
このとき、サーバ側管理部102は図21に示した端末装置側処理実行履歴情報500Tから端末装置用に生成した処理実行履歴情報を端末装置20、より詳しく端末装置側管理部202に送信する。
【0107】
上記処理実行履歴情報を受信した端末装置20、より詳しく端末装置側管理部202は上記処理実行履歴情報に基づいて、端末装置側処理実行履歴記憶部208に記憶されている端末装置側処理実行履歴情報500Tの内容を更新する。
【0108】
また、端末装置20、より詳しく端末装置側管理部202は、サーバ10からの単位処理4の実行要求に基づいて、端末装置側処理分配部203に単位処理4の実行要求を渡す。端末装置側処理分配部203は単位処理4の実行を端末装置側処理実行部205に要求し、端末装置側処理実行部205は単位処理4を実行する。端末装置側負荷計測部204は、単位処理4の負荷の値(サーバ10が要求元で、実行環境が端末装置である場合の負荷)を計測し、計測結果を受け取った端末装置側処理分配部203はこの負荷の値を端末装置側処理実行履歴情報500Tに書き加える。図22に、この時点での端末装置側処理実行履歴情報500T、及びサーバ側処理実行履歴情報500Sのデータ例を示す。
以上で具体例の説明を終了する。
【0109】
[1.2.2.2.端末装置側処理分配部及びサーバ側処理分配部の動作例]
次に端末装置側処理分配部203及びサーバ側処理分配部103の動作を説明する。図23に、端末装置側処理分配部203及びサーバ側処理分配部103の主たる動作(「処理分配処理」と呼ぶ)の一例を示したフローチャートを掲げ、図24に、図23に続くフローチャートを掲げる。なお、以下の説明では「端末装置側処理分配部」による処理分配処理として説明する。
処理分配処理において、端末装置側処理分配部203は端末装置側処理実行計画記憶部209から、一つの処理実行計画情報を読み出す(S301)。
【0110】
次に端末装置側処理分配部203は、前記ステップS301において読み出した処理実行計画情報に記述されている一連の単位処理の内、当該単位処理の実行環境として自らの実行環境を含まない単位処理であって、当該一連の単位処理の内最初に実行されるもの(「単位処理A」と呼ぶ)を抽出する(S302)。
【0111】
次に端末装置側処理分配部203は、上記条件を満たす単位処理Aが当該一連の単位処理に存在するか否かを判定する(S303)。ステップS303の判定において、上記条件を満たす単位処理Aが当該一連の単位処理に存在すると判定した場合(S303,Yes)、端末装置側処理分配部203は、前記一連の単位処理の内、いずれか二つの単位処理(単位処理B,単位処理Cと呼称)を選択する(S304)。ただし、単位処理Cは単位処理Bと同じかそれよりも後で実行される単位処理でなければならず、単位処理Bの実行から単位処理Cの実行までにおける負荷の合計量(負荷量BCと呼称)が、単位処理Bの実行から単位処理Cの実行をもう一方の実行環境にて実行としたときの負荷の合計量(負荷量BC)より小さくなければならない。
【0112】
次に端末装置側処理分配部203は、前記一連の単位処理を全て自らの環境で実行した場合の負荷の合計量(負荷量Sと呼称)を算出する(S305)。
次に端末装置側処理分配部203は、前記負荷量Sは前記負荷量BC以下であるか否かを判定する(S306)。
【0113】
ステップS306において、前記負荷量Sは前記負荷量BC以下であると判定した場合(S306, Yes)、端末装置側処理分配部203は、前記一連の単位処理のそれぞれを、自らの実行環境で順番に実行させる(S307)。但し、最初の単位処理については、処理の要求元は渡された処理の要求元とし、以降の処理については自らの実行環境とする。また、実際に実行される単位処理は、処理要求元と処理対応表から決定されたものとする。
【0114】
次に端末装置側処理分配部203は、ステップS307において実行された各単位処理の負荷の値を元に、端末装置側処理実行履歴記憶部208に記憶されている処理実行履歴情報を更新する(書き換える)(S308)。
以上で端末装置側処理分配部203は、当該処理実行計画情報についての処理分配処理を終了する。
【0115】
前述したステップS303に戻り、処理分配処理の説明を続ける。ステップS303において、上記条件を満たす単位処理Aが当該一連の単位処理に存在しないと判定した場合(S303,No)、端末装置側処理分配部203は、前記一連の単位処理の内いずれか一つの単位処理(単位処理Dと呼ぶ)を選択する(S309)。但し、単位処理Dは、単位処理Aと同じかそれよりも先に処理される単位処理であって、前記一連の単位処理における単位処理D以降の単位処理群をもう一方の実行環境で実行したときの負荷の合計量が最小であるものとする。なおここでの負荷の合計量の計算では単位処理Aまでの負荷しか考慮せず、単位処理A以降の負荷は無視する。
【0116】
次に端末装置側処理分配部203は、前記一連の単位処理の内、前記単位処理Dより前までの各単位処理を実行する(S310)。ただし、実行する最初の単位処理については処理の要求元は渡された処理の要求元とし、以降の単位処理については自らの実行環境とする。また実際に実行される単位処理は処理要求元と処理対応表から決定されたものとする。
【0117】
次に端末装置側処理分配部203は、ステップS310において実行された各単位処理の負荷の値を元に、端末装置側処理実行履歴記憶部208に記憶されている処理実行履歴情報を更新する(書き換える)(S311)。
【0118】
次に端末装置側処理分配部203は、単位処理Dの実行を端末装置側管理部202に要求する(S312)。その後、端末装置側処理分配部203は当該処理実行計画情報についての処理分配処理を終了する。
【0119】
前述したステップS306に戻り、処理分配処理の説明を続ける。ステップS306において、前記負荷量Sは前記負荷量BC以下ではないと判定した場合(S306, No)、端末装置側処理分配部203は、前記単位処理Bを単位処理Dとして定義しなおす(S313)。なお、単位処理Dは前述のステップS309で述べた条件に合致する単位処理である。ステップS313の後、端末装置側処理分配部203は前述のステップS310に進み、処理分配処理を続行する。
【0120】
以上で処理分配処理の説明を終了する。なお、上記の説明では、端末装置側処理分配部203の動作として処理分配処理を説明したが、上記説明を端末装置側処理分配部203をサーバ側処理分配部103と読み替え、端末装置側管理部202をサーバ側管理部102と読み替え、端末装置側処理実行計画記憶部209をサーバ側処理実行計画記憶部109と読み替えることにより、サーバ側処理分配部103における処理分配処理の説明となる。
【0121】
[1.2.2.2.端末装置側管理部の動作例]
以下に、端末装置側管理部202の動作を説明する。
[1.2.2.2.1.端末装置側通信時間計測処理]
端末装置側管理部202が実行する処理の一つである端末装置側通信時間計測処理を説明する。図25に、端末装置側管理部202の主たる動作の一つである端末装置側通信時間計測処理の一例を示したフローチャートを掲げる。
【0122】
端末装置側通信時間計測処理において、端末装置側管理部202はサーバ側管理部102に通信時間計測要求メッセージをネットワーク30を経由して送信する(S401)。次に、端末装置側管理部202は、上記通信時間計測要求メッセージに応答してサーバ側管理部102からネットワークを経由して返信されてくる応答メッセージを受信し、この応答メッセージの受信時刻を元に通信時間を算出し、算出した通信時間を記憶する(S402)。以上で端末装置側管理部202は端末装置側通信時間計測処理を終了する。なお、端末装置側通信時間計測処理は、いつ行われてもよいが、例えば前述のステップS101の実行をトリガとして行うようにしてもよいし、所定のタイミング、例えば端末装置20の電源投入時や所定時間の経過ごとに行うようにしてもよい。
【0123】
[1.2.2.2.2.端末装置側通信時間計測要求受信時処理]
端末装置側管理部202が実行する処理の一つである端末装置側通信時間計測要求受信時処理を説明する。図26に、端末装置側管理部202の主たる動作の一つである端末装置側通信時間計測要求受信時処理の一例を示したフローチャートを掲げる。端末装置側通信時間計測要求受信時処理は、端末装置20がサーバ10から通信時間計測要求メッセージを受信した場合に、端末装置20が実行する処理である。
【0124】
端末装置側通信時間計測要求受信時処理において、端末装置側管理部202は、通信時間計測要求メッセージを受信した旨を伝えるメッセージである応答メッセージを生成し、これをサーバ側管理部102にネットワークを経由して送信する(S501)。以上で端末装置側管理部202は端末装置側通信時間計測要求受信時処理を終了する。
【0125】
[1.2.2.3.サーバ側管理部の動作例]
次にサーバ側管理部102の動作を説明する。
[1.2.2.3.1.サーバ側通信時間計測処理]
サーバ側管理部102が実行する処理の一つであるサーバ側通信時間計測処理を説明する。図27に、サーバ側管理部102の主たる動作の一つであるサーバ側通信時間計測処理の一例を示したフローチャートを掲げる。
【0126】
サーバ側通信時間計測処理において、サーバ側管理部102は端末装置側管理部202に通信時間計測要求メッセージをネットワーク30を経由して送信する(S601)。次に、サーバ側管理部102は、上記通信時間計測要求メッセージに応答して端末装置側管理部202からネットワーク30を経由して返信される応答メッセージを受信し、この応答メッセージの受信時刻を元に通信時間を算出し、算出した通信時間を記憶する(S602)。以上でサーバ側管理部102はサーバ側通信時間計測処理を終了する。なお、サーバ側通信時間計測処理は、いつ行われてもよいが、所定のタイミング、所定時間の到来するごとに行うようにしてもよい。
【0127】
[1.2.2.3.2.サーバ側通信時間計測要求受信時処理]
図28に、サーバ側管理部102の主たる動作の一つであるサーバ側通信時間計測要求受信時処理の一例を示したフローチャートを掲げる。サーバ側通信時間計測要求受信時処理は、サーバ10が端末装置20から通信時間計測要求メッセージを受信した場合に、サーバ10が実行する処理である。
【0128】
サーバ側通信時間計測要求受信時処理において、サーバ側管理部102は、通信時間計測要求メッセージを受信した旨を伝えるメッセージである応答メッセージを生成し、これを端末装置側管理部202にネットワーク30を経由して送信する(S701)。以上でサーバ側管理部102はサーバ側通信時間計測要求受信時処理を終了する。
【0129】
[4.利点]
端末装置20とサーバ10の両者において実行可能な単位処理を、それぞれの実行環境で実行した場合の負荷の量に応じて、端末装置20又はサーバ10のいずれかに動的に割り振り、実行させることが可能となる。
【0130】
また、本実施の形態によれば、サーバ10及び端末装置20は処理実行履歴情報500を蓄積していくため、端末装置側処理分配部203及びサーバ側処理分配部103による単位処理実行場所決定の方法によって、適切な分配方法に収束させることが可能となる。
【0131】
処理の流れ(処理3をサーバにて実行するかどうか)によって、処理を自動的に切り替えることができる(例えば、処理3を端末装置20で実行した場合は処理4A、処理3をサーバ10で実行した場合は処理4B)。
【0132】
[5.まとめ、その他]
以上、本発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加、組み合わせ等が可能である。
【符号の説明】
【0133】
1…ウェブアプリケーションシステム; 10…サーバ; 20…端末装置; 30…ネットワーク; 102…サーバ側管理部; 103…サーバ側処理分配部; 104…サーバ側負荷計測部; 105…サーバ側処理時実行部; 202…端末装置側管理部; 203…端末装置側処理分配部; 204…端末装置側負荷計測部; 205…端末装置側処理実行部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28