Can Common Information Models improve the understanding of the information behind complex IT projects?

What’s the most important element of an application? There’s a tendency to think in terms of what the application ‘does’, but the data the app works on is just as important, perhaps more so. That’s certainly the viewpoint of the authors of this book, who argue that information is often treated as an afterthought, the ‘poor stepchild’ behind applications and infrastructure.

This is a high level introduction, and isn’t aimed at developers. Instead, the intended audience of the book is enterprise architects, information architects and solution architects, and for ‘implementers who translate design into working systems’. If you’re a developer (or is that implementer?), the most useful thing about the book is to ensure you know what the pointy headed managers are really talking about when they’re talking CIM.

The key concept of the book is the Common Information Model (CIM), which defines a standard representation for information that can be used in interfaces between apps; to exchange information between people; and to synchronize information between databases. There have been plenty of attempts to create something that allows this in the past, but the idea still has validity – if it actually worked it would solve a lot of problems. The book opens with an introduction that lays out the case for information modeling, which the authors say applies particularly in mobile apps, cloud deployments and big data analytics – all the trendy areas. The case study used throughout the rest of the book is also introduced.

Chapter 2 goes into the content of the common information model. Essentially, a model defines the scope that the model covers, the types of model it contains, and ‘depth of detail’, which specifies how close to the physical implementation it is.

The authors then go on to give guidance on how to set up the structure of a common information model, using a number of different software design patterns – concept beads, continuous fabric, encapsulated views, and unifying context. The next chapter contains some of the more useful material in the book, as the authors discuss modeling best practices, based on examples they’ve found useful in their work. Governance, and the way it fits with CIM, is covered next, and the authors then discuss the type of tools needed to automate CIM governance. As elsewhere in the book, no actual products are mentioned, just the tool types – drawing, modeling, and architecture tools.

A chapter on system characteristics looks at ‘the nonfunctional behaviors of software such as availability, maintainability, scalability, performance and security, and how they can affect the design of the CIM’. The authors then move on to how to develop the business value of using a CIM. The book ends with a description of a real-world project, and a chapter on how CIM is changing and what it might look like in the future.

This book makes some interesting points, and gives a useful view of CIM. Large complex systems do need people to manage them, and knowing what rules they’re working with helps, no matter whether you personally fall into that category or not.