# Topic Map about Apache (web server and projects) (v 1.1) # # Robert Barta, Bond University # # Copyright 2002, 2003 # $Id: apache.atm.monad,v 1.2 2003/02/11 02:46:23 rho Exp $ # $Log: apache.atm.monad,v $ # Revision 1.2 2003/02/11 02:46:23 rho # checkin # # Revision 1.1 2003/02/11 02:44:13 rho # Initial revision # apache: iso-8859-1 apache-software-foundation (foundation) bn: ASF, Apache Software Foundation oc: http://www.apache.org/foundation/ in: provides support for the Apache community of open-source software projects in: ASF members -- board of directors -- ASF Licence in: membership: invitation only (meritocracy) (is-a-member) member: brian-behlendorf group : apache-software-foundation (is-a-member) member: ken-coar group : apache-software-foundation (is-a-member) member: ralf-s-engelschall group : apache-software-foundation (is-a-member) member: rasmus-lerdorf group : apache-software-foundation (is-a-member) member: stefano-mazzocchi group : apache-software-foundation (is-a-member) member: doug-maceachern group : apache-software-foundation (is-a-member) member: greg-stein group : apache-software-foundation apache-project (open-source-project) bn: Apache project(s) in: collaborative, consensus based development process open-source-project (software-project) bn: Open source-project oc (definition): http://searchsolaris.techtarget.com/sDefinition/0,,sid12_gci212709,00.html in: discloses source code for inspection and/or modification (organisation-runs-project) organisation: apache-software-foundation project: apache-project (is-rewrite-of) original-version : ncsa-httpd newer-version : apache-httpd ncsa-httpd (web-server) bn: NCSA web server in: maintained by the Development Group of the National Center for Super-computing Applications in: first generation server -- limited configuration slots apache-httpd (web-server apache-project) bn: Apache HTTP Server in: VERY stable and flexible HTTP daemon for many platforms in (history): was rewrite of NCSA server (very buggy) -- a patch-y server -- urban legend? oc: http://httpd.apache.org/ oc (tutorials): http://httpd.apache.org/docs/misc/tutorials.html (covers-theme) literature: apache-books theme : apache-httpd apache-books (web-site) reifies http://httpd.apache.org/info/apache_books.html bn: Books written about the Apache HTTP Server oc (listing): http://httpd.apache.org/info/apache_books.html (is-subproject-of) subproject: apache-test-project project: apache-httpd apache-test-project (open-source-project) bn: Apache HTTP Test Project in: designing test tools for the Apache in: Flood - a profile-driven HTTP load tester -- a perl-centric HTTP test kit -- modules for SPECWeb99 tests oc (homepage): http://httpd.apache.org/test/ (is-subproject-of) subproject: apache-libapreq project: apache-httpd apache-libapreq (open-source-project) bn: libapreq - Generic Apache Request Library in: modules for manipulating client request data via the Apache API with Perl and C in: parsing of application/x-www-form-urlencoded data, multipart/form-data, HTTP cookies # apache 1.3.x apache-httpd-13 (apache-httpd) bn: Apache HTTP Server, Version 1.3.x in: proven HTTP daemon -- multiplatform -- very flexible -- modular -- most popular since years oc (documentation): http://httpd.apache.org/docs/ oc (download): http://httpd.apache.org/download.cgi (is-compliant-with) system: apache-httpd-13 standard: rfc2616 rfc2616 (rfc) bn: Hypertext Transfer Protocol -- HTTP/1.1 oc: http://www.ietf.org/rfc/rfc2616.txt in: protocol specification from W3C (system-has-feature) system: apache-httpd feature: virtual-hosting (system-has-feature) system: apache-httpd feature: resource-pooling resource-pooling (feature) bn: resource pooling in: memory allocation in handled via a pool manager -- not through OS in: can be optimized (system-has-feature) system: apache-httpd feature: cgi-support (system-has-feature) system: apache-httpd feature: generic-module-support generic-module-support (feature) in: Apache modules may now be loaded at runtime (system-has-feature) system: apache-httpd feature: content-negotiation (system-has-feature) system: apache-httpd feature: handler-support (system-has-feature) system: apache-httpd feature: ssi-support (system-has-feature) system: apache-httpd feature: url-rewriting-support virtual-hosting (feature) bn: virtual hosting in: hosting of web sites without additional IP addresses -- useful for ISPs oc @ apache-httpd : http://httpd.apache.org/docs/vhosts/index.html (software-runs-on-platform) software: apache-httpd platform: windows (software-runs-on-platform) software: apache-httpd platform: unix (software-runs-on-platform) software: apache-httpd platform: os2 (software-runs-on-platform) software: apache-httpd platform: netware (software-runs-on-platform) software: apache-httpd platform: mvs (software-runs-on-platform) software: apache-httpd platform: palmos windows (operating-system) bn: Windows Operating System in: best operating system in the world (according to Microsoft) in: Windows NT, 95, 98, 2000, XP, ... unix (operating-system) bn: Unix operating system in: too hard for my mum os2 (operating-system) bn: OS/2 operating system in: IBM (is-rewrite-of) original-version : apache-httpd-13 newer-version : apache-httpd-20 apache-httpd-20 (apache-httpd) bn: Apache HTTP Server, Version 2.0.x (system-has-feature) system: apache-httpd-20 feature: unix-threading unix-threading (feature) bn: Unix Threading in: Unix POSIX threads support -- Apache can now run in a hybrid multiprocess,\ multithreaded mode -- should improve scalability (system-has-feature) system: apache-httpd-20 feature: multi-protocol-support multi-protocol-support (feature) bn: Multiprotocol Support in: infrastructure to support serving multiple protocols (has-interface) system: apache-httpd-20 interface : apache-api-20 apache-api-20 (application-program-interface) bn: Apache API 2.0 in: module ordering is now done per-hook to allow more flexibility -- \ new calls additional module capabilities without patching the core Apache server (system-has-feature) system: apache-httpd-20 feature: ipv6-support ipv6-support (feature) bn: IPv6 Support in: on systems with APR support (feature-provided-by-for) feature: ipv6-support provided-for: apache-httpd-20 provided-by: apache-portable-runtime (system-has-feature) system: apache-httpd-20 feature: module-filtering module-filtering (feature) bn: Module Filtering in: modules may now be written as filters -- act on the stream of content # APR apache-portable-runtime (software-library apache-project) bn: Apache Portable Runtime (APR) in: free C library, a system portability layer to many operating system oc: http://apr.apache.org/ in: faster and more stable code on non-Unix platforms such as BeOS, OS/2, and Windows # Jakarta jakarta-project (apache-project) oc: http://jakarta.apache.org/ bn: Jakarta Project in: server application infrastructure based on Java jakarta-alexandria (jakarta-project) oc: http://jakarta.apache.org/alexandria/index.html bn: Alexandria Project in: CVS/Javadoc/Source code/Documentation management system -- \ global documentation and source organization system oc (preview): http://relativity.yi.org/alexandria/content/html/index.html jakarta-ant (jakarta-project) oc: http://jakarta.apache.org/ant/index.html bn: Ant in: 'make' for Java jakarta-cactus (jakarta-project) bn: Cactus oc: http://jakarta.apache.org/cactus/index.html in: Cactus is a simple test framework for unit testing server-side java code \ (Servlets, EJBs, Tag Libs, Filters, ...) jakarta-jetspeed (jakarta-project) bn: Jetspeed in: Enterprise Information Portal, using Java and XML in: syndication -- Portal Structure Markup Language -- Portlets oc: http://jakarta.apache.org/jetspeed/site/index.html jakarta-taglibs (jakarta-project) bn: Jakarta Taglibs oc: http://jakarta.apache.org/taglibs/index.html in: JSP custom taglib kit -- custom tags help separate presentation from implementation -- oc (tutorial): http://jakarta.apache.org/taglibs/tutorial.html # Perl apache-perl-integration-project (apache-project) bn: The Apache/Perl Integration Project in: Perl interpreter for Apache -- access for Perl modules to Apache -- \ persistent Perl data oc: http://perl.apache.org/ # PHP apache-php-integration-project (apache-project) oc (homepage): http://php.apache.org/ in: is actually original PHP project (is-based-on) fundament : apache-mod-php construct : apache-php-integration-project # TCL apache-tcl-integration-project (apache-project) bn: Apache Tcl Project in: Tcl as an HTML-embedded scripting language, similar to PHP -- mod_tcl -- Rivet oc (homepage): http://tcl.apache.org/ # XML apache-xml-project (apache-project) bn: Apache XML Project oc: http://xml.apache.org/ in: open XML infrastructure -- XML parser, stylesheet processor, SOAP, SVG (is-part-of) part : apache-xml-xerces whole: apache-xml-project apache-xml-xerces (xml-parser) bn: Xerces in: Java, C++ parser with Perl and COM bindings in: validating parser, DOM1, DOM2, SAX2 standard oc: http://xml.apache.org/xerces-j/index.html (is-part-of) part :apache-xml-xalan whole: apache-xml-project apache-xml-xalan (xslt-processor) bn: Xalan, XSL stylesheet processors in: Java, C++ (alpha) oc: http://xml.apache.org/xalan-j/index.html (is-part-of) part : apache-xml-cocoon whole: apache-xml-project apache-xml-cocoon (web-publishing-framework) bn: Cocoon: XML-based web publishing oc (homepage): http://xml.apache.org/cocoon2/index.html oc (overview): http://xml.apache.org/cocoon/userdocs/concepts/index.html in: separation of logic, content, design -- sitemaps, generators, \ transformators, serializers, pipelines in: Java servlet doing transformations as configured (is-part-of) whole: apache-xml-project part : apache-xml-fop apache-xml-fop (fop-implementation) bn: FOP: XSL Formatting Object processor in: written in Java, org.apache.fop in: converts FO code into various formats (PDF, SVG, ...) oc (homepage): http://xml.apache.org/fop/index.html (is-part-of) whole: apache-xml-project part : apache-xml-xang apache-xml-xang (web-publishing-framework) bn: Xang in: server-side XML, DOM and JavaScript (ECMAScript) oc: http://xml.apache.org/xang/index.html (is-part-of) whole: apache-xml-project part : apache-xml-soap apache-xml-soap (soap-implementation) bn: Apache SOAP in: IBM contributed SOAP4J implementation oc: http://xml.apache.org/soap/index.html # Java apache-tomcat (jakarta-project) bn: Jakarta Tomcat in: Tomcat is the official Reference Implementation for the Java Servlet \ and JavaServer Pages technologies oc: http://jakarta.apache.org/tomcat/index.html apache-lucene (jakarta-project) bn: Lucene in: written in Java in: full-text retrieval, indexing and search capability oc: http://www.javaworld.com/javaworld/jw-09-2000/jw-0915-lucene.html ## (is-built-according-to-blueprint) blueprint: apache-architecture system : apache-httpd apache-architecture (web-server-architecture) oc: http://www.grad.math.uwaterloo.ca/~oadragoi/CS746G/a1/apache_conceptual_arch.html bn: Apache Architecture in: http engine, module infrastructure, phases oc: http://www5conf.inria.fr/fich_html/papers/P20/Overview.html (uses-model) model : preforking-children user : apache-httpd preforking-children (process-model) bn: preforking children in: children a create BEFORE requests arrive in: static or adaptive to load apache-component (component) bn: Apache component in: Apache is built in a modular fashion, performance, flexibility (is-part-of) part : apache-core whole : apache-httpd apache-core (apache-component) bn: Apache Core in: Core Apache features in: basic server functionality, utility functions (allocation) -- \ HTTP engine -- main loop -- request dispatching to modules --\ basic configuration management oc: http://httpd.apache.org/docs/mod/core.html (is-part-of) part: apache-module whole: apache-httpd apache-module (module) bn: Apache module in: module handlers are activated in particular phases -- sequence of activation matters --\ expose same interface to server: configuration handlers, phase handlers in: the most popular come with the distribution in: many more by 3rd parties (e.g. mod_frontpage) in: do not usually fork new processes (except mod_cgi) oc: https://secure1.securityspace.com/s_survey/data/man.200208/apachemods.html oc (api-documentation): http://modules.apache.org/doc/API.html apache-contributed-module (apache-module) bn: Apache contributed module in: come with the distribution oc: http://httpd.apache.org/docs/mod/index-bytype.html apache-3rd-party-module (apache-module) bn: Apache 3rd party modules oc: http://modules.apache.org/ (server-is-processing-requests) server : apache-httpd request : apache-http-request apache-http-request (server-request) bn: Apache HTTP request in: request is stored in a request record ($r in Perl) -- applications and modules have access (activity-has-phases) activity : apache-http-request phase : apache-phase-uri-translation apache-phase-access-check apache-phase-user-authentication apache-phase-user-authorization apache-phase-mime-determination apache-phase-fixup apache-phase-logging apache-request-phase (phase) bn: Apache request phase in: every client request is serviced in phases apache-phase-uri-translation (apache-request-phase) bn: URI translation in: translation from URI to file system (backend name space) apache-phase-access-check (apache-request-phase) bn: Access check in: based on host name, et. al. apache-phase-user-authentication (apache-request-phase) bn: User authentication in: who is this user? apache-phase-user-authorization (apache-request-phase) bn: User authorization in: can this user access a resource? apache-phase-mime-determination (apache-request-phase) bn: MIME detection in: what is the MIME type of the requested resource? apache-phase-fixup (apache-request-phase) bn: Fixup in: resolving aliases... apache-phase-logging (apache-request-phase) bn: Event logging in: log the request depending on the configuration (is-activated-by) activator : apache-core handler : apache-module-handler apache-module-handler (callback-function) bn: Module handler in: will be activated by Apache in one of the phases -- modules define handlers --\ several handlers per phase -- sequence matters -- usually written in C -- Perl Apache handler apache-mod-env (apache-contributed-module) bn: mod_env in: Passing of environments to CGI scripts oc: http://httpd.apache.org/docs/mod/mod_env.html apache-mod-setenvif (apache-contributed-module) bn: mod_setenvif in: Set environment variables based on client information oc: http://httpd.apache.org/docs/mod/mod_setenvif.html apache-mod-unique-id (apache-contributed-module) bn: mod_unique_id in: useful in a web cluster -- clocks synchronized -- hostnames differ in: generate unique request identifier for every request -- \ magic token -- even unique across multiple machines in a cluster oc: http://httpd.apache.org/docs/mod/mod_unique_id.html apache-mod-mime (apache-contributed-module) bn: mod_mime Apache module in: determine various bits of "meta information" about documents -- file extensions in: AddLanguage en .en in: AddEncoding x-gzip .gz in: AddHandler cgi-script .cgi in: AddType image/gif .gif in: files with multiple extensions: welcome.fr.html oc: http://httpd.apache.org/docs/mod/mod_mime.html apache-mod-mime-magic (apache-contributed-module) bn: mod_mime_magic in: determining document types using "magic numbers oc: http://httpd.apache.org/docs/mod/mod_mime_magic.html apache-mod-access (apache-contributed-module) bn: mod_access Apache module in: Access control based on client hostname or IP address in: Allow from 10.1.2.3 -- Deny from all in: relative to a directory or location oc: http://httpd.apache.org/docs/mod/mod_access.html apache-mod-alias (apache-contributed-module) bn: mod_alias Apache module in: Mapping different parts of the host filesystem in the document tree --\ URL redirection in: Alias /image /ftp/pub/image apache-mod-auth (apache-contributed-module) bn: mod_auth Apache module in: trivial user authentication -- basic authentication -- text database in: AuthType Basic -- AuthName MyPrivateFile -- Require valid-user apache-mod-autoindex (apache-contributed-module) bn: mod_autoindex Apache module in: directory listings -- default README -- trailing slash -- directory traversing in: DefaultIcon /icon/unknown.xbm apache-mod-cgi (apache-contributed-module) bn: mod_cgi Apache module in: CGI handling -- passing parameters to CGI programs -- passing results to the client -- nph handling apache-mod-log-config (apache-contributed-module) bn: mod_log_config Apache module in: customizable logging format -- logging to a file or process -- rotating logs in: LogFormat "%h %l %u %t "%r" %>s %b" common apache-mod-negotiation (apache-contributed-module) bn: mod_negotiation Apache module in: content selection -- encoding, language, length, type (quality) in: type map: explicitly lists the files containing the variants. in: MultiViews search: implicit filename pattern match, choose from amongst the results in: LanguagePriority en fr de oc (tutorial): http://www.apacheweek.com/features/negotiation oc (tutorial): http://ppewww.ph.gla.ac.uk/~flavell/www/lang-neg.html apache-mod-proxy (apache-contributed-module) bn: mod_proxy Apache module in: fully fledged proxy/cache -- cache for static documents -- memory cache, disk cache -- reverse proxy in: ProxyRemote http://good.com/ http://mirror.com:800 in: ProxyPass /mirror/foo/ http://foo.com/ apache-mod-rewrite (apache-contributed-module) bn: mod_rewrite Apache module in: most feared module -- voodoo -- sendmail of the webservers in: Swiss Army Knife of URL manipulation -- general URL rewriting engine in: RewriteRule pattern substitute [flag] oc: http://httpd.apache.org/docs/mod/mod_rewrite.html apache-mod-speling (apache-contributed-module) bn: mod_speling Apache module in: corrects wrong user input -- case insensitive -- misspelling in: CheckSpelling On apache-mod-status (apache-contributed-module) bn: mod_status Apache module in: how well their server is performing -- number of children serving requests --\ idle children -- total number of accesses and byte count served -- \ average requests per second -- current percentage CPU used by each child\ current hosts and requests being processed in: keeps status file in: should be protected, see SNMP module apache-mod-userdir (apache-contributed-module) bn: mod_userdir Apache module in: allows access to user directories -- security issue -- allow override of configuration in: UserDir public_html in: UserDir disabled root apache-mod-vhost-alias (apache-contributed-module) bn: mod_vhost_alias Apache module in: support for dynamically configured mass virtual hosting -- easy use of a huge number of \ virtual hosts with similar configuration in: UseCanonicalName Off in: VirtualDocumentRoot apache-mod-expires (apache-contributed-module) bn: mod_expires Apache module in: explicit control on the expiry date of sent objects apache-mod-asis (apache-contributed-module) bn: mod_asis Apache module in: document meta information is stored with the document apache-mod-so (apache-contributed-module) bn: mod_so Apache module in: loading of executable code and modules into the server at start-up -- \ DSO, Dynamic Shared Object oc: http://httpd.apache.org/docs/mod/mod_so.html (software-implements-concept) software: apache-mod-so concept: apache-dso apache-dso (dynamic-loading-mechanism) oc: http://httpd.apache.org/docs/dso.html bn: Dynamic Shared Object (DSO) in: shared objects, LoadModule apache-mod-perl (apache-language-module apache-3rd-party-module) bn: mod_perl Apache module in: Perl-Apache integration in: write Apache modules entirely in Perl -- Perl interpreter part of Apache \ no startup delay with CGI scripts -- Perl modules to write\ handlers, access internals -- size consideration in: persistent objects via shared memory in: 3 million hosting servers, 200000 hosters (Netcraft Aug'01) oc: http://perl.apache.org/ apache-mod-python (apache-language-module apache-3rd-party-module) bn: mod_python Apache module in: Python interpreter integrated into Apache oc: http://www.modpython.org/ apache-mod-php (apache-language-module) bn: mod_php Apache module in: PHP4 interpreter integrated into Apache oc: http://www.php.net/ apache-mod-java (apache-language-module apache-3rd-party-module) bn: mod_java Apache module in: Java interpreter integrated into Apache in: Jakarta project -- Tomcat Servlet engine oc: http://jakarta.apache.org/ apache-mod-asp (apache-3rd-party-module) bn: Apache::ASP in: Active Server Pages with perl scripting -- XSLT rendering, output caching oc: http://www.apache-asp.org/ apache-mod-bandwidth (apache-3rd-party-module) bn: bandwidth Apache module in: Limit bandwidth based on number of connections oc: ftp://ftp.cohprog.com/pub/apache/module/mod_bandwidth.c apache-coldfusion (apache-3rd-party-module) bn: Coldfusion Apache module oc: http://www.allaire.com/ apache-enhydra (apache-3rd-party-module) bn: Enhydra Director Apache module oc: http://www.enhydra.org/ in: load balancing apache-mod-xslt (apache-3rd-party-module) bn: Mod_xslt Apache module oc: http://modxslt.linuxnews.pl/ in: serving XML and XSLT apache-mod-ssl (apache-3rd-party-module) bn: mod_ssl, Apache SSL module oc: http://www.modssl.org/ oc (download): http://www.modssl.org/source/ in: strong cryptography -- SSL, TLS1.0 -- based on openssl apache-ssl (apache-3rd-party-module) bn: Apache SSL oc: http://www.apache-ssl.org/ in: alternative to mod_ssl apache-backhand (apache-3rd-party-module) bn: Apache Backhand in: seamless load-balancing module -- redirection -- oc: http://www.backhand.org/mod_backhand/ oc (presentation): http://www.backhand.org/ApacheCon2000/EU/img0.htm apache-frontpage (apache-3rd-party-module) bn: Apache Frontpage Extensions in: developed bt RtR.com oc: ftp://ftp.vr.net/pub/apache/mod_frontpage/ ## sister projects (is-related-to) object-a: module-registry object-b: apache-project (is-related-to) object-a: apache-ssl object-b: apache-project (is-related-to) object-a: apache-mod-ssl object-b: apache-project ## web sites apache-site (web-site) reifies http://httpd.apache.org/ oc (homepage): http://httpd.apache.org/ bn: Apache (covers-theme) literature : apache-site theme : apache-project (covers-theme) literature: apache-week theme : apache-project apache-week (web-site) reifies http://www.apacheweek.com/ bn: Apache Week oc (homepage): http://www.apacheweek.com/ (covers-theme) literature : apache-bug-database theme : apache-project apache-bug-database (web-site) reifies http://bugs.apache.org/ oc (homepage): http://bugs.apache.org/ bn: Apache Problem Report Database (covers-theme) literature : apache-performance-notes theme: apache-performance-tuning apache-performance-notes (web-site) reifies http://httpd.apache.org/docs/misc/perf-tuning.html oc (homepage): http://httpd.apache.org/docs/misc/perf-tuning.html bn: Apache Performance Notes apache-performance-tuning (webserver-tuning) bn: Apache performance tuning oc: http://httpd.apache.org/docs/misc/perf-tuning.html oc @ de: http://www.approximity.com/public/ap_tuning/ oc @ perl : http://perl.apache.org/docs/tutorials/apps/scale_etoys/etoys.html webserver-tuning (webserver-operational-activity) webserver-operation (activity) apache-operation (webserver-operation) (is-part-of) whole: apache-operation part : apache-performance-tuning (is-part-of) whole: apache-operation part : apache-installation apache-installation (installation-activity) bn: Apache Installation oc (tutorial): http://www.onlamp.com/pub/a/apache/2000/02/24/installing_apache.html oc (tutorial): http://www.builder.com/Servers/Apache/ss01.html oc (tutorial): http://www.devshed.com/Server_Side/Administration/APACHE/ oc (tutorial): http://apache-server.com/tutorials/ATgetting-started.html (is-part-of) whole: apache-operation part : apache-configuration apache-configuration (configuration-activity) bn: Apache configuration oc (tutorial): http://www.onlamp.com/pub/a/apache/2000/03/02/configuring_apache.html oc (tutorial): http://www.builder.com/Servers/Apache/ss02.html oc (tutorial): http://www.devshed.com/Server_Side/Administration/MoreApache/ oc (tutorial): http://apache-server.com/tutorials/ATusing-htaccess.html (is-part-of) whole: apache-operation part: web-application-development web-application-development (application-development) bn: web application development in: based on CGI -- loose coupling with server -- performance? in: based on server API -- tight coupling -- dependency on product/version in: based on web application server (is-part-of) whole: apache-operation part: apache-monitoring apache-monitoring (administration-activity) bn: Apache monitoring in: performance -- functionality -- stability in: using logging on various levels -- HTTP requests, statistics -- application level logging oc: http://www.apacheweek.com/features/logfiles (is-part-of) whole: apache-operation part: apache-securing apache-securing (administration-activity) bn: Securing Apache in: limiting access to particular resources -- throtteling oc (tutorials): http://www.linuxplanet.com/linuxplanet/tutorials/1527/1/ %cancel