这些系统就包括客户关系管理(CRM)和企业资源规划(ERP)等应用系统,但它们其实只是一组精心创建的数据库表,外加防止员工弄乱信息的一组例行程序。它们通常对公司而言必不可少,以至于数据库管理员可以挺起胸膛,说出让人相信的这番话:“我们公司说白了就是一个庞大数据库,外加照吩咐办事的销售队伍和仓库。”他们的话夸张了一点,但与事实并非相差甚远。
在过去的十年间,市面上出现了好多开源解决方案,它们让公司只要下载一些代码,启动编译器,然后连接数据库,就比较容易使所有业务运营实现数字化。与Oracle、SAP及其他厂商的大型企业软件包相比,与之竞争的这些开源软件包起初成本非常低。
亏本赚吆喝
比起早些年少数编程员交换代码以获得地位,如今这个行业成熟多了。Openbravo、SugarCRM和Compiere等公司自称是专业的开源公司,至少提供两个级别的产品:社区版和专业版;专业版得到了厂商的支持,常常有额外特性。它们还开始提供软件即服务(SaaS)版本,为客户把整套应用软件托管在诸多服务器组成的云环境中。
我们可以通过这些产品,大致了解开源软件开发在如何针对商业化顺势而变,至少有一些开源项目正是冲着专有工具而来的。你不用花钱,就能享受到开源版本的许多特性;当然也可以成为付费客户,获得更好的特性和更多手把手的指导。
由于许多公司已经很善于弄清楚用户需要什么、愿意为此支付多少费用,做出这样的决定并不容易。毕竟,如果它们搞不明白这个问题,就会关门大吉、开源版本就会出岔子。开源公司喜欢夸耀自己没有像专有软件公司那样把用户锁定。
所谓的社区版还兼有营销的作用。这些公司希望你轻松采用社区版,因为快乐的用户极有可能在以后升级到专业版。但它们也作了精心安排,以便社区版很容易满足不了基本系统的发展要求。有人可能觉得这是一个无情的伎俩,不过我倒觉得这些试用机制是
市面上最礼貌、最友善的营销手段之一。这种方式也许不如销售代表出钱邀你游览拉斯韦加斯来得好玩,但比耐着性子看完充斥着流行语和空头承诺的PowerPoint幻灯片有效得多。决定采用开源版还是专业版牵涉大量的细微差异和种种选择,但一切都大白于天下。
本文着重介绍了SugarCRM、Openbravo和Compiere,不过许多类似工具也能胜任工作。比方说,许多电子商务前端系统提供了极其丰富的特性,让人以为它们本身就是ERP本台。Magento等公司提供的电子商务解决方案为良好的店铺提供了许多后台工具。
店铺工具还出现在让人意外的地方。Drupal和Joomla等项目本该是内容管理系统(CMS),但编程人员在开发购物手推车及其他工具,可以把它们变成提供足够多特性的店铺,足以成为小企业的ERP。
其他缩略语也涌入到了ERP领域。作为报表工具的最新流行语,商业智能(BI)已极其先进而复杂,足以处理许多ERP和CRM事务。Jasper和Pentaho绝不仅仅是把SQL查询转储到外观漂亮的表中的工具。利用诸如此类的工具,很快就能构建起自己的CRM或ERP解决方案。
作为把体现员工之间如何联系的流程图变成让一切顺畅运行的软件这一门艺术,业务流程管理(BPM或BPMS)可能还非常适合一些CRM或ERP系统。Intalio利用开源组件开发出了一款BPM解决方案。
但SugarCRM、Openbravo和Compiere正面处理必要的CRM和ERP功能。仔细看一下这三款产品,我们就有机会看一下构建实用的后端程序有多容易,并有机会了解“开源”这个术语对某个人(如果其上司只希望仓库与销售队伍进行联系)来说到底意味着什么。
SugarCRM:通过插件来增强功能
SugarCRM应用软件在2004年开始只是为公司管理客户数据的一种简单方法,在SourceForge上成为最受欢迎的项目之一后,迅速得到了风险资金的支持。最新版本5.2如今可以组织管理销售队伍与想买商品的客户之间的互动关系。它可以存储销售线索、管理销售活动、组织管理账户,以及生成跟踪这一切活动的报表和图形。
采用的架构没有把表结构的大部分隐藏起来。像联系人、线索和账户这几个主要数据项都有选项卡,每个选项卡有类似的按钮,用于创建新的数据项或搜索旧的数据项。在需要更多手把手指导的一些地方,有几个向导程序(wizard)。比方说,用于生成电子邮件销售活动的一个向导程序会检查许多配置选项,确保邮件正确发出去。要说这个工具最主要用于发送营销邮件,我不会感到吃惊。
这款软件是用PHP编写的,针对MySQL作了调整,不过经改动后可与其他数据库兼容,包括Oracle数据库。社区版具有用于往表里面填写人员姓名以及会议的所有基本特性。仪表板不断统计新线索以及新线索出现的情况。该系统一直采用高端的插件结构;有一个网站SugarExchange专门为这些开源插件和专业插件编制目录。
据维基百科里面提到的一则随机估计认为,社区版含有专业版当中85%的特性,这个结论可能基于数据库中表的数量,而不是基于特性的新颖性。专业版和企业版有一些比较高级的改进之处,比如更复杂的报表、定制门户以及移动设备访问。大多数高级插件都是要花钱的。
很容易得出这样一个印象:社区版与专业版一比相形见绌,特别是由于SugarCRM网站首页上营销文案的主要内容是为了吸引人们来试一试,然后购买某一款专业版。如果你已经在使用社区版, 那么SugarCRM随时可以让你轻松升级到专有版本。不过有大量的资源专门面向社区版,包括众多论坛和SugarForge(这是主要项目和许多插件的资料库)。
我认为,SugarCRM在很好地同时支持开源社区和阵营庞大得多的企业(它们只需要某个方面多几个保证)。这些论坛得到收费的官方支持人员的积极监管,但大多数讨论针对的是把社区版安装在不同环境下遇到的种种难题。还有一个非员工组成的活跃社区,负责为企业维护简单版本;许多人在深入分析代码,以便更换按钮、更改URL、与Moodle等另一个软件包共享登录信息,或者甚至改动数据库表。
这个领域的活力似乎扩散到了专业版。SugarCRM似乎拥有比Openbravo或Compiere更多更新的特性,比如与第三方数据库和社交网络集成的功能,只不过是因为有那么多项目处于不同的完成阶段。开源社区的试验是这一切创造力的源泉。
与此同时,该公司显然期望随时提供有偿帮助。它刚推出了Sugar简易版,该产品把托管功能与社区版结合起来。如果最多供5个用户使用,一年订购费为499美元;如果最多供10个用户使用,一年订购费为799美元。如果你想使用专业版中的特性,价格就会上升。第一级是每个客户每月30美元,最全面的“企业级”是每个客户每月50美元。
额外的报表和窗件不是可供出售的惟一部分。SugarCRM还会把托管功能捆绑到共享机器或专用机器上的服务中,这一组特性似乎在迅速完善。其中两款产品(Sugar简易版和Sugar专业版)都随带托管功能,但你总是可以安装到自己的服务器上。
SugarCRM在迅速研究管理这些部署环境的工具。名为“云控制台”(Cloud Console)的最新工具在开始帮助企业结合一家大公司里面安装的各个Sugar版本。这些版本不需要一模一样,不同部门可以有各自的模板和特性。
很难用一句话来总结SugarCRM和商业合作伙伴社区带来的所有额外特性。FastStack便于迅速安装每一个部分。我喜欢捣鼓模块构建器,这项特性让你可以为表拖放字段。开发自定义特性根本不需要编写太多的代码。你只要为字段选择名称,窗体和表的其余部分会随后完成。
比较高端的解决方案需要深入了解PHP,这门编程语言得到了很好的支持。SugarForge拥有数百个颇有意思的插件,开发这些插件是为了添加特性,并且把Sugar与其他许多开源和专有软件包集成起来。
这通常相当简单直观。你可以编写PHP代码,为菜单或不同页面添加额外特性。比方说,iNetGoogleMap插件的核心是用大约100行代码构建而成的,这些代码把数据从内置的Sugar格式处理成谷歌地图(Google Map)所需的URL格式。这个核心随带十几个其他文件,有助于把该核心与系统集成起来,并且针对其他任何一门语言进行本地化。添加插件的机制很完善,提供了访问底层系统的广泛途径。
有相当多的插件专门用于为Sugar添加ERP功能。如果贵公司规模小、产品线短,这款产品就足以满足要求。有一些插件用于添加库存管理、信用卡处理以及启动自己的ERP所需要的几乎一切功能。
这些插件有一些是开源插件,不过这可能是一种营销手段。比方说,PlanetAuthorize.Net的插件利用GPL代码,提供实时的信用卡处理功能。它们靠信用卡手续费获利;其他公司提供专有服务。
我认为,SugarForge非常出色地集开源软件开发和专有软件开发两者之所长。可以访问源代码意味着,可以改动你所运行的任何一部分代码,即便改动主要是通过插件机制来进行的。与此同时,来自专有版本的额外特性物有所值,许多资金充裕的大公司会希望购买――购买专有版本后,照样可以改动及扩展代码。
Openbravo ERP:使用模板创建表和窗体
许多公司希望实现自动化的不仅仅是销售队伍和客户服务。Openbravo包括了一些基本的CRM功能和一大批例行程序(用于跟踪货物从仓库到交付的整个过程)――这一组特性让Openbravo有资格声称自己是ERP的代名词。客观地说,它还提供了CRM,不过只是最基本的那一种。
该系统把集合销售队伍的任务与订单履行过程集成起来。有一些部分用于管理银行业务往来、采购、生产及仓库等业务环节。
Openbravo还主要是一组数据库表,有着很好的前端部分。它是用Java编写的,拥有Hibernate和JasperReports之类的许多经典Java库。前端部分用自定义模板引擎构建而成,该引擎拿来XML文件后,用HTML格式来呈现。如果你想创建自定义窗体和数据结构,会直接使用模板引擎。
网页相当简单直观,但它们不是特别类似AJAX。这么做有充分的理由:Openbravo旨在单单使用键盘就可以导航操作,这项功能在人们需要处理一个又一个窗体的工作场所颇受欢迎。这项特性并不完美;我发现有个窗体无法使用,因为我没有以足够权限登录进去,结果出现了短暂故障。
Openbravo应用软件不如许多网站来得完美,但在熟悉使用15分钟后,谁不会注意到这个不足。设计人员出色地开发出了与类似VT100黑白显示终端的老式“绿屏”工具一样高效的工具;在大型机和微型机时代,老式绿屏工具普遍应用于后台部门。
尽管号称是ERP的代名词,但Openbravo的主要版本只与Oracle和Postgres兼容。据说该公司正在竭力支持DB2和MySQL,但是许多地方对代码进行了特定的改动,这样一来,显然很难直接与MySQL兼容。这款专业版还有一个“器具”套件(appliance kit),提供了一款庞大、功能齐全并获得许可的工具包,与Tomcat、Oracle和Apache捆绑在一起。简易版本提供了如今与MySQL兼容的销售点(POS)应用程序。
开发新模块方面有着相当大的灵活性――这对ERP的安装来说必不可少。每家公司各不相同,尽管标准框架相当灵活,但总是为更多的表和改动后的控制逻辑留有余地。开发说明文档相当厚,提供了数量众多的实例。用户要花大量的时间来了解系统结构以及XML文件和Java代码转换成表和窗体的方式。
Openbravo没有像SugarCRM那样全面的插件系统,这就限制了开发人员捆绑特性、随意使用特性的方式。但这并不是说系统无法扩展――其实很容易扩展,但没有简单的办法把诸多改进之处集中起来。另一方面,由于插件最终会彼此干扰,插件架构确实让开发人员大伤脑筋。
Openbravo的开源社区不如SugarCRM的来得强大。该公司的Forge网站上只列出了57个项目,不少是针对语言本地化的。维基的内容要全面得多,它是获得说明文档的优先方式。该公司在制作大量视频方面做得很到位,视频是告诉开发人员如何完成工作的越来越常见的方式。
社区版与两个商业版之间在软件特性方面没有任何区别,但只有购买收费版本,才能获得“无限制的软件故障支持”和“安装支持”。Openbravo还将销售一款托管版,随带Oracle许可证和服务器系统。我猜许多客户还会考虑请一些Openbravo开发人员来帮助定制代码。这样的内部知识值得花钱。
Compiere ERP和CRM:为定制而生
Compiere软件包的名称取自意大利动词,意为“完成”或“实现”。它有两个缩略词:ERP和CRM,表明它能相当好地胜任这两项任务。与Openbravo一样,它也是一组数据库表,旨在跟踪客户、产品以及客户与产品之间的交易。与SugarCRM一样,它还提供一组相当高级的例行程序,可以处理及吸引客户。
Compiere系统是用Java开发的,使用Oracle或Postgres。据说最终就会支持任何JDBC数据库。据说移植到MySQL、Sybase和Firebird的功能现正在测试中。
Compiere Web界面类似Openbravo和Sugar的界面。有一个菜单列出了针对表的选项,你可以深入分析为表添加新的行,或者搜索旧的行。我试了几分钟都不行,后来发现可以深入分析子窗体:当数据库迫使你确保发票上填写的客户名称与客户表里面的实际客户相符时,子窗体就必不可少。有相当数量的类似AJAX的特性,可用于完成窗体、搜索表,不过用于填写窗体的工具似乎更容易使用。总体上来看,这个界面很有现代感。
测试Compiere的工具时,社区版与专业版的区别体现得最明显。社区版需要一个上午才安装好,让人捉摸不透的是,客户程序不断把Postgres端口重新设置成5444。另一方面,一旦我添加了比较新的EnterpriseDB版Postgres,专业版在大约15分钟后就开始运行了。
Compiere的基本社区版可以追溯到浏览器功能不太先进、AJAX只不过是一个厨房清洁剂品牌的时代。社区版使用自定义的Java客户程序与中央数据库进行联系。你需要购买更新的专业版,才能获得现代、更方便的基于Web的界面。
一旦你开始付费,更多特性就开始出现。除非你购买了标准版(每个用户每月25美元),否则说明文档不是免费使用的。还包括报表工具。为了获得基于Web的界面,你必须购买专业版(每个客户每月50美元),这个级别的服务还包括无限制的支持请求及其他各种错误修正程序(bug fix)。还有一个“云端版”(每个用户每月66美元),它把专业版包装成了用于亚马逊EC2的预制映像。
Compiere的开放性不如SugarCRM和Openbravo。没有一批开放的插件,专门改动代码方面的力度也明显不够。SourceForge网站论坛上的大多数主题似乎侧重于安装问题。这倒不是由于系统是闭源系统。实际上,Compiere包括一组很不错的API和工具,可用于调用外部代码片段。
如今,定制方面的精力主要放在工具上。Compiere称其定制过程为“模型驱动”(model driven),这意味着你只要开始为数据模型中的表添加列,Compiere就会处理剩余的大部分工作。为窗体添加字段意味着填写几个额外窗体。
Compiere的说明文档有一处承诺:定制过程不需要“容易出错的过程编程”,这是相当准确的描述。为窗体添加新行、为它们创建新的规则就是编程,但不是Java层面的编程。开发人员拿来ERP机制后,可以用来管理源代码本身。
向左转还是向右转?
你应该选择哪个呢?最重要的选择标准不是像这样泛泛的评测文章所能给出的。每家企业各有不同的需求,很难评估其中任何一款工具是否符合一般的工作流程。即便某个工具有多好、拥有多丰富的特性,但如果其内部架构依赖为工作流程添加与贵企业有冲突的某种结构,它也极不适合贵企业。有时,把庞大业务硬塞进这样的标准产品所需的成本高于从头开始编写定制软件。
尽管谁都不该有成见,更不该对软件下一笼统的结论,我还是认为Openbravo好比是仓库里面的人:他们希望填写订单、运送货物。SugarCRM好比是非常热情的接待员,知道销售过程的大部分离不开走到人面前、密切关注对方的需求。Compiere有点像是两者的混合体,但其核心思想是把仓库中的货物销掉。
但是正如人可以扮演多个角色,软件也能这样。这些系统都是开放的一组数据库表和用于编辑的规则。如果可以用某个系统完成某项任务,其他系统经过改写后,也会具有这种功能。没有理由说Openbravo运行起来不能更像友好的SugarCRM;也没有理由说SugarCRM无法添加相应的插件、开始在仓库里面工作。
在这三种情况下,定制非常简单,以至于决定自行构建变得越来越难。如今用Java或C++编写自己的后台系统相当愚蠢,不仅仅是由于如今有那么多功能可随意获取,还由于这些系统本身非常接近编程语言。开源开发与日益兴起的插件架构相互结合,意味着改动现有代码越来越容易。这些应用软件旨在可以接纳每个人贡献的代码,这种灵活性融入到了整个开发周期当中。
不过,这三个项目离下面这种形象相距甚远:社区由编程人员领导,里面的一切都平等共享。首先,这三家都是专业公司;它们既销售产品,又恰好免费赠送。免费的开源版本会满足你的要求吗?情况可能不是这么简单,但技能娴熟的编程人员应当能够在合理的一段时间内安装所有版本,让它们存储数据。
社区版本是不是最具有成本效益的解决方案,很大程度上取决于贵公司的性质以及在定制方面的需要。如果你的客户和产品直接对应于简单的表结构,那么使用社区版可能相当好。毕竟,替代免费版中没有的一些商业特性的功能甚至可以自建。比方说,可以用JasperReports就能开发出简单的报表特性,因为总是有可能连接到数据库,不需要通过主应用软件。
不过,可能没必要什么都自己来做,那样会有一大堆麻烦事。我发现,自行完成编程工作往往不需要太多时间,但了解架构、决定如何实施变化却很费时间。专长技能是慢慢积累起来的。尽管每个用户每月50美元很快就会变成一大笔费用,但比请专职编程人员来工作大半年省钱得多。
专业版确实包括更多的支持;拿Compiere来说,还可以使用说明文档。这往往相当要紧,但仍需要你进行实际的定制工作。没有一个专业版为你完成定制工作――那是你的责任,但这些公司都支持庞大的编程人员网络,他们精通每个版本的特别之处。即便贵公司自己有一大批编程人员,在安装这些软件包时,也应当考虑从外面请人来提供一些帮助。
注意产品本身的开放程序也很重要。比方说,定制Openbravo需要创建XML和Java类。所得结果需要进行编译。如今SugarCRM包括一款非常高级的拖放工具,用于为你实施的对象添加表和模块。可以添加字段、控制字段怎样出现,不需要编写任何ASCII文本。所有编程工作都只要通过在屏幕上拖动及编辑div即可“直观”地完成。这种非常开放的优点很容易被许多没有直接编过程序的经理和用户所理解。
我要说,尽管SugarCRM的拖放工具大大简化了改变表和数据模型,但仍然需要事先考虑每个人会怎样使用数据。由于会导致缺乏一致性,允许每个人随意添加字段可能很危险。
紧随云潮流
一个更深入的决策是,是使用对方的托管服务,还是把软件安装到自己的机器上?这三家公司对“云”一词的使用各有不同。比方说,SugarCRM提供“云连接器”(cloud connector),可以把你的SugarCRM版本与销售有关Hoover’s和Jigsaw等公司的数据的厂商集成起来。如果你获得了Hoover's或Jigsaw数据库中的某个客户,云连接器会调入通用的数据,为你节省时间。这是相当好的想法,但与托管本身没有任何关系。
SugarCRM也为其主要版本提供托管选择。小规模安装可以选择Sugar简易版、社区版的托管版本(限于10个用户使用),或者所谓的专业版。SugarCRM还与一大批提供定制工作和托管服务的合作伙伴合作。
Compiere使用“云”一词来描述其专业版专门针对亚马逊的EC2云而改动的一个版本。它提供了磁盘映像,可以迅速启动,不需要大量的安装工作。你仍得完成所有定制工作,但该版本包括了一些额外帮助。不过得支付亚马逊收取的费用。Openbravo不直接提供该磁盘映像,但一些合作伙伴构建了自己的亚马逊机器映像(Amazon Machine Image)。
这些也不是惟一的选择。软件毕竟是开源软件,公司可以与大批顾问合作。他们可以为你安装这些工具、进行定制。有些顾问可以结合托管服务,有些人专门来到贵企业服务。有些顾问为项目积极贡献代码。与这些专业人士合作是获得所需特性的一个好渠道,他们为你安装的软件编写的额外代码可以用到下一代。
SugarCRM、Openbravo和Compiere这三款开源工具包(以及类似的其他许多工具包)在迅速完善,足以提供市场实际需要的功能。社区版都相当,通常也比较容易使用,不过这些公司准备定制各自的工具,并提供支持。这种便利模式带来了一个强大的社区,供应商们竞相为用户们建立一个富饶的生态系统,不管用户有没有在付费给商家。
插图文字:
SugarCRM的模块构建器让你可以创建新的数据表,然后制作面板,用于利用浏览器中的拖放工具来编辑及显示表。
Openbravo的窗体系统让你可以为存放客户数据的表添加新行。窗体会自动执行标准规则,防止重要数据出现遗漏。
Compiere具有AJAX功能的一组窗体包括许多弹出式div标签,可以处理实时添加新数据项的操作。这迫使用户在添加几个主要行之前为子表填入数据项,从而对表进行约束。