Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Web services have been used for many years. In this time, developers and architects have encountered a number of recurring design challenges related to their usage, and have learned that certain service design approaches work better than others to solve certain problems.
In Service Design Patterns, Rob Daigneau codifies proven design solutions for web services that follow the REST architectural style or leverage the SOAP/WSDL specifications. This catalogue identifies the fundamental topics in web service design and lists the common design patterns for each topic. All patterns identify the context in which they may be used, explain the constituent design elements, and explore the relative strengths and trade-offs. Code examples are provided to help you better understand how the patterns work but are kept general so that you can see how the solutions may be applied to disparate technologies that will inevitably change in the years to come.
This book will help readers answer the following questions:
This book is an invaluable resource for enterprise architects, solution architects, and developers who use web services to create enterprise IT applications, commercial or open source products, and Software as a Service (SaaS) products that leverage emerging Cloud platforms.
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