Following on from Sarah’s last blog that announced what’s coming, I wanted to let you know that we’re in the final stages of packaging Version 3 of Essential Architecture Manager.
The big focus in this version is a complete overhaul of Essential Viewer to make it more easily customised in terms of look and feel – e.g. to tailor it to your intranet styling, improve performance, error handling and to make it simpler to control.
However, version 3 introduces a much extended and improved meta model – based on our own practical experience of using Essential in the real world and of course the contributions of the Essential Project Community. Many of the ECPs that we have been running have now been enhanced and included in the version 3 baseline meta model.
How do we upgrade to version 3?
We’re really excited about the power that version 3 provides but how do we upgrade all those users who have already been enjoying earlier versions?
Upgrading Essential Viewer is quite straightforward as it is delivered as a WAR package. Obviously, any custom Views that have been created will need to be migrated but it is easy to deploy the Version 3 Viewer alongside existing version 2 instances as we transition any custom views.
Migrating the meta model is a little more complex but we have created a number of tools to help make this consistent and more straightforward.
Protege manages the meta model and the model via the Classes and Instances, respectively. These are managed separately (e.g. the PONT and PINS files) as are the form configurations which control the layout, widgets, labels and tool-tips.
This is generally a good thing but it means that the safest and most consistent way to make automated changes to the repository is via the Protege API and doing so means that all the checks and balances that the GUI applies can also be exploited. This also means that we (and you) can make changes and enhancements very easily via the Protege GUI and then encode those as a script of API calls that can be applied to any repository. In layman’s terms, this means we can build upgrade packs to help ease the migration.
We are currently in the process of completing the upgrade pack that will take existing repositories based on v1.2 of the meta model to version 3 and this will be released soon after the Essential Architecture Manager version 3 is launched.
Preparing to upgrade
The idea and intention of the upgrade packs is that they will gracefully upgrade any existing repository. Any extensions that you might have made to the baseline meta model, e.g. additional slots / attributes on a class, additional classes will be preserved as part of the upgrade.
We always recommend that you take an ‘extend’ approach to any customisations or additional features that you might want. Changes to the names or purpose of an out-of-the-box slot – or changing the name of a class may be lost or have unexpected results. If you’ve lost track of what you might have changed, it might be worth comparing your repository to the version 3 baseline repository using the ‘diff’ function of the “Prompt Tab” in Protege.
Many of the forms have had a re-layout to improve the user interface – and in particular to move slots that we have deprecated (served notice of retirement) to the bottom of the form.
Where possible, we have tried to migrate the forms sympathetically but given that one of the powers of Protege is that it is very easy to customise the form layout, we cannot really make any safe assumptions about what a form might look like. There will be cases where the upgrade ‘resets’ the layout to the version 3 baseline form. If you have made changes, you will need to review the layout of such forms – especially if you have additional slots on the class.
It is common to find that you are working in specific areas of the model (rather than the whole model) for particular modelling activities and this means that reviewing the form layouts can be done on an ‘as required’ basis.
How do apply the update packs?
I have described how the update packs take the form of scripts that drive the Protege API but how do we apply them? Protege does not have a plugin for managing this sort of programmatic update of the classes, instances and forms.
Currently, we provide packs as Python scripts that are executed in the “Script Console Tab” that is provided in the standard Protege install. We have tried to package this up as simply as possible, but this is still a bit technical and requires some care when running the scripts.
To improve and simplify this process, we are developing a new Protege Tab Plugin to make updating the repository more like updating your iPhone or iPad!
We’ve seen how the use of the installer has (generally) simplified the install process and we want to provide the same capability for adding new packs of classes – and importantly instances (e.g. standard enumerations) to the repository. So, this plugin will have applications beyond just upgrading the meta model.
Options for migrating to Version 3
Are there any options for how to migrate your existing Essential repository to the version 3 platform? It is possible to make use of the Essential Integration Tab and import an XML snapshot of your repository (the same snapshot that Essential Viewer uses) into an empty version 3 baseline repository. I have used this approach myself to migrate one of our demo repositories before applying further update packs.
However, if you have made any changes to the meta model, this may not be straight-forward and the instance migration packs would still need to be applied.
For this reason, I would recommend using the upgrade pack to apply all the changes required to your existing repository, classes and instances. As with any toolset like this, you should take a backup (using the Protege Project->Archive capability) of your repository before starting to apply the upgrade. And of course, the Essential Project Team will be happy to help with any tricky migrations, perhaps due to some customisations, and the option of commercial support is always available.
Version 3 has so much that is new and improved, that we’re sure that this will be an Essential Upgrade! 😉