Many organisations embarking on EA modelling already have a wealth of information in a variety of disparate forms, such as presentations, drawing tools and most commonly in spreadsheets. Rather than re-key, or re-model all this work, shouldn’t we be able to exploit this existing information – lifting it directly – by importing it into Essential Architecture Manager?
Over the last few years, we have explored a variety of options for importing existing information into Protege (and therefore Essential Architecture Manager) and we realised that the only safe and reliable approach was to do this using the Protege API to add, remove and update information in the knowledge base in effectively the same was as the graphical user interface and let Protege take care of all the integrity issues as it does when you work with the forms. Using the Protege API is at the heart of the Essential integration tools.
The new Essential Integration tab plugin for Protege and Essential Architecture Manager simplifying the one-off ‘data load’ of things like your spreadsheets but also the on-going synchronisation of important data that is maintained in other systems. We’ve had some very good experience of doing this sort of synchronisation with configuration management databases and virtual server environment configurations.
This new tab is an evolution of the ‘skunk-works’ release of the Integration Server. We have made it into a tab to make it easier for both stand-alone and multi-user use (both modes are supported) and to make it easier to install and add this capability to your Essential Architecture Manager. The process of running an import or synchronisation is now much simpler than it was with the Integration Server.
The concept of the integration server will remain but will be re-worked to provide a means of automating imports and on-going synchronisations from other sources, e.g. on a scheduled daily basis. However, the new integration tab will be the most commonly used mechanism for importing information into Essential en-masse.
Getting information out of Essential to share with other systems is simply a matter of creating a suitable view for Essential Viewer, maybe an XML document or a CSV etc. With the contribution from Essential Project Community member, Mathwizard, this can be saved directly as an export file from Essential Viewer, using your browser.
So how to do you go about importing your spreadsheets, XML documents etc. using the integration tab?
As you might expect, XML is the ideal format for integrating the source information and the integration tab expects source data to be in XML format, so it is often easiest to work with an XML export of your source information.
The first step is to work out how this existing information will be represented in Essential. Unfortunately, there is no magic solution to this. You need to define how your source information maps to the Essential Meta Model and with this understanding define the transform that is required.
By the way, creating relationships and relationship classes during imports can be particularly tricky as the source information often does not represent the relationships in a way that can be mapped to the relationships in the Essential Meta Model. In many cases, it can be best to focus on importing the instances and then completing the relationships in Protege via the forms.
There are two approaches to defining the transform that I’ll explore in a moment. We intend to produce and share a library of transforms from common source formats into the baseline Essential Meta Model.
Currently, we have a transform for importing the XML representation of an Essential repository that Essential Viewer uses. This means that you can import elements from other Essential repositories, out of the box. Also, our previous experience with certain configuration management databases and virtual server environments mean that we can easily share transforms to import Technology Nodes and Technology Instances into Essential.
The two approaches to transforming your existing source information into the Essential Meta Model are:
- Transform you existing source to XML using the Essential Viewer XML schema. Then import this resulting XML into Essential using the out-of-the-box Essential Repository transform. This approach is useful for once-off data loads from existing sources such as spreadsheets where it’s most important to get the main instances into Essential rather than complex relationships.
- Define your own transform file and use this to have the integration tab transform your source information and import it into Essential. Although this may seem to be a more complex exercise than approach 1, you have more flexibility in defining how your source information maps to the Essential Meta Model. A how-to guide for writing transforms is being written at the moment that explains how the transforms work and the supporting tools that are available, e.g. a library of script functions that wrap the Protege API to support things like on-going synchronisation of instances in Essential with instances in other, external repositories.
We would be very happy to help anyone who needs to construct their own custom transform via the forums or even to undertake commissions to build custom transforms as required.
And of course, if you’ve built some transforms that you’d like to share with the Community, we would really like to add these to the Share area of the site.
Happy exploiting of your existing information!