IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

<>
  • 特許-制御装置、及び制御プログラム 図1
  • 特許-制御装置、及び制御プログラム 図2
  • 特許-制御装置、及び制御プログラム 図3
  • 特許-制御装置、及び制御プログラム 図4
  • 特許-制御装置、及び制御プログラム 図5
  • 特許-制御装置、及び制御プログラム 図6
  • 特許-制御装置、及び制御プログラム 図7
  • 特許-制御装置、及び制御プログラム 図8
  • 特許-制御装置、及び制御プログラム 図9
  • 特許-制御装置、及び制御プログラム 図10
  • 特許-制御装置、及び制御プログラム 図11
  • 特許-制御装置、及び制御プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】制御装置、及び制御プログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240110BHJP
   G06F 9/455 20180101ALI20240110BHJP
【FI】
G06F9/50 150A
G06F9/455 150
【請求項の数】 8
(21)【出願番号】P 2019127717
(22)【出願日】2019-07-09
(65)【公開番号】P2021012643
(43)【公開日】2021-02-04
【審査請求日】2022-06-21
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】基村 規
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2018-28824(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
要求された処理を受け付ける情報処理システムに構築された、構成の変更対象となっている複数の処理環境の各々で、受け付けた処理を実行する少なくとも1つの処理実体が稼働している場合、処理時間に関して予め定めた条件を満たす処理を実行する前記処理実体を特定処理環境に集約した上で、各々の前記処理実体の処理を継続させ、前記処理実体での処理の終了に伴い前記処理実体が存在しなくなった前記処理環境から順に前記処理環境を削除し、最後に前記特定処理環境を削除することによって、使用されなくなった前記情報処理システムのリソースを順次解放するように前記情報処理システムを制御する制御部
を備えた制御装置。
【請求項2】
前記予め定めた条件が、処理を開始してから終了するまでの処理時間が閾値を超えるという条件に設定された
請求項1記載の制御装置。
【請求項3】
前記制御部は、これまでに実行した実行済み処理の処理時間と前記実行済み処理の処理条件が記録された履歴情報を参照して、要求された処理に対応する前記実行済み処理の前記履歴情報から要求された処理の処理時間を推定し、前記情報処理システムに対して前記処理実体の再配置を指示する制御を行う
請求項2記載の制御装置。
【請求項4】
前記履歴情報における処理条件として、前記実行済み処理の要求に伴って受け付けたデータのデータサイズが記録されている場合、
前記制御部は、要求された処理に対応する前記実行済み処理におけるデータサイズの処理時間から、要求されたタスクの処理時間を推定する制御を行う
請求項3記載の制御装置。
【請求項5】
前記制御部は、要求された処理の処理順序に関する優先度が前記処理実体で実行されている他の処理より低く設定されている場合、推定した処理時間を設定された優先度に応じて延長する制御を行う
請求項3または請求項4記載の制御装置。
【請求項6】
前記制御部は、実行前の要求に対して推定される処理時間が前記閾値を超える場合、前記実行前の要求を実行する前記処理実体を前記特定処理環境に配置するように前記情報処理システムを制御する
請求項3~請求項5の何れか1項に記載の制御装置。
【請求項7】
前記制御部は、前記情報処理システムが稼働している期間に、前記情報処理システムに対して前記処理実体の再配置を複数回指示する制御を行う
請求項3~請求項6の何れか1項に記載の制御装置。
【請求項8】
コンピュータを、請求項1~請求項の何れか1項に記載の制御装置の制御部として機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、及び制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、クライアントからのリクエストを処理可能な複数の仮想マシンと、前記複数の仮想マシンにリクエストを転送する負荷分散装置を少なくとも備える複数の処理環境を管理する管理システムであって、負荷分散装置から、何れの仮想マシンにリクエストを転送させるかを管理する管理手段を有し、前記管理手段は、クライアントからのリクエストを受け付ける装置についての設定が、第1の処理環境の負荷分散装置から前記第1の処理環境とは別の第2の処理環境の装置に変更された際に、前記第1の処理環境の負荷分散装置から前記第2の処理環境の仮想マシンにリクエストを転送させるよう管理し、かつ、前記第1の処理環境の負荷分散装置から前記第1の処理環境の仮想マシンにリクエストを転送させないよう管理することを特徴とする管理システムが開示されている。
【0003】
特許文献2には、1または複数のアカウントに対応する1または複数の情報処理端末からの指示に応じて処理を実行する複数の情報処理装置を含む情報処理装置群に対して、前記1または複数の情報処理端末から少なくとも1つの情報処理装置を処理実行の対象から除外するリクエストを受け付け、受け付けた前記リクエストに応じて、前記複数の情報処理装置のうち除外対象とする情報処理装置に搭載される処理実行履歴を記憶する記憶部から、前記除外対象とする情報処理装置とは異なる情報処理装置に前記処理実行履歴を複写し、前記処理実行履歴の複写が完了した後、前記除外対象とする情報処理装置を処理実行対象から除外する、処理をコンピュータに実行させることを特徴とするスケールイン処理プログラムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-88114号公報
【文献】特開2018-73099号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
生活パターンや勤務時間の多様化に伴い、昼夜を問わずユーザからの要求を受け付け、要求されたサービスを提供する情報処理システムの導入が進められている。
【0006】
こうした情報処理システムでは、例えば機能の向上を目的として情報処理システムの構成が変更されるような場合であっても、構成の変更期間にサービスの提供が停止しないような工夫が行われる。
【0007】
例えば、情報処理システムで変更前の構成と変更後の構成を併存させておき、予め定めた時間以降に受け付けた要求を変更後の構成で処理することで、構成の変更に伴うサービスの停止期間が発生しないようにしている。
【0008】
しかしながら、情報処理システムで変更前の構成と変更後の構成を併存させた場合、構成の変更後も、利用されなくなった変更前の構成が引き続き情報処理システムのリソースを消費することになる。したがって、構成の変更前よりも情報処理システムを維持するコストが増加してしまうことがあった。
【0009】
本発明は、要求された処理を実行する情報処理システムの構成の変更に伴い、変更前の構成と変更後の構成を併存させる場合と比較して、構成の変更に伴う情報処理システムのコストを抑制することができる制御装置及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
第1態様に係る制御装置は、要求された処理を受け付ける情報処理システムに構築された、構成の変更対象となっている複数の処理環境の各々で、受け付けた処理を実行する少なくとも1つの処理実体が稼働している場合、処理時間に関して予め定めた条件を満たす処理を実行する前記処理実体を特定処理環境に集約した上で、各々の前記処理実体の処理を継続させるように前記情報処理システムを制御する制御部を備える。
【0011】
第2態様に係る制御装置は、第1態様に係る制御装置において、前記予め定めた条件が、処理を開始してから終了するまでの処理時間が閾値を超えるという条件に設定される。
【0012】
第3態様に係る制御装置は、第2態様に係る制御装置において、前記制御部は、これまでに実行した実行済み処理の処理時間と前記実行済み処理の処理条件が記録された履歴情報を参照して、要求された処理に対応する前記実行済み処理の前記履歴情報から要求された処理の処理時間を推定し、前記情報処理システムに対して前記処理実体の再配置を指示する制御を行う。
【0013】
第4態様に係る制御装置は、第3態様に係る制御装置において、前記履歴情報における処理条件として、前記実行済み処理の要求に伴って受け付けたデータのデータサイズが記録されている場合、前記制御部は、要求された処理に対応する前記実行済み処理におけるデータサイズの処理時間から、要求されたタスクの処理時間を推定する制御を行う。
【0014】
第5態様に係る制御装置は、第3態様または第4態様に係る制御装置において、前記制御部は、要求された処理の処理順序に関する優先度が前記処理実体で実行されている他の処理より低く設定されている場合、推定した処理時間を設定された優先度に応じて延長する制御を行う。
【0015】
第6態様に係る制御装置は、第3態様~第5態様の何れかの態様に係る制御装置において、前記制御部は、実行前の要求に対して推定される処理時間が前記閾値を超える場合、前記実行前の要求を実行する前記処理実体を前記特定処理環境に配置するように前記情報処理システムを制御する。
【0016】
第7態様に係る制御装置は、第3態様~第6態様の何れかの態様に係る制御装置において、前記制御部は、前記情報処理システムが稼働している期間に、前記情報処理システムに対して前記処理実体の再配置を複数回指示する制御を行う。
【0017】
第8態様に係る制御装置は、第1態様~第7態様の何れかの態様に係る制御装置において、前記制御部は、前記処理実体での処理の終了に伴い使用されなくなった前記情報処理システムのリソースを順次解放するように前記情報処理システムを制御する。
【0018】
第9態様に係る制御装置は、第8態様に係る制御装置において、前記制御部は、処理を実行する前記処理実体が存在しなくなった前記処理環境から順に前記処理環境を削除し、最後に前記特定処理環境を削除するように前記情報処理システムを制御する。
【0019】
第10態様に係る制御プログラムは、コンピュータを、第1態様~第9態様の何れかの態様に係る制御装置の機能部として機能させるためのプログラムである。
【発明の効果】
【0020】
第1態様及び第10態様によれば、要求された処理を実行する情報処理システムの構成の変更に伴い、変更前の構成と変更後の構成を併存させる場合と比較して、構成の変更に伴う情報処理システムのコストを抑制することができる、という効果を有する。
【0021】
第2態様によれば、処理時間が閾値を超えるような処理を実行する処理実体を、特定処理環境に集約することができる、という効果を有する。
【0022】
第3態様によれば、処理時間が不明な処理であったとしても、処理時間が閾値を超えるような処理であるか事前に推定することができる、という効果を有する。
【0023】
第4態様によれば、受け付けた処理の種類のみから処理時間を推定する場合と比較して、処理時間を精度よく推定することができる、という効果を有する。
【0024】
第5態様によれば、要求された処理の優先度によって処理時間を延長しない場合と比較して、処理時間を精度よく推定することができる、という効果を有する。
【0025】
第6態様によれば、要求された処理を情報処理システムで実行する前に、処理時間が閾値を超えるような処理を実行する処理実体を特定処理環境に集約することができる、という効果を有する。
【0026】
第7態様によれば、実際の処理時間に応じて、処理時間が閾値を超えるような処理を実行する処理実体を特定処理環境に集約することができる、という効果を有する。
【0027】
第8態様によれば、処理が終了した後も処理実体が使用したリソースを解放しない場合と比較して、情報処理システムのコストを抑制することができる、という効果を有する。
【0028】
第9態様によれば、処理実体を含まない処理環境を存在させる場合と比較して、情報処理システムのコストを抑制することができる、という効果を有する。
【図面の簡単な説明】
【0029】
図1】制御システムのシステム構成例を示す図である。
図2】情報処理システムの構成例を示す図である。
図3】第1実施形態及び第2実施形態に係る制御装置の機能構成例を示す図である。
図4】履歴情報の一例を示す図である。
図5】制御装置における電気系統の要部構成例を示す図である。
図6】第1実施形態に係る再配置処理の流れの一例を示すフローチャートである。
図7】再配置処理が実行された場合における情報処理システムの構成の変化例を示す図である。
図8】リソースの解放処理の流れの一例を示すフローチャートである。
図9】第2実施形態に係るノードの配置制御処理における流れの一例を示すフローチャートである。
図10】第3実施形態に係る制御装置の機能構成例を示す図である。
図11】バージョン情報の一例を示す図である。
図12】第3実施形態に係るノードの配置制御処理における流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0030】
以下、本実施の形態について図面を参照しながら説明する。なお、機能が同じ構成要素及び処理には全図面を通して同じ符合を付与し、重複する説明を省略する。
【0031】
<第1実施形態>
図1は、制御システム100のシステム構成例を示す図である。制御システム100は、入力装置10、制御装置20、及び情報処理システム30を含み、それぞれ通信回線2で接続されている。
【0032】
通信回線2で用いられる通信プロトコルに制約はなく、通信回線2は有線回線であっても無線回線であってもよく、また、有線回線と無線回線が混在した回線であってもよい。更に、通信回線2は専用回線であっても、インターネットのように不特定多数のユーザと回線を共有する公衆回線であってもよい。
【0033】
入力装置10は、情報処理システム30に要求する処理を実行させるための電文を生成する装置であり、情報処理システム30が提供するサービスを利用するユーザによって使用される。ユーザが情報処理システム30に要求する処理の内容に制約はなく、情報処理システム30が提供するサービスに対する処理が要求される。以降では、情報処理システム30に要求する処理を実行させるための電文のことを「リクエスト」という。
【0034】
入力装置10は生成したリクエストを制御装置20に送信する。
【0035】
制御装置20は、入力装置10からリクエストを受け付けると共に、リクエストによって指定された処理を実行する情報処理システム30に、受け付けたリクエストを送信する中継装置としての役割を備えた装置である。
【0036】
図1では説明の便宜上、通信回線2に1つの情報処理システム30が接続されている例を示しているが、通信回線2に接続される情報処理システム30の数に制約はなく、制御装置20は、リクエストによって指定された情報処理システム30に、受け付けたリクエストを中継するものとする。また、通信回線2に接続される入力装置10の数にも制約はなく、制御装置20は、通信回線2に接続された少なくとも1台の入力装置10からリクエストを受け付ける。
【0037】
更に、制御装置20は、リクエストによって指示された処理を実行する情報処理システム30の構成を制御する。
【0038】
情報処理システム30は、リクエストによって指示された処理を実行するシステムである。情報処理システム30の実現形態に制約はなく、情報処理システム30を構成する機器を、情報処理システム30を用いてサービスを提供する事業者が有する建物内に設置するオンプレミス形態で実現してもよいが、ここでは一例として、クラウドプロバイダが提供するクラウドサービスを利用して情報処理システム30が実現されているものとする。
【0039】
図2は、情報処理システム30がリクエストによって指示された処理を実行する場合の構成例を示す図である。情報処理システム30の構成とは、リクエストによって指示された処理を実行するために情報処理システム30に構築される実行環境のことであり、具体的には、処理を行うソフトウェア構成のことをいう。
【0040】
情報処理システム30が処理を行う場合、まず、クラウドサービスを利用して仮想サーバを生成する。仮想サーバとは、処理を実行する処理環境のことであり、仮想サーバには、例えば処理を実行するCPU(Central Processing Unit)、RAM(Random Access Memory)、及びハードディスクに代表される不揮発性の記憶装置のように、要求された処理を実行するために必要な資源(リソース)が割り当てられている。
【0041】
なお、処理の実行に際して、クラウドプロバイダから必ずしも専有的に利用可能な1台のサーバが割り当てられるとは限らない。クラウドプロバイダはサービスを提供する事業者との契約に応じて、1台のサーバを複数の仮想的なサーバに分割した上で、仮想的に分割したサーバを事業者に提供することがある。この仮想的に分割されたサーバの各々は「仮想サーバ」と呼ばれる。以降では、仮想サーバのことを「インスタンス34」ということにする。また、要求された処理のことを「タスク」ということにする。
【0042】
事業者がクラウドプロバイダに対して支払うクラウドサービスの利用料金は、インスタンスの数及び利用時間の少なくとも一方によって設定される。すなわち、要求するインスタンス34の数が多くなるほど、また、インスタンス34の利用時間が長くなるに従って、クラウドプロバイダに支払う利用料金が高くなる。
【0043】
図2の例では、第1インスタンス34と第2インスタンス34の2つのインスタンス34が情報処理システム30に存在し、各々のインスタンス34にノード32が配置されている。
【0044】
ノード32とは、インスタンス34が有するリソースを使用して、入力装置10から受け付けたリクエストに対応するタスク(以降、「要求されたタスク」という)を予め用意されたプログラムに従って実行する処理実体のことである。ノード32は、何れかのインスタンス34に配置され、配置されたインスタンス34のリソースを使用する。
【0045】
要求されたタスクの種類毎にノード32で実行されるプログラムが異なることから、説明の便宜上、例えばタスクAを実行するノード32のことをAノード32といい、タスクAとは種類の異なるタスクBを実行するノード32のことをBノード32ということにする。また、実行するタスクの種類を区別して説明する必要がない場合には、単に「ノード32」ということにする。
【0046】
上述した表現を用いれば、図2は、2つのAノード32と1つのBノード32が配置された第1インスタンス34と、それぞれ1つずつAノード32とBノード32が配置された第2インスタンス34を有する情報処理システム30の状態を表している。
【0047】
なお、クラウドプロバイダとの契約の範囲内であれば、情報処理システム30で用いられるインスタンス34の数に制約はなく、また、1つのインスタンス34に配置されるノード32の数にも制約はない。上述したように、こうした情報処理システム30の構成は、制御装置20によって制御される。
【0048】
図3は、制御装置20の機能構成例を示す図である。図3に示すように、制御装置20は受付部21、制御部22、履歴管理部23、出力部24の各機能部と、履歴情報DB(Database)25を含む。
【0049】
受付部21は、入力装置10からリクエストを受け付けると共に、タスクを処理する情報処理システム30の構成状態、及びタスクの処理状況を情報処理システム30から受け付け、制御部22に通知する。
【0050】
情報処理システム30の構成状態とは、情報処理システム30に実際に構築されている構成のことであり、情報処理システム30は、例えばインスタンス34の数及び種類、並びにインスタンス34に含まれるノード32の種類及び数というように、情報処理システム30に構築されている構成がわかる情報を制御装置20に通知する。ノード32の種類とは、ノード32で実行されるタスクの種類によって規定される。すなわち、タスクAを実行するノード32であれば、Aノード32というノード32の種類が情報処理システム30の構成状態に含まれる。なお、インスタンス34の種類については後ほど説明する。
【0051】
タスクの処理状況とは、ノード32で実行されるタスクの処理状況のことであり、例えばタスクが実行中か否かといった実行ステータス、及びタスクが終了している場合には、タスクの実行を開始してから終了するまでに要した処理時間が含まれる。ここでは一例として、タスクの処理時間を情報処理システム30でタスクの実行を開始してから終了するまでに要した時間として説明するが、制御装置20がタスクの実行を情報処理システム30に依頼してから、依頼したタスクの実行が終了するまでに要した時間を処理時間としてもよい。
【0052】
制御部22は、入力装置10からリクエストを受け付けると、要求されたタスクを出力部24に通知して、タスクの実行を情報処理システム30に依頼する制御を行う。また、制御部22は、受付部21から受け付けた情報処理システム30の構成状態、及びタスクの処理状況に応じて、タスクを実行する情報処理システム30に対して、情報処理システム30の構成を変更させる制御を行う。具体的には、制御部22は、処理時間に関して予め定めた条件を満たすタスクが存在する場合、当該タスクを実行するノード32を特定のインスタンス34に集約させるような制御を行う。なお、処理時間に関する予め定めた条件がどのような条件であるかについては後ほど説明する。
【0053】
履歴管理部23は、制御部22の制御に従い、入力装置10から受け付けたリクエストの内容、及び要求されたタスクの処理状況を対応付けた履歴情報4を生成し、履歴情報DB25で管理する。また、履歴管理部23は、制御部22の制御に従い、指示されたリクエストの内容やタスクの処理状況を履歴情報DB25から取得して制御部22に通知する。
【0054】
図4は、履歴情報DB25で管理される履歴情報4の一例を示す図である。履歴情報4には、入力装置10から受け付けたリクエスト毎に受付日時、リクエストID(Identification)、付加データ、タスクID、及び処理時間が含まれる。
【0055】
受付日時は、リクエストの受付日及び時間が記録される。
【0056】
リクエストIDは、制御装置20の内部でリクエストを一意に管理するために用いられる識別子であり、図4に示す履歴情報4の場合、各々のリクエストと重複しないような番号が割り当てられている。
【0057】
付加データは、リクエストと共に入力装置10から受け付けたデータのことである。例えばリクエストが商品の発注要求の場合、発注する商品名や数量が記載された発注表のファイルが付加データとしてリクエストに添付される。また、リクエストが翻訳要求の場合、翻訳対象となる文書を含むファイルが付加データとしてリクエストに添付される。したがって、履歴情報4の付加データには、例えば添付されたファイルのファイル名が設定される。リクエストには付加データを必要としないリクエストも存在するが、このような場合、履歴情報4の付加データにはリクエストに付加データが存在しないことを表す“-”が設定される。
【0058】
タスクIDは、リクエストによって要求されたタスクの種類を一意に表す識別子であり、情報処理システム30で実行されるタスク毎に、タスクの種類を表す識別子が設定される。
【0059】
処理時間は、上述したように情報処理システム30でタスクの実行を開始してから終了するまでに要した処理時間のことであり、情報処理システム30から通知された処理時間が設定される。なお、実行が終了していないタスクの処理時間は情報処理システム30から通知されないため、このようなタスクに対応した履歴情報4の処理時間には、タスクが終了していないことを表す“-”が設定される。すなわち、履歴情報4の処理時間に時間が設定されているタスクは実行済みのタスクであることを表し、“-”が設定されているタスクは、情報処理システム30で実行中または実行待ちとなっているタスクであることを表している。以降では、情報処理システム30に実行を依頼したが、まだ実行が完了していないタスクのことを総称して「実行中のタスク」ということにする。
【0060】
なお、履歴情報4に設定される内容は、図4に示した履歴情報4の各項目に限られない。例えばリクエストに添付されたファイルのファイルサイズやファイルの作成者といったファイルの特徴を表す属性、及びタスクの優先度や終了希望期限といったタスクに対する指示内容を履歴情報4に設定してもよい。
【0061】
付加データ、ファイルの特徴を表す属性、及びタスクに対する指示内容は、情報処理システム30でのタスクの処理に影響を与える内容であることから、本実施の形態に係る処理条件の一例である。
【0062】
出力部24は、制御部22の制御に従い、要求されたタスクを例えばリクエストIDのようにタスクを一意に識別する情報と共に、指定された情報処理システム30に出力する。具体的には、出力部24は通信回線2を通じて、指定された情報処理システム30にタスクを出力するが、情報処理システム30にタスクを出力する方法はこれに限られない。例えば出力部24は、制御装置20の情報処理システム30毎に予め定めた記憶領域にタスクを記憶し、情報処理システム30が自身のシステムに割り当てられた記憶領域の内容を読み込むことで、情報処理システム30との間でタスクの受け渡しを行ってもよい。
【0063】
情報処理システム30では、例えばリクエストIDを通じて、制御装置20から受け付けたタスクと、当該タスクを実行するノード32が対応付けられる。
【0064】
次に、制御装置20における電気系統の要部構成例について説明する。
【0065】
図5は、制御装置20における電気系統の要部構成例を示す図である。制御装置20は例えばコンピュータ40を用いて構成される。
【0066】
コンピュータ40は、手順に基づいてデータの変換、演算、及び加工を行う機能を持ったプロセッサの一例であり、制御装置20に係る各機能部を担うCPU41、コンピュータ40を図3に示した各機能部として機能させる制御プログラムを記憶するROM(Read Only Memory)42、CPU41の一時的な作業領域として使用されるRAM43、不揮発性メモリ44、及び入出力インターフェース(I/O)45を備える。
【0067】
そして、CPU41、ROM42、RAM43、不揮発性メモリ44、及びI/O45がバス46を介して各々接続されている。
【0068】
不揮発性メモリ44は、不揮発性メモリ44に供給される電力が遮断されても、記憶した情報が維持される記憶装置の一例であり、例えば半導体メモリが用いられるがハードディスクを用いてもよい。履歴情報4を管理する履歴情報DB25は、例えば不揮発性メモリ44に構築される。
【0069】
I/O45には、例えば通信ユニット47、入力ユニット48、及び表示ユニット49が接続される。
【0070】
通信ユニット47は通信回線2に接続され、通信回線2に接続する入力装置10及び情報処理システム30、更には、通信回線2に接続される図示しない外部装置との間でデータ通信を行う通信プロトコルを備える。
【0071】
入力ユニット48は、制御装置20を操作するオペレータの指示を受け付けてCPU41に通知する装置であり、例えばボタン、タッチパネル、キーボード、及びマウス等が用いられる。音声によってオペレータの指示を受け付ける場合には、入力ユニット48としてマイクが用いられることがある。
【0072】
表示ユニット49は、CPU41によって処理された情報をオペレータに出力する装置の一例であり、例えば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、及び映像をスクリーンに投影するプロジェクタ等が用いられる。
【0073】
I/O45に接続されるユニットは一例であり、例えば記録媒体に画像を形成する画像形成ユニット等、必要に応じて図5に示したユニット以外のユニットが接続されることは言うまでもない。
【0074】
次に、依頼したタスクを実行する情報処理システム30の構成を制御する制御装置20の動作について詳細に説明する。
【0075】
図6は、制御装置20のCPU41によって実行される再配置処理の流れの一例を示すフローチャートである。再配置処理は例えば情報処理システム30において複数のインスタンス34が割り当てられ、各々のインスタンス34で、少なくとも1つのノード32が稼働している状況で定期的に実行されるが、情報処理システム30の構成に関係なく、定期的に実行してもよい。なお、制御装置20は、稼働している情報処理システム30の構成を、例えば情報処理システム30から通知される構成状態によって把握しているものとする。
【0076】
再配置処理を規定する制御プログラムは、例えば制御装置20のROM42に予め記憶されている。制御装置20のCPU41は、ROM42に記憶される制御プログラムを読み込み、再配置処理を実行する。
【0077】
ステップS10において、CPU41は、情報処理システム30に存在する実行中のノード32の中から、何れか1つのノード32を選択する。説明の便宜上、ステップS10で選択したノード32を「選択ノード32」ということにする。
【0078】
実行中のノード32は情報処理システム30でまだ処理が完了していないことから、履歴情報4の処理時間に時間ではなく“-”が設定されている。したがって、実行中のノード32の中から、何れか1つのノード32を選択するとは、具体的には、CPU41が処理時間に“-”が設定されている履歴情報4の中から、何れか1つの履歴情報4を選択することに相当する。
【0079】
ステップS20において、CPU41は、選択ノード32が実行するタスク、すなわち、ステップS10で選択した履歴情報4のタスクIDによって表されるタスクと同じタスクIDを含む実行済みの履歴情報4が履歴情報DB25に存在するか否かを判定する。実行済みの履歴情報4とは、情報処理システム30で実行済みのタスクに対応した履歴情報4のことであり、処理時間に時間が設定されている履歴情報4のことである。
【0080】
選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が存在する場合には、ステップS30に移行する。
【0081】
ステップS30において、CPU41は、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4から処理時間を推定する。同じ種類のタスクであればタスクの処理時間が同じになる傾向があるため、選択ノード32が実行するタスクの処理時間は、当該タスクと同じタスクIDを含む実行済みの履歴情報4の処理時間と同じになると推定される。
【0082】
なお、履歴情報DB25に、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が複数存在する場合には、CPU41は、このうちの何れか1つの履歴情報4の処理時間を、選択ノード32が実行するタスクの処理時間とすればよい。しかしながら、実行済みの履歴情報4が複数存在する場合におけるタスクの処理時間の推定方法はこれに限られない。例えば選択ノード32が実行するタスクのタスクIDを含む各々の実行済みの履歴情報4における処理時間の統計量を、選択ノード32が実行するタスクの処理時間として推定してもよい。処理時間の統計量には、例えば各々の処理時間の平均値、最小値、または最大値等が用いられる。
【0083】
ステップS40において、CPU41は、ステップS30で推定した処理時間が閾値を超えるか否かを判定する。当該閾値は、情報処理システム30で実行される他のタスクに比べて処理時間が長いタスク(以降、「長期タスク」という)であるか否かを判定するための基準値であり、処理時間に関する予め定めた条件の一例である。閾値は、制御装置20のオペレータによって設定され、例えば不揮発性メモリ44に予め記憶されている。
【0084】
選択ノード32が実行するタスクが長期タスクの場合、少なくともタスクが終了するまではタスクを含むインスタンス34も存続させる必要がある。上述したように、クラウドサービスの利用料金は、情報処理システム30で利用するインスタンス34の数及び利用時間の少なくとも一方によって設定される。したがって、インスタンス34に長期タスクが含まれる場合には、当該インスタンス34に含まれる他のタスクが終了した後も、長期タスクが終了するまでは、長期タスクのためだけにインスタンス34を存続させる必要がある。特に、長期タスクが複数のインスタンス34に分散している場合には、複数のインスタンス34の各々が閾値によって表される時間を超えて存続することになり、情報処理システム30を維持するコスト、すなわち、クラウドサービスの利用料金の増大につながる。
【0085】
したがって、CPU41は、長期タスクを1つのインスタンス34に集約させた上で、情報処理システム30で実行される各々のタスクの処理を継続させるようにするタスクの再配置を行う。
【0086】
そのため、ステップS30で推定した処理時間が閾値を超える場合にはステップS50に移行し、ステップS50において、CPU41は、情報処理システム30に長期インスタンス34が存在するか否かを判定する。
【0087】
長期インスタンス34とは、インスタンス34の種類を示すものであり、長期タスクが集約されて配置されるインスタンス34のことである。長期インスタンス34は、本実施の形態に係る特定処理環境の一例である。
【0088】
情報処理システム30に長期インスタンス34が存在するか否かは、情報処理システム30から通知される情報処理システム30の構成状態によって判定される。そして、長期インスタンス34が存在しない場合にはステップS60に移行する。
【0089】
ステップS60において、CPU41は、情報処理システム30に対して長期インスタンス34を新たに生成するように指示する生成指示を出力して、ステップS70に移行する。これにより、情報処理システム30で、長期インスタンス34が生成される。
【0090】
一方、ステップS50の判定処理で、情報処理システム30に長期インスタンス34が存在すると判定された場合には、新たに長期インスタンス34を生成する必要がないため、ステップS60の処理を実行することなくステップS70に移行する。
【0091】
ステップS70において、CPU41は通信ユニット47を制御して、長期タスクを実行する選択ノード32が長期インスタンス34に配置されるように、選択ノード32が実行するタスクに対応付けられたリクエストIDと共に、情報処理システム30に対して選択ノード32の配置の変更を指示する配置指示を出力する。これにより、長期タスクを実行する選択ノードが長期インスタンス34に再配置されることになる。配置指示を出力した後、ステップS80に移行する。
【0092】
一方、ステップS20の判定処理で、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が存在しないと判定された場合、選択ノード32で実行されるタスクは、情報処理システム30で初めて実行される種類のタスクということになる。すなわち、履歴情報4には選択ノード32で実行されるタスクと同じ種類のタスクが実行された場合の処理時間の実績が記録されていないことになる。したがって、閾値を用いて選択ノード32で実行されるタスクが長期タスクであるか否かを判定することが困難であるため、ステップS30~S70の処理を実行することなくステップS80に移行する。また、ステップS40の判定処理で、選択ノード32の推定した処理時間が閾値以下であると判定された場合は、選択ノード32は長期タスクでないことが判明するため、ステップS50~S70の処理を実行することなくステップS80に移行する。これらの場合、選択ノード32は長期インスタンス34に配置されることなく、当初から選択ノード32を含むインスタンス34にそのまま配置され続けることになる。
【0093】
ステップS80において、CPU41は、実行中のノード32の中で、まだステップS10で選択していない未選択のノード32が存在するか否かを判定する。未選択のノード32が存在する場合にはステップS10に移行し、未選択の実行中のノード32の中から何れか1つのノード32を選択する。
【0094】
未選択の実行中のノード32が存在しなくなるまでステップS10~S80を繰り返し実行することで、情報処理システム30で長期タスクを実行するノード32が長期インスタンス34に集約されることになる。
【0095】
後ほど図8で説明するように、タスクの実行が終了したノード32は情報処理システム30から順次削除され、ノード32を含まないインスタンス34も情報処理システム30から順次削除される。したがって、閾値を超えて存続するインスタンス34の数が1つになることから、長期タスクを実行するノード32を長期インスタンス34に集約しない場合と比較して、クラウドサービスの利用料金が抑制されることになる。
【0096】
一方、ステップS80の判定処理で、実行中のノード32がすべて選択されたと判定された場合には、図6に示す再配置処理を終了する。
【0097】
図7は、制御装置20で図6に示す再配置処理が実行された場合における情報処理システム30の構成の変化例を示す図である。
【0098】
図7は、図2に示した情報処理システム30の構成例と同じく、制御装置20で図6に示す再配置処理を実行する前は、第1インスタンス34と第2インスタンス34の2つのインスタンス34が情報処理システム30に存在し、第1インスタンスには2つのAノード32と1つのBノード32が配置され、第2インスタンス34にはそれぞれ1つずつAノード32とBノード32が配置されている状況を表している。
【0099】
Bノード32が長期タスクを実行するノード32であるとすれば、制御装置20で図6に示す再配置処理を実行した場合、新たに第3インスタンス34が長期インスタンス34として情報処理システム30に生成され、第3インスタンス34にBノード32が集約される。
【0100】
なお、図6に示した再配置処理では、実行済みの履歴情報4の処理時間からタスクの処理時間を推定したが、ノード32が実行するタスクの処理時間の推定方法はこれに限られない。
【0101】
例えば付加データとしてリクエストに添付されるファイルの種類が同じであれば、リクエストに対応するタスクの処理時間も類似する傾向が見られる。したがって、図6のステップS20の判定処理で、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が存在しないと判定された場合であっても、選択ノード32が実行するタスクに対応付けられたファイルと同じ種類のファイルが設定されている付加データを含む実行済みの履歴情報4の処理時間から、選択ノード32が実行するタスクの処理時間が推定される。ファイルの種類は、ファイルの拡張子によって見分けられる。
【0102】
この場合、CPU41は、ファイルの種類が同じ付加データを含む実行済みの履歴情報4の処理時間をそのまま選択ノード32が実行するタスクの処理時間とするのではなく、ファイルのデータサイズに応じて、推定した処理時間を補正するようにしてもよい。具体的には、ファイルのデータサイズが大きいほど、処理するデータ量が増加すると想定されるため、CPU41は、処理時間を取得した実行済みの履歴情報4に記録されているファイルのデータサイズに対する、選択ノード32が実行するタスクに添付されるファイルのデータサイズの割合が大きくなるに従って、推定した処理時間を更に長くするように補正してもよい。
【0103】
このようなファイルのデータサイズを用いた処理時間の補正は、図6のステップS20の判定処理で、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が存在すると判定された場合にも適用してもよい。例えば、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が複数存在する場合、当該履歴情報4の中で、要求されたタスクに添付されるファイルのデータサイズと最も近いデータサイズのファイルが添付された履歴情報4の処理時間を、要求されたタスクの処理時間として推定してもよい。
【0104】
また、リクエストによって指示されたタスクに対する指示内容に、タスクの優先度が設定されていることがある。タスクの優先度とは、情報処理システム30で複数のタスクを実行する場合におけるタスクの実行順序を規定したものであり、優先度が高く設定されているタスクほど、他のタスクよりも優先してリソースが割り当てられ、できるだけ早く終了するように実行される。自身の優先度より高い優先度が設定されているタスク(優先タスク)が存在する場合、優先タスクよりも優先度の低いタスクは、優先タスクが終了した後、または優先タスクの実行が行われていない空き時間に実行される。すなわち、同じ種類のタスクであっても、優先度が低く設定されているタスクほど処理時間が長くなる。
【0105】
したがって、CPU41は、実行中のノード32の中に優先タスクを実行するノード32が存在する場合、選択ノード32で実行されるタスクの優先度と優先タスクの優先度の差分に応じて、推定した処理時間を延長してもよい。また、CPU41は、選択ノード32で実行されるタスクの優先度が、実行中の他のノード32で実行されるタスクの優先度よりも高い場合、選択ノード32で実行されるタスクの優先度と実行中の他のノード32で実行されるタスクの優先度の差分に応じて、推定した処理時間を短縮してもよい。
【0106】
当然のことながら、こうしたタスクの優先度を用いた処理時間の補正は、図6のステップS20の判定処理で、選択ノード32が実行するタスクのタスクIDを含む実行済みの履歴情報4が存在すると判定された場合にも適用してもよい。具体的には、CPU41は、要求されたタスクの優先度と、要求されたタスクの処理時間の推定に用いた実行済みの履歴情報4に記録されたタスクの優先度との差分に応じて、推定した処理時間を補正してもよい。
【0107】
次に、情報処理システム30に対するリソースの解放処理について説明する。図8は、制御装置20のCPU41によって実行されるリソースの解放処理の流れの一例を示すフローチャートである。リソースの解放処理は情報処理システム30が起動したタイミングで実行され、以後、情報処理システム30が稼働している間、リソースの解放処理が終了する毎に、リソースの解放処理が再開される。
【0108】
リソースの解放処理を規定する制御プログラムは、例えば制御装置20のROM42に予め記憶されている。制御装置20のCPU41は、ROM42に記憶される制御プログラムを読み込み、リソースの解放処理を実行する。
【0109】
ステップS100において、CPU41は、情報処理システム30にタスクの実行が終了したノード32、すなわち、終了済みノード32が存在するか否かを判定する。
【0110】
タスクが終了したことにより、情報処理システム30から終了済みノード32で実行されたタスクに対応したリクエストIDと共に、終了済みノード32でのタスクの処理時間が制御装置20に通知される。したがって、CPU41は、処理時間の通知を受けたタスクが存在する場合に、終了済みノード32があると判定すればよい。
【0111】
なお、CPU41は、情報処理システム30からタスクの処理時間を受け付けた場合、共に受け付けたリクエストIDを含む履歴情報4の処理時間に、受け付けたタスクの処理時間を記録する。
【0112】
終了済みノード32が存在しない場合には、CPU41はステップS100の判定処理を繰り返し実行して、終了済みノード32が現れるまでタスクの実行状態を監視する。一方、終了済みノード32が存在する場合にはステップS110に移行する。
【0113】
ステップS110において、CPU41は通信ユニット47を制御して、終了済みノード32で実行されたタスクと対応付けられたリクエストIDと共に、情報処理システム30に対して終了済みノード32の削除を指示する削除指示を出力する。これにより、終了済みノード32が情報処理システム30から削除され、終了済みノード32が使用していたリソースが解放される。
【0114】
ステップS120において、CPU41は情報処理システム30から通知される情報処理システム30の構成状態を参照して、終了済みノード32が配置されていたインスタンス34に、他のノード32が存在するか否かを判定する。他のノード32が存在する場合にはステップS100に移行して、次の終了済みノード32が現れるまでタスクの実行状態を監視する。
【0115】
一方、終了済みノード32が配置されていたインスタンス34に、他のノード32が存在しない場合、すなわち、終了済みノード32が配置されていたインスタンス34にノード32が1つも配置されていない場合には、ステップS130に移行する。なお、ノード32が1つも配置されていないインスタンス34のことを、「空のインスタンス34」ということにする。
【0116】
空のインスタンス34ではタスクの実行が行われていないことから、削除してもユーザから依頼されたタスクの実行に影響しない。したがって、ステップS130において、CPU41は通信ユニット47を制御して、情報処理システム30に対して空のインスタンス34の削除を指示する削除指示を出力する。これにより、空のインスタンス34が情報処理システム30から削除され、空のインスタンス34の利用が終了する。
【0117】
ステップS140において、CPU41は、情報処理システム30で利用される全てのインスタンス34が削除されたか否かを判定する。情報処理システム30に少なくとも1つのインスタンス34が存在する場合にはステップS100に移行して、次の終了済みノード32が現れるまでタスクの実行状態を監視する。
【0118】
すなわち、ステップS100~S140を繰り返し実行することで、タスクの実行を終えた終了済みノード32、及び空のインスタンス34が順に削除される。
【0119】
したがって、図7に示す再配置処理が実行された後の情報処理システム30の構成例に対してリソースの解放処理を実行した場合で、例えば各ノード32が同じタイミングでタスクを実行したとすれば、タスクAの処理時間よりもタスクBの処理時間の方が長いことから、まず第1インスタンス34及び第2インスタンス34が削除され、最後に第3インスタンスが削除されることになる。
【0120】
一方、図7に示す再配置処理が実行される前の情報処理システム30の構成例に対してリソースの解放処理を実行した場合で、例えば各ノード32が同じタイミングでタスクを実行したとすれば、Bノード32がタスクBを実行し終えるまで第1インスタンス34と第2インスタンス34が存続することになる。
【0121】
すなわち、図7の例において、再配置処理を実行した場合には閾値を超えて存続するインスタンス34の数は1つであるのに対して、再配置処理を実行しなかった場合には閾値を超えて存続するインスタンス34の数は2つになる。したがって、情報処理システム30を構築するクラウドサービスの利用料金がインスタンス34の数及び利用時間によって設定されるとすれば、再配置処理を実行した方が、再配置処理を実行しない場合よりもクラウドサービスの利用料金が抑制される傾向を示す。
【0122】
一方、ステップS140の判定処理で、情報処理システム30にインスタンス34が存在しないと判定された場合には、図8に示すリソースの解放処理を終了する。
【0123】
なお、CPU41は、リソースの解放処理を終了した後も、引き続き情報処理システム30が稼働中であれば、図8に示すリソースの解放処理を実行して、新たに入力装置10から受け付けたタスクの実行を終えたノード32及びインスタンス34の削除を行う。
【0124】
このように本実施の形態に係る制御装置20によれば、履歴情報4を参照してノード32で実行されるタスクの処理時間を推定し、タスクの処理時間が閾値を超える場合には、当該タスクを実行するノード32を長期インスタンス34に集約する。また、制御装置20は、情報処理システム30が稼働している間、ノード32におけるタスクの実行状態を監視し、終了済みノード32及び空のインスタンス34の存在を検出する毎に削除を行い、終了済みノード32及び空のインスタンス34が使用していたリソースを解放する。
【0125】
<第2実施形態>
第1実施形態では、制御装置20がタスクの処理時間に着目して、既に構築されている情報処理システム30の構成を変更するように制御する例について説明した。しかしながら、タスクの処理時間に着目して情報処理システム30の構成を制御する方法はこれに限られない。
【0126】
第2実施形態では、タスクの実行を情報処理システム30に依頼する前に、情報処理システム30の構成を制御する制御装置20Aについて説明する。
【0127】
制御装置20Aを含む制御システム100のシステム構成例は、図1に示したシステム構成例と同じであり、制御装置20Aの機能構成例は、図3に示した制御装置20の機能構成例と同じである。また、制御装置20Aにおける電気系統の要部構成例は、図5に示した制御装置20における電気系統の要部構成例と同じく、コンピュータ40を用いて構成される。
【0128】
図9は、入力装置10からリクエストを受け付けた場合に、制御装置20のCPU41によって実行されるノード32の配置制御処理における流れの一例を示すフローチャートである。
【0129】
ノード32の配置制御処理を規定する制御プログラムは、例えば制御装置20AのROM42に予め記憶されている。制御装置20AのCPU41は、ROM42に記憶される制御プログラムを読み込み、ノード32の配置制御処理を実行する。
【0130】
ステップS200において、CPU41は、入力装置10から受け付けた要求されたタスクのタスクIDと同じタスクIDを含む実行済みの履歴情報4が履歴情報DB25に存在するか否かを判定する。当該タスクIDを含む実行済みの履歴情報4が存在する場合には、ステップS210に移行する。
【0131】
この場合、要求されたタスクと同じ種類のタスクが実行された場合の処理時間が実行済みの履歴情報4に記録されていることになる。したがって、ステップS210において、CPU41は、要求されたタスクのタスクIDと同じタスクIDを含む実行済みの履歴情報4から処理時間を取得し、取得した処理時間を要求されたタスクの処理時間として推定する。なお、タスクの処理時間の推定方法について、第1実施形態において図6のステップS30で説明した各推定方法を適用してもよい。
【0132】
ステップS220において、CPU41は、ステップS210で推定した処理時間が閾値を超えるか否かを判定する。処理時間が閾値を超える場合、要求されたタスクは長期タスクということになるため、ステップS230に移行する。そして、ステップS230において、CPU41は通信ユニット47を制御して、タスクに対応付けたリクエストIDと共に、情報処理システム30に対してリクエストIDが対応付けられたタスクを長期インスタンス34に配置するように指示する配置指示を出力する。
【0133】
そして、ステップS240において、CPU41は通信ユニット47を制御して、タスクに対応付けたリクエストIDと共に、情報処理システム30に対してタスクの実行を指示する実行指示を出力する。これにより、情報処理システム30は、実行を指示されたタスクが長期インスタンス34に配置するように指示されたタスクであれば、タスクを実行するノード32を長期インスタンス34に配置した上でタスクを実行する。
【0134】
一方、ステップS200の判定処理で、要求されたタスクのタスクIDと同じタスクIDを含む実行済みの履歴情報4が存在しないと判定された場合は、ステップS210~S230の処理を実行することなく、ステップS240に移行する。また、ステップS220の判定処理で、タスクの処理時間が閾値以下であると判定された場合、ステップS230の処理を実行することなく、ステップS240に移行する。すなわち、これらの場合には、ステップS230の処理でタスクを長期インスタンス34に配置するように指示する配置指示が情報処理システム30に出力されていないことから、情報処理システム30は、実行を指示されたタスクを長期インスタンス34とは異なるインスタンス34に配置する。
【0135】
以上により、図9に示すノード32の配置制御処理を終了する。
【0136】
制御装置20Aは、情報処理システム30が稼働している間、図6に示した再配置処理を実行してもよい。ただし、制御装置20Aでは、情報処理システム30にタスクを実行させる前に、図9に示すノード32の配置制御処理を実行している。したがって、同じ履歴情報4に基づいて、要求されたタスクが長期タスクか否かを判定することになるため、図6に示した再配置処理をそのまま実行しただけでは、情報処理システム30の構成が変化しないことがある。
【0137】
したがって、制御装置20AのCPU41は、図6に示した再配置処理のステップS30で選択ノード32の処理時間を推定する場合、例えばタスクを実行するのに選択ノード32で実際にかかっている時間(実時間)を情報処理システム30から取得する。
【0138】
情報処理システム30にかかる負荷の相違等により、履歴情報4から推定した選択ノード32の処理時間と、選択ノード32の実際の処理時間がずれることも考えられるため、例えば履歴情報4からは要求されたタスクが長期タスクでないと推定される場合でも、実際には長期タスクとなることがある。この場合、タスクを実行している実時間が閾値を超える選択ノード32は、長期インスタンス34に配置されることになる。
【0139】
このように本実施の形態に係る制御装置20Aによれば、制御装置20Aが入力装置10からリクエストを受け付ける毎に、履歴情報DB25で管理される履歴情報4を参照して、要求されたタスクが長期タスクであるか否かを判定する。その上で、制御装置20は、要求されたタスクが長期タスクであると推定される場合には、要求されたタスクを実行するノード32が長期インスタンス34に配置されるように情報処理システム30を制御する。
【0140】
<第3実施形態>
第1実施形態では、要求されたタスクの実行を情報処理システム30に依頼した後に、情報処理システム30の構成を変更する制御を行う制御装置20について説明した。また、第2実施形態では、要求されたタスクの実行を情報処理システム30に依頼する前に、情報処理システム30の構成を指定する制御を行う制御装置20Aについて説明した。
【0141】
本実施の形態では、例えばタスクの内容の変更に伴い、情報処理システム30のノード32で用いられるタスクの種類に対応したプログラムをバージョンアップする等、情報処理システム30の構成を変更した状況において、情報処理システム30で変更前の構成と変更後の構成を併存させる場合と比較して、情報処理システム30が提供するサービスを停止させることなく、構成の変更に伴う情報処理システム30のコストを抑制する制御装置20Bについて説明する。
【0142】
なお、制御装置20Bを含む制御システム100のシステム構成例は、図1に示したシステム構成例と同じである。
【0143】
図10は、制御装置20Bの機能構成例を示す図である。図10に示す制御装置20Bの機能構成例が図3に示した制御装置20、20Aの機能構成例と異なる点は、バージョン管理部26及び受け渡し部28の各機能部と、バージョンDB27が追加された点であり、その他は図3に示した機能構成例と同じである。
【0144】
情報処理システム30が提供するサービスがバージョンアップされると、それに伴い、タスクの内容も変化し、旧バージョンのサービスに対応した情報処理システム30のプログラムでは、新バージョンのサービスに対応したタスクを実行することができなくなる。一方、情報処理システム30におけるサービスの切り替え時には、サービスの切り替え前に受け付けた旧バージョンのサービスに対応したタスクと、サービスの切り替え後に受け付けた新バージョンのサービスに対応したタスクが混在する。こうした状態であっても、情報処理システム30は、各々のバージョンのサービスを提供する必要がある。
【0145】
したがって、バージョン管理部26は、タスクの種類毎にタスクバージョンを管理する。なお、タスクバージョンと情報処理システム30で提供されるサービスのバージョンとは1対1に対応しており、サービスがバージョンアップされると、対応するタスクバージョンもバージョンアップされる。
【0146】
タスクの種類とタスクバージョンの対応付けはバージョン情報6で定義され、バージョンDB27で管理される。
【0147】
図11は、バージョンDB27で管理されるバージョン情報6の一例を示す図である。図11に示すように、バージョン情報6には、タスクの種類を表すタスクIDと、タスクの最新バージョンを表すタスクバージョンがタスクの種類毎に対応付けられて管理される。図11のバージョン情報6の例によれば、タスクAのタスクバージョンは“1.0”で、タスクBのタスクバージョンは“2.0”であることを表している。
【0148】
受け渡し部28は、出力部24からリクエストIDと共に出力されたタスクをキュー29(図10参照)にキューイングする。受け渡し部28にはタスクの種類毎、かつ、タスクバージョン毎に予め複数のキュー29が用意されており、受け渡し部28は、要求されたタスクのタスクID及びタスクバージョンに対応したキュー29に、要求されたタスクをキューイングする。
【0149】
情報処理システム30は、何れのキュー29がどのタスクID及びタスクバージョンの組み合わせに対応したキュー29であるのかを規定したキュー情報を有しており、情報処理システム30は、キュー情報を参照してキュー29からタスクを取得する。すなわち、情報処理システム30は、取得したタスクのタスクID及びタスクバージョンを自ら判定しなくても、何れのキュー29からタスクを取得したかによって、取得したタスクのタスクID及びタスクバージョンが得られることになる。したがって、情報処理システム30は、タスクの種類及びバージョンに対応したノード32で、取得したタスクを実行すればよいことになる。
【0150】
制御装置20Bにおける電気系統の要部構成例は、図5に示した制御装置20における電気系統の要部構成例と同じく、コンピュータ40を用いて構成される。
【0151】
次に、情報処理システム30で特定のタスクを実行するプログラムのバージョンアップが行われた場合の制御装置20Bの動作について詳細に説明する。
【0152】
図12は、入力装置10からリクエストを受け付けた場合に、制御装置20BのCPU41によって実行されるノード32の配置制御処理における流れの一例を示すフローチャートである。
【0153】
ノード32の配置制御処理を規定する制御プログラムは、例えば制御装置20BのROM42に予め記憶されている。制御装置20BのCPU41は、ROM42に記憶される制御プログラムを読み込み、ノード32の配置制御処理を実行する。
【0154】
図12に示すフローチャートが図9に示した第2実施形態に係るノード32の配置制御処理のフローチャートと異なる点は、ステップS240が削除され、その代わりにステップS250~S290が追加された点である。
【0155】
要求されたタスクが長期タスクの場合に、要求されたタスクを長期インスタンス34に配置するように配置指示を情報処理システム30に出力した後、ステップS250が実行される。
【0156】
ステップS250において、CPU41は、タスクのバージョンアップが行われたか否かを判定する。なお、タスクのバージョンアップが行われたか否かの判定は、例えば、バージョンアップフラグがセットされているか否かによって判定すればよい。タスクのバージョンアップが行われている場合、ステップS260に移行する。
【0157】
ステップS260において、CPU41は、バージョン情報6の更新を行う。例えばタスクAのタスクバージョンが“1.0”から“2.0”にバージョンアップされていれば、図11に示したバージョン情報6のタスクAのタスクバージョンを“2.0”に更新する。タスクのバージョンアップを確認したことから、CPU41はバージョンアップフラグをリセットする。
【0158】
ステップS270において、CPU41は、バージョンアップしたタスクに対応したキュー29を新たに生成する。
【0159】
ステップS280において、CPU41は通信ユニット47を制御して、バージョンアップされたタスクの取得先となるキュー29の識別情報とバージョンアップされたタスクの種類を示すタスクIDを対応付けたキュー情報の更新指示を情報処理システム30に出力する。
【0160】
これにより、キュー情報で旧バージョンのキュー29と対応付けられていた、バージョンアップされたタスクの取得先が、新たに生成された新しいバージョンのキュー29に変更される。
【0161】
したがって、キュー情報の更新指示を受け付けた情報処理システム30は、例えばタスクAのタスクバージョンが“1.0”から“2.0”にバージョンアップされた場合、キュー情報の更新指示を受け付ける前は、Aノード32が、タスクバージョンが“1.0”のタスクAがキューイングされるキュー29からタスクAを取得していたのが、キュー情報の更新指示を受け付けた後は、タスクバージョンが“2.0”のタスクAがキューイングされるキュー29からタスクAを取得するようになる。
【0162】
一方、ステップS250の判定処理で、タスクのバージョンアップは行われていないと判定された場合には、ステップS260~S280を実行することなく、ステップS290に移行する。
【0163】
ステップS290において、CPU41はバージョン情報6を参照して、要求されたタスクのタスクIDからタスクバージョンを取得し、要求されたタスクのタスクID及びタスクバージョンに対応したキュー29に要求されたタスクをキューイングする。
【0164】
以上により、図12に示したノード32の配置制御処理を終了する。
【0165】
要求されたタスクが、バージョンアップされた長期タスクである場合には、要求されたタスクが長期インスタンス34に配置されるように、CPU41が情報処理システム30の構成を制御した上で、新たなバージョンに対応したキュー29に要求されたタスクをキューイングすることになる。
【0166】
なお、CPU41は、第3実施形態においても図8に示したリソースの解放処理を情報処理システム30が起動したタイミングで実行し、以後、情報処理システム30が稼働している間、リソースの解放処理が終了する毎に、リソースの解放処理を再開する。これにより、旧バージョンのタスクの実行が終了したノード32から順次削除され、最終的には、旧バージョンのタスクを実行していたノード32を含んでいたインスタンス34も削除される。すなわち、制御装置20Bは、情報処理システム30でプログラムのバージョンアップが行われたとしても、要求されたタスクの実行を停止させないようにした上で、プログラムのバージョンアップ前に用いていた情報処理システム30の構成を削除して、バージョンアップされたタスクを実行する情報処理システム30の構成を構築する制御を行う。
【0167】
以上、各実施の形態を用いて本発明について説明したが、本発明は各実施の形態に記載の範囲には限定されない。本発明の要旨を逸脱しない範囲で各実施の形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
【0168】
各実施の形態では、一例として各処理をソフトウェアで実現する形態について説明したが、図6図8図9、及び図12に示した各フローチャートと同等の処理を、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはPLD(Programmable Logic Device)に実装し、ハードウェアで処理させるようにしてもよい。この場合、各処理をそれぞれソフトウェアで実現した場合と比較して、処理の高速化が図られる。
【0169】
このように、CPU41を、例えばASIC、FPGA、PLD、GPU(Graphics Processing Unit)、及びFPU(Floating Point Unit)といった特定の処理に特化した専用のプロセッサに置き換えてもよい。
【0170】
各実施形態におけるCPU41の動作は、1つのCPU41によって実現される形態の他、複数のCPU41によって実現されてもよい。更に、各実施形態におけるCPU41の動作は、物理的に離れた位置に存在する複数のコンピュータ40におけるCPU41の協働によって実現されるものであってもよい。
【0171】
また、各実施形態では、制御装置20、20A、20Bと情報処理システム30を個別に設置したが、制御装置20、20A、20Bと情報処理システム30を一体化して運用するようにしてもよい。
【0172】
また、上述した実施の形態では、制御プログラムがROM42にインストールされている形態を説明したが、これに限定されるものではない。本発明に係る制御プログラムは、コンピュータで読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、本発明に係る制御プログラムを、CD(Compact Disc)-ROM、またはDVD(Digital Versatile Disc)-ROM等の光ディスクに記録した形態で提供してもよい。また、本発明に係る制御プログラムを、例えばUSB(Universal Serial Bus)メモリやメモリカードといった可搬型の半導体メモリに記録した形態で提供してもよい。
【符号の説明】
【0173】
2 通信回線、4 履歴情報、6 バージョン情報、10 入力装置、20(20A、20B) 制御装置、21 受付部、22 制御部、23 履歴管理部、24 出力部、25 履歴情報DB、26 バージョン管理部、27 バージョンDB、28 受け渡し部、29 キュー、30 情報処理システム、32 ノード、34 インスタンス、40 コンピュータ、41 CPU、42 ROM、43 RAM、44 不揮発性メモリ、47 通信ユニット、48 入力ユニット、49 表示ユニット、100 制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12