Re: [werkflow-user] BPEL support
Paul Russell <[email protected]> Tue, 24 Feb 2004 23:57:46 +0000
| Newsgroups | gmane.comp.java.werkflow |
|---|---|
| Message-ID | <[email protected]> |
Hi Brian, Thanks for this. I've made some comments below... On 24 Feb 2004, at 04:14, Brian Topping wrote: > >> [...] I come from a websphere >> process choreographer background, which works using database-based >> persistence to store state, and JMS + Message Driven Beans to provide >> activity scheduling and dispatch - I was kind of /assuming/ a similar >> architecture for implementing BPEL. > > Wrapping Werkflow with this functionality should not be difficult. > Repository interfaces exist inside the system, so it's really just a > matter > of extending your persistence mechanism to include them on the back > end. > Adding the MDB transport on the front end should be a couple dozen > lines of > code. I'm not sure we're talking about quite the same thing here. Although IBM's framework /can/ use JMS as a framework for controlling the workflow container (including starting processes etc), it also uses it internally to schedule the transitions between activities for macro-flows. This allows one process to run across many nodes (although usually, the EJB container's affinity will prefer each activity to run on the same node as the last). If the node fails for any reason, the process will forward recover on another node, since the message that triggered the last activity will be 'rolled back' onto the queue. >> I guess what I'm trying to assess is how far off being >> production ready >> for werkflow is, both in a generic sense and in a BPEL sense. So for >> example, for me to consider this production ready, I'd expect it to: >> >> * Support running in a multi-node environment >> * At least with High Availability. >> * Preferably with load balancing and high availability. > > This probably depends more on your container than Werkflow. If you > had a set > of routines that you wanted to do this, how would you do it? Werkflow > just > provides the entry points for you to call. It's very independent of > container, so you don't have to worry about all the headaches of the > engine > playing with the container state. You're absolutely correct that Werkflow shouldn't be directly involved in this. However, as it stands, as far as I know, a process can't be failed over half way through. This is fine for processes that take a few seconds to execute and return a result, but if a process takes weeks or even months, this is a bit of a killer for the application I have in mind. >> * Support graphical debugging through development tooling. > This is one that I am particularly interested in myself. It's not > there yet. > I'm looking at generating my source files from XMI, and I could > imagine that > there would be a way to have a fat client that could graphically trace > the > UML that was in the XMI. I have some ideas here, but I don't really > understand what ought to happen because I've never seen a commercial > workflow > engine in operation. Yeah, that's absolutely the kind of thing I'm thinking about. I'm not sure XMI will cover it directly, since BPEL doesn't map as directly onto UML as some of the other 'flow' based languages (IBM's FDML, etc). One thing that occurred to me is that if we could implement some kind of traceability between the 'core' workflow language and the personality, it might be possible to derive the current node in the personality workflow based on that traceability. >> * Support development tooling ;) > Would generation from UML work? It certainly could (should), although there is a bit of a mismatch here. UML Activity Diagrams (with a few extensions for supporting compensation etc) map pretty well onto the 'flow' markup within BPEL. The more procedural constructs like 'sequence' 'choice' etc don't map so well onto UML. You could conceivably use sequence or collaboration diagrams, but the match would be much more approximate than for <flow>. >> Do you guys have any thoughts as to whether these are things you were >> expecting to support as part of werkflow? If so, do you have >> a road map >> to get there? I'm quite willing to help if you can point me in the >> right direction! > I can't speak for the rest of the team, but I am working on these as a > part > of my project. It's just a matter of time. But that still doesn't > answer > your question. Do you have the resources to help with this or are you > needing something that is more complete from the outset? At the moment, I'm in the investigation stage of a project (i.e. budget has not yet been allocated). Should a decision be taken to proceed, then funds would be available to directly contribute, assuming you guys are open to this. > I'm personally not that impressed by the other solutions out there, > and feel > like I'd rather invest in Werkflow than try to fix what's broken in the > backend on the other tools. Agreed. I'm trying to work out what changes would have to be make to Werkflow to support what I'm talking about here, to work out whether it's viable to modify Werkflow, or whether the concepts are just too different. Right now, my instinct says Werkflow provides a good framework to build on, but that there might be quite a lot of work to do to make it do all the things I'm looking for. > If/when I attack this, it will probably be as I described above. It > would be > great to have you help with rough text or graphic descriptions of what > you > are looking for. Can you provide some ideas? Certainly. Happy to help in any way I can. I'm about to send a separate e-mail outlining one of the things I've been thinking about in more detail. I'd welcome feedback, comments and common sense!! Paul -- Paul Russell [email protected]