Wie soll ich mich über die gewährleisten, dass eine „Nachricht“ einmal gesendet und gespeichert wird und nur einmal?

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

  •  11-07-2019
  •  | 
  •  

Frage

Ich arbeite ein EDI-System für zwei Unternehmen auf der Gestaltung: Unternehmen A und B. Das Unternehmen A ist bereits als kleines Manufacturing-Geschäft, und das Unternehmen B ist ein neues Unternehmen, um ein bestimmtes Produkt unter Beteiligung des Eigentümers gebildet der Firma A. Firma A das ausschließliche Recht, das Produkt für Unternehmen B.

zu erzeugen,

Ich bin verantwortlich für alles, was IT und Entwicklung mit diesen beiden Unternehmen. Ich brauche ein EDI-System zu entwerfen, für Aufträge und andere Informationen von Unternehmen B Unternehmen A und umgekehrt (für Bestätigungen und Status-Updates, etc.) in Verbindung steht.

Diese Art von Sachen

ist ziemlich neu für mich, so dass ich nur die Suche nach Tipps, wie Sie einen neuen Auftrag von Firma B an Firma A zu senden und zu garantieren, dass es dort ankommt, wird gespeichert und erhält nicht gesendet mehr als einmal.

Ich denke, ich werde wahrscheinlich dies mit Web-Services. Soll ich in WCF-Dienste oder Stick mit ASP.Net Web-Service?

Ich nehme an, ich werde eine eindeutige ID mit jedem Auftrag senden, damit System der Firma A nicht zweimal erkennen zu sparen, wenn es eine Verwechslung ist, aber wie kann ich wissen, für Sie sicher, dass das Unternehmen A die Informationen bekommen?

Jede andere Tipps oder Ratschläge ist mehr als willkommen.

War es hilfreich?

Lösung

Siehe Microsoft: ASMX Web Services sind eine „Legacy Technology“ zu erfahren, warum nicht mit ASMX Web Service bleiben.

Sie nicht die Aufträge bereits eine eindeutige Identifikation haben?

Auf jeden Fall möchte der Service bei Unternehmen A die um sicherzustellen, sicher aufgezeichnet (vielleicht in einer Datenbank), und erst dann wird die „Senden Sie eine Order“ Vorgang abgeschlossen.


In Firma A, würde ich eine Auftragsabwicklung Service erstellen. Bisher wäre es nur eine Methode benötigen: AcceptOrder. Dies würde alle Informationen akzeptiert erforderlich, einen Auftrag zu verarbeiten. Dieser Vorgang würde zuerst den Auftrag in eine Datenbank speichern, und sobald die Daten sicher gespeichert werden, würde eine Art Bestätigungscode zurück.

Ein Versuch, das gleiche zu senden, um wieder fehlschlagen würde, weil Sie einen eindeutigen Schlüssel über den einzigartigen Identifikator, um von Firma B halten werden.

Wir werden unsere Datenbank vertrauen, so dass, wenn wir die Daten wissen, begangen worden sind, es ist sicher zu reagieren „wir es haben!“

Andere Technologien könnten auch verwendet werden. Eine Transaktionswarteschlange zum Beispiel unter Verwendung von MSMQ. Es würde den gleichen Nutzen haben, dass, sobald sie sagt es die Daten hat, können Sie darauf vertrauen, dass sie die Daten hat.

Andere Tipps

Senden Sie eine eindeutige ID mit dem Web-Service-Aufruf und hat den Web-Service einen eindeutigen Bestätigungscode und Auftragsstatus zurückzukehren. Das sollte ziemlich viel Sie decken. Wenn Sie möchten, könnte eine Abfrage, um Status-Methode in den Web-Services hinzufügen, damit Sie sehen, ob ein Auftrag bereits gesendet wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top