JP2016218924A - 情報処理装置、電子機器、情報処理プログラム及び処理プログラム - Google Patents

情報処理装置、電子機器、情報処理プログラム及び処理プログラム Download PDF

Info

Publication number
JP2016218924A
JP2016218924A JP2015105823A JP2015105823A JP2016218924A JP 2016218924 A JP2016218924 A JP 2016218924A JP 2015105823 A JP2015105823 A JP 2015105823A JP 2015105823 A JP2015105823 A JP 2015105823A JP 2016218924 A JP2016218924 A JP 2016218924A
Authority
JP
Japan
Prior art keywords
processing
screen
information
program
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015105823A
Other languages
English (en)
Inventor
智大 今井
Tomohiro Imai
智大 今井
浩一 山崎
Koichi Yamazaki
浩一 山崎
亮 宮本
Akira Miyamoto
亮 宮本
健一 堀尾
Kenichi Horio
健一 堀尾
松井 一樹
Kazuki Matsui
一樹 松井
正宏 松田
Masahiro Matsuda
正宏 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015105823A priority Critical patent/JP2016218924A/ja
Priority to US15/094,294 priority patent/US20160350133A1/en
Publication of JP2016218924A publication Critical patent/JP2016218924A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】業務利用に係るプログラムの情報の安全性と操作応答性の確保を両立可能とする技術を提供する。
【解決手段】情報処理装置は、プログラムの処理コードを解析し、プログラムの画面を記述する1以上の処理コードを抽出し、抽出された1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、生成された画面処理の処理コード群を電子機器に送信すると共に電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、プログラムの中の画面処理の処理コード群以外の処理コードを実行し、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、を備える。
【選択図】図6A

Description

本発明は、情報処理装置、電子機器、情報処理プログラム及び処理プログラムに関する。
近年、スマートフォン、ノートPC(PC:Personal Computer)、タブレットPC、
PDA(Personal Data Assistance)といった情報処理端末の普及とモバイル通信環境の高速化に伴い、モバイル環境下での情報処理端末の業務利用が増加傾向にある。情報処理端末(以下、電子機器とも称す)には、例えば、情報処理端末の備えるOS(Operating System)を用いて実行されるモバイルアプリケーションプログラム(以下、モバイルアプリとも称す)が搭載される傾向にある。また、近年の、情報処理端末では、例えば、メガネをかける要領で頭部に装着して使用可能なスマートグラス、腕時計型(リストバンド型)の情報処理端末・センサといったウェアラブル機器と連携した業務利用が可能となっている。
なお、本明細書で説明する技術に関連する技術が記載されている先行技術文献としては、以下の特許文献が存在している。
特開2006−197601号公報
ところで、モバイル環境下で業務に利用される情報処理端末では、個人情報や顧客データといった秘匿性の高い情報が使用される傾向にある。このため、情報処理端末で使用される秘匿性の高い情報について、情報処理端末の紛失や情報漏えい等に対する安全性の確保が要請されていた。
業務利用に係る情報の安全性を確保するため、例えば、画面転送方式による利用形態が想定される。画面転送方式の利用形態では、例えば、情報処理端末は、通信ネットワーク等を介して接続されたクラウド上のサーバ等に、受け付けた操作入力を送信する。クラウド上のサーバ側では、情報処理端末から送信された操作入力を受け付け、業務利用に係る各種モバイルアプリを実行する。モバイルアプリの実行結果は、アプリ表示画面として情報処理端末に転送される。画面転送方式の処理形態では、処理の実行主体はサーバ側にあるため、情報処理端末側は、モバイルアプリの処理の結果として転送されたアプリ表示画面を表示すればよい。このため、情報処理端末では、モバイルアプリの実行に関連する秘匿性の高い情報が保持されることはない。モバイル環境下で業務等に利用される情報処理端末の、業務利用に係る情報の安全性を高めることが可能となる。
しかしながら、近年の情報処理端末では、例えば、センサデータ、画像データといったデータ量の相対的に多い情報をデータ処理に使用するケースが増えてきている。このため、センサデータ、画像データ、アプリ表示画面データ等の大量のデータが通信ネットワークを介して転送される情報処理端末では、情報処理の相対的な操作応答性の劣化を招く虞があった。
また、モバイル環境下の通信ネットワークでは、通信帯域やデータ遅延等の制約を伴う
場合がある。通信帯域等の制約を伴うモバイル環境下では、大量のデータは、情報処理端末の情報処理に係る操作応答性をさらに劣化させることとなる。
モバイル環境下で業務に利用される情報処理端末では、モバイルアプリに係る情報の安全性と情報処理端末の操作応答性との確保を両立させることが課題である。
1つの側面では、本発明は、業務利用に係るプログラムの情報の安全性と操作応答性の
確保を両立可能とする技術の提供を目的とする。
上記技術は、次の情報処理装置の構成によって例示できる。すなわち、情報処理装置は、プログラムの処理コードを解析し、プログラムの画面を記述する1以上の処理コードを抽出し、抽出された1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、生成された画面処理の処理コード群を電子機器に送信すると共に電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、プログラムの中の画面処理の処理コード群以外の処理コードを実行し、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、を備える。
上記の情報処理システムによれば、業務利用に係るプログラムの情報の安全性と操作応答性の確保を両立可能とする技術が提供できる。
実施形態1の情報処理システムの説明図である。 ウェアラブル機器と連携した情報処理端末の業務利用例を示す図である。 比較例の画面転送方式による情報処理端末の利用形態を説明する説明図である。 アプリプログラムのUI処理部分とデータ処理部分との分離処理を説明する説明図である。 アプリプログラムのUI処理部分とデータ処理部分との分離処理を説明する説明図である。 情報処理端末(端末装置)のハードウェア構成例を示す図である。 サーバのハードウェア構成例を示す図である。 実施形態1の情報処理システムの処理ブロックを説明する説明図である。 実施形態1のサーバのアプリプログラムの分散実行に係る処理を例示するフローチャートである。 実施形態1の情報処理端末のアプリプログラムの分散実行に係る処理を例示するフローチャートである。 実施形態2のオブジェクトマネージャの処理を説明する説明図である。 実施形態2のオブジェクトマネージャで生成されたテーブル例を示す図である。 分離されたUI処理部分とデータ処理部分との間の、関数要素の移動判定条件を格納したテーブル例を示す図である。 実施形態2の情報処理システムの処理ブロックを説明する説明図である。 実施形態2の分離されたUI処理部分とデータ処理部分との間の、サーバ側の関数要素の移動処理を例示するフローチャートである。 実施形態2の分離されたUI処理部分とデータ処理部分との間の、情報処理端末側の関数要素の移動処理を例示するフローチャートである。 実施形態3の情報処理システムの処理ブロックを説明する説明図である。 移動判定閾値の変更例を示す図である。 移動判定閾値の変更例を示す図である。 実施形態3の移動判定閾値の、サーバ側の変更処理を例示するフローチャートである。 実施形態3の移動判定閾値の、情報処理端末側の変更処理を例示するフローチャートである。 実施形態4のセキュリティレベル定義例を示す図である。 移動判定閾値のセキュリティレベルによる変更例を示す図である。 実施形態4の情報処理システムの処理ブロックを説明する説明図である。 実施形態4の移動判定閾値の、サーバ側の変更処理を例示するフローチャートである。 実施形態4の移動判定閾値の、情報処理端末側の変更処理を例示するフローチャートである。
以下、図面を参照して、一実施形態に係る情報処理システムについて説明する。以下の実施形態の構成は例示であり、情報処理システムに含まれる情報処理端末(電子機器)、サーバ(情報処理装置)は実施形態の構成には限定されない。
以下、図1から図15の図面に基づいて、情報処理システムの情報処理端末、サーバを説明する。
<実施形態1>
図1に、本実施形態の情報処理システム1の説明図を例示する。図1に例示の情報処理システム1は、ネットワークNに接続する情報処理端末(以下、電子機器とも称す)10、クラウド上のサーバ20(以下、情報処理装置とも称す)を含む。ネットワークNは、例えば、インターネット等の公衆ネットワーク、携帯電話網等の無線ネットワーク、LAN(Local Area Network)等を含む。ネットワークNには、複数の情報処理端末10、複数のサーバ20等が接続され得る。複数のサーバ20は、例えば、ネットワークN上のクラウドとして機能することができる。
図1に例示の情報処理システム1において、サーバ20は、例えば、ネットワークNに接続するための通信機能を有するサーバ、PC(PC:Personal Computer)等の情報処
理装置である。サーバ20は、例えば、情報処理端末10に搭載されるブラウザエンジン10aをエミュレートする仮想ブラウザエンジン20dを有する。
情報処理端末10は、例えば、モバイル環境下で使用可能な電子機器である。情報処理端末10は、例えば、ネットワークNに接続するための通信機能を有する。情報処理端末10には、ネットワークNに接続するためのブラウザエンジン10aが搭載される。情報処理端末10には、例えば、スマートフォン、ノートPC、タブレットPC、PDA(Personal Data Assistance)等が含まれる。
情報処理端末10には、モバイル環境下で業務利用が可能なモバイルアプリケーションプログラム(以下、モバイルアプリとも称す)20aが搭載され得る。モバイルアプリ20aは、例えば、情報処理端末10の備えるオペレーティングシステム(Operating System :OS)を使用するプログラムである。モバイルアプリ20aの実行により、情報処理端末10では、例えば、メガネをかける要領で頭部に装着して使用可能なスマートグラスや腕時計型(リストバンド型)端末、センサ等のウェアラブル機器と連携した業務利用が可能となる。
図2Aに、情報処理端末10の、ウェアラブル機器と連携した業務利用の一例を例示する。図2Aでは、情報処理端末10の利用者(以下、ユーザとも称す)は、例えば、訪問介護サービスの担当者である。ユーザは、例えば、スマートフォン、タブレットPC等の情報処理端末10を携帯し、介護対象者の自宅等を訪問する。介護対象者の腕部等には、リストバンド型のバイタルセンサ30aといったウェアラブル機器が装着されている。介護対象者に装着されたバイタルセンサ30aでは、例えば、脈拍数、血圧、体温等のバイタル情報が1時間といった所定の時間単位で計測される。計測されたバイタル情報は、例えば、週単位といった所定の期間で、バイタルセンサ30a等に含まれるメモリ等に蓄積される。
情報処理端末10は、例えば、ユーザ操作を受け付け、情報処理端末10に搭載されたモバイルアプリ20aを実行する。モバイルアプリ20aが実行された情報処理端末10は、例えば、介護対象者に装着されたバイタルセンサ30aに記録・蓄積されたバイタル情報の読み取りを行う。バイタル情報の読み取りは、例えば、Bluetooth(登録商標)と
いった近距離無線通信、USB(Universal Serial Bus)等を介して行われる。また、情報
処理端末10は、例えば、ユーザ操作を受け付け、介護対象者の現時点の様子をカメラ等で撮影する。
情報処理端末10は、例えば、読み取りが完了した所定期間のバイタル情報の履歴データを、訪問介護サービスを提供する企業内に構築された業務システムのサーバ20に送信する。同様にして、情報処理端末10は、カメラ等で撮影した介護対象者の画像情報をサーバ20に送信する。バイタルセンサ30aに記録・蓄積されたバイタル情報の履歴データは、例えば、介護対象者の画像情報と共にモバイルアプリ20aの実行を介してサーバ20に送信される。情報処理端末10から送信された各種情報は、業務システムのサーバ20に受信され、サーバ20の備えるデータベース(DB:Data Base)に蓄積される。
また、情報処理端末10は、例えば、ユーザ操作に基づいてサーバ20に接続し、サーバ20の備えるDBに蓄積された介護情報を参照する。介護情報には、例えば、介護対象者の服用した薬の履歴、過去のバイタル情報の履歴、風邪や発熱等の発症歴等が含まれる。介護対象者の介護情報は、例えば、モバイルアプリ20aの実行を介して情報処理端末10の備えるLCD(Liquid Crystal Display)等の表示デバイスに表示される。
また、情報処理端末10は、例えば、ユーザの頭部等に装着されたスマートグラス30b等に、介護対象者の介護情報を表示する。モバイルアプリ20aを実行する情報処理端末10は、例えば、参照中の介護情報をBluetooth、USB等を介してスマートグラス30bに送信する。スマートグラス30bには、例えば、所定期間のバイタル情報の推移を表す画面情報が表示される。情報処理端末10のユーザは、例えば、LCD等の表示デバイス、スマートグラス30b等に表示された介護情報の推移を表す画面情報を参照し、介護対象者に対する適切なサービスを提供することが可能となる。
図2Aで説明したように、モバイル環境下で業務に利用される情報には、介護情報等の個人情報や、顧客データといった秘匿性の高い情報が使用される。モバイル環境下で業務に利用される情報については、例えば、情報処理端末10の紛失、情報漏えい等についての安全性の確保が要請される。
図2Bに、比較例として、画面転送方式による情報処理端末の利用形態の説明図を例示する。図2Bに例示の、画面転送方式による情報処理端末の利用形態は、例えば、シンクライアントシステムとも称される。図2Bに例示の情報処理端末40、サーバ41は、ネットワークを介して接続し、シンクライアントシステムを構成する。サーバ41は、例えば、ネットワーク上のクラウドの一部として機能する。
図2Bに例示の説明図において、情報処理端末40は、例えば、ノートPCである。また、サーバ41は、PC等の情報処理装置である。サーバ41には、例えば、業務利用に関連する業務アプリが搭載されている。情報処理端末40のLCD等の表示デバイスには、クラウド上のサーバ41から転送された、実行中の業務アプリのアプリ画面データが既に表示されているとする。
情報処理端末40は、例えば、表示デバイスに表示されたアプリ画面データを参照して入力された、ユーザの操作入力を受け付ける。ユーザの操作入力は、例えば、情報処理端末40のキーボード等を介して行われる。情報処理端末40は、例えば、受け付けた操作入力を操作コマンドとしてサーバ41に送信する。
サーバ41は、例えば、ネットワークを介して情報処理端末40から送信された操作コマンドを受信し、受信した操作コマンドに対応付けられた処理を実行中の業務アプリに反映する。操作コマンドに対応付けられた処理が反映された結果、実行中の業務アプリの処理が更新される。サーバ41では、実行中の業務アプリの処理が更新された結果、業務アプリに対応付けられた更新後のアプリ画面データが生成される。アプリ画面データは、例えば、HTML(HyperText Markup Language)等で記述された画面データである。
サーバ41は、例えば、生成されたアプリ画面データを情報処理端末40に転送する。情報処理端末40は、例えば、ネットワークを介してサーバ41から転送されたアプリ画面データを受信する。情報処理端末40は、受信したアプリ画面データに基づいて表示処理を行い、該アプリ画面データをLCD等の表示デバイスに表示する。情報処理端末40の表示画面上には、例えば、ユーザの操作入力を反映した業務アプリによる、更新後のアプリ画面データが表示される。
上述のように、画面転送方式による利用形態では、業務アプリの処理はサーバ41で実行される。情報処理端末40では、業務アプリの処理の結果として転送されたアプリ画面データを受信し、表示処理が実行される。情報処理端末40には、実行主体となる業務アプリを含まないため、例えば、業務アプリの実行に関連する秘匿性の高い情報が保持されることはない。画面転送方式による利用形態では、情報処理端末の紛失や情報漏えい等に対する安全性を高めることができる。
しかしながら、図2Aで説明したように、情報処理端末10では、モバイルアプリ20aの実行に関連する画像データ、センサデータといった大量のデータをサーバ20に送信する場合がある。同様にして、サーバ20では、上記の画像データ、センサデータに基づいたモバイルアプリ20aの処理結果をアプリ画面データとして情報処理端末10に送信する場合がある。
情報処理端末10とサーバ20との間で大量のデータの送受信が発生する場合には、画面転送方式を採用した情報処理端末10では、データの送受信処理に処理パフォーマンスがひっ迫することとなる。このため、画面転送方式を採用した情報処理端末10では、操作応答性が相対的に劣化する虞がある。迅速な対応が求められるモバイル環境下で業務等に利用される情報処理端末10では、操作応答性の劣化により、適切な処理の提供が困難となる虞があった。
図1に例示の説明図に戻り、本実施形態の情報処理システム1のクラウド側サーバ20は、情報処理端末10で実行可能なモバイルアプリ20aを搭載する。モバイルアプリ20aは、モバイル環境下で業務に利用されるプログラムである。モバイルアプリ20aは、例えば、情報処理端末10の備えるOSに基づくフレームワーク20eを用いてプログ
ラミングされている。
フレームワーク20eは、例えば、モバイルアプリ20aの処理に用いられるAPI(Application Programming Interface)を、情報処理端末10の備えるOSに応じて開発
者が利用しやすくした枠組みである。フレームワーク20eを用いることにより、例えば、モバイルアプリ20aのプログラミング等で使用される汎用的なプログラム機能がまとめて提供される。フレームワーク20eには、例えば、APIに含まれるサブルーチンやデータ構造、オブジェクトクラス、変数等を用いて汎用性を高めた設計モデル、処理パターン等が含まれる。フレームワーク20eとして、例えば、“AngularJS”、“Vue.js”
、“batman.js”、“Backbone.js”、“Knockout”等のフレームワークが例示できる。
モバイルアプリ20aのプログラムは、フレームワーク20eを用いることで、例えば、UI処理に対応する処理部分とデータ処理に対応する処理部分とを分けてプログラミングすることができる。
ここで、UI処理に対応する処理部分とは、例えば、情報処理端末10に表示される画面を定義している定義文で宣言されているプログラム部分である。また、データ処理に対応する処理部分とは、例えば、UI処理に対応する処理部分を除くプログラム部分である。データ処理に対応する処理部分は、例えば、画面表示中の情報処理端末10のバックグラウンドで実行されるプログラム部分である。なお、以下の説明では、UI処理に対応する処理部分を“UI処理”、データ処理に対応する処理部分を“データ処理”とも称す。
本実施形態のサーバ20は、例えば、モバイルアプリ20aに対するインターフェース定義20fを備える。インターフェース定義20fは、例えば、モバイルアプリ20aのプログラミングに用いられたフレームワーク20eに基づいて作成される。サーバ20は、例えば、搭載されるモバイルアプリ20a毎にインターフェース定義20fを備える。
インターフェース定義20fには、例えば、モバイルアプリ20aのプログラミングに用いられたフレームワーク20eを識別する名称が含まれる。また、インターフェース定義20fには、例えば、モバイルアプリ20aのソースプログラム(ソースコードとも称す)上の、UI処理を定義するための宣言文が含まれる。UI処理を定義するための宣言文には、UI処理のオブジェクトを生成するための定義文が含まれる。同様にして、インターフェース定義20fには、モバイルアプリ20aのソースコード上の、データ処理を定義するための宣言文が含まれる。データ処理を定義するための宣言文には、データ処理のオブジェクトを生成するための定義文が含まれる。なお、“オブジェクト”には、例えば、配列や画像データといったデータ、関数、変数等、或いは、これらの組合せが含まれる。
本実施形態のサーバ20は、例えば、インターフェース定義20fを参照し、搭載されたモバイルアプリ20aのソースコードを解析する。そして、サーバ20は、例えば、搭載されたモバイルアプリのソースコードをUI処理20bとデータ処理20cとに分離する。情報処理端末10において、スタンドアローンで実行可能なモバイルアプリ20aは、サーバ20により、画面を定義するオブジェクトを生成するためのプログラム群であるUI処理20b、UI処理20bを除くプログラム群のデータ処理20cに分離される。
本実施形態の情報処理システム1では、サーバ20で分離されたモバイルアプリ20aのUI処理20bは、情報処理端末10に転送され、該情報処理端末10のリソースを使用して実行される。一方、サーバ20で分離されたモバイルアプリ20aのデータ処理20cは、サーバ20に保持され、該サーバ20のリソースを使用して実行される。
なお、情報処理端末10に転送されるモバイルアプリ20aのUI処理20bには、例えば、サーバ20との間でデータの授受を行うためのインターフェースプロキシ(以下、IFプロキシとも称す)が付与される。同様にして、サーバ20に保持されるモバイルアプリ20aのデータ処理20cにも、情報処理端末10のUI処理20bとの間でデータの授受を行うためのIFプロキシが付与される。UI処理20b、データ処理20cに付与されるIFプロキシは、例えば、モバイルアプリ20a毎に付与される。
情報処理端末10で実行されるUI処理20bは、例えば、サーバ20で実行されるデータ処理20cとの間でIFプロキシを介してデータ授受を行うことで、モバイルアプリ20aとして機能することができる。本実施形態の情報処理システム1は、モバイル環境下で業務に利用されるモバイルアプリ20aを、情報処理端末10とクラウド上のサーバ20とに分散し、実行することができる。
本実施形態の情報処理システム1は、モバイルアプリ20aのデータ処理20cをサーバ20に分散して実行できるため、例えば、情報処理端末10が業務の利用に係る個人情報等の秘匿性の高い情報を保持することはない。情報処理端末10は、モバイルアプリ20aのデータ処理20cをサーバ20に分散して実行できるため、データ処理に係るリソースの処理負担を軽減することが可能となる。また、情報処理端末10は、モバイルアプリ20aの画面表示に係るUI処理20bを情報処理端末10自体のリソースを用いて、サーバ20との通信を行わずに処理できるため、例えば、表示画面に対する操作入力、表示出力等の応答性を高めることが可能となる。
また、本実施形態の情報処理システム1では、クラウド上のサーバ20と情報処理端末10との間の通信データ量を、それぞれに分散されたデータ処理20cとUI処理20bとの間のデータ送受信量に軽減することができる。図2Bに例示の画面転送方式の形態と比較して、サーバ20と情報処理端末10との間の通信量の負荷を軽減することが可能となる。本実施形態の情報処理システム1では、情報処理端末10は、図2Bに例示の画面転送方式の形態と比較して、ユーザインターフェース処理に係る操作応答性を向上することが可能となる。例えば、モバイル環境下の通信ネットワークが通信帯域やデータ遅延等の制約を伴う場合であっても、情報処理端末10の操作応答性の劣化を軽減することが可能となる。本実施形態の情報処理システム1では、情報処理端末10の業務利用に係る情報の安全性と操作応答性の確保を両立が可能となる。
(モバイルアプリの分離処理)
以下、図3A、3Bに例示の図面を参照し、本実施形態の情報処理システム1のサーバ20で実行される、モバイルアプリ20aの、UI処理20bとデータ処理20cとの分離処理について説明する。
図3Aは、モバイルアプリ20aの、UI処理20bとデータ処理20cとの分離処理の説明図である。図3Bは、分離処理完了後の転送処理の説明図である。なお、図3A、3Bでは、説明例のモバイルアプリ20aは、JavaScript(登録商標)のライブラリである“Knockout”をフレームワーク20eに用いてプログラミングされた一例である。
図3Aの説明図において、“a”に例示のように、本実施形態の情報処理システム1のサーバ20は、モバイルアプリ20aに対するインターフェース定義20fを備える。インターフェース定義20fは、図1で説明した。インターフェース定義20fは、モバイルアプリ20a毎に備えられる。なお、サーバ20が備えるインターフェース定義20fは、例えば、フレームワーク20eの開発業者、または、モバイルアプリ20aを用いてサービスの提供を行うサービス業者等により提供される。
図3Aに例示のように、インターフェース定義20fには、モバイルアプリ20aのプログラミングに使用されたフレームワーク20eを識別する名称が含まれる。同様にして、インターフェース定義20fには、例えば、モバイルアプリ20aのソースコード上の、UI処理を定義するためのオブジェクトが生成される定義文(宣言文)、データ処理を定義するためのオブジェクトが生成される定義文が含まれる。図3Aの説明図では、“Knockout”、“Backbone.js”をフレームワーク20eとしてプログラミングされたモバイ
ルアプリ20aのインターフェース定義20fが例示されている。
図3Aの説明例において、例えば、“Knockout” をフレームワーク20eとして開発
されたモバイルアプリ20aのインターフェース定義20fは、「フレームワーク」、「UI処理」、「データ処理」の各カラムを有する。「フレームワーク」カラムには、例えば、フレームワーク20eを識別する名称“Knockout”が登録されている。「UI処理」カラムには、例えば、ソースコード上の、UI処理を定義するためのオブジェクトが生成される定義文“new AppViewModel(MODEL)”が登録されている。「データ処理」カラムに
は、例えば、ソースコード上の、データ処理を定義するためのオブジェクトが生成される定義文“new AppModel(args)”が登録されている。「UI処理」カラムに登録された定義文“new AppViewModel(MODEL)”および「データ処理」カラムに登録された定義文“new AppModel(args)”は、例えば、フレームワーク“Knockout”のプログラミング規則に沿っ
て作成される。
図3Aの“b”には、モバイルアプリ20aのソースコード20gが例示される。モバイルアプリ20aのソースコード20gは、例えば、“JavaScript”等のプログラミング言語を用いて記述されている。サーバ20は、例えば、インターフェース定義20fを参照し、モバイルアプリ20aのソースコード20gを解析する。解析の結果、サーバ20は、モバイルアプリ20aのソースコード20g上の、UI処理、データ処理を定義するためのオブジェクトが生成される定義文を特定する。
サーバ20は、例えば、モバイルアプリ20aのインターフェース定義20fを参照し、UI処理を定義するためのオブジェクトが生成される定義文“new AppViewModel(MODEL)”を取得する。サーバ20は、例えば、取得した定義文の文字列“new AppViewModel()
”を用いて、モバイルアプリ20aのソースコード20gを検索する。
ソースコード20gにおいて、例えば、定義文の文字列“new AppViewModel()”は、“var viewmodel = new AppViewModel();”が記述された箇所に含まれる。“new AppViewModel()”の前位置に記述された文字列箇所“var viewmodel”に含まれる“viewmodel”が
、UI処理を定義するためのオブジェクトが生成される上位のオブジェクトm2である。なお、定義文の文字列“new AppViewModel()”と、該定義文の前位置に記述される“var viewmodel =”とのソースコード20g上の相対的な位置関係は、例えば、フレームワー
ク20eで規定される規則に基づいて関係付けられる。
サーバ20は、例えば、ソースコード20g上の“new AppViewModel()”と対応付けられた“var viewmodel”といった文字列箇所を特定する。“var viewmodel”はソースコードで、文字列viewmodelが変数であることを宣言している。また、定義文の文字列“new AppViewModel()”は、UI処理を行うオブジェクトを生成する関数である。したがって、
” var viewmodel= new AppViewModel(model)”によって、関数AppViewModel(model)で生成されるUI処理用のオブジェクトが変数viewmodelに代入されることになる。
そして、図3Aの“1”に示すように、サーバ20は、特定された文字列箇所に含まれる“viewmodel”を、UI処理を定義するためのオブジェクトが生成される上位のオブジ
ェクトm2として取得する。
同様にして、サーバ20は、例えば、モバイルアプリ20aのインターフェース定義20fを参照し、データ処理を定義するためのオブジェクトが生成される定義文“new AppModel(args)”を取得する。サーバ20は、例えば、取得した定義文の文字列“new AppModel()”を用いて、モバイルアプリ20aのソースコード20gを検索する。
ソースコード20gにおいて、例えば、定義文の文字列“new AppModel()”は、“var model = new AppModel();”が記述された箇所に含まれる。“new AppModel()”の前位置
に記述された文字列箇所“var model”に含まれる“model”が、データ処理を定義するためのオブジェクトが生成される上位のオブジェクトm1である。ここで、定義文の文字列“new AppModel()”と、該定義文の前位置に記述される“var model =”とのソースコー
ド20g上の相対的な位置関係は、例えば、フレームワーク20eで規定される規則に基づいて関係付けられる。
サーバ20は、例えば、“new AppModel()”と対応付けられた“var model”との文字
列箇所を特定する。そして、サーバ20は、特定された文字列箇所に含まれる“model”
を、データ処理を定義するためのオブジェクトが生成される上位のオブジェクトm1を表す変数名として取得する。
上位のオブジェクトm1、m2には、関数、変数等の下位の処理オブジェクトが含まれる。サーバ20は、例えば、取得した上位のオブジェクトm1、m2の中から、それぞれの上位のオブジェクトm1、m2に含まれる関数、変数といった要素を特定する。
オブジェクトm1、m2に含まれる関数、変数といった要素には、例えば、モバイルアプリ20aの開発者(プログラマ)等から付与された任意の名称が使用される。サーバ20は、例えば、上位オブジェクトm1を“modelオブジェクト”として分類する。同様に
して、サーバ20は、例えば、上位オブジェクトm2を“viewmodelオブジェクト”とし
て分類する。
図3Aの“2”に、インターフェース定義20fに基づいて特定された上位のオブジェクトm1から分類された“modelオブジェクト”の一例をテーブルm3に例示する。同様
にして、インターフェース定義20fに基づいて特定された上位のオブジェクトm2から分類された“viewmodelオブジェクト”の一例をテーブルm4に例示する。
テーブルm3には、サーバ20の主記憶装置上に保持されるソースコード20gのオブジェクトの実体が定義された、上位オブジェクトm1に含まれる下位の要素e1、e2が列記されている。テーブルm3において、“result”は、例えば、上位オブジェクトm1に含まれる下位の要素e1を表す変数名である。“result”は、例えば、上位オブジェクトm1内で実行された演算処理の処理結果等を表す。同様にして、“save”は、例えば、上位オブジェクトm1に含まれる要素e2を表す関数名である。“save”は、例えば、上位オブジェクトm1で取得されたデータ等を記録する。
また、テーブルm4には、サーバ20の主記憶装置上に保持されるソースコード20gのオブジェクトの実体が定義された、上位オブジェクトm2に含まれる要素e3、e4が列記されている。テーブルm4において、“items”は、例えば、上位オブジェクトm2
に含まれる要素e3を表す変数名である。同様にして、“analyze”は、例えば、上位オ
ブジェクトm2に含まれる要素e4を表す関数名である。“items”は、例えば、上位オ
ブジェクトm2の実行により、情報処理端末10の表示画面等に表示処理される表示部品等を表す。“analyze”は、例えば、上位オブジェクトm2の実行により、複数のデータ
配列の中から特定位置のデータを抽出する。なお、テーブルm4には、例えば、“itemdb”といった他の変数名や、“render”といった他の関数名が含まれている。
なお、モバイルアプリ20aといった情報処理端末10に搭載可能なプログラムでは、LCD等の表示デバイスに表示される画面は、例えば、HTML(HyperText Markup Language)等のマークアップ言語を用いて記述される。このため、モバイルアプリ20aに
は、“JavaScript(登録商標)”等のプログラミング言語を用いて記述されたソースコード20gの他に、図3Aの矩形枠で囲まれた“2”に例示のように、マークアップ言語を用いて記述されたHTMLファイル20hが含まれる。但し、モバイルアプリ20aの画面は、例えば、XML(Extensible Markup Language)、XAML(Extensible Application Markup Language)等の、他のマークアップ言語を用いて記述されるとしてもよい。以下の説明では、情報処理端末10のLCD等の表示デバイスに表示される画面は、HTMLで記述されるとして説明する。
サーバ20は、例えば、テーブルm3、m4の各変数名(e1,e3)、各関数名(e2,e4)とHTMLファイル20hとの照合を行う。サーバ20は、例えば、viewmodelオブジェクトに含まれる変数、関数とHTMLファイル20hとの対応付けを行い、modelオブジェクトに含まれる変数、関数とHTMLファイル20hとの対応付けを行う。
例えば、インターフェース定義20fとして登録されたUI処理の定義文の中には、表示画面を記述するための要素として使用されない関数名、変数名が含まれる。例えば、モバイルアプリ20aの開発中にプログラミングされた関数や変数等に対して、使用予定の変更、延期、取消等が発生するケースがある。このケースでは、例えば、ソースコード20gに削除等の修正を加えずに残した状態で、表示画面の記述(HTML等)から該当する変数名、関数名の削除等を行うことが想定できる。また、本来的にデータ処理の定義文に含まれる関数、変数等の要素が、UI処理の定義文の中に誤挿入される場合がある。
サーバ20は、テーブルm3、m4の各変数名(e1,e3)、各関数名(e2,e4)とHTMLファイル20hとの照合を行うことで、例えば、モバイルアプリ20aのUI処理とデータ処理との分離精度を向上することが可能となる。なお、テーブルm3、m4の各要素とHTMLファイル20hの記述内容との照合は、例えば、各要素に付与された名称に含まれる文字列等の一致を検出することにより行われる。
サーバ20は、例えば、テーブルm3、m4の各変数名(e1,e3)、各関数名(e2,e4)とHTMLファイル20hとの照合を行い、HTMLファイル20hに記述された関数、変数等の各要素の抽出を行う。
例えば、図3AのHTMLファイル20hには、“viewmodelオブジェクト”としてテ
ーブルm4の要素e3の変数名“items”が含まれる。サーバ20は、例えば、要素e3
の変数名である“items”を照合文字列として、HTMLファイル20hを検索する。検
索の結果、HTMLファイル20h内に記述された“items”が照合文字列と合致する文
字列として特定される。サーバ20は、例えば、“viewmodelオブジェクト”としてテー
ブルm4の要素e3を、HTMLファイル20hに記述された要素名として抽出する。
また、例えば、HTMLファイル20hには、“viewmodelオブジェクト”としてテー
ブルm4に分類された要素e4の変数名“analyze”は含まれていないとする。この場合
には、HTMLファイル20hからは、照合文字列である要素e4の変数名“analyze”
は検索されない。このため、サーバ20は、例えば、“viewmodelオブジェクト”として
テーブルm4に分類された要素e4を、HTMLファイル20hに記述がない要素名として抽出する。
サーバ20は、例えば、“modelオブジェクト”としてテーブルm3に分類された各要
素についても、HTMLファイル20hの記述を照合対象として、“viewmodelオブジェ
クト”と同様の照合を行う。照合の結果、HTMLファイル20h内に記述がある場合には、合致した要素がHTMLファイル20hに記述された要素名として抽出される。また、HTMLファイル20h内に記述がない場合には、照合対象の要素がHTMLファイル20hに記述がない要素名として抽出される。
図3Aに例示の、テーブルm3の各要素(e1,e2)では、例えば、それぞれがHTMLファイル20hに記述がない要素名として抽出される。同様にして、テーブルm4の各要素(e3,e4)では、例えば、要素e3がHTMLファイル20hに記述された要素名として抽出される。また、要素e4がHTMLファイル20hに記述がない要素名として抽出される。
サーバ20は、例えば、照合の結果、HTMLファイル20hに記述された要素名として抽出されたテーブルm3、m4内の要素を統合し、UI処理モジュール20bとしてモジュール化する。同様にして、サーバ20は、例えば、HTMLファイル20hに記述がない要素名として抽出されたテーブルm3、m4内の要素を統合し、データ処理モジュール20cとしてモジュール化する。
モジュール化された結果、UI処理モジュール20b、データ処理モジュール20cが生成される。生成されたUI処理モジュール20bは、例えば、図1に例示のUI処理20bに相当する。また、生成されたデータ処理モジュール20cは、例えば、図1に例示のデータ処理20cに相当する。情報処理端末10に搭載可能なモバイルアプリ20aは、インターフェース定義20fを用いた解析処理により、UI処理モジュール20bとデータ処理モジュール20cに分離される。
図3Aに例示の、UI処理モジュール20bには、例えば、HTMLファイル20hに記述された要素名として抽出された要素e3の変数名“items”が含まれている。同様に
して、図3Aに例示の、データ処理モジュール20cには、例えば、HTMLファイル20hに記述がない要素名として抽出された要素e1,e2,e4の各変数名“result”、“save”、“analyze”が含まれている。
ここで、“viewmodelオブジェクト”としてテーブルm4に記述された要素e4は、デ
ータ処理モジュール20cに含まれる。UI処理を定義するためのオブジェクトが生成される上位のオブジェクトm2を構成する関数要素の“analyze”は、データ処理モジュー
ル20cに含まれることが判る。インターフェース定義20fに登録された、モバイルアプリ20aのソースコード20g上の、UI処理の定義文“new AppViewModel(MODEL)”
に関連付けられた関数要素の“analyze”は、データ処理側の関数要素であることが判る
なお、上記の説明では、HTMLファイル20hに基づいてモバイルアプリ20aのソースコード20gを、UI処理モジュール20b、データ処理モジュール20cに分離するとして説明した。例えば、モバイルアプリ20aのソースコードgにおいて、メモリ等に保存されるデータ自体を抽出し、データ処理モジュール20cとして分離するとしてもよい。この場合では、例えば、メモリ等に保存されるデータを除く、他の要素がUI処理モジュール20bとして分離される。メモリ等に保存されるデータ自体を抽出し、データ処理モジュール20cとして分離することで、例えば、フレームワーク間の相違を吸収することができる。
例えば、テーブルm3に分類された要素e3の“save”は、データを保存するための関数として定義される。例えば、要素e3の“save”内で定義される変数名を抽出して結合し、データ処理モジュール20cとして分類することができる。
次に、図3Bを参照し、モバイルアプリ20aから分離されたUI処理モジュール20bの転送処理について説明する。図1で説明したように、モバイルアプリ20aから分離されたUI処理モジュール20bは、情報処理端末10に転送される。UI処理モジュール20bにはIFプロキシ20iが付与されてサーバ20から情報処理端末10に転送される。なお、モバイルアプリ20aから分離されたデータ処理モジュール20cは、IFプロキシ20iが付与されてサーバ20に保持される。
IFプロキシ20iは、例えば、情報処理端末10に転送されたUI処理モジュール20bと、サーバ20に保持されたデータ処理モジュール20cとの間でデータの授受を行うためのプログラムである。
IFプロキシ20iは、例えば、“WebSocket”等の通信規格に基づいて、情報処理端
末10及びサーバ20に分散されたUI処理モジュール20bとデータ処理モジュール20cとの間での双方向通信を行う。
IFプロキシ20iにより、UI処理モジュール20bを実行する情報処理端末10と、データ処理モジュール20cを実行するサーバ20とは、サーバ・クライアント方式の機器として機能することができる。なお、IFプロキシ20iは、例えば、モバイルアプリ20a毎に付与される。
情報処理端末10に転送されたUI処理モジュール20bは、例えば、IFプロキシ20iと共に情報処理端末10に保持される。情報処理端末10に転送されたUI処理モジュール20bは、例えば、情報処理端末10のリソースを用いて実行される。UI処理モジュール20bの実行により、例えば、情報処理端末10のLCD等の表示デバイスには、HTMLファイル20hで記述された画面が表示される。
情報処理端末10では、例えば、モバイルアプリ20aのIU処理モジュール20bの実行により、HTMLファイル20hで記述された画面を定義する要素(関数、変数等)の実行プロセスでデータの処理要求が発生する。情報処理端末10で実行されるUI処理モジュール20bは、例えば、データの処理要求が発生したプロセスの引数(パラメータ)を情報処理端末10のIFプロキシ20iに引き渡す。情報処理端末10のIFプロキシ20iは、例えば、ネットワークNを介し、データ処理モジュール20cが実行されるクラウド上のサーバ20に、処理要求が発生したプロセスの引数を送信する。
情報処理端末10から送信された、処理要求を発生したプロセスの引数は、サーバ20のIFプロキシ20iを介して受信される。サーバ20のIFプロキシ20iは、例えば、受信したプロセスの引数を、サーバ20で実行されるデータ処理モジュール20cに引き渡す。サーバ20で実行されるデータ処理モジュール20cは、例えば、プロセスの引数に対応してデータ処理を実行する。データ処理モジュール20cは、例えば、データ処理の実行結果を引数に対する戻り値としてサーバ20のIFプロキシ20iに引き渡す。サーバ20のIFプロキシ20iに引き渡されたデータ処理の実行結果は戻り値として、例えば、ネットワークNを介し、情報処理端末10に送信される。
サーバ20から送信されたデータ処理の実行結果は、例えば、情報処理端末10のIFプロキシ20iを介して受信される。IFプロキシ20iを介して受信されたデータ処理の実行結果は、例えば、実行中のUI処理モジュール20bの処理要求を発生したプロセ
スに戻り値として引き渡される。
本実施形態の情報処理システム1では、モバイルアプリ20aの機能は、UI処理モジュール20bが転送された情報処理端末10と、データ処理モジュール20cを保持するサーバ20とに分散して実行される。情報処理端末10のUI処理モジュール20b、サーバ20のデータ処理モジュール20cは、それぞれの機器のリソースを使用して非同期に実行される。但し、情報処理端末10のLCD等の表示デバイスに表示される画面、すなわち、サーバ20から送信されたデータ処理の結果の表示は、UI処理モジュール20bの実行に同期して表示される。
〔装置構成〕
(情報処理端末)
図4Aに、情報処理端末10のハードウェア構成を例示する。図4Aに例示の、情報処理端末10は、接続バスB1によって相互に接続されたCPU(Central Processing Unit)11、GPU(Graphics Processing Unit)12、主記憶部13を有する。また、情
報処理端末10は、接続バスB1に接続する、入力部14、出力部15、通信部16を有する。主記憶部13は、情報処理端末10が読み取り可能な記録媒体である。主記憶部13は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)を含む。
情報処理端末10は、CPU11が主記憶部13のROM等に記憶されたプログラムを主記憶部13のRAM等の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、情報処理端末10は、所定の目的に合致した機能を提供することができる。
情報処理端末10では、CPU11は、情報処理端末10全体の制御を行う中央処理演算装置である。CPU11は、例えば、主記憶部13のROM等に格納されたプログラムに従って処理を行う。GPU12は、表示デバイスの表示領域に表示される画面データの表示処理を主に行うプロセッサである。情報処理端末10は、GPU12を含むことで、例えば、表示処理に係るCPU11の処理負担を軽減し、LCD15a等の表示デバイスへの表示処理の高速化が期待できる。
主記憶部13のRAM等は、CPU11がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部13のROM等は不揮発性半導体メモリである。主記憶部13のROM等には、OS、通信部16を介して接続されるサーバ20等とのデータの受け渡しを行う通信インターフェースプログラムを含む各種プログラム等が格納される。
OSは、例えば、サーバ20から転送されたUI処理モジュール20b等のアプリに対し、管理するリソースへのインターフェースを提供する。UI処理モジュール20b等は、OSによって提供されたリソースへのインターフェースを使用することで、アプリ機能を機能させる。OSは、通信部16を介して接続されるウェアラブル機器とのデータの受け渡しを行う通信インターフェースプログラムを含む。
入力部14は、ユーザ等からの操作指示等を受け付ける。入力部14は、タッチセンサ14a、入力ボタン、ポインティングデバイス、マイクロフォン、カメラ等の入力デバイスである。入力部14には、キーボード、ワイヤレスリモコン等が含まれるとしてもよい。ポインティングデバイスには、例えば、タッチセンサ14aと出力部15のLCD15a等の表示デバイスとを組合せたタッチパネル、マウス、トラックボール、ジョイスティック等が含まれる。
出力部15は、CPU11で処理されるデータや主記憶部13に記憶されたデータを出力する。出力部15は、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)15a、PDP(Plasma Display Panel)、EL(Electroluminescence
)パネル、有機ELパネル、プリンタ、スピーカ等の出力デバイスである。
通信部16は、例えば、情報処理端末10が接続するネットワークN等とのインターフェースである。なお、モバイル環境下で使用されるウェアラブル機器、例えば、図2Aに例示のリストバンド型のバイタルセンサ30a、スマートグラス30b等は、通信部16を介して情報処理端末10に接続される。
情報処理端末10は、例えば、CPU11が主記憶部13のROM等に記憶されている、各種プログラムや各種データをRAM等に読み出して実行することにより、対象プログラムの実行と共に、図5に例示の各処理手段を提供する。
情報処理端末10は、対象プログラムの実行と共に、図5に例示の実行アプリ指定部101、UI処理モジュール受信部102、モバイルアプリ実行部103、IFプロキシ送受信部104を提供する。図5に例示の各処理手段の何れか、或いは、これらの一部がハードウェア回路によって動作するものであってもよい。
(サーバ)
図4Bに、サーバ20のハードウェア構成を例示する。図4Bに例示のサーバ20は、いわゆる一般的なコンピュータの構成を有している。サーバ20は、接続バスB2によって相互に接続されたCPU(Central Processing Unit)21、主記憶部22、補助記憶
部23、入力部24、出力部25、通信部26を有する。主記憶部22及び補助記憶部23は、サーバ20が読み取り可能な記録媒体である。
サーバ20は、CPU21が補助記憶部23に記憶されたプログラムを主記憶部22の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、サーバ20は、所定の目的に合致した機能を提供することができる。
CPU21は、サーバ20全体の制御を行う中央処理演算装置である。CPU21は、補助記憶部23に格納されたプログラムに従って処理を行う。主記憶部22は、CPU21がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部22は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)を含む。
補助記憶部23は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部23は、外部記憶装置とも呼ばれる。補助記憶部23には、OS、各種プログラム、各種テーブル等が格納される。OSは、例えば、搭載されたアプリに対し、管理するリソースへのインターフェースをアプリに提供する。サーバ20に搭載されたアプリは、OSによって提供されたリソースへのインターフェースを使用することで、アプリ機能を機能させる。OSは、通信部26を介して接続される情報処理端末10、外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、ネットワークN上の、他のPCやサーバ等の情報処理装置、外部記憶装置等が含まれる。
補助記憶部23は、例えば、EPROM(Erasable Programmable ROM)、ソリッドス
テートドライブ装置、ハードディスクドライブ(HDD、Hard Disk Drive)装置等であ
る。また、補助記憶部23としては、例えば、CDドライブ装置、DVDドライブ装置、BDドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモリ(
フラッシュメモリ)を含むシリコンディスク、ハードディスク、CD、DVD、BD、USB(Universal Serial Bus)メモリ、メモリカード等がある。
入力部24は、操作者等からの操作指示等を受け付ける。入力部24は、入力ボタン、マウス等のポインティングデバイス、マイクロフォン等の入力デバイスである。入力部24には、キーボード、ワイヤレスリモコン等が含まれるとしてもよい。入力部24から入力された情報は、接続バスB2を介してCPU21に通知される。
出力部25は、CPU21で処理されるデータや主記憶部22に記憶されるデータを出力する。出力部25は、LCD25a、CRT(Cathode Ray Tube)ディスプレイ、PDP(Plasma Display Panel)、EL(Electroluminescence)パネル、有機ELパネル等
の表示デバイスを含む。また、出力部25には、プリンタ、スピーカ等の出力デバイスが含まれる。通信部26は、例えば、サーバ20が接続するネットワークN等とのインターフェースである。
サーバ20は、CPU21が補助記憶部23に記憶されているOS、各種プログラムや各種データを主記憶部22に読み出して実行することにより、対象プログラムの実行と共に、図5に例示の各処理手段を提供する。
サーバ20は、対象プログラムの実行により、図5に例示の操作情報取得部201、実行アプリ指定部202、オブジェクト検出部203、UIデータ処理抽出部204、IFプロキシ付与部205を提供する。同様にして、サーバ20は、図5に例示のモジュール管理部206、モバイルアプリ実行部207、IFプロキシ送受信部208を提供する。なお、図5に例示の各処理手段のいずれか、あるいは、これらの一部がハードウェア回路によって動作するものであってもよい。サーバ20は、以上の各処理手段が参照し、或いは、管理するデータの保存先として補助記憶部23を備える。
〔処理ブロック構成〕
図5に、本実施形態の情報処理システム1における、処理ブロックの説明図を例示する。図5に例示の説明図において、情報処理端末10は、実行アプリ指定部101、UI処理モジュール受信部102、モバイルアプリ実行部103、IFプロキシ送受信部104の各処理手段を有する。なお、端末装置10は、以上の各処理手段が参照し、或いは、管理するデータの格納先として、例えば、主記憶部13のRAM等を備える。
また、図5に例示の説明図において、サーバ20は、操作情報取得部201、実行アプリ指定部202、オブジェクト検出部203、UIデータ処理抽出部204、IFプロキシ付与部205の各処理手段を有する。また、サーバ20は、モジュール管理部206、モバイルアプリ実行部207、IFプロキシ送受信部208の処理手段を有する。サーバ20は、以上の各処理手段が参照し、或いは、管理するデータの格納先として、例えば、補助記憶部23等を備える。
(サーバ)
図5に例示の説明図において、サーバ20の操作情報取得部201は、例えば、情報処理端末10から送信された操作入力情報、実行アプリの指定情報等を通信部26を介して取得する。操作入力情報には、例えば、情報処理端末10で分散されて実行中のモバイルアプリ20aに対する操作入力等が含まれる。実行アプリの指定情報には、例えば、モバイルアプリ20aに対応付けられた起動要求が含まれる。
例えば、情報処理端末10の初期画面上には、実行可能なモバイルアプリ20aのそれぞれに関連付けされた複数のアイコン等が表示される。情報処理端末10は、例えば、初
期画面上に表示されたアイコン等への操作入力を受け付ける。情報処理端末10は、例えば、選択されたアイコン等に関連付けされたモバイルアプリ20aの識別情報、該アプリに対する起動要求等を、実行アプリの指定情報としてサーバ20に送信する。
操作情報取得部201は、例えば、通信部26を介して取得した情報処理端末10の操作入力情報、実行アプリの指定情報等を、主記憶部22の所定の領域に一時的に記憶する。操作情報取得部201は、例えば、取得した情報処理端末10の操作入力情報をモバイルアプリ実行部207に引き渡す。また、操作情報取得部201は、例えば、取得した情報処理端末10の実行アプリの指定情報を実行アプリ指定部202に引き渡す。
実行アプリ指定部202は、例えば、操作情報取得部201から引き渡された実行アプリの指定情報に基づいて、起動要求が発生したモバイルアプリ20aを特定する。また、実行アプリ指定部202は、例えば、特定されたモバイルアプリ20aに対応付けられたインターフェース定義20fを特定する。インターフェース定義20fは、図3A等で説明したように、モバイルアプリ20aのプログラミングに用いられたフレームワーク20eに基づいて作成される。なお、インターフェース定義20fは、例えば、モバイルアプリ20aと対応付けられて補助記憶部23の所定の領域に記憶される。
実行アプリ指定部202は、例えば、補助記憶部23を参照し、起動要求が発生したモバイルアプリ20aのソースコード20g、HTMLファイル20hを取得する。同様にして、実行アプリ指定部202は、モバイルアプリ20aに対応付けられたインターフェース定義20fを取得する。実行アプリ指定部202は、例えば、補助記憶部23から取得した、モバイルアプリ20aのソースコード20g、HTMLファイル20h、インターフェース定義20fをオブジェクト検出部203に引き渡す。
オブジェクト検出部203は、例えば、実行アプリ指定部202から引き渡されたインターフェース定義20fに基づいて、実行要求の発生したモバイルアプリ20aのプログラムを解析する。モバイルアプリ20aのプログラムの解析は、例えば、ソースコード20gを対象として実行される。なお、モバイルアプリ20aのプログラムの解析については、図3Aで説明した。
モバイルアプリ20aの解析の結果、ソースコード20gにおけるUI処理を定義するためのオブジェクトが生成される定義文(上位のオブジェクトm2)が特定される。同様にして、ソースコード20gにおけるデータ処理を定義するためのオブジェクトが生成される定義文(上位のオブジェクトm1)が特定される。
オブジェクト検出部203は、例えば、特定した上位のオブジェクトm1の中から、該上位のオブジェクトm1を構成する関数、変数等の下位の処理オブジェクト(要素)を抽出する。そして、オブジェクト検出部203は、例えば、上位のオブジェクトm1から抽出された下位の処理オブジェクト(要素)を、“modelオブジェクト”として分類し、図
3Aに例示のテーブルm3を生成する。
同様にして、オブジェクト検出部203は、例えば、特定した上位のオブジェクトm2の中から、該上位のオブジェクトm2を構成する関数、変数等の下位の処理オブジェクト(要素)を抽出する。そして、オブジェクト検出部203は、例えば、上位のオブジェクトm2から抽出された下位の処理オブジェクト(要素)を、“viewmodelオブジェクト”
として分類し、図3Aに例示のテーブルm4を生成する。
オブジェクト検出部203は、例えば、生成した“modelオブジェクト”のテーブルm
3、及び、“viewmodelオブジェクト”のテーブルm4を、モバイルアプリ20aの識別
情報に対応付けて主記憶部22の所定の領域に一時的に記憶する。オブジェクト検出部203は、例えば、生成した“modelオブジェクト”のテーブルm3、及び、“viewmodelオブジェクト”のテーブルm4を、HTMLファイル20hに対応付けてUIデータ処理抽出部204に引き渡す。
UIデータ処理抽出部204は、例えば、オブジェクト検出部203から引き渡されたテーブルm3、m4内に分類された関数、変数等の下位の処理オブジェクト(要素)とHTMLファイル20hとの照合を行う。照合の結果、HTMLファイル20hに記述された、テーブルm3、m4内の関数、変数等の要素が抽出される。
UIデータ処理抽出部204は、例えば、HTMLファイル20hに記述された要素名として抽出されたテーブルm3、m4内の要素を統合し、UI処理モジュール20bとしてモジュール化する。なお、UIデータ処理抽出部204は、例えば、HTMLファイル20hに記述がない要素名として抽出されたテーブルm3、m4内の要素を統合し、データ処理モジュール20cとしてモジュール化する。
モジュール化により、モバイルアプリ20aは、UI処理モジュール20bおよびデータ処理モジュール20cに分離し、実行可能なように再定義される。なお、上述のHTMLファイル20hとの照合によるテーブルm3、m4内の要素の抽出、及び、モジュール化については、図3Aで説明した。
UIデータ処理抽出部204は、例えば、生成したUI処理モジュール20b及びデータ処理モジュール20cを、モバイルアプリ20aの識別情報に対応付けて主記憶部22の所定の領域に一時的に記憶する。UIデータ処理抽出部204は、例えば、生成したUI処理モジュール20b及びデータ処理モジュール20cを、IFプロキシ付与部205に引き渡す。
IFプロキシ付与部205は、例えば、UIデータ処理抽出部204から引き渡されたUI処理モジュール20b、データ処理モジュール20cのそれぞれにIFプロキシ20iを付与する。IFプロキシ20iは、例えば、モバイルアプリ20a毎に付与される。
IFプロキシ20iは、例えば、情報処理端末10に転送されたUI処理モジュール20bと、サーバ20に保持されたデータ処理モジュール20cとの間でデータの授受を行うためのプログラムである。IFプロキシ20iの付与により、UI処理モジュール20bは、データ処理モジュール20cとの間で下位オブジェクト(要素)の実行処理に係る双方向通信が可能となる。なお、IFプロキシ20iの付与については、図3Bで説明した。
IFプロキシ付与部205は、例えば、IFプロキシ20iが付与されたUI処理モジュール20bとデータ処理モジュール20cとをモジュール管理部206に引き渡す。
モジュール管理部206は、例えば、IFプロキシ付与部205から引き渡されたUI処理モジュール20b、データ処理モジュール20cの、それぞれの実行を管理する。モジュール管理部206は、例えば、IFプロキシ20iが付与されたUI処理モジュール20bを通信部26を介して情報処理端末10に転送する。
同様にして、モジュール管理部206は、例えば、IFプロキシ20iが付与されたデータ処理モジュール20cをモバイルアプリ実行部207に引き渡す。なお、モジュール管理部206は、例えば、モバイルアプリ20aの名称等の識別情報に対応付けて、モバイルアプリ20a毎に付与されるIFプロキシ20iを管理する。
モバイルアプリ実行部207は、例えば、モジュール管理部206から引き渡されたデータ処理モジュール20cに含まれる各要素のプロセスを実行する。例えば、情報処理端末10に転送されたUI処理モジュール20bからの、データ処理モジュール20cに含まれる各要素へのプロセスの処理要求は、例えば、IFプロキシ送受信部208を介してモバイルアプリ実行部207に通知される。
モバイルアプリ実行部207は、例えば、IFプロキシ送受信部208からの通知に基づいて、処理要求に対応するデータ処理モジュール20c内の要素のプロセスを実行する。モバイルアプリ実行部207は、例えば、データ処理モジュール20c内に含まれる要素の実行結果を戻り値としてIFプロキシ送受信部208に引き渡す。IFプロキシ送受信部208に引き渡された実行結果(戻り値)は、通信部26を介して情報処理端末10に送信される。
なお、モバイルアプリ実行部207には、例えば、モバイルアプリ20aを分散実行中の情報処理端末10から取得した操作入力情報が、操作情報取得部201から引き渡される。モバイルアプリ実行部207は、例えば、操作情報取得部201から引き渡された操作入力情報をデータ処理モジュール20c内の各要素のプロセスに反映させる。
(情報処理端末)
図5に例示の説明図において、モバイルアプリ20aの起動要求が発生すると、実行アプリ指定部101は、例えば、モバイルアプリ20aの識別情報を特定し、起動要求と共にサーバ20に送信する。モバイルアプリ20aの識別情報及び起動要求は、例えば、通信部16を介してサーバ20に送信される。
サーバ20では、情報処理端末10から送信された起動要求等を受信し、該起動要求が発生したモバイルアプリ20aについての、分散処理を実行するためのUI処理モジュール20bが転送される。UI処理モジュール20bには、サーバ20側で実行されるデータ処理モジュール20cとの間でデータの授受を行うためのIFプロキシ20iが付与される。
情報処理端末10の、UI処理モジュール受信部102は、例えば、サーバ20から転送されたモバイルアプリ20aのUI処理モジュール20bを通信部16を介して取得する。UI処理モジュール受信部102は、例えば、取得したUI処理モジュール20bを主記憶部12の所定の領域に一時的に記憶する。UI処理モジュール受信部102は、例えば、取得したモバイルアプリ20aのUI処理モジュール20bをモバイルアプリ実行部103に引き渡す。
モバイルアプリ実行部103は、例えば、UI処理モジュール受信部102から引き渡されたモバイルアプリ20aのUI処理モジュール20bの分散実行を行う。モバイルアプリ実行部103は、例えば、IFプロキシ20iが付与されたUI処理モジュール20bを主記憶部12の作業領域に実行可能に展開し、UI処理モジュール20bに分散されたモバイルアプリ20aの機能を実行する。
UI処理モジュール20bは、サーバ20側で実行されるデータ処理モジュール20cとは非同期に実行される。UI処理モジュール20bに分散されたモバイルアプリ20aの実行の結果、例えば、LCD15a等の表示デバイスである画像表示部に、HTMLファイル20hで定義された画面が表示される。
情報処理端末10は、例えば、入力部14である操作情報取得部を介し、LCD15a
等に表示されたモバイルアプリ20aの、実行中の画面についての操作入力を受け付ける。入力部14を介して受け付けられた実行中の画面表示についての操作入力は、例えば、モバイルアプリ実行部103に通知される。
モバイルアプリ実行部103は、入力部14である操作情報取得部から通知された操作入力を、分散実行中のUI処理モジュール20bに反映させる。情報処理端末10のLCD15a等に表示された画面への操作入力は、UI処理モジュール20bに同期して処理が実行される。
モバイルアプリ実行部103は、例えば、表示画面に表示された操作ボタン等の表示部品への押下操作やデータ入力等の操作入力を、分散して実行中のUI処理モジュール20bに反映させる。或いは、モバイルアプリ実行部103は、例えば、通信部16を介して接続されたバイタルセンサ30a等から入力されたデータを、分散して実行中のUI処理モジュール20bに反映させる。
UI処理モジュール20b内の、上述の操作入力に関連付けられた関数、変数等の各要素(下位のオブジェクト)は、例えば、操作入力に基づくデータの処理要求を発生させる。UI処理モジュール20b内の、データの処理要求を発生させた要素のプロセスは、データ処理に係る引数(パラメータ)をIFプロキシ20iに引き渡す。
モバイルアプリ実行部103は、例えば、実行中のUI処理モジュール20bからIFプロキシ20iに引き渡された引数をIFプロキシ送受信部104に引き渡す。IFプロキシ送受信部104は、例えば、通信部16を介し、処理要求が発生したプロセスの引数をサーバ20に送信する。
サーバ20では、例えば、起動要求が発生したモバイルアプリ20aのデータ処理モジュール20cが、モバイルアプリ実行部207で分散して実行されている。IFプロキシ送受信部208は、例えば、通信部26を介し、処理要求が発生したUI処理モジュール20bの関数、変数等の要素で発生したプロセスの引数を受信する。IFプロキシ送受信部208は、UI処理モジュール20bの関数、変数等の要素で発生したプロセスの引数をモバイルアプリ実行部207に引き渡す。
モバイルアプリ実行部207は、引き渡されたUI処理モジュール20bの関数、変数等の要素で発生したプロセスの引数を、分散実行中のデータ処理モジュール20cに反映させる。例えば、UI処理モジュール20b内の要素で発生した処理要求に対応するデータ処理モジュール20c内の要素は、引き渡された引数に基づいてデータ処理プロセスを実行する。データ処理プロセスの実行の結果、引き渡された引数に対する戻り値が生成される。モバイルアプリ実行部207は、例えば、生成された戻り値を処理要求が発生した要素のプロセスに対する実行結果としてIFプロキシ送受信部208に引き渡す。サーバ20のIFプロキシ送受信部204は、例えば、通信部26を介し、処理要求が発生したプロセスの戻り値を情報処理端末10に送信する。
情報処理端末10のIFプロキシ送受信部104は、例えば、通信部16を介し、サーバ20から送信された戻り値を受信する。IFプロキシ送受信部104は、受信した戻り値をモバイルアプリ実行部103に引き渡す。
モバイルアプリ実行部103は、IFプロキシ送受信部104で受信された戻り値を、IFプロキシ20iを通じて実行中のUI処理モジュール20bに反映する。UI処理モジュール20b内の、データの処理要求を発生させた関数、変数等の要素は、例えば、戻り値に基づいて実行中のプロセスを継続する。この結果、例えば、LCD15a等の表示
デバイスに表示された画面が、ユーザのデータ入力等を反映し更新される。
例えば、表示画面に表示された操作ボタン等の表示部品への押下操作に対応して、実行中のモバイルアプリ20aの表示画面の切り替えが行われる。また、例えば、操作入力されたデータに基づく処理結果が、新たな表示画面として表示される。或いは、バイタルセンサ30a等から履歴データ等が入力された場合には、履歴データの中から抽出された特定の情報、例えば、一定期間の血圧値の推移、服薬履歴等が新たな表示画面として表示される。
〔処理フロー〕
以下、図6A、6Bに例示のフローチャートを参照し、本実施形態の情報処理システム1のモバイルアプリ20aの分散実行に係る処理を説明する。図6Aは、サーバ20におけるモバイルアプリ20aの分散実行に係る処理を説明するフローチャートの例示である。図6Bは、情報処理端末10におけるモバイルアプリ20aの分散実行に係る処理を説明するフローチャートの例示である。
情報処理端末10は、例えば、主記憶部13のRAM等に実行可能に展開されたコンピュータプログラムにより、図6Bに例示の処理を実行する。同様にして、サーバ20は、例えば、主記憶部22に実行可能に展開されたコンピュータプログラムにより、図6Aに例示の処理を実行する。
なお、図6Aに例示の処理を実行するサーバ20は、ネットワークNを介して接続されたクラウド上のサーバであり、情報処理端末10で実行可能なモバイルアプリ20aを搭載する。但し、情報処理端末10との間でモバイルアプリ20aの機能を分散実行するサーバ20は、該情報処理端末10とIFプロキシ20iを介して接続されるクラウド上の一のサーバである。IFプロキシ20iを介して接続された情報処理端末10とサーバ20とは、例えば、サーバ・クライアント型の形態でモバイルアプリ20aの機能を分散実行する。
(サーバ)
図6Aに例示のフローチャートにおいて、サーバ20のモバイルアプリ20aの分散実行に係る処理の開始は、例えば、情報処理端末10が接続するネットワークNへの接続のときが例示できる。
サーバ20は、例えば、ネットワークNに接続する情報処理端末10からの、モバイルアプリ20aに対する起動要求がある否かを判定する(S1)。サーバ20は、例えば、モバイルアプリ20aに対する起動要求がある場合には(S1,Yes)、S2の処理に移行する。一方、サーバ20は、例えば、モバイルアプリ20aに対する起動要求がない場合には(S1,No)、該起動要求を受信するまで待機する。
S2の処理では、サーバ20は、例えば、起動要求があったモバイルアプリ20aのフレームワーク20eを特定する。そして、サーバ20は、例えば、モバイルアプリ20aの名称等の識別情報と、特定したフレームワーク20eに基づいて、該モバイルアプリ20aに対応付けられたインターフェース定義20fを取得する。インターフェース定義20fは、例えば、補助記憶部23の所定の領域に格納されている。サーバ20は、取得したインターフェース定義20fをモバイルアプリ20aの識別情報と共に、S3の処理に引き渡す。
S3の処理では、サーバ20は、例えば、インターフェース定義20fに基づいてモバイルアプリ20aのソースコード20gを解析し、UI処理およびデータ処理に関連付け
られた関数、変数等の要素(下位のオブジェクト)を検出する。S3の処理は、図3Aで説明した。なお、以下の説明では、関数、変数等の要素を“要素オブジェクト”とも称する。
S3の処理では、検出結果として図3Aに例示の“modelオブジェクト”として分類さ
れたテーブルm3、“viewmodelオブジェクト”として分類されたテーブルm4が生成さ
れる。サーバ20は、例えば、生成した“modelオブジェクト”のテーブルm3、及び、
“viewmodelオブジェクト”のテーブルm4を、モバイルアプリ20aの識別情報に対応
付けて主記憶部22の所定の領域に一時的に記憶する。サーバ20は、例えば、生成した“modelオブジェクト”のテーブルm3、及び、“viewmodelオブジェクト”のテーブルm4をS4の処理に引き渡す。
S4の処理では、サーバ20は、例えば、View情報とテーブルm3、m4内に分類された関数、変数等の要素オブジェクトとの照合を行い、View情報として利用されるUI処理の要素オブジェクトを抽出する。ここで、“View情報”とは、情報処理端末10のLCD15a等に表示される画面を記述するプログラムであり、HTML、XML、XAML等のマークアップ言語で記述される。
サーバ20は、例えば、モバイルアプリ20aのHTMLファイル20hに記述された文字列と、テーブルm3、m4内に分類された要素オブジェクトの名称との照合を行う。サーバ20は、例えば、HTMLファイル20hに記述がある要素オブジェクトをUI処理に利用される要素オブジェクトとして抽出する。同様にして、サーバ20は、例えば、HTMLファイル20hに記述がない要素オブジェクトをデータ処理に利用される要素オブジェクトとして抽出する。なお、サーバ20は、UI処理に利用される要素オブジェクトを除く他の要素オブジェクトを、データ処理に利用される要素オブジェクトとして抽出するとしてもよい。
S5の処理では、サーバ20は、例えば、S4の処理で抽出したUI処理に利用される要素オブジェクトを統合してモジュール化し、UI処理モジュール20bを生成する。同様にして、サーバ20は、例えば、S4の処理で抽出したデータ処理に利用される要素オブジェクトを統合してモジュール化し、データ処理モジュール20cを生成する。S5の処理により、モバイルアプリ20aは、UI処理モジュール20bおよびデータ処理モジュール20cに分離し、実行可能なように再定義(変換)される。
S6の処理では、サーバ20は、例えば、S5の処理で生成されたUI処理モジュール20b、データ処理モジュール20cのそれぞれにIFプロキシ20iを付与する。IFプロキシ20iは、図3B等で説明した。IFプロキシ20iは、例えば、モバイルアプリ20a毎に付与される。サーバ20は、例えば、付与されたIFプロキシ20iをモバイルアプリ20aに対応付けて管理する。
IFプロキシ20iの付与により、情報処理端末10で分離実行されるUI処理モジュール20bとサーバ20で分離実行されるデータ処理モジュール20cとの間の、要素オブジェクトの実行処理に係る双方向通信が可能となる。
S7の処理では、サーバ20は、例えば、S6の処理でIFプロキシ20iが付与された処理モジュールがUI処理モジュール20bであるか否かを判定する。サーバ20は、例えば、S6の処理でIFプロキシ20iが付与された処理モジュールがUI処理モジュール20bである場合には(S7,Yes)、S8の処理に移行する。一方、サーバ20は、例えば、S6の処理でIFプロキシ20iが付与された処理モジュールがUI処理モジュール20bでない場合には(S7,No)、S9の処理に移行する。
S8の処理では、サーバ20は、例えば、IFプロキシ20iが付与されたUI処理モジュール20bを、モバイルアプリ20aに対する起動要求を発生した情報処理端末10に転送する。サーバ20は、例えば、モバイルアプリ20aの名称等の識別情報と共にIFプロキシ20iが付与されたUI処理モジュール20bを情報処理端末10に転送する。
情報処理端末10に転送された、IFプロキシ20iが付与されたUI処理モジュール20bは、例えば、通信部16を介して受信され、主記憶部13の所定の領域に一時的に記憶される。情報処理端末10は、例えば、IFプロキシ20iが付与されたUI処理モジュール20bを主記憶部13の作業領域に実行可能に展開し、UI処理モジュール20bに分散されたモバイルアプリ20aの機能を実行する。
一方、S9の処理では、サーバ20は、例えば、IFプロキシ20iが付与されたデータ処理モジュール20cを、主記憶部22の所定の領域に一時的に記憶する。サーバ20は、例えば、IFプロキシ20iが付与されたデータ処理モジュール20cを主記憶部22の作業領域に実行可能に展開し、データ処理モジュール20bに分散されたモバイルアプリ20aの機能を実行する。
UI処理モジュール20b、データ処理モジュール20cに分離されたモバイルアプリ20aの機能は、情報処理端末10及びサーバ20のそれぞれのリソースを使用して非同期に分散実行される。
なお、図6Aでは、情報処理端末10からのモバイルアプリ20aの起動要求を契機としてS2−S5の処理を実行するとして説明した。サーバ10は、例えば、情報処理端末10に搭載可能なモバイルアプリ20aに対して、S2−S5の処理を予め実行し、UI処理モジュール20b、データ処理モジュール20cを生成するとしてもよい。サーバ20は、モバイルアプリ20aの起動要求を契機として予め生成されたUI処理モジュール20b、データ処理モジュール20cのそれぞれにIFプロキシ20iを付与し、情報処理端末10に転送するとしてもよい。
また、サーバ20は、分離されたデータ処理モジュール20cの実行に替えて、モバイルアプリ20aを実行させるとしてもよい。IFプロキシ20iを介して受信した引数を、対応するモバイルアプリ20aとして実行中のプロセスに引き渡し、実行結果としての戻り値を得るとしてもよい。サーバ20は、例えば、得られた実行結果としての戻り値をIFプロキシ20iを介して情報処理端末10側で実行中の、UI処理モジュール20cに送信すればよい。
(情報処理端末)
図6Aに例示のフローチャートにおいて、情報処理端末10のモバイルアプリ20aの分散実行に係る処理の開始は、例えば、モバイルアプリ20aの起動要求の発生のときが例示できる。情報処理端末10は、例えば、LCD15a等に画面表示された、モバイルアプリ20aに関連付けられたアイコン等への操作入力の受け付けを起動要求の発生のときとすることができる。或いは、情報処理端末10にBluetooth(登録商標)等の近距離
無線通信を介して接続されたウェアラブル機器から受け付けた起動要求を、モバイルアプリ20aの起動要求の発生のときとすることができる。
情報処理端末10は、例えば、上述のモバイルアプリ20aに対する起動要求を受け付け、該モバイルアプリ20aの名称等の識別情報を特定し、起動要求と共にサーバ20に送信する(S11)。モバイルアプリ20aの識別情報及び起動要求は、例えば、通信部
16を介してサーバ20に送信される。
情報処理端末10は、例えば、起動要求を行ったモバイルアプリ20aのUI処理モジュール20bを受信したか否かを判定する(S12)。図6AのS8の処理で説明したように、情報処理端末10からの起動要求に応じてサーバ20から転送されるUI処理モジュール20bには、起動要求を行ったモバイルアプリ20aを識別する名称等の識別情報が付加されている。情報処理端末10は、例えば、通信部16を介して受信したUI処理モジュール20bに起動要求を行ったモバイルアプリ20aの名称等の識別情報が付加されているか否かを判定する。
情報処理端末10は、例えば、受信したUI処理モジュール20bに起動要求を行ったモバイルアプリ20aの名称等の識別情報が付加されている場合には、S13の処理に移行する。一方、情報処理端末10は、例えば、受信したUI処理モジュール20bに起動要求を行ったモバイルアプリ20aの名称等の識別情報が付加されていない場合には、該当するUI処理モジュール20bを受信するまで待機する。
S13の処理では、情報処理端末10は、例えば、受信したUI処理モジュール20bを付与されたIFプロキシ20iと共に、主記憶部13の所定の領域に一時的に記憶する。そして、情報処理端末10は、例えば、IFプロキシ20iが付与されたUI処理モジュール20bを主記憶部13の作業領域に実行可能に展開し、UI処理モジュール20bに分散されたモバイルアプリ20aの機能を実行する。UI処理モジュール20bの実行により、情報処理端末10のLCD15a等の表示デバイスには、例えば、HTMLファイル20hで定義された画面が表示される。
情報処理端末10は、例えば、UI処理モジュール20bの実行により表示された画面への操作入力を受け付ける。情報処理端末10は、例えば、画面表示された操作ボタン等の表示部品への押下操作やデータ入力等の操作入力を受け付ける。或いは、通信部16を介して接続されたバイタルセンサ30a等から読み出されたデータの入力を受け付ける。情報処理端末10は、例えば、受け付けた上記の操作入力を実行中のUI処理モジュール20bに反映させる。
UI処理モジュール20b内の、上述の操作入力に関連付けられた関数、変数等の各要素オブジェクトは、例えば、操作入力に基づくデータの処理要求を発生させる(S14)。UI処理モジュール20b内の、データの処理要求を発生させた要素オブジェクトのプロセスは、UI処理モジュール20bに付加されたIFプロキシ20iの呼び出しを行い、データ処理に係る引数(パラメータ)を該IFプロキシ20iに引き渡す(S15)。
UI処理モジュール20bに付加されたIFプロキシ20iは、例えば、“WebSocket
”等の通信規格に基づいて、サーバ20側で分散して実行中のデータ処理モジュール20cにデータ処理の実行依頼を行う(S16)。
サーバ20で分散実行中のデータ処理モジュール20cは、データ処理モジュール20cに付与されたIFプロキシ20iを介して、データの処理要求を発生させた要素オブジェクトのプロセスの引数を取得する。サーバ20のデータ処理モジュール20c内の、処理要求に対応する要素オブジェクトは、引数を反映したプロセスを実行し、実行結果を戻り値としてIFプロキシ20iに引き渡す。
データ処理モジュール20cに付加されたIFプロキシ20iは、例えば、“WebSocket”等の通信規格に基づいて、情報処理端末10側で分散して実行中のUI処理モジュー
ル20bに実行結果(戻り値)を送信する。
情報処理端末10側で分散して実行中のUI処理モジュール20bに付与されたIFプロキシ20iは、サーバ20側で分散して実行中のデータ処理モジュール20cから送信された実行結果を取得する(S17)。UI処理モジュール20bに付与されたIFプロキシ20iは、データの処理要求を発生させたUI処理モジュール20b内の要素オブジェクトのプロセスに、取得した実行結果(戻り値)を引き渡す。
データの処理要求を発生させたUI処理モジュール20b内の要素オブジェクトは、IFプロキシ20iから引き渡された実行結果(戻り値)に基づいて実行中のプロセスを継続する。情報処理端末10のLCD等には、操作入力で更新された更新後の表示画面が表示される。
ここで、サーバ20で実行される、S2−S5の処理は、プログラムの処理コードを解析するステップと、プログラムの画面を記述する1以上の処理コードを抽出するステップと、抽出された1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップの一例である。また、サーバ20のCPU21等は、プログラムの処理コードを解析し、プログラムの画面を記述する1以上の処理コードを抽出し、抽出された1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部の一例としてS2−S5の処理を実行する。
また、サーバ20で実行される、S7−S9の処理は、生成された画面処理の処理コード群を電子機器に送信するステップと、電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、プログラムの中の画面処理の処理コード群以外の処理コードを実行するステップと、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップの一例である。また、サーバ20のCPU21等は、生成された画面処理の処理コード群を電子機器に送信し、電子機器で実行される画面処理の処理コード群に含まれる処理コードから処理要求を受け付けると共にプログラムの中の画面処理の処理コード群以外の処理コードを実行し、処理要求に対応するプログラムの中の処理コードの実行の結果を電子機器に送信する制御部の一例としてS7−S9の処理を実行する。
また、サーバ20で実行される、S6の処理は、画面処理の処理コード群に、前記プログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与する生成ステップの一例である。また、サーバ20のCPU21等は、画面処理の処理コード群に、前記プログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与する生成部の一例としてS6の処理を実行する。
また、情報処理端末10で実行されるS11−S12の処理は、プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップの一例である。また、情報処理端末10のCPU11等は、プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部の一例としてS11−S12の処理を実行する。
また、情報処理端末10で実行されるS15の処理は、画面処理の処理コード群に付与されたプログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信するステップの一例である。また、情報処理端末10のCPU11等は、画面処理の処理コード群に付与されたプログラムの中の画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信する受信部の一例としてS15の処理を実行する。
また、情報処理端末10で実行されるS13−S18の処理は、画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、それぞれの処理要求に対応する処理の結果を取得するステップと、取得された処理の結果に基づいてプログラムの画面を生成する処理ステップの一例である。また、情報処理端末10のCPU11等は、画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共にそれぞれの処理要求に対応する処理の結果を取得してプログラムの画面を生成する処理部の一例としてS13−S18の処理を実行する。
以上、説明したように、本実施形態のサーバ20は、情報処理端末10に搭載可能なアプリプログラムを、UI処理モジュールとデータ処理モジュールとに分離することができる。例えば、サーバ20は、アプリプログラムの中の、アプリの実行に伴って提供される表示画面を定義する記述文の中で宣言されている関数、変数等の要素オブジェクトをUI処理モジュールとして抽出できる。同様にして、サーバ20は、UI処理モジュールを除くアプリプログラムの中の、関数、変数等の要素オブジェクトをデータ処理モジュールとして抽出できる。サーバ20は、抽出されたUI処理モジュールとデータ処理モジュールに対し、処理の実行に伴い、各モジュール間で双方向通信が可能なプロキシプログラムを付与することができる。
この結果、本実施形態の情報処理システム1では、情報処理端末10に分散されたUI処理モジュールとサーバ20に分散されたデータ処理モジュールとを非同期に実行し、アプリ機能を提供することができる。情報処理システム1では、例えば、業務の利用に係る個人情報等の秘匿性の高い情報の処理はサーバ20側の処理として実行できる。このため、情報処理端末10の紛失や情報所漏洩に対する、秘匿性の高い情報の安全性を高めることができる。
また、本実施形態の情報処理システム1では、アプリの実行に伴う表示画面の処理は、情報処理端末10のUI処理モジュールとして実行できる。このため、例えば、表示画面に対する操作入力等の処理は、UI処理モジュールに同期して実行することができる。本実施形態の情報処理システム1では、アプリの実行に伴う表示画面の操作応答性を相対的に高めることができる。本実施形態の情報処理システム1では、情報処理端末10の業務利用に係る情報の安全性と操作応答性の確保を両立が提供できる。
<実施形態2>
実施形態1に例示の情報処理システム1は、UI処理モジュール20bとデータ処理モジュール20cとに分離されたモバイルアプリ20aのプログラムをそれぞれ情報処理端末10、サーバ20に分散して非同期に実行する。UI処理モジュール20b及びデータ処理モジュール20cにはIFプロキシ20iが付与される。情報処理端末10とサーバ20とに分散された各処理モジュールは、相互のIFプロキシ20iを介してデータの授受を行うことでモバイルアプリ20aの機能を提供する。
実施形態2(以下、本実施形態と称す)の情報処理システム1では、サーバ20は、分離された各処理モジュールに対し、例えば、オブジェクトマネージャをさらに付与する。既に説明したように、UI処理モジュール20bには、アプリの実行に伴って提供される画面を定義する記述文の中で宣言されている関数、変数等の要素オブジェクトが分類される。
オブジェクトマネージャは、例えば、UI処理モジュール20bとして分類された要素オブジェクトの中の各関数要素に対し、定期的にアクセスパフォーマンスを計測する。アクセスパフォーマンスは、例えば、関数要素毎に計測される。なお、アクセスパフォーマンスの計測周期は、例えば、情報処理システム1を構成する各機器の性能、モバイルアプ
リ機能等により設定することができる。例えば、クセスパフォーマンスの計測周期として分単位、時単位等が例示できる。
オブジェクトマネージャが計測するアクセスパフォーマンスには、例えば、各関数要素が、サーバ20側で実行されるデータ処理モジュール20cを呼び出した“データ参照回数”が含まれる。同様にして、アクセスパフォーマンスには、例えば、各関数要素が処理要求を発生してから実行結果の戻り値を受け付けるまでの“実行遅延時間”が含まれる。
オブジェクトマネージャは、例えば、計測された各関数要素のアクセスパフォーマンスと所定の閾値との比較を行い、該アクセスパフォーマンスと所定閾値との相対関係を判定する。オブジェクトマネージャは、例えば、判定された各関数要素のアクセスパフォーマンスと所定閾値との相対関係に応じて、関数要素の処理モジュール間の移動を決定する。関数要素の処理モジュール間の移動には、例えば、データ処理モジュール20cからUI処理モジュール20bへの移動、UI処理モジュール20bからデータ処理モジュール20cへの移動が含まれる。
本実施形態の情報処理システム1では、例えば、業務に利用されるモバイルアプリ20aの使用頻度やモバイル環境下の通信状態といった利用環境に対応して、関数要素毎の処理モジュール間の移動を実行できる。本実施形態の情報処理システム1では、アプリ機能の利用環境に対応した操作応答性が提供できる。
(オブジェクトマネージャ)
以下、図7A−7Cに例示の図面を参照し、本実施形態のオブジェクトマネージャの処処理を説明する。なお、本実施形態の情報処理端末10及びサーバ20のハードウェア構成は、実施形態1と同様である。
図7Aに、オブジェクトマネージャの処理の説明図を例示する。なお、図7Aに例示の説明図において、図3A,3Bに例示の実施形態1の処理の説明図と共通する箇所には同一の番号を付与し、説明を省略する。また、モバイルアプリ20aのソースコードに対するUI処理モジュール20b、データ処理モジュール20cへの分離処理は、図3Aに例示の実施形態1の分離処理と同様の処理である。
図7Aの説明図において、矩形枠で囲まれた“4”に例示のように、モバイルアプリ20aから分離されたUI処理モジュール20bにはIFプロキシ20i、オブジェクトマネージャ20jが付与されて情報処理端末10に転送される。また、モバイルアプリ20aから分離されたデータ処理モジュール20bには、IFプロキシ20i、オブジェクトマネージャ20jが付与されてサーバ20に保持される。
情報処理端末10に分散して実行されるUI処理モジュール20bは、サーバ20で分散して実行されるデータ処理モジュール20cとの間でIFプロキシ20iを介し、データの授受を行う。UI処理モジュール20bには、LCD15a等の表示デバイスに表示される表示画面を定義する記述文(例えば、HTML)の中で宣言されている関数、変数等の要素オブジェクトが分類される。
オブジェクトマネージャ20jは、例えば、UI処理モジュール20b、データ処理モジュール20cのそれぞれに分類された要素オブジェクトの関数要素について、プロセス実行時のアクセスパフォーマンスを計測する。アクセスパフォーマンスの計測は関数要素毎に実行される。
例えば、UI処理モジュール20bの関数要素のプロセスで発生した処理要求は、IF
プロキシ20iを介してデータ処理モジュール20c内の、処理要求に対応する要素オブジェクトに送信される。また、データ処理モジュール20cからの、処理要求に対する結果(戻り値)は、IFプロキシ20iを介してUI処理モジュール20b内の、処理要求を発生した関数要素に引き渡される。
オブジェクトマネージャ20jは、例えば、各処理モジュール内の各関数要素の、IFプロキシ20iに対するアクセスを監視し、上述したアクセスパフォーマンスを計測する。例えば、UI処理モジュール20b内の各関数要素がデータ処理モジュール20cに対する処理要求を発生したと想定する。
オブジェクトマネージャ20jは、例えば、データ処理モジュール20cに対する処理要求の回数を“データ参照回数”として計測する。“データ参照回数”には、UI処理モジュール20b内の処理要求を発生した関数要素と、該関数要素の処理要求を受け付けて処理結果(戻り値)を送信するデータ処理モジュール20c内の関数要素とが対応付けられる。
また、オブジェクトマネージャ20jは、例えば、各関数要素が処理要求を発生させたときから処理要求に対する結果(戻り値)を受信するまでの期間を“実行遅延時間”として計測する。“実行遅延時間”には、“データ参照回数”と同様に、処理要求を発生した関数要素と、該関数要素の処理要求を受け付けて処理結果(戻り値)を送信する関数要素とが対応付けられる。
例えば、UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、UI処理モジュール20b内の各関数要素が処理要求を発生させたときから処理要求に対する結果(戻り値)を受信するまでの期間を“実行遅延時間”として計測する。
発生した処理要求に対して結果(戻り値)を応答する関数要素には、例えば、サーバ20側でプロセスが実行されるデータ処理モジュール20cの関数要素が含まれる。このケースの“実行遅延時間”は、処理要求の発生から処理要求に対する結果(戻り値)をIFプロキシ20iを介して受信するまでの期間となる。
また、発生した処理要求に対して結果(戻り値)を応答する関数要素には、例えば、データ処理モジュール20cから移動後の、情報処理端末10内でプロセスが実行される関数要素が含まれる。このケースでは、“実行遅延時間”は、処理要求の発生から処理要求に対する結果(戻り値)を、処理要求を発生させた関数要素が受信するまでの期間となる。但し、このケースでは、オブジェクトマネージャ20jは、例えば、データ処理モジュール20cから移動後の関数要素に対する処理要求の回数を“データ参照回数”として計測することができる。
データ処理モジュール20cに付与されたオブジェクトマネージャ20jについても同様である。オブジェクトマネージャ20jは、例えば、実行中のデータ処理モジュール20c内の各関数要素の、IFプロキシ20iに対するアクセスを監視し、アクセスパフォーマンスを計測する。
例えば、UI処理モジュール20b内の各関数要素がデータ処理モジュール20cに対する処理要求を発生した場合には、オブジェクトマネージャ20jは、例えば、データ処理モジュール20cに対する処理要求の回数を“データ参照回数”として計測する。
また、オブジェクトマネージャ20jで計測される“実行遅延時間”は、以下の通りである。“実行遅延時間”は、UI処理モジュール20b内の各関数要素が発生させた処理
要求をIFプロキシ20iを介して受信したときから、データ処理モジュール20c内の関数要素が処理要求に対する結果(戻り値)を送信するまでの期間となる。
なお、データ処理モジュール20cから移動後の、情報処理端末10内でプロセスが実行される関数要素に対する処理要求が発生したケースでは、次の通りである。すなわち、“データ参照回数”は、UI処理モジュール20cに対する処理要求の回数となる。また、“実行遅延時間”は、データ処理モジュール20c内の各関数要素が処理要求を発生させたときから、処理要求の発生から処理要求に対する結果(戻り値)をIFプロキシ20iを介して受信するまでの期間として計測する。
データ処理モジュール20cに付与されたオブジェクトマネージャ20jでは、“データ参照回数”、“実行遅延時間”には、処理要求を発生した関数要素と、該関数要素の処理要求を受け付けて処理結果(戻り値)を送信する関数要素とが対応付けられる。
オブジェクトマネージャ20jは、例えば、計測したアクセスパフォーマンスに基づいてテーブルを生成する。図7Bに、計測したアクセスパフォーマンスに基づいて生成されたテーブルTb1を例示する。図7Bに例示のテーブルTb1は、例えば、データ処理モジュール20cに付与されたオブジェクトマネージャ20jで生成されたテーブル例である。また、図7Bに例示のテーブルTb1は、データ処理モジュール20cに付与されたオブジェクトマネージャ20jによる、関数要素の移動が発生する前の計測例である。
図7BのテーブルTb1例では、処理要求を行った関数要素の名称が縦方向のカラムに配列され、処理要求に対して結果を応答した関数要素の名称が横方向のカラムに配列される。
なお、データ処理モジュール20cの関数要素には、UI処理モジュール20bに分類された各要素オブジェクトの、異なるプロセスから複数の処理要求が発生する。このため、UI処理モジュール20bの一つの関数要素名が格納されたカラムには、データ処理モジュール20c内の複数の関数要素に対するアクセスパフォーマンスが対応付けられる。
また、オブジェクトマネージャ20jは、例えば、UI処理モジュール20bに分類された関数要素について、データ処理モジュール20cに対し処理要求が発生した場合には、監視期間を設け、該監視期間に発生するデータ参照回数を計測する。監視期間として、例えば、処理要求の発生後の直近の60秒間とすることができる。但し、監視期間の設定は、情報処理システム1に含まれる各機器の性能、分散実行するモバイルアプリ機能等に応じて設定することができる。
図7Bに例示のテーブルTb1では、縦方向に配列された関数要素と横方向に配列された関数要素との交差位置のカラムに、測定されたアクセスパフォーマンスが格納される。測定されたアクセスパフォーマンスは、例えば、“{” access”:AAA “delay”:B
BB}”といった形式で格納される。“{}”内の“access”はデータ参照回数を表し、“:AAA”は計測値を表す。また、“{}”内の“delay”は実行遅延時間を表し、“
:BBB”は秒単位の計測値を表す。
図7BのテーブルTb1例では、データ参照回数は、上述した監視期間を処理要求の発生後の直近の60秒間とした場合の計測例である。また、実行遅延時間は、例えば、処理要求の発生後のデータ参照回数について、直近の10回のデータ参照回数に対する実行遅延時間を平均した場合の計測例である。但し、実行遅延時間の計測方法は、情報処理システム1に含まれる各機器の性能、分散実行するモバイルアプリ機能等に応じて設定することができる。例えば、計測されたデータ参照回数の中で最大実行遅延時間、或いは、最小
遅延時間を計測値とすることが例示できる。
図7BのテーブルTb1例では、例えば、縦方向の“items”が格納された関数要素の
カラムには、横方向の“result”、“save”、“analyze”が格納された関数要素のカラ
ムが対応付けられている。例えば、UI処理モジュール20bに分類された関数要素“items”の実行プロセスでは、データ処理モジュール20cに分類された関数要素“result
”、“save”、“analyze”のそれぞれに処理要求が発生していることが判る。
データ処理モジュール20cの関数要素“result”に対して計測されたデータ参照回数は“5回”であり、実行遅延時間は“0.2秒”であることが判る。同様にして、関数要素“save”に対して計測されたデータ参照回数は“10回”であり、実行遅延時間は“0.2秒”であることが判る。また、関数要素“analyze”に対して計測されたデータ参照
回数は“3回”であり、実行遅延時間は“1秒”であることが判る。
UI処理モジュール20bの関数要素“items”の実行プロセスから発生した処理要求
の相手先は、データ処理モジュール20cの関数要素“save”が相対的に高いことが判る。また、UI処理モジュール20bの関数要素“items”の実行プロセスから発生した処
理要求の中では、データ処理モジュール20cの関数要素“analyze”を相手先とした実
行遅延時間が相対的に遅いことが判る。
また、データ処理モジュール20cの関数要素“analyze”を相手先として処理要求を
発生させるUI処理モジュール20bの関数要素“items”、“result”、“save”につ
いて、各計測値を比較すると次の状態が判る。UI処理モジュール20bの関数要素“result”からのデータ参照回数が“20回”、実行遅延時間が“2.3秒”であり、それぞれに相対的に高い計測値が格納されていることが判る。
オブジェクトマネージャ20jは、例えば、関数要素毎に計測されたアクセスパフォーマンスに基づいて、UI処理モジュール20bとデータ処理モジュール20cとの間で移動する関数要素を決定する。
処理モジュール間で移動する関数要素の決定は、例えば、計測されたアクセスパフォーマンスと閾値との相対関係により判定される。なお、判定のための閾値との相対関係は、例えば、テーブル化した判定条件として保持することができる。
図7Cに、処理モジュール間で関数要素の移動を決定するための判定条件を格納したテーブルTb2を例示する。図7Cに例示のテーブルTb2は、例えば、処理モジュール間の関数要素の移動を判定するための閾値として、上限値および下限値を有する場合の一例である。なお、移動を判定するための閾値は、例えば、情報処理システム1を構成する各機器の性能、モバイルアプリ機能等により設定することができる。閾値の個数は単数でもよく、上限値、中間値、下限値といった3以上の閾値を有するとしてもよい。
オブジェクトマネージャ20jは、上限値および下限値の閾値を有することで、以下の効果が期待できる。すなわち、計測されたアクセスパフォーマンスが上限値以上となることで、関数要素への処理要求の頻度が高いことを判定できる。特定の関数要素への処理頻度が高い場合には、例えば、UI処理モジュール20bとデータ処理モジュール20cとの間のデータの授受についての通信頻度が高くなる。通信頻度が高い場合には、データの授受の処理に情報処理端末10のリソースが割り当てられてしまうため、操作応答性の低下を招く虞がある。
本実施形態では、閾値判定により、アクセスパフォーマンスが上限値以上となる関数要
素を特定することで、該関数要素を処理要求を行う関数要素と同じ場所に移動することができる。例えば、サーバ20でプロセスが実行される処理要求の頻度が高い関数要素を、処理要求を発生させた関数要素が含まれる情報処理端末10側に移動することで、データの授受についての通信負荷を軽減することが可能となる。通信負荷の軽減により、情報処理端末10では、操作応答性についてのパフォーマンスを維持できるため、操作応答性の低下を回避できる。情報処理端末10の利用環境に対応した操作応答性が提供できる。
また、データ処理モジュール20cに分類される関数要素は、プロセスの実行の際に秘匿性の高い情報をデータとして扱う場合がある。このため、サーバ20で分散実行中のデータ処理モジュール20cから関数要素を情報処理端末10に移動した場合では、情報の安全性が低下する虞がある。
本実施形態では、計測されたアクセスパフォーマンスに対する下限値を設けることで、例えば、情報処理端末10に移動したデータ処理モジュール20cの関数要素をサーバ20側に戻すための移動を判定することが可能となる。情報処理端末10に移動したデータ処理モジュール20cの関数要素をサーバ20側に戻すことで、長期的な情報の安全性を維持することが可能となる。情報処理端末10の利用環境を考慮した情報の安全性が提供できる。
上限値となる閾値として、例えば、計測されたアクセスパフォーマンスのデータ参照回数が10秒間で3回以上であり、且つ、実行遅延時間が1.0秒を超えるといった条件を例示することができる。また、下限値となる閾値として、例えば、アクセスパフォーマンスの内、データ参照回数が60秒間で1回以下といった条件を例示することができる。
図7CのテーブルTb2例では、IFプロキシ20iを介して処理要求を行った関数要素を実行する装置が縦方向のカラムに配列され、処理要求に対して結果を応答した関数要素を実行する装置が横方向のカラムに配列される。図7CのテーブルTb2の例では、“スマート端末”との記載は情報処理端末10を表し、“クラウド”との記載はサーバ20を表す。
図7Cに例示のテーブルTb2では、縦方向のカラムに配列された装置と横方向のカラムに配列された装置とが交差する位置のカラムに、関数要素を移動するための判定条件が格納される。例えば、縦方向の“スマート端末”が格納されたカラムと横方向の“クラウド”が格納されたカラムとの交差位置には、“上限値以上でクラウド側の関数・オブジェクトをスマート端末へ移動”との判定条件が格納されている。
UI処理モジュール20bに分類された関数要素のデータ処理モジュール20cに分類された関数要素への、計測されたアクセスパフォーマンスが上限値以上の場合に、データ処理モジュール20c内の関数要素をUI処理モジュール20bに移動することが判る。
例えば、図7Bに例示のテーブルTb1では、UI処理モジュール20bの“result”からデータ処理モジュール20cの“analyze”へのデータ参照回数が“20回”、実行
遅延時間が“2.3秒”である。
データ処理モジュール20cに付与されたオブジェクトマネージャ20jは、例えば、図7Cに例示のテーブルTb2に格納された条件を参照し、上記の計測値が上限値以上の場合には、関数要素“analyze”をUI処理モジュール20bに移動することを決定する
また、図7Cに例示のテーブルTb2では、縦方向の“スマート端末”が格納されたカ
ラムと横方向の“スマート端末”が格納されたカラムとの交差位置には、“下限閾値以下でクラウドへ移動”との判定条件が格納されている。
UI処理モジュール20cに付与されたオブジェクトマネージャ20jは、例えば、情報処理端末10に移動後の関数要素“analyze”へのアクセスパフォーマンスを計測する
。そして、図7Cに例示のテーブルTb2に格納された条件を参照し、計測されたアクセスパフォーマンスの計測値が下限閾値以下の場合には、関数要素“analyze”をデータ処
理モジュール20cに戻すための移動を決定する。UI処理モジュール20cに付与されたオブジェクトマネージャ20jにより、情報処理端末10に移動した関数要素“analyze”をサーバ20に戻すことが可能となる。
図7Aに例示の説明図に戻り、矩形枠で囲まれた“6”には、上述した関数要素の移動処理が示されている。すなわち、矩形枠で囲まれた“4”のデータ処理モジュール20cには、要素e4として関数要素“analyze”が分類されている。図7B、7Cで説明した
ように、計測されたアクセスパフォーマンスが上限値以上の関数要素“analyze”は、情
報処理端末10に移動する。関数要素“analyze”の移動は、データ処理モジュール20
cに付与されたタスクマネージャ20jにより実行される。
タスクマネージャ20jは、例えば、データ処理モジュール20c内から関数要素“analyze”を特定し、取得する。そして、オブジェクトマネージャ20jは取得した関数要
素“analyze”を情報処理端末10に転送する。関数要素“analyze”の転送は、例えば、通信部26を介して行われる。
UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、サーバ20から転送された関数要素“analyze”を通信部16を介して受信する。受信された関数要
素“analyze”は、オブジェクトマネージャ20jにより、UI処理モジュール20bに
結合される。情報処理端末10では、関数要素“analyze”が結合されたUI処理モジュ
ール20bが実行される。
なお、UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、関数要素“analyze”にアクセスパフォーマンスを計測するための識別子を付与することがで
きる。オブジェクトマネージャ20jは、関数要素“analyze”に付与された識別子に基
づいて、移動後のアクセスパフォーマンスを継続して計測することができる。
〔処理ブロック構成〕
図8に、本実施形態の情報処理システム1における、処理ブロックの説明図を例示する。なお、図8に例示の説明図において、図5に例示の実施形態1の処理ブロックの説明図と共通する箇所には同一の番号を付与し、説明を省略する。
図8に例示のように、本実施形態の情報処理システム1の情報処理端末10は、実施形態1の処理ブロック構成に、オブジェクトマネージャ実行部105の処理手段を備える。また、サーバ20は、実施形態1の処理ブロック構成に、オブジェクトマネージャ付与部209、オブジェクトマネージャ実行部210の各処理手段を備える。
(サーバ)
図8に例示の説明図において、オブジェクトマネージャ付与部209は、例えば、IFプロキシ20iが付与されたUI処理モジュール20b及びデータ処理モジュール20cに対しオブジェクトマネージャ20jを付与する。そして、オブジェクトマネージャ付与部209は、オブジェクトマネージャ20j、IFプロキシ20iが付与されたUI処理モジュール20b及びデータ処理モジュール20cをモジュール管理部206に引き渡す
。なお、オブジェクトマネージャ20jについては、図7A−7Cで説明した。
オブジェクトマネージャ実行部210は、例えば、オブジェクトマネージャ20j、IFプロキシ20iが付与されたUI処理モジュール20bcを通信部26を介して情報処理端末10に転送する。また、オブジェクトマネージャ実行部210は、例えば、オブジェクトマネージャ20j、IFプロキシ20iが付与されたデータ処理モジュール20cをモバイルアプリ実行部207に引き渡す。
オブジェクトマネージャ20j、IFプロキシ20iが付与されたデータ処理モジュール20cは、モバイルアプリ実行部207で実行される。オブジェクトマネージャ20jは、例えば、データ処理モジュール20cに分類された各関数要素のアクセスパフォーマンスを定期的に測定し、測定結果に基づいて、図7Bに例示のテーブルTb1を生成する。
また、オブジェクトマネージャ20jは、例えば、図7Cに例示のテーブルTb2を参照し、データ処理モジュール20cに分類された関数要素の情報処理端末10への移動の判定を行う。関数要素の移動の判定は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値との比較により行われる。
オブジェクトマネージャ20jは、例えば、移動判定が行われたデータ処理モジュール20cの関数要素を抽出し、抽出した関数要素をオブジェクトマネージャ実行部210に引き渡す。オブジェクトマネージャ実行部210は、例えば、オブジェクトマネージャ20jから引き渡された関数要素を、通信部26を介して情報処理端末10に送信する。
なお、オブジェクトマネージャ実行部210は、例えば、通信部26を介して情報処理端末10側で移動判定が行われた関数要素を受信する。オブジェクトマネージャ実行部210は、受信した関数要素をモバイルアプリ実行部207で実行中のオブジェクトマネージャ20jに引き渡す。オブジェクトマネージャ20jは、例えば、オブジェクトマネージャ実行部210から引き渡された関数要素を、データ処理モジュール20cに追加する。データ処理モジュール20cに追加された関数要素は、例えば、サーバ20cのリソースを用いて実行される。
(情報処理端末)
図8に例示の説明図において、例えば、オブジェクトマネージャ20j、IFプロキシ20iが付与されたUI処理モジュール20bは、モバイルアプリ実行部103で実行される。
オブジェクトマネージャ実行部105は、例えば、サーバ20で移動判定されたデータ処理モジュール20cの関数要素を、通信部16を介して受信する。オブジェクトマネージャ実行部105は、受信した関数要素をモバイルアプリ実行部103で実行中のオブジェクトマネージャ20jに引き渡す。オブジェクトマネージャ20jは、例えば、オブジェクトマネージャ実行部105から引き渡された関数要素を、UI処理モジュール20bに追加する。UI処理モジュール20bに追加された関数要素は、例えば、情報処理端末10のリソースを用いて実行される。UI処理モジュール20bに追加された関数要素は、例えば、UI処理モジュール20b内の処理要求を発生させる関数要素のプロセスに同期して実行される。
UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、例えば、UI処理モジュール20bに分類された各関数要素のアクセスパフォーマンスを定期的に測定し、測定結果に基づいて、図7Bに例示のテーブルTb1を生成する。なお、UI処理
モジュール20bに分類された各関数要素には、UI処理モジュール20bに追加された関数要素が含まれる。
UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、例えば、図7Cに例示のテーブルTb2を参照し、データ処理モジュール20bに分類された関数要素の情報処理端末10への移動の判定を行う。関数要素の移動の判定は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値、下限閾値との比較により行われる。
UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、例えば、移動判定が行われたUI処理モジュール20bの関数要素を抽出し、抽出した関数要素をオブジェクトマネージャ実行部105に引き渡す。抽出された関数要素は、例えば、UI処理モジュール20bから削除される。オブジェクトマネージャ実行部105は、例えば、オブジェクトマネージャ20jから引き渡された関数要素を、通信部16を介してサーバ20に送信する。
〔処理フロー〕
以下、図9A、9Bに例示のフローチャートを参照し、本実施形態の情報処理システム1の分離された処理モジュール間の関数要素の移動処理を説明する。図9Aは、サーバ20における関数要素の移動処理を説明するフローチャートの例示である。なお、図9Aに例示の説明図において、図6Aに例示の実施形態1のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
また、図9Bは、情報処理端末10における関数要素の移動処理を説明するフローチャートの例示である。図9Bに例示の説明図において、図6Bに例示の実施形態1のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
(サーバ)
図9Aに例示のフローチャートにおいて、サーバ20では、図6Aに例示のS1−S6の処理が実行される。サーバ20は、例えば、S6の処理でIFプロキシ20iが付与されたUI処理モジュール20b、データ処理モジュール20cのそれぞれにオブジェクトマネージャ20jを付与する(S21)。サーバ20は、例えば、オブジェクトマネージャ20j及びIFプロキシ20iが付与されたUI処理モジュール20b、データ処理モジュール20cのそれぞれをS7の処理に引き渡す。サーバ20は、図6Aに例示のS7−S9の処理を継続して実行する。
サーバ20では、オブジェクトマネージャ20j及びIFプロキシ20iが付与されたデータ処理モジュール20cが実行される。オブジェクトマネージャ20jは、例えば、データ処理モジュール20cに分類された各関数要素のアクセスパフォーマンスを定期的に測定する(S22)。なお、アクセスパフォーマンスの測定については、図7A,7Bで説明した。
オブジェクトマネージャ20jを実行するサーバ20は、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過しているか否かを判定する(S23)。オブジェクトマネージャ20jは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過している場合には(S23,Yes)、測定結果に基づいて、図7Bに例示のテーブルTb1を生成する。一方、オブジェクトマネージャ20jは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過していない場合には(S23,No)、アクセスパフォーマンスの測定を継続する。
S24の処理では、オブジェクトマネージャ20jを実行するサーバ20は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値との比較を行う。そして、サーバ20は、例えば、図7Cに例示のテーブルTb2に基づいて、アクセスパフォーマンスの測定結果が予め設定された上限閾値以上の関数要素(関数・オブジェクト)を情報処理端末10に移動させる。なお、オブジェクトマネージャ20jの関数要素の処理モジュール間の移動については、図7A−7C等で説明した。
サーバ20は、例えば、アクセスパフォーマンスの測定結果が上限閾値以上の関数要素をデータ処理モジュール20cから抽出し、抽出した関数要素を通信部26を介して情報処理端末10に送信する。
S25の処理では、サーバ20は、例えば、情報処理端末10から送信された関数要素を受け付けているかを判定する。サーバ20は、例えば、情報処理端末10から送信された関数要素を受け付けている場合には(S25,Yes)、S26の処理に移行する。一方、サーバ20は、例えば、情報処理端末10から送信された関数要素を受け付けていない場合には(S25,No)、S22の処理に移行する。S22の処理では、データ処理モジュール20cから情報処理端末10側に移動した関数要素を除く、他の関数要素についてのアクセスパフォーマンスが継続して定期的に計測される。
S26の処理では、サーバ20は、例えば、受け付けた関数要素をデータ処理モジュール20cに挿入し、モジュール結合を行う。S26の処理後、サーバ20は、S22の処理に移行する。S22の処理では、例えば、S26の処理で挿入された関数要素を含むデータ処理モジュール20cについての、アクセスパフォーマンスの定期的な測定が継続して実行される。
(情報処理端末)
図9Bに例示のフローチャートにおいて、情報処理端末10では、図6Bに例示のS11−S18の処理が実行される。情報処理端末10では、オブジェクトマネージャ20j及びIFプロキシ20iが付与されたUI処理モジュール20bが実行される。情報処理端末10では、UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、例えば、データ処理モジュール20bに分類された各関数要素のアクセスパフォーマンスを定期的に測定する(S31)。なお、アクセスパフォーマンスの測定については、図7A,7Bで説明した。
オブジェクトマネージャ20jを実行する情報処理端末10は、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過しているか否かを判定する(S32)。オブジェクトマネージャ20jは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過している場合には(S32,Yes)、測定結果に基づいて、図7Bに例示のテーブルTb1を生成する。一方、オブジェクトマネージャ20jは、例えば、アクセスパフォーマンスの測定を開始してから一定時間が経過していない場合には(S32,No)、アクセスパフォーマンスの測定を継続する。
S33の処理では、オブジェクトマネージャ20jを実行する情報処理端末10は、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と予め設定された上限閾値、下限閾値との比較を行う。そして、情報処理端末10は、例えば、図7Cに例示のテーブルTb2に基づいて、アクセスパフォーマンスの測定結果が予め設定された上限閾値以上、下限閾値以下の関数要素(関数・オブジェクト)をサーバ20に移動させる。なお、オブジェクトマネージャ20jの関数要素の処理モジュール間の移動については、図7A−7C等で説明した。
情報処理端末10は、例えば、アクセスパフォーマンスの測定結果が上限閾値以上、下限閾値以下の関数要素をUI処理モジュール20bから抽出し、削除する。そして情報処理端末10は、例えば、抽出した関数要素を通信部16を介してサーバ20に送信する。
S34の処理では、情報処理端末10は、例えば、サーバ20から送信された関数要素を受け付けているかを判定する。情報処理端末10は、例えば、サーバ20から送信された関数要素を受け付けている場合には(S34,Yes)、S35の処理に移行する。一方、情報処理端末10は、例えば、サーバ20から送信された関数要素を受け付けていない場合には(S34,No)、S31の処理に移行する。S31の処理では、UI処理モジュール20bからサーバ20側に移動した関数要素を除く、他の関数要素についてのアクセスパフォーマンスが継続して定期的に計測される。
S35の処理では、情報処理端末10は、例えば、受け付けた関数要素をUI処理モジュール20bに挿入し、モジュール結合を行う。S35の処理後、情報処理端末10は、S31の処理に移行する。S31の処理では、例えば、S35の処理で挿入された関数要素を含むUI処理モジュール20bについての、アクセスパフォーマンスの定期的な測定が継続して実行される。
ここで、サーバ20で実行されるS22−S24の処理は、画面処理の処理コード群に含まれる1以上の処理コードのそれぞれについて処理要求頻度を計測するステップと、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応するプログラム中の処理コードについての画面処理の処理コード群への移動を決定し、電子機器に送信する制御ステップの一例である。また、サーバ20のCPU21等は、画面処理の処理コード群に含まれる1以上の処理コードのそれぞれについて処理要求頻度を計測すると共に計測された処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応する前記プログラム中の処理コードについての画面処理の処理コード群への移動を決定し、電子機器に送信する制御部の一例として、S22−S24の処理を実行する。
また、情報処理端末10で実行されるS31−35の処理は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応するプログラム中の処理コードを受信するステップと、画面処理の処理コード群に含まれる1以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理ステップの一例である。また、情報処理端末10のCPU11等は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応するプログラム中の処理コードを受信するステップと、画面処理の処理コード群に含まれる1以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理部の一例としてS31−S35の処理を実行する。
以上説明したように、本実施形態の情報処理システム1では、オブジェクトマネージャ20jにより、サーバ20は、データ処理モジュール20cとして分類された要素オブジェクトの中の各関数要素に対し、定期的にアクセスパフォーマンスを測定することができる。同様にして、情報処理端末10は、UI処理モジュール20bとして分類された要素オブジェクトの中の各関数要素に対し、定期的にアクセスパフォーマンスを測定することができる。
サーバ20は、測定された関数要素毎のアクセスパフォーマンスに対して上限閾値判定を行うことで、データ処理モジュール20cとして分類された関数要素を情報処理端末10側に移動することができる。例えば、処理要求の発生頻度が高い、処理遅延時間が長い
、或いは、これらの組合せを満たすデータ処理モジュール20c内の関数要素を、処理要求を発生させた関数要素と同じ実行場所に移動することができる。
情報処理端末10は、測定された関数要素毎のアクセスパフォーマンスに対して上限閾値判定を行うことで、UI処理モジュール20bとして分類された関数要素をサーバ20側に移動することができる。例えば、処理要求の発生頻度が高い、処理遅延時間が長い、或いは、これらの組合せを満たすUI処理モジュール20b内の関数要素を、処理要求を発生させた関数要素と同じ実行場所に移動することができる。
処理要求の発生頻度の高い関数要素を、処理要求を発生させた関数要素と同じ実行場所に移動することで、データの授受についての通信負荷を軽減できる。この結果、本実施形態の情報処理システム1は、通信負荷の増加に基づく操作応答性の低下を軽減できる。情報処理端末10の利用環境に対応した操作応答性が提供できる。
また、情報処理端末10は、測定された関数要素毎のアクセスパフォーマンスに対して下限閾値判定を行うことで、UI処理モジュール20bとして分類された関数要素をサーバ20側に移動することができる。例えば、データ処理モジュール20cから移動された関数要素を、移動元のデータ処理モジュール20cに移動することができる。秘匿性の高い情報をデータとして扱う傾向にあるデータ処理モジュール20c関数要素を、移動元のサーバ20側に戻すことができる。この結果、本実施形態の情報処理システム1は、長期的な情報の安全性を維持できる。情報処理端末10の利用環境を考慮した情報の安全性が提供できる。
〔実施形態3〕
実施形態2に例示の情報処理システム1は、アクセスパフォーマンスを測定し、上限閾値との相対関係に基づいて処理要求の発生頻度の高い関数要素のUI処理モジュール20b、データ処理モジュール20c間の移動を提供する。同様にして、上限閾値との相対関係に基づいて移動後の関数用を移動元の処理モジュールに戻す再移動を提供する。関数要素の移動判定に使用される上限閾値及び下限閾値は、例えば、オブジェクトマネージャ20jに予め保持された固定値が使用される。
実施形態3(以下、本実施形態と称す)に例示の情報処理システム1は、関数要素の移動判定に使用される上限値及び下限値を、情報処理端末10を操作するユーザの操作状態に応じて動的に可変する。
例えば、モバイル環境下においては、情報処理端末10とサーバ20との間の通信環境が変化することが想定される。通信環境の変化に伴い、情報処理端末10とサーバ20との間の関数要素の移動が頻発する場合では、例えば、データの授受の処理に情報処理端末10のリソースが割り当てられてしまうため、操作応答性の低下を招く虞がある。
本実施形態の情報処理システム1では、例えば、操作頻度の高い画面表示部品の処理に関連付けられる関数要素の上限閾値、下限閾値を、情報処理端末10側に移動し易くするように可変する。例えば、UI処理モジュール20bに付与されるオブジェクトマネージャ20jに、画面表示部品についての操作履歴を取得する履歴取得機能を含める。
オブジェクトマネージャ20jは、例えば、取得した操作履歴をサーバ20に送信する。サーバ20側では、例えば、送信された操作履歴に基づいて操作頻度の高い画面表示部品の処理に関連付けられる関数要素の上限閾値、下限閾値を、情報処理端末10側に移動し易くするように可変する。また、オブジェクトマネージャ20jは、例えば、取得した操作履歴に基づいて操作頻度の高い画面表示部品の処理に関連付けられる関数要素の上限
閾値、下限閾値を、サーバ側20に移動し難くするように可変する。
この結果、通信環境の変化に伴う、情報処理端末10とサーバ20との間の関数要素の移動を抑制することができる。情報処理端末10の操作応答性の低下を抑制することができる。なお、本実施形態の情報処理端末10及びサーバ20のハードウェア構成は、実施形態1と同様である。
〔処理ブロック構成〕
図10に、本実施形態の情報処理システム1における、処理ブロックの説明図を例示する。なお、図10に例示の説明図において、図8に例示の実施形態2の処理ブロックの説明図と共通する箇所には同一の番号を付与し、説明を省略する。
図10に例示のように、本実施形態の情報処理システム1の情報処理端末10は、実施形態2の処理ブロック構成のオブジェクトマネージャ実行部105に、履歴取得部106、閾値変更部107の各処理手段を含む。また、サーバ20は、実施形態2の処理ブロック構成のオブジェクトマネージャ実行部210に、履歴管理部211、閾値変更部212の各処理手段を備える。
(情報処理端末)
図10に例示の説明図において、履歴取得部107は、例えば、情報処理端末10の表示画面に対する“ボタンA押下”、“ボタンB押下”、“テキストフィールド入力”、“スクロール”といった操作情報を取得する。操作情報は、例えば、入力部14である操作情報取得部を介して取得する。
また、履歴取得部107は、上述の操作情報によって処理要求が発生したUI処理モジュール20bの関数要素、及び、発生した処理要求に対して処理結果を応答したデータ処理モジュール20cの関数要素を取得する。処理要求が発生した関数要素、及び、処理結果を応答した関数要素は、例えば、モバイルアプリ実行部103を介して取得する。
履歴取得部107は、取得した処理要求が発生した関数要素、及び、処理結果を応答した関数要素を、操作情報に対応付けて主記憶部13の所定の領域に一時的に記憶する。上述の情報の記憶を、例えば、表示画面に対する操作情報が発生する度に繰り返すことで、主記憶部13には操作情報が履歴(操作履歴情報)として蓄積される。
履歴取得部107は、例えば、定期的に実行されるオブジェクトマネージャ20jのアクセスパフォーマンスの計測のタイミングで、主記憶部13に蓄積された操作履歴情報を取得する。取得する操作履歴情報は、例えば、直近の60回分の表示画面に対する操作情報とすることができる。なお、取得する操作履歴情報は、例えば、分単位等の単位期間で取得するとしてもよい。また、前回に実行されたアクセスパフォーマンスの計測から蓄積された操作履歴情報を取得するとしてもよい。
履歴取得部107は、例えば、取得した操作履歴情報をサーバ20に送信する。操作履歴情報の送信は通信部16を介して行われる。また、履歴取得部107は、取得した操作履歴情報を閾値変更部107に引き渡す。
閾値変更部107は、例えば、履歴取得部107から引き渡された操作履歴情報に基づいて、関数要素の移動を判定するための上限閾値、下限閾値を変更する。閾値変更部107は、例えば、情報処理端末10で実行される関数要素がサーバ20側に移動し難くなるよう、上限閾値、下限閾値を変更する。
閾値変更部107は、例えば、取得した操作履歴情報から、表示画面に表示される操作部品“ボタンA押下”、“ボタンB押下”といった操作情報を特定する。そして、閾値変更部107は、例えば、取得した操作履歴情報の中で、特定した操作情報の占める割合を表示画面に表示される操作部品毎に算出する。
例えば、取得した操作履歴情報の数量を“100”とする。操作履歴情報に含まれる、操作部品“ボタンA押下”に対する操作情報の数量が“20”の場合には、操作部品“ボタンA押下”に対する操作情報の割合は“20%”となる。同様にして、操作部品“ボタンB押下”に対する操作情報の数量が“40”の場合には、操作部品“ボタンB押下”に対する操作情報それぞれの割合は“40%”となる。
閾値変更部107は、例えば、操作履歴情報の全体数に対する割合が“30%”以上であれば、該当する操作部品への操作頻度は高いと判定する。上述の例では、例えば、操作部品“ボタンB押下”について操作頻度が高いと判定される。
閾値変更部107は、例えば、操作頻度が高いと判定された操作部品の操作履歴情報から、操作情報に対応付けられた関数要素を特定する。そして、閾値変更部107は、特定した関数要素についての移動を判定するための上限閾値、下限閾値の値をそれぞれ高く設定する。上限閾値、下限閾値を高く設定することで、例えば、移動後の関数要素を移動元に戻すための移動を抑制することができる。
図11Aに、移動を判定するための上限閾値、下限閾値を高く設定した変更例を例示する。図11Aにおいて、操作履歴情報D1は、閾値変更部107で取得された操作履歴情報を表す。また、Tb3は、変更後の上限閾値、下限閾値の設定状態を表すテーブル例である。
図11Aでは、操作履歴情報D1における操作部品“ボタンB押下”の占める割合が、操作頻度が高いと判定される30%以上の状態である。変更前の上限閾値は、データ参照回数が“10秒間で3回以上”であり、実行遅延時間は、“平均1秒以上経過”である。また、変更前の下限閾値は、データ参照回数が“60秒間で1回以上”であり、実行遅延時間は、“条件なし”である。
図11Aの操作履歴情報D1の、“ボタンB押下(result,analyze)、ボタンB押下
(result,analyze)、テキストフィールド入力(input)、スクロール(…)、ボタンB押下(result,analyze)、…”には、操作部品“ボタンB押下”が含まれる。操作部品
“ボタンB押下”の後段の“(result,analyze)”は、処理要求を発生させた関数要素
“result”、処理要求に対して結果を応答した関数要素“analyze”を表す。
図11Aの例では、Tb3の縦方向の“ボタンB(result,analyze)”のカラムと、
横方向の“上限閾値”のカラムの交差位置に示すように、データ参照回数は“10秒で3回以上”から“5秒間で3回以上”に変更されている。また、実行遅延時間に対する“平均1秒以上経過”といった上限閾値には変更がない。
同様にして、Tb3の縦方向の“ボタンB(result,analyze)”のカラムと、横方向
の“下限閾値”のカラムの交差位置に示すように、データ参照回数は“60秒間で1回以上”から“30秒間で1回以上”に変更されている。
なお、上限閾値、下限閾値の変更は、実行遅延時間の変更を含むとしてもよい。また、実行遅延時間を変更するとしてもよい。表示画面に表示される表示部品、発生した処理要求に対して結果を応答する関数等に応じて設定することができる。
(サーバ)
図10に例示の説明図において、履歴管理部211は、例えば、情報処理端末10から送信された操作情報履歴を通信部26を介して受信する。受信した操作履歴情報は、例えば、主記憶部22の所定の領域に一時的に記憶される。履歴管理部211は、受信した操作履歴情報を閾値変更部212に引き渡す。
閾値変更部212は、例えば、閾値変更部107と同様に、履歴管理部211から引き渡された操作履歴情報に基づいて、関数要素の移動を判定するための上限閾値、下限閾値を変更する。但し、閾値変更部212は、例えば、サーバ20で実行される関数要素が情報処理端末10側に移動し易くなるよう、上限閾値、下限閾値を変更する。
図11Bに、移動を判定するための上限閾値、下限閾値を低く設定した変更例を例示する。図11Bにおいて、操作履歴情報D2は、閾値変更部212で取得された操作履歴情報を表す。また、Tb4は、変更後の上限閾値、下限閾値の設定状態を表すテーブル例である。変更前の上限閾値は、データ参照回数が“10秒間で3回以上”であり、実行遅延時間は、“平均1秒以上経過”である。また、変更前の下限閾値は、データ参照回数が“60秒間で1回以上”であり、実行遅延時間は、“条件なし”である。
図11Bの操作履歴情報D2の、“ボタンA押下(items,save)、ボタンA押下(items,save)、テキストフィールド入力(input)、スクロール(…)、ボタンA押下(items,save)、…”には、操作部品“ボタンA押下”が含まれている。操作部品“ボタンB
押下”の後段の“(items,save)”は、処理要求を発生させた関数要素“items”、処理要求に対して結果を応答した関数要素“save”であることを表す。
閾値変更部212は、例えば、操作履歴情報D2に基づいて操作部品“ボタンA押下”
の占める割合を算出する。図11Bでは、操作部品“ボタンA押下”に対する操作情報
の全体数に対する割合が“30%”以上と判断される。このため、閾値変更部212は、操作部品“ボタンA押下”への操作頻度は高いと判定する。
閾値変更部212は、例えば、操作頻度が高いと判定された操作部品の操作履歴情報から、操作情報に対応付けられた関数要素を特定する。図11Bでは、操作部品“ボタンA押下”対応付けられた関数要素“items”、“save”が特定される。
閾値変更部212は、特定した関数要素についての移動を判定するための上限閾値、下限閾値の値をそれぞれ低く設定する。上限閾値、下限閾値を低く設定することで、例えば、処理要求に応答する関数要素の移動を促進することができる。
図11Aの例では、Tb4の縦方向の“ボタンA(items,save)”のカラムと、横方
向の“上限閾値”のカラムの交差位置に示すように、データ参照回数は“10秒で3回以上”から“20秒間で3回以上”に変更されている。また、実行遅延時間に対する“平均1秒以上経過”といった上限閾値には変更がない。
同様にして、Tb4の縦方向の“ボタンA(items,save)”のカラムと、横方向の“
下限閾値”のカラムの交差位置に示すように、データ参照回数は“60秒間で1回以上”から“90秒間で1回以上”に変更されている。
閾値変更部212は、例えば、上限閾値、下限閾値のデータ参照回数を変更することができる。また、実行遅延時間を変更するとしてもよい。或いは、データ参照回数、実行遅延時間を組合せて上限閾値、下限閾値を変更することができる。限閾値、下限閾値の変更
は、例えば、表示画面に表示される表示部品、発生した処理要求に対して結果を応答する関数等に応じて設定することができる。
〔処理フロー〕
以下、図12A、12Bに例示のフローチャートを参照し、本実施形態の情報処理システム1の移動を判定するための上限閾値、下限閾値の変更処理を説明する。図12Aは、サーバ20における移動を判定するための上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。なお、図12Aに例示の説明図において、図9Aに例示の実施形態2のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
また、図12Bは、情報処理端末10における移動を判定するための上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。図12Bに例示の説明図において、図9Bに例示の実施形態2のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
(サーバ)
図12Aに例示のフローチャートにおいて、サーバ20では、図9Aに例示のS1−S9、S21−S23の処理が実行される。サーバ20は、例えば、情報処理端末10から送信された操作履歴情報を受信しているかを判定する(S41)。サーバ20は、例えば、情報処理端末10から送信された操作履歴情報を受信している場合には(S41,Yes)、S42の処理に移行する。一方、サーバ20は、例えば、情報処理端末10から送信された操作履歴情報を受信していない場合には(S41,No)、S42の処理をスキップし、S24の処理に移行する。
S42の処理では、サーバ20は、例えば、受信した操作履歴情報に基づいてデータ処理モジュール20cに分類された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。操作履歴情報に基づく、上限閾値、下限閾値の変更については、図10、11A,11Bで説明した。
サーバ20は、例えば、受信した操作履歴情報から操作頻度の高い操作部品(例えば、“ボタンB”)に関連付けられた関数要素(例えば、“items”、“save”)を特定する
。サーバ20は、例えば、処理要求を発生させる関数要素(例えば、“items”)に対し
て結果を応答するデータ処理モジュール20c内の関数要素(例えば、“save”)を特定する。
サーバ20は、例えば、特定した関数要素(例えば、“save”)に対する、移動を判定するための上限閾値、下限閾値の値を、情報処理端末10側に移動し易くするように変更する。上限閾値、下限閾値の変更は、関数要素毎に変更される。サーバ20は、例えば、予め設定された移動を判定するための上限閾値、下限閾値の値を低くするよう設定する。
サーバ20は、S41−S42の処理の実行後、S24−S26の処理を継続して実行する。例えば、S24の処理では、操作頻度の高い操作部品の履歴情報が存在する場合には、変更設定が行われた上限閾値、下限閾値に基づいて関数要素の処理モジュール間の移動が行われる。また、S24の処理では、操作頻度の高い操作部品の履歴情報が存在しない場合には、予め設定された上限閾値、下限閾値に基づいて関数要素の処理モジュール間の移動が行われる。
(情報処理端末)
図12Bに例示のフローチャートにおいて、情報処理端末10では、図9Bに例示のS11−S18、S31−S32の処理が実行される。S51の処理では、情報処理端末1
0は、例えば、操作履歴情報に基づいてUI処理モジュール20bに分類された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。なお、操作履歴情報に基づく、上限閾値、下限閾値の変更については、図10、11A,11Bで説明した。
情報処理端末10は、例えば、操作頻度の高い操作部品(例えば、“ボタンA”)に関連付けられた関数要素(例えば、“analyze”)に対する、移動を判定するための上限閾
値、下限閾値の値を、サーバ20側に移動し難くするように変更する。例えば、情報処理端末10は、予め設定された移動を判定するための上限閾値、下限閾値の値を高くするよう設定する。なお、上限閾値、下限閾値の変更は、関数要素毎に変更される。
情報処理端末10は、S51の処理の実行後、S33−S35の処理を継続して実行する。例えば、操作部品(例えば、“ボタンA”)に関連付けられた関数要素“analyze”
がサーバ20から移動している場合には、該操作部品の操作頻度の高い状態が継続する間は、関数要素“analyze”のサーバ20側へ戻るための移動が抑制される。
ここで、サーバ20で実行されるS41−S42の処理は、所定の条件を処理要求頻度と所定閾値との関係で判定するステップと、画面処理の処理コード群に関連する画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、所定閾値の値を相対的に高い設定値に変更する制御ステップの一例である。また、サーバ20のCPU21等は、所定の条件を処理要求頻度と所定閾値との関係で判定すると共に、画面処理の処理コード群に関連する画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、所定閾値の値を相対的に高い設定値に変更する制御ステップの一例としてS41−S42の処理を実行する。
また、情報処理端末10で実行されるS31−S35の処理は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応するプログラム中の処理コードを受信するステップと、画面処理の処理コード群に含まれる1以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理ステップの一例である。また、情報処理端末10のCPU11等は、情報処理装置から送信された画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コードを受信すると共に、画面処理の処理コード群に含まれる1以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された処理要求頻度が所定の条件を満たすか否かに基づいて、受信したプログラム中の処理コードを情報処理装置に送信する処理部の一例としてS31−S35の処理を実行する。
〔実施形態4〕
情報処理端末10に搭載されるモバイルアプリ20aでは、例えば、業務の利用に係る個人情報等の秘匿性の高い情報を各種データ処理に用いることは既に説明した通りである。実施形態4(以下、本実施形態と称す)の情報処理システム1は、例えば、モバイルアプリ20aのソースコード20gに記述された各関数要素について、移動の可否を制限するためのセキュリティレベル定義を設ける。
本実施形態の情報処理システム1は、セキュリティレベル定義を設けることで、例えば、各処理モジュールに分類される関数要素毎に、情報漏えい等の危険性からの保護を行うことができる。本実施形態の情報処理システム1は、業務の利用に係る秘匿性の高い情報をソースコード20gに記述された関数要素単位で保護することができる。本実施形態の情報処理システム1では、モバイルアプリ20aのソースコード20gに定義される関数要素単位で安全性及び操作応答性の両立が可能となる。
図13Aに、セキュリティレベル定義例を例示する。図13aに例示のセキュリティレベル定義20kは、関数要素に対するセキュリティレベルを3段階に設定した一例である。但し、セキュリティレベルの設定段階が3段階に限定されるわけではない。モバイルアプリ20aが利用される業務内容、業務形態、利用環境等を考慮してセキュリティレベルの段階数を設定できる。なお、セキュリティレベルは、例えば、モバイルアプリ20aを用いたサービス業務を提供する提供者により設定される。
図13Aに例示のセキュリティレベル定義20kは、例えば、関数要素(オブジェクト・関数名)毎のレコードを有する。各レコードには、セキュリティレベルが設定される。図例のセキュリティレベル定義20kは、“移動不可”、“可能な限り移動しない”、“移動可能”といった3段階のセキュリティレベルが設定される。例えば、関数要素“items”、“result”、“itemdb”、“render”には、“移動可能”が設定されている。また
、関数要素“analyze”には、“可能な限り移動しない”が設定されている。関数要素“save”には、“移動不可”が設定されている。
“移動可能”は、例えば、実施形態2等で説明したUI処理モジュール20b、データ処理モジュール20c間での関数要素の移動を可能とするセキュリティレベルである。
なお、“移動可能”に設定された関数要素について、移動元では移動を判定するための上限閾値、下限閾値を移動し易くするよう変更するとしてもよい。また、“移動可能”に設定された関数要素について、移動先では移動後の関数要素が移動元に移動し難くするように、移動を判定するための上限閾値、下限閾値を変更するとしてもよい。移動先が情報処理端末10の場合では、例えば、操作応答性の向上が期待できる。
“移動不可”は、例えば、例えば、実施形態2等で説明したUI処理モジュール20b、データ処理モジュール20c間での関数要素の移動を行わないとするセキュリティレベルである。
なお、“移動不可”に設定された関数要素は、例えば、モバイルアプリ20aの分離処理の際にUI処理モジュール20bに分類された場合であっても、分類後にUI処理モジュール20bから抽出され、データ処理モジュール20cに統合される。UI処理モジュール20bに分類された“移動不可”の関数要素は削除され、データ処理モジュール20cに結合される。
“可能な限り移動しない”は、“移動可能”と“移動不可”との間のセキュリティレベルである。但し、“可能な限り移動しない”に設定された関数要素に対する移動を判定するための上限閾値、下限閾値は変更される。
例えば、“可能な限り移動しない”に設定された関数要素がデータ処理モジュール20cに含まれるとする。データ処理モジュール20cを実行するサーバ20では、例えば、該関数要素に対する移動を判定するための上限閾値、下限閾値の設定値を高くするよう変更する。移動を判定するための上限閾値、下限閾値が高く設定された関数要素は移動し難くなる。
また、“可能な限り移動しない”に設定された関数要素の移動先(例えば、情報処理端末10)は、移動元への戻り移動をし易くするため、移動を判定するための上限閾値、下限閾値を低くするよう設定する。“可能な限り移動しない”に設定された関数要素は、例えば、情報処理端末10側に移動しても、短期間で移動元のサーバ20側に戻ることができる。
図13Bに、セキュリティレベル定義20kに基づく上限閾値、下限閾値の設定例をテーブルTb5に例示する。テーブルTb5の関数要素は、“可能な限り移動しない”をセキュリティレベルとして設定された“analyze”、“移動可能”をセキュリティレベルと
して設定された“itemdb”である。なお、図13Bに例示のテーブルTb5は、例えば、各関数要素を移動元としてデータ処理モジュール20cに保持する、サーバ20での変更例である。
ここで、各関数要素の変更前の上限閾値は、データ参照回数が“10秒間で3回以上”であり、実行遅延時間は、“平均1秒以上経過”である。同様に、各関数要素の変更前の下限閾値は、データ参照回数が“60秒間で1回以上”であり、実行遅延時間は、“条件なし”である。
図13Bに例示のように、“可能な限り移動しない”が設定された関数要素“analyze
”では、上限閾値は、データ参照回数は“10秒で3回以上”から“5秒間で3回以上”に変更されている。実行遅延時間に対する“平均1秒以上経過”の上限閾値には変更はない。同様にして、下限閾値は、データ参照回数は“60秒間で1回以上”から“30秒間で1回以上”に変更されている。変更前の設定値に比べ、相対的に高い上限閾値、下限閾値が設定されていることが判る。
また、“移動可能”が設定された関数要素“itemdb”では、上限閾値は、データ参照回数は“10秒で3回以上”から“20秒間で3回以上”に変更されている。実行遅延時間に対する“平均1秒以上経過”の上限閾値には変更はない。同様にして、下限閾値は、データ参照回数は“60秒間で1回以上”から“120秒間で1回以上”に変更されている。変更前の設定値に比べ、相対的に低い上限閾値、下限閾値が設定されていることが判る。
“可能な限り移動しない”が設定された関数要素“analyze”では、移動し難くなるよ
う上限閾値、下限閾値が変更されていることが判る。また、“移動可能”が設定された関数要素“itemdb”では、移動し易くなるよう上限閾値、下限閾値が変更されていることが判る。
〔処理ブロック構成〕
図14に、本実施形態の情報処理システム1における、処理ブロックの説明図を例示する。なお、図14に例示の説明図において、図8に例示の実施形態2の処理ブロックの説明図と共通する箇所には同一の番号を付与し、説明を省略する。
図14に例示のように、本実施形態の情報処理システム1の情報処理端末10は、実施形態2の処理ブロック構成のオブジェクトマネージャ実行部105に、セキュリティレベルチェック部108の処理手段を含む。また、サーバ20は、実施形態2の処理ブロック構成のUIデータ処理抽出部204に、セキュリティレベルチェック部213の処理手段を備える。
(サーバ)
UIデータ処理抽出部204は、例えば、オブジェクト検出部203から引き渡されたテーブルm3、m4内に分類された関数、変数等の下位の処理オブジェクト(要素)とHTMLファイル20hとの照合を行う。照合の結果、HTMLファイル20hに記述された、テーブルm3、m4内の関数、変数等の要素が抽出される。
セキュリティレベルチェック部213は、例えば、HTMLファイル20hに記述された要素として抽出された関数要素について、セキュリティレベル定義20kを参照し、“
移動不可”が設定された関数要素を抽出する。セキュリティレベルチェック部213は、例えば、抽出された関数要素をUI処理モジュール20bを生成する要素群から削除し、データ処理モジュール20cを生成する要素群に追加する。セキュリティレベルチェック部213によって抽出された関数要素は、データ処理モジュール20cとして統合される。
また、セキュリティレベルチェック部213は、例えば、セキュリティレベル定義20kに基づいて、“可能な限り移動しない”、“移動可能”が設定された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。セキュリティレベル定義20kに基づく、上限閾値、下限閾値の変更は、図13A,13Bで説明した。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部23の所定の領域に一時的に記憶される。
なお、データ処理モジュール20cに付与されたオブジェクトマネージャ20jは、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と、変更後の上限閾値、下限閾値との比較を行い、関数要素の移動を判定する。
(情報処理端末)
図14に例示の説明図において、セキュリティレベルチェック部108は、例えば、セキュリティレベル定義20kに基づいて、“可能な限り移動しない”、“移動可能”が設定された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。セキュリティレベル定義20kに基づく、上限閾値、下限閾値の変更は、図13A,13Bで説明した。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部13の所定の領域に一時的に記憶される。
なお、UI処理モジュール20bに付与されたオブジェクトマネージャ20jは、例えば、関数要素毎に測定されたアクセスパフォーマンスの測定結果と、変更後の上限閾値、下限閾値との比較を行い、関数要素の移動を判定する。
〔処理フロー〕
以下、図15A、15Bに例示のフローチャートを参照し、本実施形態の情報処理システム1のセキュリティレベルに基づく上限閾値、下限閾値の変更処理を説明する。図15Aは、サーバ20におけるセキュリティレベルに基づく上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。なお、図15Aに例示の説明図において、図9Aに例示の実施形態2のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
また、図15Bは、情報処理端末10におけるセキュリティレベルに基づく上限閾値、下限閾値の変更処理を説明するフローチャートの例示である。図15Bに例示の説明図において、図9Bに例示の実施形態2のフローチャートと共通する箇所には同一の番号を付与し、説明を省略する。
(サーバ)
図15Aに例示のフローチャートにおいて、サーバ20では、図9Aに例示のS1−S3の処理が実行される。S61の処理では、図サーバ20は、例えば、View情報とテーブルm3、m4内に分類された関数、変数等の要素オブジェクトとの照合を行い、View情報として利用されるUI処理の要素オブジェクトを抽出する。ここで、“View情報”とは、情報処理端末10のLCD15a等に表示される画面を記述するプログラムであり、HTML、XML、XAML等のマークアップ言語で記述される。
サーバ20は、例えば、モバイルアプリ20aのHTMLファイル20hに記述された
文字列と、テーブルm3、m4内に分類された要素オブジェクトの名称との照合を行う。サーバ20は、例えば、HTMLファイル20hに記述がある要素オブジェクトをUI処理に利用される要素オブジェクトとして抽出する。同様にして、サーバ20は、例えば、HTMLファイル20hに記述がない要素オブジェクトをデータ処理に利用される要素オブジェクトとして抽出する。なお、サーバ20は、UI処理に利用される要素オブジェクトを除く他の要素オブジェクトを、データ処理に利用される要素オブジェクトとして抽出するとしてもよい。
サーバ20は、例えば、UI処理に利用される要素オブジェクトとして抽出された関数、変数の中から、セキュリティレベル定義20kを参照し、“移動不可”が設定された関数要素を抽出する。サーバ20は、例えば、抽出された関数要素をUI処理に利用される要素オブジェクト群から削除し、データ処理に利用される要素オブジェクト要素群に追加する。
また、サーバ20は、例えば、セキュリティレベル定義20kに基づいて、“可能な限り移動しない”、“移動可能”が設定された関数要素の移動を判定するための上限閾値、下限閾値の変更を行う。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部23の所定の領域に一時的に記憶される。
サーバ20は、S61の処理の実行後、S5−S9,S21−S26の処理を継続して実行する。例えば、S5の処理では、サーバ20は、UI処理に利用される要素オブジェクト群からセキュリティレベル定義20kで“移動不可”が設定された関数要素を削除した要素オブジェクト群を統合して、UI処理モジュール20bを生成する。同様にして、サーバ20は、例えば、セキュリティレベル定義20kで“移動不可”が設定された関数要素を追加したデータ処理に利用される要素オブジェクト要素群を統合して、UI処理モジュール20cを生成する。また、S24の処理では、セキュリティレベル定義20kに沿って変更された関数要素毎の上限閾値、下限閾値の基づいて、関数要素の処理モジュール間の移動が行われる。
(情報処理端末)
図12Bに例示のフローチャートにおいて、情報処理端末10では、図9Bに例示のS11−S18、S31−S32の処理が実行される。S71の処理では、情報処理端末10は、例えば、セキュリティレベル定義20kに基づいてUI処理モジュール20bに分類された関数要素毎の移動を判定するための上限閾値、下限閾値の変更を行う。なお、セキュリティレベル定義20kに基づく、上限閾値、下限閾値の変更については、図13A,13Bで説明した。
セキュリティレベルチェック部108は、例えば、セキュリティレベル定義20kを参照し、“可能な限り移動しない”、“移動可能”が設定された関数要素毎の、移動を判定するための上限閾値、下限閾値の変更を行う。変更された関数要素毎の上限閾値、下限閾値は、例えば、主記憶部13の所定の領域に一時的に記憶される。
情報処理端末10は、S71の処理の実行後、S33−S35の処理を継続して実行する。例えば、情報処理端末10に移動した、“移動可能”に設定された関数要素については、移動元のサーバ20へ戻るための移動が抑制される。また、情報処理端末10に移動した、“可能な限り移動しない”に設定された関数要素については、短期間で移動元のサーバ20に戻るように移動が促進される。
ここで、サーバ20で実行されるS61の処理は、所定の条件を処理要求頻度と所定閾値との関係で判定するステップと、画面処理の処理コード群の処理要求に対応するプログ
ラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する制御ステップの一例である。また、サーバ20のCPU21等は、所定の条件を処理要求頻度と所定閾値との関係で判定すると共に、画面処理の処理コード群の処理要求に対応するプログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する制御部の一例としてS61の処理を実行する。
また、情報処理端末10で実行されるS71の処理は、所定の条件を処理要求頻度と所定閾値との関係で判定するステップと、画面処理の処理コード群の処理要求に対応するプログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する処理ステップの一例である。また、所定の条件を処理要求頻度と所定閾値との関係で判定すると共に、画面処理の処理コード群の処理要求に対応するプログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、セキュリティレベル情報に基づいて所定閾値の設定値を相対的に変更する制御部の一例としてS71の処理を実行する。
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
《その他》
以上の実施形態は、さらに以下の付記と呼ぶ態様を含む。以下の各付記に含まれる構成要素は、他の付記に含まれる構成と組み合わせることができる。
(付記1)
プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出し、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、
生成された前記画面処理の処理コード群を前記電子機器に送信すると共に前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行し、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、
を備える情報処理装置。
(付記2)
前記生成部は、前記画面処理の処理コード群に、前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与し、
前記制御部は、前記中継プログラムに付与された前記画面処理の処理コード群を電子機器に送信すると共に、前記中継プログラムを通じて前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードからの処理要求を受け付け、前記中継プログラムを通じて該処理要求に対応する、前記プログラムの中の処理コードの実行の結果を電子機
器に送信する、付記1に記載の情報処理装置。
(付記3)
前記制御部は、前記画面処理の処理コード群に含まれる前記1以上の処理コードのそれぞれについて処理要求頻度を計測すると共に計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応する前記プログラム中の処理コードについての前記画面処理の処理コード群への移動を決定し、前記電子機器に送信する、付記1または2に記載の情報処理装置。
(付記4)
前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に高い設定値に変更する、付記3に記載の情報処理装置。
(付記5)
前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、付記3に記載の情報処理装置。
(付記6)
前記生成部は、プログラムの処理コードを解析し、前記処理コードの実行により保存するよう記述された1以上のデータを抽出し、抽出された前記1以上のデータ以外の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する、付記1から付記5の何れか一の付記に記載の情報処理装置。
(付記7)
プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部と、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得して前記プログラムの画面を生成する処理部と、
を備える電子機器。
(付記8)
前記受信部は、前記画面処理の処理コード群に付与された前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信し、
前記処理部は、前記中継プログラムを通じて、前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得する、付記7に記載の電子機器。
(付記9)
前記処理部は、情報処理装置から送信された前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コードを受信すると共に、前記画面処理の処理コード群に含まれる前記1以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、受信した前記プログラム中の処理コードを前記情報処理装置に送信する、付記7または8に記載の電子機器。
(付記10)
前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に低い設定値に変更する、付記9に記載の電子機器。
(付記11)
前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎
に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、付記9に記載の電子機器。
(付記12)
電子機器と接続するコンピュータに、
プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出するステップと、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
を実行させるための情報処理プログラム。
(付記13)
情報処理装置と接続するコンピュータに、
プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップと、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、前記それぞれの処理要求に対応する処理の結果を取得するステップと、取得した処理の結果に基づいて前記プログラムの画面を生成する処理ステップと、
を実行させるための処理プログラム。
(付記14)
電子機器と接続するコンピュータが、
プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出するステップと、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
を実行する情報処理方法。
(付記15)
情報処理装置と接続するコンピュータが、
プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップと、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、前記それぞれの処理要求に対応する処理の結果を取得するステップと、取得した処理の結果に基づいて前記プログラムの画面を生成する処理ステップと、
を実行する処理方法。
(付記16)
情報処理装置と、前記情報処理装置に接続する電子機器と、を備え、
前記情報処理装置は、
プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出し、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面
処理の処理コード群を生成する生成部と、
生成された前記画面処理の処理コード群を前記電子機器に送信すると共に前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行し、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、を備え、
前記電子機器は、
プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部と、
前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得して前記プログラムの画面を生成する処理部と、を備える、
情報処理システム。
1 情報処理システム
10、40 情報処理端末(電子機器)
10a ブラウザエンジン
11 CPU
12 GPU
13 主記憶部
14 入力部
14a タッチセンサ
15 出力部
15a LCD
16 通信部
20、41 サーバ
20a モバイルアプリ、20b UI処理モジュール(UI処理)、
20c データ処理モジュール(データ処理)、20d 仮想ブラウザエンジン、
20e フレームワーク、20f インターフェース定義、20g ソースコード、
20h HTMLファイル、20i IFプロキシ、20j オブジェクトマネージャ、20k セキュリティレベル定義
21 CPU
22 主記憶部
23 補助記憶部
24 入力部
25 出力部
25a LCD
26 通信部
30a バイタルセンサ
30b スマートグラス
101 実行アプリ指定部
102 UI処理モジュール受信部
103 モバイルアプリ実行部
104 IFプロキシ送受信部
105 オブジェクトマネージャ実行部
106 履歴取得部
107 閾値変更部
108 セキュリティレベルチェック部
201 操作情報取得部
202 実行アプリ指定部
203 オブジェクト検出部
204 UIデータ処理抽出部
205 IFプロキシ付与部
206 モジュール管理部
207 モバイルアプリ実行部
208 IFプロキシ送受信部
209 オブジェクトマネージャ付与部
210 オブジェクトマネージャ実行部
211 履歴管理部
212 閾値変更部
213 セキュリティレベルチェック部

Claims (14)

  1. プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出し、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成部と、
    生成された前記画面処理の処理コード群を前記電子機器に送信すると共に前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けて、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行し、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御部と、
    を備える情報処理装置。
  2. 前記生成部は、前記画面処理の処理コード群に、前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを付与し、
    前記制御部は、前記中継プログラムに付与された前記画面処理の処理コード群を電子機器に送信すると共に、前記中継プログラムを通じて前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードからの処理要求を受け付け、前記中継プログラムを通じて該処理要求に対応する、前記プログラムの中の処理コードの実行の結果を電子機器に送信する、請求項1に記載の情報処理装置。
  3. 前記制御部は、前記画面処理の処理コード群に含まれる前記1以上の処理コードのそれぞれについて処理要求頻度を計測すると共に計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、処理要求に対応する前記プログラム中の処理コードについての前記画面処理の処理コード群への移動を決定し、前記電子機器に送信する、請求項1または2に記載の情報処理装置。
  4. 前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に高い設定値に変更する、請求項3に記載の情報処理装置。
  5. 前記制御部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、請求項3に記載の情報処理装置。
  6. 前記生成部は、プログラムの処理コードを解析し、前記処理コードの実行により保存するよう記述された1以上のデータを抽出し、抽出された前記1以上のデータ以外の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する、請求項1から請求項5の何れか一項に記載の情報処理装置。
  7. プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信部と、
    前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得して前記プログラムの画面を生成する処理部と、
    を備える電子機器。
  8. 前記受信部は、前記画面処理の処理コード群に付与された前記プログラムの中の前記画面処理の処理コード群以外の処理コードとの間で通信を行う中継プログラムを受信し、
    前記処理部は、前記中継プログラムを通じて、前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信すると共に前記それぞれの処理要求に対応する処理の結果を取得する、請求項7に記載の電子機器。
  9. 前記処理部は、情報処理装置から送信された前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コードを受信すると共に、前記画面処理の処理コード群に含まれる前記1以上の処理コードのそれぞれについて処理要求頻度を計測し、計測された前記処理要求頻度が所定の条件を満たすか否かに基づいて、受信した前記プログラム中の処理コードを前記情報処理装置に送信する、請求項7または8に記載の電子機器。
  10. 前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群に関連する前記画面の画面表示部品に対する操作頻度が所定の条件を満たす場合には、前記所定閾値の値を相対的に低い設定値に変更する、請求項9に記載の電子機器。
  11. 前記処理部は、前記所定の条件を前記処理要求頻度と所定閾値との関係で判定すると共に、前記画面処理の処理コード群の処理要求に対応する前記プログラム中の処理コード毎に設定されたセキュリティレベル情報を有し、前記セキュリティレベル情報に基づいて前記所定閾値の設定値を相対的に変更する、請求項9に記載の電子機器。
  12. 電子機器と接続するコンピュータに、
    プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出するステップと、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
    生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
    を実行させるための情報処理プログラム。
  13. 情報処理装置と接続するコンピュータに、
    プログラムの画面を記述する1以上の処理コードを抽出して生成された画面処理の処理コード群を受け付ける受信ステップと、
    前記画面処理の処理コード群の実行に伴うそれぞれの処理要求を情報処理装置に送信するステップと、前記それぞれの処理要求に対応する処理の結果を取得するステップと、取得した処理の結果に基づいて前記プログラムの画面を生成する処理ステップと、
    を実行させるための処理プログラム。
  14. 電子機器と接続するコンピュータが、
    プログラムの処理コードを解析し、前記プログラムの画面を記述する1以上の処理コードを抽出するステップと、抽出された前記1以上の処理コードを電子機器で実行可能に結合して画面処理の処理コード群を生成する生成ステップと、
    生成された前記画面処理の処理コード群を前記電子機器に送信するステップと、前記電子機器で実行される前記画面処理の処理コード群に含まれる処理コードから処理要求を受け付けるステップと、前記プログラムの中の前記画面処理の処理コード群以外の処理コードを実行するステップと、前記処理要求に対応する前記プログラムの中の処理コードの実行の結果を電子機器に送信する制御ステップと、
    を実行する情報処理方法。
JP2015105823A 2015-05-25 2015-05-25 情報処理装置、電子機器、情報処理プログラム及び処理プログラム Pending JP2016218924A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015105823A JP2016218924A (ja) 2015-05-25 2015-05-25 情報処理装置、電子機器、情報処理プログラム及び処理プログラム
US15/094,294 US20160350133A1 (en) 2015-05-25 2016-04-08 Information processing apparatus and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015105823A JP2016218924A (ja) 2015-05-25 2015-05-25 情報処理装置、電子機器、情報処理プログラム及び処理プログラム

Publications (1)

Publication Number Publication Date
JP2016218924A true JP2016218924A (ja) 2016-12-22

Family

ID=57398584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015105823A Pending JP2016218924A (ja) 2015-05-25 2015-05-25 情報処理装置、電子機器、情報処理プログラム及び処理プログラム

Country Status (2)

Country Link
US (1) US20160350133A1 (ja)
JP (1) JP2016218924A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10834226B2 (en) * 2016-07-15 2020-11-10 International Business Machines Corporation Live migration of containers based on geo-location
JP6254669B1 (ja) * 2016-12-19 2017-12-27 Fdcグローバル株式会社 情報処理装置、端末及びプログラム
KR102327913B1 (ko) * 2017-04-28 2021-11-19 엔에이치엔 주식회사 블록 기반 데이터 분석 방법 및 시스템
US11102219B2 (en) * 2017-08-24 2021-08-24 At&T Intellectual Property I, L.P. Systems and methods for dynamic analysis and resolution of network anomalies
CN110888628A (zh) * 2019-10-12 2020-03-17 中国平安财产保险股份有限公司 生成控制工具的方法、装置、设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843909B2 (en) * 2001-05-11 2014-09-23 Ca, Inc. Method and apparatus for transforming legacy software applications into modern object-oriented distributed systems
US9454390B2 (en) * 2008-04-04 2016-09-27 Intuit Inc. Executable code generated from common source code
US8700803B2 (en) * 2009-06-03 2014-04-15 Netcordant, Inc. Web page optimization
US20110276621A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Operating system and application virtualization for application execution
US8725800B1 (en) * 2012-10-02 2014-05-13 Nextbit Systems Inc. Mobile photo application migration to cloud computing platform
KR102146557B1 (ko) * 2013-11-06 2020-08-21 삼성전자주식회사 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체

Also Published As

Publication number Publication date
US20160350133A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
KR101790190B1 (ko) 애플리케이션 시나리오 식별 방법, 전력 소비 관리 방법, 장치 및 단말기 장치
US9922260B2 (en) Scrapped information providing method and apparatus
CN106970790B (zh) 一种应用程序创建的方法、相关设备及系统
JP2016218924A (ja) 情報処理装置、電子機器、情報処理プログラム及び処理プログラム
CN108595220B (zh) 应用组件的处理方法、设备及计算机可读存储介质
CN109857303B (zh) 交互控制方法及装置
US11086956B2 (en) Method and device for processing hyperlink object
US10656806B2 (en) Display interface systems and methods
US20160246481A1 (en) Extraction of multiple elements from a web page
EP3022691B1 (en) Mobile application optimization platform
US10346418B2 (en) Optimizing data access based on data aging
EP3627352A2 (en) Offline briefcase synchronization
KR101689984B1 (ko) 프로그래머블 컨트롤러, 프로그래머블 컨트롤러 시스템 및 실행 에러 정보 작성 방법
CN114115681A (zh) 页面生成方法及装置、电子设备和介质
US10757164B2 (en) Performance improvement of web pages by on-demand generation of composite images
KR102369319B1 (ko) 전자 장치 및 전자 장치의 핸드오프 기능 제공 방법
CN111858383A (zh) 移动app的数据埋点方法、系统、终端设备及存储介质
KR20200020000A (ko) 메시징 플랫폼을 위한 이벤트 추적
CN110088750B (zh) 在静态网页中提供场境功能的方法和系统
JP6536007B2 (ja) 情報処理装置、その制御方法とプログラム
CN108647072B (zh) 一种事件监听的方法、装置及设备
US10402215B2 (en) Find group distribute execute model
US10089262B2 (en) Reduced overhead safepoint mechanism using signals
EP3343398A1 (en) Content providing method and electronic device for performing same
WO2023126890A1 (en) Masking private information while streaming live session