Saturday, March 17, 2012

"A Patchy Server" - The story of a guy who dominates server hosts.

Apache Group is a collection of talented individuals who spend a great part of their free time trying to create the best web server money can't buy.

Yes, I'm referring to "The Apache"! One of the coolest, robust and ultimate server that humanity has been gifted from the times of birth of WWW. It is one of the best creations in the history of WWW/Computers.
What makes it so unique and stand away from crowd product, let us figure out in following lines..

When was Apache built ?

In February of 1995, the most popular server software on the Web was the public domain HTTP daemon developed by Rob McCool at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. However, development of that httpd had stalled after Rob left NCSA in mid-1994, and many webmasters had developed their own extensions and bug fixes that were in need of a common distribution. A small group of these webmasters, contacted via private e-mail, gathered together for the purpose of coordinating their changes (in the form of "patches"). Brian Behlendorf and Cliff Skolnick put together a mailing list, shared information space, and logins for the core developers on a machine in the California Bay Area, with bandwidth donated by HotWired. By the end of February, eight core contributors formed the foundation of the original Apache Group.
Why is it called Apache ?
Using NCSA httpd 1.3 as a base, Apache group added all of the published bug fixes and worthwhile enhancements they could find, tested the result on their own servers, and made the first official public release (0.6.2) of the Apache server in April 1995. Because, it was developed by aggregating all the patches together to form a end product it was called Apache (A Patchy Server).
How Apache started growing?
The early Apache server was a big hit, but they all knew that the codebase needed a general overhaul and redesign. During May-June 1995, while Rob Hartill and the rest of the group focused on implementing new features for 0.7.x (like pre-forked child processes) and supporting the rapidly growing Apache user community and the addition of many features in the form of our standard modules, Apache 1.0 was released on December 1, 1995.
Less than a year after the group was formed, the Apache server passed NCSA's httpd as the #1 server on the Internet and according to the survey by Netcraft, it retains that position today.
In 1999, members of the Apache Group formed the Apache Software Foundation to provide organizational, legal, and financial support for the Apache HTTP Server. The foundation has placed the software on a solid footing for future development, and greatly expanded the number of Open Source software projects, which fall under this Foundation's umbrella.
Why Apache is so special when there are other server softwares?


Firstly, Apache is a Open source project! It means, Apache is not only free of cost but also you can take the source code of Apache and make it work as you want. In the sense, You can redesign or redefine Apache as you want and Apache License allows you to do that. Apache as it comes is very stable, robust, fast, scalable and pretty decent. If you compare with any other enterprise server softwares, Apache is far more better in performance, support and documentation.

A peep into Architecture of Apache?







As in the above fig. we can divide Apache into 4 main Layers :

Operating System : Though OS has nothing much to do with Apache Architecture, the Apache core relies on its functionality. MPM contains the OS related APIs that makes Apache run on multiple platforms.

Apache core : The Apache core is the basic core of Apache that implements all basic functionalities of a server such as memory management, HTTP protocol, OS integration, Socket binding, port mapping, OS specific functionalities, process management etc.. For all the functionality that Apache gives us, Apache core is what that works to do so.

Apache Modules : This is the most interesting thing about Apache where, we can write modules that uses Apache core API and direct Apache to perform activities. Apache modules are independent of OS/Platform.
These Apache modules can also act as Interpreter for a CGI script / Runtime for a Language.

Programming Language : Any programming Language that we want to integrate with Apache has to to be intergrated with its compiler/Interpreter. This can be done in 2 ways, One is to write a module that interprets this language and second is to run this language as a CGI script.

Where can i find more info on Apache?
Apache is a open source project and people all around the globe use it and contribute to it. Hence, the vicinity of Apache is huge. You can get more details on Apache here : http://httpd.apache.org/ 

Cheers,
Chaitanya. 







No comments:

Post a Comment