SOA design principles and characteristics explained
This excerpt from "SOA: Principles of Service Design" defines SOA terms "design principle" and "design paradigm" and explains why they are important to understand.
A SOA design 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 SOA design 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 SOA 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 SOA 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 SOA 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.
SOA: Principles of Service Design
Home: Service-oriented computing and SOA: Introduction
1: Design fundamentals: Design characteristics
2: Design fundamentals: Design principles
3: Design fundamentals: Design pattern and design pattern language
4: Design fundamentals: Design standard
5: Design fundamentals: Best practices
6: Introduction to service-oriented computing
7: Service oriented architecture
8: Service compositions
9: Understanding service oriented computing elements
10: Entity services
11: Web services and service oriented computing
12: Service inventory blueprints
13: Service-oriented analysis and service modeling
14: Service-oriented design
15: Goals and benefits of service-oriented computing
16: Increased intrinsic interoperability
17: Increased federation
18: Increased vendor diversification options
19: Increased business and technology domain alignment
20: Increased ROI
21: Increased organizational agility
22: Reduced IT burden
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. |