Alt ve üst hizmetler hangi yönlerdendir?


45

Birbirini çağıran birden fazla hizmetten oluşan bir sistemde (örneğin, Ön Uç -> Arka Uç -> Depolama), genellikle "aşağı akış" veya "yukarı akış" servisleri gibi terminoloji kullanan kişileri duydum. Bunların hangi yönde olduğu belli değilim. Veri her iki yönde de akar. Daha fazla kullanıcı tarafından karşı karşıya gelen, daha fazla arka uç servisine akış talep eder, ancak ters yönde akışa yanıt verir, bu nedenle, her iki şekilde de tartışılabilir.


3
İlginç bir şekilde, HTTP spesifikasyonu RFC 7230, Bölüm 2.3'teki
Jack

Yanıtlar:


56

Alt hizmetler, üst hizmet tüketen hizmetlerdir. Özellikle, yukarı akış servisine bağlıdırlar . Böylece ön uç arka uca doğru akar, çünkü arka uca bağlıdır. Arka uç ön uç olmadan anlamlı bir şekilde var olabilir, ancak ön uç arka uç olmadan mantıklı gelmez.

Bağımlılık önceki paragrafta yaptığım kadar güçlü olmak zorunda değildir. Daha genel olarak, yukarı havza hizmetlerinin aşağı havza hizmetlerinin varlığını bilmesi ya da önemsemesi gerekmez. Alt servisler, yalnızca isteğe bağlı olarak tüketseler bile, üst servislerin varlığına önem verir.


Bunun olması gerektiğini düşünüyorum "mansap hizmetler" yerine "aşağı hizmetler" .
Nawaz

8

Maalesef, yukarı akış / aşağı akış anlamında görüş farklılıkları vardır. Sistem mimarisi hakkında konuşurken, şöyle tanımlarım:

Bir endişe sistemi göz önüne alındığında, endişe sistemine mesaj / veri alışverişini başlatan sistemler, ters yöndeki sistemlerdir ve ilgilenilen sistemin bağlı olduğu sistemler (yani, sistemimin veri değişimini başlattığı sistemler) alt sistemlerdir.

IBM'in ürünlerinden biriyle etkileşimleri tanımlayan bu bağlantı bu görüşü desteklemektedir: Yukarı ve aşağı sistemlerle entegrasyon https://www.ibm.com/support/knowledgecenter/tr/SSWSR9_11.3.0/com.ibm.pim.dev.doc /integration/pim_con_dev_creatingjobsforintegrationcontainer.html

Bir yukarı akış sistemi, Collaboration Server sistemine veri gönderen herhangi bir sistemdir. Alt sistem, Collaboration Server sisteminden veri alan bir sistemdir.

'Yukarı akış' ve 'aşağı akış' terminolojisi göz önüne alındığında, bir nehir ile bir benzetme yapmak için yardımcı olabilir. Nehirde bir mesaj (veri) bırakırsanız, yukarı akıştan (başlatıcı) aşağı akışa (alıcı) akar.

Önceden, mimarlar ve ara yazılım geliştiricilerin bu tanımı ve web geliştiricilerini tersini kullandıklarını (belki de 'yükleme' nedeniyle) buldum.

Olay zaman çizelgelerinde, bir olay zaman çizelgesindeki bir noktadan önce gerçekleştiğinde (yani başka bir olayı tetikler) ve sonrasında gerçekleştiğinde (yani olayı aldığında) aşağı yönde gerçekleşir. Yukarı yönde olan ve bir dizi olayda aşağı yönde olan şey, bu nedenle, zaman çizelgesinde nerede olduğunuza bağlıdır. Bir etkinlik, başlangıç ​​noktanızın öncesinde veya sonrasında olmasına bağlı olarak hem aşağı yönde hem de yukarı yönde olabilir.

@ Jack'in notuna göre RFC7230 tools.ietf.org/html/rfc7230#section-2.3 aşağıdakilere sahiptir:

"Yukarı akış" ve "aşağı akış" terimleri
, mesaj akışına ilişkin yönel gereksinimleri tanımlamak için kullanılır : tüm
mesajlar yukarı akıştan aşağı akışa doğru akar.

En yaygın kullanım olan oyları görmek isterim!


1
Bu sadece kafa karıştırıcı çünkü konuyla ilgili kafan karıştı. Farklılık yoktur, sadece bakış açısından bir fark vardır.
Martin Maat

@MartinMaat İlk cümlenize katılmıyorum ve ikincinize katılıyorum.
roj

3

Bunu düşünmenin en iyi yolu bir nehir düşünmektir.

Nehrin aşağı akış kısmı yukarı akıştan gelmediği sürece herhangi bir su alamaz, yani akış aşağı akış suyu için yukarı akışa bağlıdır.

Birisi nehrin aşağı akış kısmını tahrip ederse, bunun akış yönünde etkisi olmaz. Birisi nehrin üst kısmındaki kısmı tahrip ederse, bu aşağı havzaya etki eder, yani su alamazdı.

Bu nedenle aşağı havza hizmetleri yukarı havza hizmetlerine bağlıdır. Yukarı akış hizmetleri kaldırılırsa, aşağı akış hizmetleri düzgün çalışmaz.


Ve ekstra netlik için; Standart bir CRUD istemci-sunucu ilişkisinde, her iki uç da hem yukarı hem de aşağı yöndedir. Sunucu kapalıysa, istemci hiçbir veriyi veya güncellemeyi alamaz ve bir istemci yoksa yürütmek için herhangi bir talimatı yoktur.
Delioth

1
@Delioth aynı fikirde değil. Arka uç birçok müşteriye sahip olabilir, ancak bunlardan hiçbirine bağlı değildir. Bir müşteriyi kaldırırsanız, arka uç yine de çalışır. Müşterinin kullanabileceği birçok arka ucu olabilir. Müşterinin haberi olmadan bir arka uç kaldırılırsa, müşteri düzgün çalışamaz. Müşteri aşağı yönde. Arka uç yukarı yönde.
Gaz_Edge

1

Bu, teknik olandan daha dilsel ve coğrafi bir sorun olabilir.

  • Bilgi talebi tersine gider. Bir akış aşağı sistemden geliyor.

  • Bilgi talebine verilen cevap (istenen bilgi) aşağıya doğru gider ve bir yukarı akış sistemi tarafından gönderilir.

Klasik IBM görünümü ile bugünün web topluluğunun terimleri kullanımı arasında bir fark yoktur.

  • Bir hizmet sağlayıcı (sunucu) olacak bulunan bir servis tüketici ile karşılaştırıldığında üst akış ve gönderir tüketiciye alt bilgi.

  • Bir servis, tüketici (istemci) olacak bulunan servis sağlayıcı ile karşılaştırıldığında alt ve gönderir istekleri sağlayıcısına akıntıya.

Teorik olarak, fiziksel sistemlerin rolleri anında değişebilir ve bu sistemler arasındaki akışın yönü de değişebilir. Eşler arası ağda bu olabilir.

Yükleme ve indirme şartları müşteri merkezli terimlerdir. Müşterinin bakış açısından bir istek yüklenir ve akış metaforu ile tutarlı olan bir yanıt indirilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.