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 that was 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
1100836228
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 that was 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
47.99 In Stock
Service-Oriented Design with Ruby and Rails

Service-Oriented Design with Ruby and Rails

by Paul Dix
Service-Oriented Design with Ruby and Rails

Service-Oriented Design with Ruby and Rails

by Paul Dix

eBook

$47.99 

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

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 that was 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: 9780321700117
Publisher: Pearson Education
Publication date: 08/17/2010
Series: Addison-Wesley Professional Ruby Series
Sold by: Barnes & Noble
Format: eBook
Pages: 320
File size: 11 MB
Note: This product may take a few minutes to download.
Age Range: 18 Years

About the Author

Paul Dix is co-founder and CTO at Market.io. In the past, he has worked at Google, Microsoft, McAfee, Air Force Space Command, and multiple startups, filling positions as a programmer, software tester, and network engineer. He has been a speaker at multiple conferences, including RubyConf, Goruco, and Web 2.0 Expo, on the subjects of service-oriented design, event-driven architectures, machine learning, and collaborative filtering. Paul is the author of multiple open source Ruby libraries. He has a degree in computer science from Columbia University.

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

From the B&N Reads Blog

Customer Reviews