许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  工业软件“开源”解析:趋势与影响深度探讨

工业软件“开源”解析:趋势与影响深度探讨

阅读数 6
点赞 0
article_banner

关于工业软件领域的“开源”陆陆续续讲了不少,由于信息差的缘故,很多朋友难以从宏观和整体视角来认识“开源”。

比如以下读者的留言:

  1. 贬低开源目的就是为了卖软件
  2. 前处理用OCC 就够了,不需要商用几何内核
  3. OCC+VTK没有商用风险
  4. 开源就是免费给他人用
  5. 开源质量太差,根本无法商用
  6. OpenFOAM 套壳多大点事,又没人追究

这些留言看起来似乎自相矛盾,但笔者相信,如果能具体到实际案例中,可能又是对的,所以还是要具体情况具体分析。

以下是之前关于“开源”的文章,点击链接查看:

再聊开源软件

开源,工业软件新思路?

开源结构求解器Code_ASTER

推荐一款开源有限元结构仿真工具

FDTD开源软件推荐

RADIOSS开源了,后续我会关注冒出哪些同类软件

FDTD开源软件推荐

FEM之求解器(1)---开源求解器简介

FEM开源软件推荐

推荐一款开源CFD软件工具

开源结构计算工具Calculix

本文就试着从多个角度,结合笔者和“开源”打交道的经历,详细介绍工业软件领域的“开源”,让读者对“开源”能有一个更客观的认识。

首先,这里的工业软件仍然指CAD\CAE\EDA\CFD等工业设计仿真软件。不包含云端,网络,嵌入式,移动端OS,App等开源软件。

工业软件领域的开源工具,笔者基本都摸过,能排得上号的,都下载源码,编译成功跑通案例,文档化源码,源码调试,研究整体架构和算法,包括OF,FreeCAD,FEBIO,MEEP等比较重量级的软件,更不用提OCC,VTK等这些笔者一直使用的开发组件,正是有这样的经历,才能也才敢发表很多关于“开源”的文章和观点。


为了减少沟通成本,就再做个列表,以下都是笔者使用过的开源工业软件:

Code_Aster

Calculix

OF

FreeCAD

FEBio

FDTD++

Meep

FreeFEM

OOFEM

FEM++

Impact

Dune

Elmer

MOOSE

GMsh

QCAD

Tetgen

netgen

OpenNurbs

Paraview

OSG

MeshLab

Ogre

SolveSpace

openCV

SALOME

deal.II

KiCad

OpenLB

VTK

OCC

CGAL

TAO

Jmetal

Dakota

还有很多底层的开源工具,比如Eigen,apack,blas以及小规模的数值算法和非C++项目(FEM,FVM,BEM,DEM)等就不展开介绍了。

1.从Radioss开源说起


RADIOSS开源确实比较出乎很多人的意料,作为使用显式动力学方法的商业软件,RADIOSS也是排得上号的,从开源代码规模,产品历史,开发公司以及客户也能看出来。

说实话,这种跨越世纪,代码超过百万行,使用Fortran开发的程序,我也只是有兴趣去编译一下,运行跑两个演示用案例。要静下心来阅读程序,理清架构,弄清算法,时间和精力已经不允许了,除非一辈子就是做这个的。

RADIOSS使用的GPL协议,也就是可以学习,可以做案例,可以改代码,但无法直接免费商用,用动态库的方式也不行,所以RADIOSS开源激起的浪花非常有限,至少目前国内还没有出现新的显示动力学商业软件。

2. IntelliCAD提供的功能是开源吗

IntelliCAD是一个CAD软件组织,服务对象是CAD软件厂商,不是最终用户。关于IntelliCAD的历史比较曲折,具体信息可以百度,IntelliCAD提供了两种会员方式:一种是可以使用API的,一种是可以提供源码商用的。从IntelliCAD提供服务的方式上看,不是开源软件,而是商业源码,价格上也是非常便宜。

其协议文本可以注册后从IntelliCAD网站下载,源码商用的最新版本是2013年1月。

通读协议,对于源码的使用有严格的规定,一句话解读:就是基于源码开发的产品要在IntelliCAD的监管之下。

国内有些厂商使用了IntelliCAD的产品后,想脱离监管单独发展。个人以为可以参考Autodesk购买ACIS,早年Autodesk是一次性买断ACIS所有权。从商务角度看,很多事情只有输赢,没有对错。

大家最关心的是IntelliCAD所提供的内容如何,IntelliCAD最初可以认为是提供AutoCAD的替代品,经过多年发展,其提供的功能基本覆盖了一般CAD产品,包括三维。也就是说拿到IntelliCAD源码后,可以快速定制开发出各个行业的CAD产品。这也是为什么笔者一直讲的,CAD领域的技术门槛一直在降低,这个领域断供的风险几乎为0

3. OpenFOAM怎么商用?

作为CFD领域的开源重器,OF的使用自然是很多人关注的焦点。

OF的开源协议是GPL,简单说就是不能免费商用,即使使用调用可执行文件方式,也需要咨询一下。修改使用了OF代码,发布时也需要开源。

所以不要说套壳OF作为软件使用,就是用库的方式用OF的代码也是违法的,更不用提改OF代码,换个名称作为产品发布,就是赤裸裸的盗窃,在国外百分百吃官司。国内还有大厂和这种产品公司合作,很怀疑法务部奖金不到位。

OF怎么商用?

1.首先就是提供服务方式。OF本身比较适合用来做研究,而不是商用,通常应用工程师接触实际项目,但不会写代码;而写代码的又不会接触项目。所以一种方式就是,在OF基础上开发,开源,然后提供给工程师用,工程师一方提供服务费用

2. 提供OF前后处理功能,实际上开源的Paraview已经很好的支持OF的后处理,前处理相对较弱,可以针对特定领域提供前处理工具。这个作为商业软件出售是没问题的。如果在软件中包含了OF的可执行程序,需要和提供方沟通,获得允许方可发布

3. 需要特殊使用的,要和OF发布方沟通,有时可能需要支付一定费用,获得许可后方可进行

其他一切OF商用,都违法。这不是针对国内,全世界都一样

4. OpenCASCADE和Parasolid差距在哪里?

OCC是基于LGPL协议的开源软件,PS是收费商用软件

笔者使用OCC从6.0版本到现在;ACIS是从23版本开始,用了十多年;Parasolid也有近5年使用历史,其它内核大概有4-5种也仔细测评过。

简单说说两者的比较:

1.性能和稳定性。较早版本的OCC是比较难用的,bug多,稳定性和性能差,很多实际功能没有,在一些性能测试中和ACIS等存在数量级的差距,参考

(点击链接查看);现在OCC稳定性和性能改进很多,功能也比较成熟,作为一般软件的CAD内核问题不大,至于什么是“一般软件”,需要具体情况具体分析

2. 生态决定路线。Parasolid的用户为商用客户,且很多都是知名工业软件,所以比较容易接触到一线实际用户需求,在改进方面也是围绕客户展开;而OCC同样也是改进功能,但用户迭代远不如PS,生态这块自然差很多,反过来又会影响产品的改进,是一个典型的马太效应

3.从功能上看,B-REP建模,离散化,布尔运算(包括Imprint,CellTopo等复杂布尔运算),几何修复,高级造型(放样,Loft等),网格支持,数据管理系统等,在一般功能测试上,大同小异。而真正的差距在于:某些核心点上的功能缺失或者有问题,商软响应更快;在处理复杂大模型以及复杂工况下,商软稳定性和正确性要更优;对第三方工具支持以及平台集成兼容性上商软完胜;这几点来自于笔者实际工作经历,毋庸置疑

4. 从开发角度看,关于OCC和ACIS/Parasolid选择上,之前也有做过详细介绍,参考

OCC和PS的差距,也是很多领域里,开源和商用差距的代表

5. 说说显示引擎

图形显示是工业软件里的一大模块,早期基本都使用Opengl自己开发,使用OpenGL对于开发者的计算机图形学知识是有些要求的,后来出现一些开源显示引擎,最常用的比如OSG,OGRE,VTK等,其底层也是调用OpenGL

其中以VTK使用最为广泛,基于VTK的ITK,Paraview,MITK等也都是广泛使用的开源工具,VTK提供了Unstructured 结构,天然适合数值计算网格显示,IO里甚至提供了HDF5,LSDYNA结果文件解析,与QT等GUI也有集成,功能方面提供了数值计算显示很多小工具,在生态方面做的相当不错,和商用软件相比,有过之而无不及。

VTK使用的是BSD license,支持免费商用,可以说是工业软件领域最良心,也最具影响力的开源软件之一

6. 开源和“工业垃圾”

在国内工业软件热兴起后,涌现出了大量的“工业软件产品”,很多都是基于开源软件开发。这里也要分多种情况:

1. 能基于开源,合规的开发出软件工具,该工具确实能在客户端帮助用户解决工程问题;

2. 有原创或核心技术,使用开源帮助构建产品,最终提供给客户,解决实际工程问题

以上两种是比较理想的,或者说是有积极作用的。

其它利用开源做的一些内容,用来申请项目基金,或者作为“自主”等工具,而实际无人使用或者摆设,此类基本都算是“工业垃圾”。这些也都是笔者亲身了解过,并非臆测。还有些利用开源做的一些项目,用途资金量讲出来,可能直接震碎三观。

怎么判断“工业垃圾”,可以从三个方面:

1. 项目内容和实际应用场景

2. 项目资金规模

3. 最终用户

具体不表

7. 数值计算工具

开源工具里有很多是关于数值计算方面的,比如

Calculix,Meep,OpenFOAM,FreeFEM等等,这块是绝好的学习工具,既可以学习编程语法基础相关,也可以积累专业知识,建议相关专业可以从大学就可以开始学起。实际上很多好的开源工具是开发者在读书期间完成的。
一般这类开源重点在算法实现上,很少注重软件设计架构方面的内容,而架构设计又是软件工程的重要内容。所以做数值计算,做算法的开发人员要有意识的提升软件工程能力。

需要注意的是,类似Code_Aster,OpenRADIOSS等以Fortran为主的海量代码,从工程角度讲,学习成本很高。

8. 开源分类

我们将开源按照使用程度,要求和方式,由低到高等级分类:
1. 学习用。学习某个未知领域,开源是一个不错的入门工具。特别是算法方面的实现,开源帮助很大

2.合规使用开源工具,解决实际问题。也就是并不对外提供,而是自己用

3.合规使用库的方式,将开源工具集成到自己产品中

4.合规修改开源工具,集成到自己产品中

5. 开源贡献。开发功能,然后开源,免费供大家使用

6. 独立开发开源工具

9.合规分析

开源软件面临的一大问题,是一直以来反复讲的“合规”,也就是要遵守开源协议,合乎规范。关于开源协议的解读,之前有写过文章,参考


通常一些比较成熟,且有较多用户量的软件除了基础协议外,还有一些额外协议。公司的法务在审核这些协议时,有问题要多和发行方沟通,避免给公司挖坑。

目前众多开源软件由国外开发,因此也有一定的断供风险。参考俄乌战争期间俄罗斯的境遇,几乎就是国内未来形式的预演,参考:

开源不“开源”(点击链接查看)

10. 如何使用开源工具

参考

11.如何看待开源组织

如果你是一个开发者,有一个开源组织号召你参加组织,参与开源项目时,你的第一反应是什么?

有些开源组织的发起人,本身就是开源软件贡献者,有很强的号召力,周围能够聚集一帮从事开源工作的人。这种也是最值得尊重和支持的。

有些开源组织,想把有才华的开发者组织在一起,做些能推动行业发展的事情,资源共享,利益共享,顺便也得到一些经济收益,也是值得尊重的

还有些开源组织,把大家召集在一起,号召为开源做贡献,翻译过来就是:你们好好干,我要吃白食

你的组织是哪一种?

通读笔者所有关于开源内容,其核心也就下面几点:

1. 不要使用开源软件制造工业垃圾

2. 开源和商用生态链隔绝,使用前做好技术调研

3. 遵守开源协议,合规使用开源软件;

4. 鼓励高水平的原创开源软件,保护开源作者利益

本文介绍了工业软件领域一些关于“开源”的信息,相信无论对于zf,投行,还是开发人员,应用工程师以及公司法务等,都会有更多的认识,也有助于消除“开源”领域的认知差,对于目前国内现状也有更加客观的认识。

最后,针对国内工业软件行业类似造假,套壳,虚假研发,工业垃圾,内幕交易等种种问题,个人认为,只要有资源流入,人才流入,国家重视,政策支持,行业在发展,就是好事情。所有的问题都可以在发展中解决,假以时日,会有更多的政策法规出台来规范行业发展。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空