What does a pattern mean to you?

The modern software idea of Design Patterns comes from work done building out a language of patterns for architects. This idea has been a profound influencer of software design approaches and was pioneered by the ‘Gang of Four’.

Pattern thinking has also been applied to architecture, and to broader notions of IT design and management. For example “Architecture and Patterns for IT Service Management , Resource Planning, and Governance: Making Shoes for the Cobbler’s Children”. This book provides actionable patterns for treating IT like a business (and is highly recommended).

I would like to propose an important pattern that sits between enterprise architecture and application architecture for virtual desktops and virtual applications.

MOTIVATION: In today’s era of rapid change and consumerization all users have growing expectations from their enterprise computing systems. This raised expectation is generally portrayed as affecting only end users, but the reality is that these users include the business owner (aka The guy who pays the IT bills). This raised business expectation is much like when the microcomputer revolution hit mainframe/mini IT shops (and it was equally tempting for business to ‘go around’ IT – at the time by purchasing PCs, now by moving to SaaS). We have an environment with ever higher expectations of IT.

At the same time there are ever more desktop and hand-held device types. We are amidst a transition from a period of relative end-point homogeneity (Windows, Windows and Windows) to a period with multiple desktop environments (increases in Macs and Linux) and where most internet access will occur from a heterogeneous range of hand held mobile devices. This is a new game, a new paradigm, and one that is not going away any time soon. (I’ve talked about this elsewhere).

IT is facing dual challenges of increased agility expectations and increased device heterogeneity. This is a problem because traditional end-point management leads to ‘installation inertia’. That is, each carefully crafted desktop image or application install becomes yet another point that must be rebuilt with every application or architectural change. Like a poorly lubricated engine, the whole system is impaired and in many cases can all but grind to a halt. This friction costs you, and your company, money every day.

(Applicator virtualization and desktop virtualization in all its variants (e.g. Flexcast) act to reduce this friction. This is a key attribute of all types of virtualization – they reduce the friction, the inter-linkages, between layers.)

The Desktop and App Virtualization Mediator Pattern

THE PATTERN: So, to come back to the notion of patterns … In traditional software pattern terminology, there is a pattern called a mediator. This pattern acts as a way to manage communication between large numbers of frequently changing objects. The idea is that by having a module, or program that acts as a connector between these different components – it avoids propagating changes from one object through all others it touches by isolating the changes in the meditation object.

This is exactly what we achieve with desktop and application virtualization. Changes can occur in any application without affecting end user devices. At the same time end user devices can be completely changed without affecting the applications. Hence, the Desktop and Application Virtualization Mediator Pattern is the right way to manage the device/application nexus in your IT infrastructure. It avoids the installed application inertia trap. It reduces friction and increases your Enterprise Architecture agility.

WRAP: This pattern fits between enterprise architecture and application architecture and it matters. (Hat tip to Michael Keen who has been talking enterprise architecture/application architecture as strategy for some time.)

Let me know what you think.