JP2017033136A - 情報制御プログラム、情報制御装置及び情報制御方法 - Google Patents

情報制御プログラム、情報制御装置及び情報制御方法 Download PDF

Info

Publication number
JP2017033136A
JP2017033136A JP2015150465A JP2015150465A JP2017033136A JP 2017033136 A JP2017033136 A JP 2017033136A JP 2015150465 A JP2015150465 A JP 2015150465A JP 2015150465 A JP2015150465 A JP 2015150465A JP 2017033136 A JP2017033136 A JP 2017033136A
Authority
JP
Japan
Prior art keywords
information
difference
storage unit
storage
stored
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.)
Pending
Application number
JP2015150465A
Other languages
English (en)
Inventor
敦二 関口
Atsuji Sekiguchi
敦二 関口
堀田 勇次
Yuji Hotta
勇次 堀田
智弘 清水
Toshihiro Shimizu
智弘 清水
武 安家
Takeshi Ake
武 安家
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 JP2015150465A priority Critical patent/JP2017033136A/ja
Priority to US15/219,561 priority patent/US20170031809A1/en
Publication of JP2017033136A publication Critical patent/JP2017033136A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

【課題】プログラムのバグによる影響を限定し、プログラムのリリース間隔を短縮する情報制御プログラム、情報制御装置及び情報制御方法を提供する。【解決手段】記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、差分記憶部が存在しないと判定した場合、差分記憶部を作成して差分情報を移行し、差分情報に対し、更新要求に基づく更新を行い、記憶情報のうち記憶部に記憶された記憶情報と差分情報とのマージ要求を受け付けたことに応じて、差分情報を記憶情報の一部として記憶部に記憶する。【選択図】図9

Description

本発明は、情報制御プログラム、情報制御装置及び情報制御方法に関する。
利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、例えば、利用者に対してサービスを提供するための業務システム(以下、単に業務システムとも呼ぶ)を構築する。そして、事業者は、稼働中の業務システムに対し、必要に応じてセキュリティパッチの適用や新機能の導入等を行う。具体的に、事業者は、例えば、業務システムに対して新たなプログラムのリリースを行うことにより、セキュリティパッチの適用や新機能の導入等を行う。
ここで、業務システムに対してリリースするプログラムには、未知のバグが内在している可能性がある。そして、リリースしたプログラムに未知のバグが内在していた場合、事業者の意図しない形での情報の更新が行われる可能性がある(以下、これを情報の破壊とも呼ぶ)。そのため、事業者は、例えば、リリースされたプログラムに未知のバグが内在している場合であっても、情報の破壊が発生する範囲を限定することができる措置を行う。
具体的に、プログラムのリリースに伴う情報の破壊が発生する範囲を限定するためのリリース方法として、カナリアリリースが知られている。カナリアリリースは、例えば、リリースされたプログラムよって実現される新機能を、一部の利用者にのみ試験的に利用させ、リリースされたプログラムに未知のバグが内在しているか否かの検証を行うリリース方法である。そして、カナリアリリースでは、リリースされたプログラムに未知のバグが内在していないと判定した場合に、リリースされたプログラムよって実現される新機能を全ての利用者に利用させる。
そのため、事業者は、カナリアリリースを行う場合、リリースされたプログラムよって実現される新機能と、業務システムで既に動作している既存機能(新機能の旧版に該当する機能)とが同時に動作するようにリリースを行う。そして、事業者は、この場合、各利用者が既存機能及び新機能のいずれか一方のみを利用するように業務システムに対して設定を行う。さらに、事業者は、この場合、新機能のみがアクセスする情報を、既存機能がアクセスする情報から分離する(以下、新機能のみがアクセスする情報を分離情報とも呼び、既存機能がアクセスする情報を記憶情報とも呼ぶ)。
これにより、事業者は、リリースしたプログラムに内在していた未知のバグによって情報の破壊が発生した場合であっても、その未知のバグによる影響を分離情報のみに限定させることが可能になる。そのため、事業者は、カナリアリリースを行うことにより、リリースしたプログラムに未知のバグが内在していた場合における業務システムへの影響を抑えることが可能になる(例えば、特許文献1乃至3参照)。
特開2010−224728号公報 国際公開第2012/073686号 特開2005−250892号公報
プログラムのリリースが行われる場合、事業者は、一般的に、所定の期間が経過してから次のプログラムのリリースを行う。すなわち、事業者は、リリースされたプログラムによる新機能が利用者にある程度利用され、リリースされたプログラムによる情報の破壊が発生するか否かを判定できるようになるまで、業務システムに対する次のリリースを行わない。
これにより、事業者は、リリースされたプログラムによる情報の破壊が発生した際に、プログラムのリリースが並行して複数回行われていたことにより、情報の破壊の原因となるプログラムを特定することができないといった事態の発生を防止することが可能になる。そのため、事業者は、この場合、発生した情報の破壊の原因の特定を早期に行うことが可能になる。
ここで、上記のようなカナリアリリースでは、リリースされたプログラムによる新機能を利用する利用者が限定される。そのため、カナリアリリースが行われた場合において、リリースされたプログラムによる新機能がある程度利用され、プログラムのリリースに伴う情報の破壊が発生するか否かを判定できるようになるまでに要する時間は、通常のリリースと比較して長くなる。したがって、カナリアリリースを行う場合、事業者は、プログラムのリリースを行う間隔を、通常のリリースを行う場合よりも長く設定する必要がある。
また、上記のように分離情報と記憶情報とを区別して管理する場合であっても、リリースされたプログラムによる新機能の処理内容によっては、新機能が記憶情報にアクセスを行う可能性がある。そのため、事業者は、この場合、未知のバグによる影響を分離情報のみに限定させることができない。
そこで、一つの側面では、プログラムのバグによる影響を限定し、プログラムのリリース間隔を短縮する情報制御プログラム、情報制御装置及び情報制御方法を提供することを目的とする。
実施の形態の一つの態様によれば、コンピュータに、記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行し、前記差分情報に対し、前記更新要求に基づく更新を行い、前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する、処理を実行させる。
一つの側面によれば、プログラムのバグによる影響を限定し、プログラムのリリース間隔を短縮する。
情報処理システム10の全体構成を示す図である。 カナリアリリースが行われる場合の情報処理装置1の具体例を説明する図である。 カナリアリリースが行われる場合の情報処理装置1の具体例を説明する図である。 カナリアリリースが行われる場合の情報処理装置1の具体例を説明する図である。 第1の実施の形態における情報制御処理の概略を説明する図である。 情報処理装置1のハードウエア構成を説明する図である。 情報処理装置1の各機能のブロック図である。 情報処理装置1の情報格納領域130に記憶された情報のブロック図である。 第1の実施の形態における情報制御処理の概略を説明するフローチャートである。 第1の実施の形態における情報制御処理の概略を説明するフローチャートである。 第1の実施の形態における情報制御処理の概略を説明する図である。 第1の実施の形態における情報制御処理の詳細を説明するフローチャートである。 第1の実施の形態における情報制御処理の詳細を説明するフローチャートである。 第1の実施の形態における情報制御処理の詳細を説明するフローチャートである。 第1の実施の形態における情報制御処理の詳細を説明するフローチャートである。 第1の実施の形態における情報制御処理の詳細を説明するフローチャートである。 記憶情報131の具体例を説明する図である。 S54の処理が行われた後の記憶情報131を説明する図である。 S55の処理で作成される差分情報134を説明する図である。 S56の処理で作成される管理情報132の具体例を説明する図である。 S32の処理が行われた後の差分情報134の具体例を説明する図である。 S32の処理が行われた後の差分情報134の具体例を説明する図である。 S41の処理が行われた後の記憶情報131の具体例を説明する図である。 S42の処理が行われた後の差分情報134の具体例を説明する図である。 S43の処理が行われた後の管理情報132の具体例を説明する図である。 S62の処理が行われる前の記憶情報131の具体例である。 S62の処理が行われる前の差分情報134の具体例である。 S62の処理が行われた後の記憶情報131の具体例である。 第2の実施の形態における情報制御処理を説明するフローチャートである。 第2の実施の形態における情報制御処理を説明するフローチャートである。 第2の実施の形態における情報制御処理を説明するフローチャートである。 第2差分情報135の具体例を説明する図である。 S92の処理が行われた後の記憶情報131の具体例を説明する図である。 記憶数131aが示す値に対応する数の情報を有する記憶情報131の具体例を説明する図である。
[情報処理システムの構成]
図1は、情報処理システム10の全体構成を示す図である。図1に示す情報処理システム10において、情報処理装置1(以下、情報制御装置1とも呼ぶ)がデータセンターDC内に設けられている。図1に示す情報処理装置1には、例えば、利用者に対してサービスを提供するための業務システムが構築される。また、図1に示す例において、情報処理装置1は、記憶部2を有している。
利用者端末11、12及び13は、例えば、インターネットやイントラネット等のネットワークを介して、データセンターDCとアクセス可能になっている。
情報処理装置1は、例えば、利用者端末11、12または13から送信された処理要求を受信したことに応じて、例えば、記憶部2に記憶された情報に対して処理を行う。具体的に、情報処理装置1は、例えば、記憶部2に記憶された情報の更新や読み出しを行う。
[カナリアリリースが行われる場合の情報処理装置の具体例]
次に、カナリアリリースが行われる場合の情報処理装置1の具体例について説明を行う。図2から図4は、カナリアリリースが行われる場合の情報処理装置1の具体例を説明する図である。
図2に示す情報処理装置1のCPU(Central Processing Unit)は、過去にリリースされたプログラム(以下、プログラムAとも呼ぶ)と協働することにより、既存機能を実現するための処理実行部121a(以下、第2処理部121aとも呼ぶ)として動作する。また、図2に示す情報処理装置1のCPUは、新たにリリースされたプログラム(以下、プログラムBとも呼ぶ)と協働することにより、新機能を実現するための処理実行部121b(以下、第1処理部121bとも呼ぶ)として動作する。
すなわち、図2に示す例において、既存機能は、例えば、利用者によってある程度利用されている機能である。そのため、プログラムAは、例えば、事業者によって、未知のバグが存在しないと判定されたプログラムである。一方、図2に示す例において、新機能は、例えば、利用者による利用が開始されてから間もない機能である。そのため、プログラムBは、例えば、未知のバグが存在しないとの判定が行われていないプログラムである。
また、図2に示す情報処理装置1のCPUは、利用者端末11、12または13から送信された処理要求を、処理実行部121aと処理実行部121bとのいずれかに振り分ける要求振分部122として動作する。具体的に、要求振分部122は、図2に示す例において、既存機能を利用する利用者が使用する利用者端末11または12から送信された処理要求を、処理実行部121aに振り分ける。また、要求振分部122は、図2に示す例において、新機能を利用する利用者が使用する利用者端末13から送信された処理要求を、処理実行部121bに振り分ける。
そして、処理実行部121bは、要求振分部122に振り分けられた処理要求の内容に基づき、分離情報133(例えば、新機能を利用する利用者に関する情報)が記憶された第2記憶部130bにアクセスする。また、処理実行部121aは、要求振分部122に振り分けられた処理要求の内容に基づき、記憶情報131が記憶された第1記憶部130aにアクセスする。
すなわち、情報処理装置1にカナリアリリースを行う場合、事業者は、既存機能を実現するために動作する処理実行部121aと、新機能を実現するために動作する処理実行部121bを並列して動作させる。そして、事業者は、図2に示す例において、利用者端末13を介して送信された処理要求のみを処理実行部121bに処理させる。また、事業者は、処理実行部121bのみがアクセスする分離情報133を、記憶情報131から分離して第2記憶部130bに記憶する。
これにより、処理実行部121bが第2記憶部130bのみにアクセスを行う場合、新機能を実現するためのプログラム(リリースされたプログラム)に未知のバグが内在している場合であっても、その未知のバグによる影響を分離情報133に留めることが可能になる。そのため、事業者は、カナリアリリースを行うことにより、リリースしたプログラムに未知のバグが内在していた場合における業務システムへの影響を抑えることが可能になる。
ここで、プログラムのリリースが行われた場合、事業者は、一般的に、所定の期間が経過してから次のリリースを行う。すなわち、事業者は、情報処理装置1にリリースされたプログラムによる新機能が利用者にある程度利用され、プログラムのリリースに伴う情報の破壊が発生するか否かを判定できるようになるまで、情報処理装置1に対して次のリリースを行わない。
これにより、事業者は、リリースされたプログラムによる情報の破壊が発生した際に、プログラムのリリースが並行して複数回行われていたことにより、情報の破壊の原因となるプログラムを特定することができないといった事態の発生を防止することが可能になる。そのため、事業者は、この場合、発生した情報の破壊の原因の特定を早期に行うことが可能になる。
しかしながら、上記のようなカナリアリリースでは、リリースされたプログラムによる新機能を利用する利用者が限定される。そのため、カナリアリリースが行われた場合において、リリースされたプログラムによる新機能がある程度利用され、プログラムのリリースに伴う情報の破壊が発生するか否かが判定できるようになるまでに要する時間は、通常のリリースと比較して長くなる。以下、カナリアリリース及び通常のリリースをそれぞれ行う場合の具体例について説明を行う。
図3は、未知のバグが内在するプログラムについてカナリアリリース及び通常のリリースを行う場合の具体例を説明する図である。具体的に、図3(A)は、通常のリリースの場合におけるリリースのタイミング、未知のバグの存在を検知可能なタイミング及び未知のバグへの対象が行われるタイミングの関係を説明するグラフである。また、図2(B)は、カナリアリリースの場合におけるリリースのタイミング、未知のバグの存在を検知可能なタイミング及び未知のバグへの対象が行われるタイミングの関係を説明するグラフである。
図3(A)及び図3(B)において、横軸は時間を示しており、縦軸はリリースしたプログラムに内在する未知のプログラムが情報処理装置1等に与える影響範囲を示している。そして、図3(A)及び図3(B)の横軸における「リリース」、「問題検知」及び「対処」は、それぞれカナリアリリースの場合におけるリリースのタイミング、未知のバグの存在を検知可能なタイミング及び未知のバグへの対象が行われるタイミングを示している。また、図3(A)及び図3(B)の縦軸における「影響範囲A」は、事業者がリリースしたプログラムに未知のバグが内在することを検知するために必要な影響範囲である。
カナリアリリースは、プログラムのリリース後、リリースされたプログラムによる新機能を限られた利用者にのみ利用させることにより、リリースしたプログラムに未知のバグが内在している場合であっても、その影響範囲を限定させるものである。そのため、カナリアリリースによってリリースされたプログラムによる新機能は、通常のリリースによってリリースされたプログラムによる新機能と比較して、利用者による利用頻度が低くなる。したがって、図3に示すように、図3(B)のグラフの縦軸が「影響範囲A」に到達するまでに要する時間(グラフの縦軸が「リリース」から「問題検知」に到達するまでの時間)は、図3(A)のグラフの縦軸が「影響範囲A」に到達するまでに要する時間よりも長くなる。
そのため、事業者は、情報処理装置1に対してカナリアリリースを行う場合、情報処理装置1に対するプログラムのリリース間隔を、通常のリリースを行う場合よりも長く設定する必要がある。
また、図2に示すように、分離情報133と記憶情報131とが分けて管理される場合であっても、リリースされたプログラムによる新機能の処理内容によっては、図4に示すように、新機能が記憶情報131にアクセスを行う可能性がある。そのため、この場合、事業者は、未知のバグによる影響を第2記憶部130bに記憶された分離情報133のみに限定させることができない。
そこで、第1の実施の形態における情報処理装置1は、図5に示すように、記憶情報131の更新要求を受け付けた場合に、差分記憶部130cの差分情報134(第1記憶部130aに記憶された記憶情報131の一部を移行した情報)を更新する。そして、情報処理装置1は、マージ要求を受け付けた場合に、差分記憶部130cに記憶された差分情報134を第1記憶部130aに記憶する。以下、第1の実施の形態における情報制御処理について説明を行う。
図5は、第1の実施の形態における情報制御処理を説明する図である。第1の実施の形態における情報処理装置1は、図5に示すように、第1記憶部130aに記憶された記憶情報131の一部を差分記憶部130cに移行した情報である差分情報134に対して更新を行う。すなわち、第1の実施の形態における情報処理装置1は、第1記憶部130aに記憶された記憶情報131に対して更新を行わない。
これにより、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合であっても、その未知のバグによる影響を、差分記憶部130cに記憶された差分情報134に限定させることが可能になる。そのため、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合であっても、その未知のバグによる影響を第1記憶部130aに記憶された記憶情報131に及ぶことを防止することが可能になる。
また、情報処理装置1が未知のバグによる影響を差分記憶部130cに記憶された差分情報134に限定させることにより、事業者は、カナリアリリースを行う間隔を短縮することが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図6は、情報処理装置1のハードウエア構成を説明する図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体(ストレージ)104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、記憶媒体104内のプログラム格納領域(図示しない)に、リリースされたプログラムによる新機能がアクセスする情報を制御する処理(以下、情報制御処理とも呼ぶ)を行うためのプログラム110を記憶する。
CPU101は、図6に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働して情報制御処理を行う。
記憶媒体104は、例えば、情報制御処理を行う際に用いられる情報を記憶する情報格納領域130を有する。また、外部インターフェース103は、利用者端末11、12及び13と通信を行う。なお、情報格納領域130は、図1で説明した記憶部2に対応する。
[情報処理装置のソフトウエア構成]
次に、情報処理装置1のソフトウエア構成について説明する。図7は、情報処理装置1の各機能のブロック図である。CPU101は、プログラム110と協働することにより、存在判定部111と、情報更新部112と、情報追加記憶部113として動作する。また、CPU101は、プログラム110と協働することにより、情報読み出し部114と、情報管理部115と、情報マージ部116として動作する。なお、以下、図7に示す存在判定部111、情報更新部112、情報追加記憶部113、情報読出し部114及び情報管理部115は、要求振分部122が振り分けた処理要求を処理実行部121bが実行した場合に動作する。
また、図8は、情報処理装置1の情報格納領域130に記憶された情報のブロック図である。図8に示すように、情報格納領域130には、例えば、第1情報格納領域130a(以下、第1記憶部130aまたは記憶部130aとも呼ぶ)と、第2情報格納領域130b(以下、第2記憶部130b)と、第3情報格納領域130c(以下、差分記憶部130cとも呼ぶ)とが存在する。
そして、第1記憶部130aには、記憶情報131と、管理情報132とが記憶され、第2記憶部130bには、分離情報133が記憶される。また、差分記憶部130cには、差分情報134と第2差分情報135とが記憶される。
存在判定部111は、処理実行部121bによる処理要求の実行に伴って情報更新部112が記憶情報131に対する更新要求の実行を行う前に、差分記憶部130cが存在するか否かを判定する。その結果、差分記憶部130cが存在しないと判定した場合、情報管理部115は、差分記憶部130cを作成する。そして、情報管理部115は、差分記憶部130cを作成した後、記憶情報131のうちの一部の情報を差分情報134として差分記憶部130cに移行して記憶する。
また、存在判定部111は、処理実行部121bによる処理要求の実行に伴って情報追加記憶部113が追加記憶要求の実行を行う前に、差分記憶部130cが存在するか否かを判定する。その結果、差分記憶部130cが存在しないと判定した場合、情報管理部115は、差分記憶部130cを作成する。
なお、記憶情報131及び差分情報134は、例えば、数値情報を含むものであってよい。また、この場合、更新要求は、例えば、記憶情報131または差分情報134が示す値を増加または減少させる要求であってよい。
情報更新部112は、処理実行部121bから更新要求を受け付けた場合、差分記憶部130cに記憶された差分情報134の更新を行う。
情報追加記憶部113は、処理実行部121bから追加記憶要求を受け付けた場合、追加記憶要求に対応する情報を第2差分情報135の少なくとも一部として差分記憶部130cに記憶する。
情報読み出し部114は、処理実行部121bから読み出し要求を受け付けた場合、読み出し要求に基づく情報の読み出しを行う。
情報マージ部116は、例えば、事業者からマージ要求を受け付けた場合、差分記憶部130cに記憶された情報を第1記憶部130aに記憶する。具体的に、情報マージ部116は、例えば、差分記憶部130cに差分情報134が記憶されている場合、差分情報134と、第1記憶部130aに記憶された記憶情報131とのマージを行う。また、情報マージ部116は、例えば、差分記憶部130cに差分情報134及び第2差分情報135が記憶されている場合、差分情報134及び第2差分情報135と、第1記憶部130aに記憶された記憶情報131とのマージを行う。なお、管理情報132については後述する。また、記憶情報131、管理情報132、差分情報134及び第2差分情報135の具体例については後述する。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図9及び図10は、第1の実施の形態における情報制御処理の概略を説明するフローチャートである。図11は、第1の実施の形態における情報制御処理の概略を説明する図である。図11を参照しながら、図9及び図10の情報処理装置について説明を行う。
初めに、情報処理装置1は、記憶情報131の更新要求を受け付けるまで待機する(S1のNO)。すなわち、情報処理装置1は、例えば、新機能を利用する利用者が利用者端末13を介して送信した処理要求を実行した結果、記憶情報131の更新要求を実行する必要が生じるようになるまで待機する。そして、記憶情報131の更新要求を受け付けた場合(S1のYES)、情報処理装置1は、差分記憶部130cが存在するか否かを判定する(S2)。
その結果、差分記憶部130cが存在しない場合(S2のNO)、情報処理装置1は、差分記憶部130cを作成する(S3)。そして、情報処理装置1は、この場合、第1記憶部130aに記憶された記憶情報131のうちの一部の情報を、差分情報134として差分記憶部130cに移行する(S4)。一方、差分記憶部130cが存在する場合(S2のYES)、情報処理装置1は、S3及びS4の処理を実行しない。
そして、情報処理装置1は、差分記憶部130cに記憶された差分情報134に対し、S1の処理で受信した更新要求に基づく更新を行う(S5)。
すなわち、情報処理装置1は、更新要求に基づく更新が差分記憶部130cに記憶された差分情報134のみに対して行われるように情報の管理を行う。これにより、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合であっても、その未知のバグによる影響を受ける範囲を差分記憶部130cに記憶されている差分情報134に限定することが可能になる。そして、情報処理装置1は、未知のバグによる影響が、第1記憶部130aに記憶された記憶情報131に及ぶことを防止することが可能になる。また、未知のバグによる影響が差分情報134に限定されることにより、事業者は、カナリアリリースを行う間隔を短縮することが可能になる。
その後、情報処理装置1は、図10に示すように、例えば、事業者が使用する事業者端末(図示しない)から、第1記憶部130aに記憶された記憶情報131と、差分記憶部130cに記憶された差分情報134とをマージするためのマージ要求を受信するまで待機する(S11のNO)。そして、マージ要求を受信した場合(S11のYES)、情報処理装置1は、差分記憶部130cに記憶された差分情報134を第1記憶部130aに記憶する(S12)。
すなわち、リリースされたプログラムによる新機能が利用者にある程度利用され、プログラムのリリースに伴うデータの破壊が発生するか否かが判定できるタイミングになった場合、事業者は、例えば、リリースされたプログラムに未知のバグが内在していないと判定する。そして、この場合、事業者は、事業者端末(図示しない)を介して情報処理装置1にマージ要求を送信し、第1記憶部130aに記憶された記憶情報131と、差分記憶部130cに記憶された差分情報134とのマージを行う。これにより、事業者は、差分記憶部130cが作成される前と同じように、記憶情報131と差分情報134とを分離しない形での情報の管理を行うことが可能になる。
このように、情報処理装置1は、第1記憶部130aに記憶された記憶情報131の更新要求を受け付けたことに応じて、記憶情報131のうちの一部の情報を差分情報134として記憶する差分記憶部130cが存在するか否かを判定する。そして、情報処理装置1は、差分記憶部130cが存在しないと判定した場合、差分記憶部130cを作成して差分情報134を差分記憶部130cに移行する。その後、情報処理装置1は、差分記憶部130cに記憶された差分情報134に対し、更新要求に基づく更新を行う。
一方、情報処理装置1は、第1記憶部130aに記憶された記憶情報131と差分記憶部130cに記憶された差分情報134とのマージ要求を受け付けたことに応じて、差分情報134を記憶情報131の一部として第1記憶部130aに記憶する。
これにより、情報処理装置1は、リリースされたプログラムによる新機能が記憶情報131の更新を行う場合、第1記憶部に記憶された情報の更新を直接行う必要がなくなる。そのため、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合であっても、その未知のバグによる影響を差分記憶部130cに記憶された差分情報134に限定させることが可能になる。そして、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合であっても、その未知のバグによる影響を第1記憶部130aに記憶された記憶情報131に及ぶことを防止することが可能になる。
また、情報処理装置1は、プログラムのリリースを並行して複数回行った場合において、リリースしたプログラムのいずれかに未知のバグが内在していた場合であっても、その未知のバグによる影響を差分情報134に限定させることが可能になる。そのため、情報処理装置1は、先のプログラムのリリースに伴う情報の破壊が発生するか否かを判定できるタイミングになる前に、次のリリースを行うことが可能になる。
具体的に、図11に示すように、事業者は、先のプログラムのリリースに伴う情報の破壊が発生するか否かを判定できるタイミング(「問題検知1」が示すタイミング)になる前のタイミング(「リリース2」のタイミング)に、次のプログラムのリリースを行うことが可能になる。したがって、事業者は、カナリアリリースを行う場合であっても、プログラムのリリースを行う頻度を高めることが可能になる。
なお、情報処理装置1は、プログラムのリリースを並行して複数回行う場合、リリースされたプログラムのそれぞれに対応する差分情報134を、複数作成するものであってもよい。これにより、情報処理装置1は、リリースされたプログラムのいずれかに未知のバグが内在していた場合であっても、その未知のバグによる影響を、複数の差分情報134のうちの未知のバグが内在していたプログラムに対応する差分情報134に限定することが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図12から図16は、第1の実施の形態における情報制御処理の詳細を説明するフローチャートである。また、図17から図28は、第1の実施の形態における情報制御処理の詳細を説明する図である。図17から図28を参照しながら、図12から図16の情報制御処理を説明する。なお、以下、情報処理装置1において、イベントのチケットの販売残数を管理する業務システムが稼働しているものとして説明を行う。
[情報更新処理及び情報読み出し処理]
初めに、情報制御処理のうち、情報の更新を行う処理(以下、情報更新処理とも呼ぶ)及び情報の読み出しを行う処理(以下、情報読み出し処理とも呼ぶ)について説明を行う。
要求振分部122は、利用者端末11、12及び13から処理要求を受信するまで待機する(S21のNO)。そして、処理要求を受信した場合(S21のYES)、要求振分部122は、例えば、利用者端末11、12または13から受信した処理要求を、処理実行部121aと処理実行部121bとに振り分ける。具体的に、要求振分部122は、例えば、利用者端末11または12から受信した処理要求を処理実行部121aに振り分け、利用者端末13から受信した処理要求を処理実行部121bに振り分ける。
その後、処理要求が処理実行部121bに振り分けられた場合、処理実行部121bは、振り分けられた処理要求を実行する。そして、処理要求を実行した結果、記憶情報131の更新要求を実行する必要が生じた場合(S22のNO)、処理実行部121bは、存在判定部111に処理の指示を行う。具体的に、存在判定部111は、この場合、図13に示すように、差分記憶部130cが存在するか否かの判定を行う(S31)。その結果、差分記憶部130cが存在しない場合(S31のNO)、情報管理部115は、差分記憶部130c及び管理情報132の作成を行う。管理情報132は、差分情報134として記憶情報131の一部を移行した差分記憶部130の情報を含む情報である。以下、差分記憶部130c及び管理情報132の作成を行う際の具体的な処理について説明を行う。
情報管理部115は、図15に示すように、事業者によって予め定められた値である要求上限数132aを取得する(S51)。要求上限数132aは、第1記憶部130aに記憶された記憶情報131のうち、差分情報134として差分記憶部130cに記憶することができる情報の数である。要求上限数132aは、事業者によって情報格納領域130に予め記憶されているものであってよい。
すなわち、差分記憶部130cに記憶される差分情報134は、リリースしたプログラムに未知のバグが内在している場合、その未知のバグの影響を受ける情報である。そのため、事業者は、差分記憶部130cに記憶する差分情報134の情報量が可能な限り少なくように管理する必要がある。したがって、事業者は、例えば、要求上限数132aを予め定めて、情報格納領域130に記憶する。これにより、情報管理部115は、要求上限数132aに基づく情報の管理を行うことが可能になる。
さらに、情報管理部115は、取得した要求上限数132aから、差分記憶部130cに移行する情報の数の単位である要求数132bを算出する(S51)。情報管理部115は、例えば、取得した要求上限数132aを「2」で除算した値を、要求数132bとして算出する。これにより、情報管理部115は、差分記憶部130cに記憶する差分情報134の情報量が少なくなるように管理することが可能になる。
また、情報管理部115は、取得した要求上限数132aから、要求可能数132cを算出する(S51)。要求可能数は、例えば、第1記憶部130aに記憶された記憶情報131のうち、差分情報134としてさらに差分記憶部130cに移行することができる情報の数である。そのため、情報管理部115は、例えば、要求上限数132aから要求数132bを減算した値を、要求可能数132cとして算出するものであってもよい。なお、以下、要求上限数132aが「400(枚)」であり、要求数132bが「200(枚)」であり、要求可能数132cが「200(枚)」であるものとして説明を行う。
次に、情報管理部115は、記憶情報131に含まれる記憶数131aから要求数132bを減算した値が、「0」よりも大きいか否かを判定する(S52)。以下、記憶情報131の具体例について説明を行う。
図17は、記憶情報131の具体例を説明する図である。図17に示す記憶情報131は、記憶情報131に含まれる各情報を識別する「情報ID」と、イベントの名称を設定する「イベント名」と、現在のチケットの残数を設定する「記憶数」とを項目として有する。具体的に、図17に示す記憶情報131において、「情報ID」が「1」である情報の「イベント名」が「コンサートA」であり、「記憶数」が「3000(枚)」である。図17の他の情報については説明を省略する。なお、以下、情報管理部115は、図17に示す記憶情報131のうちの「情報ID」が「1」である情報の一部を、差分情報134として差分記憶部130cに移行するものとして説明を行う。
図17に示す記憶情報131に対してS52の処理を行う場合、情報管理部115は、「情報ID」が「1」である情報の「記憶数」に記憶された情報である「3000(枚)」を、記憶数131aとして取得する。また、情報管理部115は、要求数132bとして「200(枚)」を取得する。そして、記憶数131aである「3000(枚)」から要求数132bである「200(枚)」を減算した値である「2800(枚)」は、「0(枚)」よりも大きい。そのため、情報管理部115は、この場合、記憶数131aから要求数132bを減算した値が、「0」よりも大きいか否かを判定する(S52のYES)。
図15に戻り、情報管理部115は、記憶数131aから要求数132bを減算した値が、「0」よりも大きい場合(S52のYES)、差分記憶部130cを作成する(S53)。その後、情報管理部115は、記憶数131aから要求数132bを減算した値を、記憶数131aとして第1記憶部130aに記憶する(S54)。以下、S54の処理が行われた後の記憶情報131について説明を行う。
図18は、S54の処理が行われた後の記憶情報131を説明する図である。情報管理部115は、図17に示す記憶情報131のうちの「情報ID」が「1」である情報の「記憶数」に設定された値である「3000(枚)」から、要求数132bである「200(枚)」を減算した値である「2800(枚)」を算出する。そして、情報管理部115は、図18の下線部分に示すように、図18に示す記憶情報のうちの「情報ID」が「1」である情報の「記憶数」に「2800(枚)」を設定する。すなわち、情報管理部115は、現在の記憶数131aから差分記憶部130cに移行する情報の数を減算した値を、新たな記憶数131aとして記憶する。
図15に戻り、情報管理部115は、要求数132bを差分数134aとする差分情報134を作成する(S55)。そして、情報管理部115は、作成した差分情報134を差分記憶部130cに記憶する。以下、S55の処理で作成される差分情報134の具体例について説明を行う。
図19は、S55の処理で作成される差分情報134を説明する図である。図19に示す差分情報134は、図17等で説明した記憶情報131と同じ項目を有している。具体的に、情報管理部115は、図19に示すように、「情報ID」に「1」を設定し、「イベント名」に「コンサートA」を設定し、「差分数」に要求数132bである「200(枚)」を設定する。
すなわち、情報管理部115は、図13のS31の処理において、差分記憶部130cが存在しない場合、記憶情報131の記憶数131aに設定された値の一部を差分数134aに設定した差分情報134を作成する。これにより、情報管理部115は、リリースされたプログラム(未知のバグが内在している可能性があるプログラム)による新機能が更新する情報を、差分情報134の差分数134aのみに限定することが可能になる。
図15に戻り、情報管理部115は、管理情報132を作成する(S56)。そして、情報管理部115は、作成した管理情報132を第1記憶部130aに記憶する。以下、S56の処理で作成される管理情報132の具体例について説明を行う。
図20は、S56の処理で作成される管理情報132の具体例を説明する図である。なお、以下、図17等で説明した記憶情報131が記憶されたDB(データベース)の名称が「DB1」であり、記憶情報131のテーブル名が「チケット管理テーブル」であるものとして説明を行う。
図20に示す管理情報132は、管理情報132が管理する記憶情報131が記憶されたDB(データベース)を識別する「DB名」と、管理情報132が管理する記憶情報131のテーブル名を識別する「テーブル名」とを項目として有する。また、図20に示す管理情報132は、記憶情報131の「情報ID」に対応する「情報ID」を項目として有する。また、図20に示す管理情報132は、要求数132bを設定する「要求数」と、要求可能数132cを設定する「要求可能数」と、要求上限数131aを設定する「要求上限数」とを有する。
具体的に、図20に示す管理情報132に示すように、情報管理部115は、例えば、「DB名」に「DB1」を設定し、「テーブル名」に「チケット管理テーブル」を設定し、「情報ID」に「1」を設定する。また、図20に示す管理情報132に示すように、情報管理部115は、例えば、「要求数」に「200(枚)」を設定し、「要求可能数」に「200(枚)」を設定し、「要求上限数」に「400(枚)」を設定する。これにより、情報管理部115は、差分情報134として移行した記憶情報131の移行先に関する情報を管理することが可能になる。
図15に戻り、S52の処理において、記憶数131aから要求数132bを減算した値が「0」以下である場合(S52のNO)、情報管理部115は、現在の要求数132bを「2」で除算した値を、新たな要求数132bとして再算出する(S57)。
すなわち、S52の処理において、記憶数131aから要求数132bを減算した値が「0」以下である場合とは、図2で説明した処理実行部121aによる処理が頻繁に行われたことにより、記憶数131aが減少した場合である。そのため、情報管理部115は、この場合、第1記憶部130aから差分記憶部130cに移行する情報の数が少なくなるように、要求数132bを再算出する。これにより、情報管理部115は、現在の記憶数131aに合わせた形で情報の管理を行うことが可能になる。
そして、S57の処理で算出した要求数132bが「0」よりも大きい場合(S58のYES)、情報管理部115は、S52以降の処理を行う。一方、S57の処理で算出した要求数132bが「0」以下である場合(S58のNO)、情報管理部115は、情報制御処理を終了する。すなわち、この場合、情報管理部115は、記憶情報131のうち差分情報134として差分記憶部130cに移行することができる情報が存在しないと判定し、情報制御処理を終了する。なお、情報管理部115は、この場合、管理者に対してエラー通知を行うものであってもよい。
図13に戻り、差分記憶部130cが存在する場合(S31のYES)、情報更新部112は、更新要求の内容に応じて、差分記憶部130cに記憶された差分情報134の差分数134aを更新する(S32)。以下、S32の処理が行われた後の差分情報134の具体例について説明を行う。
図21及び図22は、S32の処理が行われた後の差分情報134の具体例を説明する図である。例えば、処理実行部121bがコンサートAのチケットの販売を2枚分要求する処理要求を受信した場合、情報更新部112は、図21の下線部分に示すように、図21に示す「差分数」に設定された値である「200(枚)」を「198(枚)」に更新する。
すなわち、この場合、情報更新部112は、図18に示す記憶情報131の記憶数131aを更新せずに、差分情報134の差分数134aのみを更新する。これにより、情報更新部112は、リリースしたプログラムに未知のバグが内在している場合であっても、その未知のバグによる影響を差分情報134の差分数134aに限定することが可能になる。
図13に戻り、情報管理部115は、差分情報134の差分数134aが「0」よりも大きいか否かについて判定する(S33)。そして、差分情報134の差分数134aが「0」よりも大きい場合(S33のYES)、情報管理部115は、図12のS26以降の処理を行う。一方、図22の下線部分に示すように、差分数134aが「0」以下である場合(S33のNO)、管理情報132の要求可能数132cが「0」よりも大きいか否かについて判定する(S34)。
その結果、管理情報132の要求可能数132cが「0」よりも大きい場合(S34のYES)、記憶数131aから要求可能数132cを減算した値が「0」よりも大きいか否かを判定する(S35)。一方、要求可能数132cが「0」以下である場合(S34のNO)、情報管理部115は、情報制御処理を終了する。すなわち、この場合、情報管理部115は、記憶情報131のうち差分情報134として差分記憶部130cに移行することができる情報が存在しないと判定し、情報制御処理を終了する。そして、情報管理部115は、この場合、管理者に対してエラー通知を行うものであってもよい。
なお、情報管理部115は、S33の処理において、差分情報134の差分数134aが、所定の閾値(「0」よりも大きい数)よりも大きいか否かについて判定するものであってもよい。そして、情報管理部115は、S33の処理において、差分数134aが所定の閾値を下回った場合に、S34以降の処理を実行するものであってもよい。以下、S34及びS35の処理の具体例について説明を行う。
図20に示す管理情報132において、「要求可能数」に設定された値は「200(枚)」であるため、「0(枚)」よりも大きい値である(S34のYES)。また、図18に示す記憶情報131において、「情報ID」が「1」である情報の「記憶数」には「2800(枚)」が設定されている。そのため、「情報ID」が「1」である情報の「記憶数」に設定された「2800(枚)」から、図20に示す管理情報の「要求可能数」に設定された「200(枚)」を減算した値である「2600(枚)」は、「0(枚)」よりも大きい値である(S35のYES)。したがって、情報管理部115は、この場合、図14のS41以降の処理を行う。
図13に戻り、記憶数131aから要求可能数132cを減算した値が「0」以下である場合(S35のNO)、情報管理部115は、現在の要求可能数132cを「2」で除算した値を、新たな要求可能数132cとして第1記憶部130aに記憶する(S36)。
すなわち、図2で説明した処理実行部121aが受信した処理要求の状況によっては、記憶数131aが減少し、記憶数131aから要求可能数132cを減算した値が「0」以下になる場合がある。そのため、情報管理部115は、この場合、S36の処理において、要求可能数132cを減少させる。これにより、情報管理部115は、現在の記憶数131aに合わせた形で情報の管理を行うことが可能になる。
図13に戻り、記憶数131aから要求可能数132cを減算した値が「0」よりも大きい場合(S35のYES)、情報管理部115は、図14に示すように、現在の記憶数131aから要求数132bを減算した値を、新たな記憶数131aとして第1記憶部130aに記憶する(S41)。また、情報管理部115は、現在の差分数134aに要求数132bを加算した値を、新たな差分数134aとして差分記憶部130cに記憶する(S42)。さらに、情報管理部115は、現在の要求可能数132cから要求数132bを減算した値を、新たな要求可能数133cとして差分記憶部130に記憶する(S43)。その後、情報管理部115は、図12のS26以降の処理を行う。以下、S41からS43の処理の具体例について説明を行う。
図23は、S41の処理が行われた後の記憶情報131の具体例を説明する図である。また、図24は、S42の処理が行われた後の差分情報134の具体例を説明する図である。さらに、図25は、S43の処理が行われた後の管理情報132の具体例を説明する図である。
図18に示す記憶情報131における「情報ID」が「1」である情報の「記憶数」に設定された値は、「2800(枚)」である。また、図20に示す管理情報132の「要求数」に設定された値は、「200(枚)」である。そのため、情報管理部115は、図23の下線部分に示すように、「2800(枚)」から「200(枚)」を減算した値である「2600(枚)」を、「情報ID」が「1」である情報の「記憶数」として記憶する(S41)。
次に、図22に示す差分情報134の「差分数」に設定された値は、「0(枚)」である。また、図20に示す管理情報の「要求数」に設定された値は、「200(枚)」である。そのため、情報管理部115は、図24の下線部分に示すように、「0(枚)」から「200(枚)」を加算した値である「200(枚)」を、差分情報134の「差分数」として記憶する(S42)。
さらに、図20に示す管理情報132の「更新可能数」に設定された値は、「200(枚)」である。また、図20に示す管理情報の「要求数」に設定された値は、「200(枚)」である。そのため、情報管理部115は、図25の下線部分に示すように、「200(枚)」から「200(枚)」を減算した値である「0(枚)」を、管理情報132の「要求可能数」として記憶する(S43)。
図12に戻り、処理要求に基づく処理の実行した結果、記憶情報131の読み出し要求を実行する必要が生じた場合(S22のYES)、処理実行部121bは、存在判定部111に処理を指示する。具体的に、存在判定部111は、この場合、差分記憶部130cが存在するか否かの判定を行う(S23)。
その結果、差分記憶部130cが存在する場合(S23のYES)、情報読み出し部114は、差分記憶部130cを参照し、差分情報134のうちの読み出し要求に対応する情報の読み出しを行う(S24)。一方、差分記憶部130cが存在しない場合(S23のNO)、情報読み出し部114は、第1記憶部130aを参照し、記憶情報131のうちの読み出し要求に対応する情報の読み出しを行う(S25)。
すなわち、S23の処理において、差分記憶部130cが存在しない場合、読み出し要求の対象となる情報は、第1記憶部130aのみに存在していることになる。そのため、情報読出し部114は、この場合、第1記憶部130aを参照することにより、読み出し要求に対応する情報の読み出しを行う。
そして、例えば、事業者が情報制御処理を終了する旨の入力を行った場合(S26のYES)、情報処理装置1は、情報制御処理を終了する。一方、情報制御処理を終了する旨の入力が行われていない場合(S26のNO)、情報処理装置1は、S21以降の処理を再度実行する。
[処理実行部121aによる処理]
要求振分部122は、図12のS21の処理において、利用者端末11または12から処理要求を受信した場合(S21のYES)、要求振分部122は、例えば、利用者端末11または12から受信した処理要求を処理実行部121aに振り分ける。
この場合、処理実行部121aは、図5に示すように、例えば、S22以降の処理を行わずに、要求振分部122によって振り分けられた処理要求の内容に応じて、第1記憶部130aに記憶された記憶情報131に対して、情報の更新または情報の読み込みを行う。
すなわち、処理実行部121aが動作するためのプログラムは、処理実行部121bが動作するためのプログラムと異なり、利用者によって既にある程度利用されたプログラムである。そして、処理実行部121aが動作するためのプログラムは、例えば、事業者によって、未知のバグが内在していないと判定されたプログラムである。したがって、処理実行部121aは、例えば、要求振分部122から処理要求を振り分けられた場合、第1記憶部130aに記憶された記憶情報131の更新等を行うものであってよい。
[情報マージ処理]
次に、情報制御処理のうち、情報のマージを行う処理(以下、情報マージ処理とも呼ぶ)について説明を行う。
情報マージ部116は、図16に示すように、例えば、事業者端末等からマージ要求を受け付けるまで待機する(S61のNO)。そして、マージ要求を受け付けた場合(S61のYES)、情報マージ部116は、差分記憶部130cに記憶された差分情報134を第1記憶部130aに記憶する(S62)。その後、情報管理部115は、例えば、差分記憶部130c及び管理情報132を削除する(S63)。
すなわち、例えば、リリースされたプログラムによる新機能が利用者にある程度利用され、リリースされたプログラムによる情報の破壊が発生しないと判定された場合、事業者は、記憶情報131と差分情報134とを分離して管理する必要がなくなる。そのため、事業者は、この場合、情報処理装置1にマージ要求を送信し、第1記憶部130aに記憶されている記憶情報131と、差分記憶部130cに記憶されている差分情報134とをマージする。その後、事業者は、例えば、差分記憶部130c及び管理情報132の削除を行う。これにより、事業者は、記憶情報131と差分情報134とを分離して管理することに伴う情報処理装置1の処理負担を抑制することが可能になる。以下、S62の処理の具体例について説明する。
図26は、S62の処理が行われる前の記憶情報131の具体例である。また、図27は、S62の処理が行われる前の差分情報134の具体例である。さらに、図28は、S62の処理が行われた後の記憶情報131の具体例である。
図26に示す記憶情報131において、「情報ID」が「1」である情報の「記憶数」には「1241(枚)」が設定されており、図27に示す差分情報134において、「情報ID」が「1」である情報の「差分数」には「32(枚)」が設定されている。
そのため、情報マージ部116は、この場合、「1241(枚)」と「32(枚)」とを加算して「1273(枚)」を算出する。そして、情報マージ部116は、図28に下線部分に示すように、図28に示す記憶情報131のうちの「情報ID」が「1」である情報の「記憶数」に「1273(枚)」を設定する。これにより、情報マージ部116は、記憶情報131と差分情報134とのマージを行うことが可能になる。
なお、情報マージ部116は、例えば、記憶情報131が有する項目のうち、差分情報134とマージを行う必要がある情報が設定されている項目を特定するための情報(図示しない)を予め作成するものであってもよい。そして、情報マージ部116は、予め作成した情報を参照することにより、差分情報134とマージを行う必要がある情報が設定されている項目を特定し、記憶情報131と差分情報134とのマージを行うものであってもよい。
[第2の実施の形態における情報制御処理]
次に、第2の実施の形態における情報制御処理について説明を行う。第1の実施の形態においては、図2等で説明した処理実行部121bが受信した処理要求の内容に基づき、情報更新部112による差分情報134の更新と、情報読み出し部113による情報の読み出しとが行われる場合について説明を行った。
これに対し、第2の実施の形態における情報処理装置1は、情報更新部112による差分情報134の更新と、情報読み出し部114による情報の読み出しとに加え、情報追加記憶部113による新たな情報の追加記憶を行う。これにより、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合においても、情報追加記憶部113による新たな情報の追加記憶を行ったことによる影響を限定することが可能になる。以下、第2の実施の形態における情報制御処理の具体例について説明を行う。
図29から図31は、第2の実施の形態における情報制御処理を説明するフローチャートである。図32から図34は、第2の実施の形態における情報制御処理を説明する図である。図32から図34を参照しながら、図29から図31の情報制御処理について説明を行う。なお、以下、第1の実施の形態の場合と異なる処理についてのみ説明を行う。
[情報追加記憶処理]
初めに、第2の実施の形態における情報制御処理のうち、情報の追加記憶を行う処理(以下、情報追加記憶処理とも呼ぶ)について説明を行う。
図29に示すように、処理要求が処理実行部121bに振り分けられた場合、処理実行部121bは、振り分けられた処理要求に基づく処理を実行する。そして、処理要求に基づく処理の実行した結果、新たな情報の追加記憶要求を実行する必要が生じた場合(S72のNO、S77のNO)、存在判定部111は、図30に示すように、差分記憶部130cが存在するか否かを判定する(S81)。
そして、差分記憶部130cが存在しない場合(S81のNO)、情報管理部115は、差分記憶部130cを作成する(S82)。一方、差分記憶部130cが存在する場合(S81のYES)、情報管理部115は、S82の処理を実行しない。
その後、情報管理部115は、追加記憶要求に対応する情報を第2差分情報135として差分記憶部130cに記憶する(S83)。第2差分情報135は、記憶情報131に対する追加情報である。具体的に、第2差分情報135は、例えば、記憶情報131に対した新たに追加する列に関する情報である。以下、第2差分情報135の具体例について説明を行う。
図32は、第2差分情報135の具体例を説明する図である。図32に示す第2差分情報135は、図17に示す記憶情報131の「情報ID」に対応する「情報ID」を項目として有する。また、図32に示す第2差分情報135は、図17に示す記憶情報131の「イベント名」によって識別されるイベントが中止になる可能性があるか否かを示す情報である「中止可能性」を有する。すなわち、図32に示す第2差分情報135は、図17に示す記憶情報131に対して追加を行う新たな情報(列)である「中止可能性」に関する情報である。
具体的に、図32に示す第2差分情報135において、「情報ID」が「3」及び「6」である情報の「中止可能性」として、イベントが中止になる可能性があることを示す「有」が設定されている。
なお、第2差分情報135には、図32に示すように、マージ対象の記憶情報131に含まれる各情報を一意に特定することができる情報(例えば、「情報ID」)を有する。これにより、情報マージ部116は、記憶情報131に含まれる各情報と第2差分情報135に含まれる各情報とを対応付けることが可能になり、記憶情報131と第2差分情報135とのマージを行うことが可能になる。
[情報マージ処理]
次に、第2の実施の形態における情報制御処理のうち、情報のマージを行う処理(以下、情報マージ処理とも呼ぶ)について説明を行う。
情報マージ部116は、マージ要求を受け付けた場合(S91のYES)、情報マージ部116は、図31に示すように、差分記憶部130cに記憶された第2差分情報135を第1記憶部130aに記憶する(S92)。以下、S92の処理を行った後の記憶情報131の具体例について説明を行う。
図33は、S92の処理が行われた後の記憶情報131の具体例を説明する図である。図33に示す記憶情報131は、図17等で説明した記憶情報131が有する項目に加えて、図32で説明した「中止可能性」を項目として有する。
具体的に、図33に示す記憶情報132において、「情報ID」が「3」及び「6」である情報の「中止可能性」に「有」が設定されている。また、図33に示す記憶情報132において、「情報ID」が「1」、「2」、「4」及び「5」である情報の「中止可能性」にはブランクが設定されている。
すなわち、情報マージ部116は、図33に示す例において、図17に示す記憶情報131に、図32に示す第2差分情報135の「中止可能性」に対応する列を追加する。そして、情報マージ部116は、図33に示すように、図32に示す第2差分情報135に含まれる「中止可能性」に設定された情報を設定する。なお、差分記憶部130cに差分情報134及び第2差分情報135が存在する場合、情報マージ部116は、第1記憶部130aに記憶された記憶情報131に対し、差分情報134及び第2差分情報135を記憶するものであってよい。
このように、第2の実施の形態における情報処理装置1は、情報更新部112による差分情報134の更新と、情報読み出し部114による情報の読み出しとに加え、情報追加記憶部1113による新たな情報の追加記憶を行う。これにより、情報処理装置1は、リリースされたプログラムに未知のバグが内在している場合においても、情報追加記憶部113による新たな情報の追加記憶を行ったことによる影響を限定することが可能になる。
なお、記憶情報131は、記憶数131aを項目として有する代わりに、記憶数131aが示す値に対応する数の情報を有するものであってもよい。以下、記憶数131aが示す値に対応する数の情報を有する記憶情報131の具体例について説明を行う。
図34は、記憶数131aが示す値に対応する数の情報を有する記憶情報131の具体例を説明する図である。図34に示す記憶情報131は、図33で説明した記憶情報131と異なり、「記憶数」を項目として有しない。一方、図34に示す記憶情報131は、図33で説明した記憶情報131の「記憶数」に設定されている値に対応する数の情報(行)を有している。
具体的に、図34に示す記憶情報131において、「情報ID」が「1」から「3000」である情報には、「イベント名」として「コンサートA」が設定され、「中止可能性」にブランクが設定されている。すなわち、図34に示す記憶情報131の「イベント名」が「コンサートA」である情報の数は、図33で説明した記憶情報131の「イベント名」が「コンサートA」である情報の「記憶数」に設定された数である「3000」に対応している。図34の他の情報については説明を省略する。
これにより、情報更新部112は、記憶数131aを更新することなく、記憶情報131に含まれる情報そのものの移行を行うことにより、第1記憶部130aに記憶された記憶情報131を差分情報134として差分記憶部130cに移行することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
コンピュータに、
記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行し、
前記差分情報に対し、前記更新要求に基づく更新を行い、
前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する、
処理を実行させることを特徴とする情報制御プログラム。
(付記2)
付記1において、
前記差分情報を移行する処理では、前記記憶情報の一部である差分情報を前記記憶部に移行する旨の情報を含む管理情報を記憶部に記憶し、
前記差分情報を前記記憶部に記憶する処理では、前記管理情報を参照して、前記記憶部に記憶する前記差分情報を特定する、
ことを特徴とする情報制御プログラム。
(付記3)
付記1において、さらに、
前記差分情報を前記記憶部に記憶した後、前記差分記憶部を削除する、
処理をコンピュータに実行させることを特徴とする情報制御プログラム。
(付記4)
付記1において、
前記記憶情報は、数値情報を含み、
前記更新要求は、前記差分情報が示す値を増加または減少させる要求である、
ことを特徴とする情報制御プログラム。
(付記5)
付記4において、さらに、
前記差分情報が所定の閾値を下回った場合、前記記憶部に記憶された記憶情報のうち、前記差分記憶部に移行していない情報の一部を、前記差分情報の一部として前記差分記憶部に移行する、
処理をコンピュータに実行させることを特徴とする情報制御プログラム。
(付記6)
付記1において、
前記差分情報を移行する処理では、前記記憶部に対する情報の追加記憶要求を受け付けたことに応じて、前記差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成し、
さらに、前記追加記憶要求に対応する情報を前記差分記憶部に記憶する、
処理をコンピュータに実行させることを特徴とする情報制御プログラム。
(付記7)
付記1において、さらに、
前記差分情報を移行する処理の前に、前記更新要求を受け付けたことに応じて、前記更新要求が第1処理部による更新要求であるか否かの判定を行い、前記更新要求が前記第1処理部による更新要求である場合、前記差分情報を移行する処理及び前記更新を行う処理を行い、前記更新要求が前記第1処理部以外の第2処理部による更新要求である場合、前記差分情報を移行する処理及び前記更新を行う処理に代えて、前記記憶情報に対し、前記第2処理部による更新要求に基づく更新を行う、
処理をコンピュータに実行させることを特徴とする情報制御プログラム。
(付記8)
記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行する情報管理部と、
前記差分情報に対し、前記更新要求に基づく更新を行う情報更新部と、
前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する情報マージ部と、を有する、
ことを特徴とする情報制御装置。
(付記9)
付記8において、
情報管理部は、前記記憶部に対する情報の追加記憶要求を受け付けたことに応じて、前記差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成し、
さらに、前記追加記憶要求に対応する情報を前記差分記憶部に記憶する情報追加記憶部を有する、
ことを特徴とする情報制御装置。
(付記10)
記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行し、
前記差分情報に対し、前記更新要求に基づく更新を行い、
前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する、
ことを特徴とする情報制御方法。
(付記11)
付記10において、さらに、
前記差分情報を移行する工程では、前記記憶部に対する情報の追加記憶要求を受け付けたことに応じて、前記差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成し、
さらに、前記追加記憶要求に対応する情報を前記差分記憶部に記憶する、
ことを特徴とする情報制御方法。
1:情報処理装置 2:記憶部
11:利用者端末 12:利用者端末
13:利用者端末

Claims (8)

  1. コンピュータに、
    記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行し、
    前記差分情報に対し、前記更新要求に基づく更新を行い、
    前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する、
    処理を実行させることを特徴とする情報制御プログラム。
  2. 請求項1において、
    前記差分情報を移行する処理では、前記記憶情報の一部である差分情報を前記記憶部に移行する旨の情報を含む管理情報を記憶部に記憶し、
    前記差分情報を前記記憶部に記憶する処理では、前記管理情報を参照して、前記記憶部に記憶する前記差分情報を特定する、
    ことを特徴とする情報制御プログラム。
  3. 請求項1において、
    前記記憶情報は、数値情報を含み、
    前記更新要求は、前記差分情報が示す値を増加または減少させる要求である、
    ことを特徴とする情報制御プログラム。
  4. 請求項3において、さらに、
    前記差分情報が所定の閾値を下回った場合、前記記憶部に記憶された記憶情報のうち、前記差分記憶部に移行していない情報の一部を、前記差分情報の一部として前記差分記憶部に移行する、
    処理をコンピュータに実行させることを特徴とする情報制御プログラム。
  5. 請求項1において、
    前記差分情報を移行する処理では、前記記憶部に対する情報の追加記憶要求を受け付けたことに応じて、前記差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成し、
    さらに、前記追加記憶要求に対応する情報を前記差分記憶部に記憶する、
    処理をコンピュータに実行させることを特徴とする情報制御プログラム。
  6. 請求項1において、さらに、
    前記差分情報を移行する処理の前に、前記更新要求を受け付けたことに応じて、前記更新要求が第1処理部による更新要求であるか否かの判定を行い、前記更新要求が前記第1処理部による更新要求である場合、前記差分情報を移行する処理及び前記更新を行う処理を行い、前記更新要求が前記第1処理部以外の第2処理部による更新要求である場合、前記差分情報を移行する処理及び前記更新を行う処理に代えて、前記記憶情報に対し、前記第2処理部による更新要求に基づく更新を行う、
    処理をコンピュータに実行させることを特徴とする情報制御プログラム。
  7. 記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行する情報管理部と、
    前記差分情報に対し、前記更新要求に基づく更新を行う情報更新部と、
    前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する情報マージ部と、を有する、
    ことを特徴とする情報制御装置。
  8. 記憶部に記憶された記憶情報の更新要求を受け付けたことに応じて、前記記憶情報のうちの一部の情報を差分情報として記憶する差分記憶部が存在するか否かを判定し、前記差分記憶部が存在しないと判定した場合、前記差分記憶部を作成して前記差分情報を移行し、
    前記差分情報に対し、前記更新要求に基づく更新を行い、
    前記記憶情報のうち前記記憶部に記憶された記憶情報と前記差分情報とのマージ要求を受け付けたことに応じて、前記差分情報を前記記憶情報の一部として前記記憶部に記憶する、
    ことを特徴とする情報制御方法。
JP2015150465A 2015-07-30 2015-07-30 情報制御プログラム、情報制御装置及び情報制御方法 Pending JP2017033136A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015150465A JP2017033136A (ja) 2015-07-30 2015-07-30 情報制御プログラム、情報制御装置及び情報制御方法
US15/219,561 US20170031809A1 (en) 2015-07-30 2016-07-26 Non-transitory computer-readable storage medium, information controller, and information control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015150465A JP2017033136A (ja) 2015-07-30 2015-07-30 情報制御プログラム、情報制御装置及び情報制御方法

Publications (1)

Publication Number Publication Date
JP2017033136A true JP2017033136A (ja) 2017-02-09

Family

ID=57882655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150465A Pending JP2017033136A (ja) 2015-07-30 2015-07-30 情報制御プログラム、情報制御装置及び情報制御方法

Country Status (2)

Country Link
US (1) US20170031809A1 (ja)
JP (1) JP2017033136A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021513694A (ja) * 2017-12-29 2021-05-27 中興通訊股▲ふん▼有限公司Zte Corporation ダークローンチ実現方法、装置、計算ノード及びシステム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110650163A (zh) * 2018-06-26 2020-01-03 马上消费金融股份有限公司 一种灰度发布方法、系统、设备及计算机可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111229B2 (en) * 2003-06-25 2006-09-19 Yahoo! Inc. System and method for providing a webpage
US7926033B2 (en) * 2005-05-27 2011-04-12 Cisco Technology, Inc. Method for supporting new network element software versions in an element management system without upgrading
WO2007148899A1 (en) * 2006-06-19 2007-12-27 Samsung Electronics Co., Ltd. Information upgrade system and method for ota-capable device
KR101426710B1 (ko) * 2006-07-14 2014-09-23 삼성전자주식회사 휴대단말기의 버전정보 갱신 장치 및 방법
US20110145807A1 (en) * 2008-06-02 2011-06-16 Awox Method and device for updating a computer application
US8286132B2 (en) * 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically
JP2012163994A (ja) * 2011-02-03 2012-08-30 Nec Corp ソフトウェア管理システム、ソフトウェア管理装置、制御方法、及びプログラム
US10318399B2 (en) * 2013-03-12 2019-06-11 Netflix, Inc. Using canary instances for software analysis
US9225621B2 (en) * 2013-06-25 2015-12-29 Netflix, Inc. Progressive deployment and termination of canary instances for software analysis
US10140118B2 (en) * 2014-03-19 2018-11-27 Huawei Device (Dongguan) Co., Ltd. Application data synchronization method and apparatus
CN104320774B (zh) * 2014-10-16 2020-07-10 小米科技有限责任公司 一种升级方法、装置及设备
JP6067761B2 (ja) * 2015-01-30 2017-01-25 京セラドキュメントソリューションズ株式会社 携帯機器およびファームウェア管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021513694A (ja) * 2017-12-29 2021-05-27 中興通訊股▲ふん▼有限公司Zte Corporation ダークローンチ実現方法、装置、計算ノード及びシステム
JP7083901B2 (ja) 2017-12-29 2022-06-13 中興通訊股▲ふん▼有限公司 ダークローンチ実現方法、装置、計算ノード及びシステム

Also Published As

Publication number Publication date
US20170031809A1 (en) 2017-02-02

Similar Documents

Publication Publication Date Title
US8332431B2 (en) Configuration information management apparatus, configuration information management program, and configuration information management method
US9736239B2 (en) Information processing apparatus, control method for information processing apparatus, information processing system, and storage medium
US9514176B2 (en) Database update notification method
US20180101413A1 (en) Control device and control method
US9769146B2 (en) Information processing system, information processing method, and non-transitory computer-readable medium
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
JP2018010421A (ja) 計算機システム、計算機及びデータフィルタリング方法
JP2016139237A (ja) 計算機システム及び計算機システムの性能障害の対処方法
US20120011172A1 (en) Information management apparatus and computer product
JP2017033136A (ja) 情報制御プログラム、情報制御装置及び情報制御方法
US20180300369A1 (en) Secure query interface
WO2019026248A1 (ja) プログラム開発支援装置、プログラム開発支援方法、及びプログラム開発支援プログラム
JP2018055481A (ja) ログ監視装置、ログ監視方法及びログ監視プログラム
CN111125586A (zh) 一种页面更新方法及装置
JP4863959B2 (ja) 業務サービス実行システム、業務サービス実行方法および業務サービス実行プログラム
JP2013186696A (ja) 分散処理システムのテスト方法および分散処理システム
JP2019082857A (ja) 計算機システム及びデータ処理の制御方法
JP6928237B2 (ja) 制御プログラム、制御装置及び制御方法
JP7027153B2 (ja) ネットワークシステム、ゲートウェイ装置およびデータ処理方法
US20200014595A1 (en) Device configuration management apparatus, system, and program
US20180150336A1 (en) Management system and control method
KR20180007792A (ko) 클라우드 서비스 기반의 데이터 제공 장치 및 방법
JP6756259B2 (ja) 情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
JP7102783B2 (ja) システム管理装置、システム管理方法、およびプログラム
US20220237320A1 (en) Management apparatus, management method, verification apparatus, computer program and recording medium