(去年为《软件世界》写的一篇关于 开源软件趋势的文字,作者: 斐迅软件 顾宏军)
经过多年的发展,开源已成为一种趋势,开源理念得到IBM,SUN、Novell等厂商,甚至微软的认同和支持,开源软件也成为软件产业的一股重要力量,在操作系统、编程语言、数据库等基础领域,在CRM、ERP等企业级应用领域,出现了一大批开源应用,Lamp开源架构也受到普遍的关注,得到了长足的发展,很多公司都制定了其开源战略,在开源领域进行投资。进入07年开源软件又出现了些新的发展趋势。
1、面向最终用户
经过多年的发展,开源社区已经创造了大量的应用软件:包括操作系统,开发工具,数据库,办公套件等等,也有ERP、CRM等企业级应用,但是要用户采用这样开源产品,光有程序还是远远不够的,还需要有效集成、市场推广、用户体验、技术支持、用户文档等。
以往开源软件多只注重技术层面,而较少关注其他方面的内容,使得很多开源软件只在部分专业人士和追随者中间流传,随着越来越多的人意识这这一问题,很多项目或公司开始从用户角度看问题,切实解决用户遇到的问题,如改进Linux下软件安装的CNR项目,专注桌面的Linux发行版-Ubuntu等。
CNR项目统一了软件安装的标准,你只需要用鼠标点击一下就可以实现大多数Linux系统下的常用桌面软件的安装和更新,无论这个Linux系统是基于Debian的还是基于Red Hat的,大大降低的普通电脑用户安装Linux它同时能够把专有商业软件分发给Linux用户。
Ubuntu项目拥抱开源社区,利用社区的力量,专注于集成优秀开源项目,并持续改善用户体验,免费进行CD版分发,使得Ubuntu在短短2年多时间里拥有里大量用户,被Dell、Acer等选中,在部分机型中进行预装,成为Linux桌面的领导者。
2、面向行业应用
在去年,已经开始大量兴起开源ERP、CRM等应用,开源软件进入企业级应用领域,并取得相当成就。但这些还只是通用企业级应用软件,今年针对特定行业的特定开源应用开始兴起,如面向在线教育的Dokeos系统,医院信息管理的Care2x系统等。
面向在线教育的Dokeos系统,已帮助世界上1000多个组织管理教学与合作活动。它采用Lamp架构,还对Openoffice.org、OpenLaszlo、RED5等开源项目进行了有效整合,实现了在线教育所需的课程管理,测验和调查,作业和成绩、课件制作、视频教室等功能;其功能完善程度完全可比得上同类到商业应用软件Blackboard。
医院信息管理系统Care2x使用了PHP,PostgreSQL。支持外科手术、护理、门诊病人、实验室、药房、安全、受权、调度器、修理、通信等等。支持多语言,WYSIWYG窗体,用户配置,嵌入式工作区,具有模块化和可扩展性。一般的医院有各种不同的专科部门,每天都要处理大量的病人、医疗人员(如医生、护士) 等资料。这套系统能建立单一的工作平台,让不同角色的工作人员快速寻找(如病人)资料、进行采购、排班服务等。
3、引领技术革新
曾经很多人抨击开源软件只会跟在商业软件后面进行模仿,而现在虚拟化技术、面向服务架构等前沿领域也活跃着大量等开源项目。用实例证实了开源软件不只会模仿。
虚拟化技术可以提高计算系统的利用率,可以让他们自由决定何时以及怎样升级系统和应用软件,而且能够在需要时迅速部署资源,所有这些都可以帮助客户降低成本。而开源社区的活力给这项技术加上了飞翔的翅膀。随着开源思想的深入人心,尤其是Linux内核的成熟提供了最佳的借鉴平台,开发者将他们的想法付诸实现变得愈发容易。
目前,开源社区已提供Xen、OpenVZ和KVM等多项虚拟化方案。Xen是由英国剑桥大学开发的一个成熟的开源虚拟化产品,最初只支持32位X86体系结构上的泛虚拟化客户操作系统。现在Xen也支持64位的X86体系结构以及Intel安腾架构和IBM PowerPC架构。 而去年10月刚刚公开发布的KVM虚拟项目以其小巧灵活和简洁朴素的特点迅速受到业界的欢迎,目前已纳入Linux官方内核,给人们带来了内核级的虚拟技术。
今年的Linux World在会议日程中加入了虚拟机――这是个受人欢迎的举动。随着虚拟机不断在Linux操作系统中发展,Linux被看作是未来数据中心基础架构中的一个强大竞争者。Xen项目已经被Red Hat、Novell等公司采用,Red Hat已在其新版企业系统内提供基于Xen的虚拟化解决方案。
面向服务的体系结构(SOA)当属目前最为前沿的IT行业趋势,而把SOA与开源软件的优点相结合,不仅可以降低客户的IT成本,同时还能敏捷地应对不断变化的业务需求。 SOA虽作为新生事物,但它已有Tuscany、STP(SOA Tools Platform、SOA PHP 等多个开源实现。
Tuscany是Apache软件基金会的孵化项目,由在Apache软件基金会占有重要份量的IBM和BEA主导。Tuscany的主要目标是为用户提供一组SOA基础设施,其中包括Java和C++实现的SCA/SDO/DAS标准。 STPSTP(SOA Tools Platform)项目是Eclipse基金会的重要项目,STP的目标是为技术人员提供一个灵活可扩展的框架,技术人员能够在这个框架的基础之上围绕SOA方便地进行设计、配置、组装、布署、监控和管理等工作,STP提供相关工具来支持开发人员使用面向服务的体系结构进行解决方案构建。
Web2.0是开源软件应用施展才能的又一重要舞台,可以说Web2.0就是开源软件。Web2.0应用多构建在开源软件之上(如Lamp),新创业公司多选择开源软件作为其开发平台;Web所面临的挑战:并行计算、系统部署与管理、单点登陆等,其实也就是开源软件面临的挑战。开源社区已提供很多可选的解决方法,如提供OpenMPI、Hadoop、MapReduce、GridEngine、Ganglia等项目解决并行计算问题;Hyperic解决系统部署和管理的问题;OpenID项目解决单点登陆问题。
4、超越开放源码
开源运动所带来的深远影响远不只是几行源代码,它还带来了软件开发方法、硬件设计等多方面的变革。
开发方法变革 从表面来看,开源软件最大的优势是“开放源代码”,但从技术角度来说,归根结底,是两个串联在一起的基本因素发挥着推动作用:大众频繁有效的参与重构运动。开源模式已经被证明是非常成功的软件开发模式,SUN、IBM等已将部分软件通过开源的方式进行开发,很多的Web2.0应用也采用和开源软件类似的开发模式。正如《Open Source Development With CVS》的作者 Karl Fogel 在开篇第一章所说的,“软件商店里能得到的不是有用的软件”,开源软件的代码质量要明显好于商业软件(一般是指成功开源软件)。微软Vista开发用了6年,而Flickr每天就发布8-10次,Web2.0应用所推崇的"持续开发"和"一直beta"其实就是开源软件的"release early,release offen "。
开源硬件 自从 Linux 在开发、聚集程序员、占有商业市场等方面日渐成功后,硬件工程师开始构思硬件设计参考开源软件的可能性,并开始有同好于互联网上分享硬件的源码 (Verilog / VHDL),最重要的有OpenCores.org。
开源硬件由低端到高端的技术都有,吸引越来越多的工程师加入。同时,由于不少开源硬件都与开源软件配合良好,加上 FPGA 技术使处理器制作成本大幅下降,打破了以往硬件设计需要购置昂贵软硬件的情况,推动了更多人参与硬件 (尤其是 FPGA) 设计。开源硬件能够缩减开发周期以及设计耗费。开源IP核既可以以黑盒模式复用,也可以以白盒模式复用。白盒模式使得设计者能够根据自己特定的需求来定制特定的核。
虽然目前能够开源的只是硬件中比较软的那部分――计算机辅助设计软件和硬件描述语言写就的源代码,但是也许多年之后,开源硬件也会和开源软件一样流行。目前,已有相当数量的开源硬件项目出现:如开源3D打印机项目RepRap,开源信息设备项目Chumby,开源Roland 303 MIDI电子合成器;开源MP3播放器Daisy;开源8080兼容CPU等。
开源软件正在飞速发展和完善中,它已被众多普通用户、开发人员所采纳,它正在进入越来越广泛的软件领域,很多公司也开始采用开源的开发模式,很多开源商业模式也被开发出来。开源的产生和发展是IT行业的必然趋势,开源软件将对整个软件产业的发展产生深远的影响。 开源运动不是昙花一现,现今它正熠熠生辉,并发散出巨大的生机。