Communication, Services, and Coordination Communication, Services, - - PowerPoint PPT Presentation

communication services and coordination communication
SMART_READER_LITE
LIVE PREVIEW

Communication, Services, and Coordination Communication, Services, - - PowerPoint PPT Presentation

Communication, Services, and Coordination Communication, Services, and Coordination Communication and Coordination Communication and Coordination Architectures for coordination? What assumptions can we make: - about the network? The I nternet


slide-1
SLIDE 1

Communication, Services, and Coordination Communication, Services, and Coordination

slide-2
SLIDE 2

Communication and Coordination Communication and Coordination

The I nternet The I nternet Architectures for coordination? What assumptions can we make:

  • about the network?
  • about the nodes?

How do these properties affect the software and its behavior?

slide-3
SLIDE 3

Services Services

request/response paradigm ==> client/server roles

  • Remote Procedure Call (RPC)
  • object invocation, e.g., Remote Method Invocation (RMI)
  • HTTP (the Web)
  • device protocols (e.g., SCSI)

“Do A for me.” “OK, here’s your answer.” “Now do B.” “OK, here.”

Client Server

slide-4
SLIDE 4

How does the Web work? How does the Web work?

The canonical example in your Web browser

Click here

“here” is a Uniform Resource Locator (URL)

http://www-cse.ucsd.edu

It names the location of an object (document) on a server.

[courtesy of Geoff Voelker] voelker@cs.ucsd.edu

slide-5
SLIDE 5

In Action… In Action…

Client Server

http://www-cse.ucsd.edu

  • Client uses DNS to resolves name of server (www-cse.ucsd.edu)
  • Establishes an HTTP connection with the server over TCP/IP
  • Sends the server the name of the object (null)
  • Server returns the object

HTTP

[Voelker]

slide-6
SLIDE 6

HTTP in a Nutshell HTTP in a Nutshell

HTTP supports request/response message exchanges of arbitrary length. Small number of request types: basically GET and POST, with supplements.

  • bject name, + content for POST
  • ptional query string
  • ptional request headers

Responses are self-typed objects (documents) with attributes and tags.

  • ptional cookies
  • ptional response headers

GET /path/to/file/index.html HTTP/1.0 Content-type: MIME/html, Content-Length: 5000,...

Client Server

slide-7
SLIDE 7

The Dynamic Web The Dynamic Web

HTTP began as a souped-up FTP that supports hypertext URLs. Service builders rapidly began using it for dynamically-generated content. Web servers morphed into Web Application Servers.

Common Gateway Interface (CGI) Java Servlets and JavaServer Pages (JSP) Microsoft Active Server Pages (ASP) “Web Services”

GET program-name?arg1=x&arg2=y Content-type: MIME/html, Content-Length: 5000,...

execute program

Client Server

slide-8
SLIDE 8

Multi Multi-

  • tier Services

tier Services

Web application server relational databases Clients

HTTP

file servers

e.g., component “middleware” transaction monitors

middle tiers

HTTP RPC, RMI IIOP DCOM, EJB, CORBA, etc. JNDI, JDBC,SQL HTML+forms, applets, JavaScript, etc.

slide-9
SLIDE 9

Review: Network Protocols Review: Network Protocols

Link Network Transport Session Presentation Application L2 L3 L4 L5- 7 Ether I Pv4, I Pv6 TCP HTTP MI ME, SSL SOAP, etc. L7 Ether I Pv4, I Pv6 UDP, TCP DNS, etc.

slide-10
SLIDE 10

Assumptions About the Network Assumptions About the Network

Most of what we study in this class is at the session or presentation levels of the OSI “layer cake”. We assume properties of the transport and network layers:

  • uniform network address space (IP address, port)
  • best-effort delivery of messages of arbitrary size
  • reliable ordered stream communication (TCP)
  • flow and congestion control

The key issue is: how to use the network to build networked applications and services with the properties we want?

In practice, many critical structuring and performance issues do not permit us to draw so clean a line...but we’ll try.

slide-11
SLIDE 11

Web Protocols Web Protocols

What kind of transport protocol should the Web use? HTTP 1.0

  • One TCP connection per request
  • Complaints: inefficient, slow, burdensome…

HTTP 1.1

  • One TCP connection/many requests (persistent connections)
  • Solves all problems, right? Huge amount of complexity

Clients, proxies, servers

How do they compare?

  • Protocol differences [Krishnamurthy99], performance comparison

[Nielsen97], effects on servers [Manley97], overhead of TCP connections [Caceres98]

HTTPS: HTTP with authentication and encryption

[Voelker]

slide-12
SLIDE 12

Persistent Connections Persistent Connections

There are three key performance reasons for persistent connections:

  • connection setup overhead
  • TCP slow start: just do it and get it over with
  • pipelining as an alternative to multiple connections

And some new complexities resulting from their use, e.g.:

  • request/response framing and pairing
  • unexpected connection breakage

Just ask anyone from Akamai...

  • large numbers of active connections

How long to keep connections around?

These motivations and issues manifest in HTTP, but they are fundamental for request/response messaging over TCP.

slide-13
SLIDE 13

Internet Growth and Scale Internet Growth and Scale

http://www.netsizer.com

The I nternet The I nternet

How to handle all those client requests raining on your server?

slide-14
SLIDE 14

Scaling Server Sites: Clustering Scaling Server Sites: Clustering

server array Clients

L4: TCP L7: HTTP SSL etc.

Goals server load balancing failure detection access control filtering priorities/QoS request locality transparent caching smart switch

virtual IP addresses (VIPs)

What to switch/filter on? L3 source IP and/or VIP L4 (TCP) ports etc. L7 URLs and/or cookies L7 SSL session IDs

slide-15
SLIDE 15

Scaling Services: Replication Scaling Services: Replication

I nternet I nternet Distribute service load across multiple sites. How to select a server site for each client or request? Is it scalable? Client Site A Site B ?

slide-16
SLIDE 16

Scaling with Peer Scaling with Peer-

  • to

to-

  • Peer

Peer

I nternet I nternet Is (e.g.) Napster a service? Is the peer-to-peer approach fundamentally more scalable? More robust? What does it assume about the clients? Peers

slide-17
SLIDE 17

Coordination Coordination

If the solution to availability and scalability is to decentralize and replicate functions and data, how do we coordinate the nodes?

  • data consistency
  • update propagation
  • mutual exclusion
  • consistent global states
  • group membership
  • group communication
  • event ordering
  • distributed consensus
  • quorum consensus
slide-18
SLIDE 18

Fundamental Questions Fundamental Questions

Synchronous vs. asynchronous

  • Are the node clocks synchronized? Is there a bound on drift?
  • How long can messages be delayed?
  • How long can it take a node to respond to a message?

Failure model:

  • Is message delivery reliable?
  • Do failed nodes:

Stop forever? (fail-stop) Restart in initial state? Restart and recover some previous state? Behave in an unpredictable fashion (byzantine)? Lie about identity and/or corrupt messages from other nodes?

  • How long can recovery be delayed?