Ich versuche, .net-Objekte über separate Prozesse zu "teilen". Ich habe einen Prozesstyp, bei dem es sich um einen Webdienst handelt, der eine Reihe von Domänenentitäten manipuliert. Ein anderer Prozesstyp ist ein Fensterdienst, der eine automatische Stapelverarbeitung für denselben Objektsatz durchführt.Wie teilen Sie Objekte über Prozesse in .Net?
Über die typische Lösung hinaus, die DB als gemeinsamen Raum zu haben, in dem beide Arten von Prozessen die Objekte lesen/schreiben, könnte eine bessere, verteiltere Architektur sein, damit diese verschiedenen Prozesse die gleichen Objekte sehen und bearbeiten können.
Ich habe überlegt, einen verteilten Cache als freigegebenen Speicher für Objekte zu verwenden, aber Objekte und ihre Beziehungen nicht vollständig unterstützt. Objektgraphen, die in einen verteilten Cache eingefügt werden, werden abgeflacht und Objekte werden in mehreren getrennten Kopien gespeichert.
Ist ein "Messaging-Bus" der richtige Weg, die Prozesse einander aktualisierte Kopien der Objekte senden zu lassen?
Oder gibt es andere Lösungen insgesamt zu berücksichtigen?
Ja, WCF mit Named Pipes ist der Weg, um damit zu gehen. – Noldorin
Ich weiß, dass ich WCF verwenden kann, um Objekte zwischen den Prozessen hin und her zu mischen, aber das ist nur die Installation. Meine Frage ist - was ist die Strategie zu verwenden? Besitzt ein Prozess alle Objekte oder sind sie zwischen Prozessen verteilt? Wenn ein Prozess ein Objekt verändert, wie werden die anderen Prozesse darauf aufmerksam? Ziehen sie das Update oder wird es gedrückt? Usw. – urig
Mit "Objekte" meinen einige Domain-Objekte? Wie Kunde, Produkte, usw.? Wenn ja, würde ich vorschlagen, DTO (Datenübertragungsobjekte) für die Übertragung ihrer Daten zu verwenden. Jeder Prozess wird seine eigenen Kopien von "Objekten" haben. Sie könnten die optimistische Sperrstrategie (mit einem speziellen Feld in jedem Objekt) verwenden, um das Concurreny-Problem zu lösen. – Shrike