Loading ...
Sorry, an error occurred while loading the content.

RE: [nservicebus] Articulating the Benefits of nServiceBus over MSMQ/WCF

Expand Messages
  • Udi Dahan
    NServiceBus was designed to support reliable, robust, and testable components in an SOA. WCF was designed to replace the programming model of ASMX, Enterprise
    Message 1 of 6 , May 23, 2008
    View Source
    • 0 Attachment

      NServiceBus was designed to support reliable, robust, and testable components in an SOA.

       

      WCF was designed to replace the programming model of ASMX, Enterprise Services (COM+), and Remoting. Just as a bit of history, the Indigo team at first didn’t want to take MSMQ and tried implementing their own durable messaging technology. After a while, they gave up and just looked at how they could bang MSMQ to fit the already set Indigo design.

       

      NServiceBus takes a messaging centric view of communication, based on one-way and pub/sub.

       

      WCF supports everything, except pub/sub. You can see that the one-way model is a bit of a “patch” requiring attributes, whereas the regular RPC style is best supported. In other words, WCF takes an interface-based (methods on a remote object) centric view, and adds various modifications as needed.

       

      WCF over MSMQ is one of the less convenient WCF models.

       

      It’s not that you can’t make WCF+MSMQ do what you want, its just that its much easier with nServiceBus.

       

      Conversely, things that you shouldn’t be doing (like synchronous calls) are very difficult with nServiceBus, but easily done with WCF. In other words, nServiceBus guides you away from making architectural mistakes that you may only find out about in production.

       

      It’s kind of hard to distil dozens of books on distributed systems into a single bulleted list, because a lot of the topics are large-scale production-time issues that most developers would not have had experience with.

       

      For example, I can tell you that doing pub/sub between services without a good distributed caching technology doesn’t make much sense. Microsoft doesn’t have a solution for that – you’d need to go 3rd party. The problem is that they don’t even tell you that you need one. Or sorry, they tell you to use BizTalk.

       

      It’s really a choice of an architecture-driven solution, or a technology driven one.

       

      NServiceBus is about supporting you as you scale above what even BizTalk can handle (http://udidahan.weblogs.us/2008/05/21/nservicebus-performance/).

       

      I’m not sure what WCF is about in that respect. I can tell you that Microsoft would prefer you use BizTalk than scaling WCF to those levels.

       

      Hope that helps.

       

      --

      Udi Dahan - The Software Simplist

       

      From: nservicebus@yahoogroups.com [mailto:nservicebus@yahoogroups.com] On Behalf Of adenysenko
      Sent: 23 May 2008 03:24
      To: nservicebus@yahoogroups.com
      Subject: [nservicebus] Articulating the Benefits of nServiceBus over MSMQ/WCF

       

      So we jumped in with both our feet and are using nServiceBus with some
      initial success (at least in dev) and other people in our company are
      beginning to ask about it. What I am having some trouble doing is
      articulating the benefits/features of nServiceBus over plain old MSMQ
      with WCF. Can someone articulate in a bulleted list of
      features/benefits of nServiceBus?

      No virus found in this incoming message.
      Checked by AVG.
      Version: 8.0.100 / Virus Database: 269.24.0/1459 - Release Date: 21/05/2008 17:34

    • Andrej Medic
      Hi Udi, Although not yet released, the Configuration Service 2.0 project being developed by Gregory Leake at Microsoft promises to allow for the failover and
      Message 2 of 6 , May 23, 2008
      View Source
      • 0 Attachment
        Hi Udi,

        Although not yet released, the Configuration Service 2.0 project
        being developed by Gregory Leake at Microsoft promises to allow for
        the failover and load balancing of services. I think the sample
        application might also use MSMQ. Any thoughts on how this might
        compare/compliment nServiceBus?

        http://msdn.microsoft.com/en-gb/netframework/bb499684.aspx

        Andrej.
      • Udi Dahan
        I heard something about this a couple of months ago. I m still not exactly sure what s in it. When it comes to load balancing , the distributor is the
        Message 3 of 6 , May 23, 2008
        View Source
        • 0 Attachment

          I heard something about this a couple of months ago. I’m still not exactly sure what’s in it.

           

          When it comes to “load balancing”, the distributor is the approach nServiceBus provides. It avoids much of the problems found in other load balancers in that the computing nodes “pull” work in, instead of the load balancer pushing the work out (even based on certain properties of the grid machines).

           

          Since it’s very difficult to know in a heterogeneous server farm where servers have varying capabilities, and given that the effect of processing a message may be high IO, high CPU, high memory, or any combination thereof, which server should be handed the next message. As such, worker machines/processes notify the distributor when they have completed working on a message, ergo, they’re ready for a new one.

           

          It’s interesting to me to see that more and more guidance is coming out of Microsoft around the fact that message-orientation is important. Especially considering the method based view exposed by WCF.

           

          --

          Udi Dahan - The Software Simplist

           

          From: nservicebus@yahoogroups.com [mailto:nservicebus@yahoogroups.com] On Behalf Of Andrej Medic
          Sent: 23 May 2008 15:32
          To: nservicebus@yahoogroups.com
          Subject: [nservicebus] Re: Articulating the Benefits of nServiceBus over MSMQ/WCF

           

          Hi Udi,

          Although not yet released, the Configuration Service 2.0 project
          being developed by Gregory Leake at Microsoft promises to allow for
          the failover and load balancing of services. I think the sample
          application might also use MSMQ. Any thoughts on how this might
          compare/compliment nServiceBus?

          http://msdn.microsoft.com/en-gb/netframework/bb499684.aspx

          Andrej.

          No virus found in this incoming message.
          Checked by AVG.
          Version: 8.0.100 / Virus Database: 269.24.0/1461 - Release Date: 22/05/2008 16:44

        • adenysenko
          That does help. I think I hear you saying that there is a bit of overlap and/or similarties with WCF/MSMQ but nServiceBus originally began before WCF was even
          Message 4 of 6 , May 23, 2008
          View Source
          • 0 Attachment
            That does help. I think I hear you saying that there is a bit of
            overlap and/or similarties with WCF/MSMQ but nServiceBus originally
            began before WCF was even available and that one of the big benefits of
            nServiceBus is to simplify the development of a high-scalability
            distributed architecture.

            The pub-sub support is a big one for us and seems easy to use. I can
            see this being helpful in broadcast type scenarios where you want one
            event/message to trigger several other actions across processes with
            each action being atomic and decoupled from every other handler.

            Also, I do see the Saga as a simple to use and developer friendly
            alternative to WCF/WF in cases where you want a durable service and
            call correlation against an entity.

            Udi, thanks for your great work and your willingness to share your
            talent with the community. I feel that I am learning a lot about
            asynchronous 'ESB' style architecture just by using and studying the
            code base.
          • Udi Dahan
            Ø Udi, thanks for your… You’re most welcome. -- Udi Dahan - The Software Simplist From: nservicebus@yahoogroups.com [mailto:nservicebus@yahoogroups.com]
            Message 5 of 6 , May 24, 2008
            View Source
            • 0 Attachment

              Ø  Udi, thanks for your…

               

              You’re most welcome.

               

              --

              Udi Dahan - The Software Simplist

               

              From: nservicebus@yahoogroups.com [mailto:nservicebus@yahoogroups.com] On Behalf Of adenysenko
              Sent: 24 May 2008 04:35
              To: nservicebus@yahoogroups.com
              Subject: [nservicebus] Re: Articulating the Benefits of nServiceBus over MSMQ/WCF

               

              That does help. I think I hear you saying that there is a bit of
              overlap and/or similarties with WCF/MSMQ but nServiceBus originally
              began before WCF was even available and that one of the big benefits of
              nServiceBus is to simplify the development of a high-scalability
              distributed architecture.

              The pub-sub support is a big one for us and seems easy to use. I can
              see this being helpful in broadcast type scenarios where you want one
              event/message to trigger several other actions across processes with
              each action being atomic and decoupled from every other handler.

              Also, I do see the Saga as a simple to use and developer friendly
              alternative to WCF/WF in cases where you want a durable service and
              call correlation against an entity.

              Udi, thanks for your great work and your willingness to share your
              talent with the community. I feel that I am learning a lot about
              asynchronous 'ESB' style architecture just by using and studying the
              code base.

              No virus found in this incoming message.
              Checked by AVG.
              Version: 8.0.100 / Virus Database: 269.24.0/1462 - Release Date: 23/05/2008 07:20

            Your message has been successfully submitted and would be delivered to recipients shortly.