Esb or-not-to-esb-sv-jug
-
Upload
ross-mason -
Category
Technology
-
view
2.233 -
download
0
description
Transcript of Esb or-not-to-esb-sv-jug
To ESB or not to ESB
Ross Mason
MuleSoft
About Me
Agenda
When to ESB When not to ESB Some Options
“Technology selection is notoriously difficult in the enterprise since the criteria and complexity of the problem is often not fully understood until later in the development process.”
I’M TALKING ESB ARCHITECTURE NOT PRODUCT
Note:
ESB Architecture
Reality Check
Know your Architecture
Architecture ChecklistIdentify systems and processes
Create an integration profile
Map data flows
Set performance requirements
Define security requirements
Identify redundancy requirements
Quantify QoS requirements
To ESB
Numerous integration points
Need to grow the architecture
More that one protocol
Mediation requirements
Scalability, Management, Monitoring, Transformation and Security requirements
Strategic Projects
“I’m only using Web Services”
Not to ESB
“We have two integration points”“I just need to FTP a file from my web app”
“We need access to a message queue”
Not to ESB: RDD
Not to ESB: YAGNI
Not to ESB: GOLF
I’ll buy your software
cha-ching
What is Mule?
15
All contents Copyright © 2009, MuleSoft Inc. 16
Not a donkey
All contents Copyright © 2009, MuleSoft Inc. 17
Not a llama
All contents Copyright © 2009, MuleSoft Inc. 18
Not a camel
BaaS: Beer As A Service
All contents Copyright © 2009, MuleSoft Inc. 19
BaaS
All contents Copyright © 2009, MuleSoft Inc. 20
BaaS
All contents Copyright © 2009, MuleSoft Inc. 21
BaaS
All contents Copyright © 2009, MuleSoft Inc. 22
Java-based integration platform
Focus on ease of development and reuse of components
World’s most used Open Source ESB
What is Mule?
Easy to test, run and deploy
What does Mule give you?
Service Creation and Hosting
Service Mediation
Message Routing
Data Transformation
SEDA EngineSEDA EngineRoutingRoutingSecuritySecurity SchedulingSchedulingDeploymentDeployment
TransformTransform
Error HandlingError Handling
Cloud ConnectCloud Connect
REST, WSREST, WS PatternsPatternsFlowFlow
Data FeedsData Feeds
Bindings: JSON/XMLBindings:
JSON/XML
MessagingMessaging DatabaseDatabase FTP/FileFTP/File ApplicationsApplications
AJAX / JSAJAX / JS
Cloud Connect
Core Platform
ContainerServices
Connectivity
Mule Components
Runtime is 40mb
Why Mule?
Lightweight
Proven (2,500+ Enterprise Deployments)
Robust
Flexible: build, test, deploy
What are the options?
Web Services• Pros:
– Language, platform, and transport agnostic– Mediation support– Built-in error handling (faults)– Extensibility
• Cons:– heavy-weight – verbose– Hard to develop, requires tools– Sprawling WS-* standards
REST• Pros:
– Language and platform agnostic– Small learning curve, less reliance on tools– Concise & Clean
• Cons:– Assumes a point-to-point communication– Lack of standards support for security, policy, reliable
messaging, etc.– Tied to the HTTP transport model
• Pros
– Quick solution
– Tailored to the specific problem
• Cons
– Need to maintain more code
– Difficult to change over time
– Need to build security, management, reliability
– Slow to add new capabilities
– No core business activity
Custom code
30
Integration Scenarios
Simple Integration
Frontend(web app)Frontend(web app)
Backend ServiceBackend Service
REST / Web Services
Partner Data integration
B2B ServicesB2B Services
Partner
Partner
Web Services
Public API
ServicesServices
Public APIPublic API
Mobile Client Web Client
REST
Cloud App Integration
OrchestrationOrchestration
Public APIPublic API
Mobile Client Web Client
REST
Salesforce Paypal
TwitterMagento
Mixed Integration
Frontend(web app)Frontend(web app)
Backend ServiceBackend Service
ESB
Backend ApplicationBackend ApplicationBackend ApplicationBackend Application
REST JMS FTP
ESB Integration
ESB
Inventory Fulfillment
Service
Inventory Fulfillment
Service
Inventory BiddingService
Inventory BiddingService
Order ServiceOrder Service
Inventory Service
Inventory Service
Supplier 1 Supplier 2 Supplier 3
Inventory
Purchasingcreate supply bid bid selected place order
order fromSupplier 3
request bids
out of stock
request items
Mule: 3rd Generation Integration
• Gen 1: Mediation and connectivity• Gen 2: Light-weight, Service Container• Gen 3: Cloud ready, application container*
* Not your traditional 3 tier apps
Summary
• Technology selection must be driven by architecture
• REST/WS are better suited to other integration problems
• JMS good for decoupling Java apps
• ESB Architectures are good for integrations with multiple participants
• Mule is for all of the above
Questions?
We are hiring in [email protected]: @rossmasonhttp://mulesoft.org