Saturday, December 29, 2007

What will I use to build this application?

The application will be constructed using what is commonly called the LAMP stack, which refers to Linux, Apache, MySQL, and PHP.

Linux is an operating system that is commonly used by servers. Servers host the web sites (including this blog) that make up the world wide web. When the application is finished and ready to deploy, I will have to choose a commercial company to host it, and their servers may or may not run Linux, but that doesn't affect the design of the application, and I don't ever have to deal with Linux. The LAMP stack could be WAMP (with Windows), but for the sake of simplicity I'm just assuming it will be Linux.

Apache is a web server. It's actually a piece of software that enables a physical computer to "serve" web pages. Apache takes a raw HTML file from the server, reads the code, and outputs a finished web page to the client (the end user - you.) For development purposes, I've installed Apache 2.2.6 on my computer, so that I can view the output of my own code without having to upload it to a commercial server and then access it over the internet. This speeds the development cycle. Once installed (on the commercial server or on my own computer) it requires little or no upkeep, so Apache doesn't constitute a large portion of my application's development.

MySQL is a database engine that will store the discography information itself. MySQL is freely available, but also comes as a commercial application (MySQL Enterprise) supported by MySQL AB, the company that owns the code. I will be using the Community version, which is free to download and use. MySQL won't be visible to the end-user, but will run in the background. MySQL, like other databases, uses Structured Query Language (SQL), and is complicated enough to warrant its own future posts. Stay tuned. I am using MySQL Community Server 5.0.

PHP is another language that is commonly used as a translator between the front-end (the part of the application that the user actually sees) and the MySQL database. It's a completely separate and very complicated (and powerful) programming language. PHP is a server-side language, meaning it gives commands to the server, which executes those commands and then sends them back to the client. This is the opposite of JavaScript, whose commands are executed by a locally installed version of Java, and then sent to the web browser. PHP stands for PHP: Hypertext Pre-processor. I am using PHP 5.0.

Each of these applications is free to download and use, which has made the LAMP stack the one of the most popular ways to build and host web sites.

No comments: