N Katmanlı (Çok Katmanlı), 3 Katmanlı, 2 Katmanlı ArchiEXAMPLE ile doku

⚡ Akıllı Özet

N-katmanlı mimari, diğer adıyla çok katmanlı mimari, bir uygulamayı sunum, iş mantığı ve veri gibi üç veya daha fazla ayrı katmana dağıtır. Bu model, kurumsal düzeydeki istemci-sunucu uygulamaları için ölçeklenebilirliği, güvenliği ve yeniden kullanılabilirliği artırır.

  • 🏗️ Tanım: N-Tier uygulaması, dağıtılmış bir ağda üç veya daha fazla ayrı bilgisayara dağıtılır.
  • 🧱 Üç Temel Katman: Sunum (kullanıcı arayüzü), iş mantığı ve veritabanı katmanları, sorumlulukları net bir şekilde birbirinden ayırır.
  • 🔢 Kademe Çeşitleri: Yaygın modeller 1 Katmanlı, 2 Katmanlı ve 3 Katmanlı olup, en yaygın kullanılanı 3 Katmanlı modeldir.
  • 🌐 Gerçek Dünya Kullanımı: IRCTC, MakeMyTrip gibi siteler ve Amazon Bu mimariye güvenin.
  • Anahtar Yararları: Ölçeklenebilirlik, veri bütünlüğü, yeniden kullanılabilirlik, geliştirilmiş güvenlik ve erişilebilirlik.
  • ⚠️ Değiş tokuş: Katman sayısının artması, geliştirme çabasını ve genel sistem karmaşıklığını artırır.

N Katmanlı Archidoku

N-Katmanı nedir?

An N Katmanlı Uygulama program, dağıtılmış bir ağdaki üç veya daha fazla ayrı bilgisayar arasında dağıtılan bir programdır.

N-katmanın en yaygın biçimi 3-katmanlı Uygulamadır ve üç kategoriye ayrılır.

  • Kullanıcının bilgisayarında kullanıcı arayüzü programlama
  • Daha merkezi bir bilgisayarda iş mantığı ve
  • Bir veritabanını yöneten bir bilgisayarda gerekli veriler.

Bu mimari model, yazılım geliştiricilerine maksimum esneklikle yeniden kullanılabilir uygulamalar/sistemler oluşturma olanağı sunar.

In N katmanlı, “N” Kullanılan katman veya seviye sayısını ifade eder, örneğin – 2 katmanlı, 3 katmanlı veya 4 katmanlı vb.. Aynı zamanda “Çok Katmanlı Archidoku".

n-katmanlı mimari Sektörde kendini kanıtlamış bir yazılım mimarisi modelidir. Ölçeklenebilirlik, güvenlik, hata toleransı, yeniden kullanılabilirlik ve sürdürülebilirlik çözümleri sunarak kurumsal düzeydeki istemci-sunucu uygulamalarını desteklemek için uygundur. Geliştiricilerin esnek ve yeniden kullanılabilir uygulamalar oluşturmasına yardımcı olur.

N Katmanlı Archidoku

Burada çok katmanlı bir sistemin diyagramatik temsili sunum, uygulama ve veritabanı katmanlarını göstermektedir.

N Katmanlı Archidoku
N Seviyesi Archidoku şeması

Bu üç katman, gereksinimlere bağlı olarak farklı alt katmanlara da bölünebilir.

Bu mimariyi uygulayan popüler sitelerden bazıları şunlardır:

  • MakeMyTrip.com
  • Satış Gücü kurumsal uygulaması
  • Hindistan Demiryolları - IRCTC
  • Amazon.com vb.

Kavramı daha net anlamak için hatırlanması gereken bazı yaygın terimler şunlardır:

  • Dağıtılmış Ağ: Ağ mimarisi, ağ bilgisayarlarında bulunan bileşenlerin eylemlerini yalnızca mesaj alışverişi yoluyla koordine edip iletişim kurduğu bir yapıdır. Farklı düğümlerde yer alan birden fazla sistemin bir araya gelmesinden oluşur, ancak kullanıcıya tek bir sistem gibi görünür.
    • Farklı ağlar tarafından ayrı ayrı yönetilebilen tek bir veri iletişim ağı sağlar.
    • Dağıtılmış Ağlara bir örnek olarak, farklı istemcilerin bir tarafta LAN mimarisi içinde birbirine bağlı olduğu, diğer tarafta ise servis düğümlerini içeren bir sunucu rafı ile birlikte yüksek hızlı anahtarlara bağlı olduğu bir yapı gösterilebilir.
  • Müşteri sunucusu Archidoku: Bu, istemcinin (bir programın) sunucudan (başka bir program) bir hizmet talep ettiği bir mimari modelidir. yani İnternet üzerinden veya intranet aracılığıyla sağlanan bir istek-yanıt hizmetidir. Bu modelde, Müşteri ağ üzerinde bir dizi eylemi yürüten bir program/kod kümesi olarak hizmet edecektir. Sırasında sunucu, ise sonuç kümelerini istenildiği gibi istemci sistemine gönderen başka bir program kümesidir.
    • Bu sistemde, istemci bilgisayar son kullanıcının sunucudan bir hizmet veya kaynak talep etmesi için bir arayüz sağlar; sunucu ise bu talebi işler ve sonucu son kullanıcıya gösterir.
    • İstemci-Sunucu Modeline bir örnek – bir ATM makinesi. Banka, büyük müşteri veritabanları içindeki uygulamaları işleyen sunucudur ve ATM makinesi, bazı basit uygulama işlemlerini gerçekleştiren bir kullanıcı arayüzüne sahip istemcidir.
  • Platform: Bilgisayar biliminde veya yazılım endüstrisinde, platform, bir uygulama programının çalışabileceği bir sistemdir. Belirli işlemleri gerçekleştirmek için bir işlemci/mikroişlemciye yönelik yerleşik talimatlar içeren donanım ve yazılım kombinasyonundan oluşur.
    • Daha basit bir ifadeyle, platform, herhangi bir uygulamanın belirli bir görevi yerine getirmek için çalışabileceği ve yürütülebileceği bir sistem veya temeldir.
    • Platforma bir örnek – Yüklü kişisel bir makine Windows 2000 farklı platforma örnek olarak 2 veya Mac OS X.
  • Veri tabanı: Kolayca erişilebilecek, yönetilebilecek ve güncellenebilecek şekilde organize edilmiş bir bilgi topluluğudur.
    • Veritabanı Örnekleri – MySQL, SQL Sunucu ve Oracle Database Bunlar bazı yaygın veritabanlarıdır.

N Katmanı Türleri Archidokular

Farklı N-Katmanlı türleri vardır Archigibi dokular 3 katmanlı Archidoku, 2 Katmanlı Archimimari ve 1 Katmanlı Archidoku.

İlk önce 3 katmanlı göreceğiz ArchiBu çok önemli.

3 Katmanlı Archidoku

Aşağıdaki şemaya bakarak bunu kolayca tanımlayabilirsiniz. 3 katmanlı mimari üç farklı katmana sahiptir.

  • Sunum katmanı
  • İş Mantığı katmanı
  • Veritabanı katmanı
3 Katman Archidoku şeması
3 Katman Archidoku şeması

Burada, bu üç katmanı anlamak için basit bir öğrenci formu örneği kullandık. Formda öğrenciyle ilgili şu bilgiler yer alıyor: İsim, Adres, E-posta ve Fotoğraf.

Kullanıcı Arayüzü Katmanı veya Sunum Katmanı

3 Katmanlı Archidoku

Sunum Katmanı

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
// Object of the Property layer
clsStudent objproperty=new clsStudent();
// Object of the business layer
clsStudentInfo objbs=new clsStudentInfo();
// Object of the dataset in which we receive the data sent by the business layer
DataSet ds=new DataSet();
// here we are placing the value in the property using the object of the
//property layer
objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());

// In this following code we are calling a function from the business layer and
// passing the object of the property layer which will carry the ID till the database.
ds=objbs.GetAllStudentBsIDWise(objproperty);

// What ever the data has been returned by the above function into the dataset
//is being populate through the presentation laye.
txtId.Text=ds.Tables[0].Rows[0][0].ToString();
txtFname.Text=ds.Tables[0].Rows[0][1].ToString();
txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();
txtemail.Text=ds.Tables[0].Rows[0][3].ToString();

Code açıklama

  • Yukarıdaki kod, uygulamaların ön uç görünümünün temel tasarımını ve diğer katmanların işlevlerinin çağrılmasını tanımlayarak bunların birbirleriyle entegre olmasını sağlar.

İş Erişim Katmanı –

Bu, uygulama katmanından veriyi alıp veri katmanına aktaran iş katmanının işlevidir.

  • İş mantığı, istemci katmanı ile veri erişim katmanı arasında bir arayüz görevi görür.
  • Veri doğrulama, hesaplamalar, veri ekleme/değiştirme gibi tüm iş mantığı, iş mantığı katmanı altında yazılır.
  • Bu, istemci ve veri katmanı arasındaki iletişimi daha hızlı ve kolay hale getirir.
  • Bir görevi tamamlamak için gerekli olan uygun bir iş akışı etkinliğini tanımlar.
// this is the function of the business layer which accepts the data from the
//application layer and passes it to the data layer.
public class clsStudentInfo
{
	public DataSet GetAllStudentBsIDWise(clsStudent obj)
	{
	 DataSet ds=new DataSet();
	 ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function
	 return ds;
	}
}

Kodun açıklaması

Kod, uygulama katmanından veri alacak ve veri katmanına iletecek olan iş katmanının fonksiyonunu kullanmaktadır. İş katmanı kodları, sunum katmanında ve veri katmanında tanımlanan fonksiyonlar arasında aracı görevi görür ve fonksiyonları karşılıklı olarak çağırır.

Veri Erişim Katmanı

İş katmanından verileri alıp veritabanına gerekli işlemi gerçekleştiren veri katmanı fonksiyonudur.

// this is the datalayer function which is receiving the data from the business
//layer and performing the required operation into the database

public class clsStudentData // Data layer class
{
	// object of property layer class
	public DataSet getdata_dtIDUise(clsStudent obj)
	{
	 DataSet ds;
	 string sql;
	 sql="select * from student where Studentld=" +obj.id+ "order by Studentld;
	 ds=new DataSet();
	//this is the datalayer function which accepts the sql query and performs the
	//corresponding operation
		ds=objdt.ExecuteSql(sql);
		return ds;
	}
}

Kodun açıklaması

Yukarıdaki veri kümesi katmanında tanımlanan kod, sistem tarafından istenen tüm isteği kabul eder ve veritabanında gerekli işlemleri gerçekleştirir.

2 Katmanlı Archidoku

İstemci-Sunucu mimarisine benzer, iletişim istemci ve sunucu arasında gerçekleşir.

Bu tür yazılım mimarisinde, sunum katmanı veya kullanıcı arayüzü katmanı istemci tarafında çalışırken, veri kümesi katmanı sunucu tarafında yürütülür ve depolanır.

İstemci ve sunucu arasında iş mantığı katmanı veya ara katman bulunmamaktadır.

Tek Katmanlı veya 1 Katmanlı Archidoku

En basit yöntemdir, çünkü uygulamayı kişisel bir bilgisayarda çalıştırmaya eşdeğerdir. Bir uygulamanın çalışması için gerekli tüm bileşenler tek bir uygulama veya sunucuda bulunur.

Sunum katmanı, İş mantığı katmanı ve veri katmanının tümü tek bir makinede bulunur.

Çok Katmanlı Avantajları ve Dezavantajları Archidokular

Her tasarım tercihi gibi, çok katmanlı yaklaşım da aşağıda özetlenen bazı dezavantajlarının yanı sıra belirgin avantajlar da sunmaktadır.

Avantajlar Dezavantajlar
ölçeklenebilirlik Çaba Artışı
Veri Integrity Karmaşıklığın Artması
Reus yeteneği
Azaltılmış Dağıtım
Geliştirilmiş Güvenlik
Geliştirilmiş Kullanılabilirlik

Dolayısıyla, gerçek dünyadaki iş sorunlarını şifreleyen ve görevin tamamını tamamlamak için verilerin nasıl güncellenebileceğini, oluşturulabileceğini, saklanabileceğini veya değiştirilebileceğini belirleyen bir programın parçasıdır.

N Katmanlı Architecture İpuçları ve Geliştirme

Yazılım uzmanlarının mimarinin tüm katmanları üzerinde tam kontrol sahibi olması gerektiği göz önüne alındığında, n-katmanlı mimariye ilişkin ipuçları aşağıda verilmiştir:

  1. SOAP XML gibi bir teknik kullanarak katmanları birbirinden olabildiğince ayırmaya çalışın.
  2. Harita oluşturmak için bazı otomatik araçlar kullanın.ping İş mantığı katmanı ile ilişkisel veritabanı katmanı (veri katmanı) arasında bir bağlantı kurulmasını sağlayan araçlar. Bu bağlantıların modellenmesinde yardımcı olabilecek araçlar mevcuttur.ping Kullanılan teknikler arasında .Net için Entity Framework ve Hibernate gibi örnekler yer almaktadır.
  3. İstemci sunucu katmanında, tüm istemciler için ortak kodu mümkün olduğunca ayrı bir kütüphaneye yerleştirin. Bu, tüm istemci türleri için kodun yeniden kullanılabilirliğini en üst düzeye çıkaracaktır.
  4. Performansı hızlandırmak için mevcut bir katmana bir önbellek katmanı eklenebilir.

SSS

Katman, sunum veya iş mantığı gibi kodun mantıksal olarak ayrılmasını ifade eder. Tier ise bu katmanların farklı makinelere fiziksel olarak ayrılmasını sağlar. Bir tier üzerinde birden fazla katman çalışabilir veya her katmanın kendi tier'ı olabilir.

Hayır. MVC, tek bir uygulama içindeki kodu düzenlemek için kullanılan bir tasarım modelidir; oysa 3 katmanlı mimari, sunum, mantık ve veriyi katmanlar arasında fiziksel olarak ayırır. MVC bileşenleri serbestçe etkileşime girerken, 3 katmanlı mimaride katmanlar katı bir yukarıdan aşağıya doğru iletişim kurar.

Yaygın seçenekler arasında .NET yer almaktadır. Java (Spring) ve iş mantığı için Node.js, HTML/JavaSunum için kullanılan betik çerçeveleri ve veritabanları gibi araçlar: MySQLSQL Server veya Oracle Veri katmanı için. Entity Framework ve Hibernate gibi ORM'ler katmanları birbirine bağlar.

Yapay zeka genellikle iş mantığı katmanına veya ayrı bir hizmet katmanına eklenir. Öneriler, dolandırıcılık tespiti ve arama gibi özelliklere güç verirken, sunum ve veri katmanları değişmeden kalır.ping Mimari modüler ve bakımı kolaydır.

Evet. Yapay zeka destekli izleme, trafik artışlarını tahmin edebilir ve her katmanı bağımsız olarak otomatik olarak ölçeklendirebilir. Ayrıca yükleri dengeleyebilir, darboğazları tespit edebilir ve veritabanı sorgularını optimize edebilir.ping Büyük ölçekli istemci-sunucu uygulamaları, değişen talebe karşı duyarlı kalır.

Bu yazıyı şu şekilde özetleyin: