Thật không may, có sự khác biệt trong quan điểm về ý nghĩa của thượng nguồn / hạ lưu. Khi nói về kiến trúc hệ thống, tôi định nghĩa nó như sau:
Với một hệ thống quan tâm, các hệ thống khởi tạo trao đổi thông điệp / dữ liệu cho hệ thống quan tâm là các hệ thống ngược dòng và các hệ thống mà hệ thống quan tâm phụ thuộc vào (tức là các hệ thống mà hệ thống của tôi khởi tạo trao đổi dữ liệu) là các hệ thống hạ nguồn.
Liên kết này từ ibm mô tả các tương tác với một trong các sản phẩm của họ chứng thực cho quan điểm này:
Tích hợp với các hệ thống ngược dòng và hạ lưu https://www.ibm.com/support/ledgeledgecenter/en/SSWSR9_11.3.0/com.ibm.pim.dev.doc /integration/pim_con_dev_creatingjobsforintegrationcontainer.html
Một hệ thống ngược dòng là bất kỳ hệ thống nào gửi dữ liệu đến hệ thống Máy chủ Cộng tác. Hệ thống hạ nguồn là hệ thống nhận dữ liệu từ hệ thống Máy chủ Cộng tác.
Với thuật ngữ 'ngược dòng' và 'hạ lưu', nó có thể giúp tạo ra sự tương đồng với một dòng sông. Nếu bạn thả một thông điệp (dữ liệu) trong dòng sông, nó sẽ chảy từ thượng nguồn (người khởi tạo) đến hạ lưu (người nhận).
Thông thường, tôi đã thấy rằng các kiến trúc sư và nhà phát triển phần mềm trung gian sử dụng định nghĩa này và các nhà phát triển web thì ngược lại (có thể do 'tải lên).
Với các mốc thời gian Sự kiện, một sự kiện sẽ ngược dòng khi nó xảy ra trước một điểm trên dòng thời gian (nghĩa là kích hoạt một sự kiện khác) và hạ lưu khi nó xảy ra sau đó (tức là đã nhận sự kiện). Do đó, thượng nguồn là gì và hạ lưu trong chuỗi các sự kiện, do đó, phụ thuộc vào vị trí của bạn trong dòng thời gian. Một sự kiện có thể là cả hạ lưu và ngược dòng, tùy thuộc vào điểm bắt đầu của bạn là trước hay sau nó.
Như @Jack lưu ý RFC7230 tools.ietf.org/html/rfc7230#section-2.3 có điều này:
Các thuật ngữ "ngược dòng" và "xuôi dòng" được sử dụng để mô tả
các yêu cầu định hướng liên quan đến luồng thông điệp: tất cả các
thông điệp chảy từ thượng nguồn đến hạ lưu
Tôi rất muốn xem trên phiếu bầu, mà cách sử dụng phổ biến nhất là!