从开源数据库、应用服务器,到开源的Web服务器,我们已经带您领略开源软件世界的旖旎风光。此次,此次的“开源之旅” 将进行一次系列景点的汇萃,而且这次旅游的内容与以往不同,不再是基础平台类的开源产品,而是偏重于一些更新鲜的技术产品和应用软件,CRM、ERP的开源产品将隆重登场,RFID、VoIP等灸手可热的应用系统也会露面。今天的CIO已经可以非常自信地对开源技术进行评估,但前提是他们必须知道自己有哪些选择权。为此,我们专门编译此文,为你汇集当前和未来规划中12个领域中的开源佼佼者。
商业智能(BI)
通过开源技术定制自己的BI软件的趋势正在不断升温,最先出现的是Eclipse 基金会,该机构将BI作为其最重要的项目。该基金会在今年6月发布了其BIRT(商业智能及报告工具)1.0版,授权方式是自己的Eclipse授权,并且获得了开源协会(OSI)的批准。
BIRT基本上是一种基于Java的用于Web应用的报告系统。它包含两个主要部分,一是JAR(Java库)文件,其中含有一些需要部署在应用服务器上运行的组件;另一个是一种报告设计系统,以Eclipse插件的形式发售,可提供简便的WYSI-WYG编辑功能和标准报告项目的面板。
对于那些需要专业支持、维护和培训的企业,还有一种由Actuate公司提供的BIRT技术。除了Actuate的解决方案包外,该公司还提供自己的BIRT,通过商用授权的方式发售。
另外一个值得关注的机构是Pentaho。它是一家专门开发完整的开源BI平台的企业,其开发的平台包括报告、分析、数据仪表板、数据挖掘和工作流程等工具。该项目的主要服务器架构将建立在J2EE上,附属的客户机环境则是基于Eclipse的。
该公司声称产品将在年底前通过LGPL(初级通用公共授权)或所谓的“LGPL类”授权方式提供该软件的所有版本,其中包括Apache、BSD和Eclipse。
业务流程管理
一套具备完整特性的业务流程管理(BPM)套件很可能不会成为开源社区的首要产品,但目前有许多项目都在朝着这一方向努力。随着SOA的兴起,业务流程引擎的需求不断增长,人们需要使用这些引擎来管理和协调不同类型的服务。
这就是Apache软件基金考虑实施Agila项目的原因,它已经成为Jakarta Java工具套件中最耀眼的部分。Agila的基础是Gluecode在2004年10月所捐献的代码。Agila是一种轻型、可嵌入的开源BPM引擎,应用于J2EE和较为低端的平台,例如J2ME。因此,Apache的代表说,它是Apache Java中间件堆栈中最后一个主要的部分。有了它,Apache Java堆栈便可以与那些主要的商业厂商,例如BEA或IBM形成真正的竞争关系。
该项目目前仍然处在孵化阶段,但大规模的开发工作将有望在不久后开始启动。与此同时,JBoss也在寻求扩大地盘的可能,并希望超越原有应用服务器的范畴。由于JBoss 在最近购买了一种称为jBPM的开放源代码工作流程引擎,从而使其在BPM市场中获得了相当可观的Java开发经验。
jBPM可以作为一种应用独立运行,也可以作为其他应用中的嵌入式组件。但与Apache计划不同的是,JBoss的网站上已经提供jBPM代码的下载服务,而其发布方式采用的是该公司的定制LGPL授权。除了引擎本身外,jBPM还包含了一个图形处理设计程序,用于创建工作流程。该项目中未来的计划包括对BPEL(业务流程执行语言)的支持,并将对jBPM加以扩展。
内容管理
随着Web技术的流行,你会发现市场中正在出现各式各样的Web CMS(内容管理系统),其中有很多都采用了基于开源的技术。
OpenCms可以运行在多种操作系统的Apache Tomcat上,采用的授权方式为LGPL。实施支持和其他的专业服务则通过各类注册解决方案提供商来实现的。
表格和WYSIWYG编辑器使该产品可以很方便地编辑OpenCms中的内容项目,并且该软件具备方便的管理用户界面,从而使定制工作变得极为简单,但 OpenCms缺乏一些高端功能。所以,如果您需要建设多个网站或者需要缓存和负载均衡等企业级的性能管理能力,那么最好还是考虑其他产品。
CMS Mambo是一种基于PHP和MySQL的产品,并且在全世界被广泛地应用于简单站点和复杂的企业应用领域。Mambo的开发团队是一支真正的多国部队,它能够提供强大的支持论坛、第三方专业质量服务和用户会议。Mambo的授权方式为GPL,但该产品的发起者澳大利亚的Miro公司,还提供该产品的商用版本。
Mambo提供了出色的页缓冲、RSS合作功能,并可以根据调度安排显示内容。Mambo开发社团还为该产品开发了多种功能强大的增强插件。然而,与OpenCms类似的是,Mambo也缺少多重使用的特性,无法在大型部署中充分发挥自己的能力。
也许最完整的开源内容管理系统就是eZ publish,它可以提供内容分段服务、工作流程许可,和IT人员所需要的所有数据中心功能,包括负载均衡。此外,内容复用功能也使它能够应用于单个内容管理系统的多个国际站点。eZ publish目前可以提供基于GPL的授权。该软件的创造者,挪威的eZ系统公司还提供商用授权方式。
CRM
开源社区不可能像Salesforce.com或Siebel等公司那样提供昂贵的高端CRM应用。然而,你会惊奇地发现,有些开源项目所提供的特性已经达到了相当精深的程度,尤其适用于中型企业。
例如,SugarCRM可以提供构建于开源技术基础上的完整企业级CRM系统,所采用的技术包括PHP、MySQL和Apache Web服务器。该产品中的基本套件称为Sugar Open Source,可以根据SugarCRM的定制授权免费下载使用。该公司还提供了一种商用版本,名为Sugar Professional。SugarCRM还为商用版本和开源版本提供付费的支持服务。
此外,SugarCRM在特性增强方面做得也非常出色。该软件的3.0版可以提供业务及合同列表管理、员工目录及日历同步工具。即将推出的3.5版还将添加一个离线客户端。该模块框架是可以自由扩展的,且支持Oracle数据库。
另外一种产品是Compiere,主要提供的是ERP解决方案,但也具备了一些CRM功能。Compiere并没有将它们作为独立模块,而是使用户能够全面查看所有与客户和前景相关的活动,并且为商业伙伴提供跟踪、业务活动管理、客户赢利能力分析、自助服务在线查询。
Open for Business项目提供了全套的电子商务应用,采用的是MIT授权方式。该产品中包括CRM、ERP和电子商务特性。与Compiere类似的是, Open for Business项目并没有将它的功能拆分到若干个相互独立的模块中,而是将整个套件建立在一个通用的数据模型之上,从而使各种类型的销售、财务、设施管理和协作活动变得更为简单。
目录服务
现在,越来越多的企业开始研究身份管理、SSO(单一登录)和自动服务等技术,因此目录服务也成了网络基础设施中必不可少的关键组件。在这一领域中,长期以来最主要的竞争者就是OpenLDAP。
该项目提供了可靠、可扩展和稳定LDAP目录服务器、复制服务器,以及一些基本工具。OpenLDAP基金会利用自有的一种授权方式保持着这些代码,并且成功地将其移植到多种平台上,其中包括AIX、FreeBSD、Linux、Mac OS X和Windows。OpenLDAP目前已经相当成熟,但它很难配置,尤其是在编写ACL(访问控制列表)时。另外,它主要还是一种“干粗活”的服务器,缺乏Microsoft、Novell和Sun同类产品所具备的商用LDAP目录特性。
Novell已经将开源作为其战略中的核心部分,但是eDirectory至今仍然是其商用产品系列中的一部分。这为竞争对手RedHat Linux提供了机遇。RedHat曾在2004年从Netscape公司购买了一种称为Netscape Directory的产品。在该产品的基础上,RedHat开发出了RHDS(RedHat目录服务器),它可在Windows、Solaris和HP- UX上运行。RHDS可以提供许多高级特性。另外,它还提供与Microsoft Active Directory和Windows NT 4 Server的同步功能。
目前,用户只能通过RedHat的订购模式才能获得RHDS。然而,RedHat已经开始了该软件的源代码开放工作,并利用GPL授权方式向社会提供,开放源代码后的产品被称为Fedora Directory Server。
ERP
ERP的高价格在很大程度上都是由于商业流程和编程接口造成的,因为他们需要根据每一家企业的经营方式对商用软件进行大量的定制。而开源ERP应用代码则允许你在企业内部完成此类的定制任务,同时避免软件授权费用的节节攀升。
最著名的开源ERP应用出自Compiere公司。由于该公司极为重视商业分析,其软件融合了CRM、POS和库存管理模块,为多种业务应用领域提供了非常出色的灵活性。该产品可以与多数使用JDBC的关系数据库实现集成,并且支持Oracle和Sybase数据库。服务器和客户端平台包括Linux、 Solaris和Windows等。软件的授权发布方式为Mozilla公共授权。
webERP是另外一种通过GNU授权方式发行的生产级项目。它包含完整的财务特性,还有基于角色的安全特性和基于Web的高定制度前台。这种系统主要针对制造类型的流程,支持订单条目和库存管理。与Compiere不同的是,它没有客户管理、人力资源或类似的资源模块。
企业服务总线
随着Java应用服务器的快速商品化,一些成熟的企业服务总线(ESB)也开始采用开源技术。
Iona Technologies不久前捐献了Celtix,这是一种GNU LGPL授权方式的Java ESB,此举也启动了ObjectWeb社团的ESB工作。Iona的代表曾经表示,Celtix将支持最近推出的JBI(Java商业智能)规范。该规范中规定了用于跨平台集成的标准化对象容器。该项目还将支持WSDL、JMS(Java消息服务)、SOAP和XML,并且将会提供Java和POJO (Plain Old Java Object)之间的应用连接。其管理和配置工具将是基于Eclipse的。
另外,Sun也在今年的JavaOne大会上发布了自己的免费ESB。该产品被称为Java Open Enterprise Service Bus,整个项目将通过Java.net实现,第一版可望于今年年底推出。与Iona不同的是,Sun将根据自己的通用开发和发布授权方式提供该产品,而不会采用常见的GNU授权。
由SymphonySoft 公司主导的Mule从2003年即开始了开发工作。目前的版本为1.1版,支持可插拔的连接选项,适用于多种网络传输方式,包括JMS、POP3、 TCP、UDP、Servlet和多点传输。在该计划的路线图中,还有一些更尖端的特性即将推出。
如果有了代码,上述项目都有可能成为部门级ESB部署的良好起点。但是,由于现有的ESB部署中有很多都实现了将JMS作为其消息传输的标准化方式,那些已经采用企业级JMS服务器的企业应该选择更为明智的方式,即继续沿用更传统的中间件解决方案,而不是采用开源解决方案。
身份管理
完整的身份管理解决方案包含多种组件。因此,任何单独的开源项目都无法提供即插即用的身份管理。然而,许多项目却可以为此类系统提供多种组件,尤其是在联合及SSO身份管理等方面。
在SSO领域中,耶鲁大学开发了一系列的Java Servlet,称为CAS(中心授权服务),并且利用自己的授权方式发行。另外,还有一种以类似授权方式发布的工具集,称为JOSSO(Java开放式单一登录)项目,可以提供ASP、PHP和Java应用间的连接方式。
这两个项目都只适用于SSO,但无法为完整的身份基础设施提供强大的支持。另一方面,开发身份联合标准的工作,包括SAML、WS-*堆栈和其他多种由Liberty Alliance提出的标准都具有不错的前景。
最雄心勃勃的开源联合身份计划当属Shibboleth。该计划是由Internet2的中间件体系结构教育委员提出,主要用于教育机构的 Internet2网络中。Shibboleth是一种用于基于Web资源的完整的验证和访问控制系统,是从SAML 的基础上发展而来的,并且采用定制的授权方式。它可以算是一种纯Java的软件,目前有很多大学、图书馆,以及Napster数字音乐服务等都将它用于生产性用途中。
POS
POS应用的另外一个代名词就是“现金注册”。尽管现金注册的功能要求可能非常有限,但从企业应用的角度来看,这个类别包含着许多不确定因素,包括硬件兼容性、定制的垂直数据收集等。
不过,你还有很多选择空间。例如,PHP Point of Sale开放源代码POS应用已经达到了相当成熟的阶段。这是一种基于PHP、MySQL和GPL授权方式的方案,拥有非常优秀的基本POS特性集。
它还可以与osCommerce实现集成,后者是一种领先的开源电子商务应用。也就是说,您可以使用PHP POS执行在线交易,同时也可以将它应用于传统的“面对面”交易环境中。该软件于2003年第一次发布,目前的下载次数已经超过了26000次。其9.0 版目前正处于开发阶段,将有可能提供升级后的销售功能,以及更为灵活的折扣功能,同时还将具备改进后的后台报告系统。
如果现有的端对端POS解决方案中没有任何一种能够提供你需要的所有定制选项,那么开源社区可能会助你一臂之力。例如,jPOS是一种与J2EE兼容的框架库,适用于内部定制解决方案。jPOS有良好的硬件兼容连接能力,支持基于角色的安全特性。如果你决定开发自己的POS系统,那么jPOS肯定是值得密切关注的一种技术。不过,该技术的不足是,它的代码是通过专有的 jPOS授权形式发布的,而没有采用任何被OSI接受的现有授权方式。
企业门户
在企业门户服务器领域,对标准的支持意味着要使用符合J2EE的引擎来支持多种标准,例如Portlets(JSR 168)和WSRP(Web Services for Remote Portlets)。在这一领域的竞争者中,已经有了很多开源项目。
其中比较突出的就是eXo平台。该平台目前已经进入了生产性阶段,专门用作可定制的企业门户和CMS。它的Portlet容器事实上是经过认证的,并符合 JSR 168标准。该门户本身是基于JavaServer Faces(JSR 127)技术的,可以提供模型查看控制器架构。它的软件授权方式采用的是双重授权,即商用和GPL。
另一个竞争者就是Liferay Portal。该产品的特性集与eXo非常相似,也包括JSR 168和WSRP符合性。但Liferay并没有采用JavaServer Faces,而是使用了更成熟的Struts和Tiles技术。它可以运行在多种应用服务器和数据库中,提供了SSO连接能力。
Apache软件基金会也在着手研究一系列有关该领域的项目。Jetspeed-1软件就是一个基本的门户系统,构建于JSP和XML技术之上。 Jetspeed-2则是一个基于组件的系统,可以提供更先进的基于Portlet的方法。Apache还提供一种Portlet容器的参考实施方案,称为Pluto。所有这些产品都是以Apache授权的形式发布。
JBoss还推出了自己的JBoss Portal产品。它是JBoss公司JEMS(JBoss企业中间件系统)Java应用开发堆栈中的一部分。它是另外一种符合JSR 168的Portlet容器,可以通过Java-Server Faces、MyFaces和Spring提供强大的定制功能,并且还可以提供额外的内容管理和管理能力。目前,JBoss提供了GNU LGPL和商业授权两种方式。
形形色色的授权方式
根据最新的统计,开源计划(OSI)共承认了大约60种不同的开源授权方式。如果你希望安装和使用打包应用,那么应该采用怎样的授权方式并不重要。但如果你想修改代码,或将其用于自己的项目中,授权条款就具有非常重要的意义了,你必须对此密切关注。
开放人员最常用,也是最受认可的开源授权是GNU GPL(通用公众授权)。如果企业想开发专有应用,GPL很有可能成为一个大问题,因为该授权方式在代码相互共享方面有着很严格的要求。
正是由于此类问题的存在,所有才会出现GNU LGPL(初级通用公众授权)。这种授权方式允许企业访问源代码,但仍然限制企业将这些源代码用在私有的产品中。JBoss非常喜欢使用这种授权,而且很多代码库也对这种方式情有独衷。
另外一种对商业行为比较友好的开源授权方式就是BSD授权。然而,许多开源的支持者都认为LGPL和BSD授权是不可取的,因为这两种方式都允许外部的开发人员将代码用于其他的开源项目中,而不向初始代码的拥有者提供任何回报。
为了安抚这两个阵营的情绪,一些开源厂商转而采用了一种双授权模式。它们以GPL方式提供授权,但同时还向那些不想受到GPL条款限制的企业提供独立的商用授权。MySQL和RedHat这两家厂商便是使用此类方法最广泛的厂商。
另外,还有几十种OSI批准使用的开源授权方式,但授权方式在涉及到重新发布的问题时都是相同的。另外,还要特别注意的是,大多数开放源代码授权规定代码的开发人员不承担任何形式的质保和支持义务。
然而,对于商业企业来说,最头痛的是所谓的私有授权的泛滥。有很多厂商在发布代码时都没有采用OSI批准的那50多种授权方式,而是采用了自己的授权形式。虽然这些授权的条款很多都与OSI的许可授权大同小异,但有时也会出现不少差异。
而如果你想在自己的环境中添加一种新授权,就需要努力去理解其中的含义,并且确定它对企业业务带来的利弊。也就是说,你要支付额外的成本,并且损失产品上市的时间。在某些情况下,新的授权确实可能与你正在使用的软件授权存在差异。因此某些厂商的授权很可能在最后变成对你很不利的东西,有时坚持使用熟悉的东西可能会让你付出更高的代价。
编看编想:你准备好开源了吗?
开源产品是个好东西,我们通过连续报道向广大读者展示了如此丰富的开源产品,相信肯定会有你心仪的产品,在这里需要提醒的是:开源虽好,但应该事先了解开源的成本。
开源不等于免费,这一点尤其需要注意。开源产品的成本低是一个众所周知的优势,但这里的成本并没有包括人力成本。要想运用好开源产品,通常需要经常地升级、并下载相关的插件,找出与其他产品的最佳配置,这就要求公司内有一批实力不凡的技术人员。开源产品最大的好处是灵活性强,选择范围大,但不可能像商用产品那样拥有完整的功能,安装完就能使用。因此,如果你的公司有一帮子技术高手,那么开源产品用起来肯定如鱼得水,而且成本的节省会令你吃惊。但如果你的公司里缺乏技术高手,或者只有少数几人有此实力,那么还是冷静看待开源产品吧,如果这两个高手把开源产品很好地配置到应用环境之后出于某些原因要离开时,你们公司的感觉肯定是一团糟。
开源软件有各种各样的授权方式,有些虽然是免费的,却有商业上的限制,还有一些是收取服务费的。因此,要根据公司的商业策略来选择最合适的产品。
本期专题中有专门论述“授权”问题的部分,但这里还要谈的是:开源产品所带来的赢利模式值得关注。一些比较成规模的开源产品提供商所走的模式是:软件许可证免费,技术服务收费。随着开源产品在各个软件领域的开花结果,这种商业模式对传统软件厂商的冲击力越发强大,软件代码的传播将会更加开放和轻松,也许终有一日商用软件不得不放下架子走向服务收费之路。
开源项目概览
商业智能(BI)
Eclipse BIRT(商业智能项目)
Agila项目
Pentaho
业务流程管理(BPM)
Apache软件基金会
Agila项目
JBoss jBPM
内容管理
eZ publish
Mambo
OpenCms
CRM
Compiere
Open for Business项目
SugarCRM
目录服务
Fedora目录服务
OpenLDAP
ERP
Compiere
Linux-Kontor
TUTOS
webERP
企业服务总线(ESB)
Iona Celtix
Mule
身份管理
JOSSO(Java单一登录)
Shibboleth
SourceID
耶鲁大学CAS(中心验证服务)
POS
jPOS
PHP Point of Sale
TinaPOS
企业门户
Apache Jetspeed Portals
eXo 平台
GridSphere
JBoss Portal
Liferay Portal
RFID
RadioActive基金会
VoIP
Asterisk
Bayonne
SIP Express Router
sipX
Yate (Yet的另一个电话引擎)