Organization Model Versioning

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

Design Time

At design time, in TIBCO Business Studio:

  • 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 ActiveMatrix BPM 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 ActiveMatrix BPM 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, so the entity is not deleted from the organization model.

Deployment

When an application that contains an organization model is deployed, TIBCO ActiveMatrix BPM 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 termed a partial deployment.) Any organization model entities not defined in the additive update remain in the model, they are not deleted.
  • The qualifier part of the version number, by default, becomes a timestamp recording the date and time on which the application was deployed.

    When you undeploy an organization model, the model's organization entities are removed immediately if the same organization entities are not also 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, and 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, if its name matches that of an existing application, the TIBCO ActiveMatrix platform treats it as an upgrade. (The platform ignores the project’s version number when determining if 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 - see "Application Upgrade" in TIBCO Business Studio - BPM Implementation for more information.)

  • TIBCO ActiveMatrix BPM manages deployed organization model artifacts, combining 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 and/or micro version number.
    Note: If a deployed process application has a dependency that cannot be resolved (because a required organization model application version has been deleted), it will be left unable to execute. In TIBCO ActiveMatrix Administrator, the application will be shown with a "Waiting for dependency" state.
  • A user task in a process executes against the major version of the runtime organization model that is referenced in the process definition.

These dependencies must be borne in mind when considering issues such as:

  • 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: When you want to upgrade an organization model to a new major version, you should use the same application name only if you are certain that 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.

The following sections provide a series of examples that show how organization model versioning works and how it can be used: