Untuk sistem yang terdiri dari beberapa layanan yang saling memanggil satu sama lain (misalnya Front End -> Backend -> Storage), saya sering mendengar orang menggunakan terminologi seperti layanan "downstream" atau "upstream". Saya tidak jelas ke arah mana artinya ini. Data mengalir di kedua arah. Permintaan mengalir dari yang lebih menghadap pengguna ke layanan backend yang lebih banyak, tetapi tanggapan mengalir dalam arah yang berlawanan, sehingga menurut saya salah satu cara dapat diperdebatkan
architecture
terminology
pengguna69715
sumber
sumber
Jawaban:
Layanan hilir adalah orang yang mengkonsumsi layanan hulu. Secara khusus, mereka bergantung pada layanan hulu. Jadi front-end hilir ke back-end karena tergantung pada back-end. Back-end dapat ada secara berarti tanpa front-end, tetapi front-end tidak masuk akal tanpa back-end.
Ketergantungan tidak harus sekuat yang saya dapat pada paragraf sebelumnya. Secara umum, layanan hulu tidak perlu tahu atau peduli tentang keberadaan layanan hilir. Layanan hilir peduli tentang keberadaan layanan hulu, bahkan jika mereka hanya mengkonsumsinya secara opsional.
sumber
Sayangnya ada perbedaan pendapat tentang arti hulu / hilir. Ketika berbicara tentang arsitektur sistem, saya mendefinisikannya sebagai berikut:
Dengan adanya sistem yang memprihatinkan, sistem yang memulai pertukaran pesan / data ke sistem yang menjadi perhatian adalah sistem hulu, dan sistem yang bergantung pada sistem yang menjadi perhatian (yaitu sistem yang digunakan oleh saya untuk memulai pertukaran data) adalah sistem hilir.
Tautan dari ibm yang menjelaskan interaksi dengan salah satu produk ini menguatkan pandangan ini: Mengintegrasikan dengan sistem hulu dan hilir https://www.ibm.com/support/knowledgecenter/en/SSWSR9_11.3.0/com.ibm.pim.dev.doc /integration/pim_con_dev_creatingjobsforintegrationcontainer.html
Mengingat terminologi 'hulu' dan 'hilir' mungkin membantu untuk membuat analogi dengan sungai. Jika Anda menjatuhkan pesan (data) di sungai itu mengalir dari hulu (inisiator) ke hilir (penerima).
Secara anekdot, saya menemukan bahwa arsitek dan pengembang middleware menggunakan definisi ini dan pengembang web sebaliknya (mungkin karena 'unggah').
Dengan jadwal acara, acara adalah hulu ketika terjadi sebelum titik pada timeline (yaitu memicu acara lain) dan hilir ketika itu terjadi sesudahnya (yaitu menerima acara). Apa yang hulu dan apa yang hilir dalam urutan peristiwa, oleh karena itu, tergantung di mana Anda berada di timeline. Suatu peristiwa dapat bersifat downstream dan upstream, tergantung pada apakah titik awal Anda sebelum atau sesudahnya.
Seperti @Jack mencatat RFC7230 tools.ietf.org/html/rfc7230#section-2.3 memiliki ini:
Saya akan tertarik untuk melihat suara, yang penggunaan paling umum adalah!
sumber
Cara terbaik untuk memikirkan hal ini adalah dengan memikirkan sungai.
Bagian hilir sungai tidak bisa mendapatkan air kecuali berasal dari hulu yaitu hilir tergantung pada hulu untuk airnya.
Jika seseorang menghancurkan bagian hilir sungai, ini tidak akan berdampak ke hulu. Jika seseorang menghancurkan bagian hulu sungai, ini akan berdampak ke hilir yaitu tidak mendapatkan air.
Jadi layanan hilir tergantung pada layanan hulu. Jika layanan hulu dihapus, layanan hilir tidak akan berfungsi dengan baik.
sumber
Ini mungkin lebih merupakan masalah linguistik dan geografis daripada masalah teknis.
Permintaan informasi berjalan ke hulu. Itu berasal dari sistem hilir.
Respons terhadap permintaan informasi (informasi yang diminta) turun dan dikirim oleh sistem upstream.
Tidak ada perbedaan antara tampilan IBM klasik dan penggunaan istilah komunitas web saat ini.
Penyedia layanan (server) akan berlokasi di hulu dibandingkan dengan konsumen layanan dan mengirimkan informasi ke konsumen.
Konsumen layanan (klien) akan berlokasi di hilir dibandingkan dengan penyedia layanan dan mengirimkan permintaan ke penyedia.
Secara teoritis peran sistem fisik dapat berubah secara instan dan demikian pula arah aliran antara sistem tersebut. Dalam jaringan peer-to-peer ini mungkin terjadi.
Istilah mengunggah dan mengunduh adalah istilah yang berpusat pada klien. Dari perspektif klien, permintaan diunggah dan tanggapan diunduh, yang konsisten dengan metafora aliran.
sumber