The world of .NET from a Connected Systems MVP & INETA Speaker

Enterprise Service Buses (ESBs) Drive SOA Adoption Part 2

Series – Enterprise Service Buses (ESBs) Drive SOA Adoption

Blog Post 2 – Neuron as an ESB - Connectivity

Introduction

Last time around, in the first installment of this series, I began by giving my rationale for looking deeper at the Neuron ESB, particularly around it being the only packaged out-of-the-box ESB built with 100% Microsoft technologies as well as meeting most of the traits of the ESB definitions and characteristics that I presented. Then I presented the value scenarios for an ESB. Next, I used Wiki’s ESB topic as a list of general common traits of an ESB. Following that, I focused on the ESB as an operating environment for services, the ESB as a common messaging fabric, and the ESB as an Architectural Pattern.

In this installment, I will leave the world of the abstract, and talk concretely and deeply about Neuron as a manifestation of the architectural pattern and possessing the desired characteristics of an ESB:  a combination of SOA + MOM + EDI +EDA. Before getting into connectivity, I would like to talk at a deeper level about why I use Neuron and what makes it unique.

What Do I Like About Neuron?

I talked a bit about why Neuron is my personal ESB last time. I have no desire to repeat all that but want to focus on three things that I personally like in the product. Don’t get me wrong, I’m not saying that Neuron is perfect. There are some rough edges that need to be ironed out, but in short, it seems to do most of what I need to do.  Three things I want to focus on are the simplicity of the overall GUI-driven product, the fact that it is completely built on the Windows Communication Foundation (WCF), which I feel is the right choice, and finally, how simple it is to set up communication.

Simplicity 

To the first point, I have used a lot of ESBs (and a lot of distributed computing technologies) and Neuron seems to have a balance of features and simplicity that works for me. That manifests in at least three ways for me. First of all, Neuron is not a multi-hour install process like some commercial ESBs, nor is a whole bunch of complicated code concepts you need to understand like some open-source ESBs. You run one Setup.exe and less than five minutes later you have a fully installed and operational ESB. The second aspect is that it is lightweight. The one setup.exe essentially results in two things: a GUI (“The ESB Explorer”), and the “ESB Service.” The ESB Service operates as one NT service. It’s then easy for me to manage. It operates like any NT service, writes to the Event Log and so forth. The third aspect is what separates Neuron from the pack IMHO, and that is that it has a very easy to use GUI.

Why is this important? As we discussed last time, ESBs can be very powerful and rich products, which can lead to a lot of complexity. However, when I launch the Neuron ESB Explorer, I am presented with a UI that is very task-driven, wizard-driven and easy to use. The following screen shot shows the initial screen:

 

As the screen shows, to work with Neuron, it can be as  simple as

1.       Set Up Communication

2.       Set Up Services

3.       Set Up Data

4.       Set Up Integration Functions

Each of these button-clicks leads to a dialog that is a combination of help and task wizards. The example for “Set Up Communication” is a perfect example:

  

Windows Communication Foundation
Another important aspect of Neuron for me is that is completely built on WCF, giving it both power, as well as flexibility. In case you have been sleeping under a rock the last three years, WCF *is* Microsoft’s platform for SOA. As Michele Bustamante states succinctly, “It is a rich technology foundation designed for building distributed service-oriented applications for the enterprise and the web that are secure, reliable, transactional and scalable.” [1] What is the most important thing about this? Again, Michele says it best, “WCF is the evolution of Enterprise Services/COM+, .NET Remoting, System.Messaging, ASP.NET Web Services (ASMX) and Web Services Enhancements (WSE) – all technologies that in that past were employed to satisfy very different distributed computing scenarios. WCF satisfies all of these scenarios including interoperable web services; Web 2.0 programming models such as POX, REST, JSON and RSS/ATOM; classic client-server scenarios; calls across process and machine boundaries behind the firewall; and durable, reliable queued messaging on top of Microsoft Message Queuing (MSMQ).” In short, not only is Microsoft’s *one* distributed communications stack going forward, but it unifies and supplies all the features of existing stacks like MSMQ so you if you want durable, asynchronous, reliable messaging on top of MSMQ you can get it. You can get any other desired transport or quality of service very easily out of the box, or by extending WCF. Neuron, by building on top of WCF not only enables all these scenarios, but since many functions are built as either WCF Services or WCF LOB Adapters, it is very easy to “plug in” new services and adapters.
You may have also noticed from the screen shots, like many ESBs, Neuron provides Topic-Based Publish-Subscribe Asynchronous Messaging. It provides it on top of WCF with the transports and capabilities that you desire. You may wonder what else it provides on top of WCF. Well, WCF is just a framework. You still have to write all your infrastructure services, things that Neuron provides out of the box. It has been my experience that it takes at least six months to really get a .NET developer ramped up on WCF.
My experience, even after 6 years of Indigo/WCF is that you don’t want to write all this crap commonly referred to as “plumbing code.” I worked on an large multi-service WCF project for two years and quite honestly, all the plumbing code we had to write in WCF “sucked” and took a lot of time away from the business problems we really needed to focus on. What are the things that Neuron adds to WCF/.NET that you don’t have to write?
Publish/Subscribe messaging added to WCF
·         Hierarchical Topic-Based Routing
·         Rich Management and Development tools
·         Complete control of transport characteristics
·         Mix and match transports simultaneously
·         Multicast messaging
·         Triggered and Hosted Workflows
·         Fully distributed architecture
·         Powerful mediation capabilities
·         Elegant, easy to learn, configuration not code
Simple Basic Messaging
My absolute favorite feature of the product is that you can get basic messaging set up and going in less than 5 minutes after installing the product. Moreover, anyone can do it, without writing any code. For this portion, I am showing the Quick Start for Basic Messaging, with the kind permission of Neudesic Corp.

 Neuron Quick Start

    Basic Messaging
Target Audience: Administrators, Architects, Developers, Integration Engineer.
Purpose: This quick start will get you sending and receiving messages with Neuron within 5 minutes of installing the product.
Setup:
1. Install Neuron ESB on your local machine. Select the Complete install.
2. From the Start Menu, launch Program Files / Neudesic / Neuron ESB / ESB Explorer.
3. Connect to your local machine as an ESB Server. 

                    

4. When prompted "Do you want to start the ESB Service now?", click Yes.

 

 

5. Launch 2 test clients by selecting Tools > Test Client > 2 Test Clients from the menu.

Wait for 2 test clients to launch.

6. Sign-on Test Clients.

Enter the subscriber Id "Test1' for the first test client and click Connect.

Enter the subscriber Id "Test2" for the second test clients and click Connect.

Both clients should display a green ONLINE indicator shortly.

             

 

7. Load a Message:
On the Test1 client, select the Send tab.
On the Test 2 client, select the Receive tab.
On the Test1 client, select Message > Insert Message > Large Message Order XML > Insert Purchase Order XML from the menu to load a test XML message.

On the Test1 client, click the Send button.

A copy of the message should appear on the Test 2 client's Receive tab.

Congratulations! You have sent a message from one program to another via an ESB.

 

Where Are We?

In this article, I moved from an abstract discussion of ESBs in general to a concrete one focusing on Neuron specifically. Again, Neuron is not perfect and will not solve your every problem. However, it is so much better than building all this stuff yourself and the product has some key capabilities that I focused on. These included the simplicity of the product, the building of the product on the Windows Communication Foundation, and Basic Connectivity. As you saw, you can set up basic messaging within 5 minutes of installing the product. Instead of writing about 500 lines of WCF code for basic publish-subscribe, you can this basic communication without any code.

In the next installment, I will look at the overall architecture of Neuron, from both the inside and outside of the bus.

» Similar Posts

  1. Enterprise Service Buses (ESB) Drive SOA Adoption - Part 1
  2. Enterprise Service Buses (ESBs) Drive SOA Adoption - Part 3
  3. SOA: Making the Paradigm Shift Part 7 of N

» Trackbacks & Pingbacks

  1. Pingback from Enterprise Service Buses (ESBs) Drive SOA Adoption Part 2 : Sam …

  2. Blog Post 3 – High Level View of the Neuron Architecture Introduction Last time around, in the second installment of this series, I moved from an abstract discussion of ESBs in general to a concrete one focusing on Neuron specifically. I focused

  3. Pingback from Weekly #0 (beta) | loosely coupled

    Weekly #0 (beta) | loosely coupled — January 22, 2009 2:35 PM
Trackback link for this post:
http://samgentile.com/Web/trackback.ashx?id=1691

» Comments

    There are no comments. Kick things off by filling out the form below.

» Leave a Comment