SOA Principles of Service Design. Home · SOA Principles Author: Thomas Erl Service-Oriented Modeling (SOA): Service Analysis, Design, and Architecture. —Farzin Yashar, IBM SOA Advanced Technologies “Thomas Erl's books service characteristics and service design principles for SOA from a. SOA: principles of service design / Thomas Erl. p. cm. ISBN ( hardback: alk. paper) 1. Web services. 2. Computer architecture. 3. System analysis.
|Language:||English, Spanish, French|
|Genre:||Politics & Laws|
|Distribution:||Free* [*Register to download]|
The focus of this book is first and foremost on the design of services for SOA. There is a constant emphasis on how and where design principles can and should be applied with the ultimate SOA design patterns / Thomas Erl. — 1st ed. p. cm. compliance with the same contract design standards." Service Loose This principle preaches a “contract first” approach to service delivery . from Thomas Erl. Contents. ruthenpress.info 6/13/07 PM Page xiii. SOA: Principles of Service Design by Thomas Erl (ruthenpress.info).
Impacts There is the constant risk that project teams will continue to use their own versioning approaches, or rely too heavily on patterns like Concurrent Contracts , which allows them to simply add new contracts to an existing service. The successful application of any versioning strategy will require strong support for the adherence to its rules and conventions to the extent that the chosen versioning approach becomes an inventory-wide standard on par with any other design standard.
This introduces the need for a new organizational role that is tasked with enforcing the processes and syntactical characteristics that are defined as part of the strategy.
Relationships Canonical Versioning essentially formalizes the application of Compatible Change , Version Identification , and Termination Notification , in that the overarching strategy established by this pattern will determine how and to what extent each of these more specific versioning patterns is applied.
The application of Metadata Centralization results in a service registry that enables effective discovery of different contract versions and Canonical Expression implements characteristics in service contracts that improve their legibility. Both of these patterns therefore aid the goals of Canonical Versioning. Note - Before continuing with this case study example, be sure to read up on the Policy Check service that was defined in the State Repository case study example and then later positioned to support multiple inventories as part of the example for Cross-Domain Utility Layer This changes the policy data that was being made available electronically via its public Web services.
The Alleywood Policy Check service was originally positioned to shield the rest of the Alleywood service inventory from these types of changes by providing the sole access point for FRC policy data. Although its service logic can be augmented to accommodate changes to the FRC services, architects soon realize that they cannot prevent having to issue a new version of the Policy Check contract because the FRC has added new content and structure into their policy schemas.
After some research into common versioning practices and further deliberation, they produce a versioning strategy comprised of a set of specific conventions and rules: Version Identification will be applied as follows: Version information will be expressed in major numbers displayed left of the decimal point and minor version numbers displayed to the right of the decimal point e. The previously described scenario results in a set of incompatible changes that requires that the major version number of the Policy Check service contract be incremented from 1.
The Alleywood architects acknowledge that defining the versioning approach is only the first step. This book is focused solely on service engineering and the science of service design. To accomplish this, an effort has been made to minimize overlap between this title and others in the series. For example, even though service design touches upon numerous architectural issues, it is important to acknowledge that this is a book about designing services for SOA, not about designing SOA itself.
The companion title, SOA: Design Patterns, provides a cata- log of patterns, many of which deal directly with architectural design. Sev- eral books have already covered this ground sufficiently.
Although some chapters pro- vide introductory coverage of service-oriented computing, they do not go into detail. Concepts, Technology, and Design, another official companion guide also part of this book series. Finally, although this book includes a number of case study examples, it does not provide full code samples of implemented services or service contracts. Additionally, several other series titles in devel- opment are dedicated to supplying comprehensive coverage of how to build services using different development platforms, such as.
NET and Java. NOTE There are references to other series titles throughout this book.
These ref- erences were not added for promotional reasons. In order to establish a well-structured library of complementary books, cross-title references are necessary. They are included for the benefit of the reader to indicate the location of additional relevant resources. SOA Standardization Efforts There are several efforts underway by different standards and research organizations to produce abstract definitions, architectural models, and vocabularies for SOA.
These projects are in various stages of maturity, and some overlap in scope. The mandate of this book series is to provide the IT community with current, real-world insight into the most important aspects of service-oriented computing, SOA, and serv- ice-orientation. A great deal of research goes into each and every title to follow through on this commitment.
This research includes the detailed review of existing and upcom- ing technologies and platforms, relevant technology products and technology stan- dards, architectural standards and specifications, as well as interviews conducted with key members of leading organizations in the SOA community.
As of the writing of this book, there has been no indication that the deliverables pro- duced by the aforementioned independent efforts will be adopted as industry-wide SOA standards. In order to maintain an accurate, real-world perspective, these models and vocabularies can therefore not be covered or referenced in this book. Introduction However, given the unpredictable nature of the IT industry, there is always an on-going possibility that one or more of these deliverables will attain industry standard status at some point in time.
Should this occur, this book will be supplemented with online content that describes the relationship of the standards to the content of this text and fur- ther maps the concepts, terms, and models documented in this book to whatever con- ventions are established by the standards. This information would be published on the corresponding update page, as described in Updates, Errata, and Resources section later in this chapter.
There are numerous standards initiatives that have and con- tinue to produce highly relevant technology specifications primarily focused on XML and Web services. These are referenced, explained, and otherwise documented wherever appropriate in all series titles. Chapters 1 and 2 provide back- ground information for the book and its case study, respectively. All subsequent chap- ters have been grouped into the following primary parts: Supplemental Part I consists of three introductory chapters that set the stage for the detailed explo- ration 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. Another means by which additional perspectives are provided is through the use of case study examples.
Chapter 2 which precedes Part I 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. 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. How these chapters are organized is illustrated in Figure 1.
Figure 1. Introduction Chapter 3: 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 pro- viding definitions for the following terms: The chapter concludes with brief supple- mental 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 com- puting. 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 princi- ples 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 solu- tion logic. 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 prin- ciples 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; subse- quent 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. 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 imple- mented to an appropriate extent.
Part II consists of eight chapters—one for each service-orientation principle, as shown in Figure 1. 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. Introduction Figure 1. Collectively, these chapters provide a comprehensive documentation of the service-orientation paradigm.
The following sections briefly introduce each chapter: Chapter 6: This chapter explains different types of required contract standardization and establishes common levels at which contracts can be harmonized.
Issues implicitly intro- duced 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.
Addition- ally, the concept of design centralization is introduced as a means of supporting the real- ization of loose coupling in coordination with other principles. Service Abstraction Information Hiding and Meta Abstraction Types The application of this principle determines how much of a service is revealed to the out- side 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 abstrac- tion, 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 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.
Service Statelessness State Management Deferral and Stateless Design Service designs capable of deferring state data and state management-related process- ing 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 fol- lowed by levels of attainable service statelessness.
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 under- stood. 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. Introduction Chapter 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. Part III: Supplemental Chapter Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts Object-oriented analysis and design OOAD is an established modeling and design par- adigm 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. Supporting Practices This next chapter provides a set of supplementary practices and techniques for success- fully 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.
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.