Client-Server Applications

Similar documents
Client-Server Applications

Network Programming TDC 561

Chapter 3. Internet Applications and Network Programming

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

Tier Architectures. Kathleen Durant CS 3200

The TCP/IP Reference Model

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Stateful Inspection Technology

Client/server is a network architecture that divides functions into client and server

Middleware Lou Somers

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

Network File System (NFS) Pradipta De

Chapter 2: Remote Procedure Call (RPC)

Distributed Systems. Distributed Systems

Network Applications

Distributed Systems. 2. Application Layer

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

ICS 434 Advanced Database Systems

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Infrastructure that supports (distributed) componentbased application development

System types. Distributed systems

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Protocols and Architecture. Protocol Architecture.

Virtual machine interface. Operating system. Physical machine interface

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Designing for Maintainability

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Ingegneria del Software II academic year: Course Web-site: [

A distributed system is defined as

Service-Oriented Architecture and Software Engineering


Client/server and peer-to-peer models: basic concepts

File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

Distributed Objects and Components

Real World Considerations for Implementing Desktop Virtualization

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.

Principles of Network Applications. Dr. Philip Cannata

Distributed Systems. Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets

Transport Layer Protocols

1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet

Chapter 11. User Datagram Protocol (UDP)

Computer Networks. Examples of network applica3ons. Applica3on Layer

Chapter 11: File System Implementation. Operating System Concepts with Java 8 th Edition

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

CITS1231 Web Technologies. Client, Server, the Internet, and the Web

Client/Server and Distributed Computing

DISTRIBUTED AND PARALLELL DATABASE

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

Distributed Systems Lecture 1 1

Introduction to Computer Networks

Pre Sales Communications

The MoCA CIS LIS WSDL Network SOAP/WS

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

Middleware: Past and Present a Comparison

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Client Server Computing

Network/Floating License Installation Instructions

Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX

Objectives of Lecture. Network Architecture. Protocols. Contents

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, Socket Programming

Web Services. Copyright 2011 Srdjan Komazec

CONNECTING WINDOWS XP PROFESSIONAL TO A NETWORK

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

APPLICATION CODE APPLICATION CODE S ERVER PROCESS STUB STUB RPC RUNTIME LIBRARY RPC RUNTIME LIBRARY ENDPOINT MAP ENDPOINT MAP

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

XII. Distributed Systems and Middleware. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

This paper was presented at the 1996 CAUSE annual conference. It is part of the proceedings of that conference, "Broadening Our Horizons:

CSIS CSIS 3230 Spring Networking, its all about the apps! Apps on the Edge. Application Architectures. Pure P2P Architecture

Internet Concepts. What is a Network?

Detailed Table of Contents

Databases Lesson 04 Client Server Computing and Adaptation

Example of Standard API

RVS-Seminar Implementation and Evaluation of WinJTAP Interface. Milan Nikolic Universität Bern

Linux Web Based VPN Connectivity Details and Instructions

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI)

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

Desktop Consolidation. Stéphane Verdy, CTO Devon IT

Network Attached Storage. Jinfeng Yang Oct/19/2015

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

Code and Process Migration! Motivation!

Digital Audio and Video Data

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

Distributed Systems. Outline. What is a Distributed System?

B. WEB APPLICATION ARCHITECTURE MODELS

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP

Fax Server Cluster Configuration

CPS221 Lecture: Layered Network Architecture

Chapter 2: Enterprise Applications from a Middleware Perspective

Distributed Database Design

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

How To Understand The Concept Of A Distributed System

1 Introduction: Network Applications

Exhibit B5b South Dakota. Vendor Questions COTS Software Set

A closer look at HP LoadRunner software

Control and management of privileged users

Transcription:

Client-Server Applications Prof. Sanjeev Setia Distributed Software Systems CS 707 Distributed Software Systems 1 Client Server Systems Distributed Software Systems 2 1

Client/Server Application Distributed Software Systems 3 Overview Common communication patterns in distributed applications Client-Server Group (Multicast) Function-shipping/Applets Client: process that requests service Server: process that provides service Client usually blocks until server responds Distributed Software Systems 4 2

Overview cont d Client usually invoked by end users when they require service Server usually waits for incoming requests Server can have many clients making concurrent requests Server usually a program with special privileges Distributed Software Systems 5 Client and Server Functions Clients interacts with users through a user interface performs application functions interacts with client middleware using middleware API receives response and displays it if needed Servers implement services invoked by server middleware provide error-recovery and failure-handling services Distributed Software Systems 6 3

Middleware Distributed Software Systems 7 Middleware Definitions Middleware is a set of common business-unaware services that enable applications and end-users to interact with each other across a network distributed system services that have standard programming interfaces and protocols services sit in the middle above OS and network software and below industry-specific applications the / in client/server applications software nobody wants to pay for Distributed Software Systems 8 4

Examples ftp, email Web browsers Database drivers and gateways OSF s DCE (Distributed Computing Environment) OMG s CORBA (Common Object Request Broker Architecture) Distributed Software Systems 9 Functional View of Middleware Information exchange services Application-specific services specialized services, e.g. transactional services and replication services for distributed databases, groupware services for collaborative applications, specialized services for multimedia applications business-unaware Management and support services needed for locating distributed resources and administering resources across the network Distributed Software Systems 10 5

Commercial Middleware Middleware components that provide only one service HTTP for retrieving remote documents, SUNRPC for RPC, etc. Middleware environments that combine many services Integrates RPC, security, directory, time and file services DCE, CORBA, Microsoft DCOM,.NET, Java Compound middleware environments that combine many middleware environments into a single framework, e.g. transaction management + RPC/RMI Distributed Software Systems 11 Application Software Architectures Many applications can be considered to be made up of three software components or logical tiers user interface processing layer data layer Client/server architectures single-physical tiered, two-physical tiered multi-tiered Distributed Software Systems 12 6

Gartner Group Configurations Distributed Software Systems 13 Distributed Data Example: Distributed Database Distributed Software Systems 14 7

Remote Data Example: Network File Systems Distributed Software Systems 15 Distributed Programs Example: World Wide Web Distributed Software Systems 16 8

Distributed Presentation Example: X Windows Distributed Software Systems 17 Remote Presentation Example: telnet Distributed Software Systems 18 9

Three-tier architectures Distributed Software Systems 19 Motivation for multi-tier architectures Frees clients from dependencies on the exact implementation of the database It allows business logic to be concentrated in one place Software updates are restricted to middle layer Performance improvements possible by batching requests from many clients to the database Database and business logic tiers could be implemented by multiple servers for scalability Distributed Software Systems 20 10

Fat vs thin clients Thin client = network computer Typically no local storage Fat client = typical desktop PC, workstation Motivation for thin clients: hidden costs of system administration and support Network computers a move towards centralized system admin but local processing at client Java (mobile code) an enabling technology Degrees of thinness, e.g. PDAs Distributed Software Systems 21 Issues in Client design Must know or find out the location of the server Which protocol to use: reliable or unreliable? Blocking (synchronous) request or non-blocking (asynchronous) Distributed Software Systems 22 11

Issues in Server Design Connection-oriented or connection-less servers TCP or UDP? Concurrent or iterative servers: handle multiple requests concurrently or one after the other? Stateful or stateless servers Multi-protocol, multi-service servers Distributed Software Systems 23 Connection-less vs connectionoriented servers protocol used determines level of reliability TCP provides reliable-data delivery verifies that data arrives at other end, retransmits segments that don t checks that data is not corrupted along the way makes sure data arrives in order eliminates duplicate packets provides flow control to make sure sender does not send data faster than receiver can consume it informs both client and server if underlying network becomes inoperable Distributed Software Systems 24 12

Connection-less servers UDP unreliable best effort delivery UDP relies on application to take whatever actions are necessary for reliability UDP used if application protocol designed to handle reliability and delivery errors in an application-specific manner, e.g. audio and video on the internet overhead of TCP connections too much for application multicast Distributed Software Systems 25 Stateful vs stateless servers State Information that server maintains about the status of ongoing interactions with clients Stateful servers state information can help server in performing request faster state information needs to be preserved across (or reconstructed after) crashes Stateless servers quicker and more reliable recovery after crashes smaller memory requirements Stateless servers: application protocol should have idempotent operations Distributed Software Systems 26 13

Concurrency in servers Concurrency needed if several clients and service is expensive Operating system support Multiple processes Threads Asynchronous I/O, e.g. using select() system call Process/thread preallocation for improving performance Delayed process/thread allocation Distributed Software Systems 27 14