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

Reply via email to