Server issues How to approach the design of servers.

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

Sockets and Services CS-480b Dick Steflik. Evaluating Socket Based Services How complex is the service? How might the service be abused? What information.
Executional Architecture
Operating Systems Security 1. The Boot Sequence The action of loading an operating system into memory from a powered-off state is known as booting or.
CSUF Chapter CSUF Operating Systems Security 2.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Network & Computer Attacks (Part 2) February 11, 2010 MIS 4600 – MBA © Abdou Illia.
Lesson 11-Virtual Private Networks. Overview Define Virtual Private Networks (VPNs). Deploy User VPNs. Deploy Site VPNs. Understand standard VPN techniques.
Programming project #4 1 CS502 Spring 2006 Programming Project #4 Web Server CS-502 Operating Systems Spring 2006.
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
Component-Based Software Engineering Introducing the Bank Example Paul Krause.
Scaling Service Requests Linux: ipvsadm & iptoip.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
Introduction to Network Programming and Client-Server Design.
Client Server Model and Software Design TCP/IP allows a programmer to establish communication between two application and to pass data back and forth.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
Week #10 Objectives: Remote Access and Mobile Computing Configure Mobile Computer and Device Settings Configure Remote Desktop and Remote Assistance for.
Directory and File Transfer Services Chapter 7. Learning Objectives Explain benefits offered by centralized enterprise directory services such as LDAP.
Server Design Discuss Design issues for Servers Review Server Creation in Linux.
CS252: Systems Programming Ninghui Li Final Exam Review.
CSC 456 Operating Systems Seminar Presentation (11/13/2012) Leon Weingard, Liang Xin The Google File System.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
The Client-Server Model – part II
Module 8 Configuring Mobile Computing and Remote Access in Windows® 7.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
CHEN Ge CSIS, HKU March 9, Jigsaw W3C’s Java Web Server.
Inetd...Server of Servers Looks at a number of ports Determines when a service is needed on any of those ports Calls the appropriate server Restarts new.
XMPP Concrete Implementation Updates: 1. Why XMPP 2 »XMPP protocol provides capabilities that allows realization of the NHIN Direct. Simple – Built on.
Transmission Control Protocol TCP. Transport layer function.
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
Chapter 3.2: Operating Systems Security 1. The Boot Sequence The action of loading an operating system into memory from a powered-off state is known as.
Position of application layer. Application layer duties.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
FTP File Transfer Protocol Graeme Strachan. Agenda  An Overview  A Demonstration  An Activity.
11 CLUSTERING AND AVAILABILITY Chapter 11. Chapter 11: CLUSTERING AND AVAILABILITY2 OVERVIEW  Describe the clustering capabilities of Microsoft Windows.
1 Security. 2 Linux is not secure No computer system can ever be "completely secure". –make it increasingly difficult for someone to compromise your system.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 5.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
The Client Server Model And Software Design
Acknowledgement: These slides are adapted from slides provided in Thißen & Spaniol's course Distributed Systems and Middleware, RWTH Aachen Processes Distributed.
Berkeley Socket Abstraction
CS533 - Concepts of Operating Systems 1 Threads, Events, and Reactive Objects - Alan West.
System Design for Home Automaton. Design Goals Performance Criteria – Server prioritizes client requests to provide quick response time to critical requests.
1 Dimension of Server Designs r Iterative vs Concurrent r Connection-oriented vs. connectionless r Stateful and stateless m Constrained by application.
Netprog: Client/Server Issues1 Issues in Client/Server Programming Refs: Chapter 27.
1 © Process Software Corp. DHCP Failover Protocol Jeff DECUS Europe 2000 Thursday, 13 Apr :00 - 9:45.
Operating Systems Security 1. The Boot Sequence The action of loading an operating system into memory from a powered-off state is known as booting or.
R Some of these slides are from Prof Frank Lin SJSU. r Minor modifications are made. 1.
1 K. Salah Application Layer Module K. Salah Network layer duties.
 Home Security System Willard Stanley. Motivations  Commercial security systems have a monthly cost  Designing my own allows for greater extensibility.
The Echo Server Problem. Contents  Basic Networking Concepts  The Echo Server Problem.
1 Issues in Client/Server Refs: Chapter 27 Case Studies RFCs.
Managing Windows Server 2012
Last Class: Introduction
Protecting Memory What is there to protect in memory?
Boots Cassel Villanova University
Protecting Memory What is there to protect in memory?
Programming Assignment #1
Client-server Programming
Client-Server Interaction
Distributed Systems - Comp 655
Mumtaz Ali Rajput +92 – INFORMATION SECURITY – WEEK 5 Mumtaz Ali Rajput +92 – 301-
Software models - Software Architecture Design Patterns
Issues in Client/Server Programming
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Presentation transcript:

Server issues How to approach the design of servers.

Overview What protocol to use How to launch the server Multiple clients and scalability Concurrency Stateful or stateless Security and Authentication Machine compromise

Which protocol? TCP or UPD or BOTH! Recall connection-oriented vs connectionless Code to handle each type of connection is different Many other issues more significant TCP appears harder but don’t forget the benefits of TCP If you sacrifice TCP function, give it up because it is very difficult to pick and choose what to add back in at the application level

How to launch the server? Manually On boot By a master server (like inetd) At scheduled intervals For concurrency and scalability, –how to allocate to handle changes in demand by processes and threads –Spreading server DNS requests over a series of identical machines

Handling multiple clients! Write the code of the server to read multiple sockets (more to come) Iterate over the main loop –Allocating, serving and closing –Clients must wait Write code for single service and let inetd handle it Process or thread concurrency

Server State Leave it in the client whenever possible –minimize Keep the service as simple as possible Provide “keys” for access and then require the key for any service request Design recovery for failure scenarios where required Remember some designs run forever –Memory, data structures may/may not be recovered

Security and Authentication Access to your service may need to be limited Password strategies are part of the server Encryption is done at both client and server Limitation of access can also be handled through –Firewalls –OS software at the server

Machine Compromise Server exploitation is a primary means of machine compromise Many attacks utilize unexpected input to create strange program behavior leading in turn to an abort and then unintended access Requires careful coding and/or careful net configuration to limit impact on other machines and services in the event of the exploitation.

Basic “Comer” Design Categories Iterative Connectionless Iterative Connection-oriented Concurrent Connectionless Concurrent Connection-oriented SEE CODE EXAMPLES

Concurrency See slides for concurrency Process level Thread level