(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、複数拠点に分散するシステムにおいて、保持するデータの同期をとりつつ並列に処理を行う場合、トランザクションの整合性を保ちつつ、一貫性をもったデータの同期が困難であるという問題があった。また、処理の完了後にトランザクションの不整合を検知して破棄するような処理では、遠隔地に拠点を設けるような場合には処理時間が増大する。
【0005】
本発明は、複数拠点においてデータを同期しつつ並列分散処理を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係るデータ処理装置は、分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成する。また、データ処理装置は、複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて排他制御を開始できたか判断するトランザクション制御部と、排他制御を開始できた場合に、所定のデータに対し所定の処理を行う処理部とを備え、トランザクション制御部は、複数の環境において同期されるデータベースに対しロックをかけることにより排他制御を開始する。
【0007】
このようにすれば、分散して設けられる複数の環境において同期して排他制御を行い、データを更新するため、分散システムにおいても格納データを同期させることができる。
【0008】
また、トランザクション制御部は、処理部による一連の処理終了前に排他制御を開始し、当該一連の処理終了後に排他制御を終了させるトランザクションを管理することにより、複数の環境において共有するデータを同期させるようにしてもよい。このようにすれば、システム内で整合させるべき一連のデータ更新をトランザクション内で処理すると共に、処理の結果を複数の環境において同期させることができる。
【0009】
また、所定の処理において使用されるマスタデータを管理するデータベース仲介部をさらに備え、データベース仲介部は、マスタデータをRDB(Relational Database)に格
納すると共に、RDBの内容をDBMS(Database Management System)を介することなく読み取りが可能な外部マスタファイルに出力し、RDBに障害が発生した場合には前記
の外部マスタファイルを参照するようにしてもよい。このようにすれば、RDBの障害時においてもシステムを稼働させることができ、可用性が向上する。
【0010】
また、前記外部マスタファイルはフラットファイルのようなテキスト形式のファイルであってもよいし、バイナリファイルであってもよい。データ処理装置が処理しやすい形式のファイルにすることで処理速度の低下を抑えることができる。
【0011】
また、データ処理装置は、並列に処理できる複数の所定の処理にそれぞれ対応する、逐次処理される前後の処理を連携させるためのキューを複数備え、処理部は、前の処理が完了した場合に、後の処理に対応するキューにトランザクション情報を登録し、キューのいずれかにトランザクション情報が登録された場合は、トランザクション情報に基づいて対応する所定の処理を開始するようにしてもよい。このようにすれば、並列に実行できる処理を速やかに起動させることができる。
【0012】
また、処理部は、一連の処理において受け渡されるデータを、フラットファイルなどの外部データファイルに対して読み書きするようにしてもよい。データベース管理システムへの依存を低減することにより、可用性を向上させることができる。
【0013】
また、所定の処理は、EDI(Electronic Data Interchange)のためのデータ形式を
変換する処理であり、他のコンピュータとの間でデータを集配信する集配信処理部をさらに備え、処理部は、集配信処理部が集信したデータに対し、データ形式を変換する処理を行うようにしてもよい。データベース管理システムへの依存を低減させたシステム構成は、例えばEDIサービスを提供するシステムに好適に用いることができる。
【0014】
また、データベースは、KVS(Key Value Store)方式で管理され、データ処理装置
のメインメモリ上に格納されるインメモリデータベースであってもよい。このようにすれば、さらに処理速度の低下を抑えることができる。
【0015】
なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして実現することができる。また、プログラムを保持する記録媒体を提供するようにしてもよい。
【発明の効果】
【0016】
本発明によれば、複数拠点においてデータを同期しつつ並列分散処理を行うための技術を提供することができる。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について、図面を用いて説明する。なお、本システムは、EDI(Electronic Data Interchange)サービスをクラウドのような複数拠点間をまたぐネ
ットワークで構成されたデータセンター上において提供するものとする。
【0019】
<システムの構成>
図1は、本実施形態に係るシステムの構成の一例を示す図である。本システムは、複数のデータセンターのような異なる拠点1(1A、1B、・・・)に設けられる複数の分散環境2(2A、2B、2C、2D、・・・)を備える。また、分散環境2は、互いにインターネットや専用線等のネットワーク3を介して接続されている。分散環境2は、EDIサービスを提供するデータ処理装置であり、サーバ等のコンピュータによって実現される。また、本システムは、EDIサービスを利用する利用者サーバ4(4A、4B、・・・)とネットワーク3を介して接続されている。利用者サーバ4は、取引等に関わる電子データ(以下、「取引データ」とも呼ぶ)を交換する企業等のサーバ装置である。なお、利用者サーバ4は、いわゆるクラウド上の環境であってもよい。分散環境2は、利用者サーバ4から所定の形式で記述された取引データを集信(受信)すると、例えば他の形式に変換して予め定められた宛先に配信(送信)する。集配信されるデータのフォーマットや通信に用いられるプロトコルは、予め定められているものとする。本実施形態では、複数の分散環境2において分散して変換処理を行うと共に、複数の分散環境2において集信した取引データや、変換処理後のデータ、本システムが保持するマスタデータ等を同期する。
【0020】
なお、
図1においては1つの分散環境2を模式的に1つのサーバ装置で表しているが、分散環境2は、物理的な1つの装置内に設けられる仮想的な環境であってもよいし、物理的に複数の装置によって構成される1つの環境であってもよい。また、後述する通り、分散環境2が有するRDB(Relational Database)やKVS(Key-Value Store)、外部マスタファイルによるデータ記憶のような一部の構成のみが複数設けられるようにしてもよい。
【0021】
また、集信は、通信のリクエストを送信者である利用者サーバ4から開始する着呼集信であってもよいし、通信のリクエストを受信者である分散環境2から開始する発呼集信であってもよい。配信も、通信のリクエストを送信者である分散環境2から開始する発呼配信であってもよいし、通信のリクエストを受信者である利用者サーバ4から開始する着呼配信であってもよい。
【0022】
また、分散環境2間の通信又は分散環境2と他の装置との間の通信で利用する通信プロトコルは、JX手順、ebMS、AS2、全銀TCP/IP、全銀BSC、JCA手順、FTP、HULFT(登録商標)、SMTP、HTTP(S)、FAX、その他の標準化された任意のプロトコルを採用することができる。
【0023】
集配信されるデータのフォーマットも、CII、EDIFACT、流通BMS(登録商標)、XML、CSV、TSV、その他固定長又は可変長の利用者に固有のフォーマット等、任意のフォーマットを採用することができる。
【0024】
また、分散環境2において行われる変換処理は、例えば取引データのデータ構造の変換のほか、文字コードの変換や、複数のファイルへの振分け、複数のファイルの統合等を含む。
【0025】
<機能構成>
図2は、分散環境2の一例を示す機能ブロック図である。分散環境2は、いわゆるサーバ等のコンピュータであり、集配信処理部201と、変換処理部202と、トランザクション制御部203と、KVS204と、DB(Database)仲介部205と、マスタDB2
06と、外部マスタファイルDB207と、データ記憶部208と、同期制御部209と、起動制御部210と、メッセージキュー(MQ:Message Queue)211とを備える。
【0026】
集配信処理部201は、ネットワーク3を介して他の分散環境2や利用者サーバ4等との間でデータの集配信を行う。なお、集配信されるデータごとに予め着呼により通信が開始されるか発呼により通信が開始されるか設定されており、設定に基づいて所定のデータを要求するための通信のリクエストを送信したり、所定の領域にデータを格納したりする。
【0027】
変換処理部202は、例えば取引データのデータ構造の変換や、文字コードの変換、複数のファイルへの振分け、複数のファイルの統合等の変換処理を行う。変換処理は、取引を行う利用者間において定められた形式に従って行われる。変換処理部202は、本発明に係る「処理部」に相当する。
【0028】
トランザクション制御部203は、各分散環境2においてデータを整合させ且つ複数の分散環境2間においてデータを同期させるために、更新するデータにロックをかける排他制御を行う。排他制御は、複数の分散環境2間において同期されるKVS204を利用し、例えば所定のキーに対してロックをかけることで行うことができる。また、本実施形態では、いずれかの分散環境2において排他制御を開始できなかった場合、データを同期する処理を行わない。このような排他制御は、複数の分散環境2において同期させるべき所定のデータを更新する際に行われ、所定のデータについてトランザクション処理において原子性を保証することができる。
【0029】
KVS204は、記憶するデータであるバリューと、当該データを一意に識別するための識別情報であるキーとを対応付けて記憶するためのデータ記憶部である。
図3は、KVS204に格納されるデータの一例を示す図である。
図3の例では、キー(KEY)とバリュー(VALUE)とを対応付けた組合せが複数記憶されている。例えば、KVS204には、所定のファイルやマスタデータのレコードを示すキーに対し、最終更新日時のタイムスタンプを示すバリューを記憶させておき、当該タイムスタンプの更新処理に対してロックをかけることによって、所定のファイルやマスタデータ等の更新に対し排他制御を行うようにしてもよい。KVS204は、分散環境2が備える主記憶装置(一次記憶装置、メインメモリ)上に格納されるインメモリデータベースであってもよい。インメモリデータベースを採用することにより、遠隔地にある拠点1間で排他制御を行う場合であっても応答時間の増大を抑えることができる。また、KVS204は、変換処理等においてデータをキャッシュするために利用してもよい。
【0030】
DB仲介部205は、分散環境2が行う処理において用いられる基本的な情報であるマスタデータを管理する。マスタデータとして、例えば集配信するデータの通信相手に関する情報や、分散環境2が行う変換処理において中間的に出力されるファイルの格納場所や命名規則に関する情報等が記憶されるものとする。本実施形態では、マスタデータは、RDBによって実現されるマスタDB206に記憶されると共に、外部データファイルに書き出され外部マスタファイルDB207にバックアップされるものとする。
【0031】
マスタDB206は、データベース管理システム(RDBMS:Relational Database Management System)を含み、RDBにデータを記憶する。なお、RDBに記憶されるデ
ータは、複数のフィールドを含むレコードを記憶する一般的な表形式のデータである。
【0032】
また、外部マスタファイルDB207は、例えばフラットファイル(テキストファイル)やバイナリファイル等、DBMS(Database Management System)を介することなく読み取りが可能なファイルである。例えば、外部マスタファイルDB207は、列やフィー
ルドをカンマ等のデリミタで区切ったり、フィールド長を固定にしたりすることによりフィールドの境界を定義した外部マスタファイルによって、RDBに格納される表形式のマスタデータを保持する。DB仲介部205は、RDBに何らかの障害が発生した場合には、外部マスタファイルDB207を参照することで可用性を向上させることができる。
【0033】
データ記憶部208は、例えば分散環境2やNAS(Network Attached Storage)上に設けられる記憶領域である。データ記憶部208は、分散環境2に対し入出力される取引データや、分散環境2における処理で中間的に生成されるデータ、処理の結果を示す実績情報等を、例えばフラットファイルやバイナリファイルなどのDBMSを介することなく読み取りが可能な形式で記憶する。
【0034】
同期制御部209は、トランザクション制御部203による排他制御中に、マスタDB206やデータ記憶部208等に記憶されているデータを他の分散環境2との間で送受信し、同期する。また、例えば同期制御部209は、一部の分散環境2に障害が発生した場合に、残りの分散環境2によって処理を継続させるものとする。
【0035】
起動制御部210は、予め定められた逐次実行される一連の処理の起動を制御する。すなわち、起動制御部210は、前段の処理の完了を検知し、後段の処理を起動させる。本実施形態では、MQ211に対しキューを登録することにより、所定の処理の完了を通知したり所定の処理の起動を指示したりする。また、起動制御部210は、日次、月次のようにスケジュールされた所定のタイミングで所定の処理を起動させるようにしてもよい。
【0036】
MQ211は、本実施形態に係るプログラムの実行ファイルをメモリ上に読み出すことにより形成されるプロセス間やプロセス内のスレッド間において連係動作させるためのキューを格納する領域である。MQ211は、並列に処理できる複数の所定の処理に対応づけて複数設けられるものとする。このようにすれば、FIFO(First In, First Out)
方式のキューに登録されるデータを入れ替えることなく、並列に実行できる処理を速やかに起動させることができる。
【0037】
以上のような分散環境2は、少なくとも複数の拠点1にそれぞれ設けられる。特に拠点1を遠隔地に設けることで、例えば一方の拠点1に災害が発生した場合であっても、他方の拠点1において処理を継続することができる。また、1つの拠点において分散環境2を複数設けるようにしてもよいし、1つの分散環境2においてKVS204、マスタDB206、外部マスタファイルDB207、データ記憶部208を複数設けるようにしてもよい。このように冗長化された環境において、後述するとおりいずれかの環境に対する変更を他の環境にも同期して反映させるものとする。なお、マスタDB206は、1つのマスタ環境とその他のスレーブ環境とを定義し、マスタデータの更新はマスタ環境に対して行うとともにマスタ環境への変更を参照用のスレーブ環境に反映させるようにしてもよい。また、マスタ環境に障害が発生した場合は、当該マスタ環境をシステムから切り離すとともに、所定の規則に従い1つのスレーブ環境を新たなマスタ環境として更新可能にする。なお、拠点1又は分散環境2の死活監視や一部の分散環境2の切り離しは、既存の技術を利用して実現することができる。
【0038】
<装置構成>
図4は、コンピュータの一例を示す装置構成図である。分散環境2や利用者サーバ4は、例えば
図4に示すようなコンピュータである。
図4に示すコンピュータ1000は、プロセッサ1001、主記憶装置(一次記憶装置、メインメモリ)1002、補助記憶装置(外部記憶装置)1003、通信IF(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006を備え、これらの構成要素が通信バス1007を介して接続されている。
【0039】
プロセッサ1001は、CPU(Central Processing Unit)等の処理装置である。ま
た、プロセッサ1001は、本実施形態に係るプログラムを実行することにより
図2に示した各処理部として機能する。
【0040】
主記憶装置1002は、プロセッサ1001が読み出したプログラムやデータをキャッシュしたり、プロセッサの作業領域を確保したりする。主記憶装置1002は、具体的には、RAM(Random Access Memory)やROM(Read Only Memory)等である。また、主記憶装置1002に、KVS204、MQ211等の領域が確保される。
【0041】
補助記憶装置1003は、プロセッサ1001により実行されるプログラムや、処理対象となる取引データ、分散環境2において中間的に生成されるデータ等を記憶する。補助記憶装置1003は、具体的には、HDD(Hard-disk Drive)やSSD(Solid State Drive)、eMMC(embedded Multi-Media Card)、フラッシュメモリ等である。また、
補助記憶装置1003に、マスタDB206、外部マスタファイルDB207、データ記憶部208等の領域が確保される。
【0042】
通信IF1004は、他のコンピュータとの間でデータを送受信する。分散環境2は、通信IF1004を介してネットワーク3に接続される。通信IF1004は、具体的には、ネットワークカードや無線モジュール等である。
【0043】
入出力IF1005は、入出力装置と接続され、ユーザから入力を受け付けたり、ユーザへ情報を出力したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。
【0044】
ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。
【0045】
なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、ドライブ装置1006)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。
【0046】
なお、複数のコンピュータ1000によって1つの分散環境2が構成されるようにしてもよく、1つのコンピュータに複数の仮想的な分散環境2が形成されるようにしてもよい。
【0047】
<処理>
図5は、本実施形態に係る処理の一例を示す処理フロー図である。
図5に示すように、分散環境2は、ある利用者サーバ4から取引データを集信する集信処理(
図5:S1)、集信した取引データに応じて所定の変換を行う変換処理(S2)、変換後の取引データを他の利用者サーバ4へ配信する配信処理(S3)を行う。
【0048】
ここで、取引データは、例えば図示していないロードバランサによって複数の分散環境2のいずれかに振り分けられる。そして、複数の分散環境2において保持するデータを同期しつつ変換処理が行われ、変換後の取引データはいずれかの分散環境2から配信される。
【0049】
<集信処理>
図6は、集信処理の一例を示す処理フロー図である。また、
図7は、各処理部の動作の一例を示す簡易的なシーケンス図である。分散環境2の集配信処理部201は、ネットワーク3を介して利用者サーバ4から取引データを集信する(
図6:S11,
図7:S11−1)。集信は、着呼集信であっても発呼集信であってもよい。また、集配信処理部201は、DB仲介部205を介してマスタデータを参照し(
図7:S11−2、S11−3)、集信した取引データの内容に基づいて配信元の利用者を特定するとともに、例えば取引データの格納場所を特定する。なお、仮にマスタDB206に障害が発生していた場合、DB仲介部205は、外部マスタファイルDB207を参照して処理を継続する。このとき、例えばマスタDB206の各レコードについて最終更新日時を示すタイムスタンプを、予めKVS204に記憶させておき、外部マスタファイルDB207に出力されたマスタデータが最新のものであるか確認するようにしてもよい。
【0050】
また、集配信処理部201は、トランザクション制御部203を介してすべての分散環境2において排他制御を開始する(
図6:S12,
図7:S12)。トランザクション制御部203は、例えばKVS204においてロックをかける。ロックは、KVSの管理システムが提供する機能を利用してもよいし、処理のフラグによって管理するようにしてもよい。例えば、KVS204には、配信元の利用者及び配信先の利用者並びに集配信される取引データの種別や、集信のプロセスを識別するためのキーと、最終更新日時のタイムスタンプを示すバリューとを格納しておき、本ステップにおいては該当するキーに対して更新を制限するようロックをかける。また、トランザクション制御部203は、ネットワーク3を介して他の分散環境2においても同様に排他制御を開始させる。
【0051】
そして、トランザクション制御部203は、すべての分散環境2において排他制御を開始できたか判断する(
図6:S13,
図7:S13)。トランザクション制御部203は、自身の分散環境2において排他制御が開始でき、ネットワーク3を介して他のすべての分散環境2から排他制御を介してできた旨の通知を受けた場合、すべての分散環境2において排他制御が開始できたと判断する。いずれかの分散環境2において排他制御が開始できなかった場合(
図6:S13:NO)、例えば任意の時間をおいて再度排他制御を開始(
図6:S12)してもよいし、所定の通知先にエラーの発生を通知して処理を終了させてもよい。
【0052】
すべての分散環境2において排他制御が開始できた場合(
図6:S13:YES)、集配信処理部201は、集信した取引データをデータ記憶部208に格納する(
図6:S14,
図7:S14)。本ステップでは、例えば、所定の命名規則に従ってファイル名を付し、S11において特定された格納場所に記憶させる。また、集配信処理部201は、集信の記録を示す実績情報をさらに出力してデータ記憶部208に格納するようにしてもよい。また、同期制御部209は、他の分散環境2に対し取引データを転送し、他の分散環境2におけるデータ記憶部208にも同期して取引データを記憶させる。
【0053】
また、すべての分散環境2において取引データが格納された場合、集配信処理部201は、トランザクション制御部203を介してすべての分散環境2において排他制御を終了させる(
図6:S15,
図7:S15)。トランザクション制御部203は、例えばKVS204においてロックを解除する。
【0054】
また、集配信処理部201は、MQ211に所定のキューを登録する(
図6:S16,
図7:S16)。本実施形態では、キューの登録により、後続の処理の起動を促す。また、MQ211は、並列に処理できる複数の所定の処理に対応づけて複数設けられる。本ステップでは、例えば集信した取引データの種別に応じてキューを登録すべきMQ211を特定し、特定されたMQ211にキューを登録するものとする。
【0055】
以上で、
図6及び
図7の集信処理を終了する。その後、起動制御部210は、MQ211に登録されたキューに応じて、予め定義された後続の処理を開始させる。
【0056】
<変換処理>
図8は、
図5のS2に示した変換処理の一例を示す処理フロー図である。また、
図9は、各処理部の動作の一例を示す簡易的なシーケンス図である。分散環境2の変換処理部202は、MQ211からキューを取得し(
図8:S21,
図9:S21−1)、キューに対応する変換処理を開始する。また、上述の通り、MQ211は、並列に処理できる複数の所定の処理に対応づけて複数設けられる。そして、変換処理部202は、例えば並列に動作する複数のプロセスによって、逐次処理を開始する。変換処理は、取引データのデータ構造の変換や、文字コードの変換、複数のファイルへの振分け、複数のファイルの統合等であり、配信元の利用者及び配信先の利用者並びに集配信される取引データの種別に対応付けて予め定義されているものとする。
【0057】
また、本ステップにおいては適宜マスタデータを参照するようにしてもよい。例えば変換後の取引データに、取引先の情報を入れるような場合、最新の取引先の情報をマスタデータから抽出して追加することができる。マスタデータを参照する場合、集配信処理部201は、DB仲介部205を介してマスタDB206を参照する(
図9:S21−2)。仮にマスタDB206に障害が発生していた場合、DB仲介部205は、外部マスタファイルDB207を参照して処理を継続する。例えばマスタDB206の各レコードについて最終更新日時を示すタイムスタンプを予めKVS204に記憶させておき、DB仲介部205は、トランザクション制御部203を介してKVS204を参照し、マスタデータにおいて参照するレコードの最終更新日時を示すタイムスタンプを読み出す(S21−3)。そして、DB仲介部205は、外部マスタファイルDB207からマスタデータを読み出し(S21−4)、参照するレコードが最新のものである場合にはマスタデータを変換処理部202に通知する(S21−5)。
【0058】
また、変換処理部202は、先の処理でデータ記憶部208に格納された実績情報を読み出すようにしてもよい(S21−6)。実績情報に含まれるレコード数や集計値等の内部的な情報を、変換処理において利用することができる。
【0059】
また、変換処理部202は、トランザクション制御部203を介してすべての分散環境2において排他制御を開始する(
図8:S22,
図9:S22)。排他制御の処理は、上述した集信処理の場合と同様である。トランザクション制御部203は、例えばKVS204においてロックをかける。例えば、KVS204には、配信元の利用者及び配信先の利用者並びに集配信される取引データの種別や、変換のプロセスを識別するためのキーと、最終更新日時のタイムスタンプを示すバリューとを格納しておき、本ステップにおいては該当するキーに対して更新を制限するようロックをかける。また、トランザクション制御部203は、ネットワーク3を介して他の分散環境2においても同様に排他制御を開始させる。
【0060】
そして、トランザクション制御部203は、すべての分散環境2において排他制御を開始できたか判断する(
図8:S23,
図9:S23)。トランザクション制御部203は、自身の分散環境2において排他制御が開始でき、ネットワーク3を介して他のすべての分散環境2から排他制御を介してできた旨の通知を受けた場合、すべての分散環境2において排他制御が開始できたと判断する。いずれかの分散環境2において排他制御が開始できなかった場合(
図8:S23:NO)、例えば任意の時間をおいて再度排他制御を開始(
図8:S22)してもよいし、所定の通知先にエラーの発生を通知して処理を終了させてもよい。
【0061】
すべての分散環境2において排他制御が開始できた場合(
図8:S23:YES)、変換処理部202は、処理対象の取引データに対して所定の変換処理を行い、変換結果の取引データをデータ記憶部208に格納する(
図8:S24,
図9:S24)。
また、変換処理部202は、処理結果を示す実績情報をさらに出力してデータ記憶部208に格納するようにしてもよい。例えば、実績情報として、レコード数や集計値等の処理結果を示す情報を内部的に記憶させておき、後の処理において参照するようにしてもよい。また、同期制御部209は、他の分散環境2に対し取引データを転送し、他の分散環境2におけるデータ記憶部208にも同期して取引データを記憶させる。
【0062】
また、すべての分散環境2において取引データが格納された場合、変換処理部202は、トランザクション制御部203を介してすべての分散環境2において排他制御を終了させる(
図8:S25,
図8:S25)。トランザクション制御部203は、例えばKVS204においてロックを解除する。
【0063】
また、変換処理部202は、MQ211に所定のキューを登録する(
図8:S26,
図9:S26)。変換処理においても、キューの登録により、後続の処理の起動を促す。本ステップでは、例えば実行した変換処理に応じてキューを登録すべきMQ211を特定し、特定されたMQ211にキューを登録するものとする。
【0064】
以上で、
図8及び
図9の変換処理を終了する。その後、起動制御部210は、MQ211に登録されたキューに応じて、予め定義された後続の処理を開始させる。
図5のS2においては、複数の変換処理を行うようにしてもよい。すなわち、複数の変換処理について予め定義された順序に基づき、先行する変換処理において出力されるデータを対象として、後続の変換処理を行うようにしてもよい。一連の処理は、MQ211を受け渡しすることにより、連携して動作させることができる。
【0065】
<配信処理>
また、
図5のS3に示す配信処理では、集配信処理部201はネットワーク3を介して配信先の利用者サーバ4に変換後の取引データを配信する。配信も、着呼配信であっても発呼配信であってもよい。着呼配信の場合は、所定の場所に配信データ(変換後の取引データ)を格納し、利用者サーバ4にダウンロードさせる。また、発呼配信の場合は、集配信処理部201から所定の利用者サーバに通信のリクエストを送り、配信を開始する。
【0066】
<効果>
本実施形態によれば、複数の分散環境において同期して排他制御を行い、データを更新するため、分散システムにおいてもトランザクション内の一連の処理の整合性を保ちつつ格納データを同期させることができる。特に、インメモリデータベースとして実現されるKVSを利用することで、遠隔地に存在する複数の拠点1間において同期して排他制御を行う場合であっても、処理速度の低下を抑えることができる。
【0067】
また、ACID特性や検索性が求められるマスタデータについてはRDBに記憶させると共に、フラットファイルなどの外部マスタファイルによるバックアップを出力し、RDBに障害が発生した場合にもシステムが停止しない構成を実現している。また、実施形態に係るシステムは、根幹部分の取引データを外部データファイルで保持することで、RDBへの依存を抑え、可用性を向上させている。処理対象のデータを外部データファイルで保持する構成は、例えば電子データ交換を支援するシステムに好適に用いることができるといえる。
【0068】
<その他>
説明した実施形態は本発明の例示であり、本発明は、上記の実施形態には限定されない。実施形態で説明した事項は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り変更したり、組み合わせたりすることができる。例えば、
図1では1つの拠点1に2つずつの分散環境2を備える構成を例示したが、拠点1の数や拠点1に設けられる分散環境2の数は、
図1の例には限定されない。
【0069】
また、本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体を提供するようにしてもよい。当該プログラムが記録された記録媒体は、コンピュータにプログラムを読み込ませて実行させることにより、上述の処理を実行させることができる。
【0070】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって非一時的に蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやROM等がある。
【解決手段】データ処理装置は、分散して設けられる複数の環境においてデータを同期しつつ並列分散処理するシステムを構成する。また、データ処理装置は、複数の環境において同期させて更新すべき所定のデータに対し排他制御を開始すると共に、自環境及び他の環境のすべてにおいて排他制御を開始できたか判断するトランザクション制御部と、排他制御を開始できた場合に、所定のデータに対し所定の処理を行う処理部とを備え、トランザクション制御部は、複数の環境において同期されるデータベースに対しロックをかけることにより排他制御を開始する。