You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@synapse.apache.org by Danny Gallagher <DG...@pathfire.com> on 2012/10/10 13:13:47 UTC

Synapse & Web Service Integration

I was hoping for some expert opinions on some high level questions about
a new architecture, and if Synapse could fit.
Much thanks in advance for any type of feedback.

High level overview
- Complete re architecture of existing system from the ground up.
- Need to be able to "tie" web services together in steps to achieve the
  overall system requirements.
- System processes video content for delivery to destinations.
- Nodal system (4 to 5 global nodes initially)
- Need failover on both a nodal level and individual service level.
- Load balancing on a web service level.
-Many web services (sync and async) (.NET and Java) (WSDL and REST)
  95% internal web services written by us, under our control.
- 70% long running processes.
- Steps in the process are driven by work being completed by services,
  not a user completing a step in a UI.

Things we have considered:
BPEL process engines
Positives              - provides the "glue" to tie web services together.
                                - products / os projects provide a console for managing processes and instances
                                out of the box
Concerns             - Feels like "square peg in a round hole" seems very specific to user centric processes.
                                - If we need something outside of what BPEL supports, seems difficult.
BPMN process engine
Positives              - provides the "glue" to tie web services together.
                                - products / os projects provide a console for managing processes and instances
                                out of the box
                                - BPMN seems more fully featured with some mediation / orchestration abilities.
Concerns             - Feels like "oval peg in round hole" still seems user centric, but less than BPEL.
                                - If we need something outside of what BPMN supports, seems difficult.
Synapse
Positives              - Synapse seems very lightweight.
                                - Seems to meet our high level requirements without the overhead of a process engine.
                                - Appears failover and load balancing is built in.
Concerns / Questions
                                - We have long running processes. (ie: a web service is called from synapse and the work that
                                web service does may not be done for hours)
                                Does synapse have the ability to "wait" on that response? Is there a callback mechanism?
                                - Can synapse "replace" the functionality of a BPEL or BPMN engine, just in a different way?
                                - No console application built in for monitoring?

Danny


Danny Gallagher | Software Engineer
T. 678.556.5674 | F. 770.619.0802
DG | 245 Hembree Park Drive, Suite 100, Roswell, GA 30076
dgallagher@pathfire.com | www.dgit.com
   [Description: DG]


Re: Synapse & Web Service Integration

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Hi Danny,

On Oct 10, 2012, at 4:13 AM, Danny Gallagher <DG...@pathfire.com> wrote:

> I was hoping for some expert opinions on some high level questions about
> a new architecture, and if Synapse could fit.
> Much thanks in advance for any type of feedback.
>  
> High level overview
> - Complete re architecture of existing system from the ground up.
> - Need to be able to "tie" web services together in steps to achieve the
>   overall system requirements.
> - System processes video content for delivery to destinations.
> - Nodal system (4 to 5 global nodes initially)
> - Need failover on both a nodal level and individual service level.
> - Load balancing on a web service level.
> -Many web services (sync and async) (.NET and Java) (WSDL and REST)
>   95% internal web services written by us, under our control.
> - 70% long running processes.
> - Steps in the process are driven by work being completed by services,
>   not a user completing a step in a UI.
>  
> Things we have considered:
> BPEL process engines
> Positives              - provides the "glue" to tie web services together.
>                                 - products / os projects provide a console for managing processes and instances
>                                 out of the box
> Concerns             - Feels like "square peg in a round hole" seems very specific to user centric processes. 
>                                 - If we need something outside of what BPEL supports, seems difficult.
> BPMN process engine
> Positives              - provides the "glue" to tie web services together.
>                                 - products / os projects provide a console for managing processes and instances
>                                 out of the box
>                                 - BPMN seems more fully featured with some mediation / orchestration abilities.
> Concerns             - Feels like "oval peg in round hole" still seems user centric, but less than BPEL.
>                                 - If we need something outside of what BPMN supports, seems difficult.                              
> Synapse
> Positives              - Synapse seems very lightweight.
>                                 - Seems to meet our high level requirements without the overhead of a process engine.
>                                 - Appears failover and load balancing is built in.
> Concerns / Questions
>                                 - We have long running processes. (ie: a web service is called from synapse and the work that
>                                 web service does may not be done for hours) 
>                                 Does synapse have the ability to "wait" on that response? Is there a callback mechanism?

Synapse supports dual channel invocations and also have eventing capabilities. You can build a solution to receive callbacks from backend systems and notify other dependent applications using these tools provided by Synapse.

>                                 - Can synapse "replace" the functionality of a BPEL or BPMN engine, just in a different way?                                                      

Yes, up to a certain extent. Synapse is an ESB at its very core. Therefore it's best used as a connector or a hub. BPEL and BPMN engines address a different problem altogether - managing workflows and business processes. You can use Synapse to perform what we call "lightweight orchestrations". These are simple workflows/processes that involve a handful of services and complete within a few seconds at most. But we don't generally recommend using Synapse as a full blown process/workflow engine. 

But many BPEL/BPMN engines out there don't provide the level of integration support and flexibility provided by Synapse. Therefore we often see solutions comprised of both an ESB and a process engine. The process engine drives the workflows and the ESB takes care of connecting different systems, transforming messages and performing protocol conversions.

>                                 - No console application built in for monitoring?

No but all the metrics and statistics are exposed via open APIs. So you can plug in any monitoring solution you want. There's comprehensive JMX support too. Also check out WSO2 ESB, which is based on Synapse and provides a feature rich web based management console.

Thanks,
Hiranya

>  
> Danny
>  
>  
> Danny Gallagher | Software Engineer
> T. 678.556.5674 | F. 770.619.0802
> DG | 245 Hembree Park Drive, Suite 100, Roswell, GA 30076
> dgallagher@pathfire.com | www.dgit.com
>    
>