分布式系统概念与设计学习(01),本书概要与基础概念
最近開課High Performance Networking, 平時讀讀<<Distributed.Systems.Concepts.and.Design>>這本書, 由于閱讀的是英文版本,我的總結和摘錄也就中英混雜了,還請各位見諒,希望能夠幫助到需要的人。
書本概要:?
We begin with a set of seven chapters that together cover the building blocks for a study of distributed systems. The first two chapters provide a conceptual overview of the subject, outlining the characteristics of distributed systems and the challenges that must be addressed in their design: scalability, heterogeneity, security and failure handling being the most significant. Thesechapters also develop abstract models for understanding process interaction,failure and security. They are followed by other foundational chapters devoted to the study of networking, interprocess communication, remote invocation, indirect communication and operating system support. The next set of chapters covers theimportant topic of middleware, examining different approaches to supportingdistributed applications including distributed objects and components, webservices and alternative peer-to-peer solutions. We then cover the well-establishedtopics of security, distributed file systems and distributed naming beforemoving on to important data-related aspects including distributed transactions anddata replication. Algorithms associated with all these topics are covered as they arise and also in separate chapters devoted to timing, coordination and agreement. The book culminates in chapters that address the emerging areas ofmobile and ubiquitous computing and distributed multimedia systems before presenting a substantial case study focusing on the design and implementation of the distributed systems infrastructure that supports Google both in terms of core search functionality and the increasing range of additional services offered by Google (for example, Gmail and Google Earth). This last chapter has an important role in illustrating how all the architectural concepts, algorithms and technologies introduced in the book can come together in a coherent over all design for a given application domain.
下面這本書的各章節的關系圖
下面是我關于第一張中不熟悉或重要的概念的摘錄:
分布式系統定義:?
A distributed system as one in which hardware or software components located at networked computers communicate and coordinate their actions only by passing messages.
分布式系統的幾個特征:
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.
No global clock: When programs need to cooperate they coordinate their actions by exchanging messages. There is no single global notion of the correct time.
Independent failures: Each component of the system can fail independently, leaving the others still running.
下面是書中的兩個例子, 主要是為了熟悉分布式系統的概念
第一個是在線游戲系統:
The engineering of MMOGs represents a major challenge for distributed systems technologies, particularly because of the need for fast response times to preserve the user experience of the game. Other challenges include the real-time propagation of events to the many players and maintaining a consistent view of the shared world.
A number of solutions have been proposed for the design of massively multiplayer online games:
(1)????Perhaps surprisingly, the largest online game, EVEOnline, utilizes aclient-serverarchitecture where a single copy of the state of the world is maintained on a centralized server and accessed by client programs running on players’ consoles or other devices. To support large numbers of clients, the server is a complex entity in its own right consistingo f a cluster architecture featuring hundreds of computer nodes
(2)????Other MMOGs adopt more distributed architectures where the universe is partitioned across a (potentially very large) number of servers that may also be geographically distributed. Users are then dynamically allocated a particular server based on current usage patterns and also the network delays to the server (based on geographical proximity for example).
第二個是一個金融決策系統: 這個涉及的分布式系統中注意點較多的內容包括異質性,實時性等的處理
Financial Trading Markets, the emphasis in such systems is on the communication and processing of items of interest, known as events in distributed systems, with the need also to deliver events reliably and in a timely manner to potentially very large numbers of clients who have a stated interest in such information items. Examples of such events include a drop in a share price, the release of the latest unemployment figures, and so on. This requires a very different style of underlying architecture from the styles mentioned above (for example client-server), and such systems typically employ what are known as distributed event-based systems.
First, the figure shows the use of adapters which translates heterogeneousformats into a common internal format.
Secondly, the trading system must deal with a variety of event streams,all arriving at rapid rates, and often requiring real-time processing to detectpatterns that indicate trading opportunities. This used to be a manual process but competitive pressures have led to increasing automation in terms of what is known as Complex Event Processing (CEP), which offers a way of composing event occurrences together into logical, temporal or spatial patterns. In such systems, events are typically intercepted and passed through what is equivalent to a compliance and risk firewall before being processed.
下面主要摘錄第一張中幾個重要的(或我不熟悉的)概念
Mobile and ubiquitous computing
Mobile computing is the performance of computing tasks while the user is on the move, or visiting places other than their usual environment.
Ubiquitous computing is the harnessing of many small, cheap computational devices that are present in users’ physical environments,including the home, office and even natural settings. The term ‘ubiquitous’ is intended to suggest that small computing devices will eventually become sopervasive in everyday objects that they are scarcely noticed. That is, their computational behavior will be transparently and intimately tied up with their physical function.
Ubiquitous and mobile computing overlap, since the mobile user can in principle benefit from computers that are everywhere. But they are distinct, in general. Ubiquitous computing could benefit users while they remain in a single environment such as the home or a hospital. Similarly, mobile computing has advantages even if it involves only conventional, discrete computers and devices such as laptops and printers.
我覺得這里的ubiquitous computing就是說固定在機器上的小的網絡器件,能夠反饋信息給我們的移動終端,
The user is in an environment they may never have visited before. That means enabling the visitor’s device to communicate on the host network, and associating the device with suitable local services – a process calledservice discovery.
Spontaneous interoperation, whereby associations between devices are routinely created and destroyed – for exampleby locating and using the host’s devices, such as printers. The main challenge applyingto such situations is to make interoperation fast and convenient.
Cloud computing
Cloud computing is used to capture this vision of computing as a utility.A cloud is defined as a set of Internet-based application, storage and computing services sufficient to support most users’ needs, thus enabling them to largely or totally dispense with local data storage and application software(see Figure below).
Clouds are generally implemented on cluster computers to provide the necessary scale and performance required by such services. Acluster computeris a set of interconnected computers that cooperate closely to provide a single, integrated high performance computing capability.
Blade servers are minimal computational elements containing for example processing and (main memory) storage capabilities. Ablade system consists of a potentially large number of blade servers contained within a blade enclosure. Other elements such as power, cooling, persistent storage(disks), networking and displays, are provided either by the enclosure or through virtualized solutions. Through this solution, individual blade servers can be much smaller and also cheaper to produce than commodity PCs.
Grid computing can also be viewed as a form of cloud computing. The terms are largely synonymous and at times ill-defined, but Grid computing can generally be viewed as a precursor to the more general paradigm of cloud computing with a bias towards support for scientific applications.
Focus on resource sharing
When the client sends a request for an operation to be carried out, we saythat the clientinvokesan operation upon the server. A complete interaction between a client and a server,from the point when the client sends its request to when it receives theserver’s response, is called aremote invocation.
Note that while by default the terms ‘client’ and ‘server’ refer toprocessesrather than thecomputers that they execute upon, in everyday parlance those terms also refer to the computers themselves.
Transparency
As an illustration of access transparency, consider a graphical userinterface with folders, which is the same whether the files inside the folderare local or remote. Another example is an API for files that uses the sameoperations to access both local and remote files (see Chapter 12). As anexample of a lack of access transparency, consider a distributed system thatdoes not allow you to access files on a remote computer unless you make use ofthe ftp program to do so.
Client ServerModel Example: World Wide Web
The browser reads the content returned by the server and renders it intoformatted text and images laid out on a web page in the familiar fashion. Onlythe browser – not the server – interprets the HTML text. But the server doesinform the browser of the type of content it is returning, to distinguish it from,say, a document in Portable Document Format. The server can infer the content type from the file name extension ‘.html’.
總結
以上是生活随笔為你收集整理的分布式系统概念与设计学习(01),本书概要与基础概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式系统的概念
- 下一篇: 分布式系统的概念、特点及常见方案