(57)【要約】【課題】業務利用に係るプログラムの情報の安全性と操作応答性の確保を両立可能とする技術を提供する。【解決手段】情報処理装置は、プログラムの処理コードを解析し、プログラムの画面を記述する１以上の処理コードを抽出し、抽出された１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、生成された画面処理の処理コード群を電子機器に送信すると共に電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、プログラムの中の画面処理の処理コード群以外の処理コードを実行し、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、を備える。【選択図】図６Ａ
2016218924.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出し、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、
生成された前記画面処理の処理コード群を前記電子機器に送信すると共に前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行し、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、
を備える情報処理装置。
【請求項２】
前記生成部は、前記画面処理の処理コード群に、前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与し、
前記制御部は、前記中継プログラムに付与された前記画面処理の処理コード群を電子機器に送信すると共に、前記中継プログラムを通じて前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードからの処理要求を受け付け、前記中継プログラムを通じて該処理要求に対応する、前記プログラムの中の処理コードの実行の結果を電子機器に送信する、請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記画面処理の処理コード群に含まれる前記１以上の処理コードのそれぞれについて処理要求頻度を計測すると共に計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応する前記プログラム中の処理コードについての前記画面処理の処理コード群への移動を決定し、前記電子機器に送信する、請求項１または２に記載の情報処理装置。
【請求項４】
前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に高い設定値に変更する、請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、請求項３に記載の情報処理装置。
【請求項６】
前記生成部は、プログラムの処理コードを解析し、前記処理コードの実行により保存するよう記述された１以上のデータを抽出し、抽出された前記１以上のデータ以外の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する、請求項１から請求項５の何れか一項に記載の情報処理装置。
【請求項７】
プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部と、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得して前記プログラムの画面を生成する処理部と、
を備える電子機器。
【請求項８】
前記受信部は、前記画面処理の処理コード群に付与された前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信し、
前記処理部は、前記中継プログラムを通じて、前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得する、請求項７に記載の電子機器。
【請求項９】
前記処理部は、情報処理装置から送信された前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コードを受信すると共に、前記画面処理の処理コード群に含まれる前記１以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、受信した前記プログラム中の処理コードを前記情報処理装置に送信する、請求項７または８に記載の電子機器。
【請求項１０】
前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に低い設定値に変更する、請求項９に記載の電子機器。
【請求項１１】
前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、請求項９に記載の電子機器。
【請求項１２】
電子機器と接続するコンピュータに、
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出するステップと、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
を実行させるための情報処理プログラム。
【請求項１３】
情報処理装置と接続するコンピュータに、
プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップと、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、前記それぞれの処理要求に対応する処理の結果を取得するステップと、取得した処理の結果に基づいて前記プログラムの画面を生成する処理ステップと、
を実行させるための処理プログラム。
【請求項１４】
電子機器と接続するコンピュータが、
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出するステップと、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
を実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、電子機器、情報処理プログラム及び処理プログラムに関する。
【背景技術】
【０００２】
近年、スマートフォン、ノートＰＣ（ＰＣ：Personal Computer）、タブレットＰＣ、
ＰＤＡ（Personal Data Assistance）といった情報処理端末の普及とモバイル通信環境の高速化に伴い、モバイル環境下での情報処理端末の業務利用が増加傾向にある。情報処理端末（以下、電子機器とも称す）には、例えば、情報処理端末の備えるＯＳ（Operating System）を用いて実行されるモバイルアプリケーションプログラム（以下、モバイルアプリとも称す）が搭載される傾向にある。また、近年の、情報処理端末では、例えば、メガネをかける要領で頭部に装着して使用可能なスマートグラス、腕時計型（リストバンド型）の情報処理端末・センサといったウェアラブル機器と連携した業務利用が可能となっている。
【０００３】
なお、本明細書で説明する技術に関連する技術が記載されている先行技術文献としては、以下の特許文献が存在している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１９７６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、モバイル環境下で業務に利用される情報処理端末では、個人情報や顧客データといった秘匿性の高い情報が使用される傾向にある。このため、情報処理端末で使用される秘匿性の高い情報について、情報処理端末の紛失や情報漏えい等に対する安全性の確保が要請されていた。
【０００６】
業務利用に係る情報の安全性を確保するため、例えば、画面転送方式による利用形態が想定される。画面転送方式の利用形態では、例えば、情報処理端末は、通信ネットワーク等を介して接続されたクラウド上のサーバ等に、受け付けた操作入力を送信する。クラウド上のサーバ側では、情報処理端末から送信された操作入力を受け付け、業務利用に係る各種モバイルアプリを実行する。モバイルアプリの実行結果は、アプリ表示画面として情報処理端末に転送される。画面転送方式の処理形態では、処理の実行主体はサーバ側にあるため、情報処理端末側は、モバイルアプリの処理の結果として転送されたアプリ表示画面を表示すればよい。このため、情報処理端末では、モバイルアプリの実行に関連する秘匿性の高い情報が保持されることはない。モバイル環境下で業務等に利用される情報処理端末の、業務利用に係る情報の安全性を高めることが可能となる。
【０００７】
しかしながら、近年の情報処理端末では、例えば、センサデータ、画像データといったデータ量の相対的に多い情報をデータ処理に使用するケースが増えてきている。このため、センサデータ、画像データ、アプリ表示画面データ等の大量のデータが通信ネットワークを介して転送される情報処理端末では、情報処理の相対的な操作応答性の劣化を招く虞があった。
【０００８】
また、モバイル環境下の通信ネットワークでは、通信帯域やデータ遅延等の制約を伴う
場合がある。通信帯域等の制約を伴うモバイル環境下では、大量のデータは、情報処理端末の情報処理に係る操作応答性をさらに劣化させることとなる。
【０００９】
モバイル環境下で業務に利用される情報処理端末では、モバイルアプリに係る情報の安全性と情報処理端末の操作応答性との確保を両立させることが課題である。
【００１０】
1つの側面では、本発明は、業務利用に係るプログラムの情報の安全性と操作応答性の
確保を両立可能とする技術の提供を目的とする。
【課題を解決するための手段】
【００１１】
上記技術は、次の情報処理装置の構成によって例示できる。すなわち、情報処理装置は、プログラムの処理コードを解析し、プログラムの画面を記述する１以上の処理コードを抽出し、抽出された１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、生成された画面処理の処理コード群を電子機器に送信すると共に電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、プログラムの中の画面処理の処理コード群以外の処理コードを実行し、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、を備える。
【発明の効果】
【００１２】
上記の情報処理システムによれば、業務利用に係るプログラムの情報の安全性と操作応答性の確保を両立可能とする技術が提供できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１の情報処理システムの説明図である。
【図２Ａ】ウェアラブル機器と連携した情報処理端末の業務利用例を示す図である。
【図２Ｂ】比較例の画面転送方式による情報処理端末の利用形態を説明する説明図である。
【図３Ａ】アプリプログラムのＵＩ処理部分とデータ処理部分との分離処理を説明する説明図である。
【図３Ｂ】アプリプログラムのＵＩ処理部分とデータ処理部分との分離処理を説明する説明図である。
【図４Ａ】情報処理端末（端末装置）のハードウェア構成例を示す図である。
【図４Ｂ】サーバのハードウェア構成例を示す図である。
【図５】実施形態１の情報処理システムの処理ブロックを説明する説明図である。
【図６Ａ】実施形態１のサーバのアプリプログラムの分散実行に係る処理を例示するフローチャートである。
【図６Ｂ】実施形態１の情報処理端末のアプリプログラムの分散実行に係る処理を例示するフローチャートである。
【図７Ａ】実施形態２のオブジェクトマネージャの処理を説明する説明図である。
【図７Ｂ】実施形態２のオブジェクトマネージャで生成されたテーブル例を示す図である。
【図７Ｃ】分離されたＵＩ処理部分とデータ処理部分との間の、関数要素の移動判定条件を格納したテーブル例を示す図である。
【図８】実施形態２の情報処理システムの処理ブロックを説明する説明図である。
【図９Ａ】実施形態２の分離されたＵＩ処理部分とデータ処理部分との間の、サーバ側の関数要素の移動処理を例示するフローチャートである。
【図９Ｂ】実施形態２の分離されたＵＩ処理部分とデータ処理部分との間の、情報処理端末側の関数要素の移動処理を例示するフローチャートである。
【図１０】実施形態３の情報処理システムの処理ブロックを説明する説明図である。
【図１１Ａ】移動判定閾値の変更例を示す図である。
【図１１Ｂ】移動判定閾値の変更例を示す図である。
【図１２Ａ】実施形態３の移動判定閾値の、サーバ側の変更処理を例示するフローチャートである。
【図１２Ｂ】実施形態３の移動判定閾値の、情報処理端末側の変更処理を例示するフローチャートである。
【図１３Ａ】実施形態４のセキュリティレベル定義例を示す図である。
【図１３Ｂ】移動判定閾値のセキュリティレベルによる変更例を示す図である。
【図１４】実施形態４の情報処理システムの処理ブロックを説明する説明図である。
【図１５Ａ】実施形態４の移動判定閾値の、サーバ側の変更処理を例示するフローチャートである。
【図１５Ｂ】実施形態４の移動判定閾値の、情報処理端末側の変更処理を例示するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、一実施形態に係る情報処理システムについて説明する。以下の実施形態の構成は例示であり、情報処理システムに含まれる情報処理端末（電子機器）、サーバ（情報処理装置）は実施形態の構成には限定されない。
【００１５】
以下、図１から図１５の図面に基づいて、情報処理システムの情報処理端末、サーバを説明する。
【００１６】
＜実施形態１＞
図１に、本実施形態の情報処理システム１の説明図を例示する。図１に例示の情報処理システム１は、ネットワークＮに接続する情報処理端末（以下、電子機器とも称す）１０、クラウド上のサーバ２０（以下、情報処理装置とも称す）を含む。ネットワークＮは、例えば、インターネット等の公衆ネットワーク、携帯電話網等の無線ネットワーク、ＬＡＮ（Local Area Network）等を含む。ネットワークＮには、複数の情報処理端末１０、複数のサーバ２０等が接続され得る。複数のサーバ２０は、例えば、ネットワークＮ上のクラウドとして機能することができる。
【００１７】
図１に例示の情報処理システム１において、サーバ２０は、例えば、ネットワークＮに接続するための通信機能を有するサーバ、ＰＣ（ＰＣ：Personal Computer）等の情報処
理装置である。サーバ２０は、例えば、情報処理端末１０に搭載されるブラウザエンジン１０ａをエミュレートする仮想ブラウザエンジン２０ｄを有する。
【００１８】
情報処理端末１０は、例えば、モバイル環境下で使用可能な電子機器である。情報処理端末１０は、例えば、ネットワークＮに接続するための通信機能を有する。情報処理端末１０には、ネットワークＮに接続するためのブラウザエンジン１０ａが搭載される。情報処理端末１０には、例えば、スマートフォン、ノートＰＣ、タブレットＰＣ、ＰＤＡ（Personal Data Assistance）等が含まれる。
【００１９】
情報処理端末１０には、モバイル環境下で業務利用が可能なモバイルアプリケーションプログラム（以下、モバイルアプリとも称す）２０ａが搭載され得る。モバイルアプリ２０ａは、例えば、情報処理端末１０の備えるオペレーティングシステム（Operating System :ＯＳ）を使用するプログラムである。モバイルアプリ２０ａの実行により、情報処理端末１０では、例えば、メガネをかける要領で頭部に装着して使用可能なスマートグラスや腕時計型（リストバンド型）端末、センサ等のウェアラブル機器と連携した業務利用が可能となる。
【００２０】
図２Ａに、情報処理端末１０の、ウェアラブル機器と連携した業務利用の一例を例示する。図２Ａでは、情報処理端末１０の利用者（以下、ユーザとも称す）は、例えば、訪問介護サービスの担当者である。ユーザは、例えば、スマートフォン、タブレットＰＣ等の情報処理端末１０を携帯し、介護対象者の自宅等を訪問する。介護対象者の腕部等には、リストバンド型のバイタルセンサ３０ａといったウェアラブル機器が装着されている。介護対象者に装着されたバイタルセンサ３０ａでは、例えば、脈拍数、血圧、体温等のバイタル情報が１時間といった所定の時間単位で計測される。計測されたバイタル情報は、例えば、週単位といった所定の期間で、バイタルセンサ３０ａ等に含まれるメモリ等に蓄積される。
【００２１】
情報処理端末１０は、例えば、ユーザ操作を受け付け、情報処理端末１０に搭載されたモバイルアプリ２０ａを実行する。モバイルアプリ２０ａが実行された情報処理端末１０は、例えば、介護対象者に装着されたバイタルセンサ３０ａに記録・蓄積されたバイタル情報の読み取りを行う。バイタル情報の読み取りは、例えば、Bluetooth（登録商標）と
いった近距離無線通信、USB（Universal Serial Bus）等を介して行われる。また、情報
処理端末１０は、例えば、ユーザ操作を受け付け、介護対象者の現時点の様子をカメラ等で撮影する。
【００２２】
情報処理端末１０は、例えば、読み取りが完了した所定期間のバイタル情報の履歴データを、訪問介護サービスを提供する企業内に構築された業務システムのサーバ２０に送信する。同様にして、情報処理端末１０は、カメラ等で撮影した介護対象者の画像情報をサーバ２０に送信する。バイタルセンサ３０ａに記録・蓄積されたバイタル情報の履歴データは、例えば、介護対象者の画像情報と共にモバイルアプリ２０ａの実行を介してサーバ２０に送信される。情報処理端末１０から送信された各種情報は、業務システムのサーバ２０に受信され、サーバ２０の備えるデータベース（ＤＢ：Data Base）に蓄積される。
【００２３】
また、情報処理端末１０は、例えば、ユーザ操作に基づいてサーバ２０に接続し、サーバ２０の備えるＤＢに蓄積された介護情報を参照する。介護情報には、例えば、介護対象者の服用した薬の履歴、過去のバイタル情報の履歴、風邪や発熱等の発症歴等が含まれる。介護対象者の介護情報は、例えば、モバイルアプリ２０ａの実行を介して情報処理端末１０の備えるＬＣＤ（Liquid Crystal Display）等の表示デバイスに表示される。
【００２４】
また、情報処理端末１０は、例えば、ユーザの頭部等に装着されたスマートグラス３０ｂ等に、介護対象者の介護情報を表示する。モバイルアプリ２０ａを実行する情報処理端末１０は、例えば、参照中の介護情報をBluetooth、USB等を介してスマートグラス３０ｂに送信する。スマートグラス３０ｂには、例えば、所定期間のバイタル情報の推移を表す画面情報が表示される。情報処理端末１０のユーザは、例えば、ＬＣＤ等の表示デバイス、スマートグラス３０ｂ等に表示された介護情報の推移を表す画面情報を参照し、介護対象者に対する適切なサービスを提供することが可能となる。
【００２５】
図２Ａで説明したように、モバイル環境下で業務に利用される情報には、介護情報等の個人情報や、顧客データといった秘匿性の高い情報が使用される。モバイル環境下で業務に利用される情報については、例えば、情報処理端末１０の紛失、情報漏えい等についての安全性の確保が要請される。
【００２６】
図２Ｂに、比較例として、画面転送方式による情報処理端末の利用形態の説明図を例示する。図２Ｂに例示の、画面転送方式による情報処理端末の利用形態は、例えば、シンクライアントシステムとも称される。図２Ｂに例示の情報処理端末４０、サーバ４１は、ネットワークを介して接続し、シンクライアントシステムを構成する。サーバ４１は、例えば、ネットワーク上のクラウドの一部として機能する。
【００２７】
図２Ｂに例示の説明図において、情報処理端末４０は、例えば、ノートＰＣである。また、サーバ４１は、ＰＣ等の情報処理装置である。サーバ４１には、例えば、業務利用に関連する業務アプリが搭載されている。情報処理端末４０のＬＣＤ等の表示デバイスには、クラウド上のサーバ４１から転送された、実行中の業務アプリのアプリ画面データが既に表示されているとする。
【００２８】
情報処理端末４０は、例えば、表示デバイスに表示されたアプリ画面データを参照して入力された、ユーザの操作入力を受け付ける。ユーザの操作入力は、例えば、情報処理端末４０のキーボード等を介して行われる。情報処理端末４０は、例えば、受け付けた操作入力を操作コマンドとしてサーバ４１に送信する。
【００２９】
サーバ４１は、例えば、ネットワークを介して情報処理端末４０から送信された操作コマンドを受信し、受信した操作コマンドに対応付けられた処理を実行中の業務アプリに反映する。操作コマンドに対応付けられた処理が反映された結果、実行中の業務アプリの処理が更新される。サーバ４１では、実行中の業務アプリの処理が更新された結果、業務アプリに対応付けられた更新後のアプリ画面データが生成される。アプリ画面データは、例えば、ＨＴＭＬ（HyperText Markup Language）等で記述された画面データである。
【００３０】
サーバ４１は、例えば、生成されたアプリ画面データを情報処理端末４０に転送する。情報処理端末４０は、例えば、ネットワークを介してサーバ４１から転送されたアプリ画面データを受信する。情報処理端末４０は、受信したアプリ画面データに基づいて表示処理を行い、該アプリ画面データをＬＣＤ等の表示デバイスに表示する。情報処理端末４０の表示画面上には、例えば、ユーザの操作入力を反映した業務アプリによる、更新後のアプリ画面データが表示される。
【００３１】
上述のように、画面転送方式による利用形態では、業務アプリの処理はサーバ４１で実行される。情報処理端末４０では、業務アプリの処理の結果として転送されたアプリ画面データを受信し、表示処理が実行される。情報処理端末４０には、実行主体となる業務アプリを含まないため、例えば、業務アプリの実行に関連する秘匿性の高い情報が保持されることはない。画面転送方式による利用形態では、情報処理端末の紛失や情報漏えい等に対する安全性を高めることができる。
【００３２】
しかしながら、図２Ａで説明したように、情報処理端末１０では、モバイルアプリ２０ａの実行に関連する画像データ、センサデータといった大量のデータをサーバ２０に送信する場合がある。同様にして、サーバ２０では、上記の画像データ、センサデータに基づいたモバイルアプリ２０ａの処理結果をアプリ画面データとして情報処理端末１０に送信する場合がある。
【００３３】
情報処理端末１０とサーバ２０との間で大量のデータの送受信が発生する場合には、画面転送方式を採用した情報処理端末１０では、データの送受信処理に処理パフォーマンスがひっ迫することとなる。このため、画面転送方式を採用した情報処理端末１０では、操作応答性が相対的に劣化する虞がある。迅速な対応が求められるモバイル環境下で業務等に利用される情報処理端末１０では、操作応答性の劣化により、適切な処理の提供が困難となる虞があった。
【００３４】
図１に例示の説明図に戻り、本実施形態の情報処理システム１のクラウド側サーバ２０は、情報処理端末１０で実行可能なモバイルアプリ２０ａを搭載する。モバイルアプリ２０ａは、モバイル環境下で業務に利用されるプログラムである。モバイルアプリ２０ａは、例えば、情報処理端末１０の備えるＯＳに基づくフレームワーク２０ｅを用いてプログ
ラミングされている。
【００３５】
フレームワーク２０ｅは、例えば、モバイルアプリ２０ａの処理に用いられるＡＰＩ（Application Programming Interface）を、情報処理端末１０の備えるＯＳに応じて開発
者が利用しやすくした枠組みである。フレームワーク２０ｅを用いることにより、例えば、モバイルアプリ２０ａのプログラミング等で使用される汎用的なプログラム機能がまとめて提供される。フレームワーク２０ｅには、例えば、ＡＰＩに含まれるサブルーチンやデータ構造、オブジェクトクラス、変数等を用いて汎用性を高めた設計モデル、処理パターン等が含まれる。フレームワーク２０ｅとして、例えば、“AngularJS”、“Vue.js”
、“batman.js”、“Backbone.js”、“Knockout”等のフレームワークが例示できる。
【００３６】
モバイルアプリ２０ａのプログラムは、フレームワーク２０ｅを用いることで、例えば、ＵＩ処理に対応する処理部分とデータ処理に対応する処理部分とを分けてプログラミングすることができる。
【００３７】
ここで、ＵＩ処理に対応する処理部分とは、例えば、情報処理端末１０に表示される画面を定義している定義文で宣言されているプログラム部分である。また、データ処理に対応する処理部分とは、例えば、ＵＩ処理に対応する処理部分を除くプログラム部分である。データ処理に対応する処理部分は、例えば、画面表示中の情報処理端末１０のバックグラウンドで実行されるプログラム部分である。なお、以下の説明では、ＵＩ処理に対応する処理部分を“ＵＩ処理”、データ処理に対応する処理部分を“データ処理”とも称す。
【００３８】
本実施形態のサーバ２０は、例えば、モバイルアプリ２０ａに対するインターフェース定義２０ｆを備える。インターフェース定義２０ｆは、例えば、モバイルアプリ２０ａのプログラミングに用いられたフレームワーク２０ｅに基づいて作成される。サーバ２０は、例えば、搭載されるモバイルアプリ２０ａ毎にインターフェース定義２０ｆを備える。
【００３９】
インターフェース定義２０ｆには、例えば、モバイルアプリ２０ａのプログラミングに用いられたフレームワーク２０ｅを識別する名称が含まれる。また、インターフェース定義２０ｆには、例えば、モバイルアプリ２０ａのソースプログラム（ソースコードとも称す）上の、ＵＩ処理を定義するための宣言文が含まれる。ＵＩ処理を定義するための宣言文には、ＵＩ処理のオブジェクトを生成するための定義文が含まれる。同様にして、インターフェース定義２０ｆには、モバイルアプリ２０ａのソースコード上の、データ処理を定義するための宣言文が含まれる。データ処理を定義するための宣言文には、データ処理のオブジェクトを生成するための定義文が含まれる。なお、“オブジェクト”には、例えば、配列や画像データといったデータ、関数、変数等、或いは、これらの組合せが含まれる。
【００４０】
本実施形態のサーバ２０は、例えば、インターフェース定義２０ｆを参照し、搭載されたモバイルアプリ２０ａのソースコードを解析する。そして、サーバ２０は、例えば、搭載されたモバイルアプリのソースコードをＵＩ処理２０ｂとデータ処理２０ｃとに分離する。情報処理端末１０において、スタンドアローンで実行可能なモバイルアプリ２０ａは、サーバ２０により、画面を定義するオブジェクトを生成するためのプログラム群であるＵＩ処理２０ｂ、ＵＩ処理２０ｂを除くプログラム群のデータ処理２０ｃに分離される。
【００４１】
本実施形態の情報処理システム１では、サーバ２０で分離されたモバイルアプリ２０ａのＵＩ処理２０ｂは、情報処理端末１０に転送され、該情報処理端末１０のリソースを使用して実行される。一方、サーバ２０で分離されたモバイルアプリ２０ａのデータ処理２０ｃは、サーバ２０に保持され、該サーバ２０のリソースを使用して実行される。
【００４２】
なお、情報処理端末１０に転送されるモバイルアプリ２０ａのＵＩ処理２０ｂには、例えば、サーバ２０との間でデータの授受を行うためのインターフェースプロキシ（以下、ＩＦプロキシとも称す）が付与される。同様にして、サーバ２０に保持されるモバイルアプリ２０ａのデータ処理２０ｃにも、情報処理端末１０のＵＩ処理２０ｂとの間でデータの授受を行うためのＩＦプロキシが付与される。ＵＩ処理２０ｂ、データ処理２０ｃに付与されるＩＦプロキシは、例えば、モバイルアプリ２０ａ毎に付与される。
【００４３】
情報処理端末１０で実行されるＵＩ処理２０ｂは、例えば、サーバ２０で実行されるデータ処理２０ｃとの間でＩＦプロキシを介してデータ授受を行うことで、モバイルアプリ２０ａとして機能することができる。本実施形態の情報処理システム１は、モバイル環境下で業務に利用されるモバイルアプリ２０ａを、情報処理端末１０とクラウド上のサーバ２０とに分散し、実行することができる。
【００４４】
本実施形態の情報処理システム１は、モバイルアプリ２０ａのデータ処理２０ｃをサーバ２０に分散して実行できるため、例えば、情報処理端末１０が業務の利用に係る個人情報等の秘匿性の高い情報を保持することはない。情報処理端末１０は、モバイルアプリ２０ａのデータ処理２０ｃをサーバ２０に分散して実行できるため、データ処理に係るリソースの処理負担を軽減することが可能となる。また、情報処理端末１０は、モバイルアプリ２０ａの画面表示に係るＵＩ処理２０ｂを情報処理端末１０自体のリソースを用いて、サーバ２０との通信を行わずに処理できるため、例えば、表示画面に対する操作入力、表示出力等の応答性を高めることが可能となる。
【００４５】
また、本実施形態の情報処理システム１では、クラウド上のサーバ２０と情報処理端末１０との間の通信データ量を、それぞれに分散されたデータ処理２０ｃとＵＩ処理２０ｂとの間のデータ送受信量に軽減することができる。図２Ｂに例示の画面転送方式の形態と比較して、サーバ２０と情報処理端末１０との間の通信量の負荷を軽減することが可能となる。本実施形態の情報処理システム１では、情報処理端末１０は、図２Ｂに例示の画面転送方式の形態と比較して、ユーザインターフェース処理に係る操作応答性を向上することが可能となる。例えば、モバイル環境下の通信ネットワークが通信帯域やデータ遅延等の制約を伴う場合であっても、情報処理端末１０の操作応答性の劣化を軽減することが可能となる。本実施形態の情報処理システム１では、情報処理端末１０の業務利用に係る情報の安全性と操作応答性の確保を両立が可能となる。
【００４６】
（モバイルアプリの分離処理）
以下、図３Ａ、３Ｂに例示の図面を参照し、本実施形態の情報処理システム１のサーバ２０で実行される、モバイルアプリ２０ａの、ＵＩ処理２０ｂとデータ処理２０ｃとの分離処理について説明する。
【００４７】
図３Ａは、モバイルアプリ２０ａの、ＵＩ処理２０ｂとデータ処理２０ｃとの分離処理の説明図である。図３Ｂは、分離処理完了後の転送処理の説明図である。なお、図３Ａ、３Ｂでは、説明例のモバイルアプリ２０ａは、ＪａｖａＳｃｒｉｐｔ（登録商標）のライブラリである“Knockout”をフレームワーク２０ｅに用いてプログラミングされた一例である。
【００４８】
図３Ａの説明図において、“ａ”に例示のように、本実施形態の情報処理システム１のサーバ２０は、モバイルアプリ２０ａに対するインターフェース定義２０ｆを備える。インターフェース定義２０ｆは、図１で説明した。インターフェース定義２０ｆは、モバイルアプリ２０ａ毎に備えられる。なお、サーバ２０が備えるインターフェース定義２０ｆは、例えば、フレームワーク２０ｅの開発業者、または、モバイルアプリ２０ａを用いてサービスの提供を行うサービス業者等により提供される。
【００４９】
図３Ａに例示のように、インターフェース定義２０ｆには、モバイルアプリ２０ａのプログラミングに使用されたフレームワーク２０ｅを識別する名称が含まれる。同様にして、インターフェース定義２０ｆには、例えば、モバイルアプリ２０ａのソースコード上の、ＵＩ処理を定義するためのオブジェクトが生成される定義文（宣言文）、データ処理を定義するためのオブジェクトが生成される定義文が含まれる。図３Ａの説明図では、“Knockout”、“Backbone.js”をフレームワーク２０ｅとしてプログラミングされたモバイ
ルアプリ２０ａのインターフェース定義２０ｆが例示されている。
【００５０】
図３Ａの説明例において、例えば、“Knockout” をフレームワーク２０ｅとして開発
されたモバイルアプリ２０ａのインターフェース定義２０ｆは、「フレームワーク」、「ＵＩ処理」、「データ処理」の各カラムを有する。「フレームワーク」カラムには、例えば、フレームワーク２０ｅを識別する名称“Knockout”が登録されている。「ＵＩ処理」カラムには、例えば、ソースコード上の、ＵＩ処理を定義するためのオブジェクトが生成される定義文“new AppViewModel(MODEL)”が登録されている。「データ処理」カラムに
は、例えば、ソースコード上の、データ処理を定義するためのオブジェクトが生成される定義文“new AppModel(args)”が登録されている。「ＵＩ処理」カラムに登録された定義文“new AppViewModel(MODEL)”および「データ処理」カラムに登録された定義文“new AppModel(args)”は、例えば、フレームワーク“Knockout”のプログラミング規則に沿っ
て作成される。
【００５１】
図３Ａの“ｂ”には、モバイルアプリ２０ａのソースコード２０ｇが例示される。モバイルアプリ２０ａのソースコード２０ｇは、例えば、“JavaScript”等のプログラミング言語を用いて記述されている。サーバ２０は、例えば、インターフェース定義２０ｆを参照し、モバイルアプリ２０ａのソースコード２０ｇを解析する。解析の結果、サーバ２０は、モバイルアプリ２０ａのソースコード２０ｇ上の、ＵＩ処理、データ処理を定義するためのオブジェクトが生成される定義文を特定する。
【００５２】
サーバ２０は、例えば、モバイルアプリ２０ａのインターフェース定義２０ｆを参照し、ＵＩ処理を定義するためのオブジェクトが生成される定義文“new AppViewModel(MODEL)”を取得する。サーバ２０は、例えば、取得した定義文の文字列“new AppViewModel()
”を用いて、モバイルアプリ２０ａのソースコード２０ｇを検索する。
【００５３】
ソースコード２０ｇにおいて、例えば、定義文の文字列“new AppViewModel()”は、“var viewmodel = new AppViewModel();”が記述された箇所に含まれる。“new AppViewModel()”の前位置に記述された文字列箇所“var viewmodel”に含まれる“viewmodel”が
、ＵＩ処理を定義するためのオブジェクトが生成される上位のオブジェクトｍ２である。なお、定義文の文字列“new AppViewModel()”と、該定義文の前位置に記述される“var viewmodel =”とのソースコード２０ｇ上の相対的な位置関係は、例えば、フレームワー
ク２０ｅで規定される規則に基づいて関係付けられる。
【００５４】
サーバ２０は、例えば、ソースコード２０ｇ上の“new AppViewModel()”と対応付けられた“var viewmodel”といった文字列箇所を特定する。“var viewmodel”はソースコードで、文字列viewmodelが変数であることを宣言している。また、定義文の文字列“new AppViewModel()”は、ＵＩ処理を行うオブジェクトを生成する関数である。したがって、
” var viewmodel= new AppViewModel(model)”によって、関数AppViewModel(model)で生成されるＵＩ処理用のオブジェクトが変数viewmodelに代入されることになる。
【００５５】
そして、図３Ａの“１”に示すように、サーバ２０は、特定された文字列箇所に含まれる“viewmodel”を、ＵＩ処理を定義するためのオブジェクトが生成される上位のオブジ
ェクトｍ２として取得する。
【００５６】
同様にして、サーバ２０は、例えば、モバイルアプリ２０ａのインターフェース定義２０ｆを参照し、データ処理を定義するためのオブジェクトが生成される定義文“new AppModel(args)”を取得する。サーバ２０は、例えば、取得した定義文の文字列“new AppModel()”を用いて、モバイルアプリ２０ａのソースコード２０ｇを検索する。
【００５７】
ソースコード２０ｇにおいて、例えば、定義文の文字列“new AppModel()”は、“var model = new AppModel();”が記述された箇所に含まれる。“new AppModel()”の前位置
に記述された文字列箇所“var model”に含まれる“model”が、データ処理を定義するためのオブジェクトが生成される上位のオブジェクトｍ１である。ここで、定義文の文字列“new AppModel()”と、該定義文の前位置に記述される“var model =”とのソースコー
ド２０ｇ上の相対的な位置関係は、例えば、フレームワーク２０ｅで規定される規則に基づいて関係付けられる。
【００５８】
サーバ２０は、例えば、“new AppModel()”と対応付けられた“var model”との文字
列箇所を特定する。そして、サーバ２０は、特定された文字列箇所に含まれる“model”
を、データ処理を定義するためのオブジェクトが生成される上位のオブジェクトｍ１を表す変数名として取得する。
【００５９】
上位のオブジェクトｍ１、ｍ２には、関数、変数等の下位の処理オブジェクトが含まれる。サーバ２０は、例えば、取得した上位のオブジェクトｍ１、ｍ２の中から、それぞれの上位のオブジェクトｍ１、ｍ２に含まれる関数、変数といった要素を特定する。
【００６０】
オブジェクトｍ１、ｍ２に含まれる関数、変数といった要素には、例えば、モバイルアプリ２０ａの開発者（プログラマ）等から付与された任意の名称が使用される。サーバ２０は、例えば、上位オブジェクトｍ１を“modelオブジェクト”として分類する。同様に
して、サーバ２０は、例えば、上位オブジェクトｍ２を“viewmodelオブジェクト”とし
て分類する。
【００６１】
図３Ａの“２”に、インターフェース定義２０ｆに基づいて特定された上位のオブジェクトｍ１から分類された“modelオブジェクト”の一例をテーブルｍ３に例示する。同様
にして、インターフェース定義２０ｆに基づいて特定された上位のオブジェクトｍ２から分類された“viewmodelオブジェクト”の一例をテーブルｍ４に例示する。
【００６２】
テーブルｍ３には、サーバ２０の主記憶装置上に保持されるソースコード２０ｇのオブジェクトの実体が定義された、上位オブジェクトｍ１に含まれる下位の要素ｅ１、ｅ２が列記されている。テーブルｍ３において、“result”は、例えば、上位オブジェクトｍ１に含まれる下位の要素ｅ１を表す変数名である。“result”は、例えば、上位オブジェクトｍ１内で実行された演算処理の処理結果等を表す。同様にして、“save”は、例えば、上位オブジェクトｍ１に含まれる要素ｅ２を表す関数名である。“save”は、例えば、上位オブジェクトｍ１で取得されたデータ等を記録する。
【００６３】
また、テーブルｍ４には、サーバ２０の主記憶装置上に保持されるソースコード２０ｇのオブジェクトの実体が定義された、上位オブジェクトｍ２に含まれる要素ｅ３、ｅ４が列記されている。テーブルｍ４において、“items”は、例えば、上位オブジェクトｍ２
に含まれる要素ｅ３を表す変数名である。同様にして、“analyze”は、例えば、上位オ
ブジェクトｍ２に含まれる要素ｅ４を表す関数名である。“items”は、例えば、上位オ
ブジェクトｍ２の実行により、情報処理端末１０の表示画面等に表示処理される表示部品等を表す。“analyze”は、例えば、上位オブジェクトｍ２の実行により、複数のデータ
配列の中から特定位置のデータを抽出する。なお、テーブルｍ４には、例えば、“itemdb”といった他の変数名や、“render”といった他の関数名が含まれている。
【００６４】
なお、モバイルアプリ２０ａといった情報処理端末１０に搭載可能なプログラムでは、ＬＣＤ等の表示デバイスに表示される画面は、例えば、ＨＴＭＬ（HyperText Markup Language）等のマークアップ言語を用いて記述される。このため、モバイルアプリ２０ａに
は、“JavaScript（登録商標）”等のプログラミング言語を用いて記述されたソースコード２０ｇの他に、図３Ａの矩形枠で囲まれた“２”に例示のように、マークアップ言語を用いて記述されたＨＴＭＬファイル２０ｈが含まれる。但し、モバイルアプリ２０ａの画面は、例えば、ＸＭＬ（Extensible Markup Language）、ＸＡＭＬ(Extensible Application Markup Language)等の、他のマークアップ言語を用いて記述されるとしてもよい。以下の説明では、情報処理端末１０のＬＣＤ等の表示デバイスに表示される画面は、ＨＴＭＬで記述されるとして説明する。
【００６５】
サーバ２０は、例えば、テーブルｍ３、ｍ４の各変数名（ｅ１，ｅ３）、各関数名（ｅ２，ｅ４）とＨＴＭＬファイル２０ｈとの照合を行う。サーバ２０は、例えば、viewmodelオブジェクトに含まれる変数、関数とＨＴＭＬファイル２０ｈとの対応付けを行い、modelオブジェクトに含まれる変数、関数とＨＴＭＬファイル２０ｈとの対応付けを行う。
【００６６】
例えば、インターフェース定義２０ｆとして登録されたＵＩ処理の定義文の中には、表示画面を記述するための要素として使用されない関数名、変数名が含まれる。例えば、モバイルアプリ２０ａの開発中にプログラミングされた関数や変数等に対して、使用予定の変更、延期、取消等が発生するケースがある。このケースでは、例えば、ソースコード２０ｇに削除等の修正を加えずに残した状態で、表示画面の記述（ＨＴＭＬ等）から該当する変数名、関数名の削除等を行うことが想定できる。また、本来的にデータ処理の定義文に含まれる関数、変数等の要素が、ＵＩ処理の定義文の中に誤挿入される場合がある。
【００６７】
サーバ２０は、テーブルｍ３、ｍ４の各変数名（ｅ１，ｅ３）、各関数名（ｅ２，ｅ４）とＨＴＭＬファイル２０ｈとの照合を行うことで、例えば、モバイルアプリ２０ａのＵＩ処理とデータ処理との分離精度を向上することが可能となる。なお、テーブルｍ３、ｍ４の各要素とＨＴＭＬファイル２０ｈの記述内容との照合は、例えば、各要素に付与された名称に含まれる文字列等の一致を検出することにより行われる。
【００６８】
サーバ２０は、例えば、テーブルｍ３、ｍ４の各変数名（ｅ１，ｅ３）、各関数名（ｅ２，ｅ４）とＨＴＭＬファイル２０ｈとの照合を行い、ＨＴＭＬファイル２０ｈに記述された関数、変数等の各要素の抽出を行う。
【００６９】
例えば、図３ＡのＨＴＭＬファイル２０ｈには、“viewmodelオブジェクト”としてテ
ーブルｍ４の要素ｅ３の変数名“items”が含まれる。サーバ２０は、例えば、要素ｅ３
の変数名である“items”を照合文字列として、ＨＴＭＬファイル２０ｈを検索する。検
索の結果、ＨＴＭＬファイル２０ｈ内に記述された“items”が照合文字列と合致する文
字列として特定される。サーバ２０は、例えば、“viewmodelオブジェクト”としてテー
ブルｍ４の要素ｅ３を、ＨＴＭＬファイル２０ｈに記述された要素名として抽出する。
【００７０】
また、例えば、ＨＴＭＬファイル２０ｈには、“viewmodelオブジェクト”としてテー
ブルｍ４に分類された要素ｅ４の変数名“analyze”は含まれていないとする。この場合
には、ＨＴＭＬファイル２０ｈからは、照合文字列である要素ｅ４の変数名“analyze”
は検索されない。このため、サーバ２０は、例えば、“viewmodelオブジェクト”として
テーブルｍ４に分類された要素ｅ４を、ＨＴＭＬファイル２０ｈに記述がない要素名として抽出する。
【００７１】
サーバ２０は、例えば、“modelオブジェクト”としてテーブルｍ３に分類された各要
素についても、ＨＴＭＬファイル２０ｈの記述を照合対象として、“viewmodelオブジェ
クト”と同様の照合を行う。照合の結果、ＨＴＭＬファイル２０ｈ内に記述がある場合には、合致した要素がＨＴＭＬファイル２０ｈに記述された要素名として抽出される。また、ＨＴＭＬファイル２０ｈ内に記述がない場合には、照合対象の要素がＨＴＭＬファイル２０ｈに記述がない要素名として抽出される。
【００７２】
図３Ａに例示の、テーブルｍ３の各要素（ｅ１，ｅ２）では、例えば、それぞれがＨＴＭＬファイル２０ｈに記述がない要素名として抽出される。同様にして、テーブルｍ４の各要素（ｅ３，ｅ４）では、例えば、要素ｅ３がＨＴＭＬファイル２０ｈに記述された要素名として抽出される。また、要素ｅ４がＨＴＭＬファイル２０ｈに記述がない要素名として抽出される。
【００７３】
サーバ２０は、例えば、照合の結果、ＨＴＭＬファイル２０ｈに記述された要素名として抽出されたテーブルｍ３、ｍ４内の要素を統合し、ＵＩ処理モジュール２０ｂとしてモジュール化する。同様にして、サーバ２０は、例えば、ＨＴＭＬファイル２０ｈに記述がない要素名として抽出されたテーブルｍ３、ｍ４内の要素を統合し、データ処理モジュール２０ｃとしてモジュール化する。
【００７４】
モジュール化された結果、ＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃが生成される。生成されたＵＩ処理モジュール２０ｂは、例えば、図１に例示のＵＩ処理２０ｂに相当する。また、生成されたデータ処理モジュール２０ｃは、例えば、図１に例示のデータ処理２０ｃに相当する。情報処理端末１０に搭載可能なモバイルアプリ２０ａは、インターフェース定義２０ｆを用いた解析処理により、ＵＩ処理モジュール２０ｂとデータ処理モジュール２０ｃに分離される。
【００７５】
図３Ａに例示の、ＵＩ処理モジュール２０ｂには、例えば、ＨＴＭＬファイル２０ｈに記述された要素名として抽出された要素ｅ３の変数名“items”が含まれている。同様に
して、図３Ａに例示の、データ処理モジュール２０ｃには、例えば、ＨＴＭＬファイル２０ｈに記述がない要素名として抽出された要素ｅ１，ｅ２，ｅ４の各変数名“result”、“save”、“analyze”が含まれている。
【００７６】
ここで、“viewmodelオブジェクト”としてテーブルｍ４に記述された要素ｅ４は、デ
ータ処理モジュール２０ｃに含まれる。ＵＩ処理を定義するためのオブジェクトが生成される上位のオブジェクトｍ２を構成する関数要素の“analyze”は、データ処理モジュー
ル２０ｃに含まれることが判る。インターフェース定義２０ｆに登録された、モバイルアプリ２０ａのソースコード２０ｇ上の、ＵＩ処理の定義文“new AppViewModel(MODEL)”
に関連付けられた関数要素の“analyze”は、データ処理側の関数要素であることが判る
。
【００７７】
なお、上記の説明では、ＨＴＭＬファイル２０ｈに基づいてモバイルアプリ２０ａのソースコード２０ｇを、ＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃに分離するとして説明した。例えば、モバイルアプリ２０ａのソースコードｇにおいて、メモリ等に保存されるデータ自体を抽出し、データ処理モジュール２０ｃとして分離するとしてもよい。この場合では、例えば、メモリ等に保存されるデータを除く、他の要素がＵＩ処理モジュール２０ｂとして分離される。メモリ等に保存されるデータ自体を抽出し、データ処理モジュール２０ｃとして分離することで、例えば、フレームワーク間の相違を吸収することができる。
【００７８】
例えば、テーブルｍ３に分類された要素ｅ３の“save”は、データを保存するための関数として定義される。例えば、要素ｅ３の“save”内で定義される変数名を抽出して結合し、データ処理モジュール２０ｃとして分類することができる。
【００７９】
次に、図３Ｂを参照し、モバイルアプリ２０ａから分離されたＵＩ処理モジュール２０ｂの転送処理について説明する。図１で説明したように、モバイルアプリ２０ａから分離されたＵＩ処理モジュール２０ｂは、情報処理端末１０に転送される。ＵＩ処理モジュール２０ｂにはＩＦプロキシ２０ｉが付与されてサーバ２０から情報処理端末１０に転送される。なお、モバイルアプリ２０ａから分離されたデータ処理モジュール２０ｃは、ＩＦプロキシ２０ｉが付与されてサーバ２０に保持される。
【００８０】
ＩＦプロキシ２０ｉは、例えば、情報処理端末１０に転送されたＵＩ処理モジュール２０ｂと、サーバ２０に保持されたデータ処理モジュール２０ｃとの間でデータの授受を行うためのプログラムである。
【００８１】
ＩＦプロキシ２０ｉは、例えば、“WebSocket”等の通信規格に基づいて、情報処理端
末１０及びサーバ２０に分散されたＵＩ処理モジュール２０ｂとデータ処理モジュール２０ｃとの間での双方向通信を行う。
【００８２】
ＩＦプロキシ２０ｉにより、ＵＩ処理モジュール２０ｂを実行する情報処理端末１０と、データ処理モジュール２０ｃを実行するサーバ２０とは、サーバ・クライアント方式の機器として機能することができる。なお、ＩＦプロキシ２０ｉは、例えば、モバイルアプリ２０ａ毎に付与される。
【００８３】
情報処理端末１０に転送されたＵＩ処理モジュール２０ｂは、例えば、ＩＦプロキシ２０ｉと共に情報処理端末１０に保持される。情報処理端末１０に転送されたＵＩ処理モジュール２０ｂは、例えば、情報処理端末１０のリソースを用いて実行される。ＵＩ処理モジュール２０ｂの実行により、例えば、情報処理端末１０のＬＣＤ等の表示デバイスには、ＨＴＭＬファイル２０ｈで記述された画面が表示される。
【００８４】
情報処理端末１０では、例えば、モバイルアプリ２０ａのＩＵ処理モジュール２０ｂの実行により、ＨＴＭＬファイル２０ｈで記述された画面を定義する要素（関数、変数等）の実行プロセスでデータの処理要求が発生する。情報処理端末１０で実行されるＵＩ処理モジュール２０ｂは、例えば、データの処理要求が発生したプロセスの引数（パラメータ）を情報処理端末１０のＩＦプロキシ２０ｉに引き渡す。情報処理端末１０のＩＦプロキシ２０ｉは、例えば、ネットワークＮを介し、データ処理モジュール２０ｃが実行されるクラウド上のサーバ２０に、処理要求が発生したプロセスの引数を送信する。
【００８５】
情報処理端末１０から送信された、処理要求を発生したプロセスの引数は、サーバ２０のＩＦプロキシ２０ｉを介して受信される。サーバ２０のＩＦプロキシ２０ｉは、例えば、受信したプロセスの引数を、サーバ２０で実行されるデータ処理モジュール２０ｃに引き渡す。サーバ２０で実行されるデータ処理モジュール２０ｃは、例えば、プロセスの引数に対応してデータ処理を実行する。データ処理モジュール２０ｃは、例えば、データ処理の実行結果を引数に対する戻り値としてサーバ２０のＩＦプロキシ２０ｉに引き渡す。サーバ２０のＩＦプロキシ２０ｉに引き渡されたデータ処理の実行結果は戻り値として、例えば、ネットワークＮを介し、情報処理端末１０に送信される。
【００８６】
サーバ２０から送信されたデータ処理の実行結果は、例えば、情報処理端末１０のＩＦプロキシ２０ｉを介して受信される。ＩＦプロキシ２０ｉを介して受信されたデータ処理の実行結果は、例えば、実行中のＵＩ処理モジュール２０ｂの処理要求を発生したプロセ
スに戻り値として引き渡される。
【００８７】
本実施形態の情報処理システム１では、モバイルアプリ２０ａの機能は、ＵＩ処理モジュール２０ｂが転送された情報処理端末１０と、データ処理モジュール２０ｃを保持するサーバ２０とに分散して実行される。情報処理端末１０のＵＩ処理モジュール２０ｂ、サーバ２０のデータ処理モジュール２０ｃは、それぞれの機器のリソースを使用して非同期に実行される。但し、情報処理端末１０のＬＣＤ等の表示デバイスに表示される画面、すなわち、サーバ２０から送信されたデータ処理の結果の表示は、ＵＩ処理モジュール２０ｂの実行に同期して表示される。
【００８８】
〔装置構成〕
（情報処理端末）
図４Ａに、情報処理端末１０のハードウェア構成を例示する。図４Ａに例示の、情報処理端末１０は、接続バスＢ１によって相互に接続されたＣＰＵ（Central Processing Unit）１１、ＧＰＵ（Graphics Processing Unit）１２、主記憶部１３を有する。また、情
報処理端末１０は、接続バスＢ１に接続する、入力部１４、出力部１５、通信部１６を有する。主記憶部１３は、情報処理端末１０が読み取り可能な記録媒体である。主記憶部１３は、例えば、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）を含む。
【００８９】
情報処理端末１０は、ＣＰＵ１１が主記憶部１３のＲＯＭ等に記憶されたプログラムを主記憶部１３のＲＡＭ等の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、情報処理端末１０は、所定の目的に合致した機能を提供することができる。
【００９０】
情報処理端末１０では、ＣＰＵ１１は、情報処理端末１０全体の制御を行う中央処理演算装置である。ＣＰＵ１１は、例えば、主記憶部１３のＲＯＭ等に格納されたプログラムに従って処理を行う。ＧＰＵ１２は、表示デバイスの表示領域に表示される画面データの表示処理を主に行うプロセッサである。情報処理端末１０は、ＧＰＵ１２を含むことで、例えば、表示処理に係るＣＰＵ１１の処理負担を軽減し、ＬＣＤ１５ａ等の表示デバイスへの表示処理の高速化が期待できる。
【００９１】
主記憶部１３のＲＡＭ等は、ＣＰＵ１１がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部１３のＲＯＭ等は不揮発性半導体メモリである。主記憶部１３のＲＯＭ等には、ＯＳ、通信部１６を介して接続されるサーバ２０等とのデータの受け渡しを行う通信インターフェースプログラムを含む各種プログラム等が格納される。
【００９２】
ＯＳは、例えば、サーバ２０から転送されたＵＩ処理モジュール２０ｂ等のアプリに対し、管理するリソースへのインターフェースを提供する。ＵＩ処理モジュール２０ｂ等は、ＯＳによって提供されたリソースへのインターフェースを使用することで、アプリ機能を機能させる。ＯＳは、通信部１６を介して接続されるウェアラブル機器とのデータの受け渡しを行う通信インターフェースプログラムを含む。
【００９３】
入力部１４は、ユーザ等からの操作指示等を受け付ける。入力部１４は、タッチセンサ１４ａ、入力ボタン、ポインティングデバイス、マイクロフォン、カメラ等の入力デバイスである。入力部１４には、キーボード、ワイヤレスリモコン等が含まれるとしてもよい。ポインティングデバイスには、例えば、タッチセンサ１４ａと出力部１５のＬＣＤ１５ａ等の表示デバイスとを組合せたタッチパネル、マウス、トラックボール、ジョイスティック等が含まれる。
【００９４】
出力部１５は、ＣＰＵ１１で処理されるデータや主記憶部１３に記憶されたデータを出力する。出力部１５は、ＣＲＴ（Cathode Ray Tube）ディスプレイ、ＬＣＤ（Liquid Crystal Display）１５ａ、ＰＤＰ（Plasma Display Panel）、ＥＬ（Electroluminescence
）パネル、有機ＥＬパネル、プリンタ、スピーカ等の出力デバイスである。
【００９５】
通信部１６は、例えば、情報処理端末１０が接続するネットワークＮ等とのインターフェースである。なお、モバイル環境下で使用されるウェアラブル機器、例えば、図２Ａに例示のリストバンド型のバイタルセンサ３０ａ、スマートグラス３０ｂ等は、通信部１６を介して情報処理端末１０に接続される。
【００９６】
情報処理端末１０は、例えば、ＣＰＵ１１が主記憶部１３のＲＯＭ等に記憶されている、各種プログラムや各種データをＲＡＭ等に読み出して実行することにより、対象プログラムの実行と共に、図５に例示の各処理手段を提供する。
【００９７】
情報処理端末１０は、対象プログラムの実行と共に、図５に例示の実行アプリ指定部１０１、ＵＩ処理モジュール受信部１０２、モバイルアプリ実行部１０３、ＩＦプロキシ送受信部１０４を提供する。図５に例示の各処理手段の何れか、或いは、これらの一部がハードウェア回路によって動作するものであってもよい。
【００９８】
（サーバ）
図４Ｂに、サーバ２０のハードウェア構成を例示する。図４Ｂに例示のサーバ２０は、いわゆる一般的なコンピュータの構成を有している。サーバ２０は、接続バスＢ２によって相互に接続されたＣＰＵ（Central Processing Unit）２１、主記憶部２２、補助記憶
部２３、入力部２４、出力部２５、通信部２６を有する。主記憶部２２及び補助記憶部２３は、サーバ２０が読み取り可能な記録媒体である。
【００９９】
サーバ２０は、ＣＰＵ２１が補助記憶部２３に記憶されたプログラムを主記憶部２２の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、サーバ２０は、所定の目的に合致した機能を提供することができる。
【０１００】
ＣＰＵ２１は、サーバ２０全体の制御を行う中央処理演算装置である。ＣＰＵ２１は、補助記憶部２３に格納されたプログラムに従って処理を行う。主記憶部２２は、ＣＰＵ２１がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部２２は、例えば、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）を含む。
【０１０１】
補助記憶部２３は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部２３は、外部記憶装置とも呼ばれる。補助記憶部２３には、ＯＳ、各種プログラム、各種テーブル等が格納される。ＯＳは、例えば、搭載されたアプリに対し、管理するリソースへのインターフェースをアプリに提供する。サーバ２０に搭載されたアプリは、ＯＳによって提供されたリソースへのインターフェースを使用することで、アプリ機能を機能させる。ＯＳは、通信部２６を介して接続される情報処理端末１０、外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、ネットワークＮ上の、他のＰＣやサーバ等の情報処理装置、外部記憶装置等が含まれる。
【０１０２】
補助記憶部２３は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、ソリッドス
テートドライブ装置、ハードディスクドライブ（ＨＤＤ、Hard Disk Drive）装置等であ
る。また、補助記憶部２３としては、例えば、ＣＤドライブ装置、ＤＶＤドライブ装置、ＢＤドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモリ（
フラッシュメモリ）を含むシリコンディスク、ハードディスク、ＣＤ、ＤＶＤ、ＢＤ、ＵＳＢ（Universal Serial Bus）メモリ、メモリカード等がある。
【０１０３】
入力部２４は、操作者等からの操作指示等を受け付ける。入力部２４は、入力ボタン、マウス等のポインティングデバイス、マイクロフォン等の入力デバイスである。入力部２４には、キーボード、ワイヤレスリモコン等が含まれるとしてもよい。入力部２４から入力された情報は、接続バスＢ２を介してＣＰＵ２１に通知される。
【０１０４】
出力部２５は、ＣＰＵ２１で処理されるデータや主記憶部２２に記憶されるデータを出力する。出力部２５は、ＬＣＤ２５ａ、ＣＲＴ（Cathode Ray Tube）ディスプレイ、ＰＤＰ（Plasma Display Panel）、ＥＬ（Electroluminescence）パネル、有機ＥＬパネル等
の表示デバイスを含む。また、出力部２５には、プリンタ、スピーカ等の出力デバイスが含まれる。通信部２６は、例えば、サーバ２０が接続するネットワークＮ等とのインターフェースである。
【０１０５】
サーバ２０は、ＣＰＵ２１が補助記憶部２３に記憶されているＯＳ、各種プログラムや各種データを主記憶部２２に読み出して実行することにより、対象プログラムの実行と共に、図５に例示の各処理手段を提供する。
【０１０６】
サーバ２０は、対象プログラムの実行により、図５に例示の操作情報取得部２０１、実行アプリ指定部２０２、オブジェクト検出部２０３、ＵＩデータ処理抽出部２０４、ＩＦプロキシ付与部２０５を提供する。同様にして、サーバ２０は、図５に例示のモジュール管理部２０６、モバイルアプリ実行部２０７、ＩＦプロキシ送受信部２０８を提供する。なお、図５に例示の各処理手段のいずれか、あるいは、これらの一部がハードウェア回路によって動作するものであってもよい。サーバ２０は、以上の各処理手段が参照し、或いは、管理するデータの保存先として補助記憶部２３を備える。
【０１０７】
〔処理ブロック構成〕
図５に、本実施形態の情報処理システム１における、処理ブロックの説明図を例示する。図５に例示の説明図において、情報処理端末１０は、実行アプリ指定部１０１、ＵＩ処理モジュール受信部１０２、モバイルアプリ実行部１０３、ＩＦプロキシ送受信部１０４の各処理手段を有する。なお、端末装置１０は、以上の各処理手段が参照し、或いは、管理するデータの格納先として、例えば、主記憶部１３のＲＡＭ等を備える。
【０１０８】
また、図５に例示の説明図において、サーバ２０は、操作情報取得部２０１、実行アプリ指定部２０２、オブジェクト検出部２０３、ＵＩデータ処理抽出部２０４、ＩＦプロキシ付与部２０５の各処理手段を有する。また、サーバ２０は、モジュール管理部２０６、モバイルアプリ実行部２０７、ＩＦプロキシ送受信部２０８の処理手段を有する。サーバ２０は、以上の各処理手段が参照し、或いは、管理するデータの格納先として、例えば、補助記憶部２３等を備える。
【０１０９】
（サーバ）
図５に例示の説明図において、サーバ２０の操作情報取得部２０１は、例えば、情報処理端末１０から送信された操作入力情報、実行アプリの指定情報等を通信部２６を介して取得する。操作入力情報には、例えば、情報処理端末１０で分散されて実行中のモバイルアプリ２０ａに対する操作入力等が含まれる。実行アプリの指定情報には、例えば、モバイルアプリ２０ａに対応付けられた起動要求が含まれる。
【０１１０】
例えば、情報処理端末１０の初期画面上には、実行可能なモバイルアプリ２０ａのそれぞれに関連付けされた複数のアイコン等が表示される。情報処理端末１０は、例えば、初
期画面上に表示されたアイコン等への操作入力を受け付ける。情報処理端末１０は、例えば、選択されたアイコン等に関連付けされたモバイルアプリ２０ａの識別情報、該アプリに対する起動要求等を、実行アプリの指定情報としてサーバ２０に送信する。
【０１１１】
操作情報取得部２０１は、例えば、通信部２６を介して取得した情報処理端末１０の操作入力情報、実行アプリの指定情報等を、主記憶部２２の所定の領域に一時的に記憶する。操作情報取得部２０１は、例えば、取得した情報処理端末１０の操作入力情報をモバイルアプリ実行部２０７に引き渡す。また、操作情報取得部２０１は、例えば、取得した情報処理端末１０の実行アプリの指定情報を実行アプリ指定部２０２に引き渡す。
【０１１２】
実行アプリ指定部２０２は、例えば、操作情報取得部２０１から引き渡された実行アプリの指定情報に基づいて、起動要求が発生したモバイルアプリ２０ａを特定する。また、実行アプリ指定部２０２は、例えば、特定されたモバイルアプリ２０ａに対応付けられたインターフェース定義２０ｆを特定する。インターフェース定義２０ｆは、図３Ａ等で説明したように、モバイルアプリ２０ａのプログラミングに用いられたフレームワーク２０ｅに基づいて作成される。なお、インターフェース定義２０ｆは、例えば、モバイルアプリ２０ａと対応付けられて補助記憶部２３の所定の領域に記憶される。
【０１１３】
実行アプリ指定部２０２は、例えば、補助記憶部２３を参照し、起動要求が発生したモバイルアプリ２０ａのソースコード２０ｇ、ＨＴＭＬファイル２０ｈを取得する。同様にして、実行アプリ指定部２０２は、モバイルアプリ２０ａに対応付けられたインターフェース定義２０ｆを取得する。実行アプリ指定部２０２は、例えば、補助記憶部２３から取得した、モバイルアプリ２０ａのソースコード２０ｇ、ＨＴＭＬファイル２０ｈ、インターフェース定義２０ｆをオブジェクト検出部２０３に引き渡す。
【０１１４】
オブジェクト検出部２０３は、例えば、実行アプリ指定部２０２から引き渡されたインターフェース定義２０ｆに基づいて、実行要求の発生したモバイルアプリ２０ａのプログラムを解析する。モバイルアプリ２０ａのプログラムの解析は、例えば、ソースコード２０ｇを対象として実行される。なお、モバイルアプリ２０ａのプログラムの解析については、図３Ａで説明した。
【０１１５】
モバイルアプリ２０ａの解析の結果、ソースコード２０ｇにおけるＵＩ処理を定義するためのオブジェクトが生成される定義文（上位のオブジェクトｍ２）が特定される。同様にして、ソースコード２０ｇにおけるデータ処理を定義するためのオブジェクトが生成される定義文（上位のオブジェクトｍ１）が特定される。
【０１１６】
オブジェクト検出部２０３は、例えば、特定した上位のオブジェクトｍ１の中から、該上位のオブジェクトｍ１を構成する関数、変数等の下位の処理オブジェクト（要素）を抽出する。そして、オブジェクト検出部２０３は、例えば、上位のオブジェクトｍ１から抽出された下位の処理オブジェクト（要素）を、“modelオブジェクト”として分類し、図
３Ａに例示のテーブルｍ３を生成する。
【０１１７】
同様にして、オブジェクト検出部２０３は、例えば、特定した上位のオブジェクトｍ２の中から、該上位のオブジェクトｍ２を構成する関数、変数等の下位の処理オブジェクト（要素）を抽出する。そして、オブジェクト検出部２０３は、例えば、上位のオブジェクトｍ２から抽出された下位の処理オブジェクト（要素）を、“viewmodelオブジェクト”
として分類し、図３Ａに例示のテーブルｍ４を生成する。
【０１１８】
オブジェクト検出部２０３は、例えば、生成した“modelオブジェクト”のテーブルｍ
３、及び、“viewmodelオブジェクト”のテーブルｍ４を、モバイルアプリ２０ａの識別
情報に対応付けて主記憶部２２の所定の領域に一時的に記憶する。オブジェクト検出部２０３は、例えば、生成した“modelオブジェクト”のテーブルｍ３、及び、“viewmodelオブジェクト”のテーブルｍ４を、ＨＴＭＬファイル２０ｈに対応付けてＵＩデータ処理抽出部２０４に引き渡す。
【０１１９】
ＵＩデータ処理抽出部２０４は、例えば、オブジェクト検出部２０３から引き渡されたテーブルｍ３、ｍ４内に分類された関数、変数等の下位の処理オブジェクト（要素）とＨＴＭＬファイル２０ｈとの照合を行う。照合の結果、ＨＴＭＬファイル２０ｈに記述された、テーブルｍ３、ｍ４内の関数、変数等の要素が抽出される。
【０１２０】
ＵＩデータ処理抽出部２０４は、例えば、ＨＴＭＬファイル２０ｈに記述された要素名として抽出されたテーブルｍ３、ｍ４内の要素を統合し、ＵＩ処理モジュール２０ｂとしてモジュール化する。なお、ＵＩデータ処理抽出部２０４は、例えば、ＨＴＭＬファイル２０ｈに記述がない要素名として抽出されたテーブルｍ３、ｍ４内の要素を統合し、データ処理モジュール２０ｃとしてモジュール化する。
【０１２１】
モジュール化により、モバイルアプリ２０ａは、ＵＩ処理モジュール２０ｂおよびデータ処理モジュール２０ｃに分離し、実行可能なように再定義される。なお、上述のＨＴＭＬファイル２０ｈとの照合によるテーブルｍ３、ｍ４内の要素の抽出、及び、モジュール化については、図３Ａで説明した。
【０１２２】
ＵＩデータ処理抽出部２０４は、例えば、生成したＵＩ処理モジュール２０ｂ及びデータ処理モジュール２０ｃを、モバイルアプリ２０ａの識別情報に対応付けて主記憶部２２の所定の領域に一時的に記憶する。ＵＩデータ処理抽出部２０４は、例えば、生成したＵＩ処理モジュール２０ｂ及びデータ処理モジュール２０ｃを、ＩＦプロキシ付与部２０５に引き渡す。
【０１２３】
ＩＦプロキシ付与部２０５は、例えば、ＵＩデータ処理抽出部２０４から引き渡されたＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃのそれぞれにＩＦプロキシ２０ｉを付与する。ＩＦプロキシ２０ｉは、例えば、モバイルアプリ２０ａ毎に付与される。
【０１２４】
ＩＦプロキシ２０ｉは、例えば、情報処理端末１０に転送されたＵＩ処理モジュール２０ｂと、サーバ２０に保持されたデータ処理モジュール２０ｃとの間でデータの授受を行うためのプログラムである。ＩＦプロキシ２０ｉの付与により、ＵＩ処理モジュール２０ｂは、データ処理モジュール２０ｃとの間で下位オブジェクト（要素）の実行処理に係る双方向通信が可能となる。なお、ＩＦプロキシ２０ｉの付与については、図３Ｂで説明した。
【０１２５】
ＩＦプロキシ付与部２０５は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂとデータ処理モジュール２０ｃとをモジュール管理部２０６に引き渡す。
【０１２６】
モジュール管理部２０６は、例えば、ＩＦプロキシ付与部２０５から引き渡されたＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃの、それぞれの実行を管理する。モジュール管理部２０６は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂを通信部２６を介して情報処理端末１０に転送する。
【０１２７】
同様にして、モジュール管理部２０６は、例えば、ＩＦプロキシ２０ｉが付与されたデータ処理モジュール２０ｃをモバイルアプリ実行部２０７に引き渡す。なお、モジュール管理部２０６は、例えば、モバイルアプリ２０ａの名称等の識別情報に対応付けて、モバイルアプリ２０ａ毎に付与されるＩＦプロキシ２０ｉを管理する。
【０１２８】
モバイルアプリ実行部２０７は、例えば、モジュール管理部２０６から引き渡されたデータ処理モジュール２０ｃに含まれる各要素のプロセスを実行する。例えば、情報処理端末１０に転送されたＵＩ処理モジュール２０ｂからの、データ処理モジュール２０ｃに含まれる各要素へのプロセスの処理要求は、例えば、ＩＦプロキシ送受信部２０８を介してモバイルアプリ実行部２０７に通知される。
【０１２９】
モバイルアプリ実行部２０７は、例えば、ＩＦプロキシ送受信部２０８からの通知に基づいて、処理要求に対応するデータ処理モジュール２０ｃ内の要素のプロセスを実行する。モバイルアプリ実行部２０７は、例えば、データ処理モジュール２０ｃ内に含まれる要素の実行結果を戻り値としてＩＦプロキシ送受信部２０８に引き渡す。ＩＦプロキシ送受信部２０８に引き渡された実行結果（戻り値）は、通信部２６を介して情報処理端末１０に送信される。
【０１３０】
なお、モバイルアプリ実行部２０７には、例えば、モバイルアプリ２０ａを分散実行中の情報処理端末１０から取得した操作入力情報が、操作情報取得部２０１から引き渡される。モバイルアプリ実行部２０７は、例えば、操作情報取得部２０１から引き渡された操作入力情報をデータ処理モジュール２０ｃ内の各要素のプロセスに反映させる。
【０１３１】
（情報処理端末）
図５に例示の説明図において、モバイルアプリ２０ａの起動要求が発生すると、実行アプリ指定部１０１は、例えば、モバイルアプリ２０ａの識別情報を特定し、起動要求と共にサーバ２０に送信する。モバイルアプリ２０ａの識別情報及び起動要求は、例えば、通信部１６を介してサーバ２０に送信される。
【０１３２】
サーバ２０では、情報処理端末１０から送信された起動要求等を受信し、該起動要求が発生したモバイルアプリ２０ａについての、分散処理を実行するためのＵＩ処理モジュール２０ｂが転送される。ＵＩ処理モジュール２０ｂには、サーバ２０側で実行されるデータ処理モジュール２０ｃとの間でデータの授受を行うためのＩＦプロキシ２０ｉが付与される。
【０１３３】
情報処理端末１０の、ＵＩ処理モジュール受信部１０２は、例えば、サーバ２０から転送されたモバイルアプリ２０ａのＵＩ処理モジュール２０ｂを通信部１６を介して取得する。ＵＩ処理モジュール受信部１０２は、例えば、取得したＵＩ処理モジュール２０ｂを主記憶部１２の所定の領域に一時的に記憶する。ＵＩ処理モジュール受信部１０２は、例えば、取得したモバイルアプリ２０ａのＵＩ処理モジュール２０ｂをモバイルアプリ実行部１０３に引き渡す。
【０１３４】
モバイルアプリ実行部１０３は、例えば、ＵＩ処理モジュール受信部１０２から引き渡されたモバイルアプリ２０ａのＵＩ処理モジュール２０ｂの分散実行を行う。モバイルアプリ実行部１０３は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂを主記憶部１２の作業領域に実行可能に展開し、ＵＩ処理モジュール２０ｂに分散されたモバイルアプリ２０ａの機能を実行する。
【０１３５】
ＵＩ処理モジュール２０ｂは、サーバ２０側で実行されるデータ処理モジュール２０ｃとは非同期に実行される。ＵＩ処理モジュール２０ｂに分散されたモバイルアプリ２０ａの実行の結果、例えば、ＬＣＤ１５ａ等の表示デバイスである画像表示部に、ＨＴＭＬファイル２０ｈで定義された画面が表示される。
【０１３６】
情報処理端末１０は、例えば、入力部１４である操作情報取得部を介し、ＬＣＤ１５ａ
等に表示されたモバイルアプリ２０ａの、実行中の画面についての操作入力を受け付ける。入力部１４を介して受け付けられた実行中の画面表示についての操作入力は、例えば、モバイルアプリ実行部１０３に通知される。
【０１３７】
モバイルアプリ実行部１０３は、入力部１４である操作情報取得部から通知された操作入力を、分散実行中のＵＩ処理モジュール２０ｂに反映させる。情報処理端末１０のＬＣＤ１５ａ等に表示された画面への操作入力は、ＵＩ処理モジュール２０ｂに同期して処理が実行される。
【０１３８】
モバイルアプリ実行部１０３は、例えば、表示画面に表示された操作ボタン等の表示部品への押下操作やデータ入力等の操作入力を、分散して実行中のＵＩ処理モジュール２０ｂに反映させる。或いは、モバイルアプリ実行部１０３は、例えば、通信部１６を介して接続されたバイタルセンサ３０ａ等から入力されたデータを、分散して実行中のＵＩ処理モジュール２０ｂに反映させる。
【０１３９】
ＵＩ処理モジュール２０ｂ内の、上述の操作入力に関連付けられた関数、変数等の各要素（下位のオブジェクト）は、例えば、操作入力に基づくデータの処理要求を発生させる。ＵＩ処理モジュール２０ｂ内の、データの処理要求を発生させた要素のプロセスは、データ処理に係る引数（パラメータ）をＩＦプロキシ２０ｉに引き渡す。
【０１４０】
モバイルアプリ実行部１０３は、例えば、実行中のＵＩ処理モジュール２０ｂからＩＦプロキシ２０ｉに引き渡された引数をＩＦプロキシ送受信部１０４に引き渡す。ＩＦプロキシ送受信部１０４は、例えば、通信部１６を介し、処理要求が発生したプロセスの引数をサーバ２０に送信する。
【０１４１】
サーバ２０では、例えば、起動要求が発生したモバイルアプリ２０ａのデータ処理モジュール２０ｃが、モバイルアプリ実行部２０７で分散して実行されている。ＩＦプロキシ送受信部２０８は、例えば、通信部２６を介し、処理要求が発生したＵＩ処理モジュール２０ｂの関数、変数等の要素で発生したプロセスの引数を受信する。ＩＦプロキシ送受信部２０８は、ＵＩ処理モジュール２０ｂの関数、変数等の要素で発生したプロセスの引数をモバイルアプリ実行部２０７に引き渡す。
【０１４２】
モバイルアプリ実行部２０７は、引き渡されたＵＩ処理モジュール２０ｂの関数、変数等の要素で発生したプロセスの引数を、分散実行中のデータ処理モジュール２０ｃに反映させる。例えば、ＵＩ処理モジュール２０ｂ内の要素で発生した処理要求に対応するデータ処理モジュール２０ｃ内の要素は、引き渡された引数に基づいてデータ処理プロセスを実行する。データ処理プロセスの実行の結果、引き渡された引数に対する戻り値が生成される。モバイルアプリ実行部２０７は、例えば、生成された戻り値を処理要求が発生した要素のプロセスに対する実行結果としてＩＦプロキシ送受信部２０８に引き渡す。サーバ２０のＩＦプロキシ送受信部２０４は、例えば、通信部２６を介し、処理要求が発生したプロセスの戻り値を情報処理端末１０に送信する。
【０１４３】
情報処理端末１０のＩＦプロキシ送受信部１０４は、例えば、通信部１６を介し、サーバ２０から送信された戻り値を受信する。ＩＦプロキシ送受信部１０４は、受信した戻り値をモバイルアプリ実行部１０３に引き渡す。
【０１４４】
モバイルアプリ実行部１０３は、ＩＦプロキシ送受信部１０４で受信された戻り値を、ＩＦプロキシ２０ｉを通じて実行中のＵＩ処理モジュール２０ｂに反映する。ＵＩ処理モジュール２０ｂ内の、データの処理要求を発生させた関数、変数等の要素は、例えば、戻り値に基づいて実行中のプロセスを継続する。この結果、例えば、ＬＣＤ１５ａ等の表示
デバイスに表示された画面が、ユーザのデータ入力等を反映し更新される。
【０１４５】
例えば、表示画面に表示された操作ボタン等の表示部品への押下操作に対応して、実行中のモバイルアプリ２０ａの表示画面の切り替えが行われる。また、例えば、操作入力されたデータに基づく処理結果が、新たな表示画面として表示される。或いは、バイタルセンサ３０ａ等から履歴データ等が入力された場合には、履歴データの中から抽出された特定の情報、例えば、一定期間の血圧値の推移、服薬履歴等が新たな表示画面として表示される。
【０１４６】
〔処理フロー〕
以下、図６Ａ、６Ｂに例示のフローチャートを参照し、本実施形態の情報処理システム１のモバイルアプリ２０ａの分散実行に係る処理を説明する。図６Ａは、サーバ２０におけるモバイルアプリ２０ａの分散実行に係る処理を説明するフローチャートの例示である。図６Ｂは、情報処理端末１０におけるモバイルアプリ２０ａの分散実行に係る処理を説明するフローチャートの例示である。
【０１４７】
情報処理端末１０は、例えば、主記憶部１３のＲＡＭ等に実行可能に展開されたコンピュータプログラムにより、図６Ｂに例示の処理を実行する。同様にして、サーバ２０は、例えば、主記憶部２２に実行可能に展開されたコンピュータプログラムにより、図６Ａに例示の処理を実行する。
【０１４８】
なお、図６Ａに例示の処理を実行するサーバ２０は、ネットワークＮを介して接続されたクラウド上のサーバであり、情報処理端末１０で実行可能なモバイルアプリ２０ａを搭載する。但し、情報処理端末１０との間でモバイルアプリ２０ａの機能を分散実行するサーバ２０は、該情報処理端末１０とＩＦプロキシ２０ｉを介して接続されるクラウド上の一のサーバである。ＩＦプロキシ２０ｉを介して接続された情報処理端末１０とサーバ２０とは、例えば、サーバ・クライアント型の形態でモバイルアプリ２０ａの機能を分散実行する。
【０１４９】
（サーバ）
図６Ａに例示のフローチャートにおいて、サーバ２０のモバイルアプリ２０ａの分散実行に係る処理の開始は、例えば、情報処理端末１０が接続するネットワークＮへの接続のときが例示できる。
【０１５０】
サーバ２０は、例えば、ネットワークＮに接続する情報処理端末１０からの、モバイルアプリ２０ａに対する起動要求がある否かを判定する（Ｓ１）。サーバ２０は、例えば、モバイルアプリ２０ａに対する起動要求がある場合には（Ｓ１，Ｙｅｓ）、Ｓ２の処理に移行する。一方、サーバ２０は、例えば、モバイルアプリ２０ａに対する起動要求がない場合には（Ｓ１，Ｎｏ）、該起動要求を受信するまで待機する。
【０１５１】
Ｓ２の処理では、サーバ２０は、例えば、起動要求があったモバイルアプリ２０ａのフレームワーク２０ｅを特定する。そして、サーバ２０は、例えば、モバイルアプリ２０ａの名称等の識別情報と、特定したフレームワーク２０ｅに基づいて、該モバイルアプリ２０ａに対応付けられたインターフェース定義２０ｆを取得する。インターフェース定義２０ｆは、例えば、補助記憶部２３の所定の領域に格納されている。サーバ２０は、取得したインターフェース定義２０ｆをモバイルアプリ２０ａの識別情報と共に、Ｓ３の処理に引き渡す。
【０１５２】
Ｓ３の処理では、サーバ２０は、例えば、インターフェース定義２０ｆに基づいてモバイルアプリ２０ａのソースコード２０ｇを解析し、ＵＩ処理およびデータ処理に関連付け
られた関数、変数等の要素（下位のオブジェクト）を検出する。Ｓ３の処理は、図３Ａで説明した。なお、以下の説明では、関数、変数等の要素を“要素オブジェクト”とも称する。
【０１５３】
Ｓ３の処理では、検出結果として図３Ａに例示の“modelオブジェクト”として分類さ
れたテーブルｍ３、“viewmodelオブジェクト”として分類されたテーブルｍ４が生成さ
れる。サーバ２０は、例えば、生成した“modelオブジェクト”のテーブルｍ３、及び、
“viewmodelオブジェクト”のテーブルｍ４を、モバイルアプリ２０ａの識別情報に対応
付けて主記憶部２２の所定の領域に一時的に記憶する。サーバ２０は、例えば、生成した“modelオブジェクト”のテーブルｍ３、及び、“viewmodelオブジェクト”のテーブルｍ４をＳ４の処理に引き渡す。
【０１５４】
Ｓ４の処理では、サーバ２０は、例えば、View情報とテーブルｍ３、ｍ４内に分類された関数、変数等の要素オブジェクトとの照合を行い、View情報として利用されるＵＩ処理の要素オブジェクトを抽出する。ここで、“View情報”とは、情報処理端末１０のＬＣＤ１５ａ等に表示される画面を記述するプログラムであり、ＨＴＭＬ、ＸＭＬ、ＸＡＭＬ等のマークアップ言語で記述される。
【０１５５】
サーバ２０は、例えば、モバイルアプリ２０ａのＨＴＭＬファイル２０ｈに記述された文字列と、テーブルｍ３、ｍ４内に分類された要素オブジェクトの名称との照合を行う。サーバ２０は、例えば、ＨＴＭＬファイル２０ｈに記述がある要素オブジェクトをＵＩ処理に利用される要素オブジェクトとして抽出する。同様にして、サーバ２０は、例えば、ＨＴＭＬファイル２０ｈに記述がない要素オブジェクトをデータ処理に利用される要素オブジェクトとして抽出する。なお、サーバ２０は、ＵＩ処理に利用される要素オブジェクトを除く他の要素オブジェクトを、データ処理に利用される要素オブジェクトとして抽出するとしてもよい。
【０１５６】
Ｓ５の処理では、サーバ２０は、例えば、Ｓ４の処理で抽出したＵＩ処理に利用される要素オブジェクトを統合してモジュール化し、ＵＩ処理モジュール２０ｂを生成する。同様にして、サーバ２０は、例えば、Ｓ４の処理で抽出したデータ処理に利用される要素オブジェクトを統合してモジュール化し、データ処理モジュール２０ｃを生成する。Ｓ５の処理により、モバイルアプリ２０ａは、ＵＩ処理モジュール２０ｂおよびデータ処理モジュール２０ｃに分離し、実行可能なように再定義（変換）される。
【０１５７】
Ｓ６の処理では、サーバ２０は、例えば、Ｓ５の処理で生成されたＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃのそれぞれにＩＦプロキシ２０ｉを付与する。ＩＦプロキシ２０ｉは、図３Ｂ等で説明した。ＩＦプロキシ２０ｉは、例えば、モバイルアプリ２０ａ毎に付与される。サーバ２０は、例えば、付与されたＩＦプロキシ２０ｉをモバイルアプリ２０ａに対応付けて管理する。
【０１５８】
ＩＦプロキシ２０ｉの付与により、情報処理端末１０で分離実行されるＵＩ処理モジュール２０ｂとサーバ２０で分離実行されるデータ処理モジュール２０ｃとの間の、要素オブジェクトの実行処理に係る双方向通信が可能となる。
【０１５９】
Ｓ７の処理では、サーバ２０は、例えば、Ｓ６の処理でＩＦプロキシ２０ｉが付与された処理モジュールがＵＩ処理モジュール２０ｂであるか否かを判定する。サーバ２０は、例えば、Ｓ６の処理でＩＦプロキシ２０ｉが付与された処理モジュールがＵＩ処理モジュール２０ｂである場合には（Ｓ７，Ｙｅｓ）、Ｓ８の処理に移行する。一方、サーバ２０は、例えば、Ｓ６の処理でＩＦプロキシ２０ｉが付与された処理モジュールがＵＩ処理モジュール２０ｂでない場合には（Ｓ７，Ｎｏ）、Ｓ９の処理に移行する。
【０１６０】
Ｓ８の処理では、サーバ２０は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂを、モバイルアプリ２０ａに対する起動要求を発生した情報処理端末１０に転送する。サーバ２０は、例えば、モバイルアプリ２０ａの名称等の識別情報と共にＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂを情報処理端末１０に転送する。
【０１６１】
情報処理端末１０に転送された、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂは、例えば、通信部１６を介して受信され、主記憶部１３の所定の領域に一時的に記憶される。情報処理端末１０は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂを主記憶部１３の作業領域に実行可能に展開し、ＵＩ処理モジュール２０ｂに分散されたモバイルアプリ２０ａの機能を実行する。
【０１６２】
一方、Ｓ９の処理では、サーバ２０は、例えば、ＩＦプロキシ２０ｉが付与されたデータ処理モジュール２０ｃを、主記憶部２２の所定の領域に一時的に記憶する。サーバ２０は、例えば、ＩＦプロキシ２０ｉが付与されたデータ処理モジュール２０ｃを主記憶部２２の作業領域に実行可能に展開し、データ処理モジュール２０ｂに分散されたモバイルアプリ２０ａの機能を実行する。
【０１６３】
ＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃに分離されたモバイルアプリ２０ａの機能は、情報処理端末１０及びサーバ２０のそれぞれのリソースを使用して非同期に分散実行される。
【０１６４】
なお、図６Ａでは、情報処理端末１０からのモバイルアプリ２０ａの起動要求を契機としてＳ２−Ｓ５の処理を実行するとして説明した。サーバ１０は、例えば、情報処理端末１０に搭載可能なモバイルアプリ２０ａに対して、Ｓ２−Ｓ５の処理を予め実行し、ＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃを生成するとしてもよい。サーバ２０は、モバイルアプリ２０ａの起動要求を契機として予め生成されたＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃのそれぞれにＩＦプロキシ２０ｉを付与し、情報処理端末１０に転送するとしてもよい。
【０１６５】
また、サーバ２０は、分離されたデータ処理モジュール２０ｃの実行に替えて、モバイルアプリ２０ａを実行させるとしてもよい。ＩＦプロキシ２０ｉを介して受信した引数を、対応するモバイルアプリ２０ａとして実行中のプロセスに引き渡し、実行結果としての戻り値を得るとしてもよい。サーバ２０は、例えば、得られた実行結果としての戻り値をＩＦプロキシ２０ｉを介して情報処理端末１０側で実行中の、ＵＩ処理モジュール２０ｃに送信すればよい。
【０１６６】
（情報処理端末）
図６Ａに例示のフローチャートにおいて、情報処理端末１０のモバイルアプリ２０ａの分散実行に係る処理の開始は、例えば、モバイルアプリ２０ａの起動要求の発生のときが例示できる。情報処理端末１０は、例えば、ＬＣＤ１５ａ等に画面表示された、モバイルアプリ２０ａに関連付けられたアイコン等への操作入力の受け付けを起動要求の発生のときとすることができる。或いは、情報処理端末１０にBluetooth（登録商標）等の近距離
無線通信を介して接続されたウェアラブル機器から受け付けた起動要求を、モバイルアプリ２０ａの起動要求の発生のときとすることができる。
【０１６７】
情報処理端末１０は、例えば、上述のモバイルアプリ２０ａに対する起動要求を受け付け、該モバイルアプリ２０ａの名称等の識別情報を特定し、起動要求と共にサーバ２０に送信する（Ｓ１１）。モバイルアプリ２０ａの識別情報及び起動要求は、例えば、通信部
１６を介してサーバ２０に送信される。
【０１６８】
情報処理端末１０は、例えば、起動要求を行ったモバイルアプリ２０ａのＵＩ処理モジュール２０ｂを受信したか否かを判定する（Ｓ１２）。図６ＡのＳ８の処理で説明したように、情報処理端末１０からの起動要求に応じてサーバ２０から転送されるＵＩ処理モジュール２０ｂには、起動要求を行ったモバイルアプリ２０ａを識別する名称等の識別情報が付加されている。情報処理端末１０は、例えば、通信部１６を介して受信したＵＩ処理モジュール２０ｂに起動要求を行ったモバイルアプリ２０ａの名称等の識別情報が付加されているか否かを判定する。
【０１６９】
情報処理端末１０は、例えば、受信したＵＩ処理モジュール２０ｂに起動要求を行ったモバイルアプリ２０ａの名称等の識別情報が付加されている場合には、Ｓ１３の処理に移行する。一方、情報処理端末１０は、例えば、受信したＵＩ処理モジュール２０ｂに起動要求を行ったモバイルアプリ２０ａの名称等の識別情報が付加されていない場合には、該当するＵＩ処理モジュール２０ｂを受信するまで待機する。
【０１７０】
Ｓ１３の処理では、情報処理端末１０は、例えば、受信したＵＩ処理モジュール２０ｂを付与されたＩＦプロキシ２０ｉと共に、主記憶部１３の所定の領域に一時的に記憶する。そして、情報処理端末１０は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂを主記憶部１３の作業領域に実行可能に展開し、ＵＩ処理モジュール２０ｂに分散されたモバイルアプリ２０ａの機能を実行する。ＵＩ処理モジュール２０ｂの実行により、情報処理端末１０のＬＣＤ１５ａ等の表示デバイスには、例えば、ＨＴＭＬファイル２０ｈで定義された画面が表示される。
【０１７１】
情報処理端末１０は、例えば、ＵＩ処理モジュール２０ｂの実行により表示された画面への操作入力を受け付ける。情報処理端末１０は、例えば、画面表示された操作ボタン等の表示部品への押下操作やデータ入力等の操作入力を受け付ける。或いは、通信部１６を介して接続されたバイタルセンサ３０ａ等から読み出されたデータの入力を受け付ける。情報処理端末１０は、例えば、受け付けた上記の操作入力を実行中のＵＩ処理モジュール２０ｂに反映させる。
【０１７２】
ＵＩ処理モジュール２０ｂ内の、上述の操作入力に関連付けられた関数、変数等の各要素オブジェクトは、例えば、操作入力に基づくデータの処理要求を発生させる（Ｓ１４）。ＵＩ処理モジュール２０ｂ内の、データの処理要求を発生させた要素オブジェクトのプロセスは、ＵＩ処理モジュール２０ｂに付加されたＩＦプロキシ２０ｉの呼び出しを行い、データ処理に係る引数（パラメータ）を該ＩＦプロキシ２０ｉに引き渡す（Ｓ１５）。
【０１７３】
ＵＩ処理モジュール２０ｂに付加されたＩＦプロキシ２０ｉは、例えば、“WebSocket
”等の通信規格に基づいて、サーバ２０側で分散して実行中のデータ処理モジュール２０ｃにデータ処理の実行依頼を行う（Ｓ１６）。
【０１７４】
サーバ２０で分散実行中のデータ処理モジュール２０ｃは、データ処理モジュール２０ｃに付与されたＩＦプロキシ２０ｉを介して、データの処理要求を発生させた要素オブジェクトのプロセスの引数を取得する。サーバ２０のデータ処理モジュール２０ｃ内の、処理要求に対応する要素オブジェクトは、引数を反映したプロセスを実行し、実行結果を戻り値としてＩＦプロキシ２０ｉに引き渡す。
【０１７５】
データ処理モジュール２０ｃに付加されたＩＦプロキシ２０ｉは、例えば、“WebSocket”等の通信規格に基づいて、情報処理端末１０側で分散して実行中のＵＩ処理モジュー
ル２０ｂに実行結果（戻り値）を送信する。
【０１７６】
情報処理端末１０側で分散して実行中のＵＩ処理モジュール２０ｂに付与されたＩＦプロキシ２０ｉは、サーバ２０側で分散して実行中のデータ処理モジュール２０ｃから送信された実行結果を取得する（Ｓ１７）。ＵＩ処理モジュール２０ｂに付与されたＩＦプロキシ２０ｉは、データの処理要求を発生させたＵＩ処理モジュール２０ｂ内の要素オブジェクトのプロセスに、取得した実行結果（戻り値）を引き渡す。
【０１７７】
データの処理要求を発生させたＵＩ処理モジュール２０ｂ内の要素オブジェクトは、ＩＦプロキシ２０ｉから引き渡された実行結果（戻り値）に基づいて実行中のプロセスを継続する。情報処理端末１０のＬＣＤ等には、操作入力で更新された更新後の表示画面が表示される。
【０１７８】
ここで、サーバ２０で実行される、Ｓ２−Ｓ５の処理は、プログラムの処理コードを解析するステップと、プログラムの画面を記述する１以上の処理コードを抽出するステップと、抽出された１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップの一例である。また、サーバ２０のＣＰＵ２１等は、プログラムの処理コードを解析し、プログラムの画面を記述する１以上の処理コードを抽出し、抽出された１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部の一例としてＳ２−Ｓ５の処理を実行する。
【０１７９】
また、サーバ２０で実行される、Ｓ７−Ｓ９の処理は、生成された画面処理の処理コード群を電子機器に送信するステップと、電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、プログラムの中の画面処理の処理コード群以外の処理コードを実行するステップと、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップの一例である。また、サーバ２０のＣＰＵ２１等は、生成された画面処理の処理コード群を電子機器に送信し、電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けると共にプログラムの中の画面処理の処理コード群以外の処理コードを実行し、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御部の一例としてＳ７−Ｓ９の処理を実行する。
【０１８０】
また、サーバ２０で実行される、Ｓ６の処理は、画面処理の処理コード群に、前記プログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与する生成ステップの一例である。また、サーバ２０のＣＰＵ２１等は、画面処理の処理コード群に、前記プログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与する生成部の一例としてＳ６の処理を実行する。
【０１８１】
また、情報処理端末１０で実行されるＳ１１−Ｓ１２の処理は、プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップの一例である。また、情報処理端末１０のＣＰＵ１１等は、プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部の一例としてＳ１１−Ｓ１２の処理を実行する。
【０１８２】
また、情報処理端末１０で実行されるＳ１５の処理は、画面処理の処理コード群に付与されたプログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信するステップの一例である。また、情報処理端末１０のＣＰＵ１１等は、画面処理の処理コード群に付与されたプログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信する受信部の一例としてＳ１５の処理を実行する。
【０１８３】
また、情報処理端末１０で実行されるＳ１３−Ｓ１８の処理は、画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、それぞれの処理要求に対応する処理の結果を取得するステップと、取得された処理の結果に基づいてプログラムの画面を生成する処理ステップの一例である。また、情報処理端末１０のＣＰＵ１１等は、画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共にそれぞれの処理要求に対応する処理の結果を取得してプログラムの画面を生成する処理部の一例としてＳ１３−Ｓ１８の処理を実行する。
【０１８４】
以上、説明したように、本実施形態のサーバ２０は、情報処理端末１０に搭載可能なアプリプログラムを、ＵＩ処理モジュールとデータ処理モジュールとに分離することができる。例えば、サーバ２０は、アプリプログラムの中の、アプリの実行に伴って提供される表示画面を定義する記述文の中で宣言されている関数、変数等の要素オブジェクトをＵＩ処理モジュールとして抽出できる。同様にして、サーバ２０は、ＵＩ処理モジュールを除くアプリプログラムの中の、関数、変数等の要素オブジェクトをデータ処理モジュールとして抽出できる。サーバ２０は、抽出されたＵＩ処理モジュールとデータ処理モジュールに対し、処理の実行に伴い、各モジュール間で双方向通信が可能なプロキシプログラムを付与することができる。
【０１８５】
この結果、本実施形態の情報処理システム１では、情報処理端末１０に分散されたＵＩ処理モジュールとサーバ２０に分散されたデータ処理モジュールとを非同期に実行し、アプリ機能を提供することができる。情報処理システム１では、例えば、業務の利用に係る個人情報等の秘匿性の高い情報の処理はサーバ２０側の処理として実行できる。このため、情報処理端末１０の紛失や情報所漏洩に対する、秘匿性の高い情報の安全性を高めることができる。
【０１８６】
また、本実施形態の情報処理システム１では、アプリの実行に伴う表示画面の処理は、情報処理端末１０のＵＩ処理モジュールとして実行できる。このため、例えば、表示画面に対する操作入力等の処理は、ＵＩ処理モジュールに同期して実行することができる。本実施形態の情報処理システム１では、アプリの実行に伴う表示画面の操作応答性を相対的に高めることができる。本実施形態の情報処理システム１では、情報処理端末１０の業務利用に係る情報の安全性と操作応答性の確保を両立が提供できる。
【０１８７】
＜実施形態２＞
実施形態１に例示の情報処理システム１は、ＵＩ処理モジュール２０ｂとデータ処理モジュール２０ｃとに分離されたモバイルアプリ２０ａのプログラムをそれぞれ情報処理端末１０、サーバ２０に分散して非同期に実行する。ＵＩ処理モジュール２０ｂ及びデータ処理モジュール２０ｃにはＩＦプロキシ２０ｉが付与される。情報処理端末１０とサーバ２０とに分散された各処理モジュールは、相互のＩＦプロキシ２０ｉを介してデータの授受を行うことでモバイルアプリ２０ａの機能を提供する。
【０１８８】
実施形態２（以下、本実施形態と称す）の情報処理システム１では、サーバ２０は、分離された各処理モジュールに対し、例えば、オブジェクトマネージャをさらに付与する。既に説明したように、ＵＩ処理モジュール２０ｂには、アプリの実行に伴って提供される画面を定義する記述文の中で宣言されている関数、変数等の要素オブジェクトが分類される。
【０１８９】
オブジェクトマネージャは、例えば、ＵＩ処理モジュール２０ｂとして分類された要素オブジェクトの中の各関数要素に対し、定期的にアクセスパフォーマンスを計測する。アクセスパフォーマンスは、例えば、関数要素毎に計測される。なお、アクセスパフォーマンスの計測周期は、例えば、情報処理システム１を構成する各機器の性能、モバイルアプ
リ機能等により設定することができる。例えば、クセスパフォーマンスの計測周期として分単位、時単位等が例示できる。
【０１９０】
オブジェクトマネージャが計測するアクセスパフォーマンスには、例えば、各関数要素が、サーバ２０側で実行されるデータ処理モジュール２０ｃを呼び出した“データ参照回数”が含まれる。同様にして、アクセスパフォーマンスには、例えば、各関数要素が処理要求を発生してから実行結果の戻り値を受け付けるまでの“実行遅延時間”が含まれる。
【０１９１】
オブジェクトマネージャは、例えば、計測された各関数要素のアクセスパフォーマンスと所定の閾値との比較を行い、該アクセスパフォーマンスと所定閾値との相対関係を判定する。オブジェクトマネージャは、例えば、判定された各関数要素のアクセスパフォーマンスと所定閾値との相対関係に応じて、関数要素の処理モジュール間の移動を決定する。関数要素の処理モジュール間の移動には、例えば、データ処理モジュール２０ｃからＵＩ処理モジュール２０ｂへの移動、ＵＩ処理モジュール２０ｂからデータ処理モジュール２０ｃへの移動が含まれる。
【０１９２】
本実施形態の情報処理システム１では、例えば、業務に利用されるモバイルアプリ２０ａの使用頻度やモバイル環境下の通信状態といった利用環境に対応して、関数要素毎の処理モジュール間の移動を実行できる。本実施形態の情報処理システム１では、アプリ機能の利用環境に対応した操作応答性が提供できる。
【０１９３】
（オブジェクトマネージャ）
以下、図７Ａ−７Ｃに例示の図面を参照し、本実施形態のオブジェクトマネージャの処処理を説明する。なお、本実施形態の情報処理端末１０及びサーバ２０のハードウェア構成は、実施形態１と同様である。
【０１９４】
図７Ａに、オブジェクトマネージャの処理の説明図を例示する。なお、図７Ａに例示の説明図において、図３Ａ，３Ｂに例示の実施形態１の処理の説明図と共通する箇所には同一の番号を付与し、説明を省略する。また、モバイルアプリ２０ａのソースコードに対するＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃへの分離処理は、図３Ａに例示の実施形態１の分離処理と同様の処理である。
【０１９５】
図７Ａの説明図において、矩形枠で囲まれた“４”に例示のように、モバイルアプリ２０ａから分離されたＵＩ処理モジュール２０ｂにはＩＦプロキシ２０ｉ、オブジェクトマネージャ２０ｊが付与されて情報処理端末１０に転送される。また、モバイルアプリ２０ａから分離されたデータ処理モジュール２０ｂには、ＩＦプロキシ２０ｉ、オブジェクトマネージャ２０ｊが付与されてサーバ２０に保持される。
【０１９６】
情報処理端末１０に分散して実行されるＵＩ処理モジュール２０ｂは、サーバ２０で分散して実行されるデータ処理モジュール２０ｃとの間でＩＦプロキシ２０ｉを介し、データの授受を行う。ＵＩ処理モジュール２０ｂには、ＬＣＤ１５ａ等の表示デバイスに表示される表示画面を定義する記述文（例えば、ＨＴＭＬ）の中で宣言されている関数、変数等の要素オブジェクトが分類される。
【０１９７】
オブジェクトマネージャ２０ｊは、例えば、ＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃのそれぞれに分類された要素オブジェクトの関数要素について、プロセス実行時のアクセスパフォーマンスを計測する。アクセスパフォーマンスの計測は関数要素毎に実行される。
【０１９８】
例えば、ＵＩ処理モジュール２０ｂの関数要素のプロセスで発生した処理要求は、ＩＦ
プロキシ２０ｉを介してデータ処理モジュール２０ｃ内の、処理要求に対応する要素オブジェクトに送信される。また、データ処理モジュール２０ｃからの、処理要求に対する結果（戻り値）は、ＩＦプロキシ２０ｉを介してＵＩ処理モジュール２０ｂ内の、処理要求を発生した関数要素に引き渡される。
【０１９９】
オブジェクトマネージャ２０ｊは、例えば、各処理モジュール内の各関数要素の、ＩＦプロキシ２０ｉに対するアクセスを監視し、上述したアクセスパフォーマンスを計測する。例えば、ＵＩ処理モジュール２０ｂ内の各関数要素がデータ処理モジュール２０ｃに対する処理要求を発生したと想定する。
【０２００】
オブジェクトマネージャ２０ｊは、例えば、データ処理モジュール２０ｃに対する処理要求の回数を“データ参照回数”として計測する。“データ参照回数”には、ＵＩ処理モジュール２０ｂ内の処理要求を発生した関数要素と、該関数要素の処理要求を受け付けて処理結果（戻り値）を送信するデータ処理モジュール２０ｃ内の関数要素とが対応付けられる。
【０２０１】
また、オブジェクトマネージャ２０ｊは、例えば、各関数要素が処理要求を発生させたときから処理要求に対する結果（戻り値）を受信するまでの期間を“実行遅延時間”として計測する。“実行遅延時間”には、“データ参照回数”と同様に、処理要求を発生した関数要素と、該関数要素の処理要求を受け付けて処理結果（戻り値）を送信する関数要素とが対応付けられる。
【０２０２】
例えば、ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、ＵＩ処理モジュール２０ｂ内の各関数要素が処理要求を発生させたときから処理要求に対する結果（戻り値）を受信するまでの期間を“実行遅延時間”として計測する。
【０２０３】
発生した処理要求に対して結果（戻り値）を応答する関数要素には、例えば、サーバ２０側でプロセスが実行されるデータ処理モジュール２０ｃの関数要素が含まれる。このケースの“実行遅延時間”は、処理要求の発生から処理要求に対する結果（戻り値）をＩＦプロキシ２０ｉを介して受信するまでの期間となる。
【０２０４】
また、発生した処理要求に対して結果（戻り値）を応答する関数要素には、例えば、データ処理モジュール２０ｃから移動後の、情報処理端末１０内でプロセスが実行される関数要素が含まれる。このケースでは、“実行遅延時間”は、処理要求の発生から処理要求に対する結果（戻り値）を、処理要求を発生させた関数要素が受信するまでの期間となる。但し、このケースでは、オブジェクトマネージャ２０ｊは、例えば、データ処理モジュール２０ｃから移動後の関数要素に対する処理要求の回数を“データ参照回数”として計測することができる。
【０２０５】
データ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊについても同様である。オブジェクトマネージャ２０ｊは、例えば、実行中のデータ処理モジュール２０ｃ内の各関数要素の、ＩＦプロキシ２０ｉに対するアクセスを監視し、アクセスパフォーマンスを計測する。
【０２０６】
例えば、ＵＩ処理モジュール２０ｂ内の各関数要素がデータ処理モジュール２０ｃに対する処理要求を発生した場合には、オブジェクトマネージャ２０ｊは、例えば、データ処理モジュール２０ｃに対する処理要求の回数を“データ参照回数”として計測する。
【０２０７】
また、オブジェクトマネージャ２０ｊで計測される“実行遅延時間”は、以下の通りである。“実行遅延時間”は、ＵＩ処理モジュール２０ｂ内の各関数要素が発生させた処理
要求をＩＦプロキシ２０ｉを介して受信したときから、データ処理モジュール２０ｃ内の関数要素が処理要求に対する結果（戻り値）を送信するまでの期間となる。
【０２０８】
なお、データ処理モジュール２０ｃから移動後の、情報処理端末１０内でプロセスが実行される関数要素に対する処理要求が発生したケースでは、次の通りである。すなわち、“データ参照回数”は、ＵＩ処理モジュール２０ｃに対する処理要求の回数となる。また、“実行遅延時間”は、データ処理モジュール２０ｃ内の各関数要素が処理要求を発生させたときから、処理要求の発生から処理要求に対する結果（戻り値）をＩＦプロキシ２０ｉを介して受信するまでの期間として計測する。
【０２０９】
データ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊでは、“データ参照回数”、“実行遅延時間”には、処理要求を発生した関数要素と、該関数要素の処理要求を受け付けて処理結果（戻り値）を送信する関数要素とが対応付けられる。
【０２１０】
オブジェクトマネージャ２０ｊは、例えば、計測したアクセスパフォーマンスに基づいてテーブルを生成する。図７Ｂに、計測したアクセスパフォーマンスに基づいて生成されたテーブルＴｂ１を例示する。図７Ｂに例示のテーブルＴｂ１は、例えば、データ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊで生成されたテーブル例である。また、図７Ｂに例示のテーブルＴｂ１は、データ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊによる、関数要素の移動が発生する前の計測例である。
【０２１１】
図７ＢのテーブルＴｂ１例では、処理要求を行った関数要素の名称が縦方向のカラムに配列され、処理要求に対して結果を応答した関数要素の名称が横方向のカラムに配列される。
【０２１２】
なお、データ処理モジュール２０ｃの関数要素には、ＵＩ処理モジュール２０ｂに分類された各要素オブジェクトの、異なるプロセスから複数の処理要求が発生する。このため、ＵＩ処理モジュール２０ｂの一つの関数要素名が格納されたカラムには、データ処理モジュール２０ｃ内の複数の関数要素に対するアクセスパフォーマンスが対応付けられる。
【０２１３】
また、オブジェクトマネージャ２０ｊは、例えば、ＵＩ処理モジュール２０ｂに分類された関数要素について、データ処理モジュール２０ｃに対し処理要求が発生した場合には、監視期間を設け、該監視期間に発生するデータ参照回数を計測する。監視期間として、例えば、処理要求の発生後の直近の６０秒間とすることができる。但し、監視期間の設定は、情報処理システム１に含まれる各機器の性能、分散実行するモバイルアプリ機能等に応じて設定することができる。
【０２１４】
図７Ｂに例示のテーブルＴｂ１では、縦方向に配列された関数要素と横方向に配列された関数要素との交差位置のカラムに、測定されたアクセスパフォーマンスが格納される。測定されたアクセスパフォーマンスは、例えば、“｛” access”:ＡＡＡ “delay”:Ｂ
ＢＢ｝”といった形式で格納される。“｛｝”内の“access”はデータ参照回数を表し、“：ＡＡＡ”は計測値を表す。また、“｛｝”内の“delay”は実行遅延時間を表し、“
：ＢＢＢ”は秒単位の計測値を表す。
【０２１５】
図７ＢのテーブルＴｂ１例では、データ参照回数は、上述した監視期間を処理要求の発生後の直近の６０秒間とした場合の計測例である。また、実行遅延時間は、例えば、処理要求の発生後のデータ参照回数について、直近の１０回のデータ参照回数に対する実行遅延時間を平均した場合の計測例である。但し、実行遅延時間の計測方法は、情報処理システム１に含まれる各機器の性能、分散実行するモバイルアプリ機能等に応じて設定することができる。例えば、計測されたデータ参照回数の中で最大実行遅延時間、或いは、最小
遅延時間を計測値とすることが例示できる。
【０２１６】
図７ＢのテーブルＴｂ１例では、例えば、縦方向の“items”が格納された関数要素の
カラムには、横方向の“result”、“save”、“analyze”が格納された関数要素のカラ
ムが対応付けられている。例えば、ＵＩ処理モジュール２０ｂに分類された関数要素“items”の実行プロセスでは、データ処理モジュール２０ｃに分類された関数要素“result
”、“save”、“analyze”のそれぞれに処理要求が発生していることが判る。
【０２１７】
データ処理モジュール２０ｃの関数要素“result”に対して計測されたデータ参照回数は“５回”であり、実行遅延時間は“０．２秒”であることが判る。同様にして、関数要素“save”に対して計測されたデータ参照回数は“１０回”であり、実行遅延時間は“０．２秒”であることが判る。また、関数要素“analyze”に対して計測されたデータ参照
回数は“３回”であり、実行遅延時間は“１秒”であることが判る。
【０２１８】
ＵＩ処理モジュール２０ｂの関数要素“items”の実行プロセスから発生した処理要求
の相手先は、データ処理モジュール２０ｃの関数要素“save”が相対的に高いことが判る。また、ＵＩ処理モジュール２０ｂの関数要素“items”の実行プロセスから発生した処
理要求の中では、データ処理モジュール２０ｃの関数要素“analyze”を相手先とした実
行遅延時間が相対的に遅いことが判る。
【０２１９】
また、データ処理モジュール２０ｃの関数要素“analyze”を相手先として処理要求を
発生させるＵＩ処理モジュール２０ｂの関数要素“items”、“result”、“save”につ
いて、各計測値を比較すると次の状態が判る。ＵＩ処理モジュール２０ｂの関数要素“result”からのデータ参照回数が“２０回”、実行遅延時間が“２．３秒”であり、それぞれに相対的に高い計測値が格納されていることが判る。
【０２２０】
オブジェクトマネージャ２０ｊは、例えば、関数要素毎に計測されたアクセスパフォーマンスに基づいて、ＵＩ処理モジュール２０ｂとデータ処理モジュール２０ｃとの間で移動する関数要素を決定する。
【０２２１】
処理モジュール間で移動する関数要素の決定は、例えば、計測されたアクセスパフォーマンスと閾値との相対関係により判定される。なお、判定のための閾値との相対関係は、例えば、テーブル化した判定条件として保持することができる。
【０２２２】
図７Ｃに、処理モジュール間で関数要素の移動を決定するための判定条件を格納したテーブルＴｂ２を例示する。図７Ｃに例示のテーブルＴｂ２は、例えば、処理モジュール間の関数要素の移動を判定するための閾値として、上限値および下限値を有する場合の一例である。なお、移動を判定するための閾値は、例えば、情報処理システム１を構成する各機器の性能、モバイルアプリ機能等により設定することができる。閾値の個数は単数でもよく、上限値、中間値、下限値といった３以上の閾値を有するとしてもよい。
【０２２３】
オブジェクトマネージャ２０ｊは、上限値および下限値の閾値を有することで、以下の効果が期待できる。すなわち、計測されたアクセスパフォーマンスが上限値以上となることで、関数要素への処理要求の頻度が高いことを判定できる。特定の関数要素への処理頻度が高い場合には、例えば、ＵＩ処理モジュール２０ｂとデータ処理モジュール２０ｃとの間のデータの授受についての通信頻度が高くなる。通信頻度が高い場合には、データの授受の処理に情報処理端末１０のリソースが割り当てられてしまうため、操作応答性の低下を招く虞がある。
【０２２４】
本実施形態では、閾値判定により、アクセスパフォーマンスが上限値以上となる関数要
素を特定することで、該関数要素を処理要求を行う関数要素と同じ場所に移動することができる。例えば、サーバ２０でプロセスが実行される処理要求の頻度が高い関数要素を、処理要求を発生させた関数要素が含まれる情報処理端末１０側に移動することで、データの授受についての通信負荷を軽減することが可能となる。通信負荷の軽減により、情報処理端末１０では、操作応答性についてのパフォーマンスを維持できるため、操作応答性の低下を回避できる。情報処理端末１０の利用環境に対応した操作応答性が提供できる。
【０２２５】
また、データ処理モジュール２０ｃに分類される関数要素は、プロセスの実行の際に秘匿性の高い情報をデータとして扱う場合がある。このため、サーバ２０で分散実行中のデータ処理モジュール２０ｃから関数要素を情報処理端末１０に移動した場合では、情報の安全性が低下する虞がある。
【０２２６】
本実施形態では、計測されたアクセスパフォーマンスに対する下限値を設けることで、例えば、情報処理端末１０に移動したデータ処理モジュール２０ｃの関数要素をサーバ２０側に戻すための移動を判定することが可能となる。情報処理端末１０に移動したデータ処理モジュール２０ｃの関数要素をサーバ２０側に戻すことで、長期的な情報の安全性を維持することが可能となる。情報処理端末１０の利用環境を考慮した情報の安全性が提供できる。
【０２２７】
上限値となる閾値として、例えば、計測されたアクセスパフォーマンスのデータ参照回数が１０秒間で３回以上であり、且つ、実行遅延時間が１．０秒を超えるといった条件を例示することができる。また、下限値となる閾値として、例えば、アクセスパフォーマンスの内、データ参照回数が６０秒間で１回以下といった条件を例示することができる。
【０２２８】
図７ＣのテーブルＴｂ２例では、ＩＦプロキシ２０ｉを介して処理要求を行った関数要素を実行する装置が縦方向のカラムに配列され、処理要求に対して結果を応答した関数要素を実行する装置が横方向のカラムに配列される。図７ＣのテーブルＴｂ２の例では、“スマート端末”との記載は情報処理端末１０を表し、“クラウド”との記載はサーバ２０を表す。
【０２２９】
図７Ｃに例示のテーブルＴｂ２では、縦方向のカラムに配列された装置と横方向のカラムに配列された装置とが交差する位置のカラムに、関数要素を移動するための判定条件が格納される。例えば、縦方向の“スマート端末”が格納されたカラムと横方向の“クラウド”が格納されたカラムとの交差位置には、“上限値以上でクラウド側の関数・オブジェクトをスマート端末へ移動”との判定条件が格納されている。
【０２３０】
ＵＩ処理モジュール２０ｂに分類された関数要素のデータ処理モジュール２０ｃに分類された関数要素への、計測されたアクセスパフォーマンスが上限値以上の場合に、データ処理モジュール２０ｃ内の関数要素をＵＩ処理モジュール２０ｂに移動することが判る。
【０２３１】
例えば、図７Ｂに例示のテーブルＴｂ１では、ＵＩ処理モジュール２０ｂの“result”からデータ処理モジュール２０ｃの“analyze”へのデータ参照回数が“２０回”、実行
遅延時間が“２．３秒”である。
【０２３２】
データ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊは、例えば、図７Ｃに例示のテーブルＴｂ２に格納された条件を参照し、上記の計測値が上限値以上の場合には、関数要素“analyze”をＵＩ処理モジュール２０ｂに移動することを決定する
。
【０２３３】
また、図７Ｃに例示のテーブルＴｂ２では、縦方向の“スマート端末”が格納されたカ
ラムと横方向の“スマート端末”が格納されたカラムとの交差位置には、“下限閾値以下でクラウドへ移動”との判定条件が格納されている。
【０２３４】
ＵＩ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊは、例えば、情報処理端末１０に移動後の関数要素“analyze”へのアクセスパフォーマンスを計測する
。そして、図７Ｃに例示のテーブルＴｂ２に格納された条件を参照し、計測されたアクセスパフォーマンスの計測値が下限閾値以下の場合には、関数要素“analyze”をデータ処
理モジュール２０ｃに戻すための移動を決定する。ＵＩ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊにより、情報処理端末１０に移動した関数要素“analyze”をサーバ２０に戻すことが可能となる。
【０２３５】
図７Ａに例示の説明図に戻り、矩形枠で囲まれた“６”には、上述した関数要素の移動処理が示されている。すなわち、矩形枠で囲まれた“４”のデータ処理モジュール２０ｃには、要素ｅ４として関数要素“analyze”が分類されている。図７Ｂ、７Ｃで説明した
ように、計測されたアクセスパフォーマンスが上限値以上の関数要素“analyze”は、情
報処理端末１０に移動する。関数要素“analyze”の移動は、データ処理モジュール２０
ｃに付与されたタスクマネージャ２０ｊにより実行される。
【０２３６】
タスクマネージャ２０ｊは、例えば、データ処理モジュール２０ｃ内から関数要素“analyze”を特定し、取得する。そして、オブジェクトマネージャ２０ｊは取得した関数要
素“analyze”を情報処理端末１０に転送する。関数要素“analyze”の転送は、例えば、通信部２６を介して行われる。
【０２３７】
ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、サーバ２０から転送された関数要素“analyze”を通信部１６を介して受信する。受信された関数要
素“analyze”は、オブジェクトマネージャ２０ｊにより、ＵＩ処理モジュール２０ｂに
結合される。情報処理端末１０では、関数要素“analyze”が結合されたＵＩ処理モジュ
ール２０ｂが実行される。
【０２３８】
なお、ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、関数要素“analyze”にアクセスパフォーマンスを計測するための識別子を付与することがで
きる。オブジェクトマネージャ２０ｊは、関数要素“analyze”に付与された識別子に基
づいて、移動後のアクセスパフォーマンスを継続して計測することができる。
【０２３９】
〔処理ブロック構成〕
図８に、本実施形態の情報処理システム１における、処理ブロックの説明図を例示する。なお、図８に例示の説明図において、図５に例示の実施形態１の処理ブロックの説明図と共通する箇所には同一の番号を付与し、説明を省略する。
【０２４０】
図８に例示のように、本実施形態の情報処理システム１の情報処理端末１０は、実施形態１の処理ブロック構成に、オブジェクトマネージャ実行部１０５の処理手段を備える。また、サーバ２０は、実施形態１の処理ブロック構成に、オブジェクトマネージャ付与部２０９、オブジェクトマネージャ実行部２１０の各処理手段を備える。
【０２４１】
（サーバ）
図８に例示の説明図において、オブジェクトマネージャ付与部２０９は、例えば、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂ及びデータ処理モジュール２０ｃに対しオブジェクトマネージャ２０ｊを付与する。そして、オブジェクトマネージャ付与部２０９は、オブジェクトマネージャ２０ｊ、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂ及びデータ処理モジュール２０ｃをモジュール管理部２０６に引き渡す
。なお、オブジェクトマネージャ２０ｊについては、図７Ａ−７Ｃで説明した。
【０２４２】
オブジェクトマネージャ実行部２１０は、例えば、オブジェクトマネージャ２０ｊ、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂｃを通信部２６を介して情報処理端末１０に転送する。また、オブジェクトマネージャ実行部２１０は、例えば、オブジェクトマネージャ２０ｊ、ＩＦプロキシ２０ｉが付与されたデータ処理モジュール２０ｃをモバイルアプリ実行部２０７に引き渡す。
【０２４３】
オブジェクトマネージャ２０ｊ、ＩＦプロキシ２０ｉが付与されたデータ処理モジュール２０ｃは、モバイルアプリ実行部２０７で実行される。オブジェクトマネージャ２０ｊは、例えば、データ処理モジュール２０ｃに分類された各関数要素のアクセスパフォーマンスを定期的に測定し、測定結果に基づいて、図７Ｂに例示のテーブルＴｂ１を生成する。
【０２４４】
また、オブジェクトマネージャ２０ｊは、例えば、図７Ｃに例示のテーブルＴｂ２を参照し、データ処理モジュール２０ｃに分類された関数要素の情報処理端末１０への移動の判定を行う。関数要素の移動の判定は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値との比較により行われる。
【０２４５】
オブジェクトマネージャ２０ｊは、例えば、移動判定が行われたデータ処理モジュール２０ｃの関数要素を抽出し、抽出した関数要素をオブジェクトマネージャ実行部２１０に引き渡す。オブジェクトマネージャ実行部２１０は、例えば、オブジェクトマネージャ２０ｊから引き渡された関数要素を、通信部２６を介して情報処理端末１０に送信する。
【０２４６】
なお、オブジェクトマネージャ実行部２１０は、例えば、通信部２６を介して情報処理端末１０側で移動判定が行われた関数要素を受信する。オブジェクトマネージャ実行部２１０は、受信した関数要素をモバイルアプリ実行部２０７で実行中のオブジェクトマネージャ２０ｊに引き渡す。オブジェクトマネージャ２０ｊは、例えば、オブジェクトマネージャ実行部２１０から引き渡された関数要素を、データ処理モジュール２０ｃに追加する。データ処理モジュール２０ｃに追加された関数要素は、例えば、サーバ２０ｃのリソースを用いて実行される。
【０２４７】
（情報処理端末）
図８に例示の説明図において、例えば、オブジェクトマネージャ２０ｊ、ＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂは、モバイルアプリ実行部１０３で実行される。
【０２４８】
オブジェクトマネージャ実行部１０５は、例えば、サーバ２０で移動判定されたデータ処理モジュール２０ｃの関数要素を、通信部１６を介して受信する。オブジェクトマネージャ実行部１０５は、受信した関数要素をモバイルアプリ実行部１０３で実行中のオブジェクトマネージャ２０ｊに引き渡す。オブジェクトマネージャ２０ｊは、例えば、オブジェクトマネージャ実行部１０５から引き渡された関数要素を、ＵＩ処理モジュール２０ｂに追加する。ＵＩ処理モジュール２０ｂに追加された関数要素は、例えば、情報処理端末１０のリソースを用いて実行される。ＵＩ処理モジュール２０ｂに追加された関数要素は、例えば、ＵＩ処理モジュール２０ｂ内の処理要求を発生させる関数要素のプロセスに同期して実行される。
【０２４９】
ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、例えば、ＵＩ処理モジュール２０ｂに分類された各関数要素のアクセスパフォーマンスを定期的に測定し、測定結果に基づいて、図７Ｂに例示のテーブルＴｂ１を生成する。なお、ＵＩ処理
モジュール２０ｂに分類された各関数要素には、ＵＩ処理モジュール２０ｂに追加された関数要素が含まれる。
【０２５０】
ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、例えば、図７Ｃに例示のテーブルＴｂ２を参照し、データ処理モジュール２０ｂに分類された関数要素の情報処理端末１０への移動の判定を行う。関数要素の移動の判定は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値、下限閾値との比較により行われる。
【０２５１】
ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、例えば、移動判定が行われたＵＩ処理モジュール２０ｂの関数要素を抽出し、抽出した関数要素をオブジェクトマネージャ実行部１０５に引き渡す。抽出された関数要素は、例えば、ＵＩ処理モジュール２０ｂから削除される。オブジェクトマネージャ実行部１０５は、例えば、オブジェクトマネージャ２０ｊから引き渡された関数要素を、通信部１６を介してサーバ２０に送信する。
【０２５２】
〔処理フロー〕
以下、図９Ａ、９Ｂに例示のフローチャートを参照し、本実施形態の情報処理システム１の分離された処理モジュール間の関数要素の移動処理を説明する。図９Ａは、サーバ２０における関数要素の移動処理を説明するフローチャートの例示である。なお、図９Ａに例示の説明図において、図６Ａに例示の実施形態１のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
【０２５３】
また、図９Ｂは、情報処理端末１０における関数要素の移動処理を説明するフローチャートの例示である。図９Ｂに例示の説明図において、図６Ｂに例示の実施形態１のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
【０２５４】
（サーバ）
図９Ａに例示のフローチャートにおいて、サーバ２０では、図６Ａに例示のＳ１−Ｓ６の処理が実行される。サーバ２０は、例えば、Ｓ６の処理でＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃのそれぞれにオブジェクトマネージャ２０ｊを付与する（Ｓ２１）。サーバ２０は、例えば、オブジェクトマネージャ２０ｊ及びＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃのそれぞれをＳ７の処理に引き渡す。サーバ２０は、図６Ａに例示のＳ７−Ｓ９の処理を継続して実行する。
【０２５５】
サーバ２０では、オブジェクトマネージャ２０ｊ及びＩＦプロキシ２０ｉが付与されたデータ処理モジュール２０ｃが実行される。オブジェクトマネージャ２０ｊは、例えば、データ処理モジュール２０ｃに分類された各関数要素のアクセスパフォーマンスを定期的に測定する（Ｓ２２）。なお、アクセスパフォーマンスの測定については、図７Ａ，７Ｂで説明した。
【０２５６】
オブジェクトマネージャ２０ｊを実行するサーバ２０は、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過しているか否かを判定する（Ｓ２３）。オブジェクトマネージャ２０ｊは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過している場合には（Ｓ２３，Ｙｅｓ）、測定結果に基づいて、図７Ｂに例示のテーブルＴｂ１を生成する。一方、オブジェクトマネージャ２０ｊは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過していない場合には（Ｓ２３，Ｎｏ）、アクセスパフォーマンスの測定を継続する。
【０２５７】
Ｓ２４の処理では、オブジェクトマネージャ２０ｊを実行するサーバ２０は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値との比較を行う。そして、サーバ２０は、例えば、図７Ｃに例示のテーブルＴｂ２に基づいて、アクセスパフォーマンスの測定結果が予め設定された上限閾値以上の関数要素（関数・オブジェクト）を情報処理端末１０に移動させる。なお、オブジェクトマネージャ２０ｊの関数要素の処理モジュール間の移動については、図７Ａ−７Ｃ等で説明した。
【０２５８】
サーバ２０は、例えば、アクセスパフォーマンスの測定結果が上限閾値以上の関数要素をデータ処理モジュール２０ｃから抽出し、抽出した関数要素を通信部２６を介して情報処理端末１０に送信する。
【０２５９】
Ｓ２５の処理では、サーバ２０は、例えば、情報処理端末１０から送信された関数要素を受け付けているかを判定する。サーバ２０は、例えば、情報処理端末１０から送信された関数要素を受け付けている場合には（Ｓ２５，Ｙｅｓ）、Ｓ２６の処理に移行する。一方、サーバ２０は、例えば、情報処理端末１０から送信された関数要素を受け付けていない場合には（Ｓ２５，Ｎｏ）、Ｓ２２の処理に移行する。Ｓ２２の処理では、データ処理モジュール２０ｃから情報処理端末１０側に移動した関数要素を除く、他の関数要素についてのアクセスパフォーマンスが継続して定期的に計測される。
【０２６０】
Ｓ２６の処理では、サーバ２０は、例えば、受け付けた関数要素をデータ処理モジュール２０ｃに挿入し、モジュール結合を行う。Ｓ２６の処理後、サーバ２０は、Ｓ２２の処理に移行する。Ｓ２２の処理では、例えば、Ｓ２６の処理で挿入された関数要素を含むデータ処理モジュール２０ｃについての、アクセスパフォーマンスの定期的な測定が継続して実行される。
【０２６１】
（情報処理端末）
図９Ｂに例示のフローチャートにおいて、情報処理端末１０では、図６Ｂに例示のＳ１１−Ｓ１８の処理が実行される。情報処理端末１０では、オブジェクトマネージャ２０ｊ及びＩＦプロキシ２０ｉが付与されたＵＩ処理モジュール２０ｂが実行される。情報処理端末１０では、ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、例えば、データ処理モジュール２０ｂに分類された各関数要素のアクセスパフォーマンスを定期的に測定する（Ｓ３１）。なお、アクセスパフォーマンスの測定については、図７Ａ，７Ｂで説明した。
【０２６２】
オブジェクトマネージャ２０ｊを実行する情報処理端末１０は、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過しているか否かを判定する（Ｓ３２）。オブジェクトマネージャ２０ｊは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過している場合には（Ｓ３２，Ｙｅｓ）、測定結果に基づいて、図７Ｂに例示のテーブルＴｂ１を生成する。一方、オブジェクトマネージャ２０ｊは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過していない場合には（Ｓ３２，Ｎｏ）、アクセスパフォーマンスの測定を継続する。
【０２６３】
Ｓ３３の処理では、オブジェクトマネージャ２０ｊを実行する情報処理端末１０は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値、下限閾値との比較を行う。そして、情報処理端末１０は、例えば、図７Ｃに例示のテーブルＴｂ２に基づいて、アクセスパフォーマンスの測定結果が予め設定された上限閾値以上、下限閾値以下の関数要素（関数・オブジェクト）をサーバ２０に移動させる。なお、オブジェクトマネージャ２０ｊの関数要素の処理モジュール間の移動については、図７Ａ−７Ｃ等で説明した。
【０２６４】
情報処理端末１０は、例えば、アクセスパフォーマンスの測定結果が上限閾値以上、下限閾値以下の関数要素をＵＩ処理モジュール２０ｂから抽出し、削除する。そして情報処理端末１０は、例えば、抽出した関数要素を通信部１６を介してサーバ２０に送信する。
【０２６５】
Ｓ３４の処理では、情報処理端末１０は、例えば、サーバ２０から送信された関数要素を受け付けているかを判定する。情報処理端末１０は、例えば、サーバ２０から送信された関数要素を受け付けている場合には（Ｓ３４，Ｙｅｓ）、Ｓ３５の処理に移行する。一方、情報処理端末１０は、例えば、サーバ２０から送信された関数要素を受け付けていない場合には（Ｓ３４，Ｎｏ）、Ｓ３１の処理に移行する。Ｓ３１の処理では、ＵＩ処理モジュール２０ｂからサーバ２０側に移動した関数要素を除く、他の関数要素についてのアクセスパフォーマンスが継続して定期的に計測される。
【０２６６】
Ｓ３５の処理では、情報処理端末１０は、例えば、受け付けた関数要素をＵＩ処理モジュール２０ｂに挿入し、モジュール結合を行う。Ｓ３５の処理後、情報処理端末１０は、Ｓ３１の処理に移行する。Ｓ３１の処理では、例えば、Ｓ３５の処理で挿入された関数要素を含むＵＩ処理モジュール２０ｂについての、アクセスパフォーマンスの定期的な測定が継続して実行される。
【０２６７】
ここで、サーバ２０で実行されるＳ２２−Ｓ２４の処理は、画面処理の処理コード群に含まれる１以上の処理コードのそれぞれについて処理要求頻度を計測するステップと、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応するプログラム中の処理コードについての画面処理の処理コード群への移動を決定し、電子機器に送信する制御ステップの一例である。また、サーバ２０のＣＰＵ２１等は、画面処理の処理コード群に含まれる１以上の処理コードのそれぞれについて処理要求頻度を計測すると共に計測された処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応する前記プログラム中の処理コードについての画面処理の処理コード群への移動を決定し、電子機器に送信する制御部の一例として、Ｓ２２−Ｓ２４の処理を実行する。
【０２６８】
また、情報処理端末１０で実行されるＳ３１−３５の処理は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応するプログラム中の処理コードを受信するステップと、画面処理の処理コード群に含まれる１以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理ステップの一例である。また、情報処理端末１０のＣＰＵ１１等は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応するプログラム中の処理コードを受信するステップと、画面処理の処理コード群に含まれる１以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理部の一例としてＳ３１−Ｓ３５の処理を実行する。
【０２６９】
以上説明したように、本実施形態の情報処理システム１では、オブジェクトマネージャ２０ｊにより、サーバ２０は、データ処理モジュール２０ｃとして分類された要素オブジェクトの中の各関数要素に対し、定期的にアクセスパフォーマンスを測定することができる。同様にして、情報処理端末１０は、ＵＩ処理モジュール２０ｂとして分類された要素オブジェクトの中の各関数要素に対し、定期的にアクセスパフォーマンスを測定することができる。
【０２７０】
サーバ２０は、測定された関数要素毎のアクセスパフォーマンスに対して上限閾値判定を行うことで、データ処理モジュール２０ｃとして分類された関数要素を情報処理端末１０側に移動することができる。例えば、処理要求の発生頻度が高い、処理遅延時間が長い
、或いは、これらの組合せを満たすデータ処理モジュール２０ｃ内の関数要素を、処理要求を発生させた関数要素と同じ実行場所に移動することができる。
【０２７１】
情報処理端末１０は、測定された関数要素毎のアクセスパフォーマンスに対して上限閾値判定を行うことで、ＵＩ処理モジュール２０ｂとして分類された関数要素をサーバ２０側に移動することができる。例えば、処理要求の発生頻度が高い、処理遅延時間が長い、或いは、これらの組合せを満たすＵＩ処理モジュール２０ｂ内の関数要素を、処理要求を発生させた関数要素と同じ実行場所に移動することができる。
【０２７２】
処理要求の発生頻度の高い関数要素を、処理要求を発生させた関数要素と同じ実行場所に移動することで、データの授受についての通信負荷を軽減できる。この結果、本実施形態の情報処理システム１は、通信負荷の増加に基づく操作応答性の低下を軽減できる。情報処理端末１０の利用環境に対応した操作応答性が提供できる。
【０２７３】
また、情報処理端末１０は、測定された関数要素毎のアクセスパフォーマンスに対して下限閾値判定を行うことで、ＵＩ処理モジュール２０ｂとして分類された関数要素をサーバ２０側に移動することができる。例えば、データ処理モジュール２０ｃから移動された関数要素を、移動元のデータ処理モジュール２０ｃに移動することができる。秘匿性の高い情報をデータとして扱う傾向にあるデータ処理モジュール２０ｃ関数要素を、移動元のサーバ２０側に戻すことができる。この結果、本実施形態の情報処理システム１は、長期的な情報の安全性を維持できる。情報処理端末１０の利用環境を考慮した情報の安全性が提供できる。
【０２７４】
〔実施形態３〕
実施形態２に例示の情報処理システム１は、アクセスパフォーマンスを測定し、上限閾値との相対関係に基づいて処理要求の発生頻度の高い関数要素のＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃ間の移動を提供する。同様にして、上限閾値との相対関係に基づいて移動後の関数用を移動元の処理モジュールに戻す再移動を提供する。関数要素の移動判定に使用される上限閾値及び下限閾値は、例えば、オブジェクトマネージャ２０ｊに予め保持された固定値が使用される。
【０２７５】
実施形態３（以下、本実施形態と称す）に例示の情報処理システム１は、関数要素の移動判定に使用される上限値及び下限値を、情報処理端末１０を操作するユーザの操作状態に応じて動的に可変する。
【０２７６】
例えば、モバイル環境下においては、情報処理端末１０とサーバ２０との間の通信環境が変化することが想定される。通信環境の変化に伴い、情報処理端末１０とサーバ２０との間の関数要素の移動が頻発する場合では、例えば、データの授受の処理に情報処理端末１０のリソースが割り当てられてしまうため、操作応答性の低下を招く虞がある。
【０２７７】
本実施形態の情報処理システム１では、例えば、操作頻度の高い画面表示部品の処理に関連付けられる関数要素の上限閾値、下限閾値を、情報処理端末１０側に移動し易くするように可変する。例えば、ＵＩ処理モジュール２０ｂに付与されるオブジェクトマネージャ２０ｊに、画面表示部品についての操作履歴を取得する履歴取得機能を含める。
【０２７８】
オブジェクトマネージャ２０ｊは、例えば、取得した操作履歴をサーバ２０に送信する。サーバ２０側では、例えば、送信された操作履歴に基づいて操作頻度の高い画面表示部品の処理に関連付けられる関数要素の上限閾値、下限閾値を、情報処理端末１０側に移動し易くするように可変する。また、オブジェクトマネージャ２０ｊは、例えば、取得した操作履歴に基づいて操作頻度の高い画面表示部品の処理に関連付けられる関数要素の上限
閾値、下限閾値を、サーバ側２０に移動し難くするように可変する。
【０２７９】
この結果、通信環境の変化に伴う、情報処理端末１０とサーバ２０との間の関数要素の移動を抑制することができる。情報処理端末１０の操作応答性の低下を抑制することができる。なお、本実施形態の情報処理端末１０及びサーバ２０のハードウェア構成は、実施形態１と同様である。
【０２８０】
〔処理ブロック構成〕
図１０に、本実施形態の情報処理システム１における、処理ブロックの説明図を例示する。なお、図１０に例示の説明図において、図８に例示の実施形態２の処理ブロックの説明図と共通する箇所には同一の番号を付与し、説明を省略する。
【０２８１】
図１０に例示のように、本実施形態の情報処理システム１の情報処理端末１０は、実施形態２の処理ブロック構成のオブジェクトマネージャ実行部１０５に、履歴取得部１０６、閾値変更部１０７の各処理手段を含む。また、サーバ２０は、実施形態２の処理ブロック構成のオブジェクトマネージャ実行部２１０に、履歴管理部２１１、閾値変更部２１２の各処理手段を備える。
【０２８２】
（情報処理端末）
図１０に例示の説明図において、履歴取得部１０７は、例えば、情報処理端末１０の表示画面に対する“ボタンＡ押下”、“ボタンＢ押下”、“テキストフィールド入力”、“スクロール”といった操作情報を取得する。操作情報は、例えば、入力部１４である操作情報取得部を介して取得する。
【０２８３】
また、履歴取得部１０７は、上述の操作情報によって処理要求が発生したＵＩ処理モジュール２０ｂの関数要素、及び、発生した処理要求に対して処理結果を応答したデータ処理モジュール２０ｃの関数要素を取得する。処理要求が発生した関数要素、及び、処理結果を応答した関数要素は、例えば、モバイルアプリ実行部１０３を介して取得する。
【０２８４】
履歴取得部１０７は、取得した処理要求が発生した関数要素、及び、処理結果を応答した関数要素を、操作情報に対応付けて主記憶部１３の所定の領域に一時的に記憶する。上述の情報の記憶を、例えば、表示画面に対する操作情報が発生する度に繰り返すことで、主記憶部１３には操作情報が履歴（操作履歴情報）として蓄積される。
【０２８５】
履歴取得部１０７は、例えば、定期的に実行されるオブジェクトマネージャ２０ｊのアクセスパフォーマンスの計測のタイミングで、主記憶部１３に蓄積された操作履歴情報を取得する。取得する操作履歴情報は、例えば、直近の６０回分の表示画面に対する操作情報とすることができる。なお、取得する操作履歴情報は、例えば、分単位等の単位期間で取得するとしてもよい。また、前回に実行されたアクセスパフォーマンスの計測から蓄積された操作履歴情報を取得するとしてもよい。
【０２８６】
履歴取得部１０７は、例えば、取得した操作履歴情報をサーバ２０に送信する。操作履歴情報の送信は通信部１６を介して行われる。また、履歴取得部１０７は、取得した操作履歴情報を閾値変更部１０７に引き渡す。
【０２８７】
閾値変更部１０７は、例えば、履歴取得部１０７から引き渡された操作履歴情報に基づいて、関数要素の移動を判定するための上限閾値、下限閾値を変更する。閾値変更部１０７は、例えば、情報処理端末１０で実行される関数要素がサーバ２０側に移動し難くなるよう、上限閾値、下限閾値を変更する。
【０２８８】
閾値変更部１０７は、例えば、取得した操作履歴情報から、表示画面に表示される操作部品“ボタンＡ押下”、“ボタンＢ押下”といった操作情報を特定する。そして、閾値変更部１０７は、例えば、取得した操作履歴情報の中で、特定した操作情報の占める割合を表示画面に表示される操作部品毎に算出する。
【０２８９】
例えば、取得した操作履歴情報の数量を“１００”とする。操作履歴情報に含まれる、操作部品“ボタンＡ押下”に対する操作情報の数量が“２０”の場合には、操作部品“ボタンＡ押下”に対する操作情報の割合は“２０％”となる。同様にして、操作部品“ボタンＢ押下”に対する操作情報の数量が“４０”の場合には、操作部品“ボタンＢ押下”に対する操作情報それぞれの割合は“４０％”となる。
【０２９０】
閾値変更部１０７は、例えば、操作履歴情報の全体数に対する割合が“３０％”以上であれば、該当する操作部品への操作頻度は高いと判定する。上述の例では、例えば、操作部品“ボタンＢ押下”について操作頻度が高いと判定される。
【０２９１】
閾値変更部１０７は、例えば、操作頻度が高いと判定された操作部品の操作履歴情報から、操作情報に対応付けられた関数要素を特定する。そして、閾値変更部１０７は、特定した関数要素についての移動を判定するための上限閾値、下限閾値の値をそれぞれ高く設定する。上限閾値、下限閾値を高く設定することで、例えば、移動後の関数要素を移動元に戻すための移動を抑制することができる。
【０２９２】
図１１Ａに、移動を判定するための上限閾値、下限閾値を高く設定した変更例を例示する。図１１Ａにおいて、操作履歴情報Ｄ１は、閾値変更部１０７で取得された操作履歴情報を表す。また、Ｔｂ３は、変更後の上限閾値、下限閾値の設定状態を表すテーブル例である。
【０２９３】
図１１Ａでは、操作履歴情報Ｄ１における操作部品“ボタンＢ押下”の占める割合が、操作頻度が高いと判定される３０％以上の状態である。変更前の上限閾値は、データ参照回数が“１０秒間で３回以上”であり、実行遅延時間は、“平均１秒以上経過”である。また、変更前の下限閾値は、データ参照回数が“６０秒間で１回以上”であり、実行遅延時間は、“条件なし”である。
【０２９４】
図１１Ａの操作履歴情報Ｄ１の、“ボタンＢ押下（result，analyze）、ボタンＢ押下
（result，analyze）、テキストフィールド入力（input）、スクロール（…）、ボタンＢ押下（result，analyze）、…”には、操作部品“ボタンＢ押下”が含まれる。操作部品
“ボタンＢ押下”の後段の“（result，analyze）”は、処理要求を発生させた関数要素
“result”、処理要求に対して結果を応答した関数要素“analyze”を表す。
【０２９５】
図１１Ａの例では、Ｔｂ３の縦方向の“ボタンＢ（result，analyze）”のカラムと、
横方向の“上限閾値”のカラムの交差位置に示すように、データ参照回数は“１０秒で３回以上”から“５秒間で３回以上”に変更されている。また、実行遅延時間に対する“平均１秒以上経過”といった上限閾値には変更がない。
【０２９６】
同様にして、Ｔｂ３の縦方向の“ボタンＢ（result，analyze）”のカラムと、横方向
の“下限閾値”のカラムの交差位置に示すように、データ参照回数は“６０秒間で１回以上”から“３０秒間で１回以上”に変更されている。
【０２９７】
なお、上限閾値、下限閾値の変更は、実行遅延時間の変更を含むとしてもよい。また、実行遅延時間を変更するとしてもよい。表示画面に表示される表示部品、発生した処理要求に対して結果を応答する関数等に応じて設定することができる。
【０２９８】
（サーバ）
図１０に例示の説明図において、履歴管理部２１１は、例えば、情報処理端末１０から送信された操作情報履歴を通信部２６を介して受信する。受信した操作履歴情報は、例えば、主記憶部２２の所定の領域に一時的に記憶される。履歴管理部２１１は、受信した操作履歴情報を閾値変更部２１２に引き渡す。
【０２９９】
閾値変更部２１２は、例えば、閾値変更部１０７と同様に、履歴管理部２１１から引き渡された操作履歴情報に基づいて、関数要素の移動を判定するための上限閾値、下限閾値を変更する。但し、閾値変更部２１２は、例えば、サーバ２０で実行される関数要素が情報処理端末１０側に移動し易くなるよう、上限閾値、下限閾値を変更する。
【０３００】
図１１Ｂに、移動を判定するための上限閾値、下限閾値を低く設定した変更例を例示する。図１１Ｂにおいて、操作履歴情報Ｄ２は、閾値変更部２１２で取得された操作履歴情報を表す。また、Ｔｂ４は、変更後の上限閾値、下限閾値の設定状態を表すテーブル例である。変更前の上限閾値は、データ参照回数が“１０秒間で３回以上”であり、実行遅延時間は、“平均１秒以上経過”である。また、変更前の下限閾値は、データ参照回数が“６０秒間で１回以上”であり、実行遅延時間は、“条件なし”である。
【０３０１】
図１１Ｂの操作履歴情報Ｄ２の、“ボタンＡ押下（items，save）、ボタンＡ押下（items，save）、テキストフィールド入力（input）、スクロール（…）、ボタンＡ押下（items，save）、…”には、操作部品“ボタンA押下”が含まれている。操作部品“ボタンＢ
押下”の後段の“（items，save）”は、処理要求を発生させた関数要素“items”、処理要求に対して結果を応答した関数要素“save”であることを表す。
【０３０２】
閾値変更部２１２は、例えば、操作履歴情報Ｄ２に基づいて操作部品“ボタンＡ押下”
の占める割合を算出する。図１１Ｂでは、操作部品“ボタンＡ押下”に対する操作情報
の全体数に対する割合が“３０％”以上と判断される。このため、閾値変更部２１２は、操作部品“ボタンＡ押下”への操作頻度は高いと判定する。
【０３０３】
閾値変更部２１２は、例えば、操作頻度が高いと判定された操作部品の操作履歴情報から、操作情報に対応付けられた関数要素を特定する。図１１Ｂでは、操作部品“ボタンＡ押下”対応付けられた関数要素“items”、“save”が特定される。
【０３０４】
閾値変更部２１２は、特定した関数要素についての移動を判定するための上限閾値、下限閾値の値をそれぞれ低く設定する。上限閾値、下限閾値を低く設定することで、例えば、処理要求に応答する関数要素の移動を促進することができる。
【０３０５】
図１１Ａの例では、Ｔｂ４の縦方向の“ボタンＡ（items，save）”のカラムと、横方
向の“上限閾値”のカラムの交差位置に示すように、データ参照回数は“１０秒で３回以上”から“２０秒間で３回以上”に変更されている。また、実行遅延時間に対する“平均１秒以上経過”といった上限閾値には変更がない。
【０３０６】
同様にして、Ｔｂ４の縦方向の“ボタンＡ（items，save）”のカラムと、横方向の“
下限閾値”のカラムの交差位置に示すように、データ参照回数は“６０秒間で１回以上”から“９０秒間で１回以上”に変更されている。
【０３０７】
閾値変更部２１２は、例えば、上限閾値、下限閾値のデータ参照回数を変更することができる。また、実行遅延時間を変更するとしてもよい。或いは、データ参照回数、実行遅延時間を組合せて上限閾値、下限閾値を変更することができる。限閾値、下限閾値の変更
は、例えば、表示画面に表示される表示部品、発生した処理要求に対して結果を応答する関数等に応じて設定することができる。
【０３０８】
〔処理フロー〕
以下、図１２Ａ、１２Ｂに例示のフローチャートを参照し、本実施形態の情報処理システム１の移動を判定するための上限閾値、下限閾値の変更処理を説明する。図１２Ａは、サーバ２０における移動を判定するための上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。なお、図１２Ａに例示の説明図において、図９Ａに例示の実施形態２のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
【０３０９】
また、図１２Ｂは、情報処理端末１０における移動を判定するための上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。図１２Ｂに例示の説明図において、図９Ｂに例示の実施形態２のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
【０３１０】
（サーバ）
図１２Ａに例示のフローチャートにおいて、サーバ２０では、図９Ａに例示のＳ１−Ｓ９、Ｓ２１−Ｓ２３の処理が実行される。サーバ２０は、例えば、情報処理端末１０から送信された操作履歴情報を受信しているかを判定する（Ｓ４１）。サーバ２０は、例えば、情報処理端末１０から送信された操作履歴情報を受信している場合には（Ｓ４１，Ｙｅｓ）、Ｓ４２の処理に移行する。一方、サーバ２０は、例えば、情報処理端末１０から送信された操作履歴情報を受信していない場合には（Ｓ４１，Ｎｏ）、Ｓ４２の処理をスキップし、Ｓ２４の処理に移行する。
【０３１１】
Ｓ４２の処理では、サーバ２０は、例えば、受信した操作履歴情報に基づいてデータ処理モジュール２０ｃに分類された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。操作履歴情報に基づく、上限閾値、下限閾値の変更については、図１０、１１Ａ，１１Ｂで説明した。
【０３１２】
サーバ２０は、例えば、受信した操作履歴情報から操作頻度の高い操作部品（例えば、“ボタンＢ”）に関連付けられた関数要素（例えば、“items”、“save”）を特定する
。サーバ２０は、例えば、処理要求を発生させる関数要素（例えば、“items”）に対し
て結果を応答するデータ処理モジュール２０ｃ内の関数要素（例えば、“save”）を特定する。
【０３１３】
サーバ２０は、例えば、特定した関数要素（例えば、“save”）に対する、移動を判定するための上限閾値、下限閾値の値を、情報処理端末１０側に移動し易くするように変更する。上限閾値、下限閾値の変更は、関数要素毎に変更される。サーバ２０は、例えば、予め設定された移動を判定するための上限閾値、下限閾値の値を低くするよう設定する。
【０３１４】
サーバ２０は、Ｓ４１−Ｓ４２の処理の実行後、Ｓ２４−Ｓ２６の処理を継続して実行する。例えば、Ｓ２４の処理では、操作頻度の高い操作部品の履歴情報が存在する場合には、変更設定が行われた上限閾値、下限閾値に基づいて関数要素の処理モジュール間の移動が行われる。また、Ｓ２４の処理では、操作頻度の高い操作部品の履歴情報が存在しない場合には、予め設定された上限閾値、下限閾値に基づいて関数要素の処理モジュール間の移動が行われる。
【０３１５】
（情報処理端末）
図１２Ｂに例示のフローチャートにおいて、情報処理端末１０では、図９Ｂに例示のＳ１１−Ｓ１８、Ｓ３１−Ｓ３２の処理が実行される。Ｓ５１の処理では、情報処理端末１
０は、例えば、操作履歴情報に基づいてＵＩ処理モジュール２０ｂに分類された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。なお、操作履歴情報に基づく、上限閾値、下限閾値の変更については、図１０、１１Ａ，１１Ｂで説明した。
【０３１６】
情報処理端末１０は、例えば、操作頻度の高い操作部品（例えば、“ボタンＡ”）に関連付けられた関数要素（例えば、“analyze”）に対する、移動を判定するための上限閾
値、下限閾値の値を、サーバ２０側に移動し難くするように変更する。例えば、情報処理端末１０は、予め設定された移動を判定するための上限閾値、下限閾値の値を高くするよう設定する。なお、上限閾値、下限閾値の変更は、関数要素毎に変更される。
【０３１７】
情報処理端末１０は、Ｓ５１の処理の実行後、Ｓ３３−Ｓ３５の処理を継続して実行する。例えば、操作部品（例えば、“ボタンＡ”）に関連付けられた関数要素“analyze”
がサーバ２０から移動している場合には、該操作部品の操作頻度の高い状態が継続する間は、関数要素“analyze”のサーバ２０側へ戻るための移動が抑制される。
【０３１８】
ここで、サーバ２０で実行されるＳ４１−Ｓ４２の処理は、所定の条件を処理要求頻度と所定閾値との関係で判定するステップと、画面処理の処理コード群に関連する画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、所定閾値の値を相対的に高い設定値に変更する制御ステップの一例である。また、サーバ２０のＣＰＵ２１等は、所定の条件を処理要求頻度と所定閾値との関係で判定すると共に、画面処理の処理コード群に関連する画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、所定閾値の値を相対的に高い設定値に変更する制御ステップの一例としてＳ４１−Ｓ４２の処理を実行する。
【０３１９】
また、情報処理端末１０で実行されるＳ３１−Ｓ３５の処理は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応するプログラム中の処理コードを受信するステップと、画面処理の処理コード群に含まれる１以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理ステップの一例である。また、情報処理端末１０のＣＰＵ１１等は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コードを受信すると共に、画面処理の処理コード群に含まれる１以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理部の一例としてＳ３１−Ｓ３５の処理を実行する。
【０３２０】
〔実施形態４〕
情報処理端末１０に搭載されるモバイルアプリ２０ａでは、例えば、業務の利用に係る個人情報等の秘匿性の高い情報を各種データ処理に用いることは既に説明した通りである。実施形態４（以下、本実施形態と称す）の情報処理システム１は、例えば、モバイルアプリ２０ａのソースコード２０ｇに記述された各関数要素について、移動の可否を制限するためのセキュリティレベル定義を設ける。
【０３２１】
本実施形態の情報処理システム１は、セキュリティレベル定義を設けることで、例えば、各処理モジュールに分類される関数要素毎に、情報漏えい等の危険性からの保護を行うことができる。本実施形態の情報処理システム１は、業務の利用に係る秘匿性の高い情報をソースコード２０ｇに記述された関数要素単位で保護することができる。本実施形態の情報処理システム１では、モバイルアプリ２０ａのソースコード２０ｇに定義される関数要素単位で安全性及び操作応答性の両立が可能となる。
【０３２２】
図１３Ａに、セキュリティレベル定義例を例示する。図１３ａに例示のセキュリティレベル定義２０ｋは、関数要素に対するセキュリティレベルを３段階に設定した一例である。但し、セキュリティレベルの設定段階が３段階に限定されるわけではない。モバイルアプリ２０ａが利用される業務内容、業務形態、利用環境等を考慮してセキュリティレベルの段階数を設定できる。なお、セキュリティレベルは、例えば、モバイルアプリ２０ａを用いたサービス業務を提供する提供者により設定される。
【０３２３】
図１３Ａに例示のセキュリティレベル定義２０ｋは、例えば、関数要素（オブジェクト・関数名）毎のレコードを有する。各レコードには、セキュリティレベルが設定される。図例のセキュリティレベル定義２０ｋは、“移動不可”、“可能な限り移動しない”、“移動可能”といった３段階のセキュリティレベルが設定される。例えば、関数要素“items”、“result”、“itemdb”、“render”には、“移動可能”が設定されている。また
、関数要素“analyze”には、“可能な限り移動しない”が設定されている。関数要素“save”には、“移動不可”が設定されている。
【０３２４】
“移動可能”は、例えば、実施形態２等で説明したＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃ間での関数要素の移動を可能とするセキュリティレベルである。
【０３２５】
なお、“移動可能”に設定された関数要素について、移動元では移動を判定するための上限閾値、下限閾値を移動し易くするよう変更するとしてもよい。また、“移動可能”に設定された関数要素について、移動先では移動後の関数要素が移動元に移動し難くするように、移動を判定するための上限閾値、下限閾値を変更するとしてもよい。移動先が情報処理端末１０の場合では、例えば、操作応答性の向上が期待できる。
【０３２６】
“移動不可”は、例えば、例えば、実施形態２等で説明したＵＩ処理モジュール２０ｂ、データ処理モジュール２０ｃ間での関数要素の移動を行わないとするセキュリティレベルである。
【０３２７】
なお、“移動不可”に設定された関数要素は、例えば、モバイルアプリ２０ａの分離処理の際にＵＩ処理モジュール２０ｂに分類された場合であっても、分類後にＵＩ処理モジュール２０ｂから抽出され、データ処理モジュール２０ｃに統合される。ＵＩ処理モジュール２０ｂに分類された“移動不可”の関数要素は削除され、データ処理モジュール２０ｃに結合される。
【０３２８】
“可能な限り移動しない”は、“移動可能”と“移動不可”との間のセキュリティレベルである。但し、“可能な限り移動しない”に設定された関数要素に対する移動を判定するための上限閾値、下限閾値は変更される。
【０３２９】
例えば、“可能な限り移動しない”に設定された関数要素がデータ処理モジュール２０ｃに含まれるとする。データ処理モジュール２０ｃを実行するサーバ２０では、例えば、該関数要素に対する移動を判定するための上限閾値、下限閾値の設定値を高くするよう変更する。移動を判定するための上限閾値、下限閾値が高く設定された関数要素は移動し難くなる。
【０３３０】
また、“可能な限り移動しない”に設定された関数要素の移動先（例えば、情報処理端末１０）は、移動元への戻り移動をし易くするため、移動を判定するための上限閾値、下限閾値を低くするよう設定する。“可能な限り移動しない”に設定された関数要素は、例えば、情報処理端末１０側に移動しても、短期間で移動元のサーバ２０側に戻ることができる。
【０３３１】
図１３Ｂに、セキュリティレベル定義２０ｋに基づく上限閾値、下限閾値の設定例をテーブルＴｂ５に例示する。テーブルＴｂ５の関数要素は、“可能な限り移動しない”をセキュリティレベルとして設定された“analyze”、“移動可能”をセキュリティレベルと
して設定された“itemdb”である。なお、図１３Ｂに例示のテーブルＴｂ５は、例えば、各関数要素を移動元としてデータ処理モジュール２０ｃに保持する、サーバ２０での変更例である。
【０３３２】
ここで、各関数要素の変更前の上限閾値は、データ参照回数が“１０秒間で３回以上”であり、実行遅延時間は、“平均１秒以上経過”である。同様に、各関数要素の変更前の下限閾値は、データ参照回数が“６０秒間で１回以上”であり、実行遅延時間は、“条件なし”である。
【０３３３】
図１３Ｂに例示のように、“可能な限り移動しない”が設定された関数要素“analyze
”では、上限閾値は、データ参照回数は“１０秒で３回以上”から“５秒間で３回以上”に変更されている。実行遅延時間に対する“平均１秒以上経過”の上限閾値には変更はない。同様にして、下限閾値は、データ参照回数は“６０秒間で１回以上”から“３０秒間で１回以上”に変更されている。変更前の設定値に比べ、相対的に高い上限閾値、下限閾値が設定されていることが判る。
【０３３４】
また、“移動可能”が設定された関数要素“itemdb”では、上限閾値は、データ参照回数は“１０秒で３回以上”から“２０秒間で３回以上”に変更されている。実行遅延時間に対する“平均１秒以上経過”の上限閾値には変更はない。同様にして、下限閾値は、データ参照回数は“６０秒間で１回以上”から“１２０秒間で１回以上”に変更されている。変更前の設定値に比べ、相対的に低い上限閾値、下限閾値が設定されていることが判る。
【０３３５】
“可能な限り移動しない”が設定された関数要素“analyze”では、移動し難くなるよ
う上限閾値、下限閾値が変更されていることが判る。また、“移動可能”が設定された関数要素“itemdb”では、移動し易くなるよう上限閾値、下限閾値が変更されていることが判る。
【０３３６】
〔処理ブロック構成〕
図１４に、本実施形態の情報処理システム１における、処理ブロックの説明図を例示する。なお、図１４に例示の説明図において、図８に例示の実施形態２の処理ブロックの説明図と共通する箇所には同一の番号を付与し、説明を省略する。
【０３３７】
図１４に例示のように、本実施形態の情報処理システム１の情報処理端末１０は、実施形態２の処理ブロック構成のオブジェクトマネージャ実行部１０５に、セキュリティレベルチェック部１０８の処理手段を含む。また、サーバ２０は、実施形態２の処理ブロック構成のＵＩデータ処理抽出部２０４に、セキュリティレベルチェック部２１３の処理手段を備える。
【０３３８】
（サーバ）
ＵＩデータ処理抽出部２０４は、例えば、オブジェクト検出部２０３から引き渡されたテーブルｍ３、ｍ４内に分類された関数、変数等の下位の処理オブジェクト（要素）とＨＴＭＬファイル２０ｈとの照合を行う。照合の結果、ＨＴＭＬファイル２０ｈに記述された、テーブルｍ３、ｍ４内の関数、変数等の要素が抽出される。
【０３３９】
セキュリティレベルチェック部２１３は、例えば、ＨＴＭＬファイル２０ｈに記述された要素として抽出された関数要素について、セキュリティレベル定義２０ｋを参照し、“
移動不可”が設定された関数要素を抽出する。セキュリティレベルチェック部２１３は、例えば、抽出された関数要素をＵＩ処理モジュール２０ｂを生成する要素群から削除し、データ処理モジュール２０ｃを生成する要素群に追加する。セキュリティレベルチェック部２１３によって抽出された関数要素は、データ処理モジュール２０ｃとして統合される。
【０３４０】
また、セキュリティレベルチェック部２１３は、例えば、セキュリティレベル定義２０ｋに基づいて、“可能な限り移動しない”、“移動可能”が設定された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。セキュリティレベル定義２０ｋに基づく、上限閾値、下限閾値の変更は、図１３Ａ，１３Ｂで説明した。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部２３の所定の領域に一時的に記憶される。
【０３４１】
なお、データ処理モジュール２０ｃに付与されたオブジェクトマネージャ２０ｊは、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と、変更後の上限閾値、下限閾値との比較を行い、関数要素の移動を判定する。
【０３４２】
（情報処理端末）
図１４に例示の説明図において、セキュリティレベルチェック部１０８は、例えば、セキュリティレベル定義２０ｋに基づいて、“可能な限り移動しない”、“移動可能”が設定された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。セキュリティレベル定義２０ｋに基づく、上限閾値、下限閾値の変更は、図１３Ａ，１３Ｂで説明した。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部１３の所定の領域に一時的に記憶される。
【０３４３】
なお、ＵＩ処理モジュール２０ｂに付与されたオブジェクトマネージャ２０ｊは、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と、変更後の上限閾値、下限閾値との比較を行い、関数要素の移動を判定する。
【０３４４】
〔処理フロー〕
以下、図１５Ａ、１５Ｂに例示のフローチャートを参照し、本実施形態の情報処理システム１のセキュリティレベルに基づく上限閾値、下限閾値の変更処理を説明する。図１５Ａは、サーバ２０におけるセキュリティレベルに基づく上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。なお、図１５Ａに例示の説明図において、図９Ａに例示の実施形態２のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
【０３４５】
また、図１５Ｂは、情報処理端末１０におけるセキュリティレベルに基づく上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。図１５Ｂに例示の説明図において、図９Ｂに例示の実施形態２のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
【０３４６】
（サーバ）
図１５Ａに例示のフローチャートにおいて、サーバ２０では、図９Ａに例示のＳ１−Ｓ３の処理が実行される。Ｓ６１の処理では、図サーバ２０は、例えば、View情報とテーブルｍ３、ｍ４内に分類された関数、変数等の要素オブジェクトとの照合を行い、View情報として利用されるＵＩ処理の要素オブジェクトを抽出する。ここで、“View情報”とは、情報処理端末１０のＬＣＤ１５ａ等に表示される画面を記述するプログラムであり、ＨＴＭＬ、ＸＭＬ、ＸＡＭＬ等のマークアップ言語で記述される。
【０３４７】
サーバ２０は、例えば、モバイルアプリ２０ａのＨＴＭＬファイル２０ｈに記述された
文字列と、テーブルｍ３、ｍ４内に分類された要素オブジェクトの名称との照合を行う。サーバ２０は、例えば、ＨＴＭＬファイル２０ｈに記述がある要素オブジェクトをＵＩ処理に利用される要素オブジェクトとして抽出する。同様にして、サーバ２０は、例えば、ＨＴＭＬファイル２０ｈに記述がない要素オブジェクトをデータ処理に利用される要素オブジェクトとして抽出する。なお、サーバ２０は、ＵＩ処理に利用される要素オブジェクトを除く他の要素オブジェクトを、データ処理に利用される要素オブジェクトとして抽出するとしてもよい。
【０３４８】
サーバ２０は、例えば、ＵＩ処理に利用される要素オブジェクトとして抽出された関数、変数の中から、セキュリティレベル定義２０ｋを参照し、“移動不可”が設定された関数要素を抽出する。サーバ２０は、例えば、抽出された関数要素をＵＩ処理に利用される要素オブジェクト群から削除し、データ処理に利用される要素オブジェクト要素群に追加する。
【０３４９】
また、サーバ２０は、例えば、セキュリティレベル定義２０ｋに基づいて、“可能な限り移動しない”、“移動可能”が設定された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部２３の所定の領域に一時的に記憶される。
【０３５０】
サーバ２０は、Ｓ６１の処理の実行後、Ｓ５−Ｓ９，Ｓ２１−Ｓ２６の処理を継続して実行する。例えば、Ｓ５の処理では、サーバ２０は、ＵＩ処理に利用される要素オブジェクト群からセキュリティレベル定義２０ｋで“移動不可”が設定された関数要素を削除した要素オブジェクト群を統合して、ＵＩ処理モジュール２０ｂを生成する。同様にして、サーバ２０は、例えば、セキュリティレベル定義２０ｋで“移動不可”が設定された関数要素を追加したデータ処理に利用される要素オブジェクト要素群を統合して、ＵＩ処理モジュール２０ｃを生成する。また、Ｓ２４の処理では、セキュリティレベル定義２０ｋに沿って変更された関数要素毎の上限閾値、下限閾値の基づいて、関数要素の処理モジュール間の移動が行われる。
【０３５１】
（情報処理端末）
図１２Ｂに例示のフローチャートにおいて、情報処理端末１０では、図９Ｂに例示のＳ１１−Ｓ１８、Ｓ３１−Ｓ３２の処理が実行される。Ｓ７１の処理では、情報処理端末１０は、例えば、セキュリティレベル定義２０ｋに基づいてＵＩ処理モジュール２０ｂに分類された関数要素毎の移動を判定するための上限閾値、下限閾値の変更を行う。なお、セキュリティレベル定義２０ｋに基づく、上限閾値、下限閾値の変更については、図１３Ａ，１３Ｂで説明した。
【０３５２】
セキュリティレベルチェック部１０８は、例えば、セキュリティレベル定義２０ｋを参照し、“可能な限り移動しない”、“移動可能”が設定された関数要素毎の、移動を判定するための上限閾値、下限閾値の変更を行う。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部１３の所定の領域に一時的に記憶される。
【０３５３】
情報処理端末１０は、Ｓ７１の処理の実行後、Ｓ３３−Ｓ３５の処理を継続して実行する。例えば、情報処理端末１０に移動した、“移動可能”に設定された関数要素については、移動元のサーバ２０へ戻るための移動が抑制される。また、情報処理端末１０に移動した、“可能な限り移動しない”に設定された関数要素については、短期間で移動元のサーバ２０に戻るように移動が促進される。
【０３５４】
ここで、サーバ２０で実行されるＳ６１の処理は、所定の条件を処理要求頻度と所定閾値との関係で判定するステップと、画面処理の処理コード群の処理要求に対応するプログ
ラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する制御ステップの一例である。また、サーバ２０のＣＰＵ２１等は、所定の条件を処理要求頻度と所定閾値との関係で判定すると共に、画面処理の処理コード群の処理要求に対応するプログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する制御部の一例としてＳ６１の処理を実行する。
【０３５５】
また、情報処理端末１０で実行されるＳ７１の処理は、所定の条件を処理要求頻度と所定閾値との関係で判定するステップと、画面処理の処理コード群の処理要求に対応するプログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する処理ステップの一例である。また、所定の条件を処理要求頻度と所定閾値との関係で判定すると共に、画面処理の処理コード群の処理要求に対応するプログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する制御部の一例としてＳ７１の処理を実行する。
【０３５６】
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０３５７】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ等がある。
【０３５８】
《その他》
以上の実施形態は、さらに以下の付記と呼ぶ態様を含む。以下の各付記に含まれる構成要素は、他の付記に含まれる構成と組み合わせることができる。
（付記１）
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出し、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、
生成された前記画面処理の処理コード群を前記電子機器に送信すると共に前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行し、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、
を備える情報処理装置。
（付記２）
前記生成部は、前記画面処理の処理コード群に、前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与し、
前記制御部は、前記中継プログラムに付与された前記画面処理の処理コード群を電子機器に送信すると共に、前記中継プログラムを通じて前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードからの処理要求を受け付け、前記中継プログラムを通じて該処理要求に対応する、前記プログラムの中の処理コードの実行の結果を電子機
器に送信する、付記１に記載の情報処理装置。
（付記３）
前記制御部は、前記画面処理の処理コード群に含まれる前記１以上の処理コードのそれぞれについて処理要求頻度を計測すると共に計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応する前記プログラム中の処理コードについての前記画面処理の処理コード群への移動を決定し、前記電子機器に送信する、付記１または２に記載の情報処理装置。
（付記４）
前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に高い設定値に変更する、付記３に記載の情報処理装置。
（付記５）
前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、付記３に記載の情報処理装置。
（付記６）
前記生成部は、プログラムの処理コードを解析し、前記処理コードの実行により保存するよう記述された１以上のデータを抽出し、抽出された前記１以上のデータ以外の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する、付記１から付記５の何れか一の付記に記載の情報処理装置。
【０３５９】
（付記７）
プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部と、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得して前記プログラムの画面を生成する処理部と、
を備える電子機器。
（付記８）
前記受信部は、前記画面処理の処理コード群に付与された前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信し、
前記処理部は、前記中継プログラムを通じて、前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得する、付記７に記載の電子機器。
（付記９）
前記処理部は、情報処理装置から送信された前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コードを受信すると共に、前記画面処理の処理コード群に含まれる前記１以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、受信した前記プログラム中の処理コードを前記情報処理装置に送信する、付記７または８に記載の電子機器。
（付記１０）
前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に低い設定値に変更する、付記９に記載の電子機器。
（付記１１）
前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎
に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、付記９に記載の電子機器。
【０３６０】
（付記１２）
電子機器と接続するコンピュータに、
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出するステップと、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
を実行させるための情報処理プログラム。
【０３６１】
（付記１３）
情報処理装置と接続するコンピュータに、
プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップと、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、前記それぞれの処理要求に対応する処理の結果を取得するステップと、取得した処理の結果に基づいて前記プログラムの画面を生成する処理ステップと、
を実行させるための処理プログラム。
【０３６２】
（付記１４）
電子機器と接続するコンピュータが、
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出するステップと、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
を実行する情報処理方法。
【０３６３】
（付記１５）
情報処理装置と接続するコンピュータが、
プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップと、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、前記それぞれの処理要求に対応する処理の結果を取得するステップと、取得した処理の結果に基づいて前記プログラムの画面を生成する処理ステップと、
を実行する処理方法。
【０３６４】
（付記１６）
情報処理装置と、前記情報処理装置に接続する電子機器と、を備え、
前記情報処理装置は、
プログラムの処理コードを解析し、前記プログラムの画面を記述する１以上の処理コードを抽出し、抽出された前記１以上の処理コードを電子機器で実行可能に結合して画面
処理の処理コード群を生成する生成部と、
生成された前記画面処理の処理コード群を前記電子機器に送信すると共に前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行し、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、を備え、
前記電子機器は、
プログラムの画面を記述する１以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部と、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得して前記プログラムの画面を生成する処理部と、を備える、
情報処理システム。
【符号の説明】
【０３６５】
１  情報処理システム
１０、４０  情報処理端末（電子機器）
１０ａ  ブラウザエンジン
１１  ＣＰＵ
１２  ＧＰＵ
１３  主記憶部
１４  入力部
１４ａ  タッチセンサ
１５  出力部
１５ａ  ＬＣＤ
１６  通信部
２０、４１  サーバ
２０ａ  モバイルアプリ、２０ｂ  ＵＩ処理モジュール（ＵＩ処理）、
２０ｃ  データ処理モジュール（データ処理）、２０ｄ  仮想ブラウザエンジン、
２０ｅ  フレームワーク、２０ｆ  インターフェース定義、２０ｇ  ソースコード、
２０ｈ  ＨＴＭＬファイル、２０ｉ  ＩＦプロキシ、２０ｊ  オブジェクトマネージャ、２０ｋ  セキュリティレベル定義
２１  ＣＰＵ
２２  主記憶部
２３  補助記憶部
２４  入力部
２５  出力部
２５ａ  ＬＣＤ
２６  通信部
３０ａ  バイタルセンサ
３０ｂ  スマートグラス
１０１  実行アプリ指定部
１０２  ＵＩ処理モジュール受信部
１０３  モバイルアプリ実行部
１０４  ＩＦプロキシ送受信部
１０５  オブジェクトマネージャ実行部
１０６  履歴取得部
１０７  閾値変更部
１０８  セキュリティレベルチェック部
２０１  操作情報取得部
２０２  実行アプリ指定部
２０３  オブジェクト検出部
２０４  ＵＩデータ処理抽出部
２０５  ＩＦプロキシ付与部
２０６  モジュール管理部
２０７  モバイルアプリ実行部
２０８  ＩＦプロキシ送受信部
２０９  オブジェクトマネージャ付与部
２１０  オブジェクトマネージャ実行部
２１１  履歴管理部
２１２  閾値変更部
２１３  セキュリティレベルチェック部
【図１】
2016218924.tif 000003
【図２Ａ】
2016218924.tif 000004
【図２Ｂ】
2016218924.tif 000005
【図３Ａ】
2016218924.tif 000006
【図３Ｂ】
2016218924.tif 000007
【図４Ａ】
2016218924.tif 000008
【図４Ｂ】
2016218924.tif 000009
【図５】
2016218924.tif 000010
【図６Ａ】
2016218924.tif 000011
【図６Ｂ】
2016218924.tif 000012
【図７Ａ】
2016218924.tif 000013
【図７Ｂ】
2016218924.tif 000014
【図７Ｃ】
2016218924.tif 000015
【図８】
2016218924.tif 000016
【図９Ａ】
2016218924.tif 000017
【図９Ｂ】
2016218924.tif 000018
【図１０】
2016218924.tif 000019
【図１１Ａ】
2016218924.tif 000020
【図１１Ｂ】
2016218924.tif 000021
【図１２Ａ】
2016218924.tif 000022
【図１２Ｂ】
2016218924.tif 000023
【図１３Ａ】
2016218924.tif 000024
【図１３Ｂ】
2016218924.tif 000025
【図１４】
2016218924.tif 000026
【図１５Ａ】
2016218924.tif 000027
【図１５Ｂ】
2016218924.tif 000028