did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780387238395

Distributed Network Systems

by ;
  • ISBN13:

    9780387238395

  • ISBN10:

    0387238395

  • Format: Hardcover
  • Copyright: 2004-12-30
  • Publisher: Springer-Verlag New York Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $159.99

Summary

This volume covers both theoretical and practical aspects of distributed computing. It describes the client-server model for developing distributed network systems, the communication paradigms used in a distributed network system, and the principles of reliability and security in the design of distributed network systems. Based on theoretical introductions, the book presents various implementation strategies and techniques for building distributed network systems, including examples in TCP/IP communications, the use of remote procedure call and remote method invocation techniques, and the development of web-based applications, distributed databases, and mobile computing systems.

Table of Contents

Preface xvi
Acknowledgements xx
Biography of Authors xxi
Table of Figures
xxii
Overview of Distributed Network Systems
1(14)
Distributed Systems
1(1)
Computer Networks
2(3)
Network History
2(1)
Network Architecture
3(1)
Network Fault Tolerance
4(1)
Protocols and QoS
5(1)
Software for Distributed Computing
6(4)
Traditional Client-Server Model
6(1)
Web-Based Distributed Computing Models
7(2)
Web-based Client-Server Computing
9(1)
The Agent-Based Computing Models
10(2)
Summary
12(3)
Exercises
13(2)
Modelling for Distributed Network Systems: The Client-Server Model
15(18)
Issues Leading to the Client-Server Model
15(1)
The Client-Server Model in a Distributed Computing System
16(2)
Basic Concepts
16(1)
Features and Problems of the Client-Server Model
17(1)
Cooperation between Clients and Servers
18(2)
Cooperation Type and Chained Server
18(1)
Multiple Servers
19(1)
Extensions to the Client-Server Model
20(4)
Agents and Indirect Client-Server Cooperation
20(2)
The Three-Tier Client-Server Architecture
22(2)
Service Discovery
24(4)
Hardwiring Computer Address
25(1)
Broadcast Approach
25(1)
Name Server Approach
26(1)
Broker-Based Location Lookup
27(1)
Client-Server Interoperability
28(1)
The Relationship
29(1)
Summary
30(3)
Exercises
30(3)
Communication Paradigms for Distributed Network Systems
33(32)
Introduction
33(1)
Message Passing Communication
34(10)
What is a Message?
34(2)
Message-Passing Mechanisms
36(1)
Basic Message-Passing Primitives
36(1)
Direct and Indirect Communication Ports
37(1)
Blocking versus Non-blocking Primitives
38(2)
Buffered versus Unbuffered Message Passing Primitives
40(2)
Unreliable versus Reliable Primitives
42(2)
Structured Forms of Message-Passing Based Communication
44(1)
Remote Procedure Calls
44(6)
Executing Remote Procedure Calls
44(2)
Basic Features and Properties
46(1)
Parameters and Results in RPCs
47(1)
Representation of Parameters and Results
47(1)
Marshalling Parameters and Results
48(1)
Client Server Binding
48(2)
Message Passing versus Remote Procedure Calls
50(1)
Group Communication
51(4)
Basic Concepts
51(1)
Group Structures
52(1)
Behaviour Classification of Process Groups
53(1)
Closed and Open Groups
53(1)
Group Membership Discovery and Operations
53(2)
Distributed Shared Memory
55(8)
What is a Distributed Shared Memory (DSM) System?
55(2)
Design and Implementation Issues
57(1)
Structure
57(1)
Synchronization Model
58(1)
Consistency
58(1)
Update Options
58(1)
Granularity
59(1)
Thrashing
60(1)
Consistency Models
60(1)
Sequential Consistency Model
60(1)
Weak Consistency Model
61(1)
Release Consistency Model
61(1)
Discussion
62(1)
Summary
63(2)
Exercises
64(1)
Internetworking
65(14)
Communication Protocol Architectures
65(4)
The OSI Protocol Architecture
65(3)
Internet Architecture
68(1)
TCP/IP Protocol Suite
69(6)
Communication Protocols
70(1)
Network Layer Protocol: IP
71(1)
IP Address
71(2)
Domain Name System
73(1)
Transport Layer Protocol: TCP and UDP
73(2)
The Next Generation Internet Protocol: IPv6
75(2)
Why IPv6?
75(1)
IPv6 Features
76(1)
Summary
77(2)
Exercises
77(2)
Interprocess Communication using Message Passing
79(26)
Developing Distributed Applications Using Message Passing
79(2)
Communication Services in Message Passing
79(1)
Connection-Oriented and Connectionless Communications
79(1)
Reliable Communication
80(1)
A Generic Framework for Distributed Applications
81(1)
Sockets
81(5)
Socket Abstraction
82(1)
BSD Internet Domain Sockets
83(1)
Socket Model
83(1)
Internet Domain Socket Naming
84(1)
Socket Types
85(1)
Basic Socket System Calls
86(8)
Some Special Functions
87(3)
Socket Creation
90(1)
Name Binding
90(1)
Connection Establishment
91(1)
Transfer Data and Discard Sockets
92(2)
Examples in C
94(8)
Using Stream Sockets: A Simple Example
94(4)
Using Datagram Sockets: A Simple Example
98(4)
Summary
102(3)
Exercises
102(3)
TCP/UDP Communication in Java
105(30)
Java Sockets
105(4)
Java Net Package
105(1)
The Socket Class
106(1)
The ServerSocket Class
107(2)
Building TCP Clients and Servers
109(3)
Essential Components of Communication
109(1)
Implementing a TCP Client Program
109(2)
Implementing a TCP Server Program
111(1)
Examples in Java
112(7)
Exchange of Multiple Messages
112(3)
Executing the Programs on Internet Hosts
115(3)
Supporting Multiple Clients
118(1)
A More Complex Example - A Java Messaging Program using TCP
119(8)
The Design
120(1)
The Implementation
121(1)
The Programs
122(5)
Datagram Communications in Java
127(3)
Why Datagram Communication ?
127(1)
Java Datagram-based Classes
128(2)
Building UDP Servers and Clients
130(3)
Sending and Receiving UDP Datagrams
130(1)
Datagram Server
131(1)
Datagram Client
132(1)
Summary
133(2)
Exercises
133(2)
Interprocess Communication using RPC
135(40)
Distributed Computing Environment (DCE)
135(10)
The Architecture of DCE
135(2)
The Role of RPC
137(2)
The DCE Services
139(1)
Directory Services
140(1)
Security Services
141(1)
Time Services
142(1)
Distributed File Services
143(2)
The DCE/RPC
145(6)
DCE/RPC Facility
146(1)
DCE Application Development
146(1)
Location Broker
147(1)
RPC Handle
147(1)
Concurrent Programming Support
148(1)
Related Tools
149(1)
Exception Handling
150(1)
SUN/RPC
151(4)
Interface Definition Language
151(2)
Security Services
153(1)
Some Issues
154(1)
Call Semantics
154(1)
Exception Handling
154(1)
Client-Server Binding
154(1)
Critiques of Sun RPC
155(1)
The Simple RPC
155(8)
An Introduction of SRPC
155(2)
Installation
157(1)
The SRPC System Architecture
157(1)
The System Library
157(1)
The Location Server
158(1)
The Stub and Driver Generator
159(1)
Syntax
159(1)
Semantics
160(1)
Implementation
161(1)
An Application Example
162(1)
Remote Method Invocation (RMI)
163(4)
RMI Architecture
163(1)
RMI Implementation
164(3)
Interfaces and Classes
167(1)
An Interesting RMI Application
167(5)
Summary
172(3)
Exercises
173(2)
Group Communications
175(38)
Introduction
175(1)
Features of Group Communication
176(4)
Message Delivery Semantics
177(1)
Message Response Semantics
177(1)
Message Ordering in Group Communication
178(2)
Reliable Multicast Protocol
180(2)
Reliable Multicast System
180(1)
Design Issues
181(1)
Multicast Approaches
182(4)
Centralized Approach
182(3)
Symmetrical Approach (Decentralized)
185(1)
Two-phase Approach
185(1)
Multicast in Java
186(4)
Total Ordered Multicast Protocol based on a Logical Ring
190(10)
Achieving Total Ordering
190(2)
Atomic Message Delivery
192(2)
Membership
194(1)
Membership Construction
194(1)
Dynamic Membership
195(1)
Fault Tolerance
196(1)
Single Member Failure
196(2)
Multiple Failures
198(1)
Network Partitioning
198(1)
Efficiency
199(1)
Implementation Issues
200(9)
System Structure and Communication Assumptions
201(1)
State Machine Approach for Implementing RMP
202(1)
Message Packet and Control Information
203(2)
Ordering Protocol
205(2)
Membership Protocol
207(2)
Summary
209(4)
Exercises
209(4)
Reliability and Replication Techniques
213(42)
Basic Concepts
213(5)
Fault Tolerance
213(3)
Reliability and Availability
216(1)
Failure Classification
217(1)
Techniques to Achieve Reliability
218(6)
Redundancy
218(2)
Fault Avoidance Techniques
220(1)
Fault Detection Techniques
220(1)
Fault Tolerance Techniques
221(3)
Software Fault Tolerance
224(3)
Techniques for Software Fault-tolerance
225(2)
Reliability Modelling
227(6)
Combinatorial Models
227(3)
Markov Models
230(1)
Fault Coverage and Its Impact on Reliability
231(1)
M-of-N Systems
232(1)
Fault Tolerant Distributed Algorithms
233(7)
Distributed Mutual Exclusion
233(3)
Election Algorithms
236(1)
Deadlock Detection and Prevention
236(1)
Distributed Deadlock Detection
237(2)
Distributed Deadlock Prevention
239(1)
Replication and Reliability
240(2)
Replication Schemes
242(7)
Case Study 1: The Primary-Backup Scheme
243(2)
Case Study 2: The Active Replication Scheme
245(2)
Case Study 3: Two Particular Replication Schemes
247(2)
The Primary-Peer Replication Scheme
249(2)
Description of the Scheme
249(2)
Replication Transparency
251(1)
Replication Consistency
251(2)
Summary
253(2)
Exercises
253(2)
Security
255(40)
Secure Networks
255(1)
What is a Secure Network?
255(1)
Integrity Mechanisms and Access Control
256(1)
Data Encryption
256(5)
Encryption Principles
256(3)
Basic Encryption Techniques
259(1)
Code Shifting
259(1)
Code Mappings
260(1)
Key Application
260(1)
Bit Shifting
261(1)
Cracking the Code
261(2)
Cracking Organizations
261(1)
Cracking Methods
262(1)
Security Mechanisms on the Internet
263(2)
Digital Signatures
263(1)
Packet Filtering
264(1)
Internet Firewall
264(1)
Distributed Denial of Service Attacks
265(6)
Launching a DDoS Attack
265(2)
Evolution of DDoS Attacks
267(1)
Classification of DDoS Attacks
268(2)
Some Key Technical Methods of DDoS Tools
270(1)
Passive Defense against DDoS Attacks
271(11)
Passive Defense Cycle
271(1)
Current Passive Defense Mechanisms
271(2)
Detecting Mechanisms
273(2)
Reacting Mechanisms
275(5)
SYN Attacks and Its Countermeasures
280(1)
Limitation of Passive Defense
281(1)
Active Defense against DDoS Attacks
282(10)
Active Defense Cycle
282(1)
Objectives of Active Defense
283(1)
Current Techniques Applicable in Active Defense
284(6)
Comparison between Passive and Active Defense
290(2)
Major Challenges of Active Defense
292(1)
Summary
292(3)
Exercises
293(2)
A Reactive System Architecture for Fault-Tolerant Computing
295(30)
Introduction
295(1)
The Reactive System Model
296(5)
The Generic Reactive System Architecture
296(1)
Reactive Modules
297(1)
DMM Agents
298(1)
Sensor Actors
299(1)
Acutator Actors
299(1)
Communication Protocols
299(1)
Simple and Composite Entities
300(1)
Group Communication Services
301(4)
Ordering Constraints
301(1)
Fault Tolerance in the Reactive System
302(1)
Atomic Multicast Service
303(1)
Membership Management
304(1)
Implementation Issues
305(6)
Multicast Datagram Communication
305(1)
Stream-based Communication
306(1)
Total Ordering Protocol
307(1)
Multicasting Atomicity Protocol
308(2)
DMM Classes
310(1)
Sensor/Actuator Classes
311(1)
Discussion
311(1)
A Fault-Tolerant Application
311(12)
The Replicated Database System
312(1)
Failure Scenario
313(1)
Crash Failure
313(1)
The Network Partitioning Failure
314(1)
Fault Detection
315(1)
Crash Failure
315(2)
Network Partitioning Failure
317(3)
Fault Tolerance
320(2)
Remarks
322(1)
Summary
323(2)
Exercises
323(2)
Web-Based Databases
325(44)
Introduction
325(3)
Architectures of WBDB
328(3)
Two-tier Architecture of WBDB
329(1)
Three-tier Architecture of WBDB
329(2)
Hybrid Architecture of WBDB
331(1)
Web Based Database Access Technologies
331(9)
Generic SQL
332(1)
Generation 1 (Traditional Web): HTML, HTTP, CGI
332(2)
Generation 2 (Faster and More interactive Web): JavaScript, Serverside API
334(1)
Generation 3 (Java-based Web): Java, JDBC
335(1)
JAVA and JDBC
335(1)
Servlet
336(1)
A New Generation: XML, Client/Mobile Agents/Server
337(1)
XML-based WBDB
337(1)
Mobile Agent Involved Architecture
338(1)
Other Useful Techniques
339(1)
CORBA
339(1)
RMI
340(1)
Challenges
340(4)
User Interfaces
341(1)
Application Server
342(1)
Database Server
342(1)
Other Challenges
343(1)
A Layered Framework for WBDBs
344(2)
Description of Layers
344(2)
Framework Workflow
346(1)
Developing Web-Based Databases
346(20)
The Java Database Connectivity (JDBC) Package
347(1)
Steps for Developing Web-based Databases
348(1)
Preparing the Database
348(1)
Creating the Database Tables
348(2)
Populating the Tables
350(3)
Printing the Columns of Tables
353(1)
Select Statements (one table)
354(1)
Developing A JDBC Application
355(11)
Summary
366(3)
Exercises
367(2)
Mobile Computing
369(38)
Introduction
369(2)
Overview of Mobile IP
371(7)
Agent Advertisement and Solicitation
378(6)
Foreign Agent and Home Agent
381(1)
Mobile Node Considerations
382(1)
Move Detection
383(1)
Returning Home
384(1)
Registration
384(6)
Registration Overview
384(2)
Responses to Registration Request and Authentication
386(1)
Registration Related Message Format
387(1)
Registration Request
387(1)
Registration Reply
388(2)
Mobile Routing (Tunnelling)
390(6)
Packet Routing when Mobile Node is at Home
391(1)
Packet Routing when Mobile Node is on a Foreign Link
391(1)
Unicast Datagram Routing
391(3)
Multicast Datagram Packets Routing
394(1)
Mobile Routers and Networks
394(2)
Case Study: Mobile Multicast using Anycasting
396(9)
Problems with Mobile IP
396(2)
Mobile Multicast Protocol (MMP)
398(4)
Performance
402(1)
Analysis
402(1)
Simulation Model
403(1)
Simulation Results
404(1)
Summary
405(2)
Exercises
405(2)
Distributed Network Systems: Case Studies
407(28)
Distributed File Systems
407(5)
What is a Distributed File System
407(1)
A Distributed File System Example -- NFS
408(1)
Processing User Calls
409(1)
Exporting Files
410(1)
The Role of RPC
411(1)
Remarks
412(1)
Network Operating Systems: Unix/Linux
412(7)
UNIX System Concepts
412(1)
The File System
412(1)
Process Management
413(1)
The Shell
413(1)
The UNIX Processes
414(1)
Process Address Spaces
414(1)
Process Management System Calls
414(1)
Process Context and Context-Switching
415(1)
Linux as a UNIX Platform
416(1)
Linux Networking
417(1)
TCP/IP
417(1)
PPP and SLIP
418(1)
File Sharing with NFS
418(1)
UUCP
418(1)
Software Development in Linux
419(1)
CORBA
419(8)
What is CORBA?
419(1)
The CORBA Architecture
420(4)
Interface Definition Language (IDL)
424(1)
An Example of CORBA for Java
425(2)
DCOM
427(5)
COM and DCOM
427(1)
DCOM Facilities and Services
428(1)
Location Transparency
428(1)
Dynamic and Remote Object Activation
429(1)
Security
429(1)
Interfaces
430(1)
Binary Interoperability
431(1)
Applying DCOM
432(1)
Summary
432(3)
Exercises
432(3)
Distributed Network Systems: Current Development
435(37)
Cluster Computing
435(5)
Cluster Operating Systems
436(3)
Reliable Server Clusters
439(1)
Grid Computing
440(21)
What is Grid Computing?
440(1)
Background to the Grid
441(3)
Grid Architectures and Infrastructures
444(1)
Grid Architectures
444(1)
Grid Components
444(3)
Layered Grid Architecture: The Globus Architecture
447(2)
Virtual Machine Environment: The Legion Architecture
449(3)
Cycle Scavenging Schemes: The Condor System
452(1)
Data Grids
453(1)
Kangaroo
454(1)
Legion
454(1)
Storage Resource Broker
455(1)
Globus Data Grid Tools
455(2)
Research Issues and Challenges for Grids
457(1)
Software Engineering Problems
457(1)
Load Balancing and Scheduling
458(1)
Autonomic Computing
459(1)
Replication
459(2)
Peer-to-Peer (P2P) Computing
461(5)
What is Peer-to-Peer Computing?
461(1)
Possible Application Areas for P2P Systems
462(1)
Some Existing P2P Projects
462(2)
P2P File Sharing and its Legal implications
464(1)
P2P File Sharing Systems
464(1)
Legal implications for P2P File Sharing
465(1)
Some Challenges for P2P Computing
466(1)
Pervasive Computing
466(4)
Pervasive Computing Characteristics
466(2)
Elite Care: An Application Using Pervasive Computing
468(1)
The Challenges for Pervasive Computing
469(1)
Summary
470(2)
Exercises
470(2)
References 472(37)
Index 509

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program