Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RPC, synchron, asynchron richtig einordnen. #41

Merged
merged 1 commit into from
Sep 6, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions docs/03-integration/02-learning-goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,23 @@
. Die Teilnehmer können abhängig von den Qualitätszielen und dem Wissen des Teams eine geeignete Integration vorschlagen.
. Die Teilnehmer sollen eine Integrationsstrategie wählen, die auf das jeweilige Problem am besten passt. Das kann beispielsweise eine Frontend-Integration, eine Integration über RPC-Mechanismen, mit Message-orientierter Middleware, mit REST oder über die Replikation von Daten sein.
. Die Teilnehmer sollen die Konsequenzen und Einschränkungen verstehen, die sich aus der Integration von Systemen über verschiedenen Technologien und Integrationsmuster z. B. in Bezug auf Sicherheit, Antwortzeit oder Latenz ergeben.
. RPC bezeichnet Mechanismen, um Funktionalität in einem anderen Prozess über Rechnergrenzen hinweg synchron aufzurufen. Dadurch entsteht Kopplung in vielerlei Hinsicht (zeitlich, Datenformat, API). Diese Kopplung hat negative Auswirkungen auf Verfügbarkeit und Antwortzeiten des Systems. REST macht Vorgaben, die diese Kopplung reduzieren können (Hypermedia, standardisierte API). Die zeitliche Kopplung bleibt jedoch grundsätzlich bestehen.
. Bei der Integration mittels Messaging kommunizieren Systeme durch den asynchronen Austausch von Nachrichten. Die Systeme werden somit zeitlich entkoppelt. Technisch wird dies mittels Indirektion über eine Middleware erreicht. Nachrichten können optional persistiert, gefiltert, transformiert etc. werden. Es gibt verschiedene Messaging Patterns wie Request/Reply, Publish/Subscribe oder Broadcast.
. Die Teilnehmer sollten verstehen, dass Messaging Kopplung an das
Datenformat oder an eine API bedingt. REST macht Vorgaben, die diese
Kopplung reduzieren können (Hypermedia, standardisierte API).
. Die Teilnehmer sollten verstehen, dass synchrone Kommunikation, zum
Beispiel durch RPC, zeitliche Kopplung bedingt. Asynchrone
Kommunikation ermöglicht, diese Kopplung aufzuweichen und erlaubt
unter Umständen, dass ein System Fortschritt macht, ohne dass die
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
unter Umständen, dass ein System Fortschritt macht, ohne dass die
unter Umständen, dass ein System den Request oder die Berechnung weiter bearbeiten kann, ohne dass die

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Fortschritt" ist eigentlich ein technischer Terminus, aber OK. Follow-up-PR kommt.

Antworten auf alle Anfragen schon vorliegen. Entkopplung lässt sich
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Antworten auf alle Anfragen schon vorliegen. Entkopplung lässt sich
asynchron an Backend-Systeme geschickten Anfragen bereits von diesen beantwortet wurden. Entkopplung lässt sich

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.

außerdem durch selektive Kommunikation erreichen.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
außerdem durch selektive Kommunikation erreichen.
außerdem durch bewusste, selektive Kommunikation erreichen.

. Die Teilnehmer verstehen, dass bei der Verwendung von Messaging
gegenüber dem Aufruf lokaler Funktionen Verfügbarkeit und
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
gegenüber dem Aufruf lokaler Funktionen Verfügbarkeit und
und der Kommunikation mit anderen System im Vergleich zum Aufruf lokaler Funktionen, die Verfügbarkeit und die

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.

Antwortzeiten des Systems beeinträchtigt werden können.
. Die Teilnehmer wissen, dass es für Messaging Middleware gibt, die
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
. Die Teilnehmer wissen, dass es für Messaging Middleware gibt, die
. Die Teilnehmer wissen, dass es für Messaging sog. Message-Oriented Middleware gibt, die

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.

bestimmte Aufgaben erleichtert. Nachrichten können optional
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bestimmte Aufgaben erleichtert. Nachrichten können optional
bestimmte Garantien gibt und dem Entwickler viele Aufgaben erleichtert. Nachrichten können optional

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, bis auf die geschlechtergerechte Sprache.

persistiert, gefiltert, transformiert etc. werden. Es gibt
verschiedene Messaging-Patterns wie Request/Reply, Publish/Subscribe
oder Broadcast.
. Eine Integration über Daten ermöglicht hohe Autonomie, die allerdings über die Notwendigkeit zur redundanten Datenhaltung und die damit notwendige Synchronisation erkauft wird. Es darf nicht angenommen werden, dass andere Systeme dieselben Schemata nutzen, weil das eine unabhängige Weiterentwicklung der Schemata verhindert. Daher muss für die Integration eine angemessene Transformation vorgesehen werden.
. Die Teilnehmer sollen verschiedene Ansätze für die Front-End-Integration sowie deren Vor- und Nachteile und Anwendbarkeit abhängig von Kontextkriterien benennen können.
. Die Teilnehmer sollen Techniken für die Integration von Services: REST, RPC, Message-orientierte Middleware kennen.
Expand Down