“Katmanlar” ve “Katmanlar” arasındaki fark nedir?


215

"Katmanlar" ve "Katmanlar" arasındaki fark nedir?


4
Yazılım dünyasında tanıştığım neredeyse herkes bu iki terimi birbirinin yerine kullanıyormuş gibi kullanıyor.
RBT

Yanıtlar:


260

Mantıksal katmanlar yalnızca kodunuzu düzenlemenin bir yoludur. Tipik katmanlar arasında Sunum, İşletme ve Veriler yer alır - geleneksel 3 katmanlı modelle aynı. Ancak katmanlardan bahsederken, yalnızca mantıklı kod organizasyonu hakkında konuşuyoruz. Hiçbir şekilde bu katmanların farklı bilgisayarlarda veya tek bir bilgisayardaki farklı işlemlerde veya tek bir bilgisayardaki tek bir işlemde çalışabileceği ima edilmez. Tek yaptığımız, belirli bir işlev tarafından tanımlanan bir katman kümesine bir kod düzenlemenin bir yolunu tartışmaktır.

Ancak fiziksel katmanlar yalnızca kodun çalıştığı yer ile ilgilidir. Özellikle, katmanlar katmanların dağıtıldığı ve katmanların çalıştığı yerlerdir. Başka bir deyişle, katmanlar katmanların fiziksel olarak dağıtılmasıdır.

Kaynak: Rockford Lhotka, Tüm uygulamalar n katmanlı olmalı mı?


43

Scott Hanselman'ın konuyla ilgili yazısını okuyun: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx

Yine de, "Scott World" de (ki umarım dünyanız da budur :)) bir "Seviye" konuşlandırma birimidir, "Katman" ise kod içindeki sorumluluğun mantıklı bir ayrımıdır. Bir "3 katmanlı" sisteminiz olduğunu söyleyebilir, ancak tek bir dizüstü bilgisayarda çalıştırıyor olabilirsiniz. "3 katmanlı" bir sisteminiz olduğunu, ancak yalnızca veritabanıyla konuşan ASP.NET sayfalarınızın olduğunu söyleyebilirsiniz. Hassasiyette güç var arkadaşlar.


36

Katmanlar kodun mantıksal olarak ayrılmasını ifade eder. Mantıksal katmanlar kodunuzu daha iyi organize etmenize yardımcı olur. Örneğin, bir uygulama aşağıdaki katmanlara sahip olabilir.

1) Sunum Katmanı veya UI Katmanı 2) İş Katmanı veya İş Mantık Katmanı 3) Veri Erişim Katmanı veya Veri Katmanı

Yukarıdaki üç katman kendi projelerinde bulunur, 3 proje veya daha fazlası olabilir. Projeleri derlediğimizde ilgili katman DLL'sini alırız. Şimdi 3 DLL var.

Uygulamamızı nasıl kullandığımıza bağlı olarak 1 ila 3 katmanımız olabilir. Şimdi 3 DLL'imiz olduğu için, tüm DLL'leri aynı makineye dağıtırsak, sadece 1 fiziksel katman ama 3 mantıksal katmanımız var.

Her DLL dosyasını ayrı bir makineye dağıtmayı seçersek, 3 katman ve 3 katmanımız var.

Yani, Katmanlar mantıklı bir ayrım ve Katmanlar fiziksel bir ayrımdır. Ayrıca katmanların katmanların fiziksel yerleşimi olduğunu da söyleyebiliriz.


Ne cevap üç farklı sunucuya 3 katmanları (DLL) dağıtabileceğini anladım. Sağ ? Sunum katmanında Business Logic katmanına nasıl referans verebilirim?
Mazhar Khan

@MazharKhan İş katmanı işlevselliğini sunum katmanına göstermek için bir hizmet kullanmak isteyebilirsiniz
Amit Saxena

32

Neden hep karmaşık kelimeler kullanmaya çalışıyorsunuz?

Bir katman = kodunuzun bir parçası, uygulamanız kek ise, bu bir dilimdir.

Bir katmanlı = fiziksel bir makine , bir sunucu.

Bir katman bir veya daha fazla katmanı barındırır.


Katman örneği:

  • Sunum katmanı = genellikle Kullanıcı Arayüzü ile ilgili tüm kodlar
  • Veri Erişimi katmanı = veritabanı erişiminizle ilgili tüm kodlar

Tier:

Kodunuz bir sunucuda barındırılıyor = Kodunuz bir katmanda barındırılıyor.

Kodunuz 2 sunucuda barındırılıyor = Kodunuz 2 katmanda barındırılıyor.

Örneğin, Web Sitesinin kendisini barındıran bir makine (Sunum katmanı), daha güvenli güvenlik kodunu (gerçek iş kodu - iş katmanı, veritabanı erişim katmanı, vb.) Barındıran daha güvenli bir makine.


Katmanlı bir mimari uygulamanın birçok faydası vardır. Bu zor ve katmanlı bir uygulamayı düzgün bir şekilde uygulamak zaman alır. Bazılarınız varsa, bu yayına Microsoft'tan bir göz atın: http://msdn.microsoft.com/en-gb/library/ee658109.aspx


13

Katmanların mantıklı bir ayrılık ve katmanların fiziksel bir ayrılık olduğunu söyleyen bir tanım buldum.


10
  1. Sade ingilizce, Tier"her biri birbirinin üzerine yerleştirilmiş bir yapıdaki bir dizi sıra veya seviyede" Layeranlamına gelirken, "bir yüzey veya gövdeyi kapsayan bir tabaka, miktar veya kalınlık, tipik olarak birkaç taneden bir malzeme" ".

  2. Katman, kodun / işlemin çalıştığı fiziksel bir birimdir . Örneğin: istemci, uygulama sunucusu, veritabanı sunucusu;

    Katman mantıksal bir birimdir , kodun düzenlenmesi. Örnek: sunum (görünüm), kontrolör, modeller, depo, veri erişimi.

  3. Katmanlar, tasarımınızın sunumunun, işinin, hizmetlerinin ve veri işlevselliğinin ayrı bilgisayarlar ve sistemler arasında fiziksel olarak ayrılmasını temsil eder.

    Katmanlar, uygulamayı veya hizmeti oluşturan yazılım bileşenlerinin mantıksal gruplandırmasıdır. Bileşenler tarafından gerçekleştirilen farklı görev türlerini ayırt etmeye yardımcı olarak, bileşenlerin yeniden kullanılabilirliğini destekleyen bir tasarım oluşturmayı kolaylaştırırlar. Her mantıksal katman, alt katmanlar halinde gruplandırılmış bir dizi ayrı bileşen türü içerir ve her alt katman belirli bir görev türü gerçekleştirir.

İki katmanlı desen, bir istemciyi ve sunucuyu temsil eder.

Bu senaryoda, istemci ve sunucu aynı makinede bulunabilir veya iki farklı makinede bulunabilir. Aşağıdaki şekilde, istemcinin istemci katmanında bulunan bir Web sunucusuyla etkileşime girdiği yaygın bir Web uygulaması senaryosu gösterilmektedir. Bu katman, sunum katmanı mantığını ve gerekli iş katmanı mantığını içerir. Web uygulaması, veri katmanı mantığını içeren veritabanı katmanını barındıran ayrı bir makine ile iletişim kurar.

Katmanlar ve Katmanlar

Katmanların ve Katmanların Avantajları:

  • Katmanlama, kodun sürdürülebilirliğini en üst düzeye çıkarmanıza, uygulamanın farklı şekillerde dağıtıldığında çalışma şeklini optimize etmenize ve belirli teknoloji veya tasarım kararlarının alınması gereken konumlar arasında net bir tanımlama sağlamanıza yardımcı olur.

  • Katmanlarınızı ayrı fiziksel katmanlara yerleştirmek, yükü birden fazla sunucuya dağıtarak performansa yardımcı olabilir. Ayrıca, daha hassas bileşenleri ve katmanları farklı ağlara veya internette bir intranete ayırarak güvenliğe de yardımcı olabilir.

1 Katmanlı bir uygulama, 3 Katmanlı bir uygulama olabilir.


6

Evet sevgili arkadaşlarım doğru söyledi. Katman, uygulamanın mantıksal bir bölümü iken katman, sistem katman bölümünün fiziksel bölümüdür, katman bölümüne bağlıdır. Tıpkı bir uygulamanın tek bir makinede yürütmesi gibi, ancak 3 katmanlı mimariyi takip eder, böylece katman mimarisinin katmanlı bir mimaride var olabileceğini söyleyebiliriz. Basit bir deyişle, 3 katmanlı mimari tek bir makinede uygulanabilir, o zaman onun 1 katmanlı mimari olduğunu söyleyebiliriz. Her katmanı ayrı bir makineye uygularsak, buna 3 katmanlı mimari denir. Bir katman ayrıca birkaç katman çalıştırabilir. Katman mimarisiyle ilgili bileşen birbiriyle kolayca iletişim kurabilme.
Tıpkı aşağıda verilen mimariyi takip ettiğimiz gibi

  1. sunum katmanı
  2. iş mantığı katmanı
  3. veri erişim katmanı

Bir istemci "sunum katmanı" ile etkileşime girebilir, ancak güvenlik nedeniyle aşağıdaki katmanın genel bileşenine (iş mantığı katmanının genel bileşeni gibi) "iş mantığı katmanına" erişir.
S * Neden katman mimarisi kullanıyoruz? çünkü katman mimarisini uygularsak, uygulama verimliliğimizi

==> güvenlik

==> yönetilebilirlik

==> ölçeklenebilirlik

diğer uygulama gibi geliştirdikten sonra dbms değiştirmek veya iş mantığı vb değiştirmek gerekir o zaman herkes için gereklidir.

S * Neden katmanlı mimari kullanıyoruz?

çünkü her katmanın fiziksel olarak uygulanması daha iyi bir verimlilik sağladığı için katman mimarisi olmadan katman mimarisini uygulayamayız. ayrı katman ve ayrı katman uygulamak için ayrı bir makine bir veya daha fazla katman uygulamak bu yüzden kullanıyoruz.
hata toleransı için kullanır. ==> bakımı kolay.

Basit örnek

Tıpkı bir kategoride çalışan bir banka gibi, çalışanın kategorileri:

  1. kapı bekçisi
  2. para için bir kişi
  3. bankacılık sistemini uygulamaya koymaktan sorumlu kişi
  4. yönetici

hepsi sistemin ilgili bileşenleridir.

Kredi amacıyla bankaya gidecek olursak, önce bir kapı kaleci gülümseme ile kapıyı açar, bundan sonra yönetici kabinine gidip krediyi geçtikten sonra tüm kredi şemasını tanıtan bir kişinin yanına gideriz. Sonunda kasiyerin karşı krediye geçiyoruz. Bunlar bankanın katman mimarisidir.

Seviye ne olacak? Bir bankanın bir kasabada, bundan sonra başka bir kasabada, ondan sonra başka bir bankada açılması ancak her bir şubenin temel gereksinimi nedir

  1. kapı bekçisi
  2. para için bir kişi
  3. bankacılık sistemini uygulamaya koymaktan sorumlu kişi
  4. yönetici

tam olarak aynı katman ve katman kavramı.


Büyük açıklama sevgili
Dulaj Kulathunga

6

Katmanlar bir uygulama içinde mantıksal olarak ayrılır, related-functionality[code]katmanlar arasındaki iletişim açıktır ve gevşek bir şekilde birleştirilmiştir. [Sunum mantığı, Uygulama mantığı, Veri Erişim mantığı]

Katmanlar , tek bir bilgisayarda (işlem) [ayrı sunucularda barındırılıyor] ' un fiziksel olarak ayrılmasıdır layers.

resim açıklamasını buraya girin

Diyagramda gösterildiği gibi:

1-Tier & 3-Layers « App Logic  with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer  « Browser View[php], App Logic[jsp], DataStorage

n- Katman avantajları:
Daha İyi Güvenlik
Ölçeklenebilirliği : Kuruluşunuz büyüdükçe DB Katmanınızı diğer katmanlara dokunmadan DB Kümeleme ile ölçeklendirebilirsiniz.
Sürdürülebilirlik : Web tasarımcısı, diğer katmanlardaki diğer katmanlara dokunmadan Görünüm kodunu değiştirebilir.
Kolayca Yükseltme veya Geliştirme [Örn: Ek Uygulama Kodu, Depolama Alanını Yükseltme veya mobil, tablet, pc gibi Ayrı cihazlar için Çoklu sunum Katmanları ekleyebilirsiniz]


6

Microsoft Application Architecture Guide 2'nin aşağıdaki açıklamasını beğendim

Katmanlar, bir uygulamadaki işlevsellik ve bileşenlerin mantıksal gruplamalarını tanımlar; oysa katmanlar işlevsellik ve bileşenlerin ayrı sunucular, bilgisayarlar, ağlar veya uzak konumlardaki fiziksel dağılımını tanımlar. Hem katmanlar hem de katmanlar aynı ad grubunu (sunum, işletme, hizmetler ve veriler) kullansa da, yalnızca katmanların fiziksel bir ayırma anlamına geldiğini unutmayın.


5

Çözümlerimin bir bileşenindeki mimar veya teknoloji yığınını tanımlamak için katmanlar kullanıyorum. Katmanları, genellikle ağ veya süreçler arası iletişim söz konusu olduğunda mantıksal olarak bu bileşenleri gruplandırmak için kullanıyorum.


1

Teknik olarak bir Katman, kodun çalışması için gereken bir tür minimum ortam olabilir.

Varsayımsal olarak 3 katmanlı bir uygulama çalışıyor olabilir

  1. İşletim sistemi olmayan 3 fiziksel makine.
  2. İşletim sistemi olmayan 3 sanal makine ile 1 fiziksel makine.

    (Bu 3- (donanım) katman uygulamasıydı)

  3. 3 farklı / aynı işletim sistemine sahip 3 sanal makineli 1 fiziksel makine

    (Bu bir 3- (OS) katman uygulamasıydı)

  4. 1 işletim sistemi ile 1 sanal makine ile 1 fiziksel makine ancak 3 AppServers

    (Bu 3- (AppServer) katman uygulamasıydı)

  5. 1 sanal makine ile 1 fiziksel makine 1 OS ile 1 OS ancak 3 DBMS

    (Bu 3- (DBMS) katman uygulamasıydı)

  6. 1 fiziksel makine ile 1 sanal makine 1 OS ile 1 OSServers ve 1 DBMS ancak 3 Excel çalışma kitabı.

    (Bu 3- (AppServer) katman uygulamasıydı)

Excel çalışma kitabı, VBA kodunun çalışması için gereken minimum ortamdır.

Bu 3 çalışma kitabı tek bir fiziksel bilgisayarda veya birden çok bilgisayarda oturabilir.

Uygulamada, uygulama açıklaması bağlamında "Katman" derken insanların "OS Katman" anlamına geldiğini fark ettim.

Bir uygulama 3 ayrı işletim sisteminde çalışıyorsa, o zaman 3 katmanlı bir uygulama.

Yani bir uygulamayı tarif eden bilgiçlikle doğru bir yol

"1-3-Tier yetenekli, 2 Katlı çalışan" uygulaması.

:)


Katmanlar, uygulamadaki görevlerin işlevsel olarak ayrılmasına ilişkin kod türleridir (örneğin Sunum, Veri, Güvenlik vb.)


0

Katmanlar kavramsal varlıklardır ve yazılım sisteminin işlevselliğini mantıklı bir bakış açısından ayırmak için kullanılır; sistemi uyguladığınızda bu katmanları farklı yöntemler kullanarak düzenlersiniz; bu durumda bunlardan katman olarak değil, katman olarak bahsediyoruz.


0

Sunum, hizmet, veri, ağ katmanı hakkında konuşurken katmanlardan bahsediyorsunuz. "Bunları ayrı ayrı dağıttığınızda", katmanlardan bahsedersiniz.

Katmanlar tamamen konuşlandırma ile ilgilidir. Bu şekilde alın: Angular'da oluşturulan bir ön uca sahip, MongoDB olarak bir arka uca ve ön uç ile arka uç arasında etkileşen bir orta katmana sahip bir uygulamamız var. Bu nedenle, bu ön uç uygulaması, veritabanı uygulaması ve orta katman ayrı ayrı dağıtıldığında, bunun 3 katmanlı bir uygulama olduğunu söylüyoruz.

Faydası: Gelecekte arka ucumuzu ölçeklendirmemiz gerekiyorsa, yalnızca arka ucu bağımsız olarak ölçeklememiz gerekir ve ön ucun ölçeklendirilmesine gerek yoktur.

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.