Modelling Data Mapping – A Challenge

Almost all integration projects contain one or more transformations (sometimes called “mappings”) between two different structures holding equivalent data (for example the order tables in the database, and the order XML message). We know how to model the individual static data structures in various ways, but the most common approach is to represent each by a UML class model, and there are established conventions for how to do this for different data sources.

However, UML doesn’t help when it comes to the transformations themselves, and typically the detail has to be captured either in code, or a proprietary format. Most good integration tools provide some sort of “visual mapping tool”, where the developer drags and drops to create links between representations of the two structures, usually imported directly from their physical schemas. Here’s an example using SeeBeyond. Altova provide a good stand-alone data mapping tool called Mapforce – here’s an example showing it in use. The problem is that these tools work directly with the physical structure, and don’t export the mapping information in a reusable format, so that information is completely disconnected from the UML analysis or design models.

I have experimented with trying to represent mapping information in a UML model, but so far without much success. The best solution I’ve found so far is to use some sort of “pseudo code” (it could be OCL, pseudo-Java, pseudo-VB or anything similar). For example, we could easily annotate the model with code fragments such as:

Database.order_table.order_no = Message.Header.OrderNo

(where each element refers to a UML Package.Class.Attribute combination).

The problems are that it’s not clear where to put this annotation, most UML modelling tools won’t help generate it, and there’s no graphical representation. Ultimately, writing pseudo-code like this is probably not much better than abandoning the model and moving straight to using your integration tool.

My question is: does anybody know a better way? Has anybody found a good way of representing mapping information in UML? And if so, is there any good tool support?

If you know, please send me a message.

Posted in Agile & Architecture, Thoughts on the World | Leave a comment

Review – A Short History of Nearly Everything

I’ve just posted my review of Bill Bryson’s “A Short History of Nearly Everthing”. I found it an excellent holiday read, athough a general science book with almost no illustrations or equations took a bit of getting used to. For Continue reading

Tuesday, August 16, 2005 in Reviews, Thoughts on the World

A Short History of Nearly Everything

Science for the verbally-minded Continue reading

Metropolis – Where Do You Want To Live Today?

There’s been a lot of talk in recent years about a “city planning” metaphor for Enterprise Architecture development. Pat Helland’s article “Metropolis” in the Microsoft Architecture Journal is a very good example (see my post on this for some key Continue reading

Monday, August 8, 2005 in Agile & Architecture, Thoughts on the World

My Favourite Films – An Exercise in Over-Analysis

A bit of a change from my more serious posts, but maybe a useful lesson in analysis, here’s the sorry tale of just how complicated I managed to make listing my top ten favourtite films. I hope it gives you Continue reading

Review – Enterprise Integration Patterns

I’ve just posted my review of Gregor Hohpe and Bobby Woolfe’s excellent book on Enterprise Integration using messaging, “Enterprise Integration Patterns”. Overall it’s an excellent book, and wiil probably become a “bible” for those involved in the high-level design of Continue reading

Sunday, July 24, 2005 in Agile & Architecture, Reviews, Thoughts on the World

Enterprise Integration Patterms

An excellent book which will become a standard reference Continue reading

Interfaces and Document IDs – A Rant

Please forgive me if this sounds like a rant, but I’m very annoyed. Someone who should know better has without warning changed a public interface, with the inevitable effect that dependent systems, in particular my blog, have broken. The offender? Continue reading

Monday, July 18, 2005 in Thoughts on the World

Metropolis – a Metaphor for IT Maturity

I’ve just read an excellent paper by Pat Helland of Microsoft, in which he likens the development of cities and manufacturing in the 19th century to the development of systems and business models now. His conclusion – IT at the Continue reading

Monday, July 11, 2005 in Agile & Architecture, Thoughts on the World

Death of the Microsoft Architecture Journal?

Does anybody know if Microsoft have killed off their Architecture Journal? I was just about to write a post linking to it, and I find the content has been moved to an archive area and all the links have changed. Continue reading

Cirrus Minor – A New Architecture Site

Arnon Rotem-Gal-Oz has set up an interesting new site / blog dedicated to software architecture. Of particular note, he’s trying to put some detail on the architecture “process” which is often negelcted as a single box on the development process Continue reading

Tuesday, June 28, 2005 in Agile & Architecture, Thoughts on the World

Domain-Specific Languages

There seems to be quite a lot of activity on the “Domain Specific Language” front at the moment. Martin Fowler published “Language Workbenches: The Killer-App for Domain Specific Languages?”, in which he concludes that the common programming pattern of setting Continue reading

Sunday, June 26, 2005 in Agile & Architecture, Code & Development, Thoughts on the World