旨在为云和数据中心提供企业级开源解决方案厂商OpenLogic,近日推出了针对开源软件的2011趋势报告。该报告将十六大开源项目分成3个重要类别:Web和应用服务器、应用框架、数据库和大数据。该报告的形成,OpenLogic分析了被视作核心基础设施的各种企业级应用——包括目前最为流行的和最具未来前瞻性的开源项目。
分析的目的是为了帮助评估企业所采用的项目是否符合未来趋势。
根据该报告,增长最快的五大开源项目有:HBase——一种建立在Hadoop之上的分布式、面向列数据库系统;Node.js——为编写基于JavaScript的高扩展性网络应用程序的平台;nginx——高并发性、低内存使用的Web服务器和方向代理;Hadoop——跨计算机集群的大型数据集分布式处理框架;Ruby on Rails——一种高扩展性的Web应用程序框架。
1、HBase
HBase是Hadoop Databa的简称,它是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。
HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
2、Node.js
Node.js是专门针对编写高扩展性网络应用而设计的软件系统,尤其是针对Web服务器。通过采用JavaScript编写的程序,使用事件驱动、异步 I/O以最大化减少资源消耗,最大程度提高可扩展性。Node.js包括谷歌的V8 JavaScript引擎和一些内置库。
3、nginx
nginx(同“engine-x”发音)是一个Web服务器和针对HTTP、SMTP、POP3和IMAP协议的方向代理服务器,主要围绕高并发、高性能和低内存占用为特色。其授权类似BSD许可,运行在Unix、Linux和BS平台上。
4、Hadoop
Apache Hadoop是一个支持数据密集型分布式应用的开源软件架构。它可以帮助应用程序轻易处理数千个节点和PB级数据。Hadoop的灵感来自于谷歌 MapReduce和Google File System。Hadoop也是一个由全球贡献者使用Java编写搭建的顶级Apache项目。其中,雅虎是最大的贡献者,并在其业务中广泛使用 Hadoop。
5、Ruby on Rails
Ruby on Rails——很多时候直接简称为Rails或者Ruby——采用Ruby编程语言的开源全栈Web应用程序框架。作为一个完整的协议栈框架内,ROR可以帮助Web开发人员收集Web服务器信息,访问和查询数据库。
因此,Rails拥有一套独立于Web服务器的路由系统。Ruby on Rails与Ruby不可混淆,它是一种基于Ruby on Rails的通用编程语言。在Ruby on Rails首次发布之前,Ruby的存在时间就已经超过了10年。
6、MongoDB
MongoDB是一个开源的、高性能和易部署、易使用的分布式文件存储的数据库。它由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它具有面向集合(Collection-Oriented)、模式自由(schema-free)的特点,采用BSON(Binary Serialized dOcument Format)存储形式,MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用。
7、Tomcat
Apache Tomcat(或者称为Jakarta Tomcat或者Tomcat),是一个开源Web服务器和Apache 软件基金会开发的核心项目。Tomcat技术先进、性能稳定,而且免费,深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web应用服务器。
8、MySQL
MySQL是一个关系型数据库管理系统,能够为多个用户提供访问多个数据库服务。MySQL开发者Michael Widenius的女儿出生之后,获得了灵感,从而选定了这么一个名字——My。而MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
9、Apache HTTP Server
Apache HTTP Server,通常是指Apache——在Web发展伊始扮演核心作用的Web服务器软件。在2009年,它成为首个Web服务器软件,超过千万的网站都使用Apache HTTP Server。Apache也是Netscape Web服务器(现在称为甲骨文iPlanet Web Server)首个可行的替代方案,并且已经发展成在功能和性能方面能与其他Web服务器相抗衡。
10、Spring Framework
Spring Framework是一个基于IoC和AOP的构架多层j2ee系统的框架。首个版本由Rod Johnson编写,并在2002年10月他的书籍《Expert One-on-One J2EE Design and Development》中发布了该框架。该框架在2003年6月的时候首次发布,并基于Apache 2.0许可。首个里程碑式的产品发布则在2004年3月的1.0版本。随后在2004年9月和2005年3月也推出了重要更新。Spring Framework的核心功能可以应用在Java应用平台上,还支持在Java EE(Java企业版)平台上搭建Web应用。
11、PostgreSQL
PostgreSQL——通常也指Postgre——是一种对象关系型数据库管理系统。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制。经过十几年的发展, PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统, 它提供了多版本并行控制,支持几乎所有SQL 构件(包括子查询,事务和用户定 义类 型和函数), 并且可以获得非常广阔范围的(开发)语言绑定(包括 C,C++,Java,perl,tcl,和 python)。
12、Grails
Grails是一个开源Web应用框架,使用Groovy编程语言(反过来它也是基于Java平台)。它致力于提供高效率的开发环境,而且将众多配置细节面向开发人员进行隐藏。
13、Struts
Apache Struts也是一种开源Web应用框架,不过它主要针对开发Java EE Web应用程序。它使用Java Servlet API接口并予以扩展,鼓励开发人员采用Model-View-Controller(MVC)架构。它首先由Craig McClanahan创建,并在2000年5月份的时候捐献给了Apache Foundation基金会。
14、JBoss
JBoss应用服务器(JBoss AS)是基于Java EE应用的开源服务器。由于它基于Java,JBoss应用服务器可以跨平台运行——任何支持Java的操作系统上都可以运行。JBoss AS由JBoss开发,现在已经成为红帽的一个分支。
15、GlassFish
GlassFish由Sun系统公司开设的一个开源应用服务器项目,也是针对Java EE平台,现在它由Oracle赞助。GlassFish虽然是一个标准的JavaEE服务器,但是它同样具有轻便的Web容器的优点,它和Tomcat 一样是优秀的Servlet容器,同时,它具备延迟加载的功能。
16、CouchDB
CouchDB,也被称为Apache CouchDB,是用Erlang编程语言开发的面向文档的数据库系统。CouchDB可以提供基于Web应用的新一代存储系统,支持REST API,可以让用户使用JavaScript来操作CouchDB数据库,也可以用JavaScript编写查询语句。