SlideShare a Scribd company logo
Introduction to Apache 
       Synapse
        Hiranya Jayathilaka
      (hiranya@apache.org)
What to Expect…
• The problem and the solution
  – Integration problems in enterprise
• Introducing Apache Synapse
  – Architecture and the functional components
• Case Studies
  – Synapse in action
• Finishing touches
  – Extension points and next steps
The Problem & The Solution
Software in Enterprise
• Large enterprises have many software 
  systems
  – Enterprise resource planning applications
  – Management information systems
  – Decision support systems
  – Executive support applications
• The systems are often independent
• But they are all parts of a larger business 
  process
Need for Enterprise Integration
• Individual software systems cannot 
  achieve much
• Systems should be integrated to work 
  together
  – Enables free data flow across the firm
  – Each application becomes aware of the ‘big 
    picture’
  – Improves operational and management 
    efficiency
Easier Said Than Done!
• Integrating a multitude of complex 
  applications is no child’s play
• Systems are diverse (way too diverse)
  – Different platforms (OS and program runtime)
  – Different programming languages
  – Different messaging standards and protocols
  – Different QoS requirements
Is It Possible at All?
ESB to the Rescue!
• A software architecture construct that 
  provides fundamental services for complex 
  architectures
  – Message routing
  – Message transformation
  – Protocol switching
  – Adding QoS to message flows
  – And everything else integration architects 
    would ever need
ESB Explained!
• An architectural style or an piece of 
  software that resembles a physical data 
  bus
• Applications communicate via the bus, 
  which acts as a message broker
• Replaces direct contact between software 
  – Reduces coupling
• Based on industry standards
ESB Saves the Day!
Introducing Apache 
      Synapse
What is Apache Synapse?
• A high performance ESB implementation
  – Fast
  – Lightweight
  – Low resource usage
• Easy to configure and deploy
• Developed as a middleware with many 
  extension points
• Very mature and stable code base
Key Features
• Supports many messaging standards 
  – SOAP 1.1/1.2 and WS­* standards
  – REST/POX
• A wide range of communication protocols
  – HTTP/S, JMS, Mail, VFS, FIX, AMQP
• Load balancing and fail over support
• Task scheduler and the eventing mode
• JMX monitoring support
Architecture
• Non blocking HTTP transport
  – Network IO do not hog server worker threads
  – Based on Apache HTTP Core NIO
• Multithreaded mediation engine
• Streaming model
  – The byte stream coming over the wire is 
    ‘streamed’ through the mediation engine
  – Powered by Apache AXIOM
Functional Components
• Responsible for processing messages 
  inside the ESB and coordinating bus 
  activities
• Can be combined, mixed and matched to 
  implement  complex message flows and 
  enterprise integration patterns
• The task of configuring Synapse is most of 
  the time putting the right set of functional 
  components together
Mediators




• The simplest functional component
• Takes an input message, performs some 
  action on it and outputs the processed 
  message
Sequences



• A cascading chain of mediators
• Input messages are sent through all the 
  child mediators of the sequence
• Resembles an industrial pipeline
Endpoints
• Defines an endpoint reference (EPR) to 
  which messages can be sent/forwarded 
  from Synapse
• Various operational constraints can be 
  enforced on endpoints
  – Timeout configuration
  – Message format (SOAP 1.1/1.2, POX)
  – QoS expectations (WS­Security, WS­RM)
Proxy Services
• Acts like a virtual service that can accept 
  requests from clients
• Received client requests are processed 
  and forwarded to an actual service 
  implementation 
• Response from the backend service is 
  processed and routed back to the clients
Other Components
• Scheduled Tasks
  – Used to run a programmed activity periodically
• Event sources
  – Enables Synapse to act as an event broker in an 
    event driven architecture
• Local entries
  – Used to store small configuration/data items
• Registry
  – A metadata store for your SOA
Configuration Model
• Synapse configuration language is used to 
  define, configure and combine functional 
  components
• XML based
• Very intuitive – Easy to learn, understand 
  and remember
• Entire configuration goes into the 
  synapse.xml file
Case Studies
Case Study 01
• Problem:
  – How to expose an existing service over a 
    different schema?


• Solution:
  – All the incoming requests should be transformed 
    into the format expected by the service
  – All the responses should be transformed to the 
    format expected by the client
Solution Structure
Demonstration
Case Study 02
• Problem:
  – How to expose an existing HTTP service over 
    JMS?

• Solution:
  – A new (virtual) service should be created to 
    accept messages over JMS
  – The virtual service should forward the 
    messages to the existing service over HTTP
Solution Structure
Demonstration
Want to Try More?
• Apache Synapse is shipped with a large 
  number of sample configurations that you 
  can try out of the box
• Follow the samples guide included in the 
  distribution or refer the online version of it: 
  – http://synapse.apache.org/Synapse_Samples.html
• Java and Apache ANT are required to try 
  out the samples
Finishing Touches
Extension Points
•   Custom mediators
•   Custom tasks
•   Script mediator
•   POJO command mediator
•   Spring mediator
•   Transport receivers and senders
•   Load balance algorithms
•   Message formatters and builders
Feel Like Contributing?
• Project website
  – http://synapse.apache.org
• Code base
  – https://svn.apache.org/repos/asf/synapse
• Mailing lists
  – http://synapse.apache.org/mail­lists.html
• JIRA Issue tracker
  – http://issues.apache.org/jira/browse/SYNAPSE
Questions?
Thank You!

More Related Content

What's hot

What's hot (20)

WSL2 and Docker Desktop
WSL2 and Docker DesktopWSL2 and Docker Desktop
WSL2 and Docker Desktop
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.
 
How to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in ContainersHow to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in Containers
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Systemes authentification
Systemes authentificationSystemes authentification
Systemes authentification
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
WSO2 Enterprise Service Bus - Product Overview
WSO2 Enterprise Service Bus - Product OverviewWSO2 Enterprise Service Bus - Product Overview
WSO2 Enterprise Service Bus - Product Overview
 
Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
 
Flask With Server-Sent Event
Flask With Server-Sent EventFlask With Server-Sent Event
Flask With Server-Sent Event
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
Spring ioc
Spring iocSpring ioc
Spring ioc
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
An Overview on Nuxt.js
An Overview on Nuxt.jsAn Overview on Nuxt.js
An Overview on Nuxt.js
 
Wsdl
WsdlWsdl
Wsdl
 
Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de Jhipster
 

Viewers also liked

Viewers also liked (20)

Fast SOA with Apache Synapse
Fast SOA with Apache SynapseFast SOA with Apache Synapse
Fast SOA with Apache Synapse
 
API Facade Pattern with Apache Synapse
API Facade Pattern with Apache SynapseAPI Facade Pattern with Apache Synapse
API Facade Pattern with Apache Synapse
 
Microservices Server - MSS Workshop
Microservices Server - MSS WorkshopMicroservices Server - MSS Workshop
Microservices Server - MSS Workshop
 
An Introduction to WSO2 Microservices Framework for Java
An Introduction to WSO2 Microservices Framework for JavaAn Introduction to WSO2 Microservices Framework for Java
An Introduction to WSO2 Microservices Framework for Java
 
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0
 
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
 
Atlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
Atlanta OpenStack 2014 Chef for OpenStack Deployment WorkshopAtlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
Atlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
 
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
 
OpenStack Deployment with Chef Workshop
OpenStack Deployment with Chef WorkshopOpenStack Deployment with Chef Workshop
OpenStack Deployment with Chef Workshop
 
Event Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikEvent Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya Grigorik
 
Best Practice for Deploying Application with Heat
Best Practice for Deploying Application with HeatBest Practice for Deploying Application with Heat
Best Practice for Deploying Application with Heat
 
TXLF: Automated Deployment of OpenStack with Chef
TXLF: Automated Deployment of OpenStack with ChefTXLF: Automated Deployment of OpenStack with Chef
TXLF: Automated Deployment of OpenStack with Chef
 
Are We Done Yet ? Testing Your OpenStack Deployment
Are We Done Yet ? Testing Your OpenStack DeploymentAre We Done Yet ? Testing Your OpenStack Deployment
Are We Done Yet ? Testing Your OpenStack Deployment
 
React.jsでHowManyPizza
React.jsでHowManyPizzaReact.jsでHowManyPizza
React.jsでHowManyPizza
 
Mirantis open stack deployment automation
Mirantis open stack deployment automationMirantis open stack deployment automation
Mirantis open stack deployment automation
 
REST Coder: Auto Generating Client Stubs and Documentation for REST APIs
REST Coder: Auto Generating Client Stubs and Documentation for REST APIsREST Coder: Auto Generating Client Stubs and Documentation for REST APIs
REST Coder: Auto Generating Client Stubs and Documentation for REST APIs
 
Rest in flask
Rest in flaskRest in flask
Rest in flask
 
Reliable Python REST API (by Volodymyr Hotsyk) - Web Back-End Tech Hangout - ...
Reliable Python REST API (by Volodymyr Hotsyk) - Web Back-End Tech Hangout - ...Reliable Python REST API (by Volodymyr Hotsyk) - Web Back-End Tech Hangout - ...
Reliable Python REST API (by Volodymyr Hotsyk) - Web Back-End Tech Hangout - ...
 
An introduction to React.js
An introduction to React.jsAn introduction to React.js
An introduction to React.js
 
OpenStack Architecture: Past and Future
OpenStack Architecture: Past and FutureOpenStack Architecture: Past and Future
OpenStack Architecture: Past and Future
 

Similar to Introduction to Apache Synapse

WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
WSO2
 
Webbinar slides
Webbinar slidesWebbinar slides
Webbinar slides
WSO2
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project Winterfell
Keith McFarlane
 
Birmingham-20060705
Birmingham-20060705Birmingham-20060705
Birmingham-20060705
Miguel Vidal
 
A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)
WSO2
 
Esb buyers guide_final
Esb buyers guide_finalEsb buyers guide_final
Esb buyers guide_final
WSO2
 
Integration Solution Patterns
Integration Solution Patterns Integration Solution Patterns
Integration Solution Patterns
WSO2
 

Similar to Introduction to Apache Synapse (20)

WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
 
Webbinar slides
Webbinar slidesWebbinar slides
Webbinar slides
 
Architecting systems for continuous delivery
Architecting systems for continuous deliveryArchitecting systems for continuous delivery
Architecting systems for continuous delivery
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project Winterfell
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
Blasting Out of the Past with OSGi - Keith McFarlane
Blasting Out of the Past with OSGi - Keith McFarlaneBlasting Out of the Past with OSGi - Keith McFarlane
Blasting Out of the Past with OSGi - Keith McFarlane
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
Birmingham-20060705
Birmingham-20060705Birmingham-20060705
Birmingham-20060705
 
A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)
 
Esb buyers guide_final
Esb buyers guide_finalEsb buyers guide_final
Esb buyers guide_final
 
Effective admin and development in iib
Effective admin and development in iibEffective admin and development in iib
Effective admin and development in iib
 
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
JavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservicesJavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservices
 
Integration Solution Patterns
Integration Solution Patterns Integration Solution Patterns
Integration Solution Patterns
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
WSO2Con USA 2017: The Role of Enterprise Integration in Digital Transformation
WSO2Con USA 2017: The Role of Enterprise Integration in Digital TransformationWSO2Con USA 2017: The Role of Enterprise Integration in Digital Transformation
WSO2Con USA 2017: The Role of Enterprise Integration in Digital Transformation
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 

Introduction to Apache Synapse