Table Of ContentGregor von Bachmann
Concepts for Distributed
Systems Design
With 107 Figures
Springer-Verlag
Berlin Heidelberg New York 1983
Professor Dr. Gregor von Bochmann
Universite de Montreal, Faculte des arts et des sciences
Oepartement d'informatique et de recherche operationnelle,
(LA.O.), Case postale 6128, Succursale "A",
Montreal, P.Q., H3C 3J7, Canada
ISBN-13:978-3-642-68853-9 e-ISBN-13:978-3-642-68851-5
001: 10.1007/978-3-642-68851-5
Library of Congress Cataloging in Publication Data. Main entry under title:
Bochmann, Gregor von, 1941 - Concepts for distributed systems design.
Bibliography: p. Includes index. 1. Electronic data processing - Distributed
processing. 2. System design. I. Title QA76.9.D5B64 1983001.6483-574
This work is subject to copyright. All rights are reserved, whether the whole
or part of the material is concerned, specifically those of translatiqn,
reprinting, re-use of illustrations, broadcastening, reproduction by photo
copying machine or similar means, and storage in data banks. Under § 54
of the German Copyright Law, where copies are made for other than private
use, a fee is payable to 'Verwertungsgesellschaft Wort', Munich.
© Springer-Verlag Berlin Heidelberg 1983
Softcover reprint of the hardcover 1 st edition 1983
The use of registered names, trademarks, etc. in the publication does not
imply, even in the absence of a specific statement, that such names are
exempt from the relevant protective laws and regulations and therefore free
for general use.
2145/3140-543210
Preface
This book is written for computer programmers, analysts
and scientists, as well as computer science students, as an intro
duction to the principles of distributed system design. The
emphasis is placed on a clear understanding of the concepts,
rather than on details; and the reader will learn about the struc
ture of distributed systems, their problems, and approaches to
their design and development. The reader should have a basic
knowledge of computer systems and be familiar with modular design
principles for software development. He should also be aware of
present-day remote-access and distributed computer applications.
The book consists of three parts which deal with prin
ciples of distributed systems, communications architecture and
protocols, and formal description techniques. The first part
serves as an introduction to the broad meaning of "distributed
system". We give examples, try to define terms, and discuss the
problems that arise in the context of parallel and distributed
processing. The second part presents the typical layered protocol
architecture of distributed systems, and discusses problems of
compatibility and interworking between heterogeneous computer
systems. The principles of the lower layer functions and
protocols are explained in some detail, including link layer
protocols and network transmission services. The third part deals
with specification issues. The role of specifications in the
design of distributed systems is explained in general, and formal
methods for the specification, analysis and implementation of
distributed systems are discussed. We consider in particular a
general state transition model and its use for the description of
communication services and protocols.
This text does not give the description of any par
ticular distributed system, nor does it discuss the advantages and
disadvantages of distributed computer applications, such as for
banking transactions or distributed data bases. We have given
VI
extensive references to more detailed descriptions of the topics
discussed, to complementary articles, and to explanations of
certain prerequisite concepts, most readers will be familiar with.
This book is largely based on the "Architecture of
Distribute Computer Systems" which appeared in the series of
Lecture Notes in Computer Science. The different chapters have
been largely revised, and two new chapters on formal description
techniques have been added. The Lecture Notes were originally
written in 1977-78 for a one-semester course ("troisi~me cycle")
given at the Ecole Poly technique Federale de Lausanne, Switzer
land. I would like to thank the Departement de Mathematiques of
the Ecole Poly technique, and in particular Professor G. Coray, for
my pleasant stay in Lausanne. For the preparation of this text, I
have profited from many discussions, in particular with J. Gecsei,
D. Gurtner, M. Raynal, C. Sunshine and F. Vittoz. I thank S.
Waddell for suggesting many improvements of previous versions of
this manuscript, Ch. Luyet, D. Salconi and H. Collerette for the
~areful typing, and R. Fortier for the drawing of the figures.
Last, but not least, I thank my wife, Elise, for her patience and
moral support.
Table of Contents
PART I: THE NATURE OF DISTRIBUTED SYSTEMS
1. Distributed systems: examples and definition
1.1 Distribution of control and data in existing systems 2
1.1.1 Systems distributed over long distance 2
1.1.1.1 Remote access 2
1.1.1.2 Computer networks 7
1.1.1.3 Systems for distributed processing 10
1.1.2 Locally distributed systems 14
1.1.3 Multi-processor systems 19
1.1.4 Virtual distribution 20
1.2 Classification of distributed systems 21
1.2.1 Degree of coupling 22
1.2.2 Interconnection structure 22
1.2.3 Interdependence of components 25
1.2.4 Synchronization between components 26
1.3 Definition of "distributed system" 26
2. Parallelism
2.1 Parallel processes and applications 32
2.2 Constraints on independence 34
2.3 Modular system structure and abstraction 38
3. Common problems
3.1 Cooperation 43
3.1.1 Compatibility 43
3.1.2 Synchronization 44
3.2 Distributed resource sharing 44
3.3 Naming and addressing 45
3.3.1 Search strategies for link editors 45
3.3.2 Naming of I/O flows 45
3.3.3 Addressing scheme of telephone networks 46
3.3.4 Process addressing by ports 46
VIII
3.4 Protection 49 .
3.4.1 Protection in distributed systems 50
3.5 Error recovery 51
3.5.1 Error detection 51
3.5.2 Recovery by retry 52
3.5.3 Redundant hardware 52
3.5.4 The design principle of recovery blocks 53
3.6 Real time considerations 54
3.6.1 Time-outs 55
3.6.2 Clock synchronization in distributed systems 55
PART II: DISTRIBUTED SYSTEM ARCHITECTURE AND COMMUNICATION 59
PROTOCOLS
4. Architecture of distributed systems 60
4.1 Layered hierarchical system structure and physical dis- 61
tribution
4.2 Typical structure of a distributed system 72
4.2.1 Communication over a dedicated circuit 73
4.2.2 Communication through a network 76
4.2.3 A uniform transport service 77
4.2.4 Higher level protocols 79
4.3 Compatibility and interworking issues 82
4.3.1 Requirements for compatibility 83
4.3.2 Network interconnection 84
4.3.3 System interworking and adaptation 88
5. Message transport requirements and data transmission networks 93
5.1 Message transport requirements 93
5.2 Data transmission services 95
5.2.1 Dedicated circuits 95
5.2.2 Switching 96
5.2.3 Circuit and packet switching 96
5.3 The transport protocol 97
6. Link protocols 99
6.1 Transmission of bits 100
6.1.1 Interface procedures 100
IX
6.1.2 Physical transmission media 101
6.1.3 Bit synchronization 103
6.2 Transparency and framing 106
6.2.1 Bit-oriented method 107
6.2.2 Character-oriented method 108
6.2.3 Method based on envelope transmission 109
6.3 Transmission error detection and correction 109
6.3.1 Principles 109
6.3.2 Error detecting codes 113
6.3.3 Error correcting codes 116
6.4 Retransmission protocols 116
6.4.1 Principles 116
6.4.2 The "alternating bit" protocol 119
6.4.3 The HDLC classes of procedures 122
6.4.4 Multiplexing 128
7. Technological developments and standards 134
PART III: FORMAL DESCRIPTION TECHNIQUES 137
8. Role of specifications in the design of distributed 138
. systems
8.1 Specification of different scope and detail 139
8.1.1 The "reference model" 140
8.1.2 Service specifications 140
8.1.3 Protocol specifications 143
8.1.4 Implementation specifications 143
8.2 System design validation 144
8.3 Protocol impleme~tation assessment 146
8.4 Protocol implementation 148
9, A state transition formalism for the description of systems 151
9.1 The basic model 151
9.1.1 Transition systems 151
9.1.2 Operations 152
9.1'.3 Transitions and relations between states 152
9.1.4 Abstraction 155
9.1. 5 Parallelism and functionality . 157
x
9.2 Reachability and execution sequences 159
9.2.1 Possible operation sequences 159
9.2.2 Liveness 161
9.2.3 Equivalence between systems 162
9.3 Synchronization mechanisms 162
9.4 Non-instantaneous operations 166
9.4.1 Mutual exclusion 166
9.4.2 Queueing condiserations and scheduling 168
9.5 Processes 169
9.5.1 The concept 170
9.5.2 Cooperation 171
9.5.3 Mutual exclusion 176
9.6 The induction principle 178
9.7 Distinction between "control structure" and "interpreta-
tion" 179
9.8 Assertions 183
9.9 Formalized specification methods for systems with paral-
lelism 186
10. A formal description technique for distributed systems 190
10.1 Discussion of specification concepts 190
10.1.1 Components and their interactions 190
10.1.2 Ports and interconnections 191
10.1.3 El~ments of a specification 193
10.2 A transport service specification 194
10.2.1 Ports and interaction primitives 195
10.2.2 Local rules for a service access point 197
10.2.3 Specification of the service provider component 199
10.3 Step-wise refinement of specifications 202
10.3.1 The internal structure of components: examples 202
10.3.2 Comme~ts on component substructure 205
10.3.3 Port refinements 206
Xl
References 210
Annex: Possible approaches to stepwise refinement, protocol
specification and implementation 221
Annex 1: A general transition model for protocols and
communication services (G.v. Bochmann) 222
Annex 2: Development and structure of an X.25 implementation
(G.v. Bochmann and J. Tankoano) 230
Annex 3: Structured specification of communicating systems
(G.v. Bochmann and M. Raynal) 238