Location: GUIs >
Misc GUIs >
Remote GUIs >
The Web
Previous - Client / Server
The Web
What is the web?
The web is an Internet system designed to enable easy retrieval of documents,
images, and files.
An application, commonly called a web browser, requests a document from
a server on a network, the server returns the document in the form of a
text file with markup tags, and the browser interprets these tags to render
the document.
At least that was the original idea. A modern web browser is essentially
a large programmable client / server application that has been extended
to embed and interact with a number of other technologies or applications
that are not really part of "the web". These include Java, Flash, ActiveX,
and plug-ins such as media players.
Originally a simple web page file was just text in HyperText Markup
Language (HTML) format plus several kinds of graphic files. Modern web
pages also contain CSS (Cascading Style Sheets), JavaScript (not to be
confused with Java), and a wider variety of graphic formats. At the server
web pages are often dynamically generated with server side languages such
as Perl, PHP, ASP, or Cold Fusion, which must be intermixed with HTML as
well as database query languages.
In other words, it takes a lot of different stuff to make a modern web
site go.
There are a variety of web browser clients in existence that are available
for a number of different operating systems. The more popular ones are
listed below:
Mozilla - Mozilla is a powerful, cross platform, standards compliant,
modern up-to-the-minute browser that is maintained by the Mozilla Organization.
Netscape - A re-branded version of Mozilla bundled with Java
and other extra plug-ins, distributed by AOL.
Opera - A modern commercial web browser from Opera software
that excels at running on slower PCs and embedded hardware.
Konqueror - A fast, modern, standards compliant web browser
for Unix and Linux systems from the makers of the KDE desktop.
Safari - The new standard web browser from Apple for MacOS X,
based on the standards compliant rendering engine of Konqueror.
Internet Explorer - A rather out of date browser from Microsoft
that is no longer supported on any OS other than Windows. It only remains
popular because it is bundled with every copy of Microsoft Windows sold.
On the server side, there are also a number of web servers. The most
popular ones are Apache Web Server, and Microsoft Internet Information
Server.
On the server side there are some very large advantages.
-
Any operating system can run a web server and it makes no difference at
all at the client end which OS the server is running.
-
Because web browsers operate by only connecting to a web server when it
is requesting a document or file, web servers can handle huge numbers of
users.
-
There are a variety of ways to proxy and cache web content giving improved
performance.
-
Because web servers were developed as a free and open technology there
is no licensing required for individual web clients to connect to a web
server.
-
The Apache web server and a number of other web servers are free. (Microsoft
IIS is not free - you pay for it with Windows server).
The main disadvantages to the web lie in the client software and the way
web applications have to be written on the server. Each browser has its
own capabilities and quirks that must be designed for. Even issues on an
individual's computer with the same browser can cause problems displaying
pages.
Web Documents:
Basic HTML document.
This is an example of a simple HTML document. It normally renders in
a browser window, but some browsers allow other applications to embed the
document viewer. Documents are usually linked together by "Hyperlinks".
Hyperlinks can link to documents on the same server or on other servers.
Hyperlinks can also be used to launch non-web internet services such as
Telnet, Gopher, or FTP services.
Like ANSI shown in the previous section, HTML is just text with markup.
These tags are interpreted by the browser to produce the rendered document.
While there are some visual tools to generate simple web pages, advanced
features usually require manually writing code.
Because people manually write their own code, it is very easy to produce
bad HTML or HTML that fails to render for a variety of reasons.
There are specifications on how HTML should render, however these specifications
often do not cover every little detail or possible interaction. In these
cases it is left up to the client browser how to render.
Web applications
A web application is basically anything that is more than just a static
(non changing) document. A web application can be as simple as a page with
text that changes when the page is reloaded or it can be as complicated
as having its own windowing system and custom controls.
When web browsers first came out, certain companies (Netscape, and then
MS) boasted that their web browsers were more than just document viewers
and could be used as an API for full-blown applications. This really wasn't
true but that hasn't stopped people from trying.
Search engines are a useful form of web application. This screen shot
is of Google, a popular search engine that searches all documents on the
web. (in case you didn't already know.)
Another popular application of the web is the on-line store. This is
an example of an on-line store. On typical on-line stores you can view
images of products, get current prices, and purchase products.
A very popular and common application of the web is the discussion
board and similar message or news boards. Hey, I can finally use a screen
shot of Slashdot and it actually has a purpose!
An example of a more business related web application is Bugzilla,
an application used by software developers for tracking bugs, features,
and changes in applications.
Notice that the previous web applications look and work almost nothing
like a traditional desktop application (although newer desktop applications
are often, and incorrectly, being designed to look like web applications).
Web browsers are very limited in what they can do although their capability
is slowly growing.
It is not impossible to make web browser based applications that look
like normal applications. But underneath the hood they are usually much
more complicated than the equivalent desktop application. They often depend
on the functionality of a specific browser and the bugs and limitations
of the browser are often visible.
Additionally, such applications rely on browser scripting. Scripting
is not reliable as many people disable scripting for a variety of reasons.
Mainly to work around security problems.
As a browser is just a document renderer it does not use 3d graphics
or 2d video acceleration. Most games accessible via the web are usually
implemented with programs external to the browser such as Java or Flash.
Data entry forms are an application of the web that seems to be in great
demand, however web browsers make very poor entry user interfaces. This
is due to the design of the web and what it was intended for.
Web browsers have a very basic set of input controls with rather limited
ability. These input controls were primarily designed to enable searching
and were not intended for complex data entry. Input controls consist of
input boxes (single line), drop down boxes (limited to one column in a
drop down), text areas (multi-line with no possible limit to number of
characters), check boxes, radio buttons, list boxes (single column), and
buttons.
HTML pages are incapable of fancier input controls such as editable
data grids. Although embedded Java or Active X applications are often used
to get around this limitation.
Another problem is that field validation or field masking during data
entry requires JavaScript, which may not always be enabled on the client.
There can also be problems with JavaScript compatibility between different
browsers.
And finally, as a performance issue, moving between fields or refreshing
data usually requires loading an entirely new page.
Another popular use for the web is reporting. If the data is simple,
exact formatting isn't important, and the data is to be available globally,
then a web page will often suffice.
For professional reports that must be formatted exactly, a web browser
will not cut it. There are just too many limitations.
-
By design, web pages are continuous documents and do not translate to multiple
pages well.
-
Browsers (even the same browser), can render content differently depending
on the configuration of the computer.
-
The appropriate fonts must be installed on all clients viewing the report.
-
Web browsers often add URL headings, footers, and extra margins to the
printout and it is difficult if not impossible to automatically control
them.
-
It is not even currently possible to set a page to automatically print
landscape. (There is a w3c standard CSS command to to this, but no browser
currently correctly implements it.)
-
Writing web based reports can often involve the time consuming task of
manually writing reams of code involving half a dozen different languages,
whereas an equivalent report on a traditional desktop based application
may consist simply of quick drag-and-drop design. For the same reason,
maintenance of such web reports can be very difficult and time consuming.
For static content the standard alternative is to post the document or
report in Adobe Portable Document File (PDF) format. This requires Adobe's
PDF viewer application that is functionally external to a web browser.
There are also a number of other applications of the web, such as web
based e-mail, on-line banking, and the number one application that made
the web so popular in the first place: Porn!
Next - Summary of Remote GUIs
|