incubator-agila-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthieu Riou <>
Subject Re: Everyone do the twist! Twister is joining Agila!
Date Wed, 13 Apr 2005 08:39:01 GMT
First of all, I'm very happy to finally have Twister joining Agila. I
think we have a very good opportunity to build a complete workflow and
service orchestration solution as well as a strong community. Thanks a
lot to Geir for pulling this out.

Maybe we will also want to rename Twister as now it's part of Agila.
But we will still have to differentiate the two modules. I would
suggest something like Agila-BPEL as Twister is very much structured
around the standard. What do you think?

Now let me try to look at the similarities and differences between
Twister and Agila. Both could be thought of as workflow softwares. Yet
the word workflow is now used for everything as a replacement for
process and doesn't tell you much about how the flow is going to be
executed and what it's going to interact with. But both Twister and
Agila include an execution engine for activity flows (even if they are
very different in structure).

Twister is an orchestration engine (as WS-BPEL is an orchestration
language). It's designed to orchestrate the interaction between
several (web) services and handle XML messages. The notion of user,
profile or role doesn't even exist in BPEL. Everything is a web
service. Even I don't like the comparison too much (as I don't like
EAI), Twister is somewhat like a very lightweight EAI with only one
web service connector.  On the other hand, Agila is much more
"end-user" oriented and far less structured around XML messages and
services invocation. Agila's concerns are mainly roles, users,
escalation and tasks (correct me if I'm wrong).

So both engines complement each other, Twister should be used when
service orchestration is needed (like a portal that lets you issue
orders and has to orchestrate "back office" web services in an
organized fashion) and Agila should be used when you want to organize
the work of human participants (like the processing of a document that
needs several steps of reviewing and validation before being
complete). And when you need both (which actually happen quite often),
then you can use both tools.

Right now, to "emulate" end-users interaction in a WS-BPEL process, we
created a web service bundled with Twister that handles work items and
users work list. For the process engine, the worklist manager is just
a classic web service and you can specify in your WS-BPEL process to
send a message to get a work item created. Then the worklist manager
handles the work item completion and sends another message back to the
engine to notify it to continue its execution.

This is a bit lousy as the work item handling is very partial. I think
the first bridging between the two tool should happen here. Twister
could simply invoke Agila when there is user-oriented tasks to do and
Agila would notify Twister back when there's service invocation to do.

But I'm sure that there will be many other ways to make the two tools
work nicely together when we will start integrating them. As I just
explained they very much complement each other in terms of usage, so
hopefully a nice synergy should take place.

Cheers and thanks,


On 4/13/05, Bruce Snyder <> wrote:
> On 4/12/05, Geir Magnusson Jr. <> wrote:
> > I'm happy to announce that Matthieu Riou has decided to bring the
> > Twister project to Agila.  Twister is a BPEL engine, and you can read
> > more about it here :
> >
> >
> >
> > The proposed plan is to create a "modules" directory, put the existing
> > Agila tree in there, and bring twister in as a peer.  They are
> > different approaches to the problem, and for now, we can get started
> > with them separate, building bridges between them as we need to.
> >
> > Welcome Matthieu and the Twister community!
> Welcome Matthieu and Twister! Please elaborate on the bridges between
> the two. The way I see it, Agila is a framework for workflow and
> Twister is a language in which to express these workflows. Is this
> similar to what's been discussed?
> Bruce
> --
> perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> );'
> The Castor Project
> Apache Geronimo

View raw message