(57)【要約】【課題】複数拠点においてデータを同期しつつ並列分散処理を行うための技術を提供する。【解決手段】データ処理装置は、分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成する。また、データ処理装置は、複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて排他制御を開始できたか判断するトランザクション制御部と、排他制御を開始できた場合に、所定のデータに対し所定の処理を行う処理部とを備え、トランザクション制御部は、複数の環境において同期されるデータベースに対しロックをかけることにより排他制御を開始する。【選択図】図２
2019212109.tif 000002
【特許請求の範囲】
【請求項１】
分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成するデータ処理装置であって、
前記複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて前記排他制御を開始できたか判断するトランザクション制御部と、
前記排他制御を開始できた場合に、前記所定のデータに対し所定の処理を行う処理部と、
を備え、
前記トランザクション制御部は、前記複数の環境において同期されるデータベースに対しロックをかけることにより前記排他制御を開始する
データ処理装置。
【請求項２】
前記トランザクション制御部は、前記処理部による一連の処理終了前に前記排他制御を開始し、当該一連の処理終了後に前記排他制御を終了させるトランザクションを管理することにより、前記複数の環境において共有するデータを同期させる
請求項１に記載のデータ処理装置。
【請求項３】
前記所定の処理において使用されるマスタデータを管理するデータベース仲介部をさらに備え、
前記データベース仲介部は、前記マスタデータをＲＤＢ（Relational Database）に格
納すると共に、当該ＲＤＢの内容をＤＢＭＳ（Database Management System）を介することなく読み取りが可能な外部マスタファイルに書き出し、前記ＲＤＢに障害が発生した場合には前記外部マスタファイルを参照する
請求項１又は２に記載のデータ処理装置。
【請求項４】
並列に処理できる複数の前記所定の処理にそれぞれ対応する、逐次処理される前後の処理を連携させるためのキューを複数備え、
前記処理部は、前の処理が完了した場合に、後の処理に対応する前記キューにトランザクション情報を登録し、前記キューのいずれかに前記トランザクション情報が登録された場合は、前記トランザクション情報に基づいて対応する前記所定の処理を開始する
請求項１から３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記処理部は、前記一連の処理において受け渡されるデータを、ＤＢＭＳを介することなく読み取りが可能な外部データファイルに対して読み書きする
請求項２、又は請求項２を引用する請求項３若しくは４に記載のデータ処理装置。
【請求項６】
前記所定の処理は、ＥＤＩ（Electronic Data Interchange）のためのデータ形式を変
換する処理であり、
他のコンピュータとの間でデータを集配信する集配信処理部をさらに備え、
前記処理部は、集配信処理部が集信したデータに対し、前記データ形式を変換する処理を行う
請求項１から５のいずれか一項に記載のデータ処理装置。
【請求項７】
前記データベースは、ＫＶＳ（Key Value Store）方式で管理され、前記データ処理装
置のメインメモリ上に格納されるインメモリデータベースである
請求項１から６のいずれか一項に記載のデータ処理装置。
【請求項８】
分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステム
を構成するデータ処理装置が、
前記複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて前記排他制御を開始できたか判断するトランザクション制御ステップと、
前記排他制御を開始できた場合に、前記所定のデータに対し所定の処理を行う処理ステップと、
を実行するデータ処理方法であって、
前記トランザクション制御ステップにおいて、前記複数の環境において同期されるデータベースに対しロックをかけることにより前記排他制御を開始する
データ処理方法。
【請求項９】
分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成するデータ処理装置に、
前記複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて前記排他制御を開始できたか判断するトランザクション制御ステップと、
前記排他制御を開始できた場合に、前記所定のデータに対し所定の処理を行う処理ステップと、
を実行させるプログラムであって、
前記トランザクション制御ステップにおいて、前記複数の環境において同期されるデータベースに対しロックをかけることにより前記排他制御を開始する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、分散トランザクションに対応するシステムが提案されている（例えば、特許文献１）。本技術では、トランザクションの原子性を保証するために、データログファイルを変更するたびにバージョン番号を上げる処理を行う。そして、ある操作に渡されたバージョン番号が、起動時のバージョン番号と一致する場合は操作が成功し、一致しなければ操作が失敗するように設計される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８９００７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、複数拠点に分散するシステムにおいて、保持するデータの同期をとりつつ並列に処理を行う場合、トランザクションの整合性を保ちつつ、一貫性をもったデータの同期が困難であるという問題があった。また、処理の完了後にトランザクションの不整合を検知して破棄するような処理では、遠隔地に拠点を設けるような場合には処理時間が増大する。
【０００５】
本発明は、複数拠点においてデータを同期しつつ並列分散処理を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成する。また、データ処理装置は、複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて排他制御を開始できたか判断するトランザクション制御部と、排他制御を開始できた場合に、所定のデータに対し所定の処理を行う処理部とを備え、トランザクション制御部は、複数の環境において同期されるデータベースに対しロックをかけることにより排他制御を開始する。
【０００７】
このようにすれば、分散して設けられる複数の環境において同期して排他制御を行い、データを更新するため、分散システムにおいても格納データを同期させることができる。
【０００８】
また、トランザクション制御部は、処理部による一連の処理終了前に排他制御を開始し、当該一連の処理終了後に排他制御を終了させるトランザクションを管理することにより、複数の環境において共有するデータを同期させるようにしてもよい。このようにすれば、システム内で整合させるべき一連のデータ更新をトランザクション内で処理すると共に、処理の結果を複数の環境において同期させることができる。
【０００９】
また、所定の処理において使用されるマスタデータを管理するデータベース仲介部をさらに備え、データベース仲介部は、マスタデータをＲＤＢ（Relational Database）に格
納すると共に、ＲＤＢの内容をＤＢＭＳ（Database Management System）を介することなく読み取りが可能な外部マスタファイルに出力し、ＲＤＢに障害が発生した場合には前記
の外部マスタファイルを参照するようにしてもよい。このようにすれば、ＲＤＢの障害時においてもシステムを稼働させることができ、可用性が向上する。
【００１０】
また、前記外部マスタファイルはフラットファイルのようなテキスト形式のファイルであってもよいし、バイナリファイルであってもよい。データ処理装置が処理しやすい形式のファイルにすることで処理速度の低下を抑えることができる。
【００１１】
また、データ処理装置は、並列に処理できる複数の所定の処理にそれぞれ対応する、逐次処理される前後の処理を連携させるためのキューを複数備え、処理部は、前の処理が完了した場合に、後の処理に対応するキューにトランザクション情報を登録し、キューのいずれかにトランザクション情報が登録された場合は、トランザクション情報に基づいて対応する所定の処理を開始するようにしてもよい。このようにすれば、並列に実行できる処理を速やかに起動させることができる。
【００１２】
また、処理部は、一連の処理において受け渡されるデータを、フラットファイルなどの外部データファイルに対して読み書きするようにしてもよい。データベース管理システムへの依存を低減することにより、可用性を向上させることができる。
【００１３】
また、所定の処理は、ＥＤＩ（Electronic Data Interchange）のためのデータ形式を
変換する処理であり、他のコンピュータとの間でデータを集配信する集配信処理部をさらに備え、処理部は、集配信処理部が集信したデータに対し、データ形式を変換する処理を行うようにしてもよい。データベース管理システムへの依存を低減させたシステム構成は、例えばＥＤＩサービスを提供するシステムに好適に用いることができる。
【００１４】
また、データベースは、ＫＶＳ（Key Value Store）方式で管理され、データ処理装置
のメインメモリ上に格納されるインメモリデータベースであってもよい。このようにすれば、さらに処理速度の低下を抑えることができる。
【００１５】
なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして実現することができる。また、プログラムを保持する記録媒体を提供するようにしてもよい。
【発明の効果】
【００１６】
本発明によれば、複数拠点においてデータを同期しつつ並列分散処理を行うための技術を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】システム構成の一例を示す図である。
【図２】分散環境の一例を示す機能ブロック図である。
【図３】データベースに格納されるデータの一例を示す図である。
【図４】コンピュータの一例を示す装置構成図である。
【図５】処理の一例を示す処理フロー図である。
【図６】集信処理の一例を示す処理フロー図である。
【図７】各処理部の動作の一例を示す簡易的なシーケンス図である。
【図８】変換処理の一例を示す処理フロー図である。
【図９】各処理部の動作の一例を示す簡易的なシーケンス図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を用いて説明する。なお、本システムは、ＥＤＩ（Electronic Data Interchange）サービスをクラウドのような複数拠点間をまたぐネ
ットワークで構成されたデータセンター上において提供するものとする。
【００１９】
＜システムの構成＞
図１は、本実施形態に係るシステムの構成の一例を示す図である。本システムは、複数のデータセンターのような異なる拠点１（１Ａ、１Ｂ、・・・）に設けられる複数の分散環境２（２Ａ、２Ｂ、２Ｃ、２Ｄ、・・・）を備える。また、分散環境２は、互いにインターネットや専用線等のネットワーク３を介して接続されている。分散環境２は、ＥＤＩサービスを提供するデータ処理装置であり、サーバ等のコンピュータによって実現される。また、本システムは、ＥＤＩサービスを利用する利用者サーバ４（４Ａ、４Ｂ、・・・）とネットワーク３を介して接続されている。利用者サーバ４は、取引等に関わる電子データ（以下、「取引データ」とも呼ぶ）を交換する企業等のサーバ装置である。なお、利用者サーバ４は、いわゆるクラウド上の環境であってもよい。分散環境２は、利用者サーバ４から所定の形式で記述された取引データを集信（受信）すると、例えば他の形式に変換して予め定められた宛先に配信（送信）する。集配信されるデータのフォーマットや通信に用いられるプロトコルは、予め定められているものとする。本実施形態では、複数の分散環境２において分散して変換処理を行うと共に、複数の分散環境２において集信した取引データや、変換処理後のデータ、本システムが保持するマスタデータ等を同期する。
【００２０】
なお、図１においては１つの分散環境２を模式的に１つのサーバ装置で表しているが、分散環境２は、物理的な１つの装置内に設けられる仮想的な環境であってもよいし、物理的に複数の装置によって構成される１つの環境であってもよい。また、後述する通り、分散環境２が有するＲＤＢ（Relational Database）やＫＶＳ（Key-Value Store）、外部マスタファイルによるデータ記憶のような一部の構成のみが複数設けられるようにしてもよい。
【００２１】
また、集信は、通信のリクエストを送信者である利用者サーバ４から開始する着呼集信であってもよいし、通信のリクエストを受信者である分散環境２から開始する発呼集信であってもよい。配信も、通信のリクエストを送信者である分散環境２から開始する発呼配信であってもよいし、通信のリクエストを受信者である利用者サーバ４から開始する着呼配信であってもよい。
【００２２】
また、分散環境２間の通信又は分散環境２と他の装置との間の通信で利用する通信プロトコルは、ＪＸ手順、ｅｂＭＳ、ＡＳ２、全銀ＴＣＰ／ＩＰ、全銀ＢＳＣ、ＪＣＡ手順、ＦＴＰ、ＨＵＬＦＴ（登録商標）、ＳＭＴＰ、ＨＴＴＰ（Ｓ）、ＦＡＸ、その他の標準化された任意のプロトコルを採用することができる。
【００２３】
集配信されるデータのフォーマットも、ＣＩＩ、ＥＤＩＦＡＣＴ、流通ＢＭＳ（登録商標）、ＸＭＬ、ＣＳＶ、ＴＳＶ、その他固定長又は可変長の利用者に固有のフォーマット等、任意のフォーマットを採用することができる。
【００２４】
また、分散環境２において行われる変換処理は、例えば取引データのデータ構造の変換のほか、文字コードの変換や、複数のファイルへの振分け、複数のファイルの統合等を含む。
【００２５】
＜機能構成＞
図２は、分散環境２の一例を示す機能ブロック図である。分散環境２は、いわゆるサーバ等のコンピュータであり、集配信処理部２０１と、変換処理部２０２と、トランザクション制御部２０３と、ＫＶＳ２０４と、ＤＢ（Database）仲介部２０５と、マスタＤＢ２
０６と、外部マスタファイルＤＢ２０７と、データ記憶部２０８と、同期制御部２０９と、起動制御部２１０と、メッセージキュー（ＭＱ：Message Queue）２１１とを備える。
【００２６】
集配信処理部２０１は、ネットワーク３を介して他の分散環境２や利用者サーバ４等との間でデータの集配信を行う。なお、集配信されるデータごとに予め着呼により通信が開始されるか発呼により通信が開始されるか設定されており、設定に基づいて所定のデータを要求するための通信のリクエストを送信したり、所定の領域にデータを格納したりする。
【００２７】
変換処理部２０２は、例えば取引データのデータ構造の変換や、文字コードの変換、複数のファイルへの振分け、複数のファイルの統合等の変換処理を行う。変換処理は、取引を行う利用者間において定められた形式に従って行われる。変換処理部２０２は、本発明に係る「処理部」に相当する。
【００２８】
トランザクション制御部２０３は、各分散環境２においてデータを整合させ且つ複数の分散環境２間においてデータを同期させるために、更新するデータにロックをかける排他制御を行う。排他制御は、複数の分散環境２間において同期されるＫＶＳ２０４を利用し、例えば所定のキーに対してロックをかけることで行うことができる。また、本実施形態では、いずれかの分散環境２において排他制御を開始できなかった場合、データを同期する処理を行わない。このような排他制御は、複数の分散環境２において同期させるべき所定のデータを更新する際に行われ、所定のデータについてトランザクション処理において原子性を保証することができる。
【００２９】
ＫＶＳ２０４は、記憶するデータであるバリューと、当該データを一意に識別するための識別情報であるキーとを対応付けて記憶するためのデータ記憶部である。図３は、ＫＶＳ２０４に格納されるデータの一例を示す図である。図３の例では、キー（ＫＥＹ）とバリュー（ＶＡＬＵＥ）とを対応付けた組合せが複数記憶されている。例えば、ＫＶＳ２０４には、所定のファイルやマスタデータのレコードを示すキーに対し、最終更新日時のタイムスタンプを示すバリューを記憶させておき、当該タイムスタンプの更新処理に対してロックをかけることによって、所定のファイルやマスタデータ等の更新に対し排他制御を行うようにしてもよい。ＫＶＳ２０４は、分散環境２が備える主記憶装置（一次記憶装置、メインメモリ）上に格納されるインメモリデータベースであってもよい。インメモリデータベースを採用することにより、遠隔地にある拠点１間で排他制御を行う場合であっても応答時間の増大を抑えることができる。また、ＫＶＳ２０４は、変換処理等においてデータをキャッシュするために利用してもよい。
【００３０】
ＤＢ仲介部２０５は、分散環境２が行う処理において用いられる基本的な情報であるマスタデータを管理する。マスタデータとして、例えば集配信するデータの通信相手に関する情報や、分散環境２が行う変換処理において中間的に出力されるファイルの格納場所や命名規則に関する情報等が記憶されるものとする。本実施形態では、マスタデータは、ＲＤＢによって実現されるマスタＤＢ２０６に記憶されると共に、外部データファイルに書き出され外部マスタファイルＤＢ２０７にバックアップされるものとする。
【００３１】
マスタＤＢ２０６は、データベース管理システム（ＲＤＢＭＳ：Relational Database Management System）を含み、ＲＤＢにデータを記憶する。なお、ＲＤＢに記憶されるデ
ータは、複数のフィールドを含むレコードを記憶する一般的な表形式のデータである。
【００３２】
また、外部マスタファイルＤＢ２０７は、例えばフラットファイル（テキストファイル）やバイナリファイル等、ＤＢＭＳ（Database Management System）を介することなく読み取りが可能なファイルである。例えば、外部マスタファイルＤＢ２０７は、列やフィー
ルドをカンマ等のデリミタで区切ったり、フィールド長を固定にしたりすることによりフィールドの境界を定義した外部マスタファイルによって、ＲＤＢに格納される表形式のマスタデータを保持する。ＤＢ仲介部２０５は、ＲＤＢに何らかの障害が発生した場合には、外部マスタファイルＤＢ２０７を参照することで可用性を向上させることができる。
【００３３】
データ記憶部２０８は、例えば分散環境２やＮＡＳ（Network Attached Storage）上に設けられる記憶領域である。データ記憶部２０８は、分散環境２に対し入出力される取引データや、分散環境２における処理で中間的に生成されるデータ、処理の結果を示す実績情報等を、例えばフラットファイルやバイナリファイルなどのＤＢＭＳを介することなく読み取りが可能な形式で記憶する。
【００３４】
同期制御部２０９は、トランザクション制御部２０３による排他制御中に、マスタＤＢ２０６やデータ記憶部２０８等に記憶されているデータを他の分散環境２との間で送受信し、同期する。また、例えば同期制御部２０９は、一部の分散環境２に障害が発生した場合に、残りの分散環境２によって処理を継続させるものとする。
【００３５】
起動制御部２１０は、予め定められた逐次実行される一連の処理の起動を制御する。すなわち、起動制御部２１０は、前段の処理の完了を検知し、後段の処理を起動させる。本実施形態では、ＭＱ２１１に対しキューを登録することにより、所定の処理の完了を通知したり所定の処理の起動を指示したりする。また、起動制御部２１０は、日次、月次のようにスケジュールされた所定のタイミングで所定の処理を起動させるようにしてもよい。
【００３６】
ＭＱ２１１は、本実施形態に係るプログラムの実行ファイルをメモリ上に読み出すことにより形成されるプロセス間やプロセス内のスレッド間において連係動作させるためのキューを格納する領域である。ＭＱ２１１は、並列に処理できる複数の所定の処理に対応づけて複数設けられるものとする。このようにすれば、ＦＩＦＯ（First In, First Out）
方式のキューに登録されるデータを入れ替えることなく、並列に実行できる処理を速やかに起動させることができる。
【００３７】
以上のような分散環境２は、少なくとも複数の拠点１にそれぞれ設けられる。特に拠点１を遠隔地に設けることで、例えば一方の拠点１に災害が発生した場合であっても、他方の拠点１において処理を継続することができる。また、１つの拠点において分散環境２を複数設けるようにしてもよいし、１つの分散環境２においてＫＶＳ２０４、マスタＤＢ２０６、外部マスタファイルＤＢ２０７、データ記憶部２０８を複数設けるようにしてもよい。このように冗長化された環境において、後述するとおりいずれかの環境に対する変更を他の環境にも同期して反映させるものとする。なお、マスタＤＢ２０６は、１つのマスタ環境とその他のスレーブ環境とを定義し、マスタデータの更新はマスタ環境に対して行うとともにマスタ環境への変更を参照用のスレーブ環境に反映させるようにしてもよい。また、マスタ環境に障害が発生した場合は、当該マスタ環境をシステムから切り離すとともに、所定の規則に従い１つのスレーブ環境を新たなマスタ環境として更新可能にする。なお、拠点１又は分散環境２の死活監視や一部の分散環境２の切り離しは、既存の技術を利用して実現することができる。
【００３８】
＜装置構成＞
図４は、コンピュータの一例を示す装置構成図である。分散環境２や利用者サーバ４は、例えば図４に示すようなコンピュータである。図４に示すコンピュータ１０００は、プロセッサ１００１、主記憶装置（一次記憶装置、メインメモリ）１００２、補助記憶装置（外部記憶装置）１００３、通信ＩＦ（Interface）１００４、入出力ＩＦ（Interface）１００５、ドライブ装置１００６を備え、これらの構成要素が通信バス１００７を介して接続されている。
【００３９】
プロセッサ１００１は、ＣＰＵ（Central Processing Unit）等の処理装置である。ま
た、プロセッサ１００１は、本実施形態に係るプログラムを実行することにより図２に示した各処理部として機能する。
【００４０】
主記憶装置１００２は、プロセッサ１００１が読み出したプログラムやデータをキャッシュしたり、プロセッサの作業領域を確保したりする。主記憶装置１００２は、具体的には、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等である。また、主記憶装置１００２に、ＫＶＳ２０４、ＭＱ２１１等の領域が確保される。
【００４１】
補助記憶装置１００３は、プロセッサ１００１により実行されるプログラムや、処理対象となる取引データ、分散環境２において中間的に生成されるデータ等を記憶する。補助記憶装置１００３は、具体的には、ＨＤＤ（Hard-disk Drive）やＳＳＤ（Solid State Drive）、ｅＭＭＣ（embedded Multi-Media Card）、フラッシュメモリ等である。また、
補助記憶装置１００３に、マスタＤＢ２０６、外部マスタファイルＤＢ２０７、データ記憶部２０８等の領域が確保される。
【００４２】
通信ＩＦ１００４は、他のコンピュータとの間でデータを送受信する。分散環境２は、通信ＩＦ１００４を介してネットワーク３に接続される。通信ＩＦ１００４は、具体的には、ネットワークカードや無線モジュール等である。
【００４３】
入出力ＩＦ１００５は、入出力装置と接続され、ユーザから入力を受け付けたり、ユーザへ情報を出力したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。
【００４４】
ドライブ装置１００６は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。
【００４５】
なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素（例えば、ドライブ装置１００６）を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置１００６で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置１００３、通信ＩＦ１００４などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。
【００４６】
なお、複数のコンピュータ１０００によって１つの分散環境２が構成されるようにしてもよく、１つのコンピュータに複数の仮想的な分散環境２が形成されるようにしてもよい。
【００４７】
＜処理＞
図５は、本実施形態に係る処理の一例を示す処理フロー図である。図５に示すように、分散環境２は、ある利用者サーバ４から取引データを集信する集信処理（図５：Ｓ１）、集信した取引データに応じて所定の変換を行う変換処理（Ｓ２）、変換後の取引データを他の利用者サーバ４へ配信する配信処理（Ｓ３）を行う。
【００４８】
ここで、取引データは、例えば図示していないロードバランサによって複数の分散環境２のいずれかに振り分けられる。そして、複数の分散環境２において保持するデータを同期しつつ変換処理が行われ、変換後の取引データはいずれかの分散環境２から配信される。
【００４９】
＜集信処理＞
図６は、集信処理の一例を示す処理フロー図である。また、図７は、各処理部の動作の一例を示す簡易的なシーケンス図である。分散環境２の集配信処理部２０１は、ネットワーク３を介して利用者サーバ４から取引データを集信する（図６：Ｓ１１，図７：Ｓ１１−１）。集信は、着呼集信であっても発呼集信であってもよい。また、集配信処理部２０１は、ＤＢ仲介部２０５を介してマスタデータを参照し（図７：Ｓ１１−２、Ｓ１１−３）、集信した取引データの内容に基づいて配信元の利用者を特定するとともに、例えば取引データの格納場所を特定する。なお、仮にマスタＤＢ２０６に障害が発生していた場合、ＤＢ仲介部２０５は、外部マスタファイルＤＢ２０７を参照して処理を継続する。このとき、例えばマスタＤＢ２０６の各レコードについて最終更新日時を示すタイムスタンプを、予めＫＶＳ２０４に記憶させておき、外部マスタファイルＤＢ２０７に出力されたマスタデータが最新のものであるか確認するようにしてもよい。
【００５０】
また、集配信処理部２０１は、トランザクション制御部２０３を介してすべての分散環境２において排他制御を開始する（図６：Ｓ１２，図７：Ｓ１２）。トランザクション制御部２０３は、例えばＫＶＳ２０４においてロックをかける。ロックは、ＫＶＳの管理システムが提供する機能を利用してもよいし、処理のフラグによって管理するようにしてもよい。例えば、ＫＶＳ２０４には、配信元の利用者及び配信先の利用者並びに集配信される取引データの種別や、集信のプロセスを識別するためのキーと、最終更新日時のタイムスタンプを示すバリューとを格納しておき、本ステップにおいては該当するキーに対して更新を制限するようロックをかける。また、トランザクション制御部２０３は、ネットワーク３を介して他の分散環境２においても同様に排他制御を開始させる。
【００５１】
そして、トランザクション制御部２０３は、すべての分散環境２において排他制御を開始できたか判断する（図６：Ｓ１３，図７：Ｓ１３）。トランザクション制御部２０３は、自身の分散環境２において排他制御が開始でき、ネットワーク３を介して他のすべての分散環境２から排他制御を介してできた旨の通知を受けた場合、すべての分散環境２において排他制御が開始できたと判断する。いずれかの分散環境２において排他制御が開始できなかった場合（図６：Ｓ１３：ＮＯ）、例えば任意の時間をおいて再度排他制御を開始（図６：Ｓ１２）してもよいし、所定の通知先にエラーの発生を通知して処理を終了させてもよい。
【００５２】
すべての分散環境２において排他制御が開始できた場合（図６：Ｓ１３：ＹＥＳ）、集配信処理部２０１は、集信した取引データをデータ記憶部２０８に格納する（図６：Ｓ１４，図７：Ｓ１４）。本ステップでは、例えば、所定の命名規則に従ってファイル名を付し、Ｓ１１において特定された格納場所に記憶させる。また、集配信処理部２０１は、集信の記録を示す実績情報をさらに出力してデータ記憶部２０８に格納するようにしてもよい。また、同期制御部２０９は、他の分散環境２に対し取引データを転送し、他の分散環境２におけるデータ記憶部２０８にも同期して取引データを記憶させる。
【００５３】
また、すべての分散環境２において取引データが格納された場合、集配信処理部２０１は、トランザクション制御部２０３を介してすべての分散環境２において排他制御を終了させる（図６：Ｓ１５，図７：Ｓ１５）。トランザクション制御部２０３は、例えばＫＶＳ２０４においてロックを解除する。
【００５４】
また、集配信処理部２０１は、ＭＱ２１１に所定のキューを登録する（図６：Ｓ１６，図７：Ｓ１６）。本実施形態では、キューの登録により、後続の処理の起動を促す。また、ＭＱ２１１は、並列に処理できる複数の所定の処理に対応づけて複数設けられる。本ステップでは、例えば集信した取引データの種別に応じてキューを登録すべきＭＱ２１１を特定し、特定されたＭＱ２１１にキューを登録するものとする。
【００５５】
以上で、図６及び図７の集信処理を終了する。その後、起動制御部２１０は、ＭＱ２１１に登録されたキューに応じて、予め定義された後続の処理を開始させる。
【００５６】
＜変換処理＞
図８は、図５のＳ２に示した変換処理の一例を示す処理フロー図である。また、図９は、各処理部の動作の一例を示す簡易的なシーケンス図である。分散環境２の変換処理部２０２は、ＭＱ２１１からキューを取得し（図８：Ｓ２１，図９：Ｓ２１−１）、キューに対応する変換処理を開始する。また、上述の通り、ＭＱ２１１は、並列に処理できる複数の所定の処理に対応づけて複数設けられる。そして、変換処理部２０２は、例えば並列に動作する複数のプロセスによって、逐次処理を開始する。変換処理は、取引データのデータ構造の変換や、文字コードの変換、複数のファイルへの振分け、複数のファイルの統合等であり、配信元の利用者及び配信先の利用者並びに集配信される取引データの種別に対応付けて予め定義されているものとする。
【００５７】
また、本ステップにおいては適宜マスタデータを参照するようにしてもよい。例えば変換後の取引データに、取引先の情報を入れるような場合、最新の取引先の情報をマスタデータから抽出して追加することができる。マスタデータを参照する場合、集配信処理部２０１は、ＤＢ仲介部２０５を介してマスタＤＢ２０６を参照する（図９：Ｓ２１−２）。仮にマスタＤＢ２０６に障害が発生していた場合、ＤＢ仲介部２０５は、外部マスタファイルＤＢ２０７を参照して処理を継続する。例えばマスタＤＢ２０６の各レコードについて最終更新日時を示すタイムスタンプを予めＫＶＳ２０４に記憶させておき、ＤＢ仲介部２０５は、トランザクション制御部２０３を介してＫＶＳ２０４を参照し、マスタデータにおいて参照するレコードの最終更新日時を示すタイムスタンプを読み出す（Ｓ２１−３）。そして、ＤＢ仲介部２０５は、外部マスタファイルＤＢ２０７からマスタデータを読み出し（Ｓ２１−４）、参照するレコードが最新のものである場合にはマスタデータを変換処理部２０２に通知する（Ｓ２１−５）。
【００５８】
また、変換処理部２０２は、先の処理でデータ記憶部２０８に格納された実績情報を読み出すようにしてもよい（Ｓ２１−６）。実績情報に含まれるレコード数や集計値等の内部的な情報を、変換処理において利用することができる。
【００５９】
また、変換処理部２０２は、トランザクション制御部２０３を介してすべての分散環境２において排他制御を開始する（図８：Ｓ２２，図９：Ｓ２２）。排他制御の処理は、上述した集信処理の場合と同様である。トランザクション制御部２０３は、例えばＫＶＳ２０４においてロックをかける。例えば、ＫＶＳ２０４には、配信元の利用者及び配信先の利用者並びに集配信される取引データの種別や、変換のプロセスを識別するためのキーと、最終更新日時のタイムスタンプを示すバリューとを格納しておき、本ステップにおいては該当するキーに対して更新を制限するようロックをかける。また、トランザクション制御部２０３は、ネットワーク３を介して他の分散環境２においても同様に排他制御を開始させる。
【００６０】
そして、トランザクション制御部２０３は、すべての分散環境２において排他制御を開始できたか判断する（図８：Ｓ２３，図９：Ｓ２３）。トランザクション制御部２０３は、自身の分散環境２において排他制御が開始でき、ネットワーク３を介して他のすべての分散環境２から排他制御を介してできた旨の通知を受けた場合、すべての分散環境２において排他制御が開始できたと判断する。いずれかの分散環境２において排他制御が開始できなかった場合（図８：Ｓ２３：ＮＯ）、例えば任意の時間をおいて再度排他制御を開始（図８：Ｓ２２）してもよいし、所定の通知先にエラーの発生を通知して処理を終了させてもよい。
【００６１】
すべての分散環境２において排他制御が開始できた場合（図８：Ｓ２３：ＹＥＳ）、変換処理部２０２は、処理対象の取引データに対して所定の変換処理を行い、変換結果の取引データをデータ記憶部２０８に格納する（図８：Ｓ２４，図９：Ｓ２４）。
また、変換処理部２０２は、処理結果を示す実績情報をさらに出力してデータ記憶部２０８に格納するようにしてもよい。例えば、実績情報として、レコード数や集計値等の処理結果を示す情報を内部的に記憶させておき、後の処理において参照するようにしてもよい。また、同期制御部２０９は、他の分散環境２に対し取引データを転送し、他の分散環境２におけるデータ記憶部２０８にも同期して取引データを記憶させる。
【００６２】
また、すべての分散環境２において取引データが格納された場合、変換処理部２０２は、トランザクション制御部２０３を介してすべての分散環境２において排他制御を終了させる（図８：Ｓ２５，図８：Ｓ２５）。トランザクション制御部２０３は、例えばＫＶＳ２０４においてロックを解除する。
【００６３】
また、変換処理部２０２は、ＭＱ２１１に所定のキューを登録する（図８：Ｓ２６，図９：Ｓ２６）。変換処理においても、キューの登録により、後続の処理の起動を促す。本ステップでは、例えば実行した変換処理に応じてキューを登録すべきＭＱ２１１を特定し、特定されたＭＱ２１１にキューを登録するものとする。
【００６４】
以上で、図８及び図９の変換処理を終了する。その後、起動制御部２１０は、ＭＱ２１１に登録されたキューに応じて、予め定義された後続の処理を開始させる。図５のＳ２においては、複数の変換処理を行うようにしてもよい。すなわち、複数の変換処理について予め定義された順序に基づき、先行する変換処理において出力されるデータを対象として、後続の変換処理を行うようにしてもよい。一連の処理は、ＭＱ２１１を受け渡しすることにより、連携して動作させることができる。
【００６５】
＜配信処理＞
また、図５のＳ３に示す配信処理では、集配信処理部２０１はネットワーク３を介して配信先の利用者サーバ４に変換後の取引データを配信する。配信も、着呼配信であっても発呼配信であってもよい。着呼配信の場合は、所定の場所に配信データ（変換後の取引データ）を格納し、利用者サーバ４にダウンロードさせる。また、発呼配信の場合は、集配信処理部２０１から所定の利用者サーバに通信のリクエストを送り、配信を開始する。
【００６６】
＜効果＞
本実施形態によれば、複数の分散環境において同期して排他制御を行い、データを更新するため、分散システムにおいてもトランザクション内の一連の処理の整合性を保ちつつ格納データを同期させることができる。特に、インメモリデータベースとして実現されるＫＶＳを利用することで、遠隔地に存在する複数の拠点１間において同期して排他制御を行う場合であっても、処理速度の低下を抑えることができる。
【００６７】
また、ＡＣＩＤ特性や検索性が求められるマスタデータについてはＲＤＢに記憶させると共に、フラットファイルなどの外部マスタファイルによるバックアップを出力し、ＲＤＢに障害が発生した場合にもシステムが停止しない構成を実現している。また、実施形態に係るシステムは、根幹部分の取引データを外部データファイルで保持することで、ＲＤＢへの依存を抑え、可用性を向上させている。処理対象のデータを外部データファイルで保持する構成は、例えば電子データ交換を支援するシステムに好適に用いることができるといえる。
【００６８】
＜その他＞
説明した実施形態は本発明の例示であり、本発明は、上記の実施形態には限定されない。実施形態で説明した事項は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り変更したり、組み合わせたりすることができる。例えば、図１では１つの拠点１に２つずつの分散環境２を備える構成を例示したが、拠点１の数や拠点１に設けられる分散環境２の数は、図１の例には限定されない。
【００６９】
また、本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体を提供するようにしてもよい。当該プログラムが記録された記録媒体は、コンピュータにプログラムを読み込ませて実行させることにより、上述の処理を実行させることができる。
【００７０】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって非一時的に蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやＲＯＭ等がある。
【符号の説明】
【００７１】
１    ：拠点
２    ：分散環境
２０１：集配信処理部
２０２：変換処理部
２０３：トランザクション制御部
２０５：ＤＢ仲介部
２０６：マスタＤＢ
２０７：外部マスタファイルＤＢ
２０８：データ記憶部
２０９：同期制御部
２１０：起動制御部
３    ：ネットワーク
４    ：利用者サーバ
【図１】
2019212109.tif 000003
【図２】
2019212109.tif 000004
【図３】
2019212109.tif 000005
【図４】
2019212109.tif 000006
【図５】
2019212109.tif 000007
【図６】
2019212109.tif 000008
【図７】
2019212109.tif 000009
【図８】
2019212109.tif 000010
【図９】
2019212109.tif 000011
【手続補正書】
【提出日】令和1年7月22日(2019.7.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成するデータ処理装置であって、
前記複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて前記排他制御を開始できたか判断するトランザクション制御部と、
前記排他制御を開始できた場合に、前記所定のデータに対し所定の処理を行う処理部と、
を備え、
前記トランザクション制御部は、前記複数の環境において同期されるデータベースに対しロックをかけることにより前記排他制御を開始し、
前記データベースは、ＫＶＳ（Key Value Store）方式で管理され、前記データ処理装
置のメインメモリ上に格納されるインメモリデータベースである
データ処理装置。
【請求項２】
前記トランザクション制御部は、前記処理部による一連の処理開始前に前記排他制御を開始し、当該一連の処理終了後に前記排他制御を終了させることにより、前記複数の環境において共有するデータを同期させる
請求項１に記載のデータ処理装置。
【請求項３】
前記所定の処理において使用されるマスタデータを管理するデータベース仲介部をさらに備え、
前記データベース仲介部は、前記マスタデータをＲＤＢ（Relational Database）に格
納すると共に、当該ＲＤＢの内容をＤＢＭＳ（Database Management System）を介することなく読み取りが可能な外部マスタファイルに書き出し、前記ＲＤＢに障害が発生した場合には前記外部マスタファイルを参照する
請求項１又は２に記載のデータ処理装置。
【請求項４】
並列に処理できる複数の前記所定の処理にそれぞれ対応する、逐次処理される前後の処理を連携させるためのキューを複数備え、
前記処理部は、前の処理が完了した場合に、後の処理に対応する前記キューにトランザ
クション情報を登録し、前記キューのいずれかに前記トランザクション情報が登録された場合は、前記トランザクション情報に基づいて対応する前記所定の処理を開始する
請求項１から３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記処理部は、前記一連の処理において受け渡されるデータを、ＤＢＭＳを介することなく読み取りが可能な外部データファイルに対して読み書きする
請求項２、又は請求項２を引用する請求項３若しくは４に記載のデータ処理装置。
【請求項６】
前記所定の処理は、ＥＤＩ（Electronic Data Interchange）のためのデータ形式を変
換する処理であり、
他のコンピュータとの間でデータを集配信する集配信処理部をさらに備え、
前記処理部は、集配信処理部が集信したデータに対し、前記データ形式を変換する処理を行う
請求項１から５のいずれか一項に記載のデータ処理装置。
【請求項７】
分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成するデータ処理装置が、
前記複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて前記排他制御を開始できたか判断するトランザクション制御ステップと、
前記排他制御を開始できた場合に、前記所定のデータに対し所定の処理を行う処理ステップと、
を実行するデータ処理方法であって、
前記トランザクション制御ステップにおいて、前記複数の環境において同期されるデータベースに対しロックをかけることにより前記排他制御を開始し、
前記データベースは、ＫＶＳ（Key Value Store）方式で管理され、前記データ処理装
置のメインメモリ上に格納されるインメモリデータベースである
データ処理方法。
【請求項８】
分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成するデータ処理装置に、
前記複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて前記排他制御を開始できたか判断するトランザクション制御ステップと、
前記排他制御を開始できた場合に、前記所定のデータに対し所定の処理を行う処理ステップと、
を実行させるプログラムであって、
前記トランザクション制御ステップにおいて、前記複数の環境において同期されるデータベースに対しロックをかけることにより前記排他制御を開始し、
前記データベースは、ＫＶＳ（Key Value Store）方式で管理され、前記データ処理装
置のメインメモリ上に格納されるインメモリデータベースである
プログラム。