Creating the web sites as multi-tiered, that is, having different areas (that may be located in different places) that support the main activity of the user, should ease the use and stability of the web sites that implement the free flowing web of information. Showing the full co-operative authoring interface to all users is probably not ideal, as it would increase the complexity for both first time users, and those that only want to read the web site. The advantage of a multi-tier web site is that it can combine different types of web pages in a layered fashion. That is, the pages can be dynamically created, then stored as static pages, which allows people to access either set of pages, depending on the functionality that they want. For example a web site that allows pages to be edited could have the dynamic site available for both read and write access, while keeping an up to date set of static web pages, which most people access for reading only. This allows people read access at all times, even when the dynamic site is having problems. This is applicable to all web sites that use dynamic generation for web pages and can be very useful to ensure reliability. This was not included in earlier versions of the YEdit system, but is now included and can be used with little extra set up required. The differences between the different types of web page are discussed below.
Static web pages
There are several different types of web pages. The easiest and probably the most common is the static web page (a web page that is written and then served to the user as is, with no other information added to it), all the web server does is display it. Often these types of pages will be the basis for an interactive site, as static pages load faster, and because they don't have any changing information in them, you know how they will be displayed, as there is less to go wrong in them.
* Advantages of static web pages are that they are fast, reliable, simple and easy to create.
* Disadvantages of static web pages are that they can be time consuming to update, and it is easy to have broken links and associated problems because a web page or link was missed when they were updated.
Static web pages with Dynamic content
This type of web page is written as a static page, but has statements in the page that the web server will execute. Examples of this type of page include pages that call SSI (Server Side Include) functions, embedded Java Servlets, and a few others. These are commonly used to include dynamic information into an otherwise static web page. This can also include having the static web page as a template, and using the dynamic content to fill that template. There are many options and different ways of combining static web pages with dynamic content. There is a risk that if the dynamic content is not available when the web page is requested, that the page may not display properly, or at all.
* Advantages of static web pages with dynamic content are that they are much more flexible than a static web page, it is possible to update the content without changing the web page, and they are somewhat customisable to visitors.
* Disadvantages of static web pages with dynamic content are that some web pages may be slow to load, while some are fast. This variation in behaviour makes the web site seem inconsistent, so the web surfer does not know what to expect next. The dynamic content can potentially have quite complex interactions, which can cause problems for both the web master and the web surfer. Also static web pages with dynamic content are less flexible than a fully dynamic page.
Dynamic web pages
Dynamic web pages are fully generated on the web server commonly using the CGI (Common Gateway Interface). CGI is the main method of calling executable programs from the web server, and it allows you to call almost any type of executable. Often the executables are written in Perl (a script language), an executable, or a shell script (such as 'bash' on Unix or batch files on Windows) and most are located in a "/cgi-bin/" directory on the web site. There are exceptions to this; for example some CGI programs are run from individual directories, and some are called via other means, such as Java Servlets that are commonly located in the '/servlets/' directory. Of course they can all be embedded in a web page for use in a static web page with dynamic content, or located elsewhere on the server, provided that the server is set up to expect that. With dynamic web pages there is an even greater risk that pages will not display properly, or at all, if there are any problems with the programs retrieving the content, or the content itself.
* Advantages of dynamic web pages are that all information (including the web page itself) can be updated in real time, and the whole site can be custom-adjusted to visitors.
* Disadvantages of dynamic web pages are that they are slow (compared to static pages), and so require a more powerful web server. They are less reliable than a static web page, as there are more places that a problem can occur, and they are much more complex than static web pages (even ones with dynamic content).
Of course in the real world, there are many pages that straddle the boundaries between those definitions. One example is that a web site might have an index that is updated once a day, but is stored in a static file for the rest of the day, and could be served either straight from the static file, or through a dynamic page.
Multi-tiered web sites
A multi-tiered web site is one in which different parts of the site are located in different places. This can be as simple as having static pages on one site, and dynamic pages on another, through to having separate web servers each with a specific function. For example, there may be some to serve static pages, some to serve images, some to serve the dynamic pages, and some to store the dynamic information (commonly in a database).
One of the major advantages that a multi-tier web site has over one that combines everything is that any problems that occur should only effect one portion of the web site. A multi-tier web site commonly has the best advantages of each type of web page, while reducing the risk that a problem with any one part of the system will bring the whole lot crashing down.
The advantages of static pages are their speed and reliability, and the advantage of dynamic pages is their flexibility. By combining them using a multi-tier web site, the advantages of both can be combined, such as the reliability of static pages and the flexibility of dynamic pages. Also the disadvantages of each should be mitigated to some extent (that is, the lack of flexibly of static pages, and the speed and reliability of dynamic pages). Unlike sites that combine static web pages with dynamic content, the multi-tier web sites split the two by placing them on different servers or at different locations, so if one fails, the other can still keep serving web pages. They would not be quite as reliable as static pages, or quite as flexible as dynamic pages, but they would be a lot more useful. This view is similar to caching the output of the dynamic pages and then using that for all other requests for the page, until the dynamic page is updated, that then automatically updates the cached page. The difference from caching is simply that the dynamic page updates a static page (that need not be on the same server), and the web server then serves this static page (that was written by the dynamic page) as if it were a static page.
This splits the dynamic content pages from the static pages, and would allow all the static pages to be on one web server, which is available for anyone to read, while the dynamic web server is available for those who are updating the documents. This means that even if the web server, which controls the dynamic pages, crashes; the only ones that will know (or possibly notice) are the people who are co-authoring a document at that time. Even then, they can still read the document. This means that the web site is much more robust from the general surfer's point of view, and also means that the web master of the site has less to worry about.
One of the advantages of a separate multi-tiered web site (which has static read-only copies of the web pages on one server, and the same documents, but editable on another) is that it gives the advantages of a static web site (that is the speed, reliability and simplicity), with out the disadvantages, by having the static site automatically updated, as is required, from the interactive editable site.
Disadvantages of a separate multi-tiered web site are that it is a little more complex to set up, and for proper redundancy you need at least two servers, preferably in different physical locations, with different bandwidth providers. If a less robust system is acceptable, then it could be set up to work from the same location, or if really necessary, on the same web server. This would be much less robust, but would still give better robustness than no multi-tier arrangement.
Previous: | 3.13 Lost versions |
Next: | 3.15 The future 2 |