FRAGE 19 Siehe Exhibit. Wenn Dienst A eine Nachricht von Dienstverbraucher A (1) erhält, wird die Nachricht von Komponente A verarbeitet. Diese Komponente ruft zunächst Komponente B (2) auf, die anhand von Werten aus der Nachricht die Datenbank A abfragt, um zusätzliche Daten zu erhalten. Komponente B gibt dann die zusätzlichen Daten an Komponente A zurück. Komponente A ruft dann Komponente C (3) auf, die mit der API eines Altsystems interagiert, um einen neuen Datenwert abzurufen. Komponente C gibt den Datenwert dann an Komponente A zurück. Anschließend sendet Komponente A einen Teil der gesammelten Daten an Komponente D (4), die die Daten in eine Textdatei schreibt, die in einem bestimmten Ordner abgelegt wird. Komponente D wartet dann, bis diese Datei über einen regelmäßig geplanten Batch-Import in ein anderes System importiert wird. Nach Abschluss des Imports gibt Komponente D einen Erfolgs- oder Misserfolgscode an Komponente A zurück. Komponente A sendet schließlich eine Antwort an Service Consumer A (5), die alle bis dahin gesammelten Daten enthält, und Service Consumer A schreibt alle Daten in Datenbank B (6). Die Komponenten A, B, C und D gehören zur Servicearchitektur von Service A. Die Datenbank A, das Legacy-System und die Dateiordner sind gemeinsame Ressourcen innerhalb des IT-Unternehmens. Dienst A ist ein Entitätsdienst mit einer Dienstarchitektur, die in den letzten Jahren gewachsen ist. Als Ergebnis eines Projekts zur Neugestaltung des gesamten Servicebestands werden Sie gebeten, die Servicearchitektur von Service A zu überarbeiten, um die von den Komponenten B, C und D bereitgestellte Logik in drei verschiedene Utility-Services aufzuteilen, ohne das Verhalten von Service A in Bezug auf Service Consumer A zu unterbrechen. Welche Schritte können unternommen werden, um diese Anforderungen zu erfüllen?
Das Legacy-Wrapper-Muster kann so angewandt werden, dass Komponente B in einen separaten Wrapper-Dienst aufgeteilt wird, der die gemeinsame Datenbank umschließt. Das Muster Asynchronous Queuing kann so angewendet werden, dass eine Messaging-Warteschlange zwischen Komponente A und Komponente C platziert wird, um die Kommunikation in den Zeiten zu ermöglichen, in denen das Legacy-System nicht verfügbar ist oder von anderen Teilen des IT-Unternehmens stark genutzt wird. Das Service Fagade-Muster kann so angewendet werden, dass eine Fagade-Komponente zwischen Komponente A und Komponente D eingefügt wird, so dass jede Verhaltensänderung kompensiert werden kann. Das Prinzip der Service-Autonomie kann auch auf Service A angewandt werden, um Leistungseinbußen auszugleichen, die sich aus der Aufteilung der Komponente in einen separaten Wrapper-Utility-Service ergeben könnten.
Das Legacy-Wrapper-Muster kann so angewendet werden, dass Komponente B in einen separaten Dienst aufgeteilt wird, der die gemeinsame Datenbank umhüllt. Das Legacy-Wrapper-Muster kann erneut angewandt werden, so dass Komponente C in einen separaten Dienst aufgeteilt wird, der als Wrapper für die API des Altsystems fungiert. Das Legacy-Wrapper-Muster kann erneut auf Komponente D angewendet werden, so dass diese in einen weiteren Dienst aufgeteilt wird, der einen standardisierten Zugriff auf den Dateiordner ermöglicht. Das Service Fagade-Muster kann so angewendet werden, dass drei Fagade-Komponenten hinzugefügt werden: eine zwischen Komponente A und jedem der neuen Wrapper-Dienstprogramme. Auf diese Weise können die Fagade-Komponenten jede Verhaltensänderung kompensieren, die sich aus der Trennung ergibt. Das Prinzip der Service Composability kann weiter auf Service A und die drei neuen Wrapper Utility Services angewendet werden, so dass alle vier Services für die Teilnahme an der neuen Service Composition optimiert sind. Dies wird dazu beitragen, etwaige Leistungseinbußen auszugleichen, die sich aus der Aufteilung der drei Komponenten in separate Dienste ergeben können.
Das Legacy-Wrapper-Muster kann so angewendet werden, dass Komponente B in einen separaten Dienst aufgeteilt wird, der die gemeinsame Datenbank umhüllt. Das Legacy-Wrapper-Muster kann erneut angewandt werden, so dass Komponente C in einen separaten Dienst aufgeteilt wird, der als Wrapper für die API des Altsystems fungiert. Komponente D kann ebenfalls in einen separaten Dienst aufgeteilt werden, und das Muster für ereignisgesteuerte Nachrichtenübermittlung kann angewendet werden, um eine Publisher-Subscriber-Beziehung zwischen diesem neuen Dienst und Komponente A herzustellen. Der Dienst A gibt dann eine abschließende Nachricht an den Dienstverbraucher A zurück. Das Prinzip der Dienstkomposition kann weiter auf den Dienst A und die drei neuen Wrapper-Utility-Dienste angewendet werden, so dass alle vier Dienste für die Teilnahme an der neuen Dienstkomposition optimiert sind. Dies wird dazu beitragen, etwaige Leistungsverluste auszugleichen, die sich aus der Aufteilung der drei Komponenten in separate Dienste ergeben könnten.
Das Legacy-Wrapper-Muster kann so angewandt werden, dass Komponente B in einen separaten Wrapper-Dienst aufgeteilt wird, der die gemeinsame Datenbank umschließt. Die Muster "State Repository" und "State Messaging" können angewandt werden, so dass ein Messaging-Repository zwischen Komponente A und Komponente C positioniert wird, wodurch eine metadatengesteuerte Kommunikation in den Zeiten ermöglicht wird, in denen das Legacy-System nicht verfügbar ist oder von anderen Teilen des IT-Unternehmens stark in Anspruch genommen wird. Das Service-Fagade-Muster kann so angewendet werden, dass eine Fagade-Komponente zwischen Komponente A und Komponente D eingefügt wird, so dass jede Änderung im Verhalten kompensiert werden kann. Das Prinzip der Zustandslosigkeit von Diensten kann auch auf Dienst A angewendet werden, um Leistungseinbußen auszugleichen, die durch die Aufteilung der Komponente in einen separaten Wrapper-Dienst entstehen können.
Eine Antwort hinterlassen