Yazılım Mimari Stilleri
Yazılım mimari stilleri, bir sistemin kullandığı bileşen ve bağlayıcı türlerini ve bunların nasıl birleştirilebileceğine dair kısıtlamaları tanımlayan, adlandırılmış, yeniden kullanılabilir düzenleme şemalarıdır.
Tanım
Bir mimari stil, bileşen ve bağlayıcı türlerinden oluşan bir kelime dağarcığı ve bu türlerin örneklerinin nasıl yapılandırılabileceğine dair bir dizi kısıtlama ile karakterize edilen bir mimariler ailesidir.
Kapsam
Bu konu, katmanlı, istemci-sunucu, boru-ve-filtre, depo (veri merkezli), olay güdümlü ve yayınla-abone ol, mikroçekirdek, hizmet odaklı ve mikrohizmet mimarileri gibi klasik stilleri; ağ tabanlı sistemler için REST mimari stilini; ve bir stilin diğerine tercih edilmesini motive eden nitelik-özellik takaslarını kapsamaktadır.
Temel sorular
- Her bir stili hangi bileşen ve bağlayıcı kelime dağarcığı tanımlamaktadır?
- Belirli bir stil hangi kalite özelliklerini teşvik etmekte veya engellemektedir?
- Stiller tek bir sistem içinde nasıl birleştirilmektedir?
- REST ve mikrohizmetler gibi ağ tabanlı ve dağıtık stiller, klasik stillerden nasıl farklılaşmaktadır?
Temel kuramlar
- Bileşen-Bağlayıcı Kelime Dağarcıkları Olarak Stiller
- Shaw ve Garlan, mimarileri, ilişkili kısıtlamalarla birlikte bileşen ve bağlayıcıların tekrar eden kalıpları aracılığıyla karakterize etmişler ve bu sayede alana boru-ve-filtre, katmanlı ve depo gibi stillerden oluşan bir kelime dağarcığı kazandırmışlardır.
- REST Mimari Stili
- Fielding, REST'i — durumsuzluk, tek tip arayüz, önbelleklenebilirlik, katmanlı sistem — gibi bir dizi kısıtlama olarak türetmiş; bu kısıtlamalar web'in ölçeklenebilirliğini ve evrimleşebilirliğini açıklamakta ve ağ tabanlı hizmet tasarımına rehberlik etmektedir.
Klinik önem
Uygun bir stilin erken seçilmesi, sistem yapısını baskın kalite gereksinimleriyle uyumlu hale getirmektedir; stil ile ihtiyaçlar arasındaki zayıf bir uyum, geliştirme başladıktan sonra düzeltilmesi zor ve maliyetli olabilmektedir.
Kanıt ve kılavuzlar
ISO/IEC/IEEE 42010, mimari tanımını bakış açıları ve görünümler açısından çerçevelemektedir; bu çerçevede stiller belgelenmekte ve analiz edilmektedir.
Tarihçe
Mimari stillerin kataloglanması, yazılım mimarisinin tanınan bir disiplin haline gelmesiyle birlikte 1990'ların ortalarında Shaw ve Garlan ile başlamıştır; Fielding'in 2000 tarihli tezi REST'i resmileştirmiş ve 2010'lu yıllar, bulut ölçekli sistemler için mikrohizmet ve olay güdümlü stillerin yükselişine tanıklık etmiştir.
Öne çıkan isimler
- Mary Shaw
- David Garlan
- Roy Fielding
- Len Bass
İlgili konular
Temel eserler
- shaw1996
- fielding2000
- bass2012
Sıkça sorulan sorular
- Bir mimari stil ile tasarım deseni arasındaki fark nedir?
- Bir mimari stil, sistem genelindeki organizasyonu — bileşen ve bağlayıcı türlerini ve bunları birleştirme kurallarını — tanımlarken, bir tasarım deseni bileşenler içinde daha yerelleşmiş bir tasarım sorununu çözmektedir; stiller daha yüksek bir granülerlik seviyesinde çalışmaktadır.
- Bir sistem birden fazla stil kullanabilir mi?
- Evet. Gerçek sistemler genellikle heterojen olup, stilleri — örneğin, sunum katmanı olay güdümlü olan ve hizmetleri REST aracılığıyla iletişim kuran katmanlı bir mimari gibi — her bir stilin takaslarının en iyi uyduğu yerde uygulanmasıyla birleştirmektedir.