Monthly Archives: August 2005

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