3 Stimmen

WCF-Nachrichteninspektoren

Wir haben eine Legacy-Middleware-Anwendung und wir wollen WCF-Adapter für sie zu implementieren. lässt sagen, für die Zeit, die wir nur WCF-Dienst verbrauchen würde. die Middleware ist in der Lage, XML-Nachrichten zu verarbeiten. wir möchten die Nachricht xml von Middleware zu erhalten, leiten Sie es an WCF-Client. nach Erhalt der Antwort möchten wir die Middleware mit der Antwort xml antworten.

Im Folgenden sind einige unserer Anliegen aufgeführt, die wir gerne geprüft sehen würden.

  1. wir sollten in der Lage sein, rohes Xml anstelle eines objektbasierten WCF-Aufrufs zu senden
  2. nach dem Empfang der XML nach allen Schichten der WCF (dies ist wichtig, da die Validierungen der XML selbst bereits gemäß dem Vertrag durchgeführt werden sollten) werden wir es an die Middleware weiterleiten.
  3. unsere Middleware implementiert klassische Webservices, aber es gibt verschiedene Bedenken mit dem Datenvertrag Serializer. einer von denen ist Objektreferenzen. wie wir bereits sehen können, dass die Referenz des Objekts durch die Verwendung von id-Attribut in Xml-Element gehalten wird. wie könnten wir das catter. gibt es weitere Dinge, die wir für Datenvertrag Serializer berücksichtigen können.
  4. Die Middleware kümmert sich um die ursprüngliche Nachricht selbst. Wir möchten, dass andere nachrichtenbezogene Eigenschaften wie SOAP, WS-Security usw. vom WCF-Proxy selbst gehandhabt werden.
  5. Hat jemand eine Ahnung, wie Biztalk Adapter für WCF funktioniert

jede Rückmeldung wäre willkommen.

1voto

Tridus Punkte 4961

1) Das, wonach Sie suchen, wird als POX (Plain Old XML) bezeichnet. WCF unterstützt dies mit dem WebHttpBinding. Hier ist ein guter Ausgangspunkt.

Streng genommen handelt es sich nicht um "Roh-XML", da WCF entscheidet, was gesendet wird, aber was herauskommt, ist ein einfaches XML-Dokument und keine SOAP-Nachricht. Wenn Sie WCF nicht dazu bringen können, das zu senden, was Sie wollen, selbst mit etwas wie POX, dann könnte es sinnvoller sein, WCF für diese Komponente zu überspringen und einfach einen Socket zu Ihrer Middleware-Schicht zu öffnen und das XML direkt zu senden. In diesem Fall können Sie wirklich genau das senden, was die Legacy-Middleware-Anwendung erwartet. WCF könnte immer noch die Client-Verbindungen verarbeiten.

2) Wenn Sie einen WCF-Dienst haben, der dem Client gegenübersteht, wird WCF die Client-Nachricht analysieren und Ihnen eine Art Objekt in Ihrem Code geben (je nach Dienstvertrag). An diesem Punkt liegt es an Ihrem WCF-Dienstcode, entweder eine andere WCF-Verbindung zu verwenden, um die Middleware zu kontaktieren, oder, wie bereits erwähnt, einen Socket zu öffnen und die erforderliche Anfrage zu senden. Aber das Entfernen des WCF-"Zeugs" wird für Sie erledigt, bevor Ihre Dienstmethode gestartet wird.

4) Das sollte kein Problem sein. WCF und Ihr Code werden das behandeln, bevor sie etwas an die Middleware senden.

Ich hoffe, das hilft ein wenig :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X