27
intelligence innovation integrity NServiceBus / Mule ESB Comparison February, 2015 Michael Byrne Practice Director, Integration and Custom Solutions [email protected] Doug Gregory Practice Director, Enterprise Architecture [email protected] www.spitfiregroup.com

NServiceBus Mule ESB Comparison

Embed Size (px)

Citation preview

Page 1: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

NServiceBus / Mule ESB Comparison

February, 2015

Michael Byrne

Practice Director, Integration and Custom Solutions

[email protected]

Doug Gregory

Practice Director, Enterprise Architecture

[email protected]

www.spitfiregroup.com

Page 2: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Overview

• Apples and Oranges are both food

• NServiceBus and Mule are both ESBs

Page 3: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

High-Level Comparison

• Code-centric API / Framework

• One-way / request-response / publish-subscribe messaging

• Sagas for long running processes

• Good for messaging between .NET applications

NServiceBus

• Configuration Centric

• Integration-platform-as-a-service (IPAAS)

• Heterogeneous environmentMule ESB

Page 4: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

NServiceBus Challenges

• Cannot necessarily be plugged directly into existing WCF

services without changes

• Web App

• Send to another tier (service tier) which then publishes

(Don’t use Publish from Web Application!).

• Command -> Event architecture

• http://www.make-awesome.com/2010/10/why-not-publish-

nservicebus-messages-from-a-web-application/

• Requires Service layers as either custom windows services,

or NServiceBus.Host.exe services.

• Easier to configure using NServiceBus Studio extensions

for Visual Studio

Page 5: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Comparative Estimates

• Independently estimated a 66% reduction in the needed

development effort compared to a implementation against an

existing NServiceBus architecture.

• Matches numbers we later learned from MuleSoft

• After initial architecture patterns are created, skill level to

apply the patterns is lower

Page 6: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Mule Connectors

• Out-of-box access to many systems

• SalesForce• Streaming API support allows for integration from behind a firewall

(Bayeux protocol based on COMET – similar to SignalR)

• ServiceNow

• SQL Server (JDBC)

• Concur

• Many More – 125+ Connectors

Page 7: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Mule Support for Microsoft Platform

With MuleSoft’s Anypoint Platform instantly access a large library of Microsoft products and enable cross-platform connectivity:

Page 8: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Vision for developer experienceCall .NET assets in the context of

a Mule flow

Build and debug integrationcomponents in VS.NET

Page 9: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

.Vision for Microsoft Platform

RESTful APIsSOAP APIs

RAML for .NET (Coming Soon)

AMQP Connector

WCF/JAX Support

Visual Studios Designer Integration(coming soon)

BizTalk Migrator(coming Soon)

MSMQ Connector

.NET Connector

Microsoft Application Connectors (Dynamics, SharePoint, SQL Server)

Page 10: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with

SalesForce

• NServiceBus

• Connectivity• Need a web application listener exposed through the firewall to

receive SalesForce events. Follow Command – Event pattern to

handle events in Services tier.

• or a custom implementation of Bayeux protocol to receive streaming

events, AND a custom Windows Service for polling implementation to

guarantee message reliability

• API• Need to implement custom code to call SalesForce APIs

• Mule

• Connectivity• Add an endpoint for streaming.

• Add a polling endpoint for reliability

• API• SalesForce connector provides extremely easy / no-code API access

Page 11: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with

SalesForce – Flows

Page 12: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with

SalesForce - Upsert

Page 13: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with

SalesForce – Streaming Flow

Page 14: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with

SalesForce – Polling Flow

Page 15: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario - Integration with COTS

Database

• May not be able to have COTS send an NServiceBus

message

• NServiceBus

• Need a scheduled polling solution, either NServiceBus

scheduler, or a custom Windows Service.

• Need a mechanism to track progress (watermark).

• Need to implement database access code

• Need to create an consume events and translate to APIs

in various systems

• Mule

• Built-in polling / watermarking

• Built-in JDBC access / infrastructure

• Datamapper can map data between message payloads

and APIs

Page 16: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with COTS

Database – Polling

Page 17: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with COTS

Database – Polling XML

Page 18: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Scenario – Integration with COTS

Database – Data Mapper

Page 19: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Staged Event Driven Architecture

(SEDA)

• Each flow is treated as a configurable Stage

http://www.mulesoft.org/documentation/display/current/Tuning+Performance

Page 20: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Mule ESB - Enterprise

• Self-contained 480 MB distribution

• Includes an integrated management console website

Page 21: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

CloudHub

• Lighter set of Admin features

• Requires network connections back into SQL databases

Page 22: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

AnyPoint API Platform

(RAML developer experience inside VS.NET IDE)

Anypoint Studio

API Designer

API Manager

API Notebook

Page 23: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

RAML Example

Mule is working on adding RAML design to Visual Studio

Page 24: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Mule for C# Developers

AnyPoint Studio

•Based on Eclipse

•Source Code integration

•No custom code integration

MEL

•Mule Expression Language (based on MVEL / MVFLEX Expression Language)

•Java / JavaScript syntax

Groovy

•Dynamic Language based on Java

Spring

•Dependency Injection

Maven

•Build and Template Management

Java

•Writing simple POJOs instead of POCOs

•Helper classes

•Classes to override and extend behavior

Page 25: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Platform Tools Comparison

NServiceBus Mule ESB

Code Centric Configuration Centric

C# .NET Java / Invoke .NET Business Logic

Visual Studio AnyPoint Studio (Eclipse)

MSMQ (other pluggableTransports)

MSMQJMS / AMQP (ActiveMQ / RabbitMQ, etc)

MS Build Maven

Unity / Castle Windsor / Spring.NET / StructureMap / Autofac / Niject / other

Spring (Beans)

NServiceBus.Host.Exe or custom service

Mule ESB / Mule Management Console

Windows Clustering Active-Active Shared Memory Clustering

Page 26: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Spitfire Lessons Learned

NServiceBus

• Good solution for integrating custom .NET applications where you control the code

• Integrating with Cloud or COTS solutions where you don’t control the code can require a lot of custom code to get messages onto the ESB

Mule ESB

• Good solution if you have a heterogeneous environment, or know you will need to integrate with Cloud or COTS in the future

• A working Mule application can be developed through AnyPoint Studio with no Java code / Spring / Maven / Groovy

• Minimize Java dependencies by engaging specific resources or outside help with basic setup / architecture, then leverage that architecture across configuration-based flows.

Page 27: NServiceBus Mule ESB Comparison

intelligenceinnovationintegrity

Questions / Discussion

???