How can a service contract facilitate consumer programs with
differing data exchange requirements?
Problem
Services with strictly normalized contracts can impose
unnecessary functional and performace demands on some
consumer programs.
Solution
Service contracts can include a measured extent of
denormalization, allowing multiple capabilities to redundantly
express core functions in different ways for different types of
consumer programs.
Application
The service contract is carefully extended with additional
capabilities that provide functional variations of a primary
capability.
Impacts
Overuse of this pattern on the same contract can dramatically
increase its size, making it difficult to interpret and unwieldy to
govern.
Equipped with additional (albeit redundant) capabilities, the Invoice service is able
to better accommodate the individual requirements of the three consumers.
This page contains excerpts from:
SOA Design Patterns by Thomas Erl
Foreword by Grady Booch
With contributions from David Chappell, Jason Hogg, Anish Karmarkar, Mark Little, David Orchard, Satadru Roy, Thomas Rischbeck, Arnaud Simon, Clemens Utschig, Dennis Wisnosky, and others.
(ISBN: 0136135161, Hardcover, Full-Color, 400+ Illustrations, 865 pages)
For more information about this book, visitwww.soabooks.com.