# BAPP

BAPP and BAMP are acronyms to describe sets of open-source software programs commonly used together to run dynamic websites or servers. This set is a solution stack, and an open source web platform.
BAPP refers to:
* BSD, family of operating systems;
* Apache, the web server;
* PostgreSQL, the database management system (or database server);
* Perl, PHP, Python, and/or Primate (mod mono), scripting/programming languages.
BAMP refers to:
* BSD, family of operating systems;
* Apache, the web server;
* MySQL, the database management system (or database server);
* Perl, PHP, Python, and/or Primate (mod mono), scripting/programming languages.
The two acronyms have three major uses:
* Define a web server infrastructure
* Define a programming paradigm of developing software
* Define a software distribution package

## Underlying BSD family of operating systems

As an operating system, FreeBSD (a BSD descendant) is generally regarded as reliable and robust, and of the operating systems that accurately report uptime remotely, FreeBSD (and other BSD descendants) are the most common free operating system listed in Netcraft's list of the 50 web servers with the longest uptime (uptime on some operating systems such as some versions of Linux cannot be determined remotely), making it a top choice among ISPs and hosting providers. A long uptime also indicates that no kernel updates have been deemed necessary, as installing a new kernel requires a reboot and resets the uptime counter of the system.

## Solution stack

Though the originators of these open source programs did not design them all to work specifically with each other, the combination has become popular because of its low acquisition cost and because of the ubiquity of its components (which come bundled with most current BSD distributions particularly as deployed by ISPs). When used in combination they represent a solution stack of technologies that support application servers. Other such stacks include unified application development environments such as Apple's WebObjects, Java/Jakarta EE, Grails, and Microsoft's .NET architecture.

## Interface

The scripting component of the BAPP stack has its origins in the CGI web interfaces that became popular in the early 1990s. This technology allows the user of a web browser to execute a program on the web server, and to thereby receive dynamic as well as static content. Programmers used scripting languages with these programs because of their ability to manipulate text streams easily and efficiently, even when they originate from disparate sources. For this reason system designers often referred to such scripting systems as glue languages.

## Variants

Other variants of the term include:
* Instead of BSD:
** LAPP, using Linux.
** MAPP, using Macintosh
** WAPP, using Windows.
* Instead of PostgreSQL:
** BAMP, using MySQL.
** FBAP, using Firebird.
** BAIP, using Informix.
** BAPS, using servlets.
* Others or Some Combination of the Above
** BAPPS, with the S for SSL.
** BCHS, with for C, OpenBSD httpd, and SQLite.
** LAMP, using Linux, Apache and MySQL.
** WAMP, using Windows, Apache and MySQL.
** WIPP, for Microsoft Windows, Microsoft IIS, PostgreSQL, and PHP.
** WISP, for Microsoft Windows, Microsoft IIS, Microsoft SQL Server, and PHP.
** WISA, for Microsoft Windows, Microsoft IIS, Microsoft SQL Server, and ASP.NET.
** MARS, for MySQL, Apache, Ruby, and Solaris
** FWIP, for Firebird, Windows, IIS, and PHP.
** FWAP, for Firebird, Windows, Apache, and PHP.