SlideShare uma empresa Scribd logo
Cloud Integration
with node.js
From enterprise integration to micro-services
and iPaaS
Alboaie Sînică
CEO Axiologic, http://www.axiologic.ro
● business aspects
● security aspects
● different
○ vendors
○ teams
○ products
● modularity/ product quality
● timing, new requests
What is Integration. Why?
● 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
○ informational street
○ all integration points learn how to “drive”
What is a Bus ?
ESB : Enterprise Service BUS
MOM: Message Oriented Middleware
EIP: 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
● 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
● JMS (Java Massages Services) - MOM
● Apache ActiveMQ
● Apache Camel (EIP)
● Apache Service Mix (ESB)
● ZeroMQ!
● commercial (SAP, Oracle, Microsoft...)
Related Java/C technologies
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
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
● 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
pi-calculus, CSP, etc
Formal models for asynchronisms
● asynchronous
● no threading
● cluster (processes): vertical scalability
● service routing, external balancer
Node.js Technologies
● micro-services
● integration
● easily change complex process
● form of choreography?
SwarmESB - 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
● adapters
● swarm description
● phases
● variables
● swarm primitives
● swarms at runtime
Concepts
● 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
● adapters
○ somehow like actors: target for messages
○ adapt external APIs or micro-services
○ basically: a collection of functions
Concepts
● swarm description
○ script that describe the choreography
○ a set of phases (functions) that should be
executed
○ also contains
■ ctors (constructors)
■ swarm variables
Concepts
● 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 variable
if( this.status == “OK”){ //use swarm variable
this.home("okStatusLogger");
} else {
this.swarm("errorStatusLogger");
}
}
}
● swarm variables
○ variables with a type
○ initialisation
● meta variables (swarm status, control)
Concepts
var: {
hello:”Hello World”
}
● 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
https://github.com/salboaie/SwarmESB/blob/master/swarms/NodeStart.js
Example hello world
Benchmark
Swarm:
https://github.com/salboaie/SwarmESB/blob/master/testSwarms/BenchMark.js
Test:
https://github.com/salboaie/SwarmESB/blob/master/test/BenchmarkTest.js
Exemple
Load distribution with swarms
Adapters:
https://github.com/salboaie/SwarmESB/blob/master/adaptors/Balancer.js
https://github.com/salboaie/SwarmESB/blob/master/adaptors/Worker.js
Swarms:
https://github.com/salboaie/SwarmESB/blob/master/swarms/WorkerSwarm.js
https://github.com/salboaie/SwarmESB/blob/master/swarms/WorkerManagement.js
Test:
https://github.com/salboaie/SwarmESB/blob/master/test/LoadBalancerTest.js
Example

Mais conteúdo relacionado

Mais procurados

SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...Tori Wieldt
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Pythondidip
 
DevOps in a Cloud Native World
DevOps in a Cloud Native WorldDevOps in a Cloud Native World
DevOps in a Cloud Native WorldMichael Ducy
 
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰Myeongseok Baek
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to ReactTomasz Bak
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)beom kyun choi
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryRahul Tilloo
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture Tony Ng
 
Accessing Data Anywhere with Unified Namespace
Accessing Data Anywhere with Unified NamespaceAccessing Data Anywhere with Unified Namespace
Accessing Data Anywhere with Unified NamespaceAlluxio, Inc.
 
CQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDCQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDDennis Doomen
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesApcera
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화NAVER D2
 
A Crash Course in Building Site Reliability
A Crash Course in Building Site ReliabilityA Crash Course in Building Site Reliability
A Crash Course in Building Site ReliabilityAcquia
 
Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...
Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...
Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...DevOpsDays Tel Aviv
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
 

Mais procurados (20)

SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously! Defining the Principles, Habits, and Practices of Site Reliabilit...
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
 
DevOps in a Cloud Native World
DevOps in a Cloud Native WorldDevOps in a Cloud Native World
DevOps in a Cloud Native World
 
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
INFCON2023-지속 가능한 소프트웨어 개발을 위한 경험과 통찰
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to React
 
The C10k Problem
The C10k ProblemThe C10k Problem
The C10k Problem
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT Industry
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture
 
Accessing Data Anywhere with Unified Namespace
Accessing Data Anywhere with Unified NamespaceAccessing Data Anywhere with Unified Namespace
Accessing Data Anywhere with Unified Namespace
 
CQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDCQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDD
 
MicroServices on Azure
MicroServices on AzureMicroServices on Azure
MicroServices on Azure
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화
 
A Crash Course in Building Site Reliability
A Crash Course in Building Site ReliabilityA Crash Course in Building Site Reliability
A Crash Course in Building Site Reliability
 
Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...
Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...
Implementing SRE practices: SLI/SLO deep dive - David Blank-Edelman - DevOpsD...
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 

Destaque

Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 
Improved JSON Support of WSO2 ESB 4.8
Improved JSON Support of WSO2 ESB 4.8Improved JSON Support of WSO2 ESB 4.8
Improved JSON Support of WSO2 ESB 4.8WSO2
 
Bamboo Housing Manufacturing Process
Bamboo Housing Manufacturing ProcessBamboo Housing Manufacturing Process
Bamboo Housing Manufacturing Processpraweshsth
 
Facebook Marketing - Miranda Miller
Facebook  Marketing - Miranda MillerFacebook  Marketing - Miranda Miller
Facebook Marketing - Miranda MillerMiranda Miller
 
Fisteus para web
Fisteus para webFisteus para web
Fisteus para webeidogalicia
 
Tsaxim.nnnn.sudalgaa
Tsaxim.nnnn.sudalgaaTsaxim.nnnn.sudalgaa
Tsaxim.nnnn.sudalgaaOdonchimeg82
 
Parquet Manufacturing Process
Parquet Manufacturing ProcessParquet Manufacturing Process
Parquet Manufacturing Processpraweshsth
 
One of my Fave Stories
One of my Fave StoriesOne of my Fave Stories
One of my Fave Storiesannvillanueva
 
[Webinar] Connecting Mule ESB and the Nuxeo Platform
[Webinar] Connecting Mule ESB and the Nuxeo Platform[Webinar] Connecting Mule ESB and the Nuxeo Platform
[Webinar] Connecting Mule ESB and the Nuxeo PlatformNuxeo
 
Facebook Marketing - Lesson #3
Facebook Marketing - Lesson #3Facebook Marketing - Lesson #3
Facebook Marketing - Lesson #3Miranda Miller
 
ээжээ дурсахуй
ээжээ дурсахуйээжээ дурсахуй
ээжээ дурсахуйOdonchimeg82
 
Himiin holboo, tot
Himiin holboo, totHimiin holboo, tot
Himiin holboo, totOdonchimeg82
 
Chat ops .. a beginner's guide
Chat ops .. a beginner's guideChat ops .. a beginner's guide
Chat ops .. a beginner's guideJason Hand
 

Destaque (20)

Oracle OSB Tutorial 1
Oracle OSB Tutorial 1Oracle OSB Tutorial 1
Oracle OSB Tutorial 1
 
Swarms: introduction
Swarms: introductionSwarms: introduction
Swarms: introduction
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
ZeroMQ with NodeJS
ZeroMQ with NodeJSZeroMQ with NodeJS
ZeroMQ with NodeJS
 
Improved JSON Support of WSO2 ESB 4.8
Improved JSON Support of WSO2 ESB 4.8Improved JSON Support of WSO2 ESB 4.8
Improved JSON Support of WSO2 ESB 4.8
 
Kba
KbaKba
Kba
 
Odnoo92
Odnoo92Odnoo92
Odnoo92
 
Odonchimeg92
Odonchimeg92Odonchimeg92
Odonchimeg92
 
Bamboo Housing Manufacturing Process
Bamboo Housing Manufacturing ProcessBamboo Housing Manufacturing Process
Bamboo Housing Manufacturing Process
 
Facebook Marketing - Miranda Miller
Facebook  Marketing - Miranda MillerFacebook  Marketing - Miranda Miller
Facebook Marketing - Miranda Miller
 
Fisteus para web
Fisteus para webFisteus para web
Fisteus para web
 
Obgon tengis 2
Obgon tengis 2Obgon tengis 2
Obgon tengis 2
 
Tsaxim.nnnn.sudalgaa
Tsaxim.nnnn.sudalgaaTsaxim.nnnn.sudalgaa
Tsaxim.nnnn.sudalgaa
 
Parquet Manufacturing Process
Parquet Manufacturing ProcessParquet Manufacturing Process
Parquet Manufacturing Process
 
One of my Fave Stories
One of my Fave StoriesOne of my Fave Stories
One of my Fave Stories
 
[Webinar] Connecting Mule ESB and the Nuxeo Platform
[Webinar] Connecting Mule ESB and the Nuxeo Platform[Webinar] Connecting Mule ESB and the Nuxeo Platform
[Webinar] Connecting Mule ESB and the Nuxeo Platform
 
Facebook Marketing - Lesson #3
Facebook Marketing - Lesson #3Facebook Marketing - Lesson #3
Facebook Marketing - Lesson #3
 
ээжээ дурсахуй
ээжээ дурсахуйээжээ дурсахуй
ээжээ дурсахуй
 
Himiin holboo, tot
Himiin holboo, totHimiin holboo, tot
Himiin holboo, tot
 
Chat ops .. a beginner's guide
Chat ops .. a beginner's guideChat ops .. a beginner's guide
Chat ops .. a beginner's guide
 

Semelhante a ESB integration for node.js

Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinarChanaka Fernando
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelIoan Eugen Stan
 
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0WSO2
 
Migrate to Microservices Judiciously!
Migrate to Microservices Judiciously!Migrate to Microservices Judiciously!
Migrate to Microservices Judiciously!pflueras
 
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022StreamNative
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro servicesSpyros Lambrinidis
 
[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield Integration[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield IntegrationWSO2
 
Upleveling Brownfield Integration
Upleveling Brownfield IntegrationUpleveling Brownfield Integration
Upleveling Brownfield IntegrationAsanka Abeyweera
 
The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)Oracle Developers
 
CNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyCNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyHarish
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service meshDocker, Inc.
 
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...Codemotion
 
Angular2 - A story from the trenches
Angular2 - A story from the trenchesAngular2 - A story from the trenches
Angular2 - A story from the trenchesJohannes Rudolph
 
Extending SDN beyond the control plane
Extending SDN beyond the control planeExtending SDN beyond the control plane
Extending SDN beyond the control planeAnees Shaikh
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsPiyush Katariya
 
Automation + dev ops summit hail hydrate! from stream to lake
Automation + dev ops summit   hail hydrate! from stream to lakeAutomation + dev ops summit   hail hydrate! from stream to lake
Automation + dev ops summit hail hydrate! from stream to lakeTimothy Spann
 

Semelhante a ESB integration for node.js (20)

Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinar
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
WSO2 Product Release Webinar: WSO2 Enterprise Service Bus 5.0
 
Migrate to Microservices Judiciously!
Migrate to Microservices Judiciously!Migrate to Microservices Judiciously!
Migrate to Microservices Judiciously!
 
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
Simplify Pulsar Functions Development with SQL - Pulsar Summit SF 2022
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield Integration[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield Integration
 
Upleveling Brownfield Integration
Upleveling Brownfield IntegrationUpleveling Brownfield Integration
Upleveling Brownfield Integration
 
The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)
 
AMQP with RabbitMQ
AMQP with RabbitMQAMQP with RabbitMQ
AMQP with RabbitMQ
 
CNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyCNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to Envoy
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service mesh
 
Micro Services Intro
Micro Services IntroMicro Services Intro
Micro Services Intro
 
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
 
Mulesoft lisbon_meetup_asyncapis
Mulesoft lisbon_meetup_asyncapisMulesoft lisbon_meetup_asyncapis
Mulesoft lisbon_meetup_asyncapis
 
Angular2 - A story from the trenches
Angular2 - A story from the trenchesAngular2 - A story from the trenches
Angular2 - A story from the trenches
 
Extending SDN beyond the control plane
Extending SDN beyond the control planeExtending SDN beyond the control plane
Extending SDN beyond the control plane
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise Applications
 
Towards Data Operations
Towards Data OperationsTowards Data Operations
Towards Data Operations
 
Automation + dev ops summit hail hydrate! from stream to lake
Automation + dev ops summit   hail hydrate! from stream to lakeAutomation + dev ops summit   hail hydrate! from stream to lake
Automation + dev ops summit hail hydrate! from stream to lake
 

Último

Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024vaibhav130304
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareinfo611746
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzisteffenkarlsson2
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockSkilrock Technologies
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfMeon Technology
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationHelp Desk Migration
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfQ-Advise
 

Último (20)

Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 

ESB integration for node.js

  • 1. Cloud Integration with node.js From enterprise integration to micro-services and iPaaS Alboaie Sînică CEO Axiologic, http://www.axiologic.ro
  • 2. ● business aspects ● security aspects ● different ○ vendors ○ teams ○ products ● modularity/ product quality ● timing, new requests What is Integration. Why?
  • 3. ● 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
  • 4. ○ informational street ○ all integration points learn how to “drive” What is a Bus ?
  • 5. ESB : Enterprise Service BUS MOM: Message Oriented Middleware EIP: 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
  • 6. ● 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
  • 7. ● JMS (Java Massages Services) - MOM ● Apache ActiveMQ ● Apache Camel (EIP) ● Apache Service Mix (ESB) ● ZeroMQ! ● commercial (SAP, Oracle, Microsoft...) Related Java/C technologies
  • 8. 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
  • 9. 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
  • 10. ● 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
  • 11. pi-calculus, CSP, etc Formal models for asynchronisms
  • 12. ● asynchronous ● no threading ● cluster (processes): vertical scalability ● service routing, external balancer Node.js Technologies
  • 13. ● micro-services ● integration ● easily change complex process ● form of choreography? SwarmESB - node.js
  • 14. 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
  • 15. ● adapters ● swarm description ● phases ● variables ● swarm primitives ● swarms at runtime Concepts
  • 16. ● 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
  • 17. ● adapters ○ somehow like actors: target for messages ○ adapt external APIs or micro-services ○ basically: a collection of functions Concepts
  • 18. ● swarm description ○ script that describe the choreography ○ a set of phases (functions) that should be executed ○ also contains ■ ctors (constructors) ■ swarm variables Concepts
  • 19. ● 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 variable if( this.status == “OK”){ //use swarm variable this.home("okStatusLogger"); } else { this.swarm("errorStatusLogger"); } } }
  • 20. ● swarm variables ○ variables with a type ○ initialisation ● meta variables (swarm status, control) Concepts var: { hello:”Hello World” }
  • 21. ● 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
  • 24. Load distribution with swarms Adapters: https://github.com/salboaie/SwarmESB/blob/master/adaptors/Balancer.js https://github.com/salboaie/SwarmESB/blob/master/adaptors/Worker.js Swarms: https://github.com/salboaie/SwarmESB/blob/master/swarms/WorkerSwarm.js https://github.com/salboaie/SwarmESB/blob/master/swarms/WorkerManagement.js Test: https://github.com/salboaie/SwarmESB/blob/master/test/LoadBalancerTest.js Example