2016-10-12 16 views
0

私は2つのアプリケーションがあります。2つのシステム間でデータを同期する方法は?

  1. アンASP.NET MVCの電子商取引のウェブサイト
  2. VB6アプリは製品、倉庫、顧客、ベンダー、注文と請求を管理します。これは物理的な店で使用されます。

今、これらの2つは非常に強く結合しています。データベースを使用

操作:

  • ウェブサイト上で定期的に実行し、すべての製品の変更(主に価格と在庫)のためのVB6アプリのデータベースをチェックするタスクがあります。違いがあれば、ウェブサイトのデータベースはVB6アプリの情報で更新されます。
  • 注文ステータスと利用可能なギフトカードのバウチャーを同期させる同様のタスクもあります。 .NETからVB6オブジェクトを使用

操作:注文がウェブサイト上に置かれた場合

  • 、それはまたVB6アプリに保存されます。
  • ウェブサイトの管理者(名前、説明、親カテゴリなど)によって製品が更新されると、VB6アプリケーションでも更新されます。
  • お客様が個人情報を更新すると、これもVB6アプリに保存されます。
  • 顧客がウェブサイトに登録すると、ウェブサイトはVB6アプリに顧客にロイヤリティカードがあり、そのポイントを受け取ったかどうかを尋ねます。

最近開発した報酬ポイント機能でWeb APIを使用し始めました。注文がVB6アプリで請求されると、得意先は報酬ポイントを取得/喪失し、Web APIを介してWebサイトに送信されます。

同期され、現時点ではありませんする必要がある他の操作もあります。

  • 順序の変更(追加/製品、割引、輸送コスト、製品の数量変更、などを削除)
  • は、

質問:これらのアプリケーション間で、より疎結合の方法でデータを同期するにはどうすればよいでしょうか? REST ServicesとService Busのメリットとデメリットは何ですか?

答えて

1

あなたはWebAPIで良い道を進んでいるようです。永続性とドメインレイヤーを両方のアプリケーションから抽出し、WebAPIコールを一元管理することで、どちらかのアプリケーションを独立して変更でき、常にデータの観点から同期させることができます。

REST APIの上にサービスバスを追加すると、デカップリングが増え、多くの他のプロデューサ/コンシューマパターンが自身を介入できるようになります。あなたが解決しようとしている問題とはまったく別物です。データ永続性のためにWebAPIレイヤーを追加するだけで、あなたの生活ははるかに良くなります。

+0

アプリケーションの1つがしばらくダウンしてもデータを受信するために、私はサービスバスが必要だと思っていました。データが正しく送信されるように、両方のアプリケーションでキューを実装するのは嫌です。サービスバスは私のためにそれをするでしょう。私は正しい? –

+0

なぜ重要なのは、両方のアプリケーションがwebAPIを読み書きしていることです。 1つがダウンしている場合、新しいデータは書き込まれません。 –

+0

ウェブAPIはウェブサイトの一部であるため、何らかの理由でウェブサイトがダウンすると、VB6アプリはデータを送信できません。これでレスポンスがチェックされ、データのエクスポートに失敗した場合は成功するまで送信を再試行します。だからこそ私はキューイングシステムが良いと思っていたのです。 –

関連する問題