Now that simple web service provisioning is migrating into the creation and maintenance of e-services, the builders of these services are becoming more important. Let's call them e-Builders (capital "B" for emphasis).
There is a big opportunity in becoming an e-Builder for the local (Philippine) e-conomy. My focus is in covering the tools and methologies of e-Builders using open source packages, for creating dynamic applications. (John Gavilan is more qualified about doing things the Microsoft way, and some other common ways using commercial/proprietary products are with Lotus Domino, and Cold Fusion). What the open source tools have in common is that you have to do a little programming to tune them up to taste and the proper specifications. We'll run through some of the most common tools used. **Web Servers
You need a web server to feed data down the pipes of your clients. This is easily done with the static, unchanging data you have are used to serving with "regular" home pages, like HTML and text pages, and graphics. However, as an e-Builder your server must be capable of generating dyanmic output. The most common dynamic output method supported by (practically) all web servers is CGI, or Common Gateway Interface, which is a protocol with which the web server can launch an external program to generate output. However, CGI is not very efficient for high-demand sites since starting external programs slow down the server. Different web servers offer alternative methods for solving this problem. **Apache
Apache <http://www.apache.org/httpd.html> is the world's most popular web server as measured by NetCraft <http://www.netcraft.com>, maintained by the Apache Software Foundation <http://www.apache.org>. Apache has a modular programming interface, allowing C programmers to write their own modules to extend its functionality. One such module is called mod_perl <http://perl.apache.org>, which starts the Perl <http://www.perl.com> language interpreter when Apache starts up. With this, it avoids the overhead suffered by CGI scripts written in Perl which have to start up and shut down the interpreter every time they run. mod_perl allows you to add your own modules, whether you write your own (for Perl experts), or plug in some existing ones. Existing scripts include a CGI "accelerator", and Embedded Perl, a scripting language similiar to ASP which allows you to write Perl code inside HTML and do other neat things. **AOLServer
AOLServer <http://www.aolserver.com> is endorsed by the insightful online (and printed) book Web Techniques Review <http://photo.net/wtr>. It has some architectural differences from Apache in the way it works. Its native scripting language is Tcl (short for Tool Control Language), which I don't think many people in the Philippines use. **Squid
The main purpose of Squid <http://squid.nlanr.net> is to be a web proxy cache and save bandwidth and download latency (access time) for Internet users. However, it has a useful feature - accelerating and distributing web servers. Using this program, you can separate the static content like text pages and images from the dynamic content, putting the static parts on many different servers. **Database Servers
Most dynamic pages fetch their content from a structured (relational) database. For small amounts of data, you can get away with storing the data in plain text files, but that does not scale to large amounts of records. For bigger projects, you need to put it in a database and you need to get familiar with the basics of SQL, the Structured Query Language.
The most popular inexpensive database for Web development is MySQL <http://www.mysql.org>. Its cutting edge version is commercial, and is free only for non-commercial use. An older version is released as GPL (GNU General Public License) Free Software <http://www.fsf.org>. Its major "competitor" is PostgreSQL <http://www.postgresql.org>, or Postgres or Pg for short. Pg is free software, and is developed by volunteers, and has a different set of goals than MySQL. Pg was designed more as an object relational database management system (ORDBMS), and is slower than MySQL which is designed as a data storage engine. Programs written for one are not necessarily portable to the other since they both diverge from the SQL standards in some ways. However it is possible to administer and work with both since they are more similar than they are alike. **More Components
In the continuation of this article, we will cover the different languages you can use to do your e-Building, as well as the other components that will make it work, such as your choice of operating system, and whether you should run your own server, or use a shared or "virtual" host.
WIRED! Philippines is a monthly online magazine published and hosted by KabayanCentral.com
Copyright 1999 KabayanCentral.com. All rights reserved.