(57)【要約】【課題】一実施形態は、プロセスの起動完了を検出するための汎用性の高い技術を提供することができる。【解決手段】一実施形態に係る判定プログラムは、起動指示に応じて起動したプロセスが第１の時刻に実行する処理の内容を示す第１の情報と、プロセスが第２の時刻に実行する処理の内容を示す第２の情報とを取得し、取得した第１の情報及び第２の情報の比較結果に基づき、プロセスの起動処理が完了したか否かを判定する、処理をコンピュータに実行させる。【選択図】図６
2019032657.tif 000002
【特許請求の範囲】
【請求項１】
起動指示に応じて起動したプロセスが第１の時刻に実行する処理の内容を示す第１の情報と、前記プロセスが第２の時刻に実行する処理の内容を示す第２の情報とを取得し、
取得した前記第１の情報及び前記第２の情報の比較結果に基づき、前記プロセスの起動処理が完了したか否かを判定する、
処理をコンピュータに実行させる判定プログラム。
【請求項２】
前記判定する処理は、前記第１の情報と前記第２の情報との差分の大きさを表す値が、所定の閾値以下である状態が、所定時間以上継続した場合に、前記プロセスの起動処理が完了したと判定する、
ことを特徴とする請求項１に記載の判定プログラム。
【請求項３】
前記第１の情報は、前記第１の時刻において前記プロセス内で実行されている１又は複数のスレッドのそれぞれが実行している関数の情報を含み、
前記第２の情報は、前記第２の時刻において前記プロセス内で実行されている１又は複数のスレッドのそれぞれが実行している関数の情報を含み、
前記判定する処理は、前記第１の情報と前記第２の情報とをスレッド毎に比較して前記プロセスの起動処理が完了したか否かを判定する、
ことを特徴とする請求項１又は２に記載の判定プログラム。
【請求項４】
起動指示に応じて起動したプロセスが、第１の時刻に実行する処理の内容を示す第１の情報と、前記プロセスが第２の時刻に実行する処理の内容を示す第２の情報とを取得する取得部、
取得した前記第１の情報及び前記第２の情報の比較結果に基づき、前記プロセスの起動処理が完了したか否かを判定する判定部、
を含む情報処理装置。
【請求項５】
起動指示に応じて起動したプロセスが、第１の時刻に実行する処理の内容を示す第１の情報と、前記プロセスが第２の時刻に実行する処理の内容を示す第２の情報とを取得し、
取得した前記第１の情報及び前記第２の情報の比較結果に基づき、前記プロセスの起動処理が完了したか否かを判定する、
ことを含む、コンピュータが実行する判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定プログラム、情報処理装置、及び判定方法に関する。
【背景技術】
【０００２】
複数のプロセスが連携して動作するシステムでは、プロセス同士が情報をやり取りする依存関係を持つことがある。そして、プロセスが依存関係を持つ場合、プロセスの起動は依存関係に沿った順序で実行される。例えば、或るプロセスが実行中に別のプロセスにアクセスしながら動作する場合、そのプロセスの起動は、別のプロセスの起動が完了するまで待機され、別のプロセスの起動が完了すると実行される。
【０００３】
例えば、ＰａａＳ（Platform as a Service）基盤などのプラットフォームでは、プロセスの起動完了の検出するための監視プロセスがある。監視プロセスは、例えば、監視対象のプロセスに対して作成された設定情報の設定に基づいて、監視対象のプロセスの起動や起動完了の検出を行う。例えば、監視対象のプロセスが、起動の完了に伴いポートを開放したり、起動完了時に特定のログを出力したりする場合、設定情報に開放されるポートの情報や、起動完了時に出力される特定のログの情報が登録される。そして、監視プロセスは、例えば、設定情報に登録されているポートを監視してポートの開放を検出したり、ログを監視して設定情報に登録されている特定のログが出力されることを検出したりして、プロセスの起動の完了を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２５７１５０号公報
【特許文献２】特開２０１０−１８２０１６号公報
【特許文献３】特開平１１−３２７９５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、プロセスの起動の完了を検出するために、プロセスごとの仕様に応じて設定情報を作成すると、作業に手間がかかっていた。
【０００６】
１つの側面では、本発明は、プロセスの起動完了を検出するための汎用性の高い技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一つの態様の判定プログラムは、起動指示に応じて起動したプロセスが第１の時刻に実行する処理の内容を示す第１の情報と、プロセスが第２の時刻に実行する処理の内容を示す第２の情報とを取得し、取得した第１の情報及び第２の情報の比較結果に基づき、プロセスの起動処理が完了したか否かを判定する、処理をコンピュータに実行させる。
【０００８】
プロセスの起動完了を検出するための汎用性の高い技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】プロセス間の依存関係を例示する図である。
【図２】複数のプロセスが連携して動作するシステムを例示する図である。
【図３】実施形態に係る情報処理装置のブロック構成を例示する図である。
【図４】スレッドダンプの差分を例示する図である。
【図５】スレッドダンプの差分の時間変化を例示する図である。
【図６】実施形態に係るプロセスの起動完了判定処理を例示する図である。
【図７】設定情報を例示する図である。
【図８】変形例に係るプロセスの起動完了判定処理を例示する図である。
【図９】実施形態に係る情報処理装置を実現するためのコンピュータのハードウェア構成を例示する図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【００１１】
図１は、プロセス間の依存関係を例示する図である。図１において、プログラムＢを実行することで動作するプロセスＢは、プログラムＡを実行することで動作するプロセスＡにアクセスしながら動作する。ここで、プロセスＡの起動開始からプロセスＡの起動処理が完了するまでの期間では、プロセスＢはプロセスＡにアクセスできず、プロセスＡから情報を取得することができない。そのため、プロセスＡの起動が完了するまでプロセスＢの起動は待機され、プロセスＡの起動が完了してからプロセスＢの起動が実行されることが望ましい。なお、起動処理が完了するとは、プロセスが、例えば、他のプロセスなどの外部からのリクエストを受け付け可能な状態になることであってよい。
【００１２】
そのため、プロセスに依存関係がある場合に、プロセスの起動が完了したことを検出することが行われている。例えば、ＰａａＳ基盤などのように複数のプロセスが連携して動作するシステムでは、監視プロセスがプロセスを監視し、プロセスの起動が完了したことを検出する。
【００１３】
図２は、複数のプロセスが連携して動作するシステム２００を例示する図である。図２には、監視プロセス２０１と、複数のプロセス２０２とが示されている。複数のプロセス２０２の間には、プロセス同士で情報をやり取りする依存関係がある。そのため、プロセス２０２の起動は依存関係に沿った順序で行われる。そして、プロセス２０２には、設定情報が用意されていてよい。監視プロセス２０１は、設定情報を参照し、設定情報に登録された内容に従って、監視対象のプロセス２０２の起動コマンドを実行してプロセスを起動したり、起動に失敗した場合の起動のリトライを制御したりする。
【００１４】
また、例えば、監視プロセス２０１は、プロセス２０２に対して作成された設定情報の設定に基づいて、プロセスの起動の完了を監視する。一例として、プロセスが、起動の完了に伴いポートを開放することがある。この様なポートを開放するプロセス２０２が起動完了の監視対象である場合、監視プロセス２０１はポートを監視し、ポートの開放を検出するとプロセス２０２の起動が完了したと判定してよい。或いは、例えば、プロセスが、起動の完了に伴い所定のログを出力することがある。この様な所定のログを出力するプロセスが起動完了の監視対象である場合、監視プロセス２０１は、プロセス２０２からのログの出力を監視し、所定のログが出力されたことを検出するとプロセスの起動が完了したと判定してよい。例えば、以上のようにして、監視プロセス２０１は、設定情報の設定に従って、監視対象のプロセス２０２の起動の完了を検出することができる。
【００１５】
しかしながら、こうしたポートの開放やログの出力などのプロセス２０２の起動完了を示す情報は、プロセス２０２ごとに異なっていることがある。そのため、プロセス２０２ごとに設定情報を用意することになり、煩雑な作業となっている。また、プロセス２０２によっては、プロセス２０２の起動完了を示す適切な情報の取得が難しいこともある。そのため、プロセス２０２の起動完了を判定するための更なる技術の提供が望まれている。以下、実施形態を更に詳細に説明する。
【００１６】
図３は、実施形態に係るプロセス２０２の起動完了判定処理を実行する情報処理装置３００のブロック構成を例示する図である。情報処理装置３００は、例えば、サーバコンピュータ、パーソナルコンピュータ（ＰＣ）、ノートＰＣ、スマートフォン、タブレット端末、及び携帯電話機などのコンピュータであってよい。情報処理装置３００は、例えば、制御部３０１及び記憶部３０２を含む。制御部３０１は、例えば起動部３１１、取得部３１２、判定部３１３、及び実行部３１４を含む。情報処理装置３００の記憶部３０２は、例えば、後述する設定情報７００などの情報を記憶している。これらの各部の詳細及び記憶部３０２に格納されている情報の詳細については後述する。 
【００１７】
続いて、実施形態に係る起動完了判定処理について説明する。以下で述べる実施形態では、制御部３０１は、或る時刻に取得した監視対象のプロセスのスレッドダンプと、別の時刻に取得した監視対象のプロセスのスレッドダンプとを比較する。そして、制御部３０１は、比較の結果、スレッドダンプの時間変化が僅かになった場合に、プロセスの起動が完了したと判定する。なお、スレッドダンプとは、例えば、プロセス内で実行されている１又は複数のスレッド毎に、スレッドの内部で動作中の関数の情報を、関数の呼び出し関係を含めて出力したスナップショットのデータである。例えば、スレッドダンプには、スレッドごとに、実行中の関数や、関数内で実行中の命令を示す情報（例えば、プログラム内での行番号）が含まれていてよい。なお、関数は、例えば、メソッド、ファンクション、又はサブルーチンなどと呼ばれてもよい。
【００１８】
図４は、スレッドダンプの差分を例示する図である。図４には、第１の時刻におけるスレッドダンプと、第２の時刻におけるスレッドダンプとが示されている。なお、第２の時刻は、第１の時刻から所定時間経過後の時刻であってよい。第１の時刻のスレッドダンプは、例えば、スレッド１において４つの関数を含んでおり、関数Ｄが関数Ｃを呼び出し、関数Ｃが関数Ｂを呼び出し、関数Ｂが関数Ａを呼び出す呼び出し関係を表している。そして、第２の時刻になると関数Ｂが関数Ｂ’に変化しており、また、関数Ａが関数Ａ’に変化している。そのため、スレッド１では、関数Ａと関数Ｂについて差分が抽出される。一方、関数Ｃ及び関数Ｄについては、第１の時刻から第２の時刻にかけて動作しておらず、スレッドダンプに差がないため、差分が出力されていない。制御部３０１は、例えば、この様に差分をスレッドごとに計算して、スレッドダンプの差分として用いてよい。スレッドダンプの差分を取ることで、制御部３０１は、プロセス内で呼び出されている関数のうち、実際に実行されており実行内容が変化している関数だけを抽出することができる。
【００１９】
図５は、スレッドダンプの差分の時間変化を例示する図である。図５には、プロセスの起動開始後に４つの時刻（時刻１〜時刻４）において取得されたスレッドダンプの差分が示されている。例えば、時刻１のスレッドダンプの差分は、起動開始後に所定時間経過後の第１の時刻に取得されたスレッドダンプと、第１の時刻から更に所定時間経過後の第２の時刻におけるスレッドダンプとの差分であってよい。また、時刻２における差分は第２の時刻のスレッドダンプと、第２の時刻から所定時間経過後の第３の時刻のスレッドダンプとの差分であってよい。同様に、所定時間経過後のスレッドダンプと１つ前に取得されたスレッドダンプとの差分が時刻３及び時刻４で取得されてよい。
【００２０】
そして、図５に示す様に、スレッドダンプの差分は、起動開始後に時間の経過とともに少なくなっており、時刻４に示す例では差分が無くなっている。例えば、プロセスの起動時には、様々な関数が呼び出されるため、差分は大きくなる傾向にある。一方で、プロセスの起動が完了すると、他のプロセスからのリクエスト待ちの状態など、プロセスは何らかのアクションの待ち状態になることが多い。待ち状態では、スレッドダンプの差分が小さくなる傾向がある。そのため、スレッドダンプの差分が僅かになれば、プロセスの起動が完了したと判定することが可能である。なお、例えば、制御部３０１は、スレッドダンプの差分の量を示す値が所定の閾値以下となった場合に、スレッドダンプの差分が僅かになったと判定してよい。なお、スレッドダンプを所定時間毎に取得する例が述べられているが、実施形態はこれに限定されるものではなく、別の実施形態では、定期的なタイミングではなく不定期な所定のタイミングでスレッドダンプが取得されてもよい。
【００２１】
図６は、実施形態に係るプロセス２０２の起動完了判定処理を例示する図である。制御部３０１は、例えば、プロセス２０２を起動する指示が入力されると、図６の動作フローを開始してよい。なお、プロセス２０２を起動する指示は、例えば、複数のプロセス２０２の起動を指示する起動指示であってよく、或いは、起動の完了後に通知するように設定された起動指示であってよい。
【００２２】
ステップ６０１（以降、ステップを“Ｓ”と記載し、例えば、Ｓ６０１と表記する）において制御部３０１は、起動順序を決定する。例えば、プロセス２０２の起動指示が、複数のプロセス２０２を起動する起動指示である場合、制御部３０１は、起動指示の入力された複数のプロセス２０２と対応する設定情報７００を参照する。
【００２３】
図７は、設定情報７００を例示する図である。設定情報７００は、プロセス２０２に対する設定が登録されていてよく、例えば、動作時に依存する依存先のプロセスの情報を含んでいてよい。例えば、図７には、プロセスＢに対する設定が登録された設定情報７００を例示しており、プロセスＢは、プロセスＡに依存していることが示されている。
【００２４】
そして、Ｓ６０１では制御部３０１は、例えば、起動指示の入力された複数のプロセス２０２と対応する設定情報７００を参照する。制御部３０１は、参照した複数のプロセス２０２と対応する設定情報７００に基づいて、他のプロセス２０２に依存しているプロセス２０２を、依存先のプロセス２０２の起動完了を待ってから起動するように、起動順序を決定してよい。なお、例えば、依存関係の無いプロセス２０２については、制御部３０１は、最初の順番を割り当てて並列で起動するように起動順序を決定してよい。また、例えば、１つのプロセス２０２を起動する起動指示が入力されている場合、制御部３０１は、起動順序を決定しなくてもよい。
【００２５】
Ｓ６０２において制御部３０１は、Ｓ６０１で決定した起動順序において最初の順番が割り当てられているプロセス２０２の起動コマンドを実行して起動する。なお、１つのプロセス２０２を起動する起動指示が入力されている場合、制御部３０１は、そのプロセス２０２を起動してよい。
【００２６】
Ｓ６０３において制御部３０１は、プロセス２０２の起動完了待ちがありか否かを判定する。例えば、制御部３０１は、Ｓ６０１で決定した起動順序においてプロセス２０２の依存関係があり、依存先のプロセス２０２の起動完了後に起動されるプロセス２０２がある場合、Ｓ６０３においてＹＥＳと判定してよい。また、例えば、Ｓ６０３において制御部３０１は、入力された起動指示が、起動の完了後に通知するように設定された起動指示である場合、Ｓ６０３においてＹＥＳと判定してよい。一方、Ｓ６０１で決定した起動順序においてプロセス２０２の依存関係が無い場合や、起動指示が起動の完了後に通知するように設定された起動指示ではない場合、Ｓ６０３において制御部３０１はＮＯと判定し、本動作フローは終了してよい。Ｓ６０３においてＹＥＳと判定した場合、フローはＳ６０４に進む。
【００２７】
Ｓ６０４において制御部３０１は、Ｓ６０２で起動したプロセス２０２のうちから、依存関係を有するプロセス２０２の依存先となっているプロセス２０２のスレッドダンプを取得する。なお、Ｓ６０４からＳ６０６の処理は繰り返し処理であり、繰り返しによりＳ６０４の処理を再び実行する場合には、制御部３０１は、前回の実行から所定時間経過後にスレッドダンプを取得してよい。
【００２８】
Ｓ６０５において制御部３０１は、Ｓ６０４からＳ６０６の処理の繰り返しにおいて、前回取得したスレッドダンプと、今回取得したスレッドダンプとのデータを比較して、差分の量を示す値を取得する。例えば、制御部３０１は、スレッドダンプがテキストデータで出力される場合、前回取得したスレッドダンプと、今回取得したスレッドダンプとで文字列を比較し、一致しない文字の数を差分の量を示す値として取得してよい。なお、制御部３０１は、一例では、一致しない文字の数をスレッドダンプの全体を比較することで抽出して差分の量を示す値として用いてよい。或いは、制御部３０１は、スレッドダンプに含まれる各スレッドを、スレッドに割り当てられた番号等で識別可能な場合、スレッドごとに文字列を比較し、一致しない文字の数を抽出して差分の量を示す値として用いてよい。また更には、差分の量を示す値は、比較する２つのスレッドダンプのうちで、一致しない文字を含む行の数であってもよいし、スレッドダンプの全体の行数に対する一致しない文字を含む行の割合で表されてもよい。
【００２９】
Ｓ６０６において制御部３０１は、差分の量を示す値が、所定の閾値以下か否かを判定する。所定の閾値は、差分の量を示す値の種類に応じて定められてよく、その閾値以下であればプロセスの起動が完了している可能性の高い値に設定されてよい。例えば、スレッドの関数が、待ち状態に入り処理を停止している場合、その関数についての差分は０になる。一方、スレッドの関数が、例えば、所定の結果が得られるまで無限ループで待機している場合、その関数についての差分は０にはならない。そのため、こうした無限ループなどのように差分が０にはならないが起動は完了している場合も考慮して、起動が完了したことを判定できる値に閾値は設定されてよい。例えば、閾値は、既存の様々なプログラムの起動完了状態において、スレッドダンプの差分の量を示す値を取得し、それらの傾向から経験則で定められてもよい。
【００３０】
Ｓ６０６において差分の量を示す値が所定の閾値以下でない場合（Ｓ６０６がＮＯ）、フローはＳ６０４に戻り。前回のスレッドダンプの取得から所定時間経過後にスレッドダンプを再び取得する。一方、Ｓ６０６において差分の量を示す値が所定の閾値以下である場合（Ｓ６０４がＹＥＳ）、フローはＳ６０７に進む。
【００３１】
Ｓ６０７において制御部３０１は、監視対象のプロセスの起動完了後に実行する処理を実行する。なお、監視対象のプロセスの起動完了後に実行する処理は、例えば、監視対象のプロセス２０２にアクセスして処理を実行する他のプロセス２０２などの監視対象のプロセス２０２と依存関係を有するプロセス２０２を起動する処理であってよい。或いは、監視対象のプロセス２０２の起動完了後に実行する処理は、起動したプロセス２０２にリクエストを送るなど新たにコマンドを実行する処理であってもよい。更には、監視対象のプロセス２０２の起動完了後に実行する処理は、ユーザにプロセスの起動が完了したことを通知する処理であってよい。この場合、制御部３０１は、例えば、プロセス２０２の起動が完了したことを示すメッセージを、情報処理装置３００に接続された表示装置の表示画面に表示したり、或いは、情報処理装置３００に接続された音声出力装置から音を出力したりしてよい。
【００３２】
Ｓ６０８において制御部３０１は、起動完了待ちしている全てのプロセス２０２の起動を完了したか否かを判定する。起動完了待ちしている全てのプロセス２０２の起動を完了していない場合（Ｓ６０８がＮＯ）、フローはＳ６０４に戻り、例えば、Ｓ６０７で新たに起動したプロセス２０２を監視対象にしてスレッドダンプを取得し、処理を継続する。一方、起動完了待ちしている全てのプロセス２０２の起動を完了している場合（Ｓ６０８がＹＥＳ）、本動作フローは終了する。
【００３３】
以上で述べた様に、実施形態によれば制御部３０１は、起動指示に応じて起動したプロセス２０２が、第１の時刻に実行している処理の内容を示すスレッドダンプと、第２の時刻に実行している処理の内容を示すスレッドダンプとを取得する。そして、制御部３０１は、取得した２つのスレッドダンプの比較結果に基づき、プロセスの起動処理が完了したか否かを判定する。そのため、例えば、図２を参照して述べた例のように、プロセスごとに起動完了の判定を実行するための情報を設定情報に登録しておかなくてもよく、起動完了の判定を実行することができる。従って、起動完了の判定にかかる労力やコストを削減することができる。また、例えば、ポートの開放やログの出力などのプロセス２０２の起動完了を示す情報の取得が難しいプロセス２０２であっても、スレッドダンプは、プロセス２０２の仕様によらず取得することできるため、起動の完了を判定することが可能である。
【００３４】
なお、上述の実施形態では、異なる時刻でスレッドダンプを取得し、取得した異なる時刻のスレッドダンプの差分の大きさを示す情報を取得して起動完了を判定する。そのため、例えば、プロセス２０２ごとに起動完了時のスレッドダンプの状態を示す情報を個別に定義して判定しなくてもプロセス２０２の起動の完了を判定することができる。
【００３５】
従って、上述の実施形態によれば、プロセスの起動完了の判定のためのコストを削減することができる。
【００３６】
＜変形例＞
上述の実施形態では、差分の量を示す値が所定の閾値以下である場合、監視対象のプロセス２０２の起動が完了したと判定する例を述べている。しかしながら、例えば、実行する処理によっては、一時的に差分の量が低下したあと再び差分が増えることも起こり得る。そこで、変形例では、制御部３０１は、差分の量を示す値が所定の閾値以下になった状態が所定時間以上継続した場合に、プロセス２０２の起動が完了したと判定する。
【００３７】
図８は、変形例に係るプロセスの起動完了判定処理を例示する図である。制御部３０１は、例えば、プロセス２０２を起動する指示が入力されると、変形例に係る図８の動作フローを開始してよい。なお、プロセス２０２を起動する指示は、例えば、複数のプロセス２０２の起動を指示する起動指示であってよく、或いは、起動の完了後に通知するように設定された起動指示であってよい。
【００３８】
なお、図８の動作フローの処理は図６の動作フローの処理と対応する処理を実行してよく、例えば、Ｓ８０１〜Ｓ８０６において、制御部３０１は、図６のＳ６０１からＳ６０６と同様の処理を実行してよい。
【００３９】
そして、Ｓ８０６において差分の量を示す値が所定の閾値以下である場合（Ｓ８０６がＹＥＳ）、フローはＳ８０７に進む。Ｓ８０７において制御部３０１は、差分の量を示す値が所定の閾値以下の状態が所定時間以上継続しているか否かを判定する。差分の量を示す値が所定の閾値以下の状態が所定時間以上継続していない場合（Ｓ８０７がＮＯ）、フローはＳ８０４に戻り、前回のスレッドダンプの取得から所定時間経過後に再びスレッドダンプを取得して処理を繰り返す。一方、差分の量を示す値が所定の閾値以下の状態が所定時間以上継続している場合（Ｓ８０７がＹＥＳ）、フローはＳ８０８に進み、制御部３０１は、監視対象のプロセス２０２の起動完了後に実行する処理を実行する。
【００４０】
そして、Ｓ８０９において、制御部３０１は、図６のＳ６０８と同様の処理を実行し、本動作フローは終了してよい。
【００４１】
以上で述べた様に変形例では、制御部３０１は、差分の量を示す値が所定の閾値以下の状態が所定時間以上継続した場合に、プロセスの起動が完了したと判定する。そのため、変形例は、第１の実施形態が奏する効果に加えて、例えば、スレッドダンプの差分が一旦下がったあとで再び増加する場合に、誤ってプロセスの起動が完了したと判定してしまうことを抑止できる。従って、変形例によれば、プロセスの起動の完了をより正確に判定することができる。
【００４２】
なお、上述の実施形態において、例えば、図６のＳ６０１〜Ｓ６０２及び図８のＳ８０１〜Ｓ８０２の処理では、制御部３０１は、例えば、起動部３１１として動作する。また、制御部３０１は、例えば、図６のＳ６０４及び図８のＳ８０４の処理において、取得部として動作する。制御部３０１は、例えば、図６のＳ６０６及び図８のＳ８０６〜Ｓ８０７の処理において、判定部として動作する。制御部３０１は、例えば、図６のＳ６０７及び図８のＳ８０８の処理において、実行部として動作する。
【００４３】
また、上述の図６及び図８の動作フローに示す処理の少なくとも一部は、例えば、ＰａａＳ基盤などのプラットフォームに実装されている監視プロセス２０１が実行してもよく、別に実装された起動完了判定処理を実行する判定プロセスが実行してもよい。例えば、上述の起動部３１１は、監視プロセス２０１に実装されてもよく、監視プロセス２０１は、図６のＳ６０１〜Ｓ６０３又は図８のＳ８０１〜Ｓ８０３の処理を実行してよい。そして、監視プロセス２０１が、Ｓ６０３又はＳ８０３で、ＹＥＳと判定した場合に、監視プロセス２０１とは別に実装された判定プロセスに、プロセスの起動が完了したか否かの判定を依頼してよい。そして、判定プロセスは、依頼を受信すると、図６のＳ６０４以降又は図８のＳ８０４以降の処理を実行してよい。即ち、実施形態では、例えば、ＰａａＳ基盤などの既存のプラットフォームの機能を、上述の動作フローの一部の処理に利用してもよい。
【００４４】
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。
【００４５】
図９は、実施形態に係る情報処理装置３００を実現するためのコンピュータ９００のハードウェア構成を例示する図である。図９の情報処理装置３００を実現するためのハードウェア構成は、例えば、プロセッサ９０１、メモリ９０２、記憶装置９０３、読取装置９０４、通信インタフェース９０６、及び入出力インタフェース９０７を備える。なお、プロセッサ９０１、メモリ９０２、記憶装置９０３、読取装置９０４、通信インタフェース９０６、入出力インタフェース９０７は、例えば、バス９０８を介して互いに接続されている。
【００４６】
プロセッサ９０１は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ９０１は、メモリ９０２を利用して例えば上述の動作フローの手順を記述した判定プログラムを実行することにより、上述した各制御部３０１の一部または全部の機能を提供する。例えば、プロセッサ９０１は、プログラムを読み出して実行することで、起動部３１１、取得部３１２、判定部３１３、及び実行部３１４として動作してよい。また、一実施形態においては、プロセッサ９０１は、プログラムを読み出して実行することで、システム２００として動作してもよい。
【００４７】
メモリ９０２は、例えば半導体メモリであり、ＲＡＭ領域及びＲＯＭ領域を含んでいてよい。記憶装置９０３は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。なお、ＲＡＭは、Random Access Memoryの略称である。また、ＲＯＭは、Read Only Memoryの略称である。
【００４８】
読取装置９０４は、プロセッサ９０１の指示に従って着脱可能記憶媒体９０５にアクセスする。着脱可能記憶媒体９０５は、例えば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。なお、ＵＳＢは、Universal Serial Busの略称である。ＣＤは、Compact Discの略称である。ＤＶＤは、Digital Versatile Diskの略称である。
【００４９】
そして、上述の記憶部３０２は、例えば、メモリ９０２、記憶装置９０３、及び着脱可能記憶媒体９０５を含む。情報処理装置３００の記憶装置９０３には、例えば、設定情報７００が格納されている。
【００５０】
通信インタフェース９０６は、プロセッサ９０１の指示に従ってネットワークを介して又は他の装置に直接接続し、他の装置とデータを送受信する。入出力インタフェース９０７は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、及びスピーカなどの音声装置である。
【００５１】
実施形態に係る各プログラムは、例えば、下記の形態で情報処理装置３００に提供される。
（１）記憶装置９０３に予めインストールされている。
（２）着脱可能記憶媒体９０５により提供される。
（３）プログラムサーバなどのサーバから提供される。
【００５２】
なお、図９を参照して述べた情報処理装置３００を実現するためのコンピュータ９００のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の制御部３０１の一部または全部の機能がＦＰＧＡ及びＳｏＣなどによるハードウェアとして実装されてもよい。なお、ＦＰＧＡは、Field Programmable Gate Arrayの略称である。ＳｏＣは、System-on-a-chipの略称である。
【００５３】
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【符号の説明】
【００５４】
２００      システム
２０１      監視プロセス
２０２      プロセス
３００      情報処理装置
３０１      制御部
３０２      記憶部
３１１      起動部
３１２      取得部
３１３      判定部
３１４      実行部
９００      コンピュータ
９０１      プロセッサ
９０２      メモリ
９０３      記憶装置
９０４      読取装置
９０５      着脱可能記憶媒体
９０６      通信インタフェース
９０７      入出力インタフェース
９０８      バス
【図１】
2019032657.tif 000003
【図２】
2019032657.tif 000004
【図３】
2019032657.tif 000005
【図４】
2019032657.tif 000006
【図５】
2019032657.tif 000007
【図６】
2019032657.tif 000008
【図７】
2019032657.tif 000009
【図８】
2019032657.tif 000010
【図９】
2019032657.tif 000011