WCF tabanlı SOA'nın bir kısmını bir servis veri yolu modeline (muhtemelen nServiceBus) geçirmek için bir proje ve Komut Sorgu Ayrımı elde etmek için bazı temel pub-sub kullanarak düşünüyorum .
SOA'da, hatta servis otobüsü modellerinde yeni değilim, ancak yakın zamana kadar "ayırma" kavramımın çalışma zamanı veritabanı yansıtma ve çoğaltma ile sınırlı olduğunu itiraf ediyorum. Yine de, bu fikre ilgi duyuyorum, çünkü bariz dezavantajların birçoğunu (özellikle de uygun işlem desteğinin olmaması) ortadan kaldırırken , sonunda tutarlı bir sistemin tüm faydalarını sağlıyor gibi görünüyor .
Ben temelde Udi Dahan da konuyla ilgili bir çok okumak ettik (Microsoft dünyasında en azından) ESB mimarileri üzerinde gurusu, ama aslında diyor bir şey Kafamı kurcalayan:
Üzerinde daha fazla alana sahip daha büyük varlıklar elde ettikçe, aynı varlıklar ile çalışan daha fazla aktör elde ederiz ve bir şeyin herhangi bir zamanda herhangi bir özelliğine dokunma olasılığı arttıkça eşzamanlılık çatışmalarının sayısı artar.
[...]
CQRS'nin temel bir unsuru, kullanıcılarımızın niyetini yakalamamızı sağlamak için kullanıcı arayüzünün tasarımını yeniden düşünmektir; evli. Yukarıda gördüğümüz gibi, veri değişiklikleri için Excel benzeri bir kullanıcı arayüzü kullanmak amacı yakalamaz.
- Udi Dahan, Arındırılmış CQRS
Alıntıda anlatılan perspektiften, bu mantıkla tartışmak zor. Fakat SOA'ya göre tahıllara karşı çıkıyor gibi görünüyor. Bir SOA'nın (ve genel olarak gerçekten hizmetlerin), diğer birçok avantajın yanı sıra ağ sohbetini en aza indirgemek için kaba mesajlarla uğraşması bekleniyor .
İyi mesaj kuyruğu olan ve RPC'nin bagajlarının hiçbirine sahip olmayan yüksek oranda dağıtılmış sistemleriniz olduğunda ağ sohbetinin daha az sorun olduğunu anlıyorum, ancak sorunu tamamen ortadan kaldırmak akıllıca görünmüyor. Udi, neredeyse her özellik değişikliğinin (yani alan güncellemesi) kendi komutu olması gerektiğini söylüyor; bu, bir kullanıcının yüzlerce veya binlerce kombine varlığı ve özelliği geleneksel olarak olduğu gibi potansiyel olarak güncellediğini hayal etmek zor internet servisi.
SQL Server'daki bir toplu güncelleştirme, yüksek düzeyde parametreleştirilmiş iyi bir sorgu, tablo değerli parametre veya bir hazırlama tablosuna toplu ekleme verildiğinde saniyenin bir kısmını alabilir; bu güncellemelerin tümünü birer birer işlemek yavaş, yavaş, yavaş ve OLTP veritabanı donanımı, ölçeklendirme / genişletme için en pahalı olanıdır.
Bu rakip kaygıları uzlaştırmanın bir yolu var mı? Yanlış düşünüyor muyum? Bu sorunun CQS / ESB dünyasında iyi bilinen bir çözümü var mı?
Değilse, bir Komuta'daki ayrıntı düzeyinin "doğru seviyesinin" ne olması gerektiğine nasıl karar verilir? Bazı "standart" bir başlangıç noktası olarak kullanılabilir - veritabanlarında 3NF gibi - ve sadece dikkatli profil oluşturma potansiyel olarak önemli bir performans avantajı önerdiğinde sapar mı?
Ya da bu, çeşitli uzmanlar tarafından ifade edilen birkaç güçlü düşünceye rağmen, gerçekten sadece bir fikir meselesi olan şeylerden biri mi?