I'm designing a new application for deploying softwares to multiple systems.I need to support wizard like option where in the user can input his machine details and other software configurations.The wizard pages displayed to the user would vary based on the selections done by user in earlier pages.
I'm thinking of using workflow for this.I would configure a processdefinition.xml file containing all the flow paths user might choose while configuring. Based on the user selections, I need to create a new workflow at runtime which is basically a subset of the master processdefinition.xml. I need to save this new workflow created at runtime into a new xml(install_processdefinition.xml).Based on the number of machines the user wants to deploy the software,i would create so many forked process which would take care of progress tracking of installation of a remote machine.As the software is to be installed on remote machines, I would transfer these install_procesdefiniton.xml to those remote machines and execute the workflow there.I need to have fork/join as I need to do pre installation checks on all these machines before initiating the installation and then wait till the installation is finished on all the machines before post installation tasks are initiated.
My questions are:
1.Is jBPM and other workflows in general suitable for this application.
2.How can I write back the processdefinition.xml(i read the jpdlxmlwriter is deprecated)
3.Can each forked process/task load and execute a new different processdefinition.xml
4.How can the communication happen between the GUI and the workflow engine
5.Can the TaskInstance persist complex data.
1: is it workflow or just pageflow?
2: you can't
3: Sure, if you do late-binding for the subprocess and use EL to specify a name for the subprocess
4: Via an API
5: Define complex data... an xml document? if it is serializable it can. But I'd store complex domain data outside of the processengine