在开源软件领域爆发了一场激烈的辩论,这场辩论让创业公司与云计算巨头展开了激烈的竞争。
最令人感到担忧的是,软件公司正在采用新的授权条款,以阻止它们认为的来自云提供商的不公平竞争,尤其是来自亚马逊网络服务公司(Amazon Web Services Inc)的不公平竞争。
开源开发者一直在努力开发基于免费软件的可持续商业模式,这是其中的最新进展。开源已经改变了软件行业,但却只有少数几家公司能持续盈利,比如红帽公司(Red Hat Inc)。红帽公司本身也有可能在最近宣布的交易中被IBM公司(IBM Corp)收购。
Confluent Inc.上周宣布,对其产品线的部分产品进行许可证变更,明确禁止云提供商将其软件作为服务交付,这进一步加剧了这场争论。Confluent是Kafka流处理平台的主要开发者。该公司此举是为了回应AWS上月宣布的将出售一项Kafka服务的消息。
Confluent的转变是继MongoDB Inc.和Redis Labs Inc.早些时候发布的针对云竞争对手的新许可条款之后发布的。这些举措在开源倡导者中引发了一场几乎是宗教式的争论,争论的焦点是云计算公司是否应该利用一些人所说的许可条款中的漏洞,从自由软件中获利。
期间,亚马逊成了众矢之的,因为这个云巨头出售了许多基于开源代码的服务,但被认为对开发它的社区项目贡献甚微。
亚马逊的策略是“我在软件行业见过的最糟糕的行为,而这一切都是因为许可证的漏洞,”MariaDB公司的首席执行官Michael Howard表示,该公司也在销售基于开源基础的软件。Howard指责这家云巨头是在利用一个免费开发社区的开发人员的工作进行“堂而皇之的挖矿”。
其他一些人,包括一些强大的开源支持者,则不同意这种说法,他们表示没有漏洞,云公司也没有违反任何许可条款。
MapR技术公司(MapR Technologies Inc.)的首席应用程序架构师Ted Dunning说:“当你送礼物的时候,总会有风险,别人可能会从中获利一百万美元。”MapR Technologies公司经销着开源和专有软件。“不管你是觉得生气或者认为这真的很酷。”
亚马逊方面表示,它完全遵守所有的许可条款。一位发言人表示:“如果一家公司希望获得围绕源代码建立业务的专有权,他们应该将源代码封闭并使其成为专有代码。开源软件应该保持开放,不受许可证的限制,因为许可证会让它更有负担。”
Forrester Research公司副总裁兼首席分析师Jeffrey Hammond补充道,尽管亚马逊 历史 上并不是一个强大的开源贡献者,但它的态度正在改变。他指的是亚马逊Corretto,这是一组免费发行的开放Java开发工具包和套件,可实现轻量级的虚拟化服务,用于“无服务器”计算,该公司在上个月的re: Invent会议上首次推出这种服务。
Hammond说:“我听到的针对亚马逊的批评与我五年前听到的针对微软的批评没有什么不同,看看微软是如何演变的。我认为亚马逊没有任何理由不慢慢开源以满足公司自身的利益,这与公司批评他们最近的许可变化所做的事情并没有什么不同。”
但是批评者说亚马逊的力量如此强大,以至于它可以有效地阻止开源竞争对手推出竞争性的服务。他们说这对更广泛的开源社区的影响可能是毁灭性的。MariaDB的Howard说:“开发者会说,‘我甚至不会在开源下进行开发,因为AWS会把它从我手中夺走。’”
关于衍生品的辩论
有争议的是,大多数开源许可证都有一个共同的条款来管理“衍生作品”,或者修改于开源代码的软件。如果开发人员销售或共享派生软件,许可证通常要求将这些修改也贡献给社区。
但是,对于不打算公开发布的修改,存在一个例外。从本质上讲,只要软件保留在你的计算机上,你就不必共享所做的任何更改。
云计算公司在技术上可以不发布代码。他们的作品被当作服务来消费,代码永远不会转手。这使的他们不必向社区共享更改,从而使他们能够有效地从其他人的工作中获得专有优势。例如,Amazon的Aurora MySQL基于GNU公共许可证所涵盖的开源MySQL数据库管理系统。
人们一直在努力解决这种不平衡,最引人注目的是Affero General Public License,它是广泛使用的GNU GPL的变体,要求提供软件作为服务的组织为用户提供下载修改过的源代码的选项。
但是AGPL和其他类似的许可证在开源世界中并不流行。AGPL是“迫使更多软件开源的一种方式”,Dunning说,他目前是Apache基金会的董事会成员,该基金会负责管理流行的Apache 2许可证。
“但那不是Apache的议程,”他说,并指出他的观点仅是他自己的,不代表Apache基金会。“他们的议程是提高软件的可共享性。”
这种区别似乎很微妙,但它表明了开源倡导者在努力平衡对自由软件的承诺与软件公司及其投资者日益增长的赚钱动力之间所游走的钢索。
一方面,在开源产品之上建立业务可以产生收入,这些收入可以回流到进一步的开发中。Confluent联合创始人兼首席执行官Jay Kreps在一篇博客文章中宣布了许可证变更的消息。
他写道:“很多人在深夜纯粹出于激情而进行小额捐款,而现在他们可以获得全职工作的报酬了”。在筹集8000多万美元来实现建立一家盈利公司的目标时,他补充道,“Confluent不仅可以资助代码贡献者,还可以资助规模可观的云计算项目,以运行大规模分布式系统的严格测试,这种测试是保持代码基础稳定所必需的,同时还可以扩大不断增长的社区的贡献。”
改变规则
在这场辩论中,几乎没有人质疑开源企业赚钱的权利。问题是,改变许可证条款是否是解决问题的方法。
参与当前这场辩论的三家公司对这一过程的看法各不相同。
Redis Labs将其部分代码移至“公共条款”许可,该许可禁止第三方收取费用或提供从其软件中获取大量价值的服务。Confluent采用了一种社区许可,禁止以一种“与提供软件的Confluent产品或服务竞争”的方式交付Kafka。MongoDB选择了服务器端公共许可,这要求任何将其软件作为服务提供的人都要将其修改过的以及支持代码作为开源代码来提供。
两年前,MariaDB采取了另一种策略,它创建了商业源代码许可证(Business Source License),该许可证允许开发人员在将他们的创作成果发布到开源平台之前,最多有三年时间可以从他们的创作中获利。Howard说:“BSL并不是封闭的,因为每一个BSL产品都回归开源。它延缓了影响。”
一些人对新许可选项的激增感到担忧,他们说,这一趋势肯定会让过去30年来就几种基本许可模式达成共识的市场感到困惑。
Red Hat Inc.高级商业法律顾问Richard Fontana表示:“我担心任何会模糊社区所定义的开源领域界限的东西。虽然我对云提供商的所作所为有些担心,但我更担心的是Redis, Confluent 以及 MongoDB的反应。”
Fontana表示,他特别关注使用开源术语来定义真正专有许可证的合同语言。例如,“公共”是一个术语,意味着所有人都可以使用的资源,例如空气和水。
但他表示,Redis所谓的“公共条款”并不是我们理解中的“公共”。它旨在通过在标准开源许可证上附加限制来控制软件。我担心这会让开发人员感到困惑。
但也有人说,授权条款必须随着时代的变化而改变,这个过程必然是混乱的。Cloud Foundry Foundation的执行董事Abby Kearns说:“公司将采取他们可以采取的任何角度来建立业务。为了在此基础上建立一个可行的业务,你有权改变授权。”
位于柏林的开源工作流自动化软件开发公司Camunda Services GmbH的联合创始人兼首席执行官Jakob Freund对此表示赞同。他说:“确保承担开源项目最大份额的公司不会被少数垄断者挤出市场,符合开发者社区的利益。我不确定我们目前看到的每一项措施是否都是实现这一目标的最佳途径,但整个行业可能需要反复试验和犯错,才能搞清楚这一切。”
追求利润
问题的关键在于,企业家们一直在努力建立基于免费资产的可行企业。在已经尝试过的许多商业模式中,最成功的是赠送功能性产品,而销售面向商业的专有扩展,这些扩展将提供团队协作、工作流程和变更管理等功能,这是Redis、MongoDB和Convernte的共同策略。
但这也是一种微妙的平衡行为。诀窍是使软件功能足够强大,以创建口碑意识,从而推动广泛采用,并最终引起CIO的注意。
与此同时,开发人员仍然需要留出足够的空间来增加附加价值,以吸引公司高管能够为此开支票。Dremio首席营销官Kelly Stirman称:"这是一种微妙的平衡,,因为如果开源产品瘫痪了,那么人们就不会想使用它。”
另一种日益流行的方法是销售托管服务,以减轻客户安装和管理复杂软件的麻烦。但这一策略对开源创业公司构成了挑战,因为这对于主要的云提供商来说几乎没有进入门槛。“开源采购是建立热情的好方法,但如果有人开始大规模运营,你就没有什么办法了,”Cloud Foundry Foundation的Kearns表示。
Confluent和Mongo之所以被亚马逊逼入困境,是因为“他们提供的云服务与AWS提供的云服务相比,并没有足够的明显区别,”Stirman说。其结果是,“他们与AWS处于‘亦敌亦友’的关系,他们在亚马逊的平台上部署,又同时进行竞争,”他说。“我真的很同情他们,因为在云服务上很难与亚马逊竞争。”
这些公司明白开发人员可能会感到担心。Confluent联合创始人兼首席技术长Neha Narkhede周四在另一篇公司博客文章中试图让他们放心,Confluent产品的大部分用途将不会受到影响。
“我们尽可能狭义地定义被我们排除的目标,以实现我们的目的,”她说。“如果该领域出现了一个标准解决方案,我们愿意考虑这一点。”
Kearns的组织基于另一个已经取得一定成功的模式。CFF和Linux基金会等非营利组织策划了一个品牌代码库,社区成员可以根据开源许可条款使用这个代码库,只要他们不引入变化,这个过程被称为“forking”。
基金会成员可以获得认证,证明他们的发行符合标准,这创造了一个公平的竞争环境。该基金会还鼓励所有成员做出自己的贡献。“每个人都喜欢开源,但不是每个人都想要回报,”Kearns说。然而,大多数开源项目都不足以支持一个基金会。
改变许可条款不是一个无风险的提议。Dunning说,紧缩限制可能吓跑那些担心违反合同条款的用户。他回忆起几年前自己的经历,当时他对自己编写的一些软件实施了“非商业性使用免费”许可。“如果有人要借此发财,我也想分一杯羹,”他说。“然而人们并没有使用我的软件。”
目前还不清楚最新的进展是否会让商业开源的前景变得更加清晰,还是会让事情变得更加复杂。但有一件事是肯定的:要定义一种能够证明投资者涌入股市的数十亿美元是合理的商业模式,可能还需要多年的努力。
系统环境:
Linux version 3.10.42-52.145.amzn1.x86_64
卸载OpenJDK
#java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (rhel-1.45.1.11.1.el6-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
#rpm -qa |grep java
java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
tzdata-java-2012c-1.el6.noarch
#rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
#rpm -qa |grep java
tzdata-java-2012c-1.el6.noarch
#rpm -e --nodeps tzdata-java-2012c-1.el6.noarch
#rpm -qa |grep java
#java -version
bash: /usr/bin/java: 没文件或目录
二软件、文件准备:
tomcat服务器:apache-tomcat-6.0.41.zip
志库:log4j-1.2.17.jar
Amazon API认证文件:credentials
JDK安装包:jdk-7u67-linux-x64.rpm
工程文件:
TestDemo.war
三、环境安装:安装JDK,安装Tomcat并配置
1.载JDK7
#wget --no-cookies --no-check-certificate --header "Cookie:
gpw_e24=http%3A%2F%2F
oraclelicense=accept-securebackup-cookie"
""
2.安装JDK7
#rpm -ivh jdk-7u67-linux-x64.rpm
说明:JDK默认安装/usr/java/目录
3.配置JAVA_HOME,CLASSPATH,PATH环境变量
#vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib
#source /etc/profile
4.载Tomcat6,
#wget
5.解压Tomcat6并[tomcat]/bin/cataline.sh文件始加入:JAVA_OPTS='-Xms512m -Xmx512m'
[tomcat]/webapps目录与项目相关文件文件夹删除安全
log4j-1.2.17.jar文件拷贝[tomcat]/lib目录
注意:解压完Tomcat通要启Tomcat测试能否通外网访问能需要给Instance添加安全策略
6.设置Tomcat机启
修改[tomcat]/bin目录文件权限执行
#chmod 755 *
/etc/rc.d/rc.local加入:
#vi /usr/local/tomcat/bin/
:/usr/local/tomcat/bin/startup.sh
7.启Tomcat并测试
服务启访问:
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)