旨在为云和数据中心提供企业级开源解决方案厂商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编写查询语句。
文/ZOL
自由软件基金会主席理查德·斯托尔曼(Richard Stallman)今天发表博客,对于苹果创始人乔布斯的辞世,博文中写道:“他去世我一点也不高兴,但他离开我很高兴。”博文称:“乔布斯是电脑我先驱,他建造一个牢笼,用很酷的设计将傻瓜们与自由隔开,现在他去世了。
正如芝加哥市长赫洛德•华盛顿(Harold Washington)谈及腐败的前任Mayor Daley时说的:‘他去世我一点也不高兴,但他离开我很高兴。’没有人应该死,乔布斯不该,盖茨也不该,就连有罪的人、比他们还要邪恶的人也不该。不过,乔布斯对个人电脑的恶意影响也应该终结了。
不幸的是,尽管他不在了,影响还是在继续。他们的继任者会继承其遗产,我们希望它们的影响力会小些。”
据国外媒体报道,Apache软件基金会(ASF)本周表示,该组织已收到美国法院的传票,是由甲骨文要求该基金会准备各种文件,包括与谷歌的往来文件以及Android平台使用Apache Harmony的程序代码的文件等。甲骨文的要求与该公司去年8月控告谷歌侵犯甲骨文的Java专利的官司有关,当时甲骨文指控谷歌在开发Android时一再侵犯Java的专利,去年10月甲骨文又指控谷歌直接复制了它的Java程序代码。
根据该法院传票,甲骨文要求ASF提供所有与谷歌之间往来的通讯记录,包括Android使用Apache Harmony程序代码的讨论,双方之间的任何协议,各种有关专利的问题,与Android的营收或补偿有关的文件等。
看来似乎是甲骨文怀疑谷歌利用Dalvik的存取Harmony函式库来构建Android的程序侵犯了甲骨文的Java的专利。
开源服务提供商OpenLogic一项研究显示,在iOS和Android平台上,有70%的应用没有遵守开源软件授权协议。OpenLogic表示分析了苹果App Store和谷歌Android商店中的635个免费和付费应用,其中仅有66个使用了Apache授权代码、GPL或LGPL授权代码。供应商发现,66个应用中71%的应用违反了开源软件授权协议。
尽管接受审查的只有66个开源应用程序,但类似这样运行在Android、iPhone和iPad上的程序还有很多。开源开发工具供应商黑鸭软件(Black Duck Software)最近研究了于2010年开始的3800个免费开源移动项目,发现有55%是针对Android的,39%是针对苹果IOS的。
OpenLogic产品及营销高级副总裁基姆·韦恩斯(Kim Weins)表示:“许多手机和平板电脑开发者通常可能不完全了解他们对开源软件的使用情况以及如何去遵守开源软件协议。”自由软件基金会(Free Software Foundation)指出,应用程序开发者需要遵守开源授权协议。
Android操作系统本身是开源,使用Apache许可证以及使GPL许可证的Linux元件。但Oracle正在控告谷歌的Android操作系统侵犯了它的Java专利权和版权。而苹果IOS是专有的。OpenLogic还表示发现带有LGPL Version 2.1的两个Android应用,并表示,LGPL Version 2.1可能与Android操作系统的主要许可证----Apache2.0之间存在冲突。