Quali sono i servizi downstream e upstream?

20

Per un sistema che consiste di più servizi che si chiamano l'un l'altro (ad esempio Front End - > Backend - > Storage), ho sentito spesso persone che usavano la terminologia come servizi "downstream" o "upstream". Non sono chiaro quale direzione significano. I flussi di dati in entrambe le direzioni. Le richieste passano da più user-facing a più backend service, ma le risposte fluiscono nella direzione opposta, quindi mi sembra che uno dei due modi possa essere discusso

    
posta user69715 11.03.2016 - 01:55
fonte

2 risposte

27

I servizi a valle sono quelli che consumano il servizio a monte. In particolare, dipendono dal servizio upstream. Quindi il front-end è a valle del back-end perché dipende dal back-end. Il back-end può esistere in modo significativo senza il front-end, ma il front-end non ha senso senza il back-end.

La dipendenza non deve essere così strong come l'ho definita nel paragrafo precedente. Più in generale, i servizi a monte non devono conoscere o preoccuparsi dell'esistenza di servizi a valle. I servizi a valle si preoccupano dell'esistenza di servizi a monte, anche se li consumano solo opzionalmente.

    
risposta data 11.03.2016 - 02:01
fonte
5

Purtroppo esistono opinioni divergenti sul significato di upstream / downstream. Quando parlo di architettura di sistema, lo definisco come segue:

Dato un sistema preoccupante, i sistemi che avviano lo scambio di messaggi / dati al sistema di interesse sono sistemi a monte e sistemi da cui dipende il sistema di interesse (cioè quelli a cui il mio sistema avvia lo scambio di dati) sono sistemi a valle. / p>

Questo collegamento di ibm che descrive le interazioni con uno dei loro prodotti corrobora questa vista: Integrazione con i sistemi upstream e downstream link

An upstream system is any system that sends data to the Collaboration Server system. A downstream system is a system that receives data from the Collaboration Server system.

Data la terminologia "a monte" e "a valle", può essere utile fare un'analogia con un fiume. Se si rilascia un messaggio (dati) nel fiume, esso passa da upstream (iniziatore) a downstream (ricevitore).

Aneddoticamente, ho scoperto che gli architetti e gli sviluppatori di middleware usano questa definizione e gli sviluppatori web al contrario (forse a causa del "caricamento").

Con le timeline di eventi, un evento è a monte quando si verifica prima di un punto sulla timeline (ad esempio, fa scattare un altro evento) e a valle quando si verifica in seguito (ad esempio, ha ricevuto l'evento). Ciò che è a monte e ciò che è a valle in una sequenza di eventi, quindi, dipende da dove ti trovi nella timeline. Un evento può essere sia downstream che upstream, a seconda che il tuo punto di partenza sia prima o dopo di esso.

Sarei interessato a vedere sui voti, che l'uso più comune è!

    
risposta data 11.01.2018 - 23:12
fonte

Leggi altre domande sui tag