Hi All, Activiti stores deployment artifacts in its database without keeping extracted versions of BPMN archives. I think it is better to follow a similar approach when implementing BPMN support in BPS. Similar to deploying BPEL packages, we can support deployments through file system and file upload UI.
File system based deployment works as follows: - A BPMN deployer is started on server start up to listen for bar files in the bpmn folder - BPMN archives (i.e. bar files) are copied to the bpmn folder - Artifacts in the copied archive are persisted in the database and the archive is deleted from the file system - In a clustering environment, manager node sends cluster messages to all members to load necessary data from the database. This approach does not cause redeployments upon server restarts as the archives are deleted as soon as the deployment is complete. Activiti assigns a unique ID for each deployment (even for deployments with the same name), so that versioning can be handled with a minor effort. We have to maintain tenant details (i.e. tenant ID -> deployment ID mappings) in BPS. When a BPMN archive is deployed, we have to update these mappings in the database. Furthermore, in a clustered setting, manager node has to inform all members about new deployments, so that members can update their tenant mappings. By following this approach, we can simplify the deployment and clustering, while aligning the deployment model of our BPMN implementation with that of Activiti. Thoughts... Regards, Chathura
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
