JP6413779B2 - Information processing system, information processing method, and program - Google Patents
Information processing system, information processing method, and program Download PDFInfo
- Publication number
- JP6413779B2 JP6413779B2 JP2015006527A JP2015006527A JP6413779B2 JP 6413779 B2 JP6413779 B2 JP 6413779B2 JP 2015006527 A JP2015006527 A JP 2015006527A JP 2015006527 A JP2015006527 A JP 2015006527A JP 6413779 B2 JP6413779 B2 JP 6413779B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- application
- time
- unit
- response
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、情報処理システム、情報処理方法、及びプログラムに関する。 The present invention relates to an information processing system, an information processing method, and a program.
例えば、オフィス等に設置されている複合機等の共用機器は、複数のユーザによって入れ替わり立ち替わり利用される。また、近年では、インターネット等のネットワークを介して提供されているサービス(例えば、クラウドサービス等)にアクセス可能な機器も有る。 For example, shared devices such as multifunction peripherals installed in offices are replaced and used by a plurality of users. In recent years, there are devices that can access services (for example, cloud services) provided via a network such as the Internet.
上記のような利用形態を有する機器のアプリケーションは、ユーザによる操作に対する応答性が低下する場合が有る。このような機器は、並列的にタスクが実行される場合が多く、タスクの並列実行によって機器自体が高負荷状態になる可能性が有るからである。例えば、複合機であれば、大量の印刷やスキャン等の様々なタスクが並行的に実行されることにより、高負荷状態になる。 In the application of the device having the above usage form, the responsiveness to the operation by the user may be reduced. This is because such devices often execute tasks in parallel, and there is a possibility that the devices themselves will be in a high load state due to the parallel execution of tasks. For example, in the case of a multi-function peripheral, various tasks such as mass printing and scanning are executed in parallel, resulting in a high load state.
しかしながら、ネットワークを介して提供されているサービスと連携しているアプリケーションの応答性の低下の原因は、必ずしも機器自体が高負荷状態であることに限られない。例えば、機器自体は低負荷状態であるにも拘わらず、ネットワークの通信性能が低い若しくはネットワークの通信負荷が高いことも考えられる。又は、ネットワークを介して提供されているサービスへのアクセスが集中し、当該サービスの負荷が高まっていることも考えられる。 However, the cause of the decrease in the responsiveness of the application linked with the service provided via the network is not necessarily limited to the high load state of the device itself. For example, it is conceivable that the communication performance of the network is low or the communication load of the network is high although the device itself is in a low load state. Alternatively, it may be possible that access to services provided via a network is concentrated and the load on the services is increasing.
このように、応答性の低下に関して複数の原因が考えられる状況において、機器とネットワークを介して連携する情報処理システムとの通信環境の状態を知ることは、応答性の低下の原因の切り分けを行う上で有意義であると考えられる。 As described above, in a situation where a plurality of causes can be considered for the decrease in responsiveness, knowing the state of the communication environment between the device and the information processing system linked via the network identifies the cause of the decrease in responsiveness. It is considered significant above.
本発明は、上記の点に鑑みてなされたものであって、機器と情報処理システムとの間の通信環境の状態を推定可能とすることを目的とする。 SUMMARY An advantage of some aspects of the invention is that it is possible to estimate a state of a communication environment between a device and an information processing system.
そこで上記課題を解決するため、1以上の情報処理装置を含む情報処理システムは、ネットワークを介して接続される機器から第1の要求が受信されると、前記第1の要求に対する応答の返信時から前記第1の要求の後に前記機器から送信される第2の要求の受信時までの経過時間を、前記第1の要求と前記応答との通信時間の推定値として計測する計測部を有する。 Therefore, in order to solve the above problem, an information processing system including one or more information processing apparatuses receives a first request from a device connected via a network and returns a response to the first request. A measuring unit that measures an elapsed time from when the first request is received to when the second request transmitted from the device is received as an estimated value of a communication time between the first request and the response.
機器と情報処理システムとの間の通信環境の状態を推定可能とすることができる。 It is possible to estimate the state of the communication environment between the device and the information processing system.
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における情報処理システムの構成例を示す図である。図1に示される情報処理システム1において、サービス提供環境E2及びユーザ環境E1は、インターネット等の広域的なネットワークを介して通信可能とされている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating a configuration example of an information processing system according to the first embodiment. In the
サービス提供環境E2は、ネットワークを介してクラウドサービスを提供する組織におけるシステム環境である。なお、本実施の形態では、クラウドサービスを具体例に採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供される他の形態のサービスに関して、本実施の形態が適用されてもよい。 The service providing environment E2 is a system environment in an organization that provides a cloud service via a network. In the present embodiment, a cloud service will be described as a specific example, but other forms of service provided via a network, such as a service provided by an ASP (Application Service Provider) or a Web service, will be described. The present embodiment may be applied.
サービス提供環境E2は、サービス提供装置20を有する。サービス提供装置20は、ネットワークを介して所定のサービスを提供する。サービス提供装置20が提供するサービスの一つとして、「クラウドスキャンサービス」を例示する。クラウドスキャンサービスとは、機器10においてスキャンされ、機器10より転送された画像データを、所定のストレージに配信するサービスをいうが、特にその呼称に限定されるものではない。なお、サービス提供装置20は、ユーザ環境E1に設置されてもよい。すなわち、サービス提供環境E2は、ユーザ環境E1に包含されてもよい。
The service providing environment E2 includes a
ユーザ環境E1は、機器10のユーザ企業等の組織におけるシステム環境である。ユーザ環境E1において、一台以上の機器10と管理者端末30とはLAN(Local Area Network)等のネットワークを介して接続されている。本実施の形態の機器10は、スキャン、印刷、コピー、及びファクス(FAX)通信等のうちの2以上の機能を1台の筐体で実現する複合機である。但し、上記のうちの1つの機能のみ、或いは他の機能を有する画像形成装置が機器10として利用されてもよい。また、プロジェクタ、電子黒板、又はテレビ会議システム等の画像形成装置以外の機器が、機器10として利用されてもよい。
The user environment E1 is a system environment in an organization such as a user company of the
管理者端末30は、ユーザ環境E1における機器10の管理者が使用する端末である。管理者端末30の一例として、PC(Personal Computer)、PDA(Personal Digital Assistance)、タブレット型端末、スマートフォン、又は携帯電話等が挙げられる。
The
図2は、第一の実施の形態における機器のハードウェア構成例を示す図である。図2において、機器10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
FIG. 2 is a diagram illustrating a hardware configuration example of the device according to the first embodiment. In FIG. 2, the
コントローラ11は、CPU111、RAM112、ROM113、HDD114、及びNVRAM115等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記憶される。NVRAM115には、各種の設定情報等が記憶される。
The
スキャナ12は、原稿より画像データを読み取るためのハードウェア(画像読取手段)である。プリンタ13は、印刷データを印刷用紙に印刷するためのハードウェア(印刷手段)である。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段(表示装置)等を備えたハードウェアである。液晶パネルは、タッチパネル機能を有していてもよい。この場合、当該液晶パネルは、入力手段の機能をも兼ねる。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記憶されたプログラムを読み取るために利用される。すなわち、機器10では、ROM113に記憶されたプログラムだけでなく、SDカード80に記憶されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
The
図3は、第一の実施の形態におけるサービス提供装置のハードウェア構成例を示す図である。図3のサービス提供装置20は、それぞれバスBで相互に接続されているドライブ装置200と、補助記憶装置202と、メモリ装置203と、CPU204と、インタフェース装置205とを有する。
FIG. 3 is a diagram illustrating a hardware configuration example of the service providing apparatus according to the first embodiment. The
サービス提供装置20での処理を実現するプログラムは、CD−ROM等の記録媒体201によって提供される。プログラムを記憶した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
A program for realizing processing in the
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってサービス提供装置20に係る機能を実行する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。
The
なお、サービス提供装置20は、図3に示されるようなハードウェアを有する複数のコンピュータによって構成されてもよい。すなわち、後述においてサービス提供装置20が実行する処理は、複数のコンピュータに分散されて実行されてもよい。
The
図4は、第一の実施の形態における機器の機能構成例を示す図である。図4において、機器10は、SDKアプリ120、SDKプラットフォーム130、コントロールサービス141、ソケットサービス142、ソケットフック部143、及びイベントフック部144等を有する。
FIG. 4 is a diagram illustrating a functional configuration example of the device according to the first embodiment. 4, the
SDKアプリ120は、機器10の出荷後において、機器10の機能拡張を図るために追加的にインストールされるアプリケーションプログラム(又はプラグイン、Browserアプリなどともいう。)である。同図では、SDKアプリ120の一例として、スキャンアプリ120a、印刷アプリ120b、及び機器側応答性監視アプリ120c等が示されている。
The
スキャンアプリ120aは、原稿からの画像データの読み取りと、当該画像データのサービス提供装置20へアップロードとを機器10に実行させるSDKアプリ120である。サービス提供装置20へアップロードされた画像データは、所定の宛先に配信される。
The
印刷アプリ120bは、サービス提供装置20へ事前にアップロードされている印刷データのダウンロードと、当該印刷データの印刷とを機器10に実行させるSDKアプリ120である。なお、本実施の形態において、印刷データとは、印刷対象のデータを意味する。したがって、印刷データは、必ずしも、PDL(Page Description Language)等の特定の言語によって記述されたデータに限定されない。例えば、文書データ等、PDLデータに変換前のデータが、印刷データであってもよい。
The
機器側応答性監視アプリ120cは、機器10において起動されている各SDKアプリ120の状態監視や、機器10の負荷状態の計測等を機器10に実行させるSDKアプリ120である。
The device-side
なお、機器10には、SDKアプリ120以外に、標準的なアプリケーションプログラムが、出荷時に予め実装されていてもよい。
In addition to the
SDKプラットフォーム130は、SDKアプリ120を開発するためのAPI(Application Program Interface)を備え、SDKアプリ120の実行環境を提供する。APIの形態は、例えば、関数であってもよいし、オブジェクト指向プログラミングにおけるクラスのメソッド等であってもよい。以下、SDKプラットフォーム130が提供するAPIを、「SDKAPI」という。例えば、SDKプラットフォーム130は、スキャン機能に関するSDKAPI、印刷機能に関するSDKAPI、コピー機能に関するSDKAPI、通信に関するAPI等をSDKアプリ120に提供する。SDKAPIは公開されており、サードベンダ等によってもSDKアプリ120は開発されうる。なお、SDKプラットフォーム130は、Java(登録商標)VM(Virtual Machine)(以下、単に、「JavaVM」という。)を含んでいてもよい。この場合、SDKアプリ120は、Java(登録商標)言語によって実装される。例えば、SDKアプリ120は、Xletアプリとして実装されてもよい。
The
図4において、SDKプラットフォーム130は、アプリ管理部131、パネル管理部132、パネルサービス部133、スキャンサービス部134、及び印刷サービス部135等を含む。
4, the
アプリ管理部131は、各SDKアプリ120のライフサイクルを管理する。すなわち、SDKアプリ120は、明確に定義されたライフサイクルモデルに従って動作する。ライフサイクルとは、例えば、起動状態、アクティブ状態、一時停止状態、及び終了状態の状態遷移を意味する。起動状態は、SDKアプリ120の起動時において初期化処理が実行される状態である。アクティブ状態は、SDKアプリ120が有する機能が実行される状態である。一時停止状態は、SDKアプリ120が有する機能が一時的に停止される状態である。終了状態は、SDKアプリ120が終了する状態である。
The
図4には、スキャンアプリ120a及び印刷アプリ120bのそれぞれの内部に、状態遷移図が示されている。それぞれの状態遷移図において、アクティブ状態の内部は、操作画面の遷移を示す。例えば、スキャンアプリ120aの操作画面は、スキャン指定画面、スキャン実行画面、スキャン配信画面の順で遷移することが示されている。スキャン指定画面は、スキャンの設定情報等を受け付けるための画面である。スキャン実行画面は、スキャンの実行中に表示される画面である。スキャン配信画面は、スキャンされた画像データの配信中(アップロード中)に表示される画面である。また、印刷アプリ120bの操作画面は、印刷指定画面、印刷データ取得画面、及び印刷中画面の順で遷移することが示されている。印刷指定画面は、印刷の設定情報等を受け付けるための画面である。印刷データ取得画面は、印刷データのダウンロード中に表示される画面である。印刷中画面は、印刷の実行中に表示される画面である。
FIG. 4 shows a state transition diagram inside each of the
パネル管理部132は、アプリ管理部131の指示に従い、操作パネル15の利用権限(以下、「パネル利用権限」という。)を管理する。すなわち、SDKアプリ120間において、操作パネル15の利用(操作パネル15への操作画面の表示)は、排他的である。したがって、基本的に、或る瞬間において、パネル利用権限が与えられるSDKアプリ120は一つであり、斯かるパネル利用権限の授与及び回収等が、パネル管理部132によって行われる。本実施の形態では、アクティブ状態に遷移したSDKアプリ120に、パネル利用権限が授与される。したがって、基本的に、アクティブ状態への遷移は排他的である。また、アクティブ状態でないことは(例えば、一時停止状態であること)、パネル利用権限を有さないこと、すなわち、バックグラウンドで動作中であることを示す。なお、一時停止状態は、必ずしも処理が完全に停止する状態であるとは限らない。パネル利用権限を有さなくても実行可能な機能を有するSDKアプリ120については、一時停止状態において、当該機能に係る処理が実行される場合が有る。例えば、印刷アプリ120bは、印刷指定後において、バックグラウンドで印刷データの取得及び印刷を実行可能である。したがって、印刷アプリ120bは、一時停止状態において、印刷データの取得及び印刷を実行する場合がある。そうすることで、例えば、印刷が完了するまで他のSDKアプリ120(例えば、スキャンアプリ120a)を利用できないといった不都合の発生を回避することができる。したがって、或るSDKアプリ120のアクティブ状態と他のSDKアプリ120の一時停止状態とが並行することで、2以上のSDKアプリ120の処理が並列的に実行される可能性が有る。
The
パネルサービス部133は、操作パネル15に対する操作画面等の描画に関するSDKAPIを提供する。パネルサービス部133は、パネル管理部132によってパネル利用権限が授与されたSDKアプリ120による当該SDKAPIの呼び出しに応じ、当該SDKアプリ120の操作画面の描画等を行う。
The
スキャンサービス部134は、スキャンの実行に関するSDKAPIを提供し、SDKアプリ120による当該SDKAPIの呼び出しに応じ、スキャンの実行制御等を行う。当該実行制御に関して、スキャンサービス部134からコントロールサービス141に対してスキャンの実行要求が入力される。スキャンサービス部134は、複数のSDKアプリ120からの要求について、排他制御を行う。
The
印刷サービス部135は、印刷の実行に関するSDKAPIを提供し、SDKアプリ120による当該SDKAPIの呼び出しに応じ、印刷の実行制御等を行う。当該実行制御に関して、印刷サービス部135からコントロールサービス141に対して印刷の実行要求が入力される。印刷サービス部135は、複数のSDKアプリ120からの要求について、排他制御を行う。
The
コントロールサービス141は、各種のハードウェアリソース等を制御するための機能(API)を上位ソフトウェア等(ここでは、SDKプラットフォーム130等)に対して提供するソフトウェアモジュール群である。例えば、コントロールサービス141は、スキャナ12の制御機能、プリンタ13の制御機能、メモリ(RAM112、ROM113、及びNVRAM115等)の管理機能等を有する。なお、本実施の形態において、コントロールサービス141は、C又はC++によるAPIを提供する。一方、SDKAPIは、Java(登録商標)言語によるAPIである。SDKAPIは、コントロールサービス141が提供するAPIについて、機種の相違に対して平滑化されたJava(登録商標)によるAPIであってもよい。その結果、各SDKアプリ120の機種に対する依存度を低下させることができる。
The
ソケットサービス142は、ソケット通信に関するAPIを提供し、当該APIの呼び出しに応じた処理を実行する。
The
ソケットフック部143は、ソケットサービス142が含むソケットモジュールの呼び出しを監視し、ソケット通信が行われたことを、予めソケットフック部143に対して登録されている通知先に通知する。本実施の形態では、機器側応答性監視アプリ120cが通知先として登録される。斯かる通知先の登録は、イベントリスナーを用いて実現されてもよい。イベントリスナーとは、イベントの通知を受け付けるためのメソッドを有するオブジェクトをいう。イベントの通知を受けたい側(ここでは、機器側応答性監視アプリ120c)は、イベントの通知元(ここでは、ソケットフック部143)が呼び出し可能なメソッドを有するイベントリスナーを生成し、当該イベントリスナーを、イベントの通知元に登録する。イベントの通知元は、通知すべきイベント(ここでは、ソケット通信)を検知すると、登録されているイベントリスナーのメソッドを呼び出すことで、当該イベントの発生を、通知先に通知する。なお、以下に示されるようなJava(登録商標)言語の関数を利用して、ソケットフック部143が実装されてもよい。
The
public static void Socket.setSocketImplFactory(SocketImplFactory fac)
イベントフック部144は、SDKプラットフォーム130とコントロールサービス141とのやりとりを(通信)監視し、当該やりとりが行われたことを、予めイベントフック部144に登録されている通知先に通知する。当該通知先についても、イベントフック部144に対応したイベントリスナーが用いられて実現されてもよい。なお、コントロールサービス141は、SDKプラットフォーム130より下層に位置するため、機器10のハードウェアにより近い位置に存在する。したがって、機器10のハードウェアに関して発生したイベント(例えば、キー操作)は、コントロールサービス141からSDKプラットフォーム130に通知される。また、SDKプラットフォーム130が、機器10のハードウェアを利用したい場合、コントロールサービス141に対して当該ハードウェアの利用に関する要求が行われる。このようなやりとりが、イベントフック部144によって監視される。
public static void Socket.setSocketImplFactory (SocketImplFactory fac)
The
機器側応答性監視アプリ120cについて更に詳しく説明する。図5は、機器側応答性監視アプリの機能構成例を示す図である。図5に示されるように、機器側応答性監視アプリ120cは、実待機時間計測部121、遅延時間算出部122、負荷抑制部123、キー操作監視部124、ソケット監視部125、及び状態監視部126等として、機器10を機能させる。なお、これら各部は、それぞれ異なるスレッドとして起動されてもよい。
The device side
実待機時間計測部121は、実待機時間計測部121として機器10を機能させるスレッドについて、待機状態の所要時間を計測する。すなわち、実待機時間計測部121は、指定された待機時間(以下、「指定時間」という。)の待機と、待機からの復帰への状態遷移とを繰り返し、当該待機の開始から復帰までの経過時間(以下、「実待機時間」という。)を計測する。なお、実待機時間計測部121に係るスレッドの優先度は、他のSDKアプリ120のスレッドの優先度と同等とされるのが望ましい。当該優先度は、OS(Operating System)において管理される優先度である。
The actual standby
図6は、実待機時間計測部の状態遷移を示す図である。図6に示される状態遷移図において、Running状態は、上記での実行状態である。TimedWaiting状態は、上記での待機状態である。 FIG. 6 is a diagram illustrating state transition of the actual standby time measurement unit. In the state transition diagram shown in FIG. 6, the Running state is the execution state described above. The Timed Waiting state is the standby state described above.
実待機時間計測部121は、Running状態からTimedWaiting状態へ遷移する際に、Running状態の退出時の時刻を記録しておく。TimedWaiting状態へ遷移すると、実待機時間計測部121は、指定時間分の待機を開始する。TimedWaiting状態において指定時間経過後、実待機時間計測部121は、Running状態へ遷移する。但し、機器10の負荷状態によっては、Running状態へ遷移が指定時間に対して遅れる場合が有る。実待機時間計測部121は、Running状態への遷移時に、前回のRunning状態の退出時刻から現在時刻までの経過時間(実待機時間)を計測し、計測結果を、例えば、RAM112に記録する。ここで、Running状態へ遷移が指定時間に対して遅れた場合、実待機時間は、指定時間よりも長くなる。
The actual standby
すなわち、一般的に、非リアルタイムOSの場合、決められた時間に処理が完了することは保障されていない。スレッドのスケジュールは、OSが担っており、システムが高負荷で無い場合は、遅延が大きくなることがないが、高負荷の場合は遅延が大きくなる。例えば、相対的に高い優先度のプロセス(スレッド)が優先して実行されている場合や、低い優先度のプロセス(スレッド)がリソースを占有し、高い優先度のプロセス(スレッド)による当該リソースへのアクセスがブロックされる場合等において、遅延が大きくなる。 That is, generally, in the case of a non-real-time OS, it is not guaranteed that the processing is completed at a predetermined time. The OS is responsible for the thread schedule. When the system is not under high load, the delay does not increase, but when the system is under high load, the delay increases. For example, when a relatively high priority process (thread) is preferentially executed, or when a low priority process (thread) occupies a resource, the high priority process (thread) moves to the resource. When access is blocked, the delay increases.
そこで、SDKアプリ120と同一の優先度のスレッドについて、図6に示される状態遷移の遅延(≒スレッドスケジュールの遅延)を測定することで、SDKアプリ120の応答の遅延が予測できると考えられる。なお、OSのプロセス(スレッド)スケジューラは、スレッドの優先順位に応じて公平に処理順番を決めるが、低い優先度のスレッドが高い優先度のスレッドをブロックする場合もあるので、実行される順番は、OSのスケジューラの仕様で決まる。
Therefore, it is considered that the delay of the response of the
遅延時間算出部122は、機器10(SDKアプリ120)の応答の遅延時間とスレッドの状態遷移の遅延時間とについて、以下の式(1)で示される相関に着目して、実待機時間に基づいて、機器10の負荷の程度を示す指標値を生成する。
The delay
機器10の応答の遅延時間≒スレッドの状態遷移の遅延時間 ・・・(1)
ここで、スレッドの状態遷移の遅延時間は、以下の式(2)によって求められる。
Delay time of response of
Here, the delay time of the thread state transition is obtained by the following equation (2).
スレッドの状態遷移の遅延時間=現時点のRunning状態入場時刻−前回のRunning状態退出時刻−指定時間 ・・・(2)
スレッドの状態遷移の遅延時間は、機器10の負荷の程度を示す指標値の一例である。すなわち、遅延時間算出部122は、実待機時間計測部121によって計測される実待機時間と、実待機時間計測部121に対する指定時間との比較に基づいて、機器10の負荷の程度を示す指標値を生成する。
Thread state transition delay time = current running state entry time-previous running state exit time-designated time (2)
The delay time of the state transition of the thread is an example of an index value indicating the degree of load on the
負荷抑制部123は、遅延時間算出部122によって算出される遅延時間と、遅延時間に対する閾値とを継続的に比較し、比較結果が所定の条件を満たす場合(例えば、遅延時間が閾値以上である場合)に、機器10が高負荷状態であると判定する。負荷抑制部123は、機器10が高負荷状態であると判定された場合に、機器10の負荷を低下させるための処理を実行して、当該高負荷状態の解消を試みる。機器10の負荷を低下させる処理の一例として、機器10おいて起動されている一部のプログラムに係る処理の制限が挙げられる。
The
キー操作監視部124は、機器10の操作パネル15に対するハードウェアキーの操作を監視し、検出されたキー操作の履歴を記録する。例えば、キー操作監視部124は、イベントフック部144に対してイベントリスナーを登録しておくことにより、キー操作の発生を検知することができる。
The key
ソケット監視部125は、各SDKアプリ120によるソケット通信を監視し、ソケット通信の履歴を記録する。例えば、ソケット監視部125は、ソケットフック部143にイベントリスナーを登録しておくことにより、ソケット通信の発生を検知することができる。
The
状態監視部126は、各SDKアプリ120の起動状態、アクティブ状態、一時停止状態、及び終了状態等に関する状態遷移等を監視し、状態遷移の履歴を記録する。例えば、状態監視部126は、アプリ管理部131に対してイベントリスナーを登録しておくことにより、各SDKアプリ120の状態遷移を検知することができる。また、状態監視部126は、パネル管理部132にイベントリスナーを登録しておくことにより、いずれかのSDKアプリ120によるパネル利用権限の獲得を検知することができる。更に、状態監視部126は、パネルサービス部133にイベントリスナーを登録しておくことにより、各SDKアプリ120の操作画面の画面遷移を検知することができる。
The
図7は、第一の実施の形態におけるサービス提供装置の機能構成例を示す図である。図7において、サービス提供装置20は、スキャンサーバアプリ21a、印刷サーバアプリ21b、及び機器側応答性監視サーバアプリ21c等のサーバアプリ21を有する。各サーバアプリ21は、機器10におけるSDKアプリ120と連携するための処理を、サービス提供装置20のCPU204に実行させるアプリケーションプログラムである。スキャンサーバアプリ21aは、スキャンアプリ120aと連携する。印刷サーバアプリ21bは、印刷アプリ120bと連携する。機器側応答性監視サーバアプリ21cは、機器側応答性監視アプリ120cと連携する。
FIG. 7 is a diagram illustrating a functional configuration example of the service providing apparatus according to the first embodiment. In FIG. 7, the
サービス提供装置20は、また、印刷データ記憶部211、応答性設定記憶部221、高負荷閾値記憶部222、高負荷情報記憶部223、及び負荷低下情報記憶部224等を利用する。これら各記憶部は、補助記憶装置202、又はサービス提供装置20にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
The
印刷データ記憶部211は、機器10の印刷アプリ120bによって印刷される印刷データを記憶する。応答性設定記憶部221、高負荷閾値記憶部222、高負荷情報記憶部223、及び負荷低下情報記憶部224は、機器側応答性監視アプリ120cに関する設定情報や、機器側応答性監視アプリ120cから通知される情報等を記憶する。
The print
以下、情報処理システム1において実行される処理手順について説明する。図8は、第一の実施の形態における情報処理システムが実行する処理手順の一例を説明するための図である。
Hereinafter, a processing procedure executed in the
ステップS101において、ユーザ環境E1の管理者が、管理者端末30に表示されている画面を介して、機器10の応答性設定について、機器10ごとに選択を行う。応答性設定とは、高負荷時における機器10の振る舞い(対処方法)に関する設定をいう。選択肢としては、例えば、以下の(1)及び(2)が有る。
In step S <b> 101, the administrator of the user environment E <b> 1 selects the responsiveness setting of the
(1)操作レスポンス優先
高負荷時にバックグランド処理を休止させ、操作パネル15の操作に対する応答性を優先させる。バックグラウンド処理の休止は、例えば、当該バックグラウンド処理に係るスレッドの優先度を低下させることによって行われてもよい。又は、当該処理自体が停止されてもよい。
(1) Operation response priority The background processing is suspended at high load, and the response to the operation of the
(2)同一優先
高負荷時でもバックグランド処理の休止は行わない。すなわち、高負荷時において特段の対処は行われない。
(2) Same priority The background processing is not suspended even under high load. That is, no special measures are taken at high loads.
ここでは、(1)が選択されたこととする。管理者端末30は、機器10ごとの選択結果をサービス提供装置20に送信する。すなわち、機器10ごとに、当該機器10の識別情報(以下、「機体番号」という。)と、当該機器10に関する応答性設定の選択結果とを含む設定要求が、サービス提供装置20に送信される。当該設定要求には、また、ユーザ環境E1ごとの識別情報も含まれる。当該識別情報を、以下「テナントID」という。
Here, it is assumed that (1) is selected. The
サービス提供装置20の機器側応答性監視サーバアプリ21cは、当該設定要求を受信すると、当該設定要求に含まれているテナントID,機体番号、及び選択結果を対応付けて、応答性設定記憶部221に記憶する(S102)。
When the device-side responsiveness
図9は、応答性設定記憶部の構成例を示す図である。図9に示されるように、応答性設定記憶部221は、テナントID及び機体番号に対応付けて、応答性設定の選択結果を記憶する。
FIG. 9 is a diagram illustrating a configuration example of the responsiveness setting storage unit. As illustrated in FIG. 9, the responsiveness
続いて、ユーザ環境E1において、いずれかの機器10が起動されると、当該機器10の機器側応答性監視アプリ120cの実待機時間計測部121は、当該機器10に対する応答性設定の照会要求を、サービス提供装置20に送信する(S121)。当該照会要求には、当該機器10において起動されているSDKアプリ120の識別情報(以下、「アプリ名」という。)の一覧、当該機器10の機種名、及び当該機器10の機体番号等が含まれる。
Subsequently, when any
サービス提供装置20の機器側応答性監視サーバアプリ21cは、当該照会要求を受信すると、当該照会要求に含まれている機体番号に対応するレコードが、応答性設定記憶部221に記憶されているか否かを判定する。該当するレコードが有る場合、機器側応答性監視サーバアプリ21cは、当該レコードに含まれている応答性設定の値を、照会要求の送信元の機器10に返信する(S123)。なお、応答性設定の値と共に、機器10が高負荷であることを判定するための、実待機時間に対する閾値(以下、「高負荷閾値」という。)と、負荷を低下させるための方法を示す情報(以下、「負荷低下方法」という。)とが返信される。高負荷閾値及び負荷低下方法は、高負荷閾値記憶部222に記憶されている。
When the device-side responsiveness
図10は、高負荷閾値記憶部の構成例を示す図である。図10に示されるように、高負荷閾値記憶部222は、機種名に対応付けて、高負荷閾値及び負荷低下方法を記憶する。高負荷閾値が、機種名ごとに設定されるのは、機種に応じて処理性能が異なることにより、高負荷時の実待機時間の大きさが異なる可能性が有るからである。また、負荷低下方法が、機種名ごとに設定されるのは、例えば、機種に応じて、各種の負荷低下方法の実施の可否が異なるからである。図10では、負荷低下方法の一例として、「サービス停止」及び「優先度低下」が示されている。「サービス停止」は、バックグラウンドで実行されているSDKアプリ120が利用するサービス(本実施の形態では、スキャンサービス部134又は印刷サービス部135)の処理を一時的に停止させることを示す。「サービス停止」は、サービス側が一時停止用のインタフェース及び実装を備えている必要が有るため、特定の機種において実行可能な負荷低下方法である。優先度低下は、バックグラウンドで実行されているSDKアプリ120のスレッドの優先度を低下させることを示す。
FIG. 10 is a diagram illustrating a configuration example of the high load threshold storage unit. As illustrated in FIG. 10, the high load
ステップS123において返信されるのは、照会要求に含まれている機種名に対応付けられて高負荷閾値記憶部222に記憶されている高負荷閾値及び負荷低下方法である。
In step S123, the high load threshold value and the load reduction method stored in the high load threshold
実待機時間計測部121が、機器側応答性監視サーバアプリ21cから返信された情報を受信し、当該情報に含まれている応答性設定の値が(1)である場合、機器側応答性監視アプリ120cは、機器10の負荷状態の監視を開始する。
When the actual standby
例えば、ステップS125において、実待機時間計測部121は、図6に示した状態遷移を実行することにより実待機時間を計測する。遅延時間算出部122は、実待機時間が計測されるたびに、式(2)に基づいて遅延時間を算出する(S126)。この際、遅延時間算出部122は、今回の遅延時間の期間において、FullGC(ガベージコレクション)等、図6の状態遷移を遅延させる既知の要因が発生した場合、遅延時間の算出を行わなくてもよい。すなわち、当該期間において計測された実待機時間は、無効とされてもよい。FullGCの場合、大きな遅延を引き起こす場合が有り、このような要因によって機器10の負荷状態を判定するのは、適切でないからである。
For example, in step S125, the actual standby
遅延時間が算出された場合、負荷抑制部123は、算出された遅延時間と、ステップS124において受信された高負荷閾値とを比較して、機器10が高負荷状態であるか否かを判定する(S127)。例えば、当該遅延時間が当該高負荷閾値以上であれば、機器10が高負荷状態であると判定される。
When the delay time is calculated, the
機器10が高負荷状態でないと判定された場合、ステップS125が繰り返される。機器10が高負荷状態であると判定された場合、負荷抑制部123は、当該機器10に係るテナントID及び機体番号と、各SDKアプリ120の状態を示す情報と、遅延時間とを含む通知を、サービス提供装置20に送信する(S128)。サービス提供装置20の機器側応答性監視サーバアプリ21cは、当該通知を受信すると、当該通知に含まれている情報を、高負荷情報記憶部223に記憶する(S129)。
If it is determined that the
続いて、負荷抑制部123は、負荷を低下させるための処理を実行する(S130)。例えば、当該処理は、ステップS124において受信された負荷低下方法に従って実行される。負荷低下方法が「サービス停止」である場合、負荷抑制部123は、現在バックグラウンド状態にあるSDKアプリ120が利用するサービス(スキャンサービス部134又は印刷サービス部135)に対して、処理の一時停止を要求する。すなわち、該当するSDKアプリ120がスキャンアプリ120aである場合、スキャンサービス部134に対して一時停止が要求される。該当するSDKアプリ120が印刷アプリ120bである場合、印刷サービス部135に対して一時停止が要求される。一時停止を要求されたサービスは、SDKアプリ120から既に要求されて実行中の処理、又はSDKアプリ120から今後要求される処理について実行を停止する。その結果、CPU111等の負荷が低下し、操作パネル15を介した入力に対する応答性の向上を期待することができる。
Subsequently, the
また、負荷低下方法が「優先度低下」である場合、負荷抑制部123は、現在バックグラウンド状態にあるSDKアプリ120のスレッドの優先度を低下させる。その結果、パネル利用権限を有するSDKアプリ120の優先度が相対的に高くなり、CPU111等の資源が当該SDKアプリ120に対して優先的に割り当てられる。したがって、操作パネル15を介した当該SDKアプリ120への入力に対する応答性の向上を期待することができる。
When the load reduction method is “priority reduction”, the
なお、いずれのSDKアプリ120がバックグラウンド状態であるかについては、状態監視部126によって記録される情報を参照することにより特定可能である。すなわち、ステップS130の時点において、当該情報が一時停止状態を示すSDKアプリ120が、バックグラウンド状態であるSDKアプリ120として特定されてもよい。
Note that which
負荷抑制部123は、また、当該機器10に係るテナントID及び機体番号と、実行した負荷低下処理の内容とを含む情報(以下、「負荷低下情報」という。)を、サービス提供装置20へ送信する。サービス提供装置20の機器側応答性監視サーバアプリ21cは、当該負荷低下情報を負荷低下情報記憶部224に記憶する(S131)。続いて、ステップS125以降が繰り返される。なお、負荷低下情報記憶部224に記憶された負荷低下情報と、その後のステップS128において機器10から送信される高負荷状態の通知とに基づいて、負荷低下情報が示す負荷低下方法の効果について評価が行われてもよい。例えば、負荷の低下効果が低い負荷低下方法については、見直し等が行われてもよい。
The
機器側応答性監視アプリ120cによって、ステップS125以降が繰り返し実行されている状況において、ユーザは、機器10の操作パネル15を介して印刷アプリ120bに対して印刷指示を入力する(S111)。続いて、印刷アプリ120bは、印刷指示において選択された印刷データを、サービス提供装置20の印刷サーバアプリ21bから取得(ダウンロード)する(S112)。なお、ステップS112においては、まず、ユーザがアクセス可能な印刷データの一覧情報が、印刷サーバアプリ21bから取得される。当該一覧情報の中から選択された印刷データが、印刷サーバアプリ21b経由で印刷データ記憶部211から取得される。印刷アプリ120bは、印刷データを取得すると、当該印刷データに関して印刷ジョブを開始する(S113)。
In a situation where step S125 and subsequent steps are repeatedly executed by the device-side
ユーザは、また、印刷指示の後、印刷の完了を待たずにスキャンアプリ120aの利用を開始する。例えば、操作パネル15を介してスキャンアプリ120aの操作画面の表示指示が入力されると、操作パネル15に、スキャンアプリ120aの操作画面(スキャン指定画面)が表示される。したがって、このタイミングで、印刷アプリ120bは、バックグラウンド状態となる。
In addition, after the print instruction, the user starts using the
ユーザは、スキャン指定画面を介してスキャンの実行指示を入力する(S114)。スキャンの実行指示には、画像データの読み取り設定や、読み取られた画像データの配信先の指定等が含まれる。続いて、スキャンアプリ120aは、読み取り設定に従って、原稿からの画像データの読み取り(スキャン)を開始する(S115)。画像データの読み取りが完了すると、スキャンアプリ120aは、当該画像データに関するアップロード要求を、サービス提供装置20のスキャンサーバアプリ21aに送信する(S116)。画像データのアップロードが完了すると、スキャンアプリ120aは、ユーザによって指定された配信先を示す情報を含む配信要求を、スキャンサーバアプリ21aに送信する(S117)。スキャンサーバアプリ21aは、アップロードされた画像データを、当該配信要求に含まれている情報が示す配信先へ配信する。
The user inputs a scan execution instruction via the scan designation screen (S114). The scan execution instruction includes image data reading setting, designation of a distribution destination of the read image data, and the like. Subsequently, the
図8に示されるような処理が実行される場合、機器側応答性監視アプリ120cは、例えば、図11に示されるような情報を記録する。図11は、機器側応答性監視アプリによって記録される情報の一例を示す図である。
When the process as shown in FIG. 8 is executed, the device-side
図11に示されるテーブルの1行は、1秒毎のレコードである。各レコードは、経過時間、メモリ消費量、遅延時間、並びに各SDKアプリ120のアプリ状態及びソケット通信状態等を含む。なお、図11は、各情報が一つのテーブルに記録されなければならないことを示すものではない。図11は、機器側応答性監視アプリ120cの各部によって記録される各情報を時刻に基づいて同期させると、当該テーブルに示されるような情報が得られることを示すものである。
One row of the table shown in FIG. 11 is a record every second. Each record includes elapsed time, memory consumption, delay time, and application status and socket communication status of each
経過時間は、或る時点(例えば、印刷指示の開始時)からの経過時間を示す。メモリ消費量は、当該経過時間におけるメモリ消費量である。例えば、メモリ消費量は、OSに問い合わせることにより取得可能である。遅延時間は、遅延時間算出部122によって算出及び記録される遅延時間である。単位は、ミリ秒である。
The elapsed time indicates an elapsed time from a certain point in time (for example, at the start of a print instruction). The memory consumption is a memory consumption during the elapsed time. For example, the memory consumption can be acquired by inquiring the OS. The delay time is a delay time calculated and recorded by the delay
各SDKアプリ120(図11では、スキャンアプリ120a及び印刷アプリ120b)のアプリ状態は、当該経過時間における各SDKアプリ120のパネル利用権限の有無(すなわち、フォアグラウンド状態かバックグラウンド状態か)及び画面遷移を示す。すなわち、「:」の前の「B」は、パネル利用権限を有さないバックグランド状態を意味する。「F」は、パネル利用権限を有するフォアグラウンド状態を意味する。また、「B−>F」は、バックグラウンド状態からフォアグラウンド状態への移行を意味し、「F−>B」は、フォアグラウンド状態からバックグラウンド状態への移行を意味する。「:」の後は、表示中の操作画面を示す。アプリ状態は、機器側応答性監視アプリ120cの状態監視部126によって記録される。すなわち、「B」、「F」、「B−>F」、及び「F−>B」は、パネル管理部132から通知されるパネル利用権限の授与又は回収に基づいて記録される。パネル管理部132からの通知には、パネル利用権限の授与又は回収を示す情報と、パネル利用権限の授与先又は回収元のSDKアプリ120のアプリ名とが含まれる。画面遷移は、パネルサービス部133からの画面の描画の通知に基づいて記録される。
The application state of each SDK application 120 (in FIG. 11, the
ソケット通信状態は、ソケット通信の状態を示す情報である。「:」の前の「C」は、通信相手がサービス提供装置20であることを示す。通信相手の識別は、IPアドレスに基づいて行われてもよい。「:」の後の「R」又は「W」は、通信の方向を示す。「R」は、受信を示す。「W」は、送信を示す。「R」又は「W」に続く括弧内の値は、通信データのサイズと通信回数とを示す。ソケット通信状態は、機器側応答性監視アプリ120cのソケット監視部125によって記録される。すなわち、ソケット通信状態は、ソケットフック部143からソケット監視部125へ通知される情報である。なお、アプリ状態及びソケット状態について、「↓」は、直前の経過時間における状態が継続していることを示す。
The socket communication state is information indicating the state of socket communication. “C” before “:” indicates that the communication partner is the
各経過時間における印刷アプリ120bのアプリ状態及びソケット通信状態の記録について説明する。図12は、各経過時間における印刷アプリのアプリ状態及びソケット通信状態を説明するための図である。図12において、括弧内の数字は、図11の経過時間に対応する。また、以下の説明における括弧内の数字も、図11の経過時間に対応する。
The recording of the application state and socket communication state of the
(1)印刷アプリ120bは、アクティブ状態に遷移してパネル利用権限を獲得し、印刷指定画面を操作パネル15に表示させている。アプリ管理部131は、印刷アプリ120bのアクティブ状態への遷移を、状態監視部126に通知する。また、パネル管理部132は、印刷アプリ120bにパネル利用権限を授与したことを状態監視部126に通知する。更に、パネルサービス部133は、印刷指定画面の描画を状態監視部126に通知する。状態監視部126は、これらの通知に基づいて、「F:印刷指定」を記録する。
(1) The
(2)印刷アプリ120bは、印刷サーバアプリ21bに対して、印刷データの一覧情報をソケット通信経由で要求する。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:R(1KB/1回)」を記録する。
(2) The
(3)印刷アプリ120bは、一覧情報の中から選択された印刷データについて、ソケット通信経由で印刷サーバアプリ21bに対して取得要求を送信し、印刷指定画面から印刷データ取得画面へ操作画面を遷移させる。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:W(1KB/1回)」を記録する。また、パネルサービス部133は、印刷データ取得画面の描画を状態監視部126に通知する。状態監視部126は、当該通知に基づいて、「F:印刷データ取得」を記録する。
(3) The
(4)機器10は、ユーザからのアプリケーションの切り替え指示に応じ、操作パネル15へスキャンアプリ120aの操作画面を表示させる。この際、アプリ管理部131は、印刷アプリ120bを一時停止状態に遷移させ、当該遷移を状態監視部126に通知する。また、パネル管理部132は、印刷アプリ120bからパネル利用権限を回収し、当該回収を状態監視部126に通知する。状態監視部126は、これらの通知に基づいて「F−>B:画面切替」を記録する。但し、印刷アプリ120bは、一時停止状態へ移行してもソケット通信経由で印刷データの取得(ダウンロード)を実行する。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:R(4MB/4回)」を記録する。
(4) The
(5)印刷アプリ120bは、ソケット通信経由での印刷データの取得を継続する。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:R(4MB/4回)」を記録する。(6)〜(8)も同様である。
(5) The
(9)印刷アプリ120bは、取得した印刷データに関して印刷を開始する。
(9) The
続いて、各経過時間におけるスキャンアプリ120aのアプリ状態及びソケット通信状態の記録について説明する。図13は、各経過時間におけるスキャンアプリのアプリ状態及びソケット通信状態を説明するための図である。図13において、括弧内の数字は、図11の経過時間に対応する。また、以下の説明における括弧内の数字も、図11の経過時間に対応する。
Next, recording of the application state and socket communication state of the
(4)機器10は、ユーザからのアプリケーションの切り替え指示に応じ、操作パネル15へスキャンアプリ120aの操作画面(スキャン指定画面)を表示させる。この際、アプリ管理部131は、スキャンアプリ120aを一時停止状態からアクティブ状態に遷移させ、当該遷移を状態監視部126に通知する。また、パネル管理部132は、印刷アプリ120bから回収したパネル利用権限をスキャンアプリ120aに授与し、当該授与を状態監視部126に通知する。状態監視部126は、これらの通知に基づいて「B−>F:画面切替」を記録する。
(4) The
(5)スキャンアプリ120aは、ソケット通信経由でスキャンサーバアプリ21aから配信先候補情報受信する。配信先候補情報は、画像データの配信先の候補を示す情報である。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:R(1KB/1回)」を記録する。配信先候補の受信は、(6)においても継続される。配信先情報の受信が完了すると、スキャンアプリ120aは、配信先候補情報をスキャン指定画面に表示する。
(5) The
続いて、ユーザによって、スキャン指定画面を介して、読み取り設定及び配信先指定等が入力され、スキャンの実行が指示される。 Subsequently, the user inputs reading settings and delivery destination designation via the scan designation screen, and instructs execution of the scan.
(8)機器10は、原稿の読み取りを開始し、操作画面をスキャン実行画面へ遷移させる。この際、パネルサービス部133は、スキャン実行画面を描画し、当該描画を状態監視部126に通知する。状態監視部126は、当該通知に基づいて、「F:スキャン実行」を記録する。
(8) The
(9)スキャンアプリ120aは、原稿から読み取られた画像データを、ソケット通信経由でスキャンサーバアプリ21aに送信する。スキャンアプリ120aは、また、操作画面をスキャン配信画面へ遷移させる。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:W(1KB/4回)」を記録する。パネルサービス部133は、スキャン配信画面を描画し、当該描画を状態監視部126へ通知する。状態監視部126は、当該通知に基づいて、「F:スキャン配信」を記録する。(10)から(11)において、画像データの送信は継続する。なお、送信される画像データのサイズは、12MBあり、1MB単位で分割されて送信される。
(9) The
(12)スキャンアプリ120aは、画像データの配信先を示す情報を、ソケット通信経由でスキャンサーバアプリ21aに送信する。ソケットフック部143は、当該ソケット通信に関する情報を、ソケット監視部125に通知する。ソケット監視部125は、当該通知に基づいて、「C:W(1KB/1回)」を記録する。
(12) The
なお、ソケットフック部143によって検知されるソケット通信の通信元のが、いずれのSDKアプリ120であるかについては、例えば、次のように特定されてもよい。
For example, the
SDKアプリ120が、Java(登録商標)アプリケーションである場合、例えば、Java(登録商標)の標準クラスであるスレッドグループ(ThreadGroup)を用いて、各SDKアプリ120を識別することができる。スレッドグループとは、スレッド(Thread)やスレッドグループの集合であり、一つ以上のスレッドをスレッドグループに関連付けることができる。また、スレッドグループには、名前(スレッドグループ名)を付加することができる。そして、各スレッド内では、当該スレッドが属するスレッドグループを識別することができる。なお、本実施の形態において、SDKプラットフォーム130の各部、ソケットフック部143、及びイベントフック部144等は、独立したプロセス又は独立したスレッドとして起動されるものではなく、SDKAPIの呼び出し元のSDKアプリ120のスレッド上で動作する。
When the
斯かる仕組みに基づけば、例えば、ソケットフック部143では、以下のように呼び出し元のSDKアプリ120のアプリ名を特定することができる。図14は、呼び出し元のアプリ名の特定方法を説明するための図である。
Based on such a mechanism, for example, the
図中、GPx(xはa〜c)は、スレッドグループを示す。thx(xは、a〜d)は、スレッドを示す。図14の例では、スキャンアプリ120aには、スレッドグループGPbが関連付けられており、スレッドグループ名としてスキャンアプリ120aのアプリ名が付加されている。また、スキャンサービス部134にはスレッドグループGPcが関連付けられている。
In the figure, GPx (x is a to c) indicates a thread group. thx (x is ad) indicates a thread. In the example of FIG. 14, a thread group GPb is associated with the
スキャンアプリ120aには、メソッドAを実行中のスレッドthaと、メソッドBを実行中のスレッドthbとが存在する。ここで、スレッドthaとスレッドthbとは、スレッドグループGPbに属する。例えば、スキャンアプリ120aのメソッドB内より、スキャンサービス部134のメソッドCが呼び出された場合、メソッドCは、スレッドthb上で動作する。更に、メソッドCよりソケット通信に関するAPIが呼び出された場合、当該呼び出しを検知したソケットフック部143は、スレッドthb上で動作する。したがって、ソケットフック部143が、ソケット通信を検知した時点のスレッドを確認するとスレッドthbが特定される。更に、ソケットフック部143が、スレッドthbが属するスレッドグループを確認すると、スレッドグループGPbが特定される。そこで、ソケットフック部143が、スレッドグループGPbのスレッドグループ名を取得すると、取得されるスレッドグループ名は、ソケット通信元のSDKアプリ120のアプリ名に該当する。
The
なお、図15は、機器側応答性監視アプリによって記録される情報をグラフ化した図である。図15に示される折れ線グラフの縦軸は遅延時間であり、横軸は経過時間である。遅延時間が大きい時期に、機器10の応答性が低下していることが推定される。
FIG. 15 is a graph of information recorded by the device-side responsiveness monitoring application. The vertical axis of the line graph shown in FIG. 15 is the delay time, and the horizontal axis is the elapsed time. It is estimated that the responsiveness of the
グラフの下側には、スキャンアプリ120a及び印刷アプリ120bのおおよその状態が経過時間に同期して図示されている。画面切り替えが発生した期間(すなわち、印刷データの取得が行われている期間)や、画像データのアップロードと印刷とが並行して実行される期間において、遅延時間が大きくなっている。このような期間では、スキャンアプリ120aの操作画面の応答性が低下することが推測される。そこで、画面切り替え後において、印刷アプリ120bに関して負荷低下処理が実行されることで、スキャンアプリ120aの操作画面の応答性の改善を期待することができる。
Below the graph, the approximate states of the
図15には、高負荷閾値の一例が示されている。高負荷閾値が、図15に示されるような値である場合、経過時間(4)において、負荷低下処理が実行される。但し、図15のグラフには、負荷低下処理の効果は反映されていない。 FIG. 15 shows an example of the high load threshold. When the high load threshold is a value as shown in FIG. 15, the load reduction process is executed at the elapsed time (4). However, the effect of the load reduction process is not reflected in the graph of FIG.
なお、遅延時間に対する閾値は、2つ以上であってもよい。図16は、遅延時間に対する閾値が二つである例を示す図である。図16では、高負荷閾値に加え、中負荷閾値が追加され、機器10の負荷状態が、低負荷状態、中負荷状態、及び高負荷状態の3つの状態に分類される例が示されている。例えば、負荷抑制部123は、中負荷状態を検知した場合と、高負荷状態を検知した場合とで、相互に異なる負荷低下処理を実行してもよい。高負荷状態の方が、相対的に負荷の低下効果が高い負荷低下処理が実行されてもよい。
Note that the threshold for the delay time may be two or more. FIG. 16 is a diagram illustrating an example in which there are two thresholds for the delay time. FIG. 16 shows an example in which a medium load threshold is added in addition to a high load threshold, and the load state of the
なお、負荷抑制部123は、高負荷状態又は中負荷状態が検知された時点において、図アプリ状態の値(図11参照)の先頭が「B」であるSDKアプリ120を、負荷低下処理の対象として選択する。
Note that the
続いて、図8のステップS125の詳細について説明する。図17は、実待機時間の計測処理の処理手順の一例を説明するためのフローチャートである。 Next, details of step S125 in FIG. 8 will be described. FIG. 17 is a flowchart for explaining an example of a processing procedure of actual standby time measurement processing.
実待機時間計測部121は、待機の開始時(Running状態の退出時)に、現在時刻を変数T0に代入する(S201)。続いて、実待機時間計測部121は、指定時間分の待機を実行する(S202)。指定時間は、予め指定されている。例えば、wait関数が用いられる場合、wait関数の引数に指定時間が指定される。指定時間分の待機から復帰すると、実待機時間計測部121は、現在時刻を変数T1に代入する(S203)。続いて、実待機時間計測部121は、T1−T0を実待機時間として算出する(S204)。
The actual standby
上述したように、本実施の形態によれば、機器側応答性監視アプリ120cが実行する処理は、図6又は図17に示されるように、負荷の低い処理である。したがって、機器10の負荷状態を比較的低負荷な処理によって推定可能とすることができる。
As described above, according to the present embodiment, the process executed by the device-side
また、遅延時間が閾値を超える場合、バックグラウンド処理に関して、負荷を低下させるための処理が実行される。その結果、操作パネル15を介したユーザによる操作に対する応答性を向上させることができ、ユーザに対してストレスの小さい操作性を提供できる可能性を高めることができる。
Further, when the delay time exceeds the threshold value, a process for reducing the load is executed with respect to the background process. As a result, it is possible to improve the responsiveness to the operation by the user via the
なお、既存のSDKアプリ120(スキャンアプリ120a及び印刷アプリ120b等)内において、ユーザからの操作要求を受け付ける箇所と、当該操作要求に対する応答を返却する箇所のそれぞれに、時間測定の監視コードを埋め込むことも考えられる。また、CPU及びI/Oのトラフィックをカーネルレベルで監視することで負荷を監視することも可能である。しかし、これらの方法では、既存の各SDKアプリ120を改変する必要が有ったり、監視するために多くのCPUリソースが消費されてしまったりする可能性が高い。本実施の形態によれば、このような問題を回避しつつ、機器10の負荷状態を推定することができる。
In the existing SDK application 120 (such as the
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。 Next, a second embodiment will be described. In the second embodiment, differences from the first embodiment will be described. Accordingly, points not particularly mentioned may be the same as those in the first embodiment.
第二の実施の形態では、機器10(例えば、スキャンアプリ120a)からサービス提供装置20(例えば、スキャンサービス部134アプリ)に対する要求に対して応答が返却されるまでの時間(以下、「サーバ応答時間」という。)等を計測する例について説明する。サーバ応答時間は、以下の式(3)によって規定される。
In the second embodiment, the time until a response is returned from the device 10 (for example, the
サーバ応答時間=サービス実行時間+往復の通信時間 ・・・(3)
サービス実行時間は、機器10からの要求に応じてサービス提供装置20側で実行される処理の所要時間である。往復の通信時間は、機器10からの要求と、サービス提供装置20からの応答とのそれぞれの通信時間の合計である。通信時間は、ユーザ環境E1の通信環境(例えば、通信性能)に依存する。通信環境を計測するための手段として、pingコマンド(Packet Internet Groper)を用いることが考えられる。
Server response time = service execution time + round trip communication time (3)
The service execution time is a time required for processing executed on the
図18は、pingコマンドを使用した通信環境の計測を説明するための図である。図18では、サービス提供装置20を対象(宛先)として、機器10において実行されるpingコマンドc1と、機器10を対象(宛先)として、サービス提供装置20において実行されるpingコマンドc2とが示されている。
FIG. 18 is a diagram for explaining measurement of the communication environment using the ping command. FIG. 18 shows a ping command c1 executed in the
一般的に、pingコマンドc1に対しては、サービス提供装置20からの応答が正常に返信される。したがって、機器10においては、ユーザ環境E1の通信環境を計測することができる。一方、pingコマンドc2に関するパケットは、ユーザ環境E1に設置されているファイアウォールによって、通過が許可されない。したがって、サービス提供装置20において、pingコマンドを使用して、ユーザ環境E1の通信環境を計測することは困難である。
Generally, a response from the
したがって、各機器10においてpingコマンドを実行させれば、各機器10の通信環境を計測することができる。しかし、既に利用されている全ての機器に対して、通信環境を計測するためのプログラムをインストールするのは経済的ではない。
Therefore, if the ping command is executed in each
そこで、第二の実施の形態では、pingコマンドを用いずに、ユーザ環境E1の通信環境をサービス提供装置20側で計測し、更に、機器10から見た場合の、サービス提供装置20の応答時間(すなわち、サーバ応答時間)を、サービス提供装置20側で推定する例について説明する。
Therefore, in the second embodiment, the communication environment of the user environment E1 is measured on the
図19は、第二の実施の形態におけるサービス提供装置の機能構成例を示す図である。図19中、図7と同一部分には同一符号を付し、その説明は省略する。図19において、サービス提供装置20は、サーバ応答性監視部230を有する。サービス提供装置20は、また、監視機器記憶部231及び監視要求記憶部232を利用する。監視機器記憶部231及び監視要求記憶部232は、補助記憶装置202、又はサービス提供装置20にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
FIG. 19 is a diagram illustrating a functional configuration example of the service providing apparatus according to the second embodiment. In FIG. 19, the same parts as those of FIG. In FIG. 19, the
サーバ応答性監視部230は、各機器10から各サーバアプリ21への要求と、各サーバアプリ21から各機器10への応答とを監視して、サーバ応答時間等を推定する。監視機器記憶部231は、サーバ応答時間の推定対象とする監視対象の機器10の機体番号を記憶する。監視要求記憶部232は、監視対象とする要求及び応答を識別するための情報を記憶する。なお、本実施の形態では、監視対象とする要求及び応答が、全ての機器10に対して共通である例を説明するが、機器10ごとに、監視対象とする要求及び応答が異なってよい。
The server
図20は、第二の実施の形態におけるサーバ応答時間の推定方法を説明するための図である。サーバ応答性監視部230は、機器10のSDKアプリ120からの、サーバアプリ21に対する要求の順番の規則性に着目して、サーバ応答時間等を推定する。すなわち、或る要求については、必ず特定の要求の次に送信されるという規則性が有り、当該規則性を利用して、サーバ応答時間等が推定される。図20では、スキャンアプリ120aからスキャンサーバアプリ21aに対して、要求Aの後には、要求Bが送信されることが示されている。
FIG. 20 is a diagram for explaining a server response time estimation method according to the second embodiment. The server
すなわち、スキャンアプリ120aが、スキャンサーバアプリ21aに対して要求Aを送信すると(S301)、スキャンサーバアプリ21aは、要求Aに応じた処理(サービスA)を実行し、その処理結果を含む応答A'を返信する(S302)。スキャンアプリ120aは、応答A'を受信すると、応答A'に含まれている情報を利用した処理を実行する(S303)。続いて、スキャンアプリ120aが、要求Bをスキャンサーバアプリ21aに送信すると(S304)、スキャンサーバアプリ21aは、要求Bに応じた処理(サービスb)を実行し、その処理結果を含む応答B'を返信する(S305)。
That is, when the
スキャンアプリ120aからスキャンサーバアプリ21aへの要求に関して、このような規則性が有る場合、サーバ応答性監視部230は、要求Aの受信を検知すると、要求Aが受信されてから応答A'が返信されるまでの時間(サービス実行時間)を計測する。サーバ応答性監視部230は、また、応答A'が返信されてから、要求Bが受信されるまでの時間を計測する。なお、応答A'が返信されてから、要求Bが受信されるまでの時間を、「サービス待機時間」という。すなわち、サービス待機時間は、以下の式(4)によって規定される。
When there is such regularity with respect to the request from the
サービス待機時間=応答A'の通信時間+応答A'利用処理時間+要求Bの通信時間 ・・・(4)
図20に示されるシーケンスの所要時間の内訳は、例えば、図21に示される通りである。図21は、サーバ応答時間の推定に用いられるシーケンスの所要時間の内訳を示す図である。図21において、横軸は、処理が実行される箇所を示し、縦軸は、時間を示す。縦軸に示されている時間t1〜t15は、各処理の所要時間を示す。
Service waiting time = communication time of response A ′ + response processing time of response A ′ + communication time of request B (4)
The breakdown of the time required for the sequence shown in FIG. 20 is, for example, as shown in FIG. FIG. 21 is a diagram showing a breakdown of the required time of the sequence used for estimating the server response time. In FIG. 21, the horizontal axis indicates a place where processing is executed, and the vertical axis indicates time. Times t1 to t15 shown on the vertical axis indicate the time required for each process.
時間t1は、ユーザによる入力から要求Aが送出されるまでに機器10内で実行される処理の所要時間である。時間t2は、機器10から要求Aが送出されてから、サービス提供装置20において要求Aが受信されたことがサーバ応答性監視部230によって検知されるまでの所要時間である。時間t3は、サーバ応答性監視部230によって要求Aの受信が検知されてから、スキャンサーバアプリ21aが要求Aを受信するまでの所要時間である。時間t4は、スキャンサーバアプリ21aによる、要求Aに応じた処理(サービスA)の所要時間である。時間t5は、スキャンサーバアプリ21aが応答A'を出力してから、サービス提供装置20による応答A'の送出をサーバ応答性監視部230が検知するまでの所要時間である。なお、例えば、時間t3〜t5が、要求Aに係るサービス実行時間である。
The time t1 is a time required for processing executed in the
時間t6は、サーバ応答性監視部230が応答A'の送出を検知してから、機器10において応答A'が受信されるまでの所要時間である。時間t7は、機器10において応答A'が受信されてから、応答A'を利用した処理が開始されるまでの所要時間である。時間t8は、応答A'に応じて機器10が実行する処理の所要時間である。時間t9は、当該処理の完了から、要求Bが送出されるまでの所要時間である。なお、例えば、時間t7〜t9は、応答A'利用処理時間である。時間t10は、機器10から要求Aが送出されてから、サービス提供装置20において要求Aが受信されたことがサーバ応答性監視部230によって検知されるまでの所要時間である。なお、例えば、時間t6〜時間t10までが、サービス待機時間である。
The time t6 is a time required from when the server
時間t11以降の説明については、時間t3〜t7に関する説明により自明であるため省略する。 The description after the time t11 is omitted because it is obvious from the description regarding the times t3 to t7.
本実施の形態では、式(3)によって規定されるサーバ応答時間を、サービス提供装置20において算出可能とするために、以下の式(5)及び式(6)によって示される前提が導入される。
In the present embodiment, in order to make it possible for the
(機器10の低負荷時の)応答A'利用処理時間<<サービス待機時間 ・・・(式5)
要求の通信量及び通信速度=応答の通信量及び通信速度 ・・・(式6)
式(5)は、サービス待機時間に対して、応答A'利用処理時間が十分小さい(無視できる程度に小さい)ことを示す。換言すれば、本実施の形態では、単に、相互に前後関係にあるという条件を満たすだけでなく、式(5)及び式(6)を満たすような要求が、要求A及び要求Bとして選択される。すなわち、要求A又は要求Bに該当する要求の識別情報が、監視要求記憶部232に登録される。
Response A ′ usage processing time (when the load of the
Requested communication volume and communication speed = Response communication volume and communication speed (Expression 6)
Expression (5) indicates that the response A ′ use processing time is sufficiently small (small enough to be ignored) with respect to the service standby time. In other words, in the present embodiment, requests that satisfy not only the condition that they are in the context of each other but also satisfy the expressions (5) and (6) are selected as the requests A and B. The That is, identification information of a request corresponding to the request A or the request B is registered in the monitoring
式(5)及び式(6)が満たされる場合、サービス待機時間を、機器10とサービス提供装置20との間の往復の通信時間としてみなすことができるため、式(3)によって規定されるサーバ応答時間は、式(3')によって近似することができる。
When Expression (5) and Expression (6) are satisfied, the service standby time can be regarded as a round-trip communication time between the
サーバ応答時間≒サービス実行時間+サービス待機時間 ・・・(3')
ここで、サービス実行時間及びサービス待機時間は、サーバ応答性監視部230によって計測可能な時間である。したがって、第二の実施の形態によれば、機器10から見たサービス提供装置20の応答時間(すなわち、サーバ応答時間)を、サービス提供装置20において推定することができる。なお、機器10ごとに通信速度は異なるため、サービス待機時間は、機器10ごとに異なる。したがって、サーバ応答時間は、機器10ごとに計測(推定)される。
Server response time ≒ service execution time + service standby time (3 ')
Here, the service execution time and the service standby time are times that can be measured by the server
図22は、第二の実施の形態における情報処理システムが実行する処理手順の一例を説明するための図である。図22中、図8と同一処理には同一ステップ番号を付し、その説明は適宜省略する。 FIG. 22 is a diagram for explaining an example of a processing procedure executed by the information processing system according to the second embodiment. In FIG. 22, the same processes as those in FIG. 8 are denoted by the same step numbers, and the description thereof is omitted as appropriate.
ステップS401において、ユーザ環境E1の管理者が、管理者端末30に表示されている画面を介して、サーバ応答時間の計測対象とする機器10の選択を行うと、管理者端末30は、当該ユーザ環境E1のテナントIDと、選択された機器10の機体番号とを含む、サーバ応答時間の計測要求を、サービス提供装置20に送信する。
In step S401, when the administrator of the user environment E1 selects the
サーバ応答性監視部230は、当該計測要求を受信すると、当該計測要求に含まれているテナントID及び機体番号をサービス提供装置20の監視機器記憶部231に記憶し、当該テナントID及び機体番号に係る機器10からの要求の監視を開始する(S402)。すなわち、機器10からの各要求には、テナントID及び機体番号そのもの、又はテナントID及び機体番号に関連付けられてサービス提供装置20において管理されている情報が含まれている。なお、複数の機器10が監視対象とされてもよい。
Upon receiving the measurement request, the server
続いて、監視対象とされた機器10に関して、ステップS114〜S117が実行される。ステップS114〜S117については、図8において説明した通りでよい。
Subsequently, steps S114 to S117 are executed for the
サーバ応答性監視部230は、ステップS116において機器10から送信されたアップロード要求がサービス提供装置20において受信されたことを検知すると、サーバ応答時間の計測処理を開始する(S411)。すなわち、本実施の形態では、スキャンアプリ120aからのアップロード要求が、図20において説明した要求Aに相当する。したがって、ステップS411では、アップロード要求に対する応答や、当該応答に応じてステップS117において機器10から送信される配信要求等が監視される。サーバ応答性監視部230は、監視対象とされた要求又は応答が検知された時刻を、例えば、メモリ装置203に機器10別に記録し、記録された時刻に基づいて、サービス実行時間、サービス待機時間、及びサーバ応答時間等を、監視対象とされた機器10ごとに算出する。ここでのサービス実行時間は、アップロード要求の受信が検知されてから、アップロード要求に対する応答が返信されるまでの経過時間である。また、ここでのサービス待機時間は、アップロード要求に対する応答が返信されてから、配信要求が受信されるまでの経過時間である。サービス待機時間は、監視対象の機器10とサービス提供装置20との間のネットワークの通信環境(通信性能)を示す値として利用される。
When detecting that the upload request transmitted from the
続いて、サーバ応答性監視部230は、例えば、サービス実行時間、サービス待機時間、及びサーバ応答時間と、これらの時間が算出された機器10に係るテナントID及び機体番号とを含む報告情報を、スキャンサーバアプリ21aと、当該機器10が属するユーザ環境E1の管理者端末30とに送信する(S412)。なお、管理者端末30への報告情報の送信は、電子メールを利用して行われてもよい。例えば、サービス提供装置20には、予め、機器10ごとに、管理者端末30に対するメールアドレスが記憶されていてもよい。
Subsequently, the server
スキャンサーバアプリ21aは、報告情報を受信すると、当該報告情報に応じた処理を実行する(S413)。例えば、スキャンサーバアプリ21aは、当該報告情報に含まれているサービス待機時間が閾値を超える場合は、当該報告情報に含まれているテナントID及び機体番号に係る機器10からの要求に関して制限を加えてもよい。すなわち、サービス待機時間は、機器10とサービス提供装置20との間の通信時間の推定値である。したがって、サービス待機時間が長い機器10は、通信性能の低いネットワークに接続されている可能性が高いと考えられる。しかし、機器10のユーザには、サービス提供装置20の性能の劣化の問題であると認識される可能性が有る。
When receiving the report information, the
そこで、サービス提供装置20の性能について、誤解を受けないようにするための対策として、このような機器10に対しては、アップロード可能な画像データの合計サイズ等を制限することで、サーバ応答時間の長期化が回避されてもよい。
Therefore, as a measure for avoiding misunderstanding about the performance of the
アップロード可能な画像データの合計サイズは、例えば、当該機器10からの次回のスキャンサーバアプリ21aに対する何らかの要求の受信に対する応答に含められて、当該機器10に通知されてもよい。当該機器10は、当該通知を示す情報を、例えば、HDD114に記憶する。スキャンアプリ120aは、次回のジョブの実行の際に、当該情報が示す合計サイズの範囲内となるように、ユーザが指定可能なスキャン枚数及び解像度等を制限してもよい。
The total size of image data that can be uploaded may be included in a response to reception of a request from the
また、管理者端末30に送信される報告情報には、機器10とサービス提供装置20との連携に関するアドバイスが含まれてもよい。例えば、当該報告情報には、ユーザ環境E1に係る通信環境が、サービス提供装置20との連携に適した通信環境であるか否かを示す情報が含まれてもよい。サービス提供装置20との連携に適した通信環境であるか否かは、サービス待機時間と閾値との比較に基づいて判定されてもよい。
Further, the report information transmitted to the
また、機器10の機体番号ごとに、サーバ応答時間及びサービス待機時間の履歴が時系列に記録されてもよい。斯かる履歴に基づいて、特定の時間帯における通信品質の劣化(すなわち、サービス待機時間の長期化)を示す情報が、管理者端末30に送信される報告情報に含められてもよい。また、推奨可能なアプリケーションを示す情報が報告情報に含まれてもよい。
Moreover, the history of the server response time and the service standby time may be recorded in time series for each machine number of the
更に、報告情報は、機器10に対して送信されてもよい。機器10は、ジョブの実行前に、当該報告情報を参照して、サーバ応答時間の予測値を表示してもよい。
Further, the report information may be transmitted to the
続いて、ステップS411の詳細について説明する。図23は、サーバ応答時間の計測処理の処理手順の一例を説明するためのフローチャートである。 Next, details of step S411 will be described. FIG. 23 is a flowchart for explaining an example of a processing procedure of server response time measurement processing.
サーバ応答性監視部230は、機器10からの要求の受信、又はサーバアプリ21からの応答の返信を待機している(S501、S502)。サーバ応答性監視部230は、機器10からの要求がサービス提供装置20において受信されたことを検知すると(S501でYes)、当該要求(以下、「対象要求」という。)の送信元の機器10が監視対象であるか否かを判定する(S503)。当該判定は、対象要求に含まれている情報に基づいて特定される当該機器10のテナントID及び機体番号が、監視機器記憶部231に記憶されているか否かに基づいて行うことができる。
The server
当該テナントID及び機体番号が監視機器記憶部231に記憶されている場合(S503でYes)、サーバ応答性監視部230は、当該要求が監視対象の要求であるか否かを、監視要求記憶部232を参照して判定する(S504)。
When the tenant ID and the machine number are stored in the monitoring device storage unit 231 (Yes in S503), the server
図24は、監視要求記憶部の構成例を示す図である。図24において、監視要求記憶部232は、計測開始要求と計測終了要求とのそれぞれの識別情報を記憶する。
FIG. 24 is a diagram illustrating a configuration example of the monitoring request storage unit. In FIG. 24, the monitoring
計測開始要求は、サーバ応答時間等の計測の開始の契機となる要求である。図24では、スキャンサーバアプリ21aに対するアップロード要求が、計測開始要求である例が示されている。計測終了要求は、サーバ応答時間等の計測の終了の契機となる要求である。図24では、スキャンサーバアプリ21aに対する配信要求が、計測終了要求である例が示されている。なお、計測開始要求は、図20の要求Aに相当し、計測終了要求は、図20の要求Bに相当する。
The measurement start request is a request that triggers the start of measurement such as server response time. FIG. 24 shows an example in which the upload request to the
ステップS504では、対象要求に含まれている要求の内容が、計測開始要求又は計測終了要求に該当するか否かが判定される。すなわち、機器10からの要求には、要求先のサーバアプリ21の識別情報と、要求の識別情報とが含まれている。
In step S504, it is determined whether the content of the request included in the target request corresponds to a measurement start request or a measurement end request. That is, the request from the
対象要求が、監視対象に該当し(S504Yes)、かつ、対象要求が計測開始要求である場合(S505でYes)、サーバ応答性監視部230は、変数T0(機体番号)に、現在時刻を代入する(S506)。なお、変数T0(機体番号)における「(機体番号)」は、対象要求の送信元の機器10の機体番号を示す。すなわち、変数T0(機体番号)は、機体番号別に用意される変数T0のうち、対象要求に係る機体番号に対応する変数T0を意味する。後述される変数T1及びT2についても同様である。
If the target request corresponds to the monitoring target (S504 Yes) and the target request is a measurement start request (Yes in S505), the server
サーバ応答性監視部230は、また、いずれかのサーバアプリ21からの応答の送信を検知すると(S512でYes)、当該応答の送信先が、監視対象の機器10であるか否かを判定する(S513)。斯かる判定は、当該応答(以下、「対象応答」という。)に含まれている情報に基づいて特定されるテナントID及び機体番号が、監視機器記憶部231に記憶されているか否かに基づいて行うことができる。
When the server
当該テナントID及び機体番号が監視機器記憶部231に記憶されている場合(S513でYes)、サーバ応答性監視部230は、対象応答が監視対象の応答であるか否かを、監視要求記憶部232を参照して判定する(S514)。すなわち、対象応答が計測開始要求に対する応答であれば、対象応答は、監監視対象であると判定される。なお、対象応答には、いずれの要求に対する応答であるのかを識別するための情報が含まれている。
When the tenant ID and the machine number are stored in the monitoring device storage unit 231 (Yes in S513), the server
対象応答が監視対象である場合(S514でYes)、サーバ応答性監視部230は、変数T1(機体番号)に、現在時刻を代入する(S515)。
When the target response is a monitoring target (Yes in S514), the server
また、ステップS501において受信された要求(以下、「対象要求」という。)が、計測終了要求に該当する場合(S505でNo)、サーバ応答性監視部230は、変数T2(機体番号)に、現在時刻を代入する(S507)。続いて、サーバ応答性監視部230は、T2(機体番号)−T1(機体番号)の演算結果をサービス待機時間(機体番号)に代入する(S508)。続いて、サーバ応答性監視部230は、T1(機体番号)−T0(機体番号)の演算結果をサービス実行時間(機体番号)に代入する(S509)。続いて、サーバ応答性監視部230は、T2(機体番号)−T0(機体番号)の演算結果を、サーバ応答時間(機体番号)に代入する(S510)。なお、ステップS508〜S5109に関して、変数T0、T1、及びT2の添え字である「(機体番号)」は、対象要求の送信元の機器10の機体番号を示す。
When the request received in step S501 (hereinafter referred to as “target request”) corresponds to a measurement end request (No in S505), the server
続いて、サーバ応答性監視部230は、サービス待機時間(機体番号)及びサーバ応答時間(機体番号)を、例えば、補助記憶装置202に記録する(S511)。
Subsequently, the server
上述したように、第二の実施の形態によれば、機器10からの要求と、当該要求に対するサービス提供装置20による応答との通信時間を、サービス提供装置20において機器10ごとに推定することができる。また、当該通信時間の推定値に基づいて、サーバ応答時間をサービス提供装置20において推定することもできる。その結果、例えば、サービス提供装置20の運用者は、機器10ごとに、サービス提供装置20の応答性を把握することができる。
As described above, according to the second embodiment, the communication time between the request from the
次に、第三の実施の形態について説明する。第三の実施の形態では第一の実施の形態又は第二の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態又は第二の実施の形態と同様でもよい。 Next, a third embodiment will be described. In the third embodiment, differences from the first embodiment or the second embodiment will be described. Therefore, the points not particularly mentioned may be the same as those in the first embodiment or the second embodiment.
図25は、第三の実施の形態におけるサービス提供装置の機能構成例を示す図である。図25中、図3又は図19と同一部分には同一符号を付し、その説明は省略する。 FIG. 25 is a diagram illustrating a functional configuration example of the service providing apparatus according to the third embodiment. In FIG. 25, the same parts as those in FIG. 3 or FIG.
第三の実施の形態において、サービス提供装置20は、第一の実施の形態における構成と第二の実施の形態における構成とを含む構成を有する。
In the third embodiment, the
なお、機器10は、例えば、図4において説明した構成を有する。
In addition, the
図26は、第三の実施の形態における情報処理システムが実行する処理手順の一例を説明するための図である。図26中、図8又は図22と同一ステップには同一ステップ番号を付し、その説明は省略する。 FIG. 26 is a diagram for explaining an example of a processing procedure executed by the information processing system according to the third embodiment. In FIG. 26, the same step numbers are assigned to the same steps as those in FIG. 8 or FIG.
第三の実施の形態では、基本的に、第一の実施の形態における処理手順と第二の実施の形態における処理手順とが組み合わされた処理手順が実行される。但し、図26では、図22のステップS412の代わりに、ステップS451が実行される。ステップS451において、サーバ応答性監視部230は、機器10から受信された遅延時間や、当該機器10に係るサービス待機時間、及びサーバ応答時間等に基づいて、応答性の低下の要因の分析処理を実行する。ここでいう応答性は、ユーザから見た場合の機器10及びサービス提供装置20による応答性をいう。当該分析処理は、サーバ応答時間が閾値以上である場合に行われてもよい。
In the third embodiment, basically, a processing procedure in which the processing procedure in the first embodiment and the processing procedure in the second embodiment are combined is executed. However, in FIG. 26, step S451 is executed instead of step S412 of FIG. In step S451, the server
例えば、機器10から受信された遅延時間が所定値以上である場合には、機器10における並列処理が、応答性の低下の要因であると判定されてもよい。また、サービス実行時間が所定値以上である場合には、サービス提供装置20の負荷の増加が、応答性の低下の要因であると判定されてもよい。また、サービス待機時間が所定値以上である場合は、ユーザ環境E1の通信環境が、応答性の低回の要因であると判定されてもよい。なお、遅延時間、サービス実行時間、及びサービス待機時間等は、機器10ごとに計測される。したがって、応答性の判定は、機器10ごとに実行される。
For example, when the delay time received from the
なお、解析結果が、機器10における並列処理が要因であることを示す場合には、サーバ応答性監視部230は、当該解析結果を当該機器10に送信してもよい。この場合、当該機器10は、負荷低下処理を実行してもよい。
When the analysis result indicates that the parallel processing in the
また、解析結果が、サービス提供装置20の負荷の増加を示す場合には、サービス提供装置20において利用頻度の低いサーバアプリ21や、現在利用されていないサーバアプリ21等が停止されてもよい。また、リアルタイムでの実行が要求されていない処理が、後回しにされてもよい。
When the analysis result indicates an increase in the load on the
また、解析結果が、ユーザ環境E1の通信環境が要因であることを示す場合には、第二の実施の形態において説明した通りの対策が行われてもよい。 Further, when the analysis result indicates that the communication environment of the user environment E1 is a factor, the measures as described in the second embodiment may be performed.
上述したように、第三の実施の形態によれば、機器10側において計測される遅延時間と、サービス提供装置20側で計測されるサービス実行時間及びサービス待機時間等に基づいて、機器10とサービス提供装置20との連携によって実現される処理に関する応答性の低下について、要因(原因)の切り分けを行うことができる。
As described above, according to the third embodiment, based on the delay time measured on the
なお、上記各実施の形態において、サービス提供装置20は、情報処理システムの一例である。サーバ応答性監視部230は、計測部の一例である。
In each of the above embodiments, the
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.
1 情報処理システム
10 機器
11 コントローラ
12 スキャナ
13 プリンタ
14 モデム
15 操作パネル
16 ネットワークインタフェース
17 SDカードスロット
20 サービス提供装置
21 サーバアプリ
21a スキャンサーバアプリ
21b 印刷サーバアプリ
21c 機器側応答性監視サーバアプリ
30 管理者端末
80 SDカード
111 CPU
112 RAM
113 ROM
114 HDD
115 NVRAM
120 SDKアプリ
120a スキャンアプリ
120b 印刷アプリ
120c 機器側応答性監視アプリ
121 実待機時間計測部
122 遅延時間算出部
123 負荷抑制部
124 キー操作監視部
125 ソケット監視部
126 状態監視部
130 SDKプラットフォーム
131 アプリ管理部
132 パネル管理部
133 パネルサービス部
134 スキャンサービス部
135 印刷サービス部
141 コントロールサービス
142 ソケットサービス
143 ソケットフック部
144 イベントフック部
200 ドライブ装置
201 記録媒体
202 補助記憶装置
203 メモリ装置
204 CPU
205 インタフェース装置
211 印刷データ記憶部
221 応答性設定記憶部
222 高負荷閾値記憶部
223 高負荷情報記憶部
224 負荷低下情報記憶部
230 サーバ応答性監視部
231 監視機器記憶部
232 監視要求記憶部
B バス
DESCRIPTION OF
112 RAM
113 ROM
114 HDD
115 NVRAM
120
205
Claims (10)
ネットワークを介して接続される機器から第1の要求が受信されると、前記第1の要求に対する応答の返信時から前記第1の要求の後に前記機器から送信される第2の要求の受信時までの経過時間を、前記第1の要求と前記応答との通信時間の推定値として計測する計測部を有することを特徴とする情報処理システム。 An information processing system including one or more information processing devices,
When a first request is received from a device connected via a network, from when a response to the first request is returned, when receiving a second request transmitted from the device after the first request An information processing system comprising: a measuring unit that measures an elapsed time until an estimated value of a communication time between the first request and the response.
ことを特徴とする請求項1記載の情報処理システム。 The second request is a request received next to the first request;
The information processing system according to claim 1.
ことを特徴とする請求項1又は2記載の情報処理システム。 The measuring unit further measures an elapsed time from the time of receiving the first request to the time of receiving the second request as an estimated value of a response time to the first request.
The information processing system according to claim 1 or 2.
前記計測部は、機器別に前記経過時間を計測する、
ことを特徴とする請求項1乃至3いずれか一項記載の情報処理システム。 The information processing system is connected to a plurality of devices via a network,
The measurement unit measures the elapsed time for each device,
The information processing system according to any one of claims 1 to 3.
ネットワークを介して接続される機器から第1の要求が受信されると、前記第1の要求に対する応答の返信時から前記第1の要求の後に前記機器から送信される第2の要求の受信時までの経過時間を、前記第1の要求と前記応答との通信時間の推定値として計測する計測手順を実行することを特徴とする情報処理方法。 An information processing system including one or more information processing devices is provided.
When a first request is received from a device connected via a network, from when a response to the first request is returned, when receiving a second request transmitted from the device after the first request An information processing method comprising: executing a measurement procedure that measures an elapsed time until the estimated time of communication between the first request and the response.
ことを特徴とする請求項5記載の情報処理方法。 The second request is a request received next to the first request;
The information processing method according to claim 5.
ことを特徴とする請求項5又は6記載の情報処理方法。 The measurement procedure further measures an elapsed time from reception of the first request to reception of the second request as an estimated value of a response time to the first request.
The information processing method according to claim 5 or 6.
ネットワークを介して接続される機器から第1の要求が受信されると、前記第1の要求に対する応答の返信時から前記第1の要求の後に前記機器から送信される第2の要求の受信時までの経過時間を、前記第1の要求と前記応答との通信時間の推定値として計測する計測手順を実行させることを特徴とするプログラム。 In the information processing device,
When a first request is received from a device connected via a network, from when a response to the first request is returned, when receiving a second request transmitted from the device after the first request A program for executing a measurement procedure for measuring an elapsed time until the estimated time of communication between the first request and the response.
ことを特徴とする請求項8記載のプログラム。 The second request is a request received next to the first request;
The program according to claim 8, wherein:
ことを特徴とする請求項8又は9記載のプログラム。 The measurement procedure further measures an elapsed time from reception of the first request to reception of the second request as an estimated value of a response time to the first request.
10. The program according to claim 8 or 9, wherein
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015006527A JP6413779B2 (en) | 2015-01-16 | 2015-01-16 | Information processing system, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015006527A JP6413779B2 (en) | 2015-01-16 | 2015-01-16 | Information processing system, information processing method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016133867A JP2016133867A (en) | 2016-07-25 |
JP6413779B2 true JP6413779B2 (en) | 2018-10-31 |
Family
ID=56438130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015006527A Expired - Fee Related JP6413779B2 (en) | 2015-01-16 | 2015-01-16 | Information processing system, information processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6413779B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112018007081B4 (en) * | 2018-03-19 | 2021-04-08 | Mitsubishi Electric Corporation | Information processing apparatus and information processing method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6078956A (en) * | 1997-09-08 | 2000-06-20 | International Business Machines Corporation | World wide web end user response time monitor |
AU2002318115A1 (en) * | 2001-05-04 | 2002-11-18 | Netqos, Inc. | Server-site response time computation for arbitrary applications |
JP2009289163A (en) * | 2008-05-30 | 2009-12-10 | Toshiba Corp | Server device and communication system |
-
2015
- 2015-01-16 JP JP2015006527A patent/JP6413779B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2016133867A (en) | 2016-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9400693B2 (en) | Controlling application programs based on memory usage of a process and right of application programs to use display unit | |
JP5991104B2 (en) | Information processing apparatus, information processing method, and program | |
KR20150055474A (en) | Image forming apparatus and method for controlling display of pop-up window thereof | |
JP5177181B2 (en) | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM | |
US10601904B2 (en) | Cooperation system | |
JP2015146518A (en) | Information apparatus, computer program and memory sharing method | |
US8527535B2 (en) | Information processing apparatus, information processing method, and program | |
JP5998849B2 (en) | Electronic device, information processing system, information management apparatus, information processing method, and information processing program | |
JP6413779B2 (en) | Information processing system, information processing method, and program | |
JP2016151892A (en) | Information processing apparatus, installation method, and installation program | |
US9917968B2 (en) | Image processing device and terminal device using application programming interface corresponding to specific function | |
JP2011197990A (en) | Information processor and program | |
US11093104B2 (en) | Icon display control apparatus that prevents messy display of icons, method of controlling same, and storage medium | |
JP6413778B2 (en) | Apparatus, information processing system, information processing method, and program | |
JP6044248B2 (en) | Information processing apparatus, application program introduction apparatus, and program | |
JP5691329B2 (en) | Job management apparatus, image processing apparatus, printing system, and job management program | |
JP2011186821A (en) | Virtual-environment management system, device, method, and program | |
JP5678556B2 (en) | Job execution system, job execution device, and program | |
JP6299200B2 (en) | Apparatus, information processing system, control method, and program | |
JP2019168845A (en) | Information processing apparatus and its control method | |
JP6341016B2 (en) | Image forming system, image forming apparatus, and program | |
US11442673B2 (en) | Image processing device configured to send setting data to a terminal device | |
JP6481666B2 (en) | Image processing device | |
JP2018142205A (en) | Information processing apparatus and information processing method | |
JP2011101071A (en) | Facsimile driver program and facsimile system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180814 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180917 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6413779 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |