(57)【要約】【課題】処理要求に対する応答時間を短縮させることを可能とするサービス提供プログラム、サービス提供装置及びサービス提供方法を提供する。【解決手段】処理要求の受信に伴って第１アプリケーションが実行し、第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、第２アプリケーションを第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶し、新たな処理要求の受信に伴って第１アプリケーションが再度実行したときに、実行履歴情報を参照し、第１アプリケーションの後の順序に対応する第２アプリケーションを特定し、特定した第２アプリケーションを起動させる。【選択図】図６
2019012495.tif 000002
【特許請求の範囲】
【請求項１】
処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶し、
新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定し、
特定した前記第２アプリケーションを起動させる、
処理をコンピュータに実行させることを特徴とするサービス提供プログラム。
【請求項２】
請求項１において、
前記起動させる処理では、前記第２アプリケーションの起動を、前記新たな処理要求の次の処理要求を受信する前に行わせる、
ことを特徴とするサービス提供プログラム。
【請求項３】
請求項１において、
前記特定する処理では、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれているか否かを判定し、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていると判定した場合に、前記第２アプリケーションの特定を行う、
ことを特徴とするサービス提供プログラム。
【請求項４】
請求項３において、
前記特定する処理では、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていないと判定した場合、前記新たな処理要求に含まれる情報を参照して、前記第１アプリケーションの直前に実行した第３アプリケーションが存在するか否かを判定し、さらに、
前記第３アプリケーションが存在すると判定した場合、前記第１アプリケーションが前記第３アプリケーションの後に実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶し、前記第３アプリケーションが存在しないと判定した場合、前記第１アプリケーションが実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするサービス提供プログラム。
【請求項５】
請求項１において、
前記特定する処理では、起動可能なアプリケーション数を示す起動可能数情報が記憶された記憶部を参照して、前記第１アプリケーションの後の順序に対応する前記起動可能なアプリケーション数のアプリケーションを前記第２アプリケーションとして特定する、
ことを特徴とするサービス提供プログラム。
【請求項６】
請求項４において、さらに、
前記起動させる処理の後、前記第１アプリケーションの実行に伴って第４アプリケーションが実行した場合、前記実行履歴情報に情報が含まれるアプリケーションのうち、前記第４アプリケーション及び前記第４アプリケーションの後の順序に対応するすべてのアプリケーションを特定し、
起動させた前記第２アプリケーションのうち、特定した前記アプリケーション以外のアプリケーションを停止する、
処理を前記コンピュータに実行させることを特徴とするサービス提供プログラム。
【請求項７】
請求項１において、さらに、
前記起動させる処理の後、起動させた前記第２アプリケーションごとの累積起動回数を示す起動回数情報を前記記憶部に記憶する、
処理を前記コンピュータに実行させ、
前記起動させる処理では、前記記憶部に記憶された前記起動回数情報を参照して、前記累積起動回数が多いアプリケーションを優先して、前記第２アプリケーションのうちの所定数のアプリケーションの起動を行う、
処理を前記コンピュータに実行させることを特徴とするサービス提供プログラム。
【請求項８】
請求項１において、
前記記憶する処理では、処理要求を送信したユーザごとに、各ユーザが送信した処理要求の受信に伴って実行したアプリケーションに対応する前記実行履歴情報の記憶を行い、
前記特定する処理では、前記実行履歴情報のうち、前記新たな処理要求を送信したユーザに対応する情報を参照し、前記第２アプリケーションの特定を行う、
ことを特徴とするサービス提供プログラム。
【請求項９】
処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶する情報管理部と、
新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定するアプリ特定部と、
特定した前記第２アプリケーションを起動させるアプリ起動部と、を有する、
ことを特徴とするサービス提供装置。
【請求項１０】
処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶し、
新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定し、
特定した前記第２アプリケーションを起動させる、
ことを特徴とするサービス提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス提供プログラム、サービス提供装置及びサービス提供方法に関する。
【背景技術】
【０００２】
例えば、利用者にサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、サービスの提供を行うための業務システム（以下、情報処理システムとも呼ぶ）を構築して稼働させる。具体的に、事業者は、例えば、物理マシン上に生成された複数のコンテナにおいてそれぞれ動作するアプリケーションを連動させることによって、利用者に対するサービスの提供を行う業務システムの構築を行う。
【０００３】
上記のような業務システムでは、例えば、利用者から処理要求（以下、要求メッセージとも呼ぶ）を受信した場合に、処理要求に対応する処理を行うアプリケーションが動作するコンテナを順次起動させて動作させる。そして、上記のような業務システムでは、例えば、処理要求に対応する処理が完了した場合、その処理を実行していたアプリケーションが動作するコンテナを停止する。これにより、事業者は、コンテナが生成される物理マシンのリソースを効率的に使用することが可能になる（例えば、特許文献１乃至３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−０９９５５４号公報
【特許文献２】特開２００１−３１８７９６号公報
【特許文献３】特開２０１５−５４７３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、各アプリケーションにおける処理の結果に応じて、次に処理を実行するアプリケーションが決定する場合、業務システムは、各アプリケーションにおける処理の完了を待ってから、次に処理を実行するアプリケーションが動作するコンテナの起動を行う必要がある。そのため、業務システムでは、例えば、処理要求に対応する処理を行うために動作するアプリケーションの数が多い場合、利用者に対して応答を送信するまでに要する時間が長くなる場合がある。
【０００６】
そこで、一つの側面では、本発明は、処理要求に対する応答時間を短縮させることを可能とするサービス提供プログラム、サービス提供装置及びサービス提供方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施の形態の一態様では、処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶し、新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定し、特定した前記第２アプリケーションを起動させる、処理をコンピュータに実行させる。
【発明の効果】
【０００８】
一つの側面によれば、処理要求に対する応答時間を短縮させることを可能とする。
【図面の簡単な説明】
【０００９】
【図１】図１は、情報処理システム１０の全体構成を示す図である。
【図２】図２は、コンテナ３において処理が行われる場合を説明する具体例である。
【図３】図３は、管理装置１のハードウエア構成を示す図である。
【図４】図４は、管理装置１の機能のブロック図である。
【図５】図５は、第１の実施の形態におけるサービス提供処理の概略を説明するフローチャート図である。
【図６】図６は、第１の実施の形態におけるサービス提供処理の概略を説明するフローチャート図である。
【図７】図７は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図８】図８は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図９】図９は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図１３】図１３は、実行履歴情報１３１の具体例を説明する図である。
【図１４】図１４は、起動ツリー情報１３２の具体例を説明する図である。
【図１５】図１５は、起動ツリー情報１３２の具体例を説明する図である。
【図１６】図１６は、起動状態情報１３３の具体例を説明する図である。
【図１７】図１７は、起動状態情報１３３の具体例を説明する図である。
【図１８】図１８は、起動状態情報１３３の具体例を説明する図である。
【図１９】図１９は、実行履歴情報１３１の具体例を説明する図である。
【図２０】図２０は、実行履歴情報１３１の具体例を説明する図である。
【図２１】図２１は、実行履歴情報１３１の具体例を説明する図である。
【図２２】図２２は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図２３】図２３は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図２４】図２４は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図２５】図２５は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図２６】図２６は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図２７】図２７は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。
【図２８】図２８は、起動回数情報１３６の具体例を説明する図である。
【図２９】図２９は、起動状態情報１３３の具体例を説明する図である。
【図３０】図３０は、起動回数情報１３６の具体例を説明する図である。
【発明を実施するための形態】
【００１０】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を示す図である。図１に示す情報処理システム１０は、例えば、利用者にサービスを提供するための業務システムである。図１に示す情報処理システム１０において、管理装置１と物理マシン２とがデータセンター（図示しない）内に設けられている。そして、事業者端末５は、インターネットやイントラネット等のネットワークを介して、データセンターとアクセス可能になっている。
【００１１】
物理マシン２は、例えば、複数の物理マシンから構成される。各物理マシンは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｃｏｍｐｕｔｉｎｇ  Ｕｎｉｔ）と、メモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ハードディスク（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の大容量メモリとを有する。そして、物理マシン２の物理リソースは、利用者に対してサービスを提供するための各処理を実行される複数のコンテナ３に割当てられる。
【００１２】
コンテナ型仮想化ソフトウエア４は、物理マシン２のＣＰＵ、メモリ、ハードディスク及びネットワークを割当てることにより、コンテナ３を生成する基盤ソフトウエアである。コンテナ型仮想化ソフトウエア４は、例えば、物理マシン２において動作する。
【００１３】
管理装置１は、例えば、利用者が利用者端末（図示しない）を介して送信した処理要求を受信した場合、受信した処理要求に対応する処理を行うアプリケーションが動作するコンテナ３を特定する。そして、管理装置１は、特定したコンテナ３に対して、利用者端末から受信した処理要求を送信する。以下、コンテナ３における処理の具体例について説明を行う。
【００１４】
［コンテナにおける処理の具体例］
図２は、コンテナ３において処理が行われる場合を説明する具体例である。なお、以下、アプリケーションＡＰ１、２及び３が動作するコンテナ３を、それぞれアプリコンテナ３１、３２及び３３と呼ぶ。また、以下、管理装置１が処理要求を受信する前においては、アプリコンテナ３１、３２及び３３が停止しているものとして説明を行う。
【００１５】
例えば、アプリケーションＡＰ１を最初に動作させる必要がある処理要求を受信した場合、管理装置１は、図２に示すように、アプリコンテナ３１の起動を指示する。そして、アプリコンテナ３１の起動が完了したことに応じて、管理装置１は、受信した処理要求をアプリコンテナ３１に送信する。
【００１６】
続いて、アプリコンテナ３１において動作するアプリケーションＡＰ１は、管理装置１から受信した処理要求に応じた処理を行う。そして、受信した処理要求に応じた処理の完了に伴って、例えば、次に処理を行うべきアプリケーションとしてアプリケーションＡＰ２を特定した場合、アプリコンテナ３１は、アプリコンテナ３２の起動を指示する。さらに、アプリコンテナ３２の起動が完了したことに応じて、アプリコンテナ３１は、アプリケーションＡＰ１における処理の完了に伴って発生した処理要求をアプリコンテナ３２に送信する。
【００１７】
次に、アプリコンテナ３２において動作するアプリケーションＡＰ２は、アプリコンテナ３１から受信した処理要求に応じた処理を行う。そして、受信した処理要求に応じた処理の完了に伴って、例えば、次に処理を行うべきアプリケーションとしてアプリケーションＡＰ３を特定した場合、アプリコンテナ３２は、アプリコンテナ３３の起動を指示する。さらに、アプリコンテナ３３の起動が完了したことに応じて、アプリコンテナ３２は、アプリコンテナ３２における処理の完了に伴って発生した処理要求をアプリコンテナ３３に送信する。
【００１８】
続いて、アプリコンテナ３３において動作するアプリケーションＡＰ３は、アプリコンテナ３２から受信した処理要求に応じた処理を行う。そして、受信した処理要求に応じた処理の完了に伴って、例えば、次に処理を行うべきアプリケーションが存在しないと判定した場合、アプリコンテナ３３は、アプリコンテナ３３における処理の完了に伴って発生した処理要求を、アプリコンテナ３３に対して処理要求の送信を行ったアプリコンテナ３２に送信する。
【００１９】
その後、アプリコンテナ３２は、受信した処理結果に対して必要な処理を行った後、例えば、アプリコンテナ３２における処理の完了に伴って発生した処理要求を、アプリコンテナ３２に対して処理要求の送信を行ったアプリコンテナ３１に送信する。
【００２０】
そして、アプリコンテナ３１は、受信した処理結果に対して必要な処理を行った後、アプリコンテナ３１における処理の処理結果を、例えば、管理装置１に対して処理要求を送信した利用者端末（図示しない）に対して送信する。
【００２１】
しかしながら、図２で説明した例の場合、情報処理システム１０では、各アプリケーションにおいて実行される処理が完了してから、次に実行するアプリケーションが動作するコンテナの起動が逐次的に行われる。そのため、情報処理システム１０では、処理要求を送信した利用者に対する応答時間が長くなる場合がある。
【００２２】
そこで、本実施の形態における管理装置１は、処理要求の受信に伴って第１アプリケーションが実行し、第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、第２アプリケーションを第１アプリケーションの後の順序に対応付けた情報（以下、実行履歴情報とも呼ぶ）を記憶部に記憶する。そして、管理装置１は、新たな処理要求の受信に伴って第１アプリケーションが再度実行したときに、記憶部に記憶した実行履歴情報を参照し、第１アプリケーションの後の順序に対応する第２アプリケーションを特定する。その後、管理装置１は、特定した第２アプリケーションが動作するアプリコンテナを起動させる。
【００２３】
すなわち、管理装置１は、過去に実行されたアプリケーションの実行順序から、今回実行された第１アプリケーションの後に実行される可能性があるアプリケーションとして第２アプリケーションを特定する。そして、管理装置１は、例えば、第１アプリケーションが処理要求に対応する処理が完了する前に、特定した第２アプリケーションが動作するアプリコンテナの起動を行う。
【００２４】
これにより、管理装置１は、例えば、各アプリケーションにおける処理の結果に応じて、次に実行する必要があるアプリケーションが決定される場合であっても、各アプリケーションにおける処理の完了を待つことなく、次に実行する可能性があるアプリケーションが動作するアプリコンテナの起動を行うことが可能になる。そのため、管理装置１は、各アプリケーションの起動に要する時間を短縮することが可能になり、利用者に対する応答時間を短縮させることが可能になる。
【００２５】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図３は、管理装置１のハードウエア構成を示す図である。
【００２６】
管理装置１は、図３に示すように、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（以下、Ｉ／Ｏユニットとも呼ぶ）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２７】
記憶媒体１０４は、例えば、記憶媒体１０４内のプログラム格納領域（図示しない）に、利用者に対してサービスを提供する処理（以下、サービス提供処理とも呼ぶ）を行うためのプログラム１１０を記憶する。また、記憶媒体１０４は、例えば、サービス提供処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。
【００２８】
ＣＰＵ１０１は、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してサービス提供処理を行う。また、外部インターフェース１０３は、例えば、物理マシン２と通信を行う。
【００２９】
［情報処理システムの機能］
次に、情報処理システム１０の機能について説明する。図４は、管理装置１の機能のブロック図である。
【００３０】
管理装置１のＣＰＵ１０１は、プログラム１１０と協働することにより、図４に示すように、要求受信部１１１と、情報管理部１１２と、アプリ特定部１１３と、アプリ起動部１１４と、アプリ停止部１１５として動作する。また、情報格納領域１３０には、例えば、実行履歴情報１３１と、起動ツリー情報１３２と、起動状態情報１３３と、カウンター情報１３４と、起動可能数情報１３５と、起動回数情報１３６とが記憶される。
【００３１】
要求受信部１１１は、例えば、利用者が利用者端末（図示しない）を介して送信した処理要求を受信する。
【００３２】
情報管理部１１２は、例えば、各アプリケーションの実行順序を示す実行履歴情報１３１を情報格納領域１３０に記憶する。具体的に、情報管理部１１２は、要求受信部１１１による処理要求の受信に伴って第１アプリケーションが実行し、第１アプリケーションの実行に伴って第２アプリケーションが実行したことに応じて、第２アプリケーションを第１アプリケーションの後の順序に対応付けた情報を、実行履歴情報１３１として情報格納領域１３０に記憶する。
【００３３】
アプリ特定部１１３は、要求受信部１１１による新たな処理要求の受信に伴って第１アプリケーションが再度実行したときに、情報格納領域１３０に記憶された実行履歴情報１３１を参照し、第１アプリケーションの後の順序に対応する第２アプリケーションを特定する。
【００３４】
アプリ起動部１１４は、要求受信部１１１が受信した処理要求に対応する処理が実行するアプリケーションが動作するアプリコンテナの起動を行う。
【００３５】
また、アプリ起動部１１４は、アプリ特定部１１３が特定した第２アプリケーションが動作するアプリコンテナの起動を行う。具体的に、アプリ起動部１１４は、例えば、要求受信部１１１が次の処理要求を受信する前に、第２のアプリケーションが動作するアプリコンテナの起動を行う。なお、アプリ特定部１１３が第１アプリケーションの後の順序に対応するアプリケーションを特定できなかった場合、アプリ起動部１１４は、アプリコンテナの起動を行わない。
【００３６】
アプリ停止部１１５は、要求受信部１１１が次の処理要求の受信に伴ってアプリケーションが実行した場合、情報格納領域１３０に記憶された実行履歴情報１３１に情報が含まれるアプリケーションのうち、実行したアプリケーション及びそのアプリケーションよりも後の順序に対応するアプリケーションを特定する。そして、アプリ停止部１１５は、特定したアプリケーションのうち、アプリ起動部１１４が起動を行ったアプリケーションを停止する。
【００３７】
なお、起動ツリー情報１３２、起動状態情報１３３、カウンター情報１３４、起動可能数情報１３５及び起動回数情報１３６の説明については後述する。
【００３８】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明を行う。図５及び図６は、第１の実施の形態におけるサービス提供処理の概略を説明するフローチャート図である。
【００３９】
管理装置１は、図５に示すように、処理要求の受信に伴って第１アプリケーションが実行し、さらに、第１アプリケーションの実行に伴って第２アプリケーションが実行するまで待機する（Ｓ１のＮＯ）。そして、処理要求の受信に伴って第１アプリケーションが実行し、第１アプリケーションの実行に伴って第２アプリケーションが実行した場合（Ｓ１のＹＥＳ）、管理装置１は、第２アプリケーションを第１アプリケーションの後（例えば、直後）の順序に対応付けた情報である実行履歴情報１３１を情報格納領域１３０に記憶する（Ｓ２）。
【００４０】
その後、管理装置１は、図６に示すように、新たな処理要求を受信するまで再度待機する（Ｓ１１のＮＯ）。そして、新たな処理要求を受信した場合（Ｓ１１のＹＥＳ）、受信した新たな処理要求が第１アプリケーションにおける処理を要する処理要求であるか否かを判定する（Ｓ１２）。
【００４１】
すなわち、管理装置１は、Ｓ１１の処理で受信した新たな処理要求に対応する処理を行うアプリケーションが、情報格納領域１３０に記憶された実行履歴情報１３１において、後の順序のアプリケーションの情報に対応付けられているアプリケーションであるか否かの判定を行う。
【００４２】
その結果、第１アプリケーションにおける処理を要する処理要求であると判定した場合（Ｓ１２のＹＥＳ）、管理装置１は、Ｓ５の処理で情報格納領域１３０に記憶した実行履歴情報１３１を参照し、第１アプリケーションの後の順序に対応する第２アプリケーションを特定する（Ｓ１３）。その後、管理装置１は、Ｓ１３の処理で特定した第２アプリケーションを起動させる（Ｓ１４）。
【００４３】
一方、Ｓ１２の処理において、第１アプリケーションにおける処理を要する処理要求でないと判定した場合（Ｓ１２のＮＯ）、管理装置１は、Ｓ１３及びＳ１４の処理を行わない。
【００４４】
すなわち、管理装置１は、過去に実行されたアプリケーションの実行順序から、今回実行された第１アプリケーションの後に実行される可能性があるアプリケーションとして第２アプリケーションを特定する。そして、管理装置１は、例えば、第１アプリケーションが処理要求に対応する処理を実行している間に、特定した第２アプリケーションが動作するアプリコンテナの起動を行う。
【００４５】
これにより、管理装置１は、例えば、各アプリケーションにおける処理の結果に応じて、次に実行する必要があるアプリケーションが決定される場合であっても、各アプリケーションにおける処理の完了を待つことなく、次に実行する可能性があるアプリケーションが動作するアプリコンテナの起動を行うことが可能になる。そのため、管理装置１は、各アプリケーションの起動に要する時間を短縮することが可能になり、利用者に対する応答時間を短縮させることが可能になる。
【００４６】
なお、以下、各アプリケーションがコンテナ３上で動作する場合について説明を行うが、各アプリケーションは、仮想マシン上において動作するものであってもよい。
【００４７】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図７から図１２は、第１の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。また、図１３から図２１は、第１の実施の形態におけるサービス提供処理の詳細を説明する図である。図１３から図２１を参照しながら、図７から図１２に示すサービス提供処理の詳細を説明する。
【００４８】
管理装置１の要求受信部１１１は、図７に示すように、処理要求を受信するまで待機する（Ｓ２１のＮＯ）。具体的に、要求受信部１１１は、例えば、利用者が利用者端末（図示しない）を介して送信した処理要求を受信するまで待機する。
【００４９】
そして、処理要求を受信した場合（Ｓ２１のＹＥＳ）、管理装置１のアプリ特定部１１３は、Ｓ２１の処理で受信した処理要求の要求元が外部のアプリケーションであるか否かを判定する（Ｓ２２）。すなわち、アプリ特定部１１３は、Ｓ２１の処理で受信した処理要求の要求元が、情報処理システム１０において管理する必要があるアプリケーションであるか否かの判定を行う。
【００５０】
その結果、外部のアプリケーションであると判定した場合（Ｓ２３のＹＥＳ）、アプリ特定部１１３は、図８に示すように、Ｓ２１の処理で受信した処理要求に対して新たなサービス実行ＩＤを採番する。そして、アプリ特定部１１３は、この場合、情報格納領域１３０に記憶された実行履歴情報１３１から、Ｓ２１の処理で受信した処理要求の要求先を起点する実行履歴情報１３１を特定する（Ｓ３１）。以下、実行履歴情報１３１の具体例について説明を行う。
【００５１】
［実行履歴情報の具体例］
図１３、図１９、図２０及び図２１は、実行履歴情報１３１の具体例を説明する図である。図１３等に示す実行履歴情報１３１は、アプリケーションの実行順序が設定される「フローＩＤ」と、各アプリケーションが設定される「アプリＩＤ（１）」、「アプリＩＤ（２）」、「アプリＩＤ（３）」及び「アプリＩＤ（４）」とを項目として有する。なお、以下、「アプリＩＤ（１）」、「アプリＩＤ（２）」、「アプリＩＤ（３）」及び「アプリＩＤ（４）」を総称して「アプリＩＤ」とも呼ぶ。
【００５２】
具体的に、図１３に示す実行履歴情報１３１において、「フローＩＤ」が「１」である情報には、「アプリＩＤ（１）」として「ＡＰ１」が設定され、「アプリＩＤ（２）」として「ＡＰ１２」が設定され、「アプリＩＤ（３）」として「ＡＰ２１」が設定され、「アプリＩＤ（４）」として「ＡＰ３１」が設定されている。
【００５３】
すなわち、図１３に示す実行履歴情報１３１は、アプリケーションＡＰ１、ＡＰ１２、ＡＰ２１及びＡＰ３１が、過去にこの順序で実行されたことを示している。図１３に含まれる他の情報については説明を省略する。
【００５４】
そして、図１３で説明した実行履歴情報１３１には、「アプリＩＤ（１）」に「ＡＰ１」が設定された情報が存在している。具体的に、図１３で説明した実行履歴情報１３１において、「フローＩＤ」が「１」、「２」、「３」及び「４」である情報の「アプリＩＤ（１）」には、それぞれ「ＡＰ１」が設定されている。そのため、例えば、Ｓ２１の処理で受信した処理要求に対応する処理を行うアプリケーションがアプリケーションＡＰ１である場合、アプリ特定部１１３は、Ｓ３１の処理において、図１３で説明した実行履歴情報１３１から「フローＩＤ」が「１」、「２」、「３」及び「４」である情報を特定する。
【００５５】
図８に戻り、Ｓ３１の処理において実行履歴情報１３１が存在した場合（Ｓ３２のＹＥＳ）、アプリ特定部１１３は、Ｓ３２の処理で存在した実行履歴情報１３１に含まれる各情報と、Ｓ３１の処理で採番したサービス実行ＩＤとを対応付けた起動ツリー情報１３２を生成する。そして、アプリ特定部１１３は、生成した起動ツリー情報１３２に含まれるフローＩＤを特定する（Ｓ３４）。
【００５６】
すなわち、例えば、Ｓ２１の処理で受信した処理要求に対応する処理を行うアプリケーションがアプリケーションＡＰ１である場合、アプリ特定部１１３は、図１３で説明した実行履歴情報１３１に含まれる情報のうち、「アプリＩＤ（１）」に「ＡＰ１」が設定された情報（「フローＩＤ」が「１」から「４」である情報）を抽出する。その後、アプリ特定部１１３は、抽出した情報に、Ｓ３１の処理で採番したサービス実行ＩＤを対応付けることにより、起動ツリー情報１３２を生成する。以下、Ｓ３４の処理で生成される起動ツリー情報１３２の具体例について説明を行う。
【００５７】
［起動ツリー情報の具体例（１）］
図１４及び図１５は、起動ツリー情報１３２の具体例を説明する図である。具体的に、図１４は、Ｓ３４の処理で生成される起動ツリー情報１３２の具体例を説明する図である。
【００５８】
図１４等に示す起動ツリー情報１３２は、サービス実行ＩＤが設定される「サービス実行ＩＤ」と、アプリケーションの実行順序の識別情報が設定される「フローＩＤ」と、各アプリケーションが設定される「アプリＩＤ（１）」、「アプリＩＤ（２）」、「アプリＩＤ（３）」及び「アプリＩＤ（４）」とを項目として有する。
【００５９】
具体的に、図１４に示す起動ツリー情報１３２において、「フローＩＤ」が「１」である情報には、「サービス実行ＩＤ」として「１１０１」が設定され、「アプリＩＤ（１）」として「ＡＰ１」が設定され、「アプリＩＤ（２）」として「ＡＰ１２」が設定され、「アプリＩＤ（３）」として「ＡＰ２１」が設定され、「アプリＩＤ（４）」として「ＡＰ３１」が設定されている。図１４に含まれる他の情報については説明を省略する。
【００６０】
そして、アプリ特定部１１３は、図１４で説明した起動ツリー情報１３２を生成した場合、図１４で説明した起動ツリー情報１３２の「フローＩＤ」に設定された情報である「１」、「２」、「３」及び「４」の特定を行う。
【００６１】
図８に戻り、Ｓ３１の処理において実行履歴情報１３１が存在しなかった場合（Ｓ３２のＮＯ）、アプリ特定部１１３は、Ｓ２１の処理で受信した処理要求の要求先を示す情報と、Ｓ３１の処理で採番したサービス実行ＩＤとを対応付けた起動ツリー情報１３２を生成する。そして、アプリ特定部１１３は、生成した起動ツリー情報１３２に含まれるフローＩＤを特定する（Ｓ３３）。以下、Ｓ３３の処理で生成される起動ツリー情報１３２の具体例について説明を行う。
【００６２】
［起動ツリー情報の具体例（２）］
図１５は、Ｓ３３の処理で生成される起動ツリー情報１３２の具体例を説明する図である。
【００６３】
図１５に示す起動ツリー情報１３２において、「フローＩＤ」が「１」である情報には、「サービス実行ＩＤ」として「１１０１」が設定され、「アプリＩＤ（１）」として「ＡＰ２」が設定されている。そして、図１５に示す起動ツリー情報１３２において、「フローＩＤ」が「１」である情報には、「アプリＩＤ（２）」、「アプリＩＤ（３）」及び「アプリＩＤ（４）」として、情報が設定されていないことを示す「−」が設定されている。
【００６４】
すなわち、図１３で説明した実行履歴情報１３１に含まれる情報には、「アプリＩＤ（１）」に「ＡＰ２」が設定された情報が存在しない。そのため、例えば、Ｓ２１の処理で受信した処理要求に対応する処理を行うアプリケーションがアプリケーションＡＰ２である場合、アプリ特定部１１３は、例えば、図１５に示すように、図１３で説明した実行履歴情報１３１に含まれていない情報から起動ツリー情報１３２の生成を行う。
【００６５】
図８に戻り、Ｓ３３またはＳ３４の処理の後、アプリ特定部１１３は、情報格納領域１３０に記憶されたカウンター情報１３４を「１」に更新する（Ｓ３５）。カウンター情報１３４は、起動ツリー情報１３２に情報が含まれるアプリケーションのうち、起動を行うアプリケーションを特定する際の起点となるアプリケーションの順番を示す情報である。
【００６６】
一方、Ｓ２１の処理で受信した処理要求の要求元が外部のアプリケーションでないと判定した場合（Ｓ２３のＮＯ）、アプリ特定部１１３は、情報格納領域１３０に記憶された起動ツリー情報１３２に含まれる情報のうち、Ｓ２１の処理で受信した処理要求の要求元に対応する情報と、Ｓ２１の処理で受信した処理要求の要求先に対応する情報とが連続して含まれる情報を特定し、特定した情報における要求先の順番をカウンター情報１３４として記憶する（Ｓ２４）。
【００６７】
具体的に、図１４で説明した起動ツリー情報１３２が情報格納領域１３０に記憶されており、Ｓ２１の処理で受信した処理要求の要求元がアプリケーションＡＰ１であって、要求先がアプリケーションＡ１３である場合、アプリ特定部１１３は、例えば、図１４で説明した起動ツリー情報１３２を参照し、「アプリＩＤ」に「ＡＰ１」と「ＡＰ１３」とが連続して設定されている情報（「フローＩＤ」が「３」及び「４」である情報）を特定する。そして、アプリ特定部１１３は、特定した情報において、「ＡＰ１３」が設定されている項目として「アプリＩＤ（２）」を特定する。そのため、アプリ特定部１１３は、この場合、Ｓ２４の処理において、「アプリＩＤ（２）」の順番に対応する「２」をカウンター情報１３４として情報格納領域１３０に記憶する。
【００６８】
続いて、アプリ特定部１１３は、情報格納領域１３０に記憶された起動ツリー情報１３２のうち、Ｓ２４の処理で特定した情報に含まれるフローＩＤを特定する（Ｓ２５）。
【００６９】
具体的に、アプリ特定部１１３は、例えば、図１４で説明した起動ツリー情報１３２のうち、Ｓ２４の処理で特定した情報の「フローＩＤ」に設定された情報である「３」及び「４」を特定する。
【００７０】
その後、管理装置１のアプリ停止部１１５は、情報格納領域１３０に記憶された起動状態情報１３３を参照し、起動中のアプリケーションのうち、起動を行う必要がないことが決定したアプリケーションを停止する。そして、アプリ停止部１１５は、情報格納領域１３０に記憶された起動状態情報１３３の更新を行う（Ｓ２６）。起動状態情報１３３は、各アプリケーションが動作するアプリコンテナが起動しているか否かを示す情報である。以下、起動状態情報１３３の具体例について説明を行う。
【００７１】
［起動状態情報の具体例］
図１６、図１７、図１８及び図２９は、起動状態情報１３３の具体例を説明する図である。図１６等に示す起動状態情報１３３は、サービス実行ＩＤが設定される「サービス実行ＩＤ」と、アプリケーションの実行順序の識別情報が設定される「フローＩＤ」と、各アプリケーションが設定される「アプリＩＤ（１）」、「アプリＩＤ（２）」、「アプリＩＤ（３）」及び「アプリＩＤ（４）」とを項目として有する。また、図１６等に示す起動状態情報１３３は、各アプリケーションが動作するアプリコンテナの起動状態が設定される「状態（１）」、「状態（２）」、「状態（３）」及び「状態（４）」を項目として有する。なお、以下、「状態（１）」、「状態（２）」、「状態（３）」及び「状態（４）」を総称して「状態」とも呼ぶ。
【００７２】
具体的に、図１６に示す起動状態情報１３３において、「フローＩＤ」が「１」である情報には、「サービス実行ＩＤ」として「１１０１」が設定され、「アプリＩＤ（１）」として「ＡＰ１」が設定され、「アプリＩＤ（２）」として「ＡＰ１２」が設定され、「アプリＩＤ（３）」として「ＡＰ２１」が設定され、「アプリＩＤ（４）」として「ＡＰ３１」が設定されている。また、図１６に示す起動状態情報１３３において、「フローＩＤ」が「１」である情報には、「状態（１）」として「起動中」が設定され、「状態（２）」として「起動中」が設定され、「状態（３）」として「起動中」が設定され、「状態（４）」として「停止中」が設定されている。
【００７３】
すなわち、図１６で説明した起動状態情報１３３は、例えば、アプリケーションＡＰ１の実行に伴って、アプリケーションＡＰ１の次に実行される可能性があるアプリケーションＡＰ１２及びＡＰ１３と、アプリケーションＡＰ１の次の次に実行される可能性があるアプリケーションＡＰ２１、ＡＰ２２、ＡＰ２３及びＡＰ２４とが動作するアプリコンテナが起動された場合を示している。
【００７４】
そして、Ｓ２１の処理で受信した処理要求の要求先がアプリケーションＡＰ１３である場合、アプリ特定部１１３は、図１６で説明した起動状態情報１３３を参照し、アプリケーションＡＰ１２及びアプリケーションＡＰ１２の後の順序に対応する各アプリケーションが実行されないものであると判定する。そのため、アプリ特定部１１３は、Ｓ２６の処理において、図１７に示すように、「状態」に「起動中」が設定されている「アプリＩＤ」のうち、アプリケーションＡＰ１２及びアプリケーションＡＰ１２の後の順序に対応するアプリケーションの「状態」の全てを「停止中」に更新する。
【００７５】
その後、Ｓ２６またはＳ３５の処理の後、アプリ特定部１１３は、図９に示すように、Ｓ２５、Ｓ３３またはＳ３４の処理で特定したフローＩＤから未選択のものを１つ特定する（Ｓ４１）。
【００７６】
続いて、アプリ特定部１１３は、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションが起動されているか否かを判定する（Ｓ４２）。
【００７７】
具体的に、Ｓ４１の処理で特定されたフローＩＤが「３」であって、カウンター情報１３４が示す順番が「２」である場合、アプリ特定部１１３は、図１６で説明した起動状態情報１３３を参照し、「フローＩＤ」が「３」であって「アプリＩＤ（２）」が「２」である情報に設定された「ＡＰ１３」を特定し、「ＡＰ１３」に対応する「状態」に設定された情報である「起動中」を特定する。すなわち、アプリ特定部１１３は、この場合、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションが起動中であると判定する。
【００７８】
その結果、アプリケーションが起動されていると判定した場合（Ｓ４３のＹＥＳ）、アプリ特定部１１３は、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションの次からＮ個先までに動作するアプリケーションのそれぞれが動作するアプリコンテナを特定する（Ｓ４４）。
【００７９】
そして、管理装置１のアプリ起動部１１４は、Ｓ４４の処理で特定されたアプリコンテナのうち、停止しているアプリコンテナの起動を行う（Ｓ４５）。具体的に、アプリ起動部１１４は、Ｓ４４の処理で特定されたアプリコンテナのうち、起動中のアプリコンテナ及び起動処理を実行しているアプリコンテナ以外のアプリコンテナの起動を行う。
【００８０】
その後、アプリ起動部１１４は、この場合、情報格納領域１３０に記憶された起動状態情報１３３のうち、Ｓ４４の処理または後述するＳ５２の処理で起動を行ったアプリケーションに対応する情報を更新する（Ｓ４６）。
【００８１】
具体的に、例えば、Ｓ４２の処理において、「フローＩＤ」が「３」であって「アプリＩＤ（２）」が「２」である情報に設定された「ＡＰ１３」が起動中であるか否かの判定が行われていた場合において、Ｓ４４の処理におけるＮが２である場合、アプリ起動部１１４は、図１７で説明した起動状態情報１３３を参照し、「フローＩＤ」が「３」である情報のうち、「アプリＩＤ（３）」及び「アプリＩＤ（４）」に設定された情報である「ＡＰ２３」及び「ＡＰ３５」を特定する。そして、アプリ起動部１１４は、図１８に示すように、特定した「ＡＰ２３」及び「ＡＰ３５」に対応する「状態」に設定された全ての情報が「起動中」になるように更新を行う。
【００８２】
そして、図１１に示すように、Ｓ２５、Ｓ３３またはＳ３４の処理で特定したフローＩＤの全てが選択されていない場合（Ｓ６１のＮＯ）、アプリ特定部１１３は、Ｓ４１以降の処理を再度行う。一方、Ｓ２５、Ｓ３３またはＳ３４の処理で特定したフローＩＤの全てが選択されている場合（Ｓ６１のＹＥＳ）、管理装置１は、Ｓ６２以降の処理を行う。
【００８３】
また、Ｓ４３の処理において、アプリケーションが起動していないと判定した場合（Ｓ４３のＮＯ）、アプリ特定部１１３は、図１０に示すように、Ｓ２１の処理で受信した処理要求を情報格納領域１３０に記憶された要求キュー（図示しない）に記憶する（Ｓ５１）。
【００８４】
すなわち、Ｓ２１の処理で受信した処理要求に対応する処理を行うアプリケーションが起動していない場合、管理装置１は、例えば、そのアプリケーションが動作するアプリコンテナの起動が完了するまでの間、Ｓ２１の処理で受信した処理要求を要求キューに蓄積する。
【００８５】
続いて、アプリ特定部１１３は、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションと、そのアプリケーションの次からＮ個先まで動作するアプリケーションのそれぞれとが動作するアプリコンテナを特定する（Ｓ５２）。
【００８６】
そして、アプリ起動部１１４は、Ｓ５２の処理で特定したアプリコンテナの起動を行う（Ｓ５３）。具体的に、アプリ起動部１１４は、Ｓ５２の処理で特定されたアプリコンテナのうち、起動中のアプリコンテナ及び起動処理を実行しているアプリコンテナ以外のアプリコンテナの起動を行う。
【００８７】
すなわち、アプリ起動部１１４は、この場合、Ｓ４５の処理の場合と異なり、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションの起動についても行う。
【００８８】
その後、カウンター情報１３４が示す順番のアプリケーションの起動が完了している場合（Ｓ５４のＹＥＳ）、アプリ起動部１１４は、Ｓ４６以降の処理を行う。一方、カウンター情報１３４が示す順番のアプリケーションの起動が完了していない場合（Ｓ５４のＮＯ）、アプリ起動部１１４は、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションの起動を再度行う（Ｓ５５）。
【００８９】
次に、図１１のＳ６２以降の処理について説明を行う。要求受信部１１１は、図１１に示すように、Ｓ４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションに対し、Ｓ２１の処理で受信した処理要求を送信する（Ｓ６２）。すなわち、要求受信部１１１は、Ｓ２１の処理で受信した処理要求に対応する処理を適切なアプリケーションに行わせる。
【００９０】
そして、Ｓ２１の処理で受信した処理要求の要求元が外部のアプリケーションである場合(Ｓ６３のＹＥＳ）、管理装置１の情報管理部１１２は、Ｓ２１で受信した処理要求の要求先が先頭である実行履歴情報１３１が存在するか否かを判定する（Ｓ６４）。
【００９１】
その結果、実行履歴情報１３１が存在しないと判定した場合（Ｓ６５のＮＯ）、情報管理部１１２は、Ｓ２１の処理で受信した処理要求の要求先を先頭とする実行履歴情報１３１を生成する（Ｓ６６）。一方、実行履歴情報１３１が存在すると判定した場合（Ｓ６５のＹＥＳ）、情報管理部１１２は、新たな実行履歴情報１３１を生成する必要がないと判定し、Ｓ６６の処理を行わない。
【００９２】
具体的に、例えば、図１３で説明した実行履歴情報１３１には、アプリケーションＡＰ２についての情報が含まれていない。そのため、Ｓ２１の処理で受信した処理要求の要求元が外部のアプリケーションであって、要求先がアプリケーションＡＰ２である場合、情報管理部１１２は、図１９に示すように、図１３で説明した実行履歴情報１３１に対し、「フローＩＤ」が「２」であって「アプリＩＤ（１）」に「ＡＰ２」が設定された情報（「フローＩＤ」が「７」である情報）を追加する。
【００９３】
また、Ｓ６３の処理において、Ｓ２１の処理で受信した処理要求の要求元が外部のアプリケーションでない場合(Ｓ６３のＮＯ）、情報管理部１１２は、図１２に示すように、Ｓ２１の処理で受信した処理要求の要求先を含む実行履歴情報１３１が存在するか否かを判定する（Ｓ７１）。
【００９４】
その結果、実行履歴情報１３１が存在しないと判定した場合（Ｓ７２のＮＯ）、情報管理部１１２は、情報格納領域１３０に記憶された実行履歴情報１３１から、Ｓ２１の処理で受信した処理要求の要求元が最後のアプリケーションである情報を特定する。そして、情報管理部１１２は、特定した情報において、Ｓ２１の処理で受信した処理要求の要求元の次のアプリケーションとして、Ｓ２１の処理で受信した処理要求の要求先を実行履歴情報１３１に追加する（Ｓ７３）。一方、実行履歴情報１３１が存在すると判定した場合（Ｓ７２のＹＥＳ）、情報管理部１１２は、新たな実行履歴情報１３１を生成する必要がないと判定し、Ｓ７２の処理を行わない。
【００９５】
具体的に、例えば、図１３で説明した実行履歴情報１３１には、アプリケーションＡＰ２４についての情報が含まれているが、アプリケーションＡＰ３６についての情報が含まれていない。そのため、Ｓ２１の処理で受信した処理要求の要求元がアプリケーションＡＰ２４であって、要求先がアプリケーションＡＰ３６である場合、情報管理部１１２は、図２０に示すように、図１３で説明した実行履歴情報１３１に対し、「フローＩＤ」が「４」である情報の「アプリＩＤ（４）」に「ＡＰ３６」を追加する。
【００９６】
このように、本実施の形態における管理装置１は、処理要求の受信に伴って第１アプリケーションが実行し、第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、第２アプリケーションを第１アプリケーションの後の順序に対応付けた実行履歴情報１３１を情報格納領域１３０に記憶する。そして、管理装置１は、新たな処理要求の受信に伴って第１アプリケーションが再度実行したときに、情報格納領域１３０に記憶した実行履歴情報１３１を参照し、第１アプリケーションの後の順序に対応する第２アプリケーションを特定する。その後、管理装置１は、特定した第２アプリケーションが動作するアプリコンテナを起動させる。
【００９７】
すなわち、管理装置１は、過去に実行されたアプリケーションの実行順序から、今回実行された第１アプリケーションの後に実行される可能性があるアプリケーションとして第２アプリケーションを特定する。そして、管理装置１は、例えば、第１アプリケーションが処理要求に対応する処理を実行している間に、特定した第２アプリケーションが動作するアプリコンテナの起動を行う。
【００９８】
これにより、管理装置１は、例えば、各アプリケーションにおける処理の結果に応じて、次に実行する必要があるアプリケーションが決定される場合であっても、各アプリケーションにおける処理の完了を待つことなく、次に実行する可能性があるアプリケーションが動作するアプリコンテナの起動を行うことが可能になる。そのため、管理装置１は、各アプリケーションの起動に要する時間を短縮することが可能になり、利用者に対する応答時間を短縮させることが可能になる。
【００９９】
なお、情報管理部１１２は、図２１に示すように、「ユーザＩＤ」を有する実行履歴情報１３１を生成するものであってもよい（Ｓ６６、Ｓ７３）。そして、アプリ特定部１１３は、Ｓ２１の処理で受け付けた処理要求に対応するユーザＩＤを特定し、情報格納領域１３０に記憶された実行履歴情報１３１のうち、特定したユーザＩＤが「ユーザＩＤ」に設定された情報のみを参照して処理を行うものであってよい（Ｓ３１等）。
【０１００】
これにより、管理装置１は、起動を行う必要があるアプリケーションをより効率的に決定することが可能になる。そのため、管理装置１は、サービス提供処理の実行に伴う処理負荷を軽減させることが可能になる。
【０１０１】
［第２の実施の形態の詳細］
次に、第２の実施の形態の詳細について説明する。図２２から図２７は、第２の実施の形態におけるサービス提供処理の詳細を説明するフローチャート図である。また、図２８から図３０は、第１の実施の形態におけるサービス提供処理の詳細を説明する図である。図２８から図３０を参照しながら、図２２から図２７に示すサービス提供処理の詳細を説明する。
【０１０２】
第１の実施の形態における管理装置１は、情報格納領域１３０に記憶された実行履歴情報１３１を参照し、Ｓ２１の処理で受け付けた処理要求に対応する処理を行うアプリケーションだけでなく、そのアプリケーションの後に実行される可能性があるアプリケーションの起動を行う。ここで、処理要求に対応する処理を行うアプリケーションの後に実行される可能性があるアプリケーションの数は、処理要求に対応する処理を行うアプリケーションによって膨大になる可能性がある。
【０１０３】
そこで、第２の実施の形態における管理装置１は、例えば、各アプリケーションが過去に起動された回数（以下、累積起動回数とも呼ぶ）を示す情報である起動回数情報１３６を参照し、受け付けた処理要求に対応する処理を行うアプリケーションの後に実行される可能性があるアプリケーションに優先順位を付ける。そして、管理装置１は、管理装置１が起動を行うことができるアプリケーションの数を示す情報である起動可能数情報１３５を参照し、起動を行うアプリケーションの数が起動可能数情報１３５に対応する数に到達するまで、アプリケーションの起動を優先順位が高い順に行う。
【０１０４】
これにより、管理装置１は、管理装置１の処理能力の範囲内で、受け付けた処理要求に対応する処理を行うアプリケーションの後に実行される可能性があるアプリケーションの起動を効率的に行うことが可能になる。以下、第２の実施の形態におけるサービス提供処理の詳細について説明を行う。
【０１０５】
［第２の実施の形態の詳細］
要求受信部１１１は、図２２に示すように、処理要求を受信するまで待機する（Ｓ１２１のＮＯ）。具体的に、要求受信部１１１は、例えば、利用者が利用者端末（図示しない）を介して送信した処理要求を受信するまで待機する。
【０１０６】
そして、処理要求を受信した場合（Ｓ１２１のＹＥＳ）、アプリ特定部１１３は、Ｓ１２１の処理で受信した処理要求の要求元が外部のアプリケーションであるか否かを判定する（Ｓ１２２）。
【０１０７】
その結果、外部のアプリケーションであると判定した場合（Ｓ１２３のＹＥＳ）、アプリ特定部１１３は、図２３に示すように、新たなサービス実行ＩＤを採番する。そして、アプリ特定部１１３は、この場合、情報格納領域１３０に記憶された実行履歴情報１３１のうち、Ｓ１２１の処理で受信した処理要求の要求先を起点する実行履歴情報１３１を特定する（Ｓ１３１）。
【０１０８】
続いて、実行履歴情報１３１が存在した場合（Ｓ１３２のＹＥＳ）、アプリ特定部１１３は、Ｓ１３２の処理で存在した実行履歴情報１３１と、Ｓ１３１の処理で採番したサービス実行ＩＤとを対応付けた起動ツリー情報１３２を生成する。また、アプリ特定部１１３は、生成した起動ツリー情報１３２に含まれるフローＩＤを特定する（Ｓ１３４）。
【０１０９】
一方、実行履歴情報１３１が存在しなかった場合（Ｓ１３２のＮＯ）、アプリ特定部１１３は、Ｓ１２１の処理で受信した処理要求の要求先を示す情報と、Ｓ１３１の処理で採番したサービス実行ＩＤとを対応付けた起動ツリー情報１３２を生成する。そして、アプリ特定部１１３は、生成した起動ツリー情報１３２に含まれるフローＩＤを特定する（Ｓ１３３）。
【０１１０】
続いて、Ｓ１３３またはＳ１３４の処理の後、アプリ特定部１１３は、情報格納領域１３０に記憶されたカウンター情報１３４を「１」に更新する（Ｓ１３５）。
【０１１１】
また、Ｓ１２１の処理で受信した処理要求の要求元が外部のアプリケーションでないと判定した場合（Ｓ１２３のＮＯ）、アプリ特定部１１３は、情報格納領域１３０に記憶された起動ツリー情報１３２に含まれる情報のうち、Ｓ１２１の処理で受信した処理要求の要求元に対応する情報と、Ｓ１２１の処理で受信した処理要求の要求先に対応する情報とが連続して含まれる情報を特定し、特定した情報における要求先の順番をカウンター情報１３４として記憶する（Ｓ１２４）。
【０１１２】
そして、アプリ特定部１１３は、情報格納領域１３０に記憶された起動ツリー情報１３２のうち、Ｓ１２４の処理で特定した情報に含まれるフローＩＤを特定する（Ｓ１２５）。その後、アプリ停止部１１５は、情報格納領域１３０に記憶された起動状態情報１３３を参照し、起動中のアプリケーションのうち、起動を行う必要がないことが決定したアプリケーションを停止する。さらに、アプリ停止部１１５は、情報格納領域１３０に記憶された起動状態情報１３３の更新を行う（Ｓ１２６）。
【０１１３】
次に、Ｓ１２６またはＳ１３５の処理の後、アプリ特定部１１３は、図２４に示すように、Ｓ１２５、Ｓ１３３またはＳ１３４の処理で特定したフローＩＤから未選択のものを１つ特定する（Ｓ１４１）。そして、アプリ特定部１１３は、Ｓ１４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションが起動されているか否かを判定する（Ｓ１４２）。
【０１１４】
その結果、アプリケーションが起動されていると判定した場合（Ｓ１４３のＹＥＳ）、アプリ特定部１１３は、Ｓ１４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションの次からＮ個先までに動作するアプリケーションのうち、情報格納領域１３０に記憶された起動可能数情報１３５が示す数のアプリケーションが動作するアプリコンテナをそれぞれ特定する（Ｓ１４４）。
【０１１５】
具体的に、アプリ特定部１１３は、情報格納領域１３０に記憶された起動回数情報１３６を参照し、起動を行うアプリケーションの数が起動可能数情報１３５に対応する数になるまで、各フローＩＤに対応するアプリケーションごとに、起動を行うアプリケーションの決定を行う。
【０１１６】
そして、アプリ起動部１１４は、Ｓ１４４の処理で特定されたアプリコンテナの起動を行う（Ｓ１４５）。具体的に、アプリ起動部１１４は、Ｓ１４４の処理で特定されたアプリコンテナのうち、起動中のアプリコンテナ及び起動処理を実行しているアプリコンテナ以外のアプリコンテナの起動を行う。以下、起動回数情報１３６の具体例について説明を行う。
【０１１７】
［起動回数情報の具体例］
図２８及び図３０は、起動回数情報１３６の具体例を説明する図である。
【０１１８】
図２８等に示す起動回数情報１３６は、図１４で説明した起動ツリー情報１３２が有する項目に加え、各アプリケーションの過去の実行回数が設定される「回数（１）」、「回数（２）」、「回数（３）」及び「回数（４）」を項目として有する。なお、以下、「回数（１）」、「回数（２）」、「回数（３）」及び「回数（４）」を総称して「回数」とも呼ぶ。
【０１１９】
具体的に、図２８に示す起動回数情報１３６において、「フローＩＤ」が「１」である情報には、「サービス実行ＩＤ」として「１１０１」が設定され、「アプリＩＤ（１）」として「ＡＰ１」が設定され、「回数（１）」として「１０００」が設定され、「アプリＩＤ（２）」として「ＡＰ１２」が設定され、「回数（２）」として「９００」が設定されている。そして、図２８に示す起動回数情報１３６において、「フローＩＤ」が「１」である情報には、「アプリＩＤ（３）」として「ＡＰ２１」が設定され、「回数（３）」として「６００」が設定され、「アプリＩＤ（４）」として「ＡＰ３１」が設定され、「回数（４）」として「６００」が設定されている。図２８に含まれる他の情報については説明を省略する。
【０１２０】
そして、例えば、Ｓ１２１の処理で受信した処理要求の要求元が外部のアプリケーションであって、要求先がアプリケーションＡＰ１である場合、アプリ特定部１１３は、図２８で説明した起動回数情報１３６を参照し、アプリケーションＡＰ１の次の順番のアプリケーションであるアプリケーションＡＰ１２及びＡＰ１３のうち、「回数」に設定された値が大きいアプリケーションＡＰ１２を特定する。その後、アプリ起動部１１４は、例えば、特定したアプリケーションＡＰ１２と、アプリケーションＡＰ１２の次の順番のアプリケーション（アプリケーションＡＰ２１及びＡＰ２２）とを、起動させるアプリケーションとして特定する。
【０１２１】
ここで、例えば、情報格納領域１３０に記憶された起動可能数情報１３５が「３」である場合、アプリ特定部１１３は、起動を行うことが決定したアプリケーションの数が「３」に到達している。そのため、アプリ起動部１１４は、この場合、起動を行うアプリケーションの特定を終了する。一方、例えば、情報格納領域１３０に記憶された起動可能数情報１３５が「６」である場合、アプリ特定部１１３は、情報格納領域１３０に記憶された起動回数情報１３６をさらに参照し、アプリケーションＡＰ１３と、アプリケーションＡＰ１３の次の順番のアプリケーション（アプリケーションＡＰ２３及びＡＰ２４）とを、起動させるアプリケーションとして特定する。
【０１２２】
図２４に戻り、アプリ起動部１１４は、情報格納領域１３０に記憶された起動状態情報１３３のうち、Ｓ１４４の処理または後述するＳ１５２の処理で起動を行ったアプリケーションに対応する情報を更新する（Ｓ１４６）。
【０１２３】
具体的に、例えば、Ｓ１４４の処理においてアプリケーションＡＰ１２、ＡＰ２１及びＡＰ２２が特定された場合、アプリ起動部１１４は、図２９に示すように、Ｓ１２１の処理で受信した処理要求に対応する処理を行うアプリケーションＡＰ１１だけでなく、アプリケーションＡＰ１２、ＡＰ２１及びＡＰ２２に対応する「状態」が「起動中」になるように、情報格納領域１３０に記憶された起動状態情報１３３の更新を行う。
【０１２４】
そして、図２６に示すように、Ｓ１２５、Ｓ１３３またはＳ１３４の処理で特定したフローＩＤの全てが選択されていない場合（Ｓ１６１のＮＯ）、アプリ特定部１１３は、Ｓ１４１以降の処理を再度行う。一方、Ｓ１２５、Ｓ１３３またはＳ１３４の処理で特定したフローＩＤの全てが選択されている場合（Ｓ１６１のＹＥＳ）、管理装置１は、Ｓ１６２以降の処理を行う。
【０１２５】
また、Ｓ１４３の処理において、アプリケーションが起動していないと判定した場合（Ｓ１４３のＮＯ）、アプリ特定部１１３は、図２５に示すように、Ｓ１２１の処理で受信した処理要求を情報格納領域１３０に記憶された要求キュー（図示しない）に記憶する（Ｓ１５１）。
【０１２６】
続いて、アプリ特定部１１３は、Ｓ１４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションと、そのアプリケーションの次からＮ個先までのアプリケーションとが動作するアプリコンテナのうち、起動可能数情報１３５が示す数のアプリケーションが動作するアプリコンテナを特定する（Ｓ１５２）。具体的に、アプリ特定部１１３は、Ｓ１４４の処理で説明した場合と同様に、アプリコンテナの特定を行う。
【０１２７】
その後、アプリ起動部１１４は、Ｓ１５２の処理で特定したアプリコンテナの起動を行う（Ｓ１５３）。具体的に、アプリ起動部１１４は、Ｓ１５２の処理で特定されたアプリコンテナのうち、起動中のアプリコンテナ及び起動処理を実行しているアプリコンテナ以外のアプリコンテナの起動を行う。
【０１２８】
そして、カウンター情報１３４が示す順番のアプリケーションの起動が完了している場合（Ｓ１５４のＹＥＳ）、アプリ起動部１１４は、Ｓ１４６以降の処理を行う。一方、カウンター情報１３４が示す順番のアプリケーションの起動が完了していない場合（Ｓ１５４のＮＯ）、アプリ起動部１１４は、Ｓ１４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションの起動を再度行う（Ｓ１５５）。
【０１２９】
次に、図２６のＳ１６２以降の処理について説明を行う。要求受信部１１１は、Ｓ１４１の処理で特定したフローＩＤにおいて、カウンター情報１３４が示す順番のアプリケーションに対し、Ｓ１２１の処理で受信した処理要求を送信する（Ｓ１６２）。
【０１３０】
そして、Ｓ１２１の処理で受信した処理要求の要求元が外部のアプリケーションである場合(Ｓ１６３のＹＥＳ）、情報管理部１１２は、Ｓ１２１で受信した処理要求の要求先が先頭である実行履歴情報１３１が存在するか否かを判定する（Ｓ１６４）。
【０１３１】
その結果、実行履歴情報１３１が存在しないと判定した場合（Ｓ１６５のＮＯ）、情報管理部１１２は、Ｓ１２１の処理で受信した処理要求の要求先を先頭とする実行履歴情報１３１を生成する。また、情報管理部１１２は、この場合、Ｓ１２１の処理で受信した処理要求の要求先に対応する起動回数情報１３６として０（初期値）を記憶する（Ｓ１６６）。
【０１３２】
一方、実行履歴情報１３１が存在すると判定した場合（Ｓ１６５のＹＥＳ）、情報管理部１１２は、新たな実行履歴情報１３１を生成する必要がないと判定し、Ｓ１６６の処理を行わない。
【０１３３】
また、Ｓ１６３の処理において、Ｓ１２１の処理で受信した処理要求の要求元が外部のアプリケーションでない場合(Ｓ１６３のＮＯ）、情報管理部１１２は、図２７に示すように、Ｓ１２１の処理で受信した処理要求の要求先を含む実行履歴情報１３１が存在するか否かを判定する（Ｓ１７１）。
【０１３４】
その結果、実行履歴情報１３１が存在しないと判定した場合（Ｓ１７２のＮＯ）、情報管理部１１２は、情報格納領域１３０に記憶された実行履歴情報１３１から、Ｓ１２１の処理で受信した処理要求の要求元が最後のアプリケーションである情報を特定する。
【０１３５】
そして、情報管理部１１２は、特定した情報において、Ｓ１２１の処理で受信した処理要求の要求元の次のアプリケーションとして、Ｓ１２１の処理で受信した処理要求の要求先を追加する。また、情報管理部１１２は、Ｓ１２１の処理で受信した処理要求の要求先に対応する起動回数情報１３６として０（初期値）を記憶する（Ｓ１７３）。
【０１３６】
一方、実行履歴情報１３１が存在すると判定した場合（Ｓ１７２のＹＥＳ）、情報管理部１１２は、新たな実行履歴情報１３１を生成する必要がないと判定し、Ｓ１７２の処理を行わない。
【０１３７】
その後、情報管理部１１２は、Ｓ１２１の処理で受信した処理要求の要求先に対応する起動回数情報１３６に１を加算する（Ｓ１７４）。
【０１３８】
具体的に、図２８で説明した起動回数情報１３６において、「アプリＩＤ」に「ＡＰ１」が設定された情報の「回数」には、それぞれ「１０００」が設定されている。そのため、例えば、Ｓ１２１の処理において受信した処理要求の要求先がアプリケーションＡＰ１である場合、情報管理部１１２は、図３０に示すように、「アプリＩＤ」に「ＡＰ１」が設定された情報の「回数」にそれぞれ「１００１」を設定する。
【０１３９】
これにより、管理装置１は、管理装置１の処理能力の範囲内で、受け付けた処理要求に対応する処理を行うアプリケーションの後に実行される可能性があるアプリケーションの起動を行うことが可能になる。
【０１４０】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１４１】
（付記１）
処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶し、
新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定し、
特定した前記第２アプリケーションを起動させる、
処理をコンピュータに実行させることを特徴とするサービス提供プログラム。
【０１４２】
（付記２）
付記１において、
前記起動させる処理では、前記第２アプリケーションの起動を、前記新たな処理要求の次の処理要求を受信する前に行わせる、
ことを特徴とするサービス提供プログラム。
【０１４３】
（付記３）
付記１において、
前記特定する処理では、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれているか否かを判定し、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていると判定した場合に、前記第２アプリケーションの特定を行う、
ことを特徴とするサービス提供プログラム。
【０１４４】
（付記４）
付記３において、
前記特定する処理では、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていないと判定した場合、前記新たな処理要求に含まれる情報を参照して、前記第１アプリケーションの直前に実行した第３アプリケーションが存在するか否かを判定し、さらに、
前記第３アプリケーションが存在すると判定した場合、前記第１アプリケーションが前記第３アプリケーションの後に実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶し、前記第３アプリケーションが存在しないと判定した場合、前記第１アプリケーションが実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶する、
処理を前記コンピュータに実行させることを特徴とするサービス提供プログラム。
【０１４５】
（付記５）
付記１において、
前記起動させる処理では、前記第２アプリケーションが起動していない場合に、前記第２アプリケーションの起動を行う、
ことを特徴とするサービス提供プログラム。
【０１４６】
（付記６）
付記１において、
前記特定する処理では、起動可能なアプリケーション数を示す起動可能数情報が記憶された記憶部を参照して、前記第１アプリケーションの後の順序に対応する前記起動可能なアプリケーション数のアプリケーションを前記第２アプリケーションとして特定する、
ことを特徴とするサービス提供プログラム。
【０１４７】
（付記７）
付記４において、さらに、
前記起動させる処理の後、前記第１アプリケーションの実行に伴って第４アプリケーションが実行した場合、前記実行履歴情報に情報が含まれるアプリケーションのうち、前記第４アプリケーション及び前記第４アプリケーションの後の順序に対応するすべてのアプリケーションを特定し、
起動させた前記第２アプリケーションのうち、特定した前記アプリケーション以外のアプリケーションを停止する、
処理を前記コンピュータに実行させることを特徴とするサービス提供プログラム。
【０１４８】
（付記８）
付記１において、さらに、
前記起動させる処理の後、起動させた前記第２アプリケーションごとの累積起動回数を示す起動回数情報を前記記憶部に記憶する、
処理を前記コンピュータに実行させ、
前記起動させる処理では、前記記憶部に記憶された前記起動回数情報を参照して、前記累積起動回数が多いアプリケーションを優先して、前記第２アプリケーションのうちの所定数のアプリケーションの起動を行う、
処理を前記コンピュータに実行させることを特徴とするサービス提供プログラム。
【０１４９】
（付記９）
付記１において、
前記記憶する処理では、処理要求を送信したユーザごとに、各ユーザが送信した処理要求の受信に伴って実行したアプリケーションに対応する前記実行履歴情報の記憶を行い、
前記特定する処理では、前記実行履歴情報のうち、前記新たな処理要求を送信したユーザに対応する情報を参照し、前記第２アプリケーションの特定を行う、
ことを特徴とするサービス提供プログラム。
【０１５０】
（付記１０）
処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶する情報管理部と、
新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定するアプリ特定部と、
特定した前記第２アプリケーションを起動させるアプリ起動部と、を有する、
ことを特徴とするサービス提供装置。
【０１５１】
（付記１１）
付記１０において、
前記アプリ特定部は、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれているか否かを判定し、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていると判定した場合に、前記第２アプリケーションの特定を行う、
ことを特徴とするサービス提供装置。
【０１５２】
（付記１２）
付記１１において、
前記アプリ特定部は、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていないと判定した場合、前記新たな処理要求に含まれる情報を参照して、前記第１アプリケーションの直前に実行させた第３アプリケーションが存在するか否かを判定し、さらに、
前記第３アプリケーションが存在すると判定した場合、前記第１アプリケーションが前記第３アプリケーションの後に実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶し、前記第３アプリケーションが存在しないと判定した場合、前記第１アプリケーションが実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶する、
ことを特徴とするサービス提供装置。
【０１５３】
（付記１３）
処理要求の受信に伴って第１アプリケーションが実行し、前記第１アプリケーションの実行に伴って第２アプリケーションが実行したときに、前記第２アプリケーションを前記第１アプリケーションの後の順序に対応付けた情報である実行履歴情報を記憶部に記憶し、
新たな処理要求の受信に伴って前記第１アプリケーションが再度実行したときに、前記実行履歴情報を参照し、前記第１アプリケーションの後の順序に対応する前記第２アプリケーションを特定し、
特定した前記第２アプリケーションを起動させる、
ことを特徴とするサービス提供方法。
【０１５４】
（付記１４）
付記１３において、
前記特定する工程では、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれているか否かを判定し、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていると判定した場合に、前記第２アプリケーションの特定を行う、
ことを特徴とするサービス提供方法。
【０１５５】
（付記１５）
付記１４において、
前記特定する工程では、
前記第１アプリケーションが実行されたことを示す情報が前記実行履歴情報に含まれていないと判定した場合、前記新たな処理要求に含まれる情報を参照して、前記第１アプリケーションの直前に実行させた第３アプリケーションが存在するか否かを判定し、さらに、
前記第３アプリケーションが存在すると判定した場合、前記第１アプリケーションが前記第３アプリケーションの後に実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶し、前記第３アプリケーションが存在しないと判定した場合、前記第１アプリケーションが実行されたことを示す情報を、前記実行履歴情報の少なくとも一部として前記記憶部に記憶する、
ことを特徴とするサービス提供方法。
【符号の説明】
【０１５６】
１：管理装置              ２：物理マシン
３：コンテナ              ４：コンテナ型仮想化ソフトウエア
５：事業者端末
【図１】
2019012495.tif 000003
【図２】
2019012495.tif 000004
【図３】
2019012495.tif 000005
【図４】
2019012495.tif 000006
【図５】
2019012495.tif 000007
【図６】
2019012495.tif 000008
【図７】
2019012495.tif 000009
【図８】
2019012495.tif 000010
【図９】
2019012495.tif 000011
【図１０】
2019012495.tif 000012
【図１１】
2019012495.tif 000013
【図１２】
2019012495.tif 000014
【図１３】
2019012495.tif 000015
【図１４】
2019012495.tif 000016
【図１５】
2019012495.tif 000017
【図１６】
2019012495.tif 000018
【図１７】
2019012495.tif 000019
【図１８】
2019012495.tif 000020
【図１９】
2019012495.tif 000021
【図２０】
2019012495.tif 000022
【図２１】
2019012495.tif 000023
【図２２】
2019012495.tif 000024
【図２３】
2019012495.tif 000025
【図２４】
2019012495.tif 000026
【図２５】
2019012495.tif 000027
【図２６】
2019012495.tif 000028
【図２７】
2019012495.tif 000029
【図２８】
2019012495.tif 000030
【図２９】
2019012495.tif 000031
【図３０】
2019012495.tif 000032