Apache软件基金会(ASF)将在今年11月举办ApacheCon大会纪念10周岁生日,虽然是一个志愿者组织,但ASF已经帮助创建了好多支撑现代互联网的主要技术。本文将带你看看最近10年改变了计算机技术的Apache项目,以及未来10年可能影响最广泛的Apache项目。
最近10年最有影响力的Apache项目
1、Apache HTTP Server
Apache HTTP Server项目是为现代操作系统开发和维护的一个开源HTTP服务器,包括Windows、Unix和Linux操作系统平台,这个项目的目标是提供一个安全、高效、可扩展的服务器,提供遵循目前HTTP标准的HTTP服务。
自1996年4月开始,Apache就成为互联网上最流行的Web服务器。
用户:连续13年蝉联Web服务器使用量第一,为超过1.13亿网站服务。
图 1 Apache HTTP Server Logo
2、Apache Tomcat
Apache Tomcat是一款开源的Java Servlet和JavaServerPages容器,Java Servlet和JavaServerPages规范是由Java社区组织开发的,Apache Tomcat是一个开放的环境,基于Apache软件许可证发布,它是来自世界各地最优秀的开发人员协作工作的结晶。
用户:Tomcat已经帮助实现许多大规模,关键业务应用,如ETrade,沃尔玛,EMC等。
图 2 Tomcat Logo
3、Apache Lucene
Apache Lucene是一个完全用Java编写的高性能,功能完整的文本搜索引擎,它适合任何应用程序都需要的全文搜索,特别是跨平台的。最初使用Java创建的,Lucene已经被移植到其它编程语言,包括Delphi,Perl,C#,C++,Python,Ruby和PHP。
用户:苹果在线商店,CNET,Netfix,Wikipedia,Yelp,Comcast,LinkedIN,很多政府机构(FDA,DOD等),Technorati,AOL等。
图 3 Apache Lucene Logo
4、Apache Struts
Apache Struts是一个Java EE Web应用开发开源框架,它使用和扩展了Java Servlet API,鼓励开发人员采用模型-视图-控制器(MVC)架构。
Apache Struts项目提供了两个主要的Struts框架版本,Struts 1是公认的最流行的Java开发Web框架,它是解决一般问题的最佳解决方案。Struts 2最初叫做WebWork 2,它是对困难问题寻求简洁解决方案团队的最佳选择。
用户:美国国税局,波士顿环球报,大赦国际,希尔斯,阿拉莫租车服务,全国租车服务等。
图 4 Apache Struts Logo
#p#5、Apache Geronimo
Geronimo项目的目标是产生一个服务器运行框架,汇集最好的开源代替品,创造满足开发人员和系统管理员需求的运行环境。该项目最流行的发布是经过认证的Java EE 5应用服务器。
用户:AMD,IBM,Virtuas等。
图 5 Apache Geronimo Logo
6、Apache Ant
Apache Ant是一个基于Java构建的自动化软件构件过程的工具,它和Make类似,但是它是使用Java语言实现的,需要Java平台,最适合于构建Java项目。
Ant和Make之间最大的不同是Ant使用XML描述构建过程和它的依赖,而Make使用Makefile文件。
用户:有很多著名的Java应用程序都是使用Ant来构建的,美国纽约使用Ant来管理美国最大的青年计划,每天更新超过25万明学生记录。
图 6 Apache Ant Logo
7、Apache Cocoon
Apache Cocoon是一个基于Spring的框架,主要推崇的是基于组件的开发,使得构建Web解决方案时,可以像搭积木一样将组件组装起来,不需要编程。
用户:Apache Lenya,Daisy CMS,Hippo CMS,Mindquarry等。通常用于数据仓库ETL(抽取,转换,加载)工具,或系统间传输数据的中间件。
图 7 Apache Cocoon Logo
8、Apache SpamAssassin
SpamAssassin是基于Apache许可2.0发布了一个Apache项目,用于过滤垃圾邮件,采用的是基于内容匹配的过滤规则。
SpamAssasion使用了各种垃圾邮件检测技术,包括基于DNS的和基于校验和,贝叶斯过滤,外部程序,黑名单和在线数据库的垃圾邮件检测机制。
SpamAssassin采用了广泛的本地和网络检测,以确定各种垃圾邮件签名,这使得垃圾邮件发生者很难伪造出可以逃过检测的垃圾邮件。
用户:SpamAssassin已经有成千上万的开发人员和独立用户使用,并成为了许多商业产品的基础。
图 8 Apache SpamAssassin Logo
9、Apache Axis
Apache Axis是一个遵从W3C简单对象访问协议(SOAP)的实现。Axis是Apache SOAP的后续项目。
用户:WSO2,IBM MuleSource,进步软件。
图 9 Apache Axis Logo
10、Apache Logging Services
Apache Logging Services项目创建和维护开源软件相关的应用程序行为日志,该项目的产品包括三个日志框架:用于Java的log4j,用于C++的log4cxx和用于Microsoft .NET的log4net框架。还包括一个日志查看和分析工具:Chainsaw。
Apache logging Services也赞助了log4php。
用户:Apache logging在Java开发中无处不在。
图 10 Apache Logging Services Logo
#p#11、Apache Commons
Commons是一个重点关注可重用Java组件的Apache项目,Apache Commons项目由三部分组成:
Commons Proper:可重用的Jaba组件库
Commons Sandbox:Java组件开发工作区
Commons Dormant:一个沙盒组件库,目前还无效
用户:Amazon Web Service,Google
图 11 Apache Commons Logo
未来10年影响可能最大的Apache项目
1、Apache Hadoop
Apache Hadoop项目让开源软件高可靠,可扩展和分布式计算成为可能,它让应用程序在上千个节点上运行,数据可以达到PB级,它的设计灵感来自谷歌的MapReduce和谷歌文件系统(GFS)。
Hadoop现在是一个顶级Apache项目,正由分布在世界各地的社区构建和使用,Yahoo一直是该项目的最大贡献者,并在其网络搜索和广告业务中广泛使用了Hadoop,IBM和谷歌发起了一项重大倡议,希望大学的分布式计算机编程课程中使用Hadoop。
用户:Amazon A9,Adobe,NYTimes,Microsoft Bing,IBM,Hulu,Google,Facebook,Yahoo和Baidu。
图 12 Apache Hadoop Logo
2、Apache CouchDB
Apache CouchDB是一个面向文档的数据库,可以使用Javascript以MapReduce的风格查询和索引,CouchDB还提供了双向冲突检测,以及增量复制功能。
CouchDB是用ErLang编写的,ErLang是一门强大的构建分布式系统的理想编程语言,它允许灵活的设计,易于扩展。
用户:Amazon Web Services,IBM。
图 13 Apache CouchDB Logo
3、Apache Directory Server
Apache Directory项目提供了一个完全用Java编写的目录解决方案,包括一个目录服务器,它与轻量级目录访问协议(LDAP)V3兼容,一个机遇Eclipse的目录工具(Apache Directory Studio)。
除LDAP外,Apache Directory Server还支持Kerberos 5和Change Password协议。它设计有触发器,存储过程和视图。
用户:Atlassian,IBM,Oracle,Polycom,Red Hat,Sun,很多政府机构等。
图 14 Apache Directory Server Logo
4、Apache Maven
Maven是一个软件项目管理的综合工具,基于项目对象模型(POM)的概念,Maven可以管理项目的构建,报告和文档。
用户:Sonatype。
图 15 Apache Maven Logo
5、Apache Jackrabbit
Apache Jackrabbit是一个完全符合Java技术API的内容仓库实现,内容仓库是一个具有结构化、非结构化内容,支持全文搜索,版本控制,事务等的分层内容存储。
用户:Magnolia CMS,Hippo CMS,Nuxeo,OpenKM等。
图 16 Apache Jackrabbit Logo
#p#6、Apache Harmony
Apache Harmony是Apache软件基金会的Java SE项目,该项目的目的是孵化一个对Java SE感兴趣的大型健康的社区。包括:
一个兼容的,独立实现的基于Apache许可证V2的Java SE 5 SDK。
一个社区开发的模块运行(VM和类库)架构。
用户:IBM,Eclipse和Google的Android SDK等。
图 17 Apache Harmony Logo
7、Apache ServiceMix
Apache ServiceMix是一个开源ESB(企业服务总线),结合了面向服务架构(SOA)和事件驱动架构(EDA)创建而成的一个敏捷的企业级ESB。
用户:Apache Geronimo,arctic.service.net,FUSE,联合投资等。
图 18 Apache ServiceMix Logo
8、Apache MINA
Apache MINA是一个为网络应用程序创建的多用途基础架构,帮助用户更容易地开发高性能,高可扩展想的为了应用程序。
用户:使用和案例请浏览http://mina.apache.org/testimonials.html。
图 19 Apache MINA Logo
9、Apache Roller
Apache Roller是一个功能齐全,Java多用户群博客服务器,Roller是一个Java Web应用程序,应该可以在任何Java EE服务器和任何关系数据库上运行。目前,Roller在Tomcat和MySQL上的支持最好,但已有用户报告在Glassfish,WebSphere,JBoss,Resin,Geronimo,Derby,PostgreSQL,Oracle等上面成功运行。
用户:Apache Roller在Sun,IBM内部和外部员工博客,以及其它公司如JRoller.com Java博客社区上都有成功应用。
图 20 Apache Roller Logo
10、Apache Sling
Apache Sling是一个使用Java内容库如Apache Jackrabbit存储和管理内容的Web框架,Sling应用程序使用脚本或Java Servlet,基于简单命名规范进行选择,以REST方式执行HTTP请求。
用户:Idium(挪威网络托管服务商),Sakai 3,英国牛津大学,斯坦福大学,加州大学伯克莱分校,剑桥大学等。
图 21 Apache Sling Logo
【编辑推荐】