it-swarm.com.de

Welchen Weg haben Downstream- und Upstream-Services?

Bei einem System, das aus mehreren Diensten besteht, die sich gegenseitig anrufen (z. B. Front-End -> Back-End -> Speicher), habe ich häufig Leute gehört, die Terminologie wie "Downstream" - oder "Upstream" -Dienste verwenden. Mir ist nicht klar, in welche Richtung diese bedeuten. Daten fließen in beide Richtungen. Anfragen fließen von einem benutzerorientierteren zu einem Backend-Service, aber die Antworten fließen in die entgegengesetzte Richtung, so dass es mir so oder so scheint, als könnte man argumentieren

55
user69715

Die Downstream-Dienste sind diejenigen, die den Upstream-Dienst verbrauchen. Insbesondere sind sie abhängig vom Upstream-Service. Das Front-End befindet sich also stromabwärts zum Back-End, da dies vom Back-End abhängt. Das Backend kann ohne das Frontend sinnvoll existieren, aber das Frontend macht ohne das Backend keinen Sinn.

Die Abhängigkeit muss nicht so stark sein, wie ich es im vorherigen Absatz festgestellt habe. Im Allgemeinen müssen vorgelagerte Dienste die Existenz von nachgelagerten Diensten nicht kennen oder sich darum kümmern. Nachgelagerte Dienste kümmern sich um die Existenz von vorgelagerten Diensten, auch wenn sie diese nur optional nutzen.

67

Leider gibt es Meinungsverschiedenheiten über die Bedeutung von Upstream/Downstream. Wenn ich über Systemarchitektur spreche, definiere ich sie wie folgt:

Bei einem betroffenen System sind Systeme, die Nachrichten/Datenaustausch mit dem betreffenden System initiieren, vorgelagerte Systeme, und Systeme, von denen das betreffende System abhängt (d. H. Diejenigen, mit denen mein System den Datenaustausch initiiert), sind nachgeschaltete Systeme.

Dieser Link von ibm, der die Interaktionen mit einem ihrer Produkte beschreibt, bestätigt diese Ansicht: Integration in vor- und nachgelagerte Systemehttps://www.ibm.com/support/knowledgecenter/en/SSWSR9_11. 3.0/com.ibm.pim.dev.doc/integration/pim_con_dev_creatingjobsforintegrationcontainer.html

Ein Upstream-System ist ein System, das Daten an das Collaboration Server-System sendet. Ein nachgeschaltetes System ist ein System, das Daten vom Collaboration Server-System empfängt.

In Anbetracht der Terminologie "stromaufwärts" und "stromabwärts" kann es hilfreich sein, eine Analogie zu einem Fluss zu ziehen. Wenn Sie eine Nachricht (Daten) in den Fluss legen, fließt sie vom Upstream (Initiator) zum Downstream (Empfänger).

Anekdotisch habe ich festgestellt, dass Architekten und Middleware-Entwickler diese Definition verwenden und Webentwickler das Gegenteil (möglicherweise aufgrund von Uploads).

Bei Ereigniszeitleisten ist ein Ereignis vorgelagert, wenn es vor einem Punkt auf der Zeitachse auftritt (d. H. Ein anderes Ereignis auslöst), und nachgelagert, wenn es danach eintritt (d. H. Das Ereignis empfangen hat). Was in einer Abfolge von Ereignissen vor- und was nachgelagert ist, hängt daher davon ab, wo Sie sich in der Zeitleiste befinden. Ein Ereignis kann sowohl Downstream als auch Upstream sein, je nachdem, ob Ihr Startpunkt davor oder danach liegt.

Wie @Jack bemerkt, hat RFC7230 tools.ietf.org/html/rfc7230#section-2. Folgendes:

Die Begriffe "Upstream" und "Downstream" werden zur Beschreibung verwendet
Richtungsanforderungen in Bezug auf den Nachrichtenfluss: alle
Nachrichten fließen von Upstream nach Downstream

Es würde mich interessieren, auf Stimmen zu sehen, welche die häufigste Verwendung ist!

10
roj

Der beste Weg, darüber nachzudenken, ist, an einen Fluss zu denken.

Der stromabwärtige Teil des Flusses kann kein Wasser bekommen, es sei denn, es kommt stromaufwärts, d. H. Stromabwärts ist sein Wasser von stromaufwärts abhängig.

Wenn jemand den stromabwärts gelegenen Teil des Flusses zerstören würde, hätte dies stromaufwärts keine Auswirkungen. Wenn jemand den stromaufwärts gelegenen Teil des Flusses zerstören würde, würde dies stromabwärts wirken, d. H. Es würde kein Wasser bekommen.

Downstream-Dienste hängen also von Upstream-Diensten ab. Wenn die Upstream-Dienste entfernt werden, funktionieren die Downstream-Dienste nicht ordnungsgemäß.

8
Gaz_Edge

Dies kann eher ein sprachliches und geografisches als ein technisches Problem sein.

  • Die Informationsanfrage geht stromaufwärts. Es kommt aus einem nachgeschalteten System.

  • Die Antwort auf die Informationsanforderung (die angeforderten Informationen) geht nachgeschaltet und wird von einem vorgelagerten System gesendet.

Es gibt keinen Unterschied zwischen der klassischen IBM-Ansicht und der heutigen Verwendung der Begriffe durch die Web-Community.

  • Ein Dienstanbieter (Server) ist im Vergleich zu einem Dienstkonsumenten lokalisiert Upstream und sendet Informationen stromabwärts an den Konsumenten.

  • Ein Service-Consumer (Client) ist im Vergleich zum Service-Provider lokalisiert Downstream und sendet Upstream-Anfragen an den Provider.

Theoretisch könnten sich die Rollen physikalischer Systeme sofort ändern, ebenso wie die Richtung des Stroms zwischen diesen Systemen. In einem Peer-to-Peer-Netzwerk kann dies der Fall sein.

Die Begriffe Hochladen und Herunterladen sind kundenorientierte Begriffe. Aus Sicht des Kunden wird eine Anfrage hochgeladen und eine Antwort heruntergeladen, die mit der Stream-Metapher übereinstimmt.

2
Martin Maat