Post on 17-Jul-2015
transcript
Mule – an Integration Platform
3Confidential and Proprietary
• Integration platform for connecting any application, data source or API, whether in the cloud or on-premises
• Why ‘Mule’? Avoid the ‘donkey work’ of the infrastructure work before you can implement any logic
-Ross Mason, MuleSoft founder
Introduction to Mule
4Confidential and Proprietary
• MuleSoft’s Architecture Themes
1. Mule ESB – Enterprise Service Bus
2. Event Based Model
3. API Centered Design
4. Anypoint Studio – Visual Design
• Languages Used
• Mule as an Open Source project
• Mule Flows
1. Mule ESB – Enterprise Service Bus
5Confidential and Proprietary
Designed around the Enterprise Service Bus
Communication & Interaction between services via a common Message Bus
1. Mule ESB – Enterprise Service Bus
6Confidential and Proprietary
• Advantages:
– SOA Architecture: A services-based abstraction layer to make enterprise business applications accessible
–Avoiding a Point-to-Point integration architecture
–Flexibility in application lifecycle management
1. Mule ESB – Enterprise Service Bus
7Confidential and Proprietary
• Competitors:
– Commercial ESB Products: IBM WebsphereESB, Oracle ESB etc.
– Open Source ESB: Jboss ESB, Apache ServiceMix (Camel), WSO2
2. Event Based Model
8Confidential and Proprietary
• Put Salmon in the Oven
• Wait for 20 minutes
• Remove Salmon fromthe Oven
• Put water in the pot
• Wait for water to boil
• Put in Pasta
• Wait until pasta is al-dente
OR
Put a timer and do next task in the meantime
2. Event Based Model
9Confidential and Proprietary
Add Threads (more cooks) Respond to events (kitchen timer)
JAVA JavaScript, node.js
Blocking (synchronous) Non-blocking (asynchronous)
Vs.
2. Event-based: Concurrent Connections & Memory Usage
10Confidential and Proprietary
Doesn’t need to spawn new processes or threads for each request
2. Event Based Model
• Advantages:
–Shorten the delta between actions and feedback
–Architecture can handle larger throughput & do it more efficiently
11Confidential and Proprietary
3. API Centered Design
13Confidential and Proprietary
The new application components –
the API is part of the application’s design
3. API Centered Design
15Confidential and Proprietary
• API Portal (APIhub) is where API developers
and application developers interact to design,
test, and discover APIs
• Design APIs with the API Designer
(RESTful API Modeling Language
to build the API interface)
Social Media for APIs
3. API Centered Design
16Confidential and Proprietary
• Advantages:
• APIs provide a cleaner way to access
the application data
• APIKit toolkit to develop,
document, and test REST API
implementations
• Automatic scaffolding to build
the back-end based on the RAML file
4. Anypoint Studio – Visual Design
When all we really wanted to say was:
18Confidential and Proprietary
Computer, write a software that will disrupt the
market and make me lots of money
4. Anypoint Studio – Visual Design
Solution: IDEs that provide visual software design
19Confidential and Proprietary
iOs IDE
Scratch
4. Anypoint Studio – Visual Design
Mule Anypoint Studio lets you drag components & edit
20Confidential and Proprietary
4. Anypoint Studio – Visual Design
• Advantages:
–Can get a high-level understanding of the code by glancing at the flows
–Shorter time to develop – no need to re-write ‘plumbing’ code
21Confidential and Proprietary
Languages Used
• Mule supports both Java, but also supports scripting languages such as Groovy, Javascript, Python, Ruby etc.
• MEL – Mule regular expression
22Confidential and Proprietary
Mule as an Open Source project
23Confidential and Proprietary
• Mule ESB Community is an open source project and is licensed under the Common Public Attribution License
• The Enterprise edition provides additional benefits:– Customer support– Enterprise connectors– Templates (out-of-the-box solutions)–Operational Dashboard– Data Mapper– Etc.
Hello World in Node.js vs Mule
var http = require('http');
var server = http.createServer(function (request, response) {response.writeHead(200,
{"Content-Type": "text/plain"});response.end("Hello World\n");
});
// Listen on port 8000, IP defaults to 127.0.0.1server.listen(8000);
24Confidential and Proprietary
Event Listener
Chained Callbacks
Node.js vs Mule
Node.js
SenchaConnect module‘middlewares’ with next()
25Confidential and Proprietary
Mule