Title: COMM1T Web Engineering
1COMM1T Web Engineering
- Week 9 - Web Server Installation. Website
Configuration Management
2What is aweb server?
- A network server manages access to files, folders
and resources. - A web server manages this access across the
internet or local intranet. - Web servers use platform-independent HTTP
(HyperText Transfer Protocol). - Web servers also perform the following
- handle permissions.
- execute programs (e.g. CGI Scripts).
- keep track of directories files.
- communicate with client computers.
3How does a web server work?
Web Server
Run Server program
The returned file may be an HTML file, image,
Java applet etc.
HTTP Response return file
HTTP Request
Browser
Client Computer
4Common Web Servers
- Microsoft Personal Web Server (PWS)
- Entry level web server.
- Doesn't support FTP (file transfer protocol).
- Microsoft Internet Information Server (IIS)
- Popular web server for Windows NT.
- Apache
- Popular web server for UNIX NT.
- High performance/reliability.
- W3C Jigsaw
- Blueprint for the future!
5Personal WebServer
- A free web server which can be downloaded.
- Produced by Microsoft
- Can be installed with the following operating
systems - Windows 95
- Windows 98
- Windows NT
- Download from
- http//www.microsoft.com/msdownload/ntoptionpack/a
skwiz.asp - Product home page
- http//www.microsoft.com/windows/ie/pws
6Internet Information Services (IIS)
- Internet Information Services (IIS) is the most
popular web server for Windows NT. - IIS is an integrated feature of Windows 2000/XP.
- Download from
- http//www.microsoft.com/ntserver/nts/downloads/re
commended/NT4OptPk/ - Product home page
- http//www.microsoft.com/ntserver/Basics/WebServic
es/
7Web ServerStructure
- A web server has a physical directory structure
on disk. - This maps onto a virtual directory structure for
internet access. - Management depends on web server used.
- If for example the homepage was stored in
- ...\users\cs0egandy\public_html
- This directory might be accessed from the web
using - http//osiris.sunderland.ac.uk/cs0ega/
8Demonstration
- http//osiris.sunderland.ac.uk/cs0ega/
9Virtual directories
- Multiple websites on the same web server are
placed in separate virtual directories. - To add a new website, a new directory will be
created and the website file structure placed
under it. - An alias for the virtual directory will be mapped
to the physical directory on disk. - This alias is the name by which the directory is
referred to from the internet.
10Example
- A virtual directory has been created with alias
webeng. - This is mapped to the physical directory
- ...\users\cs0webeng\public_html\
- Files placed in this directory will now be
accessible from - http//osiris.sunderland.ac.uk/webeng/
- An index.htm file has been provided and this will
provide the starting point for the website.
11Demonstration
- http//osiris.sunderland.ac.uk/webeng/
12Sub-directories
- The same principle works for directories under a
website structure. - A developer can create a new directory under
their root web directory e.g. - ...\users\cs0webeng\public_html\testdir\
- If they place a default file index.htm (or other
valid default name) this can be accessed - http//osiris.sunderland.ac.uk/webeng/testdir/
- In this case no web server alias is required.
13Demonstration
- http//osiris.sunderland.ac.uk/webeng/testdir/
14Directory Listings
- What happens if no default file is provided?
- Within the website another sub-directory has been
created - ...\users\cs0webeng\public_html\programming\
- This directory does not contain a default file so
an initial page cannot be identified - A directory listing is displayed instead.
- For this to work the web server must be
configured to enable "Directory Browsing.
Usually a simple option, available when creating
website accounts.
15Demonstration
- http//osiris.sunderland.ac.uk/webeng/programming/
16Web Servers andCGI Programs
- Web Servers also provide a virtual directory with
alias scripts to enable execution of CGI
programs. - This is mapped to physical directory
- ...\users\cs0webeng\public_html\scripts\
- CGI programs should be copied into this
directory. - They can then be accessed through
- http//osiris.sunderland.ac.uk/webeng/scripts/
- Note that execute scripts permissions are set
for this directory by the Web Server Manager if
scripting is allowed.
17Demonstration
- http//osiris.../webeng/scripts/randback.exe
18File Transfer
- So far we have simply copied files to directories
on the server. - This is fine when you have access to the web
server via a network. - With larger servers (such as those run by ISPs)
the users are widely distributed. - A network connection may not be possible.
- In this case files are copied to/from the server
using FTP (File Transfer Protocol). - FTP copies both binary and ASCII (Text) files.
19FTP Software
- There are many FTP programs (most are free
downloads) - Examples are
- WS-FTP
- LeechFTP
- WinSCP
- At Sunderland WinSCP is widely used and
recommended - http//winscp.sourceforge.net/eng/)
20Demonstration
21WebsiteManagement Issues
- Why bother managing a website?
- Why shouldn't the website be left to evolve
naturally? - Surely new pages can be added as necessary?
- Out of date hyperlinks? Surely a regular check is
sufficient.
22Reasons for management
- Web engineering is a complicated technical
activity. - Additional non-technical tasks are required.
- Often large teams are involved.
- Development costs can be high.
- To avoid failure
- Plan the project/website.
- Consider the risks.
- Establish a schedule.
- Track progress.
- Ensure appropriate controls are in place (quality
assurance).
23Web Engineering skills
- Software engineering, component-based.
- Networking.
- Architectural design.
- Navigational design.
- Internet standards/languages.
- Security.
- HCI (Human Computer Interface) design.
- Graphic design.
- Content layout.
- Application testing.
24A Web Engineering Team
- Content developer provider.
- Generation and/or collection of content from a
range of sources. - Web publisher.
- Organise content and act as liaison between
content developer and web engineer. - Web engineer.
- Cuts code!
- Support/maintenance specialist.
- Responsible for corrections, adaptations
enhancements. - Administrator.
- Responsible for day-to-day operation. The
"webmaster".
25Configuration Management
- Software Engineering SCM (Software Configuration
Management) principles can be applied. - Web applications are frequently changing.
- Often many developers are working on a single
website. - inadequate control may result in
- unauthorised posting of information.
- simultaneous posting of information (updates may
be lost). - erroneous or poorly tested functionality.
- security may be breached.
26SCM Issues
- Content
- Requires organisation and formal methods of
control. Who updates what and when? - People
- Often web pages are created/updated by people
without a software engineering background. - They may be unaware of need for configuration
management. - Website can grow/change in an uncontrolled way.
- Scalability
- Websites commonly start small and expand.
- Small changes can have large effects.
- Politics
- Who "owns" the website?
- Who pays for changes/corrections?
27SCM Processes
- Version control.
- Change control.
- Configuration audit.
- Status Reporting.
- Tools available for general software
configuration control can be used in web
engineering. - Examples of such software
- Microsoft Visual SourceSafe (included with Visual
Studio Professional). - SCCS (Unix).
28Version Control
v1.3
v1.4
v1.0
v1.1
v1.2
v2.0
v2.1
v1.1.1
v1.1.2
29ChangeControl
User requests change
Developer evaluates
Change report generated
Change control authority decides
Request is queued for action
Change request is denied
Developer is assigned
User is informed
Items required are "checked out"
Change is made
Change is reviewed/audited
Local testing is performed
Items are "checked in"
Changes set for inclusion in next release
All changes to version reviewed/audited
Release/Distribute new version
30Access Control
Check in
Modified version
Baseline version
unlock
audit info
ownership info
Project Database (Source Files)
Access Control
Web Engineer
lock
Baseline version
Extracted version
Check out
31WebsiteArchitecture
- When designing a website you must plan the
architecture. - How will the user navigate your website?
- What links are required between pages?
- What external links are required?
- Consider maintenance/expansion.
32Linear Architecture
Linear with optional flow
Linear with diversions
Linear
33Use of Linear Structures
- When a predictable sequence of iterations (with
some diversion or variation) is expected. - Examples
- The Exercises section of the WebEng site where
students are expected to move through in order. - The ordering section of a website where you move
through a checkout system.
34Grid Architecture
35Use of Grid Structures
- When the content can be organised into categories
of one or two dimensions. - Example
- A site selling equivalent products produced by
different manufacturers. - Navigate horizontally to locate the required
product. - Navigate vertically to compare different
manufacturers.
36Hierarchical Architecture
37Use of Hierarchical Structures
- The most common type of website structure.
- Allows navigation horizontally between different
vertical branches of the structure. - Allows rapid navigation across content.
- Can be confusing to the user.
38Networked ("Pure Web") Architecture
39Use of Networked Structure
- Every page is linked to every other page.
- Complete flexibility of navigation.
- Considerably confusing to the user.
- What happens if a page is removed?
- A maintenance nightmare!
40Website Navigation
- Structures can be combined to form composite
structures. - The overall architecture of a website is
generally composite. - The website designer must take into account the
following - Good navigation between related pages.
- Do not confuse the user with too many links.
- What form should the links take - text, buttons,
tabs? - Maintenance/expansion should be taken into
account.
41Directory Structures
- Websites can quickly become large and
complicated. - The use of a sensible directory structure is
important. - It is common to have separate directories for
images and scripts. - Other sub-sections should be separated out into
separate directories. - Links should be relative not absolute so they are
not broken if the site moves.
42Testingwebsite links
- Broken hyperlinks are extremely irritating to the
user. - Before releasing your website you should check
all links are valid. - Tools are often included in Development Software
e.g. Visual InterDev, Pagemill. - Links to external sites should be checked
regularly. - If you make significant changes to your website,
check internal links. - As your website expands, ensure appropriate links
to new sections (and back) are added.
43References
- Material for this lecture was obtained from
- "Software Engineering a Practitioner's Approach
(European Adaptation)" Pressman Ince Schaum,
2000 ISBN 0-07709-677-0 - "Internet World Wide Web How to Program"
Deitel, Deitel Nieto Prentice Hall ISBN
0-13-030897-8. - Example CGI Program was provided by
- Dr. Giles Oatley