Service-Oriented Design with Ruby and Rails

Service-Oriented Design with Ruby and Rails

by Paul Dix
5.0 1
Pub. Date:
Select a Purchase Option
  • purchase options
    $40.74 $49.99 Save 19% Current price is $40.74, Original price is $49.99. You Save 19%.
  • purchase options


Service-Oriented Design with Ruby and Rails

The Complete Guide to Building Highly Scalable, Services-Based Rails Applications

Ruby on Rails deployments are growing, and Rails is increasingly being adopted in larger environments. Today, Rails developers and architects need better ways to interface with legacy systems, move into the cloud, and scale to handle higher volumes and greater complexity. In Service-Oriented Design with Ruby and Rails Paul Dix introduces a powerful, services-based design approach geared toward overcoming all these challenges. Using Dix’s techniques, readers can leverage the full benefits of both Ruby and Rails, while overcoming the difficulties of working with larger codebases and teams.

Dix demonstrates how to integrate multiple components within an enterprise application stack; create services that can easily grow and connect; and design systems that are easier to maintain and upgrade. Key concepts are explained with detailed Ruby code built using open source libraries such as ActiveRecord, Sinatra, Nokogiri, and Typhoeus. The book concludes with coverage of security, scaling, messaging, and interfacing with third-party services.

Service-Oriented Design with Ruby and Rails will help you

  • Build highly scalable, Ruby-based service architectures that operate smoothly in the cloud or with legacy systems
  • Scale Rails systems to handle more requests, larger development teams, and more complex code bases
  • Master new best practices for designing and creating services in Ruby
  • Use Ruby to glue together services written in any language
  • Use Ruby libraries to build and consume RESTful Web services
  • Use Ruby JSON parsers to quickly represent resources from HTTP services
  • Write lightweight, well-designed API wrappers around internal or external services
  • Discover powerful non-Rails frameworks that simplify Ruby service implementation
  • Implement standards-based enterprise messaging with Advanced Message Queuing Protocol (AMQP)
  • Optimize performance with load balancing and caching
  • Provide for security and authentication

Product Details

ISBN-13: 9780321659361
Publisher: Addison-Wesley
Publication date: 09/03/2010
Series: Addison-Wesley Professional Ruby Series
Pages: 297
Product dimensions: 7.00(w) x 9.00(h) x 0.70(d)

Table of Contents

Foreword xiii

Preface xv

Acknowledgments xix

About the Author xxi

Chapter 1: Implementing and Consuming Your First Service 1

What’s a Service? 1

Service Requirements 2

The Ruby Tool Set 2

The User Service Implementation 5

Implementing the Client Library 18

Putting It All Together 26

Conclusion 26

Chapter 2: An Introduction to Service-Oriented Design 27

Use of Service-Oriented Design in the Wild 27

Service-Oriented Design Versus Service-Oriented Architecture Versus

RESTful-Oriented Architecture 28

Making the Case for Service-Oriented Design 29

Conclusion 38

Chapter 3: Case Study: Social Feed Reader 41

A Typical Rails Application 41

The Rails Social Feed Reader Application 45

Converting to Services 54

Conclusion 58

Chapter 4: Service and API Design 59

Partitioning Functionality into Separate Services 59

Versioning Services 64

URIs and Interface Design 66

Successful Responses 68

Error Responses 72

Handling Joins 73

API Complexity 75

Conclusion 78

Chapter 5: Implementing Services 79

The Vote Service 79

Models 86

Rails 88

Sinatra 95

Rack 100

Conclusion 106

Chapter 6: Connecting to Services 107

Blocking I/O, Threading, and Parallelism 107

Typhoeus 109

Multi-threaded Requests 113

JRuby 115

Logging for Performance 117

Handling Error Conditions 118

Testing and Mocking Service Calls 119

Requests in Development Environments 121

Conclusion 121

Chapter 7: Developing Service Client Libraries 123

Packaging 123

Parsing Logic 127

ActiveModel 132

Connection and Request Logic 136

Mocks, Stubs, and Tests 143

Conclusion 146

Chapter 8: Load Balancing and Caching 147

Latency and Throughput 147

Load Balancing 148

Caching with Memcached 155

HTTP Caching 162

Conclusion 166

Chapter 9: Parsing XML for Legacy Services 167

XML 167

SOAP 177

Conclusion 184

Chapter 10: Security 185

Authentication 185

Authorization 201

Encryption 209

Conclusion 214

Chapter 11: Messaging 215

What Is Messaging? 215

RabbitMQ and AMQP 217

Synchronous Reads, Asynchronous Writes 227

The CAP Theorem 230

Data Is the API 234

Conclusion 236

Chapter 12: Web Hooks and External Services 237

Web Hooks 238

OAuth 245

Integrating with External Services 251

Ensuring Performance and Reliability 258

Conclusion 261

Appendix: RESTful Primer 263

Roy Fielding’s REST 263

REST and Resources 265

HTTP and the Uniform Interface 268

Conclusion 275

Index 277

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews

Service-Oriented Design with Ruby and Rails 5 out of 5 based on 0 ratings. 1 reviews.
stevelaws More than 1 year ago
Authoritative and well written.