{INCLUDE _WEB_HDR.HTM}

Part 1: An Overview of the Web

The World Wide Web (WWW) refers to a set of publically available (but not necessarily free) resources and tools that are a part of the world-wide internet. These tools include servers and browsers, protocols, markup languages, addresses, and scripts. Each of these components work together providing a user with access to information from around the world.

One of the most successful aspects of the web is that the user interacts with the environment with much of the underlying infrastructure hidden. Details of protocols, routers, domain name servers, and the like are largely hidden from view.

Hypertext Markup Language

The first thing about the web that makes it truely useful is the language that the web speaks. This language is called Hypertext Markup Language or HTML. HTML provides a method of displaying text and graphics integrated on a page and including within that text and graphical information, links from location to location. If you have ever used windows help, this is a hypertext system where a keyword or phrase may be underlined and clicking on the link takes you to that new location where information is stored. What is interesting about hypertext links in HTML is that the links can not only branch to information in the same document, but to other documents and even other web sites as easily.

HTML includes some of the typical things that you would expect in a page description language. You can specify text color, font size, and alignment. You can place graphics and use tables. HTML also omits some things that you may find quite suprising. It can be difficult to control exact placement of characters. There is limited control of font styles. And elements like flowing columns and page breaks are non-existant. Most of these limitations stem from the original days of HTML where HTML was a layout language designed for publishing arcane computer documentation.

Most of the complexity of modern-day HTML usage stems from web page designers trying to produce visually appealing page layouts using a language that does not lend itself well to page layouts. As such, a number of HTML features are now used in manners that are very strange indeed. For example, if you wish to layout a page with two columns, you create an HTML document that defines a table and use each table cell as a column.

One of the other problems, as well as one of the strengths, of HTML is that the finished document may display differently depending on the client that is in use. These variances can be due to screen resolutions, the version of browser software in use, and other factors. While this at first appears to be a severe handicap, it is actually a big bonus as well. You see, web pages that display on a 1024x768 high-resolution computer monitor are still usable at 300x200 on Web TV.

Hypertext Transfer Protocol

The next element of the web that makes it useful is the interaction protocol that is used between the client (browser) and host (web server). This protocol is called Hypertext Transfer Protocol or HTTP. HTTP is actually a very lighweight file transfer protocol that works like this. A cleint (browser) makes a request for a file (also called a resource). This request may include just the name of the file or it may include the name along with a number of parameters. The host (web server) will respond to this request for a file with a single responce. After the host delivers the response to the client, the host can forget about the client and go on to other work.

This whole operation is very batch oriented. A single request is transmitted from the client to the host and the host responds with a single response. In the first implementation of HTTP (version 0.9), an individual TCP/IP stream connection would be opened and closed for each request/response transaction. With later versions of HTTP, this individual connection could be maintained for longer periods to improve performance. Being batch oriented again has its benefits and problems. With the public internet, performance can have very high latency. This means that even though the amount of data that can be moved from point to point may be high, it may still take a long time for the data to get there. By running in screen-at-a-time batch mode, this latency has minimal effects on the usefulness of the application. The downside of batch mode is that it is batch mode. Interactive conversations with the host are not supported except when requesting a completely new page. This can make conversing with a user somewhat less efficient than a traditional terminal or windows GUI application.

Data Entry and Forms

Yes, you can do data entry on the web. One of the features of HTML is called "Forms". A form is a collection of input controls that you can include in an HTML page. A form can include input fields that the user can type in, buttons to press, boxes to check, and lists to pick from. The process model is still batch-mode, so the user must fill in all of the information and then hit the "submit" button. At this point, the next request to the host (web server) will include the not only the next file to retrieve, but also the information the the user entered on the form. HTML data entry forms can be quite simple or quite comprehensive. These is esentially no limit to the number of fields allowed on a form and the fields are formattable with the same proceedures as are used for laying out other HTML elements. What is missing from HTML input forms is field-by-field validation. If you have information that only the host can validate, then the error cannot be detected until the entire form is completed and submitted to the server. Only at that point can the server detect errors and ask the user to correct problems.

Static vs. Dynamic Content

So far, we have described the webs operation in terms of what is referred to as "static content". Static content indicates that the user will view information that does not change based on information that they supply. Static content is like publishing an electronic book. There may be links from place to place along with pretty pictures, but the actual content does not vary. This is not to say that static content is not useful for many purposes. If you are a consultant and you want to allow perspective clients to view your resume on the web, then static content makes a lot of sense. The same goes for publishing an employee manual for in-house "intranet" usage.

The web really gets interesting when it's use goes beyond static content. In this case, the users is not only displaying pre-built information, but also interactively using dynamic information that is the result of their input. Dynamic web content is probably more accurately referred to as a "web application". The host (web server) not only stores pre-built HTML and image files, but also stores database and program files that allow the user to dynamically interact.

The Anatomy of a Web Server

Now we start to get to the nuts and bolts of publishing on the web. If you wish to publish information on the web, you need a place to store your information and a computer system that will respond to the HTTP requests from the user. This means that you need a computer system connected to the internet with appropriate web server software. This is a web server. It contains the following components: This is obviously a pretty standard computer. It can be a native Pick system, a system running Unix, a Windows 95 or Windows NT system, or a mainframe. Again, provided that the web server software and interface to the internet are available, the system can run anywhere. Of course, some system are better suited for one application over another, but that is not important here. Assuming that the web server has the minimum set of requirements, it can publish information on the web. Not only can it publish information on the web, but assuming that it is running the correct protocols (TCP/IP and HTTP), it is absolutely indistinguishable from any other web server on the internet.

A Traditional Stand-Alone Web Server

Web servers like Internet Information Server (IIS from Microsoft), Netscape Commerce Server, or Apache all consist of a stand-alone Unix or Windows NT program that waits for HTTP requests and produces HTTP replies. None of these programs have anything to do with the MultiValue environment.

These web servers provide APIs (Application Programming Interfaces) that allow you to write programs that interace with the web servers. These APIs are not designed to interace directly with the MultiValue database environment and either require database access through SQL and ODBC, or require scripts using Common Gateway Interconnections (CGI) or 'C' programs to pass data to and from the MultiValue environment. This results in a multi-layer environment that only adds complexity and overhead in accessing your MultiValue data and applications.

The PicLan-IP Web Server

The PicLan-IP web server is much the same as IIS, NetScape Commerse Server, or Apache in that the same protocols are used and the same web pages can be presented to the user. What is different about PicLan-IP is that instead of being implemented as a stand-alone Unix or Windows NT program, PicLan-IP is implemented as a native MultiValue program. So instead of requiring a bridge or middle-ware from a non-MV environment, PicLan-IP is designed from the beginning to support the MultiValue database environment directly. You can use your MultiValue data directly in MultiValue format with attributes, values, and subvalues. You can use your MV/Basic, ACCESS, and even PROC-based software directly without translating through a foreign environment.

{INCLUDE _WEB_FTR.HTM}