Apache模块开发指南

更新时间:2023-06-01 00:02:33 阅读: 评论:0

1.1  Apache Web服务器简史
1.1.1  Apache 1
Apache Web服务器诞生于1995年。它起源于早期的由NCSA编写的NCSA服务器,并在其基础上进行构建。第一个以Apache命名的服务器产品发布于1999痒疹治疗方法年12月,版本为1.0.0
作为Web服务器,Apache随即取得成功。到19964月,Apache已经取代NCSA服务器,成为Internet上使用最广泛的居住证明怎么写Web服务器,至今依然如此。日薪怎么算Apache并不是通常意义上的应用平台:原生API非常有限,同其他产品具有的高级别编程层次相比,Apache需要开发人员付出更多的努力来达到同样的效果。然而,在一些非常有用的功能模块中最值得一提的是已经开发出来的十分优秀的mod_rewrite模块。
Apache引起第一次比较大的反响的应用开发框架是Perl语言,由CGImod_perl支持。由于mod_perl第一次采用了真正有用而且容易使用的API,大量的编程书籍和开发人员都集中在Perl上。很快,Java Servlet及大量的脚本语言,包括如今的市场领头羊PHP等,都发布了各自的API
Apache 1服务器的最后一个主要版本为1.3,发布于19986消防安全教育主题班会教案月。尽管新的开发工作移植到Apache 2已经很长时间,但Apache 1.3 仍然处于维护模式,至今依然流行。
1.1.2  Apache 2
Apache的开发人员认识到Apache 最初的架构具有局限性,比较粗糙,于是在2000年开始建立新的代码仓库(codeba)主分支,并在此代码仓库的基础上于20024月创建了Apache2.0的第一个发布版本。Apache 2包括以下优良特性:
原生API得到很大幅度改进,使APR库成为单独的实体。这在很大程度上帮助开发人员克服了C语言编程的缺陷,特别是交叉编译平台和资源管理方面的缺陷。通过使用Apache 2C程序员可以达到通常被认为是高层次语言和脚本语言才能达到的高效率。打牌
新的拓展架构带来了全新层次的应用程序开发,同时也为以前的模块和应用程序提供了更为简洁的实现方法。本书将会详细介绍如何利用这个新的拓展架构。
新的内核架构让Apache 2成为真正的跨平台服务器。操作系统层自身成为一个模块(MPM),使得该模块可以被各种操作系统装载。Apache 1是一个UNIX睿又应用程序,移植
到其他平台上会受到很多的限制,一些UNIX特性使得Apache 1在其他平台(如WindowsNetware)上性能较差,而Apache 2摆脱了这些特性的限制,使其成为一个真正的跨平台服务器。基于线程的MPM模块的引入也增强了UNIX上很多应用程序的可扩展性。
Apache 2的缺点在于它的API不能向前兼容Apache 1,因此一些第三方的模块和应用程序需要缓慢地升级到Apache 2
作为一个稳定版本,Apache 2.2200512月发布,相比之前版本具有一些较大的改进。Apache 2.2保留并拓展了Apache 2.0API,因此,为Apache 2.0所编写的模块和应用程序同样适用于Apache 2.2Apache 2.2版本对可扩展性和应用程序架构等方面进行了显著改进。如果说Apache 2.0提供了功能强大的应用平台基础,那么Apache 2.2则在此基础上进行了添砖加瓦。
1.2  Apache软件基金会
Apache软件基金会(ASF)为一系列应用范围广泛的开源软件项目提供组织上、法律上和财政上的支持。Apache软件基金会建立了一整套框架来管理知识产权和财政捐献,同时,
限制捐献者潜在的、合法的资源泄漏。通过精诚合作的项目开发流程,Apache项目交付了企业级的、免费获取的软件产品,吸引大量的社区用户使用。注重实效的Apache许可证(Apache Licen)使得无论是商业用户还是个人用户都易于部署Apache的产品。
Apache软件基金会的前身是Apache组织(Apache Group)。Apache软件基金会是一个非盈利的组织,基于成员制,以保证Apache项目在个人志愿者参与之外能够继续存在。如果个人承诺与开源软件开发项目合作,并不断地参与和贡献Apache软件基金会的项目,那么他(她)就有资格成为Apache软件基金会的成员。通过Apache基金会现有大部分成员的赞同和任命,个人才能成为软件基金会的成员。因此,Apache软件基金会为它所直接服务的社区所掌控,成员都为社区内的项目进行协作。
Apache软件基金会的成员按照基金会的规章制度,每隔一段时间选举一个董事会,管理基金会的组织事务,由董事会任命成员监管基金会的日常事务。社区可以公开获取Apache基金会运作的记录。
1.2.1  功绩组织模式(Meritocracy)
很多软件产品都是在一个开放源代码的许可证之下进行开发的,Apache Web服务器则与此不同。Apache不是由某个开发者发起的(而Linux内核、Perl语言和Python语言都是由某个人发起的),而是一个由各种各样的人所组成的团队发起的,这些人具有相同的兴趣爱好,通过交换信息、补丁和各种建议认识彼此。
Apache开发团队不再延续NCSA版本,而是转向开发Apache自己的版本时,越来越多的人被这个项目所吸引,加入这个团队进行开发。最初,他们可能是发布一些小的补丁,给出一些开发建议,或者在邮件列表上回复一些问题,逐步贡献更多的力量,在开发中发挥着越来越重要的作用。
Apache开发团队觉得某个人已经获得足够的权限成为开发社区的一部分时,开发团队将授予这个人直接访问代码仓库的权限。这个方法不仅能够扩充团队力量,增强开发Apache的能力,而且能够使开发团队运作的效率更高。
我们把这个方法称为功绩组织模式。这种模式使得开发团队不断壮大,而且没有内部矛盾和纷争。在其他模式下,权利可能是稀缺和保留的资源,而在Apache开发团队中,开发团队的新成员被看作是希望帮助团队进行开发的志愿者,而不是想占据权位的投机者。
同时,由于Apache团队从不缺乏希望加入的新成员,因此,它不会因为在一个充满竞争的环境中缺乏优秀人才而盲目地扩充团队,从而导致开发团队成员良莠不齐。相反地,它严格对待团队的每个成员,要求每个成员都具备有据可寻的贡献和积极向上的态度。Apache团队是一个虚拟社区,因此它是一个全球范围的社区,不受地域限制。
1.2.2  角色
Apache开发团队具有以下的一些角色。
用户
用户是指使用Apache软件的人。用户以缺陷报告和功能建议的形式向Apache项目的
开发人员提供反馈,从而对开发团队做出贡献。用户也可以参与Apache社区,通过邮件列表和用户支持论坛帮助其他用户。
开发者
开发者通过提交代码和文档的方式为项目做贡献。开发者比用户的工作要多,他们活跃在
开发邮件列表上,积极参与讨论,提供补丁、文档、建议和批评。开发人员也被当作是贡献者。
提交者
提交人员是开发者,他被赋予了代码仓库的写权限,并且签署了贡献者许可证协议(Contributor Licen AgreementCLA)。所有的提交者都有apache的邮件地址。提交者在处理补丁时不需要依靠其他人,可以独自做出短期的决定,并服从项目管理委员会(Project Management CommitteePMC)的监管。
项目管理委员会成员
项目管理委员会成员是由开发者或者提交者通过功绩选举产生的,作为其为项目进展所承担任务的酬劳。项目管理委员会成员具有代码仓库的写权限、apache的邮件地址、社区相关决定的投票权,以及建议把某个活跃用户提升为提交者的权利。项目管理委员会是总体上实施项目控制的实体。
Apache软件基金会成员
Apache软件基金会成员是根据其在基金会中的角色进展和演变,以及每个角色所取得的功绩,由Apache软件基金会的现有成员选择并任命的。Apache软件基金会成员负责管理基金会,如项目相关的核心事务、交叉项目活动等。从法律上来说,Apache软件基金会成员是基金会的股东之一。基金会成员拥有选举董事会的权利、成为董事会候选人的权利、建议提升某个提交者成为基金会成员的权利,以及广泛参与基金会内部其他角色的权利。
1.2.3  哲学理念
尽管这不是官方的列表,但其中的信念已经被认为是Apache基金会的核心哲学理念。这些理念有时候被引用为“Apache方法
协作化的软件开发
商业友好的标准许可证
永远保证高质量的软件
成员之间的交往要互相尊重,诚实,以技术为主
依据标准的忠实实现
强制的安全特性
1.3  Apache开发流程
Apache的开发流程既可以是自上而下的,也可以是自下而上的。采用自上而下的设计方法时,可以增加一些很棒的想法,如需要代码重写或者新的组件所带来的关键新特性、新功能,这些想法可能需要几个月甚至几年才能从概念变为成熟产品。而采用自下而上的设计方法时,可以增加一些小的补丁,用来修改一些软件Bug或者增加一些新的特性,这些小的补丁很容易融合到目前的软件版本中。
模块式开发方法通常介于软件开发的宏观方法和微观方法之间。模块是一个自包含的插件,通常是开发者(大多数情况下是其他人)基于某种兴趣而实现的新特性。一个模块可能实现了Web服务器的核心功能,也可能实现了一个通用的服务,还可能实现了一个较小但是较为重要的功能,甚至只是一个单一目的的应用。如果某个模块实现了大家都比较感兴趣的功能,而且作者愿意公布,就可以集成到Apache的核心发布版本中。但是,如果该
模块需要额外的支持(如第三方的库),或者可能会涉及该模块的许可甚至是知识产权的因素,那么,该模块可能就不会被集成到Apache的核心发布版本中,而是通过它的开发者或者第三方独立地发布,就像支持Apache的公司或者Linux版本的发行商那么做。
免费学书法1.3.1  Apache代码仓库
和其他的软件项目一样,Apache也维护着一个代码仓库。这个代码仓库以项目为单位,和Web服务器相关的是httpd项目(包括代码、文档和编译文件)和apr项目。
1.3.1.1  Subversion
所有的Apache代码都保存在代码仓库中,可以通过svn.apache/进行访问。代码使用SVN进行管理,它是最近(幼儿算数2004年)开始使用的,之前我们使用的是和其功能类似、历史悠久的CVS系统。
代码仓库的读取权限是公开的,但是写权限只有提交者才拥有。读权限允许任何人查看Apache开发过程中所走过的足迹,包括回顾任何单一或者累计的修改,针对这些修改所作的简要的解释(例如修改Bug、新的功能、内部改进等),以及修改的日期和参与修改的
人员。

本文发布于:2023-06-01 00:02:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/958836.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:开发   基金会   成员   团队   项目   代码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图