“メッセージ”一度だけ送信されて保存されますか?

StackOverflow https://stackoverflow.com/questions/1224382

  •  11-07-2019
  •  | 
  •  

質問

A社とB社の2社のEDIシステムの設計に取り組んでいます。A社はすでに小さな製造業として存在し、B社は所有者の関与により特定の製品を中心に形成された新しい会社です。 A社はA社の製品を生産する独占的権利をA社に与えます。

私はこれらの会社の両方でITと開発のすべてを担当しています。企業Bから企業Aへ、またはその逆(確認やステータスの更新など)に注文やその他の情報を伝達するためのEDIシステムを設計する必要があります。

この種のものは私にとってかなり新しいので、会社Bから会社Aに新しい注文を送信し、そこに到着し、保管され、送信されないことを保証する方法に関するアドバイスを探しています複数回。

おそらくこれをWebサービスで行うと考えています。 WCFサービスを調べるか、ASP.Net Webサービスを使用する必要がありますか?

注文ごとに一意のIDを送信するため、会社Aのシステムは、混同が発生した場合に2回保存しないと認識しますが、会社Aが情報を取得したことを確認するにはどうすればよいですか?

その他のヒントやアドバイスは大歓迎です。

役に立ちましたか?

解決

Microsoft:ASMX Webサービスは“レガシーですテクノロジー” :ASMX Webサービスに固執しない理由を学ぶ。

注文には既に固有の識別情報がありませんか?

とにかく、会社Aのサービスは、注文が安全に記録されていることを確認し(おそらくデータベースに)、その後のみ「注文を送信」が操作が完了しました。


A社で、注文処理サービスを作成します。これまでのところ、必要なメソッドはAcceptOrderだけです。これにより、注文の処理に必要なすべての情報が受け入れられます。この操作は最初に注文をデータベースに保存し、データが安全に保存されると、何らかの確認コードを返します。

同じ注文を再度送信しようとすると失敗します。これは、B社の一意の注文識別子に対して一意のキーを保持するためです。

データベースを信頼するので、データがコミットされたことがわかったら、「私たちはそれを手に入れました!」

他の技術も使用できます。たとえば、MSMQを使用したトランザクションキュー。データがあると言ったら、データがあると信頼できるという同じ利点があります。

他のヒント

Webサービス呼び出しで一意のIDを送信し、Webサービスが一意の確認コードと注文ステータスを返すようにします。これでほぼカバーできます。必要に応じて、Webサービスにクエリ注文ステータスメソッドを追加して、注文が以前に送信されたかどうかを確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top