"İleti aktarma" ile "olaya dayalı" arasındaki karışıklığın büyük kısmı mimari ve uygulama detayları ile ilgilidir. Aslında işletim sistemi kullanan olay odaklı sistemler gördüm (ve yazdım) uygulamaları için mesajlar verdim. Sanırım gerçekten mimari fikirlerden bahsediyorsunuz.
Birçok insanın zaten “mesaj iletmeyi” ve “olaya dayalı” ifadelerini belirttiği gibi, belirsizlikten kaçınmak için yeterince iyi bir terim yoktur.
Bir "olay geçiren" sisteme karşı bir "mesaj iletme" sisteminin göreceli değerleri nelerdir?
İleti geçişi
Bir "mesaj geçiyor" sistemi derken, bir nesnenin belirli bir başka nesneye mesaj gönderdiği bir sistemden bahsettiğinizi tahmin ederek başlayacağım. Bu paradigmaya dayanan bir sistem düşündüğümde, genellikle bir şeyi tespit eden bir nesnenin bir şey hakkında söylenmesi gerekenleri bildiği bir sistem düşünüyorum. (Nasıl bildiğini, sadece bildiğini belirtmiyorum.)
Bu tür mimarlık, üreticilerin ve tüketicilerin iyi bildiği sistemler için çok iyidir. Bir mesajın üreticisi onu kimin alması gerektiğini bilir ya da tüketici mesajı kimin alacağını bilir.
Bir bankacılık başvurusu yazıyorsanız, işlemlerinizi kime gönderdiğinizi ve kime geldiklerini gerçekten bilmek isteyebilirsiniz.
Etkinlik Tabanlı
"Olay temelli" bir sistem söylerken düşündüğünüz diğer sistem, bir nesnenin kendisine (kimin varsa) cevap vereceğini bilmeden bir "olay" oluşturduğu sistemdir.
Bu tür etkinlik odaklı mimari, üreticinin etkinliği kimin tükettiği veya tüketicinin etkinliği kimin ürettiği ile ilgilenmediği umrunda olmadığı sistemler için çok iyidir.
Genel olarak, bu sistemler, tüketiciler ve üreticiler arasındaki ilişkiyi bilmediğiniz ve ilişkinin dinamik olmasını beklediğiniz yerlerde mükemmeldir.
Bunu kullandığım bir sistem, uygulamanın gerçekte çalışma zamanında yüklenen dinamik olarak yapılandırılmış modüllerden (eklentiler) oluştuğu bir sistemdi. Bir modül yüklendiğinde, önem verdiği olaylara kaydolurdu. Sonuç, işlevselliği genişletmenin çok kolay olduğu bir sistemdi.
Mesela, normal şartlarda RA cevabına neden olan A durumunun yükselmiş bir Olay EA diyelim. RA cevabına neden olan nesne sadece EA olayını almak için kaydedildi ve geldiğinde ona etki etti. Şimdi, EA'ya RA_1 adlı yeni bir yanıt eklemek istediğimizi varsayalım. Bunu yapmak için, EA arayan ve RA_1 yanıtını üreten yeni bir nesne ekliyoruz.
İşte birkaç örnek (terminolojinizi kullanarak):
- "message Passing" : Patronunuz size zaman çizelgenizi doldurmanızı söyler.
- "olay odaklı" : Bölüm sekreteri, zaman çizelgelerinin bugün geleceğini hatırlatan herkese bir e-posta gönderir.