nservicebus mule esb comparison
Post on 18-Jul-2015
633 Views
Preview:
TRANSCRIPT
intelligenceinnovationintegrity
NServiceBus / Mule ESB Comparison
February, 2015
Michael Byrne
Practice Director, Integration and Custom Solutions
mbyrne@spitfiregroup.com
Doug Gregory
Practice Director, Enterprise Architecture
dgregory@spitfiregroup.com
www.spitfiregroup.com
intelligenceinnovationintegrity
Overview
• Apples and Oranges are both food
• NServiceBus and Mule are both ESBs
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
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
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
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
intelligenceinnovationintegrity
Mule Support for Microsoft Platform
With MuleSoft’s Anypoint Platform instantly access a large library of Microsoft products and enable cross-platform connectivity:
intelligenceinnovationintegrity
Vision for developer experienceCall .NET assets in the context of
a Mule flow
Build and debug integrationcomponents in VS.NET
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)
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
intelligenceinnovationintegrity
Scenario – Integration with
SalesForce – Flows
intelligenceinnovationintegrity
Scenario – Integration with
SalesForce - Upsert
intelligenceinnovationintegrity
Scenario – Integration with
SalesForce – Streaming Flow
intelligenceinnovationintegrity
Scenario – Integration with
SalesForce – Polling Flow
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
intelligenceinnovationintegrity
Scenario – Integration with COTS
Database – Polling
intelligenceinnovationintegrity
Scenario – Integration with COTS
Database – Polling XML
intelligenceinnovationintegrity
Scenario – Integration with COTS
Database – Data Mapper
intelligenceinnovationintegrity
Staged Event Driven Architecture
(SEDA)
• Each flow is treated as a configurable Stage
http://www.mulesoft.org/documentation/display/current/Tuning+Performance
intelligenceinnovationintegrity
Mule ESB - Enterprise
• Self-contained 480 MB distribution
• Includes an integrated management console website
intelligenceinnovationintegrity
CloudHub
• Lighter set of Admin features
• Requires network connections back into SQL databases
intelligenceinnovationintegrity
AnyPoint API Platform
(RAML developer experience inside VS.NET IDE)
Anypoint Studio
API Designer
API Manager
API Notebook
intelligenceinnovationintegrity
RAML Example
Mule is working on adding RAML design to Visual Studio
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
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
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.
intelligenceinnovationintegrity
Questions / Discussion
???
top related