NServiceBus vs WCF
Disadur dari NServiceBus Homepage
NServiceBus merupakan open source software yang dibuat oleh Udi Dahan (SOA expert). Tujuan si pembuat tentu saja untuk menjadikan NServiceBus sebagai alat yg membuat pembangunan aplikasi berorientasi service menjadi lebih mudah.
NServiceBus (NSB) dirancang untuk kolaborasi antar business-oriented services. NSB tidak bermaksud untuk menggantikan teknologi RPC seperti WCF. WCF tentu saja memiliki tempat pada arsitektur SOA tidak mungkin hanya menggunakan NServiceBus saja.
Nah NSB bukan merupakan service bus yg terpusat seperti BizTalk. Jadi NSB bukan terletak di tengah dimana komunikasi melalui central tersebut. Centralized communication seperti itu merupakan tanggung jawab dari Broker bukan Bus. Bus bukan tidak terlihat secara fisik. NSB lebih dekat ke WCF daripada ke BizTalk
Sama seperti WCF, Nservicebus juga berjalan pada process di dalam application code. Jadi sama seperti ketika kita membuat hosting untuk WCF kita juga melakukan hal tersebut dengan NServiceBus.Jadi bus di NSB tersebut merupakan sesuatu yang virtual.
Pada NServiceBus tidak ada blocking call seperti yang terdapat pada WCF. Komunikasi dilakukan secara asynchronous. Hal ini tentu saja membutuhkan perubahan pola pikir. WCF juga tidak memfokuskan pada paradigma queue based messaging.
Sangat mudah membangun aplikasi dengan teknik RPC yang merupakan keunggulan dari WCF. Simple dan sangat mudah untuk membuatnya bekerja. Di sanalah masalah itu muncul. RPC tidak dapat mengatasi masalah scalability dan fault tolerance. Sangat sulit mengatasi kedua masalah diatas dengan RPC. NServiceBus hadir untuk menyelesaikan masalah tersebut.
Publish and Subscribe pattern dari Messaging tidak disupport oleh WCF. Untuk apa membuat sendiri jika NServiceBus telah menyediakan nya. Mengenai dasar2 dan pattern pada teknologi messaging dapat dibaca pada buku Enterprise Integration Pattern dan website pendukungnya adalah EIP Home
Pada WCF teknologi jika call yang kita lakukan terhadap service error maka data yang kita kirim akan hilang dan kita harus mengulang lagi. Pada teknologi messaging data tersebut akan tetap disimpan dan akan diproses jika waktunya sudah tepat. Tidak ada message yang hilang karena masalah yang terjadi di server.