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

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

▶ 株式会社日立製作所の特許一覧

特開2024-134730制御システム及びマイクロサービス処理方法
<>
  • 特開-制御システム及びマイクロサービス処理方法 図1
  • 特開-制御システム及びマイクロサービス処理方法 図2
  • 特開-制御システム及びマイクロサービス処理方法 図3
  • 特開-制御システム及びマイクロサービス処理方法 図4
  • 特開-制御システム及びマイクロサービス処理方法 図5
  • 特開-制御システム及びマイクロサービス処理方法 図6
  • 特開-制御システム及びマイクロサービス処理方法 図7
  • 特開-制御システム及びマイクロサービス処理方法 図8
  • 特開-制御システム及びマイクロサービス処理方法 図9
  • 特開-制御システム及びマイクロサービス処理方法 図10
  • 特開-制御システム及びマイクロサービス処理方法 図11
  • 特開-制御システム及びマイクロサービス処理方法 図12
  • 特開-制御システム及びマイクロサービス処理方法 図13
  • 特開-制御システム及びマイクロサービス処理方法 図14
  • 特開-制御システム及びマイクロサービス処理方法 図15
  • 特開-制御システム及びマイクロサービス処理方法 図16
  • 特開-制御システム及びマイクロサービス処理方法 図17
  • 特開-制御システム及びマイクロサービス処理方法 図18
  • 特開-制御システム及びマイクロサービス処理方法 図19
  • 特開-制御システム及びマイクロサービス処理方法 図20
  • 特開-制御システム及びマイクロサービス処理方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024134730
(43)【公開日】2024-10-04
(54)【発明の名称】制御システム及びマイクロサービス処理方法
(51)【国際特許分類】
   G06F 8/30 20180101AFI20240927BHJP
   G06F 9/50 20060101ALI20240927BHJP
   G06F 11/20 20060101ALI20240927BHJP
   G06F 9/445 20180101ALI20240927BHJP
   G06F 11/07 20060101ALI20240927BHJP
【FI】
G06F8/30
G06F9/50 150E
G06F11/20 620
G06F9/445 130
G06F11/07 190
G06F11/07 140A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023045074
(22)【出願日】2023-03-22
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】真矢 讓
(72)【発明者】
【氏名】山本 秀典
(72)【発明者】
【氏名】飯島 光一朗
(72)【発明者】
【氏名】森 駿介
(72)【発明者】
【氏名】伊藤 大輔
(72)【発明者】
【氏名】高橋 清隆
(72)【発明者】
【氏名】中島 康雄
(72)【発明者】
【氏名】高村 稔子
(72)【発明者】
【氏名】郡 伸吾
(72)【発明者】
【氏名】小川 雅昭
【テーマコード(参考)】
5B034
5B042
5B376
【Fターム(参考)】
5B034BB02
5B034CC01
5B042KK13
5B042MA08
5B042MA11
5B042MA14
5B042MC30
5B376AC00
5B376BC15
5B376BC16
5B376BC23
5B376BC36
5B376BC38
5B376BC80
(57)【要約】
【課題】複数のMSで構成された制御システムにクリティカルMSが存在すると、クリティカルMSに発生した障害が他のMSに影響を与えるため、対象システムからクリティカルMSを除く制御システムを提供する。
【解決手段】制御システム200は、対象システムを構成するマイクロサービスごとに障害影響度を計算する障害影響度計算プログラム231と、障害影響度が基準値より大きいマイクロサービスをクリティカルマイクロサービスとし、予め設定されたシステム要件に従って、クリティカルマイクロサービスが無くなるまで、クリティカルマイクロサービスを分割し、又は複数のマイクロサービスを統合する分割統合処理を行うMS分割/統合プログラム232と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
対象システムを構成するマイクロサービスごとに障害影響度を計算する計算部と、
前記障害影響度が基準値より大きい前記マイクロサービスをクリティカルマイクロサービスとし、予め設定されたシステム要件に従って、前記クリティカルマイクロサービスが無くなるまで、前記クリティカルマイクロサービスを分割し、又は複数の前記マイクロサービスを統合する分割統合処理を行う分割統合部と、を備える
制御システム。
【請求項2】
前記計算部は、障害が発生した前記マイクロサービスを他のマイクロサービスに切り替えるために要する切替時間から求めた指標、前記マイクロサービスにより提供されるサービスの重要度から求めた指標、及び前記マイクロサービスの通信に関わる通信指標から平均値、乗算値、最大値、又は最小値のいずれかにより求めた指標に基づいて、前記障害影響度を計算する
請求項1に記載の制御システム。
【請求項3】
前記システム要件として、リアルタイム性、可用性、及び保守性があり、
前記分割統合部は、前記リアルタイム性、前記可用性、前記保守性の順に前記システム要件を満たすように、前記分割統合処理を行う
請求項2に記載の制御システム。
【請求項4】
前記リアルタイム性及び前記保守性は、前記リアルタイム性を高くすることで前記保守性が下がり、前記リアルタイム性を低くすることで前記保守性が下がるトレードオフの関係である
請求項3に記載の制御システム。
【請求項5】
前記分割統合部は、前記通信指標として、少なくとも通信範囲、通信頻度、及び通信形態に基づいて前記分割統合処理を行う
請求項3に記載の制御システム。
【請求項6】
前記分割統合部は、前記マイクロサービスが前記リアルタイム性を満たさない場合に、前記リアルタイム性を満たすように前記マイクロサービスのパラメータを最適化する
請求項3に記載の制御システム。
【請求項7】
前記クリティカルマイクロサービスを含む障害影響範囲を示す表示欄、及び前記システム要件の再設定が可能な入力欄を有する画面が出力され、
前記入力欄から前記システム要件の再設定が入力された後、前記分割統合処理の実行結果が出力される
請求項3に記載の制御システム。
【請求項8】
前記マイクロサービスの動作を制御する制御部を備え、
前記制御部は、現用系と待機系で動作する前記クリティカルマイクロサービスのうち、現用系の前記クリティカルマイクロサービスで障害が発生したことを検出すると、前記クリティカルマイクロサービスを現用系から待機系に切り替えてサービスを継続し、現用系と待機系で動作していない前記マイクロサービスに障害の発生を検出すると、前記マイクロサービスの機能を補うマイクロサービスを新たに起動する
請求項3に記載の制御システム。
【請求項9】
前記対象システムに前記クリティカルマイクロサービスが残る場合には、前記クリティカルマイクロサービスが多重化して構成され、現用系の前記クリティカルマイクロサービスの障害が検知されると、チェックポイントデータ転送方式、又は両系転送方式のいずれかにより、待機系の前記クリティカルマイクロサービスに切り替えてサービスが継続される
請求項4に記載の制御システム。
【請求項10】
対象システムを構成するマイクロサービスごとに障害影響度を計算するステップと、
前記障害影響度が基準値より大きい前記マイクロサービスをクリティカルマイクロサービスとし、予め設定されたシステム要件に従って、前記クリティカルマイクロサービスが無くなるまで、前記クリティカルマイクロサービスを分割し、又は複数の前記マイクロサービスを統合する分割統合処理を行うステップと、を含む
マイクロサービス処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システム及びマイクロサービス処理方法に関する。
【背景技術】
【0002】
従来、制御対象の動作を制御するための制御システムは安全性が求められており、非常に大規模な構成となっていた。このような従来の制御システムをモノリスと呼ぶ。モノリスは、多数のプログラムとデータベースをリンクすることで、処理に不整合が生じないように構成されていた。ただし、モノリスとして構成された制御システムの一部で障害が発生すると、障害箇所だけを制御システムから切り離すことは困難であった。このため、制御システム全体を停止した後、障害箇所を修復し、動作確認を行った後に、制御システムの稼働が再開されていた。このような手順を経ると、制御システムの再開までに長時間を要する。
【0003】
そこで、安定性が求められる制御システムでは、プライマリとセカンダリの二重構成とされる。そして、プライマリの制御システムで障害が発生した時には、セカンダリの制御システムに一括切替される。しかし、プライマリからセカンダリの制御システムに切り替えるための切替時間が長くなっていた。また、従来の制御システムを更新する際には、制御システムの動作停止が必要となることが多く、業務に支障のない時間帯に更新するしかなかった。
【0004】
近年では、モノリス構成に変えて、制御システムが提供するサービス単位で機能を切り分け、複数のMS(MS:Micro Service)を繋げて構成される制御システムが検討されつつある。MSにより構成された制御システムで障害が発生した場合、その障害が発生したMSだけを別のMSに切り替えればよいので、切替時間を短縮し、システム障害の影響を抑えることができると考えられていた。また、更新が必要なMSだけを個別に更新することでモダナイゼーションが可能となると考えられていた。
【0005】
特許文献1には、「サービス構成情報管理部に記憶したサービス実行順序定義情報を検索して、前ログが示すサービスと入力ログが示すサービスとのサービス実行順序がサービス構成情報管理部に記憶したサービス実行順序定義情報のサービス実行順序と一致するか否かを判断してサービスの障害発生を検出する」と記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2013-3681号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
MSにより制御システムを構成することで、既存の制御システム(OT(Operational Technology)資産)の機能を置き換えることができる。また、汎用的な機能をMSで構築することで、日本だけでなく世界に制御システムを提供できると考えられる。このため、MSで制御システムを構成するための支援ツールの開発が進められてきた。また、リアルタイム性が重視される制御システムを構築するために、複数のMSで制御システムを構築することが検討されていた。リアルタイム性とは、制御システムに入力された指示に対する応答の性能を表す指標である。
【0008】
しかし、複数のMSで構成された制御システムでは、あるMSに生じた障害が別の複数のMSに波及しやすくなることが判明した。このように、障害影響度が基準値より大きいMSを「クリティカルマイクロサービス(以下、「クリティカルMS」と略称)」と呼ぶ。クリティカルMSに障害が発生すると、クリティカルMSの障害を起点として、他のMSに多大な影響を及ぼすことから、障害の範囲を拡大させることがあった。例えば、クリティカルMSに対してメッセージを送信する他のMSは、クリティカルMSがメッセージを受信できないことから、バッファオーバーフローが発生することがあった。また、クリティカルMSのメッセージの送信先であるMSは、クリティカルMSに対してメッセージを送っても応答メッセージを受信できないため、アイドル状態となってしまう。
【0009】
このため、マイクロサービス化された制御システムには、クリティカルMSが存在しないことが必要であることが分かってきたが、従来、クリティカルMSについて考慮されていなかった。また、特許文献1に開示された技術は、単にサービスの障害発生を検出するにすぎないため、障害が発生したMSがクリティカルMSであった場合に、他のMSに与える影響を排除できなかった。
【0010】
本発明はこのような状況に鑑みて成されたものであり、マイクロサービス化された対象システムからクリティカルMSを除くことを目的とする。
【課題を解決するための手段】
【0011】
本発明に係る制御システムは、対象システムを構成するマイクロサービスごとに障害影響度を計算する計算部と、障害影響度が基準値より大きいマイクロサービスをクリティカルマイクロサービスとし、予め設定されたシステム要件に従って、クリティカルマイクロサービスが無くなるまで、クリティカルマイクロサービスを分割し、又は複数のマイクロサービスを統合する分割統合処理を行う分割統合部と、を備える。
【発明の効果】
【0012】
本発明によれば、クリティカルマイクロサービスが無くなるまで、クリティカルマイクロサービスを分割し、又は複数のマイクロサービスを統合する分割統合処理を行うことで、マイクロサービス化された対象システムからクリティカルMSを除くことが可能となる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態に係る対象システム及び制御システムの全体構成例を示すブロック図である。
図2】本発明の一実施形態に係るマイクロサービス構成とした対象システムと、制御システムの詳細な内部構成例を示すブロック図である。
図3】本発明の一実施形態に係る巨大プログラムをマイクロサービス化した後、マイクロサービスを最適化する処理の流れを示す概要図である。
図4】本発明の一実施形態に係るMS分割/統合処理の一例を示すフローチャートである。
図5】本発明の一実施形態に係るシステム要件の構成例を示す図である。
図6】本発明の一実施形態に係る可用性の内容を示す図である。
図7】本発明の一実施形態に係る切替時間_度の変換テーブルの例を示す図である。
図8】本発明の一実施形態に係る重要度_度の変換テーブルの例を示す図である。
図9】本発明の一実施形態に係る通信_度の変換テーブルの例を示す図である。
図10】本発明の一実施形態に係る障害影響度とクリティカルMSの検出判定方法の関係を示す変換テーブルの例である。
図11】本発明の一実施形態に係るクリティカルMSを無くすための処理の例を示すフローチャートである。
図12】本発明の一実施形態に係るケース1~3のクリティカルMSの要因の例を示す図である。
図13】本発明の一実施形態に係るケース1の可用性の設定変更の例を示す図である。
図14】本発明の一実施形態に係るケース2のサービス重要度の例を示す図である。
図15】本発明の一実施形態に係るケース3の通信の例を示す図である。
図16】本発明の一実施形態に係るトレードオフの判定処理の例を示すフローチャートである。
図17】本発明の一実施形態に係るケース4のトレードオフの要因がリアルタイム性である場合の処理時間と障害影響度の例を示す図である。
図18】本発明の一実施形態に係るケース5のトレードオフの要因が保守性(MSサイズ)である場合の保守性と障害影響度の例を示す図である。
図19】本発明の一実施形態に係る障害影響範囲が可視化された画面の表示例を示す図である。
図20】本発明の一実施形態に係るチェックポイントデータ転送方式による障害検出方法の例を示す図である。
図21】本発明の一実施形態に係る両系転送方式による障害検出方法の例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための形態について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。以下に、制御対象となる対象システムを複数のMSで構成する場合に、MSの構成を制御する制御システムに本発明を適用した例について説明する。
【0015】
[一実施形態]
図1は、本発明の一実施形態に係る対象システム100及び制御システム200の全体構成例を示すブロック図である。
【0016】
(事前処理の前)
対象システム100は、従来のモノリス構成としたシステムであり、システム設計者10によりマイクロサービス化される事前処理の対象となるシステムの一例である。対象システム100として、例えば、鉄道制御システム、運行管理システム、電力制御システム、プラント制御システム、ITプラットフォーム等の様々な分野における制御システムが想定される。
【0017】
マイクロサービス化の事前処理の前には、対象システム100の記憶管理部110に、従来の巨大プログラム111と、パラメータ112とが記憶される。巨大プログラム111は、各種のプログラムが複雑につなぎ合わされた構成である。また、巨大プログラム111が処理の途中で参照するパラメータ112が記憶管理部110に設けられている。このパラメータ112の構成も巨大かつ複雑なものである。
【0018】
(事前処理の後)
マイクロサービス化の事前処理により、巨大プログラム111とパラメータ112がマイクロサービス化される。マイクロサービス化された複数のマイクロサービス121(マイクロサービスMS_A~MS_F)は、それぞれパラメータ122を持つ。そして、マイクロサービス121(マイクロサービスMS_A~MS_F)は、対象システム100の記憶管理部120に記憶される。
【0019】
事前処理により記憶管理部120に記憶されたマイクロサービス121(マイクロサービスMS_A~MS_F)は、最適化されておらず、クリティカルMSが存在する可能性がある。このため、クリティカルMSとなるマイクロサービス121に対して分割又は統合する以下の処理が行われる。なお、マイクロサービス121の分割又は統合の処理では、マイクロサービス121が持つパラメータ122についても適切に分割又は統合されるものとする。以下、複数のマイクロサービス121で構成される対象システム100について説明する。
【0020】
制御システム200は、従来のモノリス構成とした対象システム100を、本実施の形態に係るマイクロサービス構成に置き換える処理を行う。このため、制御システム200には、システム設計者10が設定したマイクロサービス化ルール224が登録されている。マイクロサービス化ルール224には、例えば、後述する図4のフローチャートの判定処理に用いられるルールの他、システム要件300等が含まれる。
【0021】
また、制御システム200には、一つのMSを分割し、又は複数のMSを統合するMS分割/統合プログラム232が登録されている。MS分割/統合プログラム232は、マイクロサービス化ルール224に従って、巨大プログラム111を複数のマイクロサービスに分割し、又は一つのマイクロサービスに統合することができる。
【0022】
<対象システムと制御システムの内部構成例>
図2は、マイクロサービス構成とした対象システム100と、制御システム200の詳細な内部構成例を示すブロック図である。
【0023】
(対象システムの構成例)
対象システム100は、記憶管理部120、演算部130、入力部140、出力部150及び通信処理部160を備える。図2では、記憶管理部110の記載は省略する。
【0024】
記憶管理部120は、図1に示した複数のマイクロサービス121(マイクロサービスMS_A~MS_F)を記憶し、管理する。
【0025】
演算部130は、制御プログラム131を実行可能である。制御プログラム131は、対象システム100で必要とされる処理の演算を行うため、記憶管理部120から必要なマイクロサービス121を読み出して実行する制御を行ったり、入力部140、出力部150及び通信処理部160の動作を制御したりする。演算部130は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)により構成される。演算部130のCPUは、本実施の形態に係る各機能を実現するソフトウェアのプログラムコードをROMから読み出してRAMにロードし、実行する。演算部130のRAMには、CPUの演算処理の途中で発生した変数やパラメータ等が一時的に書き込まれ、これらの変数やパラメータ等がCPUによって適宜読み出される。
【0026】
入力部140には、例えば、キーボード、マウス等が用いられ、対象システム100のユーザーが所定の操作入力、指示を行うことが可能である。
出力部150は、例えば、液晶ディスプレイモニターであり、演算部130で行われる処理の結果等を対象システム100のユーザーに表示する。
通信処理部160には、例えば、NIC(Network Interface Card)等が用いられ、NICの端子に接続されたLAN(Local Area Network)、専用線等を介して各種のデータを制御システム200との間で送受信することが可能である。
【0027】
(制御システムの構成例)
制御システム200は、記憶管理部220、演算部230、入力部240、出力部250及び通信処理部260を備える。制御システム200は、システム設計者10が操作入力可能なPC又はサーバでもよいし、クラウド上に構築されたクラウドサーバであってもよい。
【0028】
演算部230は、障害影響度計算プログラム231、MS分割/統合プログラム232、及び制御プログラム233を実行可能である。演算部230は、例えば、CPU、ROM、及びRAMにより構成される。演算部230のCPUは、本実施の形態に係る各機能を実現するソフトウェアのプログラムコードをROMから読み出してRAMにロードし、実行する。演算部230のRAMには、CPUの演算処理の途中で発生した変数やパラメータ等が一時的に書き込まれ、これらの変数やパラメータ等がCPUによって適宜読み出される。演算部230の各プログラムは、記憶管理部220からパラメータ221、要件データ222、障害影響度データ223、及びマイクロサービス化ルール224を読み出して、本実施の形態に係るマイクロサービスの最適化処理を行う。この最適化処理は、演算部230がシステム要件300に従ってマイクロサービスの分割統合処理を行うこと、でクリティカルMSを除く処理である。
【0029】
障害影響度計算プログラム231(計算部の一例)は、対象システム100を構成するマイクロサービスごとに障害影響度を計算する。障害影響度は、マイクロサービスに障害が発生した時に、他のマイクロサービスに影響を与える指標である。障害影響度が基準値より大きいマイクロサービスがクリティカルMSとして検出される。障害影響度計算プログラム231は、例えば、3要素(切替時間、サービス重要度、通信指標)を用いて、障害影響度を計算する。この3要素は、例えば、障害が発生したマイクロサービスを他のマイクロサービスに切り替えるために要する切替時間、マイクロサービスにより提供されるサービスの重要度、及びマイクロサービスの通信に関わる通信指標である。障害影響度計算プログラム231は、切替時間から求めた指標(切替時間_度)、サービスの重要度から求めた指標(サービス重要度_度)、及び通信指標から平均値、乗算値、最大値、又は最小値のいずれかにより求めた指標(通信_度)に基づいて、障害影響度を計算する。
【0030】
切替時間とは、マイクロサービスの障害時に、他のマイクロサービスに切り替えるために要する時間である。例えば、新たに立ち上げた別のサーバ又は情報処理装置に対して、新たにマイクロサービスを引き継ぐことを「切り替え」と呼ぶ。切替時間が長いほど、障害影響度に与える影響が大きくなる。
【0031】
サービス重要度とは、サービスの重要性を表す。例えば、サービス重要度が高程度であれば、そのサービスを提供するマイクロサービスに障害が検出されると、サービスに与える影響が大きくなる。また、サービス重要度が中程度であれば、サービスにおける実際の処理の内容に応じて、サービス重要度が変わる。例えば、サービスが周期起動する場合に、秒オーダのサービスは、分オーダのサービスよりもサービス重要度が高い。また、対象システム100では、周期的に発生しない処理、すなわち不定期に発生する処理があり、この処理をイベントと呼ぶ。イベントの発生時に起動するサービスは、分オーダのサービスよりもサービス重要度が低い。なお、サービスの内容が診断処理であれば、手動で処理開始が指示されるか、又は他のサービスの停止中に処理が開始されるため、他のサービスへの影響が小さい。このため、サービスの内容が診断処理である場合に、このサービスのサービス重要度が最も低くなる。
【0032】
通信指標とは、あるマイクロサービスが他のマイクロサービスとの通信に際して用いられる要素であり、例えば、通信範囲、通信形態、及び通信頻度から決定される。通信範囲は、例えば、通信MS数/全MS数、イベント数により求められる値であり、あるマイクロサービスに接続される他のマイクロサービスの数等を表す。通信形態は、同期又は非同期により決定される。同期の方が非同期よりもサービスに与える影響が大きい。また、通信頻度は、例えば、1秒間当たりの通信回数として表され、通信頻度が高いほど、サービスに与える影響が大きい。以下の説明では、通信指標を「通信」と呼ぶことがある。
【0033】
マイクロサービスに発生する障害の影響は、障害影響度(E)として、(切替時間_度) * (サービス重要度_度) * (通信_度)の式を用いて計算される。以下の説明で「_度」を付加した要素の値は0から1の範囲で正規化した値とする。障害影響度計算プログラム231が計算した障害影響度は、記憶管理部220に障害影響度データ223として保存される。
【0034】
MS分割/統合プログラム232(分割統合部の一例)は、予め設定されたシステム要件300(後述する図5を参照)に従って、クリティカルMSが無くなるまで、クリティカルMSを分割し、又は複数のマイクロサービスを統合する分割統合処理を行う。例えば、MS分割/統合プログラム232は、記憶管理部220から読み出したマイクロサービス化ルール224に基づいて、図1に示した対象システム100のマイクロサービス121をさらに分割したり、複数のマイクロサービス121を統合して、一つのマイクロサービスを生成したりする分割統合処理を行う。MS分割/統合プログラム232が複数のマイクロサービス121を統合すると、マイクロサービスを削減することができ、マイクロサービスの保守性を向上させることが可能となる。このため、MS分割/統合プログラム232は、クリティカルMSを検出した場合に、以下の(1)クリティカルMSの分割又は統合(プログラム分割)の処理と、(2)パラメータ再設定(設定ファイル)の処理を行う。
【0035】
(1)クリティカルMSの分割又は統合の処理(「MS分割/統合」と称する。)
・分割:通信に対する影響が大きい場合に、MSを分割する処理。
・統合:リアルタイム性に影響が大きいMSを分割したことでリアルタイム性が低下した場合、リアルタイム性を満たすようにMSを統合する処理
(2)パラメータの再設定の処理
・再設定されるパラメータの項目
バッファサイズ、タイムアウト時間、リトライ回数
外付けディスクの読み取り
・その他
【0036】
なお、対象システム100が提供可能なサービスは、複数のマイクロサービスを組み合わせて構築される。そして、マイクロサービスは、複数のプログラムから構成される。このため、MSの分割/統合の処理は、サービス単位ではなく、プログラム単位で分割又は統合されるものとなる。
【0037】
制御プログラム233は、対象システム100で必要とされる処理の演算を行うため、記憶管理部220から必要なデータを読み出して、マイクロサービスの動作を制御する。また、制御プログラム233は、入力部240、出力部250及び通信処理部260の動作を制御する。
【0038】
記憶管理部220は、パラメータ221、要件データ222、障害影響度データ223及びマイクロサービス化ルール224を記憶し、管理する。
【0039】
パラメータ221には、障害検出時間、リトライ時間、及びリトライ回数が含まれる。
【0040】
要件データ222には、可用性データ、RT(Real Time)性データ(以下、RT性データと略称する)、及び保守性データが含まれる。
【0041】
入力部240には、例えば、キーボード、マウス等が用いられ、システム設計者10が所定の操作入力、指示を行うことが可能である。
出力部250は、例えば、液晶ディスプレイモニターであり、演算部230で行われる処理の結果等をシステム設計者10に表示する。
通信処理部260には、例えば、NIC等が用いられ、NICの端子に接続されたLAN、専用線等を介して各種のデータを対象システム100との間で送受信することが可能である。
【0042】
図3は、巨大プログラム111をマイクロサービス化した後、マイクロサービスを最適化する処理の流れを示す概要図である。図中に矢印と番号を付して、処理の流れを説明する。
【0043】
(1)事前のMS分割処理
対象システム100は、本実施の形態に係るMS分割/統合処理の前に、事前のMS分割処理が行われる。この際、記憶管理部110に記憶されたモノリス構成の巨大プログラム111が、記憶管理部120に複数のマイクロサービスとして分割され、保存される。このMS分割処理は、システム設計者10が巨大プログラム111を大まかに分割する処理であり、詳細な要件は不要である。
【0044】
(2)システム要件の設定
次に、システム設計者10は、図1に示したマイクロサービス化ルール224として、システム要件300を記憶管理部220に設定する。システム要件300として、例えば、可用性310、MSのリアルタイム性320、保守性330がある。可用性310、MSのリアルタイム性320、保守性330は、いずれもマイクロサービスごとに設定される要件である。
【0045】
(3)MSの分割/統合
制御システム200の障害影響度計算プログラム231は、マイクロサービスの障害影響度を計算する。MS分割/統合プログラム232は、マイクロサービス化ルール224に基づいて、記憶管理部120に記憶されているマイクロサービス121の分割又は統合を行う。制御システム200は、マイクロサービス化の処理を自動的に行うことができるが、システム設計者10と対話式で処理の実行を指示し、処理の実行結果を確認できる形態としてもよい。
【0046】
(4)対象システム100から制御システム200への分割結果の受信
MS分割/統合プログラム232は、対象システム100からマイクロサービス121の分割結果を受信する。分割結果には、マイクロサービス化の結果と、マイクロサービスの要件とが含まれる。
【0047】
(5)制御システム200が受信した分割結果の確認
システム設計者10は、制御システム200が受信した分割結果を確認する。
【0048】
(6)システム要件300の再設定
分割結果が、最適解があることを示す場合、以降の処理は不要である。最適解があるとは、分割統合処理の結果、クリティカルMSが無くなり、全てのマイクロサービスがシステム要件300を満たすことである。このため、システム設計者10は、分割結果であるマイクロサービス121がシステム要件300を満たしていれば、処理を終了する。一方、分割結果が、最適解がないことを示す場合、システム設計者10は、システム要件300を設定し直し、制御プログラム233にシステム要件300を再設定したことを通知する。
【0049】
(7)MSの分割/統合の再指示
システム設計者10は、設定し直したシステム要件300により、再びMSの分割/統合を制御システム200に行わせる指示を入力する。その後、上述した処理(3)~(5)が再び実行される。
【0050】
ここで、処理(3)で障害影響度計算プログラム231により計算される障害影響度(E)について説明する。障害影響度(E)は、マイクロサービスに発生する障害の影響が他のマイクロサービスにどのように影響するかを示す指標であり、以下に示す式(1)の切替時間_度E(to)、サービス重要度_度E(pr)、及び通信_度E(cm)により定義される。障害影響度が基準値(C)より大きければ、クリティカルMSと判定される。
【0051】
E = E(to) * E(pr) * E(cm) …(1)
【0052】
障害の影響は、掛け算、最大値のいずれかを用いて判断される。障害影響度(E)、切替時間_度E(to)、サービス重要度_度E(pr)、又は通信_度E(cm)のうち、どれか一つでも重要であれば、障害影響度(E)は大きいものとする。
0 ≦ E ≦ 1
0 ≦ E(to), E(pr), E(cm) ≦ 1
【0053】
切替時間_度E(to)
0 ≦ (切替時間_度) ≦ 1となるように、後述する変換テーブルを用いて変換される。切替時間_度E(to)は、例えば、障害検出時間、メッセージ再送時間、リトライ時間、リトライ回数、又はハードディスク読出し時間(共有データ読出し)により決定される。切替時間が長くなると、障害の影響範囲は拡大することになる。
【0054】
・重要度_度E(pr)
0 ≦ (サービス重要度_度) ≦ 1となるように、変換テーブルを用いて変換される。サービス重要度は、業務の役割に基づいて決定される。重要なサービスが障害になると、障害の影響範囲は拡大する。
【0055】
・通信_度E(cm)
0 ≦ (通信_度) ≦ 1となるように、変換テーブルを用いて変換される。通信_度は、例えば、受信MS数/全MS数、送信MS数/全MS数、通信対象のMS数/全MS数、通信頻度、通信範囲、通信形態(同期/非同期)、又はイベント種類等に基づいて変換される。
【0056】
図4は、MS分割/統合処理の一例を示すフローチャートである。図4に示すMS分割/統合処理は、対象システム100をマイクロサービスに分割する時のシステム設計時に行われるマイクロサービス処理方法の一例を示す。
【0057】
始めに、システム設計者10は、本処理を開始する前にモノリス構成の巨大プログラム111を、マイクロサービスに分割しておく(S1)。ここで、システム設計者10は、机上計算、あるいは簡単にツールを動作させて、巨大プログラム111を、マイクロサービスに分割する(S1A)。次に、制御システム200の障害影響度計算プログラム231は、障害影響度を計算する(S2)。
【0058】
以下に説明する処理は、クリティカルMSを無くす処理400と、リアルタイム性と保守性(MSサイズ)のトレードオフの判定処理410に大別される。
処理400において、MS分割/統合プログラム232は、ステップS1で分割されたマイクロサービスにクリティカルMSを検出したか否かを判定する(S3)。クリティカルMSを検出したと判定した場合(S3のYES)、MS分割/統合プログラム232は、クリティカルMSを分割し、又は統合する(S4)。
【0059】
また、MS分割/統合プログラム232は、ステップS4にて分割し、又は統合したマイクロサービスに対して、アルゴリズムに従ってパラメータを設定する(S5)。その後、再びステップS2に移り、障害影響度計算プログラム231は、障害影響度を計算し(S2)、クリティカルMSを検出しなくなるまで処理を繰り返す。
【0060】
ステップS3の処理でクリティカルMSを検出しないと判定した場合(S3のNO)、MS分割/統合プログラム232は、マイクロサービスのリアルタイム性とMSサイズを評価する(S6)。そして、MS分割/統合プログラム232は、マイクロサービスのリアルタイム性とMSサイズがいずれもOKであるか否かを判定する(S7)。ステップS7では、リアルタイム性とMSサイズのいずれか一つでもOKではない場合、マイクロサービスが最適MSではないと評価される。なお、リアルタイム性及び保守性(MSサイズ)は、リアルタイム性を高くすることで保守性が下がり、リアルタイム性を低くすることで保守性が下がるトレードオフの関係である。
【0061】
リアルタイム性とMSサイズがいずれもOKではないと判定した場合(S7のNG)、MS分割/統合プログラム232は、マイクロサービスを分割し、又は統合する(S8)。また、MS分割/統合プログラム232は、分割し、又は統合したマイクロサービスにパラメータを設定する(S9)。その後、再びステップS2に移り、障害影響度計算プログラム231は、障害影響度を計算し(S2)、処理を繰り返す。
【0062】
ステップS7の処理を所定の回数行ったにも関わらず、リアルタイム性とMSサイズがいずれもOKではないと判定した場合、最適なMSが見つかっていない。このため、MS分割/統合プログラム232は、システム設計者10に警告を通知する(S10)。警告が通知されたシステム設計者10は、システム要件300(図3を参照)を手動で再設定し、本処理を再び実行させる(S11)。例えば、システム設計者10が、MSサイズが大きくなってもリアルタイム性を優先させたい場合には、MSサイズの要件を緩和する設定が想定される。
【0063】
ステップS7の処理でリアルタイム性とMSサイズがいずれもOKであると判定した場合(S7のOK)、MS分割/統合プログラム232は、本処理を終了する。
【0064】
<システム要件の説明>
次に、システム要件300の詳細な内容を説明する。
【0065】
図5は、システム要件300の構成例を示す図である。
システム要件300は、性能分類、性能項目、値、内容の各項目で構成される。
図3に示したように、システム要件300の性能分類は、可用性310、リアルタイム性320、保守性330に分けられる。MS分割/統合プログラム232は、リアルタイム性、可用性、保守性の順にシステム要件300を満たすように、分割統合処理を行う。
【0066】
可用性310では、性能項目は「切替時間」であり、切替時間の値は、例えば5秒であり、可用性310の内容は、「MSの切替時間」である。つまり、障害が起きたMSが、正常なMSに切り替わるまでの切り替え時間が可用性310に定義されている。
【0067】
リアルタイム性320では、性能項目は「実行時間」であり、実行時間の値は、例えば12ミリ秒であり、リアルタイム性320の内容は、「ミッションクリティカルなサービスの実行時間」である。つまり、リアルタイム性が要求されるMSは、実行時間の範囲内で処理が完了することが求められる。
【0068】
保守性330では、性能項目は「MSサイズ」であり、MSサイズの値は、例えば5kstepであり、保守性330の内容は、「MSサイズ」である。つまり、MSサイズが大きくなるほど保守性が低下するので、MSサイズが5kstep未満となるまで分割し、又は統合することが求められる。
【0069】
上述したように、可用性310、リアルタイム性320、及び保守性330により計算される障害影響度(E)が基準値Cより大きいと、マイクロサービスがクリティカルMSであることを表す。このため、MS分割/統合プログラム232は、障害影響度の値を小さくするように分割統合処理を繰り返すことで、クリティカルMSを無くすことができる。
【0070】
図6は、可用性310の内容を示す図である。
可用性310は、性能分類、パラメータ、及び値の各項目で構成される。
【0071】
可用性310のパラメータとして、aliveメッセージ、リトライ時間、リトライ回数がある。aliveメッセージは、他のマイクロサービスが正常であるかを確認するために、一定周期で発行されるメッセージである。
【0072】
リトライは、マイクロサービスの処理が異常終了などした場合に、同じ処理の実行をもう一度試みることである。例えば、マイクロサービスがaliveメッセージを送信できない時に、一定時間後に再びaliveメッセージの送信を試みる処理が行われる。
リトライ時間は、例えば、マイクロサービスがaliveメッセージの送信可否を判断する時間である。他のマイクロサービスに送信したaliveメッセージの応答をリトライ時間内に受信できなければ、リトライが行われる。
リトライ回数は、マイクロサービスがリトライを行う回数である。例えば、aliveメッセージは3秒、リトライ時間は2秒、リトライ回数は2回とされる。
図6に示した値では、障害検出時間が、3秒+2秒×2回=7秒間と算出される。
【0073】
<障害影響度の要素と、障害影響度の変換テーブルの説明>
次に、障害影響度の要素と、障害影響度の変換テーブルについて、図7図9を参照して説明する。
【0074】
図7は、切替時間_度の変換テーブルの例を示す図である。
切替時間_度の変換テーブルは、マイクロサービス(MS)、切替時間、及び切替時間_度の各項目で構成される。上述したように切替時間_度は、0 ≦ (切替時間_度) ≦ 1の範囲でマイクロサービスごとに設定される。
【0075】
例えば、マイクロサービスMS_Aの切替時間が1秒以下である場合、切替時間_度は「0.9」である。また、マイクロサービスMS_Bの切替時間が1秒~3秒以下である場合、切替時間_度は「0.7」である。
【0076】
図8は、重要度_度の変換テーブルの例を示す図である。
重要度_度の変換テーブルは、サービス、サービス重要度、及びマイクロサービスの各項目で構成される。上述したように重要度_度は、0 ≦ (サービス重要度_度) ≦ 1の範囲でマイクロサービスごとに設定される。
【0077】
サービス項目には、サービス_A~サービス_Dが格納される。
サービス重要度項目には、サービス_A~サービス_Dごとのサービス重要度が格納される。
マイクロサービス項目には、サービス_A~サービス_Dを構成するマイクロサービスが丸印で表される。
【0078】
例えば、サービス_Aのサービス重要度は0.9であり、マイクロサービスMS_A、MS_B及びMS_Fで構成される。サービス_Bのサービス重要度は0.9で、マイクロサービスMS_B及びMS_Cで構成される。サービス_Cのサービス重要度は0.5で、マイクロサービスMS_A、MS_C、MS_D及びMS_Fで構成される。
【0079】
そして、重要度_度の変換テーブルを用いることで、サービス重要度からマイクロサービス重要度(平均値)を算出することができる。例えば、マイクロサービスMS_Aの重要度は(0.9+0.5)/2= 0.7、マイクロサービスMS_Bの重要度は(0.9+0.9)/2=0.9と算出される。同様に、マイクロサービスMS_C~MS_Fの重要度が算出される。
【0080】
図9は、通信_度の変換テーブルの例を示す図である。
通信_度の変換テーブルは、通信範囲(Com_R)、通信頻度(Com_F)、通信形態(Com_T)、通信_度平均値の各項目で構成される。上述したように通信_度は、0 ≦ (通信_度) ≦ 1の範囲で設定される。
【0081】
通信範囲(Com_R)は、通信MS数/全MS数で表される。例えば、通信範囲は、0~1%以下であれば「0.2」、1~20%以下であれば「0.4」のように算出される。
通信頻度(Com_F)は、1秒当たりの送受信回数で算出される。例えば、通信頻度は、0~1回以下であれば「0.2」、1~30回以下であれば「0.4」のように算出される。
通信形態(Com_T)は、同期又は非同期で表される。例えば、同期であれば、「0.3」、非同期であれば「0.7」のように算出される。
【0082】
通信_度平均値は、{(Com_R)+(Com_F)+(Com_T)}/3の式で算出される。例えば、通信範囲(Com_R)が0~1%以下であり、通信頻度(Com_F)が0~1回以下であり、通信形態(Com_T)が同期であれば、通信_度平均値は「0.23」と算出される。
【0083】
図10は、障害影響度とクリティカルMSの検出判定方法の関係を示す変換テーブルの例である。
このテーブルは、MS、障害影響度、クリティカルMSの検出判定、可用性、重要度、及び通信項目の各項目で構成される。
【0084】
MS項目には、マイクロサービスMS_A~MS_Fが格納される。このため、マイクロサービスごとに各項目の値が求められる。
障害影響度の項目には、マイクロサービスごとに算出された、障害影響度(E)、切替時間_度E(to)、サービス重要度_度E(pr)、及び通信_度E(cm)の値が格納される。
【0085】
クリティカルMSの検出判定項目には、クリティカルMSの検出判定結果が格納される。マイクロサービスの障害影響度(E)が基準値(C)より大きい場合に、このマイクロサービスがクリティカルMSであると判定される。クリティカルMSであると判定されたマイクロサービスには丸印が格納され、クリティカルMSでないと判定されたマイクロサービスにはバツ印が格納される。例えば、マイクロサービスMS_AからMS_CはクリティカルMSと判定されている。
【0086】
可用性、重要度、及び通信項目には、クリティカルMSと判定されたマイクロサービスのうち、要件を満たしていない項目にバツ印が格納される。図10では、MS_AからMS_CはクリティカルMSと判定されており、マイクロサービスMS_Aは可用性の要件を満たしていない。マイクロサービスMS_Bはサービス重要度の要件を満たしていない。また、マイクロサービスMS_Cは通信の要件を満たしていない。
【0087】
一方、マイクロサービスMS_D~MS_FはクリティカルMSではない。ただし、マイクロサービスMS_DとMS_Eは、後述する図16にケース4として説明するようにリアルタイム性を満たしていないものとする。また、サービス4を考慮してMS_Fは後述する図16にケース5として説明するようにMSサイズが大きいため、保守性を満たしていないものとする。なお、リアルタイム性は、マイクロサービスではなく、サービスの種類で判定される。このため、一つのマイクロサービスでリアルタイム性を満たしても、複数のマイクロサービスで構成されるサービスでリアルタイム性を満たさないことがある。
【0088】
図9に示した通信_度の変換テーブルの右側には、通信範囲(Com_R)、通信頻度(Com_F)及び通信形態(Com_T)の平均値が格納され、図10に示した変換テーブルの障害影響度は、切替時間_度E(to)、サービス重要度_度E(pr)、及び通信_度E(cm)の乗算値が格納された。しかし、これらの値は、平均をとる他、最大値をとる、又は最小値をとるなど様々な計算式により計算されてもよい。
【0089】
次に、図2に示した制御システム200の演算部230で行われる処理について説明する。
図11は、クリティカルMSを無くすための処理の例を示すフローチャートである。ここでは、障害影響度計算プログラム231がクリティカルMSの障害影響度(E)を計算した結果に基づいて、クリティカルMSを無くす処理が行われる。
【0090】
図11に示す処理の前に予め、図4に示したステップS1により、巨大プログラム111が6つのマイクロサービス(MS_A, MS_B, MS_C, MS_D, MS_E, MS_F)に分割されたものとする。
【0091】
次に、図4に示したステップS2により、障害影響度計算プログラム231は、6つのマイクロサービス(MS_A, MS_B, MS_C, MS_D, MS_E, MS_F)の障害影響度を計算し、図4に示したステップS3により、マイクロサービスMS_A, MS_B, MS_CがクリティカルMSであると検出されたものとする。図11に示す処理は、図4に示したステップS3により、複数のマイクロサービスにクリティカルMSが有ると検出された後に行われる処理である。
【0092】
この処理において、障害影響度計算プログラム231は、クリティカルMSの要因を判定する。例えば、障害影響度計算プログラム231は、クリティカルMSの要因が切替時間であるか否かを判定する(S21)。クリティカルMSの要因が切替時間であるか否かは、例えば、パラメータであれば、タイムアウト、リトライ間隔、リトライ回数が判定基準となり、チェックポイントデータであれば、MSサイズ、読み出し時間が判定基準となる。チェックポイントデータとは、マイクロサービスで障害が発生し、他のマイクロサービスに引き継ぐために必要なデータである。
【0093】
マイクロサービスの分割又は統合が行われても、パラメータ(タイムアウト、リトライ間隔、リトライ回数)は変わらない。一方、マイクロサービスが分割されると、チェックポイントデータのサイズが小さくなるので、チェックポイントデータの読み出し時間も減少する。逆に、複数のマイクロサービスが統合されると、チェックポイントデータのサイズが大きくなるので、チェックポイントデータの読み出し時間は増加する。
【0094】
クリティカルMSの要因が可用性の判定項目の一つである切替時間であれば(S21のYES:ケース1)、障害影響度計算プログラム231は、マイクロサービスMS_Aのパラメータを再設定する(S22)。
【0095】
次に、障害影響度計算プログラム231は、障害影響度を計算し(S23)、障害影響度が基準値を満たす、すなわち障害影響度(E)が基準値(C)より大きいか否かを判定する(S24)。障害影響度が基準値を満たさなければ(S24のNO)、障害影響度計算プログラム231は、再びステップS21に戻って処理を繰り返す。障害影響度が基準値を満たせば(S24のYES)、障害影響度計算プログラム231は、本処理を終了する。
【0096】
ステップS21にて、クリティカルMSの要因が切替時間でなければ(S21のNO)、障害影響度計算プログラム231は、クリティカルMSの要因が通信であるか否かを判定する(S25)。クリティカルMSの要因が通信であるか否かは、例えば、通信範囲(通信MS数/全MS数)、通信頻度(通信数/秒)、又は通信形態(同期、非同期)が判定基準となる。
【0097】
クリティカルMSの要因が通信であれば(S25のYES:ケース3)、MS分割/統合プログラム232がマイクロサービスを分割する。この時、MS分割/統合プログラム232は、通信指標として、少なくとも通信範囲、通信頻度、及び通信形態に基づいて分割統合処理を行う。
【0098】
次に、障害影響度計算プログラム231は、送信側のマイクロサービスと受信側のマイクロサービスの通信を考慮して(S26)、障害影響度を算出する(S23)。例えば、MS分割/統合プログラム232がクリティカルMSであるマイクロサービスMS_Cを、マイクロサービスMS_C1とMS_C2に分割する。次に、障害影響度計算プログラム231がマイクロサービスMS-C1とMS-C2の障害影響度を算出し、それぞれの障害影響度(E)が基準値(C)以下となって、基準値を満たすか否かを判定する(S24)。
【0099】
ステップS25にて、クリティカルMSの要因が通信でなければ(S25のNO:ケース2)、障害影響度計算プログラム231は、「クリティカルMSの要因がサービス重要度」であることをシステム設計者10に通知し(S27)、本処理を終了する。
【0100】
サービス重要度は固定値として変更できない項目である。サービス重要度が高いマイクロサービスは、一般的に切替時間が短く、かつ通信範囲が広い。そこで、マイクロサービスのサービス重要度が高い場合は、切替時間や通信範囲を考慮して分割統合処理が行われることが望ましい。なお、サービス重要度を変更できる場合、システム設計者10は、マイクロサービスMS-Bの重要度を再設定してもよい。
【0101】
図11に示す処理は、クリティカルMSが無くなるまで繰り返し実行される。クリティカルMSが無くなると、図4に示したトレードオフの判定処理410が行われる。ただし、後述するように、クリティカルMSを無くしきれず、クリティカルMSのコア部分が残る場合がある。この場合、制御プログラム233は、クリティカルMSのコア部分をクリティカルMS相当として、多重化する等により、クリティカルMSの障害発生時でもサービスを継続できるようにする。
【0102】
<ケースごとの障害影響度>
図12は、ケース1~3のクリティカルMSの要因の例を示す図である。この図は、ケース、障害影響度の計算式、処理内容、及び該当MSの各項目で構成される。
【0103】
ケース項目には、図11に示したケース1~3が格納される。ケース1からケース3は、クリティカルMSの例とする。障害影響度(E)が基準値(C)の「0.2」より大きいMSをクリティカルMSとする。クリティカルMSを無くすためには、切替時間_度、重要度_度、通信_度のうち、最大の指標を改善する必要がある。
【0104】
障害影響度の計算式の項目には、計算された障害影響度(E)、切替時間_度E(to)、サービス重要度_度E(pr)、又は通信_度E(cm)が格納される。
【0105】
処理内容項目には、ケース1~3ごとの処理内容が格納される。
該当MS項目には、ケース1に該当するMS_A、ケース2に該当するMS_B、ケース3に該当するMS_Cが格納される。
【0106】
ケース1では、マイクロサービスMS_Aを対象として、切替時間_度(0.9)をパラメータ122が再設定されることにより、障害影響度が改善する。このため、ケース1の処理内容項目には、図11のステップS22で示した「パラメータの再設定」が処理内容として格納される。
【0107】
ケース2では、マイクロサービスMS_Bを対象として重要度_度(0.9)をシステム設計者10に通知し、パラメータ122が再設定されることにより、障害影響度が改善する。このため、ケース2の処理内容項目には、図11のステップS27で示した「システム設計者10に通知すること」と「パラメータ122の再設定」が処理内容として格納される。
【0108】
ケース3では、MS分割/統合プログラム232がマイクロサービスMS_Cを対象として通信_度(0.8)が低くなるようにマイクロサービスを分割することにより、障害影響度を改善する。このため、ケース3の処理内容項目には、図11のステップS26で示した「マイクロサービスの分割」が処理内容として格納される。
【0109】
<ケース1の設定内容>
ケース1では、マイクロサービスMS_Aの障害影響度(E)が基準値(C)より大きいため、マイクロサービスMS_AがクリティカルMSと判定されている。マイクロサービスMS_Aに対するパラメータの再設定は、システム設計者10との問合せにより行われる。そして、リトライ時間とリトライ回数を変更することにより、クパラメータが再設定される。その後、パラメータが再設定されたマイクロサービスMS_Aの障害影響度(E)が再計算される。
【0110】
図13は、ケース1の可用性の設定変更の例を示す図である。図13に示す表は、パラメータ122の事前設定、又は再設定の種別(「事前設定/再設定」と表記)、パラメータ、障害影響度の各項目で構成される。
【0111】
パラメータ項目には、設定可能な項目(障害検出時間、リトライ時間、リトライ回数)と、値が含まれる。
障害影響度の項目には、図12に示した障害影響度の計算式の項目と同様に、計算された障害影響度(E)、切替時間_度E(to)、サービス重要度_度E(pr)、又は通信_度E(cm)が格納される。
【0112】
事前設定されたパラメータ122の障害検出時間が1秒、リトライ時間が1秒、リトライ回数が0回である場合、計算された障害影響度(E)は、「0.315」である。ここで、クリティカルMSと判定される基準値(C)が「0.2」であれば、障害影響度(E)>基準値(C)であるので、マイクロサービスの分割が行われる。
【0113】
一方、再設定されたパラメータの障害検出時間が1秒、リトライ時間が2秒、リトライ回数が2回である場合、計算された障害影響度(E)は、「0.175」である。障害影響度(E)<基準値(C)であるので、これ以上のマイクロサービスの分割は行われない。
【0114】
<ケース2の設定内容>
ケース2では、マイクロサービスMS_Bの障害影響度(E)が基準値(C)より大きいため、マイクロサービスMS_BがクリティカルMSと判定されている。マイクロサービスMS_B対するパラメータの再設定は、システム設計者10への問い合わせにより行われる。この時、システム設計者10に重要度が下げられないか問い合わせる。システム設計者10は、問合せを受けた重要度がサービス重要度であれば、サービス重要度の再検討を行う。例えば、システム設計者10は、マイクロサービスMS_Bに関係している、サービスとして、サービス_Aとサービス_Bのサービス重要度を見直し、サービス重要度を再設定する。そして、システム設計者10は、再設定したサービス重要度の値を基にマイクロサービスMS_Bの重要度を決める。
【0115】
図14は、ケース2のサービス重要度の例を示す図である。図14に示す表は、パラメータ122の事前設定、又は再設定の種別(「事前設定/再設定」と表記)、パラメータ、障害影響度の各項目で構成される。
【0116】
パラメータ項目には、設定可能な項目(サービス、MS)と値が含まれる。
障害影響度の項目には、計算された障害影響度_度(E)、切替時間_度E(to)、サービス重要度_度E(pr)、又は通信_度E(cm)が格納される。
【0117】
事前設定されたパラメータ122では、サービス_Aの値が「0.9」であり、サービス_Bの値が「0.9」であり、サービス_A、サービス_Bのいずれにも用いられるマイクロサービスMS_Bの値が「0.9」である。この場合、計算された障害影響度(E)は、「0.225」である。クリティカルMSと判定される基準値(C)が「0.2」であれば、障害影響度(E)>基準値(C)であるので、パラメータ122が再設定される。
【0118】
一方、再設定されたパラメータ122では、サービス_Aの値が「0.7」であり、サービス_Bの値が「0.7」であり、サービス_A、サービス_Bのいずれにも用いられるマイクロサービスMS_Bの値が「0.7」である。この場合、計算された障害影響度(E)は、「0.175」である。ここで、障害影響度(E)<基準値(C)であるので、これ以上のマイクロサービスの分割は行われない。
【0119】
<ケース3の設定内容>
ケース3では、マイクロサービスMS_Cの障害影響度(E)が基準値(C)より大きいため、マイクロサービスMS_CがクリティカルMSと判定されている。そこで、MS分割/統合プログラム232は、MSマイクロサービスMS_CをマイクロサービスMS_C1とMS_C2に分割する。
【0120】
図15は、ケース3の通信の例を示す図である。図15に示す表は、パラメータ122の事前設定、又は再設定の種別(「事前設定/再設定」と表記)、MS、パラメータ、障害影響度の各項目で構成される。
【0121】
MS項目には、事前設定されたマイクロサービスMS_Cと、再設定されたマイクロサービスMS_C1,MS_C2とが格納される。
パラメータ項目には、設定可能な項目(通信MS/全MS、通信頻度、通信形態)と値が含まれる。
障害影響度の項目には、計算された障害影響度(E)、切替時間_度E(to)、サービス重要度_度E(pr)、又は通信_度E(cm)が格納される。
【0122】
事前設定されたパラメータでは、マイクロサービスMS_Cの通信MS/全MSが40%であり、通信頻度が60回であり、通信形態が非同期である。この場合、計算された障害影響度(E)は、「0.266」である。クリティカルMSと判定される基準値(C)が「0.2」であれば、障害影響度(E)>基準値(C)であるので、マイクロサービスの分割が行われる。
【0123】
<トレードオフの判定処理>
次に、トレードオフの判定処理について、図16図19を参照して説明する。
図16は、トレードオフの判定処理の例を示すフローチャートである。ここでは、6つのマイクロサービス(MA-A, MA-B, MS-C1, MS-C2, MS-D ,MS-E ,MS-F)のリアルタイム性と保守性が評価される。本処理における評価の優先順位はリアルタイム性、可用性、保守性の順とする。また、評価の各項目について、基準値を満たさない場合は、警告が通知される。
【0124】
始めに、MS分割/統合プログラム232は、トレードオフの要因がリアルタイム性であるか否かを判定する(S31)。クリティカルMSを分割すると、MSサイズが小さくなり、障害影響度は小さくなる。また、分割されたマイクロサービスごとの処理が軽くなるので、マイクロサービスに行われた要求に対するレスポンスは早くなり、リアルタイム性が向上する。そこで、分割されたマイクロサービスのリアルタイム性が最初に評価される。リアルタイム性の評価は、マイクロサービスの実行時間が所定時間内であるか否かで判定される。マイクロサービスの実行時間が所定時間内であれば、リアルタイム性で問題なしと判定される。一方、マイクロサービスの実行時間が所定時間以上であれば、リアルタイム性で問題ありと判定される。
【0125】
ステップS31にて、トレードオフの要因がリアルタイム性であれば(S31のYES:ケース4)、障害影響度計算プログラム231は、マイクロサービスがリアルタイム性を満たせばOKと評価する。一方、MS分割/統合プログラム232は、マイクロサービスがリアルタイム性を満たさない場合にはNGと評価し、リアルタイム性を満たすようにマイクロサービスのパラメータ122を最適化する。例えば、リアルタイム性に影響を与えるクリティカルMSの該当箇所が分割されていれば、MS分割/統合プログラム232は、分割されたマイクロサービスを統合し、パラメータを変更してクリティカルMSに戻してリアルタイム時間を算出する(S32)。
【0126】
MS分割/統合プログラム232が、分割されたマイクロサービスを統合し、クリティカルMSに戻す処理は、可用性よりリアルタイム性を重視したことになる。クリティカルMSに戻したことは、システム設計者10に警告として通知される。また、クリティカルMSに統合した結果、このクリティカルMSのMSサイズが基準値より大きくなっている場合もシステム設計者10に警告として通知される。なお、複数のマイクロサービスがクリティカルMSに統合されると、処理が重くなり、レスポンスが遅くなることから、リアルタイム性は低下しやすい。しかし、マイクロサービスのサイズが大きくなることで、プログラム数が減ると、プログラムの保守が容易になり、保守性が向上する。
【0127】
次に、障害影響度計算プログラム231は、統合されたマイクロサービスの障害影響度(E)を算出し(S33)、障害影響度(E)が基準値(C)を満たすか、すなわち障害影響度(E)が基準値(C)以下であるか否かを判定する(S34)。障害影響度(E)が基準値(C)を満たさなければ(S34のNO)、ステップS31に戻ってトレードオフの判定処理が繰り返される。
一方、障害影響度(E)が基準値(C)を満たせば(S34のYES)、障害影響度計算プログラム231は、本処理を終了する。
【0128】
ケース4では、例えば、マイクロサービスMS_DとMS_Eのトレードオフの要因がリアルタイム性であったとする。リアルタイム性に影響を及ぼす該当箇所(トランザクション)が分割されてマイクロサービスMS_DとMS_Eが作成されたのであれば、MS分割/統合プログラム232は、マイクロサービスMS_DとMS_Eを統合し、統合されたマイクロサービスの実行時間を算出する。その後、障害影響度計算プログラム231は、統合されたマイクロサービスの実行時間が所定時間内か否かを判定する。また、障害影響度計算プログラム231は、統合されたマイクロサービスの障害影響度を算出し、障害影響度が基準値を満たすか否かを判定する。
【0129】
ステップS31にて、トレードオフの要因がリアルタイム性でなければ(S31のNO)、マイクロサービスの保守性が評価される。マイクロサービスの保守性は、マイクロサービスのサイズを評価し、所定値以下かどうかで判定される。そして、MSサイズが所定値以下であれば、保守性で問題なしと判定される。一方、MSサイズが所定値より大きければ、保守性で問題ありと判定される。
【0130】
そこで、障害影響度計算プログラム231は、トレードオフの要因がMSサイズであるか否かを判定する(S35)。トレードオフの要因がMSサイズであれば(S35のYES:ケース5)、障害影響度計算プログラム231は、MSサイズが一定値未満であるか否かを判定する。
【0131】
障害影響度計算プログラム231は、マイクロサービスのMSサイズが一定値未満であると判定すればOKと評価し、そのまま処理を終了する。一方、障害影響度計算プログラム231は、マイクロサービスのMSサイズが一定値以上であると判定すれればNGと評価し、システム設計者10に対して警告を通知する。この場合、障害影響度計算プログラム231は、MSの保守性を犠牲にして、リアルタイム性及び可用性を重視することとなる(S36)。その後、障害影響度計算プログラム231は、本処理を終了する。このことから、始めに、ステップS31でリアルタイム性が重視され、その後、ステップS35で保守性に関わるMSサイズがトレードオフの要因であった場合に、リアルタイム性及び可用性が重視される。そして、最後に保守性が重視されることとなる。
【0132】
ケース5では、例えば、マイクロサービスMS_Fのトレードオフの要因が保守性であったとする。この場合、MS分割/統合プログラム232は、トレードオフの要因であるマイクロサービスMS_Fを分割する。但し、ケース4のように、マイクロサービスMS_Fを分割することでリアルタイム性に影響が及ぶ場合は、分割しない。その後、障害影響度計算プログラム231は、分割されたマイクロサービスMS_Fの障害影響度を算出し、障害影響度が基準値を満たすか否かを判定する。その後、システム設計者10に警告が通知される。
【0133】
ステップS35にて、トレードオフの要因がMSサイズでなければ(S35のNO:ケース6)、トレードオフの要因は無かったので、障害影響度計算プログラム231は、何もせずに本処理を終了する。
【0134】
図17は、ケース4のトレードオフの要因がリアルタイム性である場合の処理時間と障害影響度の例を示す図である。ここでは、図16のステップS31でYES判定が行われた場合(ケース4)を想定して説明する。
【0135】
この表の左側は、計算対象のMS、リアルタイム性の各項目で構成され、表の右側は、障害影響度、及び計算対象のMSの各項目で構成される。
表の左側に示す目標値は、リアルタイム性を判定するための値であり、マイクロサービスの実行時間と待ち時間の合計時間として表される。この例では、目標値が合計時間を12m秒とされている。
【0136】
リアルタイム性は、事前の処理時間と、再設定の処理時間ごとに計算される。
事前の処理時間とは、マイクロサービスMS_DとMS_Eがそれぞれ行う処理の実行時間と待ち時間、及び合計時間を表す。事前の処理時間に示される合計時間が15m秒であるため、目標値の12m秒を超えている。
【0137】
また、表の右側に示す障害影響度は、マイクロサービスMS_DとMS_Eのそれぞれに対して計算された値を格納する。例えば、マイクロサービスMS_Dの障害影響度(E)は「0.084」であり、マイクロサービスMS_Eの障害影響度(E)は「0.075」であるため、上述した基準値(C)の「0.2」よりは小さく、基準値を満たしている。
【0138】
図8に示したように、サービス_Dは、2つの分割されたマイクロサービスMS_DとMS_Eにより構成されており、マイクロサービスMS_DとMS_EはクリティカルMSではない。しかし、マイクロサービスMS_DとMS_Eの間で待ち時間が発生するため、合計時間が目標値を超え、リアルタイム性を満たさない。このため、マイクロサービスMS_DとMS_Eを統合する処理が行われる。なお、マイクロサービスの統合に際して、切替時間_度、重要度_度、通信_度は、大きな方の値が採用される。
【0139】
再設定の処理時間には、マイクロサービスMS_DとMS_Eが統合されたマイクロサービスMS_DEに対して算出された処理時間が格納される。マイクロサービスMS_DとMS_Eが統合されたことにより、待ち時間が0秒となる。マイクロサービスMS_DEの実行時間と待ち時間の合計時間は10m秒であるため、目標値の12m秒以内となり、リアルタイム性を満たすようになる。また、マイクロサービスMS_DEの障害影響度(E)は「0.14」であるため、基準値(C)の「0.2」よりは小さいので、基準値を満たしている。
【0140】
図18は、ケース5のトレードオフの要因が保守性(MSサイズ)である場合の保守性と障害影響度の例を示す図である。ここでは、図16のステップS35でYES判定が行われた場合(ケース5)を想定して説明する。
【0141】
図18の上側に示す表は、MS、保守性、及び障害影響度の各項目で構成される。
保守性の目標値は、MSサイズが10Kstepである。
事前のMSサイズは、マイクロサービスMS_Fに関して15Kstepであるので、目標値を超えている。なお、マイクロサービスMS_Fの障害影響度(E)は「0.175」であるため、上述した基準値(C)の「0.2」よりは小さく、基準値を満たしている。
【0142】
そこで、MSサイズが目標値より大きいマイクロサービスMS_Fは、マイクロサービスMS_F1とMS_F2に分割され、再び保守性と障害影響度が判定される。
再設定されたMSサイズは、マイクロサービスMS_F1が8kstepであり、マイクロサービスMS_F2が8kstepであるので、いずれも保守性の目標値以下である。また、障害影響度(E)は、マイクロサービスMS_F1が「0.081」であり、マイクロサービスMS_F2が「0.081」であるので、いずれも基準値(C)以下であり、基準値を満たしている。
【0143】
図18の下側に示す表は、分割前のマイクロサービスMS_Fの通信に関する各項目(通信範囲(Com_R)、通信頻度(Com_F)、通信形態(Com_T))と、通信_度平均値が格納される。通信に関する各項目(通信範囲(Com_R)、通信頻度(Com_F)、通信形態(Com_T))は、図9に示した通信_度の変換テーブルにより値が格納される。
【0144】
マイクロサービスMS_Fの通信範囲(Com_R)は「0.2」、通信頻度(Com_F)は「0.2」、通信形態(Com_T)は「0.3」であり、通信_度平均値は「0.23」である。
一方、マイクロサービスMS_F1とMS_F2は、互いに通信が行われるため、通信に関する各項目の値が大きくなる。例えば、マイクロサービスMS_F1とMS_F2の通信範囲(Com_R)は「0.6」、通信頻度(Com_F)は「0.6」、通信形態(Com_T)は「0.3」であり、通信_度平均値は「0.5」である。
【0145】
なお、クリティカルMSを分割しても、厳しいシステム要件300が設定されていれば、コア部分が残ることがある。コア部分が残れば、システム性能(可用性、リアルタイム性、保守性)を満たさない場合も存在しうる。この場合、システム性能を満たさないコア部分が存在することがシステム設計者10に通知される。例えば、リアルタイム性と保守性を同時に満足できないことがある。この場合、リアルタイム性を優先して、保守性を満たさないことは許容するように促すメッセージが制御システム200からシステム設計者10に提案される。そこで、システム設計者10は、提案に従って、システム要件300(可用性、リアルタイム性、保守性)を再設定する。制御システム200は、再設定されたシステム要件300に従って、マイクロサービスの分割/統合、パラメータの再設定を行うこととなる。
【0146】
<可視化された障害影響範囲>
次に、障害影響範囲を可視化する例について説明する。
図19は、障害影響範囲が可視化された画面50の表示例を示す図である。この画面50は、例えば、図4のステップS7の処理後に、図2に示した出力部250により出力され、システム設計者10が確認することができる。
【0147】
画面50は、システム要件300の再設定が可能なコマンド入力欄51、実行結果の表示欄52、及びクリティカルMSを含む障害影響範囲を示す表示欄53を有する。
【0148】
コマンド入力欄51には、コマンドの一例として、可用性、リアルタイム性、MSサイズの入力欄が含まれる。システム設計者10が、コマンドとして、可用性、リアルタイム性、MSサイズをコマンド入力欄51に指定して、実行ボタン51aを押下すると、図2に示した演算部230によるマイクロサービス化の処理が自動実行される。
【0149】
コマンド入力欄51からシステム要件300の再設定が入力された後、分割統合処理の実行結果が出力される。例えば、再設定されたシステム要件300に従ってマイクロサービス化の処理が自動実行された結果が、実行結果の表示欄52に表示される。実行結果がOKではない場合、システム設計者10に警告が通知される。警告の通知は、例えば、表示欄52のける警告メッセージの表示、又は表示欄53におけるクリティカルMSの表示によって行われる。
【0150】
また、マイクロサービス化の処理が自動実行されると、マイクロサービス化の実行結果の表示欄53に、マイクロサービスが可視化して表示される。ここでは、マイクロサービスMS_A~MS_Fの障害影響度(E)と、各マイクロサービスの障害の関連性が可視化して示される。例えば、マイクロサービスMS_Aに発生する障害は、マイクロサービスMS_Dに影響を与える。また、マイクロサービスMS_Bに発生する障害は、マイクロサービスMS_DとMS_Fに影響を与える。
【0151】
ここで、マイクロサービスMS_Dの障害影響度(E)は「0.3」であり、基準値(C)の「0.2」より大きい。このため、マイクロサービスMS_DがクリティカルMSであることが強調して表示される。システム設計者10は、クリティカルMSであるマイクロサービスMS_Dをさらに分割するかを指定することができる。
【0152】
<リカバリ手順の説明>
次に、マイクロサービスに障害が発生した時に行われるリカバリ手順について説明する。
(1)障害発生
マイクロサービスで障害が発生すると、以下のリカバリ手順が開始される。
(2)障害検出
次に、マイクロサービスで発生した障害が検出される。
【0153】
(3)障害回復
次に、障害から回復する処理が行われる。ここで、マイクロサービスが重要であるか、重要でない(通常である)かによって、2つの方法が用いられる。
【0154】
(3-1)重要なマイクロサービス
重要なMSであれば、制御プログラム233は、現用系のMSと、待機系のMSを動作させている。上述したようにクリティカルMSは、できるだけ無くなるように処理されるが、それでもクリティカルMSが残る場合がある。この場合、クリティカルMSを分割して残ったコア部分(クリティカルMSに相当する部分)が重要なMSとして現用系と待機系で多重化して運用される。そして、制御プログラム233は、クリティカルMSで障害が発生したことが検出されたタイミングで、現用系と待機系で動作するクリティカルMSを現用系から待機系に切り替えてサービスを継続させる。このサービス切り替えの例は後述する。
【0155】
(3-2)通常のマイクロサービス
通常のMSは、二重化されておらず、待機系のMSが動作していない。このため、制御プログラム233は、現用系と待機系で動作していない通常のマイクロサービスに障害が発生したことを検出すると、障害の発生を検出したマイクロサービスの機能を補うマイクロサービスを新たに起動する。
【0156】
<障害検出方法>
次に、重要なマイクロサービスの障害検出方法について、図20図21を参照して説明する。
上述したように、対象システム100にクリティカルMSが残る場合には、クリティカルMSが多重化して構成される。多重化構成として、例えば、現用系と待機系による二重化構成がある。そして、現用系のクリティカルMSの障害が検知されると、チェックポイントデータ転送方式、又は両系転送方式のいずれかにより待機系のクリティカルMSに切り替えてサービスが継続される。
【0157】
(チェックポイントデータ転送方式)
図20は、チェックポイントデータ転送方式による障害検出方法の例を示す図である。例えば、マイクロサービスMS_Aは、現用系のクリティカルMSと通信を行っている。処理順を示す番号を図面に付してチェックポイントデータ転送方式による障害検出方法を説明する。
【0158】
(1)現用系のクリティカルMSは、待機系のクリティカルMSに対して、チェックポイントデータを周期的に転送する。上述したように、チェックポイントデータは、例えば、マイクロサービスMS_Aに障害が発生した場合に、待機系のクリティカルMSに処理を引き継ぐために必要なデータである。待機系のクリティカルMSは、チェックポイントデータを受信することで、現用系のクリティカルMSからマイクロサービスMS_Aとの通信処理を引き継ぐ。併せて、現用系のクリティカルMSと待機系のクリティカルMSは、互いにAliveメッセージを送り合うことで稼働確認している。
【0159】
(2)現用系のクリティカルMSに障害が発生する。
(3)障害が発生すると、現用系のクリティカルMSがマイクロサービスMS_Aと通信できなくなる。このため、待機系のクリティカルMSは、現用系のクリティカルMSからチェックポイントデータを受け取れない。また、待機系のクリティカルMSは、現用系のクリティカルMSからAliveメッセージを受け取れず、現用系のクリティカルMSにAliveメッセージを送ることもできない。このため、待機系のクリティカルMSは、現用系のクリティカルMSに障害が発生したことを検出し、リカバリ手順を実施することができる。
【0160】
(両系転送方式)
図21は、両系転送方式による障害検出方法の例を示す図である。例えば、マイクロサービスMS_Aは、現用系のクリティカルMSと、待機系のクリティカルMSの両系と通信を行っている。処理順を示す番号を図面に付して両系転送方式による障害検出方法を説明する。
【0161】
(1)マイクロサービスMS_Aは、現用系のクリティカルMSと、待機系のクリティカルMSにメッセージを送信する。両系転送方式では、現用系のクリティカルMSが待機系のクリティカルMSにチェックポイントデータを送信する必要はない。なお、現用系のクリティカルMSと待機系のクリティカルMSは、互いにAliveメッセージを送り合うことで稼働確認している。
【0162】
(2)現用系のクリティカルMSに障害が発生する。
(3)障害が発生すると、現用系のクリティカルMSがマイクロサービスMS_Aと通信できなくなる。待機系のクリティカルMSは、現用系のクリティカルMSからAliveメッセージを受け取れず、現用系のクリティカルMSにAliveメッセージを送ることもできない。このため、待機系のクリティカルMSは、現用系のクリティカルMSに障害が発生したことを検出し、リカバリ手順を実施することができる。
【0163】
以上説明した一実施の形態に係る制御システム200では、システム設計者10が事前処理により巨大プログラム111がマイクロサービス化される。その後、制御システム200は、マイクロサービス化ルール224に従って、マイクロサービスごとに要件を判定することで、システム設計時にクリティカルMSを検出する。この時、制御システム200は、対象システム100のマイクロサービスからクリティカルMSが無くなるように、マイクロサービスの分割又は統合をアルゴリズムにより処理する。このため、対象システム100を構成する多数のマイクロサービスが自動的に最適化される過程で、クリティカルMSが除かれ、マイクロサービスのシステム設計が容易化する。また、既存の対象システム100がマイクロサービス化されることで、各マイクロサービスのモダナイゼーション(古いプログラムを更新する処理)が容易化される。また、既存の対象システム100がマイクロサービス化されることで、マイクロサービスを他の環境に展開することも容易となる。
【0164】
制御システム200では、障害影響度が計算され、障害影響度と基準値とを比較することで、マイクロサービスがクリティカルMSであるか否かが判定される。そして、クリティカルMSであると判定されたマイクロサービスは、分割又は統合が行われることで、クリティカルMSが無くなることが期待される。クリティカルMSが無くなると、仮にマイクロサービスに障害が発生しても、他のマイクロサービスに障害の影響が及びにくくなる。このため、障害が発生したマイクロサービスだけを置き換える処理が容易となり、マイクロサービスの全体に波及する障害を押さえることができる。また、障害が発生したマイクロサービスと、他のマイクロサービスとの繋がりを必要最小限とすることで、障害が発生したマイクロサービスのリカバリに要する時間を短縮することができる。
【0165】
また、マイクロサービスのシステム要件300の優先順位を、リアルタイム性、可用性、保守性の順としている。この優先順位に従って、マイクロサービスが分割又は統合されるため、マイクロサービスの性能が保証される。
【0166】
また、リアルタイム時間が一定値以上となるマイクロサービスは、他のマイクロサービスと統合され、リアルタイム時間が一定時間未満になり、リアルタイム性の要件を満たすようになる。このため、制御システム200によるマイクロサービスの分割又は統合処理は、特にリアルタイム性が要求される対象システム100のマイクロサービス化に有用となる。
【0167】
また、リアルタイム性とMSサイズとのトレードオフを考慮して、マイクロサービスが分割又は統合される。このため、リアルタイム性が一定時間時間未満であり、かつ、MSサイズが一定値未満となるようなマイクロサービスが生成される。この結果、システム設計者10により予め設定された要件を満たすマイクロサービスによって対象システム100が構成されることとなる。
【0168】
また、クリティカルMSが検出されると、クリティカルMSに関する情報が可視化して画面50に表示される。システム設計者10は、画面50を確認しながら、可用性、リアルタイム性、又はMSサイズを含むシステム要件300の設定変更が可能である。そして、設定変更されたシステム要件300により、再びマイクロサービスの分割又は統合処理が行われた結果が画面50に表示される。このため、システム設計者10は、設定変更したシステム要件300が妥当であったかを確認することが容易となる。
【0169】
なお、本発明は上述した各実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施形態は本発明を分かりやすく説明するために制御システム200の構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施形態の構成の一部を他の実施形態の構成に置き換えることは可能であり、さらにはある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0170】
10…システム設計者、50…画面、100…対象システム、120…記憶管理部、121…マイクロサービス、122…パラメータ、200…制御システム、220…記憶管理部、221…パラメータ、222…要件データ、223…障害影響度データ、224…マイクロサービス化ルール、230…演算部、231…障害影響度計算プログラム、232…MS分割/統合プログラム、233…制御プログラム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21