关于工业软件开源社区建设的一些想法

备注:两年前写的一些东西,再不拿出来show一下,就真的压箱底了。小时候最喜欢的技术作家侯捷说过,发表是最好的记忆,这种不登大雅的小豆腐块,就发在自己的自留地好了 ~

引言

三年前,林雪萍发表《中国工业软件失落的三十年:这里的黎明静悄悄》,如同一声惊雷惊醒了沉睡中的中国工业软件人,大家开始逐渐意识到缺乏自主可控工业软件问题的严重性。两年前,美国商务部突然宣布对华为禁运,在中美贸易战的大背景下,几乎所有主流工业软件厂商断供华为,工业软件“卡脖子”问题已经异常突出。去年,MATLAB宣布停止对哈尔滨工业大学和哈尔滨工程大学的服务,更是让发展国产工业软件的呼声达到顶峰。今年以来,工业软件及相关产业似乎成了市场的宠儿,大量课题得到资助,大量企业获得融资,但是热闹的背后仍然存在关键技术缺乏、高端人才短缺、生态培育无力等问题。在本调研报告里,我们提出建设工业软件开源社区,期待走出一条新的国产工业软件建设路线。

一、开源:工业软件的一种选择

工业软件是工业经验的沉淀,它是将工业知识(理论的、实验的、生产经验的)以软件形式封装起来,因此工业软件的开发涉及到大量的行业知识(不同行业的跨领域应用)、数学物理知识(物理模型、数学算法)、软件工程知识(软件开发、体系架构)、高性能计算知识(工业计算软件在现代高性能计算机上的移植、优化和部署)。中国工业软件已经有多年断层,想要短期解决自主可控问题似乎是痴人说梦。纵观全球,美国、德国和法国是工业软件行业的绝对龙头,但仔细分析德、法的核心技术依然受制于美国。德国西门子和法国达索虽然看似构建了全生命周期的工业软件链条(PLM体系),但其核心CAE软件的知识产权却归属美国所有,当美国商务部下发禁运令时,德、法都得无条件听从。那德法两国是不是也跟中国一样出现禁令就会束手就擒呢?答案是否定的。传统商业软件宣称所有模块全部是自己编写的,这种“黑盒模式”导致了永远的技术壁垒,后来者难以追上。但是,法国工业软件巨头“法国电力集团”(EDF,简称法电)选择了不同于传统商业软件的做法,通过大量使用开源软件,甚至连界面模块(前后处理),比如Salome-Meca等,更是直接集成了FreeCAD、GMSH和Paraview等开源代码,这种“拿来主义”导致法电后来居上,迅速在工业软件领域占据了一席之地。

二、开源工业软件现状

工业软件涉及的领域极其复杂,但并不是所有工业软件都是“卡脖子”的,不是所有的工业软件都需要国产化,也不是所有工业软件都有开源社区。目前,国家工信部《“十四五”智能制造发展规划》中明确在“专栏5:工业软件突破提升行动”中提到了6类需要合力发展的工业软件产品,即研发设计类软件、生产制造类软件、经营管理类软件、控制执行类软件、行业专用软件及新型软件。其中,研发设计类软件在开源社区有大量的基础代码;生产制造类、控制执行类以及行业专用软件往往涉及具体行业甚至具体工业流程,需要定制化开发,难以实现通用化,基本没有开源软件可供使用;经营管理类软件本身技术门槛不高,并不存在技术上的壁垒;新型软件本身就是大量地基于开源工具链开发的,包括工业APP、云化和云原生软件也涉及不同行业,但其共性部分都有大量的开源代码。

研发设计类软件是工业软件被“卡脖子”最严重的领域,其中CAD、CAE是重灾区。CAM是CAD向生产制造的衍生,PLM是大量工业软件的集合,PDM是针对工业数据的管理,他们本身是建立在CAD、CAE基础之上的,而在CAD/CAE内部,又以CAD的图形内核、CAE的前后处理和核心求解器被西方封锁最严重。

西方商业CAD软件的技术内核基本掌握在美国Spatial Technology(被达索收购)和UGS(被西门子收购)手里,几乎所有的主流商业CAD软件(以及大部分CAE软件的图形内核)都是建立在ACIS和Parasolid基础上。可以说主流CAD内核已经被垄断,无论是ACIS还是Parasolid,中国CAD厂商都不可能有机会实现自主可控。

与CAD软件核心技术高度集中的情况相比,CAE的技术生态可谓百花齐放。目前传统CAE有三大巨头,即达索、西门子和ANSYS,再加上没落贵族MSC虽然占据了全球绝大部分CAE软件份额,但全球来看这种情况似乎正在改变。一方面是新兴势力的不断涌现。如瑞典的COMSOL本来主打高校市场也开始逐渐以多物理场的技术优势进军传统CAE市场等;另一方面,行业软件正在取代传统通用CAE,比如近10年岩土行业内ITASCA系列产品基本完成了对通用CAE软件ABAQUS的替换。因此,相对CAD领域的一成不变,CAE的变化反而给了我们潜在机会。但我们也要清醒认识到,由于CAE的行业化属性越来越重,其过度分化的生态导致用户更难聚集,产业化道路异常艰巨,从头开发造轮子几乎是不现实的。其实,在CAE领域开源软件或多或少起到了关键作用,例如CAE的开山之作NASTRAN由于版权纷争,被NASA开源了(NASTRAN 95);中国最早的结构有限元软件SAP84是基于著名有限元代码SAP(Structural Analysis Program )发展来的,而SAP的非线性版本NONSAP直接发展成了今天的非线性有限元软件ADINA(ADINA84代码也是开源的)。在CAE领域,无论是基础框架还是应用软件,都可以找到相应的开源软件。国内外也有许多公司是直接封装了开源软件进行技术服务。通过复用开源代码和参与开源生态建设,是可以实现CAE自主可控生态重建的。

三、工业软件开源托管平台建设现存问题

虽然工业软件体系里存在着大量的开源代码可以方便我们使用,但是有以下问题不得不去面对。

(一)开源代码使用受限。
虽然开源代码使用只要遵守响应的开源协议即可,不受美国商务部限制,但是开源代码的托管平台往往属于商业公司,商业公司运作同样会受到美国商务部的影响。如著名的GitHub平台隶属微软公司,因此GitHub能服务的范围需要受美国商务部指令确定。

(二)没有面向工业软件的行业性开源代码托管平台。
人们需要在不同的网站去找寻代码,除了GitHub/Gitee/Coding等通用代码仓库,大量的开源代码还存储在科学家的个人网站、行业协会的专属平台甚至学术期刊的附件里。

(三)代码下载受限严重。
由于“墙”的存在,国内用户从GitHub等境外网站下载十分困难,有时速度只有几十K甚至更低。

(四)开源代码的编译和部署较为困难。
往往一个开源代码的编译需要用到大量第三方代码,而不同的代码之间可能还存在版本冲突等问题,这在一定程度上阻碍了我国研发人员基于开源代码开发工业软件的热情。

(五)开源软件面临被闭源的风险。
开源代码及软件的使用权随时面临性质变更的风险,原有开源资源随时会因为各种原因变为闭源,无法继续支撑使用。

为解决以上问题,我们需要建设自己的工业软件开源托管平台,实现工业软件基础“零件”供应的可控。

四、工业软件开源托管平台建设思路

建设开源托管平台总体思路是:
第一步,完成开源仓库建设。
第二步,完成开源社区建设,负责开源项目的托管、运维等工作。
第三步,政府参与开源社区的建设运营。

(一)开源仓库建设维护

开源仓库建设是整个平台建设的首要任务,只有有了代码仓库,才能建设与维护工业软件开源代码生态,具体应从以下维度来讨论开源仓库建设事宜。

1.谁来建:由于国内外并没有类似于工业软件专项仓库建设先例,我们要做第一个吃螃蟹的人,必须找到一个相对成熟的解决方案。

2.怎么建:一方面代码仓库的建设有大量开源代码可供使用,另一方面工业软件的用户群相对小众即无需考虑高并发等使用场景,可以在不写一行代码的情况下完全使用开源代码实现DevOps的全流程搭建。

3.建多大:一般来讲代码都是文本文件组成,体量小,即使按照1GB一份代码规模建设,1000份代码也只需TB级存储空间。

4.何时建:初步估计对于基础功能模块的搭建,有前期积累的专业化公司可以在一个月内完成上线;定制化需求需要根据具体需求来讨论,也可以采取在基础功能上线后边用边建的敏捷开发模式实现。

(二)开源社区运营管理

相对于开源仓库的建设,开源社区如何管理运营才是成败关键。开源社区的运营主要包括以下几个部分:

1.成立稳定的全职或兼职开源社区运营团队。工业软件开源社区的运营是一个长期过程,并且还伴随着定期或不定期的平台升级,因此首要任务是建立一个稳定的运营团队负责维护。参考国外相关单位,运营团队可以是一个单位,也可以是其它方式,但应该建立一种高效的线上、线下沟通机制,能够及时解决开源仓库运行中的各类问题。

2.对开源托管平台进行分类管理。搜集和挑选典型国外工业软件代码,在平台上进行分类托管,吸引国内用户从我们的开源托管平台下载代码,并建立自动fork机制,及时跟踪国外开源代码版本更新,确保库存代码的时效性和版本完整性。

3.制定适用于国内开发者的工业软件开源协议。由于工业软件特殊性,我们不建议直接使用GPL、LGPL、BSD、Apache等开源协议,需要在充分遵守国内相关知识产权法的前提下,结合工业软件的使用场景,特别是需要注意到个别敏感性使用场景,提出具有中国特色的工业软件开源协议。

4.完善多种形式地宣传推广渠道。建立网站、论坛、微信/微博公众号,以开源比赛、技术论坛、黑客松(Hackathon,“编程马拉松”)等形式举办各类线上、线下活动,吸引国内外的同行参与工业软件开源托管平台的内容建设;提供开源基金支持,吸引国内优秀工业软件开发者将开源代码托管到工业软件开源平台。

5.培养开源工业软件人才。由于工业软件本身的多学科属性,可实行跨学科、跨专业甚至跨学校、跨机构的工业软件联合培养小组,并带头托管到开源工业软件平台,形成技术和商业逻辑的闭环。

6将开源代码与计算资源结合。发挥现代中心计算资源优势,将开源社区代码库与计算资源结合,实现开源代码在线发布,在线获取,在线使用,并且支持国内优秀工业软件开发者结合开源代码库,就近在算力中心平台托管应用服务,实现优秀工业经验与开源代码与计算资源的无缝结合,利于从开源社区到实际工程应用软件的落地与推广,并且吸引国内优秀工业软件开发商贡献工业知识,将工业软件开源社区的影响扩展到工业领域的实际应用中。

(四)政府如何参与运营

无论是开源软件仓库建设,还是开源社区的运营管理都需要经费的支持以及政府机构的高度参与。从国内外的经验来看,开源平台的运营很难仅通过市场化手段维持,国外一般会通过基金会的形式进行定向补贴,而国内的通用型开源社区一般会通过企业直接进行资金补助。目前,对于面向特定行业的开源社区如何发展运营,尚且没有一个成功且可参考的实例,需要我们探索开展。政府参与运营管理主要有以下几种方式:

1.组建公益性质的NGO组织。非政府组织是一个多源的群体,独立于政府体系之外具有一定公共职能,这样的组织本身就具有组织性、民间性、非营利性、自治性和志愿性的特点,更加便于管理和统筹。成立该类型组织辅助政府参与开源社区托管平台管理,可以更好地宣传推广平台,推动参与各类组织间合作项目,为项目提供特点产品和服务,还可以有效增加运营管理各方的监督监察作用,有力协调在不同的利益冲突角色之间的矛盾,促进相互沟通与理解。但是组建非政府组织就需要政府能够在资金、场地、人员、设施上给予一定支持,并能够在后期运营中定期进行补贴,维持组织的正常运行。

2.参考Apache、Mozilla基金会模式,成立工业软件开源基金会。 以Apache基金会为例,Apache软件基金会(ASF)的前身起源于一个从事服务器开发与维护的"Apache 组织",专门为运作开源软件项目Apache 的团体提供,有理事会、项目管理委员会等机构,基金会不会给项目人员发工资, 但是这些项目的参与人员有可能被其他的商业公司雇佣专职做Apache项目的开发。我们也可以借鉴此类基金会的模式,成立工业软件开源基金会,组织相关企事业单位参与基金会项目,协助政府运营开源软件托管平台,从而达到技术持续更新、服务永续不断的长久运营目标。

3.构建开源工业软件创新生态。开源仓库是依托于算力中心、高校和专业公司建设,同样,建成后依然可以由多方共同开展运营管理,并连同政府机构共同组建开源工业软件创新联盟,各成员单位不同维度开展开源工业软件生态建设。可通过算力中心聚集领军型高科技企业和人才,通过高校培养开源工业软件开发和测试专业人员,并由专业化公司对高精尖人才进行实践训练,实现开源工业软件相关人才选、育、用、留等方面的全链条培育工作,保证研发人员做到梯队建设,确保工业软件托管平台健康可持续发展。

五、结语

开源社区为工业软件提供了从基础工具到行业应用的一系列源代码,中国的工业软件想要迎头追赶,必须要站在巨人的肩膀上,利用好开源代码或国产工业软件进行弯道超车。我们提出建设工业软件开源社区和开源代码托管平台,吸引国内外相关领域的行业应用专家、物理学家、数学家、工业软件开发人员和用户参与工业软件开源生态建设,直接或间接地协助解决国产工业软件“卡脖子”问题。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容