Olay güdümlü mimari (EDA), ortamdaki değişikliklere tepki veren uygulamaları veya sistemleri tasarlamak ve uygulamak için bir yapı sağlayan bir yazılım tasarım modelidir. Bu reaktif davranış tipik olarak olayların alınmasını, işlenmesini ve gönderilmesini kapsayarak sistem bileşenlerinin ayrık bir şekilde çalışmasına olanak tanır, böylece ölçeklenebilirliği ve uyarlanabilirliği artırır.
Olay Odaklı Mimarinin Doğuşu
Olay güdümlü programlamanın tarihi, grafik kullanıcı arayüzlerinin (GUI'ler) ilk günlerine kadar uzanır ve kökenleri 1960'ların sonu ve 1970'lerin başına dayanır. Tasarım modeli, doğası gereği öngörülemeyen ve eşzamansız olan, düğme tıklamaları veya tuş vuruşları gibi kullanıcı tarafından başlatılan eylemleri yönetmek için doğal bir çözüm olarak ortaya çıktı. Bu bağlamda, kullanıcı eylemleri, sistem tarafından oluşturulan olaylar veya diğer programlardan gelen mesajlar tarafından belirlenen program akışını ele almak için olay odaklı programlama fikri ortaya çıktı.
1990'ların sonlarında ve 2000'lerde dağıtılmış sistem ve hizmetlerin yükselişi, artan etkileşim karmaşıklığının üstesinden gelmek için daha karmaşık olay odaklı mimarileri gerektirdi ve sonuçta hem iç hem de dış olaylara tepki verebilecek sistemlerin yaratılmasına yol açtı.
Olay Odaklı Mimari Ortaya Çıktı
Olay Odaklı Mimari (EDA), olayların üretimine, tespitine, tüketimine ve tepkisine odaklanan bir yazılım mimarisi paradigmasıdır. Bu olaylar, fareye tıklamak veya bir tuşa basmak gibi bir kullanıcı eylemiyle veya başka bir sistemden mesaj almak gibi bir sistem eylemiyle tetiklenen durum değişikliğini belirtir.
Bir EDA'da, bir sistemin bileşenleri, olayları üreterek ve tüketerek birbirleriyle etkileşime girer; burada bir olay, durumdaki önemli bir değişiklik olarak tanımlanır. Bu bileşenler ayrık bir şekilde çalışarak sistemlerin daha esnek, ölçeklenebilir ve değişen gereksinimlere veya çevre koşullarına uyarlanabilir olmasına olanak tanır.
Olay Odaklı Mimarinin Yapısı ve İşleyişi
Olay odaklı mimarinin iç yapısı dört ana bileşen etrafında döner:
- Etkinlik Yapımcıları: Etkinlikleri oluşturan ve bunları etkinlik kanalında yayınlayan bileşenler.
- Etkinlik Kanalı: Olay dağıtımı için kanal.
- Etkinlik Tüketicileri: Olayları tüketmek için olay kanalına abone olan bileşenler.
- Etkinlik İşlemcileri: Genellikle belirli bir eylemi gerçekleştirerek olaylara tepki veren bileşenler.
Bir EDA süreci şu adımları takip eder:
- Olay Yapımcısı bir durum değişikliğini algılar ve bir olay oluşturur.
- Etkinlik, Etkinlik Kanalında yayınlanır.
- Etkinlik Kanalına abone olan Etkinlik Tüketicileri etkinliği tüketir.
- Olay İşleyicileri olayı işler ve muhtemelen başka eylemleri başlatır.
Bu süreç, hizmetlerin gerçek zamanlı, eşzamansız ve gevşek şekilde bağlanmasını sağlar ve bu da sistemin yanıt verebilirliğine, ölçeklenebilirliğine ve esnekliğine katkıda bulunur.
Olay Odaklı Mimarinin Temel Özellikleri
EDA birkaç farklı özellik sergiler:
- Eşzamansızlık: Etkinlik üreticileri ve tüketicilerin aynı anda etkileşime girmesine ve hatta aktif olmasına gerek yoktur.
- Ayrışma: Etkinliklerin üreticileri ve tüketicileri doğrudan bağlantılı değildir, bu da bağımsızlığı ve izolasyonu teşvik eder.
- Gerçek Zamanlı Yanıt: EDA, sistemlerin gerçek zamanlı bilgilere anında yanıt vermesini sağlar.
- Ölçeklenebilirlik: Eşzamansız ve ayrıştırılmış doğası nedeniyle EDA, daha fazla üreticiye, tüketiciye veya etkinliğe uyum sağlayacak şekilde kolayca ölçeklenebilir.
- Dayanıklılık: Sistemin bir kısmındaki arıza tüm sistemi aksatmaz.
Olay Odaklı Mimari Türleri
Olay Odaklı Mimarilerin çeşitli türleri vardır ve esas olarak olayları ele alma biçimleri farklılık gösterir:
- Olay bildirimi: Bir etkinlik üreticisinin yalnızca bir olayın meydana geldiğine dair bir bildirim gönderdiği, ancak açıkça herhangi bir eylemin gerekli olmadığı en temel EDA türü.
- Olay Tabanlı Durum Transferi: Olay, yükte tüketicilerin kendi durumlarını güncellemek için kullanabileceği bir durum değişikliği taşır.
- Etkinlik Kaynağı: Uygulama durumundaki tüm değişiklikler bir dizi olay olarak saklanır. Bu olaylar daha sonra sorgulanabilir veya olaylar yeniden oynatılarak durum yeniden oluşturulabilir.
- CQRS (Komut Sorgusu Sorumluluk Ayrımı): Durumu güncellemeye yönelik modelin, durumu okumaya yönelik modelden ayrıldığı daha karmaşık bir EDA. Bu performansı, ölçeklenebilirliği ve güvenliği artırabilir.
EDA Türleri | Anahtar özellik |
---|---|
Olay bildirimi | Basit bildirim, hiçbir işlem gerektirmez |
Olay Tabanlı Durum Transferi | Yükte durum değişikliği |
Etkinlik Kaynak Kullanımı | Saklanan olay dizisi |
CQRS | Durumu güncellemek ve okumak için ayrı modeller |
Olay Odaklı Mimarinin Uygulanması ve Yönetilmesi
EDA'lar genellikle hisse senedi alım satım sistemleri, e-ticaret platformları veya IoT sistemleri gibi gerçek zamanlı verilerin ve duyarlılığın önemli olduğu senaryolarda kullanılır. Ancak, eşzamansız ve dağıtılmış doğaları nedeniyle EDA'ları yönetmek ve hata ayıklamak zor olabilir.
Önemli konular arasında olay takibi, veri tutarlılığı ve olay sırası yer alır. Bu zorluklar, uygun günlük kaydı, olay zincirlerini izlemeye yönelik korelasyon tanımlayıcıları, bağımsızlığın sağlanması ve sağlam hata işleme ve kurtarma prosedürlerinin uygulanmasıyla hafifletilebilir.
Karşılaştırmalar ve Ayrımlar
EDA, Hizmet Odaklı Mimari (SOA) veya Temsili Durum Transferi (REST) gibi daha geleneksel, istek odaklı mimarilerle tezat oluşturuyor. SOA ve REST tipik olarak eşzamanlı, doğrudan iletişim ve kesin olarak tanımlanmış sözleşmeler içerirken, EDA eşzamansız, dolaylı etkileşimi ve esnek olay sözleşmelerini vurgular.
Mimari | İletişim | Etkileşim | Sözleşme |
---|---|---|---|
SOA | Senkron | Doğrudan | Sert |
DİNLENMEK | Senkron | Doğrudan | Sert |
EDA | Asenkron | Dolaylı | Esnek |
Olay Odaklı Mimaride Gelecek Perspektifleri ve Teknolojiler
Mikro hizmetlere ve dağıtılmış sistemlere yönelik artan eğilim, gerçek zamanlı veri işlemenin yükselişiyle birleştiğinde, EDA'ları giderek daha alakalı hale getiriyor. Sunucusuz bilgi işlem, gerçek zamanlı analiz ve Nesnelerin İnterneti gibi gelişen teknolojilerin, EDA'ların benimsenmesini daha da artırması bekleniyor.
Gelecekte, EDA'ları daha iyi desteklemek için etkinlik yönetimi araçlarında, hata ayıklama ve izleme yeteneklerinde ve gelişmiş mimari modellerde iyileştirmeler görmeyi bekleyebiliriz.
Proxy Sunucuları ve Olay Odaklı Mimari
Proxy sunucuları, diğer sunuculardan kaynak arayan istemcilerden gelen istekler için aracı görevi görerek çeşitli düzeylerde işlevsellik, güvenlik ve gizlilik sağlar. Bir EDA bağlamında, proxy sunucular olay trafiğini yönetmede, yükleri dengelemede ve ek güvenlik önlemleri sağlamada rol oynayabilir. Örneğin, olay odaklı bir proxy sunucusu, olayları içeriklerine, yüklerine veya diğer faktörlere göre dinamik olarak yönlendirebilir, böylece sistemin uyarlanabilirliğini ve sağlamlığını artırabilir.
İlgili Bağlantılar
Olay Odaklı Mimari hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: