(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024078783
(43)【公開日】2024-06-11
(54)【発明の名称】情報処理装置及びアプリケーション起動制御方法
(51)【国際特許分類】
G06F 9/48 20060101AFI20240604BHJP
【FI】
G06F9/48 370
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022191340
(22)【出願日】2022-11-30
(71)【出願人】
【識別番号】000232955
【氏名又は名称】株式会社日立ビルシステム
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】藤田 悠
(72)【発明者】
【氏名】受田 賢知
(72)【発明者】
【氏名】山崎 謙太
(57)【要約】
【課題】アプリケーションの稼働時間の節減と、ユーザエクスペリエンスの低下の防止とを両立させる。
【解決手段】本発明の一態様のコンテナ実行基盤20は、トリガの発生を検出するトリガ監部212と、トリガ監視部212で検出されたトリガに対応付けられたトリガアプリの次に呼び出される予定の制御対象アプリの呼び出しに要する次アプリ呼び出し時間の情報と、制御対象アプリの起動に要するアプリ起動時間の情報とに基づいて、制御対象アプリの起動タイミングを決定し、該起動タイミングにおいて制御対象アプリを起動させる制御を行うアプリ起動制御部211と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
クラウド環境において複数のアプリケーションを連携して動作させることによりサービスを提供する情報処理装置であって、
定義されたトリガの発生を検出するトリガ検出部と、
前記トリガ検出部が検出した前記トリガに対応付けられた第1アプリケーションの次に呼び出される予定の第2アプリケーションの呼び出しに要する第1時間の情報と、前記第2アプリケーションの起動に要する第2時間の情報とに基づいて、前記第2アプリケーションの起動タイミングを決定し、該起動タイミングにおいて前記第2アプリケーションを起動させる制御を行うアプリ起動制御部と、を備える
情報処理装置。
【請求項2】
前記第1時間は、前記第1アプリケーションの実行開始から、前記第1アプリケーションによる前記第2アプリケーションの呼び出しが実行されるまでの時間であり、
前記アプリ起動制御部は、前記第1時間から前記第2時間を減算した時間である第3時間を算出し、前記第1アプリケーションの実行開始後から前記第3時間が経過した時点を、前記第2アプリケーションの起動タイミングに決定する
請求項1に記載の情報処理装置。
【請求項3】
前記アプリ起動制御部は、前記第1アプリケーションに対応付けられた前記第2アプリケーションが複数存在する場合、予め定められた条件を満たすアプリケーションを起動対象として選択する
請求項2に記載の情報処理装置。
【請求項4】
前記条件は、前記第1アプリケーションによる呼び出しが実行される確率が所定の閾値を超えるという条件である
請求項3に記載の情報処理装置。
【請求項5】
前記アプリ起動制御部は、前記第1アプリケーションによる前記第2アプリケーションの呼び出し回数の情報を管理し、前記呼び出し回数は、前記第1アプリケーションによる前記第2アプリケーションの呼び出しが行われた場合に1加算され、前記第2アプリケーションの実行が完了した時点で1減算され、
前記アプリ起動制御部は、前記呼び出し回数が0になったことを確認後に前記第2アプリケーションの動作を停止させる
請求項2に記載の情報処理装置。
【請求項6】
前記第2アプリケーションによる処理実行タイミングにおいて、前記第2アプリケーションの起動が完了していない場合に、前記第1アプリケーションからの処理のリクエストの前記第2アプリケーションへの送信タイミングを遅延させる起動遅延制御部をさらに備える
請求項2に記載の情報処理装置。
【請求項7】
前記起動遅延制御部は、前記第1アプリケーションに設定されたタイムアウト時間が経過するまでの間に、前記第2アプリケーションの起動が完了すると判定した場合、前記第2アプリケーションの起動が完了した後に、前記第1アプリケーションからの処理のリクエストを前記第2アプリケーションに送信する
請求項6に記載の情報処理装置。
【請求項8】
前記起動遅延制御部は、前記第1アプリケーションに設定されたタイムアウト時間が経過するまでの間に、前記第2アプリケーションの起動が完了しないと判定した場合、前記第2アプリケーションの起動完了までに要する時間の情報を前記第1アプリケーションに通知し、
前記第1アプリケーションは、前記第2アプリケーションの起動完了時間まで待機後に、処理のリクエストを前記第2アプリケーションに送信する
請求項6に記載の情報処理装置。
【請求項9】
クラウド環境において複数のアプリケーションを連携して動作させることによりサービスを提供する情報処理装置によるアプリケーション起動制御方法であって、
定義されたトリガの発生を検出するトリガ検出手順と、
前記トリガ検出手順によって検出された前記トリガに対応付けられた第1アプリケーションの次に呼び出される予定の第2アプリケーションの呼び出しに要する第1時間の情報と、前記第2アプリケーションの起動に要する第2時間の情報とに基づいて、前記第2アプリケーションの起動タイミングを決定し、該起動タイミングにおいて前記第2アプリケーションを起動させる制御を行うアプリ起動手順と、を有する
アプリケーション起動制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びアプリケーション起動制御方法に関する。
【背景技術】
【0002】
近年、クラウド環境(以下、単に「クラウド」とも称する)を用いて提供されるサービスの構築において、マイクロサービスアーキテクチャの仕組みが採用されることが増えている。マイクロサービスアーキテクチャは、単一機能を持つアプリケーションを複数組み合わせることによって一つのサービスを構築する仕組みである。
【0003】
マイクロサービスアーキテクチャにおいては、機能又は目的ごとにアプリケーションが作成され、作成されたアプリケーションは統合されていく。したがって、サービスの規模が大きくなるにつれて、そのサービスで用いられるアプリケーションの数も増大する。パブリッククラウドにおいては、アプリケーションを使用した量に応じて課金が行われる従量課金が採用されていることが一般的である。よって、例えばパブリッククラウドを利用する場合、アプリケーション数が増えるにつれて、クラウドでの運用コストも増大してしまう。
【0004】
特許文献1には、サスペンド中の仮想マシンへのアクセスが発生しない場合においても、サスペンド中の仮想マシンを、リジューム制御してから第2の時間経過後にサスペンド制御するリフレッシュ工程と、サスペンド中の仮想マシンへのアクセスが発生した場合に、当該仮想マシンをリジューム制御するリジューム工程と、を有する仮想マシン管理プログラムが開示されている。特許文献1に記載された技術を用いれば、リクエストのない時点で仮想マシンの動作を終了させることができるため、クラウドでの運用コストを節減することができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、特許文献1に記載の技術では、サスペンド中の仮想マシンへのアクセスが発生した時点で仮想マシンがリジュームされるため、ユーザへの応答において遅延が発生し、UX(ユーザエクスペリエンス)が低下することが想定される。
【0007】
本発明は、上記の状況を考慮してなされたものであり、本発明の目的は、アプリケーションの稼働時間の節減と、ユーザエクスペリエンスの低下の防止とを両立させることにある。
【課題を解決するための手段】
【0008】
本発明の一態様に係る情報処理装置は、クラウド環境において複数のアプリケーションを連携して動作させることによりサービスを提供する情報処理装置である。本発明の一態様に係る情報処理装置は、定義されたトリガの発生を検出するトリガ検出部と、トリガ検出部が検出したトリガに対応付けられた第1アプリケーションの次に呼び出される予定の第2アプリケーションの呼び出しに要する第1時間の情報と、第2アプリケーションの起動に要する第2時間の情報とに基づいて、第2アプリケーションの起動タイミングを決定し、該起動タイミングにおいて第2アプリケーションを起動させる制御を行うアプリ起動制御部と、を備える。
【発明の効果】
【0009】
本発明の少なくとも一態様によれば、アプリケーションの稼働時間の節減と、ユーザエクスペリエンスの低下の防止とを両立させることができるようになる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係る情報処理システムの概略構成例を示す図である。
【
図2】本発明の一実施形態に係るコンテナ実行基盤の制御系の構成例を示すブロック図である。
【
図3】本発明の一実施形態に係るユーザ端末の制御系の構成例を示すブロック図である。
【
図4】本発明の一実施形態に係るアプリ情報DBの構成例を示す図である。
【
図5】本発明の一実施形態に係る制御対象セット情報DBの構成例を示す図である。
【
図6】本発明の一実施形態に係る起動トリガ情報DBの構成例を示す図である。
【
図7】本発明の一実施形態に係るコンテナ実行基盤によるアプリ起動制御処理の手順の例を示すフローチャートである。
【
図8】本発明の一実施形態に係るアプリ起動制御部による起動対象選択処理の手順の例を示すフローチャートである。
【
図9】本発明の一実施形態に係る起動遅延制御部によるアプリ起動遅延制御処理の手順の例を示すフローチャートである。
【
図10】本発明の一実施形態に係るアプリ起動制御部によるアプリ停止処理の手順の例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態(以下、「実施形態」と称する)の例について、添付図面を参照しながら説明する。本発明は実施形態に限定されるものではなく、実施形態における種々の数値等は例示である。また、本明細書及び図面において、同一の構成要素又は実質的に同一の機能を有する構成要素には同一の符号を付することとし、重複する説明は省略する。
【0012】
<情報処理システムの概略構成>
まず、
図1を参照して、本発明の一実施形態に係る情報処理システムの構成について説明する。
図1は、本発明の一実施形態に係る情報処理システム100の概略構成例を示す図である。
【0013】
図1に示すように、情報処理システム100は、ネットワーク10に接続されるユーザ端末30と、クラウド40上に設けられたコンテナ実行基盤20と、を有する。
【0014】
コンテナ実行基盤20(情報処理装置の一例)は、ユーザ端末30を操作するユーザに対してコンテナの技術を用いてサービスを提供する基盤であり、アプリコンテナ250、アプリ起動制御部211、トリガ監視部212を含む。コンテナの技術とは、アプリケーションと動作環境とを一つのパッケージにしたコンテナ(アプリコンテナ250)を、プロセス単位で実行させる技術である。
【0015】
アプリコンテナ250は、それぞれ単一の機能を有する複数のアプリケーション(以下、「アプリ」とも称する)によって構成される。アプリケーションには、ユーザが閲覧、操作を行うウェブアプリケーションや、ある時刻をトリガに処理を行うバッチ処理を実行するアプリケーションなどが含まれる。なお、アプリコンテナ250の機能、種類はこれらに限定されず、様々なものが存在してよい。
【0016】
アプリ起動制御部211は、アプリコンテナ250の各アプリケーションの起動動作、停止動作の制御を行う。
トリガ監視部212(トリガ検出部の一例)は、定義されたトリガの発生を監視し、トリガの発生を検知した場合に、トリガの発生をアプリ起動制御部211に通知する。
【0017】
なお、
図1には、クラウド40上にコンテナ実行基盤20が1つのみ設けられた例を示すが、本発明はこれに限定されず、複数のコンテナ実行基盤が設けられてもよい。また、コンテナ実行基盤20が有するアプリコンテナ250、アプリ起動制御部211、トリガ監視部212、又は、その他実行される不図示の機能は、ネットワーク10によって接続された複数のコンテナ実行基盤上に分散して配置されてもよい。また、ユーザ端末30も1台に限定されず、複数台が設けられてもよい。
【0018】
ネットワーク10は、例えば、構内LAN(Local Area Network)で構成される。構内LANは、例えば、有線LAN、無線LAN、短距離無線等で実現される。または、構内LANは、これらの複数の接続形式の組合せにより実現されてもよい。
【0019】
ユーザ端末30は、例えばPC(Personal Computer)等により構成され、ユーザ端末30は、アプリコンテナ250により提供されるサービスに関する画面を表示したり、ユーザによる操作入力を受け付けたりする、入出力インタフェース(I/O303:
図3参照)等を備える。本実施形態では、クラウド40上のコンテナ実行基盤20は、ユーザに対して、従量課金制のサービスを提供する。つまり、クラウド40上においてアプリコンテナ250が稼働している時間の長さに応じた利用料金が、ユーザに課金される。
【0020】
<コンテナ実行基盤の制御系の構成>
次に、
図2を参照して、コンテナ実行基盤20の制御系の機能を実現するためのハードウェアの構成について説明する。
図2は、コンテナ実行基盤20の制御系の構成例を示すブロック図である。
【0021】
図2に示すように、コンテナ実行基盤20は、メモリ201、CPU(Central Processing Unit)202、I/O(Input/Output:入出力インタフェース)203、補助記憶装置204、ネットワークI/F(Interface)205等を含む。
【0022】
CPU202は、メモリ201又は補助記憶装置204に記憶されたプログラムを実行するプロセッサである。メモリ201は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)(いずれも図示略)を含む。ROMには、例えば、BIOS(Basic Input Output System)などの不変のプログラムが格納される。RAMは、DRAM(Dynamic Random Access Memory)等の高速かつ揮発性の記憶素子で構成される。RAMには、補助記憶装置204に格納されたプログラム及びプログラムの実行時に使用されるデータが、一時的に格納される。
【0023】
I/O203は、ユーザがコンテナ実行基盤20に指示を入力する入力インタフェースであるとともに、プログラムの実行結果などをユーザに提示する出力インタフェースでもある。I/O203には、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなどの入出力デバイス(いずれも図示略)が接続される。なお、I/O203に、ネットワーク10(
図1参照)を介して接続された不図示の管理端末によって提供されるユーザインタフェースが接続されてもよい。
【0024】
補助記憶装置204は、例えば、磁気記憶装置(HDD:Hard Disk Drive)、フラッシュメモリ(SSD:Solid State Drive)などで構成される、大容量かつ不揮発性の記憶装置である。補助記憶装置204には、CPU202により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。つまり、補助記憶装置204は、コンピュータによって実行されるプログラムを格納した、コンピュータ読取可能な非一過性の記録媒体の一例として用いられる。
【0025】
本発明の機能を実現するプログラムは、補助記憶装置204から読み出されて、メモリ201にロードされ、CPU202によって実行される。
図2には、コンテナ実行基盤20が有する各機能部がメモリ201上にロードされた状態を示す。
【0026】
コンテナ実行基盤20は、物理的に一つの計算機上、又は、論理的又は物理的な複数の計算機上で構成される計算機システムである。メモリ201に格納されたプログラムは、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0027】
また、コンテナ実行基盤20と他の不図示の装置とが、一つの物理的又は論理的計算機に収容されてもよい。なお、プログラムの実行によって実現される処理の全部又は一部の処理は、ハードウェア(例えば、FPGA:Field-Programmable Gate Array)によって実現されてもよい。
【0028】
ネットワークI/F205は、NIC(Network Interface Card)等で構成され、ネットワーク10を介して接続される他のサーバやユーザ端末30などと通信する。
【0029】
なお、本実施形態では、本発明を実現する各機能がコンテナ形式で保存されて動作する例を示すが、本発明はこれに限定されない。起動、停止等の制御を本実施形態と同様に実施できる形式であれば、仮想マシンやFaaS(Function as a Service)アプリケーションなどの他の形式が用いられてもよい。
【0030】
図2に示す例では、メモリ201上に、アプリ起動制御部211、トリガ監視部212、ルーティング制御部213、アプリログ取得部214、起動遅延制御部215、アプリコンテナ250がロードされている。さらに、メモリ201には、アプリ情報DB(Database)221、制御対象セット情報DB222、起動トリガ情報DB223に格納された各情報もロードされている。
【0031】
アプリ起動制御部211は、トリガ監視部212からの通知に従い、対象のアプリコンテナ250の起動タイミングの制御と停止タイミングの制御とを行う。例えば、アプリ起動制御部211は、ユーザからのリクエストに対する待ち時間を発生させることなく、かつ、アプリケーションの稼働時間を最小限とするための制御を行う。具体的には、トリガに対応付けられたアプリケーションであるトリガアプリの次に呼び出される、制御対象のアプリケーション(以下、「制御対象アプリ」とも称する)の起動タイミングを調整する。アプリ起動制御部211は、制御対象アプリの起動タイミングを、トリガアプリによる制御対象アプリの呼び出し時間の情報と、制御対象アプリの起動時間の情報とに基づいて、制御対象アプリの起動タイミングを決定する。アプリ起動制御部211による処理の詳細については、後述の
図7を参照して詳述する。
【0032】
トリガ監視部212は、アプリログ取得部214によって取得されたログから、起動トリガ情報DB223に格納されている情報に基づいてトリガを検知し、トリガの検知をアプリ起動制御部211に通知する。なお、トリガ監視部212は、各アプリケーションから出力される信号等によってトリガを直接検知してもよい。
【0033】
ルーティング制御部213は、アプリコンテナ250と起動遅延制御部215とを対象として、リクエストの振り分けを行う。リクエストには、ユーザにより入力されたリクエストや、他のアプリコンテナ250からの起動リクエストなどがある。リクエストの送信先のアプリケーションの起動が完了している場合、ルーティング制御部213は、リクエストをアプリコンテナ250に振り分ける。一方、リクエスト対象のアプリケーションが停止中又は起動準備中である場合、ルーティング制御部213は、起動遅延制御部215にリクエストを振り分ける。
【0034】
アプリログ取得部214は、アプリコンテナ250が出力するログを取得して格納する。アプリログ取得部214が所持するログの情報は、トリガ監視部212など他のプログラムによって参照される。
【0035】
起動遅延制御部215は、制御対象アプリへのトリガアプリによるリクエストの転送タイミングを制御する。具体的には、起動遅延制御部215は、制御対象アプリによる処理実行タイミングにおいて、制御対象アプリの起動が完了していない場合に、トリガアプリからの処理のリクエストの制御対象アプリへの送信タイミングを遅延させる制御を行う。起動遅延制御部215については、後述の
図9を参照して詳述する。
【0036】
アプリ情報DB221は、コンテナ実行基盤20上で実行されるアプリコンテナ250の各アプリケーションの情報が格納されるデータベースである。アプリ情報DB221については、後述の
図4を参照して詳述する。
【0037】
制御対象セット情報DB222は、複数のアプリケーションを組み合わせて実現される処理(機能)(以下、「制御対象セット」とも称する)の情報が格納されるデータベースである。制御対象セット情報DB222については、後述の
図5を参照して詳述する。
【0038】
起動トリガ情報DB223は、制御対象セットの起動トリガとなる事象に関する情報が格納されるデータベースである。起動トリガ情報DB223については、後述の
図6を参照して詳述する。
【0039】
<ユーザ端末の制御系の構成>
次に、
図3を参照して、ユーザ端末30の制御系の機能を実現するためのハードウェアの構成について説明する。
図3は、ユーザ端末30の制御系の構成例を示すブロック図である。
【0040】
図3に示すように、ユーザ端末30は、メモリ301、CPU302、I/O303、補助記憶装置304、ネットワークI/F305等を含む。
【0041】
CPU302は、メモリ301に格納されたプログラムを実行するプロセッサである。メモリ301は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAM(いずれも図示略)を含む。ROMには、例えば、BIOSなどの不変のプログラムが格納される。RAMは、DRAM等の高速かつ揮発性の記憶素子で構成される。RAMには、補助記憶装置304に格納されたプログラム及びプログラムの実行時に使用されるデータが、一時的に格納される。
【0042】
具体的には、メモリ301には、ウェブブラウザ311が格納される。ウェブブラウザ311は、ユーザがアプリコンテナ250(
図1参照)に含まれるウェブアプリケーション等を実行、表示する際のUI(User Interface)を、ユーザに提供する。
【0043】
I/O303は、ユーザがユーザ端末30に指示を入力する入力インタフェースであるとともに、プログラムの実行結果などをユーザに提示する出力インタフェースでもある。I/O303には、例えば、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなどの入出力デバイス(いずれも図示略)が接続される。なお、I/O303に、ネットワーク10(
図1参照)を介して接続された不図示の管理端末によって提供されるユーザインタフェースが接続されてもよい。
【0044】
補助記憶装置304は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)などで構成される、大容量かつ不揮発性の記憶装置である。補助記憶装置304には、CPU302により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。つまり、補助記憶装置304は、コンピュータによって実行されるプログラムを格納した、コンピュータ読取可能な非一過性の記録媒体の一例として用いられる。
【0045】
プログラムは、補助記憶装置304から読み出されて、メモリ301にロードされ、CPU302によって実行される。
図3には、ユーザ端末30が有する各機能部がメモリ301上にロードされた状態を示す。
【0046】
<アプリ情報DBの構成>
次に、
図4を参照して、アプリ情報DB221の構成について説明する。
図4は、アプリ情報DB221の構成例を示す図である。
【0047】
図4に示すように、アプリ情報DB221は、「アプリ識別子」、「アプリ名称」、「呼び出し元アプリ情報」、「次呼び出しアプリ情報」、「次アプリ呼び出し時間」、「アプリ起動時間」、「リクエストタイムアウト時間」及び「呼び出し回数」の各項目を有する。
【0048】
「アプリ識別子」の項目には、アプリコンテナ250内の各アプリケーションに設定されたアプリケーション識別子の情報が格納される。
図4に示す例では、アプリ識別子は、“001”、“002”等の3桁の数値で示される。
「アプリ名称」の項目には、アプリケーションの名称の情報が格納される。
図4に示す例では、アプリケーションの名称として、“認証”、“情報登録”、“情報変更”、“変更通知”、“差分抽出”、“バックアップ”、“超過データ削除”等の名称が格納されている。
【0049】
“認証”アプリは、ユーザから入力されたユーザID、パスワードを照合し、照合できた場合にユーザをシステムにログインさせるアプリケーションである。“情報登録”アプリは、ユーザによるログインの完了後に表示されるページ(図示略)において、ユーザによる登録ボタンの押下を検知した場合に、ユーザの情報をシステムに登録する機能を提供するアプリケーションである。
【0050】
“情報変更”アプリは、ユーザによるログインの完了後に表示されるページ(図示略)において、ユーザによる不図示の変更ボタンの押下を検知した場合に、既に登録済みのユーザ情報を変更する機能を提供するアプリケーションである。“変更通知”アプリは、“情報変更”アプリの処理が実行されると自動的に実行されるアプリケーションであり、ユーザ情報が変更されたことをユーザに対して通知する機能を提供する。“差分抽出”アプリは、その日に登録又は変更が行われた情報を抽出する機能を提供するアプリケーションである。
【0051】
“バックアップ”アプリは、“差分抽出”アプリから呼び出されるアプリケーションであり、“差分抽出”アプリによって抽出された内容をバックアップする機能を提供する。“超過データ削除”アプリも、“差分抽出”アプリから呼び出されるアプリケーションであり、予め定められた閾値よりも古いデータがバックアップデータに保存されていた場合に、そのデータを削除する機能を提供する。
【0052】
「呼び出し元情報」の項目には、アプリ識別子が付与されたアプリケーションの実行のトリガとなる事象に関する情報が格納される。トリガとなる事象には、そのアプリケーションの呼び出し元となるトリガアプリの実行開始や、ユーザによる操作入力等のアクションなどがある。トリガが、特定のアプリケーションの実行開始である場合には、呼び出し元情報にはそのアプリケーションのアプリ識別子が格納される。トリガが特定のアクションである場合には、呼び出し元情報には、そのアクションを示す識別子が格納される。
【0053】
図4に示す例では、呼び出し元情報の“1000”はユーザによる入力操作を示し、“2000”は定期的に実施されるバッチ処理を示す。例えば、“差分抽出”アプリは、バッチ処理によって定期的に(例えば、一日に一度)実行されるものであるため、“差分抽出”アプリの「呼び出し元情報」には、定期実行を示す“2000”の識別子が格納される。なお、呼び出し元のアプリケーション又はアクションが複数ある場合には、「呼び出し元情報」にはそれらに対応する複数の識別子が格納される。
【0054】
「次呼び出しアプリ情報」の項目には、アプリ識別子が付与されたアプリケーションが実行された後に実行される(呼び出される)予定の、次のアプリケーション(制御対象アプリ)の情報(アプリ識別子)が格納される。次に呼び出されるアプリケーションが複数ある場合には、「次呼び出しアプリ情報」にはそれらに対応する複数の識別子が格納される。なお、そのアプリケーションの次に呼び出されるアプリケーションが存在しない場合には、「次呼び出しアプリ情報」の欄は空欄とされる。
【0055】
「次アプリ呼び出し時間」の項目には、アプリ識別子が付与されたアプリケーションの実行が開始されてから、次のアプリケーションの呼び出しが行われるまでの時間(第1時間の一例)の情報が格納される。そのアプリケーションの実行が開始してから、次のアプリケーションが呼び出されるまでの間において、ユーザによる入力操作が必要となる場合には、該入力操作に要すると想定される時間も「次アプリ呼び出し時間」に組み込まれる。なお、そのアプリケーションの「次呼び出しアプリ情報」の項目に、複数のアプリの情報が格納されている場合、「次アプリ呼び出し時間」には、複数のアプリのそれぞれに対応して複数の時間の情報が格納される。
【0056】
「アプリ起動時間」の項目には、アプリ識別子が付与されたアプリケーションの起動が指示されてから起動が完了するまで(処理を開始できる状態となるまで)に要する時間(第2時間の一例)の情報が格納される。
【0057】
「リクエストタイムアウト時間」の項目には、アプリ識別子が付与されたアプリケーションが出したリクエストに対する、応答の許容待ち時間の情報が格納される。例えば、あるアプリケーションに設定されたリクエストタイムアウト時間が、10秒であるとする。そして、このアプリケーションが、次の制御対象アプリに出したリクエストに対する応答を、10秒経った時点においても得られなかったとする。この場合、リクエストの送信元のアプリケーションの処理はタイムアウトとなり、そのアプリケーションの処理はその時点で終了となる。
【0058】
「呼び出し回数」の項目には、アプリ識別子が付与されたアプリケーションが制御対象アプリとして何回呼び出されたかを示す呼び出し回数の情報が格納される。「呼び出し回数」の項目に格納される値(回数)は、アプリ起動制御部211(
図1参照)によって増減される。具体的には、「呼び出し回数」の値は、そのアプリケーションが呼び出される都度“1”が加算され、そのアプリケーションの処理が終了した時点で“1”が減算される。
【0059】
したがって、複数のアプリケーションによる呼び出しが行われており、かつ、該呼び出しに基づく処理が終了していない場合には、「呼び出し回数」の項目には2以上の数が格納される。「呼び出し回数」の項目の情報は、アプリ起動制御部211(
図1参照)によるアプリ停止処理の実行時に参照される。アプリ停止処理については、後述の
図10を参照して詳述する。
【0060】
なお、次アプリ呼び出し時間及びアプリ起動時間の情報は、各アプリケーションが行った複数回の起動、処理等に示される稼働実績に基づいて設定される。次アプリ呼び出し時間及びアプリ起動時間には、稼働実績に示される時間の平均、最大、最小等の値を設定することができる。また、これらの値にマージンとして固定値を付加した値が使用されてもよい。次アプリ呼び出し時間及びアプリ起動時間は、アプリ起動制御部211による処理の実施の前段階で予め設定されることを想定しているが、処理の実行中に値が更新されてもよい。
【0061】
図4に示す例では、アプリ識別子が“001”であるアプリケーションの名称は“認証”であり、“認証”アプリの呼び出し元情報は“1000”、すなわち、ユーザによる入力操作であることが示されている。また、“認証”アプリの次に呼び出されるアプリケーションは、アプリ識別子が“002”の“情報登録”アプリ、及び、“003”の“情報変更”アプリであり、これらのアプリに対応付けられた「次アプリ呼び出し時間」は、それぞれ“10秒”、“15秒”であることが示されている。また、“認証”アプリのアプリ起動時間は“5秒”であり、リクエストタイムアウト時間は“10秒”であり、呼び出し回数は“0(回)”であることが示されている。
【0062】
また、アプリ識別子が“025”であるアプリケーションの名称は“差分抽出”であり、“差分抽出”アプリの呼び出し元情報は“2000”、すなわち、定期的に実行されるバッチ処理であることが示されている。また、“差分抽出”アプリの次に呼び出されるアプリケーションは、アプリ識別子が“026”の“バックアップ”アプリ、及び、“027”の“超過データ削除”アプリであり、これらのアプリに対応付けられた「次アプリ呼び出し時間」は“20秒”であることが示されている。また、“差分抽出”アプリのアプリ起動時間は設定されておらず、リクエストタイムアウト時間は“30秒”であり、呼び出し回数は“0(回)”であることが示されている。
【0063】
<制御対象セット情報DBの構成>
次に、
図5を参照して、制御対象セット情報DB222の構成について説明する。
図5は、制御対象セット情報DB222の構成例を示す図である。
【0064】
図5に示すように、制御対象セット情報DB222は、「制御対象セット識別子」、「制御対象セット名称」及び「制御対象アプリ」の各項目を有する。
【0065】
「制御対象セット識別子」の項目には、制御対象セット、すなわち、複数のアプリケーションの組合せにより実現される処理のそれぞれに付与された識別子(制御対象セット識別子)の情報が格納される。
図5に示す例では、制御対象セット識別子は、“001”、“002”等の3桁の数値で示される。
【0066】
「制御対象セット名称」の項目には、“登録処理”、“変更処理”等の、制御対象セットに付与された名称が格納される。
「制御対象アプリ」の項目には、制御対象セットの処理において制御対象となるアプリケーション(制御対象アプリ)の情報として、アプリ識別子が格納される。
【0067】
図5に示す例では、制御対象セット識別子が“001”である制御対象セットの名称は“登録処理”であり、登録処理の制御対象セットの制御対象となるアプリケーションは、アプリ識別子が“002”のアプリケーション(“情報登録”アプリ)であることが示されている。
【0068】
また、制御対象セット識別子が“002”である制御対象セットの名称は“変更処理”であり、変更処理の制御対象セットの制御対象となるアプリケーションは、アプリ識別子が“003”のアプリケーション(“情報変更”アプリ)、及び、“004”のアプリケーション(“変更通知”アプリ)であることが示されている。
【0069】
<起動トリガ情報DBの構成>
次に、
図6を参照して、起動トリガ情報DB223の構成について説明する。
図6は、起動トリガ情報DB223の構成例を示す図である。
図6に示すように、起動トリガ情報DB223は、「起動トリガ識別子」、「制御対象セット情報」、「トリガアプリ」、「トリガ内容」及び「呼び出し確率」の各項目を有する。
【0070】
「起動トリガ識別子」の項目には、制御対象セットの処理の起動トリガとなる事象に付与された識別子(起動トリガ識別子)が格納される。
図6に示す例では、起動トリガ識別子は、“001”、“002”等の3桁の数値で示される。
「制御対象セット情報」の項目には、制御対象セット識別子が格納される。
【0071】
「トリガアプリ」の項目には、制御対象セットの処理の起動トリガとなる事象に関連するアプリケーション(トリガアプリ)の情報として、アプリ識別子が格納される。なお、トリガアプリの項目には、制御対象セット情報DB222(
図5参照)の「制御対象アプリ」と対応付けられた、アプリ情報DB221(
図4対象)の「呼び出し元情報」に記載のアプリケーションの情報が、自動的に入力されてもよい。
【0072】
「トリガ内容」の項目には、制御対象セットの処理の起動トリガとなる事象の情報が格納される。制御対象セットの処理の起動トリガとなる事象には、例えば、ユーザによる特定の入力処理、特定のアプリケーションから出力された特定のログの検知、特定の処理の実行等がある。
「呼び出し確率」の項目には、起動トリガとなる事象が発生した後に、制御対象セットの処理が呼び出される確率の情報が格納される。
【0073】
図6に示す例では、起動トリガ識別子が“001”である起動トリガによって起動される対象の制御対象セットは、制御対象セット識別子が“001”の制御対象セットであることが示されている。また、制御対象セットの処理のトリガとなるトリガアプリは、アプリ識別子が“001”のアプリケーション(“認証”アプリ)であることが示されている。また、トリガ内容は“トリガアプリの処理実行開始”であり、制御対象セットの処理の呼び出し確率は“40%”であることが示されている。
【0074】
起動トリガ情報DB223の「呼び出し確率」の情報は、アプリ起動制御部211(
図1参照)による起動対象選択処理の実行時に参照される。起動対象選択処理は、トリガ監視部212が検知したトリガに対応付けられた制御対象アプリが複数存在する場合に、アプリ起動制御部211によって実行される処理である。トリガに対応付けられた制御対象アプリが複数存在する場合、アプリ起動制御部211は、起動トリガ情報DB223の「呼び出し確率」が、予め定められた所定の閾値より高いアプリケーションを、起動(制御)対象のアプリケーションとして選択する。アプリ起動制御部211による起動対象選択処理については、後述の
図8を参照して詳述する。
【0075】
<情報処理装置によるアプリケーション起動制御処理>
次に、
図7を参照して、コンテナ実行基盤20(
図1参照)によるアプリ(アプリケーション)起動制御処理について説明する。
図7は、コンテナ実行基盤20によるアプリ起動制御処理の手順の例を示すフローチャートである。
【0076】
まず、コンテナ実行基盤20のトリガ監視部212は、制御対象セットの処理の起動トリガとなる事象の発生を検知し、トリガの発生をアプリ起動制御部211に通知する(ステップS1)。トリガ監視部212は、例えば、アプリログ取得部214が各アプリケーションから取得したログの情報を監視することにより、制御対象セットの処理の起動トリガとなる事象の発生を検知することができる。
【0077】
次いで、アプリ起動制御部211は、ステップS1で検出された事象に関連付けられたアプリケーションが、起動トリガ情報DB223の「トリガアプリ」の項目にいくつ設定されているかをカウントする(ステップS2)。例えば、ステップS1で検出された制御対象セットの処理の起動トリガとなる事象が、“認証アプリ”の処理実行開始であったとする。この場合、アプリ識別子が“001”である“認証アプリ”の、起動トリガ情報DB223(
図6参照)の「トリガアプリ」における設定数は、2つとなる。
【0078】
次いで、アプリ起動制御部211は、ステップS2でカウントした設定数は“1”であるか否かを判定する(ステップS3)。ステップS3で、設定数は“1”であると判定された場合(ステップS3がYES判定の場合)、アプリ起動制御部211は、起動トリガ情報DB223より、「トリガアプリ」に対応付けられた「制御対象セット情報」を取得する(ステップS4)。
【0079】
一方、ステップS3で、設定数は“2”以上であると判定された場合(ステップS3がNO判定の場合)、アプリ起動制御部211は、起動対象選択処理を行う(ステップS5)。アプリ起動制御部211による起動対象選択処理については、次の
図8を参照して詳述する。
【0080】
ステップS4又はステップS5の処理後、アプリ起動制御部211は、取得した制御対象セット情報に基づいて制御対象アプリを決定する(ステップS6)。例えば、ステップS4又はステップS5において、「制御対象セット情報」として、制御対象セット識別子が“001”である“登録処理”の情報が取得されたとする。この場合、アプリ起動制御部211は、制御対象セット情報DB222(
図5参照)において制御対象セット識別子の“001”と対応付けられた、アプリ識別子が“002”であるアプリケーション(“情報登録”アプリ)を、制御対象アプリに決定する。
【0081】
次いで、アプリ起動制御部211は、ステップS6で決定した制御対象アプリの、アプリ情報DB221(
図4参照)における「呼び出し回数」の項目に、“1”を加算する(ステップS7)。例えば、ステップS6で決定された制御対象アプリに対して、複数の「トリガアプリ」が対応付けられている場合であって、それらのトリガアプリからの呼び出しが行われているとする。この場合、アプリ情報DB221の「呼び出し回数」の項目の数は、2以上の数となる。
【0082】
次いで、アプリ起動制御部211は、制御対象アプリの起動のトリガとなるアプリ(トリガアプリ)の次アプリ呼び出し時間と、制御対象アプリのアプリ起動時間とに基づいて、制御アプリの起動タイミングを決定する(ステップS8)。例えば、制御対象アプリに決定されたアプリケーションが、アプリ識別子が“002”の“情報登録”アプリである場合、“情報登録”アプリのトリガアプリは、アプリ情報DB221の「呼び出し元情報」に格納されている、アプリ識別子“001”の“認証”アプリとなる。
【0083】
そして、アプリ起動制御部211は、“情報登録”アプリのトリガアプリである“認証”アプリの「次アプリ呼び出し時間」の情報を、アプリ情報DB221から取得する。
図4に示す例では、アプリ識別子が“001”である“認証”アプリの「次アプリ呼び出し時間」には、“10秒”及び“15秒”の2つの情報が格納されている。“10秒”は、「次呼び出し情報」に格納されたアプリ識別子“002”のアプリケーション(“情報登録”アプリ)に対応付けられた「次アプリ呼び出し時間」である。“15秒”は、「次呼び出し情報」に格納されたアプリ識別子“003”のアプリケーション(“情報変更”アプリ)に対応付けられた「次アプリ呼び出し時間」である。
【0084】
ステップS6で制御対象アプリに決定されたアプリケーションが、例えば“情報登録”である場合、アプリ起動制御部211は、トリガアプリである“認証”アプリの「次アプリ呼び出し時間」として“10秒”の情報を取得する。さらに、アプリ起動制御部211は、制御対象アプリのアプリ起動時間として“5秒”の情報を取得する。アプリ情報DB221によれば、制御対象アプリである“情報登録”アプリのアプリ起動時間は、“5秒”であるためである。
【0085】
次いで、アプリ起動制御部211は、トリガアプリの「次アプリ呼び出し時間」である“10秒”から、制御対象アプリのアプリ起動時間である“5秒”を減算することにより、差分の時間である“5秒”(第3時間の一例)を算出する。そして、アプリ起動制御部211は、トリガアプリの処理が開始されてから差分の“5秒”が経過した時点を、制御対象アプリである“情報登録”アプリの起動タイミングに決定する。
【0086】
アプリ起動制御部211がこのような制御を行うことにより、トリガアプリである“認証”アプリが、制御アプリである“情報登録”アプリを呼び出す場合に要する10秒が経過する時点において、制御対象アプリである“情報登録”アプリの起動も完了させておくことができる。つまり、トリガアプリからの呼び出しが行われた時点において、制御対象アプリがまだ起動していない事態の発生を防ぐことができる。トリガアプリからの呼び出しが行われたにも関わらず、制御対象アプリが起動していない場合、制御対象アプリの起動の待ち時間が発生してしまう。本実施形態によれば、制御対象アプリの起動の待ち時間、すなわち、ユーザへの応答における遅延の発生を防ぐことができるため、UX(ユーザエクスペリエンス)の低下を防ぐことができる。
【0087】
また、本実施形態では、制御対象アプリの起動が完了するタイミングと、トリガアプリによる制御対象アプリの呼び出しが完了するタイミングを略同一にすることができる。すなわち、制御対象アプリの起動後にトリガアプリによる呼び出しを待つ待ち時間が発生してしまうことを防ぐことができる。つまり、制御対象アプリが起動している時間を必要最小限の時間とすることができるため、コンテナ実行基盤20により提供されるサービスの課金を節減することができる。したがって、本実施形態によれば、アプリケーションの稼働時間の節減と、ユーザエクスペリエンスの低下の防止とを両立させることができる。
【0088】
次に、アプリ起動制御部211は、ステップS8で決定した制御対象アプリの起動タイミングまで待機した後に、制御対象アプリに対して起動を指示する(ステップS9)。なお、トリガアプリの次アプリ呼び出し時間が制御対象アプリの起動時間より短い場合には、アプリ起動制御部211は、トリガアプリの処理開始後すぐに制御対象アプリも起動させるものとする。
【0089】
次いで、アプリ起動制御部211は、制御対象アプリの処理が実行されるまでの間に、トリガアプリの処理がタイムアウトしたかどうか、すなわち、トリガアプリのリクエストタイムアウト時間が経過したか否かを判定する(ステップS10)。ステップS10で、タイムアウトはしていないと判定された場合(ステップS10がNO判定の場合)、アプリ起動制御部211は、制御対象アプリの処理実行時点において、制御対象アプリの起動は完了していたかを判定する(ステップS11)。
【0090】
ステップS11で、制御対象アプリの起動は完了していると判定された場合(ステップS11がYES判定の場合)、制御対象アプリによる処理は実行される(ステップS12)。一方、ステップS11で、制御対象アプリの起動は完了していないと判定された場合(ステップS11がNO判定の場合)、起動遅延制御部215(
図2参照)は、アプリ起動遅延制御処理を実行する(ステップS13)。起動遅延制御部215によるアプリ起動遅延制御処理については、後述の
図9を参照して詳述する。
【0091】
ステップS12の処理後、又は、ステップS10がYES判定の場合、アプリ起動制御部211は、アプリ停止処理を実行する(ステップS14)。アプリ起動制御部211によるアプリ停止処理については、後述の
図10を参照して詳述する。ステップS14の処理後、情報処理システム100によるアプリケーション起動制御処理は終了する。
【0092】
[起動対象選択処理]
次に、
図8を参照して、
図7のステップS5で実行される起動対象選択処理について説明する。
図8は、アプリ起動制御部211による起動対象選択処理の手順の例を示すフローチャートである。
【0093】
まず、アプリ起動制御部211は、トリガアプリに対応付けられた制御対象セットの「呼び出し確率」の情報を、起動トリガ情報DB223(
図6参照)から取得する(ステップS21)。次いで、アプリ起動制御部211は、ステップS21で取得した呼び出し確率が予め定められた閾値を超える制御対象セットを抽出し、該制御対象セットを起動対象として選択する(ステップS22)。
【0094】
例えば、呼び出し確率の閾値として“25%”が予め設定されているとする。また、トリガアプリに対応付けられた制御対象セットは、制御対象セット識別子が“001”である“登録処理”と、“002”である“変更処理”であるとする。起動トリガ情報DB223によれば、“登録処理”の呼び出し確率は“40%”であり、“変更処理”の呼び出し確率は“60%”である。つまり、“登録処理”及び“変更処理”のいずれの呼び出し確率も閾値を超えている。
【0095】
したがって、アプリ起動制御部211は、制御対象セット情報DB222(
図5参照)において“登録処理”の制御対象セットと対応付けられた、アプリ識別子が“002”である“情報登録”アプリを、制御対象アプリとして選択する。さらに、アプリ起動制御部211は、“変更処理”と対応付けられた、アプリ識別子が“003”である“情報変更”アプリと、アプリ識別子が“004”である“変更通知”アプリとを、制御対象アプリとして選択する。ステップS22の処理後、アプリ起動制御部211による起動対象選択処理は終了する。
【0096】
アプリ起動制御部211によって、アプリケーションの呼び出し確率に基づく制御対象アプリの選択が行われることにより、呼び出し確率が所定の閾値を超えたアプリケーションのみが、制御対象アプリとして選択される。したがって、例えば、トリガアプリの次のアプリケーションとして呼び出される見込みが非常に少ないアプリケーションが、制御アプリとして選択及び起動されてしまうことを防ぐことができる。このようなアプリケーションが制御対象アプリとして選択及び起動された場合であって、実際にはそのアプリケーションが使用されなかった場合、該アプリケーションの稼働時間が無駄になってしまう。本実施形態によれば、そのような動作が行われることを防げるため、課金料金を節減することができる。
【0097】
なお、本実施形態では、トリガアプリの次にそのアプリケーションが呼び出される確率(予め定められた条件の一例)の情報に基づいて、制御対象アプリを決定する例を挙げたが、本発明はこれに限定されない。例えば、ユーザの情報と、そのユーザによる各アプリケーションの利用率の情報とを予め対応付けておき、ユーザによる利用率が高いアプリケーションを制御対象アプリに決定する制御が行われてもよい。
【0098】
また、例えば、ユーザによる操作時間の長さと、トリガアプリの次に呼び出されるアプリケーションの種類とを対応付けておいてもよい。そして、ユーザによる操作がX秒以内に完了した場合にはアプリケーションAを、X秒を超えた場合にはアプリケーションBを選択する等のように、操作時間に対応付けられたアプリケーションを制御対象アプリに選択する制御が行われてもよい。
【0099】
または、トリガアプリが処理するデータのデータ量と、トリガアプリの次に呼び出されるアプリケーションの種類とを対応付けておいてもよい。そして、トリガアプリが処理するデータ量がY以上である場合にはアプリケーションCを選択する等のように、データ量に対応付けられたアプリケーションを制御対象アプリに選択する制御が行われてもよい。
【0100】
つまり、制御対象アプリの決定時に判断する条件として、システムの使用用途に合った条件を設定することにより、次に呼び出されるアプリケーションが複数存在する場合における制御対象アプリの選択を、適切に行えるようになる。
【0101】
[アプリ起動遅延制御処理]
次に、
図9を参照して、
図7のステップS13で実行されるアプリ起動遅延制御処理について説明する。
図9は、起動遅延制御部215(
図2参照)によるアプリ起動遅延制御処理の手順の例を示すフローチャートである。
【0102】
アプリ起動遅延制御処理は、トリガアプリのタイムアウトまでの間に制御対象アプリの起動が完了していない場合に実行される処理である。タイムアウトまでの時間内に制御対象アプリの起動が完了していない場合、アプリ起動制御部211は、ルーティング制御部213に対して、トリガアプリからのリクエストの起動遅延制御部215への仕分けを指示する。この指示が実行された場合、起動遅延制御部215は、ルーティング制御部213からのリクエストを受け付ける(ステップS31)。次いで、起動遅延制御部215は、起動トリガ情報DB223の「トリガアプリ」に格納されたアプリケーションのリクエストタイムアウト時間の情報を、アプリ情報DB221(
図4参照)から取得する(ステップS32)。例えば、トリガアプリが、アプリ識別子が“025”の“差分抽出”アプリであるとする。この場合、起動遅延制御部215は、ステップS32において“30秒”の情報を取得する。
【0103】
次いで、起動遅延制御部215は、トリガアプリに対応付けられた制御対象アプリが起動完了するまでの時間(アプリ起動時間)の情報を、アプリ情報DB221から取得する(ステップS33)。アプリ情報DB221において、“差分抽出”アプリの「次呼び出し情報」には、アプリ識別子が“026”の“バックアップ”アプリと、アプリ識別子が“027”の“超過データ削除”アプリとが対応付けられている。そして、アプリ情報DB221によれば、アプリ識別子が“026”の“バックアップ”アプリと、アプリ識別子が“027”の“超過データ削除”アプリに設定された「アプリ起動時間」は、それぞれ“5秒”である。したがって、起動遅延制御部215は、ステップS33において“5秒”の情報を取得する。
【0104】
次いで、起動遅延制御部215は、トリガアプリのタイムアウト前、すなわち、トリガアプリに設定されたリクエストタイムアウト時間が到来するまでの間に、制御対象アプリの起動は完了するか否かを判定する(ステップS34)。ステップS32で取得したリクエストタイムアウト時間は“30秒”であり、ステップS33で取得したアプリ起動時間は“5秒”である場合、制御対象アプリである“差分抽出”アプリ及び“超過データ削除”アプリの各起動は、いずれもトリガアプリのタイムアウト前に完了することが分かる。この場合、ステップS34はYES判定となる。
【0105】
ステップS34がYES判定の場合、起動遅延制御部215は、制御対象アプリの起動が完了するまでの間、制御対象アプリへのリクエストの送信を実行せず、制御対象アプリの起動完了後に、制御対象アプリへのリクエストを転送する(ステップS35)。ステップS35の処理が行われることにより、制御対象アプリへのリクエストの送信が、制御対象アプリの起動完了後に実行されるようになる。
【0106】
一方、ステップS34で、トリガアプリのタイムアウト前に制御対象アプリの起動は完了しないと判定された場合(ステップS34がNO判定の場合)、起動遅延制御部215は、制御対象アプリの起動完了までに要する時間の情報を含むエラー応答を、トリガアプリに送信する(ステップS36)。
【0107】
次いで、トリガアプリは、エラー応答に記載された制御対象アプリの起動完了タイミングまで待機し、待機完了後に、制御対象アプリに対して再度リクエストを送信する(ステップS37)。起動遅延制御部215によってこのような制御が行われることにより、例えば、イレギュラーな動作が行われたことにより、想定より早いタイミングでトリガアプリからリクエストが発行された場合であっても、リクエストの対象となる制御対象アプリの起動が完了した後に、トリガアプリから制御対象アプリへのリクエストが発行される。したがって、本実施形態によれば、リクエストの対象となる制御対象アプリが起動していないことによるエラーの発生を防ぐことができる。ステップS35又はステップS37の処理後、起動遅延制御部215によるアプリ起動遅延制御処理は終了する。
【0108】
なお、ステップS34で、タイムアウト前に制御対象アプリの起動は完了しないと判定された場合、起動遅延制御部215による制御を行わずに、単純にエラーを発生させる制御が行われてもよい。この場合、エラーが通知されたトリガアプリによって、制御対象アプリへのリクエスト発行のリトライが行われることになる。
【0109】
[アプリ停止処理]
次に、
図10を参照して、
図7のステップS14で実行されるアプリ停止処理について説明する。
図10は、アプリ起動制御部211によるアプリ停止処理の手順の例を示すフローチャートである。
【0110】
図10に示すアプリ停止処理は、
図7のステップS5の起動対象選択処理において、起動対象として選択された制御対象アプリのそれぞれを対象として行われる。まず、アプリ起動制御部211は、アプリ停止処理の対象となる制御アプリの「呼び出し回数」から“1”減算する(ステップS41)。
【0111】
次いで、アプリ起動制御部211は、アプリ停止処理の対象となる制御アプリの「呼び出し回数」を確認する(ステップS42)。次いで、アプリ起動制御部211は、呼び出し回数は“0回”であるか否かを判定する(ステップS43)。ステップS43で、「呼び出し回数」は“0回”であると判定された場合(ステップS43がYES判定の場合)、アプリ起動制御部211は、アプリ停止処理の対象となっている制御アプリの動作を停止する(ステップS44)。ステップS44の処理後、アプリ起動制御部211によるアプリ停止処理は終了する。
【0112】
一方、ステップS43で、「呼び出し回数」は“0回”ではない、すなわち、“1”以上であると判定された場合(ステップS43がNO判定の場合)、アプリ起動制御部211は、アプリ停止処理を終了する。
【0113】
トリガアプリの処理開始が複数回実施された場合や、複数のトリガアプリからの呼び出しがあった場合であって、呼び出しに基づく処理が終了していない場合には、制御対象アプリの呼び出し回数は“1回”以上の数となる。呼び出し回数が“1回”以上である場合、該当する制御対象アプリは、いずれかのトリガアプリからのリクエストに基づく処理を実行中である可能性が高いため、アプリ起動制御部211は、このアプリケーションをアプリ停止処理の対象から外す。そして、「呼び出し回数」が“0回”になった時点で、該アプリケーションを停止させる。
【0114】
アプリ起動制御部211によってこのような制御が行われることにより、実行中のアプリケーション、又は、処理の実行待ちの状態にあるアプリケーションが誤って停止されてしまうことを防ぐことができる。
【0115】
<アプリ起動制御処理の具体例>
次に、
図7に示したアプリ起動制御処理(
図8に示した起動対象選択処理、
図9に示したアプリ起動遅延制御処理、
図10に示したアプリ停止処理を含む)について、具体例を挙げて説明する。
[具体例1]
まず、具体例1として、トリガ監視部212がトリガを検知したアプリケーションが、アプリ識別子が“001”の“認証”アプリである場合を例に挙げる。以下に説明する具体例1においては、アプリケーションの呼び出し確率の閾値には“25%”が設定されており、トリガの検知時点におけるすべてのアプリケーションの呼び出し回数は“0回”であるものとする。
【0116】
まず、ユーザによる入力操作に基づいて、“認証”アプリが実行されたとする。“認証”アプリは、起動トリガ情報DB223(
図6参照)の「トリガアプリ」に格納されたアプリケーションであるため、トリガ監視部212は、制御対象セットの処理の起動トリガとなる事象の発生、すなわち、“認証”アプリの実行を検知する(
図7のステップS1)。
【0117】
次いで、アプリ起動制御部211は、起動トリガのアプリケーションのトリガアプリとしての設定数をカウントする(ステップS2)。起動トリガ情報DB223において、アプリ識別子が“001”である“認証”アプリは、「トリガアプリ」の項目に2つ登録されている。したがって、次のステップS3における「設定数は1?」の判定においては、“NO”が選択される。これにより、アプリ起動制御部211による起動対象選択処理が行われる(ステップS5)。
【0118】
アプリ起動制御部211は、起動対象選択処理において、まず、起動トリガ情報DB223より、トリガアプリに対応付けられた制御対象セットの呼び出し確率の情報を取得する(
図8のステップS21)。トリガアプリに対応付けられた制御対象セットは、制御対象セット識別子が“001”である“登録処理”と、“002”である“変更処理”である。したがって、ステップS21では、アプリ起動制御部211は、“登録処理”の呼び出し確率である“40%”と、“変更処理”の呼び出し確率である“60%”の各情報を取得する。
【0119】
そして、これらの2つの呼び出し確率は、予め定められた閾値である“25%”を超えているため、アプリ起動制御部211は、次のステップS22において、“登録処理”及び“変更処理”の2つの制御対象セットを、起動対象の制御対象セットとして選択する。
【0120】
制御対象セット情報DB222(
図5参照)によれば、制御対象セット識別子が“001”である“登録処理”の制御対象アプリは、アプリ識別子が“002”である“情報登録”アプリである。また、制御対象セット識別子が“002”である“変更処理”の制御対象アプリは、アプリ識別子が“003”である“情報変更”アプリ、及び、アプリ識別子が“004”である“変更通知”アプリである。したがって、起動対象選択処理の次に行われる、
図7のステップS6では、アプリ起動制御部211は、“登録処理”アプリ、“情報変更”アプリ及び“情報通知”アプリの3つアプリケーションを、制御対象アプリとして選択する。
【0121】
次いで、アプリ起動制御部211は、制御対象アプリに設定したこれらのアプリケーションの「呼び出し回数」に、それぞれ“1”を加算する(ステップS7)。次いで、アプリ起動制御部211は、トリガアプリの次アプリ呼び出し時間と、制御対象アプリのアプリ起動時間とに基づいて、制御対象アプリの起動タイミングを決定する(ステップS8)。そして、決定した起動タイミングの到来時に、制御対象アプリを起動させる(ステップS9)。
【0122】
例えば、制御対象に設定されたアプリケーションが、アプリ識別子が“002”の“情報登録”アプリである場合を想定する。アプリ情報DB221によれば、“情報登録”アプリのトリガアプリである、アプリ識別子が“001”の“認証”アプリの「次アプリ呼び出し時間」は“10秒”である。また、制御対象アプリに設定された“情報登録”アプリの「アプリ起動時間」は“5秒”である。したがって、アプリ起動制御部211は、トリガアプリの“認証”アプリが実行を開始してから5秒後のタイミングを、“情報登録”アプリの起動タイミングに決定する。
【0123】
例えば、ユーザによる操作に基づいて“認証”アプリによるログイン処理が実行され、ログイン処理から12秒が経過したタイミングにおいて、ユーザによる情報の登録操作が行われたとする。この場合、ログイン処理から12秒が経過した時点においては、“情報登録”アプリは既に起動しているため、情報登録処理は予定通り実行される(ステップS12)。
【0124】
その後、アプリ起動制御部211によってアプリ停止処理が行われる(ステップS14)。アプリ停止処理では、“情報登録”アプリ、“情報変更”アプリ及び“変更通知”アプリのそれぞれにおいて、「呼び出し回数」から“1”が減算される(
図10のステップS41)。
【0125】
これらのアプリケーションの「呼び出し回数」は、アプリ起動制御処理の実行前にはすべて“0”であったため、
図7のステップS7で加算された“1”が減算されることにより、「呼び出し回数」は“0”となる。したがって、ステップS43はYES判定となり、“情報登録”アプリ、“情報変更”アプリ及び“変更通知”アプリのそれぞれの動作が停止される(
図10のステップS44)。
【0126】
[具体例2]
次に、具体例2として、トリガ監視部212がトリガとして、アプリ識別子が“025”の“差分抽出”アプリの実行タイミングの到来を検知した場合を例に挙げる。以下に説明する具体例2においても、アプリケーションの呼び出し確率の閾値には“25%”が設定されており、トリガの検知時点におけるすべてのアプリケーションの呼び出し回数は“0回”であるものとする。
【0127】
まず、アプリ識別子が“025”の“差分抽出”アプリが指定の時刻に自動的に実行されると、アプリ起動制御部211は、起動トリガとなるアプリケーションのトリガアプリとしての設定数をカウントする(
図7のステップS2)。起動トリガ情報DB223において、アプリ識別子が“025”である“差分抽出”アプリは、「トリガアプリ」の項目において2つ登録されている。したがって、次のステップS3における「設定数は1?」の判定においては、“NO”が選択される。これにより、アプリ起動制御部211は起動対象選択処理を行う(ステップS5)。
【0128】
アプリ起動制御部211は、起動対象選択処理において、まず、起動トリガ情報DB223より、トリガアプリに対応付けられた制御対象セットの呼び出し確率の情報を取得する(
図8のステップS21)。トリガアプリである“差分抽出”に対応付けられた制御対象セットは、制御対象セット識別子が“008”である“バックアップ処理”と、“009”である“期限超過データ削除処理”である。したがって、ステップS21では、アプリ起動制御部211は、“バックアップ処理”の呼び出し確率である“70%”、及び、“期限超過データ削除処理”の呼び出し確率である“10%”の各情報を取得する。
【0129】
そして、これらの2つの呼び出し確率のうち、“期限超過データ削除処理”の呼び出し確率である“10%”は、予め定められた閾値である“25%”を下回る。一方、“バックアップ処理”の呼び出し確率である“70%”は、予め定められた閾値である“25%”を上回る。したがって、アプリ起動制御部211は、呼び出し確率が閾値を上回る“バックアップ処理”を、起動対象の制御対象セットとして選択する(
図8のステップS22)。
【0130】
制御対象セット情報DB222(
図5参照)によれば、制御対象セット識別子が“008”である“バックアップ処理”の制御対象アプリは、アプリ識別子が“026”である“バックアップ”アプリである。したがって、起動対象選択処理の次に行われる、
図7のステップS6では、アプリ起動制御部211は、“バックアップ”アプリを、制御対象アプリとして選択する。
【0131】
次いで、アプリ起動制御部211は、制御対象アプリに設定したアプリケーション(“バックアップ”アプリ)の「呼び出し回数」に“1”を加算する(ステップS7)。次いで、アプリ起動制御部211は、トリガアプリの次アプリ呼び出し時間と、制御対象アプリのアプリ起動時間とに基づいて、制御対象アプリの起動タイミングを決定する(ステップS8)。そして、決定した起動タイミングの到来時に、制御対象アプリを起動させる(ステップS9)。
【0132】
“バックアップ”アプリのトリガアプリである、アプリ識別子が“025”の“差分抽出”アプリの「次アプリ呼び出し時間」は“20秒”である。また、制御対象アプリに設定された“バックアップ”アプリの「アプリ起動時間」は“5秒”である。したがって、アプリ起動制御部211は、トリガアプリの“差分抽出”アプリが実行を開始してから15秒(20秒-5秒)後のタイミングを、“バックアップ”アプリの起動タイミングに決定する。
【0133】
アプリ識別子が“025”の差分抽出処理は、通常20秒後に次の処理が呼び出すが、例えば、抽出すべき差分情報が極端に少なかったこと等に起因して、10秒が経過した時点で次のアプリケーションを呼び出したとする。この場合、トリガアプリである“差分抽出”アプリが実行を開始してから15秒後に起動を開始する予定の、次の“バックアップ”アプリは、まだ起動していない。
【0134】
この場合、
図7のステップS11はNO判定となり、アプリ起動遅延制御処理が実行される(ステップS13)。アプリ起動遅延制御処理において、起動遅延制御部215(
図2参照)は、ルーティング制御部213からのリクエストを受け付ける(
図9のステップS31)。次のステップS32において、起動遅延制御部215は、トリガアプリの“差分抽出”アプリのリクエストタイムアウト時間として“30”秒を取得する。そして、その次のステップS33において、起動遅延制御部215は、制御対象アプリが起動完了するまでの時間(アプリ起動時間)として、“5秒”を取得する。
【0135】
次いで、起動遅延制御部215は、トリガアプリである“差分抽出”アプリがタイムアウトするまでの間に、制御対象アプリである“バックアップ”アプリの起動が完了するか否かを判定する(ステップS34)。ステップS32及びステップS33で取得した情報に基づき、“差分抽出”アプリがタイムアウトするまでの間に、制御対象アプリである“バックアップ”アプリの起動は完了すると判定される(ステップS34がYES判定)。
【0136】
したがって、起動遅延制御部215は、“バックアップ”アプリの起動に要する5秒間リクエストを保持した後に、制御対象アプリである“バックアップ”アプリにリクエストを転送する(ステップS35)。これにより、制御対象アプリである “バックアップ”アプリは、自身の起動が完了した後に、“差分抽出”アプリからのリクエストを受け付けることができる。
【0137】
そして、起動遅延制御部215によるアプリ起動遅延制御処理の次に行われる
図7のステップS12において、バックアップ処理が実行され、次のステップS14において、“バックアップ”アプリが停止されてバックアップ処理は終了される。
【0138】
なお、上述した実施形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【0139】
また、
図1において実線で示した制御線又は情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0140】
また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
【符号の説明】
【0141】
20…コンテナ実行基盤、30…ユーザ端末、40…クラウド、100…情報処理システム、211…アプリ起動制御部、212…トリガ監視部、213…ルーティング制御部、214…アプリログ取得部、215…起動遅延制御部、221…アプリ情報DB、250…アプリコンテナ、221…アプリ情報DB、222…制御対象セット情報DB、223…起動トリガ情報DB