SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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

Weitere Àhnliche Inhalte

Was ist angesagt?

RESTful services
RESTful servicesRESTful services
RESTful services
gouthamrv
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
æŽȘ éčć‘
 

Was ist angesagt? (20)

Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
RESTful services
RESTful servicesRESTful services
RESTful services
 
Nest.js Introduction
Nest.js IntroductionNest.js Introduction
Nest.js Introduction
 
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowOracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Microservices and SOA
Microservices and SOAMicroservices and SOA
Microservices and SOA
 
Kinh nghiệm triển khai Microservices táșĄi Sapo.vn
Kinh nghiệm triển khai Microservices táșĄi Sapo.vnKinh nghiệm triển khai Microservices táșĄi Sapo.vn
Kinh nghiệm triển khai Microservices táșĄi Sapo.vn
 
Intro To React Native
Intro To React NativeIntro To React Native
Intro To React Native
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
React js
React jsReact js
React js
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
 
Node js
Node jsNode js
Node js
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
 
Solid principles
Solid principlesSolid principles
Solid principles
 
Integration patterns in AEM 6
Integration patterns in AEM 6Integration patterns in AEM 6
Integration patterns in AEM 6
 
Blockchain overview, use cases, implementations and challenges
Blockchain overview, use cases, implementations and challengesBlockchain overview, use cases, implementations and challenges
Blockchain overview, use cases, implementations and challenges
 
React Native
React NativeReact Native
React Native
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
 
The Event Mesh: real-time, event-driven, responsive APIs and beyond
The Event Mesh: real-time, event-driven, responsive APIs and beyondThe Event Mesh: real-time, event-driven, responsive APIs and beyond
The Event Mesh: real-time, event-driven, responsive APIs and beyond
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 

Andere mochten auch

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
WSO2
 
Odonchimeg92
Odonchimeg92Odonchimeg92
Odonchimeg92
Odonchimeg82
 
Bamboo Housing Manufacturing Process
Bamboo Housing Manufacturing ProcessBamboo Housing Manufacturing Process
Bamboo Housing Manufacturing Process
praweshsth
 
Fisteus para web
Fisteus para webFisteus para web
Fisteus para web
eidogalicia
 
Obgon tengis 2
Obgon tengis 2Obgon tengis 2
Obgon tengis 2
Odonchimeg82
 
Tsaxim.nnnn.sudalgaa
Tsaxim.nnnn.sudalgaaTsaxim.nnnn.sudalgaa
Tsaxim.nnnn.sudalgaa
Odonchimeg82
 
Parquet Manufacturing Process
Parquet Manufacturing ProcessParquet Manufacturing Process
Parquet Manufacturing Process
praweshsth
 
One of my Fave Stories
One of my Fave StoriesOne of my Fave Stories
One of my Fave Stories
annvillanueva
 
ŃŃĐ¶ŃŃ ЮурсахуĐč
ŃŃĐ¶ŃŃ ЮурсахуĐčŃŃĐ¶ŃŃ ЮурсахуĐč
ŃŃĐ¶ŃŃ ЮурсахуĐč
Odonchimeg82
 
Himiin holboo, tot
Himiin holboo, totHimiin holboo, tot
Himiin holboo, tot
Odonchimeg82
 

Andere mochten auch (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
 

Ähnlich wie ESB integration for node.js

Ähnlich wie 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
 
Upleveling Brownfield Integration
Upleveling Brownfield IntegrationUpleveling Brownfield Integration
Upleveling Brownfield Integration
 
[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
 
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
 

KĂŒrzlich hochgeladen

Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Bert Jan Schrijver
 

KĂŒrzlich hochgeladen (20)

Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] đŸ„ Women's Abortion Clinic in ...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 

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