andrerstmn 1200008W70 Visits (1680)
Now, where do we begin our exploration of patterns? One approach I have used in the past when introducing a concept is to look for a formal definition of the term. So, to make sure that we all agree on what we mean when using the term pattern, here is what I found during my search:
Pattern: Not surprisingly, it contains multiple definitions of the term, depending on the context in which it is used. For example, "A pattern is an original object used to make copies, or a set of repeating objects in a decorative design and in other disciplines." Not very helpful.
Software Pattern: "A software pattern is a concept that solves and delineates some essential cohesive elements of a software architecture."
Architectural Pattern: "Pattern in architecture is the idea of capturing architectural design ideas as archetypal and reusable descriptions." Now we’re getting somewhere.
Patterns are used to describe well-known concepts and ideas, in a reusable way. "One can think of collections of patterns as forming a pattern language, whereas the elements of this language may be combined, governed by certain rules." Alright, so related patterns all follow a common language.
The first time I came across patterns as something that influenced my work was when the now famous Software Design Patterns book by the "Gang of Four" was released ("Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma et al). It put common ways of designing software functions into an easily consumable set of patterns. And even though it may sound surprising, until that time, no one had described this in a reusable, repeatable way. Today, the pattern language defined by that book has basically become part of software engineering. Another example of patterns that had quite a bit of influence on me were the "IBM Patterns for e-business". They described ways of building IT solutions in the then emerging world of e-business, again in a reusable and repeatable way, and they also defined a common language. Since then, we have used patterns in a variety of ways, the main goal always being that we capture the things we had learned about systems and make them repeatable.
The pattern support in PureApplication System is no different. It implements all of the ideas mentioned above. It defines pattern languages, which in turn represent reusable abstractions of common IT solutions, in the context of a cloud. That's good. But what really makes it interesting is the fact that I can 'deploy' these patterns. In other words, I can take the abstract description and turn it into an actual system. To be sure, it is a virtual system, not a physical one, as you would expect from a solution targeting a cloud. At the same time, there is nothing that stops us from using patterns to create solutions that run on physical servers. But that's not what PureApplication System is all about, so we will leave it for another day.
Moreover, PureApplication System comes with a set of patterns already defined, out of the box. These patterns focus on solutions using IBM middleware, of course. And they represent years of experience gathered in real world environments, causing us to call these "patterns of expertise". The idea behind this is that we deliver a system that has the knowledge of IBM experts about how to best configure and integrate IBM middleware products already baked in. And we do that in a way that makes it easy to create infrastructures and solutions reflecting this knowledge in a very short time. Needless to say that we hope you will achieve multiple benefits from this: require lower skills from the users of IBM middleware, allowing them to create new solutions quicker, with less risk - and that saves time and money!
Over the course of the next set of entries in this blog, we will show you the patterns that come with the system, other patterns you can buy, we'll show you how to create your own patterns - in short, we'll take you through the entire spectrum! So stay tuned, let us know what you think and always feel invited to make suggestions for other topics you'd like to see us cover here.