技术白皮书
概要 Abstract
HAP 产品的设计和研发主要为了解决企业数字化建设中的明显痛点。通过聚焦企业中后台应用的复杂度特征,抽象出高颗粒度的数据结构,用户角色, 权限,工作流等定义能力,让业务开发者和专业用户均可灵活运用,实现各种企业应用。
HAP 是基于容器技术的现代企业软件产品,它的公共云版本运行在mingdao.com上,容器版本则可通过Docker运行在客户自己的计算设施上。
本产品的核心价值包括:
零代码构建企业应用,把软件构建的灵活度彻底交给用户
Build enterprise apps without coding, Releash the user power by providing utter flexibity.
告别传统的DevOps技术流程,让用户聚焦业务
Get rid of DevOps process, Enable business engineering
大幅提高数字化应用的交付效率
Speed up application implementation dramatically
用一体化应用平台来实现数据贯通
Make dataset unified by integrated application platform
提供普遍一致的开发接口
Provide common open platform for all applications created
符合直觉的交互设计,让复杂配置随心流动
Intuitive and fluid interactive design
全面使用前沿的云原生技术栈,确保性能和可扩展
Fully implemented with cloud-native technology stack
1)客户价值
本产品主要为了解决企业数字化建设中若干重要的痛点问题。每一项价值都对应着企业IT用户多年来试图解决的问题。零代码/低代码应用平台综合了云计算、大数据和应用开发部署环境领域的成熟技术,是企业数字化转型工作中的主体解决方案。
(1)极致的灵活度,极快的应用实现
各类围绕业务管理流程的信息化系统建设。这些需求通常都很难通过现成的软件产品来满足,不得不依赖繁冗的定制开发来满足。而定制开发系统又必然涉及复杂的需求沟通、原型确认和高成本的开发、测试、部署和改进过程。APaaS 通过范式化和颗粒度极高的可配置性,使得整个过程通过零代码或低代码方式实现,替代昂贵的定制开发,大幅降低需求沟通和开发部署的成本。不仅首次实现是快速和灵活的,当系统随着业务变更需要进行调整时,APaaS 依然能够提供便捷。
(2)消除企业数据孤岛现象
大中型企业通常存在大量的应用数据孤岛。有的来自使用不同技术栈开发的定制系统,有的是来自不同牌号的应用软件产品。在实现数字化管理过程中,需要将这些数据孤岛连通起来,以实现跨应用访问数据,或者将应用数据沉淀到数据中台。借此,可以实现灵活度更高的数字化协作。
(3)无处不在的开放性设计
通过本产品构筑的企业应用均自动建立标准开放接口(REST),提供所有数据对象增删查改的完整接口。工作流的Webhook触发器和动作节点也可以实现无代码与其他应用API的对接。HAP 的前端界面可以便利地嵌入其他应用页面,HAP 的页面也可以被嵌入到其他应用中。
(4)简单易学的应用搭建过程,可普及至业务用户
绝大多数应用场景均可使用零代码方式构建,产品能力虽然复杂深入,但是交互界面简洁,且直觉驱动。对业务流程熟悉的非开发人员也可上手掌握。
(5)使用前沿的云原生技术栈,提供跨云部署能力
整个 HAP 基于微服务架构,并大量运用各种前沿的云原生技术栈和主流开源框架,包括Java,Node.js,MongoDB,MySQL,Redis,gRPC,ElasticSearch和Kafka等。通过容器技术和自动运维编排给用户提供高弹性,高可靠的应用运行环境。HAP 既运行在公共云上,也可极为高效地通过容器技术部署在任何客户自有的计算设施上。两者功能特性一致。
2)应用范畴
利用本产品,用户可以零代码构建各种企业中后台应用,概括来看,包括以下这些应用类型:
(1)基于关系数据结构的核心业务管理应用
不同行业围绕核心业务构筑的核心业务管理系统,例如流通业的进销存,制造业的生产执行、物料管理、设备管理,现代服务业的项目管理,教育行业的师资、学员、课程管理,设备工程业的采购、安装和服务管理和一般B2B行业的销售管理等等。这些场景的替代方案可以是购置专门的套装软件产品,也可以诉诸定制开发。HAP 这样的 APaaS 产品可以提供个性化、灵活度高和开发效率高的双重优势。
(2)利用移动应用采集数据的应用
制造、工程、零售等行业需要特定职能人员从一线采集数据的应用场景。
(3)利用API接口写入数据并构筑管理看板的应用
从多个异构系统抽取数据,沉淀到统一的数据中台,并结合本产品的自定义仪表盘功能构筑管理驾驶舱的应用需求。这个应用场景用另外一种方式替代了BI+ETL的方案。
(4)部门级解决特定业务环节需求的小应用
因为零代码系统带来的易用性和免除代码开发的特点,用户企业可以由业务部门的非开发人员直接搭建或者主导一些简单的 小应用。在统一的应用管理能力下,同时也能防范影子IT问题。
(5)为实现流程自动化而构建的应用
基于本产品的自动化工作流,可以打通过去需要人工协调的断续工作流程,例如订单、交付和发票的自动衔接;基于时间触发的检查单生成、设备维保提醒、合同到期提醒等;基于销售流程和营销流程之间的线索自动标签和线索培育等。
(6)为实现数据流转、填报和审批过程而构筑的流程应用
在复杂的数据协同中,构筑基于表单数据,审批和填写节点的人工控制工作流应用。
我们列举了企业应用领域比较常见的30多个门类,并分别评估了 APaaS 产品的替代能力。
名称 | 全称 | 中文表达 | 释义 | APaaS替代度 |
---|---|---|---|---|
ABM | Account Based Marketing | 客户基准营销 | ABM是现代营销策略中比较细分的一种,相关的软件产品也是MAS的一个分支。它改变了传统的创建内容和营销活动,然后根据不同渠道分发的传统方式,而是基于每个客户产生高度个性化内容,它更追求每一次客户沟通的质量,而不是数量,因此常常用于B2B,奢侈品,航空,高端酒店,保险等行业。 | 6 |
APS | Advanced Planning and Scheduling | 高级计划和排程系统 | APS特指为生产制造过程建立计划排期的应用软件,它要解决生产物料和设备资源的最优使用问题,目标在于最大化产 能利用。 | 6 |
ATS | Application Tracking System | 招聘跟踪系统 | 管理企业招聘全过程的应用软件。它的主要价值是集成外部招聘网站的简历投递,内推和其他简历库资源,并管理候选人从投递简历到录用入职的全部流程。大多数ATS系统都带有帮助企业建立自己的人才库的能力。 | 5 |
Accounting | Accounting Software | 财务软件 | 狭义的财务软件是指通过复式记账法记录财务凭证,形成财务总账,并提供财务指标分析。完整的财务套件还包括采购和库存跟踪,发票处理,应收和应付管理等模块。完整意义上的ERP套件应该包括财务管理部分。 | 8 |
BI | Business Intelligence | 商业智能 | BI是企业软件中一个重要的分类,它负责从各种业务数据源中抽取数据,并建立分析型数据库,通过可视化能力给管理决策者提供商业分析。全栈型的BI套件包括数据仓库,ETL(数据提取、转换和加载)模块,OLAP查询器和可视化表达层。BI经常通过数据库和API与其他企业应用集成。 | 5 |
BPM | Business Process Management | 商业流程管理 | BPM是管理和驱动企业各种流程活动的抽象工具合集,它能够设计、运行和分析跨越职能的各种业务流程。在实际运用中,BPM主要用于满足企业审批控制和业务自动化的需求。 大多数BPM软件都遵循BPMN规范设计,允许用可视化方式创建工作流,监控工作流事务运行,并提供工作流程运行过程中必须的用户交互界面。新兴的低代码开发平台包含了与BPM交叉的功能。 | 9 |
CAD | Computer Aided Design | 计算机辅助设计 | 这是一个古老的软件门类,从PC时代一直延续至今。在企业软件门类中,主要是指为建筑工程、制造和娱乐媒体行业提供的设计套件。成熟的CAD套件不仅提供设计工具,还包括构件库,材质库,设计文件管理等组件。CAD的主要用户是工程师,室内设计师,动画师、建筑师和工程人员。 | 1 |
CAM | Computer Aided Manufacturing | 计算机辅助制造 | CAD类的姊妹产品,通常从CAD应用中输入设计文件,优化材料和设备参数,给数字机械设备提供最终的执行指令。通常用于使用数控机床设备的加工制造业。有的CAD厂商也有联合的CAM产品。CAM也被成为CAE(Computer Aided Engineering)。 | 1 |
CEM | Customer Experience Management | 客户体验管理 | CEM是一个新兴的企业软件品类。它包括一般意义上的客户服务系统,但更强调围绕客户全生命周期和全渠道的触点。因此它的产品能力包括个性化提供顾客门户,便利和一致的客服支持系统,客户在不同渠道购买和使用产品的数字化体验,目标在于衡量和提升在不同阶段的顾客满意度。 | 5 |
CMS | Content Management System | 内容管理系统 | 内容管理系统主要服务于企业网站内容的管理和部署,常规的企业CMS包括管理新闻,网页,博客和电商平台,企业用户无需编写代码可以直接创建和编辑在线内容并完成发布。国内网络环境中比较重视微信生态下的小程序和公众号管理,相关产品在广义上也属于CMS的范畴。 | 3 |
CRM | Customer Relationship Management | 客户关系管理 | 在企业软件中一个非常重要的门类,负责管理获客和销售的业务环节。广义的CRM包括销售自动化,营销自动化和客服自动化三个领域,狭义的CRM主要是指从线索获取到客户转化完成的销售漏斗环节。CRM产品众多,是企业软件市场的重要参与者,因此很多CRM产品都会或多或少延伸到销售以外的一些业务环节。标准意义上的CRM需要管理线索,商机,客户,联系人,产品,订单,价目表,合同等基本业务对象。 | 8 |
CS | Customer Support | 客户支持系统 | 也被称为工单管理系统或HelpDesk Software,主要服务于企业的客户服务部门,提供跨渠道的客服平台能力,管理客服工单的全生命周期。因为电话支持的专业性,也有专门服务于呼叫中心的平台软件,他们也属于这个品类的分支。在完整的CRM套件中,通常包含客服模块。这个分类也和CEM(客户体验管理)交叉。 | 7 |
DMP | Data Management Platform | 广告数据管理平台 | 虽然这是一个看似通用的软件门类,但它主要指的为在线广告投放进行的受众数据管理。DMP可以搜集和管理来自广告主,广告公司和发布媒体提供的有关顾客、广告受众和营销活动的相关数据,从而为广告主提供细致的在线广告活动分析和计划工具。 | 0 |
DMS | Document Management System | 文档管理系统 | 文档管理系统如同品类名称就是用来管理企业内部需要共享的文档的应用,但它不止于基础的文件存储,还包括文档的影像扫描,文字识别,版本控制,Meta数据管理,格式转换,协作编辑,权限控制,模版管理,搜索,电子签名等一系列增强特性。所以适用于对文件档案管理有特殊或者密集要求的行业客户。 | 4 |
ERP | Enterprise Resource Planning | 企业资源计划 | ERP是面向制造和分销型企业的核心应用,覆盖了这类企业几乎全部的业务流程,管理客户,销售,采购,仓储和财务等关键业务环节。因为它的全面性特征,所有也有很多企业用ERP代指所有综合业务系统。即使非制造和贸易行业,也用ERP定义核心业务系统,因此在市场实践中,和CRM产品的边界常常存在模糊地带。 | 9 |
HRM | Human Resource Management | 人事应用套件 | 管理企业人力资源相关事务的综合套件,通常包括人事档案,异动,薪酬,福利,绩效,测评,培训,考勤等多个细分 环节。通常用于承载企业组织架构信息,为其他应用软件输出人员和部门架构主数据。 | 7 |
LCAP | Low Code Application Platform | 低代码应用平台 | LCAP,也称为LCDP(低代码应用开发平台),基于模型驱动的应用实现模式。它通过深化的可视化配置界面完成各个应用要素的定义,包括数据模型,视图,规则和工作流等。适合用来高效率实现关系数据库类型的企业中后台应用。也有一些低代码产品提供了前端页面的自定义能力,所以也可以用于一部分前台型应用。LCAP和云计算时代出现的 APaaS 品类逐步交融,成为一个统一的品类。 | 10 |
LIMS | Laboratory Information Management System | 实验室信息管理系统 | 主要服务于研发、医疗服务和生产型组织的实验室,为他们提供实验设备,材料,样本,检测结果以及相关工作流程的管理。用户需要通过这个专业品类软件提供合规的数据记录和报告,分析实验结果。 | 9 |
LMS | Learning Management System | 学习管理系统 | 在企业场景中,LMS主要用于对员工,顾客和合作伙伴的培训和考试。它应该能够在线创建和管理教案材料,管理学员的学习过程,并组织以小组或班级为单位的学习社群。在教育行业中,LMS是核心的业务系统,实现教务工作的无纸化和支持在线学习过程。 | 5 |
MAS | Marketing Automation Software | 营销自动化 | 营销自动化是为企业重复性进行规模营销活动而提供的应用软件,核心聚焦在顾客、线索和营销活动这三个业务对象上。营销自动化套件能够全面管理各种渠道的营销活动,比如邮件,短信,社交媒体,落地页等。MAS可以被理解为广义CRM的一部分,并和SFA的部分集成,为销售漏斗带来线索和商机。面向互联网企业的MAS还能够和用户产品高度集成,实时捕获用户行为,用于动态的用户分群。Email,短信营销等工具软件也属于这个门类。 | 5 |
MES | Manufacturing Execution System | 生产执行系统 | MES在制造业负责管理从生产原材料到成品制造完成的全过程。具体而言,它建立和跟踪制造工单,根据工艺路线决定制造程序,采集记录制造过程中的原料使用和工时,分析生产效率。MES通常需要和ERP/PLM应用集成。 | 8 |
OA | Office Automation | 办公自动化 | 这是国内企业软件的一个主流门类,包容性和综合性很强。它一般指的是企业内部沟通、文档、任务、流程等支撑性系统。也有复杂度高的OA产品提供更为完整的功能组合,覆盖内部人员档案、订单、合同、供应商等业务数据的管理。因为比较高的综合度,OA和知识管理、协同应用、流程管理、人事管理等专向应用均有交叉。 | 9 |
PDM | Product Data Management | 产品信息管理 | PDM, 也称PIM,综合管理有关产品的技术和营销信息。具有大量产品或者产品版本,组合的企业一般需要使用PDM来组织产品信息,在内部和渠道伙伴之间共享,保持产品信息更新和一致。 | 9 |
PLM | Product Lifecycle Management | 产品生命周期管理 | PLM帮助研发型组织管理产品开发过程中的所有方面,包括创新想法,试制,迭代和退役环节。PLM能够管理各种设计和工艺变更,特性与特性需求,图纸文档,质量指标和测试,BOM(物料),合规要求,供应链等。 | 9 |
PMS | Property Management System | 不动产管理软件 | PMS是租赁地产和酒店等行业的核心业务软件。它管理物业资产、租户、租约以及相关的各种业务活动。高级的PMS套件还包括动态管理房价的能力,实现收益最大化。除了通用的PMS以外,还有围绕各种具体商业物业形态的管理应用。 | 6 |
POS | Point of Sales | 售点收银系统 | POS是零售业终端使用的软硬件组合系统,负责完成收款和记录销售流水的工作。在新零售语境下,POS已经逐步被各种集成度更高的解决方案所替代。收银机也被移动支付终端所替代。在相关领域内,还有各种自助销售硬件承担了过去POS和营业员的共同功能。 | 1 |
PSA | Project Service Automation | 项目服务自动化 | PSA也被称为Professional Service Automation,是因为大多数专业服务都是以项目形式提供的。PSA套件避免了专业服务团队分散使用各种工具管理客户,时间,成本,合同,收款,资料等,而采用一个统一的平台,建立销售、服务和财务流程之间的自动化衔接。PSA分类和通用的项目管理应用之间没有原则性差别。 | 8 |
SCM | Supply Chain Management | 供应链管理 | SCM管理制造企业的原材料计划,采购,物流,入库,集成生产过程管理之后,还要继续管理成品向顾客的分发。和ERP套件相比,SCM对供应商采购环节管理得更细致,通常由供应链计划,采购,订单管理,后勤运输,仓储管理和需求管理等模块组成。因为行业差异,SCM产品市场比较零散,很少有能够适合所有行业的单一解决方案。 | 7 |
SCRM | Social CRM | 社交CRM | SCRM是社交媒体时代对企业软件形态产生影响的一个典型门类。可以理解为一个围绕销售和营销管理的业务应用,且集成了通过社交媒体与顾客产生互动的能力。在西方国家,社交媒体主要是指Facebook, Twitter, Instagram等,在中国市场,则主要指微信。所以,围绕微信和企业微信建立的销售与营销应用都可以被划分到这个门类。 | 3 |
TMS | Transportation Management System | 运输管理系统 | TMS在企业供应链管理的物流环节提供精细度更高的管理能力,它包含对管理运费,运输合约,运输排程 ,货物跟踪,路径规划和优化等。TMS一般用于物流密度很高的货运行业和大型制造业。 | 6 |
WMS | Warehouse Management System | 仓储管理系统 | WMS是一般库存管理的高阶应用,它主要服务于大型仓储、零售和物流行业,满足他们在减少人员差错和操作无纸化方面的深度需求。完整的WMS系统包含很多高级特性,包括集成物联网设备,完成识别,捡货,标签等工作,自动补货,自动任务分派,计数系统,退货管理,以及与电商平台,ERP软件等的集成能力。 | 6 |
客观来说,也有很多企业应用并不适合使用零代码/低代码应用平台来实现。他们主要包括:
(1) 面向消费者用户的前台型应用
(2) CAD/CAM等专业领域工具
(3) 一些已经有高性价比标准化产品覆盖的领域,比如微型企业的进销存
(4) 有专门使用场景的垂直应用,带有特殊视图和特殊算法,比如餐饮业的收银管理和酒店行业的动态房价预测等。
3)实现原理
使用零代码和低代码构建企业中后台业务应用的原理在于大多数此类应用都建立在数据管理(CRUD)和工作流这两个核心目标之上。为了构建一个典型的企业应用,在设计开发过程中有大量雷同的环节。应用平台即服务(APaaS)门类就是这样这些雷同的环节抽象出来,通过应用化的方式来替代逐个项目的前后端设计及代码开发过程。
为了实现一个友好和高效的 APaaS 产品,不同厂商会采用 略微不同的具体实现机制。HAP 选择的方案大体可以描述为:通过表单可视化构建数据模型,在模型上建立针对不同角色的数据视图,通过触发器+动作模式的工作流实现自定义数据动作和自动化流程,并内置数据可视化能力。 它整体上由以下几个层次构成:
(1)数据结构。 通过表单可视化建立数据表模型(Data Model),通过控件直接对应字段类型。并通过关联表、公式、关联表字段和汇总实现必要的关系型数据结构。签名、地理位置、成员、部门、自动编号等则是为了简化用户支持特定业务场景。
(2)视图。 通过不同类型的视图来定义呈现数据的形式,包括表格、看板和层级等。每个视图均可定义灵活的数据筛选条件、字段显隐规则和排序逻辑。
(3)统计。 在工作表上直接定义统计图表,支持常见的条形图、折线图、饼图和指标值等。制作统计图表可以为个人所用,也可以发布为应用共享的图表。
(4)自定义页面。 除了工作表视图外,还支持用户创建一个空白页面,在页面中可视化配置不同类型的组件。比较常见的用例是通过统计图表组件来实现管理仪表台。
(5)用户、角色和权限。 允许应用自定义角色,并通过简洁或完整的方式来定义每个角色的应用数据访问、编辑、删除和新增的权限。这个权限定义可以精细到字段级。通过在角色上增加用户或部门实现灵活的应用分发,完全可视化地实现RBAC(Role-based access control)。
(6)工作流。 通过一个简洁的触发器和动作节点序列支持各种灵活的自动化工作流,可以理解为在企业应用中的IFTTT(If this, then that)。数据变更、动态时间和Webhook方式均可触发工作流,在 动作节点中,可以实现数据查询,定位,更新,新增,删除动作,也可以执行审批、填写等人工控制流程,发送个性化通知,以及推送数据到外部API。工作流的动作序列也可以通过依附于特定视图的自定义按钮手工触发。
通过以上六个层次,用户可以几乎零代码构建任何基于数据管理和工作流的企业应用。
与可视化IDE和快速开发工具(RAD)的区别
本产品和很多可视化IDE产品,以及传统的快速开发工具经常被共称为低代码平台。在实现应用的效率提升方面,所有产品都有共同的目标。但在实现的技术路径选择方面,HAP 和 IDE 模式的低代码工具有本质不同。
(1)HAP 作为 APaaS 门类产品,全面使用云计算领域的前沿技术栈,不再为单体应用生成源代码,也不再有代码编译过程,应用使用模型方式直接在平台上运行。版本控制和调试等开发需求也通过应用配置界面来完成。
(2)HAP 的大多数能力都是基于零代码的,只在工作流代码块节点和对接开发工作中涉及低代码运用。所以,HAP 能够面向业务开发者,而不依赖用户的软件编程能力。
(3)具备应用交换能力。任何租户搭建的应用均可输出模型。模型可以再次分发或者导入到其他租户环境中。
(4)和开发工具相比,HAP 具备突出的易学易用性。业务开发者可以通过快速学习掌握一些简单的单环节应用,专业开发者和信息架构人员可以利用本产品的高颗粒度定义能力实现复杂应用 。
4)实现复杂应用
在深入研究本产品之前,用户可能会对零代码产品的应用实现能力存在误解,认为零代码 APaaS 只适合构筑一些简单的应用,而无法用于解决核心业务问题。
实际情况并非如此。
企业软件的复杂性可能是有以下这些企业应用特征造成:
1)数据对象繁多,数据属性繁杂,数据关联层次多。
2)应用涉及角色众多,且每个角色均有差异化的权限配置要求,权限配置和数据属性和组织架构等多个要素相关。
3)数据管理本身不能满足流程的需要,涉及数据流转、审批、填报等较长的业务环节。
4)数据统计分析的维度众多,报表需要按应用角色大量提供。
5)涉及到非常特殊和高难度的算法
6)涉及和外部应用的集成
所谓复杂项目,不管是军工企业的档案管理系统,还是面向中小企业的生产执行系统,本质上都是有这些复杂性组成的。
APaaS如何搞定复杂性
当提炼出复杂性的实质来以后,就可以各个击破,通过拆解成相对简单的环节来对抗复杂性。这个思维模式是所有复杂工业解决问题的基本手段。 复杂得惊人的航空发动机如果拆解到最末梢的子系统,都有它的简洁性存在。
针对以上提炼的复杂性独立特征,可以找到 APaaS 产品的对应能力模块,然后看这些能力模 块需要提供什么样的自定义能力,来实现高颗粒度的配置。
数据表:
1)数据表需要支持各种数据类型,配置各种恰当的呈现控件。
2)可以自由增加数据对象
3)数据对象之间可以建立所有模式的关联关系(一对一,一对多,本表关联)
视图:
1)能够根据业务流程需要切割数据表的不同维度给不同用户角色。
2)视图切割要支持灵活的行筛选,列过滤,排序,数据表单上的字段显隐配置。
3)能够在不同视图上配置不同的自定义按钮
角色权限
1)能够为应用分配各种自定义角色
2)能够为不同角色配置高颗粒度的权限细节,包括表,视图的增删查改权限,甚至要精确到字段级
3)能够结合用户的组织汇报关系来定义数据权限范畴
4)能够为不同角色分发功能页面和自定义按钮
工作流
1)能够在任意数据变更条件、时间条件或手工触发某个工作流。
2)工作流要支持自由的数据查询、定位、新增、变更和删除操作。
3)工作流要有操纵批量数据和数组的能力。
4)工作流要能够耦合人工参与的审批和填报工作。
5)工作流要支持高级脚本语言来实现特殊算法。
6)工作流要能够操作任意数据类型(文本,数值,多选,文件等)
报表
1)围绕任意数据对象和关联数据对象实现报表可视化
2)报表类型多样化
3)支持不同报表组合后分发给不同用户角色
开放接口
1)任意数据对象都提供增删查改接口
2)在工作流执行中能够调用其他应用的接口
3)提供数据接口给外部应用,并能够通过此接口启动工作流,外部数据 也能传递给工作流
这些要素能力确保了解决每一个颗粒问题的灵活度,有了这些灵活度,再复杂的系统都能够组装起来。再加上合理的应用架构过程,在给客户提供复杂应用的同时,依然能够保持有序性。
而且,因为自由的角色分发能力,复杂应用提供给具体角色的时候,每个个体并不会被复杂困扰。比如我们完全可以给生产执行系统中的工人角色分发单一的视图,也许他们的个人界面上只有几个按钮。这是传统企业软件开发极难做到的事情。
一些复杂系统的案例
(1)生产执行系统
生产执行系统是一款能够帮助制造类企业进行生产制造管理的应用系统,能够提升生产流程管理效率,加速制造型企业数字化转型。生产管理系统在系统配置上具有高度灵活性,用户可以基于系统的原始框架,根据自身业务特点自由配置业务数据和流程。为生产业务量身定制管理系统。
- 与ERP系统对接,获取物料采购到货信息和库存信息
(2)ERP系统
ERP系统集成了企业的采购管理、销售管理、库存管理和账单管理。是企业内部一项全流程管理业务,涉及到了销售、采购、财务、仓库等多个部门。对于这样一套系统,传统的定制开发可能需要2-3个月的开发时间,而利用HAP我们可以实现2周左右完成搭建和交付,并且满足用户的个性化需求。
- 采购订单合并,通过流程配置,可以实现同一供应商生成一笔采购订单;
- 销售或采购退货,同步库存;
- 不同类别物料配置不同的入库出库规则;
- 实现库存调拨,先进先出;
- 账务的特殊处理,如红冲等;
- 实时生成多维度的统计报表;
ERP系统功能图
驾驶舱 | 采购管理 | 销售管理 | 库存管理 | 账单管理 |
---|---|---|---|---|
数据总览 | 供应商库 | 客户/联系人 | 仓库 | 销项发票 |
销售看板 | 供应商报价 | 报价单 | 产品库存 | 采购发票 |
采购看板 | 采购申请 | 销售订单 | 采购入库 | 应收 |
库存看板 | 采购订单 | 销售发票 | 销售出库 | 应付 |
财务看板 | 采购退货 | 销售退货 | 库存调拨 | 收付款流水 |
采购到货 | 退货出入 |
(3)多部门层级的角色权限配置
对于业务流程繁琐的企业,往往涉及到的部门多层级多,角色权限也相对复杂,不同的角色对数据的增、删、改、查有不同的需求。对于复杂的权限需求,通常我们会用到RBAC模型(Role-Based Access Control)进行分析、设计。在 HAP 的应用中,我们可以几分钟内完成一个角色权限的配置,角色再多也不怕。通过视图分发,可以灵活配置每个角色可以看到的表单、记录,甚至是字段。
- 不同角色可以查看或操作不同的表单、记录、字段;
- 不同角色对同一张表、记录、字段有不同的操作权限;
- 角色的继承关系,上级可以查看或操作下属的数据;
(4)数据多方集成
单一的业务系统很难满足企业内部多方位的信息化需求。企业内部往往已存在多套信息化软件,新的业务系统需要与原有系统进行集成,或需要建立信息中台。主要情形如下:
- 某些功能或需求⽆法在 HAP 上实现(例如物流状态信息、空间建模等);
- 原有系统有⼤量业务数据留存,数据迁移不⽅便;
- 使⽤的各个系统数据⽆法打通,需要数据中台作为桥梁;
- 其他各种原因使得公司不能放弃使⽤原有系统。
HAP 每一个应用都有标准的 API 文档,通过开放的 API 接口或是 Webhook 可以实现和其他业务系统的数据往来,表单、记录、字段均都有对应的ID,调取灵活便捷。
目前比较有代表性的对接包括:亚马逊订单对接、金蝶K3对接、金蝶云星空、物联网平台对接、可视化大屏对接、帆软T100系统对接、企业微信&钉钉对接等等。只要是有标准化的开放接口,都可以通过 HAP 实现对接,满足企业数据集成的需求。同时,HAP 也可以作为数据中台,助力企业统一管理数据资产,激活数据价值,释放企业生产力。
数据集成
随着低代码/零代码特征的 APaaS 产品开始被越来越多的企业采纳,利用 APaaS 产品天然的开放性与其他现有业务系统的集成需求也日益增多。以下提供了 APaaS 产品与其他应用集成的几种基本模式,供有相 关需求的用户参考。
在介绍时,我们通过一个具体实例来说明不同的集成方法:
案例场景:某电商公司使用了进销存,APaaS(假设为 HAP)和财务软件三套系统,公司的退货流程如下,客户申请退货 => 客服审核 => 仓库确认到货 => 财务退款 => 退货完成,每一次完整的退货流程都需要数据在三个系统中相互流转。
1 消息集成模式(推荐)
主要通过相互调用 API 来完成数据之间的传输及同步,可分为三种方式(或阶段)
一对一同步(请求/响应):消息通过调用 API 请求另一个应用并等待响应结果
客户申请退货,电商平台调用 APaaS 平台 API 通知客服走审批流程,审批通过后调用电商平台 API 更改退货申请状态,每次请求失败则进行重试。当请求量比较大且业务逻辑复杂时,会存在等待时间过长超时或另一侧计算资源超负荷报错,这时候就需要采用下面另一种方式。
一对一异步(队列/回调):API接收到请求放入队列,执行完回调通知结果
客服收到退货商品检查并同意退货申请,调用库存应用API通知库存入库,因为商品入库逻辑比较复杂(更改原始出库单,处理产品库存),可以把操作放入消息队列逐步消费,等仓库退货逻辑完成后,回调另外应用的API通知结果。很多时候同一个数据变化要通知多个应用且通知地址经常有变化,就需要频繁调整代码逻辑,这时候可以采用发布/订阅的方式。
一对多异步(发布/订阅):提供事件订阅,数据变化后向所有订阅地址发送消息通知
APaaS 平台上退货商品确认到货需要通知财务系统退款,要通知仓库系统退货入库,还要通知电商平台更改退货状态,不同的客户需求可能不同,此时,APaaS 可以提供事件订阅,当数据触发变动,根据订阅清单通知其他应用,并提供webhook回调地址,其他应用逻辑执行完毕后再回调
消息集成的方式可以最大程度上实现数据实时同步,但需要应用端都有完整的API,还需要注意推送失败的重试机制以及后续重试造成的覆盖先后顺序等问题。
在 HAP(APaaS)这一侧通过工作流来实现集成:
2 应用程序集成
专门开发集成工具:
单独研发一个应用程序 ,取得其他应用系统的授权,根据配置定时(全量/增量)拉取数据,再根据条件和映射规则推送到其他应用系统。使用集成工具同步数据,应用之间不需要相互调用 ,可降低耦合度,也能根据数据体量和应用形态灵活选择技术方案。因为不是应用主动推送,所以在实时性上面稍差。
机器人流程自动化(Robotic process automation)简称 RPA:
是以软件机器人及人工智能(AI)为基础的业务过程自动化科技。它通过模仿最终用户在电脑的手动操作方式,提供了另一种方式来使最终用户手动操作流程自动化。
3 OLAP数据 源连接
配置数据源连接地址,根据开放权限和筛选条件钻取需要的数据,通常作为BI报表分析的一种方式,钻取到的数据经过加工/聚合后可根据需要再次单独存储。
4 文件集成(导出导入)
根据需要手动从应用系统导出待处理的数据,再导入另一套应用系统,处理完再导回本应用系统。HAP 系统提供比较精细的 Excel 文件导入交互,能够让用户在导入过程中建立字段映射,自动去重,甚至包括在导入过程中建立数据关联。
5)功能特性结构
HAP 提供三大功能模块:零代码应用、协作套件和账户管理。
(1)零代码应用搭建。 是 HAP APaaS 能力展现的模块。通过提供的基础组件来搭建一个企业应用。一个应用,需要使用以下封装好的能力组件。
- 工作表:建立应用的数据结构
- 视图:配置数据面向用户角色的呈现
- 统计:基于数据的分析
- 自定义页面:装载统计图表等组件,并分发给特定角色
- 用户角色和权限:配置角色的权限细节
- 工作流:建立触发器和动作节点联动的业务自动化
(2)协作套件。 主要满足企业日常的分享沟通、任务协作 、日程安排、文件管理的需求,并能够和应用平台能力实现贯通。
- 动态
- 任务
- 日程
- 文件
(3)账户管理。 分为个人账户管理和企业账户管理
-
个人账户的功能
- 个人资料修改
- 手机、邮箱绑定
- 密码修改
- 语言设置
- 信息隐私设置
-
企业账户功能
- 人员/部门管理
- 汇报关系设置
- 离职交接
- 群发通告
- 数据导出
- 组织信息编辑
- 群组管理
- 使用统计
- 角色权限管理
- 应用管理
- 工作流管理
6)技术架构
系统整体基于微服务架构。前端(Web/H5)主要基于 React 框架,后端开发语言主要使用 Java、C#、Node.js。前端通过 http 方式与 API 建立连接,API 与微服务、微服务与微服务之间主要基于 RPC 协议(基于 gRPC)来实现接口调用,数据存储涉及的组件包括:MySQL
、MongoDB
、Redis
、Kafka
、ZooKeeper
、Elasticsearch
、File
。
MySQL
:主要存储用户、组织等系统基础数据;MongoDB
:主要是用于存储业务数据(如:应用、工作表、工作流等);Redis
:缓存支持,提升系统性能;Kafka&ZooKeeper
: 核心使用场景包括工作表汇总、工作表数据收集、工作流事件 等;Elasticsearch
:目前主要是支撑跨应用的工作表数据、协作套件数据的全局搜索,同时在应用使用统计功能上也是基于 Elasticsearch 提供周期性的统计维度查看;File
:默认采用的是开源文件存储系统 MinIO ,并在此基础上做了一层适配。同时也支持配置符合 S3 标准的文件对象服务(如:阿里云 OSS、腾讯云 COS、华为云 OBS、七牛云等);Flink
:用于实现数据集成的实时同步与ETL能力;
通过系统具有的 APaaS 能力灵活快速搭建出满足需求的应用,同时应用数据支持与外部系统数据进行双向传输交互,方便与现有系统进行整合。系统本身可完全基于内网环境使用,这也为数据安全提供了更高的保障。
在私有部署的单机部署模式下,存储组件均已内置于镜像内,使用者并不需要另外安装,产生的数据通过挂载的方式存储于服务器指定目录;在集群部署模式下,应用服务与存储组件独立部署,最终将各存储组件的连接地址通过环境变量的方式注入应用容器内,同时各实例均可支持横向扩展。
单机部署模式
优势:部署简单快速,服务器资源和运维成本低
劣势:存在单点故障,但内部自带健康检查,一般有自恢复能力
推荐服务器配置如下:
并发数 | 配置 | 操作系统 |
---|---|---|
100以内 | 8C/32G/40G系统盘/100G数据盘 | Debian 10+ |
200以内 | 16C/48G/40G系统盘/100G数据盘 | Debian 10+ |
300以内 | 24C/64G/40G系统盘/100G数据盘 | Debian 10+ |
300以上 | 推荐使用集群模式部署 | - |
如果文件存储相关功能使用较多,还需要根据实际情况扩充,带宽建议 30M+
集群部署模式
精简版(并发300+)
优势:节省服务器资源和运维成本,微服务集群高可用,部署组件相对独立,相互影响度较低。适合于资源有限的环境或者小规模的应用场景
劣势:有一定的组件耦合,存储相关服务可能存在单点故障
推荐服务器配置如下:
用途 | 配置 | 操作系统 | 部署服务 | 数量 |
---|---|---|---|---|
负载与转发 | 4C/8G/100G系统盘/200G数据盘 | Debian 10+ | Nginx | 1 |
微服务应用 | 16C/48G/100G系统盘/200G数据盘 | Debian 10+ | 微服务 | 2 |
中间件 | 8C/32G/100G系统盘/500G数据盘 | Debian 10+ | Kafka、Elasticsearch、文件对象存储 | 1 |
数据存储 | 8C/32G/100G系统盘/300G数据盘(SSD) | Debian 10+ | MySQL、MongoDB、Redis | 1 |
数据集成(可选) | 8C/32G/100G系统盘/200G数据盘 | Debian 10+ | 数据集成服务 | 1 |
标准版(并发600+)
优势:具备基本的高可用能力,如节点冗余和自动容错用度更高,且能较好地利用服务器资源。可以满足大多应用场景
劣势:不同的存储组件之间存在干扰和资源竞争,需注意资源的分配和管理
推荐服务器配置如下:
用途 | 配置 | 操作系统 | 部署服务 | 数量 |
---|---|---|---|---|
负载与转发 | 4C/8G/100G系统盘/200G数据盘 | Debian 10+ | Nginx | 2 |
微服务应用 | 16C/48G/100G系统盘/200G数据盘 | Debian 10+ | 微服务 | 3 |
缓存 | 4C/16G/100G系统盘/200G数据盘 | Debian 10+ | Redis | 2 |
中间件 | 8C/32G/100G系统盘/500G数据盘 | Debian 10+ | Kafka、Elasticsearch、文件对象存储 | 4 |
数据库 | 8C/32G/100G系统盘/300G数据盘(SSD) | Debian 10+ | MySQL、MongoDB | 3 |
数据集成(可选) | 8C/32G/100G系统盘/200G数据盘 | Debian 10+ | 数据集成服务 | 2 |
专业版(并发1000+)
优势:高可用性的同时采用单一应用架构(每台服务器上只运行一个组件实例 ),以提高可靠性和性能,避免了不同组件之间的干扰和资源竞争,同时也可以方便地对每个组件进行独立的扩展和管理。
劣势:服务器资源和运维成本高
推荐服务器配置如下:
用途 | 配置 | 操作系统 | 部署服务 | 数量 |
---|---|---|---|---|
负载与转发 | 4C/8G/100G系统盘/200G数据盘 | Debian 10+ | Nginx | 2 |
微服务应用 | 32C/64G/100G系统盘/300G数据盘 | Debian 10+ | 微服务 | 3 |
缓存 | 16C/32G/100G系统盘/200G数据盘 | Debian 10+ | Redis | 2 |
消息队列 | 16C/32G/100G系统盘/500G数据盘 | Debian 10+ | Kafka | 3 |
全文检索 | 16C/32G/100G系统盘/500G数据盘 | Debian 10+ | Elasticsearch | 3 |
文件存储 | 16C/32G/100G系统盘/500G数据盘 | Debian 10+ | 文件对象存储 | 4 |
关系型数据库 | 16C/32G/100G系统 盘/500G数据盘(SSD) | Debian 10+ | MySQL | 2 |
非关系型数据库 | 32C/64G/100G系统盘/500G数据盘(SSD) | Debian 10+ | MongoDB | 3 |
数据集成(可选) | 16C/64G/100G系统盘/200G数据盘 | Debian 10+ | 数据集成服务 | 2 |
7)开源模块
本产品引入了很多主流的开源框架,包括开发语言与中间件。
(1).NET
.NET 是开放源代码通用开发平台,由 Microsoft 和 .NET 社区在 GitHub 上共同维护,具有跨平台 、开放源代码 、部署灵活等特点。本产品一部分微服务都是基于 .NET 开发的, 目前基于 .NET 6(LTS)版本。
(2)Java
Java 是一门面向对象编程语言,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java 作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。本产品主要使用了业界主流的 Spring Boot 框架,如工作流部分。
(3)Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动,非阻塞 I/O 模型而得 以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。如本产品的IM Web Socket 通信服务正式基于Node.js SocketIO 框架而构建。
(4)MongoDB
MongoDB 是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本产品 APaaS 核心模块涉及的数据存储均基于 MongoDB 实现,基于其灵活的数据结构,也为产品的快速迭代提供了极大的便利。
(5)MySQL
MySQL 是一个关系型数据库管理系统,属于 Oracle 旗下产品,是最流行的关系型数据库管理系统之一。MySQL 软件采用了双授权政策,分为社区版和商业版,由于 MySQL 其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,所以很多企业应用产品都选择 MySQL 作为数据存储。本产品涉及的用户、组织等结构化基础数据均采用 MySQL 存储。
(6)Redis
Redis 是一个开源的高性能的 Key-Value 数据库。它支持存储的 value 类型包括 string(字符串)、list(链表)、set(集合)、zset(有序集合)和 hash(哈希)。Redis 的操作都是原子性的,为了保证效率,数据都是缓存在内存中。同时 Redis 可周期性把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave (主从)同步。本产品在非常多功能上均采用了 Redis 提供数据缓存,如最基础的用户信息、组织信息,也包括应用信息、工作表信息、工作表行数据、工作流、应用角色权限等等,出于查询性能考虑,Redis 的运用基本无处不在。
(7)gRPC
gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,支持多种开发语言,基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。本产品大部分微服务都是基于 gRPC 实现,包括 C#、Java、Node.js 相关服务。
(8)Elasticsearch
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。根据 DB-Engines 的排名显示,Elasticsearch 是最受欢迎的企业搜索引擎。本产品的超级搜索功能并是基于 Elasticsearch 来实现的(包含跨应用的工作表数据、协作套件数据),目的是给用户提供更快的响应和更精准的匹配。同时在应用使用统计功能上也是基于 Elasticsearch 提供周期性的统计维度查看,充分了解应用的使用状态。
(9)Kafka
Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,是一个支持分布式、多分区、多副本、多订阅者,基于zookeeper协调的分布式消息系统。通过引入 Kafka,能促使服务之间的解耦,且能顶住高峰时间段的访问压力,不会因为突发的超负荷请求而完全崩溃。本产品的 APasS 部分一些功能在数据变更下,需要触发工作流的执行,这部分是实现主要就是基于 Kafka 的消息发布与订阅来实现,同时基于 Kafka 高吞吐量、多分区等特性,在配置合理的消费端数量情况下,达到事件有序执行和低延迟的效果。另外在本 产品智能搜索模块也采用了 Kafka 作为数据传输中间件。
(10)MinIO
MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几KB到最大5TB不等。本产品通过用户上传的文件以及一些静态资源文件会存放于此服务中。
(11)Flink
Apache Flink 是一个开源的大数据处理框架,专为实时流处理和批处理设计。它具有高吞吐量、低延迟、高可扩展性和强大的状态管理能力。Flink 支持分布式计算,能够在大规模集群上处理大量数据。Flink 采用了数据流编程模型,使得用户可以方便地构建高效的数据处理流水线。本产品的数据集成中的多数据源数据实时同步与同步过程中的 ETL 数据处理能力均建立在 Flink 之上。
8)技术要点
NOSQL数据库的选择
HAP 综合采纳了MongoDB, Redis和Elasticsearch等多个NOSQL数据技术栈。这样做的主要目的是发挥不同模态数据库引擎的专业化优势,在功能拓展性、性能和用户体验方面为用户带来更大的价值。虽然我们使用了复杂的技术栈,但是每项技术栈的选择都着眼于主流、开源、可运维和符合业界标准。并且用户不需要与原生技术栈打交道,应用的搭建和运行都是在零代码的应用环境中进行的。
业内首家推出容器化私有部署
国内首家公开的且可通过容器技术部署的零代码/低代码平台,降低运维 安装部署成本,支持单机版、集群版高可用等部署模式,也支持在Kubernetes下部署。这一能力确保了客户能够得到云原生的可伸缩性和高可用性。
前端开源
HAP 私有部署的前端代码完整开源(mingdao-openweb),允许用户fork并二次开发。
多平台部署 适配多种架构基础设施,包括X86 CPU架构与ARM64 CPU架构的Linux内核服务器,以及国产操作系统。内置快捷操作命令,包括停止、重启、升级、回滚、备份等便捷操作。
应用生命周期管理 支持应用导入、导出、备份、维护、回滚以及可更新升级,应用搭建人员可高效维护。
开放性设计 无处不在的开放性,构筑的企业应用均自动建立标准开放接口(REST),提供所有数据对象增删查改的完整接口并自动生成文档。工作流的Webhook触发器、动作节点、API集成也可以实现无代码与其他应用的对接。
超自动化 (Hyperautomation) 创新的自动化工作流,除了传统的审批流以外,支持表单事件、人员、定时、自定义按钮、接口触发等模式,支持在流程中完成数据增删查改,消息通知。
业务封装能力(Composability) 依据PBC(Packaged Business Capabilities)思想,创新的设计出了封装业务流程功能,它利用工作流编排的数据自动处理流程。它可以在整个组织内复用数据处理能力,接受约定的参数传入,通过工作流处理后传出结果参数,除了能调用内部的数据以外,还可以通过API与外部数据交互。
数据集成 支持以零代码方式配置的多类型数据库实时同步。HAP 支持如 MySQL、SQL Server、Oracle、PostgreSQL、MongoDB、IBM DB2、Kafka 等外部数据源作为数据源或数据目的地,建立同步管道,实现秒级延迟的 数据实时同步。
9)知识产权
随着 APaaS 品类的成熟度提高,用户在 APaaS 上构筑的应用复杂度和价值也在迅速提高,很多用户和服务商开始关注与 APaaS 应用相关的知识产权问题。这就像简单的哼唱曲调没有人要求法律保护,但是完整的音乐曲目就会有精细的知识产权安排。
和这个话题有关的知识产权法律集中在《著作权法》和《合同法》中。(2021 年开始,《合同法》废止,《民法典》生效。)
因为《著作权法》规定, 计算机软件、信息网络传播权的保护办法由国务院另行规定,因此本话题也和国务院颁布的《计算机软件保护条例》有关。
权利的形成和归属
权利的形成
《著作权法》所讲的“作品”包含
(七)工程设计图、产品设计图、地图、示意图等图形作品和模型作品;
(八)计算机软件;
因此,APaaS 构筑的应用,包含了设计和搭建者的知识劳动,毫无疑问创作者(自然人和法人)都享有著作权。著作权保护的应该是指用户在平台基础上构筑的应用部分,而不包含 HAP 平台本身。这就像用 Photoshop 创造的插画师,只享有插画本身的知识产权,而不享有 Photoshop 软件的 著作权,但是合法取得 Photoshop 软件产品的用户根据用户协议享受使用权。
具体而言,应用著作权的组成部分包括工作表数据结构,视图,用户角色和权限的安排,统计分析图表和工作流配置,以及它们的加总。
职务作品
根据著作权法第十六条的规定,在企业中,员工利用企业购买或租用的 APaaS 平台构筑的应用应该属于职务作品,创作人按规定享有署名权,其他著作权权利由法人和组织享有。但是著作权法允许合同约定的特殊情况,所以企业为完整保护相关知识产权,可以在劳动合同或者其他合同中与创作人建立其他约定。
委托创作(外包)
著作权法第十七条规定,受委托创作的作品,著作权的归属由委托人和受托人通过合同约定。合同未作明确约定或者没有订立合同的,著作权属于受托人。有关这一点,客户侧要特别注意。如果希望保留著作权,则需要和服务商在委托服务合同中额外约定。
通过 APaaS 创作的应用是否是软件作品
在《计算机软件保护条例》(2013 年修订版)中,计算机软件是指计算机 程序及其有关文档。而在定义计算机程序时,又用了以下文字:
(一)计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。
如果审慎地理解这个定义,APaaS 平台连同通过它创建的应用应该属于计算机程序的定义。孤立的 APaaS 应用配置内容似乎不符合计算机程序的狭义定义。
但是,如果我们更深入地去推敲,
(1)APaaS 构筑的数据结构和工作流是通过可视化编辑器形成的模型,它通过 APaaS 执行后具备和代码指令的等效,也完全可以解释为“被自动转换成代码化指令序列的符号化指令序列”。
(2)APaaS 构筑的应用配置内容中也可能包含代码,比如 HAP 工作流节点中的 JavaScript 或 Python 代码块。
因此,在现行法律体系内,APaaS 应用完全可以被认定为计算机程序。它和配套的文档一起就构成了计算机软件产品。
软件著作权登记
中国实行计算机软件著作权登记制度,但是软件著作权登记并非著作权形成的要件。即使不登记,创作者也享有著作权。但是软件产品因为涉及到商业流通和服务,完成著作权登记可以减少合同纠纷,而且中国在过去二十年都大力鼓励软件产业,软件产品登记可以得到增值税返还。所以,大部分法人创作的计算机软件都会进行软件著作权登记。
软件著作权登记由中国版权保护中心负责,著作权人可以自行或 者委托代理完成登记工作。软件著作权登记有一系列流程,相关信息可以参考这个链接。
APaaS 上的应用能否进行独立的软件著作权登记呢?按照软件作品的定义是存在模糊地带的。因为像 HAP 这样模型驱动的应用平台,本身并不会生成应用的源代码。因此在完成登记手续的鉴别材料提供流程中,难以直接提供例外交存材料。
相关制度是这样规定的:
第十二条 申请软件著作权登记的,可以选择以下方式之一对鉴别材料作例外交存:
(一)源程序的前、后各连续的 30 页,其中的机密部分用黑色宽斜线覆盖,但覆盖部分不得超过交存源程序的 50%;
(二)源程序连续的前 10 页,加上源程序的任何部分的连续的 50 页;
(三)目标程序的前、后各连续的 30 页,加上源程序的任何部分的连续的 20 页。
同时, 第十一条还规定,“经原软件著作权人许可,在原有软件上开发的软件,应当提交原著作权人的许可证明;”。
为配合应用平台合作伙伴申请软件著作权的工作,明道云可以为签约伙伴在申请软件著作权时,提供如上便利。
合作伙伴提交软件著作权登记申请时,应当明确自己的应用通过 HAP 应用平台开发,并同时提供文档鉴别材料,以防止登记内容雷同。
共同研发情况下的著作权
民法 和著作权法都承认知识产权的共有情况。在实践中也的确存在多个自然人或法人共同投入知识劳动形成软件作品的情况。但因为共同权利涉及复杂的共同共有和按份共有约定,收益分配权利,处分权利和侵权追责权利等,因此我们建议在此类实践中务必通过合同来明确约定,以避免争议。
10)产品迭代
HAP 私有部署版是一个持续迭代的软件产品,大约每月发行更新版本,每年发行大型升级版本。月度迭代会提供新特性,特性增强和缺陷消除等更新,在项目页面会公告更新具体内容。
HAP 私有部署版的代码管理和 HAP SaaS 版共享基石,但做了必要的分支。因此,私有部署版和SaaS版有几乎一致的功能特性,但在支持性模块上有不同的实现手段,例如对象存储服务。HAP 私有部署产品更新将略微延后于SaaS版本两周左右,通过这两周SaaS产品的运营,明显的软件缺陷会被消除,从而得到更适合私有部署客户更新的稳定版本。
最新更新:2024-03-11