Author Archives: Andrew

Happy New Year!

Apologies to regular readers who wondered if I’d fallen off the planet. It’s been a busy second half of 2005, and I haven’t managed to do much reading or writing for a few months. However, with the builders gone and a very difficult year over, hopefully things will get back to more nearly normal!

Sorry, there’s no Coppertrees Calendar for 2006 – another casualty of our very busy 2005. Hopefully it will make a return in 2007.I’m currently working on a new paper, looking at the different ways of modelling dependencies in software. I’m hoping it’s possible to merge some of the matrix-based techniques with pattern-based approaches – watch this space for more details.A very Happy New Year to all my readers. Here’s hoping that we’ll all have a slightly easier 2006.

Posted in Personal News | Leave a comment

An Agile Architecture War Story

I don’t really believe in a common architectural process. As the author of a successful project management book, and recent articles on data architecture methods, I probably shouldn’t say this, but to paraphrase a famous quote, “When I hear ‘process’, I reach for my gun!”

This is a story of a project I worked upon which followed an informal, agile process, but delivered a successful architecture. Hopefully it serves to support my assertion that agile can have an architecture, but needs an agile architect.

Read the full article
Posted in Agile & Architecture, Thoughts on the World | Tagged | Leave a comment

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 more, please read my full review.

Read the full article
Posted in Reviews, Thoughts on the World | Leave a comment

Review: A Short History of Nearly Everything

By Bill Bryson

Science for the verbally-minded

This is a remarkable book in two ways. It’s a very clear, comprehensive summary and explanation of our current understanding across a wide range of scientific subjects. It’s also the only science book I’ve ever read with almost no illustrations or equations.

In his introduction Bryson complains that he could not get interested in science at school because all the text books were dull. Admittedly I’m a few years younger, which might make a difference, but I was exposed from an early age to a vast array of well-written and beautifully-illustrated books on a range of science subjects. The conclusion is simple: unlike most who get interested in science, Bill Bryson is one of those people whose thinking is almost entirely verbal in nature, and he’s written a book for those of the same persuasion. And he’s done a very good job of it.

Read the full review

Categories: Reviews. Content Types: Book and Science.
Posted in Reviews | 1 Comment

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 quotes).

While the metaphor might still be valid, some people are beginning to question how far it should be taken. Helland’s article, like others before it, implies that “good” EA looks rather like a medium-sized modern American town, complete with relatively standard services, civic buildings and commercial venues. In an answer to the original “Metropolis” article Richard Veryard and Philip Boxer have published “Metropolis and SOA Governance” which challenges several of Helland’s assumptions.

I think that maybe we should extend the metaphor by thinking about cities, or Enterprise Architectures, as very diverse entities. What sort of “city” do you live in? To what extent is it planned? What is the vision, and do the citizens share in it? Does the EA resemble a nice neat midwest town, a dark, brooding Gotham City, a glass and steel Utopia, a federation of small towns with lots of empty space between them, a medieaval walled town, or a wartime mid-european ghetto?

And the metaphor can be taken further. Do you want to promote “infill development”, closing up functional gaps, or do you want to keep clear separation between the various zones? Do you want the shared services to be clearly visible, as they are in modern, purpose-built towns or hidden beneath a facade which looks much older or simpler? Do you expect to eventually knock down and rebuild older “legacy” zones, or do you want to preserve them with the minimum of change (a common requirement for our valuable historic buildings)? Do you want to accomodate the small hardware shop (read small the bespoke system) as well as the new DIY superstore (the ERP package)?

Finally, remember that it is extremely rare for a city to be truly planned and designed from scratch. You usually start with something established. Even if the city has been flattened by a bomb, you’ll have to observe land rights (this is what stopped Christopher Wren and Charles II realising their grand design after the Fire of London). This is equally true of Enterprise Architectures.

The city planning metaphor is a powerful one, but its true power may come if we use it to explore problems as well as utopian ideals.

See http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnmaj/html/Jour5metro.asp
Posted in Agile & Architecture, Thoughts on the World | Leave a comment

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 a giggle.

Read the full article
Posted in Personal News, Thoughts on the World | Tagged | Leave a comment

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 integration solutions. To find out more, please read my review.

Read the full article
Posted in Agile & Architecture, Reviews, Thoughts on the World | Leave a comment

Review: Enterprise Integration Patterms

Designing, Building and Deploying Messaging Solutions, By Gregor Hohpe and Bobby Woolf

An excellent book which will become a standard reference

This book could really be titled "Everything You Wanted to Know About Message-Based EAI, But Were Afraid To Ask". It’s a very comprehensive book, which goes beyond mere patterns to introduce the reader to a wide range of topics in the world of messaging. It forms a strong and useful counterpart to the many more general books on architecture patterns, for example Martin Fowler’s "Enterprise Architecture Patterns" in the same series.

Read the full review

Categories: Reviews. Content Types: Book, Modelling & Analysis, and Software Architecture.
Posted in Reviews | Leave a comment

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? The mighty Microsoft.

Regular readers will know that I’ve highlighted several articles published in Microsoft’s Architecture Journal. A week ago I went to post a note on another article, to find that all my previous hyperlinks were broken. Thanks to my regular correspondents Richard Veryard and Arnon Rotem-Gal-Oz I discovered that the cause is an internal reorganisation within Microsoft, and there is a new web location for the journal, although it wouldn’t surprise me if that changes again. (To add insult to injury, the new URLs are very cryptic, and don’t paste easily into my blog!)

Now if you follow Microsoft’s advice when building systems, interfaces should be immutable. Otherwise you just don’t know what will break. The Microsoft advice is to never change an existing interface – if you need a different one, create a new interface, or at least a different version. And maintain the old one as long as dependent systems need it.

Microsoft are actually very good (not perfect, but quite good) at following this rule in their software systems. But they don’t seem to understand that the same rule should apply to that big public interface called the website. There are, of course, perfectly good strategies which would avoid this problem.

First, don’t try to reflect internal structural changes in the MSDN website. Doing so is like changing a system’s interface just because the implementation has been updated – the opposite of good practice. The public interface should be independent of implementation details.

Second, if you must create a new interface, keep the old one working. In systems, you can usually wrap the new interface to mimic the old. The same is true for a website. A set of auto-redirect pages at the old addresses, and I would never have even noticed the change.

Unfortunately Microsoft have done neither of these. And they seem to have a corporate blindness to the fact that documents are interfaces too. MS SharePoint is based on a web idiom, in which documents are identified by their position in a hierarchy. Re-arrange the hierarchy, and any external references or cross-references suddenly break.

Professional-quality document management systems don’t do this. They identify and control documents via a unique, immutable key into the underlying repository, and the primary document access via this key is guaranteed. Of course, you also want to show the document in a hierarchical structure, but any such entry is just a pointer to the underlying document. And if you want to change the hierarchy, or expose the same underlying document at multiple places in multiple hierarchies, it’s easy to do. The world of blogging has a similar concept, with “permalinks” which (should) survive a reorganisation.

Memo to Microsoft: links are interfaces too!

Posted in Thoughts on the World | Leave a comment

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 moment is about at the same stage as America in the 1880s, when they were just starting to turn the Wild West into an industrialised nation!

Three short quotes from Helland’s conclusions bear repeating directly. On heterogeneity he says:

Remember that heterogeneity happens. Unless you have a very simple application portfolio, shared services will not be achieved by trying to put all
of your applications on one version of one platform. Even if you could, the next
merger would change that! Rather, you have to design for interoperability and
integration across platforms. This is the force that is driving the industry
wide work in service-oriented architectures.

He extends the popular “city planning” metaphor to IT investment:

IT investment is a balance of funding the sacred, protecting historic monuments, and allocating spending between infrastructure and business opportunity. Striking this balance is a key facet in effective governance, and in realizing the potential of IT in your organization.

And finally, those who seek to maintain control of their enterprise
architecture through heavy governance would be well advised to note:

You have to maintain a light hand. It is counterproductive to try to dictate
what happens in every structure in town, what color shirts are made, and how much is charged for soap. You have to embrace the semi-autonomous approach to governance that is characteristic of our cities, and allow the process owners to optimize and achieve efficiencies with as few constraints as
possible.

See http://msdn.microsoft.com/library/en-us/dnmaj/html/aj2metrop.asp
Posted in Agile & Architecture, Thoughts on the World | Leave a comment

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. Please send me a comment if you know!

Update

Thanks to my regular corrspondents Richard Veryard and Arnon Rotem-Gal-Oz I’ve managed to track down what’s happened. The journal is now at http://www.microsoft.com/architecture/default.aspx?pid=journal

This “broken interface” breaks so many architecture rules it deserves a separate post, so I’ve written one!

Posted in Thoughts on the World | Leave a comment