电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

成功的必要条件:开源思想推动创新


发布日期:2021/3/5
 
人们经常说开源没有创新而是模仿这肯定是专有软件行业希望你相信的看一看目前企业中使用的一些最着名的开源项目中的活动让你不由得不同意

例如尽管开源数据库令人难以置信地广泛用于各类关键任务应用但不管是MySQL还是PostgreSQL实际上没有做任何IBMMicrosoftOracle和Sybase多年来没做过的事情同样生产力套件是一个给人留下深刻印象的社区驱动的开发的例子但它惟一的真正目的是创建免费的基于标准的Microsoft Office的克隆甚至Linux自己也是作为免费软件改写Unix的尝试

但是所有这些都不能否定开源开辟了一条属于自己的新路而非只是跟在别人后面的事实Apache Web服务器就是最好的例子Apache自年诞生国家超级计算应用中心的httpd后就一直是用户的首选Web服务器据网站与服务器监测机构Netcraft说目前%的Internet网站使用Apache而使用Microsoft IIS(Internet信息服务器)的网站只有%

然而正如Microsoft的Internet Explorer所证明的流行程度并不是惟一衡量性能的指标Apache常常是安装在大多数Linux服务器上的缺省Web服务器而它的成功并不只是由于人们熟悉它或缺少竞争对手更确切地说它具有稳定性高性能一流的安全纪录以及使它具有比商用竞争对手更多功能的各种特性与扩展程序Apache实际上开辟了Web服务器软件市场并处于领先地位年后IIS无疑将以这种或那种形式存在于市场上但Apache仍将是领先产品进一步拓展Web服务器的功能

这类协作创新的例子在IT领域中比比皆是在软件业中无数的开发商个人和公司在试验开源方式理由之一是因为社区驱动的开发使软件产品能够有机地发展正如Eric S Raymond在其开创性的着作《大教堂与集市》中所说的:每一个软件杰作都开始于满足某个开发人员的个人需要当一群开发员以开源方式协作时每一位开发员都有着独特的个人需要其结果是软件不断扩展填补专有产品没有涉及的这些功能领域

开源赋予Java生命

开源社区开发的工具巩固了Java在开发人员市场中的领先地位

毫无疑问开源使Java得到了巨大的实惠Java语言和平台赖以发展的JCP(Java社区进程)似乎在以蜗牛的速度前进委员会的审查和批准是个缓慢且需深思熟虑的过程Java毕竟是领先企业应用平台因此它应当缓慢演进哪怕需求十分紧迫为解决一些问题而造成另一些问题从来不是一种好的解决办法

然而与其相对的开源社区却一直在飞速前进推出大量的重要创新目前企业Java基本工具全部是开源产品:Ant(用于开发应用程序)Hibernate(用于将数据保存在硬盘上)JUnit(用于设备测试)和Maven(用于继续的集成)更不用说得到高度重视的Eclipse和NetBeans开发环境和PMD源代码验证程序了

Java开发人员还从几种开源框架中受益如JSF(JavaServer Faces)Spring和Struts再有就是众多的容器(container):Apache TomcatGeronimoJettyJonas和Resin更不要说很多用于嵌入式应用的小容器了开源是Java世界想像力和生产力的巨大源泉

在这两股河流——JCP与开源——之间站着大企业Java技术提供商:BEAIBM和Sun Microsystems他们都是一只脚站在开源工具河流中另一只脚站在非开源工具河流中虽然很多IBM工具是专有的但它一直是Java和开源社区的主要贡献者BEA最近非常积极地实施其混合战略积极支持开源产品此外BEA还向多个开源项目捐献代码和程序

Sun有点特立独行狂热的开源支持者一直逼迫Sun开放Java源代码希望加速这种平台中的创新但Sun却行动缓慢这样做是有一定道理的:开放Java代码可能会将Java分裂为不同的版本从而减少Java引以为荣的可移植性但开源社区一直尖锐地攻击Sun的这种立场

鑒于Sun对开源的长期贡献这就将它置于一种奇怪的境地Sun仍是惟一一家开放其操作系统和全部生产力套件源代码的公司实际上它开放了很多Java技术的源代码因此Sun在月份举行的LinuxWorld上透露——也许有点勉强——除推出一个供开发人员跟蹤其进展的社区网站外它打算开放Java库和Java虚拟机

从长期看向开源发展的这股强大的力量能使Java受益吗?除了其缓慢的开发进展外Java的一部分成功归功于Sun所起到的管家作用通过开放Java源代码剥夺Sun的这一角色可能导致Java平台的大大加强也可能最终伤害它

Linux让设备受益

嵌入式系统开发商从开源操作系统中受益

Linux的传统根据地在于服务器和工作站而它正在这之外的非常小的设备上取得成功对于嵌入式系统开发人员来说Linux优于专有操作系统的优势除了低成本外还在于其灵活性和开放性

消费电子产品市场对新技术有着永不满足的需求但是使用来自Microsoft和Symbian等公司的专有嵌入式平台的开发人员必须受限于某一厂商提供的设备驱动程序和对最新硬件的支持然而他们的开源社区同行常常在技术刚一推出时就开始修补它们他们开发的代码也许很糙但开发过程很快这反过来可以使他们更快地制造出原型产品更早地上市以取得市场先机

Linux还使开发复杂的嵌入式应用变得更容易用于嵌入式设备的传统RTOS(实时操作系统)是在单处理器线程中运行单个任务的单用途平台嵌入式Linux类似于它的重量级表兄是设计用于运行多个应用的通用操作系统这种通用性帮助开发人员满足客户日益复杂的基础需求此外没有复杂的专有许可条款为开发人员提供了定制各个层次应用的自由他们可以选择他们需要的部件而忽视另一些

厂商之间的竞争对于顾客肯定是件好事在嵌入式Linux市场上MontaVista和Wind River等顶级厂商不仅与专有操作系统厂商竞争而且还相互竞争此外一些设备制造商还选择单干独立于操作系统厂商生产自己风格的嵌入式Linux然而Linux是开源操作系统每一种变种都成为由开发人员客户和合作伙伴构成的大生态系统的一部分都在为这个更大的整体做贡献

这种竞争式协作仍给其他公司留出了利用额外的工具扩大Linux基础的空间例如Trolltech提供的Qtopia:一种迅速开发嵌入式Linux应用和用户界面的全面的环境核心Qtopia技术可依据Gnu GPL(通用公共许可证)使用从而为开发人员在Qtopia代码上带来了在Linux内核上所享受到的同样的可见性同样Nokia发布了自己的开源应用平台Maemo该平台可以在Nokia Internet Tablet等嵌入式设备上找到

这些工具为开发人员带来了额外的优势:熟悉性Qtopia是基于Trolltech历史悠久的桌面Linux系统Qt工具包的;Maemo基于来自Gnome项目的类似技术其结果不同于专有操作系统应用开发人员可以利用自己已有的技能为嵌入式操作系统开发软件

这些优势意味着阵营越来越庞大的Linux驱动的设备从Sharp PDA到TiVo机顶盒从Linksys无线路由器到Motorola手机越来越多的公司将宝押在Linux上把它作为在快速发展的高度竞争的设备市场中取得成功的跳板

开源社区推动脚本采用

现代脚本语言在开放上取得成功

脚本语言有时叫做动态语言变得非常流行其中一个原因是它们能让开发人员利用比较小的代码完成很多工作这种高相对价值源于将更多的工作交给编译器和运行时间环境(如按变量值得到变量类型)去做的新方法——除了完成经常执行活动的特殊捷径外

包括PerlPHP和Python在内的脚本语言还有另一个共同点:它们几乎统统都是开源语言在很多地方开源与非开源之间的不同之处可能并不重要但开源似乎在脚本语言中至关重要奇怪的是这点并不是由于开源在修补漏洞中的灵活性的原因而是由于其创建社区的能力

比较两种几乎同时问世的脚本语言Ruby和NetRexx的命运是看到开源重要性的生动例子NetRexx是由IBM设计部分基于其成功的大型机脚本工具Rexx的它以解释方式运行也可以编译为Java字节代码作为一种语言NetRexx具有很高的生产力并易于学习掌握提供大量的优雅的结构由于它可编译为Java字节代码从NetRexx中可以访问所有的Java库此外它享受着Java虚拟机的优秀性能

另一方面Ruby是纯解释语言它没有虚拟机因此运行速度慢这种语言有它自己的优点但主要优势来自采用部分起源于Perl缩略语法不直观的句法成分NetRexx与Ruby还有另一个重要的共同之处:它们都是免费提供的

那么这两种语言中哪一个更成功呢?是快速典雅的NetRexx还是不直观速度慢的Ruby呢?事实可能与你所料的正相反今天的Ruby踌躇满志而NetRexx却濒临死亡

关键原因在于Ruby是开源而NetRexx不是结果是Ruby能够建立一个活跃的开发员社区——特别在它的诞生地日本它已经流行了Ruby在David Heinemeier Hansson编写Web应用框架Ruby on Rails之前一直在积累发展动力Rails是Ruby的杀手应用它是设计典雅的典范保证了Ruby发挥持久的作用同时尽管NetRexx有着巨大的价值却蹒跚而行无人理睬如果IBM开放了NetRexx源代码脚本技术今天可能是一番完全不同的景象

仅凭开源本身肯定不能保证一种语言取得成功实际上现在有很多没有成功希望的开源语言尽管开源并不是成功的充分条件但却是必要条件缺少它就是缺少Microsoft创建社区的资源

大开放意味着更安全

专家们依靠得到源代码来减少威胁和防止漏洞利用

几乎每一家安全专用设备厂商都有理由使用开源工具而这与许可证没有什么关系其中的绝大多数设备——从垃圾邮件与间谍件过滤器网络扫描器到入侵检测与防御系统——不仅建立在像Linux或FreeBSD这样的开源平台上而且还积极利用其他开源产品来完成任务

在各种平台上最流行的网络端口扫描器和操作系统特征识别应用是Nmap作为开源工具的Nmap提供一种迅速准确确定任何给定IP地址或子网上的开放端口的方法;它还可以通过分析IP包的构建方式确定设备所使用的操作系统

另一个例子是开源安全漏洞扫描程序NessusNessus可以利用Nmap扫描主机但比Nmap走得更远:它尝试在目标系统上触发潜在的漏洞来验证系统的完整性可供Nessus使用的插件数量达到了数千种并且随着发现的漏洞而不断增加——这要再一次感谢开放源代码易于使用的事实

广泛使用的IDS(入侵检测系统)Snort也很有名它同Nessus一样作为商用软件包提供但开源版仍很吃香其他开源工具如OpenSSH和OpenSSL是应用在各个方面的行业标准在几十种平台上被数千种不同产品所使用

最后还有操作系统层本身虽然没有一种OS是真正安全的但Windows平台上提供的安全工具由于基础操作系统详细记录的安全问题而令人怀疑基于LinuxFreeBSDNetBSD或OpenBSD的产品则具有更好的安全纪录(OpenBSD声称在年多的时间里在缺省安装环境中只发现了一个远程漏洞)

对于缺少经验的人来说开源的概念似乎与高度的安全性相悖人们普遍的想法是公布源代码会让黑客和病毒编写者更加容易地利用代码中的漏洞你只需看一看世界最坚定的专有软件厂商之一Microsoft就会明白事实正好相反

商业产品可能有一支十几人组成的QA(质量保证)团队但大多数重要的开源项目——那些由社区支持的开源项目——实际上拥有由成千上万人组成的QA团队其中的很多人对代码有着深入的了解因为他们一直在为项目贡献代码这只会使产品更加安全因为补丁要经过比商业环境多得多的眼睛的审查隐患迅速暴露因此很多安全专业人员认为开源代码比专有代码更安全而这种印象最终将渗透到整个行业

Snort入侵检测

协作开辟多媒体新边疆

无专利的音视频技术降低进入门槛刺激创新

人们很容易认为开源与多媒体是相互排斥的对免费桌面Linux版本(如Ubuntu)的常见批评是它们缺少对播放多媒体的支持但是不要责怪这些版本的包装者们经过很多年时间多媒体周围包裹上了大量专利这些专利覆盖播放和编码的各个方面甚至MP格式也受到与免费软件许可证要求相沖突的专利的限制

但是独立的开发人员并没有忽略多媒体很多开源项目不仅设法绕过已有技术的限制而且还改进它们例如Ogg Vorbis是一种开源有损耗音频压缩技术同MP一样它不保留数据的每一比特而是重现与原始信号听起来差不多的信号不过Vorbis利用高级心理声学模型在同样的压缩水平上提供比MP更好的音质此外它不存在专利限制完全是免专利费的

在视频方面只要看看BBC Research赞助的Dirac项目就行了虽然仍处于试验阶段但Dirac采用子波压缩—— 一种理论上应当比当前方法提供更高质量视频的高级数字技术BBC拥有Dirac代码的一些专利但它向任何希望使用它们的人授予永久的免费许可同样On Technologies将永久的许可证授予其VP压缩编解码器这种编解码器已经成为另一个开源项目Theora的基础

尽管开源多媒体技术开发进展迅速但采用它们则是另一回事Vorbis是一种具有超群性能的成熟的编解码器但没有几家设备制造商支持它尽管它不需要许可费造成这一局面的问题是内容硬件制造商将支持内容提供商提供的格式而这越来越多地意味着支持DRM(数字版权管理)的格式不幸的是不管是AppleMicrosoftSony还是其他公司专有DRM实际上使技术提供商成为整个多媒体栈的看门人这也是开源能够解答的一个问题

Sun赞助的Open Media Commons是一次通过整个开源社区参与开发DRM技术的尝试其核心是Sun想方设法确保不与任何已有DRM专利沖突的开源代码人们希望一种完全开放的DRM方案将使顾客可以在来自不同厂商的大量互操作的软件和设备上以认可的方式使用受DRM限制的内容

所有这些项目的共同主题是合作与协作这将加快数字音频和视频的采用速度正如它推动技术向前发展那样未来之路属于开源专利限制和专有代码长期以来一直阻碍多媒体发展

避开专有消息技术

开源电子邮件和协作服务器用灵活性满足未来的需要

开源工具和电子邮件都有着悠久的历史EximPostfix和Sendmail邮件服务器得到广泛的应用更不用说从Mozilla Thunderbird到Pine的各种开源邮件客户程序了但是电子邮件并不是企业消息技术的最高目标对于像群组日程安排共享地址簿和IM集成等高级特性企业客户通常有两种选择:IBM的Lotus Notes和Microsoft Exchange这种情况已开始改变尽管这两个企业消息技术巨头在可预见的未来可能仍占据统治地位但众多的替代产品已经出现尤其是针对中小企业的产品其中很多都来自开源世界

OpenXchange也许是这类项目中最雄心勃勃的一个它在开源软件包中重现传统群件服务器的功能OpenXchange集成多种开源工具包括Apache Web服务器Tomcat Java小服务程序引擎和PostgreSQL数据库等通过一个基于Web的GUI提供全面的电子邮件日程表和协作功能商用添加件使OpenXchange可以与Microsoft Outlook和Palm手持机互操作

然而其他开源消息服务器将互操作性又向前发展了一步例如Zimbra利用AJAX(异步JavaScript和XML)技术将消息与外部数据源相集成此外Zimbra是从一开始就是作为一种由组件构成的互操作系统来设计的其中的很多组件以Web服务示人第三方开发商可以连接在这些组件的API上直接访问Zimbra日程表项地址簿和电子邮件

由于Zimbra是开源软件因此开发商不必躲避专有陷阱他们可以直插代码核心直接集成自己的软件开源消息系统也不强迫使用老通信接口OpenXchange和Zimbra利用包括WebDAVLDAPiCal和HTTP在内的开放标准套件代替专有Microsoft Exchange协议

这种实现消息技术的开放方式意义重大由于公司对作为基本业务工具的电子邮件的依赖程度非常高因此至关重要的企业数据最终保存在电子邮件服务器上当这些服务器基于专有软件时公司在电子邮件的存储恢复搜索归档备份集成和管理上受一家厂商的支配基于开放协议和开放代码的消息系统能保证客户在需要时访问数据此外活跃的开发社区将日益使这些系统能够不仅在价格和可用性上而且还在特性上能与专有厂商竞争

上一篇:网页中图片的随机显示

下一篇:虚拟机监视器Xen和虚拟化技术(一)