扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:ZDNet软件频道【原创】 2010年10月19日
关键字: 开源 混源 Scott Long 微软 互操作
ZDNet软件频道 在2010年混源与信息技术互操作高级论坛上,黑鸭子软件公司中国业务拓展经理Scott Long表示目前整个开源软件的发展非常快速,使用开源软件的最大的优势对企业来说就是它的经济性。现在有越来越多的企业投入到混源开发中,特别是大量的引用开源软件。开源软件此时必须要有一个非常好的管理平台,才能够使企业管理好代码,了解提交代码的材料清单,最后才能够有所选择。
黑鸭子软件公司中国业务拓展经理Scott Long(蒋湘辉 摄)
现场实录如下:
Scott Long:各位嘉宾大家好,首先我非常荣幸能够来这里和大家交流我们黑鸭子公司的经验和产品,黑鸭子公司是一个比较新的公司,2003年才成立,但是它的成绩从公司的角度还是比较满意的,去年软件杂志评选我们是全球500强中的372位。黑鸭子客户遍及全球22个国家,超过500多个客户,主要的客户来源于这么几大行业,比如电子信息产业,特别是那种手机通信的公司,另外,还有很多软件公司,金融服务公司,另外,比较小的一些客户的分支,媒体、制造业、政府、军队等等。
以前软件开发我们叫“多源”,今天我看用“混源”这个词非常好,微软提“混源”非常好,所以,我把我们的词改了。从黑鸭子公司理解混源是什么意思呢?混源从软件历史的开发过程来讲,它以前从基于模块化开发到现在有很多是基于构件开发,黑鸭子公司也非常得益于最近十几年的互联网的快速发展,以及开源软件的高速的发展,原来企业开发过程中形成很多资产,它都是内部开发的构建,我们讲构件可能比原来的模块化开发更高一个层次的,这些构件在企业内部最先完全是闭源的软件,然后由于企业内部的开发重心或者特殊竞争力可能处于某一些方面,还会引进一些第三方的构件或者要其他厂家帮他一起来开发或者购买一些商业构件,但这些东西整体加起来在企业开发的产品中提供给客户通常都是闭源的。但是我们现在看到开源软件的发展非常非常迅速,在市场上已经有非常大量的开源软件或者开源代码供大家使用,现在企业的开源开发的方式已经成为很多企业的首选,开源软件有很多从个人的角度或者社区的角度来讲,它是因为可能是兴趣或者是其他一些方法思想造成它可能非常倾向于使用开源,但是从很多商业企业来讲,它使用开源最新的吸引力是来源于经济的角度。
我们可以看到有很多成功的开源企业,红帽子公司在自己的投资和最后获得的开源社区的支持上可以达到14:1的经济比率,另外,客户、商业公司开发的代码如果它每用一行开源的代码,从国外的统计,它可以为它节省10—20美元的成本。所以,很多公司它都会选择去开源,到目前来讲,从开源已经在85%的企业使用或者开源的项目,或者开源的代码。另外,有一个数据是45%的开源软件已经运用在企业的关键业务上,而且有90%的开源软件来源于企业开发人员,也就是它不再是简简单单的个体的、社区的,它是很多企业为了扶植开源的发展,为了使自己的开源用得更好,更成熟,更加可靠,它在企业中间投入一部分的人力、资源在资助开源,像微软公司,以前大家都知道的,今天我也很清楚的感觉到开源对微软来说,它是未来一个非常重要的发展方向。
针对云计算的开源项目我们可以看到的是在过去的几年里,成长得非常快速,我们预期在今年的开源的完全针对云计算的开源项目会达到180个左右,如果说我们可以用于云计算的开源项目,那就更多了,其实在现有的很多网络上的那些开源软件都可以应用在云计算的项目中间。另外,因为黑鸭子自身本身是不断的在收集互联网的开源项目的资料,所以,来自我们的知识库中我们可以看到移动计算,包括现在是一个成长最快速的一个行业之一,在Android就是一个开源的项目,去年和前年Android上的开源项目是所有的平台上成长最快速的,最重要的一个原因就是因为它是开源的,它拥抱来自各方面的开发者。
所以,我们讲用纯企业的角度来说使用开源的好处非常多,第一,当它使用开源的时候,它可以让它的产品更快速的推出来,第二个,它可以大大的降低它产品开发的成本,第三,它可以让它自身拥有的资源,人力资源、资金等等关注在它公司企业更加能够创造效益,更加有竞争性的方面。但是我们也可以看到,如果使用开源,我们会面临一些问题,这些问题来源于哪些方面呢?在目前来说,使用开源大家都知道在大概目前我所接受的开源的许可证有70多个,有很多开源软件有些是比较宽松的,但是有些开源软件要求是比较严格的,你也要对它开源,对很多商业企业来说,它针对客户形成的代码是不希望开源的,这样的话当你自己的产品跟你的商业产品,跟开源的许可证发生冲突的时候,你就会碰到一些障碍,这些障碍有可能在你企业后续持续的成长中会成为你企业发展的阻力或者对你的发展不力。对企业来说,他做的项目有两种,第一种,我本身是做开源的,但是我也本身有很多闭源的资源,这些资源在我所有的成千上万的开发者中间,它可能是共享的,但是你必须要有办法能够避免你的闭源的代码放入到开源的软件中去。这是一方面。另一方面我如果开发的是闭源的,我也不希望我的代码中间包含了像GPL或者是那些限制比较多的协议的代码或者构件,否则的话,它有可能会引起一些不必要的纠纷。
如果要解决这个问题,企业应该怎么来做呢?第一,它应该有一个管理的策略,最重要的是要获得一个你自己准备发布的产品的材料清单,这个材料清单至少告诉你哪些信息呢?你的软件你准备发布的产品它包含哪一些构件,这些构件相对应的许可证到底是什么样的,它在这个产品中间占的比例是多少,它与我们企业发布产品的许可证会有多大的冲突,如果要冲突我怎么去解决,如果有了这个材料清单的话,它就会有一个非常清晰的思路,但是很多企业由于它的软件或者项目在企业中牵涉的开发人员非常多,它很难完全掌控目前开发的或者准备提交的产品中有多少的代码了捐于哪个方面,那些代码可用到的许可证是哪个。所以,从黑鸭子的角度来讲,它就希望我们能够提供一个完全自动的手段来帮助企业拿到它自己产品的材料清单。
在产品开发整个生命周期中有很多环节,黑鸭子的产品实际上关注在了很多环节中,比如说如果企业要开发,它首先会面临到如何去选择一个可用的,适用的,好用的一个构件,特别是开源构件,其次在整个开发过程中间,它是否随时有可能会让其他没有受到我控制的代码流入到我的生产环节中来,它是否能够随时的检测出来,最后在我产品提交给客户的时候,我是否能够最终的检验一次我的产品是否还有跟我许可证冲突的代码在里面,最后在产品后续的发展中,如果我产品不管是多个平台或者多个产品中用到的构件,如果在开源的论坛上它持续的进行升级,修改了一些问题,那我的产品线是否能持续的跟踪到最新的构件,等等。
黑鸭子有几个案例跟大家分享一下,黑鸭子在客户那边是怎么使用的。第一个,这是一个专门做财务软件的公司,它首先使用了我们产品中的一些功能模块,在第一个模块它就说在所有开发人员中间,因为它需要共享它公司历史开发的所有代码,我们有提供给它专门做搜索的软件,另外,它还需要在开源的社区中去选择他们公司最合用的适用的适合公司持续发展的构件,黑鸭子有一个产品Code Sight可以帮助他们寻找到最适用于他们公司的构建。另外,还可以帮助他们追踪现在构件中有什么问题,需要进行更新,在哪些产品中用到了,能够帮他做一个持续的追最。另外一块,我们的产品有一个平台能够帮助另外一些企业在这里提供的是电子制造企业,它在产品初提交给客户之前,必须要检测一遍我所有要提交的产品代码中是否包含有我不愿意提供给客户的或者不愿意混进来的开源软件的代码,是否包含在这个产品中间。
另外还有一个就是我们的投资商之一,SAP公司也是我们的客户,这里其实是讲到SAP公司在过去,包括在2006年以前,它对开源是拒绝的,他不希望我的开源软件混到我的产品中间,但是在那个时候它已经感知到开源能够帮助企业节省很大的成本,他对单独的产品如果一定要使用到开源,它有一个严格的手工的审批手续,但是,由于使用了黑鸭子的这个平台以后,对他来说,他们使用开源就非常的放心了,因为在我的开源软件的引进之前和引进之后,在持续开发过程中间都可以持续的监控开源软件以及它的许可证在我产品中的情况,所以,他们目前来说,发生了两大改变,第一大改变就是说我非常支持开源软件的使用,而且各个产品线都可以自主的来选择和使用开源软件,这是第一个变化。第二个变化,他们目前有一些人分布在不同的小组中间,他们持续的去加入到开源论坛里,来支持开源的发展。这样的话,他们从过去对开源只是拿来就用的状态变成了主动的去回馈给开源,也使开源持续健康的在发展,这也是我们前面提到的现在有70%的开发人员为什么他最后是来自于企业的开发人员,这是一个很重要的原因。
黑鸭子从成立之初,它为什么能够取到这么大的成绩?有这么快速的发展,跟黑鸭子持续的去追踪开源的发展是非常有关系的,黑鸭子目前在它的知识库里包含了从开源软件发展最初开始到现在差不多是最新的或者是比较可用的开源项目的资料,从源代码来讲大约有50多T,从黑鸭子公司来讲,现在管理的开源项目大约有三十万个,在网络上关注的开源网站有五千多个,有两千多个独一无二的许可证。所以,黑鸭子的每天,而且它每天的数据库还在持续的增加,所以,这也就是我们能够不断的持续关注开源软件的发展,而且利用这个知识库为客户提供价值。
为了使我开源软件的知识如何变成价值,如何变成一个可用的商业产品,黑鸭子有一个关键的技术,我们叫做代码指纹技术,如果我们把50多个T拉来给客户的代码去进行比较的话,我们可以想象这个速度是非常不可以接受的,我们会把所有的开源代码全部转换成代码指纹,所有的项目变成代码指纹,代码指纹有两种类型,一种是文件类型的,就是对于整个一个文件我把它做成一个代码指纹,第二个类型就是片断类型,因为有的文件非常大,我必须在文件中间去查找到你是否使用了开源。那么我们有一些代码片断的指纹,这是第二个。从使用代码指纹来说,第一是能够使我们的搜索代码变成非常快速,第二个好处是什么呢?就是说如果我们要服务于客户,有很多客户是不愿意把它的代码上传到服务器上面来的,特别是我们黑鸭子实际上提供的是一个什么服务呢?大家可以从互联网上提交你的代码指纹来帮助你搜索,帮助你获得一个材料清单的。这样的话,我们的客户是肯定不愿意把它的代码提交上来的,其实黑鸭子不需要你提交代码,你只是需要提交代码指纹,我们可以想象代码指纹是完全不可能利用它恢复到原代码的。所以,它的保密性也非常好,这样通过使用代码指纹比对的技术也使黑鸭子的产品能够非常快速的从经济的角度能够服务于我们的客户,经济和时间两个角度服务于我们的客户。
除了代码指纹是我们最关键的技术以外,其实我们还有一些技术,简单提一下。比如对编程代码的相关性分析等等来查找匹配我们的源代码跟目前现有的开源哪一些是相匹配的。另外,顺便提一下,我们刚才提到,我们开源只是一个方面,对于企业管理来说还有很多闭源的资源,自己开发的或者第三方购买的,或者OEM别人的,这些代码实际上我们在使用的时候也同样可以纳入到知识库中间,这样也可以来比较,即使我做开源项目是否会有闭源的东西混入到我的项目中间来。
黑鸭子公司最重要的另外一个方面就是许可证管理,现在在互联网上我们已经收集了两千多个独一无二的许可证,我们怎么管理呢?我们把每一张许可证区分成21个不同的属性,这些属性通过对属性的定义我们就对应到了这两千多个许可证,这些属性主要是许可证中包含的义务,根据对这些义务的比较,特别是义务跟你正在开发的或者准备提交给客户的许可证的义务的比较,我们就能够清楚的发现我们的产品是否跟我准备提交的产品的许可证是否有冲突,然后我们相关的可以想象到,比如说企业的律师或者是法务部门就可以去审核这样的代码是否可以用于我的出产的产品了。这样这个平台就非常方便的把开发者,以及它的法律组织,法务组织能够非常顺畅的衔接在一起。
这是我们产品的一个报告的一种最最简单的形式,我们叫做代码标签,通过对产品代码的分析,我们可以提供给客户一个非常完整的报告,这是一部分,在这个报告里我们可以告诉我们的客户,你的产品中间有哪一些开源代码,有哪一些是闭源代码,在整个产品中所占的百分比是多少,对应的许可证是什么许可证,非常清晰的提供给客户。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者