Distributed Programming with Ruby
- By Mark Bates
- Published Nov 5, 2009 by Addison-Wesley Professional. Part of the Addison-Wesley Professional Ruby Series series.
- Copyright 2010
- Dimensions: 7 X 9-1/8
- Pages: 272
- Edition: 1st
- ISBN-10: 0-321-63836-0
- ISBN-13: 978-0-321-63836-6
Register your product to gain access to bonus material or receive a coupon.
Product Author Bios
Mark Bates has been developing web applications of one kind or another since 1996. He has spent an ungodly amount of time programming Java, but thankfully he discovered Ruby in late 2005, and life has been much nicer since.
Since discovering Ruby, Mark has become a prominent member of the community. He has developed various open-source projects, such as Configatron, Cachetastic, Genosaurus, APN on Rails, and the Mack Framework, just to name a few. The Mack Framework brought Mark to the forefront of distributed programming in the Ruby community. Mack was a web framework designed from the ground up to aid in the development of distributed applications.
Mark has taught classes on both Ruby and Ruby on Rails. He has spoken at several Ruby gatherings, including 2008’s RubyConf, where he spoke about building distributed applications.
Mark has an honors degree in music from the Liverpool Institute for Performing Arts. He still likes to rock out on the weekends, but set times are now 10 p.m., not 2 a.m. He lives just outside of Boston with his wife Rachel and their sons Dylan and Leo, whom he missed very much when writing this book.
Mark can be found at http://www.markbates.com and http://github.com/markbates.
“A must have title for the well-rounded Ruby programmer building advanced Rails applications and large systems!”
OBIE FERNANDEZ, Series Editor
Complete, Hands-On Guide to Building Advanced Distributed Applications with Ruby
Distributed programming techniques make applications easier to scale, develop, and deploy—especially in emerging cloud computing environments. Now, one of the Ruby community’s leading experts has written the first definitive guide to distributed programming with Ruby.
Mark Bates begins with a simple distributed application, and then walks through an increasingly complex series of examples, demonstrating solutions to the most common distributed programming problems.
Bates presents the industry’s most useful coverage of Ruby’s standard distributed programming libraries, DRb and Rinda. Next, he introduces powerful third-party tools, frameworks, and libraries designed to simplify Ruby distributed programming, including his own Distribunaut.
If you’re an experienced Ruby programmer or architect, this hands-on tutorial and practical reference will help you meet any distributed programming challenge, no matter how complex.
• Writing robust, secure, and interactive applications using DRb—and managing its drawbacks
• Using Rinda to build applications with improved flexibility, fault tolerance, and service discovery
• Simplifying DRb service management with RingyDingy
• Utilizing Starfish to facilitate communication between distributed programs and to write MapReduce functions for processing
large data sets
• Using Politics to customize the processes running on individual server instances in a cloud computing environment
• Providing reliable distributed queuing with the low-overhead Starling messaging server
• Implementing comprehensive enterprise messaging with RabbitMQ and Advanced Message Queuing Protocol (AMQP)
• Offloading heavyweight tasks with BackgrounDRb and DelayedJob
4 of 4 people found the following review helpful
An excellent survey of distributed systems programming in Ruby,
This review is from: Distributed Programming with Ruby (Paperback)This book provides an excellent survey of distributed programming techniques using the Ruby platform. As a software engineer who is largely unfamiliar with Ruby, but very familiar with distributed programming, I was able to leverage the book both to understand "how you do things" in Ruby, as well as to introduce myself to the (libraries, framework tools, etc.) which make distributed programming a reality. My experience in reading this book was that it had a great flow, and a very clean presentation on the subject matter. I walked away with a deeper understanding of the Ruby language itself, as well as a mapping from "strategy/design concept" to "implementation toolkit" should I have a need to write a distributed service in Ruby. In summary, the book provides an excellent survey of both distributed concepts, as well as several options available on the Ruby platform for each, covering: DRb, Rinda, RingyDingy, Starfish, Distribunaut, Politics, Starling, working with Rabbit MQ,... Read more
1 of 4 people found the following review helpful
Amazon Verified Purchase(What's this?)
This review is from: Distributed Programming with Ruby (Addison-Wesley Professional Ruby Series) (Kindle Edition)If you are a ruby programmer looking to expand your knowledge on the DRB library, this book is an excellent & in-depth dive into the subject. Kindle owners will appreciate the e-book pricing.
2 of 15 people found the following review helpful
The Best Object-oriented Design Book I have Read about Ruby on Rails best Practices,
This review is from: Distributed Programming with Ruby (Paperback)This book reperents a major step forward for object-oriented design using RoR. I have found ruby an interesting language and have used this book to be a resource for my object-oriented design knowledge requirements. This book has changed the way I create distributed databases giving me a better knowledge of the best practices that go into creating such things. I will use this book as a reference guide for programming/software development need moving forward manning the efforts to create my apps. Thank you Mark for helping me better understand the ruby programming language for creating web apps.
› See all 3 customer reviews...
Online Sample Chapter
Download the sample pages (includes Chapter 5 and Index)
Table of Contents
Part I Standard Library 1
Chapter 1 Distributed Ruby (DRb) 3
Hello World 4
Proprietary Ruby Objects 10
Access Control Lists (ACLs) 18
DRb over SSL 21
ID Conversion 28
Built-in ID Converters 29
Building Your Own ID Converter 33
Using Multiple ID Converters 34
Chapter 2 Rinda 37
“Hello World” the Rinda Way 38
Understanding Tuples and TupleSpaces 44
Writing a Tuple to a TupleSpace 44
Reading a Tuple from a TupleSpace 45
Taking a Tuple from a TupleSpace 48
Reading All Tuples in a TupleSpace 52
Callbacks and Observers 53
Understanding Callbacks 54
Implementing Callbacks 55
Security with Rinda 59
Access Control Lists (ACLs) 59
Using Rinda over SSL 61
Selecting a RingServer 63
Renewing Rinda Services 70
Using a Numeric to Renew a Service 71
Using nil to Renew a Service 72
Using the SimpleRenewer Class 72
Custom Renewers 73
Part II Third-Party Frameworks and Libraries 77
Chapter 3 RingyDingy 79
Getting Started with RingyDingy 80
“Hello World” the RingyDingy Way 81
Building a Distributed Logger with RingyDingy 82
Letting RingyDingy Shine 84
Chapter 4 Starfish 87
Getting Started with Starfish 88
“Hello World” the Starfish Way 90
Using the Starfish Binary 90
Saying Goodbye to the Starfish Binary 93
Building a Distributed Logger with Starfish 96
Letting Starfish Shine 99
MapReduce and Starfish 103
Using Starfish to MapReduce ActiveRecord 104
Using Starfish to MapReduce a File 110
Chapter 5 Distribunaut 115
Blastoff: Hello, World! 117
Building a Distributed Logger with Distribunaut 120
Avoiding Confusion of Services 123
Borrowing a Service with Distribunaut 126
Chapter 6 Politics 131
Working with Politics 135
Part III Distributed Message Queues 143
Chapter 7 Starling 145
What Is a Distributed Message Queue? 145
Getting Started with Starling 148
“Hello World” the Starling Way 155
Building a Distributed Logger with Starling 157
Persisted Queues 158
Getting Starling Stats 158
Chapter 8 AMQP/RabbitMQ 163
What Is AMQP? 163
“Hello World” the AMQP Way 167
Building a Distributed Logger with AMQP 178
Persisted AMQP Queues 180
Subscribing to a Message Queue 184
Topic Queues 187
Fanout Queues 193
Part IV Distributed Programming with Ruby on Rails 199
Chapter 9 BackgrounDRb 201
Offloading Slow Tasks with BackgrounDRb 203
Configuring BackgrounDRb 211
Persisting BackgrounDRb Tasks 213
Caching Results with Memcached 217
Chapter 10 Delayed Job 223
Sending It Later with Delayed Job 225
Custom Workers and Delayed Job 230
Who’s on First, and When Does He Steal Second? 235
Configuring Delayed Job 237
Book + eBook Bundle
Book Price $31.99
eBook Price $11.20
eBook formats included
This book includes free shipping!
This book includes free shipping!
Includes EPUB, MOBI, and PDF
About eBook Formats
This eBook includes the following formats, accessible from your Account page after purchase:
EPUBThe open industry format known for its reflowable content and usability on supported mobile devices.
MOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.
PDFThe popular standard, used most often with the free Adobe® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.
Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.