Practical Distributed Processing

by ;
Format: Paperback
Pub. Date: 2007-09-21
Publisher(s): Springer-Nature New York Inc
  • Free Shipping Icon

    This Item Qualifies for Free Shipping!*

    *Excludes marketplace orders.

List Price: $62.95

Rent Textbook

Select for Price
There was a problem. Please try again later.

Rent Digital

Rent Digital Options
Online:30 Days access
Downloadable:30 Days
$19.80
Online:60 Days access
Downloadable:60 Days
$26.40
Online:90 Days access
Downloadable:90 Days
$33.00
Online:120 Days access
Downloadable:120 Days
$39.60
Online:180 Days access
Downloadable:180 Days
$42.90
Online:1825 Days access
Downloadable:Lifetime Access
$65.99
$42.90

New Textbook

We're Sorry
Sold Out

Used Textbook

We're Sorry
Sold Out

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Distributed processing has a strong theoretical foundation, but many day-to-day practitioners make limited use of the advantages this theory can give them. The result includes unreliable systems with obscure and intermittent failures that can cost time, money and in extreme cases, lives. Reliable construction of distributed and concurrent systems must incorporate theory in practice.This book provides a concise presentation of the theory closely linked to the practical realisation of these concepts. This easy-to-follow textbook focuses on practical issues of building working distributed systems and gives an overview of the basic theory, principles and techniques, whilst illustrating how these fit together, via the process of building interesting, non-trivial systems.Topics and features:'¢ Provides all the elements needed for a complete development of a distributed system, from theory to practice'¢ Offers an integrated approach to the field of distributed processing, and presents a coherent view of the field as a practical subject'¢ Links theoretical models of concurrency with practical realisation of systems'¢ Contains many examples from C, Java Ada and Eiffel, as well as case studies'¢ Considers important aspects of the engineering process, including models that can be used to assess and analyse parts of distributed systems, implementation techniques, as well as protocols and security concerns'¢ Many pedagogical tools: chapter summaries, exercises (with sketch solutions and hints), comprehensive glossary, Internet support for students and instructors, accessible at http://www.scm.tees.ac.uk/p.j.brooke/dpb/.'¢ Ideal for use by lecturers as a coherent one-term course or module on distributed systemsWritten with undergraduates in mind, especially relevant for intermediate-level students, this user-friendly textbook will prove a clear and comprehensive guide to the topic and the foundations for a methodological approach to building these systems. Dr Phil Brooke is a lecturer in computer science at the University of Teesside, and Dr Richard Paige is a lecturer in computer science at the University of York. Both have extensive teaching experience, from which this textbook has grown.

Author Biography

Phil Brooke is a lecturer in computer science at the University of Teesside.

Table of Contents

Prefacep. v
Contentsp. ix
What is Distributed Processing?p. 1
Overviewp. 1
Evolution of computing and networkingp. 2
Distributed processingp. 3
Application areasp. 4
Modelsp. 4
Mobile codep. 5
Challenges with distributed systemsp. 6
Summaryp. 7
Exercisesp. 8
Concepts of Concurrencyp. 11
Overviewp. 11
Architectures in concurrencyp. 12
Naming and addressingp. 12
Examples of names and addressesp. 13
Address mapping mechanismsp. 14
Sharing and synchronisationp. 16
Allocation of resourcesp. 17
Example: File synchronisationp. 17
Low-level synchronisationp. 18
Race conditionsp. 18
Mutual exclusionp. 19
Semaphoresp. 20
Monitorsp. 23
Rendezvousp. 25
Timing and real-time systemsp. 26
Dependabilityp. 26
Types of faults and failuresp. 27
Responding to failurep. 28
Server typesp. 28
Clusters, load-balancing and Gridsp. 29
Summaryp. 30
Exercisesp. 31
Models of Concurrencyp. 33
Overviewp. 33
State machines and automatap. 34
SPIN and Promelap. 35
Process algebrasp. 36
Communicating Sequential Processesp. 37
¿-calculus and mobilityp. 39
Lindap. 41
JavaSpacesp. 42
Deadlock revisitedp. 43
Summaryp. 45
Exercisesp. 47
Concurrency in Operating Systemsp. 49
Overviewp. 49
Why use operating systems?p. 50
Processes and threadsp. 51
Concept of a processp. 51
User and supervisor modes in CPUsp. 52
Multitaskingp. 52
Threads and lightweight processesp. 54
Process and thread examples in Linuxp. 54
Forkp. 54
Pthreadsp. 56
Tasking in Adap. 58
Summaryp. 60
Exercisesp. 60
Interprocess Communicationp. 63
Overviewp. 63
Pthreads IPC examples in Linuxp. 64
Mutexes and shared memoryp. 64
Semaphoresp. 66
Condition variablesp. 68
Mutual exclusion in Adap. 71
BSD socketsp. 74
TCP client-server examplep. 75
A simple TCP serverp. 75
String termination and networksp. 80
A simple TCP clientp. 81
TCP client with name lookupp. 85
UDP client-server examplep. 85
UDP serverp. 85
UDP clientp. 87
Two-way communicationsp. 89
A forking TCP serverp. 91
Blocking and selectp. 94
Select for two-way communicationsp. 95
Select for serving multiple connectionsp. 97
Fault tolerance and IPC timingp. 97
Summaryp. 98
Exercisesp. 98
Protocolsp. 101
Overviewp. 101
Purpose of protocolsp. 102
Issues in protocolsp. 102
High- and low-level protocolsp. 102
Messagesp. 105
Platform dependencep. 106
Fault tolerancep. 107
Defining protocolsp. 109
Encodingp. 111
Notationp. 112
Example: HTTPp. 112
Example: SMTPp. 113
Example: Alternating bit protocolp. 114
Summaryp. 117
Exercisesp. 117
Securityp. 121
Overviewp. 121
Definitions, concepts and terminologyp. 122
Risk, threat and vulnerabilityp. 122
Objectives of securityp. 122
Designp. 123
Security issues in distributed systemsp. 124
Cryptographyp. 126
Cryptography example: Digital signaturesp. 128
Key managementp. 128
Matching a public key to a userp. 129
Case study: Needham-Schroederp. 129
Practical issuesp. 131
C programmingp. 131
Web applicationsp. 132
Operating system and network issuesp. 133
SSLp. 133
Using SSLp. 134
Summaryp. 136
Exercisesp. 136
Languages and Distributed Processingp. 139
Overviewp. 139
Suitability of languagesp. 140
Distributed processing in Cp. 141
C generallyp. 141
Debugging Cp. 142
Distributed processing in Javap. 143
Overview: the RMI modelp. 144
Examplep. 145
Alternativesp. 147
Distributed processing in Adap. 148
Distributed processing in Eiffel and SCOOPp. 149
SCOOP: A concurrency model for Eiffelp. 151
Related work and prototypesp. 152
Comparison of languagesp. 153
Language paradigmp. 155
Typing disciplinep. 156
Networking supportp. 156
Concurrency supportp. 157
Interprocess communication supportp. 158
Summaryp. 158
Exercisesp. 159
Building Distributed Systemsp. 161
Overviewp. 161
Methodp. 162
Case study: Emailp. 163
Typical use and requirementsp. 163
Platform and language requirementsp. 164
Architecturep. 165
Protocols and formatsp. 165
Example: Sending email using PHPp. 168
Case study: Secure shellp. 170
Typical use and requirementsp. 171
Platform requirementsp. 172
Architecturep. 172
Protocolsp. 173
Case study: Version control and synchronisationp. 174
Typical use and requirementsp. 175
Platform requirementsp. 176
Architecturep. 177
Protocolsp. 178
Case study: Web applicationsp. 178
Summaryp. 180
Exercisesp. 180
Case Study: A Networked Gamep. 183
Motivation and organisationp. 183
Outline structure and basic requirementsp. 184
Analysis and designp. 185
Outline use casesp. 186
Detailed design issuesp. 189
Securityp. 190
Protocolp. 191
Protocol messagesp. 191
Client loginp. 192
Map server start-up and shutdownp. 192
UDP messagesp. 194
Remarks on protocolp. 196
Data viewp. 197
Implementationp. 198
Admin serverp. 199
Map serverp. 200
Player clientp. 200
Running the examplep. 201
Testingp. 202
Summaryp. 202
Exercisesp. 203
The Endp. 205
Summaryp. 205
Suggestionsp. 207
Future directionsp. 209
Interesting projectsp. 210
Exercises: Hints and Commentsp. 213
About the Example Codep. 245
Bibliographyp. 247
Glossaryp. 253
Indexp. 267
Table of Contents provided by Publisher. All Rights Reserved.

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.