Communication, Services, and Coordination. Communication and Coordination The Internet Architectures for coordination? What assumptions can we make: -

Slides:



Advertisements
Similar presentations
Jaringan Informasi Pengantar Sistem Terdistribusi oleh Ir. Risanuri Hidayat, M.Sc.
Advertisements

Distributed components
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
CSE 291 System Services for the World Wide Web Winter 2000 Geoffrey M. Voelker.
Layer 7- Application Layer
Introduction to Web Database Processing
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Networks: HTTP and DNS1 The Internet and HTTP and DNS Examples.
Networks: HTTP and DNS 1 The Internet and HTTP and DNS Examples.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Overview Distributed vs. decentralized Why distributed databases
Introduction to Web Interface Technology (CSE2030)
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Definitions, Definitions, Definitions Lead to Understanding.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
Data Networking Fundamentals Unit 7 7/2/ Modified by: Brierley.
Chapter 4: Core Web Technologies. Contents - Chapter 1 o Exchanging information over the Internet ÞHTTP, HTML ÞURI, URI ÞWeb server, web browser o Web.
Application Layer. Domain Name System Domain Name System (DNS) Problem – Want to go to but don’t know the IP addresswww.google.com Solution.
Client-Server Processing and Distributed Databases
©Brooks/Cole, 2003 Chapter 6 Computer Networks. ©Brooks/Cole, 2003 Understand the rationale for the existence of networks. Distinguish between the three.
1 TCP/IP architecture A set of protocols allowing communication across diverse networks Out of ARPANET Emphasize on robustness regarding to failure Emphasize.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
SMUCSE 4344 application layer. SMUCSE 4344 application vs. application-layer protocols application-layer protocol is just one piece –how the end hosts.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Chapter 4: Core Web Technologies
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
1 G52IWS: Distributed Computing Chris Greenhalgh.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
CS4273: Distributed System Technologies and Programming Lecture 13: Review.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 7: HTTP and CGI Fundamentals of Web Programming.
TCP/IP Transport and Application (Topic 6)
CS1Q Computer Systems Lecture 17 Simon Gay. Lecture 17CS1Q Computer Systems - Simon Gay2 The Layered Model of Networks It is useful to think of networks.
1 Welcome to CSC 301 Web Programming Charles Frank.
A.Obaid - Wilfried Probst - Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES1 Chapter 1. Distributed systems: Definitions, design.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
1 Seminar on Service Oriented Architecture Principles of REST.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
1 Distributed Systems Distributed Web-Based Systems Chapter 12.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Web Services. 2 Internet Collection of physically interconnected computers. Messages decomposed into packets. Packets transmitted from source to destination.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Computer Network Architecture Lecture 6: OSI Model Layers Examples 1 20/12/2012.
09/13/04 CDA 6506 Network Architecture and Client/Server Computing Peer-to-Peer Computing and Content Distribution Networks by Zornitza Genova Prodanoff.
Ch 2. Application Layer Myungchul Kim
COMPUTER NETWORKS Hwajung Lee. Image Source:
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Communication Networks NETW 501 Tutorial 2
Internet and Distributed Application Services
Presentation on Distributed Web Based Systems Submitted by WWW
WWW and HTTP King Fahd University of Petroleum & Minerals
HTTP and the Dynamic Web
#01 Client/Server Computing
The Internet and HTTP and DNS Examples
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
#01 Client/Server Computing
Presentation transcript:

Communication, Services, and Coordination

Communication and Coordination The Internet Architectures for coordination? What assumptions can we make: - about the network? -about the nodes? How do these properties affect the software and its behavior?

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

How does the Web work? The canonical example in your Web browser Click here “here” is a Uniform Resource Locator (URL) It names the location of an object (document) on a server. [courtesy of Geoff Voelker]

In Action… ClientServer 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]

HTTP in a Nutshell HTTP supports request/response message exchanges of arbitrary length. Small number of request types: basically GET and POST, with supplements. object name, + content for POST optional query string optional request headers Responses are self-typed objects (documents) with attributes and tags. optional cookies optional response headers GET /path/to/file/index.html HTTP/1.0 Content-type: MIME/html, Content-Length: 5000,... Client Server

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

Multi-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.

Review: Network Protocols Link Network Transport Session Presentation Application L2 L3 L4 L5-7 Ether IPv4, IPv6 TCP HTTP MIME, SSL SOAP, etc. L7 Ether IPv4, IPv6 UDP,TCP DNS, etc.

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.

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]

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.

Internet Growth and Scale The Internet How to handle all those client requests raining on your server?

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

Scaling Services: Replication Internet 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 ?

Scaling with Peer-to-Peer Internet 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

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

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?