(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】検証制御装置、システム、方法及び検証制御プログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20231129BHJP
G06F 11/07 20060101ALI20231129BHJP
G06F 9/455 20180101ALI20231129BHJP
【FI】
G06F11/36 196
G06F11/07 140C
G06F9/455
(21)【出願番号】P 2022503690
(86)(22)【出願日】2021-02-25
(86)【国際出願番号】 JP2021007099
(87)【国際公開番号】W WO2021172429
(87)【国際公開日】2021-09-02
【審査請求日】2022-08-12
(31)【優先権主張番号】P 2020032720
(32)【優先日】2020-02-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】竹村 友生子
【審査官】土谷 慎吾
(56)【参考文献】
【文献】特開2017-187883(JP,A)
【文献】特開2002-318607(JP,A)
【文献】特開2019-057945(JP,A)
【文献】米国特許出願公開第2019/0349450(US,A1)
【文献】山田 明憲,Docker/Kubernetes 実践コンテナ開発入門 初版 ,第1版,日本,株式会社技術評論社,2018年09月08日,p.68,69,143-147,351
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
G06F 11/07
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶手段と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御手段と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御手段と、
を備え、
前記入力制御手段は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御手段は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止
し、所定の検証端末へ前記処理結果の検証情報として前記送信先との疎通確認の結果を出力する
、
検証制御装置。
【請求項2】
前記入力制御手段は、前記第1の領域に前記運用設定がされ、かつ、前記第2の領域に前記検証設定がされていた場合、前記処理要求を前記第1の領域へ転送し、かつ、当該処理要求を複製して前記第2の領域へ転送する
請求項1に記載の検証制御装置。
【請求項3】
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶手段と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御手段と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御手段と、
を備え、
前記入力制御手段は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御手段は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止し、所定の検証端末へ前記処理結果の検証情報を出力し、
前記処理結果は、前記送信先である第3の情報システムへの処理要求を含み、
前記検証情報は、前記第3の情報システムへの処理要求の詳細情報
である、
検証制御装置。
【請求項4】
前記第1のファイルは、前記第1の情報システムに関する処理ロジック又は設定内容であり、
前記第2のファイルは、前記第1のファイルの更新後のファイルである
請求項1
から3のいずれか1項に記載の検証制御装置。
【請求項5】
前記第1の及び第2の領域のそれぞれは、仮想コンテナである
請求項1
から4のいずれか1項に記載の検証制御装置。
【請求項6】
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶手段と、
前記環境設定に基づき稼働する情報システムに対する処理要求を送信する端末と、
前記端末から前記処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御手段と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御手段と、
を備え、
前記入力制御手段は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御手段は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止
し、所定の検証端末へ前記処理結果の検証情報として前記送信先との疎通確認の結果を出力する
、
検証制御システム。
【請求項7】
コンピュータが、
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶装置に格納し、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付け、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止
し、所定の検証端末へ前記処理結果の検証情報として前記送信先との疎通確認の結果を出力する
、
検証制御方法。
【請求項8】
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶装置に格納する処理と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付ける処理と、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送する処理と、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送する処理と、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止
し、所定の検証端末へ前記処理結果の検証情報として前記送信先との疎通確認の結果を出力する処理と、
をコンピュータに実行させる検証制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、検証制御装置、システム、方法及びプログラムに関し、特に、情報システムの検証を制御する検証制御装置、システム、方法及びプログラムに関する。
【背景技術】
【0002】
情報システムの運用の現場では、システムに障害が発生すると、正常稼働に戻すためにシステムの変更や更新を実施している。システムの変更や更新においては、本番環境の誤動作を防ぐために、疑似的な環境として検証環境を別途、用意し、検証環境で動作確認を行った上で、本番環境に適用することが多い。
【0003】
特許文献1には、運用版の仮想マシンと検証版の仮想マシンを備えた計算機システムに関する技術が開示されている。検証版の仮想マシンには、検証対象のシステム以外に、スタブアプリと検証機能部を備えた検証用システムが含まれている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1にかかる技術は、本番環境と検証環境との差異があるため、対象システムを検証環境での検証後に本番環境へリリースした場合に障害のリスクが残されてしまうという問題点がある。例えば、特許文献1には、検証版の仮想マシン内に含まれるスタブアプリと検証用システムの影響を無視できない。
【0006】
本開示は、このような問題点を解決するためになされたものであり、検証後のリリースにおける障害のリスクを軽減するための検証制御装置、システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の第1の態様にかかる検証制御装置は、
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶部と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御部と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御部と、
を備え、
前記入力制御部は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御部は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する。
【0008】
本開示の第2の態様にかかる検証制御システムは、
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶部と、
前記環境設定に基づき稼働する情報システムに対する処理要求を送信する端末と、
前記端末から前記処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御部と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御部と、
を備え、
前記入力制御部は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御部は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する。
【0009】
本開示の第3の態様にかかる検証制御方法は、
コンピュータが、
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶装置に格納し、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付け、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する。
【0010】
本開示の第4の態様にかかる検証制御プログラムは、
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶装置に格納する処理と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付ける処理と、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送する処理と、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送する処理と、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する処理と、
をコンピュータに実行させる。
【発明の効果】
【0011】
本開示により、検証後のリリースにおける障害のリスクを軽減するための検証制御装置、システム、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】本実施形態1にかかる検証制御装置の構成を示すブロック図である。
【
図2】本実施形態1にかかる検証制御方法の流れを示すフローチャートである。
【
図3】本実施形態2にかかる検証制御システムの全体構成を示すブロック図である。
【
図4】本実施形態2にかかるサーバのハードウェア構成を示すブロック図である。
【
図5】本実施形態2にかかる仮想化の概念を説明するための図である。
【
図6】本実施形態2にかかる検証制御方法の流れを示すシーケンス図である。
【
図7】本実施形態3にかかる検証制御方法の流れを示すシーケンス図である。
【発明を実施するための形態】
【0013】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【0014】
<実施形態1>
図1は、本実施形態1にかかる検証制御装置1の構成を示すブロック図である。検証制御装置1は、所定の環境設定に基づき稼働する情報システムに対する本番運用と検証とを両立させることができる情報処理装置又は情報処理システムである。検証制御装置1は、入力制御部11と、第1の領域12と、第2の領域13と、記憶部14と、出力制御部15とを備える。
【0015】
第1の領域12は、第1のファイル121を含む第1の情報システム120が稼働する仮想化実行領域である。仮想化実行領域とは、例えば、仮想マシンや仮想コンテナであり、独立した実行環境を仮想的に実現した領域であり、所定の情報システムを独立して実行させることができる領域である。
【0016】
第2の領域13は、第1の領域12と共通の環境設定が適用される仮想化実行領域である。ここで、環境設定とは、ネットワークアドレス等のシステム環境を指す。つまり、第1の領域12及び第2の領域13は、検証制御装置1の外部からはネットワークアドレス等で区別されない。また、第2の領域13は、第2の情報システム130が稼働する仮想化実行領域である。ここで、第2の情報システム130は、第1の情報システム120における第1のファイル121が第2のファイル131に置き換わったものである。
【0017】
第1のファイル121は、第1の情報システム120のアプリケーションプログラム(処理ロジック)のファイルや設定ファイル、自動化のためのシナリオやルールの一部である。第2のファイル131は、第1のファイル121と少なくとも一部が異なっている。第2のファイル131は、例えば、第1のファイル121の更新版のファイルであり、検証対象であってもよい。そのため、第1の情報システム120と第2の情報システム130とは大部分が共通するが、第1のファイル121と第2のファイル131とが異なるものとする。
【0018】
記憶部14は、第1の領域12と第2の領域13とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報140を記憶する記憶領域である。つまり、設定情報140は、運用設定領域141と検証設定領域142とを定義した情報である。尚、設定情報140は、運用設定領域141と検証設定領域142のいずれかが未定義(未設定)であってもよい。
【0019】
入力制御部11は、外部から、上記環境設定に基づき稼働する情報システムに対する処理要求を受け付けた場合、設定情報140に応じた領域へ当該処理要求を転送する。具体的には、入力制御部11は、(運用設定領域141が示す)運用設定がされた領域及び(検証設定領域142が示す)検証設定がされた領域のそれぞれへ処理要求を転送する。尚、「環境設定に基づき稼働する情報システム」とは、検証制御装置1における環境設定上で稼働する情報システムである。そのため、第1の情報システム120及び第2の情報システム130のいずれも該当する。また、入力制御部11は、設定情報140を参照し、運用設定領域141又は検証設定領域142のいずれかが未設定であった場合、当該未設定の領域へは処理要求の転送を行わないようにしてもよい。
【0020】
出力制御部15は、設定情報140に応じて、第1の領域12及び第2の領域13からの出力を制御する。具体的には、出力制御部15は、運用設定がされた領域から処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送する。また、出力制御部15は、検証設定がされた領域から処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する。
【0021】
図2は、本実施形態1にかかる検証制御方法の流れを示すフローチャートである。まず、検証制御装置1は、設定情報140を記憶部14に格納する(S11)。ここで、設定情報140は、上述した通り、第1の領域12と、第2の領域13とのいずれか一方について運用設定がされ、他方について検証設定がされた情報である。
【0022】
次に、入力制御部11は、検証制御装置1の外部から、環境設定に基づき稼働する情報システムに対する処理要求を受け付ける(S12)。そして、入力制御部11は、処理要求を運用設定がされた領域(運用設定領域141が示す領域)へ転送する(S13)。また、入力制御部11は、処理要求を検証設定がされた領域(検証設定領域142が示す領域)へ転送する(S14)。
【0023】
続いて、出力制御部15は、運用設定がされた領域から処理要求に対する処理結果の出力を検出した場合(S15でYES)、当該処理結果の送信先へ当該処理結果を転送する(S17)。ここで、「送信先」は、処理要求の要求元であるか、他のシステムであってもよい。また、検出しなかった場合(S15でNO)、出力制御部15は、しばらく待機した後、再度、検出したか否かを判定する。
【0024】
また、出力制御部15は、検証設定がされた領域から処理要求に対する処理結果の出力を検出した場合(S16でYES)、当該処理結果の送信先への転送を抑止する(S18)。また、検出しなかった場合(S16でNO)、出力制御部15は、しばらく待機した後、再度、検出したか否かを判定する。
【0025】
このように本実施形態では、環境設定が共通する第1の領域12と第2の領域13において一部のファイルが異なる情報システムを稼働させ、当該情報システムに対する処理要求を各領域へ転送する。その上で、各領域からの出力を検出した場合、設定情報に応じて処理結果の転送又は抑止を制御する。例えば、第1の領域12を運用設定領域141、第2の領域13を検証設定領域142とした場合、一つの処理要求をそれぞれの領域で並行して実行させる。そして、処理結果の送信先へは、運用設定である第1の領域12からの出力のみを転送するが、検証設定である第2の領域13からの出力は転送しない。つまり、検証環境での実行結果が本番環境には影響を与えない。そして、例えば、第2の領域13からの出力を処理結果の送信先以外へ出力することで、第2の領域13での処理結果を確認して検証することができる。そして、運用設定領域141を第1の領域12、検証設定領域142を第2の領域13として検証を行った後、運用設定領域141と検証設定領域142の領域を入れ替えることで、第2の情報システム130を運用システムとしてリリースできる。ここで、上述の通り、第1の領域12と第2の領域13とは環境設定が共通するため、第1の情報システム120と第2の情報システム130との差異は、第1のファイル121と第2のファイル131のみといえる。そして、第2の情報システム130は、テストデータでの検証ではなく、元々の運用システムであった第1の情報システム120と同内容の処理要求を処理し、その処理結果を検証している。つまり、第2のファイル131による不具合の有無を検証することができる。よって、検証後に、運用設定と検証設定を入れ替えたとしても、検証後のリリースにおける障害のリスクを軽減することができる。
【0026】
尚、運用設定領域141をON、検証設定領域142をOFFとすれば、通常の運用を実現できる。また、運用設定領域141をOFF、検証設定領域142をONとして、検証のみを実施してもよい。
【0027】
尚、検証制御装置1は、図示しない構成としてプロセッサ、メモリ及び記憶装置を備えるものである。また、当該記憶装置には、本実施形態にかかる検証制御方法の処理が実装されたコンピュータプログラムが記憶されている。そして、当該プロセッサは、記憶装置からコンピュータプログラムを前記メモリへ読み込ませ、当該コンピュータプログラムを実行する。これにより、前記プロセッサは、入力制御部11、第1の領域12、第2の領域13及び出力制御部15の機能を実現する。
【0028】
また、プロセッサとして、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(field-programmable gate array)等を用いることができる。
【0029】
また、検証制御装置1の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。また、検証制御装置1の機能がSaaS(Software as a Service)形式で提供されてもよい。
【0030】
<実施形態2>
本実施形態2は、上述した実施形態1の具体的な実施例である。
図3は、本実施形態2にかかる検証制御システム200の全体構成を示すブロック図である。検証制御システム200は、ユーザ端末31と、検証端末32と、連携先システム33と、サーバ2とを備え、これらがネットワークNを介して接続されている。
【0031】
ユーザ端末31は、対象システムが提供するサービスを利用する利用者(ユーザ)が操作する端末装置である。ユーザ端末31は、ネットワークNを介してサーバ2に対して所望のサービスの処理要求を送信し、処理結果を受信する。ユーザ端末31は、例えば、パーソナルコンピュータその他の情報処理装置である。
【0032】
検証端末32は、対象システムの検証を行う運用者が操作する端末装置である。検証端末32は、ネットワークNを介してサーバ2に対して検証対象のサービスの処理要求を送信し、処理結果と検証情報を受信する。尚、検証端末32は、ユーザ端末31からの処理要求に応じた検証情報も受信する。検証端末32は、例えば、パーソナルコンピュータその他の情報処理装置である。
【0033】
連携先システム33は、第3の情報システムの一例であり、対象システムの連携先の情報システムである。連携先システム33は、所定のサービスにおける対象システムの処理結果の送信先であってもよい。その場合、連携先システム33は、対象システムからの処理結果を処理要求として処理し、処理結果を要求元へ返信する。
【0034】
サーバ2は、検証制御装置1の具体例であり、内部の各機能が複数台のサーバ装置に分散して実現されてもよい。サーバ2は、データ振分IF(InterFace)21と、仮想コンテナA22と、仮想コンテナB23と、記憶部24と、アクション実施IF25とを備える。
【0035】
仮想コンテナA22及び仮想コンテナB23のそれぞれは、サーバ2内に割り当てられた仮想化実行領域であり、第1の領域12及び第2の領域13の一例である。そのため、仮想コンテナA22及び仮想コンテナB23は、サーバ2における(共通の)環境設定が適用される。仮想コンテナA22は、対象システム220が稼働し、仮想コンテナB23は、対象システム230が稼働する。対象システム230は、対象システム220における運用版ファイル221が検証版ファイル231に置き換わったものである。運用版ファイル221は、対象システム220のアプリケーションプログラム(処理ロジック)のファイル又は設定ファイル、自動化のためのシナリオもしくはルール(設定内容)の一部である。検証版ファイル231は、運用版ファイル221に対して少なくとも一部が更新されたファイルである。
【0036】
記憶部24は、上述した記憶部14の一例であり、設定情報240を記憶する。設定情報240は、上述した設定情報140の一例であり、運用設定領域241として仮想コンテナA22、検証設定領域242として仮想コンテナB23がそれぞれ設定されているものとする。尚、運用設定領域241及び検証設定領域242は、一方が未設定であってもよい。また、検証端末32は、設定情報240の運用設定領域241及び検証設定領域242の仮想コンテナを入れ替えるように設定変更してもよい。
【0037】
データ振分IF21は、上述した入力制御部11の一例であり、ユーザ端末31等からネットワークNを介して対象システムに対する処理要求を受け付けた場合、設定情報240に応じた仮想コンテナへ当該処理要求を転送する。例えば、データ振分IF21は、仮想コンテナA22に運用設定がされ、かつ、仮想コンテナB23に検証設定がされていた場合、処理要求を仮想コンテナA22へ転送し、かつ、当該処理要求を複製して仮想コンテナB23へ転送する。尚、データ振分IF21は、設定情報240を参照し、運用設定領域241及び検証設定領域242のうち未設定の領域については転送を抑止する。
【0038】
アクション実施IF25は、上述した出力制御部15の一例であり、設定情報240に応じて、仮想コンテナA22及び仮想コンテナB23からの出力を制御する。アクション実施IF25は、仮想コンテナA22及び仮想コンテナB23のそれぞれからの出力を監視する。アクション実施IF25は、当該出力を検出した場合、設定情報240を参照し、出力元の仮想コンテナが運用設定領域241又は検証設定領域242のいずれであるかを判定する。
アクション実施IF25は、出力を検出した仮想コンテナが運用設定領域241(例えば、仮想コンテナA22)であった場合、出力が示す処理結果の送信先へ当該処理結果を転送する。ここで、送信先は、処理要求の要求元であるユーザ端末31もしくは検証端末32、又は、連携先のシステムである連携先システム33であってもよい。
アクション実施IF25は、出力を検出した仮想コンテナが検証設定領域242(例えば、仮想コンテナB23)であった場合、出力が示す処理結果の送信先への処理結果の送信を抑止し、処理結果の検証情報を生成する。そして、アクション実施IF25は、検証端末32へ処理結果の検証情報を出力する。例えば、処理要求の要求元及び処理結果の送信先がユーザ端末31である場合、アクション実施IF25は、送信先以外の検証端末32へ、処理結果の検証情報を出力する。
【0039】
ここで、アクション実施IF25は、送信先との疎通確認の結果を前記検証情報として出力してもよい。例えば、送信先が連携先システム33である場合、アクション実施IF25は、連携先システム33に対して疎通コマンドを送信し、その応答結果を受信し、応答結果を検証情報に含めて検証端末32へ出力する。
【0040】
図4は、本実施形態2にかかるサーバ2のハードウェア構成を示すブロック図である。サーバ2は、例えば、コンピュータサーバであるが、各機能が複数台に分散されていてもよい。
図4は、上述したサーバ2をハードウェアの側面で捉えたものである。サーバ2は、記憶部41と、制御部42と、メモリ43と、通信IF44とを備える。
【0041】
記憶部41は、ハードディスク、フラッシュメモリ等の記憶装置である。記憶部41は、OS(Operating System)411、コンテナ管理プログラム412、対象システム413、対象システム414及び設定情報415を記憶する。OS411は、サーバ2を稼働させる基本ソフトであり、公知のものを適用可能であるため、説明を省略する。コンテナ管理プログラム412は、仮想コンテナを管理、制御するコンピュータプログラムである。コンテナ管理プログラム412は、本実施形態にかかる検証制御プログラム4121を含む。尚、検証制御プログラム4121は、コンテナ管理プログラム412の外部のプログラムであってもよい。検証制御プログラム4121は、上述したデータ振分IF21及びアクション実施IF25の処理が実装されたコンピュータプログラム、モジュールである。対象システム413は、上述した仮想コンテナA22を実現するコンピュータプログラム及び設定ファイル等である。対象システム413は、上述した運用版ファイル221に相当する運用版ファイル4131を含む。対象システム414は、上述した仮想コンテナB23を実現するコンピュータプログラム及び設定ファイル等である。対象システム414は、上述した検証版ファイル231に相当する検証版ファイル4141を含む。設定情報415は、上述した設定情報240に相当するファイルである。
【0042】
メモリ43は、RAM(Random Access Memory)等の揮発性記憶装置であり、制御部42の動作時に一時的に情報を保持するための記憶領域である。通信IF44は、サーバ2の外部との入出力を行うインタフェースである。例えば、通信IF44は、ネットワークNを介して、処理要求等を受け付け、受け付けた処理要求を制御部42へ出力する。また、通信IF44は、制御部42からの指示に応じて、ネットワークNを介して出力を行う。
【0043】
制御部42は、サーバ2の各構成を制御するプロセッサつまり制御装置である。制御部42は、記憶部41からOS411及びコンテナ管理プログラム412をメモリ43へ読み込ませ、OS411及びコンテナ管理プログラム412を実行する。これにより、制御部42は、1以上の仮想コンテナを稼働することができ、上述したデータ振分IF21及びアクション実施IF25の機能を実現する。その上で、制御部42は、記憶部41から対象システム413、対象システム414及び設定情報415をメモリ43へ読み込ませ、対象システム413及び対象システム414を実行する。これにより、制御部42は、上述した仮想コンテナA22及び仮想コンテナB23の機能を実現する。
【0044】
図5は、本実施形態2にかかる仮想化の概念を説明するための図である。
図5は、サーバ2を仮想化の観点から示した概念図である。まず、OS52は、ハードウェア51上で稼働し、コンテナ管理SW(SoftWare)53は、OS52上で稼働する。ここで、コンテナ管理SW53は、内部に本実施形態にかかる検証制御SW530(上述した検証制御プログラム4121に相当)を含む。そして、検証制御SW530は、データ振分IF531及びアクション実施IF532を含む。また、仮想コンテナA54及び仮想コンテナB55は、コンテナ管理SW53上で稼働する。
【0045】
仮想コンテナA54は、対象システム220に相当するライブラリ・環境変数541、ミドルウェア542及びアプリケーション543を含む。例えば、ミドルウェア542は、ライブラリ・環境変数541を参照して実行され、アプリケーション543は、ライブラリ・環境変数541を参照してミドルウェア542上で実行される。ここで、運用版ファイル221は、ライブラリ・環境変数541、ミドルウェア542及びアプリケーション543の全て又は一部である。
【0046】
同様に、仮想コンテナB55は、対象システム230に相当するライブラリ・環境変数551、ミドルウェア552及びアプリケーション553を含む。例えば、ミドルウェア552は、ライブラリ・環境変数551を参照して実行され、アプリケーション553は、ライブラリ・環境変数551を参照してミドルウェア552上で実行される。ここで、検証版ファイル231は、ライブラリ・環境変数551、ミドルウェア552及びアプリケーション553の全て又は一部である。
【0047】
図6は、本実施形態2にかかる検証制御方法の流れを示すシーケンス図である。まず、検証端末32は、対象システムにおける検証対象のサービスについての処理要求を、ネットワークNを介してサーバ2へ送信する(S201)。これに応じて、サーバ2のデータ振分IF21は、処理要求を受信する。
【0048】
次に、データ振分IF21は、記憶部24の設定情報240を参照し、運用設定領域241及び検証設定領域242がどのように設定されているかを判定する(S202)。ここでは、運用設定領域241に仮想コンテナA22、検証設定領域242に仮想コンテナB23が設定されているものとする。そのため、データ振分IF21は、受信した処理要求を運用設定がされた仮想コンテナA22へ転送し(S203)、処理要求を複製して、検証設定がされた仮想コンテナB23へ処理要求を転送する(S204)。
【0049】
続いて、仮想コンテナA22の対象システム220は、転送された処理要求に対する処理を行う(S205)。つまり、対象システム220は、運用版ファイル221を用いた、本番運用における処理を行う。
【0050】
また、仮想コンテナB23の対象システム230は、転送された処理要求に対する処理を行う(S206)。つまり、対象システム230は、検証版ファイル231を用いた、検証対象の処理を行う。
【0051】
ステップS205の後、対象システム220は、処理要求に対する処理結果を出力する(S207)。ここでは、処理結果の送信先が連携先システム33であるものとする。そのため、対象システム220は、処理結果を連携先システム33を宛先として出力する。
【0052】
このとき、アクション実施IF25は、仮想コンテナA22からの出力を検出する。そして、アクション実施IF25は、記憶部24の設定情報240を参照し、出力元の仮想コンテナA22の設定が運用設定領域241又は検証設定領域242のいずれであるかを判定する(S208)。ここでは、仮想コンテナA22が運用設定領域241に設定されているため、アクション実施IF25は、検出した処理結果を、当該処理結果の宛先(送信先)である連携先システム33へ転送する(S209)。これにより、連携先システム33は、処理結果が仮想コンテナA22から出力されたものとして受信でき、後続の処理を継続できる。例えば、連携先システム33は、後続の処理としての処理結果を検証端末32へ返信してもよい。
【0053】
また、ステップS206の後、対象システム230は、処理要求に対する処理結果を出力する(S210)。上記同様、対象システム230は、処理結果を連携先システム33を宛先として出力する。
【0054】
このとき、アクション実施IF25は、仮想コンテナB23からの出力を検出する。そして、アクション実施IF25は、記憶部24の設定情報240を参照し、出力元の仮想コンテナB23の設定が運用設定領域241又は検証設定領域242のいずれであるかを判定する(S211)。ここでは、仮想コンテナB23が検証設定領域242に設定されているため、アクション実施IF25は、検出した処理結果について、当該処理結果の宛先(送信先)である連携先システム33への転送を抑止する。代わりに、アクション実施IF25は、連携先システム33に対して疎通確認を行う(S212)。例えば、アクション実施IF25は、ネットワークNを介して連携先システム33に対して疎通コマンドを発行し、応答結果を受信する。
【0055】
そして、アクション実施IF25は、受信した応答結果を含めた検証情報を生成し、ネットワークNを介して検証端末32に対して検証情報を送信する(S213)。尚、検証端末32は、ステップS210の処理結果自体を検証情報に含めてもよい。検証端末32は、受信した検証情報を画面に表示する。これにより、運用者は、表示された検証情報が適切か否かを確認して検証を行うことができる。
【0056】
また、
図6のステップS201をユーザ端末31が行うこともできる。そして、この場合であっても、ステップS213の送信先は、検証端末32となるように予め設定されているものとする。また、処理結果の宛先(送信先)がユーザ端末31である場合、ステップS209の処理結果及びステップS212の疎通確認がユーザ端末31へ送信されるが、ステップS213の検証情報は検証端末32へ送信される。また、ステップS201の要求元と処理結果の宛先(送信先)が検証端末32である場合、検証端末32は、ステップS209の処理結果と(ステップS212の疎通確認と)ステップS213の検証情報とを受信する。そのため、検証端末32において処理結果と検証情報とを確認し、より容易に検証を行うことができる。
【0057】
そのため、本実施形態では、ステップS201の要求元がユーザ端末31又は検証端末32のいずれの端末であっても、運用設定領域241における処理結果は、本来の送信先へ送信され、検証情報は、検証端末32へ送信される。よって、本番運用に影響を与えずに、実際のサービスデータ(本番運用で用いられるデータ)により、検証版ファイル231の検証を行うことができる。つまり、検証時であっても処理要求の宛先やパラメータを検証用等に修正する必要がなく、本番運用と同じ入力データ(宛先やパラメータ)を用いて、検証を行うことができる。
【0058】
そして、対象システム220と230とは共通の環境設定で稼働している。そのため、ステップS207とS210の処理結果に違いがあるか否かにより、検証版ファイル231の検証が可能である。例えば、システムの更新によるデグレードが発生しないことの検証であれば、ステップS207とS210の処理結果に違いがないことを確認できればよい。尚、「デグレード」とは、システムを更新(バージョンアップ)した場合に、更新前に正常な処理結果を示していた機能が、更新後にソフトウェアのバグ等により不正確な処理結果を示す場合等を指すものとする。また、システムの変更により処理結果を変化させる場合には、ステップS207とS210の処理結果の違いが想定した通りであることを確認できればよい。
【0059】
そして、検証に問題がなければ、任意のタイミングで、対象システム220における運用版ファイル221を検証版ファイル231に置き換えることで、システム変更をリリースできる。このとき、運用版と検証版とのシステムの差異は、運用版ファイル221と検証版ファイル231であり、検証版ファイル231に問題がないことを確認できたため、検証後のリリースにおける障害のリスクを軽減できる。尚、リリース後に検証設定領域242をオフにするか、仮想コンテナB23における対象システム230の稼働を停止することで、対象システム220のみを稼働させて運用させることができる。
【0060】
または、検証に問題がない場合に、運用設定領域241と検証設定領域242の仮想コンテナを入れ替えることでシステム変更をリリースしてもよい。この場合でも、仮想コンテナB23の対象システム230は、対象システム220と共通の環境設定で検証済みであるため、検証後のリリースにおける障害のリスクを軽減できる。
【0061】
<実施形態3>
本実施形態3は、上述した実施形態2の改良例である。すなわち、前記処理結果は、前記送信先である第3の情報システムへの処理要求を含み、前記出力制御部は、前記第3の情報システムへの処理要求の詳細情報を前記検証情報として出力するものである。尚、その他の構成は、実施形態2と同等であるため、共通する部分については図示及び詳細な説明を省略する。
【0062】
図7は、本実施形態3にかかる検証制御方法の流れを示すシーケンス図である。
図7は、
図6とステップS201からS211までが共通する。本実施形態にかかるアクション実施IF25は、ステップS211において検出した処理結果の出力元である仮想コンテナB23が検証設定領域242に設定されていると判定する。そのため、アクション実施IF25は、検出した処理結果について、当該処理結果の宛先(送信先)である連携先システム33への転送を抑止する。また、処理結果には、連携先である連携先システム33への処理要求が含まれる。よって、アクション実施IF25は、処理要求の詳細情報を生成する(S212a)。ここで、詳細情報は、処理要求が連携先システム33における実行コマンドである場合、当該実行コマンドに関連するパラメータの情報である。例えば、詳細情報は、処理要求におけるパラメータのリストであってもよい。そして、アクション実施IF25は、詳細情報を検証情報に含めてネットワークNを介して検証端末32へ送信する(S213a)。
【0063】
このように、本実施形態3により、実施形態2と同様の効果に加えて、検証端末32での検証をより詳細に行うことができる。
【0064】
<その他の実施形態>
尚、上述の実施形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、CPUにコンピュータプログラムを実行させることにより実現することも可能である。
【0065】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、DVD(Digital Versatile Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0066】
なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施形態を適宜組み合わせて実施されてもよい。
【0067】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記A1)
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶部と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御部と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御部と、
を備え、
前記入力制御部は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御部は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する
検証制御装置。
(付記A2)
前記入力制御部は、前記第1の領域に前記運用設定がされ、かつ、前記第2の領域に前記検証設定がされていた場合、前記処理要求を前記第1の領域へ転送し、かつ、当該処理要求を複製して前記第2の領域へ転送する
付記A1に記載の検証制御装置。
(付記A3)
前記出力制御部は、前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、所定の検証端末へ前記処理結果の検証情報を出力する
付記A1又はA2に記載の検証制御装置。
(付記A4)
前記出力制御部は、前記送信先との疎通確認の結果を前記検証情報として出力する
付記A3に記載の検証制御装置。
(付記A5)
前記処理結果は、前記送信先である第3の情報システムへの処理要求を含み、
前記出力制御部は、前記第3の情報システムへの処理要求の詳細情報を前記検証情報として出力する
付記A3又はA4に記載の検証制御装置。
(付記A6)
前記第1のファイルは、前記第1の情報システムに関する処理ロジック又は設定内容であり、
前記第2のファイルは、前記第1のファイルの更新後のファイルである
付記A1乃至A5のいずれか1項に記載の検証制御装置。
(付記A7)
前記第1の及び第2の領域のそれぞれは、仮想コンテナである
付記A1乃至A6のいずれか1項に記載の検証制御装置。
(付記B1)
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、
前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域と、
前記第1の領域と前記第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶する記憶部と、
前記環境設定に基づき稼働する情報システムに対する処理要求を送信する端末と、
前記端末から前記処理要求を受け付けた場合、前記設定情報に応じた領域へ当該処理要求を転送する入力制御部と、
前記設定情報に応じて、前記第1の領域及び前記第2の領域からの出力を制御する出力制御部と、
を備え、
前記入力制御部は、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記出力制御部は、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する
検証制御システム。
(付記B2)
前記入力制御部は、前記第1の領域に前記運用設定がされ、かつ、前記第2の領域に前記検証設定がされていた場合、前記処理要求を前記第1の領域へ転送し、かつ、当該処理要求を複製して前記第2の領域へ転送する
付記B1に記載の検証制御システム。
(付記C1)
コンピュータが、
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶装置に格納し、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付け、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送し、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送し、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する
検証制御方法。
(付記D1)
第1のファイルを含む第1の情報システムが稼働する仮想化実行領域である第1の領域と、前記第1の領域と共通の環境設定が適用され、前記第1の情報システムにおける前記第1のファイルが第2のファイルに置き換わった第2の情報システムが稼働する仮想化実行領域である第2の領域とのいずれか一方について運用設定がされ、他方について検証設定がされた設定情報を記憶装置に格納する処理と、
外部から前記環境設定に基づき稼働する情報システムに対する処理要求を受け付ける処理と、
前記運用設定がされた領域及び前記検証設定がされた領域のそれぞれへ前記処理要求を転送する処理と、
前記運用設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先へ当該処理結果を転送する処理と、
前記検証設定がされた領域から前記処理要求に対する処理結果の出力を検出した場合、当該処理結果の送信先への転送を抑止する処理と、
をコンピュータに実行させる検証制御プログラム。
【0068】
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0069】
この出願は、2020年2月28日に出願された日本出願特願2020-032720を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0070】
1 検証制御装置
11 入力制御部
12 第1の領域
120 第1の情報システム
121 第1のファイル
13 第2の領域
130 第2の情報システム
131 第2のファイル
14 記憶部
140 設定情報
141 運用設定領域
142 検証設定領域
15 出力制御部
200 検証制御システム
2 サーバ
21 データ振分IF
22 仮想コンテナA
220 対象システム
221 運用版ファイル
23 仮想コンテナB
230 対象システム
231 検証版ファイル
24 記憶部
240 設定情報
241 運用設定領域
242 検証設定領域
25 アクション実施IF
31 ユーザ端末
32 検証端末
33 連携先システム
N ネットワーク
41 記憶部
411 OS
412 コンテナ管理プログラム
4121 検証制御プログラム
413 対象システム
4131 運用版ファイル
414 対象システム
4141 検証版ファイル
415 設定情報
42 制御部
43 メモリ
44 通信IF
51 ハードウェア
52 OS
53 コンテナ管理SW
530 検証制御SW
531 データ振分IF
532 アクション実施IF
54 仮想コンテナA
541 ライブラリ・環境変数
542 ミドルウェア
543 アプリケーション
55 仮想コンテナB
551 ライブラリ・環境変数
552 ミドルウェア
553 アプリケーション