Part 3:策略库的管理和编辑界面

智慧水电数据平台云控制设计方案(三)

编写:冯迅
版本:1.0
日期:2018-10-29

一、目标需求

1.1 需求背景

云控制服务的管理和编辑界面,负责将生产运营中的规程、流程、决策方案的数据化,采用包含所有生产要素(设备和人员)的工作流的方式表达,对各生产的各部门流程优化赋能。具体需求主要为:

  1. 以图形化的方式完成跨系统、跨领域、跨部门的云控制流程的编辑、设计功能;

  2. 部署基于WEB的界面,使业务人员可以免安装软件,随时随地访问;

  3. 可以实现管理流程图的导出(图像文件)和流程文件的输出(BPMN格式),并保存写入MySQL或MongoDB数据库;

  4. 支持对众多流程的浏览和查询;

  5. 能够识别和管理跨领域流程的关键属性,并对流程的输入变量、输出变量、算子进行识别、分类、管理,从而保证后台服务对流程控制的正确处理;

1.2 内部定义

  • 流程:是指水电企业生产管理过程中,一件工作从产生到结束的所有处理环节和事项。日常的定时规程、人员手动执行、即时发生的事件都可以触发一件工作流程,流程总是在某一个工作任务中,接收输入信息,判断处理该信息,然后输出一些结果信息或执行一个,而当满足一定逻辑条件后就根据流向转移到下一个任务阶段。

  • 业务流程建模和表示法(BPMN): BPMN是当前通用的描述工作流的图模一体化表达方式,具有相对较为完善的理论以及较多市场化产品的支持,因此云控制系统的策略数据表示方式采用 BPMN v2.0 格式方案。

注:传统流程图很少包含足够的细节来构建一套可被计算机识别并执行的信息化系统,BPMN即业务流程建模表示法(BPMN - Business Process Modeling Notation),是由对象管理组织(Object Management Group, Inc.)开发的一套标准,主要用于提供被所有业务用户理解的一套标记语言,这些用户包括业务分析者、软件开发者以及业务管理者与监管者,并且打通了业务流程设计与流程实现之间的隔阂。

  • 开源流程引擎Activiti:Activiti是领先的轻量级、以java为中心的开源BPMN引擎,支持现实世界的流程自动化需求,是新一代的业务自动化平台。

1.3 参考资料

二、软件功能

水电云控制的策略流程数据,在规则上已经由 BPMN 规范化,因此流程的编辑界面主要是体现在两方面:

  1. 一是流程的图形化编辑,进行逻辑建模;
  2. 二是对流程中的各个节点的属性进行填写、配置。
  3. 三是完成保存、上载、检验、发布等系统功能。

2.1 主要逻辑

软件的主要逻辑按照流程来表示如下:

软件的主要逻辑
  1. 开发阶段,应首先保证主逻辑流程的功能;
  2. 其次,必需完成一级子逻辑流程的功能;
  3. 最后,开发完成二级子流程的功能。

2.2 界面设计

当前主要考虑在开源软件Activiti的基础上做再开发,因此保留Activiti软件原生编辑界面:

流程设计页面

流程图编辑界面应具有以下要素:

  1. 基于Web的框架,可被主流浏览器访问
  2. 页面正中的流程图编辑框
  3. 页面正上方的菜单栏
  4. 页面左侧的BPMN图元选择栏
  5. 页面右侧的图元属性栏

2.2.1 绘图编辑框

流程图编辑框的风格以Activiti为基础,注意保证如下设计功能:

  1. 图形编辑常用的复制、粘贴、剪切、回撤(undo)、重做(redo)应分别支持热键;
  2. 可以从左侧图元选择栏拖拽图元到编辑框;
  3. 选中某个图元节点后,在右侧相应的属性框的内容跟着切换;
  4. 选中现有某个图元后,右边可弹出下一步骤可选择的图元,选择下个图元后流程连线会自动连接。


    image

2.2.2 菜单栏和工具栏

菜单栏应尽量简洁,必须保证的下拉菜单及功能有:

  1. 文件 栏,至少应包含下列功能选项:

    • 新建
    • 打开
    • 保存
    • 另存为
    • 导出为图片
    • 上载
  2. 编辑 栏,至少应包含功能选项:

    • 复制
    • 粘贴
    • 回撤
    • 重做
  3. 视图 栏,至少应包含功能选项:

    • 放大
    • 缩小
    • 缩放至适合
  4. 发布 栏,至少应包含功能选项:

    • 配置连接
    • 发布流程

工具栏应包含以下常用功能图标(点击链接查看参考图标图片):

  1. 新建
  2. 打开
  3. 保存
  4. 导出图片
  5. 放大
  6. 缩小
  7. 上载
  8. 发布

2.3 系统功能

除绘图编辑外,以下的系统功能应保证实现:

2.3.1 用户登录管理

输入页面地址首次登录时应跳转到登陆页面,输入用户名和密码。用户核对正确后方能够进入流程编辑、管理页面。

2.3.2 流程保存

直接将编辑好的流程以XML序列化的文本格式(.bpmn文件)保存到本地主机。

2.3.3 保存为图片

考虑到BPMN流程的图形化要求,页面上的流程设计图应能够导出为SVG、PNG、JPG等常用格式的图片文件。

2.3.4 上载流程

流程数据以 xml 格式保存在MySQL/MongoDB数据库中,在前端界面中,应能配置上载的数据库的连接方式,包括:主机地址、数据库名、用户名、密码等。
上载过程分为两步,一是对流程数据进行即时检验,二是将流程保存到数据服务器主机,见2.1节主要逻辑图。

2.3.5 发布流程

发布流程,需要将本流程中所有的输入数据的信息,以 JSON格式发布到综合数据平台 Kafka消息总线上,见《Part2:联动流程的后台和数据接口》。

2.4 数据和属性

节点的属性配置应遵从 BPMN2.0规范 和《Part1:基于流程引擎的数据设计》的设计规定。

2.4.1 流程

image
  • 流程(process)的属性必须包括:

    • 编号(id):字符串型,如 Process_1
    • 名称(name):中文字符串型,如 检修流程
    • 可执行(isExecutable):字符串型,如 truefalse
  • 流程(process)的可选属性包括:

    • 作者(athor):中文字符串型,如 张三
    • 审批(reviewer):中文字符串型,如 李四
    • 日期(date):日期型字符串,如2018-10-30 20:21:45

2.4.2 开始事件

其中任意图元节点都具备的数据属性

  1. 开始事件
    本文档1.0版本的开始事件仅包括以下三种:空开始事件、消息开始事件、定时开始事件。


    空开始
    消息开始
    定时开始
  • 所有三种开始事件(startEvent)的属性必须包括:
    • 编号(id):字符串型,如 StartEvent_1
    • 名称(name):中文字符串型,如 开始检修
  • 空开始事件
    空开始

    的属性还必须包括:

    • 触发器(initiator):JSON型,如 {"message" : {"id" : "PDP4GCVADJKS00000258"}}{"timer" : {"date" : "2018-10-30 20:21:45"}}。 填写触发器等于是用 JSON指明触发的全部信息要素,所以必须定义触发方式 messagetimer,作为子对象。message子对象主要是实时触发流程,需要写明触发点编号“id”,timer子对象主要是定时触发流程,需要写明触发时间“date” 或 巡查周期“cycle”。
  • 消息开始事件
    消息开始

    的属性必须包括:

    • 消息编号(id):字符串型,如 PDP4GCVADJKS00000258,当该消息到来时,即触发流程。
  • 定时开始事件
    定时开始

    的属性必须包括:

    • 执行时间(date):日期字符串型,如 2018-10-30 20:21:45,当该时间到来即触发流程。
    • 巡查周期(cycle):整数型,代表周期巡查的间隔时间,以秒为单位。
  1. 任务

2.5 保存方式

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

推荐阅读更多精彩内容