Download (direct link):
First, since everyone likes short, one-sentence summaries, no matter how broad the field, I will begin with a condensed phrase for the concept of architectural style that includes IT-architectural style:
An architectural style conveys the principles and the means to most effectively achieve a design vision.
Chapter 1: IT-Architectural Styel
The basic concept of an IT-architectural style also can be derived from the widely accepted definition of IT architecture established by the IEEE Computer Society (IEEE 2000): "Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution." Based on this definition, it can be said that
An architectural style is a family of architectures related by common principles and attributes.
An IT-architectural style is both a holistic and a specific approach to IT architecture It is holistic in that it covers the entire software life cycle, including project design and tool design aspects. It is specific in that it consolidates and integrates the many structural, procedural, and descriptive aspects that have been addressed as separate entities in traditional methodologies. Every experienced developer or project manager has at some point suffered through the integration and coordination of such critical elements as tools, patterns, component technologies, and methodologies, just to name a few. These things are intimately related to each other, and to work well together, they must be considered together, as pieces of a whole—holistically. Once this has been achieved, the structure, relationships, and application of each of the pieces must be simplified by being as specific as possible about its nature and its use.
In other words, the IT-architectural style addresses both breadth and depth. It tackles the problem of the "big picture" while being specific about the parts of the big picture. This is important in today's complex world of specialists: Somebody has to specialize in the relationships between all the specialties—somebody must specialize in the big picture. This role can be compared with that of a composer. The composer focuses on creating a (whole) concerto to be played by musicians using (specific) instruments. Every experienced developer knows how difficult it is to make all the parts of an IT development work together in concert. Defining and implementing such aspects as the right process in conjunction with the effective use of component standards, patterns, tools, and implementation technologies are daunting tasks even for experts. Many a project has met its demise by attempting to make all these things work together while at the same time trying to develop a system—like trying to compose a concerto before understanding the musical instruments. The proactive definition of the big picture and instructions on how it is applied specifically across many projects are not just desirable; they are critical for large software organizations.
The breadth and depth covered by an IT-architectural style enable even the best IT organizations to achieve higher levels of effectiveness and returns. For example, consider the long-awaited breakthroughs due to object technology, many of which have eluded the entire industry for years. Contrary to what is often written in the IT tabloids, it is not the fault of object technology that many of these breakthroughs have not yet been realized; rather, object technology has been a victim of ad hoc architecture. In other words, the failure is due to a reluctance on the part of companies to address tough IT architectural issues. Just as an apple tree will not bear fruit if it is planted in the desert, the advantages of object technology cannot be cultivated without the proper IT environment. An IT-architectural style defines this environment. It defines how reuse is to be handled in the entire development life cycle across all projects in an enterprise. The high-level returns due to reuse, just to name one advantage of object technology, can
Chapter 1: IT-Architectural Styel
now occur realistically in the context of the IT-architectural style discussed in this book.
This brings me to the inevitable question of whether the breadth-and-depth approach of an IT-architectural style is realistic. This question often arises because breadth, or holistic, is often confused with generality. Breadth does not mean that the IT-architectural style is completely general in nature and thus of limited use in practice. This would conflict with the requirement that it be specific. Breadth means that it coordinates a wide spectrum of activities and structures. Specific means that it does this down to a level that is detailed enough to be applied effectively and rapidly. Can this be achieved while still being useful for diverse systems across entire organizations or domains? Yes, it can. In fact, this is what good architects achieve in all industries. It requires one of the most important skills of an IT architect: the skill of abstraction. Over time, the designers of the style recognize simple, widely applicable solutions that can be used to solve specific problems. Design patterns are one example of such useful design abstraction. Carefully selected design abstractions are then coordinated as a whole to form an IT-architectural style. This continuous process of abstraction, selection, and specific coordination is paramount. More formally, it can be said that an IT-architectural style provides a useful set of reasonable alternatives—not all alternatives—and coordinates them to work well together.