Distributed Computing Paradigms - Lecture Slides | CECS 327, Study notes of Computer Science

Material Type: Notes; Professor: Park; Class: Net-centric Computing; Subject: Computer Engr & Computer Sci; University: California State University - Long Beach; Term: Unknown 1989;

Typology: Study notes

Pre 2010

Uploaded on 08/19/2009

koofers-user-dcx
koofers-user-dcx 🇺🇸

10 documents

1 / 21

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Distributed Computing
Paradigms
Instructor: Dr. Jeho Park
CECS 327 Net-centric Computing
California State University, Long Beach
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Partial preview of the text

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

  1. when peer connects, it informs central server:  IP address  content
  2. Alice queries for “Hey Jude”
  3. 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