Çok katmanlı mimari - Multitier architecture

Olarak yazılım mühendisliğinde , çok katmanlı mimarisinin (genellikle şu şekilde de ifade n -tier mimari ) ya da çok katmanlı mimarisinin a, istemci mimarisi sunumu, uygulama işlem ve veri yönetimi fonksiyonları fiziksel ayrıldığı. Çok katmanlı mimarinin en yaygın kullanımı üç katmanlı mimaridir .

N -tier uygulama mimarisi, geliştiricilerin esnek ve yeniden kullanılabilir uygulamalar oluşturabileceği bir model sağlar. Geliştiriciler, bir uygulamayı katmanlara ayırarak, tüm uygulamayı yeniden çalışmak yerine belirli bir katmanı değiştirme veya ekleme seçeneğine sahip olur. Üç katmanlı bir mimari tipik olarak bir sunum katmanı, bir mantık katmanı ve bir veri katmanından oluşur.

Katman ve katman kavramları genellikle birbirinin yerine kullanılsa da, oldukça yaygın bir bakış açısı, gerçekten bir fark olduğudur. Bu görüş, bir katmanın , yazılım çözümünü oluşturan öğeler için mantıksal bir yapılandırma mekanizması, bir katmanın ise sistem altyapısı için fiziksel bir yapılandırma mekanizması olduğunu kabul eder. Örneğin, üç katmanlı bir çözüm, kişisel bir iş istasyonu gibi tek bir katmanda kolayca dağıtılabilir.

Katmanlar

"Katmanlar" mimari desen çeşitli yayınlarda anlatılmıştır.

Ortak katmanlar

Nesneye yönelik tasarıma sahip bir bilgi sistemi için mantıksal çok katmanlı bir mimaride , aşağıdaki dördü en yaygın olanıdır:

  • Sunum katmanı (UI katmanı, görünüm katmanı, çok katmanlı mimaride sunum katmanı olarak da bilinir)
  • Uygulama katmanı (aka hizmet katmanı veya GRASP Denetleyici Katmanı)
  • İş katmanı (diğer adıyla iş mantığı katmanı (BLL), etki alanı mantığı katmanı)
  • Veri erişim katmanı ( kalıcılık katmanı , günlük kaydı, ağ oluşturma ve belirli bir iş katmanını desteklemek için gereken diğer hizmetler)

Etki Alanına Dayalı Tasarım kitabı , ana odak alanı etki alanı katmanı olsa da, yukarıdaki dört katman için bazı yaygın kullanımları açıklamaktadır .

Uygulama mimarisinin iş katmanı ile sunum katmanı arasında açık bir ayrımı yoksa (yani, sunum katmanı iş katmanının bir parçası olarak kabul edilirse), o zaman geleneksel bir istemci-sunucu (iki katmanlı) modeli uygulanmıştır.

Daha yaygın olan kural, uygulama katmanının (veya hizmet katmanının), tipik olarak desteklenen iş işlevselliğini ortaya çıkaran API tanımını kapsayan iş katmanının bir alt katmanı olarak kabul edilmesidir. Uygulama / iş katmanları, aslında, farklı sorumluluklara sahip ek alt katmanları vurgulamak için daha fazla alt bölümlere ayrılabilir. Örneğin, model görünüm-sunum yapan kişi kalıbı kullanılıyorsa, sunucu alt katmanı, kullanıcı arabirimi katmanı ile iş / uygulama katmanı (model alt katmanı tarafından temsil edildiği şekilde) arasında ek bir katman olarak kullanılabilir.

Bazıları, iş katmanları ile altyapı katmanları arasında yer alan, iş altyapısı katmanı (BI) adı verilen ayrı bir katmanı da tanımlar. Bazen "düşük düzeyli iş katmanı" veya "iş hizmetleri katmanı" olarak da adlandırılır. Bu katman çok geneldir ve birkaç uygulama katmanında (örneğin, CurrencyConverter) kullanılabilir.

Altyapı katmanı farklı düzeylere (üst düzey veya düşük düzey teknik hizmetler) bölünebilir. Geliştiriciler genellikle altyapı katmanının kalıcılık (veri erişimi) yeteneklerine odaklanır ve bu nedenle yalnızca kalıcılık katmanı veya veri erişim katmanı (bir altyapı katmanı veya teknik hizmetler katmanı yerine) hakkında konuşurlar. Başka bir deyişle, diğer türden teknik hizmetler her zaman açıkça belirli bir katmanın parçası olarak düşünülmez.

Bir katman diğerinin üstündedir, çünkü ona bağlıdır. Her katman, üstündeki katmanlar olmadan var olabilir ve işlevini yerine getirmek için altındaki katmanlara ihtiyaç duyar. Diğer bir yaygın görüş, katmanların her zaman kesinlikle yalnızca aşağıdaki bitişik katmana bağlı olmadığıdır. Örneğin, rahat katmanlı bir sistemde (katı katmanlı bir sistemin aksine) bir katman, altındaki tüm katmanlara da bağlı olabilir.

Üç katmanlı mimari

Üç katmanlı bir uygulamaya genel bakış.

Üç katmanlı mimari, kullanıcı arayüzünün (sunum), işlevsel süreç mantığının ("iş kuralları"), bilgisayar veri depolamasının ve veri erişiminin , çoğunlukla ayrı platformlarda bağımsız modüller olarak geliştirildiği ve korunduğu bir istemci-sunucu yazılım mimarisi modelidir . . John J. Donovan tarafından Cambridge, Massachusetts'te kurduğu bir alet şirketi olan Open Environment Corporation'da (OEC) geliştirildi .

İyi tanımlanmış arayüzlere sahip modüler yazılımın olağan avantajlarının yanı sıra, üç katmanlı mimari, gereksinimlerdeki veya teknolojideki değişikliklere yanıt olarak üç katmandan herhangi birinin bağımsız olarak yükseltilmesine veya değiştirilmesine izin vermek için tasarlanmıştır . Örneğin , sunum katmanındaki bir işletim sistemi değişikliği yalnızca kullanıcı arabirimi kodunu etkiler.

Tipik olarak, kullanıcı arayüzü, bir masaüstü üzerinde çalışan bilgisayar ya da iş istasyonu ve bir standart kullanır grafik kullanıcı arabirimi , bir ya da daha fazla sayıda ayrı modüller iş istasyonu veya üzerinde çalışan oluşabılır fonksiyonel işlem mantık uygulama sunucusu ve bir RDBMS bir ilgili veritabanı sunucusu ya da ana bilgisayar olduğu bilgisayar veri depolama mantığını içerir. Orta katmanın kendisi çok katmanlı olabilir (bu durumda genel mimari " n- katman mimarisi" olarak adlandırılır ).

Sunum katmanı
Bu, uygulamanın en üst seviyesidir. Sunum katmanı, ürünlere göz atma, satın alma ve alışveriş sepeti içeriklerine göz atma gibi hizmetlerle ilgili bilgileri görüntüler. Sonuçları tarayıcı / istemci katmanına ve ağdaki diğer tüm katmanlara yayınladığı diğer katmanlarla iletişim kurar. Basit bir ifadeyle, kullanıcıların doğrudan erişebilecekleri bir katmandır (bir web sayfası veya bir işletim sisteminin GUI'si gibi).
Uygulama katmanı (iş mantığı, mantık katmanı veya orta katman)
Mantıksal katman, sunum katmanından çıkarılır ve kendi katmanı olarak ayrıntılı işlem gerçekleştirerek bir uygulamanın işlevselliğini kontrol eder.
Veri katmanı
Veri katmanı, veri kalıcılık mekanizmalarını (veritabanı sunucuları, dosya paylaşımları, vb.) Ve kalıcılık mekanizmalarını kapsayan ve verileri açığa çıkaran veri erişim katmanını içerir. Veri erişim katmanı , uygulama katmanına, veri depolama mekanizmalarına bağımlılıkları açığa çıkarmadan veya oluşturmadan depolanan verileri yönetme yöntemlerini ortaya çıkaran bir API sağlamalıdır . Depolama mekanizmalarına bağımlılıklardan kaçınmak, uygulama katmanı istemcileri değişiklikten etkilenmeden veya hatta farkında olmadan güncellemelere veya değişikliklere izin verir. Herhangi bir katmanın ayrılmasında olduğu gibi, iyileştirilmiş ölçeklenebilirlik ve sürdürülebilirlik karşılığında uygulama maliyetleri ve genellikle performans maliyetleri vardır.

Web geliştirme kullanımı

In web geliştirme alanında, üç katmanlı sık sık başvurmak için kullanılır web siteleri , yaygın olarak elektronik ticaret üç katmanda kullanılarak oluşturulan web siteleri,:

  1. Statik içerik ve potansiyel olarak bazı önbelleğe alınmış dinamik içerik sunan bir ön uç web sunucusu . Web tabanlı uygulamada, ön uç, tarayıcı tarafından oluşturulan içeriktir. İçerik statik olabilir veya dinamik olarak oluşturulmuş olabilir.
  2. Orta dinamik bir içerik işleme ve nesil seviyesi uygulama sunucusu (örneğin, Symfony , Spring , ASP.NET , Django , Rails , Node.js ).
  3. Hem veri kümelerini hem de verilere erişimi yöneten ve sağlayan veritabanı yönetim sistemi yazılımını içeren bir arka uç veritabanı veya veri deposu .

Diğer hususlar

Katmanlar arasında veri aktarımı, mimarinin bir parçasıdır. İlgili protokoller, bir veya daha fazla SNMP , CORBA , Java RMI , .NET Remoting , Windows Communication Foundation , soketler , UDP , web hizmetleri veya diğer standart veya tescilli protokolleri içerebilir . Genellikle ara katman yazılımı , ayrı katmanları bağlamak için kullanılır. Ayrı katmanlar genellikle (ancak zorunlu değildir) ayrı fiziksel sunucularda çalışır ve her katmanın kendisi bir küme üzerinde çalışabilir .

İzlenebilirlik

Veri akışlarının uçtan-uca izlenebilirliği, n- tabakalı sistemlerden geçen zorlu bir görevdir ve sistemlerin karmaşıklığı arttığında daha önemli hale gelir. Uygulama Tepki Ölçüm kavram ve tanımlar API'leri performansını ölçmek ve katman arasındaki işlemlerin ilişkilendirmeye yönelik. Genel olarak, "katmanlar" terimi, bir sistemin bileşenlerinin ayrı sunucular, bilgisayarlar veya ağlar (işlem düğümleri) üzerindeki fiziksel dağıtımını tanımlamak için kullanılır. Üç katmanlı bir mimari, üç işlem düğümüne sahip olacaktır. "Katmanlar" terimi, bir işlem düğümünde fiziksel olarak konumlandırılabilen veya bulunmayan bileşenlerin mantıksal bir gruplamasına karşılık gelir.

Ayrıca bakınız

Referanslar

Dış bağlantılar