Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

TYZM-612: Yazılım Mimarileri

6.Hafta: Yazılım Mimarisi


Örüntüleri – Alan Tabanlı
Mimari
6.1 Alan Tabanlı Mimari

•Birçok web tabanlı uygulama benzer bir yapıya sahiptir:


• Kullanıcı isteği tarayıcıdan alınır ve web sunucusuna gelir
• Daha sonra web sunucusu isteği uygulama sunucusuna gönderir
• En sonunda istek veritabanı sunucusuna aktarılır
•Kullanıcı sayısı arttığında, bu yapılar tek tek ölçeklendirilmeye
çalışılır:
• Veritabanı sunucusunu ölçeklendirmek, uygulama sunucusundan, uygulama sunucusunu
ölçeklendirmek, web sunucusundan daha zor ve daha pahalıya gelir.
•Böyle bir yapıda veritabanı sunucusu da ölçeklendirildiği halde
sıkıntı devam ediyorsa bellekleme vb. çözümlere başvurulur.

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 2
6.1 Alan Tabanlı Mimari

•Alan tabanlı mimari ölçeklendirme ve eş zamanlı çalışma


sorunları için geliştirilmiştir.
•Eğer sistemdeki kullanıcı sayısı değişken ise ve zaman zaman
umulmadık rakamlara ulaşabiliyorsa bu mimari kullanılabilir.
•Bu model katmanları ölçeklendirmekten daha verimlidir.

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 3
6.2 Alan Tabanlı Mimari - Ölçeklendirme

•Dikey Ölçeklendirme : Daha hızlı sunucular kullanmak


•Yatay Ölçeklendirme : Daha çok sunucu kullanmak
•Lineer (Doğrusal) Ölçeklendirme : İşlem yapan birimlerin
sayısını arttırmak
•Dinamik Ölçeklendirme : Talebe göre ölçeklendirme

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Ders Öğretim Elemanı" tarafından hazırlanmıştır. 4
6.2 Örüntü Tanımı

•Bu mimari adını ‘Dağıtık Paylaşımlı Bellek’ olarak bilinen ‘tuple


space’ kavramından almıştır.
•Amacı ölçeklendirmeyi önleyen faktörleri en aza indirmektir.
•Ölçeklendirme merkezi veritabanını ortadan kaldırıp, kopyaları
oluşturulan bellek bazlı veri şebekeleri ile gerçekleştirilir.
•Uygulama verisi, bellekte tutulur ve tüm aktif işleme ünitelerine
kopyalanır.
•İşleme üniteleri ihtiyaca göre dinamik olarak açılıp, kapatılır.
•Merkezi bir veritabanı olmadığı için, sonsuz ölçeklendirme
mümkündür.

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 5
6.2 Örüntü Tanımı

•Bu mimari, kulanıcı isteğini alıp işleyen tipik web sayfalarına


uygundur.
•Mimaride iki önemli parça İşleme Birimi İşleme Birimi İşleme Birimi

vardır:
• İşleme Birimi
• Sanallaştırılmış Ortakatman

Sanallaştırma Ortakatmanı

Mesajlaşma Veri İşleme Yükleme


Şebekesi Şebekesi Şebekesi Yöneticisi

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 6
6.2 Örüntü Tanımı

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Ders Öğretim Elemanı" tarafından hazırlanmıştır. 7
6.2 Örüntü Tanımı

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Ders Öğretim Elemanı" tarafından hazırlanmıştır. 8
6.2 Örüntü Tanımı

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Ders Öğretim Elemanı" tarafından hazırlanmıştır. 9
6.3 İşleme Birimi

•İşleme Birimi uygulamanın bazı bileşenlerini içerir


•Bu bileşenler web bileşenleri olduğu gibi iş katmanı da olabilir.
•İşleme Birimlerinin içeriği İşleme Birimi İşleme Birimi İşleme Birimi

uygulamanın türüne göre


değişebilir
• Bir web uygulaması tek bir işleme
biriminden oluşabilir Sanallaştırma Ortakatmanı
• Büyük uygulamalar fonksiyonel
Mesajlaşma Veri İşleme Yükleme
olarak iş birimlerine bölünebilir. Şebekesi Şebekesi Şebekesi Yöneticisi

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 10
6.3 İşleme Birimi

•Bir İşleme Birimi aşağıdaki bileşenlerden oluşur:


• uygulama modülleri,
• bellek bazlı veri şebekesi, İşleme Birimi

• opsiyonel olarak, hata durumları için eş zamanlı


olmayan kalıcı yedekleme
• sanallaştırma ortakatmanı tarafından kullanılan ve
bir işleme biriminde oluşan değişikliği diğer Bellek Verisi

aktif işleme birimlerine aktaran veri eşitleme makinesi

Veri Eşitleme Makinesi

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 11
6.4 Sanallaştırma Ortakatmanı

•Sanallaştırma ortakatmanı düzenin işleyişini ve iletişimi


sağlar.
•Veri senkronizasyonu ve İşleme Birimi İşleme Birimi İşleme Birimi

isteklerin gerçekleştirilmesi
görevlerini yapar.
Sanallaştırma Ortakatmanı

Mesajlaşma Veri İşleme Yükleme


Şebekesi Şebekesi Şebekesi Yöneticisi

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 12
6.5 Mesajlaşma Şebekesi

•Mesajlaşma şebekesi gelen istekleri ve oturum bilgilerini


yönetir.
•Sanallaştırma ortakatmanına bir İşleme Birimi İşleme Birimi İşleme Birimi İşleme Birimi

istek geldiğinde, mesajlaşma


şebekesi, hangi işlem biriminin bu
işi yapabileceğini tespit eder ve
yönlendirir.
•Seçim işlemini ‘round-robin’ ya Sanallaştırma Ortakatmanı
da ‘sıradaki’ gibi algoritmalarla Mesajlaşma
Şebekesi
Veri
Şebekesi
İşleme
Şebekesi
Yükleme
Yöneticisi
yapabilir.
1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 13
6.6 Veri Şebekesi
•Veri şebekesi, bir veri güncellemesi olduğunda işleme
birimlerindeki, veri eşitleme makineleri ile etkileşime geçerek
verinin eşitlenmesini gerçekleştirir.
•Mesajlaşma birimi, herhangi bir İşleme Birimi İşleme Birimi İşleme Birimi İşleme Birimi

işleme birimini kullanabileceği


için, tüm bu birimlerde veri
birbirine eşit olmalıdır.
•Veri eşitleme işlemi paralel bir
şekilde ve eş zamanlı olmadan, Sanallaştırma Ortakatmanı

ama mikrosaniyeler içerisinde Mesajlaşma


Şebekesi
Veri
Şebekesi
İşleme
Şebekesi
Yükleme
Yöneticisi

gerçekleşir.
1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 14
6.7 İşleme Şebekesi

•İşleme şebekesi, bir işi birden fazla işlem birimi yaptığında,


aradaki koordinasyon ile görevlidir.
•Hangi işlem birimi, hangi sıra ile İşleme Birimi İşleme Birimi İşleme Birimi İşleme Birimi

işleyecek, hangileri paralel


çalışacak vb. gibi işlerden
sorumludur.
Sanallaştırma Ortakatmanı
Mesajlaşma Veri İşleme Yükleme
Şebekesi Şebekesi Şebekesi Yöneticisi

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 15
6.8 Yükleme Yöneticisi

•Yükleme yöneticisi, gelen yük bilgilerine göre hangi,


işlemleme birimlerinin açılıp kapanması gerektiğine karar
verir. İşleme Birimi İşleme Birimi İşleme Birimi İşleme Birimi

•Bu bileşen, bileşenlerin cevap


sürelerini ve yük dağılımlarını
sürekli olarak takip eder ve
doğru ölçeklenmeyi sağlamak Sanallaştırma Ortakatmanı

için açma-kapama yapar. Mesajlaşma


Şebekesi
Veri
Şebekesi
İşleme
Şebekesi
Yükleme
Yöneticisi

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 16
6.9 Dikkate Alınması Gereken Konular

•Karmaşık ve pahalı bir mimaridir.


•Yük dağılımı değişken olan web siteleri için idealdir. Örn.
sosyal medya, açık arttırma siteleri gibi.
•Geleneksel büyük veri hitiyacı olan ve büyük veri tabanları
olan sistemler için uygun değildir.
•Bir merkezi veritabanı gerekliliği yoksa da, başlangıçta bellek
tabanlı verileri yüklemek ve kalıcı veri güncellemeleri için bir
veritabanı bulundurulur.
1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 17
6.9 Dikkate Alınması Gereken Konular

•İşleme birimleri içerisinde geçici veriler ile aktif olmayan


işlem verileri, bellek tabanlı veritabanını küçük tutmak için
ayrılır.
•Bu mimari bulut sunucuları üzerinde olmak zorunda değildir.
Yerel sunucular üzerinde de oluşturulabilir.
•Bu mimari için aşağıdaki ürünler kullanılabilir:
• GemFire, JavaSpaces, GigaSpaces, IBM Object Grid, nCache, ve Oracle Coherence

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 18
6.9 Dikkate Alınması Gereken Konular

•Alan Tabanlı mimari «Dağıtık Önbellekleme» teknolojileri ile


karıştırılmamalıdır.
•Dağıtık önbellekleme teknolojisi sadece verinin dağıtık
sunucularda ve genellikle bellekte saklanması yoluyla çalışır.
•Örnek: Apache Redis

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Ders Öğretim Elemanı" tarafından hazırlanmıştır. 19
6.10 JavaSpaces

•Dağıtık bir uygulama geliştirmek için bileşenler arasında


mesajlaşma ya da uzak nesne çağırma kullanılır.
•JavaSpaces teknolojisinde bileşenler ortak bir ‘space’ yani
‘paylaşımlı bellek’ üzerinde nesne alış-verişi yaparak anlaşırlar.
•Bir bileşen bu alandan nesne alabilir,
nesne yazabilir, ve nesne kopyası
oluşturabilir

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 20
6.10 JavaSpaces

•Bu ‘paylaşımlı bellek’ alanlarının özellikleri:


• Birçok bileşen aynı anda bu alanlara uzaktan erişebilir.
• Alan nesneler için güvenli depolama sağlar. Buraya bir nesne konulduğunda, bir başkası
ya da bu nesneyi koyan bileşen silene kadar orada kalıcıdır.
• Alanlar bileşenlerin nesne arayıp bulmasını sağlar. Bir bileşen elindeki nesne şablonuna
uygun bir nesneyi arayıp bulabilir.
• Alanlar işlemler açısından tutarlıdır. Bileşenlerin
işlemleri birbirinden ayrık ve atomiktir.
• Alanda nesneler pasiftir. Bir bileşen bu nesnenin bir
kopyasını alır, gerekli değişiklikleri yapar ve geriye yazar.

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 21
6.10 JavaSpaces

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 22
6.11 Örüntü Analizi

•Hızlı Değişim (Değişen ortama hızlı uyum sağlama) : Yüksek


• İşlem birimlerinin hızlı açılıp-kapatılması ve bunlara değişimlerin kolay aktarılması nedeniyle.
•Yükleme/Kurulum: Yüksek
• Dağıtık ve ayrık bir yapı olmasa da dinamik ve bulut-tabanlı yapısı kurulumu hızlandırır.
•Test edilebilirlik: Düşük
• Özellikle ölçeklendirme testi kolay değildir.
•Performans : Yüksek
• Bellek tabanlı veri kullanımı ve bellek tabanlı yedekleme hızlanmayı sağlar.
•Ölçeklenebilirlik: Yüksek
• Merkezi veritabanı olmadığı için büyük avantaj.
•Geliştirme Kolaylığı : Düşük
• Bellek tabanlı geliştirme, veri eşitleme zor. Programcıların genellikle bilmediği ortamlar. Kodlama
hatalarının performansı ve ölçeklendirmeyi azaltma riski.

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 23
6.12 Örüntü Analizi Özeti

Mikroservisler
Mikroçekirdek
Olay Temelli

Alan Tabanlı
Katmanlı
Hızlı Değişim

Yükleme/Kurulum

Test Edilebilirlik

Performans

Ölçeklenebilirlik

Geliştirme
Kolaylığı

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için " Dr. Bilgin Avenoğlu " tarafından hazırlanmıştır. 24
Ders Sonu

•Soru & Cevap

1.04.2020 İlgili sunu Ahmet Yesevi Üniversitesi için "Dr. Bilgin Avenoğlu" tarafından hazırlanmıştır. 25

You might also like