没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记329(2016)39-59www.elsevier.com/locate/entcs面向业务流程安德烈德尔加多1丹尼尔Calegari2和r'esArrigoni3乌拉圭蒙得维的亚Repu'blic大学摘要业务流程管理系统(BPMS)为业务流程(BP)生命周期提供支持,从建模到执行和评估BP。BPMS中提供的关键元素是执行BP模型的流程引擎和用于用户交互的Web门户,提供管理手段一个工作列表,采取和完成任务,以及其他功能。 大多数BPMS门户都为用户提供了一组核心特性来管理他们的工作列表,以及对他们的流程引擎的面向服务的访问,这是紧密耦合的。 在这种情况下,似乎可以定义一个通用的BPMS用户门户,可以与执行业务流程的任何流程引擎集成(松散耦合)。在本文中,我们基于统一的数据模型和通用的流程引擎API定义了这样一个通用的BPMS用户门户。我们还显示了这些想法的可行性,通过开发一个原型。关键词:业务流程管理系统(BPMS),Web用户门户,流程引擎,集成层1介绍为了提高效率和效益,组织需要考虑的一个关键方面是能够管理其业务流程(BP)。业务流程管理(BPM)[18,20,6]为完整的BPs生命周期提供支持,从建模,到开发,部署,执行和评估其执行,涉及组织和技术环境。在这种情况下,过程感知信息系统(PAIS)[7],特别是业务流程管理系统(BPMS)[2]作为支持BPs生命周期的技术出现。1电子邮件:adelgado@fing.edu.uy2电子邮件地址:dcalegar@fing.edu.uy3电子邮件:arriori@gmail.comhttp://dx.doi.org/10.1016/j.entcs.2016.12.0041571-0661/© 2016由Elsevier B. V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。40A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39关于管理BP的技术支持,有许多BPMS平台提供了一组核心组件来与BP一起工作,特别是允许流程执行,例如:基于某种语言的流程引擎(BPMN2.0[12],XPDL [22],WS-DDL [9],YAWL [16]),其中执行BP,以及用户门户网站,允许他们通过采取,执行,重新分配和完成任务等管理他们的工作列表与BP交互。门户还提供了启动、取消或挂起流程、管理角色、用户和许可以及其他操作的方法。BP和活动定义和实例都有一个生命周期,它定义了可能的状态和它们之间允许的转换,这是它们执行的基础[24]。大多数流程引擎还通过本地应用程序编程接 口 ( API ) 提 供 对 其 功 能 的 访 问 , 该 API 也 被 公 开 为 Web 服 务 API(REST/SOAP)以允许从其他系统调用以与现有组织的软件集成在大多数BPMS中,用户Web门户与本机流程引擎API紧密耦合,因为流程引擎嵌入在系统中,使用流程引擎的唯一方式是通过BPMS提供的用户Web门户。如果集成在BPMS中的流程引擎和用户Web门户能够满足组织的需求,那么但在某些情况下,组织希望能够开发或集成自己的用户Web门户与特定的流程引擎,满足一些非常具体的要求-不仅是关于&大多数BPMS提供的外观变化-还有其他关于某些设计或可用性指南,特定的Web技术,其他系统或要集成到门户中的元素,还有其他的当然,这可以通过调用流程引擎提供的REST/SOAP API轻松实现,但是尽管用户门户网站不会直接嵌入流程引擎,但它仍然会与API提供的特定功能相耦合,包括操作签名,参数和类型。此外,一些过程引擎在不断发展,并且它们的用户门户网站也在不断发展,以适应底层引擎的变化,因此期望能够最小化组织中的这些变化的影响,主要是在组织此外,如果组织需要的功能目前不受支持,则组织将希望迁移到支持相同或另一种语言的基于这种分析,可以定义一个通用的BPMS用户门户,它可以通过规范化的API与任何流程引擎集成,基于流程执行所需的底层概念的统一模型。前端和流程引擎之间的独立性提供了在不影响用户体验的情况下从一个流程引擎迁移到另一个流程引擎的方法,以及为外部应用程序提供统一的交互层,类似于当今应用程序与许多数据库管理系统(DBMS)一起工作最后,对用户Web门户的特定功能进行建模,A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3941我们可以为不同的技术自动生成门户,在生成过程中生成对我们规范化API的调用,因此门户可以与任何流程引擎一起使用。模型还有助于可视化、分析和指定为BP和活动生命周期以及工作列表管理定义的概念和转换,从而实现改进。在本文中,我们提出了基于统一数据模型和通用流程引擎API的通用BPMS用户门户的定义,它可以与任何流程引擎集成,以执行业务流程。它的定义是基于对三种不同的BPMS(Activiti4,Bizagi5和Bonita6)在用户门户网站和流程引擎API中提供的功能的比较评估。此外,我们使用交互流建模语言(IFML)[13]对通用的BPMS用户门户网站进行建模,IFML是为表达前端的内容、用户交互和控制行为而设计的标准语言,这使我们能够提供一个独立于平台的前端模型,作为开发或自动生成BPMS用户门户网站的基础。本文其余部分的结构如下。在第二节中,我们介绍了相关的工作。在第3节中,我们介绍了BPMS体系结构中的一般和关键组件,以及对所选BPMS的比较评估。在第4节中,我们详细介绍了通用BPMS用户门户的架构定义,底层的统一模型和访问任何流程引擎的通用流程引擎API。在第5节中,我们将介绍IFML标准和我们定义的基于IFML的通用用户门户。在第6节中,我们展示了我们开发的原型作为概念证明,最后,在第7节中,我们提出了结论和未来的工作。2相关工作有一些方法试图统一BPM概念, 工作流程管理的开始作为工作流程参考模型和工作流程管理设施规范[21,11],其中定义了工作流程引擎的关键功能具体来说,在[21]中定义了五个功能接口区域:(1)流程定义,(2)来自客户端的工作流访问,(3)来自其他应用程序的工作流访问,(4)工作流互操作性和(5)管理和监控,具有一组通用的API调用和相关的交换格式。尽管该模型定义了流程引擎的关键功能(这是许多工作流程和BPMS系统的基础),但该方法是一种高度抽象的方法,没有具体的操作,在我们的方法中详细定义在[8]中,作者提出了一个元模型,定义了过程模型的主要概念。 此外,它不是关注流程执行,而是关注流程建模,元模型还有一些相关的方面。[24]三个方面,4Activiti BPM平台。www.activiti.org/5Bizagi BPM。www.bizagi.com/6Bonita BPM。http://www.bonitasoft.com/42A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39工作流程管理系统的时间:参与者,管理员和客户,一些工作流程系统的功能也进行了分析,重点是定义一个参考模型的接口(5)的管理和监控。我们也采用这三种观点,但我们的统一数据模型和API涵盖了从(2)到(5)的更广泛的接口集合。在[3]中,作者描述了一个定义结构化对等覆盖的通用API的分类,以及可以在其上构建的关键抽象。 虽然这项工作并不集中在BP上,但它也定义了一个通用的API,通过实现一些通信协议来验证。最后,在[15]中,作者定义了BP执行至少需要五种类型的数据:(i) 流程逻辑的业务数据,(ii)BP模型,(iii)执行状态(和历史),(iv)BP实例之间的相关性,以及(v)资源及其状态。他们还定义了一种通过“自我引导的工件”来表达这些数据的方法。我们的API处理这些数据,除了(ii)和(iv),这对与流程引擎的交互并不重要,但我们需要进一步的工作,以便使用自引导工件抽象数据。与这些工作相比,我们的建议提供了一个关于BPs执行的概念和关系的统一视图,以及流程执行的BPMS主要组件(即用户门户和流程引擎)的高度解耦视图:(i)指定为IFML模型的通用用户Web门户,具有基于统一模型中的概念定义的功能;(ii)统一模型,其提供BP和活动定义和实例概念的集成视图以及它们的关系,作为流程执行的基础虽然统一模型是基于对三个BPMS概念的初步分析,但我们已经根据分析的概念确定了一组核心概念和关系,这些概念和关系为流程执行和用户工作列表管理、角色和用户管理以及其他功能提供了基础。据我们所知,在这个具体方向上没有其他建议3BPMS门户评估BPMS [20,6,7,2]平台的架构集成了多个组件,以支持基于特定BP模型的完整业务流程生命周期[20]BPMS的一个关键组件是流程引擎,它能够执行一个模型流程,用BPMN 2.0 [2]、XPDL [12]、WS-1.0 [22]、YAWL [9]等语言指定。BPMS的另一个关键组件是用户其他组件可支持过程建模、仿真、监控和实时分析等。在以前的工作中[4],我们已经评估了几个开源和专有的BPMS,基于这种工具必须提供的关键功能特性的定义列表例如过程模型支持、过程版本控制、角色定义A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3943表1BPMS的一级特性示例类别类型流程引擎语言API工具开源面向程序员BPMN 2.0休息活动jBPM4XPDL休息Joget工作流程5没有OBE6WfMOpen7Enhydra Shark8WS-BPEL肥皂Apache ODE9Riftsaw10没有管弦乐队11花瓣12面向用户XPDL休息Bonita专有面向程序员BPMN 2.0WS-BPEL休息IBM BPManager13Oracle BPM14WS-BPEL肥皂Intalio15面向用户XPDL肥皂比扎吉ARIS16[2017- 07 - 17]第十七话:然而,当时我们并没有像现在这样专注于流程引擎API中定义的操作的显式识别基于这些工作,我们能够确定一些一级功能,帮助我们缩短现有BPMS的广泛列表[14,23,10],定义:(i) 类别:开源和专有,这主要决定了BPMS对用户的可用性和对代码的免费访问(ii) 类型:面向程序员还是面向用户,这主要决定了开发人员(iii) 流程引擎语言:可以是BPMN 2.0、XPDL、WS-BPEL、YAWL等。(iv) API发布:WS接口REST或SOAP,它确定从BPMS外部调用引擎的操作类型和格式表1显示了我们在以前的工作中已经评估过的一些BPMS平台的分类[4]。44A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39此外,如[6]中所定义的,可以根据其对BPMN流程模型执行的支持来识别三类BPM:纯BPMN、适配BPMN和非BPMN,其中在第一种情况下,工具本身支持BPMN,例如Activiti,在第二种情况下,它们使用BPMN皮肤,但使用另一种表示来执行流程模型,例如XPDL,例如Bonita和Bizagi,最后是不支持BPMN并使用自己专有语言和语义的例如YAWL。对于本提案,我们将评估重点放在前两种情况上也就是说,提供对BPMN的支持的工具,无论是原生的还是其他内部表示,现在BPMN是流程建模的事实标准。为了做到这一点,我们选择BPMS来评估开源类别,结合程序员和面向用户的类型,流程引擎语言BPMN 2.0或XPDL和REST以及SOAP发布API,试图通过选择每个等价类的代表来覆盖不同的现有选项这次我们省略了WS-EJB,因为我们希望将重点放在管理人工任务和用户工作列表的用户门户上,这些任务和工作列表在WS-EJB中并不是本机管理的。此外,由于我们没有考虑以前对在BPMN或XPDL中提供SOAP API发布的开源BPMS平台的评估,因此我们决定包括Bizagi BPMS,尽管执行组件是专有的,以提供SOAP API的评估。最后,我们从我们已经评估过的BPMS中选择了三个,以抓住我们多年来获得的知识Bonita,Activiti和Bizagi,比较他们在用户门户和引擎API中管理的概念和定义。3.1 Bonita BPMSUser web Portal. 它分为三个主要列:左侧,用作信息过滤器;中心,显示任务工作列表,案例和流程等元素列表,允许对其执行操作;右侧,显示中心列中选定元素的详细信息,允许对其进行操作内容和结构取决于用户数据模型它定义了用户的个人资料、角色、组和成员资格等概念,允许对用户的权限进行建模。配置文件是对用户可以在门户上执行的潜在操作的一组权限。角色、组和成员的概念用于表示组织的结构4jBPM,http://www.jboss.org/jbpm/5Joget,www.joget.org/6OBE,开放业务引擎,http://obe.sourceforge.net/7WfmOpen,http://wfmopen.sourceforge.net/8Together Enhydra Shark,http://www.together.at/prod/work9Apache ODE,http://ode.apache.org/10Riftsaw,http://www.jboss.org/riftsaw11Orchestra,http://orchestra.ow2.org/12Petals,http://petals.ow2.org/13IBM BP Manager,http://www-01.ibm.com/software/integration/business-process-manager/14甲骨文 11g,http://www.oracle.com/us/technologies/bpm/suite/overview/15Intalio BPMS,http://www.intalio.com/bpms16ARIS平台,http://www.softwareag.com/corporate/products/arisA. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3945是的。Bonita将流程定义命名为Application,将流程实例命名为Case。应用程序包含任务定义,案例包含任务实例。变量实例可以定义为维护特定情况下的任务状态。变量也可以在应用程序级别定义,因此变量实例也可以与案例相关。用户可以向他们正在工作的案例和任务实例添加注释。REST API。它由三个子API组成:Identity API,用于对管理信息(用户、组、角色)进行分组; UserXP API,用于管理Web门户和配置文件外观,配置用户可以执行的操作;以及BPM API,用于管理流程中的元素。例如检索案例、分配任务等。要访问API的任何定义方法,用户必须首先通过身份验证,调用根据所需的资源操作(创建,检索,更新,删除和搜索),API使用不同的HTTP方法(POST,GET,PUT和POST)来执行调用。 要将标识符为“2”的任务分配放http://server>/bonita/API/bpm/humanTask/2有效载荷{“assigned_id”:“23”}3.2活动BPMSUser web Portal. 它也被组织成三个主要列,它们上面有一个菜单:左侧显示登录用户的任务工作列表;中心显示左侧所选元素的详细信息,右侧显示事件和注释。该菜单提供子菜单来管理任务、进程、报告和管理选项,仅限管理员使用数据模型它定义了Group和User等元素来模拟用户的任务。组可以是“安全角色”或“分配”类型,这是角色概念的限制性视图。然后,允许在门户内执行特定操作,例如在“安全角色”情况下的管理员和用户,或在“分配”情况下的“营销”或“财务”过程中分配任务的组定义。最后一种情况代表了Bonita中的相同概念,即Group、Role和Membership的组合。活动还使用过程定义、过程实例、任务定义、任务实例、变量定义和变量定义概念,这些概念与任务或过程定义相关联。事件概念被定义为记录任务的状态变化。REST API。Activiti REST API类似于Bonita定义的API,使用HTTP方法执行调用。它还包括几个子API,名为:Repository,Identity,History,Forms和Management。访问任何资源都需要用户进行身份验证,但与Bonita相反,Activiti使用“基本身份验证”作为安全方法,在每次HTTP调用中必须发送所需的要获得可用流程定义的列表,REST调用是:GEThttp://server>/repository/process-definitions46A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)393.3Bizagi BPMSUser web Portal. 它提供了两个区域和它们上方的菜单。 左侧区域是案例区,右侧区域是工作区。该菜单提供了用于管理案例、门户管理、报告等的选项。案例区域允许用户查看案例工作列表,该列表按流程定义分组,并根据其状态进行排序:按时、有风险、过期。工作区由两列组成:左边一列显示用户的任务工作列表,右边一列显示左侧所选任务的详细信息,允许对其进行操作与以前的门户一样,提供的选项与用户的权限相对应。数据模型它定义了如前面分析的组和角色等概念,以建模此类权限。角色可以是“销售员”或“秘书”,并且可以结合用户特征(例如技能领域)创建组。它还使用过程和案例的概念来定义过程的定义和实例,活动表示任务实例,任务表示其定义。关于注释,它只允许对流程实例进行注释SOAP API。与前面分析的BPMS不同的是,Bizagi提供了一个SOA层和SOAP WS来访问流程引擎。它被组织成四个服务类别,类似于其他人中定义的子APIS:工作流程引擎,实体管理器,QuerySOA和RenderSOA。工作流引擎允许管理执行诸如启动流程或执行活动之类的动作的流程的控制流;实体管理器提供对数据模型的访问,从而允许添加、检索或更新关于实体的信息;查询SOA允许获得关于案例、任务或实体的信息;最后,呈现SOA允许查询关于定义的用户表单的元数据(诸如数据字段)的信息。每个服务都定义了几个方法,这些方法将被调用以获得相应的数据,并且为每个方法定义了用作输入和输出的XML文档。每个类别中的定义可以通过获取相应的WSDL http://[Server]:[port]/BizAgi-war/WebServices/[category]?wsdl,其中category是定义的子APIS之一。调用是通过SOAPWS方法进行的。4通用BPMS门户提案基于我们对BPMS的评估,我们定义了一个统一的数据模型,一个通用的BPMS用户门户和一个通用的流程引擎API。我们定义的通用BPMS门户体系结构遵循分层体系结构风格,如图1所示。它由两个主要层组成:表示层,其中定义了通用用户门户;访问层,通过通用流程引擎API提供将通用门户连接到选定流程引擎的方法,该API公开了定义的功能及其实现。在表示层,基于统一数据模型的BPMS用户门户网站组件为用户提供了管理BP和活动案例、工作列表、组和角色等所需的一组功能。此外,可以定义其他现有应用程序并将其连接到通用API,以便与所选流程引擎进行交互A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3947Fig. 1. 通用BPMS门户体系结构图访问层由两个子层组成:服务层,其中定义了通用流程引擎API,向用户门户公开功能;集成层,提供了实际实现与所选流程引擎交互的方法通用API向门户提供的功能示例从一般服务(如日志记录设施)到门户的特定服务(如列出给定用户的未决任务)集成层负责通过从所选流程引擎调用特定方法来提供由通用流程引擎API公开的功能,因为每个流程引擎具有不同的操作签名和公开相同功能的方式它包括两个主要组件:(i)接口ICengineAdapter组件,它定义了必须提供的功能,以及(ii)特定的适配器组件,如ActivitiEngineAdapter,必须为每个选定的流程引擎实现。每个适配器都有责任通过调用相应的流程引擎并将响应转换为通用API所期望的响应来提供接口中定义的功能该层将门户功能的定义与这些功能的实现相结合,这些功能可以由任何流程引擎通过集成层提供。在所选流程引擎不提供所选功能的情况下,可以在用户门户中将其禁用。这样,我们的BPMS通用门户就不会提供流程引擎,但允许通过适配器集成现有的。4.1统一数据模型我们的统一数据模型考虑了每个评估的BPMS定义的概念,并为通用BMPS门户网站的功能提供了基础。表2显示了我们的概念与每个门户中的概念之间的关系48A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39表2来自统一模型和相应BPMS的概念统一模型BonitaActiviti比扎吉过程应用过程定义过程情况情况流程实例情况任务定义任务定义任务定义任务任务实例任务实例任务实例活动可变定义可变定义可变定义可变定义变量实例变量实例变量实例变量实例用户用户用户用户组组组组作用作用-作用该模型是三个评估的BPMS的概括,门户网站所提供的屏幕和功能也是基于这个统一的数据模型。一个例子是过程概念,它在Bonita中被命名为应用,在Activiti中被命名为过程定义,在Bizagi中被命名为过程,我们决定将其命名为Bizagi中的过程。 此外,从分析的不同选项中,我们决定按照Bonita和Bizagi中的定义分别使用角色,组和用户的概念,其中用户可以属于组,也可以拥有角色。虽然组和角色概念可以合并为一个概念,就像Activiti只使用组一样,但我们决定将它们分开,因为我们认为同时提供两个概念更清楚。流程标识BP的定义,案例指流程的每个实例。用户可以从进程启动案例。活动(和任务)定义是过程定义的一部分,它们的实例是案例的一部分。过程的变量可以在过程和活动的层次上定义,因此它们的实例分别连接到案例和活动实例(其他系统,如YAWL [9]使用了工作项的概念,我们在这个时候没有介绍)。用户可以在案例中插入注释。图2描述了这些概念和关系的概念性UML模型。4.2通用流程引擎API在表3中,我们提供了我们在通用流程引擎API中定义的操作类型的示例,关于统一数据模型中按概念类别分组的不同概念然后,每个适配器必须通过调用在每个BPMSAPI发布中公开的相应操作来实现这些操作,如第3节所示。如前所述,通用流程引擎API提供了一组要被操作到门户的功能,并且允许调用任何所选择的流程引擎,执行操作之间的对应映射。这些功能可从BPMS用户门户访问,定义见第5节。A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3949表3通用API中定义的操作示例安全类别Login(string user,string password):void允许用户在系统内被识别并访问功能。ChangePassword(string oldPassword,string newPassword):bool允许用户修改当前密码。进程类别GetProcessDefinitions(string name,string category,bool active):创建进程>返回一个列表,其中包含按名称、类别和状态定义的现有进程GetProcessDefinition(int processId):进程返回所选进程的定义。int maximum(int n)使用processId挂起进程,因此无法从中生成案例案件类别String String(int i):void允许从ID为processId的进程创建案例。GetAllCases(string name,string creator,string user,stringstate): IEEECase>返回按进程名称、受让人、创建者或某些状态过滤的案例列表AddCommentToCase(int caseId,string userId,string comment):void允许所选用户向案例添加注释任务类别GetTasks(string name,bool assignee,string candidateUser):IEEETaskInstance>按名称返回要由用户执行的任务的列表(已分配或未String taskId(string):bool将任务分配给执行调用的用户。GetTaskVariables(string taskId):IEEEVariableInstance>返回与所选任务关联的变量列表团体类别GetGroups(string like):IEEEGroup>返回现有组的列表。RemoveUser(string userId,string groupId):void允许从组中删除选定的用户。角色类别GetRoles(string like):IE浏览器角色>返回现有角色的列表。AddUser(string userId,string rolId):void允许向ID为userId的用户添加角色50A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39图二、概念UML模型中BPMS门户的统一数据模型5基于IFML的通用BPMS门户在本节中,我们将描述与我们定义的通用BPMS门户的表示层相对应的IFML模型IFML提供的元素允许定义用户与任何系统的交互,在我们的例子中,我们使用WebML扩展来建模门户网站,我们在下面介绍A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3951图三. IFML的主要概念5.1IFML标准交互流建模语言(Interaction Flow Modeling Language,IFML)[13]的目标是描述应用程序前端的主要方面,基本上:应用程序连同数据和业务逻辑动作以及控制逻辑。通过使用IFML,可以自动生成不同技术的前端。IFML的主要元素如图3所示。一个IFML图由一个或多个顶层视图容器组成,这些容器可以由其他容器组成,例如一个主窗口和许多嵌套窗口。在视图容器中,有视图组件,即显示内容或接受输入的界面元素(例如,表格、列表等)事件被附加到容器和组件(例如,当列表被选择),从而检测用户界面的状态,并且可能导致触发动作(例如,删除列表的所选元素)。 由事件引起的状态变化,以及事件触发的结果,都表示为将事件/操作连接到视图容器的导航流或由事件/动作所影响的组件。数据也在视图元素(视图容器和组件)或操作之间流动。可以定义参数(类型和命名值)并将它们绑定到导航窗口。WebML [1]是一种用于Web应用程序的领域特定语言,使用IFML扩展机制定义。图4显示了WebML的一些元素。该语言定义了特定的视图容器,例如,网站视图表示一组页面和/或区域,形成网站的连贯视图,因此它可以是不同类型用户的不同网站视图,区域表示一组页面视图组件也被详细描述,例如用于表示实体的详细信息、选择实体键的列表、表示表单以及表示用于实体创建或删除的数据库操作。5.2基于IFML的门户我们提出的IFML模型是使用Webratio [19]工具指定的。IFML中的通用BPM门户网站首先定义了三种站点视图,这三种视图与我们识别的三种不同类型的用户有关:管理员、普通用户、52A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39见图4。 WebML的主要概念图五、管理员站点视图的子区域用户和定义页面的IFML模型用户和公众。管理员站点由多个页面组成,提供有关组、用户和进程等管理的功能。要访问此站点,用户必须使用有效的管理员凭据登录。通用用户站点由为BPMS用户提供功能的页面组成 要访问此站点,用户还必须使用有效凭据登录。公共站点视图是为系统中未识别的人员提供的,并且包含公共页面作为登录页面。5.2.1管理员站点视图管理员站点主要分为两个区域:目录和进程管理,每一个区域又包含三个子区域。目录的第一个区域包括用户、角色和组管理的子区域,流程管理的第二个区域包括流程、案例和任务管理的子区域。作为一个例子,我们提出了分区用户的IFML建模。图5展示了IFML模型,显示了定义的页面,以及在页面之间导航的组件和操作。A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3953图第六章保存用户组件的IFML模型我们定义了三个页面,分别为用户管理、用户详情和编辑用户,其中第一个页面被标记为默认,当管理员输入子区域用户时显示“用户管理”页定义“搜索”用户和“用户列表”组件。Search user是一个“Form”类型的组件这允许定义组件搜索用户和用户列表之间的链接,将输入的文本作为参数发送以过滤列表。这些组件在每个图表中重复,显示元素(实体)列表,并允许根据定义的参数过滤列表从用户列表组件中,我们可以导航到两个新页面,并导航到对列表中选定用户的操作。 可以看到所选用户的详细信息 在一个名为User details的新页面中,该页面包含类型为“Detail”的组件。“Details”链接允许导航到与用户实体相关联的组件,方法是将用户的id作为参数发送。要编辑选定的用户,我们从用户列表导航到新页面Edit user,其中包括一个类型为“Form”的组件该组件将加载用户数据,允许修改。编辑完成后,将提供保存用户数据的选项,如保存用户操作。保存数据的结果可能是成功或失败。在第二种情况下,消息被发送到位于该地区主页的通知中心这些组件被重用以创建新用户。我们定义了一个名为Create User的操作,它也调用了EditUser组件,但没有任何用户ID。然后,该组件将不会加载任何用户数据,允许插入新用户的数据。相同的Save user操作用于保存新用户的数据。还有一个链接“删除”到执行删除用户的组件。图6显示了可重用的SaveUser组件的IFML模型。54A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39图第七章“公共用户”站点视图的“任务”页的IFML模型5.2.2普通用户视图与管理员站点类似,通用用户站点分为三个主要区域:任务、案例和流程,允许已识别的用户在其参与的流程中管理其工作作为图7中的一个例子,我们展示了Tasks区域的IFML建模,其中包含与任务概念相关的页面,允许用户从他们工作的流程和案例中我们定义了三个名为Tasks、Task details和Select User的页面,其中第一个页面被标记为Home,默认显示任务列表和用于搜索列表的列出任务的选项有:分配给已登录用户的任务、可用任务或未分配用户的任务、已关闭任务和按名称过滤任务。如前所述,这些选项是通过Search和Task list组件上的链接定义的可以对选定任务执行的操作包括:接受、释放、重新分配或执行。只能对分配给用户角色的任务执行take操作。对于重新分配过程,一旦选择了任务,就必须选择将任务分配给的用户。为此,在任务列表和用户选择的组件之间定义了一个链接,该链接位于新的选择用户页面中。该组件还链接到任务组件,任务组件最终将更新任务,更改分配的用户。作为一个例子,我们描述了选项Take task和Executetask。图8(a)显示了对应于Take任务选项的一个。我们定义了一个用于更新任务的中心组件,Take任务组件,它接收三个参数:任务id(操作的输入),A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)3955见图8。 通用用户站点的IFML模型:(a)接受任务选项和(b)执行任务选项视图由组件GetCurrentUserKey提供,以及实际时间(来自系统),该实际时间将被设置为任务被分配给用户的时间。分配结果可以是成功或失败,并由两个输出表示。图8(b)显示了Execute任务选项。在这种情况下,我们还定义了一个执行任务的中心组件,但首先要执行的是允许用户插入与任务中或进程中全局定义的数据字段相对应的数据。这是用新页面表示的,其中包含一个“Form”组件,该组件将负责从任务变量中获取数据。然后,更新任务将接收此数据作为参数,以及实际时间(来自系统),该时间将被设置为任务完成了执行结果可以是成功或失败,并由两个输出表示。6概念证明作为对第5节中给出的通用BPMS门户定义的验证,一个功能原型,我们使用它通过几个例子进行实验6.1原型我们实现了一个符合基于IFML的模型的Web应用程序。此应用程序通过通用流程引擎API与Activiti流程引擎连接。该解决方案的一般体系结构基于第4节中介绍的通用门户体系结构(图1)。表示层使用HTML5和JavaScript以及其他用于结构化代码(AngularJS)和样式表和布局定义(Bootstrap)的框架实现为单页面应用程序。这种客户端应用程序仅在需要新数据或操作时执行服务器调用,减少往返并增强用户体验。一般IFML模型中的区域(任务,流程和案例)被实现为单独的HTML页面(即AngularJS中的模板片段)以及它们自己的控制器。每个控制器使用一个代理,解决与服务器端组件的通信后端将前端调用调整为依赖于平台的流程引擎操作。 有一个使用Jersey实现的HTTP REST API,它提供我们的统一流程引擎API(图中的UI服务层)的具体实例,ure1)。他们的方法被组织成三个组成部分,使用Activi-56A. Delgado et al. /Electronic Notes in Theoretical Computer Science 329(2016)39tiEngineAdapter(图1中的集成层),用于与Activiti的流程引擎进行通信。数据模型是使用JavaScript对象表示法(JSON)作为轻量级数据交换格式实现的。还有一个安全组件,封装了用户身份验证的常见功能。我们开发了通用流程引擎API的部分实现。特别地,我们省略了那些用于处理管理任务的任务,我们关注与流程执行相关的任务,例如列出已安装的流程、初始化流程案例、列出给定角色的未决任务以及执行任务。6.2应用实例我们使用一个非常基本但完整的案例研究,使我们能够详尽地实验与我们的原型。这个过程是关于处理假期请求的,并附带了Activiti分发。登录后,用户可以在菜单中看到进程,并选择一个进程,他/她可以启动该进程的新实例(案例)。图9显示了流程视图选项卡和引擎中的现有流
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功