JP2022160226A - Information processing program, information processing method, information processing apparatus, and information processing system - Google Patents
Information processing program, information processing method, information processing apparatus, and information processing system Download PDFInfo
- Publication number
- JP2022160226A JP2022160226A JP2021064857A JP2021064857A JP2022160226A JP 2022160226 A JP2022160226 A JP 2022160226A JP 2021064857 A JP2021064857 A JP 2021064857A JP 2021064857 A JP2021064857 A JP 2021064857A JP 2022160226 A JP2022160226 A JP 2022160226A
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- databases
- database
- update
- data
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は情報処理プログラム、情報処理方法、情報処理装置および情報処理システムに関する。 The present invention relates to an information processing program, an information processing method, an information processing apparatus, and an information processing system.
情報処理システムで扱われるデータの管理にデータベース(DB:DataBase)が用いられることがある。また、情報処理システムを更新する際に、現行システムのデータベースが新システムのデータベースに移行されることがある。 A database (DB: DataBase) is sometimes used to manage data handled by an information processing system. Also, when updating the information processing system, the database of the current system may be migrated to the database of the new system.
ここで、2つのシステム間でデータ同期を行う技術が考えられている。例えば、一方のワークフロー管理システムからタスク更新またはタスク作成に基づく更新通知を受信すると、当該更新通知に基づき、タスク情報の属性変換を行い、他方のワークフロー管理システムに更新の反映の要求を送信するタスク同期システムの提案がある。 Here, a technique for synchronizing data between two systems is being considered. For example, when an update notification based on task update or task creation is received from one workflow management system, a task that converts attributes of task information based on the update notification and sends a request to reflect the update to the other workflow management system. There is a proposal for a synchronization system.
また、設定情報を同期する対象である他の情報処理装置にユーザがログインしたことに応じて、マスタデータのうち当該ユーザに対応付けられた設定情報の更新情報を、当該他の情報処理装置に送信する情報処理装置の提案もある。 Further, in response to a user logging in to another information processing apparatus whose setting information is to be synchronized, update information of setting information associated with the user in the master data is sent to the other information processing apparatus. There is also a proposal for an information processing device for transmission.
現行システムの複数のデータベースでの運用を継続しながら新システムの複数のデータベースも動作させ、現行システムから新システムへ段階的に移行を行うことがある。当該段階的な移行において、現行システムのデータベースでの運用と、新システムのデータベースでの運用とを並行して行う段階を設けることが考えられる。例えば、一部の手続に関する処理を現行システムのデータベースを用いて行い、他の手続に関する処理を新システムのデータベースを用いて行うことで、全ての手続を一度に新システムへ移行するよりも、移行時に生じ得るリスクを小さくできる。 While continuing to operate multiple databases of the current system, multiple databases of the new system may also be operated, and the current system may be migrated to the new system in stages. In the step-by-step migration, it is conceivable to provide a stage in which the operation of the database of the current system and the operation of the database of the new system are performed in parallel. For example, by processing some procedures using the database of the current system and processing other procedures using the database of the new system, rather than migrating all procedures to the new system at once Minimize potential risks.
しかし、この場合、現行システムのデータベースと新システムのデータベースとが更新される。このため、現行システムおよび新システムの両方のデータベースのデータの同期の仕組みが問題となる。例えば、一方のシステムのデータベースにおける、あるデータの更新に対して、他方のシステムの対応するデータベースへの同期を行うように、現行システムにおける更新処理を修正することが考えられる。しかし、更新処理は多岐に亘ることがあり、更新処理全てを個々に修正することは容易ではない。 However, in this case, the database of the current system and the database of the new system are updated. This poses a problem as to how the data in the databases of both the current system and the new system are synchronized. For example, it is conceivable to modify the update process in the current system so that an update of certain data in the database of one system is synchronized with the corresponding database of the other system. However, there are many kinds of update processes, and it is not easy to modify all the update processes individually.
1つの側面では、本発明は、データベースの同期処理を効率良く行う情報処理プログラム、情報処理方法、情報処理装置および情報処理システムを提供することを目的とする。 In one aspect, an object of the present invention is to provide an information processing program, an information processing method, an information processing apparatus, and an information processing system that efficiently perform database synchronization processing.
1つの態様では、情報処理プログラムが提供される。この情報処理プログラムは、コンピュータに、複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴を所定の時間間隔で監視することで、何れかのデータベースにおいてデータの更新が行われたか否かを判定し、更新が行われていると判定した場合に、更新が行われたデータの属性および更新の検出元が第1更新履歴および第2更新履歴の何れであるかに応じて、複数の第1データベースのうちの同期元データベースと複数の第2データベースのうちの同期先データベースとの組、または、複数の第2データベースのうちの同期元データベースと複数の第1データベースのうちの同期先データベースとの組を特定し、特定した同期元データベースから同期先データベースに対するデータの同期処理の実行を指示する、処理を実行させる。 In one aspect, an information processing program is provided. This information processing program causes a computer to monitor a first update history of a plurality of first databases and a second update history of a plurality of second databases at predetermined time intervals, so that any update of data in any of the databases is performed. If it is determined that an update has been performed, the attribute of the updated data and whether the update detection source is the first update history or the second update history. Accordingly, a set of a synchronization source database out of a plurality of first databases and a synchronization destination database out of a plurality of second databases, or a combination of a synchronization source database out of a plurality of second databases and a plurality of first databases A set with a synchronization destination database is specified, and a process of instructing execution of data synchronization processing from the specified synchronization source database to the synchronization destination database is executed.
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、情報処理装置が提供される。
また、1つの態様では、情報処理システムが提供される。
Also, in one aspect, an information processing method is provided.
In one aspect, an information processing device is provided.
Also, in one aspect, an information processing system is provided.
1つの側面では、データベースの同期処理を効率良く行うことができる。 In one aspect, database synchronization processing can be performed efficiently.
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
Hereinafter, this embodiment will be described with reference to the drawings.
[First embodiment]
A first embodiment will be described.
図1は、第1の実施の形態の情報処理装置を説明する図である。
情報処理装置10は、第1データベース群20および第2データベース群30に接続される。第1データベース群20は、現行システムのデータベース群である。第2データベース群30は、現行システムの移行先である新システムのデータベース群である。第1データベース群20は、データベース21,22を含む。第2データベース群30は、データベース31,32を含む。
FIG. 1 is a diagram illustrating an information processing apparatus according to the first embodiment.
The
第1データベース群20は、情報処理装置10が備える記憶装置に格納されてもよいし、情報処理装置10とネットワークを介して接続された現行システムの他の情報処理装置が備える記憶装置に格納されてもよい。また、第2データベース群30は、情報処理装置10とネットワークを介して接続された新システムの他の情報処理装置が備える記憶装置に格納されてもよい。
The
情報処理装置10は、ネットワーク5に接続される。ネットワーク5は、例えば、現行システムおよび新システムを運用する組織などの運用主体におけるLAN(Local Area Network)である。図示を省略しているが、第1データベース群20および第2データベース群30を提供する装置も、ネットワーク5に接続される。ネットワーク5は、ネットワーク6に接続される。ネットワーク6は、ネットワーク5の外部のネットワークであり、例えば、インターネットあるいはインターネットに接続された他のネットワークである。ネットワーク6には、端末装置40が接続される。ネットワーク5には、端末装置50が接続される。端末装置40,50は、移行対象のシステムに対する処理要求を送信する。当該処理要求に応じて、第1データベース群20および第2データベース群30のデータが更新される。
現行システムから新システムへの移行は、段階的に行われる。まず、第1データベース群20のデータが第2データベース群30に格納される。そして、第1段階では、第1データベース群20により現行システムを運用しながら、第1データベース群20に対するデータの更新内容が第2データベース群30にも同期される。第1段階では、端末装置40,50の処理要求は、何れも現行システムに送信される。
The transition from the current system to the new system will be done in stages. First, data in the
第2段階では、一部の手続に関する処理を現行システムの第1データベース群20を用いて行い、他の手続に関する処理を新システムの第2データベース群30を用いて行う。第2段階では、例えば、端末装置40の処理要求は現行システムに送信され、端末装置50の処理要求は、新システムに送信される。情報処理装置10は、第2段階における第1データベース群20と第2データベース群30とのデータの同期を制御する。情報処理装置10は、記憶部11および処理部12を有する。
In the second stage, some procedures are processed using the
記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサでもよい。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
The
記憶部11は、処理部12の処理に用いられるデータを記憶する。例えば、記憶部11は、第1データベース群20を提供する装置から取得された第1更新履歴23を記憶してもよい。第1更新履歴23は、第1データベース群20に対するデータの更新内容の履歴を示す情報である。また、記憶部11は、第2データベース群30を提供する装置から取得された第2更新履歴33を記憶してもよい。第2更新履歴33は、第2データベース群30に対するデータの更新内容の履歴を示す情報である。
The
第1更新履歴23および第2更新履歴33には、更新時に指定されたデータのデータ属性、当該データ属性の値、更新時刻および更新区分などが含まれ得る。更新区分は、例えば、新規データの追加、既存データの削除および既存データの更新を示す区分である。
The
処理部12は、第1更新履歴23および第2更新履歴33を所定の時間間隔で監視することで、第1データベース群20および第2データベース群30においてデータの更新が行われたか否かを判定する。例えば、処理部12は、第1更新履歴23および第2更新履歴33を定期的なタイミングで参照して、前回タイミングからのデータの更新の有無を監視する。
The
処理部12は、更新が行われていると判定した場合に、更新が行われたデータの属性および更新の検出元が第1更新履歴23および第2更新履歴33の何れであるかに応じて、同期元データベースと同期先データベースとの組を特定する。処理部12は、更新の検出元が第1更新履歴23の場合、第1データベース群20に属するデータベースを同期元データベースとし、当該同期元データベースに対応する、第2データベース群30に属するデータベースを同期先データベースとする。処理部12は、更新の検出元が第2更新履歴33の場合、第2データベース群30に属するデータベースを同期元データベースとし、当該同期元データベースに対応する、第1データベース群20に属するデータベースを同期先データベースとする。
When determining that an update has been performed, the
処理部12は、第1データベース群20に含まれるデータベースと第2データベース群30に含まれるデータベースとの対応関係を、更新が行われたデータの属性に応じて特定する。例えば、第1の属性に対して、データベース21とデータベース31とが予め対応付けられる。また、第2の属性に対して、データベース22とデータベース32とが予め対応付けられる。このように、データの属性に対してデータベースの組を対応付けた対応情報が記憶部11に予め記憶されていてもよい。
The
例えば、処理部12は、第1更新履歴23に基づいて、第1の属性に関するデータの更新が行われたことを検出する。この場合、処理部12は、同期元のデータベース21および同期先のデータベース31の組を特定する。
For example, the
あるいは、処理部12は、第2更新履歴33に基づいて、第2の属性に関するデータの更新が行われたことを検出する。この場合、処理部12は、同期元のデータベース32および同期先のデータベース22の組を特定する。
Alternatively, the
そして、処理部12は、特定した同期元データベースから同期先データベースに対するデータの同期処理の実行を指示する。例えば、処理部12は、第1データベース群20において、第1の属性に関するデータの更新が行われた場合、同期元のデータベース21から同期先のデータベース31に対するデータの同期処理の実行を指示する。あるいは、処理部12は、第2データベース群30において、第2の属性に関するデータの更新が行われた場合、同期元のデータベース32から同期先のデータベース22に対するデータの同期処理の実行を指示する。処理部12が当該同期処理を実行してもよい。
Then, the
より具体的には、処理部12は、第1の属性の値をキーとするデータの更新があったことを第1更新履歴23から検出すると、第1の属性の当該値をキーとするデータをデータベース21から抽出し、抽出したデータを、データベース31に反映させる。なお、第1の属性の値をキーとするデータの削除があった場合、処理部12は、第1の属性の値に対応する、データベース31のデータを削除させればよい。
More specifically, when the
また、処理部12は、第2の属性の値をキーとするデータの更新があったことを第2更新履歴33から検出すると、第2の属性の当該値をキーとするデータをデータベース32から抽出し、抽出したデータを、データベース22に反映させる。なお、第2の属性の値をキーとするデータの削除があった場合、処理部12は、第2の属性の値に対応する、データベース22のデータを削除させればよい。
Further, when the
なお、処理部12は、第1更新履歴23を基に第2の属性に関するデータの更新があったことを検出した場合に、同期元のデータベース22から同期先のデータベース32に対するデータの同期処理の実行を指示してもよい。また、処理部12は、第2更新履歴33を基に第1の属性に関するデータの更新があったことを検出した場合に、同期元のデータベース31から同期先のデータベース21に対するデータの同期処理の実行を指示してもよい。
Note that when the
情報処理装置10によれば、複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴が所定の時間間隔で監視されることで、何れかのデータベースにおいてデータの更新が行われたか否かが判定される。更新が行われていると判定された場合に、更新が行われたデータの属性および更新の検出元が第1更新履歴および第2更新履歴の何れであるかに応じて、複数の第1データベースのうちの同期元データベースと複数の第2データベースのうちの同期先データベースとの組、または、複数の第2データベースのうちの同期元データベースと複数の第1データベースのうちの同期先データベースとの組が特定される。特定された同期元データベースから同期先データベースに対するデータの同期処理の実行が指示される。
According to the
これにより、データベースの同期処理を効率良く行うことができる。
ここで、例えば、現行システムまたは新システムのデータベースにおける、あるデータの更新に対して、現行システムおよび新システムの対応するデータベースの同期を行うように、現行システムにおける更新処理を修正することが考えられる。しかし、更新処理は多岐に亘ることがあり、更新処理全てを人手によって個々に修正することは容易ではない。
As a result, database synchronization processing can be performed efficiently.
Here, for example, it is conceivable to modify the update process in the current system so that when updating certain data in the databases of the current system or the new system, the corresponding databases of the current system and the new system are synchronized. . However, there are many kinds of update processes, and it is not easy to manually correct all the update processes individually.
一方、キーとなるデータ属性に対して、当該データ属性に関連するデータを管理するデータベースを予め特定することは、データベースの定義情報などから比較的容易に行える。そこで、情報処理装置10は、更新が行われたデータの属性と、更新の検出元となった更新履歴とに応じて、同期元データベースと同期先データベースとの組を特定することで、当該組を効率的に特定でき、同期処理を適切に行えるようになる。こうして、データの更新処理全てを個々に修正しなくても、データベースの同期処理を効率良く行うことができる。
On the other hand, it is relatively easy to preliminarily specify a database that manages data related to a key data attribute from database definition information or the like. Therefore, the
また、情報処理装置10によるデータベース同期の処理は、現行システムの処理とは独立して実行することができる。このため、現行システムで動作するソフトウェアの修正を行わずに済み、あるいは、修正規模を比較的小さくでき、現行システムでの障害リスクを小さく抑えられる。
Further, the database synchronization processing by the
更に、情報処理装置10は、第1更新履歴23および第2更新履歴33を定期的に監視することで、第1データベース群20および第2データベース群30におけるデータの更新の有無を判定することができる。これにより、第1データベース群20を利用する現行システムおよび第2データベース群30を利用する新システムの処理のレスポンスに影響を与えないよう、データベース同期を非同期で実装できる。
Furthermore, the
なお、第1データベース群20と第2データベース群30との同期を行いながら、現行システムから新システムへの切り替え準備が整った段階で、全ての処理を新システムで行うようにシステムの切り替えが行われる。切り替え後は、データ更新が第2データベース群30に直接反映されるため、第1データベース群20から第2データベース群30への同期は停止される。
While synchronizing the
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
[Second embodiment]
Next, a second embodiment will be described.
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
第2の実施の形態の情報処理システムは、現行システム80、新システム90、外部端末500,500aおよび内部端末600を含む。一例として、第2の実施の形態の情報処理システムは、銀行における口座管理を行うシステムである。
The information processing system of the second embodiment includes a
現行システム80は、現在の運用に用いられているシステムであり、新システム90に移行する前の旧システムである。新システム90は、現行システム80の移行先の新しいシステムである。第2の実施の形態では、現行システム80による運用を継続しながら、新システム90への段階的な移行を実現する。
The
現行システム80、新システム90および内部端末600は、ネットワーク60に接続される。ネットワーク60は、例えば、現行システム80および新システム90を運用する銀行などの機関に敷設されたLAN(Local Area Network)である。ネットワーク60はインターネット70に接続される。外部端末500,500aは、インターネット70に接続される。
現行システム80は、現行DBサーバ100および現行Web-AP(Application)サーバ200を有する。現行DBサーバ100は、現行のサービスの処理に用いられるデータベースを提供するサーバコンピュータである。以下では、データベースをDBと略記する。現行Web-APサーバ200は、現行のサービスに関するGUI(Graphical User Interface)やデータ処理機能を提供するサーバコンピュータである。
The
新システム90は、新DBサーバ300および新Web-APサーバ400を有する。新DBサーバ300は、移行後のサービスの処理に用いられるDBを提供するサーバコンピュータである。新Web-APサーバ400は、移行後のサービスに関するGUIやデータ処理機能を提供するサーバコンピュータである。
The
ここで、現行DBサーバ100および新DBサーバ300は、関係データベース(RDB:Relational DataBase)によりデータを管理する。RDBでは、複数のテーブルによってデータが管理される。
Here, the
外部端末500,500aは、顧客が使用するクライアントコンピュータである。外部端末500,500aは、顧客の操作に応じて、顧客あるいは顧客が所属する組織の口座に関する処理を現行システム80または新システム90に要求する。外部端末500,500aは、要求に対する処理結果を、現行システム80または新システム90から受信し、顧客に提示する。
内部端末600は、銀行の職員が使用するクライアントコンピュータである。内部端末600は、職員の操作に応じて、顧客あるいは顧客が所属する会社などの組織の口座に関する処理を現行システム80または新システム90に要求する。内部端末600は、要求に対する処理結果を、現行システム80または新システム90から受信し、顧客に提示する。
なお、外部端末500,500aは、3つ以上存在し得る。また、内部端末600は、複数存在し得る。
ここで、外部端末500,500aおよび内部端末600による要求の送信先のシステムは、現行システム80から新システム90への移行の段階に応じて異なる。移行の段階は、第1~第4段階の4つの段階を含む。
Note that there may be three or more
Here, the systems to which requests from the
第1段階では、外部端末500,500aおよび内部端末600による手続を現行システム80で全て処理する。このため、現行システム80から新システム90に対するDBの同期が行われる。
In the first stage, the existing
第2段階では、外部端末500,500aによる手続を現行システム80で処理し、内部端末600による手続を新システム90で処理する。このため、現行システム80と新システム90とでDBの双方向の同期が行われる。
In the second stage, the
第3段階では、新システム90の利用に未移行である顧客の外部端末500による手続を現行システム80で処理し、新システム90の利用に移行済である顧客の外部端末500aおよび内部端末600による手続を新システム90で処理する。このため、現行システム80と新システム90とでDBの双方向の同期が行われる。
In the third stage, procedures by the customer's
第4段階では、外部端末500,500aおよび内部端末600による手続を新システム90で全て処理する。ただし、現行システム80を新システム90と併用可能にするため、新システム90から現行システム80に対するDBの同期が行われる。
In the fourth stage, the
以下では、第1段階が完了しているものとし、第2段階以降におけるDBの同期を主に説明する。
図3は、現行DBサーバのハードウェア例を示す図である。
In the following, it is assumed that the first stage has been completed, and DB synchronization from the second stage onward will be mainly described.
FIG. 3 is a diagram showing a hardware example of a current DB server.
現行DBサーバ100は、CPU101、RAM102、HDD103、GPU(Graphics Processing Unit)104、入力インタフェース105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。
The
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、現行DBサーバ100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
The
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、現行DBサーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
The
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、現行DBサーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
The
GPU104は、CPU101からの命令に従って、現行DBサーバ100に接続されたディスプレイ81に画像を出力する。ディスプレイ81としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
The
入力インタフェース105は、現行DBサーバ100に接続された入力デバイス82から入力信号を取得し、CPU101に出力する。入力デバイス82としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、現行DBサーバ100に、複数の種類の入力デバイスが接続されていてもよい。
The
媒体リーダ106は、記録媒体83に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体83として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
The
媒体リーダ106は、例えば、記録媒体83から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体83は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体83やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
The
NIC107は、ネットワーク60に接続され、ネットワーク60を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
The
なお、現行Web-APサーバ200、新DBサーバ300、新Web-APサーバ400、外部端末500,500aおよび内部端末600も、現行DBサーバ100と同様のハードウェアにより実現できる。
The current Web-
図4は、現行DBサーバおよび新DBサーバの機能例を示す図である。
現行DBサーバ100は、利用者関連DB110、取引先関連DB120、その他情報DB130、ログ記憶部150、DB管理部140、更新イベントハンドラ160および同期制御部170を有する。
FIG. 4 is a diagram showing an example of functions of the current DB server and the new DB server.
The
利用者関連DB110、取引先関連DB120、その他情報DB130およびログ記憶部150には、RAM102やHDD103の記憶領域が用いられる。DB管理部140、更新イベントハンドラ160および同期制御部170は、RAM102に記憶されたプログラムがCPU101によって実行されることで実現される。
Storage areas of the
利用者関連DB110は、顧客個人の認証や権限などに関するデータを主に保持するDBである。利用者関連DB110のデータが更新される場合、更新対象のデータを指定するためのキーとして、データ属性「ユーザID(IDentifier)」の値が用いられる。データ属性「ユーザID」は、利用者関連DB110のテーブルの主キーとして用いられる。
The user-related
取引先関連DB120は、顧客が所属する会社などの組織の預金口座に関するデータを主に保持するDBである。取引先関連DB120のデータが更新される場合、更新対象のデータを指定するためのキーとして、データ属性「申込代表口座」の値が用いられる。データ属性「申込代表口座」は、取引先関連DB120のテーブルの主キーとして用いられる。
The client-related
その他情報DB130は、利用者関連DB110および取引先関連DB120の何れにも分類されないデータを主に保持するDBである。利用者関連DB110および取引先関連DB120の何れにも分類されないデータとしては、例えば、組織の融資口座に関するデータが挙げられる。例えば、その他情報DB130のデータが更新される場合、更新対象のデータを指定するためのキーとして、データ属性「融資口座」の値が用いられる。データ属性「融資口座」は、その他情報DB130のテーブルの主キーとして用いられる。
The
利用者関連DB110、取引先関連DB120およびその他情報DB130は、現行システム80で使用される現行DBである。
DB管理部140は、利用者関連DB110、取引先関連DB120およびその他情報DB130を管理する。DB管理部140は、DBMS(DataBase Management System)と呼ばれるソフトウェアにより実現され得る。DB管理部140は、現行Web-APサーバ200の要求に応じて、利用者関連DB110、取引先関連DB120およびその他情報DB130に格納されたデータを更新する。例えば、DB管理部140は、利用者関連DB110、取引先関連DB120およびその他情報DB130に対して、新規データの追加、既存データの更新、あるいは既存データの削除を行う。DB管理部140は、利用者関連DB110、取引先関連DB120およびその他情報DB130に格納されたデータの更新を行うと、更新内容を示すログレコードを、ログ記憶部150に記録する。
User-related
The
ログ記憶部150は、DB管理部140により生成されるログデータを記憶する。ログデータは、DB管理部140によるDBの更新内容を示すログレコードが登録されるデータである。
The
更新イベントハンドラ160は、ログ記憶部150に記憶されたログデータを定期的に監視し、利用者関連DB110、取引先関連DB120およびその他情報DB130の何れかのDBに対する更新があったか否かを検出する。更新イベントハンドラ160は、何れかのDBに対する更新があった場合、当該更新の際に指定されたデータ属性に応じて、同期元DBと同期先DBとの組を特定し、同期元DBから同期先DBへのデータ同期を同期制御部170に指示する。
The
同期制御部170は、現行DBサーバ100におけるDBと新DBサーバ300におけるDBとのデータ同期を制御する。同期制御部170は、同期処理部171,172,173を有する。同期処理部171は、更新イベントハンドラ160の指示に応じて、利用者関連DB110を同期元または同期先とするデータ同期を行う。同期処理部172は、更新イベントハンドラ160の指示に応じて、取引先関連DB120を同期元または同期先とするデータ同期を行う。同期処理部173は、更新イベントハンドラ160の指示に応じて、その他情報DB130を同期元または同期先とするデータ同期を行う。
The
同期制御部170は、DB管理部140を介して、利用者関連DB110、取引先関連DB120およびその他情報DB130から同期対象のデータを取得してもよい。同期制御部170は、DB管理部140を介して、利用者関連DB110、取引先関連DB120およびその他情報DB130を同期先とする同期処理を行ってもよい。
The
新DBサーバ300は、利用者関連DB310、取引先関連DB320、その他情報DB330、DB管理部340およびログ記憶部350を有する。利用者関連DB310、取引先関連DB320、その他情報DB330およびログ記憶部350には、新DBサーバ300が備えるRAMやHDDの記憶領域が用いられる。DB管理部340は、新DBサーバ300のRAMに記憶されたプログラムが新DBサーバ300のCPUによって実行されることで実現される。
The
利用者関連DB310は、利用者関連DB110に対応する移行先のDBである。
取引先関連DB320は、取引先関連DB120に対応する移行先のDBである。
その他情報DB330は、その他情報DB130に対応する移行先のDBである。
The user-related
The client-related
The
利用者関連DB310、取引先関連DB320およびその他情報DB330は、新システム90で使用される新DBである。移行の初期段階において、当該初期段階の時点における利用者関連DB110、取引先関連DB120、その他情報DB130のデータが、それぞれ利用者関連DB310、取引先関連DB320、その他情報DB330に反映される。
User-related
DB管理部340は、利用者関連DB310、取引先関連DB320およびその他情報DB330を管理する。DB管理部340は、DB管理部140とは異なるDBMSにより実現されてもよい。DB管理部340は、システム移行中の段階では、新Web-APサーバ400や同期制御部170の要求に応じて、利用者関連DB310、取引先関連DB320およびその他情報DB330に格納されたデータを更新する。DB管理部340は、システム移行完了後は新Web-APサーバ400の要求に応じて、利用者関連DB310、取引先関連DB320およびその他情報DB330に格納されたデータを更新する。
The
例えば、DB管理部340は、利用者関連DB310、取引先関連DB320およびその他情報DB330に対して、新規データの追加、既存データの更新、あるいは既存データの削除を行う。
For example, the
ログ記憶部350は、DB管理部340により生成されるログデータを記憶する。ログデータは、DB管理部340によるDBの更新内容を示すログレコードが登録されるデータである。
The
更新イベントハンドラ160は、ログ記憶部350に記憶されたログデータも定期的に監視し、利用者関連DB310、取引先関連DB320およびその他情報DB330の何れかのDBに対する更新があったか否かを検出する。更新イベントハンドラ160は、何れかのDBに対する更新があった場合、当該更新の際に指定されたデータ属性に応じて、同期元DBと同期先DBとの組を特定し、同期元DBから同期先DBへのデータ同期を同期制御部170に指示する。
The
図5は、現行DBサーバが保持するログデータの例を示す図である。
ログデータ151は、ログ記憶部150に格納される。ログデータ151は、ログ番号、日時、操作端末ID、操作者ID、変更区分、ユーザID、申込代表口座、その他識別情報、業務コードおよび処理内容の項目を含む。
FIG. 5 is a diagram showing an example of log data held by the current DB server.
Log
ログ番号の項目には、ログレコードの識別番号が登録される。日時の項目には、ログが記録された日時が登録される。操作端末IDの項目には、操作端末IDが登録される。操作端末IDは、現行システム80または新システム90に処理要求を行った外部端末500,500aや内部端末600などの端末の識別情報である。操作者IDの項目には、操作者IDが登録される。操作者IDは、当該端末の操作を行った人物の識別情報である。
The identification number of the log record is registered in the log number field. The date and time when the log was recorded is registered in the date and time item. An operation terminal ID is registered in the item of operation terminal ID. The operating terminal ID is identification information of a terminal such as the
変更区分の項目には、DBに対するデータの変更区分が登録される。変更区分は、「1」、「2」、「3」の数値によって表される。変更区分「1」は、データ属性「ユーザID」の値がキーとして指定されたデータ更新であることを示す。変更区分「2」は、データ属性「申込代表口座」の値がキーとして指定されたデータ更新であることを示す。変更区分「3」は、「ユーザID」および「申込代表口座」以外のデータ属性の値(例えば、前述の融資口座の番号など)がキーとして指定されたデータ更新であることを示す。 The data change classification for the DB is registered in the change classification item. The change section is represented by numerical values of "1", "2", and "3". The change class "1" indicates that the data update is for which the value of the data attribute "user ID" is specified as the key. The change section "2" indicates that the data update is for which the value of the data attribute "application representative account" is specified as a key. The change section "3" indicates that the data update is a data update in which a data attribute value other than "user ID" and "representative application account" (for example, the aforementioned loan account number) is specified as a key.
ユーザIDの項目には、ユーザIDが登録される。申込代表口座の項目には、申込代表口座の番号が登録される。その他識別情報の項目には、その他識別情報が登録される。その他識別情報は、「ユーザID」および「申込代表口座」以外のデータ属性の値(例えば、前述の融資口座の番号など)である。業務コードの項目には、業務コードが登録される。業務コードは、現行DBサーバ100でのデータ更新を行った業務処理を表す識別情報である。
A user ID is registered in the item of user ID. The item of the representative account for application registers the number of the representative account for application. Other identification information is registered in the item of other identification information. Other identification information is the values of data attributes other than "user ID" and "representative application account" (for example, the above-mentioned loan account number, etc.). A business code is registered in the business code field. A business code is identification information representing a business process that has updated data in the
処理内容の項目には、データ更新の処理内容を示す識別情報が登録される。処理内容「01」は、新規データの追加、すなわち、現行DBのテーブルにおける新規レコードの追加を示す。処理内容「02」は、既存データの更新、すなわち、現行DBのテーブルにおける既存レコードの更新を示す。処理内容「03」は、既存データの削除、すなわち、現行DBのテーブルにおける既存レコードの削除を示す。 Identification information indicating the processing content of data update is registered in the processing content item. Processing content "01" indicates addition of new data, that is, addition of a new record in the table of the current DB. The processing content “02” indicates updating existing data, that is, updating an existing record in the table of the current DB. Processing content “03” indicates deletion of existing data, that is, deletion of an existing record in the table of the current DB.
例えば、ログデータ151には、ログ番号「1」、日時「2021/2/18 11:21:15」、操作端末ID「m1」、操作者ID「n1」、変更区分「1」、ユーザID「user1」、申込代表口座「1234567」、その他識別情報「1121」、業務コード「001」、処理内容「01」のログレコードが登録されている。このログ番号「1」のログレコードは、2021年2月18日11時21分15秒に記録されたものであり、処理要求元の操作端末IDが「m1」、操作者IDが「n1」であることを示す。また、当該ログレコードは、データ属性「ユーザID」の値がキーとして指定されたデータ更新であり、指定されたユーザIDの値が「user1」、当該ユーザIDに対応する申込代表口座が「1234567」、その他識別情報が「1121」であることを示す。また、当該ログレコードは、データ更新を行った業務処理の業務コードが「001」であり、データ更新の処理内容が該当のユーザIDに関する新規レコードの追加であることを示す。
For example, the
ログデータ151には、他のログ番号のログレコードも登録されている。
図6は、新DBサーバが保持するログデータの例を示す図である。
ログデータ351は、ログ記憶部350に格納される。ログデータ351は、ログ番号、日時、操作端末ID、操作者ID、変更区分、ユーザID、申込代表口座、その他識別情報、業務コードおよび処理内容の項目を含む。これらの項目に登録される内容は、図5で例示したログデータ151の同名の項目と同様であるため、説明を省略する。ただし、ログデータ351には、利用者関連DB310、取引先関連DB320およびその他情報DB330に対する更新内容を表すログが記録される。
Log records with other log numbers are also registered in the
FIG. 6 is a diagram showing an example of log data held by the new DB server.
Log
なお、ログデータ151,351として用いられるログ内容としては、ログイン履歴や口座移管履歴など、種々のものが考えられる。
図7は、DB同期のための2層間連携の例を示す図である。
Various log contents such as login history and account transfer history are conceivable as the log contents used as the
FIG. 7 is a diagram showing an example of inter-layer cooperation for DB synchronization.
第2の実施の形態の情報処理システムにおけるDB同期の機能は、2つの層に分類される。1つ目は、データ更新イベントを監視する層L1である。2つ目は、新旧データ同期を行う層L2である。更新イベントハンドラ160は、データ更新イベントを監視する層L1に属する。同期処理部171,172,173は、新旧データ同期を行う層L2に属する。なお、以下では、主に外部端末500を例示するが、外部端末500aを用いる場合も同様の説明となる。
The DB synchronization function in the information processing system of the second embodiment is classified into two layers. The first is layer L1, which monitors data update events. The second layer is the layer L2 that synchronizes old and new data. The
データ更新イベントを監視する層L1では、外部端末500からの要求に応じて、現行システム80または新システム90によるオンライン処理P1が実行され、その結果、現行DBサーバ100または新DBサーバ300のDBが更新される。オンライン処理P1によるDBの更新内容は、ログデータ151またはログデータ351におけるログレコードとしてログ記憶部150またはログ記憶部350に格納される。
In the layer L1 that monitors data update events, online processing P1 is executed by the
同様に、内部端末600からの要求に応じて、新システム90によるオンライン処理P2が実行され、その結果、新DBサーバ300のDBが更新される。オンライン処理P2によるDBの更新内容は、ログデータ351におけるログレコードとしてログ記憶部350に格納される。
Similarly, online processing P2 is executed by the
更新イベントハンドラ160は、所定の時間間隔で、ログ記憶部150のログデータ151およびログ記憶部350のログデータ351を参照し、前回の参照から現時点までの現行DBまたは新DBに対する更新の有無を判定する。更新イベントハンドラ160は、現行DBまたは新DBに対する更新が有ったことを検出すると、ログデータ151またはログデータ351のログレコードに基づいて、変更区分、すなわち、DB更新時にキーとして指定されたデータ属性を特定する。更新イベントハンドラ160は、特定したデータ属性に応じて同期元DBと同期先DBとの組を特定し、特定した組の同期を行う同期処理部に、DB同期を指示する。
The
例えば、更新イベントハンドラ160は、ログデータ151から、変更区分「1」、すなわち、DB更新時にキーとして指定されたデータ属性が「ユーザID」である更新を検出すると、利用者関連DB110から利用者関連DB310への同期を行うと判定する。そして、更新イベントハンドラ160は、利用者関連DB110から利用者関連DB310への同期を行う同期処理部171に、同期実行を指示する。
For example, when the
また、更新イベントハンドラ160は、ログデータ151から、変更区分「2」、すなわち、DB更新時にキーとして指定されたデータ属性が「申込代表口座」である更新を検出すると、取引先関連DB120から取引先関連DB320への同期を行うと判定する。そして、更新イベントハンドラ160は、取引先関連DB120から取引先関連DB320への同期を行う同期処理部172に、同期実行を指示する。
Further, when the
また、更新イベントハンドラ160は、ログデータ151から、変更区分「3」、すなわち、DB更新時にキーとして指定されたデータ属性が「ユーザID」および「申込代表口座」以外である更新を検出すると、その他情報DB130からその他情報DB330への同期を行うと判定する。そして、更新イベントハンドラ160は、その他情報DB130からその他情報DB330への同期を行う同期処理部173に、同期実行を指示する。
Further, when the
また、更新イベントハンドラ160は、ログデータ351から、変更区分「1」、すなわち、DB更新時にキーとして指定されたデータ属性が「ユーザID」である更新を検出すると、利用者関連DB310から利用者関連DB110への同期を行うと判定する。そして、更新イベントハンドラ160は、利用者関連DB310から利用者関連DB110への同期を行う同期処理部171に、同期実行を指示する。
Further, when the
また、更新イベントハンドラ160は、ログデータ351から、変更区分「2」、すなわち、DB更新時にキーとして指定されたデータ属性が「申込代表口座」である更新を検出すると、取引先関連DB320から取引先関連DB120への同期を行うと判定する。そして、更新イベントハンドラ160は、取引先関連DB320から取引先関連DB120への同期を行う同期処理部172に、同期実行を指示する。
Also, when the
また、更新イベントハンドラ160は、ログデータ351から、変更区分「3」、すなわち、DB更新時にキーとして指定されたデータ属性が「ユーザID」および「申込代表口座」以外である更新を検出すると、その他情報DB330からその他情報DB130への同期を行うと判定する。そして、更新イベントハンドラ160は、その他情報DB330からその他情報DB130への同期を行う同期処理部173に、同期実行を指示する。
Further, when the
このようにして、更新イベントハンドラ160および同期処理部171,172,173は、現行DBおよび新DBに対するデータ更新とは非同期に、現行DBと新DBとの双方向の同期を行える。
In this way, the
図8は、DB間の同期の例を示す図である。
更新イベントハンドラ160は、変更区分「ユーザID」のDB更新を検出すると、同期処理部171に、利用者関連DB110と利用者関連DB310との同期実行を指示する。同期の方向は、前述のように、ログデータ151,351の何れがDB更新の検出元であるかに応じて制御される。このとき、更新イベントハンドラ160は、DB更新時にキーとして指定されたユーザIDの値と、処理内容(新規レコードの追加、既存レコードの更新または削除)とを同期処理部171に通知する。
FIG. 8 is a diagram illustrating an example of synchronization between DBs.
When the
利用者関連DB110,310は、それぞれ顧客個人の認証や権限などに関するデータを管理する複数のテーブルを含む。例えば、利用者関連DB110は、「利用者」や「個人認証」などの名称のテーブルを有する。また、利用者関連DB310は、「利用者」や「電子認証」などの名称のテーブルを有する。利用者関連DB110および利用者関連DB310は、異なるDBMSにより管理され得る。また、利用者関連DB110および利用者関連DB310は、互いに同等の内容のデータを保持するが、データを管理するためのデータモデルが異なる。
The user-related
このため、同期処理部171は、更新イベントハンドラ160の指示に応じて同期実行を行う際に、利用者関連DB110のデータモデルと、利用者関連DB310のデータモデルとの差異を吸収する。すなわち、同期処理部171は、利用者関連DB110の同期元のテーブルの項目を、利用者関連DB310の同期先のテーブルの項目に対応付ける処理を行う。あるいは、同期処理部171は、利用者関連DB310の同期元のテーブルの項目を、利用者関連DB110の同期先のテーブルの項目に対応付ける処理を行う。同期元のテーブルの項目と、同期先のテーブルの項目との対応関係の情報が同期処理部171により参照される所定の記憶部に予め格納されていてもよい。後述されるように、同期元のテーブルと同期先のテーブルとは、更新イベントハンドラ160により、同期処理部171に通知されてもよい。
Therefore, the
また、更新イベントハンドラ160は、変更区分「申込代表口座」のDB更新を検出すると、同期処理部172に、取引先関連DB120と取引先関連DB320との同期実行を指示する。同期の方向は、前述のように、ログデータ151,351の何れがDB更新の検出元であるかに応じて制御される。このとき、更新イベントハンドラ160は、DB更新時にキーとして指定された申込代表口座の値と、処理内容(新規レコードの追加、既存レコードの更新または削除)とを同期処理部172に通知する。
Further, when the
取引先関連DB120,320は、それぞれ顧客が所属する会社などの組織の預金口座に関するデータを管理する複数のテーブルを含む。例えば、取引先関連DB120は、「取引先」や「契約」などの名称のテーブルを有する。また、取引先関連DB320は、「取引先」や「外部参照」などの名称のテーブルを有する。取引先関連DB120および取引先関連DB320は、異なるDBMSにより管理され得る。また、取引先関連DB120および取引先関連DB320は、互いに同等の内容のデータを保持するが、データを管理するためのデータモデルが異なる。
Customer-related
このため、同期処理部172は、更新イベントハンドラ160の指示に応じて同期実行を行う際に、取引先関連DB120のデータモデルと、取引先関連DB320のデータモデルとの差異を吸収する。すなわち、同期処理部172は、取引先関連DB120の同期元のテーブルの項目を、取引先関連DB320の同期先のテーブルの項目に対応付ける処理を行う。あるいは、同期処理部172は、取引先関連DB320の同期元のテーブルの項目を、取引先関連DB120の同期先のテーブルの項目に対応付ける処理を行う。同期元のテーブルの項目と、同期先のテーブルの項目との対応関係の情報が同期処理部172により参照される所定の記憶部に予め格納されていてもよい。後述されるように、同期元のテーブルと同期先のテーブルとは、更新イベントハンドラ160により、同期処理部172に通知されてもよい。
Therefore, the
同期処理部173も、更新イベントハンドラ160の同期実行の指示に応じて、同期処理部171,172と同様に、その他情報DB130と、その他情報DB330とのDB同期を実行する。
The
次に、前述の第2段階、第3段階および第4段階における更新イベントハンドラ160のDB同期制御を例示する。
図9は、DB同期制御の第1の例を示す図である。
Next, the DB synchronization control of the
FIG. 9 is a diagram showing a first example of DB synchronization control.
図9では、前述の第2段階の同期制御の例を説明する。
第2段階では、外部端末500,500aによる手続は現行システム80のオンライン処理P1で処理され、内部端末600による手続は新システム90のオンライン処理P2で処理される。
FIG. 9 illustrates an example of the second-stage synchronous control described above.
In the second stage, procedures by the
同期処理部171は、利用者関連DB110から利用者関連DB310への同期実行の指示を更新イベントハンドラ160から受け付ける。すると、同期処理部171は、利用者関連DB110を参照して、指示されたユーザIDの値をキーとするレコードを、利用者関連DB110のテーブルから読み出す。同期処理部171は、読み出したレコードに基づいて、利用者関連DB310の対応するテーブルの更新を、新DBサーバ300に要求する。なお、DB更新における処理内容が、既存レコードの削除の場合、同期処理部171は、利用者関連DB310のテーブルにおける、指示されたユーザIDの値をキーとするレコードの削除を、新DBサーバ300に要求すればよい。
The
また、同期処理部171は、利用者関連DB310から利用者関連DB110への同期実行の指示を更新イベントハンドラ160から受け付ける。すると、同期処理部171は、利用者関連DB310を参照して、指示されたユーザIDの値をキーとするレコードを、利用者関連DB310のテーブルから読み出す。同期処理部171は、読み出したレコードに基づいて、利用者関連DB110の対応するテーブルの更新を行う。なお、DB更新における処理内容が、既存レコードの削除の場合、同期処理部171は、利用者関連DB110のテーブルにおける、指示されたユーザIDの値をキーとするレコードの削除を行えばよい。
The
同期処理部172は、取引先関連DB120から取引先関連DB320への同期実行の指示を更新イベントハンドラ160から受け付ける。すると、同期処理部172は、取引先関連DB120を参照して、指示された申込代表口座の値をキーとするレコードを、取引先関連DB120のテーブルから読み出す。同期処理部172は、読み出したレコードに基づいて、取引先関連DB320の対応するテーブルの更新を、新DBサーバ300に要求する。なお、DB更新における処理内容が、既存レコードの削除の場合、同期処理部172は、取引先関連DB320のテーブルにおける、指示された申込代表口座の値をキーとするレコードの削除を、新DBサーバ300に要求すればよい。
The
また、同期処理部172は、取引先関連DB320から取引先関連DB120への同期実行の指示を更新イベントハンドラ160から受け付ける。すると、同期処理部172は、取引先関連DB320を参照して、指示された申込代表口座の値をキーとするレコードを、取引先関連DB320のテーブルから読み出す。同期処理部172は、読み出したレコードに基づいて、取引先関連DB120の対応するテーブルの更新を行う。なお、DB更新における処理内容が、既存レコードの削除の場合、同期処理部172は、取引先関連DB320のテーブルにおける、指示された申込代表口座の値をキーとするレコードの削除を行えばよい。
Further, the
同期処理部173は、その他情報DB130からその他情報DB330への同期実行の指示を更新イベントハンドラ160から受け付ける。すると、同期処理部173は、その他情報DB130を参照して、指示されたデータ属性の値をキーとするレコードを、その他情報DB130のテーブルから読み出す。同期処理部173は、読み出したレコードに基づいて、その他情報DB330の対応するテーブルの更新を、新DBサーバ300に要求する。なお、DB更新における処理内容が、既存レコードの削除の場合、同期処理部173は、その他情報DB330のテーブルにおける、指示されたデータ属性の値をキーとするレコードの削除を、新DBサーバ300に要求すればよい。
The
また、同期処理部173は、その他情報DB330からその他情報DB130への同期実行の指示を更新イベントハンドラ160から受け付ける。すると、同期処理部173は、その他情報DB330を参照して、指示されたデータ属性の値をキーとするレコードを、その他情報DB330のテーブルから読み出す。同期処理部173は、読み出したレコードに基づいて、その他情報DB130の対応するテーブルの更新を行う。なお、DB更新における処理内容が、既存レコードの削除の場合、同期処理部173は、その他情報DB130のテーブルにおける、指示されたデータ属性の値をキーとするレコードの削除を行えばよい。
Further, the
図10は、DB同期制御の第2の例を示す図である。
図10では、前述の第3段階の同期制御の例を説明する。
第3段階では、新システム90の利用に移行済の顧客が使用する外部端末500aによる手続は、新システム90のオンライン処理P1aにより処理される。ただし、外部端末500aは、現行システム80のGUIでのログイン時に、新システム90のGUIへリダイレクトされる。オンライン処理P1aは、外部端末500aの要求に応じて、利用者関連DB310、取引先関連DB320およびその他情報DB330を更新する。また、その更新の履歴を示すログレコードが、ログ記憶部350のログデータ351に記録される。
FIG. 10 is a diagram showing a second example of DB synchronization control.
FIG. 10 illustrates an example of the third-stage synchronous control described above.
In the third stage, procedures by the
一方、新システム90の利用に未移行の顧客が使用する外部端末500による手続は、現行システム80のオンライン処理P1により処理される。
外部端末500および内部端末600の手続に対する更新イベントハンドラ160および同期処理部171,172,173によるDB同期制御は、図9の説明と同様であるが、外部端末500aに対するDB同期制御の方法が下記に示すように一部異なる。
On the other hand, procedures by the
The DB synchronization control by the
図11は、オンライン処理から直接同期を行う例を示す図である。
外部端末500aは、現行ログイン画面201により、新システム90の利用に移行済の顧客のアカウントを用いた現行システム80へのログイン要求を行う。現行ログイン画面201は、現行Web-APサーバ200により提供されるGUIである。現行システム80でのログインに成功すると、外部端末500aによるアクセス先は、新Web-APサーバ400にリダイレクトされ、ログイン後の新メニュー画面401が外部端末500aに提供される。新メニュー画面401は、新Web-APサーバ400により、新DBサーバ300における新DBのデータに基づいて提供されるGUIである。以後は、外部端末500aからの要求は、前述のオンライン処理P1aにより処理されることになる。
FIG. 11 is a diagram showing an example of direct synchronization from online processing.
The
ここで、新メニュー画面401には、「前回ログイン日時」などの最新の情報を表示する欄が設けられている。前回ログイン日時の情報は、利用者関連DB110に記録される情報である。一方、更新イベントハンドラ160によるDB同期は、所定時間間隔で行われる。このため、新メニュー画面401の表示タイミングの直前において、利用者関連110から利用者関連DB310への同期が行われていなければ、新Web-APサーバ400は、新メニュー画面401を正しく表示させることができなくなる。
Here, the
そこで、同期処理部171は、オンライン処理P1からログインを受け付けた旨の通知を受けると、更新イベントハンドラ160の指示なしで、利用者関連DB110から利用者関連DB310に対するデータの同期を行う。これにより、リダイレクト後の新システム90によるGUIに、最新の情報を正しく表示させることが可能になる。
Therefore, upon receiving a notification from the online processing P1 that the login has been accepted, the
図12は、DB同期制御の第3の例を示す図である。
図12では、前述の第4段階の同期制御の例を説明する。
第4段階では、全ての顧客が新システム90の利用に移行済となる。このため、外部端末500,500aによる手続は新システム90のオンライン処理P1aで処理され、内部端末600による手続は新システム90のオンライン処理P2で処理される。したがって、外部端末500,500aおよび内部端末600による手続に応じて、利用者関連DB310、取引先関連DB320およびその他情報DB330が更新され、更新の履歴がログ記憶部350に格納される。
FIG. 12 is a diagram showing a third example of DB synchronization control.
FIG. 12 illustrates an example of the synchronization control of the fourth stage described above.
In the fourth stage, all customers have transitioned to using the
第4段階では、更新イベントハンドラ160は、ログ記憶部350のログデータ351を定期的に参照すればよく、ログ記憶部150のログデータ151を監視しなくてよい。更新イベントハンドラ160は、ログデータ351によりデータの更新を検出すると、図9の説明と同様にして、新DBから現行DBへの同期を、適切な同期処理部171,172,173に指示する。
In the fourth stage, the
こうして、新DBから現行DBへの同期を行うことで、現行DBのデータを最新の状態に維持することができ、現行DBを新DBと併用することができる。このため、例えば、スマートフォンなどの携帯端末の専用サイトのみを現行システム80で運用し続けたり、現行DBを新DBのバックアップとして利用可能にしたりするなど、システム移行を柔軟に行えるようになる。
By synchronizing the new DB with the current DB in this way, the data in the current DB can be kept up-to-date, and the current DB can be used together with the new DB. For this reason, system migration can be flexibly performed, for example, by continuing to operate only the dedicated site for mobile terminals such as smartphones in the
次に、現行DBサーバ100により実行されるDB同期制御の手順を説明する。
まず、前述の第2段階および第3段階において、更新イベントハンドラ160により実行されるDB同期制御を説明する。
Next, a procedure for DB synchronization control executed by the
First, the DB synchronization control executed by the
図13は、DB同期制御の例を示すフローチャートである。
更新イベントハンドラ160は、下記の手順を所定の時間間隔で開始する。所定の時間間隔は、例えば、数秒~数分程度とすることが考えられる。
FIG. 13 is a flowchart illustrating an example of DB synchronization control.
The
(S10)更新イベントハンドラ160は、ログ記憶部150に格納されたログデータ151およびログ記憶部350に格納されたログデータ351に対するポーリングを行う。例えば、更新イベントハンドラ160は、ログデータ151において、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に追加されたログレコードを取得する。また、更新イベントハンドラ160は、ログデータ351において、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に追加されたログレコードを取得する。追加されたログレコードがない場合は、当該ログレコードの取得は行われない。
( S<b>10 ) The
(S11)更新イベントハンドラ160は、現行DBのログデータ151に追加されたログレコードがあるか否かを判定する。ログデータ151に追加されたログレコードがある場合、ステップS12に処理が進む。ログデータ151に追加されたログレコードがない場合、ステップS13に処理が進む。
(S11) The
(S12)更新イベントハンドラ160は、現行DBから新DBへの同期処理を行う。現行DBから新DBへの同期処理の詳細は後述される。
(S13)更新イベントハンドラ160は、新DBのログデータ351に追加されたログレコードがあるか否かを判定する。ログデータ351に追加されたログレコードがある場合、ステップS14に処理が進む。ログデータ351に追加されたログレコードがない場合、DB同期制御が終了する。
(S12) The
(S13) The
(S14)更新イベントハンドラ160は、新DBから現行DBへの同期処理を行う。新DBから現行DBへの同期処理の詳細は後述される。そして、今回のタイミングでのDB同期制御が終了する。
(S14) The
図14は、現行DBから新DBへの同期処理の例を示すフローチャートである。
現行DBから新DBへの同期処理は、ステップS12に相当する。
(S20)更新イベントハンドラ160は、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に、ログデータ151に追加されたログレコードを1つ選択する。例えば、更新イベントハンドラ160は、時系列の古い方から新しい方へ向かう順に、追加されたログレコードを1つ選択する。
FIG. 14 is a flowchart showing an example of synchronization processing from the current DB to the new DB.
Synchronization processing from the current DB to the new DB corresponds to step S12.
(S20) The
(S21)更新イベントハンドラ160は、選択したログレコードにおける主キーの変更区分を判定する。変更区分が「ユーザID」を示す場合、ステップS22に処理が進む。変更区分が「申込代表口座」を示す場合、ステップS26に処理が進む。変更区分が「ユーザID」および「申込代表口座」以外を示す場合、ステップS30に処理が進む。
(S21) The
(S22)更新イベントハンドラ160は、利用者同期処理を開始する。例えば、同期元DBと同期先DBとの組が複数ある場合、同期元DBと同期先DBとの組ごとに下記のステップS23,S24が繰り返し実行される。
(S22) The
(S23)更新イベントハンドラ160は、更新された現行DBに対する新DBを特定する。具体的には、更新イベントハンドラ160は、更新された利用者関連DB110に対して利用者関連DB310を特定する。
(S23) The
(S24)更新イベントハンドラ160は、特定した新DBに更新処理を実行する。具体的には、更新イベントハンドラ160は、利用者関連DB110から利用者関連DB310への同期実行を、同期処理部171に指示する。同期処理部171は、利用者関連DB110から利用者関連DB310への同期を実行する。前述のように、同期処理部171は、更新イベントハンドラ160から通知されたユーザIDの値に基づいて、同期対象のテーブルにおける、更新が行われたレコードに関する同期処理のみを実行すればよい。
(S24) The
(S25)更新イベントハンドラ160は、同期元DBと同期先DBとの全ての組について利用者同期処理を終了すると、ステップS34に処理を進める。
(S26)更新イベントハンドラ160は、取引先同期処理を開始する。例えば、同期元DBと同期先DBとの組が複数ある場合、同期元DBと同期先DBとの組ごとに下記のステップS27,S28が繰り返し実行される。
(S25) When the
(S26) The
(S27)更新イベントハンドラ160は、更新された現行DBに対する新DBを特定する。具体的には、更新イベントハンドラ160は、更新された取引先関連DB120に対して取引先関連DB320を特定する。
(S27) The
(S28)更新イベントハンドラ160は、特定した新DBに更新処理を実行する。具体的には、更新イベントハンドラ160は、取引先関連DB120から取引先関連DB320への同期実行を、同期処理部172に指示する。同期処理部172は、取引先関連DB120から取引先関連DB320への同期を実行する。前述のように、同期処理部172は、更新イベントハンドラ160から通知された申込代表口座の値に基づいて、同期対象のテーブルにおける、更新が行われたレコードに関する同期処理のみを実行すればよい。
(S28) The
(S29)更新イベントハンドラ160は、同期元DBと同期先DBとの全ての組について取引先同期処理を終了すると、ステップS34に処理を進める。
(S30)更新イベントハンドラ160は、その他同期処理を開始する。例えば、同期元DBと同期先DBとの組が複数ある場合、同期元DBと同期先DBとの組ごとに下記のステップS31,S32が繰り返し実行される。
(S29) The
(S30) The
(S31)更新イベントハンドラ160は、更新された現行DBに対する新DBを特定する。具体的には、更新イベントハンドラ160は、更新されたその他情報DB130に対してその他情報DB330を特定する。
(S31) The
(S32)更新イベントハンドラ160は、特定した新DBに更新処理を実行する。具体的には、更新イベントハンドラ160は、その他情報DB130からその他情報DB330への同期実行を、同期処理部173に指示する。同期処理部173は、その他情報DB130からその他情報DB330への同期を実行する。前述のように、同期処理部173は、更新イベントハンドラ160から通知されたデータ属性の値に基づいて、同期対象のテーブルにおける、更新が行われたレコードに関する同期処理のみを実行すればよい。
(S32) The
(S33)更新イベントハンドラ160は、同期元DBと同期先DBとの全ての組についてその他同期処理を終了すると、ステップS34に処理を進める。
(S34)更新イベントハンドラ160は、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に、ログデータ151に追加された全てのログレコードを処理済であるか否かを判定する。全て処理済の場合、現行DBから新DBへのDB同期制御が終了する。全て処理済でない場合、ステップS20に処理が進む。
(S33) When the
(S34) The
図15は、新DBから現行DBへの同期処理の例を示すフローチャートである。
新DBから現行DBへの同期処理は、ステップS14に相当する。
(S40)更新イベントハンドラ160は、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に、ログデータ351に追加されたログレコードを1つ選択する。例えば、更新イベントハンドラ160は、時系列の古い方から新しい方へ向かう順に、追加されたログレコードを1つ選択する。
FIG. 15 is a flowchart illustrating an example of synchronization processing from the new DB to the current DB.
Synchronization processing from the new DB to the current DB corresponds to step S14.
(S40) The
(S41)更新イベントハンドラ160は、選択したログレコードにおける主キーの変更区分を判定する。変更区分が「ユーザID」を示す場合、ステップS42に処理が進む。変更区分が「申込代表口座」を示す場合、ステップS46に処理が進む。変更区分が「ユーザID」および「申込代表口座」以外を示す場合、ステップS50に処理が進む。
(S41) The
(S42)更新イベントハンドラ160は、利用者同期処理を開始する。例えば、同期元DBと同期先DBとの組が複数ある場合、同期元DBと同期先DBとの組ごとに下記のステップS43,S44が繰り返し実行される。
(S42) The
(S43)更新イベントハンドラ160は、更新された新DBに対する現行DBを特定する。具体的には、更新イベントハンドラ160は、更新された利用者関連DB310に対して利用者関連DB110を特定する。
(S43) The
(S44)更新イベントハンドラ160は、特定した現行DBに更新処理を実行する。具体的には、更新イベントハンドラ160は、利用者関連DB310から利用者関連DB110への同期実行を、同期処理部171に指示する。同期処理部171は、利用者関連DB310から利用者関連DB110への同期を実行する。前述のように、同期処理部171は、更新イベントハンドラ160から通知されたユーザIDの値に基づいて、同期対象のテーブルにおける、更新が行われたレコードに関する同期処理のみを実行すればよい。
(S44) The
(S45)更新イベントハンドラ160は、同期元DBと同期先DBとの全ての組について利用者同期処理を終了すると、ステップS54に処理を進める。
(S46)更新イベントハンドラ160は、取引先同期処理を開始する。例えば、同期元DBと同期先DBとの組が複数ある場合、同期元DBと同期先DBとの組ごとに下記のステップS47,S48が繰り返し実行される。
(S45) When the
(S46) The
(S47)更新イベントハンドラ160は、更新された新DBに対する現行DBを特定する。具体的には、更新イベントハンドラ160は、更新された取引先関連DB320に対して取引先関連DB120を特定する。
(S47) The
(S48)更新イベントハンドラ160は、特定した現行DBに更新処理を実行する。具体的には、更新イベントハンドラ160は、取引先関連DB320から取引先関連DB120への同期実行を、同期処理部172に指示する。同期処理部172は、取引先関連DB320から取引先関連DB120への同期を実行する。前述のように、同期処理部172は、更新イベントハンドラ160から通知された申込代表口座の値に基づいて、同期対象のテーブルにおける、更新が行われたレコードに関する同期処理のみを実行すればよい。
(S48) The
(S49)更新イベントハンドラ160は、同期元DBと同期先DBとの全ての組について取引先同期処理を終了すると、ステップS54に処理を進める。
(S50)更新イベントハンドラ160は、その他同期処理を開始する。例えば、同期元DBと同期先DBとの組が複数ある場合、同期元DBと同期先DBとの組ごとに下記のステップS51,S52が繰り返し実行される。
(S49) The
(S50) The
(S51)更新イベントハンドラ160は、更新された新DBに対する現行DBを特定する。具体的には、更新イベントハンドラ160は、更新されたその他情報DB330に対してその他情報DB130を特定する。
(S51) The
(S52)更新イベントハンドラ160は、特定した現行DBに更新処理を実行する。具体的には、更新イベントハンドラ160は、その他情報DB330からその他情報DB130への同期実行を、同期処理部173に指示する。同期処理部173は、その他情報DB330からその他情報DB130への同期を実行する。前述のように、同期処理部173は、更新イベントハンドラ160から通知されたデータ属性の値に基づいて、同期対象のテーブルにおける、更新が行われたレコードに関する同期処理のみを実行すればよい。
(S52) The
(S53)更新イベントハンドラ160は、同期元DBと同期先DBとの全ての組についてその他同期処理を終了すると、ステップS54に処理を進める。
(S54)更新イベントハンドラ160は、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に、ログデータ351に追加された全てのログレコードを処理済であるか否かを判定する。全て処理済の場合、新DBから現行DBへのDB同期制御が終了する。全て処理済でない場合、ステップS40に処理が進む。
(S53) When the
(S54) The
こうして、第2,第3段階では、現行システム80および新システム90を運用しながら、現行DBと新DBとの双方向のデータの同期が行われる。第4段階では、下記のように、更新イベントハンドラ160は、ログ記憶部150の監視を停止し、ログ記憶部350のみを監視する。
Thus, in the second and third stages, while operating the
次に、前述の第4段階において、更新イベントハンドラ160により実行されるDB同期制御を説明する。
図16は、DB同期制御の他の例を示すフローチャートである。
Next, the DB synchronization control executed by the
FIG. 16 is a flowchart showing another example of DB synchronization control.
更新イベントハンドラ160は、下記の手順を所定の時間間隔で開始する。所定の時間間隔は、例えば、数秒~数分程度とすることが考えられる。
(S60)更新イベントハンドラ160は、ログ記憶部350に格納されたログデータ351に対するポーリングを行う。例えば、更新イベントハンドラ160は、ログデータ351において、前回のDB同期制御の実行タイミングから今回の実行タイミングまでの間に追加されたログレコードを取得する。追加されたログレコードがない場合は、当該ログレコードの取得は行われない。
The
( S<b>60 ) The
(S61)更新イベントハンドラ160は、新DBのログデータ351に追加されたログレコードがあるか否かを判定する。ログデータ351に追加されたログレコードがある場合、ステップS62に処理が進む。ログデータ351に追加されたログレコードがない場合、DB同期制御が終了する。
(S61) The
(S62)更新イベントハンドラ160は、新DBから現行DBへの同期処理を行う。新DBから現行DBへの同期処理の手順は、図15の手順と同様である。そして、DB同期制御が終了する。
(S62) The
なお、ステップS23,S27,S31,S43,S47,S51における、同期元DBに対する同期先DBの特定は、現行DBサーバ100が予め保持する同期制御情報に基づいて行われてもよい。
The identification of the synchronization destination DB with respect to the synchronization source DB in steps S23, S27, S31, S43, S47, and S51 may be performed based on synchronization control information held in advance by the
図17は、同期制御情報の第1の例を示す図である。
現行DBサーバ100は、図4で例示した機能に加えて、制御情報記憶部160aを有してもよい。制御情報記憶部160aには、RAM102やHDD103の記憶領域が用いられる。制御情報記憶部160aは、同期制御情報161を予め記憶する。
FIG. 17 is a diagram showing a first example of synchronization control information.
The
同期制御情報161は、主キーの変更区分に応じた、現行DBと新DBとの対応関係を示す情報である。同期制御情報161は、主キーの変更区分、現行DB名および新DB名の項目を含む。主キーの変更区分の項目には、主キーの変更区分が登録される。現行DB名の項目には、現行DBの識別名が登録される。新DB名の項目には、現行DBに対応する新DBの識別名が登録される。
The
例えば、同期制御情報161には、主キーの変更区分「1」、現行DB名「db01」、新DB名「db11」というレコードが登録されている。このレコードは、主キーの変更区分「1」(ユーザID)に対して、同期対象のDBの組が、現行DB名「db01」の利用者関連DB110および新DB名「db11」の利用者関連DB310の組であることを示す。
For example, in the
同期制御情報161には、他の変更区分に対しても、現行DB名と新DB名との組が登録される。同期制御情報161には、1つの変更区分に対して、現行DB名と新DB名との組が複数登録されてもよい。
A set of the current DB name and the new DB name is also registered in the
更新イベントハンドラ160は、制御情報記憶部160aに記憶された同期制御情報161を参照して、ログレコードにおける変更区分に応じた現行DBと新DBとの組を特定してもよい。
The
図18は、同期制御情報の第2の例を示す図である。
制御情報記憶部160aは、同期制御情報161に代えて、同期制御情報162を予め記憶してもよい。同期制御情報162は、現行DBのテーブルと、新DBのテーブルとの対応関係を保持する点が、同期制御情報161と異なる。
FIG. 18 is a diagram showing a second example of synchronization control information.
Instead of the
同期制御情報162は、主キーの変更区分、業務コード、現行DBテーブルおよび新DBテーブルの項目を含む。主キーの変更区分の項目には、主キーの変更区分が登録される。業務コードの項目には、業務コードが登録される。現行DBテーブルの項目には、現行DBのテーブル名が登録される。新DBテーブルの項目には、現行DBテーブルに対応する新DBのテーブル名が登録される。
The
例えば、同期制御情報162には、主キーの変更区分「1」、業務コード「001」、現行DBテーブル「db01:table001」、新DBテーブル「db11:table111」というレコードが登録されている。このレコードは、主キーの変更区分「1」(ユーザID)に対して、同期対象のテーブルの組が現行DB名「db01」のテーブル「table001」と新DB名「db11」のテーブル「table111」との組であることを示す。
For example, in the
同期制御情報162には、他の変更区分と業務コードとの組に対しても、現行DBテーブルと新DBテーブルとの組が登録される。同期制御情報162には、変更区分と業務コードとの1つの組に対して、現行DBテーブルと新DBテーブルとの複数の組が登録されてもよい。
In the
更新イベントハンドラ160は、制御情報記憶部160aに記憶された同期制御情報162を参照して、ログレコードにおける変更区分と業務コードとの組に応じた現行DBテーブルと新DBテーブルとの組を特定してもよい。この場合、更新イベントハンドラ160は、特定した現行DBテーブルと新DBテーブルとの組に関するデータの同期を、同期処理部171,172,173に指示する。
The
ここで、例えば、現行システム80または新システム90のDBにおける、あるデータの更新に対して、現行システム80および新システム90の該当のDBの同期を行うように、現行システム80における更新処理を修正することが考えられる。しかし、更新処理は多岐に亘ることがあり、更新処理全てを人手によって個々に修正することは容易ではない。
Here, for example, the updating process in the
一方、キーとなるデータ属性に対して、当該データ属性に関連するデータを管理するデータベースを予め特定することは、データベースの定義情報などから比較的容易に行える。そこで、更新イベントハンドラ160は、更新が行われたデータの属性と、更新の検出元となった更新履歴とに応じて、同期方向や同期元DBと同期先DBとの組を特定することで、当該組を効率的に特定でき、同期処理を適切に行えるようになる。こうして、データの更新処理全てを個々に修正しなくても、DBの同期処理を効率良く行うことができる。
On the other hand, it is relatively easy to preliminarily specify a database that manages data related to a key data attribute from database definition information or the like. Therefore, the
また、更新イベントハンドラ160および同期制御部170によるデータベース同期の処理は、現行システム80および新システム90の処理とは独立して実行することができる。このため、現行システム80で動作するソフトウェアの修正を行わずに済み、あるいは、修正規模を比較的小さくでき、現行システム80での障害リスクを小さく抑えられる。また、新システム90において、システム移行のために一時的にしか使用されないDB同期用の処理ロジックを入れ込まなくてよいという利点もある。
Further, database synchronization processing by the
更に、更新イベントハンドラ160は、ログデータ151,351を定期的に監視することで、現行DBおよび新DBにおけるデータの更新の有無を判定することができる。これにより、現行システム80および新システム90の処理のレスポンスに影響を与えないよう、DB同期を非同期で実装できる。
Furthermore, the
なお、現行DBと新DBとの同期を行いながら、現行システム80から新システム90への切り替え準備が整った段階で、全ての処理を新システム90で行うようにシステムの切り替えが行われる。切り替え後は、外部端末500,500aおよび内部端末600からの要求は、全て新システム90で処理され、データ更新が新DBに直接反映されるため、現行DBから新DBへのデータの同期を行わなくてもよくなる。ただし、前述の第4段階のように、更新イベントハンドラ160および同期制御部170は、新DBから現行DBへのデータの同期を行ってもよい。
While synchronizing the current DB and the new DB, system switching is performed so that all processing is performed by the
ここで、現行DBサーバ100は、例えば次の処理を実行する。
更新イベントハンドラ160は、複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴を所定の時間間隔で監視することで、何れかのデータベースにおいてデータの更新が行われたか否かを判定する。更新イベントハンドラ160は、更新が行われていると判定した場合に、更新が行われたデータの属性および更新の検出元が第1更新履歴および第2更新履歴の何れであるかに応じて、複数の第1データベースのうちの同期元データベースと複数の第2データベースのうちの同期先データベースとの組、または、複数の第2データベースのうちの同期元データベースと複数の第1データベースのうちの同期先データベースとの組を特定する。更新イベントハンドラ160は、特定した同期元データベースから同期先データベースに対するデータの同期処理の実行を同期制御部170に指示する。
Here, the
The
これにより、データベースの同期処理を効率良く行うことができる。なお、利用者関連DB110、取引先関連DB120およびその他情報DB130は、複数の第1データベースの一例である。利用者関連DB310、取引先関連DB320およびその他情報DB330は、複数の第2データベースの一例である。ログデータ151は、第1更新履歴の一例である。ログデータ351は、第2更新履歴の一例である。
As a result, database synchronization processing can be performed efficiently. The user-related
更新イベントハンドラ160は、データの属性に対して複数の第1データベースに含まれるデータベースと複数の第2データベースに含まれる他のデータベースとの組を対応付けた同期制御情報161に基づいて、同期元データベースと同期先データベースとを特定してもよい。
The
これにより、更新が行われたデータの属性に対する同期元のデータベースと同期先のデータベースとを効率的に特定できる。
更新イベントハンドラ160は、データの属性と更新を行った処理を示す識別情報とに応じて、同期元データベースに含まれる第1テーブルと同期先データベースに含まれる第2テーブルとを特定してもよい。そして、更新イベントハンドラ160は、特定した第1テーブルから第2テーブルに対するデータの同期処理の実行を指示してもよい。
This makes it possible to efficiently identify the synchronization source database and the synchronization destination database for the attribute of the updated data.
The
これにより、同期処理の対象を更に絞り込め、データベースの同期処理を一層効率良く行うことができる。なお、前述の業務コードは、更新を行った処理を示す識別情報の一例である。 This makes it possible to further narrow down the target of the synchronization process and to perform the database synchronization process more efficiently. Note that the business code described above is an example of identification information indicating the process that performed the update.
例えば、更新イベントハンドラ160は、データの属性および当該識別情報に対して複数の第1データベースに含まれるデータベースのテーブルと複数の第2データベースに含まれる他のデータベースの他のテーブルとの組を対応付けた同期制御情報162に基づいて、第1テーブルと第2テーブルとを特定してもよい。
For example, the
これにより、更新が行われたデータの属性に対する同期元のデータベースのテーブルと同期先のデータベースのテーブルとを効率的に特定できる。
更新イベントハンドラ160は、更新の検出元が第1更新履歴の場合、更新が行われたデータの属性に応じて、複数の第1データベースから同期元データベースを特定し、複数の第2データベースから同期先データベースを特定する。また、更新イベントハンドラ160は、更新の検出元が第2更新履歴の場合、データの属性に応じて、複数の第2データベースから同期元データベースを特定し、複数の第1データベースから同期先データベースを特定する。
This makes it possible to efficiently identify the synchronization source database table and the synchronization destination database table for the attributes of the updated data.
When the update detection source is the first update history, the
これにより、同期元データベースと同期先データベースとの組を適切に特定できる。
また、同期制御部170は、特定のユーザに関する要求により複数の第1データベースの何れかのデータベースのデータが更新されたことを検出する。すると、同期制御部170は、当該データベースを同期元データベースとして、複数の第2データベースのうち、当該同期元データベースに対応する同期先データベースへのデータの同期を、更新イベントハンドラ160による更新の監視のタイミングを待たずに実行する。
Thereby, the pair of the synchronization source database and the synchronization destination database can be appropriately specified.
The
これにより、例えば、図11で説明したように、該当のユーザの手続を新システム90へリダイレクトさせる場合でも、新システム90で管理されるデータを、迅速に、最新の状態に更新できる。
As a result, for example, even when the user's procedure is redirected to the
更新イベントハンドラ160は、ユーザが利用するシステムの移行であって、複数の第1データベースを用いる第1システムから複数の第2データベースを用いる第2システムへの移行が完了すると、第1更新履歴の監視を停止する。
The
これにより、更新イベントハンドラ160が余計な監視処理を行うことを抑制できる。また、複数の第2データベースに含まれるデータベースを同期元とし、複数の第1データベースに含まれるデータベースを同期先とする同期処理のみを効率的に実行可能になる。例えば、システムの移行の完了の通知は、システム管理者などによって現行DBサーバ100に入力されてもよい。ここで、現行システム80は、第1システムの一例である。新システム90は、第2システムの一例である。
This can prevent the
また、更新イベントハンドラ160は、更新の際に指定された属性の値をキーとするレコードを同期元データベースから同期先データベースに反映させる指示を行ってもよい。
これにより、同期制御部170による同期対象のレコードの抽出が容易になり、データベースの同期処理を一層効率的に行うことができる。
In addition, the
This makes it easier for the
また、複数の第1データベースを備える装置および複数の第2データベースを備える他の装置は、第1ネットワークに接続される。複数の第2データベースは、第1ネットワークに接続された第1端末により入力された情報により更新される。複数の第1データベースは、第1ネットワークの外部の第2ネットワークを介して第2端末により入力された情報により更新される。 Also, a device with a plurality of first databases and another device with a plurality of second databases are connected to the first network. A plurality of second databases are updated with information entered by a first terminal connected to the first network. A plurality of first databases are updated with information entered by a second terminal via a second network external to the first network.
更新イベントハンドラ160および同期制御部170の機能は、銀行などの機関のように、外部端末500,500aおよび内部端末600による要求を処理するシステムの段階的な移行に有用である。現行DBサーバ100は、複数の第1データベースを備える装置の一例である。新DBサーバ300は、複数の第2データベースを備える他の装置の一例である。内部端末600は第1端末の一例である。外部端末500,500aは第2端末の一例である。また、内部端末600が接続されるネットワーク60は、第1ネットワークの一例である。外部端末500,500aが接続されるインターネット70などのネットワークは、第2ネットワークの一例である。
The functions of the
更に、第2の実施の形態の情報処理システムを次のように表すこともできる。
すなわち、情報処理システムは、複数の第1データベースを管理する第1情報処理装置と、複数の第2データベースを管理する第2情報処理装置とを有する。現行DBサーバ100は、第1情報処理装置の一例である。新DBサーバ300は、第2情報処理装置の一例である。第1情報処理装置は、複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴を所定の時間間隔で監視することで、何れかのデータベースにおいてデータの更新が行われたか否かを判定する。第1情報処理装置は、更新が行われていると判定した場合に、更新が行われたデータの属性および更新の検出元が第1更新履歴および第2更新履歴の何れであるかに応じて、複数の第1データベースのうちの同期元データベースと複数の第2データベースのうちの同期先データベースとの組、または、複数の第2データベースのうちの同期元データベースと複数の第1データベースのうちの同期先データベースとの組を特定する。第1情報処理装置は、特定した同期元データベースから同期先データベースに対するデータの同期処理の実行を指示する。
Furthermore, the information processing system of the second embodiment can also be expressed as follows.
That is, the information processing system has a first information processing device that manages a plurality of first databases and a second information processing device that manages a plurality of second databases. The
このようにして、データベースの同期処理を効率的に行うことができる。第1情報処理装置側にデータベースの同期制御を行う更新イベントハンドラ160や同期制御部170を設けることで、第2情報処理装置側にデータベース同期用の付加的な機能を設けなくてよい。このため、例えば、現行システム80から新システム90に移行する場合に、新システム90に当該移行のための余計な機能を追加しなくてよいという利点もある。
In this manner, database synchronization processing can be performed efficiently. By providing the
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体83に記録できる。
The information processing according to the first embodiment can be realized by causing the
例えば、プログラムを記録した記録媒体83を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体83に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
For example, the program can be distributed by distributing the
5,6 ネットワーク
10 情報処理装置
11 記憶部
12 処理部
20 第1データベース群
30 第2データベース群
21,22,31,32 データベース
23 第1更新履歴
33 第2更新履歴
40,50 端末装置
5, 6
Claims (12)
複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴を所定の時間間隔で監視することで、何れかのデータベースにおいてデータの更新が行われたか否かを判定し、
前記更新が行われていると判定した場合に、前記更新が行われた前記データの属性および前記更新の検出元が前記第1更新履歴および前記第2更新履歴の何れであるかに応じて、前記複数の第1データベースのうちの同期元データベースと前記複数の第2データベースのうちの同期先データベースとの組、または、前記複数の第2データベースのうちの前記同期元データベースと前記複数の第1データベースのうちの前記同期先データベースとの組を特定し、
特定した前記同期元データベースから前記同期先データベースに対する前記データの同期処理の実行を指示する、
処理を実行させる情報処理プログラム。 to the computer,
By monitoring a first update history for a plurality of first databases and a second update history for a plurality of second databases at predetermined time intervals, it is determined whether or not data has been updated in any database,
When it is determined that the update has been performed, depending on whether the attribute of the updated data and the detection source of the update are the first update history or the second update history, A set of a synchronization source database out of the plurality of first databases and a synchronization destination database out of the plurality of second databases, or a set of the synchronization source database out of the plurality of second databases and the plurality of first databases Identifying a set of databases with the synchronization destination database,
instructing execution of synchronization processing of the data from the identified synchronization source database to the synchronization destination database;
An information processing program that causes a process to be executed.
請求項1記載の情報処理プログラム。 In specifying the synchronization source database and the synchronization destination database, synchronization in which a set of a database included in the plurality of first databases and another database included in the plurality of second databases is associated with the attribute identifying the synchronization source database and the synchronization destination database based on control information;
The information processing program according to claim 1.
前記同期処理の実行の指示では、特定した前記第1テーブルから前記第2テーブルに対する前記データの前記同期処理の実行を指示する、
請求項1記載の情報処理プログラム。 In specifying the synchronization source database and the synchronization destination database, a first table included in the synchronization source database and the synchronization destination database are selected according to the attribute of the data and identification information indicating the process that performed the update. identify the second table contained in
The instruction to execute the synchronization process instructs execution of the synchronization process of the data from the specified first table to the second table;
The information processing program according to claim 1.
請求項3記載の情報処理プログラム。 In specifying the first table and the second table, for the attribute and the identification information, the table of the database included in the plurality of first databases and the other database included in the plurality of second databases. Identifying the first table and the second table based on the synchronization control information that associates the set with the table of
The information processing program according to claim 3.
前記更新の検出元が前記第1更新履歴の場合、前記データの前記属性に応じて、前記複数の第1データベースから前記同期元データベースを特定し、前記複数の第2データベースから前記同期先データベースを特定し、
前記更新の検出元が前記第2更新履歴の場合、前記データの前記属性に応じて、前記複数の第2データベースから前記同期元データベースを特定し、前記複数の第1データベースから前記同期先データベースを特定する、
請求項1記載の情報処理プログラム。 In specifying the synchronization source database and the synchronization destination database,
When the update detection source is the first update history, the synchronization source database is specified from the plurality of first databases according to the attribute of the data, and the synchronization destination database is selected from the plurality of second databases. identify,
When the update detection source is the second update history, the synchronization source database is specified from the plurality of second databases according to the attribute of the data, and the synchronization destination database is selected from the plurality of first databases. Identify,
The information processing program according to claim 1.
特定のユーザに関する要求により前記複数の第1データベースの何れかのデータベースの前記データが更新されたことを検出すると、当該データベースを前記同期元データベースとして、前記複数の第2データベースのうち、前記同期元データベースに対応する前記同期先データベースへの前記データの同期を、前記更新の監視のタイミングを待たずに実行する、
処理を実行させる請求項1記載の情報処理プログラム。 The computer further comprises:
when it is detected that the data in any one of the plurality of first databases has been updated by a request relating to a specific user, the database is set as the synchronization source database, and among the plurality of second databases, the synchronization source Synchronizing the data to the synchronization destination database corresponding to the database without waiting for the update monitoring timing;
2. The information processing program according to claim 1, which causes a process to be executed.
ユーザが利用するシステムの移行であって、前記複数の第1データベースを用いる第1システムから前記複数の第2データベースを用いる第2システムへの前記移行が完了すると、前記第1更新履歴の監視を停止する、
処理を実行させる請求項1記載の情報処理プログラム。 The computer further comprises:
migration of a system used by a user, wherein when the migration from the first system using the plurality of first databases to the second system using the plurality of second databases is completed, monitoring the first update history; Stop,
2. The information processing program according to claim 1, which causes a process to be executed.
請求項1記載の情報処理プログラム。 In the instruction to execute the synchronization process, an instruction is given to reflect the record whose key is the value of the attribute specified at the time of updating from the synchronization source database to the synchronization destination database;
The information processing program according to claim 1.
前記複数の第2データベースは、前記第1ネットワークに接続された第1端末により入力された情報により更新され、
前記複数の第1データベースは、前記第1ネットワークの外部の第2ネットワークを介して第2端末により入力された情報により更新される、
請求項1記載の情報処理プログラム。 a device comprising the plurality of first databases and another device comprising the plurality of second databases are connected to a first network;
said plurality of second databases are updated with information entered by a first terminal connected to said first network;
wherein said plurality of first databases are updated with information entered by a second terminal via a second network external to said first network;
The information processing program according to claim 1.
複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴を所定の時間間隔で監視することで、何れかのデータベースにおいてデータの更新が行われたか否かを判定し、
前記更新が行われていると判定した場合に、前記更新が行われた前記データの属性および前記更新の検出元が前記第1更新履歴および前記第2更新履歴の何れであるかに応じて、前記複数の第1データベースのうちの同期元データベースと前記複数の第2データベースのうちの同期先データベースとの組、または、前記複数の第2データベースのうちの前記同期元データベースと前記複数の第1データベースのうちの前記同期先データベースとの組を特定し、
特定した前記同期元データベースから前記同期先データベースに対する前記データの同期処理の実行を指示する、
情報処理方法。 the computer
By monitoring a first update history for a plurality of first databases and a second update history for a plurality of second databases at predetermined time intervals, it is determined whether or not data has been updated in any database,
When it is determined that the update has been performed, depending on whether the attribute of the updated data and the detection source of the update are the first update history or the second update history, A set of a synchronization source database out of the plurality of first databases and a synchronization destination database out of the plurality of second databases, or a set of the synchronization source database out of the plurality of second databases and the plurality of first databases Identifying a set of databases with the synchronization destination database,
instructing execution of synchronization processing of the data from the identified synchronization source database to the synchronization destination database;
Information processing methods.
を有する情報処理装置。 By monitoring a first update history for a plurality of first databases and a second update history for a plurality of second databases at predetermined time intervals, it is determined whether or not data has been updated in any database, When it is determined that the update has been performed, depending on whether the attribute of the updated data and the detection source of the update are the first update history or the second update history, A set of a synchronization source database out of the plurality of first databases and a synchronization destination database out of the plurality of second databases, or a set of the synchronization source database out of the plurality of second databases and the plurality of first databases a processing unit that identifies a set of databases with the synchronization destination database and instructs execution of synchronization processing of the data from the identified synchronization source database to the synchronization destination database;
Information processing device having
前記第1情報処理装置は、
複数の第1データベースに対する第1更新履歴および複数の第2データベースに対する第2更新履歴を所定の時間間隔で監視することで、何れかのデータベースにおいてデータの更新が行われたか否かを判定し、
前記更新が行われていると判定した場合に、前記更新が行われた前記データの属性および前記更新の検出元が前記第1更新履歴および前記第2更新履歴の何れであるかに応じて、前記複数の第1データベースのうちの同期元データベースと前記複数の第2データベースのうちの同期先データベースとの組、または、前記複数の第2データベースのうちの前記同期元データベースと前記複数の第1データベースのうちの前記同期先データベースとの組を特定し、
特定した前記同期元データベースから前記同期先データベースに対する前記データの同期処理の実行を指示する、
情報処理システム。 Having a first information processing device that manages a plurality of first databases and a second information processing device that manages a plurality of second databases,
The first information processing device is
By monitoring a first update history for a plurality of first databases and a second update history for a plurality of second databases at predetermined time intervals, it is determined whether or not data has been updated in any database,
When it is determined that the update has been performed, depending on whether the attribute of the updated data and the detection source of the update are the first update history or the second update history, A set of a synchronization source database out of the plurality of first databases and a synchronization destination database out of the plurality of second databases, or a set of the synchronization source database out of the plurality of second databases and the plurality of first databases Identifying a set of databases with the synchronization destination database,
instructing execution of synchronization processing of the data from the identified synchronization source database to the synchronization destination database;
Information processing system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021064857A JP2022160226A (en) | 2021-04-06 | 2021-04-06 | Information processing program, information processing method, information processing apparatus, and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021064857A JP2022160226A (en) | 2021-04-06 | 2021-04-06 | Information processing program, information processing method, information processing apparatus, and information processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022160226A true JP2022160226A (en) | 2022-10-19 |
Family
ID=83657628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021064857A Pending JP2022160226A (en) | 2021-04-06 | 2021-04-06 | Information processing program, information processing method, information processing apparatus, and information processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022160226A (en) |
-
2021
- 2021-04-06 JP JP2021064857A patent/JP2022160226A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9720954B2 (en) | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees | |
US10162872B2 (en) | System, method and computer program product for performing a synchronization of data | |
US8315977B2 (en) | Data synchronization between a data center environment and a cloud computing environment | |
EP3428811A1 (en) | Database interface agent for a tenant-based upgrade system | |
US7136883B2 (en) | System for managing object storage and retrieval in partitioned storage media | |
US12032954B2 (en) | Issue tracking system | |
US7644301B2 (en) | Fault management system in multistage copy configuration | |
US20120150803A1 (en) | Replication resynchronization | |
US20180329793A1 (en) | Techniques and architectures for managing database failure in a single-node database architecture | |
US11023838B2 (en) | Issue tracking systems and methods | |
US9461884B2 (en) | Information management device and computer-readable medium recorded therein information management program | |
US11799839B2 (en) | Cross-regional replication of keys | |
US9251189B2 (en) | Update of data structure configured to store metadata associated with a database system | |
US7257705B2 (en) | Method for preserving changes made during a migration of a system's configuration to a second configuration | |
JP2012155634A (en) | Information processing program, information processing device and information processing method | |
JP2022160226A (en) | Information processing program, information processing method, information processing apparatus, and information processing system | |
US11681682B2 (en) | Data processing system and cache update control method | |
US11768741B2 (en) | Replicating changes written by a transactional virtual storage access method | |
JP2022160804A (en) | Information processing program, information processing method, and information processing apparatus | |
US20180060540A1 (en) | Medidata clinical trial system integration with oracle coding system | |
US20160275293A1 (en) | Information processing system and control method of the information processing system | |
US20180268374A1 (en) | Electronic change planning manager | |
US11768813B1 (en) | Data migration framework | |
US20180173805A1 (en) | Application programming interface for detection and extraction of data changes | |
US20230273915A1 (en) | Data conflict resolution in periodically offline systems |