The organization of content is very straight forward. Chapters 1 and 2 provide background information for the book and its case study, respectively. All subsequent chapters have been grouped into the following primary parts:
– Part I: Fundamentals
– Part II: Design Principles
– Part III: Supplemental
– Part IV: Appendices
Part I consists of three introductory chapters that essentially set the stage for the detailed exploration of service-orientation design principles provided in Part II. All chapters within these parts communicate primary topics with the assistance of visual style elements and conventions. Diagrams, color, and shading are important style characteristics that have been incorporated to maximize content clarity.
Below are descriptions of individual parts and chapters:
Chapter 1: Introduction
A means by which additional perspectives are provided throughout this book is through the use of case study examples. Chapter 2 establishes a case study background from which multiple examples are drawn to supplement the content in subsequent chapters. This supplies a common, real-world context to many of the topics explained in abstract. Up next are brief descriptions of what is covered in subsequent chapters.
Chapter 2: Case Studies Background
A means by which additional perspectives are provided throughout this book is through the use of case study examples. Chapter 2 establishes a case study background from which multiple examples are drawn to supplement the content in subsequent chapters. This supplies a common, real-world context to many of the topics explained in abstract. Up next are brief descriptions of what is covered in subsequent chapters.
Part I: Fundamentals
Although this book is more about applying and realizing service-orientation than it is about understanding SOA basics, we do need to take the time to establish and define key concepts and fundamental terms. These concepts and terms are used throughout the guide, and it is important that their meaning is always clear and consistent. The initial three chapters fulfill this requirement by providing concise introductory coverage.
Chapter 3: Service-Oriented Computing and SOA
Chapter 4: Service-Orientation
Chapter 5: Understanding Design Principles
Chapter 3: Service-Oriented Computing and SOA
We begin Part I by establishing the key goals and benefits associated with service-oriented computing. Collectively these goals provide strategic context for all chapters in Part II that document design principles.
This chapter furthermore establishes the service-oriented computing platform by providing definitions for the following terms:
– Service-Oriented Computing
– Service-Oriented Architecture
– Service-Orientation
– Service-Orientation Design Principles
– Service-Oriented Solution Logic
– Services
– Service Compositions
– Service Inventory
In addition to being explained conceptually, the physical relationships of each of these architectural components are also described. The chapter concludes with brief supplemental coverage of additional SOA-related terms, concepts, and processes.
Chapter 4: Service-Orientation
This next chapter zooms in on the design paradigm that underlies service-oriented computing. It begins with an overview of service-orientation by establishing its purpose and goals and then moves on to introduce its eight key design principles. How these principles specifically relate to and support service-oriented architecture is also discussed.
The manner in which the application of service-orientation changes the way solutions are delivered is explored next. Pros and cons of previous approaches are documented and contrasted with the potential for service-orientation to improve upon them. Also explained are the challenges and impositions made by a transition toward this paradigm.
We move on to cover how the adoption of service-orientation transforms not only the technology and the design of an enterprise, but also the mindset and perception of solution logic. Traditional terms, such as “application” and “integration,” for example, can be challenged by the fluid nature of service and composition-based automation.
Finally, this introduction ends with a look at some of the key influences of serviceorientation. Because this paradigm is very much an evolutionary representation of IT, it is important to acknowledge its roots in past platforms and technology trends.
Chapter 5: Understanding Design Principles
In preparation for Part II, this chapter provides a clear explanation of how subsequent chapters describe service-orientation principles within the context of SOA and service design, and how these principles may relate to design patterns. Different types of principles are categorized, including a study of those that result in implemented design characteristics compared to those that tend to shape and moderate how others are applied. Additionally, four specific forms of contract granularity are established; subsequent chapters then cover how principles affect these granularity types.
Chapter 5 concludes with a case study section that documents a business process for which services will be designed in subsequent chapters.
Part II: Design Principles
Service-orientation is a multi-dimensional subject matter. It is through the application of its design principles that its benefits are realized and that we can build solution logic that can be classified as being truly “service-oriented.” This results in an automation environment with unique dynamics and characteristics, all of which need to be understood and planned for.
For example, there are guiding principles that each address a narrow aspect of service design and foster the creation of specific design characteristics. Then there are the issues that arise from combining principles and seeking the right balance for each to be implemented to an appropriate extent.
Part II consists of eight chapters – one for each service-orientation principle. The chapters are structured with a baseline set of sections that are detailed in the Principle Profiles section of Chapter 5. Each chapter is further supplemented with a case study example that demonstrates the application of a principle within scenarios drawn from the background established in Chapter 2.
Chapter 6: Service Contracts (Standardization and Design)
Chapter 7: Service Coupling (Intra-Service and Consumer Dependencies)
Chapter 8: Service Abstraction (Information Hiding and Meta Abstraction Types)
Chapter 9: Service Reusability (Commercial and Agnostic Design)
Chapter 10: Service Autonomy (Processing Boundaries and Control)
Chapter 11: Service Statelessness (State Management Deferral and Stateless Design)
Chapter 12: Service Discoverability (Interpretability and Communication)
Chapter 13: Service Composability (Composition Member Design and Complex Compositions)
Chapter 6: Service Contracts (Standardization and Design)
The service contract represents a core part of a service’s architecture and is a focal point during the service design process to the extent that a principle is dedicated to its customization. This chapter explains different types of required contract standardization and establishes common levels at which contracts can be harmonized. Issues implicitly introduced by the use of service contracts, such as data models and policies, are discussed, and contracts are further architecturally positioned with an emphasis on Web services.
Chapter 7: Service Coupling (Intra-Service and Consumer Dependencies)
Numerous types of coupling are explored, including the coupling of the service contract to underlying technology and implementation characteristics, as well as the coupling of the service consumers to the contract. This chapter explores levels of attainable coupling and the implications of implementing more or less inter-service dependency. Additionally, the concept of design centralization is introduced as a means of supporting the realization of loose coupling in coordination with other principles.
Chapter 8: Service Abstraction (Information Hiding and Meta Abstraction Types)
The application of this principle determines how much of a service is revealed to the outside world. Achieving a balanced level of abstraction can be one of the most difficult parts of service design. Subsequent to describing the various forms and levels of abstraction, this chapter discusses several associated design risks and the influence abstraction, as a design consideration, has on other principles.
Chapter 9: Service Reusability (Commercial and Agnostic Design)
Increasing the value of solution logic by positioning services as reusable IT assets is a fundamental characteristic and objective of service-orientation. This chapter provides a comprehensive profile of Service Reusability and its implications and extends into an exploration of service reuse levels and the specific influences raised by commercial design considerations. Planned versus actual reuse measuring is discussed, along with the risks and enterprise-wide effects of building and exposing agnostic service logic.
Chapter 10: Service Autonomy (Processing Boundaries and Control)
The ability for a service to have control and governance over its execution environment is key for it to provide reliable, predictable runtime performance, a consideration especially important to the design of service compositions. This chapter explores both runtime and design-time autonomy and provides measurable levels that define an extent of autonomy based on degrees of normalization and functional isolation.
Chapter 11: Service Statelessness (State Management Deferral and Stateless Design)
Service designs capable of deferring state data and state management-related processing enable the implemented service to maximize its availability, an important quality especially in highly concurrent usage environments. Provided in Chapter 11 is a detailed explanation of different types of state information and state management functions followed by levels of attainable service statelessness.
Chapter 12: Service Discoverability (Interpretability and Communication)
The opportunity for services to be utilized to their full potential can only be realized if their existence, purpose, and capabilities are either known or easily located and understood. This chapter focuses on design characteristics associated with the discoverability and interpretability of services as they relate to the overall discovery aspect of service-oriented architecture. A checklist for measuring discoverability is provided, along with sections that document the risks and impacts of discoverability on service models and other principles.
Chapter 13: Service Composability (Composition Member Design and Complex Compositions)
Service composition is a fundamental, yet potentially complex aspect of service-oriented design. This principle deals with it head-on by establishing design requirements to ensure that services can effectively participate in larger composition configurations. A study of how compositions tend to evolve and grow within an enterprise is also provided, along with a series of evaluation criteria to assist in the measuring of a service composition’s effectiveness potential.
Part III: Supplemental
The following three chapters provide additional content in support of service-orientation, including a comparative analysis of service-orientation and object-orientation, an exploration of the service profile document, and an introduction to new roles and vocabularies.
Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts
Chapter 15: Supporting Practices
Chapter 16: Mapping Service-Orientation Principles to Strategic Goals
Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts
Object-oriented analysis and design (OOAD) is an established modeling and design paradigm that has influenced numerous aspects of service-orientation. This supplemental comparison is focused on concepts and principles only and is intended for those with an OOAD background.
Chapter 15: Supporting Practices
This next chapter provides a set of supplementary practices and techniques for successfully incorporating and applying service-orientation principles within the common IT enterprise. Specifically, it discusses the use of service profile documents and associated vocabularies, along with common organizational roles.
Chapter 16: Mapping Service-Orientation Principles to Strategic Goals
The book concludes with an exploration of how the eight service-orientation design principles individually relate to and support the strategic goals established in Chapter 3. The content of this final chapter essentially establishes the strategic significance of each design principle.
Part IV: Appendices
The remaining appendices conclude this book with further supporting content.
Appendix A: Case Study Conclusion
Appendix B: Process Descriptions
Appendix C: Principles and Patterns Cross-Reference
Appendix A: Case Study Conclusion
The case study storyline is concluded here, as the original goals established in Chapter 2 are revisited and assessed against all that transpired in the subsequent case study examples.
Appendix B: Process Descriptions
Service-oriented analysis and design processes are illustrated and briefly described for reference purposes.
Appendix C: Principles and Patterns Cross-Reference
This last appendix is comprised of a list of design patterns referenced in this book. These patterns are documented separately in the book SOA: Design Patterns.