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 è!