understanding networked applications: a first course chapter 11 by david g. messerschmitt

22
Understanding Networked Applications: A First Course Chapter 11 by David G. Messerschmitt

Post on 22-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Understanding Networked Applications:A First Course

Chapter 11

by

David G. Messerschmitt

Understanding Networked Applications:A First Course

Algorithms and protocols

by

David G. Messerschmitt

Understanding Networked Applications A First Course3

Algorithm

• Specified sequence of steps that– accomplish a designated task– in a finite number of steps

• Representation:– simple algorithm: flowchart– complicated algorithm: program

Understanding Networked Applications A First Course4

Startturn

Throwdice

Move token numberof squares indicated

on dice

Land on “goto jail”?

Move to“jail” square

Do not move;follow policies

for square(like “pay rent”)

Finishturn

Yes

No

Example: one turn at monopoly

Understanding Networked Applications A First Course5

Start

Action

Action

Action

Finish

Decision

Finish

ActionAction

Start

Finish

Test

Action

Start

Sequence Selection Loop

Algorithm building blocks

Programming languages support these three building blocks

Understanding Networked Applications A First Course6

Protocol

• Distributed algorithm realized by two or more modules to coordinate their actions or accomplish some shared task

• Module interoperability requires a protocol– Prescribed order of method invocations– Part of interface documentation

Understanding Networked Applications A First Course7

Player 1 Player 2

Time

One-turnalgorithm

Monopoly players protocol

This is a protocol interaction diagram

Understanding Networked Applications A First Course8

Application and infrastructure

Internally, the networkuses protocolsto implement the services it provides

The application defines its ownapplication-level protocols

Understanding Networked Applications A First Course9

Three simple protocols

• One-way message: send-receive

• Two-way interaction: request-response

• Push: publish-subscribe

Understanding Networked Applications A First Course10

Client Server

Time

sendreceive

request

response

subscribe

responses

Understanding Networked Applications A First Course11

HTTP serverHTTP client

(browser)

HTML documents

User activates URL HTTP request

HTTP response(embedded document)

Browser displaysdocument (if HTML)or invokes “helper application”

Example: HTTP

Understanding Networked Applications A First Course12

Example: Stock trading

What is application protocol?

StockTraderCustomer

Customer wants to purchase 10 shares of MSFT if price is below $90

Understanding Networked Applications:A First Course

Locating things

by

David G. Messerschmitt

Understanding Networked Applications A First Course14

Three ways of locating things

• Name– “Joe Bloe”

• Address– “1299 Hearst St, Berkeley, CA”

• Reference– “Postmaster of Berkeley CA”

Understanding Networked Applications A First Course15

Name

• Symbolic (character string) representation

• Easy for people to remember or guess

• Identifies but does not locate directly– Distinction important for mobile entities

• Not unique: entities can have more than one name (called aliases)

Understanding Networked Applications A First Course16

Hierarchical names

• Hierarchy makes names easier to remember or guess

• Host domain names:– “info.sims.berkeley.edu”– designates administrative hierarchy

• File names:– “c:\My Documents\Docs\Resume.doc”– designates folder hierarchy

Understanding Networked Applications A First Course17

Address

• Route or path to entity– is directly specified, or– can be inferred

• Independent of who or what is locating entity

• Topological specification

Understanding Networked Applications A First Course18

Example

1

2

3

4

Path from to is (1,2,2,2,1,1,1,1)

Not an address, because it depends on starting point

Understanding Networked Applications A First Course19

Example

Address of is (2,5)

(1,1) (1,2) (1,3) (1,4) (1,4)

(2,1)

(2,2)

(2,3)

(2,4)

(2,5)

Route from can be inferred

Understanding Networked Applications A First Course20

Reference

• Abstract representation of an entity

• Interaction is with representation– infrastructure arranges redirection to actual

entity– especially appropriate for things that move

Understanding Networked Applications A First Course21

Client Server

address

Reference

Understanding Networked Applications A First Course22

Name services

Nameservice

1. name

2. address or reference

3. interaction