esb integration for node.js

24
Cloud Integration with node.js From enterprise integration to micro-services and iPaaS Alboaie Sînică CEO Axiologic, http://www.axiologic.ro

Upload: sinica-alboaie

Post on 17-May-2015

862 views

Category:

Software


5 download

DESCRIPTION

Building complex, decoupled server side applications leans in the end to an ESB like architecture. SwarmESB provides such architecture for agile companies that already have node.js skills available. Swarm communication is an abstraction over message queues and can help you reduce costs and risks related to migrating to a SOA/ESB architecture.

TRANSCRIPT

Page 1: ESB integration for node.js

Cloud Integration with node.js

From enterprise integration to micro-services and iPaaS

Alboaie Sînică CEO Axiologic, http://www.axiologic.ro

Page 2: ESB integration for node.js

● business aspects● security aspects● different

○ vendors○ teams○ products

● modularity/ product quality ● timing, new requests

What is Integration. Why?

Page 3: ESB integration for node.js

● Real Time Integration○ Point to Point

■ custom code, exploding complexity, fragility○ Bus (ESB, MOM)

● Scheduled Integration○ export/import of files○ shared databases○ ETL scripts (Extract/Transform/Load)

Point to Point, Files, Databases

Page 4: ESB integration for node.js

○ informational street○ all integration points learn how to “drive”

What is a Bus ?

Page 5: ESB integration for node.js

ESB : Enterprise Service BUSMOM: Message Oriented MiddlewareEIP: Enterprise Integration Patterns● Benefits:

○ can easily add or remove integration points later○ fewer custom configs and simpler deployments (one point of

integration for everybody)○ bring all integration points to a common platform and protocol

Integration with Bus like systems

Page 6: ESB integration for node.js

● messages / events● message channel (PUB/SUB, Point to Point)● message endpoint● pipes and filters, routing, translator● guaranteed delivery (duplicates)● load balancing/load distribution● logging● monitoring, throttler, SLA, etc

EIP concepts and concerns

Page 7: ESB integration for node.js

● JMS (Java Massages Services) - MOM● Apache ActiveMQ ● Apache Camel (EIP)● Apache Service Mix (ESB)● ZeroMQ!● commercial (SAP, Oracle, Microsoft...)

Related Java/C technologies

Page 8: ESB integration for node.js

Integration Platform as a Service

Many categories of iPaaS vendors● e-commerce and B2B integration: simple and limited solution● Enterprise Service Bus (ESB) for hybrid (cloud and on premise)● Service Oriented Architecture (SOA) infrastructure

iPaaS

Page 9: ESB integration for node.js

Service Oriented Architecture● Orchestration

○ Business Process Management■ long living processes■ BPEL (standards)

○ service composition○ intra-organisation

● Choreography○ WS-CDL○ inter-organisation

● SOA v1 (orchestrated services centrally ● SOA v2 (event driven SOA)

BPM, SOA

Page 10: ESB integration for node.js

● actors (Carl Hewitt)○ message queue○ adresses

● send asynchronous messages● behaviour

○ set the behaviour for the next message○ create new actors○ learn other address

● mobility, locality● intuitive, naive messages● inspired OOP

Concurrency model: Actors

Page 11: ESB integration for node.js

pi-calculus, CSP, etc

Formal models for asynchronisms

Page 12: ESB integration for node.js

● asynchronous● no threading● cluster (processes): vertical scalability● service routing, external balancer

Node.js Technologies

Page 13: ESB integration for node.js

● micro-services● integration● easily change complex process● form of choreography?

SwarmESB - node.js

Page 14: ESB integration for node.js

Inverted perspective on the actor model● messages have behaviour ● mobile code nod actors● decisions in messages not in actors● distributed in a network (horizontal

scalability)● Active messages

Swarm communication model

Page 15: ESB integration for node.js

● adapters● swarm description● phases● variables● swarm primitives● swarms at runtime

Concepts

Page 16: ESB integration for node.js

● swarms at runtime○ kind of message○ more a set of related messages ○ have behaviours attached ○ have a current phase○ can exist in multiple nodes ○ can have a single identity for all messages○ clone itself and visit adapters

Concepts

Page 17: ESB integration for node.js

● adapters○ somehow like actors: target for messages○ adapt external APIs or micro-services○ basically: a collection of functions

Concepts

Page 18: ESB integration for node.js

● swarm description○ script that describe the choreography○ a set of phases (functions) that should be

executed○ also contains

■ ctors (constructors)■ swarm variables

Concepts

Page 19: ESB integration for node.js

● phases○ hints about what type of adapter (node) can be execute it○ contains a function (imperative code)○ can call adapter’s APIs and swarm, home, broadcast primitives○ modify swarm variables

Concepts

statusCheck:{ node:"*", code : function (){

this.status = currentAPI_status(); //set swarm variableif( this.status == “OK”){ //use swarm variable this.home("okStatusLogger");} else { this.swarm("errorStatusLogger");}

} }

Page 20: ESB integration for node.js

● swarm variables○ variables with a type○ initialisation

● meta variables (swarm status, control)

Concepts

var: {

hello:”Hello World”

}

Page 21: ESB integration for node.js

● swarm primitives○ swarm: send a clone of the current swarm in another phase

(another adapter)○ home: send a clone to the client that started the swarm○ broadcast: send multiple clones in all adapters of a specified type

Concepts

Page 22: ESB integration for node.js

https://github.com/salboaie/SwarmESB/blob/master/swarms/NodeStart.js

Example hello world