Juval Lowy and .NET Service Bus

I have recently been to an Israeli user group meeting in which iDesign’s Juval Lowy gave a lecture about the new Azure .Net Service Bus for web services written in WCF.

Basically a service bus is a router, similar to the one you use in your office network. Instead of needing to update the configuration for multiple clients each time a service they are connected to is moved to a new location or changes channel, all clients/services connect to a central hub. In this case the service bus is located online, somewhere on Microsoft servers.

Here is what the meeting’s page says about the lecture:

The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative, and arguably, it is the most accessible, ready to use, powerful, and needed piece. The service bus allows clients to connects to services across any machine, network, firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were part of the same local network, and doing all that without compromising on the programming model or security. The service bus also supports callbacks, event publishing, authentication and authorization and doing all that in a WCF-friendly manner. This session will present the service bus programming model, how to configure and administer service bus solutions, working with the dedicated relay bindings including the available communication modes, relying on authentication in the cloud for local services and the various authentication options, and how to provide for end-to-end security through the relay service. You will also see some advanced WCF programming techniques, original helper classes, productivity-enhancing utilities and tools, as well as discussion of design best practices and pitfalls.

Although Juval clearly know a lot on the subject, and apparently is currently doing a tour lecture on the subject (at least in Israel and Belgium), I have to say the talk was not very interesting for experienced WCF developers. This is due to the fact the interface is almost identical to that of a simple WCF service, therefor I kept getting a feeling of “been there, done that“. It’s very easy to work the .NET service bus.

The .NET service bus supports both TCP/IP and HTTP based connections (highlight of the lecture: “to add WS support just add an ass“), and allows both connectivity through the cloud or P2P (after negotiation). There is a limited usage to SSL transport level security, something that alarms me a bit, as this is the best performance/security ratio option in WCF.

I do have to wonder regarding the usability of this platform. Many companies I know moved to SOA architecture, splitting central servers to many services. Such systems need a service bus residing inside the local network due to two reasons:

  1. Local network is more secure. Although Mr. Lowy waved his hands and replied “message level security is NP complete” to a question on the subject, I doubt IT managers or security officers in large firms would accept that.
  2. Local network is faster. Although a large downwards bandwidth is easily obtained, for a true 2 way communication you need a decent outgoing bandwidth (unlike ADSL lines, for example), and that’s not cheap.

There are local alternatives, both commercial (Microsoft Biztalk server) and open source (Udi Dahan’s NServiceBus).

I guess only time will tell if this new technology is successful.

Category: Programming, Technology, WCF | Tags: , ,

5 Responses to “Juval Lowy and .NET Service Bus”

  1. Udi Dahan

    Actually nServiceBus and the .NET Service Bus address different levels of the problem domain. Probably the best way to describe it is that the .NET Service Bus could serve as a transport implementation for nServiceBus.

    Hope that clears things up a bit :)

  2. Michael Heitland

    Hi,

    Did I get it right that Microsoft’s .NET services bus is designed to be used only with Azure, not with intranet WCF services hosted on a local IIS. For the latter scenario I should rather use nServiceBus as a reliable means to exchange events / messages between services that may be partly offline.

    Cheers,
    Michael

  3. dotmad

    Michael, I agree - the current cloud services offered by Microsoft (and others) are not meant to be used in closed networks.
    It’s sad the security industry (and others) gets ignored completely.

  4. Bill

    In the limited exposure i have had thus far i can tell you that the app fabric service bus is more than a enterprise service bus hosted in the cloud. it enables any device with a line of site to the service bus (basically if it can open a web page) to be connected to any other device without the need of a static ip, NAT, DNS and it does so behind any load balancer, firewall,etc.

    it solves a major problem in realizing connected systems. any device can be addressed. i could for instance have a public address on the web mywebsite.com and actually server the pages off of a cell phone. the phone connects to the service bus endpoint and initiates a listener in the fabric. any request that comes into the mywebsite.com endpoint are routed down to the device.

    and this is all done by opening a outbound one way channel. the magic of the service bus is that it can run two communication in the outbound channel. including request reply and multicast!

    Bill

  5. Bram

    I’m currently working on an open source WCF based service bus. You can find it here: http://rockbus.codeplex.com/. It supports dynamic (@run-time) subscriptions, subcription repository (database), pluggable transports, XPath based content-based routing, transactional delivery over wcf protocols, roundrobin delivery, pluggable subscription evaluation, and more. Have a look!


Leave a Reply