A new approach/paradigam for programming with asynchronous messages. Swarmins is like OOP for asynchronous messages.
SwarmESB is an open source ESB (Enterprise Service Bus) that can be used for cloud (as an iPaaS) or for on premise software. SwarmESB be easily integrated in any SOA (Service Oriented Architecture) environment that use REST, SOAP, RPC, etc. SwarmESB can be seen as a MoM system (Message oriented Middleware)
4. Programming == Fight against complexity
Presenting a new paradigm: SWARMS!
Swarms are basic concepts like functions, classes, etc.
A swarm is like a class for programming with messages.
Simple, but different and new (2012)!
You have to think about it a half hour to really get it!
6. Swarming concepts
Nodes
Flowers == OS processes / nodes
Swarms/messages are visiting flowers
Distributed system == Field with flowers
7. Swarming concepts
Nodes
Swarm's destinations
Decisions: intelligent swarms
NOT taken by intelligent FLOWERS!
Flowers are just providing services/API
8. Points of view
(Naive) messaging /Actors/ Erlang:
Nodes are reacting to messages
Nodes are sending typed messages to each other
Implicit: How things are composed and message flows
Swarms:
Messages are flowing between nodes
Messages are causing changes in nodes
Simple and testable code in nodes (just APIs)
Explicit: Flows/composition get described in files
9. Point of view is worth 80 IQ points?
In Roman time you had to be very smart to
multiply two numbers together.
How are things represented can be quite important!
13. SwarmESB: Cloud for normal budgets
● Open Source
● Node.js
● JavaScript, WebSockets and Flex clients
● Redis: pub/sub channels
● Redis: multi-tenant storage
● WebDAV proxy
● SOLR adapter
14. Is SwarmESB ready for you?
Familiarity!
JavaScript + Node.js
Vertical and horizontal scalability
Architect your new distributed system
Consume heterogeneous services (APIs)
Easy integration for future components
Parallel usage of your shiny, new CPU cores
Elegant programming with asynchronous messages
15. More features
● multitenant global (redis) contexts
● multitenant local (node) contexts
● local sub-processes
● swarm code redeployment without restart
● groups, broadcast, load balancing
● high availability
Swarming can be for SOA's
orchestration what REST is for SOAP!
16. ... and why should YOU care?
"The Tao that can be spoken is not
the eternal Tao" Lao Zi
Scalability
Loose coupling
Reduce costs by reducing complexity
Separation of Concerns/Open Closed principle
Cloud Programming, Distributed and Parallel Systems
17. Keywords
SOA (Orchestration and choreography)
EAI (Enterprise Integration Patterns)
ESB (Enterprise Service Bus)
Events and Asynchronous Messages
PaaS ( Platform as a Service)
iPaaS (Cloud Integration)