没有合适的资源?快使用搜索试试~ 我知道了~
首页第五版《分布式系统概念与设计》详解
第五版《分布式系统概念与设计》详解
4星 · 超过85%的资源 需积分: 16 28 下载量 101 浏览量
更新于2024-07-17
收藏 10.81MB PDF 举报
《分布式系统:概念与设计第五版》是一本由乔治·库卢里斯、卡姆bridge大学的Jean Dollimore(现已转至伦敦玛丽女王大学)、蒂姆·金德伯格(来自matter2media)和兰开斯特大学的戈登·布莱尔共同编撰的权威著作。本书详细探讨了分布式系统的概念和设计,是深入理解分布式计算架构和技术的必备参考书籍。 第五版的内容涵盖了分布式系统的核心概念,包括分布式环境中的通信机制、一致性问题、分布式数据存储、网络拓扑结构、分布式计算模型(如客户机/服务器模式、对等网络、微服务架构等)、以及分布式系统的性能、可靠性和安全性等关键要素。书中不仅理论阐述深入,还通过实例和案例分析来帮助读者掌握实践应用。 在编写过程中,本书得到了Marcia Horton担任编辑总监,Michael Hirsch任主编,Matt Goldstein执行主编的团队协作,Chelsea Bell作为编辑助理,以及多个营销、生产和印刷团队的支持。作者们利用丰富的学术背景和实践经验,确保了内容的专业性和实用性,适合计算机科学、软件工程和系统架构师等专业人士学习,同时也为研究生和高级工程师提供了深入研究的基础。 此外,书中的插图、图表和实际图片如天空、风筝、手机等元素,有助于读者更好地理解和想象分布式系统的运作。全书布局清晰,易于阅读,旨在帮助读者全面掌握分布式系统的设计原则和挑战,以便他们在构建和管理大规模、分布式系统时能够做出明智决策。 《分布式系统:概念与设计第五版》是一本集理论与实践于一体,深入浅出的教材,对于想要在这个快速发展的领域保持竞争力的读者来说,无疑是一份宝贵的参考资料。
资源详情
资源推荐
XIV PREFACE
only on the Web. They can be looked up in the reference list at the end of the book, but
the full URLs are given only in an online version of the reference list at the book’s web
site, www.cdk5.net/refs
where they take the form of clickable links. Both versions of the
reference list include a more detailed explanation of this scheme.
Changes relative to the fourth edition
Before embarking on the writing of this new edition, we carried out a survey of teachers
who used the fourth edition. From the results, we identified the new material required
and a number of changes to be made. In addition, we recognized the increasing diversity
of distributed systems, particularly in terms of the range of architectural approaches
available to distributed systems developers today. This required significant changes to
the book, especially in the earlier (foundational) chapters.
Overall, this led to our writing three entirely new chapters, making substantial
changes to a number of other chapters and making numerous insertions throughout the
book to fold in new material. Many of the chapters have been changed to reflect new
information that has become available about the systems described. These changes are
summarized in the table below. To help teachers who have used the fourth edition,
wherever possible we have preserved the structure adopted from the previous edition.
Where material has been removed, we have placed this on our companion web site
together with material removed from previous editions. This includes the case studies
on ATM, interprocess communication in UNIX, CORBA (a shortened version of which
remains in Chapter 8), the Jini distributed events specification and Grid middleware
(featuring OGSA and the Globus toolkit), as well as the chapter on distributed shared
memory (a brief summary of which is now included in Chapter 6).
Some of the chapters in the book, such as the new chapter on indirect
communication (Chapter 6), cover a lot of material. Teachers may elect to cover the
broad spectrum before choosing two or three techniques to examine in more detail (for
example, group communication, given its foundational role, and publish-subscribe or
message queues, given their prevalence in commercial distributed systems).
The chapter ordering has been changed to accommodate the new material and to
reflect changes in the relative importance of certain topics. For a full understanding of
some topics readers may find it necessary to follow a forward reference. For example,
there is material in Chapter 9 on XML security techniques that will make better sense
once the sections that it references in Chapter 11 Security have been absorbed.
Acknowledgements
We are very grateful to the following teachers who participated in our survey: Guohong
Cao, Jose Fortes, Bahram Khalili, George Blank, Jinsong Ouyang, JoAnne Holliday,
George K. Thiruvathukal, Joel Wein, Tao Xie and Xiaobo Zhou.
We would like to thank the following people who reviewed the new chapters or
provided other substantial help: Rob Allen, Roberto Baldoni, John Bates, Tom Berson,
Lynne Blair, Geoff Coulson, Paul Grace, Andrew Herbert, David Hutchison, Laurent
Mathy, Rajiv Ramdhany, Richard Sharp, Jean-Bernard Stefani, Rip Sohan, Francois
New chapters:
6 Indirect Communication Includes events and notification from 4th edition.
8 Distributed Objects and
Components
Includes a precised version of the CORBA case
study from the 4th edition.
21 Designing Distributed Systems Includes a major new case study on Google
Chapters which have undergone substantial changes:
1 Characterization of DS Significant restructuring of material
New Section 1.2: Examples of distributed systems
Section 1.3.4: Cloud computing introduced
2 System Models Significant restructuring of material
New Section 2.2: Physical models
Section 2.3: Major rewrite to reflect new book
content and associated architectural perspectives
4 Interprocess Communication Several updates
Client-server communication moved to Chapter 5
New Section 4.5: Network virtualization (includes
case study on Skype)
New Section 4.6: Case study on MPI
Case study on IPC in UNIX removed
5 Remote Invocation Significant restructuring of material
Client-server communication moved to here
Progression introduced from client-server
communication through RPC to RMI
Events and notification moved to Chapter 6
Chapters to which new material has been added/removed, but without structural changes:
3 Networking and Internetworking Several updates
Section 3.5: material on ATM removed
7 Operating System Support New Section 7.7: OS virtualization
9 Web Services Section 9.2: Discussion added on loose coupling
10 Peer-to-Peer Systems New Section 10.5.3: Unstructured peer-to-peer
(including a new case study on Gnutella)
15 Coordination and Agreement Material on group communication moved to Ch. 6
18 Replication Material on group communication moved to Ch. 6
19 Mobile and Ubiquitous Computing Section 19.3.1: New material on tuple spaces
(TOTA and L
2
imbo)
20 Distributed Multimedia Systems Section 20.6: New case studies added on
BitTorrent and End System Multicast
The remaining chapters have received only minor modifications.
PREFACE XV
XVI PREFACE
Taiani, Peter Triantafillou, Gareth Tyson and the late Sir Maurice Wilkes. We would
also like to thank the staff at Google who provided insights into the design rationale for
Google Infrastructure, namely: Mike Burrows, Tushar Chandra, Walfredo Cirne, Jeff
Dean, Sanjay Ghemawat, Andrea Kirmse and John Reumann.
Our copy editor, Rachel Head also provided outstanding support.
Web site
As before, we continue to maintain a web site with a wide range of material designed to
assist teachers and readers. This web site can be accessed via the URL:
www.cdk5.net
The web site includes:
Instructor’s Guide: We provide supporting material for teachers comprising:
• complete artwork of the book available as PowerPoint files;
• chapter-by-chapter teaching hints;
• solutions to the exercises, protected by a password available only to teachers.
Reference list: The list of references that can be found at the end of the book is replicated
at the web site. The web version of the reference list includes active links for material
that is available online.
Errata list: A list of known errors in the book is maintained, with corrections. The errors
will be corrected when new impressions are printed and a separate errata list will be
provided for each impression. (Readers are encouraged to report any apparent errors
they encounter to the email address below.)
Supplementary material: We maintain a set of supplementary material for each chapter.
This consists of source code for the programs in the book and relevant reading material
that was present in previous editions of the book but was removed for reasons of space.
References to this supplementary material appear in the book with links such as
www.cdk5.net/ipc
(the URL for supplementary material relating to the Interprocess
Communication chapter). Two entire chapters from the 4th edition are not present in this
one; they can be accessed at the URLs:
CORBA Case Study www.cdk5.net/corba
Distributed Shared Memory www.cdk5.net/dsm
George Coulouris
Jean Dollimore
Tim Kindberg
Gordon Blair
London, Bristol and Lancaster, 2011
authors@cdk5.net
1
1
CHARACTERIZATION OF
DISTRIBUTED SYSTEMS
1.1 Introduction
1.2 Examples of distributed systems
1.3 Trends in distributed systems
1.4 Focus on resource sharing
1.5 Challenges
1.6 Case study: The World Wide Web
1.7 Summary
A distributed system is one in which components located at networked computers
communicate and coordinate their actions only by passing messages. This definition
leads to the following especially significant characteristics of distributed systems:
concurrency of components, lack of a global clock and independent failures of
components.
We look at several examples of modern distributed applications, including web
search, multiplayer online games and financial trading systems, and also examine the key
underlying trends driving distributed systems today: the pervasive nature of modern
networking, the emergence of mobile and ubiquitous computing, the increasing
importance of distributed multimedia systems, and the trend towards viewing distributed
systems as a utility. The chapter then highlights resource sharing as a main motivation for
constructing distributed systems. Resources may be managed by servers and accessed
by clients or they may be encapsulated as objects and accessed by other client objects.
The challenges arising from the construction of distributed systems are the
heterogeneity of their components, openness (which allows components to be added or
replaced), security, scalability – the ability to work well when the load or the number of
users increases – failure handling, concurrency of components, transparency and
providing quality of service. Finally, the Web is discussed as an example of a large-scale
distributed system and its main features are introduced.
2 CHAPTER 1 CHARACTERIZATION OF DISTRIBUTED SYSTEMS
1.1 Introduction
Networks of computers are everywhere. The Internet is one, as are the many networks
of which it is composed. Mobile phone networks, corporate networks, factory networks,
campus networks, home networks, in-car networks – all of these, both separately and in
combination, share the essential characteristics that make them relevant subjects for
study under the heading distributed systems. In this book we aim to explain the
characteristics of networked computers that impact system designers and implementors
and to present the main concepts and techniques that have been developed to help in the
tasks of designing and implementing systems that are based on them.
We define a distributed system as one in which hardware or software components
located at networked computers communicate and coordinate their actions only by
passing messages. This simple definition covers the entire range of systems in which
networked computers can usefully be deployed.
Computers that are connected by a network may be spatially separated by any
distance. They may be on separate continents, in the same building or in the same room.
Our definition of distributed systems has the following significant consequences:
Concurrency: In a network of computers, concurrent program execution is the norm.
I can do my work on my computer while you do your work on yours, sharing
resources such as web pages or files when necessary. The capacity of the system to
handle shared resources can be increased by adding more resources (for example.
computers) to the network. We will describe ways in which this extra capacity can be
usefully deployed at many points in this book. The coordination of concurrently
executing programs that share resources is also an important and recurring topic.
No global clock: When programs need to cooperate they coordinate their actions by
exchanging messages. Close coordination often depends on a shared idea of the time
at which the programs’ actions occur. But it turns out that there are limits to the
accuracy with which the computers in a network can synchronize their clocks – there
is no single global notion of the correct time. This is a direct consequence of the fact
that the only communication is by sending messages through a network. Examples of
these timing problems and solutions to them will be described in Chapter 14.
Independent failures: All computer systems can fail, and it is the responsibility of
system designers to plan for the consequences of possible failures. Distributed systems
can fail in new ways. Faults in the network result in the isolation of the computers that
are connected to it, but that doesn’t mean that they stop running. In fact, the programs
on them may not be able to detect whether the network has failed or has become
unusually slow. Similarly, the failure of a computer, or the unexpected termination of
a program somewhere in the system (a crash), is not immediately made known to the
other components with which it communicates. Each component of the system can fail
independently, leaving the others still running. The consequences of this characteristic
of distributed systems will be a recurring theme throughout the book.
The prime motivation for constructing and using distributed systems stems from a desire
to share resources. The term ‘resource’ is a rather abstract one, but it best characterizes
the range of things that can usefully be shared in a networked computer system. It
剩余1066页未读,继续阅读
weixin_39849306
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功