# dd **Repository Path**: xiaogegeya/dd ## Basic Information - **Project Name**: dd - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-21 - **Last Updated**: 2022-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 前端框架 Vue 2 ### 背景 在工业互联网领域,工厂懂工艺和机械知识但没有编程能力,互联网企业擅长系统落地但缺乏制造业专业能力,这成为工业互联网领域的一大痛点。数字孪生旨在完成物理世界与虚拟世界的映射,是工业互联网领域的先进技术。 ### 简介 基于Antv X6图编辑引擎的数字孪生概念建模工具,Artiflow模型可以帮助业务人员以数据为中心建立业务流程模型,通过库元素、服务、连接和事件描述关键数据Artifact从创建到存档的完整生命周期。其中Artifact是强类型的,库元素存储生命周期某一阶段的Artifact,服务读写Artifact,事件携带消息通知普通服务运行或者循环服务一直运行,服务完成后可能会产生一个新的消息。Artiflow模型导出XML文档,XML文档可识别出Web服务语义来指导编码工作。数字孪生实现物理世界与虚拟空间的数据交互,提供了无限可能,而以数据为中心的Artiflow业务流程模型非常适用于数字孪生概念建模。 ### 功能 加粗是已实现、斜体是有余力再做、不加粗的是有待完成 * 绘图:**拖拽图元、连线** * 导入导出:**json格式导入导出、png图片导出** * 图元属性修改:**标签、字体大小、连线样式、图元样式、连接点** * 图元数据绑定:重点,下文详解。 * 快捷键:**删除、撤销与恢复**,**复制粘贴**,**全选**,**ctrl+右键拖动画布** * 优化体验:**线拐点、线平行迁移**、**页面刷新不丢失(写在webstorage里)**、帮助指引、线的拐点删除、、**按钮事件**、**右下角加一个导航**,**左键框选** * Artiflow树:结构化表示模型信息,点击可以在属性区查看节点信息,应该与增加修改删除节点保持同步 * *日志:分析画的图是否正确、日志数据分析、数据生命周期分析,给出错误反馈;* ### Artiflow模型 * Artiflow = (Artifacts, Services, Connections, Events) * Artifact是业务中的数据,Artifact = ({(a1, t1), (a2, t2), ...,(an, tn)}, {s1, s2, ..., sm}),表示该数据有m个生命周期和n个属性,每个属性都有类型 * Service是操作数据的服务,该服务对若干个Artifact操作,操作类型有只读、引用读和写入,Service = {(a1, s1, t1), (a2, s2, t2), ..., (an, sn, tn)},其中ai是操作的Artifact,si是操作的Artifact的生命周期,ti是操作类型 * Repository被用来存储某一阶段的Artifact,用来存储(ai, ti),其中ai是操作的Artifact,si是操作的Artifact的生命周期 * Connection连接Service与Repository的管道,这通常伴随着对数据流的操作权限与缓存 * Event推动着Service执行,有的Service是事件生产者,有的Service是事件的消费者,事件着携带消息数据,Event = (producer, consumer, message)。如果一个服务如果没有事件推动它执行,那么它一定是自循环服务,否则这个服务永远不会执行是没有意义的。 * Artiflow模型蕴含着业务规则,即“携带着消息的事件推动服务从一个库取出数据处理后放入另一个库,同时产生另一个事件” ### 数据绑定 * 按照形式化定义绑定数据。 * 首先新建Artifact类,它有一个label,还有一个可增减的键值对列表和一个可增减的生命周期列表,改变label后Artiflow树要更新 * 拖动Repository(圆),它有一个label(默认是未命名),有两个选择器选择Artifact和对应的某一生命周期,改变label后Artiflow树要更新 * 拖动Service(矩形),它有一个label(默认是未命名),有两个选择器先选择Repository后再选择操作类型,改变label后Artiflow树要更新 * 连线,暂时不绑定数据 * 拖动Event,凸五边形是事件生产者放在Service下方,它在放入Service下方时自动绑定了服务属性,凹五边形是事件消费者,放在Service上方相连,在连线时自动绑定了服务属性,且连线上有Message(信封),它有一个下拉菜单来选择图中存在的Message,事件生产者消费者及消息都要绑定label。 ### 任务分工 * 数据绑定模型需要写可复用的组件 * 优化体验只需要调用API绑定事件 * Artiflow树维护最简单,基于Eventbus实现增加修改删除节点的保持同步