[To Lecture Notes Index]
San Diego State University -- This page last updated February 12, 1995 ----------------------------------------------------------------

  1. References for this lecture
  2. Client-Server
  3. Tasks of UI
  4. Tasks of UI (continued)
  5. UI Implementation Details
  6. UI Implementation Details (continued)
  7. UI Implementation Details (continued)
  8. Client Protocol Interface
  9. Chapter 7 in Comer
  10. Hardware and OS concerns
  11. Hardware and OS concerns (continued)
  12. Platform selection


References for this lecture

Comer chapters 6 & 7

General notes for the rest of the course

The networking API was covered in detail in CS-576.

We will now concentrate more on algorithms and program structures.


Client-Server

User Interface (UI)

The User Interface consists of all interactions of a program with the users, either directly or indirectly.

Examples:

command line arguments
ls -aslF

input files
Makefile

question/response
chfn

Tasks of UI

Translation of "humanese" into "computerese"

example:

we use ftp gatekeeper.dec.com
which the ftp program translates to ftp 16.1.0.2

Error reporting and recovery

example:

% make disappear
make: *** No rule to make target `disappear'. Stop.


Tasks of UI (continued)

Translation of user actions into server requests or interactions.

example:

% mail andrew@sdsu.edu
Subject: Hi
Gosh, you are tall
^D

but this gets translated into:

220-sdsu.edu Sendmail SDSU-Main ready to party ...
220 ESMTP spoken here
HELO rohan.sdsu.edu
250 sdsu.edu Hello turtle@rohan.sdsu.edu ...
MAIL From:<turtle@rohan.sdsu.edu>
250 <turtle@rohan.sdsu.edu>... Sender ok
RCPT To:<andrew@sdsu.edu>
250 <andrew@sdsu.edu>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
.
250 WAA26313 Message accepted for delivery
QUIT
221 sdsu.edu closing connection

UI Implementation Details

Some things we need to worry about when implemention a UI and in particular a UI for a client.


UI Implementation Details (continued)

Domain Name Service (DNS)

A client should always allow both hostnames and IP addresses to be specified.

Why?

Distinguish between name using isdigit() macro on first character.

Potential problems? What if a hostname starts with a digit?

Library calls to use:


UI Implementation Details (continued)

Known IP services

A local database of services is located in /etc/services

example:
POP (Post Office Protocol) entry:
pop     110/tcp     # Post Office

Library call:

getservbyname()

Problems with this service?

Two hosts can have different port numbers for the same service.

Solutions:

portmapper used with SunRPC
http://saturn.sdsu.edu:8080/cs/cs596_3/

Client Protocol Interface

There are different levels of complexity

general rule: simple protocol simple protocol interface

Issues:

telnet

POP

UUCP

Chapter 7 in Comer

Read section 7.3:

The section is titled Hiding details


Hardware and OS concerns

Issues

Operation System:


Hardware and OS concerns (continued)

Issues in selecting a Client-Server environment:

Is a machine going to be dedicated to be just a server or client?

How are limited resources allocated to services?

Redundency?


Platform selection

10,000 E-mail users on a 286 DOS machine?

Rohan dedicated to be a fortune server?

Obvious answers!

What about 1,00 E-mail users on a Pentium-90 running Windows NT