Frage

Nehmen wir an, ich habe eine große Middleware -Infrastruktur, die Anfragen zwischen mehreren Geschäftskomponenten (Kundenanwendungen, Netzwerk, Zahlungen usw.) vermittelt. Der Middleware -Stack ist für Orchestrierung, Routing, Transformation und andere Dinge verantwortlich (ähnlich dem Buch von Gregor Hohpe).

Meine Frage ist: Ist es ein gutes Design, etwas zu setzen? Geschäftslogik auf der Middleware?

Nehmen wir an, meine App A fordert einige Kundendaten von der Middleware an. Aber um diese Daten zu erhalten, muss ich liefern Kundennummer und einige Anderer Parameter. Das Abnehmen dieses Parameters sollte von der anforderenden App erfolgen oder ist die Middleware, die für die Erleichterung und Bereitstellung einer Schnittstelle verantwortlich ist, die empfängt Kunden -IDs und intern holen die Anderer Parameter?

Mir ist klar, dass dies keine einfache Frage ist (aufgrund der Definition der Geschäftslogik), aber ich habe mich gefragt, ob es sich um einen allgemeinen Ansatz oder einige Richtlinien handelt.

War es hilfreich?

Lösung

Dies ist das Muster "Composite Application"; Das Herz einer dienstleistungsorientierten Architektur. Das verkaufen die ESB -Anbieter: ein Weg zu setzen zusätzlich Geschäftslogik irgendwo, die eine zusammengesetzte Anwendung aus vorhandenen Anwendungen erstellt.

Dies ist nicht einfach, da Ihre zusammengesetzte Anwendung nicht nur Routing ist. Es ist eine geeignete neue zusammengesetzte Transaktion, die auf dem Routing überlagert ist.

Hinweis. Schauen Sie sich eine gute ESB an, bevor Sie zu viel weiter gehen. Dies gerät schnell außer Kontrolle und zusätzliche Unterstützung ist hilfreich. Auch wenn Sie nicht so etwas wie Sonne kaufen JCAPS oder Offene ESB, Sie werden froh sein, dass Sie gelernt haben, was es tut und wie sie komplexe zusammengesetzte Anwendungen organisieren.

Andere Tipps

Abgesehen von Routing, Transformation und Orchestrierung sollte die Leistung berücksichtigt werden, während Middleware mit funktionalen Anforderungen geladen wird. Middlware sollte einen Bruchteil der gesamten End-to-End-Transaktionszeit übernehmen. Dies kann nur durch Konzentration auf die Middleware -Kernfunktionen erreicht werden, anstatt zu versuchen, die Funktionen des Host -Systems zu ergänzen.

Orchestrierung, Routing und Transformation.

Sie tun dies aus technischen Gründen nicht zufällig oder nur zum Spaß, weil Sie dies haben, weil Sie eine geschäftliche Anforderung haben - Ergo ist eine Geschäftslogik involviert.

Das einzige, was Sie für ein vollständiges Geschäftssystem fehlen, ist die Berechnung und Berichterstattung (nehmen wir an, dass Sie bereits Sicherheit haben!).

Mit Ausnahme von Networking-, Betriebssystem- und Speicherproblemen mit niedrigem Niveau, das ein Computersystem umfasst, ist es vorhanden, weil das Unternehmen/die Regierung/die Endbenutzer dies wünscht, dass es vorhanden ist.

Die Wahl der „Geschäftslogik“ als Terminoligy war sehr schlecht und hat zu endlosen Verzerrungen von Design und Architektur geführt.

Was die meisten guten Designer/Architekten unter Geschäftslogik bedeuten, ist die Berechnung und Analyse.

Wenn Sie "%S/Business Logic/Berechnung/g" "sind die meisten architektonischen Edikte mehr Sinn.

Die Middleware -Anwendung sollte dies tun. System A sollte keine Ahnung haben, dass der andere Parameter existiert, und wird sicherlich keine Ahnung haben, wie er es bekommen kann.

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