Distributed systems principles and paradigms (2nd edition)

705 697 0
Distributed systems  principles and paradigms (2nd edition)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com DISTRIBUTED SYSTEMS Second Edition Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com About the Authors Andrew S Tanenbaum has an S.B degree from M.LT and a Ph.D from the University of California at Berkeley He is currently a Professor of Computer Science at the Vrije Universiteit in Amsterdam, The Netherlands, where he heads the Computer Systems Group Until stepping down in Jan 2005, for 12 years he had been Dean of the Advanced School for Computing and Imaging, an interuniversity graduate school doing research on advanced parallel, distributed, and imaging systems In the past he has done research on compilers, operating systems, networking, and local-area distributed systems His current research focuses primarily on computer security, especially in operating systems, networks, and large wide-area distributed systems Together, all these research projects have led to over 125 refereed papers in journals and conference proceedings and five books, which have been translated into 21 languages Prof Tanenbaum has also produced a considerable volume of software He was the principal architect of the Amsterdam Compiler Kit, a toolkit for writing portable compilers, as well as of MINIX, a small UNIX clone aimed at very high reliability It is available for free at www.minix3.org.This system provided the inspiration and base on which Linux was developed He was also one of the chief designers of Amoeba and Globe His Ph.D students have gone on to greater glory after getting their degrees He is very proud of them In this respect he resembles a mother hen Prof Tanenbaum is a Fellow of the ACM, a Fellow of the the IEEE, and a member of the Royal Netherlands Academy of Arts and Sciences He is also winner of the 1994 ACM Karl V Karlstrom Outstanding Educator Award, winner of the 1997 ACM/SIGCSE Award for Outstanding Contributions to Computer Science Education, and winner of the 2002 Texty award for excellence in textbooks In 2004 he was named as one of the five new Academy Professors by the Royal Academy His home page is at www.cs.vu.nl/r-ast Maarten van Steen is a professor at the Vrije Universiteit, Amsterdam, where he teaches operating systems, computer networks, and distributed systems He has also given various highly successful courses on computer systems related subjects to ICT professionals from industry and governmental organizations Prof van Steen studied Applied Mathematics at Twente University and received a Ph.D from Leiden University in Computer Science After his graduate studies he went to work for an industrial research laboratory where he eventually became head of the Computer Systems Group, concentrating on programming support for parallel applications After five years of struggling simultaneously research and management, he decided to return to academia, first as an assistant professor in Computer Science at the Erasmus University Rotterdam, and later as an assistant professor in Andrew Tanenbaum's group at the Vrije Universiteit Amsterdam Going back to university was the right decision; his wife thinks so, too His current research concentrates on large-scale distributed systems Part of his research focuses on Web-based systems, in particular adaptive distribution and replication in Globule, a content delivery network of which his colleague Guillaume Pierre is the chief designer Another subject of extensive research is fully decentralized (gossip-based) peerto-peer systems of which results have been included in Tribler, a BitTorrent application developed in collaboration with colleagues from the Technical University of Delft Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com DISTRIBUTED SYSTEMS Second Edition ' Andrew S.Tanenbaum Maarten Van Steen Upper Saddle River, NJ 07458 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Library of Congress Ca.aloging-in.Public:ation Data Tanenbaum Andrew S Distributed systems: principles and paradigms I Andrew S Tanenbaum, Maarten Van Steen p em Includes bibliographical references and index ISBN 0-13-239227-5 Electronic data processing Distributed processing Distributed operating systems (Computers) Maarten van II Title QA 76.9.D5T36 2006 005.4'476 dc22 2006024063 I Steen, Vice President and Editorial Director ECS: Marcia J Horton Executive Editor: Tracy Dunkelberger Editorial Assistant: Christianna Lee Associtate Editor: Carole Stivder Executive Managing Editor: 'Vince O'Brien Managing Editor: Csmille Tremecoste Production Editor: Craig Little Director of Creative Services: Paul Belfanti Creative Director: Juan Lopez Art Director: Heather Scott Cover Designer: Tamara Newnam Art Editor: Xiaohong Zhu Manufacturing Manager, ESM: Alexis Heydt-Long Manufacturing Buyer: Lisa McDowell Executive Marketing Manager: Robin O'Brien Marketing Assistant: Mack Patterson © 2007 Pearson Education Inc Pearson Prentice Hall Pearson Education, Inc Upper Saddle River, NJ 07458 All rights reserved No part of this book may be reproduced writing from the publisher in any form or by any means, without permission in Pearson Prentice Hall~ is a trademark of Pearson Education, Inc The author and publisher of this book have used their best efforts in preparing this book These efforts include the development, research, and testing of the theories and programs to determine their effectiveness The author and publisher make no warranty of any kind, expressed or implied, with regard to these programs or the documentation contained in this book The author and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs Printed in the United States of America 10 ISBN: 0-13-239227-5 Pearson Pearson Pearson Pearson Pearson Pearson Pearson Pearson Pearson Education Ltd., London Education Australia Pty Ltd., Sydney Education Singapore, Pte Ltd Education North Asia Ltd., Hong Kong Education Canada, Inc., Toronto Educaci6n de Mexico, S.A de C.V Education-Japan, Tokyo Education Malaysia, Pte Ltd Education, Inc., Upper Saddle River, New Jersey Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com To Suzanne, Barbara, Marvin, and the memory of Bram and Sweetie 1t -AST To Marielle, Max, and Elke -MvS Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com CONTENTS xvii PREFACE INTRODUCTION 1.1 DEFINITION OF A DISTRIBUTED SYSTEM 1.2 GOALS 1.2.1 Making Resources Accessible 1.2.2 Distribution Transparency 1.2.3 Openness 1.2.4 Scalability 1.2.5 Pitfalls 16 1.3 TYPES OF DISTRIBUTED SYSTEMS 17 1.3.1 Distributed Computing Systems 17 1.3.2 Distributed Information Systems 20 1.3.3 Distributed Pervasive Systems 24 1.4 SUMMARY 30 33 ARCHITECTURES 2.1 ARCHITECTURAL STYLES 34 2.2 SYSTEM ARCHITECTURES 36 2.2.1 Centralized Architectures 36 2.2.2 Decentralized Architectures 43 2.2.3 Hybrid Architectures 52 2.3 ARCHITECTURES VERSUS MIDDLEWARE 54 2.3.1 Interceptors 55 2.3.2 General Approaches to Adaptive Software 57 2.3.3 Discussion 58 vii Simpo PDF - http://www.simpopdf.com viiiMerge and Split Unregistered Version CONTENTS 2.4 SELF-MANAGEMENT IN DISTRIBUTED SYSTEMS 59 2.4.1 The Feedback Control Model 60 2.4.2 Example: Systems Monitoring with Astrolabe 61 2.4.3 Example: Differentiating Replication Strategies in Globule 63 2.4.4 Example: Automatic Component Repair Management in Jade 65 2.5 SUMMARY 69 PROCESSES 3.1 3.2 3.3 THREADS 70 3.1.1 Introduction to Threads 70 3.1.2 Threads in Distributed Systems 75 VIRTUALIZATION 79 3.2.1 The Role of Virtualization in Distributed Systems 3.2.2 Architectures of Virtual Machines 80 CLIENTS 82 3.3.1 Networked User Interfaces 82 3.3.2 Client-Side Software for Distribution Transparency 3.4 SERVERS 88 3.4.1 General Design Issues 88 3.4.2 Server Clusters 92 3.4.3 Managing Server Clusters 98 3.5 CODE MIGRATION 1033.5.1 Approaches to Code Migration 103 3.5.2 Migration and Local Resources 107 3.5.3 Migration in Heterogeneous Systems 3.6 -4 66 SUMMARY 4.2 87 110 112 115 COMMUNICATION 4.1 79 FUNDAMENTALS 116 4.1.1 Layered Protocols 116 4.1.2 Types of Communication 124 REMOTE PROCEDURE CALL 125 4.2.1 Basic RPC Operation 126 4.2.2 Parameter Passing 130 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ix CONTENTS 4.2.3 Asynchronous RPC 134 4.2.4 Example: DCE RPC 135 4.3 4.4 MESSAGE-ORIENTED COMMUNICATION 140 4.3.1 Message-Oriented Transient Communication 141 4.3.2 Message-Oriented Persistent Communication 145 4.3.3 Example: ffiM's WebSphere Message-Queuing System STREAM-ORIENTED COMMUNICATION ,4.4.1 Support for Continuous Media 158 4.4.2 Streams and Quality of Service 160 4.4.3 Stream Synchronization 163 157 4.5 MULTICAST COMMUNICATION 166 4.5 Application-Level Multicasting 166 4.5.2 Gossip-Based Data Dissemination 170 4.6 SUMMARY 175 179 NAMING 5.1 NAMES, IDENTIFIERS, AND ADDRESSES 5.2 FLAT NAMING 182 5.2.1 Simple Solutions 183 5.2.2 Home-Based Approaches 1?6 5.2.3 Distributed Hash Tables 188 5.2.4 Hierarchical Approaches 191 5.3 STRUCTURED NAMING 195 5.3.1 Name Spaces 195 5.3.2 Name Resolution 198 5.3.3 The Implementation of a Name Space 202 5.3.4 Example: The Domain Name System 209 5.4 ATTRIBUTE-BASED NAMING 217 5.4.1 Directory Services 217 5.4.2 Hierarchical Implementations: LDAP 5.4.3 Decentralized Implementations 222 5.5 SUMMARY 152 180 218 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 672 INDEX Complex stream, I59 Component, 34 Component repair, 65-66 Composite local object, 450 Composite service, 553 Composition, 603 Compound document, 86-87 Compound procedure, 502 Concurrency transparency, Concurrent events, 245 Concurrent operations, 285 Concurrent server, 89 Confidential group communication, 408-409 Confidentiality, 378 Con it, 278-281 Connection oriented, 117 Connectionless protocol, 117 Connector, 34 Consistency, 15 file system, 519-529 object-based systems, 472-477 Web, 570-582 Consistency and replication, 273-318 Consistency model, 276-295, 288 client-centric consistency, 288-295,315-317 data-centric, 276-288 Eventual consistency, 289-291 monotonic-read consistency, 291-292 monotonic-write consistent, 292-293 read- your-writes consistency, 294-295 sequential consistency, 281-288 writes-follow-read, 295 Consistency protocol, 306-317 Consistency vs coherence, 288 Contact address, 96, 469 Content addressable network, 46 Content-aware cache, 581 Content-aware request distribution, 559 Content-based routing, 601 Content-blind caching, 582 Content delivery network, 511, 556, 573-579 Content distribution, 302-305 Content-hash block 499 Continuous consistency, 278, 306-308 Continuous media, 158-160 Control subobject, Globe, 451 Conversational exchange style 566 Cookie, 92 Cooperative caching, 571-573 Coordinated checkpointing, 369 Coordination-based system, 589-621 architecture, 591-601 communication, 601-604 consistency and replication, 607-613 fault tolerance, 613-167 introduction, 589-591 naming, 604-607 security, 617-620 Coordination model, 589-59 J Coordination protocol, 553 CORBA,464 fault tolerance, 477-479 naming, 467-468 Counter, 233 Crash failure, 324 CRL (see Certificate Revocation List) Cryptography, 389-396 DES, 391-394 RSA,394-395 D Data-centered architecture, 35 Data encryption standard, 392-394 Data link layer, 118-119 Data store, 277 Data stream, 158 DeE (see Distributed Computing Environment DDoS (see Distributed Denial of Service attack Deadlock, 252 Death certificate, 173 Decentralized architecture, 43-51 Decentralized authentication, 536-539 Decision support system, 40 Decryption, 389 Deferred synchronous RPC, 134 Delegation, 437-439 Denial-of-service attack, 427-428 Dependable system, 322 DES (see Data Encryption Standard) Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 673 INDEX Destination queue, 147 DHash,499 DHT (see Distributed Hash Table) DIB (see Directory Information Base) Differentiated service, 161 Diffie-Hellman key exchange, 429-430 Digital signature, 405-407 Direct coordination, 590 Directional gossiping, 172 Directory information base, 219 Directory information tree, 220 Directory node, 195 Directory service, 136,217-218 Directory service agent, 221 Directory table, 196 Directory user agent, 221 Disconnected operation, 524 Discrete media, 158 Dispatcher, 77 Distributed caching, 571-573 Distributed commit, 355-363 Distributed computing environment, 135-140,463 daemon, 139 Distributed computing systems, 17-20 Distributed denial of service attack, 427-428 Distributed event detector, 606 Distributed file service, 136 Distributed file system, 491-541 Distributed hash table, 44, 188-191,222-225 secure, 539-540 Distributed information system, 20-24 Distributed object, 444-446 compile-time, 445-446 run-time, 445-446 Distributed pervasive systems, 24-30 Distributed server, 95 Distributed shared object, 449 Globe, 449-451 Distributed snapshot, 366 Distributed system, collaborative, 53-54 communication, 115-176 consistency and replication, 273-318 definition, fault tolerance, 321-374 Distributed system (continued) file systems, 491-543 goals, 3-16 home, 26-27 naming, 179-228 object-based systems, 443-487 pervasive, 24-26 pitfalls, 16 processes 69-113 security, 377-439 synchronization, 231-271 thread, 75-79 types, 17-30 virtualization, 79-80 Web-based, 545-586 Distributed time service, 136 Distributed transaction, 20 Distribution, 13 Distribution transparency, 4-7, 87-88 DIT (see Directory Information Tree) DNS (see Domain Name System) Domain, 14, 192,210 Domain name, 210 Domain name system, 10,96,209-217 implementation, 212-217 name space, 210-212 Domino effect, 367 Drag-and-drop, 86 DSA (see Directory Service Agent) DUA (see Directory User Agent) Durable, 22 Dynamic invocation, 459 E EAI (see Enterprise Application Integration) Eclipse attack, 540 Edge server system, 52 EJB (see Enterprise Java Bean) Election algorithm, 263-270 bully, 264-266 large-scale, 269-270 ring, 266-267 wireless, 267-269 Embedded document, 548 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 674 INDEX Encryption, 379, 389 End point, 89, 139 End-to-end argument, 252 Enterprise application integration, 20-23 151 Enterprise Java bean, 446-448 Entity bean, 448 Entry consistency, 287,472-475 Epidemic protocol, 170 Erasure coding, 531 Erasure correction, 364 Error 323 Event, 593, 604 Event-based architecture, 35 Eventual consistency, 289-291 Exactly-once semantics, 339 Exception, 338 Expedited forwarding, 161 Expiration, orphan, 342 Explicit binding, 457 Exporting files, NFS, 506-509 Extensible markup language, 548 Extensible system, F Fail-safe fault, 326 Fail-silent system, 326 Fail-stop failure, 326 Failure, Byzantine, 325-326, 529-531 remote procedure call, 337-342 Failure detection, 335-336 Failure masking, 326-328 Failure model, 324-326 Failure transparent system, Fastened resource, 108 Fat client, 42 Fault, 322 Fault tolerance, 321-374 basic concepts, 322-328 client-server communication, 336-342 CORBA,477-479 distributed commit, 355-363 file system, 529-532 Fault tolerance (continued) group communication, 343-355 introduction, 322-328 Java, 480-481 object-based systems, 477-481 process resilence, 328-336 recovery, 363-373 Web, 582-584 FEC (see Forward EITor Correction) Feedback analysis component, 61 Feedback control, 345-348 Feedback control loop, 60 Feedback control system, 60-61 Feedback suppression, 345 File handle, 494 NFS, 509-510 File locking, 516-518 File server, 6, 77-78,201,324,387,492 File sharing, Coda, 518-519 File sharing semantics, 513-516 session, 515 UNIX, 514 File-striping technique, 496 File system, cluster-based, 496-499 distributed, 494,496 symmetric, 499-500 File system communication, 502-506 File system consistency, 519-529 File system failures, Byzantine, 529-531 File system fault tolerance, 529-532 File system naming, 506-513 File system processes, 501 File system replication, 519-529 File system security, 532-541 File system synchronization, 513-519 File transfer protocol, 122 Finger table, 188 Firewall, 418-420 Fixed resource, 108 Flash crowd, 297, 576 Flash-crowd predictor, 576 Flat group, 329 Flat naming, 182-195 Flush message, 354 Forward error correction, 162 Forward recovery, 363-365 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 675 INDEX Forwarder, 167 Forwarding pointer, 184 Frame, 119 NM,481 Frequency, clock, 239 FrP (see File Transfer Protocol) G Gateway, application level, 419 packet-filtering, 419 proxy, 420 Generative communication, 591 Gentle reincarnation, 342 Geographical scalability, 15 Geometric overlay network, 260 GFS (see Google File System) Global layer, 203 Global name, 196 Global name space, 512-513 Global positioning system, 236-238 Globe, 448-451 Globe location service, 191-195 Globe object model, 449-451 Globe object reference, 469-470 Globe security, 482-485 Globe shared object, 448-451 Globe subobjects, 450-451 Globule 63-65 Globus, 380-384 GNS (see Global Name Space Service) Google file system, 497 Gossip-based communication, 170-174 Gossiping, 63 GPS (see Global Positioning System) Grandorphan, 342 Grid computing, 17-20 Group, flat, 329 hierarchical, 329 object, 477 protection, 417 Group communication, confidential, 408-409 reliable, 343-355 secure, 408-411 Group management, secure, 433-434 Group membership, 329-330 Group server 329 Group view, 349 Groupware, H Happens-before relationship, 244, 340 Hard link, 199 Hash function, 391, 395-396 Header, message, 117 Health care systems, 27-28 Heartbeat message, 616 Helper application, 167,547 Hierarchical cache, 571 Hierarchical group, 329 High availability in peer-to-peer systems, 531-532 HoA (see Home Address) Holding register, 233 Home address, 96 Home agent, 96, 186 Home-based naming, 186-187 Home location, 186 Home network, 96 Hook, Apache, 557 Horizontal distribution, 44 HTML (see HyperText Markup Language) HTTP (see Hypertext Transfer Protocol) Human-friendly name, 182 Hybrid architecture, 52-54 Hyperlink,554-555 Hypertext markup language, 548 Hypertext transfer protocol, 122,547,560-561 messages, 563-565 methods, 562-563 I Ice, 454-456 Idempotent operation, 37, 140,341 Identifier, 180-182 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 676 IDL (see Interface Definition Language) IIOP (see Internet Inter-ORB Protocol) Implementation handle, object, 458 Implicit binding, 456 In-network data processing, 28-29 In-place editing, 86 Incremental snapshot, 369 Indegree, 49 Independent checkpointing, 368 Infected node 170 Information confidentiality, 618 Instance address, 470 Integrity, 378 message, 405-408 Interceptor, 55-57 Interface, object, 444 Interface definition language, 8, 134, 137 Intermittent fault, 323 International atomic time, 235 Internet inter-ORB protocol, 468 Internet policy registration authority, 431 Internet protocol, 120 Internet search engine, 39 Internet service provider, 52 Interoperability, Interoperable object group reference, 477 Interoperable object reference, 467 Intruder, 389 Invalidation protocol, 302 Invocation, dynamic, 458-459 Java object, 462,463 object, 451-453,458-459 replicated, 475-477 secure, 484-485 static, 458-459 IOGR (see Interoperable Object Group Reference) lOR (see Interoperable Object Reference) IP (see Internet Protocol) IPRA (see Internet Policy Registration Authority) ISO OSI (see Open Systems Interconnection Reference Model) INDEX Isochronous transmission mode, ] 59 Isolated, 22 ISP (see Internet Service Provider) Iterative lookup 191 Iterative name resolution, 206 Iterative server, 89 J Jade, 65-66 Java bean, 446-448 Java class loader 423 Java fault tolerance, 480-48] Java messaging service, 466 Java object invocation, 462, 463 Java object model, 461-462 Java playground, 424 Java remote object invocation, 462-463 Java sandbox, 422 Java security, 420-425 Java virtual machine, 422 Javascript, 13, 555 JavaSpace, 593-595, 607-610 Jini 486, 593-595 JMS (see Java Messaging Service) Junction, 512 JVM (see Java Virtual Machine) K K fault tolerant, 331 KDC (see Key Distribution Center) Kerberos 4] 1-413 Kernel mode, 72, 75 Key object, 482 Key distribution, 430-432 Key distribution center, 401 Key establishment, 429-430 Key management, 428-432 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com INDEX L Lamport clock, 244-252, 255, 311 LAN (see Local Area Network) Landmark, 262 Layered architecture, 34 Layered protocol, 116-124 LDAP (see Lightweight Directory Access Protocol) Leader-election, 52 Leaf domain, 192 Leaf node, 195 Leap second, 235 Lease, 304 Ledger, 615 Lightweight directory access protocol, 218-226 Lightweight process, 74-75 Link stress, 168 Little endian format, 131 Local alias, 155 Local-area network, 1,99-101, 110, 419,445,467,505,548 Local name, 196 Local object, Globe, 449 Local representative, Globe, 449 Local-write protocol, 310-311 Location independent name, 181 Location record, 192 Location server, 458 Location transparency, Logical clock, 244-252 LWP (see Lightweight Process) M Machine instruction, 81 Mailbox coordination, 590 Maintainability, 323 Managerial layer, 203 Managing overlay networks, 156-157 Markup language, 547 Matched, 592 Maximum drift rate, clock, 239 677 MCA (see Message Channel Agent) MD5 hash function, 395 Mean solar second, 235 Mean time to failure, 616 Mean time to repair, 616 Meeting-oriented coordination, 590 Membership management, 45 Mesh network, 28 Message broker, 149-150 Message channel, 152 Message channel agent, 153 Message confidentiality, 405-408 Message digest, 395 Message-driven bean, 448 Message integrity, 405-408 Message-level interceptor, 57 Message logging, 364, 369-372 Message ordering, 351-352 Message-oriented communication, 140-157 Message-oriented middleware, 24, 145 Message-passing interface, 142-145 Message queue interface, 155 Message-queuing model, 145-147 Message-queuing system, 145-157 Message transfer, 154-156 Messaging, object based, 464-466 Messaging service, Java, 466 Method, HTTP, 562-563 object, 444 Method invocation, secure, 484-485 Metric estimation, CDN, 574-576 Metric estimation component, 61 Middleware, 3,54-59, 122-124 Middleware protocol 122-124 Migration, code, 103-112 Migration transparency, MIME type, 548-549 Mirror site, 298 Mirroring, 298 Mobile agent, 104 Mobile code, 420-427 Model, distributed file system, 494-496 Globe object, 449-451 Java object, 461-462 Module, Apache, 557 MOM (see Message-Oriented Middleware) Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 678 INDEX Monotonic-read consistency 291-292 Monotonic-write consistent 292-293 MOSIX, ]8 Mother nature, 15 Motion picture experts group, 165 Mounting, 199-202 Mounting point, 200, 495 MPEG (see Motion Picture Experts Group) MPI (see Message-Passing Interface) MPLS (see Multi-Protocol Label Switching) MQI (see Message Queue Interface) MTTF (see Mean Time To Failure) MTTR (see Mean Time To Repair) Multi-protocol label switching, 575 Multicast, atomic, 348-355 reliable, 351-352 Multicast communication, 166-174 Multicasting, 305 feedback control, 345-348 reliable, 343-344 RPC2, 503-504 scalable, 345 Multicomputer, 142-143 Multiprocessor, 72, 77, 231, 282, 286,313 Multipurpose internet mail exchange, 548 MultiRPC, 505 Multithreaded server, 77-79 Multithreading, 72 Multitiered architecture, 41-43, 549-551 Mutual exclusion, 252-260 centralized algorithm, 253-254 decentralized algotithm, 254-255 distributed algorithm, 255-258 token ring algorithm, 258-259 N Name, 180-182 Name resolution, 198-202 implementation, 205-209 Name resolver, 206 Name space, 195-198 DNS.21O-212 global, 512-513 implementation, 202-209 Name space distribution, 203-205 Name space management, 426 Name-to-address binding, 182 Naming, 179-228 attribute-based, 217-226 CORBA, 467-468 file system, 506-513 flat, 182-195 object-based 466-470 structured 195-217 Web, 567-569 Naming system, 217 Needham-Schroeder protocol, 401 Nested transaction, 22 Network, body area 27 local area, mesh, 28 sensor, 28-30 wide area, Network file system 20 I, 491 Network file system access control, 535-536 Network file system caching, 520-522 Network file system client, 493 Network file system loopback server, 500 Network file system naming, 506-511 Network file system RPC, 502-503 Network file system RPC2, 503-505 Network file system security, 533-536 Network file system server, 493 Network layer, 118, 120 Network time protocol, 240-241 NFS (see Network File System) Node manager, PlanetLab, 100 Nonce 402 Nonpersistent connection, 561-562 Normalized database, 581 Notification, 592 NTP (see Network Time Protocol) o Object 414 interface, 444 persistent, 446 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 679 INDEX Object (continued) remote, 445 state 444 transient, 446 Object adapter, 446, 453-454 Object-based architecture, 35 Object-based messaging, 464-466 Object-based naming, 466-470 Object-based system processes, 451-456 _ Object-based systems, 443-487 consistency, 472-477 fault tolerance, 477-481 replication, 472-477 security, 481-487 Object binding, 444, 456-458 explicit, 457 implicit, 457 Object class, 445 Object group, 477 Object implementation handle, 458 Object invocation, 451-453, 458-459 Java, 462,463 parameter passing, 460-461 Object key, 482 Object method, 444 Object model, Globe, 449A51 Java, 461-462 Object proxy, 444 Object reference, 457-458 Globe, 469-470 Object requXest broker, 468 Object server, 451-454 Object synchronization, 470-472 Object wrapper, 453-454 OGSA (see Open Grid Services Architecture) Omission failure, 325 ONC RPC (see Open Network Computing RPC) One-phase commit protocol, 355 One-way function, 391 One-way RPC, 135 Open delegation, 521 Open distributed system Open grid services architecture, 20 Open network computing RPC, 502 Open Systems Interconnection Reference Model, 117 Openness, degree 7-9 Operating system, 70, 128, 387 Optimistic logging protocol, 372 ORB (see Object Request Broker) Orca, 449 Ordered message delivery, 251-252 Origin server, 54 Orphan, 341-342, 370 Orphan extermination, 342 OSI model, 117 Out-of-band, 90 Overlay network, 44, 148 Owner capability, 435 p Packet, 120 Packet-filtering gateway, 419 Parameter marshaling, 130,462 Parameter passing, 127, 130,458,460-461 Partial replication, 581 Partial view, 47 225 598 Path name, 196 PCA (see Policy Certification Authority) Peer-to-peer system, 44-52 file replication, 526-529 security, 539-540 high availability, 531-532 structured,44A6,527-528 unstructured 526-527 Peet-to-peer system unstructured, 47-49 PEM (see Privacy Enhanced Mail) Permanent fault 324 Permanent replica, 298-300,483 Permission-based approach, 252 Persistence, 40 Persistent communication, 124 Persistent connection 562 Persistent object, 446 Pessimistic logging protocol, 372 PGM (see Pragmatic General Multicast) Physical clock, 233-236 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 680 Physical layer, ]] 8-119 Piecewise deterministic model, 370 Ping message, 335 Pipelining, 562 Plaintext, 389 Plan 9, communication, 505-506 PlanetLab, 99- 103 Platform security, 482 Playground, Java, 424 Plug-in, Browser, 549 browser, 555 Policy and mechanism, 8-9 Policy certification authority, 431 Polling model, 465 Port, 89, 139 Portability, Position-based routing, 261 Pragmatic general multicast, 614 Primary-backup protocol, 308 Primary-based protocol, 308-311 Prime factor, 394 Primitive local object, 450 Privacy, 4, 92,412,431 Privacy enhanced mail, 431 Process, 69-1 13 file system, 501 object-based system, 451-456 Web, 554-560 Process group, flat, 329 hierarchical, 329 Process migration, 103 Process table, 70 Process virtual machine, 81 Program stream, 165 Protection domain, 416-418 Protocol, 117 address resolution, 183 blocking commit, 359 cache-coherence, 313-314 challenge-response, 398 client-based, 303 connectionless, 117 coordination, 553 epidemic, 170 file transfer, 122 higher-level, 121-122 INDEX Protocol (continued) hypertext transfer, 122,547,560 Internet, 120 invalidation, 302 layered, 116-124 lightweight directory access, 218-226 local-write, 310-311 logging, 372 lower-level, 119-120 middleware, 122-] 24 Needham-Schroeder, 401 network time, 240-241 one-phase commit, 355 optimistic logging, 372 pessimistic logging, 372 primary-backup, 308 primary-based, 308-311 pull-based, 303 push-based, 303 quorum-based, 311-313 real-time transport, 121 remote-write, 308-309 replicated-write, 311-313 replication, 348 server-based, 303 simple object access, 552,566 TCP,121 three-phase commit, 361-363 transport, 120-121 two-phase commit, 355-360 X, 83-84 Protocol stack, 119 Protocol suite, 119 Proximity neighbor selection, 191 Proximity routing, 191 Proxy, 437, 486 object, 444 Proxy cache, 571, 573 Proxy gateway, 420 Public key authentication, 404-405 Public-key block, 500 Public-key certificate, 430 Public-key cryptosystem, 390 Publication confidentiality, 619 Publish/subscribe system, 24, 35, 151,591 Push-based protocol, 303 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com INDEX Q QoS (see Quality of Service) Quality of service, 160-162 Query containment check, 581 Queue manager, 148, 152 Queue name, 147 Quorum-based protocol, 311-313 Quorum certificate, 530 R Random graph, 47 RBS (see Reference Broadcast Sync hronization) RDF (see Resource Description Framework) RDN (see Relative Distinguished Name) RDP (see Relative Delay Penalty) Read-one write-all, 312 Read-only state, 421 Read quorum, 312 Read-write conflict, 289 Read-your-writes consistency, 294-295 Real-time transport protocol, 121 Receiver-based logging, 365 Receiver-initiated mobility, 106 Recommender, 27 Recovery, failure, 363-373 Recovery line, 367 Recovery-oriented computing, 372 Recursi ve lookup, 191 Recursi ve name resolution, 207 Redirect, 564 Reduced interfaces for secure system component, 388 Reference, Globe object, 469-470 object, 457-458 Reference broadcast synchronization, 242 Reference clock, 241 Reference monitor, 415-4L8, 424 Referentially decoupled architecture, 35 Reflection attack, 399 Reincarnation, 342 681 Relative delay penalty, 168 Relative distinguished name, 219 Relative path name, 196 Relay, 148 Reliability, 322 Reliable causally-ordered multicast, 352 Reliable communication, 336-355 client-server, 336-342 group, 343-355 Reliable FIFO-ordered multicast, 351 Reliable group communication, 343-355 Reliable multicast, 343-345 Reliable unordered multicast, 351 Relocation transparency, Remote access model, 492 Remote file service, 492 Remote method invocation, 24, 458 Java, 461-463 Remote object, 445 Remote object security, 486-487 Remote procedure call, 24, 125-140,337, 342, 387, 502-505 call-by-copy/restore, 127 call-by-reference, 127 call-by-value, 127 client stub, 128 failure, 337-342 failure due to client crash, 341-342 failure due to lost reply, 342 failure due to lost request, 338 failure due to server crash, 338-340 failure to locate server, 337-338 NFS, 502-503 parameter marshaling, 130 secure, 533-535 server stub, 128 Remote procedure call 2, 503-505 Remote-write protocol, 308-309 Removed node, 171 Rendezvous daemon, 596 Rendezvous node 169 Repair management domain, 66 Replica, client-initiated 30 I server-initiated 299-301 Replica certificate, 483 Replica key 482 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 682 INDEX Replica location service, 529 Replica management 296-305 Replica-server placement 261, 296-298, 574 Replicated component, 14 Replicated-write protocol, 311-313 Replication, file system, 519-529 object-based systems, 472-477 peer-to-peer, 526-529 server-side, 524-526 Web, 570-582 Web applications, 579-582 Replication framework, 474-475 Replication invocation, 475-477 Replication manager, CORBA, 478 Replication subobject, Globe, 450 Replication transparency, Request broker, object, 468 Request-level interceptor 56 Request line, 563 Request-reply behavior, 37 Resilence, process, 328-336 Resource description framework, 218 Resource proxy, 382 Resource record, 210 Resource virtualization, 79 Response failure, 325 Reverse access control, 482 Revoking a certificate, 432 RISSC (see Reduced Interfaces for Secure System Component) Rivest, Shamir, Adleman algorithm, 394-395 RMI (see Remote Method Invocation) Role, 384 418 Rollback, 367, 369 Root, 167 196-197,199,206,208-210,510 Root file handle, 509-510 Root node 192 Root server, 182 Round, gossip-based, 171 Round-robin DNS, 560 Router, CORBA, 466 Routing, 120 Routing filter, 602 ROW A (see Read-One, Write-All) RPC (see Remote Procedure Call) RPC-style exchange, 566 RPC2 (see Remote Procedure Ca1J ~) RSA (see Rivest, Shamir, Adleman nlgorithmj RTP (see Real-Time Transport Prolllcol) Rumor spreading 171 Runtime system, Ice, 454-456 s S-box,393 Safety, 323 Sandbox, Java, 422 Scalability, 9-16 geographical, 15 Scalable multicasting 345 Scalable reliable multicasting, 345 Scaling techniques, 12-15 Scheduler activation, 75 Scheme, 568 Script, server-side, 550-551 SCS (see Slice Creation Service) Secret sharing, 409 Secure channel, 397-413 Secure file system, 536 Secure file system client, 536 Secure file system server, 537 Secure file system user agent, 536 Secure group communication, 408-4 J Secure group management, 433-434 Secure method invocation, 482, 484-485 Secure NFS, 534 ' Secure object binding, 482 Secure replicated servers, 409-41 Secure RPC, 533-535 Secure socket layer, 386, 584 Secure storage, 540-541 Security, 377-439 access control, 413-428 cryptographic, 389-396 file system, 532-541 Globe, 482-485 Globus, 380-384 introduction, 378-396 Java, 420-425 j, Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com INDEX Security tcontinuedi NFS, 533-536 object-based systems, 481-487 peer-to-peer, 539-540 remote object, 486-487 secure channels, 396-413 Web, 584-585 Security attacks, 389-391 Security design issues, 384-389 Security management, 428-439 Security manager, Java, 423 Security mechanism, 379 Security policy, 379 Security service, 136 Security threats, 378-380 Selective revealing, 422 Self-certifying file system, 536-539 Self-certifying name, 484 Self-certifying pathname, 537 Self-managing system, 59-66 Self-star system, 59 Semantic overlay network, 50, 225 Semantic proximity 50, 226 Semantics, file sharing, 513-516 Semantics subobject, Globe, 450 Sender-based logging, 365 Sender-initiated, 106 Sensor network, 28-30 Sequencer, 311 Sequential consistency, 281-288 Serializability, 22 Serializable parameter marshaling, 462 Servant, 454 Servent,44 Server, 37, 88-103 Apache, 556-558 multithreaded, 77-79 object, 451-454 Web, 556-560 Server-based protocol, 303 Server cluster, 92-98 Server interface, 66 Server port, 435 Server replication, Coda, 524-526 Server-side replication, 524-526 Server-side script, 550-551 683 Server stub, 128-129 Service, Web, 546 Service-oriented architecture, 20 Service provider, 101 Servlet, 551 Session, 316 Session key, 398,407-408 Session semantics, 515 Session state, 91 SFS (see Secure File System) Shadow, 411 Share reservation, 517 Shared data space, 36 Shared-nothing architecture, 298 Shared objects, Globe, 448-451 Side effect, RPC2, 503 Simple object access protocol, 552, 566-567 envelop, 566 Simple stream, 159 Single-processor system, Single sign-on, 413 Single-system image, 18 Skeleton, object, 445 Skew, clock, 239 Slice, 100 Slice authority, 101 Slice creation service, 101 Small-world effect, 226 SMDS (see Switched Multi-Megabit Data Service) SOAP (see Simple Object Access Protocol) Socket, 141-142 Berkeley, 141-142 Soft state, 91 Software architecture, 33 Solar day, 234 Solar second, 234 Source queue, 147 Squid, 556 SRM (see Scalable Reliable Multicasting) SSL (see Secure Socket Layer) SSP chain, 184-186 Stable message, 371 Stable storage, 365-366 Stack introspection, 425-426 Stacked address, 469 Starvation, 252 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 684 State, object 4.:J.4 State machine replication, 248 State transition failure, 325 Stateful server 91 Stateful session bean, 448 Stateless server 90 Stateless session bean, 448 Statelessness, 66 Static invocation, 459 Status line, 563 Stratum- server, 241 Stream-oriented communication, 157-166 Stream synchronization, 163-166 Stretch, 168 Striping, 496-497 Strong collision resistance, 391 Strong consistency, 15,274 Strong mobility, 106 Structured naming, 195-217 Stub generation, 132-134 Subject, 414, 595 Subscription, 592 Subscription confidentiality, 619 Substream, 159 Superpeer, 50-52, 269 Superserver, 89 Susceptible node, 171 Switch-tree, 169 Switched multi-megabit data service, 386 Sybil attack, 539 Symbolic link, 199 Symmetric cryptosystem, 390 Synchronization, 125, 163-164, 231-271, 286-287 election algorithms, 263-270 file system, 513-519 logical clock, 244-252 mutual exclusion, 252-260 object, 470-472 physical clock, 232-244 stream, 163-166 Web, 569-570 Synchronization variable, 286 Synchronized object, 47 Synchronous communication, 11, 125 Synchronous system, 332 INDEX Synchronous transmission mode 159 System architecture, 33, 36-54 System call, 81 T Tag, 562 Tagged profile, 468 TAl (see International Atomic Time) TCB (see Trusted Computing Base) TCP (see Transmission Control prolocol) TCP handoff, 94, 559 Template, 594 TGS (see Ticket Granting Service) Thin client, 42, 84-86 Thin-client approach, 83 THINC,86 Thread, 70-79 distributed system, 75-79 implementation, 73-75 worker, 77-78 Thread context, 71 Three-phase commit protocol, 361 Three-tiered architecture, 42 Threshold scheme, 411 TIBnRendezvous,595 Ticket, 401, 412 Ticket granting service, 412 Time server, 240-242 Timer, 233 Timing failure, 325 TLS (see Transport Layer Security) TLS record protocol layer, 584 TMR (see Triple Modular Redundancy) Token, 252, 258 Token-based solution, 252 Topology-based assignment of node identifier, ~ Topology management, network, 49-50 Total-ordered delivery, 352 Totally-ordered multicast, 247-248 TP monitor, 23 Tracker, 53 Transaction, 21 Transaction processing monitor, 23 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 685 INDEX Transaction processing system, 20-23 Transactional RPC, 21 Transient communication, 125 Transient fault, 323 Transient object, 446 Transit of the sun, 234 Transition policy, 613 Transmission control protocol, 121 Transmission mode, asynchronous, 158 isosynchronous, 158 synchronous, 158 Transparency, access, concurrency, degree, 6-7 distribution, 4-7 failure, location, migration, relocation, replication, Transport layer, 118, 120-121 Transport-layer security, 584 Transport-layer switch, 94 Tree cost, 168 Triangle inequality, 262 Triple DES, 394 Triple modular redundancy, 327-328 Trust model, 431 Trusted computing base, 387 Tuple, 591 Tuple instance, 594 Two-phase commit protocol, 355-360 Two-tiered architecture, 41 u UDDI (see Universal Directory and Discovery Integration) UDP (see Universal Datagram Protocol) Unattached resource, 108 Unicasting, 305 Uniform resource identifier, 567 Uniform resource locator, 546,567 Uniform resource name, 568 Universal coordinated time, 236 Universal description, discovery and integration, 551-552 Universal directory and discovery integration, 222 Universal plug and play, 26 UNIX file sharing semantics, 514 Upload/download model, 492 UPnP (see Universal Plug aNd Play) URI (see Uniform Resource Identifier) URL (see Uniform Resource Locator) URN (see Uniform Resource Name) User certificate, 482 User key, 482 User proxy, 382 UTC (see Universal Coordinated Time) v Vector clock, 248-252 Vertical distribution, 43 Vertical fragmentation, 43 VFS (see Virtual File System) View, 307 View change, 349 Virtual file System, 493 Virtual ghost, 578 Virtual machine, 80-82 Java, 422 Virtual machine monitor, 82 Virtual organization, 18-19 Virtual synchrony, 349-350 implementation, 352-355 Virtualization, 79-82 VMM (see Virtual Machine Monitor) Volume, Coda, 524 Volume storage group, Coda, 524 Voting, 311 Vserver,99 VSG (see Volume Storage Group) Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 686 INDEX w W AN (see Wide-Area Network) Weak collision resistance, 391 Weak consistency 288 Weak mobility, 106 Web application replication, 579-582 Web browser, 547,554 Web caching, 571-573 Web client 554-556 Web communication, 560-567 Web consistency, 570-582 Web distributed authoring and versioning, 570 Web document, 547-549 Web fault tolerance, 582-584 Web naming, 567-569 Web proxy, 555 Web replication, 570-582 Web security, 584-585 Web server, 556-560 Web server cluster, 558-560 Web service, 546, 551-554 Web services composition, 552-554 Web services coordination, 552-4 Web services definition language, 552 Web synchronization, 569-570 WebDAV,570 WebSphere MQ, 152-157 Wide-area network, Window manager, 84 Window size, 576 Wireless clock synchronization, 242-244 Wireless election algorithm, 267-269 Worker thread, 77-78 Wrapper, object, 453-454 Write-back cache, 314 Write quorum, 312 Write-through cache, 314 Write-write conflict, 289 Writes-follow-read, 295 WSDL (see Web Services Definition Language) WWW(seeWorld Wide Web) x X kernel, 83 X protocol, 83-84 X window system, 83-84, 87 XlOpen transport interface, 141 XML (see Extensible Markup Language) XTI (see XlOpen Transport Interface) z Zipf-like distribution, 216 Zone, 14,203 Zone transfer, 212 [...]... DISTRIBUTED SYSTEMS 17 1.3 TYPES OF DISTRIBUTED SYSTEMS Before starting to discuss the principles of distributed systems, let us first take a closer look at the various types of distributed systems In the following we make a distinction between distributed computing systems, distributed information systems, and distributed embedded systems 1.3.1 Distributed Computing Systems An important class of distributed. .. Fault Tolerance 629 14.1.9 Security 630 14.1.10 Distributed Object-Based Systems 631 14.1.11 Distributed File Systems 632 14.1.12 Distributed Web-Based Systems 632 14.1.13 Distributed Coordination-Based Systems 633 14,2 ALPHABETICAL BIBLIOGRAPHY 634 INDEX 669 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com PREFACE Distributed systems form a rapidly changing field of computer... computing systems composed of large numbers of computers connected by a high-speed network They are usually caned computer networks or distributed systems, in contrast to the previous centralized systems (or singleprocessor systems) consisting of a single computer, its peripherals, and perhaps some remote terminals 1.1 DEFINITION OF A DISTRIBUTED SYSTEM Various definitions of distributed systems have... distribution is a good idea As distributed systems are expanding to devices that people carry around, and where the very notion of location and context awareness is becoming increasingly important, it may be best to actually expose distribution rather than trying to hide it This distribution exposure will become more evident when we discuss embedded and ubiquitous distributed systems later in this chapter... Note how these assumptions relate to properties that are unique to distributed systems: reliability, security, heterogeneity, and topology of the network; latency and bandwidth; transport costs; and finally administrative domains When developing nondistributed applications, many of these issues will most likely not show up Most of the principles we discuss in this book relate immediately to these assumptions... of distributed systems One important characteristic is that differences between the various computers and the ways in which they communicate are mostly hidden from users The same holds for the internal organization of the distributed system Another important characteristic is that users and applications can interact with a distributed system in a consistent and uniform way, regardless of where and. .. subgroup consists of distributed systems that are often constructed as a federation of computer systems, where each system may fall under a different administrative domain, and may be very different when it comes to hardware, software, and deployed network technology Cluster Computing Systems Cluster computing systems became popular when the price/performance ratio of personal computers and workstations... of operating systems and basic communication facilities, as shown in Fig 1-1 Accordingly, such a distributed system is sometimes called middleware Figure I-I A distributed system organized as middleware The middleware layer extends over multiple machines, and offers each application the same interface Fig 1-1 shows four networked computers and three applications, of which application B is distributed. .. resources are distributed across a network; it should be open; and it should be scalable 1.2.1 Making Resources Accessible The main goal of a distributed system is to make it easy for the users (and applications) to access remote resources, and to share them in a controlled and efficient way Resources can be just about anything, but typical examples include 4 INTRODUCTION Simpo PDF Merge and Split Unregistered... Transparency An important goal of a distributed system is to hide the fact that its processes and resources are physically distributed across multiple computers A distributed system that is able to present itself to users and applications as if it were only a single computer system is said to be transparent Let us first take a look at what kinds of transparency exist in distributed systems After that we will ... publish/subscribe systems form an important and expanding class of distributed systems We will discuss them at length in Chap 13 1.3.3 Distributed Pervasive Systems The distributed systems we have... 1.2.5 Pitfalls 16 1.3 TYPES OF DISTRIBUTED SYSTEMS 17 1.3.1 Distributed Computing Systems 17 1.3.2 Distributed Information Systems 20 1.3.3 Distributed Pervasive Systems 24 1.4 SUMMARY 30 33 ARCHITECTURES... the principles of distributed systems, let us first take a closer look at the various types of distributed systems In the following we make a distinction between distributed computing systems, distributed

Ngày đăng: 04/12/2015, 18:30

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan