15个非常重要的Apache开源项目汇总

15个非常重要的Apache开源项目汇总

虽然Apache没有去维护有关下载量的完备统计数字,但是像Apache HTTP Server,已成为全球将近5亿多个网站的引擎,再比如OpenOffice,虽然只是前不久才进入Apache的项目库,但也已经被下载了数百万次。Apache还提供更为宽容的开源许可证。

下面是15个多年来非常重要的Apache项目,这些项目不仅对开源运动来说非常重要,对于与一般的技术世界来说也是非常重要的。

Cassandra

Cassandra数据库在大数据世界里被称为“可扩展的记录系统”,这是Cassandra公司的副总裁Jonathan Ellis说的。Apache是2008奶奶从Facebook接手了这个开源项目。不过后来Hadoop承担了数据分析,Cassandra则为应用提供数据仓库,在网上是可以高度扩展的。举例说,Netflix就运行着很多的Cassandra集群。

Cassandra可在普通的硬件或云基础设施上提供容错能力,可以跨多个数据中心复制数据。到今年7月,Cassandra 2.0将会包含对CAS(compare-and-set)功能的支持,在单一操作中综合读与更新;触发器支持,为响应更新不同表格而定义动作,进一步缩短请求延时。

Cordova

因为Apache在移动计算领域占据支配地位,Cordova为应用开发人员配备了API以便其访问本地功能。Cordova可以和诸如jQuery或Sencha Touch的UI框架一起使用,在iOS、Android、黑莓和Windows Phone上运行。

Cordova负责Apache的副总裁兼Adobe产品经理Brian Leroux说,这一项目源于PhoneGap,由Adobe收购的Nitobi开发。源代码贡献给了Apache。

“Apache Cordova是我们用来在HTML、CSS和JavaScript上开发应用的开源项目,PhoneGap是其发行版之一,”Leroux说。Apache计划7月发布Cordova 3.0,并提供使用该软件的一种模块化方法。

CouchDB

这个数据库软件的MapReduce查询使用JSON文档、JavaScript,API则使用HTTP协议。CouchDB的核心功能是其复制机制,该项目的一位长期贡献者Jan Lehnhardt称。

“这能让我们将任何CouchDB的实例与任何其他实例相互同步。每份数据副本皆可独立运行,所有变更皆可同步反馈给改组中的所有成员。”

CouchDB的复制功能可用于全球分发数据,或者分发至地理上最接近用户的所在。计划中其他改进还包括与BigCouch的集成,后者是CouchDB的一个容错集群版本。该数据库的JavaScript引擎将会升级至V8和Node.JS,已获得服务器脚本更大的灵活性。

Flex

由Adobe贡献的Flex是一个应用框架,充分利用了Adobe Flash丰富的互联网插件技术。开发人员可以为iOS、Android和黑莓平板OS开发应用,也可以开发桌面和浏览器应用。Apache目前正计划扩展Flex以支持HTML5,Apache Flex副总裁Alex Harui称。不过任何与HTML5相关的改进都有可能不再叫这一名称。

在解释Apache对Flex的HTML5改进时,Harui称,“我们希望它能在尽可能多的地方运行。”然而即将发布的Flex 4.10版预计不会出现太大的改进。

Geronimo

这个服务器运行环境集成开源项目包含了Tomcat、MyFaces和OpenJPA,可产生Java/OSGi运行环境。其最流行的发行版是Java EE 6应用服务器运行环境。

“Apache Geronimo是一个模块化、可编译的开源服务器运行环境,”Geronimo程序管理委员会主席Kevan Miller称。“下一次重要升级将是Java EE 7。”这一项目发源于2003年的Apache Incubator,随后逐渐演变为Apache的顶级项目。

Hadoop

这个项目是最近最为时髦的项目,并已成为大数据的同义词。Hadoop为分布式计算提供了一个操作系统。

Hadoop的一位主要贡献者Doug Cutting称,“假如你想要运行数万台电脑而不是一台电脑,那么Hadoop就能让你应付裕如。”Hadoop起源于2006年的Nutch Web软件。Cloudera、HortonWorks等厂商都在围绕Hadoop开发各种业务。未来的改进将包括安全性和可扩展性方面的提升。

Harmony

这款模块化的Java运行环境是Apache最具争议的项目之一,在Apache和接管了Java的Oracle之间引起了争论。

“Harmony的主要目标是创建一个自由而且开源的Java运行环境,”Apache的项目参与者Jim Jagielski称。“该项目由于Sun被收购而退役,然后是Oracle拒绝将所需要的TCK(技术兼容性工具包)授权给Apache,以便使Harmony具有Java兼容性。”

Sun为了防止Harmony在移动平台上使用而强加了一个使用限制领域,Sun曾声称这会影响到Java ME的销售。不过Harmony已迫使Oracle接受了OpenJDK,而后者正是谷歌Android的一个核心组件。

HTTP Server

这一项目又叫“httpd”。“从很多方面来看,Apache httpd依然是Apache软件基金会的主要基石,”Jagileski说,他从1995年起就是该项目的一位提交者。“要说是Apache httpd导致了Web的流行、实用和无所不在,那是一点儿都不为过的。由于是免费的、开源的,并且完全符合标准的参考实施才使得Web成了普适的和无所不在的。”

Httpd的最新版2.4.4为云环境提供了改进的性能和适用性。“包括反向代理设置的动态重设、更快更高的内存效率请求处理、支持I/O异步、正在开发中的一组新的模块,以及动态内容处理等。”

Lucene

Lucene提供一个用Java编写的文本引擎搜索库。“Lucene的用户是那些需要为其应用增加搜索功能的人,”2006年起就是Lucene核心提交者的Simon Willnauer称。Twitter目前就在用Lucene。

Maven

这个软件管理与综合工具用于管理构建、报表和文档。强调了Java开发环境。

“Maven的主要益处是更快速进行项目开发的方法,”从事Maven开发长达十年之久的Brett Porter称。

对Java项目的依赖关系管理对Maven来说也很关键,需要将各种不同的软件项目连接起来。它可以集成一些像Jenkins软件构件系统的工具。Maven的改进计划包括提升插件和加强日志记录功能。

OpenOffice

该项目是Oracle于2011年转给Apache的,此前OpenOffice应用套件一直是Sun的项目。它在Oracle管辖下进展混乱,与OpenOffice.org社区的很多成员都发生了冲突。

Pig

Pig常用于分析大型数据集,为数据分析算法配备了并行和高级语言。开发人员在使用Hadoop时可使用Pig而不必编写Java代码。

该项目的提交者Daniel Dai称,“你可以认为Pig是在Hadoop之上的一个抽象层。”Pig之所以如此命名,是因为它具备吃掉所有数据的能力。“它可以消化掉所有种类的数据。”

Struts

Struts是构建Java Web应用的框架。最初是作为Apache Jakarta的子项目出现的,2005年独立剥离出来。

“Apache Struts项目提供构建所谓基于动作的Java Web应用的框架解决方案,这和基于组件的解决方案如JSF或Apache Wicket相反,”Apache Struts副总裁Rene Gielen说。

Gielen称,在JavaServer Faces出现之前,版本1是构建Java Web应用的事实标准。Struts 2“是一个轻量级、精致的和高度解耦的基于动作的Web框架,虽然是在Struts 1所引进的基本原则上构建的,但没有继承其前一版本的任何一行代码。”该项目的下一次重大重新设计预计不久就会面世。

Subversion

Subversion是CollabNet在2000年创立的。这个版本控制系统目前正在与Git争夺开发人员的注意力,不过Subversion副总裁Greg Stein并不认为这两者在进行决斗。

“这并非一场战争。版本控制系统只是工具,开发团体会选择最适合于他们的工具。拥有多种选择才是合乎情理的。”

“它的集中式知识库、简单设置、访问控制、庞大的知识库规模和种类繁多的客户端等,都深受众多企业的青睐。Subversion是商界最受欢迎的、利润巨大的版本控制系统,”Stein说。

Tomcat

这是Java Servlet和JavaServer Pages技术的实现,是Apache从1999年就启动了的资深项目。Tomcat是高效的Java应用服务器,并且已衍生了一些商业产品,如Mulesoft的Tcat Server,和VMware vFabric tc Server。还有Apache TomEE,这基本上是Tomcat的Java EE 6 Web Profile版本。Tomcat 8计划将包含对Servlet 3.1标准的支持。

相关内容推荐