开源GIS平台软件是否可以取代商业GIS平台软件
经常跟用户沟通时会被问道:“现在开源软件很发达,GIS平台软件作为一个工具型的软件,可能会被开源软件取代。我们单位的某个项目一直坚持用开源GIS平台软件,而不采用商业产品。态度很坚决,效果也还不错。你怎么看这个问题?”即使是对一个从事了十多年GIS平台软件应用开发与咨询的专业人士,也总是被问得无言以对,觉得道理明摆着,商业软件有很多优势,可就是没有什么头绪来证明。刚好,最近散步的时候脑子里梳理了一些思路,在此分享下。
如果需要简单概括下开源软件的应用原则,那么我们可以用“不可尽用”来概括,简单解释就是不是不能用,而是所有业务都只用开源软件是有问题的。我们从几个方面来看这个问题。
首先,先来看看开源软件的生态环境。开源软件蓬勃发展依靠的就是全世界范围内,基于互联网实现的协同研发,共同创造新的产品技术。我们知道一个开源项目要想研究学习,可以直接下载源码进行编译或者直接下载预编译的软件包,来进行部署和使用。使用一段时间,发现其中某些功能可以提升,在充分理解源码的基础上可以本地开发,然后提交代码到Github。之后,代码通过质量检查和测试,再由源码负责维护的组织评判是否把某个开发者提交的代码合并到主版本中发布。
那么对于开源的GIS平台软件,什么功能会被最终在新版本中发布呢?绝大多数是基础性的、普适性的功能,比如新增支持了新的数据格式,优化了性能,支持了新的协议等等。因为开源软件需要被更多的人使用,才有可能有更多的人参与项目的创新性的开发,这么多的用户基数注定其在满足某些领域的定制化需求方面的不足。源码管理的组织才不会因为你是中国的某个部委的信息中心提交的功能,而特意接纳这部分代码。因此,不能满足个性化的需求,是开源软件的弱势,而商业软件只要建立了一定的合作关系,就可以联合研发定制化的扩展功能或者产品,比如海图产品,气象产品等等。
有人会说:“开源社区也有项目是基于基础的开源GIS平台软件的源码,再结合自己的领域知识模型创建的满足行业需求的项目啊。”那么我们再往后看,这些项目确实定位于面向解决行业领域的个性化需求,但是其成熟度和发展的速度如何呢?和基础平台软件的兼容程度是否保持同步?集成使用的友好程度如何?还有就是,这些项目很多都是某个大学或者科研组织的研究课题,有了一些成果就开放出来,希望依靠开源社区的力量逐步使其强大起来。但实际上,大多数专注于某个领域的项目由于其非普适性的特点,更多的同一领域的用户更喜欢参考,然后研发或者修正自己的闭源项目,而非去提交新的代码改进开源项目,项目发展缓慢,用的人也会越来越少。而商业软件的定制往往都是已经选定了用户群体,甚至某些项目,针对性、适用性都更有优势。
总结下第一个方面我们想表达的含义,就是满足领域用户的深度定制化的需求,是商业软件的价值所在,而开源软件更偏向普适性。
有人又会说:“我们单位的技术人员技术很强,即使基于开源代码,自己也可以扩展开发新的功能,甚至修正源码来满足自己多变的业务需求。商业软件太贵,没必要。”那么这就引出了另外一个方面问题,就是应用项目的研发团队定位是什么?
GIS平台软件用户大多数是政府企事业单位,以及提供其软件项目开发服务的公司企业。每天做的就是各种项目,项目的模式决定了要在既定时间范围内实现利润最大化。很多公司每年,每季度都要核算收入产出,恨不得没写一行代码都能挣几块钱。这种压力下,这些应用开发的项目团队是否还有精力为了GIS功能的提升而去做定制化的开发?且不说这些开发的代码不可能被社区接纳,就说这些新的代码的开发维护成本有多少?封装一个简单的接口还可以接受,如果是定制一个新产品呢?比如三维,BIM,倾斜摄影,是不是要成立一个GIS平台研发团队?所以,从定位角度讲,应用开发团队应该把主要的精力投入到去满足用户的业务需求,创新业务能力,而不是GIS功能的创新上,这是第二方面。
还有人会说:“我们技术能力强,而且业务需求很简单,就是看图,标注各种对象,做些专题,最多就是可以显示车辆实时位置,做做查询就够了。没什么需要深度定制的功能,商业软件那么多功能用不上。”
这个解释我很理解,也听着很有道理,可是转念一想,这个逻辑可能有点问题。究竟是因为业务需求简单,才使得开源软件更适用;还是因为开源软件功能基础,才导致只能满足如此简单的业务需求呢?前面提到了开源软件的普适性,换一个更容易被大家理解的说法就是,大家基于开源软件做的项目在GIS应用方面都差不多,属于一个平均的差不多的水平。
而我们可以看看国土、水利、地质等领域,为什么很少看到开源GIS平台软件呢?因为这些行业对GIS应用的深度远远高于这个平均水平。反过来看,是不是开源软件在提供低成本的同时,也制约了GIS创新业务,提升业务的可能性呢?
不过这也不能说项目团队对业务创新没有高要求,就个别项目而言,需求单一而且稳定,是现实而客观存在的,甚至开源软件的功能都超出了其需求范围。这些项目使用开源软件足够用,很正确,但是作为一个具有一定规模的公司,或者国家政府机构的信息中心,还是一个科研院所,承担的不仅仅是这些需求单一的项目,而是要考虑整体信息化建设的提升,其中就包括GIS和业务的深度结合,充分发挥GIS的能力。例如气象GIS平台、态势标绘系统、水文分析模型、实时路况分析模型等等,这些行业的定制化的系统或者模型,需要GIS基础平台软件提供更多支持,才能更便于和领域的模型结合,从而提升业务能力,更方便的辅助决策。而这就是最开始提出的,对于开源软件可以使用,但“不能尽用”的道理。
各种软件产品能持续发展,依靠的是其不断的满足用户的需求,使得用户获得利润,才能回过头来直接或者间接的促进软件产品的发展。开源GIS平台软件和商业GIS平台软件的出发点一致,但关注的领域以及服务用户的应用层次有所区别。所以很难肯定的说,谁会被谁取代。即使未来商业GIS平台软件不再被市场接受,那么替代它的也不太可能是开源GIS平台软件,除非所有GIS开发者社区,高度活跃;各个领域都有GIS和业务领域的双重专家,主导创新各种GIS行业产品;同时这些产品和开源基础GIS平台软件体系非常完整,易于集成且兼容性强。而从目前云计算、大数据技术栈的相关开源项目的集成化可用性方面对比,开源GIS平台软件的发展还相对较慢且不成体系,实开源占主导的日子,至少对于中国的GIS应用开发者来说,可能还要多等上几年。
以上就是今天散步时一些思考的梳理,希望能给一些单位在做产品选型的时候提供一些帮助,任何产品都有其独特不可替代的价值,关注业务的创新需求,不断提升业务水平,选择合适的技术就可以了。如果项目足够独立,需求足够简单,预算也有限,开源挺合适;如果项目未来规划需要不断提升,深度挖掘需求,可能选择和商业GIS平台软件是更合理的选择。