50
1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual Machine Softwar e Applicati ons Social Issues

1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

1

Chapter 9: Sample Applications

Outline Spreadsheets Databases Numeric and

Symbolic Computations

Computer NetworksAlgorithmic Foundations

Hardware

Virtual Machine

Software

Applications

Social Issues

Page 2: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

2

Spreadsheets An electronic spreadsheet combines elements of:

a calculator a word processor a database manager a graphing tool a modeling tool …

Spreadsheet programs: Widely used Examples:

VisiCalc MS Excel

Page 3: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

3

Spreadsheets A spreadsheet is a 2-dimensional grid of cells:

Rows: 1, 2, 3, … Columns: A, B, C, …

Only a portion of the spreadsheet in visible on the screen

window Window can be scrolled down/up

Cell: specifies a row and a column: Activated using mouse or cursor Example:

D2 means the cell at 2nd row and 4th column

Page 4: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

4

Spreadsheets Information in each cell may be:

Label Numeric value Mathematical formula

Labels Text information that appear on the screen in a cell Any cell can contain a label (row numbers and columns

letters are also labels) Format can be chosen: Font size, boldface, … Example

A B C D E1 Item1 Item2 Total labels

2 3.25 5.75 9.00 numeric values

Page 5: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

5

Spreadsheets Numeric values:

Like labels can be formatted e.g. only 2 digits after the decimal point negative value in parentheses

Mathematical formulas Do not appear on the screen Entering a formula usually require some extra keystroke be

done first Example:

C2 = A2 + B2 Total (C2) is computed automatically Error message if A2 or B2 are not numeric values

Example: Payroll of a company

Page 6: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

6

SpreadsheetsA B C D E F G

1 ID Name Age Rate Hours Pay

2 101 Janet K 51 16.60 94

3 102 Adam R 18 8.50 185

4 103 Fred L 43 12.35 250

5 104 John A 53 17.80 245

6 105 Butch H 17 6.70 53

7

Pay of Janet D2*E2 formula needed for Pay Entering the formulas:

Enter D2*E2 in cell F2 Copy (automatically supported) to other cells in column F

Page 7: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

7

Spreadsheets What you enter: (formulas entered)

A B C D E F1 ID Name Age Rate Hours Pay

2 101 Janet K 51 16.60 94 D2*E2

3 102 Adam R 18 8.50 185 D3*E3

4 103 Fred L 43 12.35 250 D4*E4

5 104 John A 53 17.80 245 D5*E5

6 105 Butch H 17 6.70 53 D6*E6

What you see: (values computed)A B C D E F

1 ID Name Age Rate Hours Pay

2 101 Janet K 51 16.60 94 1560.40

3 102 Adam R 18 8.50 185 1572.50

4 103 Fred L 43 12.35 250 3087.50

5 104 John A 53 17.80 245 4361.00

6 105 Butch H 17 6.70 53 355.10

Page 8: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

8

Spreadsheets Other Features

Built-in functions for: Average Maximum Minimum User selects the desired cells and apply function

Graphics: Data can be presented in graphical form Line graph Bar graph Pie graph etc.

Multiple sheets can be handled at one time Formulas can be propagated to all sheets in use (if

possible) Create 3-dimensional sheets

Page 9: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

9

Spreadsheets Other Features (contd)

User can write macros Macro:

A series of instructions called by name “Like” a function … The name serves as a shortcut notation Use of macros saves time

Example of a macro Select spreadsheet Select chart type Print sheet every time you call the macro the 3 tasks are done

automatically Some database functions are also included in some

spreadsheet programs

Page 10: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

10

Spreadsheets Spreadsheet as a modeling tool

Spreadsheet software does more than just: edit spreadsheets Perform simple calculations …

Spreadsheets allow quick data modification and result presentation

Suppose the owner of the payroll spreadsheet wants to give his/her employees a raise (in a good year)

For example the increment should be 2% for each employee a new cell in the spreadsheet to hold the fixed increment:

2% a new column headed New Pay is also needed to store the

incremented pay for each employee

Page 11: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

11

SpreadsheetsA B C D E F G

1 ID Name Age Rate Hours Pay New Pay

2 101 Janet K 51 16.60 94 1560.40 1591.61

3 102 Adam R 18 8.50 185 1572.50 1603.95

4 103 Fred L 43 12.35 250 3087.50 3149.25

5 104 John A 53 17.80 245 4361.00 4448.22

6 105 Butch H 17 6.70 53 355.10 362.20

78 Base Increase % 29 Totals $10936.50

$11155.23 G: new column for increased payC8: stores the 2% value

F9 and G9: store the total pay

Page 12: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

12

Spreadsheets Needed formulas:

D2*(1 + $C$8/100)*E2 (entered in cell G2) G3 … G6: inserted automatically (by copying) after inserting G2 same formula is used $C$ in order to prevent indexing the C column for G2 … G6

(constant value!) To compute the total in F9:

SUM(F2:F6) (entered in cell F9) this means sum up all values in cells between F2 and F6 By copying to cell G9, the corresponding formula SUM(G2:G6) is

automatically generated The nice thing is now that if the owner wants to examine an

increased pay using another percent, say 3%, only cell C8 needs to be modified!

the new column G and the total pays are adjusted automatically

Page 13: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

13

Spreadsheets The owner may also use another more realistic formula for increments:

Each employee is given a “merit” percentage over a fixed base rate

A B C D E F G H1 ID Name Age Rate Hours Pay Merit New

Pay

2 101 Janet K 51 16.60 94 1560.40 3 1638.42

3 102 Adam R 18 8.50 185 1572.50 2 1635.40

4 103 Fred L 43 12.35 250 3087.50 33241.87

5 104 John A 53 17.80 245 4361.00 2 4535.44

6 105 Butch H 17 6.70 53 355.10 1 365.75

78 Base Increase % 29 Totals $10936.50

$11416.80

Page 14: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

14

Spreadsheets Formulas needed to be typed in (for “merits” example):

First, a column (we use G) is created to model the merits Now column H is for new pay D2*(1 + ($C$8 + G2)/100)*E2 (entered in H2) Formulas in H3…H6 are generated automatically after copying

Moreover, some spreadsheet program can perform “goal seeking”

Suppose the owner only knows: What merits each employee is worth The amount of money reserved for salaries (in the current year)

Owner types in these values AND spreadsheet software seeks the amount of base increase percentage automatically

For example: Suppose amount for this year is $12000.00 Spreadsheet software will assign to cell C3 the value 7.33

automatically Owner is now happy to know what is the base increment in this

year (that does not exceed his/her expectation)

Page 15: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

15

Spreadsheets Imagine more complicated examples:

Company may vary the price of a product or the cost of supply and see immediately the effect on the profit

A chemist can experiment with the amount of additives necessary to obtain a smooth flow of a liquid in a pipe

An economist can track revenue impacts of a proposed tax increase

… spreadsheet programs have become modeling and forecasting

tools! However:

Spreadsheets can only perform “numeric” modeling Time dependence of data is not directly supported (but can be

achieved)

Page 16: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

16

Spreadsheets Programming levels of spreadsheets:

Macro programming ( highest level): Here a real programming language including (sequential, conditional,

and interactive) instruction is provided in order to develop “programs” that simplify the work (of inputting formulas etc.)

Visual programming ( intermediate level): Spreadsheet program acts like a (visual) language interpreter it waits for the user to change something, and then delivers new

results “event-driven programming” Can be compared to an (interpreted) functional language, since only

formulas (functions!) are used Formulas can:

Explicitly use if (-statement): e.g. IF(A3 > B3, A3-B3, B3-A3) Implicitly use loops: e.g. when determining a base (input) value given a

target one (like when we use target total pay 12000.00 to determine the base percentage)

Formulas (programming) ( lowest level): Use of the basic arithmetic operations: e.g. A1*B1*C1 Use of built-in functions: e.g. SUM(B2:B10), ABS(A1), etc.

Page 17: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

17

Databases Since Herman Hollerith demonstrated the advantages of mechanizing the

processing of large amounts of data (in the US census of 1890), data processing emerged and evolved to a very common task at almost each desktop computer in the world

Large amounts of data are stored in permanent storages (disks, tapes, …) Related data are organized in files in background storage:

A file has a name and further attributes, and It includes the (user) data themselves

Common file types: Text files: produced by e.g. a word processor Graphic files: produced by e.g. drawing program Program files: produced by e.g. a compiler (which is also stored in a program

file) …

File manager: Often part of the operating system

Page 18: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

18

Databases Is a program that offers operations for:

Creating a new file in a directory Reading information in a directory Updating information in a directory Deleting a file from a directory

A directory is a list of records consisting of: File name File size Time of last update Access rights …

File manager has elementary capabilities: A file is for the file manager a black box File manager cannot even distinguish file types

More than that is needed … ( data organization) But file manager is indispensable, since access to background storage is

always through it(s operations).

Page 19: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

19

Databases Data organization

Let us confine us to (simple) user data files (no program files) Data are based on bits and bytes

but these are too small quantities in real life Data can be better organized in:

Fields: a collection of bytes (e.g. employee name) Records: a collection of fields (e.g. employee information – name, phone#, …) Data files: a collection of records (e.g. all employees in a company) Database: a collection of data files (e.g. employees, inventory, …)

Structure of a database (consisting of 1 file) Field1 (e.g.ID) Field2 (e.g Name) Field3 (e.g. Age) Field4 (e.g.

PayRate)

Record1

Record2

Record3

Record4

Page 20: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

20

Database Attention: A record is unlike an array, since it may include fields of

different data types and those fields are not accessed via indexes! Database management system (DBMS)

A program that manages files in a databases Codd E. F. observed records in a file as one entity: 2-dimensional table He introduced the relational database model:

Now an employee file is not a collection of individual records but it is a 2 dimensional table

He suggested new terminology (now widely used): Entity: is what the table represents e.g. employees file Tuple: represents one instance of this entity (the old record or a row

in a table) Attribute: Heading (or name) of a column in a table (e.g. employee

name, age, …) Primary key: An attribute (or a collection of attributes) that uniquely

identifies a tuple (e.g. SSN of an employee) Relation: Same as entity from the point of view of “related”

attributes

Page 21: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

21

Databases A DBMS is more than a file manager:

It works on the level of attributes and relations It knows how data are organized and how to access them the best

(using primary keys) User data is a glass box for a DBMS (not a black box)

A DBMS is really a complex program: It has its own data definition language (DDL) It has its own data manipulation language or query language (DML)

After defining the data using DLL, the query language can be used to perform complex operations on the data

SQL: Structured Query Language Examples of queries in SQL:

Get all information about employee 123, the user poses the following query:

SELECTID, Name, Age, Payrate, Hours, PayFROM EmployeeWHERE ID = 123;

Page 22: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

22

Databases Get pays of a specific employee:

SELECT Name, PayFROM EmployeeWHERE Name = ‘John Kay’;

Get all information about employees ordered by their IDs:SELECT *FROM EmployeeORDERED BY ID;

Get all information about employees older then 21 years:SELECT *FROM EmployeeWHERE Age > 21;

A query using two tables:SELECT Employee.Name, Insurance.PanTypeFROM Employee, InsuranceWHERE Employee.Name = ‘Fred James’ AND Employee.ID =

Insurance.ID;

Page 23: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

23

Databases Issues in databases:

Transactions: All-or-nothing…

Multimedia data: Audio Video …

WWW Accessing databases using browsers

(hypermedia) Distributed Databases

Data distributed among nodes Replication and fault tolerance Security

Page 24: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

24

Numeric and Symbolic Computation

Historically, the first application of computers is numeric computation:

Baggage Analytic Engine for mathematical equations Hollerith solved statistical problems (US census 1940’s computers motivated by military-based

mathematical problems Today: numeric computation still a challenging task

Problems with up to 1015 mathematical operations are not uncommon

Typical areas: Weather forecasting Molecular analysis Real-time imaging Simulation Natural language processing

Page 25: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

25

Numeric and Symbolic Computation

Mentioned challenges yielded to the development of supercomputers and highly parallel computers

Machines with 1010 (and more) floating point operation per second have been constructed

Example: virtual reality ( real-time imaging) Computer generates images in the same time frame and with the

same orientation as when seen in real life Images are displayed on glasses and headsets are used to feel like

in a real scene For example: as you are moving your arms, legs, and eyes, the

computer may be generating and displaying simulated images of what you would see during a stroll through a forest.

High demands on computation ability: about 24 images / sec each image = e.g. one million of pixels (picture elements) for each image: hundreds or thousands of mathematical operations

Page 26: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

26

Numeric and Symbolic Computation

Computer determines repeatedly: How far you have moved (since last image) How your eyes/head is positioned What is visible (what colors etc.) and what not from the current perspective

Thus: 24 images/sec, 1000 pixels each, 1000s of operations a pixel more than 24 billion of mathematical operations per second

In another rather esoteric area: quantum chromodynamics 100 trillion (1014) of operations are needed for a single result! A regular computer (25 MIPS) would work 1.5 moths to generate result A supercomputer: 1 hour A teraflop machine: less than 2 minutes

Page 27: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

27

Numeric and Symbolic Computation

Even after the emergence of non-numeric applications (like word processing, databases, …), numeric computation are still very demanding, and in particular the field of symbolic computing

Symbolic Computing Traditional numeric problems are based on “numeric values”: e.g. 13.57/1.8897 *sin(1.2*) – cos(1.34*)*10-4

Symbolic computing works on quantities that represent numbers (like unknown variables of high school mathematics)

Examples: Spreadsheets formula: D2*E2 Simplify: -x2 + 3x – 4 + 3x2 – x + 1 Solve: x3 + 2x2 + 10x - 13 = 0 Factor: x3 + x2 – 3x – 3 Plot: sin(3x) for 0 <= x <= 2

Page 28: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

28

Numeric and Symbolic Computation There is a variety of software tools for symbolic

computation (e.g. Mathematica, Maple) Of course these tools are able to do numeric

computations as well In general the tools are interactive:

User: enters some request (here boldface) Program: displays result (here italic)

Example: N[expr, i] Entered when a numeric computation is wanted Arithmetic expression expr is evaluated with the precision I N[((13.1842/1.976) Sin[2.1 Pi])^(1.0/3.0) + 0.0406893, 6]

1.31346

Page 29: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

29

Numeric and Symbolic Computation

Most symbolic systems work with ASCII representation of numbers and not with their binary representation:

“10” = 1010 (4 bits) “10” = ‘1’’0’ (2 bytes) they can achieve high precision (but need more memory) Examples:

Compute with 250 precision: N[Pi, 250]

3.1415926535…52271201909 Compute the factorial of 200:

200! 78865786479050…737472000…00000

Page 30: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

30

Numeric and Symbolic Computation

However the strength of these systems is in symbolic computing

Examples Simplify expression: Simplify[expr]

Simplify[(x-1)^2 + (x+2) + (2x-3)^2 + x]

12 – 12 x + 5 x2

Factor polynomial: Factor[polynomial] Factor[x^10 -1]

(-1 + x) (1 + x) (1 – x + x2 - x3 + x4) (1 + x + x2 + x3 + x4) Expand expression: Expand[expr]

Expand[(1 + x + 3y)^4]

1 + 4x + 6x2 + 4x3 + x4 + 12y + 36xy + 36x2y + 12x3y + 54y2 + 108xy2 + 54x2y2 + 108y3 + 108xy3 + 81y4

Page 31: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

31

Numeric and Symbolic Computation

Solve equations: Solve[equation, unknown] Solve[x^2 – 5x + 4 == 0, x] (Note: “==“ means equal)

{{x 4} { x 1}} Solve transcendental equations like ex – 1.5 == 0

Solve[Exp[x]– 1.5 == 0, x] {{x 0.405465}

Solve system of linear equations: Solve[{2x + y == 11, 6x – 2y == 8}, {x, y}]

{{x 3, y 5}} Solve system of linear equations:

Solve[{2x + y == 11, 2x + y == 8}, {x, y}] { }

Page 32: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

32

Numeric and Symbolic Computation

Calculus operations: Differentiation:

D[x^3+6x-7, x]

6+ 3x2

Integration: Integrate[x^4 - 2, x]

1/5 x5 - 2x Summation of (convergent) infinite series:

N[Sum[1/2^i, {i, 1, Infinity}]]

1.0 Summation of (divergent) infinite series:

N[Sum[1/k, {k, 2, Infinity}]]

Sum diverges

Page 33: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

33

Numeric and Symbolic Computation Plotting functions:

Plot[x^2 + x – 2, {x, -3, +2}]

Plot[5 Sin[3x], {x, 0, 2 Pi}]

Page 34: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

34

Numeric and Symbolic Computation Various options for plots are available:

Discrete: only some points 3-dimensional: e.g. Plot3D[Sin[x*y]. {x, 0, 3}, {y, 0, 3}] …

Process of performing user requests: Get and analyze request Activate the appropriate program to handle the request Receive results Display results

Issues: Algorithms for symbolic computation Exploiting parallelism Distribution in a network

Page 35: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

35

Computer Networks A computer network consists of:

Computers Peripheral devices (printers, disks, …) An interconnection network

Types of networks: local area network: LAN e.g. within buildings Wide area network: WAN e.g. across countries

Benefits of networks: Share physical resources: e.g. one printer in a department Share logical resources: e.g. access to files, databases, … Fault tolerance: e.g. if one printer fails, another can be used Parallelism: e.g. print two documents on two different

printers Communication: e.g. email

Page 36: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

36

Computer Networks Further benefits:

Use of supercomputers in a WAN Groupware: Joint editing of documents Electronic data interchange: Data transfer from a

program to a program; e.g. orders as output from a program at company X are transmitted to another program (that handles bills and shipping) at company Y ( no human intervention)

Use of network-centric applications: WWW E-commerce Search engines …

Page 37: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

37

Computer Networks Internet

One of the largest computer networks Outgrowth of ARPANET (US DoD) ARPANET was developed in 1970s Internet is a network of networks

Advantages (of Internet) Email Voice mail Cellular phones Teleconferencing …

Issues: Reliability of networks Efficiency Privacy and confidentiality

Page 38: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

38

Computer Networks More about the Internet

Vision: “information superhighway” global information access from everywhere by

everyone at every time Information should be a basic infrastructure good Information should flow like current/voltage flows

from plugs Information is accessible through services Internet is a big WAN (actually a WAN of WANs/LANs) Internet is big collection of nodes connected by wire,

each node is either a individual computer (e.g. mainframe) or a switching station

Page 39: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

39

Computer Networks User connects to the internet using:

Workstation PC Laptop …

Connection: Direct: user connects by telephone line to a “host”

(already connected to Internet) Over LAN: user machine is in a LAN that is connected to

an internet host Internet services

Email: In order to communicate with someone via email you

must know his/her email address

Page 40: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

40

Computer Networks Addressing scheme is hierarchical: [email protected]

“jones” identifies an individual account on a host computer “ournode” identifies the host computer “ccc” identifies where the host is located (perhaps central

computer center) “uleth” identifies the organization where this machine is

located (U of L) “ca” specifies the country or organization sector (here

Canada) Problems with Email:

Is not protected (default) Informality of an email may be misinterpreted (by reader) Viruses in emails!

Page 41: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

41

Computer Networks Remote log-in

The service is called “telnet” Used to log on to any computer in the Internet Login types:

Anonymous Individual

After logging in your are like a direct user of the machines

Why? In order to access a database In order to use a special compiler In order to run a program on a supercomputer …

Clearly, the user notices a delay when accessing remote machines

Page 42: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

42

Computer Networks File transfer:

Service: FTP (file transfer protocol) This service allows a user to transfer files between two

machines Files can be of arbitrary length and of any type Commands:

Put: from your machine to remote computer Get: from remote computer to your machine …

Anonymous ftp: open services for everyone Difference between telnet, ftp, and email:

Telnet: you are a user of the remote machine FTP: you are not a user, you are only allowed to use

commands of FTP Emails: only text files, you communicate with a user (not a

machine)

Page 43: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

43

Computer Networks Browsing:

Gopher: Allows to “jump” from one machine to another collecting

information Menu-driven Menu contents e.g.

Library entries General information Next gopher site(s)

WAIS: Use keywords to retrieve information from directories in

the Internet WWW:

Hypertext-based navigation Any kind of information (text, audio, video, …) Browser software needed (e.g. Netscape, Internet

Explorer, …)

Page 44: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

44

Computer Networks Different services:

Search engines Email Applications/Applets …

Bulletin board: E.g. newsgroups: discussion groups on a specific topic Hierarchal naming e.g. cs.comp.parallel In general moderated

Chatting …

Page 45: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

45

Computer Networks Some Internet statistics (rather old)

20,000 networks in the Internet A new network every 10 minutes 4 million hosts More than 50 million people have access to the

Internet Over 5,000 news groups Over 4,000 Gopher servers Annual traffic growth of WWW is 341,634 percent!!! Internet services in use for more than 2 decades (by

insiders) Based on current growth, by 2003 every person on

the globe will have Internet access (???)

Page 46: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

46

Computer Networks Issues in networking

Transmission is analog, but data are digital conversion is needed conversion: use of Fourier series to approximate

digital signal by superposition of multiple analog ones Bandwidth: maximum transmission rate (medium-

specific) Media:

Twisted pair copper wire: Used in telephone networks Inexpensive Limited bandwidth Signal deteriorates at distances longer than 10 km (amplifiers

needed, repeaters)

Page 47: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

47

Computer Networks Coaxial cable:

Used for cable TV More bandwidth but more expensive Signal deterioration also at about 10 km but is less subject

to “noise” Fiber optic:

Bundles of thin glass wire Signal are pulses of light High bandwidth Up to 100 km without deterioration More expensive

Message transmission in a WAN In general a WAN is a switched network

messages travel from one switch to another on the way to their destinations

Page 48: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

48

Computer Networks A message includes its destination address in order to

help intermediate nodes to “switch in the right direction”

Multiple paths from source to destination are possible (and usual)

Why? Reliability: redundant connections Efficiency: more connections among nodes with

higher traffic or parallel connections What path is the best?

Shortest ones? Less intermediate nodes or less distance?

Path with highest bandwidth? Priorities for messages?

High priority messages use high bandwidth paths Low priority messages use low bandwidth paths

Page 49: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

49

Computer Networks Thus, answer is not trivial… After all, determining the “best” path is a prohibitively long

task compare: bin-packing problem O(2n) A number of routing algorithms are in use

Message transmission in a LAN Bus-based LANs (e.g. Ethernet) Broadcasting:

Any message is sent to ALL nodes in the network Each node checks whether or not it is the message destination

If yes, message is completely received and processed If not, message is ignored

Collision is possible: “A” sends “m1” and before “m1” is received “A2” sends “m2” Since medium is shared, “m2” collides with “m1” Both are then useless for potential receivers

Page 50: 1 Chapter 9: Sample Applications Outline Spreadsheets Databases Numeric and Symbolic Computations Computer Networks Algorithmic Foundations Hardware Virtual

50

Computer Networks Thus, collision must be detected and sending machines

retry to send the message again In order not to collide another time the machines wait

different “random” periods before sending