web-dev-qa-db-ja.com

2つのシステム間のリアルタイムのデータ同期手法

COTS製品(Point of Salesシステム)からカスタム構築された.NETアプリケーション(在庫管理システム)へのリアルタイムデータ更新の設計を考え出す必要があります。

特に、POSシステムで発生する販売トランザクションは、在庫データベース(在庫管理システムに存在)を即座に(リアルタイムで)更新する必要があります。他のシステムがPOSシステムと通信できる唯一の方法は、Webサービスとして公開されているAPIを経由することです。

2つのシステムの間にサービスバス(またはそのような任意のEAIツール)を導入し、パブリッシュ/サブスクライブモデルを利用して、POSシステムで発生した販売の枯渇がサービスバスを介してIMシステムへのデータ更新をトリガーすることを検討しました。私の質問は:

  1. それは良い/実行可能な解決策ですか?
  2. 異なるシステム間のそのようなリアルタイムのデータ同期について他に提案はありますか?
4
Tanmoy Sengupta

まず、コメントが指摘しているように、ここではリアルタイムについて実際に話しているわけではありません。これはかなり厳密な定義であり、実際にはテーブルにない多くのものを意味します。 2つのシステムをほぼリアルタイムの方法で接続することについて話しています。

とにかく、はい、最善の策は、ここでのある種のメッセージキューソリューションです。 POSシステムは更新をキューにプッシュし、在庫システムはキューを読み取ります。裏側でどのように処理したいかに応じて、Pub/Subもここで機能します。

メッセージのキューイングが必要で、実際の依存関係ではなく、リアルタイムのソートが必要な理由は、何らかの理由で在庫管理がダウンした場合にトランザクションの実行を停止したくないためです。むしろ、物事(メッセージキュー)を記録し、復旧したら再生することができます。

本当の問題は、POSシステムが何らかの方法でデータをプッシュする能力を持っているか、またはトランザクションを取得してメッセージキューに詰め込むある種のミドルウェアポーリングソリューションに削減されているかということです。

5
Wyatt Barnett