Yanıtlar:
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ı?
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.
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.
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:
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
Sade ingilizce, Tier
"her biri birbirinin üzerine yerleştirilmiş bir yapıdaki bir dizi sıra veya seviyede" Layer
anlamına gelirken, "bir yüzey veya gövdeyi kapsayan bir tabaka, miktar veya kalınlık, tipik olarak birkaç taneden bir malzeme" ".
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.
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ı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.
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
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:
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
tam olarak aynı katman ve katman kavramı.
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
.
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]
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.
Çö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.
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
İşletim sistemi olmayan 3 sanal makine ile 1 fiziksel makine.
(Bu 3- (donanım) katman uygulamasıydı)
3 farklı / aynı işletim sistemine sahip 3 sanal makineli 1 fiziksel makine
(Bu bir 3- (OS) katman uygulamasıydı)
1 işletim sistemi ile 1 sanal makine ile 1 fiziksel makine ancak 3 AppServers
(Bu 3- (AppServer) katman uygulamasıydı)
1 sanal makine ile 1 fiziksel makine 1 OS ile 1 OS ancak 3 DBMS
(Bu 3- (DBMS) katman uygulamasıydı)
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.)
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.