Seems like something similar that we are working on with the Open GeoSpatial Consortium and the Workflow Management Coalition,: A RESTFul API to control a workflow engine based on a rail application (GeoBPMS in my case). It would be great if we all agree on the same interface for interoperability. This is a big issue for us (less of an issue for John). We are currently working on several interoperability demos with other vendors/implementations as part of OWS-5. [Workflows are being used for Wildfire monitoring]
This would certainly allow a client to interface with it using ActiveResource and a graphical workflow designer to allow you to design a workflow graphically (BPMN), persist it (XPDL) and upload it in native form to the engine (OpenWFE). If there is more interest, let me know. Pat. > From: John Mettraux <[EMAIL PROTECTED]> > Reply-To: <[email protected]> > Date: Tue, 23 Oct 2007 17:52:48 +0900 > To: <[email protected]> > Subject: [openwferu-dev] Re: Database Persisted Engine > > > Hi Tomaso, > > On 10/23/07, Tomaso <[EMAIL PROTECTED]> wrote: >> >> Dear John, >> thank you for the wonderful OpenWFE(ru). > > You're welcome, if it can make your life easier, that's good. > > >> Our idea is to have a unique db where wf instances are stored and a >> plugin (something like a >> owferu-service-connector -briefly OpenWFE-sc ) that may be included >> into all the rails apps that need workflow "services". > > Have you considered having a central Rails application providing a > RESTful interface to 'client' Rails application ? > > I would like to implement it (I've been planning to do it since a few > months ago, to replace the old REST interface). > > Your 'client' Rails application could then use ActiveResource to > interact with the core RESTful "workflow service". > > >> I suppose that what it needed is something like a DbPersistedEngine: >> i'had tried to write this class, >> starting from the FilePersistedEngine, and by consequence i provided a >> set of classes that enable me to write >> yaml on a db, similarly to FilePersistedEngine. >> >> But now the problem for me is: what data must be stored on the >> database in order to obtain a storage service >> that can offer at least the same features of the FilePersistedEngine. >> Can you describe me what data is needed to obtain this, please? I'd be >> very glad to try to write it on my >> own ( with your precious help and supervision :) ) > > Persistence of the engine (the process instances themselves) to a > relational database. > > I've just implemented that but on top of JRuby and a Java Content > Repository, that's interesting anyway : > http://svn.magnolia.info/svn/modules/community/magnolia-module-workflow/branch > es/magnolia-module-workflow-openwfe-ruby-3.0/src/main/resources/workflower/eng > ine.rb > > I'd be glad to help you implement that, with ActiveRecord (and its > "serialize" directive), it's very easy. > We can get along with 4 columns. Looking at the JCR based implementation : > > ---8<--- > def []= (fei, fe) > > ldebug { "[]= storing #{fei.to_s}" } > > @mutex.synchronize do > > c = locate_expression fei, true > > vf = c.getJCRNode.getSession.getValueFactory > > c.createNodeData( > WfConstants::NODEDATA_ID, vf.createValue(fei.to_s)) > c.createNodeData( > WfConstants::NODEDATA_WFID, vf.createValue(fei.wfid)) > c.createNodeData( > WfConstants::NODEDATA_EXPCLASS, > vf.createValue(fe.class.name)) > > c.createNodeData( > WfConstants::NODEDATA_VALUE, > vf.createValue(YAML.dump(fe))) > > @hm.save > end > end > --->8--- > > The columns are id, wfid, expclass and value (which contains the > serialized/yamlized) version of the expression. > > There is one issue though : the engine is demanding in terms of > updates to the storage. In order to limit them (IO is always costly), > I generally use the ThreadedStorageMixin : > > http://openwferu.rubyforge.org/svn/trunk/openwfe-ruby/lib/openwfe/expool/yamle > xpstorage.rb > > which dramatically reduces the number of updates to the > filesystem/database necessary. > > > So to sum up all of this, I'd be glad to have your help. The engine > persistence to the database is easy to implement, it needs tests and > documentation though :) > > Would your company be OK if code that you author goes out under the > BSD license ? > > What about the RESTful server approach ? > > > Best regards, thanks for your interest, > > -- > John Mettraux -///- http://jmettraux.openwfe.org > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "OpenWFEru dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/openwferu-dev?hl=en -~----------~----~----~----~------~----~------~--~---
