Preface |
|
xvi | |
Acknowledgements |
|
xx | |
Biography of Authors |
|
xxi | |
|
|
xxii | |
|
Overview of Distributed Network Systems |
|
|
1 | (14) |
|
|
1 | (1) |
|
|
2 | (3) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
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) |
|
|
12 | (3) |
|
|
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) |
|
|
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) |
|
|
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) |
|
|
24 | (4) |
|
Hardwiring Computer Address |
|
|
25 | (1) |
|
|
25 | (1) |
|
|
26 | (1) |
|
Broker-Based Location Lookup |
|
|
27 | (1) |
|
Client-Server Interoperability |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (3) |
|
|
30 | (3) |
|
Communication Paradigms for Distributed Network Systems |
|
|
33 | (32) |
|
|
33 | (1) |
|
Message Passing Communication |
|
|
34 | (10) |
|
|
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) |
|
|
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) |
|
|
48 | (2) |
|
Message Passing versus Remote Procedure Calls |
|
|
50 | (1) |
|
|
51 | (4) |
|
|
51 | (1) |
|
|
52 | (1) |
|
Behaviour Classification of Process Groups |
|
|
53 | (1) |
|
|
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) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
60 | (1) |
|
Sequential Consistency Model |
|
|
60 | (1) |
|
|
61 | (1) |
|
Release Consistency Model |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (2) |
|
|
64 | (1) |
|
|
65 | (14) |
|
Communication Protocol Architectures |
|
|
65 | (4) |
|
The OSI Protocol Architecture |
|
|
65 | (3) |
|
|
68 | (1) |
|
|
69 | (6) |
|
|
70 | (1) |
|
Network Layer Protocol: IP |
|
|
71 | (1) |
|
|
71 | (2) |
|
|
73 | (1) |
|
Transport Layer Protocol: TCP and UDP |
|
|
73 | (2) |
|
The Next Generation Internet Protocol: IPv6 |
|
|
75 | (2) |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
77 | (2) |
|
|
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) |
|
|
80 | (1) |
|
A Generic Framework for Distributed Applications |
|
|
81 | (1) |
|
|
81 | (5) |
|
|
82 | (1) |
|
BSD Internet Domain Sockets |
|
|
83 | (1) |
|
|
83 | (1) |
|
Internet Domain Socket Naming |
|
|
84 | (1) |
|
|
85 | (1) |
|
Basic Socket System Calls |
|
|
86 | (8) |
|
|
87 | (3) |
|
|
90 | (1) |
|
|
90 | (1) |
|
|
91 | (1) |
|
Transfer Data and Discard Sockets |
|
|
92 | (2) |
|
|
94 | (8) |
|
Using Stream Sockets: A Simple Example |
|
|
94 | (4) |
|
Using Datagram Sockets: A Simple Example |
|
|
98 | (4) |
|
|
102 | (3) |
|
|
102 | (3) |
|
TCP/UDP Communication in Java |
|
|
105 | (30) |
|
|
105 | (4) |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
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) |
|
|
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) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
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) |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
133 | (2) |
|
|
133 | (2) |
|
Interprocess Communication using RPC |
|
|
135 | (40) |
|
Distributed Computing Environment (DCE) |
|
|
135 | (10) |
|
|
135 | (2) |
|
|
137 | (2) |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
141 | (1) |
|
|
142 | (1) |
|
Distributed File Services |
|
|
143 | (2) |
|
|
145 | (6) |
|
|
146 | (1) |
|
DCE Application Development |
|
|
146 | (1) |
|
|
147 | (1) |
|
|
147 | (1) |
|
Concurrent Programming Support |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
151 | (4) |
|
Interface Definition Language |
|
|
151 | (2) |
|
|
153 | (1) |
|
|
154 | (1) |
|
|
154 | (1) |
|
|
154 | (1) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
155 | (8) |
|
|
155 | (2) |
|
|
157 | (1) |
|
The SRPC System Architecture |
|
|
157 | (1) |
|
|
157 | (1) |
|
|
158 | (1) |
|
The Stub and Driver Generator |
|
|
159 | (1) |
|
|
159 | (1) |
|
|
160 | (1) |
|
|
161 | (1) |
|
|
162 | (1) |
|
Remote Method Invocation (RMI) |
|
|
163 | (4) |
|
|
163 | (1) |
|
|
164 | (3) |
|
|
167 | (1) |
|
An Interesting RMI Application |
|
|
167 | (5) |
|
|
172 | (3) |
|
|
173 | (2) |
|
|
175 | (38) |
|
|
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) |
|
|
181 | (1) |
|
|
182 | (4) |
|
|
182 | (3) |
|
Symmetrical Approach (Decentralized) |
|
|
185 | (1) |
|
|
185 | (1) |
|
|
186 | (4) |
|
Total Ordered Multicast Protocol based on a Logical Ring |
|
|
190 | (10) |
|
|
190 | (2) |
|
|
192 | (2) |
|
|
194 | (1) |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
|
196 | (2) |
|
|
198 | (1) |
|
|
198 | (1) |
|
|
199 | (1) |
|
|
200 | (9) |
|
System Structure and Communication Assumptions |
|
|
201 | (1) |
|
State Machine Approach for Implementing RMP |
|
|
202 | (1) |
|
Message Packet and Control Information |
|
|
203 | (2) |
|
|
205 | (2) |
|
|
207 | (2) |
|
|
209 | (4) |
|
|
209 | (4) |
|
Reliability and Replication Techniques |
|
|
213 | (42) |
|
|
213 | (5) |
|
|
213 | (3) |
|
Reliability and Availability |
|
|
216 | (1) |
|
|
217 | (1) |
|
Techniques to Achieve Reliability |
|
|
218 | (6) |
|
|
218 | (2) |
|
Fault Avoidance Techniques |
|
|
220 | (1) |
|
Fault Detection Techniques |
|
|
220 | (1) |
|
Fault Tolerance Techniques |
|
|
221 | (3) |
|
|
224 | (3) |
|
Techniques for Software Fault-tolerance |
|
|
225 | (2) |
|
|
227 | (6) |
|
|
227 | (3) |
|
|
230 | (1) |
|
Fault Coverage and Its Impact on Reliability |
|
|
231 | (1) |
|
|
232 | (1) |
|
Fault Tolerant Distributed Algorithms |
|
|
233 | (7) |
|
Distributed Mutual Exclusion |
|
|
233 | (3) |
|
|
236 | (1) |
|
Deadlock Detection and Prevention |
|
|
236 | (1) |
|
Distributed Deadlock Detection |
|
|
237 | (2) |
|
Distributed Deadlock Prevention |
|
|
239 | (1) |
|
Replication and Reliability |
|
|
240 | (2) |
|
|
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) |
|
|
251 | (1) |
|
|
251 | (2) |
|
|
253 | (2) |
|
|
253 | (2) |
|
|
255 | (40) |
|
|
255 | (1) |
|
What is a Secure Network? |
|
|
255 | (1) |
|
Integrity Mechanisms and Access Control |
|
|
256 | (1) |
|
|
256 | (5) |
|
|
256 | (3) |
|
Basic Encryption Techniques |
|
|
259 | (1) |
|
|
259 | (1) |
|
|
260 | (1) |
|
|
260 | (1) |
|
|
261 | (1) |
|
|
261 | (2) |
|
|
261 | (1) |
|
|
262 | (1) |
|
Security Mechanisms on the Internet |
|
|
263 | (2) |
|
|
263 | (1) |
|
|
264 | (1) |
|
|
264 | (1) |
|
Distributed Denial of Service Attacks |
|
|
265 | (6) |
|
|
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) |
|
|
271 | (1) |
|
Current Passive Defense Mechanisms |
|
|
271 | (2) |
|
|
273 | (2) |
|
|
275 | (5) |
|
SYN Attacks and Its Countermeasures |
|
|
280 | (1) |
|
Limitation of Passive Defense |
|
|
281 | (1) |
|
Active Defense against DDoS Attacks |
|
|
282 | (10) |
|
|
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) |
|
|
292 | (3) |
|
|
293 | (2) |
|
A Reactive System Architecture for Fault-Tolerant Computing |
|
|
295 | (30) |
|
|
295 | (1) |
|
The Reactive System Model |
|
|
296 | (5) |
|
The Generic Reactive System Architecture |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
299 | (1) |
|
|
299 | (1) |
|
|
299 | (1) |
|
Simple and Composite Entities |
|
|
300 | (1) |
|
Group Communication Services |
|
|
301 | (4) |
|
|
301 | (1) |
|
Fault Tolerance in the Reactive System |
|
|
302 | (1) |
|
|
303 | (1) |
|
|
304 | (1) |
|
|
305 | (6) |
|
Multicast Datagram Communication |
|
|
305 | (1) |
|
Stream-based Communication |
|
|
306 | (1) |
|
|
307 | (1) |
|
Multicasting Atomicity Protocol |
|
|
308 | (2) |
|
|
310 | (1) |
|
|
311 | (1) |
|
|
311 | (1) |
|
A Fault-Tolerant Application |
|
|
311 | (12) |
|
The Replicated Database System |
|
|
312 | (1) |
|
|
313 | (1) |
|
|
313 | (1) |
|
The Network Partitioning Failure |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
315 | (2) |
|
Network Partitioning Failure |
|
|
317 | (3) |
|
|
320 | (2) |
|
|
322 | (1) |
|
|
323 | (2) |
|
|
323 | (2) |
|
|
325 | (44) |
|
|
325 | (3) |
|
|
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) |
|
|
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) |
|
|
335 | (1) |
|
|
336 | (1) |
|
A New Generation: XML, Client/Mobile Agents/Server |
|
|
337 | (1) |
|
|
337 | (1) |
|
Mobile Agent Involved Architecture |
|
|
338 | (1) |
|
|
339 | (1) |
|
|
339 | (1) |
|
|
340 | (1) |
|
|
340 | (4) |
|
|
341 | (1) |
|
|
342 | (1) |
|
|
342 | (1) |
|
|
343 | (1) |
|
A Layered Framework for WBDBs |
|
|
344 | (2) |
|
|
344 | (2) |
|
|
346 | (1) |
|
Developing Web-Based Databases |
|
|
346 | (20) |
|
The Java Database Connectivity (JDBC) Package |
|
|
347 | (1) |
|
Steps for Developing Web-based Databases |
|
|
348 | (1) |
|
|
348 | (1) |
|
Creating the Database Tables |
|
|
348 | (2) |
|
|
350 | (3) |
|
Printing the Columns of Tables |
|
|
353 | (1) |
|
Select Statements (one table) |
|
|
354 | (1) |
|
Developing A JDBC Application |
|
|
355 | (11) |
|
|
366 | (3) |
|
|
367 | (2) |
|
|
369 | (38) |
|
|
369 | (2) |
|
|
371 | (7) |
|
Agent Advertisement and Solicitation |
|
|
378 | (6) |
|
Foreign Agent and Home Agent |
|
|
381 | (1) |
|
Mobile Node Considerations |
|
|
382 | (1) |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
384 | (6) |
|
|
384 | (2) |
|
Responses to Registration Request and Authentication |
|
|
386 | (1) |
|
Registration Related Message Format |
|
|
387 | (1) |
|
|
387 | (1) |
|
|
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) |
|
|
391 | (3) |
|
Multicast Datagram Packets Routing |
|
|
394 | (1) |
|
Mobile Routers and Networks |
|
|
394 | (2) |
|
Case Study: Mobile Multicast using Anycasting |
|
|
396 | (9) |
|
|
396 | (2) |
|
Mobile Multicast Protocol (MMP) |
|
|
398 | (4) |
|
|
402 | (1) |
|
|
402 | (1) |
|
|
403 | (1) |
|
|
404 | (1) |
|
|
405 | (2) |
|
|
405 | (2) |
|
Distributed Network Systems: Case Studies |
|
|
407 | (28) |
|
|
407 | (5) |
|
What is a Distributed File System |
|
|
407 | (1) |
|
A Distributed File System Example -- NFS |
|
|
408 | (1) |
|
|
409 | (1) |
|
|
410 | (1) |
|
|
411 | (1) |
|
|
412 | (1) |
|
Network Operating Systems: Unix/Linux |
|
|
412 | (7) |
|
|
412 | (1) |
|
|
412 | (1) |
|
|
413 | (1) |
|
|
413 | (1) |
|
|
414 | (1) |
|
|
414 | (1) |
|
Process Management System Calls |
|
|
414 | (1) |
|
Process Context and Context-Switching |
|
|
415 | (1) |
|
|
416 | (1) |
|
|
417 | (1) |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
418 | (1) |
|
|
418 | (1) |
|
Software Development in Linux |
|
|
419 | (1) |
|
|
419 | (8) |
|
|
419 | (1) |
|
|
420 | (4) |
|
Interface Definition Language (IDL) |
|
|
424 | (1) |
|
An Example of CORBA for Java |
|
|
425 | (2) |
|
|
427 | (5) |
|
|
427 | (1) |
|
DCOM Facilities and Services |
|
|
428 | (1) |
|
|
428 | (1) |
|
Dynamic and Remote Object Activation |
|
|
429 | (1) |
|
|
429 | (1) |
|
|
430 | (1) |
|
|
431 | (1) |
|
|
432 | (1) |
|
|
432 | (3) |
|
|
432 | (3) |
|
Distributed Network Systems: Current Development |
|
|
435 | (37) |
|
|
435 | (5) |
|
Cluster Operating Systems |
|
|
436 | (3) |
|
|
439 | (1) |
|
|
440 | (21) |
|
|
440 | (1) |
|
|
441 | (3) |
|
Grid Architectures and Infrastructures |
|
|
444 | (1) |
|
|
444 | (1) |
|
|
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) |
|
|
453 | (1) |
|
|
454 | (1) |
|
|
454 | (1) |
|
|
455 | (1) |
|
|
455 | (2) |
|
Research Issues and Challenges for Grids |
|
|
457 | (1) |
|
Software Engineering Problems |
|
|
457 | (1) |
|
Load Balancing and Scheduling |
|
|
458 | (1) |
|
|
459 | (1) |
|
|
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) |
|
|
464 | (1) |
|
Legal implications for P2P File Sharing |
|
|
465 | (1) |
|
Some Challenges for P2P Computing |
|
|
466 | (1) |
|
|
466 | (4) |
|
Pervasive Computing Characteristics |
|
|
466 | (2) |
|
Elite Care: An Application Using Pervasive Computing |
|
|
468 | (1) |
|
The Challenges for Pervasive Computing |
|
|
469 | (1) |
|
|
470 | (2) |
|
|
470 | (2) |
References |
|
472 | (37) |
Index |
|
509 | |