简介

我相信开放和互操作的益处将最终成为主流,我们将看到一个由合作的程序组成的系统,它们不属于同一公司,一个internet操作系统就像是在PC体系结构上的Linux,由无数软件组成。

翻译:yuwen

 

几年来我一直担心开源运动可能会遭受Kim Stanley Robinson在“Green Mars”中精辟论述的问题:“历史的浪潮比我们做得还要快。”创新者被抛在后面,他们曾经改变的世界拿着他们的主意向着意想不到的方向跑了。

 

在“开源模式的转变”和“什么是Web 2.0” 这些文章中我认为Internet作为一个非私有平台主要构建在开源软件之上,它的成功有可能会导致在云计算领域一种新的封锁。自由和开源许可都是基于软 件分发方式,当软件不再需要分发而只在网络平台上运行时自由和开源许可证意义何在?当在线企业形成竞争优势后我们又如何保护创新的自由?这些企业通过用户 创造的巨型数据库形成自己的竞争优势,用户用得越多这种优势越强,从而对后来者形成不可逾越的门槛。

 

今年开源大会上的会议让我欢欣鼓舞。在过去几年里针对Web 2.0和云计算的开源活动正在激增,我已经清楚地看到开源概念在网路时代重组的迹象。比如这次会议上像“超越REST?通过XMPP PubSub构建数据服务”、“BigData云计算”、“Hypertable:开源、高性能可扩展数据库”、“支持Open Web”以及“用Hadoop和EC2处理大数据”这样的分会场场爆满。(由于波特兰会议中心的防火要求,很多会议没能让所有感兴趣的人都参加。Brian Aker关于Drizzle的演讲非常受欢迎以至他不得不讲了三次!)

 

仅仅“关注”云计算不是关键。关键是要再一次找到在新的形势下如何使开源继续发展。很重要的是认清开源的成功有几个关键元素:

1.许可证要允许和鼓励再发布、修改乃至发展分支;
2.一个体系结构要使程序能被作为组件在任何可能的地方重用,以及可以被扩展,而不是被替换来提供新功能;
3.低门槛,让新用户轻松上手一试。
4.低门槛,让开发人员构建新的应用与大家分享。

 

这些还远不全面,但可以让我们来思索。如上所述我不认为我们已经找到某种许可证能允许分支发展Web 2.0和云应用,尤其是这些应用形成的封锁是数据带来的,而不是没有开放代码。然而,已经可以看到迹象,(像Yahoo! Boss)企业已经开始理解在云计算时代没有开放数据的开源仅仅是一半开源。

 

但是开放数据从根本上被云计算中的效能计算想法所挑战。Jesse Vincent——他搞出一些史上最好的骇客T恤(还有RT)一语道破:“Web 2.0就是数字化的佃农租种地主的土地。”(我查了一下发现似乎是Nick Carr在2006年发明了这个说法!)如果这对于Web 2.0成功企业是事实的话那对于作为基础结构的云计算就更是事实了。我还记得Microsoft Windows Live副总裁Debra Chrapaty的话“未来在某人的平台上作为开发者就意味着你根植于这个基础结构。”纽约时报把带宽提供企业称为OPEC 2.0。云计算平台上多大程度会是如此?

 

这就是为什么我更认同通过点对点途径分发internet应用。Jesse Vincent在这次开源大会上的讲话“Prophet:走出云计算之路”描述了一个联合同步系统;Evan Prodromou的“开源微博客”介绍了identi.ca,这是一个联合的、开源的生活流应用方案。

 

我们可以对开放数据和开放服务畅所欲言,但坦率地讲更为重要的是要认识到有多少可能的事是被大家使用的系统体系结构把持着。可以想一下,比如为什么 PC只能带动一个二进制免费软件的产业,而Unix却可以产生一个开源软件的生态环境?这不仅仅是意识形态的问题;Unix分散的硬件体系结构需要源代码 以便用户在自己机器上编译应用程序。为什么WWW上产生了那么多独立信息提供者而像AOL和MSN这样的集中网站却步履蹒跚?

 

请注意:所有作为服务的平台(从Amazon的S3和EC2、Google的AppEngine到Salesforce的force.com,更不 要说Facebook的社交网络平台了)与AOL有更多的相似之处,而不是过去十五年我大家所知道的internet服务。我们将用十年时间回到集中的模 式去?可互操作的internet应该是一个平台而不是哪一个厂商的私人禁区。(Neil McAllister描述了多数平台作为服务合约是多么片面。)

 

所以我给出我的第一个建议:如果你关心云计算开源请在那些设计为联合而不是集中控制的服务上构建项目。体系结构从来都是战胜许可证的。

 

但是点对点体系结构并不像开放标准和协议那样重要。如果服务要求互操作,竞争就会被保护下来。无论微软和Nescape在当年的浏览器大战中如何想去控制Web,均以失败告终,因为Apache坚持开放标准。这就是为什么说上周开源大会上成立的Open Web Foundation有重要的意义。我们要保证的不仅仅是Web上开源的软件,还有开放的标准,它能确保抢占了统治地位的厂商不见利忘义。

 

我期望未来几年里发展的“internet操作系统”将要求开发人员不要再将应用看作终点,而是要将应用作为组件。比如为什么每个应用都要创造自己的社交网络?社交网络难道不应该是个系统服务吗?

 

这不是“道义”上的呼吁,是战略建议。任何领域中第一个提供构建适当地开放、可重用的系统服务的厂商将快速发展。目前有很多重点放在低层平台子系统 上,像 存储和计算,但是我一直相信这样一个发展的操作系统中很多关键的子系统是数据子系统,比如身份信息、位置信息、支付、产品目录、音乐,等等。而且最终这些 子系统将要适当地开放和可以互操作,从而开发人员可以直接构建数据密集型应用,而无需自己去组织应用需要的所有数据。John Musser称其为可编程Web

 

请注意我说的是“适当地开放”。Google Maps肯定不是开源的,但是它已经足够开放了(和此前任何Web地图服务比较)以至于成为整整一代新应用的关键组件,这些应用不再需要自己的地图信息。 programmableweb.com上的一个总结显示Google Maps支持了差不多90%的地图mashup。Google Maps是私有的,但是是可重用的。判断一个API是否开放一个关键原则是看它是否支持那些不是建立在该API之上的服务,而且是否可以在Web上分发。Facebook的API支持Facebook上的应用;Google Maps才是真正的可编程Web子系统。

 

所以,即使云计算平台本身是私有的,它上面运行的软件可以不是。Rightscale的Thorsten von Eicken在他的讲话“扩展到云计算”中指出,几乎所有云计算平台上的软件都是开源的,一个简单的原因是私有软件许可证没有支持云计算部署方式。尽管开源协议不能防止云计算提供者的封锁,但至少允许开发人员在云计算中部署软件。

 

谈到这里有一点是重要的,承认即使是私有云计算平台也提供了开源的一个关键益处:降低了进入的门槛。Derek Gottfried的讲话”用Hadoop和EC2来处理大数据“很好地展示了这一点。Derek描述了他如何用一张信用卡、权限以及骇客技巧就可以将纽约时报过刊在线档案放到网上让大家免费访问。开源是要鼓励创新和重用,Web 2.0和云计算也可以服务同样的目标。

 

开源的 另一个好处——买之前先试试,病毒式营销——对于云计算提供厂商也是可能的。在一次风险投资中我问那个公司如何避免高昂的销售成本(尤其是企业软 件)。开源通过构建免费用户组成的管道来解决这个问题,公司接下来可以向其销售后续的服务。云计算的答案不是那么好但毕竟有答案:一些应用一定数量的实例 是免费的,再多的实例则要收费。这种商业模式失掉了一些病毒式营销,将成本从终端用户传到应用提供商,但它有一个开源没有的好处,它提供了更有力的付费服 务升级渠道。只有时间能证明开源或云计算谁是更好的分发方式,但是很清楚的一点是二者在这方面都比传统的私有软件进步许多。

 

总结一下,在我们得到所有答案之前还有很长的路要走,但正在前进。不管那些我们看到的Web 2.0和云计算中 封锁的可能性,我相信开放和互操作的益处将最终成为主流,我们将看到一个由合作的程序组成的系统,它们不属于同一公司,一个 internet操作系统就像是在PC体系结构上的Linux,由无数软件组成。那些对internet操作系统持怀疑态度的人称我们正在失去一个真正操 作系统的控制层次。我提醒他们今天Linux中很多软件在Linus写了内核之前就存在。正如“72个城镇组成了洛杉矶”,今天的Web是一个操作系统内核的72个子系统。当我们最终找到了内核最好是开源。