SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST / Edition 1

Hardcover (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $34.84
Usually ships in 1-2 business days
(Save 30%)
Other sellers (Hardcover)
  • All (11) from $34.84   
  • New (9) from $38.47   
  • Used (2) from $34.84   

Overview

“This book illuminates the connection of the two domains--SOA and REST--in a manner that is concrete and practical, providing concise application to everyday architectural challenges. Fantastic!”

--Ryan Frazier, Technology Strategist, Microsoft

“...a tour de force that elegantly applies REST principles to the industry-standard SOA framework described in prior titles in this series.... This book is a must-read for anyone developing REST services.”

--Dave Slotnick, Enterprise Architect, Rackspace Hosting

“This book undoubtedly will help SOA to reap the benefits from the main value propositions of Web architecture….”

--Dr. Erik Wilde, Architect, EMC Corporation

“REST is so much more than just another type of interface implementation--SOA with REST shows how the ecosystem of service compositions changes as new opportunities arise for service composition architecture designs. A comprehensive guide and a must-read for any serious IT architect considering REST-style services for application architectures.”

--Roger Stoffers, Solution Architect, Hewlett Packard

“Service-orientation and REST both are architectural styles that are cornerstones of modern applications and cloud computing. Both aim to deliver scalable, interoperable solutions, but their different roots don’t always make them a natural fit. SOA with REST explains how the two styles can work together in enterprise environments. It discusses a design process for a services portfolio that meets the goals of SOA and at the same time designs services that comply with the established REST constraints. It also shows pragmatic approaches to meet enterprise-grade requirements with the REST programming style but relaxes constraints where necessary.”

--Christoph Schittko, Director of Cloud Strategy, Microsoft

“An excellent repertoire of service-oriented patterns that will prove handy when solving problems in the real world. The REST perspectives and principles will provide complete coverage of modern-day Web 2.0 style approaches. Highly recommended.”

--Sid Sanyal, IT Architect, Zurich Financial Services

“An inspirational book that provides deep insight into the design and development of next-generation service-oriented systems based on the use of REST. This book clarifies the convergence of SOA and REST with no-nonsense content that addresses common questions and issues head-on. An essential ‘instrument of modern service implementation’ and a powerful body of knowledge for software designers, architects, and consultants.”

--Pethuru Raj, Ph.D., Enterprise Architecture (EA) Consultant, Wipro Consulting Services

“REST and SOA are two of the most misunderstood terms in the software industry over the past decade. Yet the REST architectural style coupled with modern RESTful framework implementations provides a scalable and reliable approach to SOA. This book covers all you need to know about how to take the principles of REST and apply them in small and large SOA developments. If you are familiar with REST and thinking about SOA, then you need this book. If you have not considered REST in your SOA work, then this book is for you, too. Covering concepts of both REST and SOA, as well as design patterns and when to use them, the book is a wonderful companion and a good tool for architects and engineers.”

--Dr. Mark Little, CTO JBoss, Red Hat

“Unlike many other texts on the subject, SOA with REST is a well-rounded, easy-to-read narrative, including real-world case studies that appeal to both developers and analysts. This makes it an indispensable source for any SOA practitioner or any professional who is planning to initiate an SOA project.”

--Theodore T. Morrison, Certified SOA Analyst, CSM, Geocent, LLC

“SOA and REST are two very important architectural styles for distributed computing. SOA is successfully adopted by most enterprises, and the REST style is getting more attention from both researcher and industry users. The book SOA with REST introduces a new architectural style that is ingeniously combining both SOA and REST styles and clearly reveals how SOA and REST can work together to generate successful enterprise SOA strategies with REST, along with guidance for making architecture design decisions. This book is a bible of best practices for designing and implementing SOA architecture with REST. It is a must-have reference book for both IT practitioners and researchers.”

--Longji Tang, FedEx IT Senior Technical Advisor, Ph.D. in CSSE

The Definitive Guide to Building Web-Centric SOA with REST

The World Wide Web is based on the most successful technology architecture in history. It has changed how we view, access, and exchange information and, with the advent of REST, it has also provided us with compelling ways to build and improve automation solutions. REST provides a great deal of guidance to ensure that an architecture and its automation logic are technically sound, though it is still your responsibility to build services that actually add value to your business.

SOA with REST is the first comprehensive tutorial and reference for designing and building RESTful services as part of service-oriented solutions and in conjunction with service-oriented architecture (SOA). This book demonstrates that REST is not only a suitable medium for building truly service-oriented solutions, but also that the service-oriented architectural model is a necessary foundation for REST technology architectures to realize their full business potential.

The authors provide thorough mapping of REST constraints and architectural goals with service-orientation principles and SOA characteristics. Using real-world examples, they show how to leverage REST’s simplicity, flexibility, and low overhead without compromising the power or manageability of service-oriented solutions and architectures.

This book will be valuable to IT architects, developers, and any practitioner seeking to use SOA and REST together.

Topic Areas

  • Distributed solution design with HTTP and REST
  • REST-based service composition architectures
  • REST service modeling and a service-oriented analysis process for REST service candidates
  • Technical service contract notation for REST services based on a uniform contract
  • Designing REST service contracts with service-orientation
  • Understanding REST constraints in relation to service-orientation principles
  • Using hypermedia and dynamic binding within SOA and service compositions
  • Creating complex HTTP-based methods for enterprise solutions
  • Advanced design techniques, including composition deepening, runtime logic deferral, and dynamic binding with common properties
  • Cross-service transactions and event-driven messaging with REST
  • Addressing enterprise solution concerns in relation to REST-based state management
  • Applying SOA design patterns to REST-based solutions
  • Distinguishing REST and SOA service concepts and terminology
  • Designing REST architectures with SOA
  • Versioning REST services and uniform contracts
  • Fundamental REST, SOA, and service-orientation concepts and terminology
  • REST constraints, REST architectural goals, and properties
  • Seven new REST-inspired design patterns
  • Defining common goals of REST and SOA
Read More Show Less

Editorial Reviews

From the Publisher

“This book illuminates the connection of the two domains--SOA and REST--in a manner that is concrete and practical, providing concise application to everyday architectural challenges. Fantastic!”

--Ryan Frazier, Technology Strategist, Microsoft

“SOA can be done in many different ways, and REST has become the most visible newcomer in the space of potential implementation frameworks. This book illustrates what architects and developers need to know about RESTful SOA and most importantly drives home the main point that REST makes as a style for SOA: It is all about designing service ecosystems and providing clients an easy way to use resources in those ecosystems and even connect them across individual services. This book undoubtedly will help SOA to reap the benefits from the main value propositions of Web architecture: decentralization, loose coupling, connectedness, self-describing services, and service interfaces that are independent from service implementations.”

--Dr. Erik Wilde, Architect, EMC Corporation

SOA with REST is a tour de force that elegantly applies REST principles to the industry-standard SOA framework described in prior titles in this series. The book provides useful guidance to practitioners while staying true in form and spirit to the REST constraints defined in Roy Fielding’s thesis. The chapters on RESTful contract design in and of themselves justify the cost of purchase. This book is a must-read for anyone developing REST services.”

--Dave Slotnick, Enterprise Architect, Rackspace Hosting

“An excellent repertoire of service-oriented patterns that will prove handy when solving problems in the real world. The REST perspectives and principles will provide complete coverage of modern-day Web 2.0 style approaches. Highly recommended.”

--Sid Sanyal, IT Architect, Zurich Financial Services

“REST is so much more than just another type of interface implementation--SOA with REST shows how the ecosystem of service compositions changes as new opportunities arise for service composition architecture designs. A comprehensive guide and a must-read for any serious IT architect considering REST-style services for application architectures.”

--Roger Stoffers, Solution Architect, Hewlett Packard

“Service-orientation and REST both are architectural styles that are cornerstones of modern applications and cloud computing. Both aim to deliver scalable, interoperable solutions, but their different roots don’t always make them a natural fit. SOA with REST explains how the two styles can work together in enterprise environments. It discusses a design process for a services portfolio that meets the goals of SOA and at the same time designs services that comply with the established REST constraints. It also shows pragmatic approaches to meet enterprise-grade requirements with the REST programming style but relaxes constraints where necessary.”

--Christoph Schittko, Director of Cloud Strategy, Microsoft

“An inspirational book that provides deep insight into the design and development of next-generation service-oriented systems based on the use of REST. This book clarifies the convergence of SOA and REST with no-nonsense content that addresses common questions and issues head-on. An essential ‘instrument of modern service implementation’ and a powerful body of knowledge for software designers, architects, and consultants.”

--Pethuru Raj, Ph.D., Enterprise Architecture (EA) Consultant, Wipro Consulting Services

The Service Technology Series from Thomas Erl continues its tradition of using simple examples to elucidate complicated concepts. With the latest in the series, SOA with REST, the authors have created a resource that discusses REST through the lenses of the common SOA pattern language. SOA with REST is a fantastic resource for the enterprise architect and developer alike!”

--Kevin P. Davis, Ph.D., Software Architect

“Unlike many other texts on the subject, SOA with REST is a well-rounded, easy-to-read narrative, including real-world case studies that appeal to both developers and analysts. This makes it an indispensable source for any SOA practitioner or any professional who is planning to initiate an SOA project.”

--Theodore T. Morrison, Certified SOA Analyst, CSM, Geocent, LLC

“The book is a must-read for any IT architect or software engineer who wants to gain a deep understanding of the principles, patterns, and implementation concepts that pertain to building REST-based applications for service-oriented architectures. It goes well beyond fundamental topics to explore the relationship between REST and various specific SOA principles and patterns.”

--Sanjay Singh, Certified SOA Architect, Development Manager, NorthgateArinso

“An authoritative, well-written reference for enterprise architects, analysts, developers, and others. This book shows not only the elegance, simplicity, and versatility of REST, it also gives us a clear understanding of how REST synergizes with SOA and service-orientation, how REST can impact SOA design goals, how we can design and develop REST services, and how we can address the unique challenges of integrating RESTfulness into service-orientation. This book is required reading for anyone who desires technical mastery of building service-oriented architectures with REST.”

--Philip Wik, MSS Technology

“This is a comprehensive and fundamental book to understand how to employ REST in service-oriented architectures. The many examples provided and the patterns described will be an invaluable help to any practitioner interested in service orientation.”

--Gustavo Alonso, Department of Computer Science, ETH Zurich

“SOA and REST are two very important architectural styles for distributed computing. SOA is successfully adopted by most enterprises, and the REST style is getting more attention from both researcher and industry users. The book SOA with REST introduces a new architectural style that is ingeniously combining both SOA and REST styles and clearly reveals how SOA and REST can work together to generate successful enterprise SOA strategies with REST, along with guidance for making architecture design decisions. This book is a bible of best practices for designing and implementing SOA architecture with REST. It is a must-have reference book for both IT practitioners and researchers.”

--Longji Tang, FedEx IT Senior Technical Advisor, Ph.D. in CSSE

“REST and SOA are two of the most misunderstood terms in the software industry over the past decade. Yet the REST architectural style coupled with modern RESTful framework implementations provides a scalable and reliable approach to SOA. This book covers all you need to know about how to take the principles of REST and apply them in small and large SOA developments. If you are familiar with REST and thinking about SOA, then you need this book. If you have not considered REST in your SOA work, then this book is for you, too. Covering concepts of both REST and SOA, as well as design patterns and when to use them, the book is a wonderful companion and a good tool for architects and engineers.”

--Dr. Mark Little, CTO JBoss, Red Hat

“This book is an excellent introduction into how SOA methodology can be used with services implementing a RESTful architectural style. Thomas Erl and his co-authors help SOA architects to better understand the implications of utilizing and the requirements for integrating REST into the service-oriented architecting process.”

--Gerald Beuchelt, MITRE

Read More Show Less

Product Details

Meet the Author

Thomas Erl is a best-selling IT author and the world’s top-selling SOA author. His books encompass topics ranging from cloud computing, semantic Web technology, and SOA. He is the series editor of the Prentice Hall Service Technology Series from Thomas Erl, as well as the editor of the Service Technology Magazine. With more than 160,000 copies in print world-wide, his published books have become international bestsellers and have been formally endorsed by senior members of major IT organizations, such as IBM, Microsoft, Oracle, Intel, Accenture, IEEE, MITRE, SAP, CISCO, and HP. As the founder of Arcitura Education Inc., Thomas has overseen the development of curricula for the internationally recognized SOASchool.com SOA Certified Professional (SOACP) and CloudSchool.com Cloud Certified Professional (CCP) accreditation programs, which have established a series of formal, vendor-neutral industry certifications. Thomas has toured over 20 countries as a speaker and instructor for public and private events and regularly participates in SOA, Cloud + Service Technology Symposium, and Gartner conferences. More than 100 articles and interviews by Thomas have been published in numerous publications, including The Wall Street Journal and CIO Magazine.

Benjamin Carlyle is a founding developer of the Invensys Rail “SystematICS” services framework, and has worked for many years as a software developer, software architect, and systems engineer on railway projects worldwide. He has focused on integrating REST and services technologies since around 2004. His work is referenced in several books on Restful Web services and on microformats, he has presented at the International SOA Symposium, and has served on the technical committee for international workshops on RESTful Design. He is credited with helping inspire the RESTlet framework for Java, and coined the term “REST Triangle” to describe the structure of a REST uniform contract. He has a deep understanding of both the theory and practice of REST and related styles as well as broader software and systems architecture topics.

Cesare Pautasso is an assistant professor at the Faculty of Informatics at the University of Lugano, Switzerland. Previously he was a researcher at the IBM Zurich Research Lab and a senior researcher at ETH Zurich, where he also completed his graduate studies with a Ph.D. in 2004. His teaching, research, and consulting activities both in academia and in industry cover advanced topics related to Software Architecture, Service Oriented Computing, and emerging RESTful Web services technologies. His research group focuses on building experimental systems to explore the intersection between the REST architectural style and model-driven software composition techniques, business process management, and liquid, self-organizing service-oriented architectures. He is an active member of IEEE and ACM, where he has participated in more than 100 international conference/workshop program committees. He has started the series of International Workshops on RESTful Design (WS-REST) at the WWW conference and was the general chair of the 9th IEEE European Conference on Web Services (ECOWS 2011). He regularly referees for Swiss, EU, and international funding agencies.

Raj Balasubramanian is a senior technologist from the Business Process Optimization (BPO) team within IBM Software Group focused on delivering SOA/BPM/Cloud solution across industries. Depending on the needs of the customer he has played the role of an enterprise architect, system architect, or solution architect to deliver on the engagement at hand. Prior to the focus on BPO, he was a lead portal architect delivering portal solutions to medium and large enterprise as part of the Lotus brand. He has published numerous articles on IBM DeveloperWorks and speaks at industry conferences on a variety of topics. His interests are in distributed systems, applying Web constructs to solution design, and using formal models and analytics to reason about large systems. Raj is also pursuing a Ph.D. in ECE at University of Texas at Austin where he is applying machine learning and data mining techniques to networked data from social Web to human travel. His official profile is on http://raj.balasubramanians.com, which links to his various personas.

Read More Show Less

Table of Contents

Foreword by Stefan Tilkov xxix

Acknowledgments xxxiii

Chapter 1: Introduction 1

1.1 About this Book 2

Who this Book is For 2

What this Book Does Not Cover 3

1.2 Recommended Reading 3

1.3 How this Book is Organized 4

1.4 Conventions 8

Use of the Color Red 8

Design Constraints, Principles, and Patterns: Page References and Capitalization 8

Design Goals: Capitalization 9

Symbol Legend 9

1.5 Additional Information 10

Updates, Errata, and Resources (www.servicetechbooks.com) 10

Master Glossary (www.soaglossary.com) 10

Service-Orientation (www.serviceorientation.com) 10

What Is REST? (www.whatisrest.com) 10

Referenced Specifications (www.servicetechspecs.com) 10

The Service Technology Magazine (www.servicetechmag.com) 10

SOASchool.com SOA Certified Professional (SOACP) 11

CloudSchool.com Cloud Certified (CCP) Professional 11

Notification Service 11

Chapter 2: Case Study Background 13

2.1 How Case Studies Are Used 14

2.2 Case Study Background #1: Midwest University Association (MUA) 14

History 14

IT Environment 14

Business Goals and Obstacles 16

1. Build Reusable Business Services 18

2. Consolidate Systems and Information 18

3. Improve Channel Experience 18

4. Build Services Infrastructure 18

2.3 Case Study Background #2: KioskEtc Co. 18

History 19

IT Environment 19

Business Goals and Obstacles 19

Part I: Fundamentals

Chapter 3: Introduction to Services 23

3.1 Service Terminology 24

Service 24

Service Contract 24

Service Capability 26

Service Consumer 26

Service Agent 27

Service Composition 27

3.2 Service Terminology Context 29

Services and REST 29

Services and SOA 29

REST Services and SOA 29

Chapter 4: SOA Terminology and Concepts 31

4.1 Basic Terminology and Concepts 32

Service-Oriented Computing 33

Service-Orientation 34

Service-Oriented Architecture (SOA) 37

SOA Manifesto 38

Services 39

Cloud Computing 40

IT Resources 41

Service Models 41

Agnostic Logic and Non-Agnostic Logic 42

Service Inventory 42

Service Portfolio 43

Service Candidate 44

Service Contract 44

Service-Related Granularity 45

Service Profiles 46

SOA Design Patterns 46

4.2 Further Reading 49

4.3 Case Study Example 50

Chapter 5: REST Constraints and Goals 51

5.1 REST Constraints 52

Client-Server 53

Stateless 54

Cache 55

Interface/Uniform Contract 55

Layered System 56

Code-On-Demand 57

5.2 Goals of the REST Architectural Style 58

Performance 58

Scalability 59

Simplicity 60

Modifiability 61

Visibility 61

Portability 62

Reliability 62

Case Study Example 63

Part II: RESTful Service-Orientation

Chapter 6: Service Contracts with REST 67

6.1 Uniform Contract Elements 68

Resource Identifier Syntax (and Resources) 69

URIs (and URLs and URNs) 69

Resource Identifiers and REST Services 71

Methods 71

Media Types 73

6.2 REST Service Capabilities and REST Service Contracts 75

6.3 REST Service Contracts vs. Non-REST Service Contracts 77

Non-REST Service with Custom Service Contract 77

REST Service with Uniform Contract 79

HTTP Messaging vs. SOAP Messaging 81

REST Service Contracts with WSDL? 82

6.4 The Role of Hypermedia 83

URI Templates and Resource Queries 86

6.5 REST Service Contracts and Late Binding 87

Case Study Example 90

Chapter 7: Service-Orientation with REST 93

7.1 “SOA vs. REST” or “SOA + REST”? 95

7.2 Design Goals 97

Increased Intrinsic Interoperability 97

Increased Federation 98

Increased Vendor Diversity Options 99

Increased Business and Technology Alignment 100

Increased ROI 100

Increased Organizational Agility 102

Reduced IT Burden 102

Common Goals 103

7.3 Design Principles and Constraints 104

Standardized Service Contract 104

Service Loose Coupling 105

Service Abstraction 107

Service Reusability 109

Service Autonomy 110

Service Statelessness 111

Service Discoverability 113

Service Composability 114

Common Conflicts 114

Stateful Interactions 115

Service-Specific Contract Details 115

Case Study Example 116

Part III: Service-Oriented Analysis and Design with REST

Chapter 8: Mainstream SOA Methodology and REST 127

8.1 Service Inventory Analysis 131

8.2 Service-Oriented Analysis (Service Modeling) 133

8.3 Service-Oriented Design (Service Contract) 135

8.4 Service Logic Design 137

8.5 Service Discovery 137

8.6 Service Versioning and Retirement 138

Chapter 9: Analysis and Service Modeling with REST 139

9.1 Uniform Contract Modeling and REST Service Inventory Modeling 141

REST Constraints and Uniform Contract Modeling 144

REST Service Centralization and Normalization 146

9.2 REST Service Modeling 147

REST Service Capability Granularity 148

Resources vs. Entities 149

REST Service Modeling Process 150

Case Study Example 152

Step 1: Decompose Business Process (into Granular Actions) 152

Case Study Example 152

Step 2: Filter Out Unsuitable Actions 154

Case Study Example 154

Step 3: Identify Agnostic Service Candidates 155

Case Study Example 157

Event Service Candidate (Entity) 157

Award Service Candidate (Entity) 158

Student Service Candidate (Entity) 158

Notification Service Candidate (Utility) 159

Document Service Candidate (Utility) 159

Step 4: Identify Process-Specific Logic 160

Case Study Example 160

Confer Student Award Service Candidate (Task) 161

Step 5: Identify Resources 161

Case Study Example 162

Step 6: Associate Service Capabilities with Resources and Methods 163

Case Study Example 164

Confer Student Award Service Candidate (Task) 164

Event Service Candidate (Entity) 164

Award Service Candidate (Entity) 165

Student Service Candidate (Entity) 165

Notification Service Candidate (Utility) 166

Document Service Candidate (Utility) 166

Step 7: Apply Service-Orientation 167

Case Study Example 167

Step 8: Identify Candidate Service Compositions 167

Case Study Example 168

Step 9: Analyze Processing Requirements 169

Step 10: Define Utility Service Candidates 170

Step 11: Associate Utility-Centric Service Capabilities with Resources and Methods 171

Step 12: Apply Service-Orientation 171

Step 13: Revise Candidate Service Compositions 171

Step 14: Revise Resource Definitions 171

Step 15: Revise Capability Candidate Grouping 172

Additional Considerations 172

Chapter 10: Service-Oriented Design with REST 173

10.1 Uniform Contract Design Considerations 175

Designing and Standardizing Methods 175

Designing and Standardizing HTTP Headers 177

Designing and Standardizing HTTP Response Codes 179

Customizing Response Codes 184

Designing Media Types 186

Designing Schemas for Media Types 188

Service-Specific XML Schemas 189

10.2 REST Service Contract Design 191

Designing Services Based on Service Models 191

Task Services 191

Entity Services 192

Utility Services 193

Designing and Standardizing Resource Identifiers 194

Service Names in Resource Identifiers 195

Other URI Components 196

Resource Identifier Overlap 197

Resource Identifier Design Guidelines 199

Designing with and Standardizing REST Constraints 201

Stateless 201

Cache 202

Uniform Contract 203

Layered System 204

Case Study Example 205

Confer Student Award Service Contract (Task) 205

Event Service Contract (Entity) 207

Award Service Contract (Entity) 207

Student Transcript Service Contract (Entity) 208

Notification and Document Service Contracts (Utility) 209

10.3 Complex Method Design 211

Stateless Complex Methods 214

Fetch Method 214

Store Method 215

Delta Method 217

Async Method 219

Stateful Complex Methods 221

Trans Method 221

PubSub Method 222

Case Study Example 224

OptLock Complex Method 224

PesLock Complex Method 226

Part IV: Service Composition with REST

Chapter 11: Fundamental Service Composition with REST 231

11.1 Service Composition Terminology 233

Compositions and Composition Instances 233

Composition Members and Controllers 234

Service Compositions Are Actually Service Capability Compositions 235

Designated Controllers 236

Collective Composability 236

Service Activities 238

Composition Initiators 239

Point-to-Point Data Exchanges and Compositions 240

11.2 Service Composition Design Influences 241

Service-Orientation Principles and Composition Design 241

Standardized Service Contract and the Uniform Contract 242

Service Loose Coupling and the Uniform Contract 243

Service Abstraction and Composition Information Hiding 244

Service Reusability for Repeatable Composition 245

Service Autonomy and Composition Autonomy Loss 245

Service Statelessness and Stateless 246

Service Composability and Service-Orientation 246

REST Constraints and Composition Design 247

Stateless and Stateful Compositions 247

Cache and Layered System 248

Code-on-Demand and Composition Logic Deferral 248

Uniform Contract and Composition Coupling 248

11.3 Composition Hierarchies and Layers 249

Task Services Composing Entity Services 250

Entity Services Composing Entity Services 251

11.4 REST Service Composition Design Considerations 253

Synchronous and Asynchronous Service Compositions 253

Idempotent Service Activities 254

Lingering Composition State 255

Binding Between Composition Participants 255

11.5 A Step-by-Step Service Activity 258

1. Request to Purchase a Ticket 258

2. Verify the Requested Flight Details 258

3. Confirm a Seat on the Flight 259

4. Generate an Invoice 259

5. Create the Ticket 260

Summary 260

Chapter 12: Advanced Service Composition with REST 261

12.1 Service Compositions and Stateless 263

Composition Design with Service Statelessness 264

Composition Design with Stateless 265

12.2 Cross-Service Transactions with REST 266

REST-Friendly Atomic Service Transactions 267

Phase 1: Initialize 267

Phase 2: Reserve 268

Phase 3A: Confirm 269

Phase 3B: Cancel 269

Phase 3C: Timeout 270

Compliance with Stateless 271

Additional Considerations 272

REST-Friendly Compensating Service Transactions 272

Phase 1: Begin 273

Phase 2: Do 273

Phase 3A: Complete 274

Phase 3B: Undo 274

Phase 3C: Timeout 275

Compliance with Stateless 276

Additional Considerations 276

Non-REST-Friendly Atomic Service Transactions 276

Phase 1: Initialize 277

Phase 2: Do 277

Phase 3: Prepare 278

Phase 4A: Commit 279

Phase 4B: Rollback 279

Phase 4C: Timeout 280

Compliance with Stateless 280

Additional Considerations 281

12.3 Event-Driven Interactions with REST 282

Event-Driven Messaging 282

Compliance with Stateless 283

Message Polling 285

Compliance with Stateless 287

12.4 Service Composition with Dynamic Binding and Logic Deferral 288

Denormalized Capabilities Across Normalized Services 289

Composition Deepening 292

Dynamically Binding with Common Properties 294

Runtime Logic Deferral 297

12.5 Service Composition Across Service Inventories 299

Inventory Endpoint with REST 299

Dynamic Binding Between Service Inventories with Baseline Standardization 302

Chapter 13: Service Composition with REST Case Study 305

13.1 Revisiting the Confer Student Award Process 306

13.2 Application Submission and Task Service Invocation 310

13.3 Confer Student Award Service Composition Instance (Pre-Review Service Activity View) 312

Step 1: Composition Initiator to Confer Student Award Task Service (A) 312

Step 2: Confer Student Award Task Service to Event Entity Service (B) 312

Step 3: Event Entity Service to Confer Student Award Task Service (B) 313

Step 4: Confer Student Award Task Service to Award Entity Service (E) 314

Step 5: Award Entity Service to Confer Student Award Task Service (E) 314

Step 6: Confer Student Award Task Service to Award Entity Service (E) 314

Step 7: Award Entity Service to Confer Student Award Task Service (E) 315

Step 8: Confer Student Award Task Service to Student Entity Service (F) 315

Step 9: Student Entity Service to Confer Student Award Task Service (F) 315

Step 10: Confer Student Award Task Service to Student Transcript Entity Service (F) 316

Step 11: Student Transcript Entity Service to Confer Student Award Task Service (F) 316

Step 12: Confer Student Award Task Service to Composition Initiator 316

13.4 Review of Pending Applications and Task Service Invocation 317

Confer Student Award Service Composition Instance (Post-Review Service Activity View) 318

Step 1: Composition Initiator to Confer Student Award Task Service (L) 320

Step 2: Confer Student Award Task Service to Notification Utility Service (N) 320

Step 3: Notification Utility Service to Student Entity Service (N) 320

Step 4: Student Entity Service to Notification Utility Service (N) 320

Step 5: Notification Utility Service to Confer Student Award Task Service (N) 321

Intermediate Step: Confer Student Award Task Service to Transaction Coordinator (P, Q) 321

Intermediate Step: Transaction Coordinator to Confer Student Award Task Service (P, Q) 321

Step 6: Confer Student Award Task Service to Conferral Entity Service (P) 322

Intermediate Step: Conferral Entity Service to Transaction Coordinator (P) 322

Intermediate Step: Transaction Coordinator to Conferral Entity Service 322

Step 7: Conferral Entity Service to Confer Student Award Task Service (Q) 322

Step 8: Confer Student Award Task Service to Student Manuscript Entity Service (Q) 323

Intermediate Step: Student Transcript Entity Service to Transaction Controller (Q) 323

Intermediate Step: Transaction Controller to Student Transcript Entity Service (Q) 323

Step 9: Student Transcript Entity Service to Confer Student Award Task Service (Q) 324

Intermediate Step: Confer Student Award Task Service to Transaction Coordinator (P, Q) 324

Intermediate Step: Transaction Coordinator to Confer Student Award Task Service (P, Q) 324

Step 10: Confer Student Award Task Service to Composition Initiator 324

Part V: Supplemental

Chapter 14: Design Patterns for SOA with REST 327

14.1 REST-Inspired SOA Design Patterns 329

Content Negotiation 331

Related Patterns 332

Related Service-Oriented Computing Goals 332

Endpoint Redirection 332

Related Patterns 333

Related Service-Oriented Computing Goals 333

Entity Linking 333

Related Patterns 335

Related Service-Oriented Computing Goals 335

Idempotent Capability 335

Related Patterns 335

Related Service-Oriented Computing Goals 335

Lightweight Endpoint 336

Related Patterns 337

Related Service-Oriented Computing Goals 337

Reusable Contract 338

Related Patterns 338

Related Service-Oriented Computing Goals 339

Uniform Contract 339

14.2 Other Relevant SOA Design Patterns 340

Contract Centralization 340

Contract Denormalization 340

Domain Inventory 340

Schema Centralization 341

State Messaging 341

Validation Abstraction 342

Chapter 15: Service Versioning with REST 343

15.1 Versioning Basics 346

REST Service Contract Compatibility 346

Compatible and Incompatible Changes 348

Uniform Contract Method Compatibility 349

Uniform Contract Media Type Compatibility 350

Media Types and Forwards-compatibility 354

15.2 Version Identifiers 355

Using Version Identifiers 356

Version Identifiers and the Uniform Contract 358

Chapter 16: Uniform Contract Profiles 361

16.1 Uniform Contract Profile Template 362

Uniform-Level Structure 363

Method Profile Structure 364

Media Type Profile Structure 365

16.2 REST Service Profile Considerations 367

16.3 Case Study Example 369

Uniform-Level Structure: MUAUC 370

Method Profile Structure: Fetch 371

Response Code Handling for GET Methods in Fetch Method 373

Method Profile Structure: Store 374

Response Code Handling for PUT and DELETE Methods in Store Method 376

Method Profile Structure: GET 377

Method Profile Structure: PUT 378

Media Type Profile Structure: Invoice (application/vnd.edu.mua.invoice+xml) 379

Part VI: Appendices

Appendix A: Case Study Conclusion 383

Appendix B: Industry Standards Supporting the Web 387

The Internet Engineering Taskforce (IETF) 388

The World Wide Web Consortium 389

Other Web Standards 390

Appendix C: REST Constraints Reference 391

Appendix D: Service-Orientation Principles Reference 409

Appendix E: SOA Design Patterns Reference 425

Appendix F: State Concepts and Types 521

State Management Explained 522

State Management in Abstract 522

Origins of State Management 523

Deferral vs. Delegation 527

Types of State 527

Active and Passive 527

Stateless and Stateful 528

Session and Context Data 528

Measuring Service Statelessness 530

Appendix G: The Annotated SOA Manifesto 533

Appendix H: Additional Resources 547

www.whatisrest.com 548

Bibliography and References 548

Resources 551

www.servicetechbooks.com 551

www.soaschool.com, www.cloudschool.com 551

www.servicetechmag.com 552

www.soaglossary.com 552

www.servicetechspecs.com 552

www.soapatterns.org, www.cloudpatterns.org 552

www.serviceorientation.com, www.soaprinciples.com, www.whatissoa.com 552

www.servicetechsymposium.com 552

About the Authors 553

About the Pattern Co-Contributors 555

About the Foreword Contributor 557

Index 559

Read More Show Less

Customer Reviews

Average Rating 5
( 1 )
Rating Distribution

5 Star

(1)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted August 27, 2013

    No text was provided for this review.

Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)