Description
This is the Safari online edition of the printed book.
Domain services are the foundation for service oriented architectures: the crucial building blocks upon which all enterprise services are built. Service Design Patterns is the complete practitioner’s catalog of proven patterns for implementing efficient, robust domain services. Using this book’s patterns, architects and other IT professionals can overcome the most common technical obstacles to success with SOA, and leverage all the value SOA is intended to provide.
Leading SOA architect Rob Daigneau begins by reviewing SOA concepts, illuminating the distinctions between enterprise and domain services, and identifying key relationships between domain services and other pattern groups. Next, using concrete Java and C# code examples, he introduces each essential pattern for creating and delivering domain services, offering a complete vocabulary of easy-to-adapt design solutions.
This book builds on the field’s best work in enterprise patterns. Daigneau expands upon Fowler’s valuable Service Layer concept (covered in Patterns of Enterprise Application Architecture) and shows how domain services can be used with Enterprise Integration Patterns (made famous by Hohpe and Woolf). Coverage includes
- Understanding the primary API styles used by web services, and selecting the right approaches for each requirement
- Mastering foundational patterns for all client/service interactions and data exchange conversations
- Identifying common Service Layer entities for efficiently managing web requests and responses and decoupling clients from underlying systems
- Efficiently implementing services, ranging from coordination with Object Relational Mappers (ORM) to direct legacy API calls
- Providing for generic, reusable SOA infrastructure tasks
- Implementing versioning to keep clients working properly as they evolve
- Augmenting services to serve new requirements while avoiding major new releases
- Accurately setting stakeholders’ expectations for major SOA initiatives
This book is an invaluable resource for all architects and developers working with web services or SOA. It is equally valuable to enterprise IT professionals, as well as those creating commercial, open source, or SaaS/cloud software for external use.
Table of Contents
Foreword by Martin Fowler xi
Foreword by Ian Robinson xiii
Preface xv
Acknowledgments xxiii
About the Author xxv
Chapter 1: From Objects to Web Services 1
What Are Web Services? 2
From Local Objects to Distributed Objects 3
Why Use Web Services? 6
Web Service Considerations and Alternatives 7
Services and the Promise of Loose Coupling 9
What about SOA? 10
Summary 11
Chapter 2: Web Service API Styles 13
Introduction 13
Design Considerations for Web Service APIs 14
RPC API 18
Message API 27
Resource API 38
Chapter 3: Client-Service Interactions 51
Introduction 51
Request/Response 54
Request/Acknowledge 59
Media Type Negotiation 70
Linked Service 77
Chapter 4: Request and Response Management 83
Introduction 83
Service Controller 85
Data Transfer Object 94
Request Mapper 109
Response Mapper 122
Chapter 5: Web Service Implementation Styles 131
Introduction 131
Design Considerations for Web Service Implementation 132
Transaction Script 134
Datasource Adapter 137
Operation Script 144
Command Invoker 149
Workflow Connector 156
Chapter 6: Web Service Infrastructures 165
Introduction 165
Service Connector 168
Service Descriptor 175
Asynchronous Response Handler 184
Service Interceptor 195
Idempotent Retry 206
A Quick Review of SOA Infrastructure Patterns 220
Chapter 7: Web Service Evolution 227
Introduction 227
What Causes Breaking Changes? 228
Common Versioning Strategies 232
Single-Message Argument 234
Dataset Amendment 237
Tolerant Reader 243
Consumer-Driven Contracts 250
How the Patterns Promote or Hinder Service Evolution 264
Appendix: Reference to External Patterns 269
Glossary 277
Bibliography 297
Index 303
Purchase Info
ISBN-10: 0-321-66963-0
ISBN-13: 978-0-321-66963-6
Format: On-line Supplement
$54.99
You can purchase immediate access to this online product with a credit card.