(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023032752
(43)【公開日】2023-03-09
(54)【発明の名称】管理装置、方法、およびプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20230302BHJP
G06F 9/455 20180101ALI20230302BHJP
【FI】
G06F9/50 150Z
G06F9/455 150
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021139054
(22)【出願日】2021-08-27
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】渡辺 和彦
(72)【発明者】
【氏名】池田 健吾
(57)【要約】
【課題】マルチテナント型のサービスにおいてクラウド上の好適なリソース分配を実現する技術を提供する。
【解決手段】クラウド上で複数のユーザにより共有されるリソースによってデータ処理を実行するマルチテナント型サービスにおいて、ユーザからデータ処理の呼び出しを受け付けて、リソースによりデータ処理を実行させる管理装置は、カウント値が上限値に達していたら、バースト時間の間、リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザが無ければ、データ処理を受け付け、リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザがあれば、ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、データ処理を受け付け、ユーザのデータ処理によるデータがデータサイズに到達していれば、所定の回復時間だけ待機した後、データ処理を受け付ける。
【選択図】
図2
【特許請求の範囲】
【請求項1】
クラウド上で複数のユーザにより共有されるリソースによって、前記複数のユーザのデータ処理を実行するマルチテナント型サービスにおいて、前記ユーザからデータ処理の呼び出しを受け付けて、前記リソースにより前記データ処理を実行させる管理装置であって、
前記ユーザ毎に、単位時間当たりのデータ処理の呼び出しの回数の上限値と、前記上限値を超えてデータ処理の呼び出しを受け付け可能な時間であるバースト時間を予め設定するユーザ管理部と、
単位時間毎に前記ユーザによるデータ処理の受け付け済みの呼び出しの回数をカウント値として計測し、前記カウント値が前記上限値に達していなければ前記データ処理を受け付け、前記カウント値が前記上限値に達していたら、前記バースト時間に基づいて、前記ユーザからのデータ処理の呼び出しの受け付けを制御するデータ処理制御部と、
を有し、
前記データ処理制御部は、
前記カウント値が前記上限値に達していたら、バーストモードとして、前記バースト時間の間、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザが無ければ、前記データ処理を受け付け、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザがあれば、
前記ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、前記データ処理を受け付け、
前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、所定の回復時間だけ待機した後、前記データ処理を受け付ける、
管理装置。
【請求項2】
前記マルチテナント型サービスは、前記複数のユーザのデータをブロックチェーンによって記憶するサービスであり、
前記データサイズが前記ブロックチェーンのブロックのサイズに基づいて決定され、
前記データ処理制御部は、前記リソースに前記データ処理を実行させたことにより生じるデータを前記ブロックにまとめて前記ブロックチェーンに記録する、
請求項1に記載の管理装置。
【請求項3】
前記データ処理が、アプリケーション・プログラミング・インタフェースによる処理である、
請求項1に記載の管理装置。
【請求項4】
前記ユーザ管理部は、
前記複数のユーザの前記上限値の合計に対する各ユーザの前記上限値の割合に応じて、前記各ユーザのデータ処理における優先順位を示す優先順位テーブルを予め生成し、
前記優先順位テーブルにおいて、前記データ処理の受け付けを優先する優先対象ユーザを示すカレントポインタを設定し、
前記データ処理制御部に、前記優先対象ユーザを優先して前記バーストモードを適用させ、
前記バースト時間が満了したとき、あるいは、前記優先対象ユーザのデータ処理の呼び出しがなくなったとき、前記カレントポインタを前記優先順位テーブルにおける次のユーザに進める、
請求項1に記載の管理装置。
【請求項5】
前記上限値は、ユーザが利用する前記マルチテナント型サービスの契約プランにより定まり、
前記ユーザ管理部は、前記複数のユーザの前記上限値の合計に対する各ユーザの前記上限値の割合に応じて、前記各ユーザのそれぞれのバースト時間を設定する、
請求項1に記載の管理装置。
【請求項6】
前記データ処理制御部は、
前記ユーザによるデータ処理の呼び出しをユーザ毎の呼び出しキューにエンキューし、
前記カウント値が前記上限値に達していなければ前記呼び出しキューから前記データ処理をデキューして受け付け、
前記カウント値が前記上限値に達していたら、
前記複数のユーザの中に、前記バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザが無ければ、前記呼び出しキューから前記データ処理をデキューして受け付け、
前記複数のユーザの中に、前記バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザがあれば、
前記ユーザのデータ処理によるデータが前記データサイズに到達していなければ、前記キューから前記データ処理をデキューして受け付け、
前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、データ処理の呼び出しの受け付けを停止する、
請求項1に記載の管理装置。
【請求項7】
前記データ処理制御部は、
前記上限値を超えたデータ処理の呼び出しの受け付けを停止して待ち受ける時間である回復時間を予め定め、
前記カウント値が前記上限値に達しており、前記リソースを共有する複数のユーザの中に、前記バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザがあり、前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、前記回復時間だけ、データ処理の呼び出しの受け付けを停止する、
請求項1に記載の管理装置。
【請求項8】
前記管理装置は、ユーザ毎に設けられ当該ユーザからデータ処理の呼び出しを受け付ける複数のゲートウェイにより構成され、
前記ゲートウェイは、前記クラウド上に構築される、
請求項1に記載の管理装置。
【請求項9】
クラウド上で複数のユーザにより共有されるリソースによって、前記複数のユーザのデータ処理を実行するマルチテナント型サービスにおいて、前記ユーザからデータ処理の呼び出しを受け付けて、前記リソースに前記データ処理を実行させるための管理方法であって、
コンピュータが、
前記ユーザ毎に、単位時間当たりのデータ処理の呼び出しの回数の上限値と、前記上限値を超えてデータ処理の呼び出しを受け付け可能な時間であるバースト時間を予め設定し、
単位時間毎に前記ユーザによるデータ処理の受け付け済みの呼び出しの回数をカウント値として計測し、
前記カウント値が前記上限値に達していなければ前記データ処理を受け付け、
前記カウント値が前記上限値に達していたら、バーストモードとして、前記バースト時間の間、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザが無ければ、前記データ処理を受け付け、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザがあれば、
前記ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、前記データ処理を受け付け、
前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、所定の回復時間だけ待機した後、前記データ処理を受け付ける、
ことを実行する管理方法。
【請求項10】
クラウド上で複数のユーザにより共有されるリソースによって、前記複数のユーザのデータ処理を実行するマルチテナント型サービスにおいて、前記ユーザからデータ処理の呼び出しを受け付けて、前記リソースに前記データ処理を実行させるための管理プログラムであって、
コンピュータに、
前記ユーザ毎に、単位時間当たりのデータ処理の呼び出しの回数の上限値と、前記上限値を超えてデータ処理の呼び出しを受け付け可能な時間であるバースト時間を予め設定し、
単位時間毎に前記ユーザによるデータ処理の受け付け済みの呼び出しの回数をカウント値として計測し、
前記カウント値が前記上限値に達していなければ前記データ処理を受け付け、
前記カウント値が前記上限値に達していたら、バーストモードとして、前記バースト時間の間、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザが無ければ、前記データ処理を受け付け、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザがあれば、
前記ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、前記データ処理を受け付け、
前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、所定の回復時間だけ待機した後、前記データ処理を受け付ける、
ことを実行させるための管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クラウド上でマルチテナント型サービスを提供する技術に関する。
【背景技術】
【0002】
クラウド上のリソースを利用してアプリケーションをマルチテナント型で提供するサービス事業者がある。クラウドにはブロックチェーン技術を利用したものがある。
【0003】
サービス事業者は、複数のサービス利用者に対して、仮想プロセッサや仮想メモリのリソースを公平かつ効率的に分配することが求められる。一般的には、サービス提供者は、複数のサービス利用者のそれぞれに利用可能なリソースの上限をキャッピングし、固定の割合でリソースを分配している。また、特許文献1には、リソース通貨値を使ったオークションにより、オンデマンドサービス環境におけるリソース割り当てを行う技術が開示されている。また、特許文献2には、通常モードとバーストモードのそれぞれにトークンを設け、バーストモードによって余剰リソースを融通することにより、リソースの効率的な利用を可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2015-535975号公報
【特許文献2】特開2018-77852号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ブロックチェーン技術には様々な特有の性質がある。あるサービス利用者がクラウドに書き込んだデータが他のサービス利用者によってブロックチェーンネットワーク上で情報共有される。情報共有に貢献するサービス利用者は、自身に割り当てられているリソースを他社のために提供する。そのようなサービス利用者の貢献により他のサービス利用者が利益を受けることになる。また、ブロックチェーンでは、データは、所定サイズのブロックにブロック化されてクラウドに書き込まれる。そのため、小さいサイズのデータをブロックへ追加で書き込むことが頻繁に起こると、処理性能が低下する。
【0006】
これまで、このようなブロックチェーンの性質を考慮して好適なリソースの分配を実現する手法は提案されて来なかった。
【0007】
本開示のひとつの目的は、マルチテナント型のサービスにおいてクラウド上の好適なリソース分配を実現する技術を提供することである。
【課題を解決するための手段】
【0008】
本開示のひとつの態様による管理装置は、クラウド上で複数のユーザにより共有されるリソースによって、複数のユーザのデータ処理を実行するマルチテナント型サービスにおいて、ユーザからデータ処理の呼び出しを受け付けて、リソースによりデータ処理を実行させる管理装置であり、カウント値が上限値に達していたら、バーストモードとして、バースト時間の間、リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザが無ければ、データ処理を受け付け、リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザがあれば、ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、データ処理を受け付け、ユーザのデータ処理によるデータがデータサイズに到達していれば、所定の回復時間だけ待機した後、データ処理を受け付ける。
【発明の効果】
【0009】
本開示のひとつの態様によれば、マルチテナント型のサービスにおいてクラウド上の好適なリソース分配を実現することができる。
【図面の簡単な説明】
【0010】
【
図1】マルチテナント型サービスシステムの構成を示すブロック図である。
【
図7】API受け付け処理のフローチャートである。
【
図10】API呼び出し受付処理のフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面を参照して説明する。
【0012】
図1は、マルチテナント型サービスシステムの構成を示すブロック図である。
【0013】
マルチテナント型サービスシステムは、マルチテナント型サービスを提供するシステムである。マルチテナント型サービスは、ユーザのデータをブロックチェーンによって記憶する構成である。また、マルチテナント型サービスは、API(アプリケーション・プログラミング・インタフェース)を呼び出すことで実行されるアプリケーションプログラムにより構築されている。アプリケーションプログラムは、クラウド11上の仮想的な処理装置13および記憶装置14を含むリソース12によって実行される。リソース12は、マルチテナント型サービスの利用契約を行った複数のユーザA16A、ユーザB16B、ユーザC16Cに共用される。以下、複数のユーザA16A、ユーザB16B、ユーザC16Cをまとめてユーザ16と呼ぶ場合がある。なお、ここでいうユーザ16は企業等の組織であってもよいし、個人であってもよい。
【0014】
マルチテナント型サービスシステムには、ユーザ16からAPIの呼び出しを受け付けて、リソース12にAPIにより呼び出される処理を実行させる管理装置15が設けられている。
【0015】
図2は、管理装置のブロック図である。管理装置15は、ユーザ管理部21とAPI制御部25を有する。なお、本実施形態では、複数のユーザ16に対して共通の管理装置15が配置される構成が示されているが、物理的構成および論理的構成がこれに限定されることはない。管理装置15は、ユーザ16毎にそれぞれ設けられ、当該ユーザ16からのAPIの呼び出しを受け付ける複数のゲートウェイ装置により構成され、複数のゲートウェイ装置が相互に連携することで実現されるものであってもよい。その場合もゲートウェイ装置はクラウド11に構築可能である。また、本実施形態では、管理装置15はクラウド11上に構築されるものとして例示されるが、本例に限定されることはない。プロセッサおよびメモリを物理的に備え、プロセッサによってソフトウェアプログラムを実行するサーバ装置等のコンピュータによって管理装置15を構築してもよい。
【0016】
ユーザ管理部21は、マルチテナント型サービスを利用するユーザ16を管理する。
図2に示したように、ユーザ管理部21は、契約プラン受付部22、上限決定部23、および優先順位決定部24を有する。
【0017】
契約プラン受付部22は、マルチテナント型サービスの利用契約をしようとするユーザ16に様々な料金の契約プランを提示し、ユーザ16の希望に応じて利用する契約プランを決定する。
【0018】
上限決定部23は、ユーザ16の希望に応じて、単位時間当たりのAPIの呼び出しの受付可能な回数の上限値を決定する。以下、単位時間当たりのAPIの呼び出しの受付可能な回数の上限値をAPI上限値と呼ぶ場合がある。API上限値は、契約プランに応じて定まるものであってもよい。
【0019】
API上限値は絶対的な上限値ではなく、バーストモードにおいてはAPI上限値を超えてAPIの呼び出しを受け付けることができる。上限決定部23は、API上限値を超えてAPIの呼び出しを受け付け可能な時間であるバースト時間を決定する。バースト時間は、リソース12を共用する全てのユーザ16のAPI上限値の合計に対する各ユーザ16のAPI上限値の割合に応じて単位時間を分配した時間であってもよい。以下、全ユーザのAPI上限値の合計に対する各ユーザのAPI上限値の割合をAPI上限値割合と呼ぶ場合がある。
【0020】
優先順位決定部24は、各ユーザ16のAPIの呼び出しの処理における優先順位を決定する。優先順位は、全ユーザのAPI上限値の合計に対する各ユーザのAPI上限値の割合が高い順としてもよい。
【0021】
API制御部25は、ユーザ16によるAPIの呼び出しによる処理の実行を制御する。
図2に示したように、API制御部25は、キュー登録部26、データベースキュー27、キュー取出部28、およびAPI実行受付部29を有する。以下、データベースをDBと略す場合がある。
【0022】
キュー登録部26は、ユーザ16からのAPIの呼び出しを受信し、DBキュー27に登録する。
【0023】
DBキュー27は、各ユーザ16から受信されたAPIの呼び出しを管理するキューである。
【0024】
キュー取出部28は、API実行受付部29の決定に従ってDBキュー27からAPIの呼び出しを取り出す。
【0025】
API実行受付部29は、単位時間毎にユーザ16によるAPIの受け付け済みの呼び出しの回数をカウント値として計測し、カウント値がAPI上限値に達していなければAPIの呼び出しを受け付け、カウント値がAPI上限値に達していたら、バーストモードとして、バースト時間に基づいて、ユーザ16からのAPIの呼び出しの受け付けを制御する。詳細な処理は後述する。
【0026】
図3は、ユーザ管理処理のフローチャートである。ユーザ管理処理は、ユーザ管理部21の契約プラン受付部22、上限決定部23、および優先順位決定部24により実行される。
【0027】
ステップ101にて、契約プラン受付部22は、予め定められた複数の契約プランをユーザ16に提示して選択を促す。
【0028】
【0029】
契約プランは、「松」「竹」「梅」「格安」の4種類である。「松」は、料金が月額10万円であり、API上限値が1秒当たり100回である。「竹」は、料金が月額5万円であり、API上限値が1秒当たり40回である。「梅」は、料金が月額3万円であり、API上限値が1秒当たり20回である。「格安」は、料金が月額1万円であり、API上限値が1秒当たり0回である。APIの呼び出しに対するレスポンスの種別はいずれの契約プランもベストエフォートである。ユーザ16は、これらの契約プランの中から利用する契約プランを選択する。
【0030】
ステップ102にて、契約プラン受付部22は、各ユーザ16の選択に基づき、各ユーザ16が利用する契約プランを決定する。
【0031】
ステップ103にて、上限決定部23は、各ユーザ16の契約プランに基づいて各ユーザ16のAPI上限値を決定し、それに伴い、当該ユーザ16のAPI上限値割合を決定する。
【0032】
ステップ104にて、ユーザ管理部21は、マルチテナント型サービスでリソース12を共用する全てのユーザ16を管理するユーザテーブルを作成する。
【0033】
図5は、ユーザテーブルを示す図である。ユーザテーブルには、各ユーザのユーザ名、API上限値、API上限値割合、およびAPI実割合が登録される。ユーザ名が「日立」であるユーザは、
図4に示した契約プラン「松」を契約している。ユーザ名が「池田」であるユーザは、
図4に示した契約プラン「竹」を契約している。ユーザ名が「戸塚」であるユーザは、
図4に示した契約プラン「梅」を契約している。ユーザ名が「吉田」であるユーザは、
図4に示した契約プラン「格安」を契約している。
【0034】
API上限値割合は、上述の通り、全ユーザのAPI上限値の合計に対する各ユーザのAPI上限値の割合である。例えば、
図5において、ユーザ名が「日立」であるユーザのAPI上限値割合は式(1)により計算される。
【0035】
API上限値割合(日立)=100回/(100+60+40)=50% …(1)
【0036】
API実割合は、全てのユーザ16によるAPIの呼び出しが行われた回数の合計に対する、当該ユーザ16によるAPIの呼び出しが行われた回数の割合である。ユーザテーブルが作成された段階ではAPI実割合には数値が入らない。
【0037】
図3に戻り、ステップ105にて、優先順位決定部24は、各ユーザ16のバースト時間を算出する。
【0038】
バースト時間は、上述の通り、全てのユーザ16のAPI上限値の合計に対する各ユーザ16のAPI上限値の割合(すなわちAPI上限値割合)に応じて単位時間を分配した時間である。例えば、
図5において、ユーザ名が「日立」であるユーザのバースト時間は式(2)により計算される。
【0039】
バースト時間(日立)=1秒×(API上限値割合(日立))=0.2秒 …(2)
【0040】
ステップ106にて、優先順位決定部24は、各ユーザ16のバーストモードを適用する優先順位を決定し、各ユーザ16のAPIの呼び出しに対する処理における優先順位を示す優先順位テーブルを作成する。
【0041】
優先順位決定部24は、上述の通り、各ユーザ16に対してAPI上限値割合が高い順に優先順位を付与していく。
【0042】
図6は、優先順位テーブルを示す図である。優先順位テーブルには、優先順位を示す数値と、その優先順位に該当するユーザのユーザ名とが記録されている。例えば、ユーザ名が「日立」であるユーザの優先順位が「1」であり、ユーザ名が「池田」であるユーザの優先順位が「2」である。
【0043】
図7は、API受け付け処理のフローチャートである。API受け付け処理は、キュー登録部26により実行される。
【0044】
キュー登録部26は、ステップ201にて、ユーザ16から受信したAPIの呼び出しを取得し、ステップ202にて、APIの呼び出しを受信した時刻を取得する。以下、APIの呼び出しを受信した時刻を受信時刻と呼ぶ場合がある。
【0045】
ステップ203にて、キュー登録部26は、APIの呼び出しおよびその管理情報をデータベースおよびDBキュー27に登録する。
【0046】
ステップ204にて、キュー登録部26は、新たなAPIの呼び出しがDBキュー27に登録されたことを示すシグナルを送出する。
【0047】
図8は、データベースを示す図である。データベースには、各API呼び出しについて、識別子、ユーザ名、処理名、受信時刻、および開始時刻が記録される。識別子は、API呼び出しを個々に識別するための識別情報である。ユーザ名は、当該APIの呼び出しを送信したユーザ16を示す情報である。処理名は、当該APIの呼び出しにより呼び出され実行される処理を示す処理名である。受信時刻は、当該APIの呼び出しの受信時刻である。開始時刻は、当該APIの呼び出しによる処理が開始される時刻である。APIの呼び出しがデータベースに登録された段階では、開始時刻は記録されない。
【0048】
DBキュー27には、各ユーザ16から受信されたAPIの呼び出しが受信された順番に記録される。DBキュー27の構成は特に限定されないが、ユーザ16毎にAPIの呼び出しが受信された順番を特定可能に構成される。例えば、DBキュー27は、ユーザ16毎の個別のキューにより構成されてもよい。また、例えば、DBキュー27をデータベースと兼用とし、複数のユーザ16に対して共通に設けられ、各APIを送信したユーザ16を特定可能にする情報(例えばユーザ名)と共に記録し、所望のユーザ16のAPIの呼び出しを取り出すことが可能な構成であってもよい。
図8の例で、ユーザ名が「日立」のユーザが処理対象であれば、識別子が1001のAPIの呼び出しよりも前に、識別子が1003のAPIの呼び出しが取り出されることがある。
【0049】
図9は、優先順位処理のフローチャートである。優先順位処理は、優先的にバーストモードを適用するユーザを決める処理である。優先順位処理は、ユーザ管理部21により実行される。
【0050】
ステップ301にて、ユーザ管理部21は、所定の条件が満たされると優先順位テーブルのカレントポインタを1つ進める。所定の条件には、現在の優先対象ユーザのバースト時間が満了したこと、および現在の優先対象ユーザのAPIの呼び出しがなくなったことが含まれる。
【0051】
ステップ302にて、ユーザ管理部21は、優先順位テーブルのカレントポインタが指している新たな優先対象ユーザを特定する。
【0052】
ステップ303にて、ユーザ管理部21は、新たな優先対象ユーザに優先的にバーストモードを適用する。
【0053】
図10は、API呼び出し受付処理のフローチャートである。API呼び出し受付処理は、優先対象ユーザを優先し、シグナルが送出されているユーザ16に対して実行される。ここでは、処理の対象となるユーザ16をユーザAとしている。API呼び出し受付処理は、API制御部25のAPI実行受付部29により実行される。
【0054】
API実行受付部29は、単位時間毎に、ユーザAを含む各ユーザ16のそれぞれに、受け付け済みのAPIの呼び出しの回数を計測している。以下、この受け付け済みのAPIの呼び出しの回数をAPI呼び出し回数と呼ぶ場合がある。
【0055】
API実行受付部29は、APIの呼び出しがあると(ステップ401)、ステップ402にて、ユーザAのAPI呼び出し回数がユーザAの上限値に到達しているか否か判定する。ユーザAのAPI呼び出し回数がユーザAの上限値に到達していなければ、API実行受付部29は、ステップ403にて、ユーザAによるAPIの呼び出しを受け付け、ステップ404にて、ユーザAのAPI呼び出し回数に1を加算する。APIの呼び出しが受け付けられると、呼び出された処理がクラウド11のリソース12により実行される。
【0056】
ステップ402の判定で、ユーザAのAPI呼び出し回数がユーザAの上限値に到達していれば、API実行受付部29は、ステップ405にて、バースト時間内にユーザAによるAPIの呼び出しのみが実施されているか否か判定する。バースト時間内にユーザAによるAPIの呼び出しのみが実施されているのであれば、API実行受付部29は、ステップ406にて、ユーザAによるAPIの呼び出しを受け付け、ステップ404に進む。
【0057】
ステップ405の判定で、バースト時間内にユーザAによるAPIの呼び出しのみが実施されているのでなければ、API実行受付部29は、ステップ407にて、ユーザAによるAPIの呼び出しの処理により生じ、未だブロックチェーンに書き込まれていないデータの総量が、ブロックチェーンのブロックのサイズに到達しているか否か判定する。ブロックチェーンのブロックのサイズを以下ブロックサイズと呼ぶ場合がある。ユーザAによるAPIの呼び出しの処理により生じ、未だブロックチェーンに書き込まれていないデータの総量がブロックサイズに到達していなければ、API実行受付部29は、ステップ406に進む。ステップ406では、ユーザAによるAPIの呼び出しが受け付けられ、呼び出された処理により生じるデータは、未だブロックチェーンに書き込まれていないデータと一緒にブロックに書き込まれる。
【0058】
ユーザAによるAPIの呼び出しの処理により生じ、未だブロックチェーンに書き込まれていないデータの総量がブロックサイズに到達していれば、API実行受付部29は、ステップ408にて、APIの呼び出しの受け付けを所定の回復時間だけ一時停止した後に回復し、ステップ403に進む。なお、回復時間は、API上限値を超えたAPIの呼び出しの受け付けを停止して待ち受ける時間を示すシステムパラメータであり、API実行受付部29がこれを予め定めておく。
【0059】
本実施形態では、各ユーザの契約プランと連動するAPI上限値や料金に応じたバースト時間まで、APIの個数の上限値を超えたバーストモードでのAPIの処理を行い、ブロックチェーンのブロックへできるだけまとめてデータの書き込みが行われるように制御する。API上限値を超えたAPIの呼び出しを、API上限値に応じて決まるバースト時間まで受け付けるので、ユーザに公平感が与えられる。また、データをブロックサイズにまとめてブロックチェーンへの書き込むので、書き込み処理の発生回数を低減することができる。
【0060】
以上説明した本実施形態には、以下に示す事項が含まれる。ただし、本実施形態に含まれる事項が以下に示すものだけに限定されることはない。
【0061】
(事項1)
クラウド上で複数のユーザにより共有されるリソースによって、前記複数のユーザのデータ処理を実行するマルチテナント型サービスにおいて、前記ユーザからデータ処理の呼び出しを受け付けて、前記リソースにより前記データ処理を実行させる管理装置であって、
前記ユーザ毎に、単位時間当たりのデータ処理の呼び出しの回数の上限値と、前記上限値を超えてデータ処理の呼び出しを受け付け可能な時間であるバースト時間を予め設定するユーザ管理部と、
単位時間毎に前記ユーザによるデータ処理の受け付け済みの呼び出しの回数をカウント値として計測し、前記カウント値が前記上限値に達していなければ前記データ処理を受け付け、前記カウント値が前記上限値に達していたら、前記バースト時間に基づいて、前記ユーザからのデータ処理の呼び出しの受け付けを制御するデータ処理制御部と、
を有し、
前記データ処理制御部は、
前記カウント値が前記上限値に達していたら、バーストモードとして、前記バースト時間の間、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザが無ければ、前記データ処理を受け付け、
前記リソースを共有する複数のユーザの中に、データ処理の呼び出しのある他のユーザがあれば、
前記ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、前記データ処理を受け付け、
前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、所定の回復時間だけ待機した後、前記データ処理を受け付ける、
管理装置。
【0062】
これによれば、データ処理のカウント値が上限値に達していたら、バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザが無ければ、データ処理を受け付け、バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザがあっても、ユーザのデータ処理によるデータが所定のデータサイズに到達していなければ、データ処理を受け付ける。これにより、マルチテナント型のサービスにおいてクラウド上の好適なリソース分配を実現することができる。
【0063】
(事項2)
前記マルチテナント型サービスは、前記複数のユーザのデータをブロックチェーンによって記憶するサービスであり、
前記データサイズが前記ブロックチェーンのブロックのサイズに基づいて決定され、
前記データ処理制御部は、前記リソースに前記データ処理を実行させたことにより生じるデータを前記ブロックにまとめて前記ブロックチェーンに記録する、
事項1に記載の管理装置。
【0064】
これによれば、ブロックチェーンの性質を考慮してクラウド上の好適なリソース分配を実現することができる。ブロックチェーンは、所定サイズのブロック単位でデータの書き込みが行われるので、小さいデータをブロックにまとめることで、書き込みの回数および書き込まれるデータの個数を低減することができる。
【0065】
(事項3)
前記データ処理が、アプリケーション・プログラミング・インタフェースによる処理である、
事項1に記載の管理装置。
【0066】
これによれば、APIの呼び出しの単位でクラウド上のリソースを好適に分配することができる。
【0067】
(事項4)
前記ユーザ管理部は、
前記複数のユーザの前記上限値の合計に対する各ユーザの前記上限値の割合に応じて、前記各ユーザのデータ処理における優先順位を示す優先順位テーブルを予め生成し、
前記優先順位テーブルにおいて、前記データ処理の受け付けを優先する優先対象ユーザを示すカレントポインタを設定し、
前記データ処理制御部に、前記優先対象ユーザを優先して前記バーストモードを適用させ、
前記バースト時間が満了したとき、あるいは、前記優先対象ユーザのデータ処理の呼び出しがなくなったとき、前記カレントポインタを前記優先順位テーブルにおける次のユーザに進める、
事項1に記載の管理装置。
【0068】
これによれば、与えられた上限値の割合に基づく優先順位に従ってリソースを分配する処理を実現することができる。
【0069】
(事項5)
前記上限値は、ユーザが利用する前記マルチテナント型サービスの契約プランにより定まり、
前記ユーザ管理部は、前記複数のユーザの前記上限値の合計に対する各ユーザの前記上限値の割合に応じて、前記各ユーザのそれぞれのバースト時間を設定する、
事項1に記載の管理装置。
【0070】
これによれば、契約プランにより定まる上限値の割合に応じたバースト時間で上限値を超えたバーストモードでのデータ処理の受け付けを行うので、ユーザに公平感を与えることができる。
【0071】
(事項6)
前記データ処理制御部は、
前記ユーザによるデータ処理の呼び出しをユーザ毎の呼び出しキューにエンキューし、
前記カウント値が前記上限値に達していなければ前記呼び出しキューから前記データ処理をデキューして受け付け、
前記カウント値が前記上限値に達していたら、
前記複数のユーザの中に、前記バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザが無ければ、前記呼び出しキューから前記データ処理をデキューして受け付け、
前記複数のユーザの中に、前記バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザがあれば、
前記ユーザのデータ処理によるデータが前記データサイズに到達していなければ、前記キューから前記データ処理をデキューして受け付け、
前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、データ処理の呼び出しの受け付けを停止する、
事項1に記載の管理装置。
【0072】
これによれば、データ処理をキューによって管理し、処理するので、リアルタイムでの処理ができない場合でもデータ処理に対する好適なリソースの分配が可能である。
【0073】
(事項7)
前記データ処理制御部は、
前記上限値を超えたデータ処理の呼び出しの受け付けを停止して待ち受ける時間である回復時間を予め定め、
前記カウント値が前記上限値に達しており、前記リソースを共有する複数のユーザの中に、前記バースト時間内のデータ処理の呼び出しの受け付けが実施されている他のユーザがあり、前記ユーザのデータ処理によるデータが前記データサイズに到達していれば、前記回復時間だけ、データ処理の呼び出しの受け付けを停止する、
事項1に記載の管理装置。
【0074】
これによれば、適切な回復時間によりリソース分配の処理を運用することができる。
【0075】
(事項8)
前記管理装置は、ユーザ毎に設けられ当該ユーザからデータ処理の呼び出しを受け付ける複数のゲートウェイにより構成され、
前記ゲートウェイは、前記クラウド上に構築される、
事項1に記載の管理装置。
【0076】
また、上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【0077】
11…クラウド、12…リソース、13…処理装置、14…記憶装置、15…管理装置、16A…ユーザA、16B…ユーザB、16C…ユーザC、16…ユーザ、21…ユーザ管理部、22…契約プラン受付部、23…上限値決定部、24…優先順位決定部、25…API制御部、26…キュー登録部、27…データベースキュー、28…キュー取出部、29…API実行受付部