Introduction to Apache 
       Synapse
        Hiranya Jayathilaka
      (hiranya@apache.org)
What to Expect…
• The problem and the solution
  – Integration problems in enterprise
• Introducing Apache Synapse
  – Arc...
The Problem & The Solution
Software in Enterprise
• Large enterprises have many software 
  systems
  – Enterprise resource planning applications
  –...
Need for Enterprise Integration
• Individual software systems cannot 
  achieve much
• Systems should be integrated to wor...
Easier Said Than Done!
• Integrating a multitude of complex 
  applications is no child’s play
• Systems are diverse (way ...
Is It Possible at All?
ESB to the Rescue!
• A software architecture construct that 
  provides fundamental services for complex 
  architectures
...
ESB Explained!
• An architectural style or an piece of 
  software that resembles a physical data 
  bus
• Applications co...
ESB Saves the Day!
Introducing Apache 
      Synapse
What is Apache Synapse?
• A high performance ESB implementation
  – Fast
  – Lightweight
  – Low resource usage
• Easy to ...
Key Features
• Supports many messaging standards 
  – SOAP 1.1/1.2 and WS­* standards
  – REST/POX
• A wide range of commu...
Architecture
• Non blocking HTTP transport
  – Network IO do not hog server worker threads
  – Based on Apache HTTP Core N...
Functional Components
• Responsible for processing messages 
  inside the ESB and coordinating bus 
  activities
• Can be ...
Mediators




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



• A cascading chain of mediators
• Input messages are sent through all the 
  child mediators of the sequence...
Endpoints
• Defines an endpoint reference (EPR) to 
  which messages can be sent/forwarded 
  from Synapse
• Various opera...
Proxy Services
• Acts like a virtual service that can accept 
  requests from clients
• Received client requests are proce...
Other Components
• Scheduled Tasks
  – Used to run a programmed activity periodically
• Event sources
  – Enables Synapse ...
Configuration Model
• Synapse configuration language is used to 
  define, configure and combine functional 
  components
...
Case Studies
Case Study 01
• Problem:
  – How to expose an existing service over a 
    different schema?


• Solution:
  – All the inc...
Solution Structure
Demonstration
Case Study 02
• Problem:
  – How to expose an existing HTTP service over 
    JMS?

• Solution:
  – A new (virtual) servic...
Solution Structure
Demonstration
Want to Try More?
• Apache Synapse is shipped with a large 
  number of sample configurations that you 
  can try out of t...
Finishing Touches
Extension Points
•   Custom mediators
•   Custom tasks
•   Script mediator
•   POJO command mediator
•   Spring mediator
•...
Feel Like Contributing?
• Project website
  – http://synapse.apache.org
• Code base
  – https://svn.apache.org/repos/asf/s...
Questions?
Thank You!
Upcoming SlideShare
Loading in...5
×

Introduction to Apache Synapse

4,623

Published on

This is the presentation I did at Apache Asia Roadshow 2009 held at Colombo, Sri Lanka. My talk was titled "Introduction to Apache Synapse". In this presentation, I attempt to address areas like enterprise integration problems, ESB pattern, Synapse architecture, features and the configuration model.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,623
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
135
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Introduction to Apache Synapse"

  1. 1. Introduction to Apache  Synapse Hiranya Jayathilaka (hiranya@apache.org)
  2. 2. 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
  3. 3. The Problem & The Solution
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. Is It Possible at All?
  8. 8. 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
  9. 9. 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
  10. 10. ESB Saves the Day!
  11. 11. Introducing Apache  Synapse
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. Mediators • The simplest functional component • Takes an input message, performs some  action on it and outputs the processed  message
  17. 17. Sequences • A cascading chain of mediators • Input messages are sent through all the  child mediators of the sequence • Resembles an industrial pipeline
  18. 18. 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)
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. Case Studies
  23. 23. 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
  24. 24. Solution Structure
  25. 25. Demonstration
  26. 26. 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
  27. 27. Solution Structure
  28. 28. Demonstration
  29. 29. 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
  30. 30. Finishing Touches
  31. 31. Extension Points • Custom mediators • Custom tasks • Script mediator • POJO command mediator • Spring mediator • Transport receivers and senders • Load balance algorithms • Message formatters and builders
  32. 32. 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
  33. 33. Questions?
  34. 34. Thank You!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×