Swarms: introduction


Published on

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)

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Swarms: introduction

  1. 1. SwarmESB: A new approach for programming with asynchronous messages Sînică Alboaie, 2012 https://github.com/salboaie
  2. 2. Usage: Cloud ready architecture Code cd SwarmESB
  3. 3. Usage: Enterprise IntegrationSwarmESB: Code cd
  4. 4. Programming == Fight against complexityPresenting 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!
  5. 5. Sending a swarm is like sending a message?
  6. 6. Swarming conceptsNodes Flowers == OS processes / nodes Swarms/messages are visiting flowers Distributed system == Field with flowers
  7. 7. Swarming conceptsNodes Swarms destinations Decisions: intelligent swarms NOT taken by intelligent FLOWERS! Flowers are just providing services/API
  8. 8. Points of view(Naive) messaging /Actors/ Erlang:Nodes are reacting to messagesNodes are sending typed messages to each otherImplicit: How things are composed and message flowsSwarms:Messages are flowing between nodesMessages are causing changes in nodesSimple and testable code in nodes (just APIs)Explicit: Flows/composition get described in files
  9. 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!
  10. 10. Swarming conceptsSwarm description● service composition● variables (members)● phases (code)● use: swarm, broadcast, home primitives
  11. 11. Swarming at runtime? Asynchronous messages!
  12. 12. Swarm description exampleHello world, execution of 2 phases in 2 distributed nodes:
  13. 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. 14. Is SwarmESB ready for you?Familiarity!JavaScript + Node.jsVertical and horizontal scalabilityArchitect your new distributed systemConsume heterogeneous services (APIs)Easy integration for future componentsParallel usage of your shiny, new CPU coresElegant programming with asynchronous messages
  15. 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 SOAs orchestration what REST is for SOAP!
  16. 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. 17. KeywordsSOA (Orchestration and choreography)EAI (Enterprise Integration Patterns)ESB (Enterprise Service Bus)Events and Asynchronous MessagesPaaS ( Platform as a Service)iPaaS (Cloud Integration)