Wenn Sie lesen, was Udi Dahan über SOA zu sagen hat, erhalten Sie viele sehr gute Ideen .
Ein Service ist die technische Autorität für eine bestimmte Geschäftsfähigkeit. Alle Daten oder Regeln dürfen nur einem Dienst gehören.
Dies bedeutet, dass wir selbst dann, wenn Dienste die Ereignisse des anderen veröffentlichen und abonnieren, immer wissen, was die maßgebliche Quelle der Wahrheit für jedes Datenelement und jede Regel ist.
Wenn wir Services aus der Sicht der Geschäftsfunktionen betrachten, sehen wir, dass viele Benutzeroberflächen Informationen zu verschiedenen Funktionen enthalten - den Preis eines Produkts sowie die Frage, ob es auf Lager ist oder nicht. Damit wir die obige Definition von Diensten einhalten können, verstehen wir, dass solche Benutzeroberflächen tatsächlich ein Mashup sind - wobei jeder Dienst das Fragment der Benutzeroberfläche aufweist, das sich mit seinen bestimmten Daten befasst.
Insbesondere in Bezug auf die UI-Komposition ist der Artikel von Mauro Servienti über die UI-Komposition ein guter Ausgangspunkt. Siehe auch Udis Video, das hier verfügbar ist .
Sollten diese Dienste in der Lage sein, direkt miteinander zu sprechen? Wenn ja, würde das sie nicht zum Paar machen, was gegen das Konzept der Microservices verstößt?
Wenn zwei Dienste Nachrichten miteinander austauschen, erhalten Sie eine Kopplung. Die primäre Antwort lautet, dass sie an die API des anderen Dienstes gekoppelt sind - den Vertrag, den der Dienst verspricht, auch dann stabil zu bleiben, wenn sich seine Interna ändern.
Darüber hinaus können Techniken wie die Serviceerkennung die Abhängigkeit von einem bestimmten Dienstanbieter verringern, und Nachrichtenbroker können die Produzenten und Verbraucher entkoppeln (sie müssen die Nachrichten der anderen noch verstehen und wissen, wie sie mit der API des Nachrichtenbrokers interagieren können - es gibt keine Magie ).