工作流在MES中的设计与实现

  • 格式:pdf
  • 大小:428.25 KB
  • 文档页数:7

基于工作流的制造执行系统MES开发,在传统关系数据库基础上,建立适用于关键业务开发的工作流模型,包括组织模型和业务模型,并通过工作流引擎驱动MES业务流程,实现MES过程的动态建模和功能配置。

组织模型反映含人员、组织、组和角色的组织结构,业务模型描述车间MES工作过程并记录过程活动的功能配置信息。

工作流引擎将生产过程、组织结构、物料生产信息、生产运营资金和工作任务有效结合,形成集成化MES系统。

1 概述
优秀的制造执行系统MES须满足:优化目标是整个生产过程,能实时收集和处理生产过程中的数据,需要同时与计划层和控制层保持双向通信能力并从上、下两层接收相应数据、反馈处理结果和生产指令。

而目前MES大都强调生产现场的即时数据采集、监督及控制,在开发时业务逻辑和业务流程绑定过于紧密,系统不够灵活,因此有必要将MES作为一个开放式可定制的平台提供给用户。

故基于工作流技术驱动MES业务流程的软件开发方法,实现MES软件系统的业务逻辑和业务流程的松散耦合,以增强其过程的动态建模能力和系统配置的柔性。

2 基于工作流的MES
2.1 基于工作流的MES开发方式和体系结构
传统的MES开发需要为每个活动开发相应的用户界面和处理类。

这些类既要完成业务过程处理,还需要维护业务数据和过程数据,如图1。

如果业务过程发生改动,需要大量改变代码。

图1 传统的开发方式
利用工作流技术可以在建模时通过工作流模型定义业务过程,在执行时由工作流引擎控制过程的运行。

在基于工作流技术的MES中,通过把
处理类中的业务过程处理掉,而只保留其中的业务逻辑,并将其作为独立的组件提供,以提高其可重用性。

基于工作流技术的MES软件体系结构如图2。

图2 系统体系结构
系统采用J2EE框架,整个软件体系结构包括三部分:系统数据库、应用服务器和Web服务器。

系统数据库存贮了三部分数据:工作流模型数据保存定义好的组织模型和业务过程模型;工作流控制数据是工作流引擎维护的、用于记录过程实例与活动实例的状态信息;工作流业务数据是MES业务逻辑操作处理的数据。

应用服务器为封装成Bean的MES业务逻辑组件提供运行环境,同时工作流引擎也在应用服务器中运行。

工作流引擎处理用户权限和流程管理等运行控制事务,它通过各个接口实现与系统其他各部分之间的交互,从而完成相应的功能。

各个接口及其用途如表1所示。

表1 工作流引擎接口及其用途
Web服务器从应用服务器获得信息并向客户端提供用户界面和任务列表,同时Web服务器还向管理员提供系统的管理监控界面。

2.2 过程建模和功能配置
MES中引入工作流技术后,开发时可专注于编写相应的业务逻辑处理类和用户界面。

通过组件调用接口封装MES业务逻辑代码,实现业务逻辑和业务过程的松散耦合。

实施时根据实际生产流程进行过程建模,为开发和运行环境间提供形式上的分离,用建模工具产生可以被工作流引擎解释并执行的过程定义。

由于用户界面和业务逻辑可以被重复使用,因此在工作流模型中可以通过功能配置接口将用户界面、业务逻辑和活动关联在一起,使得活动可以向用户提供相应的用户界面操作界面并完成一定的业务逻辑操作,从而实现了相应的功能如图3。

图3 过程建模及功能配置
对各个活动节点进行功能配置需通过以下4个步骤实现:①通过分配规则将具体的活动分配给相应的操作人员;②通过界面配置关联相应的用户界面;③通过程序调用执行MES的业务逻辑操作;④通过参数传递向业务逻辑提供操作数据,并向用户界面提供输入输出的信息。

3 MES中的工作流模型
工作流模型设计,针对MES的应用特点和需求,参考国际工作流联盟定义的XPDL标准并对其进行了简化和扩展。

XPDL标准通过元模型
描述在过程定义转换中需要用到的基本实体,并且对这些实体定义相关的属性集。

但是,XPDL标准过于复杂,故对工作流元模型进行抽象和简化,保留重要的实体和属性,使简化后的工作流模型仍具备较好的对MES流程描述能力,并达到模型简捷化的目的。

同时还对XPDL标准进行了扩展,增加新的实体和属性用以描述功能配置信息,满足了基于工作流技术MES系统软件开发与实现的需要。

基于关系数据库,工作流模型由组织模型和业务模型两部分组成。

组织模型描述企业组织结构关系,业务模型则是对业务处理过程的一种形式化抽象。

使用关系结构表达工作流模型,便于工作流系统数据与MES 系统应用数据集成,降低了工作流引擎开发过程中的技术难度和工作量。

3.1 组织模型
组织模型用来反映组织结构,主要包括人员、组织、组和角色四个概念,如图4所示。

其中:Employee记录人员相关信息;Department记录组织相关信息;Group描述分组信息,通过将人员分组,便于在MES 系统中集中管理具备相同特点的人员集合;Role通过将MES系统的功能分配给特定的角色,实现系统功能的柔性配置。

图4 组织模型
3.2 业务模型
业务模型是整个工作流模型的核心,描述车间MES工作过程并记录过程活动的功能配置信息,图5是业务模型ER图(核心表及其部分字段)。

图5 业务模型
(1)业务过程信息
业务过程信息描述车间的生产过程。

一个业务过程(Process)由活动(Activity)和活动之间的转移路径(Transition)组成。

表Process 描述车间生产过程的总体信息,包括优先级、有效期等信息。

表Activity 描述生产过程中的每个活动,是整个业务过程的核心。

为简化系统复杂度,通过Acitivty Type来区分各种活动类型,如表2。

表2 活动类型及其说明
表Transition描述活动转移路径,From和To表示起始和结束活动,Condition 字段描述该路径的路由条件。

工作流引擎根据汇聚/拆分虚拟活动中RoutineRule定义的路由规则计算出路由结果并与活动转移路径中Condition定义的路由条件比较,进而选择合适的活动转移路径。

(2)功能配置信息
为将参数数据、用户界面和业务逻辑处理类可供系统配置调用,除需要将其按照一定接口规范设计开发外,还需要在系统中记录其配置信息,因此引入Dataset、Form和Application三个表来描述参数数据、用户界面和处理类。

表DataSet记录活动执行时调用的参数信息,包括参数传递规则、参数类型、参数顺序等。

表Form描述用户操作的用户界面,含三种字段类型:IN代表输入,OUT代表输出,INOUT代表可读/可写数据,兼具IN和OUT的功能。

工作流引擎根据配置到活动上的Dataset提取必要的数据信息传递给用户界面并将其在用户界面上显示。

表Application描述业务逻辑信息,通过ApplicationName定义配置给活动调用的MES业务逻辑组件,通过ApplicationMethod指明所要调用的具体业务处理方法,该方法将接受DataSet传递过来的业务数据。

(3)活动实例信息
系统运行时,工作流引擎将活动实例化——生成任务,表Task记录各种任务信息,包括待处理的和已完成的任务。

工作流引擎可以根据登陆用户的权限和角色,在Task表里面过滤出该用户的任务列表,并按照
任务状态、任务优先级等将任务信息呈现在用户浏览器里。

4 MES中的工作流引擎
工作流引擎由7个处理模块组成,其中任务管理模块是工作流引擎的控制中枢,另外6个处理模块则分别与表1列出的6个接口相对应并为任务管理模块服务。

系统运行时,任务管理模块生成任务实例并根据任务实例的状态完成任务启动、分派和路由等控制操作。

在这个过程中,任务管理模块指挥调度其余6个模块访问各自对应的接口进行数据处理或功能操作。

由于各个处理模块功能独立单一,实现了模块的高内聚低耦合,而简捷的工作流模型便于工作流引擎解释执行。

将工作流引擎作为MES的核心,可很方便把生产过程、组织结构、物料生产信息、生产运营资金和工作任务列表有效的结合在一起,形成一个集成化的MES 系统
5 结语
将工作流技术引入MES开发,设计基于关系结构的工作流模型和工作流引擎,通过将过程建立和运行时的功能分开,降低了业务逻辑和业务过程的耦合,提高系统的可重构性,并且业务信息与处理该信息的系统功能自动捆绑,提高了工作效率和整个生产过程的优化。