Swarms: introduction

17
SwarmESB: A new approach for programming with asynchronous messages Sînică Alboaie, 2012 https://github.com/salboaie

description

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)

Transcript of Swarms: introduction

Page 1: Swarms: introduction

SwarmESB: A new approach for programming with

asynchronous messages

Sînică Alboaie, 2012https://github.com/salboaie

Page 2: Swarms: introduction

Usage: Cloud ready architecture

Code cd

SwarmESB

Page 3: Swarms: introduction

Usage: Enterprise Integration

Code cdSwarmESB:

Page 4: Swarms: introduction

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!

Page 5: Swarms: introduction

Sending a swarm is like sending a message?

Page 6: Swarms: introduction

Nodes

Flowers == OS processes / nodesSwarms/messages are visiting flowers

Distributed system == Field with flowers

Swarming concepts

Page 7: Swarms: introduction

Nodes

Swarm's destinationsDecisions: intelligent swarms

NOT taken by intelligent FLOWERS!Flowers are just providing services/API

Swarming concepts

Page 8: Swarms: introduction

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 flows

Swarms:Messages are flowing between nodesMessages are causing changes in nodesSimple and testable code in nodes (just APIs)Explicit: Flows/composition get described in files

Page 9: Swarms: introduction

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!

Page 10: Swarms: introduction

Swarm description

● service composition

● variables (members)● phases (code)● use: swarm, broadcast, home primitives

Swarming concepts

Page 11: Swarms: introduction

Asynchronous messages!

Swarming at runtime?

Page 12: Swarms: introduction

Hello world, execution of 2 phases in 2 distributed nodes:

Swarm description example

Page 13: Swarms: introduction

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

Page 14: Swarms: introduction

Is SwarmESB ready for you?

Familiarity! JavaScript + Node.jsVertical and horizontal scalability Architect your new distributed systemConsume heterogeneous services (APIs)Easy integration for future componentsParallel usage of your shiny, new CPU coresElegant programming with asynchronous messages

...

Page 15: Swarms: introduction

● 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!

More features

Page 16: Swarms: introduction

"The Tao that can be spoken is not the eternal Tao" Lao Zi

ScalabilityLoose couplingReduce costs by reducing complexitySeparation of Concerns/Open Closed principle

Cloud Programming, Distributed and Parallel Systems

... and why should YOU care?

Page 17: Swarms: introduction

SOA (Orchestration and choreography)EAI (Enterprise Integration Patterns)ESB (Enterprise Service Bus)Events and Asynchronous MessagesPaaS ( Platform as a Service)iPaaS (Cloud Integration)

Keywords