Download Distributed Computing Paradigms - Lecture Slides | CECS 327 and more Study notes Computer Science in PDF only on Docsity!
Distributed Computing
Paradigms
Instructor: Dr. Jeho Park
CECS 327 Net-centric Computing
California State University, Long Beach
Previously...
Synchronous/Asynchronous
Event Diagram
Sequence Diagram
Data representation
Data marshalling
Flattening (serializing) and converting (encoding)
Paradigm means “a pattern, example, or model.”
Characteristics that distinguish distributed applications
from conventional single-machine applications:
- 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 and receiving of data among the participants of a
distributed application must be synchronized.
Paradigms and Abstraction
5
Abstraction is the idea of detail hiding.
To quote David J. Barnes
1
We often use 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 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
built without the developer having to be cognizant of some of
the underlying complexities.
Abstractions?
Message passing is the most fundamental paradigm for distributed applications.
- A process (sender) 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 Passing Paradigm - 1
The basic operations required to support the basic
message passing paradigm are send , and receive.
For 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 socket application programming interface is
based on this paradigm.
The Message Passing Paradigm - 2
- The best known paradigm for network applications
- The client-server model assigns asymmetric roles to two collaborating 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. The Client-Server Paradigm - 1
11
- Simple in concept, the client-server model provides an efficient abstraction for the delivery of network services.
- Operations required
- A server process -- listen and accept requests
- A client process -- issue requests and accept responses.
- Many Internet services are client-server applications. These services are often known by the protocol that the application implements. Well known Internet services include HTTP, FTP, DNS, finger, gopher, etc. The Client-Server Paradigm - 2
In system architecture and networks, peer-to-peer
is an architecture where computer resources and
services are direct exchanged 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.
The Peer-to-Peer Paradigm - 1
In the peer-to-peer paradigm, the participating processes play equal roles, with equivalent capabilities and responsibilities (hence the term “peer”). Each participant may issue a request to another participant and receive a response. The Peer-to-Peer Paradigm - 2
Pure P2P architecture
- no always-on server
- arbitrary end systems directly communicate
- peers are intermittently connected and change IP addresses peer-peer Reference: Computing Networking by Kurose and Ross
P2P: centralized index original “Napster” design
- when peer connects, it informs central server: IP address content
- Alice queries for “Hey Jude”
- Alice requests file from Bob centralized directory server peers Alice Bob 1 1 1 (^21) 3 Reference: Computing Networking by Kurose and Ross
File distribution: BitTorrent
tracker: tracks peers
participating in torrent
torrent: group of
peers exchanging chunks of a file obtain list of peers trading chunks peer ρ P2P file distribution Reference: Computing Networking by Kurose and Ross
BitTorrent (1)
- file divided into 256KB chunks.
- peer joining torrent:
- has no chunks, but will accumulate them over time
- registers with tracker to get list of peers, connects to subset of peers (“neighbors”)
- while downloading, peer uploads chunks to other peers.
- peers may come and go
- once peer has entire file, it may (selfishly) leave or (altruistically) remain Reference: Computing Networking by Kurose and Ross