Yazılım Mimarileri — Bölüm 5
Uzay Tabanlı Mimari (Spaced-based Architecture)
Uzay tabanlı mimari, ölçeklendirme ve aynı anda kullanım problemlerinin adreslenmesi ve çözüme ulaştırması üzerine dizayn edilmiştir.
Bulut mimarisi olarak da bilinen uzay tabanlı mimari uygulamanın ölçeklenmesini limitleyen etmenleri en az indirir. Yüksek ölçeklenebilirlik, merkezi veritabanı kısıtlamasının kaldırılması ve replike edilmiş bellek içi veri klavuzlarının kullanılmasıyla elde edilir. Uygulama verileri bellekte tutulur ve tüm aktif işlem birimleri arasında çoğaltılır. İşlem birimleri yük artışına ve azalışına göre dinamik olarak başlar veya kendini kapatır.
Merkezi bir veri tabanı olmadığı için, veritabanı darboğazı ortadan kalkar ve neredeyse sonsuza kadar ölçeklenebilir bir uygulama imkanı sağlar.
Bu mimaride iki ana bileşen vardır: İşlem Birimi (Processing Unit), Sanallaştırılmış Middleware (Virtualized Middleware)
İşlem Birimi
İşlem Birimi uygulama bileşenlerini içerir. Web tabanlı bileşenleri ve arkayüz (backend) iş mantığı birimlerini de kapsar. Bu birim, bellek içi veri klavuzlarıyla birlikte uygulama modülleri ve yük devertme işlemi için isteğe bağlı asenkron kalıcı depolama barındırır. Sanallaştırılmış middleware bileşeni iletişimden ve bakımdan sorumludur. Veri senkronizasyonunu ve istek yönetmini kontrol eden bileşenleri içerir.
Mimarinin Bileşenleri
- Mesajlaşma gridi
- Bu yapı input istekleri ve oturum bilgilerini yönetir. Bir istek sanallaştırılmış middleware bileşenine geldiğinde mesajlaşma gridi, hangi işlem biriminin uygun olduğunu ve bu isteğin hangi işlem birimine iletileceğinin kararını verir.
- Veri gridi
- Mimarideki en önemli bileşendir. Veri gridi, veri güncellendiğinde işlem birimleri arasında verinin kopyalanması sürecinin yönetilmesinde veri kopyalama motoru ile etkileşim halindedir. Mesajlaşma gridi, gelen isteği uygun olan herhangi bir işlem birimine iletebeileceğinden, her işlem birimi kendi bellek içi veri gridinde aynı veriye sahip olmalıdır.
- İşlem Gridi
- Opsiyonel bir bileşendir. Birden fazla işlem birimi olduğu zamanlarda dağıtık iletilerin işlenme sürecini yönetir. İşlem birimi türleri arasında koordinasyon gerektiren bir istek gelirse işlem gridi bu iki işlem birimi arasındaki yönetimi ve koordinasyonu sağlar.
- Dağıtım Yöneticisi
- Yük durumuna göre işlem birimlerinin başlatılması ve durdurulmasından sorumlu yapıdır. Bu bileşen, kullanıcı yükünü ve yanıt süresini sürekli gözlemler. Yük artarsa yeni işlem birimleri başlatır, yük azaldığında ise tam tersi şekilde işlem birimlerini durdurur. Uygulamanın istediği ölçeklenebilirlik isteklerini karşılamak için önemli bir bileşendir.
Uzay temelli mimariyi uygulamak hem karışık hem de masraflıdır. Değişken yüklere sahip web tabanlı uygulamalar için güzel bir seçenektir. Büyük miktarda operasyonel veri içeren, büyük ölçekli ilişkisel veritabanı uygulamaları için uygun değildir. Bu mimarinin merkezi bir veri deposu ihtiyacı yoktur.
Alternatif olarak bulut tabanlı mimari denmesine rağmen mimarinin bileşenleri bulut tabanlı sunucularda olmak zorunda değildir. Kolaylıkla lokal sunucularda da tutulabilirler.
Değerlendirme kısmı okuduğum kitapta 6 ana başlık altında toplanıyor. Bu şekildeki anlatım hoşuma gittiği için ben de aynı yapıda değerlendirme kısmını oluşturdum.
Uzay Temelli Mimarinin Değerlendirilmesi;
- Çeviklik: Yüksek
- İşlem birimleri kolayca ayağa kaldırılıp indirilebilen yapılardır. Bunun yanında uygulamaya gelen kullanıcı yükünün değişimine hızlı bir şekilde ayak uydurabilir. - Dağıtım Kolaylığı: Yüksek
- Birbirinden ayrık ve dağıtık olmamasına rağmen gelişmiş bulut tabanlı araçlar, uygulamaların sunuculara kolayca gönderilmesine olanak tanır ve bu dağıtımı kolaylaştırır. - Testedilebilirlik: Düşük
- Yüksek kullanıcı yükü oluşturmak hem pahalıdır hem de fazla zaman alacaktır. Bu da uygulamanın ölçeklenebilirliğinin test edilmesini zorlaştırır. - Performans: Yüksek
- Bellek içi veri erişimi ve ön bellek (cache) mekanizmaları sayesinde yüksek performanslıdır. - Ölçeklenebilirlik: Düşük
- Merkezi bir veritabanına bağlılığın olmaması yüksek ölçeklenebilirlik sağlar. - Geliştirme kolaylığı: Yüksek
- Gelişmiş önbellekte tutma (caching) ve bellek içi veri gridi bu mimarinin geliştirilmesini görece karmaşık bir hale sokar. Mimariyi oluştururken kullanılan araçlara ve ürünlere olan aşinalığın az olması bu karmaşıklığın ana nedenlerindendir.
Mimari analizlerinin özeti
Kaynakça: Software Architecture Patterns — Mark Richards