|
What IS the Apache HTTP Server Project?
The Apache HTTP Server Project is a collaborative software
development effort aimed at creating a robust, commercial-grade,
featureful, and freely-available source code implementation
of an HTTP (Web) server. The project is jointly managed
by a group of volunteers located around the world, using
the Internet and the Web to communicate, plan, and develop
the server and its related documentation. This project is
part of the Apache Software Foundation. In addition, hundreds
of users have contributed ideas, code, and documentation
to the project. This file is intended to briefly describe
the history of the Apache HTTP Server and recognize the
many contributors.
How Apache Came to Be
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:
Brian Behlendorf Roy T. Fielding Rob Hartill
David Robinson Cliff Skolnick Randy Terbush
Robert S. Thau Andrew Wilson
with additional contributions from
Eric Hagberg Frank Peters Nicolas Pioch
Using NCSA httpd 1.3 as a base, we added all of the published
bug fixes and worthwhile enhancements we could find, tested
the result on our own servers, and made the first official
public release (0.6.2) of the Apache server in April 1995.
By coincidence, NCSA restarted their own development during
the same period, and Brandon Long and Beth Frank of the
NCSA Server Development Team joined the list in March as
honorary members so that the two projects could share ideas
and fixes.
The early Apache server was a big hit, but we 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, Robert Thau designed a new
server architecture (code-named Shambhala) which included
a modular structure and API for better extensibility, pool-based
memory allocation, and an adaptive pre-forking process model.
The group switched to this new server base in July and added
the features from 0.7.x, resulting in Apache 0.8.8 (and
its brethren) in August.
After extensive beta testing, many ports to obscure platforms,
a new set of documentation (by David Robinson), 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.
Getting Involved
If you just want to send in an occasional suggestion/fix,
then you can simply use the bug reporting form at <http://httpd.apache.org/bug_report.html>.
You can also subscribe to the announcements mailing list
(announce@httpd.apache.org) which we use to broadcast information
about new releases, bugfixes, and upcoming events. There's
a lot of information about the development process (much
of it in serious need of updating) to be found at <http://httpd.apache.org/dev/>.
NOTE: The developer mailing list is NOT a user support
forum; it is for people actively working on development
of the server code. There is also a 'docs' subproject for
those who are actively developing and translating the documentation.
If you have user/configuration questions, subscribe to the
Users list or try the USENET newsgroups "comp.infosystems.www.servers.unix"
or "comp.infosystems.www.servers.ms-windows" (as
appropriate for the platform you use).
Development
There is a core group of contributors, formed initially
of the project founders, and augmented from time to time
by other outstanding contributors. There are 'committers',
who are granted access to the source code control respositories
to help maintain the project or docs, and the core group
now managing the project, which is called the Apache HTTP
Project Management Committee (PMC, for short). In fact,
each Apache Software Foundation project has its own PMC,
to determine committers, project direction and overall management.
The terms "The Apache Group" or "Apache Core"
are no longer used.
The project is a meritocracy -- the more work you have
done, the more you will be allowed to do. The group founders
set the original rules, but they can be changed by vote
of the active PMC members. There is a group of people who
have logins on our server and access to the source code
repositories. Everyone has read-only access to the repositories.
Changes to the code are proposed on the mailing list and
usually voted on by active members -- three +1 ('yes' votes)
and no -1 ('no' votes, or vetoes) are needed to commit a
code change during a release cycle; docs are usually committed
first and then changed as needed, with conflicts resolved
by majority vote.
Our primary method of communication is our mailing list.
Approximately 40 messages a day flow over the list, and
are typically very conversational in tone. We discuss new
features to add, bug fixes, user problems, developments
in the web server community, release dates, etc. The actual
code development takes place on the developers' local machines,
with proposed changes communicated using a patch (output
of a unified "diff -u oldfile newfile" command),
and then applied to the source code control repositories
by one of the committers. Anyone on the mailing list can
vote on a particular issue, but only those made by active
members or people who are known to be experts on that part
of the server are counted towards the requirements for committing.
Vetoes must be accompanied by a convincing technical justification.
New members of the Apache HTTP Project Management Committee
are added when a frequent contributor is nominated by one
member and unanimously approved by the voting members. In
most cases, this "new" member has been actively
contributing to the group's work for over six months, so
it's usually an easy decision.
The project guidelines continously evolve under the oversight
of the PMC, as the membership of the group changes and our
development/coordination tools improve.
Why Apache Software is Free
Apache Software exists to provide robust and commercial-grade
reference implementations of many types of software. It
must remain a platform upon which individuals and institutions
can build reliable systems, both for experimental purposes
and for mission-critical purposes. We believe that the tools
of online publishing should be in the hands of everyone,
and that software companies should make their money by providing
value-added services such as specialized modules and support,
amongst other things. We realize that it is often seen as
an economic advantage for one company to "own"
a market - in the software industry, that means to control
tightly a particular conduit such that all others must pay
for its use. This is typically done by "owning"
the protocols through which companies conduct business,
at the expense of all those other companies. To the extent
that the protocols of the World Wide Web remain "unowned"
by a single company, the Web will remain a level playing
field for companies large and small. Thus, "ownership"
of the protocols must be prevented. To this end, the existence
of robust reference implementations of various protocols
and application programming interfaces, available free to
all companies and individuals, is a tremendously good thing.
Furthermore, the Apache Software Foundation is an organic
entity; those who benefit from this software by using it,
often contribute back to it by providing feature enhancements,
bug fixes, and support for others in public lists and newsgroups.
The effort expended by any particular individual is usually
fairly light, but the resulting product is made very strong.
These kinds of communities can only happen with freely available
software -- when someone has paid for software, they usually
aren't willing to fix its bugs for free. One can argue,
then, that Apache's strength comes from the fact that it's
free, and if it were made "not free" it would
suffer tremendously, even if that money were spent on a
real development team.
We want to see Apache Software used very widely -- by large
companies, small companies, research institutions, schools,
individuals, in the intranet environment, everywhere --
even though this may mean that companies who could afford
commercial software, and would pay for it without blinking,
might get a "free ride" by using Apache. We are
even happy when some commercial software companies completely
drop their own HTTP server development plans and use Apache
as a base, with the proper attributions as described in
the LICENSE. That is to say, the Apache HTTP Sever only
comes from the Apache Software Foundation, but many vendors
ship their own product "based on the Apache {Project}".
There is no "{Vendor} Apache {Product}", this
is an abuse of the Apache Software Foundation's marks.
|