JP2022030101A - 情報処理プログラム、情報処理方法、情報処理装置 - Google Patents

情報処理プログラム、情報処理方法、情報処理装置 Download PDF

Info

Publication number
JP2022030101A
JP2022030101A JP2020133873A JP2020133873A JP2022030101A JP 2022030101 A JP2022030101 A JP 2022030101A JP 2020133873 A JP2020133873 A JP 2020133873A JP 2020133873 A JP2020133873 A JP 2020133873A JP 2022030101 A JP2022030101 A JP 2022030101A
Authority
JP
Japan
Prior art keywords
server
robots
execution
processing
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2020133873A
Other languages
English (en)
Inventor
将也 金川
Masaya Kanekawa
奨 古賀
Sho Koga
俊之 藤島
Toshiyuki Fujishima
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020133873A priority Critical patent/JP2022030101A/ja
Publication of JP2022030101A publication Critical patent/JP2022030101A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ロボットの実行に関する処理負荷に応じてリソースを効率的に利用する。【解決手段】一実施形態に係る情報処理装置は、第1のサーバによる制御対象の複数のロボットの実行スケジュールと、複数のロボットの実行に関する処理で使用されるリソースの量とに基づいて、リソースの使用が所定の使用量を超える処理負荷の発生を予測する予測部と、所定の使用量を超える処理負荷の発生前に第2のサーバの起動が完了するようにリクエストを管理サーバに送信する送信部と、複数のロボットのうち、処理負荷の発生期間に実行されるロボットのうちの一部のロボットに関する情報を第2のサーバに提供して、第2のサーバに一部のロボットの実行に関する処理を実行させる、提供部と、を含む。【選択図】図1

Description

本発明は、情報処理プログラム、情報処理方法、情報処理装置に関する。
近年、RPA(Robotics Process Automation)技術を使用し、様々な業務の自動化が進められている。RPA製品は、業務自動化のためのロボットを実行する環境およびマシンなどに応じて、例えば、サーバ型とデスクトップ型の2種に大別することができる。サーバ型は、例えば、サーバにてロボットを集中管理し、サーバでロボットを実行する形式である。デスクトップ型は、例えば、業務を担当するユーザが使用する端末にロボットを配備して実行する形式である。
また、処理のためのリソースの管理に関連する技術が知られている(例えば、特許文献1および特許文献2)。
特開2019-008454号公報 特開2013-164750号公報
しかしながら、例えば、サーバに複数のロボットを配備して実行する場合に、ロボットの実行にかかる処理負荷が大きく、サーバのリソースが不足することがある。その結果、ロボットの実行スケジュールに遅れが発生することがある。
1つの側面では、本発明は、ロボットの実行に関する処理の負荷に応じてリソースを効率的に利用することを目的とする。
本発明の一つの態様の情報処理装置は、第1のサーバによる制御対象の複数のロボットの実行スケジュールと、複数のロボットの実行に関する処理で使用されるリソースの量とに基づいて、リソースの使用が所定の使用量を超える処理負荷の発生を予測する予測部と、所定の使用量を超える処理負荷の発生前に第2のサーバの起動が完了するようにリクエストを管理サーバに送信する送信部と、複数のロボットのうち、処理負荷の発生期間に実行されるロボットのうちの一部のロボットに関する情報を第2のサーバに提供して、第2のサーバに一部のロボットの実行に関する処理を実行させる、提供部と、を含む。
ロボットの実行に関する処理負荷に応じてリソースを効率的に利用することができる。
実施形態に係るRPAシステムの一例を示す図である。 実施形態に係るサーバのブロック構成を例示する図である。 実施形態に係る副系サーバのブロック構成を例示する図である。 実施形態に係るサーバ情報を例示する図である。 実施形態に係る実行スケジュールを例示する図である。 実施形態に係るリソースの不足発生期間の特定を例示する図である。 実施形態に係るサーバによるロボット実行処理の動作フローを例示する図である。 実施形態に係る副系サーバによるロボット実行処理の動作フローを例示する図である。 変形例に係る構成候補情報を例示する図である。 第2の実施形態に係るリクエストの履歴情報を例示する図である。 第2の実施形態に係る稼働スケジュールの生成処理の動作フローを例示する図である。 第2の実施形態に係る稼働スケジュールを例示する図である。 第2の実施形態に係るサーバによるロボット実行処理の動作フローを例示する図である。 第3の実施形態に係るRPAシステムを例示する図である。 実施形態に係るサーバおよび副系サーバを実現するためのコンピュータのハードウェア構成を例示する図である。
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
上述のように、例えば、サーバに複数のロボットを配備して実行する場合に、ロボットの実行にかかる処理負荷が大きく、CPU(Central Processing Unit)数およびメモリ容量などのサーバのリソースが不足することがある。一例として、実行スケジュールにおいて複数のロボットの実行が重なると、サーバで遅滞なく処理を実行する上で許容可能なリソースの使用量を超えてしまいリソースが足りなくなることがある。その結果、ロボットの実行に実行スケジュールからの遅れが発生することがある。
例えば、同時期に実行されるロボットの数がサーバに備えられたCPU数よりも多くなると、ロボットの実行速度が低下することがある。一例として、サーバに備えられたCPU数の倍の数のロボットを実行すると、実行速度が1/2程度に減速することがある。また、例えば、サーバに設定されているRPA製品で利用可能なメモリ使用量の上限値(例えば、80%)を超えた場合などメモリ容量に不足が発生した場合、実行制限によりロボットの実行が待ち状態となることがある。その結果、実行スケジュールで予定されていた時刻にロボットを実行できないことがある。
RPAでは、或るロボットの処理の実行結果を他のロボットで利用することもしばしばある。そのため、例えば、実行スケジュールからの遅れが生じると、他のロボットの実行時に処理で利用する情報が得られていない状況などが発生し得、業務を安定して処理できなくなることがある。そのため、実行スケジュールに従ってロボットを実行できることは好ましい。
リソースの不足に対処する手法の一つとして、サーバに予めリソースを多めに配備しておくことが考えられる。しかしながら、負荷の高い状況に合わせてリソースを配備するとコストがかかる。また、一方で、負荷が低下した状況では未使用のリソースが増加することになる。そのため、リソースの不足が発生する状況に合わせて、リソースを配備することのできる技術の提供が望まれている。
また、例えば、サーバにおいて実行可能なロボットの数を予め定めておくなど運用を管理することでロボットの処理負荷が高くなる状況を回避することも考えられる。しかしながら、この場合、システムの運用を管理する管理者の負担が増加する。
また、例えば、オートスケーリング技術に見られるように、リソースの使用量を監視してリソースの不足を検出し、リソースの不足を検出したタイミングでリソースを追加することも考えられる。例えば、仮想マシン(VM:Virtual Machine)では、再起動時にリソース量を変更することが可能であり、リソースの不足の検出時に、仮想マシンを再起動してリソース量を変更することが考えられる。しかしながら、リソースの不足を検出してからリソース量を調節する対応では、リソースの不足の発生時にはロボットの実行が既に開始してしまっているため、ロボットの実行の遅れを回避することが難しいことがある。そのため、ロボットの実行開始前に、不足するリソースを配備することのできる技術の提供が望まれている。
以下で述べる実施形態では、ロボットの実行を制御するサーバは、ロボットの実行スケジュールと、ロボットが使用するリソースに関する情報とに基づいて、リソースの使用量が所定の使用量を超える処理負荷が発生する期間を予測する。なお、リソースの使用量が所定の使用量を超える処理負荷が発生する期間を以下では、不足発生期間と呼ぶことがある。そして、不足発生期間が予測される場合、サーバは、不足発生期間になる前に副系のサーバが起動されるようにリクエストを送信する。そして、サーバは、不足発生期間において動作するロボットのうちの一部のロボットを副系サーバに配備して実行させる。
それにより、リソースの不足に起因するロボットの処理の遅延を回避することができる。また、例えば、不足発生期間でのみ副系サーバのリソースを利用することで、リソースを効率的に利用することができる。例えば、サーバが副系サーバに一部のロボットの処理を実行させていない時間帯に、別のサーバが副系サーバに他の処理を実行させることも可能になる。
また、例えば、パブリッククラウドを利用して副系サーバを配備する場合、不足発生期間にのみ副系サーバを起動すればよいため、コストの削減を図ることができる。以下、実施形態を更に詳細に説明する。
図1は、実施形態に係るRPAシステム100の一例を示す図である。RPAシステム100は、例えば、サーバ101、副系サーバ102、および管理サーバ103を含む。管理サーバ103は、一例ではパブリッククラウドにおいてサーバリソース105を管理するサーバであってよい。サーバリソース105は、例えば、複数の情報処理装置で構築されたリソースであってよい。
管理サーバ103は、例えば、リクエストに応じてサーバリソース105内のリソースをサーバに割り当てる。例えば、サーバ101および副系サーバ102は、サーバリソース105から割り当てられたリソースを備える情報処理装置において動作する仮想マシンなどであってよい。なお、サーバ101は、例えば、主系サーバおよび第1のサーバなどと呼ばれてよい。副系サーバ102は、例えば、第2のサーバと呼ばれてよい。
サーバ101は、例えば、実行スケジュールに従って複数のロボットを稼働させるサーバである。また、副系サーバ102は、例えば、サーバ101においてリソースの不足が発生する不足発生期間に起動されるサーバである。例えば、実施形態ではサーバ101は、ロボットの実行スケジュールと、ロボットが使用するリソースに関する情報とに基づいて、リソースの不足が発生する不足発生期間を予測する。そして、サーバ101は、不足発生期間になる前に副系サーバ102の配備および起動が完了するように管理サーバ103にリクエストを送信する。更に、サーバ101は、不足発生期間になる前に、不足発生期間に動作するロボットの一部の処理のプログラムを副系サーバ102に配備する。それにより、不足発生期間に動作するロボットの一部を副系サーバ102に実行させることができる。そのため、サーバ101ではリソースが足りず時間通りに処理できなかったロボットを副系サーバ102において時間通りに処理することができる。その結果、ロボットの処理を実行スケジュール通りに完了できるため、その後の他のロボットの処理も安定して実行することができる。
また、リソースが不足している不足発生期間に合わせて副系サーバ102を利用し、不足発生期間が終わると副系サーバ102の利用を停止することで、効率的にリソースを活用することができる。例えば、パブリッククラウドのサービスでリソースの提供を受ける場合、提供を受けるリソースの量を抑えてコストの削減を図ることができる。
図2は、実施形態に係るサーバ101のブロック構成を例示する図である。サーバ101は、例えば、制御部201、記憶部202、および通信部203を含む。制御部201は、例えば予測部211、送信部212、および提供部213などを含み、またその他の機能部を含んでもよい。記憶部202は、例えば、後述するサーバ情報400、実行スケジュール500、構成候補情報900、履歴情報1000、および稼働スケジュール1200などの情報を記憶している。通信部203は、例えば、制御部201の指示に従って副系サーバ102および管理サーバ103などの他の装置と通信する。これらの各部の詳細および記憶部202に格納されている情報の詳細については後述する。
図3は、実施形態に係る副系サーバ102のブロック構成を例示する図である。副系サーバ102は、例えば、制御部301、記憶部302、および通信部303を含む。制御部301は、例えば副系サーバ102の各部を制御する。記憶部302は、例えば、サーバ101から配備された一部のロボットの実行に関する処理のプログラムなどの情報を記憶していてよい。通信部303は、例えば、制御部301の指示に従ってサーバ101および管理サーバ103などの他の装置と通信する。これらの各部の詳細および記憶部302に格納されている情報の詳細については後述する。
図4は、実施形態に係るサーバ情報400を例示する図である。サーバ情報400には、例えば、サーバ101のスペックを示す情報が登録されている。例えば、図4のサーバ情報400には、スペックID、CPU数、メモリ容量、およびオペレーティングシステム(OS:Operating System)の情報が登録されている。スペックIDは、例えば、サーバのスペックを識別するための識別子である。CPU数は、例えば、同時に実行できる処理の数を表す値であってよい。CPU数は、例えば、サーバ101に備えられているCPUの数またはコアの数であってよい。メモリ容量は、例えば、サーバ101に備えられているメモリのサイズを示す情報である。オペレーティングシステムは、例えば、サーバ101に導入されているOSの種別を示す情報である。制御部201は、例えば、サーバ情報400を参照することで、サーバ101のスペックを取得することができる。
図5は、実施形態に係る実行スケジュール500を例示する図である。実行スケジュール500は、例えば、サーバ101に配備されているロボットの実行に関する情報が登録されている。例えば、実行スケジュール500には、ロボットID、実行時刻、CPU数、メモリ容量、および実行時間を対応づけるレコードが登録されている。
ロボットIDは、例えば、サーバ101に配備されているロボットを識別するための識別子である。実行時刻は、例えば、レコードのロボットIDで識別されるロボットの実行を開始する時刻である。CPU数は、例えば、レコードのロボットIDで識別されるロボットの実行で使用するCPUの数またはコアの数である。メモリ容量は、例えば、レコードのロボットIDで識別されるロボットの実行で使用するメモリの量を示す情報である。実行時間は、例えば、レコードのロボットIDで識別されるロボットの実行にかかる時間を示す情報である。実行時間には、例えば、レコードのCPU数およびメモリ容量が確保できた状態でロボットの実行にかかる時間が登録されてよい。制御部201は、例えば、実行スケジュール500に基づいてそれぞれの時刻でロボットの実行に使用されるリソースの量を見積もることができ、それにより、リソースが不足する不足発生期間を特定することができる。
図6は、実施形態に係るリソースの不足発生期間の特定を例示する図である。図6では、縦軸にリソースの使用量、横軸に時間がとられている。なお、リソースの使用量は、例えば、ロボットが使用するCPU数またはコアの数、或いはロボットが使用するメモリの容量であってよい。図6では、ロボット1からロボット4のそれぞれのロボットについて、時間に応じたリソースの使用量が示されている。ロボットは、実行スケジュール500の実行時刻になると実行を開始してリソースを使用し、その後、実行時間が経過するとロボットの処理が完了してリソースを使用しなくなる。
また、制御部201は、例えば、実行スケジュール500に基づいて時刻ごとのロボット全体でのリソースの使用量を予測することができる。例えば、図6では、ロボット1からロボット4のそれぞれのリソースの使用量を合計したロボット全体でのリソースの使用量が、合計使用リソースとして時系列で示されている。そして、制御部201は、所定の使用量を超えてリソースが使用される期間601を、リソースが不足する不足発生期間として特定する。なお、所定の使用量は、例えば、サーバ101で遅滞なく処理を実行する上で許容可能なリソースの使用量の上限であってよく、サーバ情報400から特定することができる。この場合に、制御部201は、副系サーバ102を起動して、不足発生期間に動作するロボット1~3のうちからリソースの使用量が所定の使用量以下となるように、一部のロボットを副系サーバ102に配備して実行させてよい。図6の例では、ロボット2が副系サーバ102に配備される例が示されている。それにより、サーバ101ではリソースが足りずに時間通りに処理できなかったロボット2を副系サーバ102において時間通りに処理することができる。
続いて、実施形態に係るサーバ101が実行するロボット実行処理について説明する。図7は、実施形態に係るサーバ101の制御部201によるロボット実行処理の動作フローを例示する図である。例えば、制御部201は、ロボット実行処理の実行指示が入力されると図7の動作フローを開始してよい。
S701において制御部201は、実行スケジュール500に登録されている各ロボットの実行スケジュールと、サーバ情報400に登録されているサーバのスペックとに基づいて、不足発生期間を予測する。
S702において制御部201は、ロボットの実行スケジュールに基づいて、不足発生期間か否かを判定する。一例では、制御部201は、S702で現在時刻が不足発生期間の準備時刻になったか否かを判定してよい。なお、不足発生期間の準備時刻は、例えば、実行スケジュールに基づいて特定された不足発生期間の開始時刻から所定時間前の時刻であってよい。所定時間は、例えば、不足発生期間の開始時刻よりも前に副系サーバ102の起動が完了するように設定されていてよい。また、所定時間は、例えば、不足発生期間の開始時刻よりも前に、不足発生期間に動作するロボットの一部の処理のプログラムの副系サーバ102への配備が完了するように設定されていてよい。それにより、例えば、副系サーバ102に不足発生期間に動作するロボットの一部の処理を実行させることができる。一方で、所定時間は、例えば、副系サーバ102を配備する期間ができるだけ短くなるように設定されてよい。それにより、副系サーバ102の利用を最小限にすることができる。S702において不足発生期間である場合(S702がYES)、フローはS703に進む。
S703において制御部201は、副系サーバ102を選定する。例えば、制御部201は、実行スケジュール500に基づいて不足発生期間に足りなくなるリソース量を見積もる。一例では、制御部201は、リソースの不足が解消されるように副系サーバ102に配備するロボットを決定し、決定したロボットが不足発生期間に使用するリソースの最大値以上となるように副系サーバ102のスペックを選定してよい。例えば、副系サーバ102に配備するロボットが使用するCPU数の最大値が4個であれば、制御部201は、4個よりも多いCPU数を備えるように副系サーバ102のスペックを選定してよい。なお、S703の処理では、制御部201は、例えば、管理サーバ103に問い合わせを送信して、管理サーバ103が提供可能なサーバのスペックを示す一覧の情報を受信してよい。そして、制御部201は、受信したスペック一覧の情報から不足するリソースの量と対応するサーバのスペックを選定してよい。
S704において制御部201は、副系サーバ102の配備および起動をリクエストする。例えば、制御部201は、選定したスペックを有する副系サーバ102を配備して起動するように管理サーバ103にリクエストを送信してよい。管理サーバ103は、一例では、パブリッククラウドのサービスを提供するサーバであってよく、リクエストに応じてサーバリソース105内に副系サーバ102を配備して起動してよい。
S705において制御部201は、不足発生期間に足りなくなるリソース量に応じて決定した配備対象のロボットを副系サーバ102に配備する。
また、S702において不足発生期間でない場合(S702がNO)、フローはS706に進む。
S706において制御部201は、副系サーバ102の停止日時となったか否かを判定する。例えば、制御部201は、起動中の副系サーバ102と対応する不足発生期間を過ぎている場合に停止日時になったと判定してよい。副系サーバ102の停止日時となっていない場合(S706がNO)、フローはS707に進む。一方、副系サーバ102の停止日時となった場合(S706がYES)、フローはS709に進む。S709において制御部201は、停止日時となった副系サーバ102に停止リクエストを送信し、フローはS707に進む。
S707において制御部201は、ロボットの実行時間になったか否かを判定する。例えば、制御部201は、実行スケジュール500に登録されているロボットの実行時刻となった場合に、YESと判定してよい。ロボットの実行時刻になっていない場合(S707がNO)、フローはS702に戻る。一方、ロボットの実行時刻になっている場合(S707がYES)、フローはS708に進む。
S708において制御部201は、実行時刻となったロボットを実行し、フローはS702に戻り処理を繰り返す。なお、制御部201は、実行時刻となったロボットが副系サーバ102に配備したロボットである場合、副系サーバ102に実行指示を送信してよい。
例えば、以上で述べたように、ロボットの実行スケジュールに基づいてリソースの不足が予測される場合には、副系サーバ102を起動し、不足するリソースの分のロボットを配備して実行させることができる。それにより、ロボットを実行スケジュールに従って安定して実行することができる。
続いて、サーバ101のリクエストによって起動される副系サーバ102におけるロボット実行処理について説明する。図8は、実施形態に係る副系サーバ102の制御部301によるロボット実行処理を例示する図である。例えば、制御部301は、管理サーバ103からリクエストを受信すると、図8の動作フローを開始してよい。
S801において制御部301は、リクエストされた副系サーバ102を起動する。例えば、制御部301は、管理サーバ103からの起動指示に従って副系サーバ102を起動してよい。なお、起動指示には、例えば、副系サーバ102のスペックを指定する情報が含まれていてよい。
S802において制御部301は、ロボットの情報を取得する。例えば、制御部301は、サーバ101から実行対象のロボットの実行プログラムを受信してよい。
S803において制御部301は、サーバ101から配備されたロボットの実行指示を受信したか否かを判定する。ロボットの実行指示を受信している場合(S803がYES)、フローはS804に進む。そして、S804において制御部301は、実行指示を受けたロボットを実行する。一方、ロボットの実行指示を受信していない場合(S803がNO)、フローはS805に進む。
S805において制御部301は、サーバ101から停止リクエストを受信したか否かを判定する。サーバ101から停止リクエストを受信していない場合(S805がNO)、フローはS803に戻り処理を繰り返す。一方、サーバ101から停止リクエストを受信している場合(S805がYES)、フローはS806に進む。
S806において制御部301は、自装置に割り当てられたリソースの停止およびリソースの解放を管理サーバ103にリクエストし、本動作フローは終了する。それにより、管理サーバ103は、副系サーバ102を停止させ、その後、副系サーバ102に割り当てていたリソースを解放することができる。
以上述べたように図8の動作フローによれば、副系サーバ102は、サーバ101から配備されたロボットを実行し、実行が完了すると、自装置を停止して自装置に割り当てられたリソースを解放することができる。
(変形例)
続いて、変形例を説明する。なお、上述の実施形態では、サーバ101は、管理サーバ103が提供可能なサーバのスペックを示す一覧の情報を受信する。そして、サーバ101は、受信したスペック一覧の情報から不足するリソースの量と対応するサーバのスペックを指定して副系サーバ102の配備および起動をリクエストする。しかしながら、実施形態はこれに限定されるものではない。例えば、別の実施形態ではサーバ101は、記憶部202に副系サーバ102のスペックの候補となる構成を予め記憶していてもよい。そして、サーバ101は、副系サーバ102の起動の際に、記憶部202に記憶されているスペックの候補の中から不足するリソースの量と対応する構成を選択して管理サーバ103に副系サーバ102の配備および起動のリクエストを送信してよい。
図9は、変形例に係る構成候補情報900を例示する図である。構成候補情報900には、例えば、スペックID、CPU数、メモリ容量、記憶領域容量、OSなどのサーバ構成を示す情報を対応づけたレコードが登録されている。スペックIDは、例えば、レコードと対応するサーバ構成のスペックを識別する情報である。CPU数、メモリ容量、記憶領域容量、およびOSなどの情報は、例えば、レコードのスペックIDで識別されるサーバ構成のCPU数、メモリ容量、記憶領域容量、OSの種別などを示す情報である。なお、記憶領域容量は、例えば、HDD(Hard Disk Drive)およびSSD(Solid State Drive)などの記憶装置に確保される記憶領域の容量を示す情報である。また、構成候補情報900には、更に、レコードのスペックIDで識別されるサーバに関するその他の情報が含まれていてもよい。
そして、制御部201は、例えば、S703の処理においてサーバの構成を選定する際に、構成候補情報900に登録されているレコードのうちからサーバの構成を選定してよい。そして、制御部201は、続くS704の処理において、選定した構成を指定して副系サーバ102の配備および起動のリクエストを管理サーバ103に送信してよい。それにより、制御部201は、管理サーバ103から提供可能なサーバのスペックを示す一覧の情報を取得しなくても、副系サーバ102の配備および起動のリクエストを送信することができる。
(第2の実施形態)
続いて、第2の実施形態を説明する。例えば、RPAではロボットは、毎日の決まった時刻、毎週末、月初めなどの所定の周期で実行されることがしばしばある。この様な場合、サーバ101に配備されているロボットに変更がなければ、不足発生期間の予測を行うと、同じ演算を繰り返し実行することになることがある。
そこで、第2の実施形態ではサーバ101の制御部201は、副系サーバ102の配備および起動のリクエストを送信する場合に、送信したリクエストの履歴を記録する。そして、制御部201は、リクエストの履歴に基づいてリソースの不足が発生する周期を特定する。それにより、制御部201は、サーバ101に配備されているロボットに変更がなければ、不足発生期間を予測する演算を実行しなくても、特定した周期から副系サーバ102を起動してロボットの処理を実行させることができる。一方で、制御部201は、サーバ101に配備されているロボットに変更が行われた場合には、ロボットの実行スケジュールとロボットが使用するリソースに関する情報とに基づいて不足発生期間を予測してよい。それにより、ロボットに変更が行われた場合にも予測に基づいて副系サーバ102を起動してロボットの処理を実行させることができる。
図10は、第2の実施形態に係るリクエストの履歴情報1000を例示する図である。履歴情報1000には、例えば、サーバID、CPU数、メモリ容量、記憶領域容量、OS、ロボットID、起動日時、および停止日時が対応付けられたレコードが登録されている。履歴情報1000のサーバIDは、例えば、レコードと対応するリクエストで配備および起動が依頼される副系サーバ102を識別する識別子である。履歴情報1000のCPU数、メモリ容量、記憶領域容量、およびOSは、例えば、レコードと対応するリクエストで配備および起動が依頼される副系サーバ102のスペックを示す情報である。ロボットIDは、例えば、リクエストで副系サーバ102に配備するロボットを識別するための識別子である。起動日時および停止日時は、例えば、レコードと対応するリクエストで配備および起動が依頼される副系サーバ102の起動日時および停止日時である。例えば、制御部201は、S704において副系サーバ102の配備および起動のリクエストを送信する際に、リクエストで指定される副系サーバ102のスペックを示す情報とともに、現在の日時を起動日時に含めたレコードを履歴情報1000に登録してよい。また、サーバ101の制御部201は、S709の処理で停止リクエストを送信する際に、履歴情報1000において停止リクエストで停止対象となる副系サーバ102と対応するレコードの停止日時に現在の日時を登録してよい。
続いて、図11を参照して、サーバ101による履歴情報1000に基づく副系サーバ102の稼働スケジュールの生成処理について説明する。例えば、サーバ101の制御部201は、所定のタイミングで図11の動作フローを開始してよい。
S1101において制御部201は、履歴のリクエストを類似するリクエストごとに分類する。例えば、制御部201は、履歴情報1000に登録されているレコードのうちで、起動するサーバのスペックと、配備されるロボットとが一致するレコードを類似するリクエストとして同じグループに分類してよい。
S1102において制御部201は、分類されたグループが所定数以上のレコードを含むか否かを判定する。所定数以上のレコードを含まない場合(S1102がNO)、本動作フローは終了する。一方、所定数以上のレコードを含む場合(S1102がYES)、フローはS1103に進む。所定数は、副系サーバ102の稼働周期を特定するのに十分な数に設定されていてよく、例えば、3個以上の数であってよく、一例では、15個であってよい。
S1103において制御部201は、各グループに含まれるレコードの情報から副系サーバ102の稼働周期を特定する。例えば、制御部201は、グループに含まれるレコードの起動日時および終了日時の情報から得たリクエストの送信間隔を副系サーバ102の稼働周期として特定してよい。また、例えば、グループに同じ日付のレコードが複数含まれる場合、制御部201は、同じ日付の複数のレコードから得られた複数の起動時刻および停止時刻を、副系サーバ102の稼働周期の起動日時および停止日時の時刻として用いてよい。
S1104において制御部201は、特定した副系サーバ102の稼働周期を稼働スケジュール1200に登録し、本動作フローは終了する。
図12は、第2の実施形態に係る稼働スケジュール1200を例示する図である。稼働スケジュール1200には、例えば、リクエストID、副系サーバID、CPU数、メモリ容量、記憶領域容量、OS、ロボットID、起動日時、および停止日時の情報を対応づけたレコードが登録されている。稼働スケジュール1200のリクエストIDは、例えば、レコードと対応するリクエストを識別する識別子である。稼働スケジュール1200の副系サーバIDは、例えば、レコードと対応するリクエストで起動される副系サーバ102を識別するための識別子である。稼働スケジュール1200のCPU数、メモリ容量、記憶領域容量、およびOSは、例えば、レコードと対応するリクエストで起動される副系サーバ102のスペックを示す情報である。ロボットIDは、例えば、レコードと対応するリクエストで起動される副系サーバ102に配備するロボットを識別する識別子である。起動日時および停止日時は、例えば、レコードと対応する副系サーバ102の起動リクエストおよび停止リクエストを送信する日時を示す情報である。
制御部201は、例えば、稼働スケジュール1200を参照することで、リソースが不足するタイミングで起動リクエストを送信して副系サーバ102を起動したり、その後、停止リクエストを送信して副系サーバ102を停止したりすることができる。
図13は、第2の実施形態に係るサーバ101の制御部201によるロボット実行処理の動作フローを例示する図である。例えば、制御部201は、ロボット実行処理の実行指示が入力されると図13の動作フローを開始してよい。
S1301において制御部201は、例えば、サーバ101に配備されているロボットに変更が行われたか否かを判定する。例えば、制御部201は、図11の動作フローで最新の稼働スケジュール1200を生成した以降に、ロボットの実行スケジュール500に変更が行われていれば(S1301がYES)、フローをS1302に進めてよい。
なお、図13においてS1302からS1310の処理は、図7のS701からS709の処理と対応していてよく、一例では、制御部201は、S701からS709の処理と同様の処理を実行してよい。
一方、S1301においてサーバ101に配備されているロボットに変更が行われていない場合(S1301がNO)、フローはS1311に進む。S1311において制御部201は、現在時刻が稼働スケジュール1200に登録されている起動日時となったか否かを判定する。現在時刻が起動日時になっていない場合(S1311がNO)、フローはS1307に進む。一方、現在時刻が起動日時になった場合(S1311がYES)、フローはS1305に進む。この場合、制御部201は、S1305において起動日時となった稼働スケジュール1200のレコードに登録されているリクエストを送信し、副系サーバ102の起動を管理サーバ103に依頼してよい。
続く、S1306の処理で制御部201は、送信したリクエストと対応する稼働スケジュール1200のレコードのロボットIDで識別されるロボットを、起動した副系サーバ102に配備してよい。
また、稼働スケジュール1200のレコードと対応するリクエストで起動した副系サーバ102については、制御部201は、S1307およびS1310の処理で稼働スケジュール1200の停止日時に従って停止させてよい。
以上で述べたように、図13の動作フローよれば、制御部201は、サーバ101に配備されているロボットに変更が行われていない場合には、稼働スケジュール1200に従って副系サーバ102の起動および停止を実行する。それにより、リソースが不足する期間の予測のために同じ演算を繰り返し実行することを抑制することができる。
(第3の実施形態)
上述の実施形態では、サーバでロボットを集約して管理するサーバ型のRPA製品を例に説明を行っているが、実施形態はこれに限定されるものではない。例えば、業務を担当するユーザの端末にロボットを配備して実行するデスクトップ型のRPA製品でも、各端末に配備されているロボットの制御をサーバ101で実行する場合、ロボットの制御負荷が増大すると、サーバ101のリソースが足りなくなることがある。この場合にも、リソースが不足する期間におけるロボットの制御処理を、副系サーバ102に移すことで、リソースの不足による処理の遅れを抑制することができる。
図14は、第3の実施形態に係るRPAシステム1400を例示する図である。RPAシステム1400は、例えば、サーバ101、副系サーバ102、管理サーバ103、ロードバランサ1401、および端末1402を含む。ロードバランサ1401は、例えば、端末1402に配備されたロボットの制御にかかる処理負荷を、サーバ101または副系サーバ102に振り分ける。端末1402にはロボットが配備されており、端末1402は、サーバ101または副系サーバ102の制御に従ってロボットを実行する。
なお、第3の実施形態では実行スケジュール500には、ロボットの実行にかかるリソースの情報として、端末1402に配備されたロボットの制御処理にかかるリソースの情報が登録されていてよい。そして、制御部201は、S702の処理で実行スケジュール500に登録されているロボットの制御処理にかかるリソースの情報に基づいてリソースの不足する不足発生期間か否かを判定してよい。不足発生期間である場合、制御部201は、S704の処理で副系サーバ102を起動するように管理サーバ103にリクエストを送信する(図14の(1))。管理サーバ103は、リクエストを受けると副系サーバ102を配備して起動する(図14の(2))。そして、制御部201は、S705の処理で不足発生期間に動作するロボットの制御処理の少なくとも一部を、起動した副系サーバ102に移す(図14の(3))。なお、制御部201は、S705の処理において、副系サーバ102に移した端末1402のロボットの制御処理については副系サーバ102に振り分けるようにロードバランサに指示を送信してよい。それにより、ロードバランサ1401は、副系サーバ102に制御処理が移されたロボットについては、制御処理を副系サーバ102に振り分けることができる。従って、サーバ101のリソースの不足に起因して端末1402に配備されたロボットの制御処理が遅れてしまうことを抑制することができる。
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、または、一部の処理が省略されてもよい。例えば、上述の実施形態ではS708において、副系サーバ102に配備したロボットに対する実行指示をサーバ101から副系サーバ102に送信する例を述べているが実施形態はこれに限定されるものではない。別の実施形態では、S705の処理で制御部201は、ロボットを配備する際にロボットの実行スケジュールの情報を副系サーバ102に送信してよい。そして、副系サーバ102の制御部301は、例えば、S803の処理でサーバ101から受信した実行スケジュールに従ってロボットの実行タイミングとなったか否かを判定してよい。また、この場合、制御部201は、S709で停止リクエストを副系サーバ102に送信しなくてもよい。代わりに、制御部301は、受信した実行スケジュールに基づいて、配備されたロボットの全ての実行が完了している場合に、S805においてYESと判定し、副系サーバ102を停止させてよい。
また、上述のS705の処理においてロボットを副系サーバ102に配備する例を述べているが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、サーバ101の制御部201は、ロボットの実行に関する少なくとも一部の処理の情報を副系サーバ102に配備してもよい。例えば、上述の第2の実施形態では、ロボットの実行に関する少なくとも一部の処理として、ロボットの制御処理を副系サーバ102に配備する例が示されている。
なお、上述の実施形態のS701およびS1302の処理において制御部201は、例えば、予測部211として動作する。また、S704およびS1305の処理において制御部201は、例えば、送信部212として動作する。S705およびS1306の処理において制御部201は、例えば、提供部213として動作する。
図15は、実施形態に係るサーバ101および副系サーバ102を実現するための情報処理装置1500のハードウェア構成を例示する図である。なお、情報処理装置1500は、例えば、コンピュータである。図15のハードウェア構成は、例えば、プロセッサ1501、メモリ1502、記憶装置1503、読取装置1504、通信インタフェース1506、および入出力インタフェース1507を備える。なお、プロセッサ1501、メモリ1502、記憶装置1503、読取装置1504、通信インタフェース1506、入出力インタフェース1507は、例えば、バス1508を介して互いに接続されている。
プロセッサ1501は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ1501は、メモリ1502を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述したサーバ101または副系サーバ102の一部または全部の機能を提供する。例えば、サーバ101のプロセッサ1501は、記憶装置1503に格納されているプログラムを読み出して実行することで、例えば、予測部211、送信部212、および提供部213として動作する。また、例えば、副系サーバ102のプロセッサ1501は、記憶装置1503に格納されているプログラムを読み出して実行することで、制御部301として動作する。
メモリ1502は、例えば半導体メモリであり、RAM領域およびROM領域を含んでいてよい。記憶装置1503は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、または外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
読取装置1504は、プロセッサ1501の指示に従って着脱可能記憶媒体1505にアクセスする。着脱可能記憶媒体1505は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体などにより実現される。なお、半導体デバイスは、例えば、USB(Universal Serial Bus)メモリである。また、磁気的作用により情報が入出力される媒体は、例えば、磁気ディスクである。光学的作用により情報が入出力される媒体は、例えば、CD-ROM、DVD、Blu-ray Disc等(Blu-rayは登録商標)である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
記憶部202および記憶部302は、例えばメモリ1502、記憶装置1503、および着脱可能記憶媒体1505を含んでいる。例えば、サーバ101の記憶装置1503には、例えば、サーバ情報400、実行スケジュール500、構成候補情報900、履歴情報1000、および稼働スケジュール1200などが格納されていてよい。また、例えば、副系サーバ102の記憶装置1503には、例えば、サーバ101から受信したロボットのプログラム、および実行スケジュールなどの情報が格納されていてよい。
通信インタフェース1506は、プロセッサ1501の指示に従って他の装置と通信する。例えば、サーバ101は、通信インタフェース1506を介して副系サーバ102および管理サーバ103と通信してよい。また、例えば、副系サーバ102は、通信インタフェース1506を介してサーバ101および管理サーバ103と通信してよい。通信インタフェース1506は、上述の通信部203および通信部303の一例である。
入出力インタフェース1507は、例えば、入力装置および出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボード、マウス、タッチパネルなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、およびスピーカなどの音声装置である。
実施形態に係る各プログラムは、例えば、下記の形態でサーバ101および副系サーバ102に提供される。
(1)記憶装置1503に予めインストールされている。
(2)着脱可能記憶媒体1505により提供される。
(3)プログラムサーバなどのサーバから提供される。
なお、図15を参照して述べたハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の構成の一部が、削除されてもよく、また、新たな構成が追加されてもよい。また、別の実施形態では、例えば、上述の制御部201および制御部301の一部または全部の機能がFPGA、SoC、ASIC、およびPLDなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。ASICは、Application Specific Integrated Circuitの略称である。PLDは、Programmable Logic Deviceの略称である。
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して、または実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
100 RPAシステム
101 サーバ
102 副系サーバ
103 管理サーバ
105 サーバリソース
201 制御部
202 記憶部
203 通信部
211 予測部
212 送信部
213 提供部
301 制御部
302 記憶部
303 通信部
1400 RPAシステム
1401 ロードバランサ
1402 端末
1500 情報処理装置
1501 プロセッサ
1502 メモリ
1503 記憶装置
1504 読取装置
1505 着脱可能記憶媒体
1506 通信インタフェース
1507 入出力インタフェース
1508 バス

Claims (6)

  1. 第1のサーバによる制御対象の複数のロボットの実行スケジュールと、前記複数のロボットの実行に関する処理で使用されるリソースの量とに基づいて、リソースの使用が所定の使用量を超える処理負荷の発生を予測し、
    前記所定の使用量を超える前記処理負荷の発生前に第2のサーバの起動が完了するようにリクエストを管理サーバに送信し、
    前記複数のロボットのうち、前記処理負荷の発生期間に実行されるロボットのうちの一部のロボットに関する情報を前記第2のサーバに提供して、前記第2のサーバに前記一部のロボットの実行に関する処理を実行させる、
    処理をコンピュータに実行させる情報処理プログラム。
  2. 前記一部のロボットの実行に関する処理で使用されるリソースの量に基づいて複数のサーバ構成の候補のうちから前記第2のサーバの構成を選定する処理を更に含む、請求項1に記載の情報処理プログラム。
  3. 前記リクエストの送信履歴に基づいて前記第2のサーバの稼働スケジュールを生成する処理を更に含み、
    前記予測する処理は、前記稼働スケジュールの生成後に前記複数のロボットの前記実行スケジュールに変更が行われた場合に実行される、請求項1または請求項2に記載の情報処理プログラム。
  4. 前記予測する処理は、前記複数のロボットの実行スケジュールと、前記複数のロボットの実行に関する処理で使用されるリソースの量とに基づいて、時刻ごとの前記第1のサーバで使用されるリソースの量を予測し、
    前記送信する処理は、予測されたリソースの量が前記所定の使用量を超える期間になる前に前記第2のサーバの起動が完了するように前記リクエストを前記管理サーバに送信する、ことを特徴とする請求項1から請求項3のいずれか1項に記載の情報処理プログラム。
  5. 第1のサーバによる制御対象の複数のロボットの実行スケジュールと、前記複数のロボットの実行に関する処理で使用されるリソースの量とに基づいて、リソースの使用が所定の使用量を超える処理負荷の発生を予測し、
    前記所定の使用量を超える前記処理負荷の発生前に第2のサーバの起動が完了するようにリクエストを管理サーバに送信し、
    前記複数のロボットのうち、前記処理負荷の発生期間に実行されるロボットのうちの一部のロボットに関する情報を前記第2のサーバに提供して、前記第2のサーバに前記一部のロボットの実行に関する処理を実行させる、
    ことを含む、コンピュータが実行する情報処理方法。
  6. 第1のサーバによる制御対象の複数のロボットの実行スケジュールと、前記複数のロボットの実行に関する処理で使用されるリソースの量とに基づいて、リソースの使用が所定の使用量を超える処理負荷の発生を予測する予測部と、
    前記所定の使用量を超える前記処理負荷の発生前に第2のサーバの起動が完了するようにリクエストを管理サーバに送信する送信部と、
    前記複数のロボットのうち、前記処理負荷の発生期間に実行されるロボットのうちの一部のロボットに関する情報を前記第2のサーバに提供して、前記第2のサーバに前記一部のロボットの実行に関する処理を実行させる、提供部と、
    を含む、情報処理装置。
JP2020133873A 2020-08-06 2020-08-06 情報処理プログラム、情報処理方法、情報処理装置 Withdrawn JP2022030101A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020133873A JP2022030101A (ja) 2020-08-06 2020-08-06 情報処理プログラム、情報処理方法、情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020133873A JP2022030101A (ja) 2020-08-06 2020-08-06 情報処理プログラム、情報処理方法、情報処理装置

Publications (1)

Publication Number Publication Date
JP2022030101A true JP2022030101A (ja) 2022-02-18

Family

ID=80323888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020133873A Withdrawn JP2022030101A (ja) 2020-08-06 2020-08-06 情報処理プログラム、情報処理方法、情報処理装置

Country Status (1)

Country Link
JP (1) JP2022030101A (ja)

Similar Documents

Publication Publication Date Title
JP6277827B2 (ja) 情報処理装置、スケール管理方法およびプログラム
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
US20150339628A1 (en) Online software service system and method
US10853128B2 (en) Virtual machine management device and virtual machine management method
US11520637B2 (en) Resource reservation management device, resource reservation management method, and resource reservation management program
JPWO2013132735A1 (ja) 仮想マシン管理装置及び仮想マシン管理方法
JP2017219972A (ja) コンピュータプログラム、情報処理方法、管理ノードおよび情報処理システム
WO2020190986A1 (en) Interoperable cloud based media processing using dynamic network interface
JP7035858B2 (ja) マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステム
KR101585160B1 (ko) 독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법
JP2016001417A (ja) 計算機システム
US10241822B2 (en) Information processing apparatus for moving virtual machine and method of moving virtual machine
JP6620609B2 (ja) 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
JP5549189B2 (ja) 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
JP6940761B2 (ja) 情報処理装置、仮想マシン監視プログラム、および情報処理システム
JP2022030101A (ja) 情報処理プログラム、情報処理方法、情報処理装置
US20190286468A1 (en) Efficient control of containers in a parallel distributed system
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
EP3825854A1 (en) Compute instance scheduling method and apparatus
CN116204268A (zh) 一种云实例的扩缩容方法及其相关设备
JP7104327B2 (ja) 情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法
WO2016075771A1 (ja) 計算機システムおよび計算機システムにおけるオートスケール方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230511

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20240129