Hi Danny, On Oct 10, 2012, at 4:13 AM, Danny Gallagher <[email protected]> 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 > [email protected] | www.dgit.com > >
