《分布式计算原理与应用(Distributed Computing)第三章课件》由会员分享,可在线阅读,更多相关《分布式计算原理与应用(Distributed Computing)第三章课件(34页珍藏版)》请在金锄头文库上搜索。
1、1/2/2018,Distributed Computing Paradigms, M. Liu,1,Distributed Computing Paradigms,Mei-Ling Liu,1/2/2018,Distributed Computing Paradigms, M. Liu,2,Paradigms for Distributed Applications,Paradigm means “a pattern, example, or model.” In the study of any subject of great complexity, it is useful to id
2、entify the basic patterns or models, and classify the detail according to these models. This paper aims to present a classification of the paradigms for distributed applications. Characteristics that distinguish distributed applications from conventional applications which run on a single machine. T
3、hese characteristics are:Interprocess communication: A distributed application require the participation of two or more independent entities (processes). To do so, the processes must have the ability to exchange data among themselves. Event synchronization: In a distributed application, the sending
4、and receiving of data among the participants of a distributed application must be synchronized.,1/2/2018,Distributed Computing Paradigms, M. Liu,3,Abstractions,Arguably the most fundamental concept in computer science, abstraction is the idea of detail hiding. To quote David J. Barnes1: We often use
5、 abstraction when it is not necessary to know the exact details of how something works or is represented, because we can still make use of it in its simplified form. Getting involved with the detail often tends to obscure what we are trying to understand, rather than illuminate it Abstraction plays
6、a very important role in programming because we often want to model, in software, simplified versions of things that exist in the real world without having to build the real things.In software engineering, abstraction is realized with the provision of tools or facilities which allow software to be b
7、uilt without the developer having to be cognizant of some of the underlying complexities.,1/2/2018,Distributed Computing Paradigms, M. Liu,4,Distributed Application Paradigms,1/2/2018,Distributed Computing Paradigms, M. Liu,5,The Message Passing Paradigm,Message passing is the most fundamental parad
8、igm for distributed applications. A process sends a message representing a request. The message is delivered to a receiver, which processes the request, and sends a message in response. In turn, the reply may trigger a further request, which leads to a subsequent reply, and so forth. The message-,1/
9、2/2018,Distributed Computing Paradigms, M. Liu,6,The Message Passing Paradigm - 2,Message passing is the most fundamental paradigm for distributed applications. A process sends a message representing a request. The message is delivered to a receiver, which processes the request, and sends a message
10、in response. In turn, the reply may trigger a further request, which leads to a subsequent reply, and so forth. -,1/2/2018,Distributed Computing Paradigms, M. Liu,7,The Message Passing Paradigm - 3,The basic operations required to support the basic message passing paradigm are send, and receive. For
11、 connection-oriented communication, the operations connect and disconnect are also required. With the abstraction provided by this model, the interconnected processes perform input and output to each other, in a manner similar to file I/O. The I/O operations encapsulate the detail of network communi
12、cation at the operating-system level.The socket application programming interface is based on this paradigm. http:/ Computing Paradigms, M. Liu,8,The Client-Server Paradigm,Perhaps the best known paradigm for network applications, the client-server2 model assigns asymmetric roles to two collaboratin
13、g processes. One process, the server, plays the role of a service provider which waits passively for the arrival of requests. The other, the client, issues specific requests to the server and awaits its response.,1/2/2018,Distributed Computing Paradigms, M. Liu,9,The Client-Server Paradigm - 2,Simpl
14、e in concept, the client-server model provides an efficient abstraction for the delivery of network services. Operations required include those for a server process to listen and to accept requests, and for a client process to issue requests and accept responses. By assigning asymmetric roles to the
15、 two sides, event synchronization is simplified: the server process waits for requests, and the client in turn waits for responses.Many Internet services are client-server applications. These services are often known by the protocol that the application implements. Well known Internet services inclu
16、de HTTP, FTP, DNS, finger, gopher, etc.,1/2/2018,Distributed Computing Paradigms, M. Liu,10,The Peer-to-Peer System Architecturehttp:/www.peer-to-peerwg.org/whatis/index.html,In system architecture and networks, peer-to-peer is an architecture where computer resources and services are direct exchang
17、ed between computer systems. These resources and services include the exchange of information, processing cycles, cache storage, and disk storage for files.In such an architecture, computers that have traditionally been used solely as clients communicate directly among themselves and can act as both clients and servers, assuming whatever role is most efficient for the network.,