Wir haben einen Datenzugriffsdienst in unserem SOA WCF-System. Dieser Dienst ist verantwortlich für das Ausführen von CRUD-Operationen (Erstellen, Aktualisieren, Löschen) in "systemweiten" Datenbanktabellen und ist auch die Quelle dieser Daten für Abfragen. Jeder andere Dienst im System, der auf die Tabellen unter der Kontrolle des DAS zugreifen möchte, muss zum DAS gehen, um es zu bekommen oder zu modifizieren. Wir verwenden Entity Framework und haben für diesen DAS unser eigenes POCO-Statusverfolgungssystem aufgebaut.WCF SOA: CRUD Data Access Service ... warum stören (oder ist unser Design falsch)?
Wir haben andere Tabellen in unserer Datenbank, die zu einzelnen Diensten gehören und Daten nur für ihren eigenen Gebrauch speichern, dh Zustandsinformationen, auf die sie zugreifen können, wenn sie abstürzen und Geschäftsinformationen wiederaufnehmen oder aufzeichnen. Wir haben eine Regel, dass auf eine Tabelle nicht von mehr als einem Dienst zugegriffen werden kann: Daten, die von mehreren Diensten benötigt werden, landen daher im DAS.
Die Wahrheit ist, ich habe nie wirklich verstanden, warum ein Datenzugriffsdienst eine gute Idee ist, im Gegensatz zum direkten Zugriff auf Tabellen. Es scheint langsamer zu sein, unser DAS ist nicht transaktional, da es kein POCO-Diagramm zur Datenbankaktualisierung zurücksenden kann (nur einzelne POCOS gleichzeitig) und wir haben auch Probleme, wo das DAS tatsächlich ein Client für einen anderen Dienst ist, der Daten benötigt daraus ... Kreisabhängigkeit.
Warum sich mit einem DAS beschäftigen? Warum ist ein DAS so wichtig, wenn es um SOA geht? Was fehlt mir hier? Einzelner Kontrollpunkt?
Ist es auch ein SOA-Designfehler, dass nicht alle Tabellen Teil eines DAS sind und dass einige Dienste ihre eigenen "privaten" Tabellen haben?
Jede Diskussion über diese Begrüßung.
Warum sollten Sie Ihren eigenen Dienst bereitstellen, anstatt einen WCF-Datenservice zu verwenden?Es gibt Ihnen einige der Funktionen, die Ihrer Meinung nach fehlen, und es ist * extrem * wenig Aufwand zu implementieren, wenn Sie bereits ein EF-Modell haben. –