Upload
tokala
View
39
Download
2
Embed Size (px)
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
Citation preview
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