In this quick guide, find resources and commentary to help you learn what a pattern is and how to put them to use. Also, discover sample patterns to give you ideas about how to use patterns in your organization.
Design patterns provide guidance, not standards
While it's likely that no two software systems are identical, certain enterprise architecture design challenges pop up over and over again. And when the same problem gets solved enough times in various situations by various architecture teams, a single technique often emerges as the best. Such techniques become patterns. A pattern is a reusable solution to a software design problem that has been proven effective in multiple situations.
An example of a popular pattern is the Model-View-Controller. First conceived in the late seventies, the Model-View-Controller is a design pattern for separating application logic, data access, and user interaction. By decoupling each part of the software, the Model-View-Controller allows for changes to be made to each part individually without having to edit the others. Because the Model-View-Controller pattern greatly improves the manageability of many different kinds of applications, it is one of the most popular patterns used in software architecture today.
Numerous books have been written on patterns and some patterns, like the Model-View-Controller, have been around for decades, but patterns remain a rather informal aspect of software design. Often a pattern will only see reuse in a single industry or company. Many development teams keep a small collection of patterns they have created for themselves. Rather than standardization, the real value of patterns is to help architecture teams conceptualize design problems at a more abstract level and save the time of working on a problem that may already have an existing solution.
Back to the top
Gregor Ramblings: Gregor Hohpe's Enterprise Integration Patterns Blog
Noted patterns expert Gregor Hohpe keeps a blog about enterprise integration and patterns, covering such topics as messaging, diagram-driven design, and SOA and cloud. One article in particular, "Design Patterns: More than Meets the Eye," gives an excellent overview to the concept of patterns and their place within the organization.
Podcast: Leonard Fehskens on architecture and emerging patterns
SearchSOA.com's Jack Vaughan sat down with Leonard Fehskens, vice president and Global Profession Lead at The Open Group, to discuss architecture and emerging patterns. Feshkens' take brings light to the topic of software architecture, which, increasingly, has come to be concerned with established patterns as a means of solution implementation.
SOA skills, slings and arrows
Mark Lorenz, principal software engineer with Fidelity Investments, says that to be a successful software architect there are some pretty basic skills required, and they are not just for SOA. ''If you don't understand the design patterns—for example, the Model View Controller (MVC) - and you are not building an architecture that has separation of concerns, you are not ready to do services,'' he said." Lorenze has more about the importance of patterns in this piece.
Back to the top
SOA Design Patterns
SOA Design Patterns by Thomas Erl contains hundreds of patterns for different aspects of service-oriented architecture implementation. SearchSOA has syndicated seven of them, complete with a detailed explanation of why they work and what problem they solve. The "Service Façade" pattern, for example, decouples the contract and core logic. Below are links to seven of these patterns:
Enterprise Integration Patterns table of contents
Enterprise Integration Patterns by Gregor Hohpe is regarded as a modern classic of software development. Find an index to every pattern in the book here, with a brief description of its implementation and purpose as well as a visual diagram that shows how the individual pieces fit together. These patterns are geared toward developing messaging systems.
A short summary of the patterns in Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture by Martin Fowler, details about 40 architecture patterns, all of which have been tested and proven successful in real applications. He's put summaries of all those patterns online in this useful index. The descriptions and diagrams here provide a good example of how patterns are used, what they are used for, and can serve as a jumping-off point for a more detailed study of pattern usage. These patterns or geared toward object-oriented software design.
TOGAF Resource Base: Architecture Patterns
The Open Group Architecture Framework (TOGAF) is a detailed method and a set of supporting tools for developing an enterprise architecture. TOGAF recommends maintaining patterns as a resource for accomplishing certain common tasks, but it does not include particular patterns in the formal TOGAF document. Find TOGAF's thorough definition of patterns here, and learn how to define and organize them within your organization.
Back to the top