Çok katmanlı mimari - Multitier architecture

İçinde yazılım Mühendisliği, çok katmanlı mimari (genellikle şöyle anılır n-dier mimari) veya çok katmanlı mimari bir istemci-sunucu mimarisi sunum, uygulama işleme ve veri yönetimi işlevlerinin fiziksel olarak ayrıldığı. Çok katmanlı mimarinin en yaygın kullanımı, üç katmanlı mimari.

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 aşağıdakilerden oluşur: sunum katman, bir etki alanı mantığı katman ve bir veri depolama katman.

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 yazılım çözümünü oluşturan öğeler için mantıksal bir yapılandırma mekanizmasıdır. kademe sistem altyapısı için fiziksel bir yapılanma mekanizmasıdır.[1][2] Örneğin, üç katmanlı bir çözüm, kişisel bir iş istasyonu gibi tek bir katmanda kolayca dağıtılabilir.[3]

Katmanlar

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

Ortak katmanlar

Bir bilgi sistemi için mantıksal çok katmanlı mimaride nesneye yönelik tasarım aşağıdaki dördü en yaygın olanlardır:

Kitap Alan Odaklı Tasarım birincil odak noktası olmasına rağmen yukarıdaki dört katman için bazı yaygın kullanımları açıklar. etki alanı katmanı.[8]

Uygulama mimarisinde 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.[kaynak belirtilmeli ]

Daha genel 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-sunucu desen kullanıldığında, sunucu alt katmanı, kullanıcı arabirimi katmanı ile iş / uygulama katmanı arasında ek bir katman olarak kullanılabilir (model alt katmanı tarafından temsil edildiği gibi).[kaynak belirtilmeli ]

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.[9]

Altyapı katmanı farklı düzeylere (üst düzey veya düşük düzey teknik hizmetler) bölünebilir.[9] 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.[kaynak belirtilmeli ]

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.[4]

Üç katmanlı mimari

Üç katmanlı bir uygulamaya genel bakış.

Üç katmanlı mimari bir istemci sunucusudur yazılım mimarisi kalıbı içinde Kullanıcı arayüzü (sunum), işlevsel süreç mantığı ("iş kuralları"), bilgisayar veri saklama ve veri erişimi bağımsız olarak geliştirilir ve sürdürülür modüller, çoğunlukla ayrı ayrı platformlar.[10] Tarafından geliştirilmiştir John J. Donovan Open Environment Corporation'da (OEC) kurduğu bir alet şirketi Cambridge, Massachusetts.

Modüler yapının olağan avantajları dışında yazılım İyi tanımlanmış arabirimlerle, üç katmanlı mimari, gereksinimlerdeki 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. teknoloji. Örneğin, bir değişiklik işletim sistemi içinde sunum katmanı yalnızca kullanıcı arabirimi kodunu etkiler.

Tipik olarak, kullanıcı arayüzü bir masaüstünde çalışır PC veya iş istasyonu ve bir standart kullanır grafiksel kullanıcı arayüzü, bir iş istasyonunda çalışan bir veya daha fazla ayrı modülden oluşabilen işlevsel süreç mantığı veya uygulama sunucusu, ve bir RDBMS bir veritabanı sunucusu veya ana bilgisayar bilgisayar veri depolama mantığını içeren. Orta katmanın kendisi çok katmanlı olabilir (bu durumda genel mimari "n-dier mimari ").

Sunum katmanı
Bu, uygulamanın en üst seviyesidir. Sunum katmanı, ürünlere göz atma, satın alma ve alışveriş sepeti içerikleri gibi hizmetlerle ilgili bilgileri görüntüler. Sonuçları tarayıcı / istemci katmanına ve ağdaki diğer tüm katmanlara gönderdiği 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ı bir API veri depolama mekanizmalarına bağımlılıkları açığa çıkarmadan veya oluşturmadan depolanan verileri yönetme yöntemlerini ortaya çıkaran uygulama katmanına. 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ı

İçinde web Geliştirme alan, üç katmanlı genellikle başvurmak için kullanılır web siteleri, genellikle elektronik Ticaret üç katman kullanılarak oluşturulan web siteleri:

  1. Bir ön uç Web sunucusu statik içerik ve potansiyel olarak bazı önbelleğe alınmış dinamik içerik. 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 içerik işleme ve oluşturma düzeyi uygulama sunucusu (Örneğin., Symfony, İlkbahar, ASP.NET, Django, Raylar, Node.js ).
  3. Bir arka uç veri tabanı veya Bilgi deposu, hem veri kümelerini hem de veritabanı Yönetim sistemi verilere erişim sağlayan ve yöneten yazılım.

Diğer hususlar

Katmanlar arasında veri aktarımı, mimarinin bir parçasıdır. İlgili protokoller aşağıdakilerden birini veya birkaçını içerebilir: SNMP, CORBA, Java RMI, .NET Uzaktan Erişim, Windows Communication Foundation, prizler, UDP, Ağ hizmetleri veya diğer standart veya tescilli protokoller. Sıklıkla ara 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.

İzlenebilirlik

Veri akışının uçtan uca izlenebilirliği, nDaha yüksek sistemler, karmaşık bir sistem arttıkça daha önemli hale gelen zorlu bir görevdir. Uygulama Tepki Ölçümü kavramları tanımlar ve API'ler performansı ölçmek ve katmanlar arasındaki işlemleri ilişkilendirmek için. 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

  1. ^ Dağıtım Kalıpları (Microsoft Kurumsal Mimarisi, Kalıpları ve Uygulamaları)
  2. ^ Fowler, Martin "Patterns of Enterprise Application Architecture" (2002). Addison Wesley.
  3. ^ Dağıtım Kalıpları (Microsoft Kurumsal Mimarisi, Kalıpları ve Uygulamaları)
  4. ^ a b Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael (1996-08). Kalıp Odaklı Yazılım Mimarisi, Cilt 1, Bir Modeller Sistemi. Wiley, Ağustos 1996. ISBN  978-0-471-95869-7. Alınan http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471958697.html.
  5. ^ Martin Fowler'ın Hizmet Katmanı
  6. ^ Martin Fowler, Hizmet Katmanının Uygulama Katmanı ile aynı olduğunu açıklıyor
  7. ^ GRASP Denetleyici Katmanı ile Uygulama / Hizmet Katmanı karşılaştırması / tartışması
  8. ^ Etki Alanına Dayalı Tasarım, Kitap s. 68-74. Alınan http://www.domaindrivendesign.org/books#DDD.
  9. ^ a b UML ve Kalıpları Uygulama, 3. baskı, sayfa 203 ISBN  0-13-148906-2
  10. ^ Eckerson, Wayne W. "Üç Katmanlı İstemci / Sunucu Mimarisi: İstemci Sunucusu Uygulamalarında Ölçeklenebilirlik, Performans ve Verimliliğe Ulaşmak." Açık Bilgi Sistemleri 10, 1 (Ocak 1995): 3 (20)

Dış bağlantılar