Upgrading the Personify Web Services Designer

The Personify WSD consists of two components: Web Service Designer (UI component) and Data Services (Web Service component). Upgrading the WSD is completely seamless. However, upgrading Data Services may result in some conflicts, which should be resolved. In version 1.1, a new feature has been added to the Personify WSD to identify the conflicts and help you resolve them seamlessly.

Handling Upgrades

As we know, this product consists of multiple components distributed geographically as shown below.

 

The Source Control database, which is hosted by Personify, holds the Meta data of the Data Services. When we upgrade, all the following components must be upgraded to the same version:

·            Source Control Database (Data Services Meta Data)

·            Web Service Designer

·            Data Services Site

 

Upgrading Web Service Designer and Data Services Site are straight forward. Those can be easily accomplished just by following the upgrade instructions in the Release Notes.  Upgrading Source Control Database (Data Services Meta Data) is slightly complex. You will be using an utility - Personify Data Services Metadata Upgrade Utility – to upgrade your Data Services Meta Data, followed by WSD to resolve any conflicts. Usually there will not be any conflicts, but, occasionally you may encounter some conflicts depending on your Data Services Meta data which should be resolved during the upgrade. Web Service Designer to identify the conflicts and help you resolve the conflicts seamlessly.

Upgrading Source Control Database (Data Services Meta Data)

As this database is hosted at TMA Resources data center, you need to work through the hosting depart to upgrade your Data Services Meta Data. To eliminate this hassle, an utility - Personify Data Services Metadata Upgrade Utility - has been provided with your upgrade package. This utility will upgrade your Data Services Meta Data to required version.

Possible Conflicts

Even though conflicts are not expected, some situations would lead to the following conflicts:

·            Duplicate Property Name and Map Path:
For example, assume that TMA Resources released a Base “Customer” entity in version 1.0 with FirstName and LastName, and later you added “MiddleName” to the entity (in the custom layer). If TMA Resources were to add “MiddleName” to the Base “Customer” entity in version 1.1, after you upgrade to version 1.1, you would see duplicate “MiddleName” properties in the “Customer” entity.
Resolution:

o           “MiddleName” in the custom layer has to be deleted.

o           All the Associations referencing this property have to be deleted.

o           All the Navigation Properties referencing these associations have to be deleted.

·            Duplicate Property Name with Different Map Path:
The scenario is same as described above. However, the only difference is that the “MiddleName” property in the custom layer is mapped to different API property than what TMA Resources has mapped the Base “MiddleName” property.
Resolution:

o           “MiddleName” in the custom layer has to be either deleted or renamed.

o           All the Associations referencing this property have to be deleted or renamed.

o           All the Navigation Properties referencing these associations have to be deleted or renamed.

·            Duplicate Map Path with Different Property Name:
For example, assume that TMA Resources released a Base “Customer” entity in version 1.0 with FirstName and LastName, and later you added a property “Name” to the “Customer” entity (in the custom layer) mapped to “LastFirstName” API property. If TMA Resources were to add a Base property “LabelName” to the “Customer” entity mapped to “LastFirstName” API property in version 1.1, after you upgrade to version 1.1, this will be considered as duplicate properties; although the property names are unique, the MapPaths are duplicate.
Resolution:

o           “Name” in the custom layer has to be deleted.

o           All the Associations referencing this property have to be deleted.

o           All the Navigation Properties referencing these associations have to be deleted.

·            Duplicate Element Name:
For example, assume that TMA Resources did not release any Base element with the name “XYZ” in version 1.0, and later you added an entity named “XYZ (in the custom layer). If TMA Resources added a Base entity with the name “XYZ” in version 1.1, after you upgrade to version 1.1, you will see duplicate entities. This is applicable to any element types (association, entity, service operation).
Resolution:

o           The element “XYZ” in the custom layer has to be either deleted or renamed.

o           All the Associations referencing this element have to be deleted or renamed.

o           All the Service Parameters referencing this element have to be deleted or renamed.

o           All the Service Operations referencing this element have to be deleted or renamed.

·            Duplicate Association Between Any Two Entities:
There cannot be more than one association between any two given entities. For example, assume that TMA Resources did define any Base association between the entities “Country” and “State” in version 1.0, and later you defined an association between “Country” and “State” (in the custom layer). If TMA Resources added a Base association between the entities “Country” and “State” release in version 1.1, after you upgrade to version 1.1, you will see duplicate associations between “Country” and “State”.
Resolution:

o           The association between the entities “Country” and “State” in the custom layer has to be deleted.

o           All the Navigation Properties referencing these associations have to be deleted.

Conflict Resolution Center

After upgrading, when logged into the Personify WSD, it automatically identifies all the conflicts and opens up Conflict Resolution Center Screen, if needed. The screen displays all the conflicts with options to delete, rename, and disable the base element.

Additionally, you can compare the custom layer element definition to the respective base element by clicking the Compare button.

Recommended Guidelines for Upgrading Data Services

Before You Upgrade:

·            Make a backup of all PDS_* tables (where the service definitions are stored).

·            Check-in all Pending changes.

·            Close all the instances of the Personify WSD (all work stations; all users).

Upgrade:

·            Run the “Personify Data Services Meta Data Upgrade Utility” that comes with you release package.

After You Upgrade:

·            Launch the Personify WSD.

·            If the system identifies any conflict, the Conflict Resolution Center will open; otherwise, the Personify WSD will open.

·            Resolve the conflicts.

·            When all the conflicts are resolved, the Done button will be enabled. Clicking this button will open the Personify WSD.

·            Build and test locally.

·            Check-in all the changes (some elements will be automatically checked out while the conflicts are resolved).

It is strongly recommended to check-in all the changes before you upgrade. If there are any pending check-ins from any developer, the system will not let you resolve the conflicts. However, it provides an option to view the pending check-ins, undo the changes, and then proceed with the resolution.

Unless all the conflicts are resolved, you will not be able to open the Personify WSD. Closing the Conflict Resolution Center will exit the Personify WSD.

See also:

·            Web Services Designer Overview

·            Web Services Designer Security

·            Web Services Designer Layout

·            Web Services Designer Source Control and Layering

·            Web Services Designer Behavior

·            Compiling and Publishing Web Services

·            Versioning Service Elements Across Personify APIs

·            Versioning Properties Across Personify APIs

·            Web Services Designer Configuration

·            Breaking Changes

·            Web Services Designer Glossary

·            Personify Data Services