2012-02-20 22 views
0

2つの別々のシステムがシームレスに会話する方法を探しています。前述のとおり、一方はOracle DB上の.NET Webアプリケーションであり、もう一方はMSSQL DB上の.NET Windowsアプリケーションです。このインタラクションはデスクトップアプリケーションとWebアプリケーションの間になければならないため、両方のシステム用のWebサービスを作成するという考え方を思いつく必要がありました。2つの別々のシステムを接続するアイデア。 1つはWindowsアプリケーションで、もう1つはWebアプリケーションです

  • サービスA、デスクトップアプリケーションで使用されるMSSQL DBからデータを取得/更新/追加するためのメソッドを公開します。

  • サービスBは、Webアプリケーションで使用されるOracle DBからのデータの追加/更新/取得のためのメソッドを公開します。

Webアプリケーションはサービスを消費します。A.デスクトップアプリケーションはサービスB.を消費します。これで、2つのシステムが同期しているのが良い方法です。たとえば、サービスAとWebアプリの間の通信に障害が発生した場合、両方のシステムでデータの整合性を保証するフェールセーフな方法は何でしょうか?

毎日実行されるスケジュールウィンドウサービスが提案されました。オンデマンドでやり遂げるのはどうですか?我々は少なくとも両側で始まる20〜25テーブルを更新する試合を語っている。

+0

データはどのくらいの頻度で変更されますか?両方のシステムで変化するのでしょうか、それともどちらか一方だけで変化しますか? DBトリガーは、比較的少量のトランザクションでは機能するかもしれませんが、あまりにも多くの同一のトリガーを発射した場合は、データベースをロックしてしまいます。第3の中間データベースに更新を送信し、これらのシステムの両方をそこから更新することができます。答えの多くは、すべてこれらのシステムの性質に依存します。 – RogerG

+0

これを閉じるには、あまりにも漠然としているか建設的でないかのように、私は投票にとても近づいています。これらのアプリケーション間の相互作用について詳しく説明してください。特に、Webアプリケーションとデスクトップアプリケーションの両方がユーザーによって駆動されます。同じユーザーが両方を使用しますか?どのような種類の同期が必要ですか? –

+0

両方のアプリはユーザーによって駆動されます。ウェブアプリケーションは、予定スケジューラ、医者、看護師などの1組のユーザによって駆動されるだろう。他のアプリケーションは課金ユーザと呼ばれる。典型的なシナリオは、プロシージャ/試験がスケジュールされ、実行され、完了し、最終的にWebアプリケーションの医師によってサインオフされるというものです。その時点以降のデータは、デスクトップアプリケーションからクレームを請求して提出するユーザーに請求するために、デスクトップアプリケーションに到達する必要があります。 Webアプリケーションのその時点以降に修正/チャネリングが行われるたびに、適切な請求のためにDesktopアプリに反映されるべきです。 –

答えて

0

最も強力な方法は、外部同期アプリケーションを呼び出すデータベースでトリガーを作成することです。

Database trigger that communicates with an external program

+0

DBトリガーが試され、テストされました。ウェブサービスが適切な同期を提供できない場合、バックアップ機構として予約されている。入力いただきありがとうございます。 –

関連する問題