webserver programming

Post on 08-Jan-2016

39 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

webserver programming. ICT voor O&O cursus 515 2,3,9 mar 2005. day 1. general introduction what is the web? what do we mean by webserver programming? when to use it? what does it look like? first introduction to Java servlets. the course is only a first introduction!. “you know Java” - PowerPoint PPT Presentation

TRANSCRIPT

http://wwwis.win.tue.nl/

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/e

webserver programming

ICT voor O&O

cursus 515

2,3,9 mar 2005

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eday 1

• general introduction

• what is the web?

• what do we mean by webserver programming?

• when to use it?

• what does it look like?

• first introduction to Java servlets

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ethe course is only a first introduction!

“you know Java”

“you know HTML”

we assume limited experience with them

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewe will not teach you:

• Frontpage, Dreamweaver, etc.

• website layout management (off-topic)

• website content management

• computer programming

• Java

• ASP, .NET, PHP, etc. (not used with Java)

• specific Java technology such as JINI, JAXL, JDBC, J… (too

advanced)

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eweb technology

What is the web made of?

What does web interaction do?

What do we need server-side programming for?

What does a webserver do?

How does it fit into the webserver?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is the web made of?

consider a user interacting with a webpage

what technology does it take?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/e

webpagesshown in

web client (browser)

webserver

documents

scripts

anotherwebserver

databaseetc.

what is the web made of?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is the web made of?

webserver

documents

scripts

anotherwebserver

database

web protocol

TCP/IP (Internet)protocols

low-level protocol

cables

webserver

TCP/IP (Internet)support

operating system

computerhardware

web browser

TCP/IP (Internet)support

operating system

computerhardware

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat does web interaction do?

webserver

documents

scripts

anotherwebserver

database

HTTP

TCP/IP (Internet)protocols

low-level protocol

cables

Apache

www.win.tue.nl

Unix

Sun SPARC

MS IE 6

this computer

Windows 2000

Intel-based PC

rp URL: http://www.win.tue.nl/ictoo/

GET /ictoo/

document + headers

rendereddocument

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/equiz time!

• what does http://www.win.tue.nl/ictoo/ mean?

• what happens when a user clicks on a link to it?

• what does http://

wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi?move=5

mean?

• why are URLs a good idea?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eweb technology

x What is the web made of?

x What does web interaction do?

What do we need server-side programming for?

What does a webserver do?

How does it fit into the webserver?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

to create applications!

example:

http://wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: tic-tac-toe (2)

We can play tic-tac-toe with HTML files.

Limitations?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: tic-tac-toe (3)

We can play tic-tac-toe with HTML files.

Limitations:

• every response is fixed

• we can’t save the score on the server

• too many HTML files

• changing the layout is a tedious job

• changing the machine’s strategy is hard

• communication between players: ?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: tic-tac-toe (4)

With a server-side program to generate the pages,

all limitations disappear:

• a response can depend on anything

• we can save the score on the server and show it

• no more duplication of HTML

• changing the layout is a one-time operation

• changing the machine’s strategy is easy

• users can play/chat/… via the application

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

conclusion: server-side programming supports

• generic layout

• generic functionality

(“generic”: for all webpages at once)

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

do people create tic-tac-toe games in HTML?

• yes, many websites are! e.g.

http://www.win.tue.nl/index.html

we will return to this example

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eserver-side web applications vs …

client-side web applications

example: the Pacman applet by Benny Chow

• written in Java (source code is available)

• this is a Java applet (client-side web app),

not a Java servlet (server-side web app)

• (this course is about server-side web apps)

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eserver-side web applications vs. …

client-side web applications: (e.g. Pacman):

• can have a much more powerful user interface

• require special web browser capabilities (plugins)

• must be written to run in user’s web browser

standalone (non-web) applications:

• even more powerful

• must be downloaded and installed on the user’s OS

• must be written to run on the user’s OS

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eserver-side web applications

• limited interaction in user interface

• software + content + gathered data

reside on server

factors determining whether to use server-side web application:

security, availability, reliability, portability, maintainability,

manageability, UI flexibility, …

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eweb technology

x What is the web made of?

x What does web interaction do?

/ What do we need server-side programming for?

What does a webserver do?

How does it fit into the webserver?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: www.win.tue.nl (2)

• http://www.win.tue.nl/index.html

consists of HTML pages + images

• layout, images, buttons designed in

Photoshop

• first prototype made in FrontPage

• alternative with server-side programming:

http://www.win.tue.nl/

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: www.win.tue.nl (3)

problems: maintaining consistency in look & feel

• (not all Photoshop layouts and images can be used on the web)

• not everybody uses FrontPage

• some parts of the site are already generated with

software; FrontPage doesn’t support that

• how to convert existing pages?

• virtually impossible to change the look and feel

while the site is up and running

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: www.win.tue.nl (4)

answer: server-side programming

• the TU/e “webfilter”

• generates a common look & feel for arbitrary

webpages on the fly

• example: http://wwwstijl.tue.nl/filter43/http://wwwis.win.tue.nl/~rpost/webpro

g/cgi/tictactoe.cgi

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: www.win.tue.nl (5)

“webfilter” vs. FrontPage

• solves all of the problems mentioned

• must be tuned (by a programmer) to work

on specific ranges of pages

• requires an uncommon way of authoring

• hard to sell

(users don’t trust it, techs don’t trust it)

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is server-side programming for?

example: www.win.tue.nl (6)

more viable: a Content Management System (CMS)

• CMS = server-side web application for website

authoring and management

• solves most of the problems mentioned

• limits author to range of options supported by

CMS

• very popular

• example: www.win.tue.nl (uses the Typo3 CMS)

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eready-to-use server-side programming

software packages you can freely install, configure, and use;

examples:

• CMS software

• wiki software

• blogging software

• database managers (e.g.

http://www.petriweb.org/phpMyAdmin

• much much more

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eweb technology

x What is the web made of?

x What does web interaction do?

x What do we need server-side programming for?

What does a webserver do?

How does it fit into the webserver?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/e

webpagesshown in

web client (browser)

webserver

documentsscripts

anotherwebserver

database etc.

Java servlets

where does server-side scripting fit in?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/ewhat is a webserver made of?

• core functionality e.g. serving files from the filesystem

• built-in document generation e.g. error messages,

status messages

• getting a document from an executable (CGI)

• special webserver modules for scripting /

programming (SSI; PHP; Java servlets; ASP; etc)

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eCGI: Common Gateway Interface

a standard way to call external programs from a

webserver

and let them return a document

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eCGI: example

tic tac toe of course:

http://wwwis.win.tue.nl/~rpost/webprog/cgi/tictactoe.cgi

source code will be made available

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eweb technology

x What is the web made of?

x What does web interaction do?

x What do we need server-side programming for?

x What does a webserver do?

x How does it fit into the webserver?

/ department of mathematics and computer science/ architecture of information systems

technische universiteit eindhovenTU/eservlets

difference with CGI scripts:

scripting engine is integrated with webserver

• more efficient

• requires special webserver support

top related