A principle is a generalized, accepted industry practice. In other words, it's something others are doing or promoting in association with a common objective. You can compare a principle with a best practice in that both propose a means of accomplishing something based on past experience or industry-wide acceptance.
When it comes to building solutions, a design principle represents a highly recommended guideline for shaping solution logic in a certain way and with certain goals in mind (Figure 3.2). These goals are usually associated with establishing one or more specific design characteristics (as a result of applying the principle).
Figure 3.2
The repeated application of design principles increases the amount of common design characteristics. In this case, the coupling between solution logic units A and B has been loosened (as indicated by a reduction of connection points).
For example, we can have a principle as fundamental as one that states that solution logic should be distributable. Applying this principle results in the solution logic being partitioned into individually distributable units. This then establishes the distinct design characteristic of the solution logic becoming componentized. This is not only an example of a very broad design principle, but it is also the starting point for service-orientation.
The eight design principles documented in this book provide rules and guidelines that help determine exactly how solution logic should be decomposed and shaped into distributable units. A study of these principles further reveals what design characteristics these units should have to be classified as "quality" services capable of fulfilling the vision and goals associated with SOA and service-oriented computing.
Design Paradigm
There are many meanings associated with the term "paradigm." It can be an approach to something, a school of thought regarding something, or a combined set of rules that are applied within a predefined boundary.
A design paradigm within the context of business automation is generally considered a governing approach to designing solution logic. It normally consists of a set of complementary rules or principles that collectively define the overarching approach represented by the paradigm (Figure 3.3).
Figure 3.3
Because a design paradigm represents a collection of design principles, it further increases the degree of commonality across different bodies of solution logic. In the example, the amount of reuse in A and B has increased.
Object-orientation (or object-oriented design) is a classic example of an accepted design paradigm. It provides a set of principles that shape componentized solution logic in certain ways so as to fulfill a specific set of goals.
Along those very same lines, service-orientation represents its own distinct design paradigm. Like object-orientation, it is a paradigm that applies to distributed solution logic. However, because some of its principles differ from those associated with object-orientation (as explained in Chapter 14), it can result in the creation of different types of design characteristics.
Use the following table of contents to navigate to chapter excerpts.
| ABOUT THE BOOK: |
|
| SOA: Principles of Service Design is dedicated to service engineering and establishing service-orientation as a design paradigm. This hands-on manual for service design establishes concrete links between specific service-orientation design principles and the strategic goals and benefits associated with SOA. Purchase the book from Amazon.com. |
| ABOUT THE AUTHOR: |
|
| Thomas Erl is the world's top-selling SOA author, Series Editor of the "Prentice Hall Service-Oriented Computing Series and editor of The SOA Magazine. His books have become international bestsellers and have been formally endorsed by senior members of major software organizations such as IBM, Microsoft and Oracle. He is the founder of SOA systems Inc., a company specializing in SOA training, certification and strategic consulting services with a vendor-agnostic focus. |