Index

A

ACLs (access control lists), 18-20

Rinda, 59-61

ActiveRecord model

callbacks, 54

MapReduce, 105-110

AMQP (Advanced Message Queueing Protocol), 163-165, 196

distributed loggers, building, 178-180

documentation, 168

fanout queues, 193-195

Hello World application, 167-178

message queues, subscribing to, 184-187

persisted queues, 180-184

Quison, 180

RabbitMQ

installing, 165-166

stopping, 168

topic queues, 187-192

Apache Hadoop project, MRToolkit, 104

applications

“Distributed Logger” example, 9-10

AMQP, 178-180

Distribunaut, 120-126

DRb, 7-9

Java RMI, 4-7

RingyDingy, 82-84

Starfish, 96-99

Starling, 157-158

distributed queuing services, Starfish, 99-103

“Hello World” example, 4-9

AMQP, 167-178

Distribunaut, 117-120

Rinda, 38-44

RingyDingy, 81-82

Starfish, 90-96

Starling, 155-157

security, 17-18

ACLs (access control lists), 18-20

SSL (Secure Sockets Layer), 21-28

“User Database Server” example, 11-16

B

BackgrounDRb, 201, 220

configuring, 211-213

installing, 202-203

persisting tasks, 213-217

results, caching, 217-220

slow tasks, offloading, 203-211

binary, Starfish, 90-93

binding queues

fanout queues, AMQP, 193-195

topic queues, AMQP, 187-192

borrowing services, Distribunaut, 126-128

“Building Distributed Applications,” 131

builit-in ID converters, 29

DRb::DRbIdConv, 29-32

DRb::GWIdConv converter, 29

C

CA (Certificate Authority), 25, 36

caching BackgrounDRb results, Memcached, 217-220

callbacks, 53-55

ActiveRecord model, 54

implementing, 55-58

capturing exceptions, Hoptoad, 210

Carlson, Lucas, 87

Certificate Authority (CA), 25, 36

certificates

CA (Certificate Authority), 25, 36

SSL (Secure Sockets Layer), generating, 21-22

classes

MiddleMan, 207

SimpleRenewer, 72-73

Task, 100

User, 11

UserServer, writing, 11-12

clients, IP addresses and ports, hardcoding, 37

configuration

BackgrounDRb, 211-213

Delayed Job, 237, 239

Starling, YAML, 149

connections, hardcoding, 37

consumer code, exiting, 173

Cook, Blaine, 148

custom Renewers, Rinda services, renewing, 73-74

custom workers, Delayed Job, 230-235

D

Daemons, 228

Delayed Job, 210, 223, 240

configuring, 237-239

custom workers, 230-235

deploying, 240

installing, 223-225

send_later method, 225-230

tasks, scheduling and prioritizing, 235-237

DeLeo, Dan, 180

deploying Delayed Job, 240

Design Patterns in Ruby, 58

Distribunaut, 115-116, 128-129

distributed loggers, building, 120-126

Hello World application, 117-120

installing, 116

services

avoiding confusion, 123-126

borrowing, 126-128

“Distributed Logger” example, 9-10

AMQP, 178-180

Distribunaut, 120-126

RingyDingy, 82-84

Starfish, 96-99

Starling, 157-158

distributed message queues

AMQP (Advanced Message Queueing Protocol), 163-165

building distributed loggers, 178-180

documentation, 168

fanout queues, 193-195

Hello World application, 167-178

installing RabbitMQ, 165-166

message queue subscriptions, 184-187

persisted queues, 180-184

Quison, 180

topic queues, 187-192

RabbitMQ, installing, 166

Starling, 145-147

distributed programming, xi

distributed queuing services, Starfish, 99-103

documentation, AMQP (Advanced Message Queueing Protocol), 168

DRb (Distributed Ruby), 3-4

advantages, 3

disadvantages, 4

“Hello World” example, 7-9

Java RMI, compared, 4-10

DRb::DRbIdConv converter, 29-32

DRb::GWIdConv converter, 29

DRbUndumped module, 15-17

E

encode method, 226

EventMachine, 176

examples

“Distributed Logger” example, 9-10

AMQP, 178-180

Distribunaut, 120-126

RingyDingy, 82-84

Starfish, 96-99

Starling, 157-158

distributed queuing services, Starfish, 99-103

“Hello World” example, 4-9

AMQP, 178-180

Distribunaut, 120-126

DRb, 7-9

Java RMI, 4-7

RingyDingy, 82-84

Starfish, 96-99

Starling, 157-158

security, 17-18

ACLs (access control lists), 18-20

SSL (Secure Sockets Layer), 21-28

“User Database Server” example, 11-16

exceptions, capturing, Hoptoad, 210

exchanges, queues, compared, 191

exiting code, 173

F–G

fanout queues, AMQP, 193-195

files, MapReduce, 110-112

find method, 12

GitHub.com, 230

Google MapReduce, 103

Gupta, Arman, 169

H

hardcoding, 37

hashes, Tuples, 47-48, 134

“Hello World” application

AMQP, 167-178

Distribunaut, 117-120

DRb, 7-9

Java RMI, 4-7

Rinda, 38-44

RingyDingy, 81-82

Starfish, 90-96

Starling, 155-157

Hodel, Eric, 21, 79, 86

Hoptoad, 210

I

ID converters, 28-29

building, 33-34

built-in ID converters, 29

DRb::DRbIdConv, 29-32

DRb::GWIdConv converter, 29

multiple ID converters, using, 34-35

installation

BackgrounDRb, 202-203

Delayed Job, 223-225

Distribunaut, 116

Politics, 133

RabbitMQ, 165-166

RingyDingy, 79

Starfish, 87

Starling, 147

IP addresses, hardcoding, 37

J–K–L

Java RMI (remote method invocation), xi

Hello World” example, 4-7

Kumar, Hemant, 201

libraries

AMQP (Advanced Message Queueing Protocol), 163-165

building distributed loggers, 178-180

documentation, 168

fanout queues, 193-195

“Hello World” application, 167-178

installing RabbitMQ, 165-166

message queue subscriptions, 184-187

persisted queues, 180-184

Quison, 180

topic queues, 187-192

BackgrounDRb, 201, 220

caching results, 217-220

configuring, 211-213

installing, 202-203

offloading slow tasks, 203-211

persisting tasks, 213-217

Daemons, 228

Delayed Job, 223, 240

configuring, 237-239

custom workers, 230-235

deploying, 240

installing, 223-225

scheduling tasks, 235-237

send_later method, 225-230

Distribunaut, 115-116, 128-129

borrowing services, 126-128

building distributed loggers, 120-126

“Hello World” application, 117-120

installing, 116

Politics, 131, 141-142

caveats, 140

implementing, 135

installing, 133

TokenWorker module, 135-141

Quison, 180

RabbitMQ, installing, 166

RingyDingy, 79-81, 84-86

building distributed loggers, 82-84

“Hello World” application, 81-82

installing, 79

Starfish, 87-89

binary, 90-93

building distributed loggers, 96-99

distributed queuing services, 99-103

“Hello World” application, 90-96

installing, 87

MapReduce, 103-104, 106-112

Starling, 148-152, 162

building distributed loggers, 157-158

configuring, 149

distributed message queues, 145-147

“Hello World” application, 155-157

installing, 147

Memcached, 158

retrieving statistics, 158-161

life cycles

requests, 9

pass by reference requests, 16

responses, 9

loggers. See distributed loggers

lookup method, 7

Lütke, Tobias, 223

M

MacPorts, RabbitMQ, installing, 166

managing RingServers, RingyDingy, 79-85

MapReduce

MRToolkit, 104

SkyNet, 104

Starfish, 103

ActiveRecord, 105-110

files, 110-112

marshaling. See serialization

mDNS, 132-133

Memcached, 132

Starling, compared, 158

message queues, subscriptions, AMQP, 184-187

messaging servers

AMQP (Advanced Message Queueing Protocol), 163-165

building distributed loggers, 178-180

documentation, 168

fanout queues, 193-195

“Hello World” application, 167-178

installing RabbitMQ, 165-166

message queue subscriptions, 184-187

persisted queues, 180-184

Quison, 180

topic queues, 187-192

RabbitMQ, installing, 166

Starling, 145, 148-152, 162

building distributed loggers, 157-158

configuring, 149

distributed message queues, 145-147

“Hello World” application, 155-157

installing, 147

Memcached, 158

retrieving statistics, 158-161

methods

encode, 226

find, 12

lookup, 7

queue, 171

read, 43

send_later, 225-230

worker, 207

write, 43

MiddleMan class, 207

modules, DRbUndumped, 15-17

MRToolkit, MapReduce, 104

multiple ID converters, using, 34-35

N–O

nil, Rinda services, renewing, 72

numeric, Rinda services, renewing, 71-72

objects

ID converters, 28-29

building, 33-34

built-in ID converters, 29-32

multiple ID converters, using, 34-35

pass by reference, 14

pass by value, 14

proprietary objects, 10-16

serialization, 9

observers, 53-55

offloading slow tasks, BackgrounDRb, 203-211

Olsen, Russ, 58

P

pass by reference requests, 14

life cycles, 16

pass by value requests, 14

Perham, Mark, 131

persisted queues, AMQP, 180-184

persisting tasks, BackgrounDRb, 213-217

Pisoni, Adam, 104

Politics, 131, 141-142

caveats, 140

implementing, 135

installing, 133

TokenWorker module, 135-141

ports, hardcoding, 37

prioritizing tasks, Delayed Job, 235-237

proprietary objects, 10-16

publisher code, exiting, 173

Q–R

queue method, 171

queues

exchanges, compared, 191

unbinding, 196

QuickCert, SSL certificates, generating, 21-22

Quison, 180

RabbitMQ, 196. See also AMQP

installing, 165-166

stopping, 168

read method, 43

referenced objects, ID converters, 28

building, 33

built-in ID converters, 29-32

multiple ID converters, 34-35

renewing Rinda services, 70-75

custom Renewers, 73-74

nil, 72

Numeric, 71-72

SimpleRenewer class, 72-73

requests

life cycles, 9

pass by value, 16

pass by reference requests, 16

responses, life cycles, 9

results, caching, Memcached, 217-220

Rinda, 38, 75

callbacks, 53-55

implementing, 55-58

“Hello World” application, 38-44

observers, 53-55

RingServers, 38

building, 38-44

selecting, 63-70

security

ACLs (access control lists), 59-61

RingServers, 63-70

SSL (Secure Sockets Layer), 61-63

services, renewing, 70-75

Tuples, 40-44

hashes, 47-48

reading all in TupleSpaces, 52-53

reading from TupleSpaces, 45-47

taking from TupleSpaces, 48-52

writing to TupleSpaces, 44-45

TupleSpaces, 40-44

RingServers, 38, 123-126

building, 38-44

managing, RingyDingy, 79-85

selecting, 63-70

RingyDingy, 40, 79-86

distributed loggers, building, 82-84

“Hello World” application, 81-82

installing, 79

RingServers, managing, 79-85

Ruby Cookbook, 87

Ruby DRb, Java RMI, compared, 4-10

Ruby on Rails, xi

S

safe mode, levels, 18

scheduling tasks, Delayed Job, 235-237

Secure Sockets Layer (SSL). See SSL (Secure Sockets Layer)

security, 17-18

ACLs (access control lists), 18-20

Rinda

ACLs (access control lists), 59-61

RingServers, 63-70

SSL (Secure Sockets Layer), 61-63

SSL (Secure Sockets Layer), 21-28

certificate generation, 21-22

send_later method, 226

Delayed Job, 225-230

serialization, 9

servers

IP addresses, hardcoding, 37

ports, hardcoding, 37

security, 17-18

ACLs (access control lists), 18-20

SSL (Secure Sockets Layer), 21-28

services

borrowing, Distribunaut, 126-128

confusion, avoiding, 123-126

Rinda, renewing, 70-75

SimpleRenewer class, Rinda services, renewing, 72-73

SkyNet, MapReduce, 104

slow tasks, offloading, BackgrounDRb, 203-207, 209-211

SSL (Secure Sockets Layer), 21-28

certificates, generating, 21-22

Rinda, 61-63

Starfish, 87-89, 112

binary, 90-93

distributed loggers, building, 96-99

distributed queuing services, 99-103

“Hello World” application, 90-96

installing, 87

MapReduce, 103

ActiveRecord, 105-110

files, 110-112

Starling, 145-146, 149-152, 162

configuring, 149

distributed loggers, building, 157-158

distributed message queues, 145-147

“Hello World” application, 155-157

installing, 147

Memcached, compared, 158

statistics, retreiving, 158-161

statistics, retrieving, Starling, 158-161

stopping RabbitMQ, 168

T

Task class, 100

tasks

offloading, BackgrounDRb, 203-211

persisting tasks, BackgrounDRb, 213-217

prioritizing, Delayed Job, 235-237

scheduling, Delayed Job, 235-237

TokenWorker module, Politics, 135-141

topic queues, AMQP, 187-192

Tuples, 40-44, 123-126

hashes, 47-48

TupleSpaces

reading all, 52-53

reading from, 45-47

taking from, 48-52

writing to, 44-45

TupleSpaces, 40, 43-44

Tuples

reading all in, 52-53

reading to, 45-47

taking from, 48-52

writing from, 44-45

Twitter, Starling, 145

U–Z

unbinding queues, 196

User class, 11

“User Database Server” example, 11-16

UserServer class, writing, 11-12

worker method, 207

workers, custom workers, Delayed Job, 230-235

write method, 43

YAML, Starling, configuring, 149

Zygmuntowicz, Ezra, 201

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.164.141