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


Top Related