Katmanlı Mimari

Katmanlı Mimari

Katmanlı mimari bir istemci-sunucu mimarisidir. Uygulamayı katmanlarına ayırarak geliştiricilere bir katmanı düzenleme veya özel bir katman ekleme gibi seçenekler sunan bir modeldir. Bu mimari n-tier architecture pattern olarak da bilinir. Yazılım mühendisliğin de en çok kullanılan mimarilerden bir tanesidir. Geliştiricilerin esnek ve yeniden kullanılabilir uygulamalar oluşturmalarına olanak sağlar. Her katmanın kendine özgü rolü ve sorumluluğu vardır. En çok kullanılan 3 katmanlı mimaridir (three-tier architecture).

Ortak Katmanlar
  • Sunum katmanı (Presentation layer)
  • Uygulama katmanı (Application/Service layer)
  • İş katmanı (Business layer/Domain layer)
  • Veri erişim katmanı (Data access layer/Persistence layer
3 Katmanlı Mimari
  • Sunum katmanı: Bir uygulamadaki mevcut olan hizmetler ile ilgili bilgileri görüntüler. Diğer katmanlara, browser veya uygulamadan gönderilen verilerin, sonuçlarını göndererek iletişim halinde olmasını sağlar.
  • Uygulama katmanı: Orta katman (middle layer), iş katmanı (business layer) olarak da bilinir, bu katman sunum katmanından alınır. Uygulamanın işlevselliğini ayrıntılı işleme tabi tutarak kontrol eder.
  • Veri katmanı: Verilerin saklandığı ve alındığı veri tabanı sunucularının alanıdır. Bu katmanda veriler uygulama sunucularından veya iş katmanından bağımsız olarak tutulur.
3 Katmanı Mimari vs MVC

3 katmanlı mimari ve MVC birbirlerine yapı olarak benzeseler de farklı yapılara sahiptirler. MVC bir mimari desenidir (architectural pattern).

3 Katmanlı mimari
MVC


3 katmanlı mimaride, katmanlar arasındaki iletişim iki yönlüdür (bi-directional). MVC’de ise tek yönlüdür (unidirectional). 3 Katmanlı mimaride sırayla, UI katmanı ilk olarak business katmanına, business katmanı data katmanına erişir. UI katmanı direk olarak data katmanına erişemez. MVC’de controller modele ve viewa erişir. Sonra view, modele erişir. Controller burada mantıksal kararları veren yapıdır. Controllera request geldiğinde, modeli alır, belirtilen işlemleri model üzerinde gerçekleştirir, response olarak viewa modeli gönderir ve viewda modelin kullanıcıya görünecek kısımlarını görsel olarak sunar.

MVC’nin yapısı
  • Model: Tasarımın en alt kısmıdır. Veriyi yönetmek ile görevlidir.
  • View: Kullanıcıya verinin tamamını veya belirli kısımlarını görüntülemekten sorumludur.
  • Controller: Model ve view arasındaki etkileşimleri kontrol eder.
Yararları
  • Güvenlidir
  • Yönetim kolaylığı sağlar
  • Esnek yapıya sahiptir
  • Veri bütünlüğü sağlar
  • Ölçeklenebilir
  • Yeniden kullanılabilirlik sağlar
Referanslar

https://www.techopedia.com/definition/24649/three-tier-architecture
https://en.wikipedia.org/wiki/Multitier_architecture
https://tgarhwal.files.wordpress.com/2009/05/n-tier-architecture.jpg (Resim)
https://www.asp.net/mvc
http://allthingscs.blogspot.com.tr/2011/03/mvc-vs-3-tier-pattern.html