TUe technische universiteit eindhoven webserver programming ICT voor
TU/e technische universiteit eindhoven webserver programming ICT voor O&O cursus 515 2, 3, 9 mar 2005 / architecture of information systems http: //wwwis. win. tue. nl/ / department of mathematics and computer science
TU/e technische universiteit eindhoven 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 / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven the course is only a first introduction! “you know Java” “you know HTML” we assume limited experience with them / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven we 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) / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven web 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? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is the web made of? consider a user interacting with a webpage what technology does it take? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is the web made of? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is the web made of? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what does web interaction do? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven quiz 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? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven web 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? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is server-side programming for? to create applications! example: http: //wwwis. win. tue. nl/~rpost/webprog/cgi/tictactoe. cgi / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is server-side programming for? example: tic-tac-toe (2) We can play tic-tac-toe with HTML files. Limitations? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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: ? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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 / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is server-side programming for? conclusion: server-side programming supports • generic layout • generic functionality (“generic”: for all webpages at once) / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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 / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven server-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) / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven server-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 / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven server-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, … / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven web 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? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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 Front. Page • alternative with server-side programming: http: //www. win. tue. nl/ / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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 Front. Page • some parts of the site are already generated with software; Front. Page doesn’t support that • how to convert existing pages? • virtually impossible to change the look and feel while the site is up and running / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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/filter 43/http: //wwwis. win. tue. nl/~rpost/webp rog/cgi/tictactoe. cgi / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what is server-side programming for? example: www. win. tue. nl (5) “webfilter” vs. Front. Page • 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) / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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 Typo 3 CMS) / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven ready-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/php. My. Admin • much more / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven web 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? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven where does server-side scripting fit in? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven what 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) / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven CGI: Common Gateway Interface a standard way to call external programs from a webserver and let them return a document / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven CGI: example tic tac toe of course: http: //wwwis. win. tue. nl/~rpost/webprog/cgi/tictactoe. cgi source code will be made available / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven web 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? / architecture of information systems / department of mathematics and computer science
TU/e technische universiteit eindhoven servlets difference with CGI scripts: scripting engine is integrated with webserver • more efficient • requires special webserver support / architecture of information systems / department of mathematics and computer science
- Slides: 34