(57)【要約】      （修正有）【課題】サーバのサービスに対する負荷の変動に、より的確に対応する情報処理装置、情報処理プログラム、情報処理方法及び情報処理システムを提供する。【解決手段】情報処理装置は、端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、通知に基づいて、サービスのスケーリングを実行するスケーラとを有する。所定動作タイミングは、サービスにアクセスするプログラムの起動タイミングであってもよい。所定動作タイミングは、サービスにアクセスするプログラムのダウンロードに用いられるローダの起動タイミングであってもよい。【選択図】図９
2018128866.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、
前記通知に基づいて、前記サービスのスケーリングを実行するスケーラと
を有する情報処理装置。
【請求項２】
前記所定動作タイミングは、前記サービスにアクセスするプログラムの起動タイミングである
請求項１記載の情報処理装置。
【請求項３】
前記スケーラは、
前記通知に基づいて、前記プログラムが起動された前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項２記載の情報処理装置。
【請求項４】
前記受信部は、前記プログラムの停止タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、前記プログラムが動作している前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項２記載の情報処理装置。
【請求項５】
前記所定動作タイミングは、前記端末装置の起動タイミングである
請求項１記載の情報処理装置。
【請求項６】
前記スケーラは、
前記通知に基づいて、起動された前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項５記載の情報処理装置。
【請求項７】
前記受信部は、前記端末装置の停止タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、動作している前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項５記載の情報処理装置。
【請求項８】
前記所定動作タイミングは、前記サービスにアクセスするプログラムのダウンロードに用いられるローダの起動タイミングである
請求項１記載の情報処理装置。
【請求項９】
前記スケーラは、
前記通知に基づいて、前記ローダが起動された前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項８記載の情報処理装置。
【請求項１０】
前記受信部は、前記ローダの停止タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、前記ローダが動作している前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項８記載の情報処理装置。
【請求項１１】
前記所定動作タイミングは、前記サービスにアクセスするプログラムのダウンロードの開始タイミングである
請求項１記載の情報処理装置。
【請求項１２】
前記スケーラは、
前記通知に基づいて、前記ダウンロードを開始した前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項１１記載の情報処理装置。
【請求項１３】
前記受信部は、前記ダウンロードの完了タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、前記ダウンロードを行っている前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する請求項１１記載の情報処理装置。
【請求項１４】
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信し、
前記通知に基づいて、前記サービスのスケーリングを実行する
処理をコンピュータに実行させる情報処理プログラム。
【請求項１５】
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信し、
前記通知に基づいて、前記サービスのスケーリングを実行する
処理を含み、コンピュータにより実行される情報処理方法。
【請求項１６】
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、
前記通知に基づいて、前記サービスのスケーリングを実行するスケーラと
を有する情報処理システム。
【請求項１７】
サービスを利用する前段階の所定動作タイミングを示す通知を送信する端末装置と、
前記端末装置から、前記通知を受信する受信部と、
前記通知に基づいて、前記サービスのスケーリングを実行するスケーラと
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケーリングの技術に関する。
【背景技術】
【０００２】
端末装置のアプリケーションからサーバ装置のサービスへのアクセスが集中すると応答性能が劣化する。このような事態に対応するために、例えばアプリケーションからのアクセス数の増加に応じて、スケールアウトによってサービスに相当するインスタンスを増やす技術がある。この技術によれば、各インスタンスに負荷を分散させて、応答性能を回復させることができる。
【０００３】
但し、スケールアウトの実行には時間を要するので、例えば急激なアクセスの集中には対応できないことがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１４１５７４号公報
【特許文献２】特開平１０−２８３２０９号公報
【特許文献３】特開２０１１−１３８２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、一側面では、サービスに対する負荷の変動に、より的確に対応することである。
【課題を解決するための手段】
【０００６】
一態様に係る情報処理装置は、（Ａ）端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、（Ｂ）上記通知に基づいて、サービスのスケーリングを実行するスケーラとを有する。
【発明の効果】
【０００７】
一側面としては、サービスに対する負荷の変動に、より的確に対応することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、ネットワーク構成例を示す図である。
【図２】図２は、ネットワーク構成例を示す図である。
【図３】図３は、ネットワーク構成例を示す図である。
【図４】図４は、ネットワーク構成例を示す図である。
【図５】図５は、端末装置のモジュール構成例を示す図である。
【図６】図６は、アプリケーションテーブルの例を示す図である。
【図７】図７は、端末装置のモジュール構成例を示す図である。
【図８】図８は、通知処理（Ａ）フローを示す図である。
【図９】図９は、サーバシステムのモジュール構成例を示す図である。
【図１０】図１０は、サービステーブルの例を示す図である。
【図１１】図１１は、ルーティングテーブルの例を示す図である。
【図１２】図１２は、メイン処理（Ａ）フローを示す図である。
【図１３】図１３は、サブルーチン処理（Ａ）フローを示す図である。
【図１４】図１４は、実施の形態２におけるアプリケーションテーブルの例を示す図である。
【図１５】図１５は、通知処理（Ｂ）フローを示す図である。
【図１６】図１６は、メイン処理（Ｂ）フローを示す図である。
【図１７】図１７は、サブルーチン処理（Ｂ）フローを示す図である。
【図１８】図１８は、サブルーチン処理（Ｂ）フローを示す図である。
【図１９】図１９は、実施の形態３における端末装置のモジュール構成例を示す図である。
【図２０】図２０は、通知処理（Ｃ）フローを示す図である。
【図２１】図２１は、メイン処理（Ｃ）フローを示す図である。
【図２２】図２２は、通知処理（Ｄ）フローを示す図である。
【図２３】図２３は、メイン処理（Ｄ）フローを示す図である。
【図２４】図２４は、実施の形態５における端末装置のモジュール構成例を示す図である。
【図２５】図２５は、通知処理（Ｅ）フローを示す図である。
【図２６】図２６は、実施の形態５におけるサーバシステムのモジュール構成例を示す図である。
【図２７】図２７は、メイン処理（Ｅ）フローを示す図である。
【図２８】図２８は、通知処理（Ｆ）フローを示す図である。
【図２９】図２９は、メイン処理（Ｆ）フローを示す図である。
【図３０】図３０は、ローダの処理（Ａ）フローを示す図である。
【図３１】図３１は、第１割り込み処理フローを示す図である。
【図３２】図３２は、メイン処理（Ｇ）フローを示す図である。
【図３３】図３３は、ローダの処理（Ｂ）フローを示す図である。
【図３４】図３４は、第２割り込み処理フローを示す図である。
【図３５】図３５は、メイン処理（Ｈ）フローを示す図である。
【図３６】図３６は、実施の形態１４におけるサービステーブルの例を示す図である。
【図３７】図３７は、サブルーチン処理（Ｃ）フローを示す図である。
【図３８】図３８は、サブルーチン処理（Ｄ）フローを示す図である。
【図３９】図３９は、サブルーチン処理（Ｄ）フローを示す図である。
【図４０】図４０は、無線通信手段を備えた端末装置のハードウエア構成例である。
【図４１】図４１は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
［実施の形態１］
前提となるネットワーク構成の例を４つ示す。図１に示したネットワーク構成例について説明する。この例における端末装置１０５は、無線通信手段を備えた装置（例えば、スマートフォン）である。端末装置１０５は、移動体通信網及びインターネットを介してサーバシステム１０１に接続する。サーバシステム１０１は、一又は複数のサーバ装置１０３を有している。
【００１０】
図２に示したネットワーク構成例について説明する。この例における端末装置１０５も、無線通信手段を備えた装置である。端末装置１０５は、無線ＬＡＮ（Local Area Network）を介してサーバシステム１０１に接続する。図１の場合と同様に、サーバシステム１０１は、一又は複数のサーバ装置１０３を有している。
【００１１】
図３に示したネットワーク構成例について説明する。この例における端末装置１０５は、有線通信手段を備えた装置（例えば、パーソナルコンピュータ）である。端末装置１０５は、インターネットを介してサーバシステム１０１に接続する。図１の場合と同様に、サーバシステム１０１は、一又は複数のサーバ装置１０３を有している。
【００１２】
図４に示したネットワーク構成例について説明する。この例における端末装置１０５も、有線通信手段を備えた装置である。端末装置１０５は、有線ＬＡＮを介してサーバシステム１０１に接続する。図１の場合と同様に、サーバシステム１０１は、一又は複数のサーバ装置１０３を有している。
【００１３】
本実施の形態では、アプリケーションが起動された端末装置１０５の数に基づいて、スケールアウトの要否を判定する例について説明する。
【００１４】
図５に、端末装置１０５のモジュール構成例を示す。端末装置１０５は、ＯＳ（Operating System）５０１、アプリケーション５０３、通信部５０５、アプリケーションテーブル記憶部５０７、検出部５０９及び送信部５１１を有する。
【００１５】
アプリケーション５０３は、サーバシステム１０１のサービスを利用するプログラムである。この例におけるアプリケーション５０３は、ＯＳ５０１の環境で動作する。アプリケーション５０３は、通信部５０５を介してリクエストをサーバシステム１０１へ送信し、サーバシステム１０１から通信部５０５を介してレスポンスを受信する。アプリケーションテーブル記憶部５０７は、アプリケーションテーブルを記憶する。アプリケーションテーブルについては、図６を用いて後述する。検出部５０９は、例えばアプリケーション５０３の起動を検出する。送信部５１１は、通知をサーバシステム１０１へ送信する。送信部５１１は、モバイル管理エージェントであってもよい。
【００１６】
上述した通信部５０５、検出部５０９及び送信部５１１は、ハードウエア資源（例えば、図４０又は図４１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００１７】
上述したアプリケーションテーブル記憶部５０７は、ハードウエア資源（例えば、図４０又は図４１）を用いて実現される。
【００１８】
図６に、アプリケーションテーブルの例を示す。この例におけるアプリケーションテーブルは、既にインストールされているアプリケーション５０３に対応するレコード（以下、アプリケーションレコードという。）を有している。アプリケーションレコードは、アプリケーション名が格納されるフィールドと、サービス識別子が格納されるフィールドとを有している。
【００１９】
アプリケーション名は、当該アプリケーション５０３の名前である。サービス識別子は、当該アプリケーション５０３が利用するサービスを識別する。サービス識別子は、例えば当該サービスのＵＲＬ、当該サービスの名前又は当該サービスに割り当てられた番号である。アプリケーション５０３が、複数のサービスを利用する場合には、それぞれのサービスの識別子が格納される。
【００２０】
図７に、端末装置１０５のモジュール構成の別の例を示す。アプリケーション基盤７０１は、アプリケーション５０３が実行される環境を提供する。つまり、アプリケーション５０３は、アプリケーション基盤７０１によって提供される実行環境において動作する。このような構成においては、ＯＳ５０１の種類に依存せずに、アプリケーション５０３が実行される。
【００２１】
上述したアプリケーション基盤７０１は、ハードウエア資源（例えば、図４０又は図４１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２２】
続いて、端末装置１０５における通知処理について説明する。本実施の形態では、通知処理（Ａ）が実行される。図８に、通知処理（Ａ）フローを示す。検出部５０９は、アプリケーション５０３の起動を検出したか否かを判定する（Ｓ８０１）。例えば、検出部５０９は、ＯＳ５０１からプロセスの名前を取得し、新たに動作を開始したプロセスの名前がアプリケーション５０３の名前と一致する場合に、アプリケーション５０３の起動を検出する。アプリケーション５０３の起動を検出していないと判定した場合には、Ｓ８０１の処理を繰り返す。
【００２３】
一方、アプリケーション５０３の起動を検出したと判定した場合には、検出部５０９は、アプリケーションレコードに基づいて、起動されたアプリケーション５０３に対応するサービス識別子を特定する（Ｓ８０３）。そして、送信部５１１は、アプリケーション起動の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ８０５）。そして、Ｓ８０１に示した処理に戻って、上述した処理を繰り返す。
【００２４】
続いて、サーバシステム１０１について説明する。図９に、サーバシステム１０１のモジュール構成例を示す。サーバシステム１０１は、サービス基盤９０１、通信部９０５、ロードバランサ９０７、ルーティングテーブル記憶部９０９、オートスケーラ９１１及び受信部９１３を有する。
【００２５】
サービス基盤９０１は、サービスがインスタンスとして動作する環境を提供する。サービス基盤９０１は、例えばＰａａＳ（Platform as a Service）又はＢａａＳ（Backend as a Service）であってもよい。サービス基盤９０１の実行環境には、同じサービスについて、一又は複数のインスタンスが設けられる。サービスの内容は、限定されない。サービスは、Ｗｅｂサーバの機能であってもよい。サービスは、アプリケーションサーバの機能であってもよい。サービスは、データベースサーバの機能であってもよい。サービスは、Ｗｅｂサーバの機能及びアプリケーションサーバの機能であってもよい。サービスは、アプリケーションサーバの機能及びデータベースサーバの機能であってもよい。サービスは、Ｗｅｂサーバの機能、アプリケーションサーバの機能及びデータベースサーバの機能であってもよい。
【００２６】
通信部９０５は、サービスへのリクエストを受信し、サービスからのレスポンスを送信する。ロードバランサ９０７は、通信部９０５において受信したリクエストを、ルーティングテーブルに基づいてサービスのインスタンスに振り分ける。ルーティングテーブル記憶部９０９は、ルーティングテーブルを記憶する。ルーティングテーブルについては、図１１を用いて後述する。オートスケーラ９１１は、自動的にスケーリングを行う。受信部９１３は、各種通知を受信する。受信部９１３は、モバイル管理サーバであってもよい。
【００２７】
オートスケーラ９１１は、算出部９１５、サービステーブル記憶部９１７、判定部９１９、スケーリング部９２１、更新部９２３及び監視部９２５を有する。算出部９１５は、所定動作タイミングに至った端末装置１０５の数、或いは所定動作を行っている端末装置１０５の数を算出する。サービステーブル記憶部９１７は、サービステーブルを記憶する。サービステーブルについては、図１０を用いて後述する。判定部９１９は、スケーリングの要否を判定する。スケーリング部９２１は、スケーリングを実行する。更新部９２３は、スケーリングに応じてルーティングテーブルを更新する。監視部９２５は、サービスに対するアクセスを監視し、直近のアクセス数を算出する。直近のアクセス数は、所定の時間長の期間におけるアクセスの数であって、サービステーブルに設定される。
【００２８】
上述したサービス基盤９０１、通信部９０５、ロードバランサ９０７、オートスケーラ９１１、受信部９１３、算出部９１５、判定部９１９、スケーリング部９２１、更新部９２３及び監視部９２５は、ハードウエア資源（例えば、図４１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２９】
上述したルーティングテーブル記憶部９０９及びサービステーブル記憶部９１７は、ハードウエア資源（例えば、図４１）を用いて実現される。
【００３０】
図１０に、サービステーブルの例を示す。この例におけるサービステーブルは、サービスに対応するレコード（以下、サービスレコードという。）を有している。サービスレコードは、サービス識別子が格納されるフィールドと、端末装置数のカウンタと、直近のアクセス数のカウンタと、インスタンス数に対応する下限値が格納されるフィールドと、インスタンス数に対応する上限値が格納されるフィールドとを有している。
【００３１】
サービス識別子は、例えば当該サービスのＵＲＬ、当該サービスの名前又は当該サービスに割り当てられた番号である。端末装置数のカウンタは、後述するメイン処理において算出される端末装置１０５の数を記憶する。直近のアクセス数のカウンタは、直近の期間において受け付けたアクセスの数を記憶する。インスタンス数に対応する下限値は、当該インスタンス数のインスタンスが設けられている場合に、所定時間内において受け付けるアクセス数の適性範囲の下限を示す。インスタンス数に対応する上限値は、当該インスタンス数のインスタンスが設けられている場合に、所定時間内において受け付けるアクセス数の適性範囲の上限を示す。
【００３２】
上述したモジュールを１つのサーバ装置１０３に含めるようにしてもよい。或いは、上述したモジュールを複数のサーバ装置１０３の各々で分担するようにしてもよい。サービス基盤９０１、サービス基盤９０１による実行環境、通信部９０５、ロードバランサ９０７及びルーティングテーブル記憶部９０９を１つのサーバ装置１０３として独立させるようにしてもよい。オートスケーラ９１１を１つのサーバ装置１０３として独立させるようにしてもよい。受信部９１３を１つのサーバ装置１０３として独立させるようにしてもよい。但し、分担の仕方は、任意である。
【００３３】
図１１に、ルーティングテーブルの例を示す。この例におけるルーティングテーブルは、サービスに対応するレコードを有している。ルーティングテーブルのレコードは、サービス識別子が格納されるフィールドと、インターフェース識別子が格納されるフィールドとを有している。
【００３４】
インターフェース識別子は、インスタンスの数だけ設けられる。インターフェース識別子は、当該サービスに相当する各インスタンスにおけるインターフェースを特定する。インターフェース識別子は、例えばポート番号又はＩＰ（Internet Protocol）アドレスである。
【００３５】
続いて、サーバシステム１０１の動作について説明する。本実施の形態におけるサーバシステム１０１は、メイン処理（Ａ）を実行する。図１２に、メイン処理（Ａ）フローを示す。算出部９１５は、各サービスレコードにおける端末装置数のカウンタをリセットする（Ｓ１２０１）。算出部９１５は、時間計測を開始する（Ｓ１２０３）。
【００３６】
算出部９１５は、受信部９１３において、端末装置１０５からアプリケーション起動の通知を受信したか否かを判定する（Ｓ１２０５）。アプリケーション起動の通知を受信していないと判定した場合には、Ｓ１２０９に移る。
【００３７】
一方、アプリケーション起動の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ１２０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタに１を加える。
【００３８】
尚、アプリケーション起動の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、サービスにアクセスするプログラム（アプリケーション５０３）の起動タイミングが、所定動作タイミングに相当する。
【００３９】
算出部９１５は、Ｓ１２０３の処理から所定時間が経過したか否かを判定する（Ｓ１２０９）。未だ所定時間が経過していないと判定した場合には、Ｓ１２０５に示した処理に戻って、上述した処理を繰り返す。
【００４０】
所定時間が経過したと判定した場合には、オートスケーラ９１１は、サブルーチン処理（Ａ）を実行する（Ｓ１２１１）。
【００４１】
図１３に、サブルーチン処理（Ａ）フローを示す。判定部９１９は、サービスを１つ特定する（Ｓ１３０１）。具体的には、判定部９１９は、サービスレコードを１つ特定する。
【００４２】
判定部９１９は、閾値を算出する（Ｓ１３０３）。例えば、判定部９１９は、現在のインスタンス数におけるアクセス数の上限値から直近のアクセス数を引いた値に所定の係数を乗じて、閾値を求める。所定の係数は、例えば１より小さい値である。但し、所定の係数は、１であってもよい。或いは、所定の係数は、１より大きくてもよい。
【００４３】
判定部９１９は、当該サービスレコードの端末装置数のカウンタが閾値を超えているか否かを判定する（Ｓ１３０５）。端末装置数が閾値を超えていないと判定した場合には、Ｓ１３１３に移る。
【００４４】
一方、端末装置数が閾値を超えていると判定した場合には、スケールアウト処理を行う。そのため、判定部９１９は、インスタンスの増加数を求める（Ｓ１３０７）。例えば、判定部９１９は、サービステーブルに基づいて、端末装置数が該当するアクセス数の範囲に相当するインスタンス数を特定して、そのインスタンス数から現在のインスタンス数を引くことによって増加数を求める。
【００４５】
スケーリング部９２１は、増加数に応じたスケールアウト処理を起動する（Ｓ１３０９）。つまり、スケーリング部９２１は、サービスのインスタンスを増やす処理を行う。
【００４６】
更新部９２３は、ルーティングテーブルを更新する（Ｓ１３１１）。つまり、更新部９２３は、新たに設けられたインスタンスにおけるインターフェース識別子をルーティングテーブルに加える。
【００４７】
判定部９１９は、未処理のサービスがあるか否かを判定する（Ｓ１３１３）。未処理のサービスがあると判定した場合には、Ｓ１３０１に示した処理に戻って、上述した処理を繰り返す。一方、未処理のサービスがないと判定した場合には、サブルーチン処理（Ａ）を終えて、呼び出し元のメイン処理（Ａ）に復帰する。
【００４８】
図１２に示したメイン処理（Ａ）の説明に戻る。サブルーチン処理（Ａ）から復帰すると、Ｓ１２０１に示した処理に戻って、上述した処理を繰り返す。
【００４９】
本実施の形態によれば、アプリケーション５０３が起動された端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。
【００５０】
或る例では、アプリケーション５０３が起動された端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、アプリケーション５０３が起動された端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。
【００５１】
尚、サービスとは、例えばサーバシステム１０１がクライアントであるアプリケーション５０３に提供する機能のことである。アクセスとは、例えばサーバシステム１０１へ機能の提供を要求するメッセージを送信することである。或る動作のタイミングは、例えば当該動作を検出した時点、当該動作の指示を受け付けた時点、当該動作を開始した時点、当該動作を行っている間の時点、或いは当該動作を終了した時点を意味する。
【００５２】
［実施の形態２］
本実施の形態では、アプリケーション５０３が動作している端末装置１０５の数に基づいて、スケールアウトの要否及びスケールインの要否を判定する例について説明する。
【００５３】
本実施の形態では、アプリケーションテーブルにおいてアプリケーション５０３の状態を管理する。図１４に、実施の形態２におけるアプリケーションテーブルの例を示す。アプリケーションレコードは、アプリケーション名が格納されるフィールドと、サービス識別子が格納されるフィールドとに加えて、状態が設定されるフィールドとを有している。
【００５４】
状態のフィールドには、「動作中」又は「停止中」が設定される。「動作中」は、当該アプリケーション５０３が動作している状態であることを示す。「停止中」は、当該アプリケーション５０３が停止している状態であることを示す。
【００５５】
本実施の形態における端末装置１０５は、通知処理（Ｂ）を実行する。図１５に、通知処理（Ｂ）フローを示す。検出部５０９は、アプリケーション５０３の起動を検出したか否かを判定する（Ｓ１５０１）。アプリケーション５０３の起動を検出していないと判定した場合には、Ｓ１５０９の処理に移る。
【００５６】
アプリケーション５０３の起動を検出したと判定した場合には、検出部５０９は、アプリケーションレコードにおける状態のフィールドに「動作中」を設定する（Ｓ１５０３）。検出部５０９は、アプリケーションレコードに基づいて、起動されたアプリケーション５０３に対応するサービス識別子を特定する（Ｓ１５０５）。そして、送信部５１１は、アプリケーション起動の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ１５０７）。
【００５７】
検出部５０９は、アプリケーション５０３の停止を検出したか否かを判定する（Ｓ１５０９）。例えば、検出部５０９は、ＯＳ５０１からプロセスの名前を取得し、動作を終えたプロセスの名前がアプリケーション５０３の名前と一致する場合に、アプリケーション５０３の停止を検出する。アプリケーション５０３の停止を検出していないと判定した場合には、Ｓ１５０１に示した処理に戻って、上述した処理を繰り返す。
【００５８】
アプリケーション５０３の停止を検出したと判定した場合には、検出部５０９は、アプリケーションレコードにおける状態のフィールドに「停止中」を設定する（Ｓ１５１１）。検出部５０９は、アプリケーションレコードに基づいて、停止したアプリケーション５０３に対応するサービス識別子を特定する（Ｓ１５１３）。送信部５１１は、アプリケーション停止の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ１５１５）。そして、Ｓ１５０１に示した処理に戻って、上述した処理を繰り返す。
【００５９】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｂ）を実行する。図１６に、メイン処理（Ｂ）フローを示す。尚、メイン処理（Ｂ）が開始される時点で、各サービスレコードにおける端末装置数のカウンタは０であるものとする。
【００６０】
算出部９１５は、受信部９１３において、端末装置１０５からアプリケーション起動の通知を受信したか否かを判定する（Ｓ１６０１）。アプリケーション起動の通知を受信していないと判定した場合には、Ｓ１６０５の処理に移る。
【００６１】
尚、アプリケーション起動の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、サービスにアクセスするプログラム（アプリケーション５０３）の起動タイミングが、所定動作タイミングに相当する。
【００６２】
一方、アプリケーション起動の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ１６０３）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタに１を加える。
【００６３】
算出部９１５は、受信部９１３において、端末装置１０５からアプリケーション停止の通知を受信したか否かを判定する（Ｓ１６０５）。アプリケーション停止の通知を受信していないと判定した場合には、Ｓ１６０９の処理に移る。
【００６４】
一方、アプリケーション停止の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数から１を引く（Ｓ１６０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタから１を引く。
【００６５】
本実施の形態におけるオートスケーラ９１１は、サブルーチン処理（Ｂ）を実行する（Ｓ１６０９）。図１７に、サブルーチン処理（Ｂ）フローを示す。判定部９１９は、サービスを１つ特定する（Ｓ１７０１）。具体的には、判定部９１９は、サービスレコードを１つ特定する。
【００６６】
判定部９１９は、上側の閾値を求める（Ｓ１７０３）。例えば、判定部９１９は、現在のインスタンス数におけるアクセス数の上限値から所定値を引いて、上側の閾値を求める。所定値は、例えば正の値である。但し、所定値は、０であってもよい。或いは、所定値は、負の値であってもよい。
【００６７】
他の例で、判定部９１９は、現在のインスタンス数におけるアクセス数の上限値に所定の係数を乗じて、上側の閾値を求めるようにしてもよい。所定の係数は、例えば１より小さい値である。但し、所定の係数は、１であってもよい。或いは、所定の係数は、１より大きくてもよい。
【００６８】
また、現在のインスタンス数が所定の最大値である場合には、例えば上側の閾値を無限大にしてもよい。
【００６９】
判定部９１９は、当該サービスレコードの端末装置数のカウンタが上側の閾値を超えているか否かを判定する（Ｓ１７０５）。端末装置数が上側の閾値を超えていると判定した場合には、判定部９１９は、インスタンスの増加数を求める（Ｓ１７０７）。Ｓ１７０７乃至Ｓ１７１１の処理は、図１３に示したＳ１３０７乃至Ｓ１３１１の処理と同様である。そして、端子Ｂを介して、図１８に示したＳ１８１１の処理に移る。
【００７０】
一方、Ｓ１７０５において、当該サービスレコードの端末装置数のカウンタが上側の閾値を超えていないと判定した場合には、端子Ａを介して、図１８に示したＳ１８０１の処理に移る。
【００７１】
図１８の説明に移る。判定部９１９は、下側の閾値を求める（Ｓ１８０１）。例えば、判定部９１９は、現在のインスタンス数におけるアクセス数の下限値に所定値を加えて、下側の閾値を求める。所定値は、例えば正の値である。但し、所定値は、０であってもよい。或いは、所定値は、負の値であってもよい。
【００７２】
他の例で、判定部９１９は、現在のインスタンス数におけるアクセス数の下限値に所定の係数を乗じて、下側の閾値を求めるようにしてもよい。所定の係数は、例えば１より大きい値である。但し、所定の係数は、１であってもよい。或いは、所定の係数は、１より小さくてもよい。
【００７３】
また、現在のインスタンス数が所定の最小値である場合には、例えば下側の閾値を０にしてもよい。
【００７４】
判定部９１９は、当該サービスレコードの端末装置数のカウンタが下側の閾値を下回っているか否かを判定する（Ｓ１８０３）。端末装置数が下側の閾値を下回っていないと判定した場合には、Ｓ１８１１に示した処理に移る。
【００７５】
一方、端末装置数が下側の閾値を下回っていると判定した場合には、判定部９１９は、インスタンスの削減数を求める（Ｓ１８０５）。例えば、判定部９１９は、端末装置数が該当するアクセス数の範囲に相当するインスタンス数を特定して、現在のインスタンス数から特定したインスタンス数を引くことによって削減数を求める。
【００７６】
スケーリング部９２１は、削減数に応じたスケールイン処理を起動する（Ｓ１８０７）。つまり、スケーリング部９２１は、サービスのインスタンスを減らす処理を行う。
【００７７】
更新部９２３は、ルーティングテーブルを更新する（Ｓ１８０９）。つまり、更新部９２３は、消滅したインスタンスにおけるインターフェース識別子をルーティングテーブルから削除する。
【００７８】
判定部９１９は、未処理のサービスがあるか否かを判定する（Ｓ１８１１）。未処理のサービスがあると判定した場合には、端子Ｃを介して、図１７に示したＳ１７０１の処理に戻る。
【００７９】
一方、未処理のサービスがないと判定した場合には、サブルーチン処理（Ｂ）を終え、呼び出し元のメイン処理（Ｂ）に復帰する。
【００８０】
図１６に示したメイン処理（Ｂ）の説明に戻る。サブルーチン処理（Ｂ）から復帰すると、Ｓ１６０１に示した処理に戻って、上述した処理を繰り返す。
【００８１】
本実施の形態によれば、アプリケーション５０３が動作している端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。また、アプリケーション５０３が動作している端末装置１０５の減少に応じて、スケールインを開始できる。
【００８２】
或る例では、アプリケーション５０３が動作している端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、アプリケーション５０３が動作している端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。同じく、アプリケーション５０３が動作している端末装置１０５の減少傾向を適切に捉えることによって、アクセス頻度が減る前にスケールインを行うことができる。
【００８３】
［実施の形態３］
本実施の形態では、起動された端末装置１０５の数に基づいて、スケールアウトの要否を判定する例について説明する。
【００８４】
図１９に、実施の形態３における端末装置１０５のモジュール構成例を示す。本実施の形態における端末装置１０５は、判定部１９０１及び特定部１９０３を有する。判定部１９０１は、例えば端末装置１０５自身が起動されたか否かを判定する。特定部１９０３は、端末装置１０５にインストールされているアプリケーション５０３が利用するサービスの識別子を特定する。
【００８５】
上述した判定部１９０１及び特定部１９０３は、ハードウエア資源（例えば、図４０又は図４１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００８６】
本実施の形態における端末装置１０５は、通知処理（Ｃ）を実行する。図２０に、通知処理（Ｃ）フローを示す。端末装置１０５の電源が投入されると、ＯＳ５０１は、初期処理を開始する（Ｓ２００１）。そして、判定部１９０１は、初期処理の進行状況に応じて、端末装置１０５が起動されたか否かを判定する（Ｓ２００３）。例えば、初期処理が途中の段階に至った時点或いは初期処理が完了した時点で、判定部１９０１は、端末装置１０５が起動されたと判定する。端末装置１０５が起動されていないと判定した場合には、判定部１９０１は、Ｓ２００３の処理を繰り返す。
【００８７】
端末装置１０５が起動されたと判定した場合には、特定部１９０３は、インストールされているアプリケーション５０３に対応するサービス識別子を特定する（Ｓ２００５）。具体的には、特定部１９０３は、アプリケーションレコードに格納されているサービス識別子を抽出する。アプリケーション５０３が複数インストールされている場合には、各アプリケーション５０３に対応するサービス識別子を特定する。
【００８８】
送信部５１１は、端末装置１０５の起動の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ２００７）。Ｓ２００５において、複数のサービス識別子を特定した場合には、送信部５１１は、当該通知に複数のサービス識別子を含める。そして、通知処理（Ｃ）を終える。
【００８９】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｃ）を実行する。図２１に、メイン処理（Ｃ）フローを示す。Ｓ２１０１及びＳ２１０３の処理は、図１２に示したＳ１２０１及びＳ１２０３の処理と同様である。
【００９０】
算出部９１５は、受信部９１３において、端末装置１０５から端末装置１０５の起動の通知を受信したか否かを判定する（Ｓ２１０５）。端末装置１０５の起動の通知を受信していないと判定した場合には、Ｓ２１０９に移る。
【００９１】
尚、端末装置１０５の起動の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、端末装置１０５の起動タイミングが、所定動作タイミングに相当する。
【００９２】
一方、端末装置１０５の起動の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ２１０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタに１を加える。
【００９３】
Ｓ２１０９及びＳ２１１１の処理は、図１２に示したＳ１２０９及びＳ１２１１の処理と同様である。
【００９４】
本実施の形態によれば、起動された端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。
【００９５】
或る例では、起動された端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、起動された端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。
【００９６】
［実施の形態４］
本実施の形態では、動作している端末装置１０５の数に基づいて、スケールアウトの要否及びスケールインの要否を判定する例について説明する。
【００９７】
本実施の形態における端末装置１０５は、通知処理（Ｄ）を実行する。図２２に、通知処理（Ｄ）フローを示す。Ｓ２２０１乃至Ｓ２２０７の処理は、図２０に示したＳ２００１乃至Ｓ２００７の処理と同様である。
【００９８】
判定部１９０１は、端末装置１０５を停止させるか否かを判定する（Ｓ２２０９）。判定部１９０１は、例えばＯＳ５０１が端末装置１０５を停止させるユーザ指示を受け付けた場合に、端末装置１０５を停止させると判定する。端末装置１０５を停止させると判定しない場合には、Ｓ２２０９の処理を繰り返す。
【００９９】
一方、端末装置１０５を停止させると判定した場合には、送信部５１１は、端末装置１０５の停止の通知（Ｓ２２０５で特定されたサービス識別子を含む）を送信する（Ｓ２２１１）。そして、ＯＳ５０１は、停止処理を開始する（Ｓ２２１３）。
【０１００】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｄ）を実行する。図２３に、メイン処理（Ｄ）フローを示す。算出部９１５は、受信部９１３において、端末装置１０５から端末装置１０５の起動の通知を受信したか否かを判定する（Ｓ２３０１）。端末装置１０５の起動の通知を受信していないと判定した場合には、Ｓ２３０５の処理に移る。
【０１０１】
尚、端末装置１０５の起動の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、端末装置１０５の起動タイミングが、所定動作タイミングに相当する。
【０１０２】
一方、端末装置１０５の起動の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ２３０３）。
【０１０３】
算出部９１５は、受信部９１３において、端末装置１０５から端末装置１０５の停止の通知を受信したか否かを判定する（Ｓ２３０５）。端末装置１０５の停止の通知を受信していないと判定した場合には、Ｓ２３０９の処理に移る。
【０１０４】
一方、端末装置１０５の停止の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数から１を引く（Ｓ２３０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタから１を引く。
【０１０５】
Ｓ２３０９の処理は、図１６に示したＳ１６０９の処理と同様である。
【０１０６】
本実施の形態によれば、動作している端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。また、動作している端末装置１０５の減少に応じて、スケールインを開始できる。
【０１０７】
或る例では、動作している端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、動作している端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。同じく、動作している端末装置１０５の減少傾向を適切に捉えることによって、アクセス頻度が減る前にスケールインを行うことができる。
【０１０８】
［実施の形態５］
本実施の形態では、アプリケーション５０３のダウンロードに用いられるローダが起動された端末装置１０５の数に基づいて、スケールアウトの要否を判定する例について説明する。
【０１０９】
図２４に、実施の形態５における端末装置１０５のモジュール構成例を示す。本実施の形態における端末装置１０５は、ローダ２４０１を有する。ローダ２４０１は、例えばサーバシステム１０１からアプリケーション５０３をダウンロードする。尚、本実施の形態におけるアプリケーションテーブルは、ダウンロードされるアプリケーション５０３に対応するレコードを有しているものとする。
【０１１０】
本実施の形態における端末装置１０５は、通知処理（Ｅ）を実行する。図２５に、通知処理（Ｅ）フローを示す。検出部５０９は、ローダ２４０１の起動を検出したか否かを判定する（Ｓ２５０１）。例えば、検出部５０９は、ＯＳ５０１からプロセスの名前を取得し、新たに動作を開始したプロセスの名前がローダ２４０１の名前と一致する場合に、ローダ２４０１の起動を検出する。ローダ２４０１の起動を検出していないと判定した場合には、Ｓ２５０１の処理を繰り返す。
【０１１１】
ローダ２４０１の起動を検出したと判定した場合には、特定部１９０３は、ダウンロードされるアプリケーション５０３のサービス識別子を特定する（Ｓ２５０３）。この例では、当該ローダ２４０１によってダウンロードされるアプリケーション５０３は、予め定められているものとする。具体的には、特定部１９０３は、アプリケーションレコードに格納されているサービス識別子を抽出する。複数のアプリケーション５０３がダウンロードされる場合には、各アプリケーション５０３に対応するサービス識別子を特定する。
【０１１２】
送信部５１１は、ローダ起動の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ２５０５）。Ｓ２５０３において、複数のサービス識別子を特定した場合には、送信部５１１は、当該通知に複数のサービス識別子を含める。そして、通知処理（Ｅ）を終える。
【０１１３】
サーバシステム１０１の説明に移る。図２６に、実施の形態５におけるサーバシステム１０１のモジュール構成例を示す。本実施の形態におけるサーバシステム１０１は、アプリケーション格納部２６０１及び配信部２６０３を有する。アプリケーション格納部２６０１は、配信されるアプリケーション５０３を格納している。配信部２６０３は、端末装置１０５からの要求に応じてアプリケーション５０３を配信する。尚、アプリケーション格納部２６０１及び配信部２６０３を、１つのサーバ装置１０３として独立させるようにしてもよい。
【０１１４】
上述した配信部２６０３は、ハードウエア資源（例えば、図４１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【０１１５】
上述したアプリケーション格納部２６０１は、ハードウエア資源（例えば、図４１）を用いて実現される。
【０１１６】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｅ）を実行する。図２７に、メイン処理（Ｅ）フローを示す。Ｓ２７０１及びＳ２７０３の処理は、図１２に示したＳ１２０１及びＳ１２０３の処理と同様である。
【０１１７】
算出部９１５は、受信部９１３において、端末装置１０５からローダ起動の通知を受信したか否かを判定する（Ｓ２７０５）。ローダ起動の通知を受信していないと判定した場合には、Ｓ２７０９に移る。
【０１１８】
尚、ローダ起動の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、ローダ２４０１の起動タイミングが、所定動作タイミングに相当する。
【０１１９】
一方、ローダ起動の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ２７０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタに１を加える。
【０１２０】
Ｓ２７０９及びＳ２７１１の処理は、図１２に示したＳ１２０９及びＳ１２１１の処理と同様である。
【０１２１】
本実施の形態によれば、ローダ２４０１が起動された端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。
【０１２２】
或る例では、ローダ２４０１が起動された端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、ローダ２４０１が起動された端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。
【０１２３】
［実施の形態６］
本実施の形態では、アプリケーション５０３のダウンロードに用いられるローダ２４０１が動作している端末装置１０５の数に基づいて、スケールアウトの要否及びスケールインの要否を判定する例について説明する。
【０１２４】
本実施の形態における端末装置１０５は、通知処理（Ｆ）を実行する。図２８に、通知処理（Ｆ）フローを示す。Ｓ２８０１乃至Ｓ２８０５の処理は、図２５に示したＳ２５０１乃至Ｓ２５０５の処理と同様である。
【０１２５】
検出部５０９は、ローダ２４０１の停止を検出したか否かを判定する（Ｓ２８０７）。例えば、検出部５０９は、ＯＳ５０１からプロセスの名前を取得し、動作を終えたプロセスの名前がローダ２４０１の名前と一致する場合に、ローダ２４０１の停止を検出する。ローダ２４０１の停止を検出していないと判定した場合には、Ｓ２８０７の処理を繰り返す。
【０１２６】
一方、ローダ２４０１の停止を検出したと判定した場合には、送信部５１１は、ローダ停止の通知（Ｓ２８０３において特定されたサービス識別子を含む）を送信する（Ｓ２８０９）。そして、通知処理（Ｆ）を終える。
【０１２７】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｆ）を実行する。図２９に、メイン処理（Ｆ）フローを示す。算出部９１５は、受信部９１３において、端末装置１０５からローダ起動の通知を受信したか否かを判定する（Ｓ２９０１）。ローダ起動の通知を受信していないと判定した場合には、Ｓ２９０５の処理に移る。
【０１２８】
尚、ローダ起動の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、ローダ２４０１の起動タイミングが、所定動作タイミングに相当する。
【０１２９】
一方、ローダ起動の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ２９０３）。
【０１３０】
算出部９１５は、受信部９１３において、端末装置１０５からローダ停止の通知を受信したか否かを判定する（Ｓ２９０５）。ローダ停止の通知を受信していないと判定した場合には、Ｓ２９０９の処理に移る。
【０１３１】
一方、ローダ停止の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数から１を引く（Ｓ２９０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタから１を引く。
【０１３２】
Ｓ２９０９の処理は、図１６に示したＳ１６０９の処理と同様である。
【０１３３】
本実施の形態によれば、ローダ２４０１が動作している端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。また、ローダ２４０１が動作している端末装置１０５の減少に応じて、スケールインを開始できる。
【０１３４】
或る例では、ローダ２４０１が動作している端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、ローダ２４０１が動作している端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。同じく、ローダ２４０１が動作している端末装置１０５の減少傾向を適切に捉えることによって、アクセス頻度が減る前にスケールインを行うことができる。
【０１３５】
［実施の形態７］
本実施の形態では、アプリケーション５０３のダウンロードを開始した端末装置１０５の数に基づいて、スケールアウトの要否を判定する例について説明する。
【０１３６】
図３０に、ローダ２４０１の処理（Ａ）フローを示す。ローダ２４０１は、アプリケーション５０３をダウンロードする指示を受けたか否かを判定する（Ｓ３００１）。アプリケーション５０３をダウンロードする指示を受けていないと判定した場合には、Ｓ３００１の処理を繰り返す。一方、アプリケーション５０３をダウンロードする指示を受けたと判定した場合には、ローダ２４０１は、第１割り込み処理を起動する（Ｓ３００３）。第１割り込み処理については、図３１を用いて後述する。
【０１３７】
第１割り込み処理を起動すると、ローダ２４０１は、アプリケーション５０３のダウンロードを実行する（Ｓ３００５）。そして、Ｓ３００１に示した処理に戻って、上述した処理を繰り返す。
【０１３８】
図３１に、第１割り込み処理フローを示す。特定部１９０３は、ダウンロードされるアプリケーション５０３に対応するサービス識別子を特定する（Ｓ３１０１）。送信部５１１は、ダウンロード開始の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ３１０３）。そして、第１割り込み処理を終える。
【０１３９】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｇ）を実行する。図３２に、メイン処理（Ｇ）フローを示す。Ｓ３２０１及びＳ３２０３の処理は、図１２に示したＳ１２０１及びＳ１２０３の処理と同様である。
【０１４０】
算出部９１５は、受信部９１３において、端末装置１０５からダウンロード開始の通知を受信したか否かを判定する（Ｓ３２０５）。ダウンロード開始の通知を受信していないと判定した場合には、Ｓ３２０９の処理に移る。
【０１４１】
尚、ダウンロード開始の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、アプリケーション５０３のダウンロードタイミングが、所定動作タイミングに相当する。
【０１４２】
一方、ダウンロード開始の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ３２０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタに１を加える。
【０１４３】
Ｓ３２０９及びＳ３２１１の処理は、図１２に示したＳ１２０９及びＳ１２１１の処理と同様である。
【０１４４】
本実施の形態によれば、アプリケーション５０３のダウンロードを開始した端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。
【０１４５】
或る例では、アプリケーション５０３のダウンロードを開始した端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、アプリケーション５０３のダウンロードを開始した端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。
【０１４６】
［実施の形態８］
本実施の形態では、アプリケーション５０３のダウンロードを行っている端末装置１０５の数に基づいて、スケールアウトの要否及びスケールインの要否を判定する例について説明する。
【０１４７】
本実施の形態におけるローダ２４０１は、処理（Ｂ）を実行する。図３３に、ローダ２４０１の処理（Ｂ）フローを示す。Ｓ３３０１乃至Ｓ３３０５の処理は、図３０に示したＳ３００１乃至Ｓ３００５の処理と同様である。
【０１４８】
アプリケーション５０３のダウンロードが完了すると、ローダ２４０１は、第２割り込み処理を起動する（Ｓ３３０７）。そして、Ｓ３３０１に示した処理に戻って、上述した処理を繰り返す。
【０１４９】
図３４に、第２割り込み処理フローを示す。特定部１９０３は、ダウンロードされたアプリケーション５０３に対応するサービス識別子を特定する（Ｓ３４０１）。送信部５１１は、ダウンロード完了の通知（サービス識別子を含む）をサーバシステム１０１へ送信する（Ｓ３４０３）。
【０１５０】
本実施の形態におけるサーバシステム１０１は、メイン処理（Ｈ）を実行する。図３５に、メイン処理（Ｈ）フローを示す。算出部９１５は、受信部９１３において、端末装置１０５からダウンロード開始の通知を受信したか否かを判定する（Ｓ３５０１）。ダウンロード開始の通知を受信していないと判定した場合には、Ｓ３５０５の処理に移る。
【０１５１】
尚、ダウンロード開始の通知は、端末装置１０５においてサービスを利用する前段階の所定動作タイミングを示す通知の例である。つまり、アプリケーション５０３のダウンロード開始タイミングが、所定動作タイミングに相当する。
【０１５２】
一方、ダウンロード開始の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数に１を加える（Ｓ３５０３）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタに１を加える。
【０１５３】
算出部９１５は、受信部９１３において、端末装置１０５からダウンロード完了の通知を受信したか否かを判定する（Ｓ３５０５）。ダウンロード完了の通知を受信していないと判定した場合には、Ｓ３５０９の処理に移る。
【０１５４】
一方、ダウンロード完了の通知を受信したと判定した場合には、算出部９１５は、当該通知に含まれるサービス識別子に対応する端末装置数から１を引く（Ｓ３５０７）。つまり、算出部９１５は、当該サービス識別子で特定されるサービスレコードの端末装置数のカウンタから１を引く。
【０１５５】
Ｓ３５０９の処理は、図１６に示したＳ１６０９の処理と同様である。
【０１５６】
本実施の形態によれば、アプリケーション５０３のダウンロードを行っている端末装置１０５の増加に応じて、実際にアクセス頻度が増す前にスケールアウトを開始できる。また、アプリケーション５０３のダウンロードを行っている端末装置１０５の減少に応じて、スケールインを開始できる。
【０１５７】
或る例では、アプリケーション５０３のダウンロードを行っている端末装置１０５が増加するタイミングと、実際にアクセス頻度が増すタイミングとが一致しない。これらのタイミングが大きくずれることもある。このタイミングのずれに着目すれば、アプリケーション５０３のダウンロードを行っている端末装置１０５の増加傾向を適切に捉えることによって、アクセス頻度が増す前にスケールアウトを行うことができる。同じく、アプリケーション５０３のダウンロードを行っている端末装置１０５の減少傾向を適切に捉えることによって、アクセス頻度が減る前にスケールインを行うことができる。
【０１５８】
［実施の形態９］
実施の形態１において、サブルーチン処理（Ａ）に代えてサブルーチン処理（Ｂ）を実行するようにしてもよい。
【０１５９】
本実施の形態によれば、プログラムが起動された端末装置１０５の減少に応じて、スケールインを開始できる。
【０１６０】
［実施の形態１０］
実施の形態３において、サブルーチン処理（Ａ）に代えてサブルーチン処理（Ｂ）を実行するようにしてもよい。
【０１６１】
本実施の形態によれば、起動された端末装置１０５の減少に応じて、スケールインを開始できる。
【０１６２】
［実施の形態１１］
実施の形態５において、サブルーチン処理（Ａ）に代えてサブルーチン処理（Ｂ）を実行するようにしてもよい。
【０１６３】
本実施の形態によれば、ローダ２４０１が起動された端末装置１０５の減少に応じて、スケールインを開始できる。
【０１６４】
［実施の形態１２］
実施の形態７において、サブルーチン処理（Ａ）に代えてサブルーチン処理（Ｂ）を実行するようにしてもよい。
【０１６５】
本実施の形態によれば、アプリケーション５０３のダウンロードを開始した端末装置１０５の減少に応じて、スケールインを開始できる。
【０１６６】
［実施の形態１３］
実施の形態２において、サブルーチン処理（Ｂ）に代えてサブルーチン処理（Ａ）を実行するようにしてもよい。また、実施の形態４において、サブルーチン処理（Ｂ）に代えてサブルーチン処理（Ａ）を実行するようにしてもよい。また、実施の形態６において、サブルーチン処理（Ｂ）に代えてサブルーチン処理（Ａ）を実行するようにしてもよい。また、実施の形態８において、サブルーチン処理（Ｂ）に代えてサブルーチン処理（Ａ）を実行するようにしてもよい。
【０１６７】
本実施の形態では、サブルーチン処理（Ｂ）以外の判定によってスケールインを実行するようにしてもよい。
【０１６８】
［実施の形態１４］
サブルーチン処理（Ａ）では、サービスの処理能力を向上させるためにスケールアウトを実行する例を示したが、スケールアップを実行するようにしてもよい。
【０１６９】
図３６に、実施の形態１４におけるサービステーブルの例を示す。サービスレコードは、サービス識別子が格納されるフィールドと、端末装置数のカウンタと、直近のアクセス数のカウンタと、資源量レベルに対応する下限値が格納されるフィールドと、資源量レベルに対応する上限値が格納されるフィールドとを有している。
【０１７０】
資源量レベルに対応する下限値は、当該レベルの資源量がインスタンスに割り当てられている場合に、所定時間内において受け付けるアクセス数の適性範囲の下限を示す。資源量レベルに対応する上限値は、当該レベルの資源量がインスタンスに割り当てられている場合に、所定時間内において受け付けるアクセス数の適性範囲の上限を示す。資源量は、例えば演算装置の割り当て時間及び／又はメモリ量である。
【０１７１】
図３７に、サブルーチン処理（Ｃ）フローを示す。判定部９１９は、サービスを１つ特定する（Ｓ３７０１）。具体的には、判定部９１９は、サービスレコードを１つ特定する。
【０１７２】
判定部９１９は、閾値を算出する（Ｓ３７０３）。例えば、判定部９１９は、現在の資源量レベルにおけるアクセス数の上限値から直近のアクセス数を引いた値に所定の係数を乗じて、閾値を求める。所定の係数は、例えば１より小さい値である。但し、所定の係数は、１であってもよい。或いは、所定の係数は、１より大きくてもよい。
【０１７３】
判定部９１９は、当該サービスレコードの端末装置数のカウンタが閾値を超えているか否かを判定する（Ｓ３７０５）。端末装置数が閾値を超えていないと判定した場合には、Ｓ３７１１に移る。
【０１７４】
一方、端末装置数が閾値を超えていると判定した場合には、スケールアップ処理を行う。そのため、判定部９１９は、資源の増加量を求める（Ｓ３７０７）。例えば、判定部９１９は、端末装置数が該当するアクセス数の範囲に相当する資源量レベルを特定して、その資源量レベルの資源量から現在の資源量を引くことによって増加量を求める。
【０１７５】
スケーリング部９２１は、増加量に応じたスケールアップ処理を起動する（Ｓ３７０９）。つまり、スケーリング部９２１は、サービスのインスタンスに割り当てる資源を増やす。
【０１７６】
判定部９１９は、未処理のサービスがあるか否かを判定する（Ｓ３７１１）。未処理のサービスがあると判定した場合には、Ｓ３７０１に示した処理に戻って、上述した処理を繰り返す。
【０１７７】
一方、未処理のサービスがないと判定した場合には、サブルーチン処理（Ｃ）を終えて、呼び出し元のメイン処理に復帰する。
【０１７８】
実施の形態１、３、５、７及び１３において、サブルーチン処理（Ａ）に代えてサブルーチン処理（Ｃ）を実行するようにしてもよい。
【０１７９】
本実施の形態によれば、スケールアップによってアクセスの増加に対応できる。
【０１８０】
［実施の形態１５］
サブルーチン処理（Ｂ）では、スケールアウト及びスケールインを実行する例を示したが、スケールアップ及びスケールダウンを実行するようにしてもよい。
【０１８１】
図３８に、サブルーチン処理（Ｄ）フローを示す。判定部９１９は、サービスを１つ特定する（Ｓ３８０１）。具体的には、判定部９１９は、サービスレコードを１つ特定する。
【０１８２】
判定部９１９は、上側の閾値を求める（Ｓ３８０３）。例えば、判定部９１９は、現在の資源量レベルにおけるアクセス数の上限値から所定値を引いて、上側の閾値を求める。所定値は、例えば正の値である。但し、所定値は、０であってもよい。或いは、所定値は、負の値であってもよい。
【０１８３】
他の例で、判定部９１９は、現在の資源量レベルにおけるアクセス数の上限値に所定の係数を乗じて、上側の閾値を求めるようにしてもよい。所定の係数は、例えば１より小さい値である。但し、所定の係数は、１であってもよい。或いは、所定の係数は、１より大きくてもよい。
【０１８４】
判定部９１９は、当該サービスレコードの端末装置数のカウンタが上側の閾値を超えているか否かを判定する（Ｓ３８０５）。端末装置数が上側の閾値を超えていると判定した場合には、判定部９１９は、資源の増加量を求める（Ｓ３８０７）。Ｓ３８０７及びＳ３８０９の処理は、図３７に示したＳ３７０７及びＳ３７０９の処理と同様である。そして、端子Ｅを介して、図３９に示したＳ３９０９の処理に移る。
【０１８５】
一方、Ｓ３８０５において、当該サービスレコードの端末装置数のカウンタが上側の閾値を超えていないと判定した場合には、端子Ｄを介して、図３９に示したＳ３９０１の処理に移る。
【０１８６】
図３９の説明に移る。判定部９１９は、下側の閾値を求める（Ｓ３９０１）。例えば、判定部９１９は、現在の資源量レベルにおけるアクセス数の下限値に所定値を加えて、下側の閾値を求める。所定値は、例えば正の値である。但し、所定値は、０であってもよい。或いは、所定値は、負の値であってもよい。
【０１８７】
他の例で、判定部９１９は、現在の資源量レベルにおけるアクセス数の下限値に所定の係数を乗じて、下側の閾値を求めるようにしてもよい。所定の係数は、例えば１より大きい値である。但し、所定の係数は、１であってもよい。或いは、所定の係数は、１より小さくてもよい。
【０１８８】
判定部９１９は、当該サービスレコードの端末装置数のカウンタが下側の閾値を下回っているか否かを判定する（Ｓ３９０３）。端末装置数のカウンタが下側の閾値を下回っていないと判定した場合には、Ｓ３９０９に示した処理に移る。
【０１８９】
一方、端末装置数のカウンタが下側の閾値を下回っていると判定した場合には、判定部９１９は、資源の削減量を求める（Ｓ３９０５）。例えば、判定部９１９は、端末装置数が該当するアクセス数の範囲に相当する資源量レベルを特定して、現在の資源量から特定した資源量レベルの資源量を引くことによって削減量を求める。
【０１９０】
スケーリング部９２１は、削減量に応じたスケールダウン処理を起動する（Ｓ３９０７）。つまり、スケーリング部９２１は、サービスのインスタンスに割り当てる資源量を減らす。
【０１９１】
判定部９１９は、未処理のサービスがあるか否かを判定する（Ｓ３９０９）。未処理のサービスがあると判定した場合には、端子Ｆを介して、図３８に示したＳ３８０１の処理に戻る。
【０１９２】
一方、未処理のサービスがないと判定した場合には、サブルーチン処理（Ｄ）を終え、呼び出し元のメイン処理に復帰する。
【０１９３】
実施の形態２、４、５、及び８乃至１２において、サブルーチン処理（Ｂ）に代えてサブルーチン処理（Ｄ）を実行するようにしてもよい。
【０１９４】
本実施の形態によれば、スケールアップによってアクセスの増加に対応できる。また、スケールダウンによってアクセスの減少に対応できる。
【０１９５】
尚、サービス基盤９０１において複数の実行環境を提供する場合には、各実行環境において、上述した実施の形態を適用するようにしてもよい。例えば、テナント毎に実行環境を設ける場合には、各テナントで使用する端末装置１０５を区別して、テナント毎に端末装置数を集計するようにしてもよい。
【０１９６】
また、配信部２６０３においてアプリケーション５０３の配信数を管理している場合には、配信数の増減に応じて、スケーリングの要否を判定するようにしてもよい。
【０１９７】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１９８】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１９９】
図４０に、無線通信手段を備えた端末装置１０５のハードウエア構成例を示す。端末装置１０５は、プロセッサ４００１、記憶部４００３、アンテナ４０１１、無線制御部４０１３、オーディオ制御部４０１５、スピーカ４０１７、マイク４０１９、ディスプレイ４０２１、タッチセンサ４０２３、カメラ４０２５及びＧＰＳ（Global Positioning System）装置４０２７を有している。
【０２００】
プロセッサ４００１は、モデムＣＰＵ（Central Processing Unit）とアプリケーションＣＰＵからなることもある。記憶部４００３は、例えば、ＲＯＭ（Read Only Memory）４００５とＲＡＭ（Random Access Memory）４００７とフラッシュメモリ４００９を有している。ＲＯＭ４００５は、例えば、予め設定されているデータやプログラムを格納している。ＲＡＭ４００７は、例えば、アプリケーション５０３などのプログラムやデータを展開する領域を含んでいる。フラッシュメモリ４００９は、例えば、ＯＳ５０１やアプリケーション５０３などのプログラムを格納しており、更に随時データを格納する。
【０２０１】
タッチセンサ４０２３は、例えば、ディスプレイ４０２１の表示面上に配置されたパネル状のセンサであり、タッチ操作を受け付ける。ディスプレイ４０２１は、例えば、アプリケーション５０３が表示させる各種画面を表示する。具体的には、ディスプレイ４０２１とタッチセンサ４０２３とを一体としたタッチパネルとして用いられる。タッチセンサ４０２３へのタッチ操作によって、タッチイベントが発生する。タッチセンサ４０２３の他に、キーを設けるようにしてもよい。
【０２０２】
アンテナ４０１１は、例えばセルラー方式の無線データを受信する。無線制御部４０１３は、無線通信の制御を行う。無線通信の制御により、電話の音声通信やデータ通信が行われる。
【０２０３】
オーディオ制御部４０１５は、音データに関するアナログ／デジタル変換とデジタル／アナログ変換を行う。スピーカ４０１７は、アナログデータを音として出力する。マイク４０１９は、音をアナログデータに変換する。
【０２０４】
カメラ４０２５は、動画や写真画像の撮影に用いられる。ＧＰＳ装置４０２７は、位置を計測する。
【０２０５】
なお、上で述べたサーバ装置１０３及び有線通信手段を備えた端末装置１０５は、コンピュータ装置であって、図４１に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０２０６】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０２０７】
本実施の形態に係る情報処理装置は、（Ａ）端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、（Ｂ）上記通知に基づいて、サービスのスケーリングを実行するスケーラとを有する。
【０２０８】
このようにすれば、サービスに対する負荷の変動に、より的確に対応することができる。
【０２０９】
更に、所定動作タイミングは、サービスにアクセスするプログラムの起動タイミングであってもよい。
【０２１０】
このようにすれば、端末装置におけるプログラムの起動を兆候として、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２１１】
更に、上記スケーラは、（Ｃ）上記通知に基づいて、プログラムが起動された端末装置の数を算出する算出部と、（Ｄ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２１２】
このようにすれば、プログラムが起動された端末装置の増減に応じて、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２１３】
更に、上記受信部は、プログラムの停止タイミングを示す通知を受信するようにしてもよい。また、上記スケーラは、（Ｅ）上記通知に基づいて、プログラムが動作している端末装置の数を算出する算出部と、（Ｆ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２１４】
このようにすれば、プログラムが動作している端末装置の増減に応じて、実際にアクセス頻度の傾向が変化する前にスケーリングを開始できる。
【０２１５】
更に、所定動作タイミングは、端末装置の起動タイミングであってもよい。
【０２１６】
このようにすれば、端末装置の起動を兆候として、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２１７】
更に、上記スケーラは、（Ｇ）上記通知に基づいて、起動された端末装置の数を算出する算出部と、（Ｈ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２１８】
このようにすれば、起動された端末装置の増減に応じて、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２１９】
更に、上記受信部は、端末装置の停止タイミングを示す通知を受信するようにしてもよい。また、上記スケーラは、（Ｉ）上記通知に基づいて、動作している端末装置の数を算出する算出部と、（Ｊ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２２０】
このようにすれば、動作している端末装置の増減に応じて、実際にアクセス頻度の傾向が変化する前にスケーリングを開始できる。
【０２２１】
更に、所定動作タイミングは、サービスにアクセスするプログラムのダウンロードに用いられるローダの起動タイミングであってもよい。
【０２２２】
このようにすれば、ローダの起動を兆候として、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２２３】
更に、上記スケーラは、（Ｋ）上記通知に基づいて、ローダが起動された端末装置の数を算出する算出部と、（Ｌ）前記端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２２４】
このようにすれば、ローダが起動された端末装置の増減に応じて、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２２５】
更に、上記受信部は、ローダの停止タイミングを示す通知を受信するようにしてもよい。また、上記スケーラは、（Ｍ）上記通知に基づいて、ローダが動作している端末装置の数を算出する算出部と、（Ｎ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２２６】
このようにすれば、ローダが動作している端末装置の増減に応じて、実際にアクセス頻度の傾向が変化する前にスケーリングを開始できる。
【０２２７】
更に、所定動作タイミングは、サービスにアクセスするプログラムのダウンロードの開始タイミングであってもよい。
【０２２８】
このようにすれば、プログラムのダウンロードの開始を兆候として、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２２９】
更に、上記スケーラは、（Ｏ）上記通知に基づいて、ダウンロードを開始した端末装置の数を算出する算出部と、（Ｐ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２３０】
このようにすれば、プログラムのダウンロードを開始した端末装置の増減に応じて、実際にアクセス頻度が変化する前にスケーリングを開始できる。
【０２３１】
更に、上記受信部は、ダウンロードの完了タイミングを示す通知を受信するようにしてもよい。また、上記スケーラは、（Ｑ）上記通知に基づいて、ダウンロードを行っている端末装置の数を算出する算出部と、（Ｒ）当該端末装置の数に基づいて、スケーリングの要否を判定する判定部とを有するようにしてもよい。
【０２３２】
このようにすれば、プログラムのダウンロードを行っている端末装置の増減に応じて、実際にアクセス頻度の傾向が変化する前にスケーリングを開始できる。
【０２３３】
なお、上で述べた情報処理装置の処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０２３４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２３５】
（付記１）
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、
前記通知に基づいて、前記サービスのスケーリングを実行するスケーラと
を有する情報処理装置。
【０２３６】
（付記２）
前記所定動作タイミングは、前記サービスにアクセスするプログラムの起動タイミングである
付記１記載の情報処理装置。
【０２３７】
（付記３）
前記スケーラは、
前記通知に基づいて、前記プログラムが起動された前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記２記載の情報処理装置。
【０２３８】
（付記４）
前記受信部は、前記プログラムの停止タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、前記プログラムが動作している前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記２記載の情報処理装置。
【０２３９】
（付記５）
前記所定動作タイミングは、前記端末装置の起動タイミングである
付記１記載の情報処理装置。
【０２４０】
（付記６）
前記スケーラは、
前記通知に基づいて、起動された前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記５記載の情報処理装置。
【０２４１】
（付記７）
前記受信部は、前記端末装置の停止タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、動作している前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記５記載の情報処理装置。
【０２４２】
（付記８）
前記所定動作タイミングは、前記サービスにアクセスするプログラムのダウンロードに用いられるローダの起動タイミングである
付記１記載の情報処理装置。
【０２４３】
（付記９）
前記スケーラは、
前記通知に基づいて、前記ローダが起動された前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記８記載の情報処理装置。
【０２４４】
（付記１０）
前記受信部は、前記ローダの停止タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、前記ローダが動作している前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記８記載の情報処理装置。
【０２４５】
（付記１１）
前記所定動作タイミングは、前記サービスにアクセスするプログラムのダウンロードの開始タイミングである
付記１記載の情報処理装置。
【０２４６】
（付記１２）
前記スケーラは、
前記通知に基づいて、前記ダウンロードを開始した前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記１１記載の情報処理装置。
【０２４７】
（付記１３）
前記受信部は、前記ダウンロードの完了タイミングを示す通知を受信し、
前記スケーラは、
前記通知に基づいて、前記ダウンロードを行っている前記端末装置の数を算出する算出部と、
前記端末装置の数に基づいて、前記スケーリングの要否を判定する判定部と
を有する付記１１記載の情報処理装置。
【０２４８】
（付記１４）
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信し、
前記通知に基づいて、前記サービスのスケーリングを実行する
処理をコンピュータに実行させる情報処理プログラム。
【０２４９】
（付記１５）
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信し、
前記通知に基づいて、前記サービスのスケーリングを実行する
処理を含み、コンピュータにより実行される情報処理方法。
【０２５０】
（付記１６）
端末装置から、当該端末装置においてサービスを利用する前段階の所定動作タイミングを示す通知を受信する受信部と、
前記通知に基づいて、前記サービスのスケーリングを実行するスケーラと
を有する情報処理システム。
【０２５１】
（付記１７）
サービスを利用する前段階の所定動作タイミングを示す通知を送信する端末装置と、
前記端末装置から、前記通知を受信する受信部と、
前記通知に基づいて、前記サービスのスケーリングを実行するスケーラと
を有する情報処理システム。
【符号の説明】
【０２５２】
１０１  サーバシステム    １０３  サーバ装置
１０５  端末装置    ５０１  ＯＳ
５０３  アプリケーション    ５０５  通信部
５０７  アプリケーションテーブル記憶部    ５０９  検出部
５１１  送信部    ７０１  アプリケーション基盤
９０１  サービス基盤
９０５  通信部    ９０７  ロードバランサ
９０９  ルーティングテーブル記憶部    ９１１  オートスケーラ
９１３  受信部    ９１５  算出部
９１７  サービステーブル記憶部    ９１９  判定部
９２１  スケーリング部    ９２３  更新部
９２５  監視部    １９０１  判定部
１９０３  特定部    ２４０１  ローダ
２６０１  アプリケーション格納部    ２６０３  配信部
【図１】
2018128866.tif 000003
【図２】
2018128866.tif 000004
【図３】
2018128866.tif 000005
【図４】
2018128866.tif 000006
【図５】
2018128866.tif 000007
【図６】
2018128866.tif 000008
【図７】
2018128866.tif 000009
【図８】
2018128866.tif 000010
【図９】
2018128866.tif 000011
【図１０】
2018128866.tif 000012
【図１１】
2018128866.tif 000013
【図１２】
2018128866.tif 000014
【図１３】
2018128866.tif 000015
【図１４】
2018128866.tif 000016
【図１５】
2018128866.tif 000017
【図１６】
2018128866.tif 000018
【図１７】
2018128866.tif 000019
【図１８】
2018128866.tif 000020
【図１９】
2018128866.tif 000021
【図２０】
2018128866.tif 000022
【図２１】
2018128866.tif 000023
【図２２】
2018128866.tif 000024
【図２３】
2018128866.tif 000025
【図２４】
2018128866.tif 000026
【図２５】
2018128866.tif 000027
【図２６】
2018128866.tif 000028
【図２７】
2018128866.tif 000029
【図２８】
2018128866.tif 000030
【図２９】
2018128866.tif 000031
【図３０】
2018128866.tif 000032
【図３１】
2018128866.tif 000033
【図３２】
2018128866.tif 000034
【図３３】
2018128866.tif 000035
【図３４】
2018128866.tif 000036
【図３５】
2018128866.tif 000037
【図３６】
2018128866.tif 000038
【図３７】
2018128866.tif 000039
【図３８】
2018128866.tif 000040
【図３９】
2018128866.tif 000041
【図４０】
2018128866.tif 000042
【図４１】
2018128866.tif 000043