Service Design Patterns and over one million other books are available for Amazon Kindle. Learn more

Vous voulez voir cette page en français ? Cliquez ici.


or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
More Buying Choices
Have one to sell? Sell yours here
Start reading Service Design Patterns on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services [Hardcover]

Robert Daigneau

List Price: CDN$ 60.99
Price: CDN$ 38.42 & FREE Shipping. Details
You Save: CDN$ 22.57 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.ca. Gift-wrap available.
Want it delivered Wednesday, October 1? Choose One-Day Shipping at checkout.

Formats

Amazon Price New from Used from
Kindle Edition CDN $27.89  
Hardcover CDN $38.42  
Save Up to 90% on Textbooks
Hit the books in Amazon.ca's Textbook Store and save up to 90% on used textbooks and 35% on new textbooks. Learn more.
Join Amazon Student in Canada


Book Description

Oct. 25 2011 032154420X 978-0321544209 1

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:

  • How do you create a web service API, what are the common API styles, and when should a particular style be used?
  • How can clients and web services communicate, and what are the foundations for creating complex conversations in which multiple parties exchange data over extended periods of time?
  • What are the options for implementing web service logic, and when should a particular approach be used?
  • How can clients become less coupled to the underlying systems used by a service?
  • How can information about a web service be discovered?
  • How can generic functions like authentication, validation, caching, and logging be supported on the client or service?
  • What changes to a service cause clients to break?
  • What are the common ways to version a service? How can web services be designed to support the continuing evolution of business logic without forcing clients to constantly upgrade? 

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.


Special Offers and Product Promotions

  • Join Amazon Student in Canada


Frequently Bought Together

Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services + Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions + Patterns of Enterprise Application Architecture
Price For All Three: CDN$ 134.79


Customers Who Bought This Item Also Bought


Product Details


Product Description

About the Author

Robert Daigneau has more than twenty years of experience designing and implementing applications and products for a broad array of industries, from financial services, to manufacturing, to retail and travel. Rob has served in such prominent positions as Director of Architecture for Monster.com and Manager of Applications Development at Fidelity Investments. Rob has been known to speak at a conference or two.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?


Customer Reviews

There are no customer reviews yet on Amazon.ca
5 star
4 star
3 star
2 star
1 star
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 4.2 out of 5 stars  29 reviews
34 of 37 people found the following review helpful
5.0 out of 5 stars A Great Addition to the Martin Fowler Signature Series Nov. 12 2011
By T. Anderson - Published on Amazon.com
Format:Hardcover|Verified Purchase
I have been a fan of the Martin Fowler Signature Series for a long time. This book fit into the series great and filled in a missing link in the series.

One of the things I liked seeing was that the author does not think web services are a silver bullet. Right off the bat he warns that web services should be reserved for situations which out-of-process and cross-machine calls "make sense".

The book is broken down into seven chapters, an appendix, and a nice glossary. The chapters include From Objects to Web Services, Web Service API Styles, Client-Service Interactions, Request and Response Management, Web Service Implementation Styles, Web Service Infrastructures, Web Service Evolution, and an appendix Reference to External Patterns.

I felt the book worked at the right level of abstraction digging into details when needed to shed a deeper light on the subject at hand.

Each chapter contains several related patterns. Each pattern answers a primary question. For example chapter one Web Service API Styles cover the following 3 patterns that answer the question that follows below.

RPC API - How can clients execute remote procedures over HTTP?

Message API - How can clients send commands, notifications, or other information to remote systems over HTTP while avoiding direct coupling to remote procedures?

Resource API - How can a client manipulate data managed by a remote system, avoid direct coupling to remote procedures, and minimize the need for domain-specific APIs?

The other patterns covered in the book include Request/Response, Request/Acknowledge, Media Type Negotiation, Linked Service, Service Controller, Data Transfer Object, Request Mapper, Response Mapper, Transaction Script, Datasource Adapter, Operation Script, Command Invoker, Workflow Connector, Service Connector, Service Descriptor, Asynchronous Response Handler, Service Interceptor, Idempotent Retry, SOA Infrastructures, Breaking Changes, Versioning, Single Message Argument, Dataset Amendment, Tolerant Reader, and Consumer-Driven Contract.

Like the other pattern catalogs the book contains an online catalog of the patterns in the book. Although the online catalog gives you an overview of each pattern, the book contains a lot more detail about each one. I like the online catalogs. I often visit them to spark my memory about the patterns that I have read about in the books.

I like that the book limited its scope to the fundamental patterns relevant to web service design. It does not try to be all encompassing, which I think made it better than if the author had tried to be. The book does not cover enterprise integration patterns, workflow or orchestration, security, event-driven architecture, or choreography. The book does include a nice reference to external patterns in the appendix that provides a summary and where to go for more information.

I think each pattern is explained really well and the examples used do a great job of showing a possible implementation. I liked the end of chapter 7 where the author provides a nice summary about how each pattern hinders or promotes evolution.

The book also includes a nice glossary that provides quick reference to additional information on topics mentioned in the book.

The author does an awesome job of providing examples in different technologies throughout the book. The author uses a nice mixture of .NET and Java technologies. Some of the technologies used are JAX-WS, JAX-RS, JAXB, JSON, XML, Xpath, XSLT, WSDL, DataContractSerializer, XmlSerializer, and WCF. To top it off the author's writing style makes the reading really easy.

All in all I think every architect and developer should have this book on their shelf.
17 of 18 people found the following review helpful
5.0 out of 5 stars A refreshing read on service design Jan. 7 2012
By Jeff Bouchard - Published on Amazon.com
Format:Hardcover|Verified Purchase
I found Service Design Patterns to be a refreshing and well-crafted book. I would expect nothing less from anything accepted into the Fowler series. The author is quite clear from the very beginning that this book is intended to get the reader familiar with the most common approaches for implementing services. At first inspection of this statement, I expected to read lots of problem statements, with pattern definitions, and code samples to follow that mapped directly to SOAP/WSDL and REST. I was pleasantly surprised.

In the pages of the very first chapter this book challenges your standard thought on Service Architecture. Over the years I have asked many colleagues why they think SOA is a superior architecture. Often I have received the response that it reduces complexity, provides loose coupling, and is the most reliable way to allow disparate systems to communicate. Naturally, the next question is, well how are those objectives met? That question tends to put a wrinkle on the face of some of the most seasoned software architects. This book presents those questions, and paints candid responses before you get to page 10.

As you advance through the chapters, the author did a great job at codifying various approaches to web service design in a way that's not specific to any particular technology or specification. The pattern descriptions are easy to read, help the reader understand how to choose between them and the contexts in which to use them. The book provides an easy to reference handbook that classifies the patterns into categories that really make sense, and I think it gives practitioners a very useful vocabulary. Although the title says it's about creating services for SOAP/WSDL and REST, it's not a book about either. I am glad the author took this approach as there is plenty of material on both of these subjects. It might have been helpful for the author to address this up front.

Long story short, this book does a nice job of bridging the gap between Patterns of Enterprise Application and Enterprise Application Architecture. A nice reference book.
35 of 43 people found the following review helpful
3.0 out of 5 stars Far from an authoritative patterns book Dec 27 2011
By George Jiang - Published on Amazon.com
Format:Hardcover|Verified Purchase
SUMMARY: This book might have presented some interesting topics and patterns for discussion and debate, but it is far from an authoritative patterns book. It lacks "The Narratives" in PoEAA, while the patterns in it lack the usefulness of those found in EIP.

When I saw this book on the Amazon, I purchased the printed book straight away without having had a quick read of the book, say from a pdf you can download on the Internet, since I really enjoyed reading the other two pattern books in the Martin Fowler series, i.e., Patterns of Enterprise Application Architecture (PoEAA) and Enterprise Integration Patterns (EIP).

It turns out to be a disappointment with this book.

Why? First, with the other two patterns books, in some cases I learned/relearned some core concepts of Enterprise Application or Enterprise Integration, while in other cases I learned some best way to describe what I had already learned from experience. Unfortunately, That has not been the case with this book about SOAP based Web service or REST Web service, except "situations in which out-of-process and cross-machine calls 'make sense'" (page 8).

Second, the patterns in the book generally try to prescribe what industry has been actually doing (often using a different vocabulary). The problem starts when you try to have a more clear understanding of the patterns by reading the examples for the patterns and by trying to make a connection between the patterns and actual SOAP or REST implementation technologies.

Take chapter 2 Web Service API patterns as an example. After reading the three patterns (RPC API, Message API and Resource API), you would think the SOAP document/literal wrapped style or SOAP RPC style are typical implementation of the RPC API pattern, SOAP document/literal bare (unwrapped) or POX as typical implementation of the Message API pattern.

No, not according to the explanation the author gives for the examples.

This is how the author explains the difference between RPC API and Message API (page 31), "Notice that each operation receive a single message argument. This is one very subtle characteristic that differentiates RPC APIs from Message APIs. While the former ..., Message APIs that leverage WSDL are specifically designed to receive a single message argument". But when you turn to page 234, there is actually a Single Message Argument patten for RPC API. What does the author really try to say? Convert RPC APIs to Message APIs by using the Single Message Argument pattern? :-)

Another peculiar in the book is to associate "Service Interface Classes" exclusively with generated service interface code in the contract-first approach (page 179) and describe the code-first approach as "In the Code-First practice, developers create annotated Service Controllers in languages like Java and C#" (page 180). While in reality, for RPC API and Message API, the widely used and more sound practice with code-first is to create annotated "Service Interface Classes" in Java or C# first and then write Service Controller that implements the interface.

There are definitely some good sections/patterns in the book. The sections/patterns I found beneficial are: Resource API (page 38), Request - Acknowledgement (page 59) and Asynchronous Response Handler (page 184).

Overall, this book might have presented some interesting topics and patterns for discussion and debate, but it is far from an authoritative patterns book. It lacks "The Narratives" in PoEAA, while the patterns in it lack the usefulness of those found in EIP.
9 of 10 people found the following review helpful
4.0 out of 5 stars Formalization of commonly used patterns March 4 2012
By Rodrigo De Castro - Published on Amazon.com
Format:Hardcover
This book discusses many of already commonly used patterns in the industry concerning web services. Each pattern has code examples, and the nicest part is the very reasonable "Considerations" part, which has a list of items to consider before using any of the patterns.

However, if you have been working with web services for some years and have kept up with the changes and trends, you will not necessarily learn much from this book. It's not a long book, so it may be worth your time reading it to fill any gaps in your understanding of web services. For anyone new to web services, though, this is a must read to understand the common patterns before moving on with any trendy way of doing things.

Also, this book is an attempt to formalize many of the patterns that the industry already follows - at least I've seen many companies following them in a way or another. It is good that we all have the same terminology, but on the other hand, it doesn't really get into a lot of details of each pattern, so the the reader needs to research further if s/he wants to deepen his/her knowledge. For each of these patterns - just like in a recipes book - the author gives an example (either in Java or C#) and he was able to keep them short enough but focused on the patterns he wants to show.

From my own experience, these are some patterns or areas I'd include in the book to make it more complete:
- Client-service interaction: long polling. Other than a regular Request/Response, nowadays you see services with long polling, which can be a quite important pattern to use depending on your use case. This pattern has been out for so many years that I surprised not to see it in this book.
- Service Interceptors: this is a really important and probably can be a book of its own, but I'd love to see more patterns on how certain things like exception handling and validation could be done and pros/cons of each approach. Oftentimes these are areas that many service developers get wrong and having patterns here would help steer them into the right direction (rather than realizing later the mistake). The author touches briefly on them from a high level, but there are different ways of the doing the same thing, and it deserved a little more attention in my opinion.
- Operation concerns: typically if one has a service, it tends to be a system that is supposed to be highly available, so service developers want to minimize downtime. For that, you must have a "devops" mindset to know where to put the right logging, where to log metrics for performance, in what places to log errors, how to handle log files. There are so many pieces of advice around operations - but unfortunately I did not find a book on them yet, so developers still need to learn from practice.

Last but not least, note that this book doesn't talk service architecture. It doesn't get into details of how to architect the service, including scalability, reliability, etc. You would need to find other option for that.
3 of 3 people found the following review helpful
1.0 out of 5 stars A real let-down compared to other books in this series Jan. 5 2014
By The Wizard of Oz - Published on Amazon.com
Format:Kindle Edition|Verified Purchase
There's a fair amount of discussion on the SOAP/WSDL topic, but very little practical information that isnt obvious. Compared to other books in this series which are awesome, this one is by far the weakest from a content perspective. The weak content, coupled with the fact that SOAP really is a dead mechanism (I've not done anything other than JSON/REST for the last 5 years) makes this book a bad purchase (at least for the work I'm doing).

Look for similar items by category


Feedback