Organization Model Versioning

Versioning is used to control the interaction of different organization models. When an organization model is deployed, TIBCO BPM Enterprise manages all updates (additions, deletions and changes) and resolves any conflicts caused by those updates.

Design Time

At design time, in TIBCO Business Studio - BPM Edition:

  • A project containing an organization model is given a version number, of the form major.minor.micro.qualifier.
  • If a process participant is defined as an external reference to that organization model, the process definition records (internally) the major version number of the referenced organization model. All references within a project must be to the same major version of the organization model.
Note: If a project contains only additions to an existing runtime organization model, the version number may be changed as required.

If a project contains a destructive change to an existing runtime organization model, the project’s major version number must be incremented. A destructive change is one that changes, or is intended to remove, an existing organization model entity. For example:

  • deleting a position (as opposed to simply not including it in the project - which is a partial deployment)
  • changing the name of an organization unit

If a destructive change is made and the major version number is not incremented:

  • If an organization model entity has been changed, when the project is deployed TIBCO BPM Enterprise treats this as a destructive change to the referenced major version of the organization model and raises an error. The deployment is rejected and no changes are made to the organization model.
  • If an organization model entity has been deleted, when the project is deployed TIBCO BPM Enterprise treats this as an additive update to the referenced major version of the organization model. The deployment is accepted, but assumed to be only a partial deployment, and the entity is not deleted from the organization model.

Deployment

When an application that contains an organization model is deployed, TIBCO BPM Enterprise either creates a new runtime organization model version or modifies an existing one:

  • An organization model with a new major version number is treated as a complete and separate runtime organization model.
  • An organization model with a major version number that already exists is treated as an additive update to the existing runtime organization model with that major version number.
    Note: An additive update does not need to contain all the entities defined in the original organization model of the same major version. (This is called partial deployment.) Any organization model entities not defined in the additive update remain in the model, and are not deleted.
  • By default, the qualifier part of the version number, becomes a timestamp that records the date and time when the application was deployed.

    When you undeploy an organization model, the model's organization entities are removed immediately if the same organization entities are also not a part of another organization model deployment within the same major version. This happens even if another organization model, of the same major version, was deployed after that organization model.

    For example, deploy three organization models to the same major version: organization models v1.2.0 and v1.1.0 are deployed in that order. V1.2.0 contains entities 'a', 'b' and 'c', and v1.1.0 contains entities 'a', 'b' and 'd'. If v1.2.0 is un-deployed, only entity 'c' would be removed, as 'a' and 'b' are also in v1.1.0. Minor version numbers do not affect the order of deployment or undeployment.

Runtime

At runtime:

  • When an application containing an organization model is deployed, TIBCO BPM Enterprise treats it as an upgrade if its name matches that of an existing application. (The platform ignores the project’s version number when determining whether the application is new or an upgrade.)

    The platform deploys the new version and deletes the existing version of the application. (This has implications for existing process instances.)

  • TIBCO BPM Enterprise manages deployed organization model artifacts, and combines them to build up the runtime organization model.

User Application Dependencies

At runtime:

  • A process application has a dependency on the application that contains the referenced organization model. The dependency can be resolved by a version of that application that has the same major version number, and a later minor or micro version number.
  • A user task in a process runs against the major version of the runtime organization model that is referenced in the process definition.

These dependencies must be considered for the following issues:

  • naming conventions and version numbering schemes to be used for organization models.
  • the impact of upgrading an organization model - both on dependent process applications and on the runtime organization model.
  • the impact of deleting an organization model - either directly, or indirectly as a result of an application upgrade - both on dependent process applications and on the runtime organization model.
Note: To upgrade an organization model to a new major version, you should use the same application name only if the previous version is no longer needed.

If the previous organization model version is (or may be) still required, deploy the new version as a new application (that is, using a different application name). Both versions of the runtime organization model will then continue to be available. Deployed processes can then be either left to run against the old version or upgraded to use the new one as required.