Katmanlı Mimari (Layered Architecture) Nedir? Avantajları, Katmanları ve Uygulama Örnekleri

Yazılım geliştirme sürecinde, uygulamanın ölçeklenebilir, sürdürülebilir ve yönetilebilir olmasını sağlamak kritik öneme sahiptir. Bu ihtiyaç doğrultusunda ortaya çıkan katmanlı mimari (layered architecture), yazılım bileşenlerini birbirinden ayrılmış katmanlara bölerek hem geliştirme sürecini kolaylaştırır hem de bakım maliyetlerini düşürür. Bu makalede katmanlı mimarinin ne olduğunu, hangi katmanlardan oluştuğunu, avantajlarını ve yaygın kullanım senaryolarını ayrıntılı şekilde ele alıyoruz.

Katmanlı Mimari Nedir?

Katmanlı mimari, yazılım sistemlerini işlevlerine göre farklı katmanlara (layers) ayırarak geliştirme yaklaşımıdır. Her katman belirli bir sorumluluğa sahiptir ve genellikle yalnızca bir üst veya bir alt katmanla iletişim kurar. Bu sayede sistem daha modüler, test edilebilir ve genişletilebilir hale gelir.

Katmanlı mimari, genellikle şu dört ana katmandan oluşur:

  1. Sunum Katmanı (Presentation Layer)
  2. İş Katmanı (Business Layer)
  3. Veri Erişim Katmanı (Data Access Layer)
  4. Veri Katmanı (Data Layer / Database)

Bazı durumlarda bu yapıya ekstra katmanlar (örneğin servis katmanı, uygulama katmanı) eklenebilir.

Katmanların Görevleri

1. Sunum Katmanı (Presentation Layer)

Kullanıcı arayüzünün yer aldığı katmandır. Kullanıcıdan veri alır ve kullanıcıya sonuçları sunar. Bu katman genellikle HTML, CSS, JavaScript gibi teknolojileri içerir ya da mobil/masaüstü uygulamalarında arayüz bileşenlerini barındırır.

Görevleri:

  • Kullanıcıdan giriş almak
  • Görsel çıktıları göstermek
  • İş katmanına veri iletmek

2. İş Katmanı (Business Layer)

İş kurallarının ve uygulama mantığının yer aldığı katmandır. Sunum katmanından gelen veriler burada işlenir.

Görevleri:

  • İş mantığını uygulamak
  • Doğrulama ve işlem kurallarını çalıştırmak
  • Veri erişim katmanını çağırmak

3. Veri Erişim Katmanı (Data Access Layer)

Veritabanı işlemlerinin gerçekleştirildiği katmandır. SQL sorguları, ORM işlemleri (Entity Framework, Hibernate vb.) burada yer alır.

Görevleri:

  • Veritabanı ile bağlantı kurmak
  • CRUD işlemlerini gerçekleştirmek
  • Verileri iş katmanına iletmek

4. Veri Katmanı (Data Layer)

Gerçek verilerin saklandığı fiziksel ya da bulut veritabanıdır. Örneğin MySQL, PostgreSQL, MongoDB gibi sistemler burada yer alır.

Katmanlı Mimarinin Avantajları

  • Modülerlik: Her katman kendi içinde ayrı sorumluluklara sahiptir. Bu sayede kod daha okunabilir ve yönetilebilir olur.
  • Yeniden Kullanılabilirlik: İş mantığı veya veri erişimi, farklı projelerde tekrar kullanılabilir.
  • Test Edilebilirlik: Her katman ayrı test edilebilir. Özellikle birim testlerde bu yapı büyük kolaylık sağlar.
  • Geliştirme Kolaylığı: Geliştiriciler farklı katmanlarda paralel çalışabilir.
  • Bakım Kolaylığı: Değişiklikler genellikle sadece ilgili katmanda yapılır, diğer katmanları etkilemez.
  • Güvenlik: Veritabanına doğrudan erişim engellenerek, iş mantığı aracılığıyla veri işlenmesi sağlanır.

Zayıf Yönleri ve Dikkat Edilmesi Gerekenler

  • Aşırı soyutlama: Gereğinden fazla katmanlı yapı, sistemi karmaşıklaştırabilir.
  • Performans Kaybı: Her katman arası iletişim, performans açısından maliyetlidir.
  • Kod Tekrarı: Yanlış mimari kurulumlarda bazı işlevler birden fazla katmanda tekrar edebilir.

Katmanlı Mimaride İletişim Şeması

Bir örnek üzerinden gidecek olursak:

  1. Kullanıcı formu doldurur ve “Gönder” butonuna tıklar.
  2. Sunum katmanı bu veriyi iş katmanına yollar.
  3. İş katmanı doğrulama ve işlem kurallarını çalıştırır.
  4. Doğruysa veri erişim katmanına iletir.
  5. Veri erişim katmanı veritabanına kaydeder.
  6. Sonuç yukarıya doğru iletilerek kullanıcıya bildirim verilir.

Gerçek Hayattan Örnekler

Web Uygulaması (Örn. E-Ticaret Sitesi)

  • Sunum Katmanı: Ürün listeleme sayfası
  • İş Katmanı: Sepete ürün ekleme, indirim hesaplama
  • Veri Erişim Katmanı: Ürün tablosundan veri çekme
  • Veri Katmanı: MySQL veritabanında ürün ve kullanıcı bilgileri

Mobil Uygulama

  • Sunum katmanı: Android arayüzü
  • İş katmanı: Kullanıcının giriş bilgilerini doğrulama
  • Veri erişim katmanı: API üzerinden kullanıcı verisi sorgulama
  • Veri katmanı: Bulut veritabanı (Firebase, MongoDB Atlas)

Katmanlı Mimari Hangi Teknolojilerle Uygulanabilir?

  • .NET Framework / ASP.NET
  • Java Spring Framework
  • Python (Django, Flask)
  • Node.js (Express ile birlikte yapılandırılabilir)
  • PHP (Laravel gibi MVC yapılarıyla)

Değerlendirme

Katmanlı mimari, yazılım sistemlerini sorumluluklarına göre ayrıştırarak hem geliştirme hem de bakım süreçlerini kolaylaştıran güçlü bir tasarım yaklaşımıdır. Doğru kurgulandığında hem yazılım kalitesini artırır hem de ekip içi iş bölümünü daha verimli hale getirir. Ancak her mimari yapı gibi, ihtiyaçlara göre özelleştirilerek ve dikkatle uygulanmalıdır. Gereksiz katman eklemekten kaçınılmalı ve performans açısından değerlendirme yapılmalıdır.

Paylaş arkadaşlarında görsün
Yazılım Mühendisi

Yazılım Mühendisi

Yazılım Mühendisi

Articles: 140