A characteristic of something is simply an attribute or quality. An automated business solution will have numerous unique characteristics that were established during its initial design. Hence, the type of design characteristic we are interested in is a specific attribute or quality of a body of solution logic that we document in a design specification and plan to realize in development.
Figure 1 – In this simple example, three distinct application designs (A, B, C) are established, each with its own distinct list of design characteristics. We will continue to reference these applications in the upcoming pages. (Note that the small squares represent units of solution logic, solid arrows represent reuse or shared access, and dashed arrows represent state data transfer.)
Service-orientation emphasizes the creation of very specific design characteristics, while also de-emphasizing others. It is important to note that almost every design characteristic we explore is attainable to a certain measure. This means that it is generally not about whether solution logic does or does not have a certain characteristic; it is almost always about the extent to which a characteristic can or should be realized.
Although each system can have its own unique characteristics, we are primarily interested in establishing common design characteristics. Increased commonality ensures an increased degree of consistency, making different kinds of solution logic more alike. When things are more alike they become more predictable. In the world of distributed, shareable logic, predictability is a good thing. Predictable design characteristics lead to predictable behavior. This, in turn, leads to increased reliability and the opportunity to leverage solution logic in many different ways.
Much of service-orientation is dedicated to providing a means of establishing a specific collection of design characteristics that spread consistency, predictability, and reliability on many levels and for different purposes.