CN116502196A - 一种工作流权限管理方法以及相关装置 - Google Patents

一种工作流权限管理方法以及相关装置 Download PDF

Info

Publication number
CN116502196A
CN116502196A CN202210055662.3A CN202210055662A CN116502196A CN 116502196 A CN116502196 A CN 116502196A CN 202210055662 A CN202210055662 A CN 202210055662A CN 116502196 A CN116502196 A CN 116502196A
Authority
CN
China
Prior art keywords
workflow
target object
authority
level
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210055662.3A
Other languages
English (en)
Inventor
温冠超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210055662.3A priority Critical patent/CN116502196A/zh
Publication of CN116502196A publication Critical patent/CN116502196A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种工作流权限管理方法,本申请可应用于地图领域。本申请包括:接收来自目标对象的工作流访问请求,工作流访问请求携带目标对象的权限等级;根据工作流访问请求,确定工作流的权限设置信息;根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作;响应于目标对象的工作流访问请求,根据目标对象的可执行请求操作,对工作流进行处理。通过对工作流按照目标对象的不同权限等级划分不同的操作权限,以实现工作流的细粒度管理。使得不同权限等级的目标对象在请求访问同一条工作流时,依据目标对象各自的操作权限确定该目标对象的可执行请求操作。

Description

一种工作流权限管理方法以及相关装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种工作流权限管理方法以及相关装置。
背景技术
随着计算机技术的发展,针对业务需求,为业务需求创建包括一个或多个任务节点的工作流,即可通过执行工作流的方式来实现相应业务。目前,在使用工作流的场景中,通常基于对象(或者称为用户)粒度的数据隔离,因此工作流仅供授权的目标对象执行请求操作。
随着业务的发展,在使用工作流的场景中,衍生出多个对象对同一个工作流的访问请求场景。而对于多对象使用工作流的场景,不同的对象的可信任等级往往并不相同。对于某些可信任等级较低的对象,无法阻止该对象对工作流的恶意篡改,导致业务异常。
发明内容
本申请实施例提供了一种工作流权限管理方法,通过对工作流按照目标对象的不同权限等级划分不同的操作权限,以实现工作流的细粒度管理。使得不同权限等级的目标对象在请求访问同一条工作流时,依据目标对象各自的操作权限确定该目标对象的可执行请求操作依据工作流中业务实例队列的顺序,执行工作流中包括的一个或多个业务实例,以确保业务实例的正常执行。
有鉴于此,本申请一方面提供一种工作流权限管理方法,包括:
接收来自目标对象的工作流访问请求,工作流访问请求携带目标对象的权限等级,目标对象的权限等级为以下权限等级中的一种:拥有者权限等级、所属组权限等级或者第三方权限等级;
根据工作流访问请求,确定工作流的权限设置信息,工作流的权限设置信息指示相应权限等级的目标对象访问工作流时的操作权限,操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限;
根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作,可执行请求操作包括以下至少一项:读操作权限、写操作、执行操作或者禁止操作;
响应于目标对象的工作流访问请求,根据目标对象的可执行请求操作,对工作流进行处理,包括:
当目标对象的工作流访问请求用于请求执行工作流,且,目标对象的可执行请求操作包括执行操作权限,从数据库中读取工作流;
执行工作流中包括的一个或多个业务实例,其中,一个或多个业务实例的执行顺序由工作流指示;
将工作流中包括的一个或多个业务实例的执行记录,保存至数据库。
本申请另一方面提供一种工作流权限管理装置,包括:
收发模块,用于接收来自目标对象的工作流访问请求,工作流访问请求携带目标对象的权限等级,目标对象的权限等级为以下权限等级中的一种:拥有者权限等级、所属组权限等级或者第三方权限等级;
处理模块,用于根据工作流访问请求,确定工作流的权限设置信息,工作流的权限设置信息指示相应权限等级的目标对象访问工作流时的操作权限,操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限;
处理模块,还用于根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作,可执行请求操作包括以下至少一项:读操作权限、写操作、执行操作或者禁止操作;
处理模块,还用于当目标对象的工作流访问请求用于请求执行工作流,且,目标对象的可执行请求操作包括执行操作权限,从数据库中读取工作流;
处理模块,还用于执行工作流中包括的一个或多个业务实例,其中,一个或多个业务实例的执行顺序由工作流指示;
处理模块,还用于将工作流中包括的一个或多个业务实例的执行记录,保存至数据库。
在一种可能的实现方式中,
收发模块,还用于获取工作流访问请求中的目标对象的身份标识;
收发模块,还用于获取工作流的拥有者标识;
处理模块,还用于当目标对象的身份标识与工作流的拥有者标识一致,则确定目标对象的权限等级为拥有者权限等级;
处理模块,还用于根据工作流的权限设置信息中拥有者权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
在一种可能的实现方式中,
处理模块,还用于当目标对象的身份标识与工作流的拥有者标识不一致,且目标对象的所属组标识与工作流的所属组标识一致,则确定目标对象的权限等级为所属组权限等级;
处理模块,还用于根据工作流的权限设置信息中所属组权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
在一种可能的实现方式中,
处理模块,还用于当目标对象的所属组标识与工作流的所属组标识不一致,则确定目标对象的权限等级为第三方权限等级;
处理模块,还用于根据工作流的权限设置信息中第三方权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
在一种可能的实现方式中,
处理模块,还用于当目标对象的工作流访问请求用于请求读取工作流,且,目标对象的可执行请求操作包括读操作权限,从数据库中读取工作流;
收发模块,还用于将数据库中存储的工作流数据,返回至目标对象。
在一种可能的实现方式中,
处理模块,还用于当目标对象的工作流访问请求用于请求编辑工作流,且,目标对象的可执行请求操作包括写操作权限,从数据库中读取工作流;
收发模块,还用于接收来自目标对象的工作流编辑请求;
处理模块,还用于根据工作流编辑请求对工作流进行编辑,得到编辑后的工作流;
收发模块,还用于将编辑后的工作流更新至数据库。
在一种可能的实现方式中,
收发模块,还用于接收来自目标对象的中止请求;
处理模块,还用于根据中止请求停止工作流的执行操作。
本申请另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
处理器用于执行存储器中的程序,包括如下步骤:
接收来自目标对象的工作流访问请求,工作流访问请求携带目标对象的权限等级,目标对象的权限等级为以下权限等级中的一种:拥有者权限等级、所属组权限等级或者第三方权限等级;
根据工作流访问请求,确定工作流的权限设置信息,工作流的权限设置信息指示相应权限等级的目标对象访问工作流时的操作权限,操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限;
根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作,可执行请求操作包括以下至少一项:读操作权限、写操作、执行操作或者禁止操作;
响应于目标对象的工作流访问请求,根据目标对象的可执行请求操作,对工作流进行处理。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提出一种工作流权限管理方法,对工作流按照目标对象的不同权限等级划分不同的操作权限,以实现工作流的细粒度管理。使得不同权限等级的目标对象在请求访问同一条工作流时,依据目标对象各自的操作权限确定该目标对象的可执行请求操作。依据工作流中业务实例队列的顺序,执行工作流中包括的一个或多个业务实例,以确保业务实例的正常执行。
附图说明
图1是本申请实施例提供的一种工作流执行方法的实施环境的示意图;
图2为本申请实施例提出的一种工作流权限管理方法的实施例示意图;
图3为本申请实施例提出的又一种工作流权限管理方法的实施例示意图;
图4为本申请实施例提出的又一种工作流权限管理方法的实施例示意图;
图5为本申请实施例提出的又一种工作流权限管理方法的实施例示意图;
图6为本申请实施例提出的又一种工作流权限管理方法的实施例示意图;
图7为本申请实施例涉及的一种应用场景示意图;
图8为本申请实施例涉及的又一种应用场景示意图;
图9a为工作流的权限设置示意图;
图9b为工作流的所属组设置示意图;
图9c为本申请实施例中无权限操作通知示意图;
图10为本申请实施例中工作流的数据结构示意图;
图11为本申请实施例中业务实例队列的示意图;
图12为本申请实施例中工作流的业务实例执行示意图;
图13为本申请实施例中一种可视化界面示意图;
图14为本申请实施例中一种路径语法表达式的示意图;
图15为本申请实施例中又一种路径语法表达式的示意图;
图16为本申请实施例涉及的工作流运行结果示意图;
图17为本申请实施例中编辑工作流的一种示意图;
图18为本申请实施例中编辑工作流的又一种示意图;
图19为本申请实施例中一种工作流权限管理装置示意图;
图20是本申请实施例提供的一种服务器结构示意图;
图21是本申请实施例提供的一种终端设备结构示意图。
具体实施方式
本申请实施例提供了一种工作流权限管理方法,对工作流按照目标对象的不同权限等级划分不同的操作权限,以实现工作流的细粒度管理。使得不同权限等级的目标对象在请求访问同一条工作流时,依据目标对象各自的操作权限确定该目标对象的可执行请求操作。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面对本申请涉及到的名词进行说明。
变量(parameter),来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中),但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
通过变量,能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字。变量可以保存程序运行时用户输入的数据(如使用InputBox函数在屏幕上显示一个对话框,然后把用户键入的文本保存到变量中)、特定运算的结果以及要在窗体上显示的一段数据等。
变量包括变量名和取值。变量在声明或定义时,能够确定变量的变量名,后续可以为该变量赋值,得到该变量的取值。变量还可以具有变量类型,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。例如,使用strName来说明Name变量保存字符串型数据。格式:变量类型+变量名字,例如,strname中的str是字符串(string)的缩写,Name则是变量名。以C#命名方法为例进行说明,变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。例如,可以创建一个名为Click Count的变量来存储用户单击Web页面上某个对象的次数。在程序执行的过程中,可以为变量赋值,以改变该变量的取值。
业务流程建模符号(Business Process Modeling Notation,BPMN),是一种业务流程的规范。它定义了一个业务流程图,该业务流程图中包含一个或多个图形对象,每个图形对象都对应着一个活动及用于定义这些活动执行顺序的流程控制器。
工作流引擎提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括了流程的节点管理、流向管理、流程样例管理等重要功能。在工作流引擎中,有些变量是全局的,有些是局部的。在工作流执行时,对于同一变量,应当统一。例如,后面的任务节点可能需要用到前面的任务节点产生的变量,对于该变量,则需要确定与前面的任务节点一致的取值。
本申请实施例涉及云技术,下面对云技术进行简单介绍。
云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请涉及云技术中的云计算、云存储和管理工具等技术,对工作流执行过程中的变量进行存储和读取。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在基础设施即服务(infrastructure as a service,IaaS)层上可以部署平台即服务(platform as a service,PaaS)层,PaaS层之上再部署软件即服务(software as a service,SaaS)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID entity,ID)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(redundant array of independent disk,RAID)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(database management system,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
下面对本申请的实施环境进行说明。
图1是本申请实施例提供的一种工作流执行方法的实施环境的示意图。该实施环境包括终端101,或者该实施环境包括终端101和工作流执行平台102。终端101通过无线网络或有线网络与工作流执行平台102相连。
终端101能够是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器或MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器,膝上型便携计算机中的至少一种。终端101安装和运行有支持工作流执行的应用程序,例如,该应用程序能够是编译程序、汇编程序等语言处理应用。
工作流执行平台102包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。工作流执行平台102用于为支持工作流执行的应用程序提供后台服务。可选地,工作流执行平台102承担主要处理工作,终端101承担次要处理工作;或者,工作流执行平台102承担次要处理工作,终端101承担主要处理工作;或者,工作流执行平台102或终端101分别能够单独承担处理工作。或者,工作流执行平台102和终端101两者之间采用分布式计算架构进行协同计算。
可选地,该工作流执行平台102包括至少一台服务器1021以及数据库1022,该数据库1022用于存储数据,在本申请实施例中,该数据库1022中能够存储变量,为至少一台服务器1021提供数据服务。可选地,该工作流执行平台102也可以不包括该数据库1022,服务器1021可以将变量存储于服务器的内存中。
服务器能够是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端能够是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
本领域技术人员能够知晓,上述终端101、服务器1021的数量能够更多或更少。比如上述终端101、服务器1021能够仅为一个,或者上述终端101、服务器1021为几十个或几百个,或者更多数量,本申请实施例对终端或服务器的数量和设备类型不加以限定。
本申请中涉及拥有者权限等级(user,U)、所属组权限等级(group,G),和第三方权限等级(other,O)。因此,本申请提出的工作流权限管理方法所涉及的包括上述拥有者权限等级、所属组权限等级和第三方权限等级的模型,也可以理解为本申请提出的工作流权限管理方法涉及UGO模型,其中,UGO模型中的U指的是拥有者权限等级,UGO模型中的G指的是所属组权限等级,UGO模型中的O指的是第三方权限等级。
示例性的,本申请实施例中以服务器执行该工作流权限管理方法为例进行说明。可以理解的是,该工作流权限管理方法还可以应用于终端中,即由终端执行该工作流权限管理方法。请参阅图2,图2为本申请实施例提出的一种工作流权限管理方法的实施例示意图。
本申请实施例提出的一种工作流权限管理方法包括:
201、服务器接收来自目标对象的工作流访问请求,工作流访问请求携带目标对象的权限等级。
本实施例中,当对象(或者用户)需要访问某个工作流时,该用户作为目标对象(或者目标用户)。本申请实施例中,对象可以替换为用户。
该目标对象的工作流访问请求可以是用户通过终端的界面(例如图形界面)或者输入设备(包括但不限于:鼠标、键盘或者可触控屏幕),向终端输入该工作流访问请求。
一种可能实现方式中,终端将该工作流访问请求转发至服务器,由服务器和部署于服务器的数据库协同执行后续操作。在又一种可能的实现方式中,终端自身处理该工作流,由终端和部署于服务器的数据库执行后续操作。
可以理解的是,本申请实施例涉及的用户(或者目标对象)可以是运行于云端的虚拟机。则服务器接收来自目标对象的工作流访问请求。
工作流访问请求中携带目标对象的权限等级,本申请实施例中将用户(或者对象)的权限等级分为三种:拥有者权限等级(user,或者称为所有者权限等级)、所属组权限等级(group),和第三方权限等级(other,又称为其它人的权限等级)。
可以理解的是,本申请实施例中涉及用户的权限等级可以设置更多种类或者更少种类,例如用户的权限等级包括:权限等级A、权限等级B、权限等级C、权限等级D和权限等级E。又例如:用户的权限等级包括:权限等级A和权限等级B。
对于不同权限等级的用户,可以设置相应的关于工作流的操作权限。不同权限等级的用户,对于工作流的操作权限可以相同也可以不同。本申请实施例中,以拥有者权限等级、所属组权限等级,和第三方权限等级为例进行说明。示例性的,上述三个权限等级中,拥有者权限等级对于该工作流的操作权限最高,可以执行关于工作流的所有操作;所属组权限等级和第三方权限等级,对于该工作流的操作权限较低,可以执行关于工作流的部分操作。
在创建该工作流时,可以设置该工作流的多种权限等级。对于每一种权限等级,可以设置该权限等级对应的操作权限。所设置的工作流的权限等级,在本申请实施例中称为工作流的权限设置信息。
操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限。具体的,拥有读操作权限的用户可以读取(或者查看)该工作流;拥有写操作权限的用户可以编辑(或者写入)该工作流;拥有执行操作权限的用户可以执行该工作流;对于没有读操作权限、写操作权限和执行操作权限的用户,可以认为该用户的操作权限是禁止操作权限。换言之,拥有禁止操作权限的用户无法对该工作流执行任何处理。
示例性的,请参阅图9a,图9a为工作流的权限设置示意图。针对工作流A,可以设置拥有者权限等级、所属组权限等级和第三方权限等级中每个权限等级所对应的操作权限。例如图9a中示意的,拥有者权限等级的对象的操作权限是:“查看”(读操作权限)和“执行”(执行操作权限);所属组权限等级的对象的操作权限是:“查看”(读操作权限)和“执行”(执行操作权限);第三方权限等级的对象的操作权限是:“查看”(读操作权限)和“执行”(执行操作权限)。
创建工作流时,创建该工作流的对象(或者用户),作为该工作流的拥有者(或者称为创建者),该对象具有该工作流的拥有者权限等级。
进一步的,在创建工作流时或者编辑工作流时,可以对该工作流的所属组进行编辑。本申请中所属组又称为用户组。该工作流的所属组中的用户拥有该工作流的所属组权限。例如图9b所示,图9b为工作流的所属组设置示意图。以设置工作流A的所属组为例,该工作流A的所属组包括“xxx用户组”和“yyy用户组”。“xxx用户组”和“yyy用户组”中的对象(或者用户或者成员)具有该工作流A的所属组权限等级。
在创建对象(或者用户)时,会将该对象(或者用户)划分至某个所属组,该所属组中所有的对象对于某个工作流具有相同的权限等级。例如表1所示:
对象 所属组
User-A Group-A
User-B Group-B
表1
对于不是该工作流的拥有者的对象(或者用户),和不是该工作流的所属组中的对象(或者用户),认为具有该工作流的第三者权限等级。
202、服务器根据工作流访问请求,确定工作流的权限设置信息,工作流的权限设置信息指示相应权限等级的目标对象访问工作流时的操作权限。
本实施例中,根据工作流访问请求,确定工作流的权限设置信息,工作流的权限设置信息指示相应权限等级的目标对象访问工作流时的操作权限。操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限。
作为一种可能的实现方式,本申请中,读操作权限以“r”表示,写操作权限以“w”表示,执行操作权限以“x”表示;当某个对象没有上述读操作权限、写操作权限或者执行操作权限中任一一种操作权限,则使用“-”表示;当某个对象没有上述所有的权限(读操作权限、写操作权限和执行操作权限),则使用“---”表示,该对象拥有的权限为禁止操作权限。
以工作流的权限等级包括拥有者权限等级、所属组权限等级和第三方权限等级为例进行说明。以一组字符串指示该工作流的权限设置信息,该字符串中每一个字符位置分别对应一种权限等级下的操作权限。例如:该字符串包括9个字符。该9个字符中,第1~3个字符指示拥有者权限等级的操作权限。第1个字符指示拥有者权限等级是否具有读操作权限,当第1个字符为“r”则指示拥有者等级权限的对象具有读操作权限,当第1个字符为“-”则指示拥有者等级权限的对象不具有读操作权限;第2个字符指示拥有者权限等级是否具有写操作权限,当第2个字符为“w”则指示拥有者等级权限的对象具有写操作权限,当第2个字符为“-”则指示拥有者等级权限的对象不具有写操作权限;第3个字符指示拥有者权限等级是否具有执行操作权限,当第3个字符为“x”则指示拥有者等级权限的对象具有执行操作权限,当第3个字符为“-”则指示拥有者等级权限的对象不具有执行操作权限。第4~6个字符指示所属组权限等级的操作权限,具体的指示方式与第1~3个字符类似,此处不作赘述。第7~9个字符指示第三者权限等级的操作权限,具体的指示方式与第1~3个字符类似,此处不作赘述。以第三者权限等级为例,当第7~9个字符为“---”,指示第三者权限等级的操作权限为禁止操作权限,换言之,对于拥有第三者权限等级的对象,不能对该工作流执行读操作、写操作和执行操作。
可以理解的是,该工作流的权限设置信息可以采用其它方式表示,以工作流的权限等级包括拥有者权限等级、所属组权限等级和第三方权限等级为例进行说明。该工作流的权限设置信息可以使用一组比特串表示,该比特串的长度为9比特位。该比特串中每一个比特位置分别对应一种权限等级下的操作权限。例如:该比特串包括9个比特。该9个比特中,第1~3个比特指示拥有者权限等级的操作权限。第1个比特指示拥有者权限等级是否具有读操作权限,当第1个比特为“1”则指示拥有者等级权限的对象具有读操作权限,当第1个比特为“0”则指示拥有者等级权限的对象不具有读操作权限;第2个比特指示拥有者权限等级是否具有写操作权限,当第2个比特为“1”则指示拥有者等级权限的对象具有写操作权限,当第2个比特为“0”则指示拥有者等级权限的对象不具有写操作权限;第3个比特指示拥有者权限等级是否具有执行操作权限,当第3个比特为“1”则指示拥有者等级权限的对象具有执行操作权限,当第3个比特为“0”则指示拥有者等级权限的对象不具有执行操作权限。
或者,根据工作流的权限等级拓展上述工作流的权限设置信息所占用的长度,例如工作流包括4个权限等级时,工作流的权限设置信息所占用的长度为12个字符位置。
又或者,根据工作流的权限等级缩短上述工作流的权限设置信息所占用的长度,例如工作流包括2个权限等级时,工作流的权限设置信息所占用的长度为6个字符位置。
203、服务器根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作。
本实施例中,根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作。目标对象的权限等级可以由目标对象的身份标识和目标对象的所属组标识指示。示例性的,对象A的身份标识为“User-A”,对象B的身份标识为“User-B”。当对象A的所属组为所属组A,则对象A的所属组标识为“Group-A”;当对象A的所属组为所属组B,则对象A的所属组标识为“Group-B”。当对象B的所属组为所属组A,则对象B的所属组标识为“Group-A”。当对象B的所属组为所属组B,则对象B的所属组标识为“Group-B”。
示例性的,工作流的权限设置信息如表2所示:
工作流标识 工作流名称 权限设置信息 拥有者 所属组
10001 Workflow-A rwxr----- User-A Group-A
10002 Workflow-B rwx------ User-B Group-B
表2
对于工作流A(Workflow-A),该工作流的拥有者权限等级的操作权限为“rwx”,当目标对象为该工作流的拥有者时,目标对象具有该工作流的拥有者权限等级,目标对象对该工作流可执行请求操作包括:读操作、写操作和执行操作。该工作流的所属组权限等级的操作权限为“r--”,当目标对象为该工作流的所属组中的对象时,目标对象具有该工作流的所属组权限等级,目标对象对该工作流可执行请求操作包括:读操作。该工作流的第三方权限等级的操作权限为“---”,当目标对象既不是该工作流的拥有者又不是该工作流的所属组中的对象时,目标对象具有该工作流的第三方权限等级,目标对象对该工作流可执行请求操作不包括:读操作、写操作和执行操作。换言之,该目标对象对该工作流的可执行请求操作为禁止操作。
对于工作流B(Workflow-B),该工作流的拥有者权限等级的操作权限为“rwx”,当目标对象为该工作流的拥有者时,目标对象具有该工作流的拥有者权限等级,目标对象对该工作流可执行请求操作包括:读操作、写操作和执行操作。该工作流的所属组权限等级的操作权限为“---”,当目标对象为该工作流的所属组中的对象时,目标对象具有该工作流的所属组权限等级,目标对象对该工作流可执行请求操作包括:禁止操作。该工作流的第三方权限等级的操作权限为“---”,当目标对象既不是该工作流的拥有者又不是该工作流的所属组中的对象时,目标对象具有该工作流的第三方权限等级,目标对象对该工作流的可执行请求操作为禁止操作。
204、服务器响应于目标对象的工作流访问请求,根据目标对象的可执行请求操作,对工作流进行处理。
本实施例中,当确定目标对象访问工作流时的可执行请求操作后,响应于目标对象的工作流访问请求,根据目标对象的可执行请求操作对工作流进行处理。
具体的,当目标对象的工作流访问请求为对工作流执行读操作,且目标对象的可执行请求操作包括读操作。则响应于目标对象的工作流访问请求,对工作流执行读操作。
具体的,当目标对象的工作流访问请求为对工作流执行写操作,且目标对象的可执行请求操作包括写操作。则响应于目标对象的工作流访问请求,对工作流执行写操作。
具体的,当目标对象的工作流访问请求为对工作流执行执行操作,且目标对象的可执行请求操作包括执行操作。则响应于目标对象的工作流访问请求,对工作流执行执行操作。
具体的,当目标对象的可执行请操作包括禁止操作,即目标对象无法对工作流执行读操作、写操作和执行操作时。无论目标对象的工作流访问请求用于请求对工作流执行任何操作,都返回无权限操作通知。
当目标对象的工作流访问请求所请求对工作流执行的操作,与目标对象的可执行请求操作不相符时,同样返回无权限操作通知。例如图9c所示,图9c为本申请实施例中无权限操作通知示意图。以工作流“同步API测试IOA鉴权”为例,当对象A的工作流访问请求用于请求对该工作流执行读操作,且该对象A的可执行请求操作不包括读操作时,终端界面显示无权限操作通知,即图中的“请求错误”。
服务器确定该目标对象具有执行操作权限,进入步骤205。
205、服务器从数据库中读取工作流数据。
本实施例中,服务器从数据库中读取该工作流的相关数据。示例性的,工作流的数据结构如图10所示,图10中示意的是使用工作流定义语言所描述的工作流数据结构。该工作流定义语言可以采用JavaScript对象简谱(javascript object notation,JSON)或者其它语言,本申请对此不作限制。
该工作流数据结构具体包括:该工作流的业务实例队列从哪个业务实例(App)开始,至哪个业务实例结束。对于某个业务实例,工作流数据包括但不限于以下信息:业务实例描述、参数键(key),参数值(value),参数类型,参数描述、业务实例采用的App模板、业务实例在可视化界面(可视化界面或者称为前端画布)的坐标位置、在工作流中表示业务实例的唯一标识(id)、指向的业务实例队列中上一个业务实例id、指向的业务实例队列中下一个业务实例id、业务实例的输出结果、业务实例出错时的错误信息、业务实例的状态、业务实例执行的开始时间和业务实例执行的结束时间。
206、服务器执行工作流中包括的一个或多个业务实例。
本实施例中,服务器获取工作流数据后,根据目标对象的工作流访问请求执行该工作流。具体的,依据工作流中业务实例队列的顺序,执行工作流中包括的一个或多个业务实例。
为了便于理解工作流中的业务实例队列,请参阅图11,图11为本申请实施例中业务实例队列的示意图。以工作流包括:开始触发器、App实例_1、App实例_2、App实例_3和App实例_4为例进行说明。其中,该业务实例队列中“开始触发器”作为起始执行的业务实例。然后,依次执行App实例_1和App实例_2。执行完App实例_2后,可以同时执行App实例_3和App实例_4,也可以根据指令选择其中一个业务实例执行,本申请对此不作限制。
207、服务器将工作流中包括的一个或多个业务实例的执行记录,保存至数据库。
本实施例中,服务器对工作流中包括的一个或多个业务实例执行完毕后,可以将上述一个或多个业务实例的执行记录保存至数据库。为了便于理解,以执行“测试工作流”工作流为例进行说明。请参阅图16,图16为本申请实施例涉及的工作流运行结果示意图。当服务器执行“测试工作流”后,将工作流中包括的“Cron定时器”、“发送企业通信类应用消息/文件”和“Lua脚本执行”这三个业务实例的执行记录保存至数据库。并且,将这三个业务实例的执行记录展示在可视化界面的“应用运行结果”子界面中。具体的,“应用运行结果”子界面中可以响应于对象的点选操作,展示不同业务实例的执行记录。例如,图16中展示的是“Lua脚本执行”业务实例的执行记录,包括:应用名称、应用说明、运行开始、运行结束、运行参数、输出数据和异常信息。
本申请实施例中,对工作流按照目标对象的不同权限等级划分不同的操作权限,以实现工作流的细粒度管理。使得不同权限等级的目标对象在请求访问同一条工作流时,依据目标对象各自的操作权限确定该目标对象的可执行请求操作。依据工作流中业务实例队列的顺序,执行工作流中包括的一个或多个业务实例,以确保业务实例的正常执行。
在图2示意的实施例基础上,请参阅图3,图3为本申请实施例提出的又一种工作流权限管理方法的实施例示意图。本申请实施例提出的一种工作流权限管理方法,还包括:
301、服务器获取工作流访问请求中目标对象的身份标识。
本实施例中,工作流访问请求中携带目标对象的身份标识,当服务器或者终端接收工作流访问请求后,获取工作流访问请求中目标对象的身份标识。
示例性的,该对象A的身份标识为“User-A”。
该工作流访问请求中还可以携带目标对象的所属组标识,例如:对象A的所属组为所属组A,则对象A的所属组标识为“Group-A”。
302、服务器获取工作流的拥有者标识。
本实施例中,获取工作流的拥有者标识,以前述表2为例,工作流A“Workflow-A”的拥有者标识为“User-A”,工作流B“Workflow-B”的拥有者标识为“User-B”。
需要说明的是,步骤301与步骤302之间的执行顺序本申请实施例中不做限制,可以是先执行步骤301,后执行步骤302;也可以是先执行步骤302,后执行步骤301。
当执行完步骤301和步骤302后,根据目标对象的身份标识和工作流的拥有者标识之间的关系,执行步骤303、或者步骤305,或者步骤307。
303、当目标对象的身份标识与工作流的拥有者标识一致,则服务器确定目标对象的权限等级为拥有者权限等级。
本实施例中,首先检测目标对象的身份标识与工作流的拥有者标识是否一致。当目标对象的身份标识与工作流的拥有者标识一致时,确定目标对象的权限等级为拥有者权限等级。
304、服务器根据工作流的权限设置信息中拥有者权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
本实施例中,确定目标对象的权限等级为拥有者权限等级之后,根据工作流的权限设置信息中拥有者权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。例如:工作流的拥有者权限等级的操作权限为“rwx”,则目标对象访问工作流时的可执行请求操作包括:读操作、写操作和执行操作。
305、当目标对象的身份标识与工作流的拥有者标识不一致,且目标对象的所属组标识与工作流的所属组标识一致,则服务器确定目标对象的权限等级为所属组权限等级。
本实施例中,首先检测目标对象的身份标识与工作流的拥有者标识是否一致。当目标对象的身份标识与工作流的拥有者标识不一致时,则进一步校验目标对象的所属组标识与工作流的所属组标识是否一致。若目标对象的所属组标识与工作流的所属组标识一致,则确定目标对象的权限等级为所属组权限等级。
例如:工作流A“Workflow-A”的拥有者为“User-A”,对象B“User-B”访问该工作流A时。对象B的身份标识“User-B”与工作流A的拥有者标识“User-A”不一致,则进一步校验对象B的所属组标识与工作流的所属组标识是否一致。对象B的所属组为“Group-A”,工作流A的所属组为“Group-A”因此,对象B的所属组标识与工作流A的所属组标识一致,确定对象B的权限等级为所属组权限等级。
306、根据工作流的权限设置信息中所属组权限等级的操作权限,服务器确定目标对象访问工作流时的可执行请求操作。
本实施例中,确定目标对象的权限等级为所属组权限等级之后,根据工作流的权限设置信息中所属组权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。例如:工作流的所属组权限等级的操作权限为“r--”,则目标对象访问工作流时的可执行请求操作包括:读操作。
307、当目标对象的所属组标识与工作流的所属组标识不一致,则服务器确定目标对象的权限等级为第三方权限等级。
本实施例中,首先检测目标对象的身份标识与工作流的拥有者标识是否一致。当目标对象的身份标识与工作流的拥有者标识不一致时,则进一步校验目标对象的所属组标识与工作流的所属组标识是否一致。若目标对象的所属组标识与工作流的所属组标识不一致,则确定目标对象的权限等级为第三方权限等级。
308、服务器根据工作流的权限设置信息中第三方权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
本实施例中,确定目标对象的权限等级为第三方权限等级之后,根据工作流的权限设置信息中第三方权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。例如:工作流的第三方权限等级的操作权限为“---”,则目标对象访问工作流时的可执行请求操作包括:禁止操作。即目标对象不可以访问工作流。
本申请实施例中,服务器接收来自目标对象的工作流访问请求后,服务器分别获取工作流访问请求中目标对象的身份标识和工作流的拥有者标识。通过检测目标对象的身份标识和工作流的拥有者标识,确定该目标对象是否具有拥有者权限等级,缩短确定目标对象权限等级的流程,提升确定目标对象访问工作流时的可执行请求操作的响应速度。当目标对象的身份标识和工作流的拥有者标识不一致,则进一步检测目标对象的所属组标识与工作流的所属组标识是否一致。通过检测目标对象的所属组标识与工作流的所属组标识,确定该目标对象是否具有所属组权限等级,缩短确定目标对象权限等级的流程,提升确定目标对象访问工作流时的可执行请求操作的响应速度。目标对象的身份标识和工作流的拥有者标识不一致,且,目标对象的所属组标识与工作流的所属组标识不一致,则确定目标对象的权限等级为禁止操作权限。
当确定目标对象访问工作流时的可执行请求操作后,在前述实施例的基础上,下面分别介绍本申请实施例中目标对象对工作流的一些具体操作,包括:读取工作流(或者查看工作流)、编辑工作流,以及执行工作流。
首先介绍本申请实施例中是如何读取工作流,请参阅图4,图4为本申请实施例提出的又一种工作流权限管理方法的实施例示意图。本申请提出的工作流权限管理方法,还包括:
401、服务器接收来自目标对象的工作流访问请求,该工作流访问请求用于请求读取该工作流。
402、服务器从数据库中读取工作流数据。该工作流数据包括但不限于:工作流的源数据,工作流的执行日志,工作流的错误信息,工作流的执行结果等。
403、服务器将数据库中存储的工作流数据返回至目标对象。
其次,介绍本申请实施例中如何编辑工作流,请参阅图5,图5为本申请实施例提出的又一种工作流权限管理方法的实施例示意图。本申请提出的工作流权限管理方法,还包括:
501、服务器从数据库中读取工作流数据。
502、服务器接收来自目标对象的工作流编辑请求。
503、服务器根据工作流编辑请求对工作流进行编辑,得到编辑后的工作流。
具体的,例如图17和图18所示,图17为本申请实施例中编辑工作流的一种示意图。图18为本申请实施例中编辑工作流的又一种示意图。
图17中,以创建工作流为例说明服务器是如何编辑工作流。当服务器接收来自目标对象的工作量创建请求后,服务器通过终端展示可视化界面。该可视化界面如图17所示,目标对象可以通过该可视化界面中的展示的多个触发器控件,选择该工作流的起始业务实例。本申请实施例中将业务实例又称为应用(App)。图17中展示的多个触发器控件包括:计划任务(Cron)定时器控件、WebHook触发器控件、错误(Error)触发器控件、手动触发器控件、邮件触发器控件和企业通信类应用客服指令触发器控件。还是以图17为例,当目标对象点选“WebHook触发器”控件后,该工作流的起始业务实例(又称为起始App)是WebHook触发器。
图18中示意的可视化界面,目标对象通过点选某个业务实例的控件可以进入该业务实例的参数设置界面。该参数设置界面中除了固定常量的设置界面,还可以通过路径语法表达式引用其他业务实例的数据。例如图18中,目标对象点选“发送企业通信类应用消息”控件后,进入业务实例“发送企业通信类应用消息”的应用参数设置菜单。在“内容或路径”中,目标对象可以选择多个其他业务实例,使得业务实例“发送企业通信类应用消息”引用其他业务实例的数据。
504、服务器将编辑后的工作流更新至数据库。
可选的,还可以根据目标对象的中止请求停止工作流的执行操作。具体请参阅图6,图6为本申请实施例提出的又一种工作流权限管理方法的实施例示意图。本申请提出的工作流权限管理方法,还包括:
601、服务器接收来自目标对象的中止请求。
本实施例中,服务器可以接收来自目标对象的中止请求,然后根据该中止请求停止工作流的执行操作。以提升对象对工作流的控制能力,便于节省服务器的计算资源。
具体的,目标对象可以在可视化界面中点击中止操作控件,响应于该点击操作,服务器接收来自目标对象的中止请求。示例性的,请参阅图13,图13中“中止操作控件”位于界面的右上角,当对象点击该控件后,触发中止请求。
可以理解的是,该中止请求可以是暂停工作流的执行操作。即目标对象第一次发送中止请求,响应于该中止请求该工作流暂停执行操作。当目标对象第二次发送中止请求,响应于该中止请求该工作流继续执行操作。
该中止请求还可以是停止工作流的执行操作,即目标对象发送中止请求后,响应于该中止请求该工作流停止执行操作且无法继续执行操作。
602、根据中止请求停止工作流的执行操作。
603、将停止工作流的执行记录,保存至数据库。
本申请实施例中,依据工作流中业务实例队列的顺序,执行工作流中包括的一个或多个业务实例,以确保业务实例的正常执行。
在前述实施例的基础上,接下来结合附图介绍本申请实施例涉及的一种应用场景。请参阅图7,图7为本申请实施例涉及的一种应用场景示意图,包括:
S1、目标对象访问工作流,访问操作包括读取工作流、编辑工作流、或者执行工作流。具体的,服务器接收目标对象的工作流访问请求,该工作流访问请求指示目标对象请求对该工作流的访问操作。
S2、服务器获取目标对象访问工作流后,读取目标对象的身份标识。
S3、服务器读取工作流的身份标识。
S4、服务器校验目标对象的身份标识与工作流的拥有者标识是否一致。若一致,则进入步骤S8,若不一致,则进入步骤S4。
S5、服务器校验目标对象的所属组标识与工作流的所属组标识是否一致。若一致,则进入步骤S6,若不一致,则进入步骤S7。
S6、服务器获取工作流的权限设置信息中所属组权限等级的操作权限。
S7、服务器获取工作流的权限设置信息中第三方权限等级的操作权限。
S8、服务器确定目标对象访问工作流时的可执行请求操作。若可执行请求操作包括:读操作、写操作或者执行操作中的一种或多种,则进入步骤S10;若可执行请求操作为禁止操作,则进入步骤S9。
S9、禁止执行操作。
S10、读取工作流、编辑工作流、或者执行工作流。
在前述实施例和应用场景的基础上,接下来介绍本申请实施例中执行工作流方案所涉及的应用场景,请参阅图8,图8为本申请实施例涉及的又一种应用场景示意图,包括:
D1、服务器解析工作流的定义。示例性的,解析得到的工作流的定义,如10所示。
D2、服务器初始化工作流中一个或多个业务实例。
具体的,服务器会提取出工作流中的各个业务实例,以及业务实例中各个参数设置的内容,以及各业务实例间连线的上下游关系,并保存到工作流数据区域中。
D3、服务器确定起始执行的业务实例。
具体的,起始执行的业务实例主要是工作流引擎支持的Redis触发器、Crontab触发器、Email触发器、Webhook触发器四大类触发器的业务实例模板,同时每个工作流有且只有1个触发器业务实例,工作流引擎会自动识别出该触发器业务实例并设置为起始业务实例。工作流引擎为运行于服务器的用于执行该工作流的引擎。可以理解的是,工作流引擎也可以运行于终端上,本申请对此不作限制。
D4、服务器确定一个或多个业务实例的执行顺序,并推入(push)起始执行的业务实例至执行队列。
业务实例的执行队列是一个先进先出(FIFO)的数据结构。为了便于理解,请参阅图12,图12为本申请实施例中工作流的业务实例执行示意图。以该业务实例的执行队列中,依据工作流中一个或多个业务实例的执行顺序进行排列。
D5、服务器检测是否收到该工作流的中止请求。当服务器未收到该工作流的中止请求,则执行步骤D6;当服务器收到该工作流的中止请求,则执行步骤D14。
D6、服务器从执行队列中弹出(pop)需要执行的业务实例。
D7、服务器检测该执行队列是否为空队列。当执行队列为空队列,则执行步骤D14;当执行队列不为空队列,则执行步骤D8。
D8、服务器动态解析该业务实例的路径语法表达式。路径语法表达式是一种实现数据全局引用的语句。为了便于理解,请参阅图14,图14为本申请实施例中一种路径语法表达式的示意图。“Cron定时器”的路径语法表达式为“sys.B”,“发送企业通信类应用消息/文件”的路径语法表达式为“sys.A”。当目标对象设置“Lua脚本执行”业务实例需要引用“发送企业通信类应用消息/文件”业务实例的数据,则在“Lua脚本执行”的“lua代码”中填入“发送企业通信类应用消息/文件”的路径语法表达式“sys.A”。
D9、服务器执行该业务实例。
为了便于理解,请参阅图15,图15为本申请实施例中又一种路径语法表达式的示意图。以执行“Lua脚本执行”业务实例为例,结合图14,“Lua脚本执行”业务实例的运行参数中包括“发送企业通信类应用消息/文件”的数据“hello world”。
D10、服务器检测该业务实例是否执行成功。若执行成功,则进入步骤D12;若执行失败,则进入步骤D11。
D11、服务器检测该业务实例是否是第一次执行错误。若是第一次执行错误,则进入步骤D15;若不是第一次执行错误,则进入步骤D14。
D12、服务器将错误触发器指向该业务实例。
D13、服务器将当前业务实例指向的下一个业务实例推入(push)队列。然后执行步骤D5,直到该工作流的执行队列中无业务实例,结束该循环。
D14、服务器保存工作流的执行记录。
D15、将错误触发器指向该业务实例。
下面对本申请中的工作流权限管理装置进行详细描述,请参阅图19,图19为本申请实施例中一种工作流权限管理装置示意图。本申请实施例中一种工作流权限管理装置1900,包括:
收发模块1901,用于接收来自目标对象的工作流访问请求,工作流访问请求携带目标对象的权限等级,目标对象的权限等级为以下权限等级中的一种:拥有者权限等级、所属组权限等级或者第三方权限等级;
处理模块1902,用于根据工作流访问请求,确定工作流的权限设置信息,工作流的权限设置信息指示相应权限等级的目标对象访问工作流时的操作权限,操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限;
处理模块1902,还用于根据目标对象的权限等级和工作流的权限设置信息,确定目标对象访问工作流时的可执行请求操作,可执行请求操作包括以下至少一项:读操作权限、写操作、执行操作或者禁止操作;
处理模块1902,还用于当目标对象的工作流访问请求用于请求执行工作流,且,目标对象的可执行请求操作包括执行操作权限,从数据库中读取工作流;
处理模块1902,还用于执行工作流中包括的一个或多个业务实例,其中,一个或多个业务实例的执行顺序由工作流指示;
处理模块1902,还用于将工作流中包括的一个或多个业务实例的执行记录,保存至数据库。
在一种可能的实现方式中,
收发模块1901,还用于获取工作流访问请求中的目标对象的身份标识;
收发模块1901,还用于获取工作流的拥有者标识;
处理模块1902,还用于当目标对象的身份标识与工作流的拥有者标识一致,则确定目标对象的权限等级为拥有者权限等级;
处理模块1902,还用于根据工作流的权限设置信息中拥有者权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
在一种可能的实现方式中,
处理模块1902,还用于当目标对象的身份标识与工作流的拥有者标识不一致,且目标对象的所属组标识与工作流的所属组标识一致,则确定目标对象的权限等级为所属组权限等级;
处理模块1902,还用于根据工作流的权限设置信息中所属组权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
在一种可能的实现方式中,
处理模块1902,还用于当目标对象的所属组标识与工作流的所属组标识不一致,则确定目标对象的权限等级为第三方权限等级;
处理模块1902,还用于根据工作流的权限设置信息中第三方权限等级的操作权限,确定目标对象访问工作流时的可执行请求操作。
在一种可能的实现方式中,
处理模块1902,还用于当目标对象的工作流访问请求用于请求读取工作流,且,目标对象的可执行请求操作包括读操作权限,从数据库中读取工作流;
收发模块1901,还用于将数据库中存储的工作流数据,返回至目标对象。
在一种可能的实现方式中,
处理模块1902,还用于当目标对象的工作流访问请求用于请求编辑工作流,且,目标对象的可执行请求操作包括写操作权限,从数据库中读取工作流;
收发模块1901,还用于接收来自目标对象的工作流编辑请求;
处理模块1902,还用于根据工作流编辑请求对工作流进行编辑,得到编辑后的工作流;
收发模块1901,还用于将编辑后的工作流更新至数据库。
在一种可能的实现方式中,
收发模块1901,还用于接收来自目标对象的中止请求;
处理模块1902,还用于根据中止请求停止工作流的执行操作。
图20是本申请实施例提供的一种服务器结构示意图,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务器700上执行存储介质730中的一系列指令操作。
服务器700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图20所示的服务器结构。
图21是本申请实施例提供的一种终端设备结构示意图,如图21所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、销售终端设备(Point of Sales,POS)、车载电脑等任意终端设备,以终端设备为手机为例:
图21示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图21,手机包括:射频(Radio Frequency,RF)电路810、存储器820、输入单元830、显示单元840、传感器850、音频电路860、无线保真(wireless fidelity,WiFi)模块870、处理器880、以及电源890等部件。本领域技术人员可以理解,图21中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图21对手机的各个构成部件进行具体的介绍:
RF电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器880处理;另外,将设计上行的数据发送给基站。通常,RF电路810包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元830可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元830可包括触控面板831以及其他输入设备832。触控面板831,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板831上或在触控面板831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板831。除了触控面板831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元840可包括显示面板841,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板841。进一步的,触控面板831可覆盖显示面板841,当触控面板831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图21中,触控面板831与显示面板841是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板831与显示面板841集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在手机移动到耳边时,关闭显示面板841和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与手机之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一手机,或者将音频数据输出至存储器820以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图21示出了WiFi模块870,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器880是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行手机的各种功能和处理数据。可选的,处理器880可包括一个或多个处理单元;可选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
手机还包括给各个部件供电的电源890(比如电池),可选的,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
上述实施例中由终端设备所执行的步骤可以基于该图21所示的终端设备结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种工作流权限管理方法,其特征在于,包括:
接收来自目标对象的工作流访问请求,所述工作流访问请求携带所述目标对象的权限等级,所述目标对象的权限等级为以下权限等级中的一种:拥有者权限等级、所属组权限等级或者第三方权限等级;
根据所述工作流访问请求,确定工作流的权限设置信息,所述工作流的权限设置信息指示相应权限等级的目标对象访问所述工作流时的操作权限,所述操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限;
根据所述目标对象的权限等级和所述工作流的权限设置信息,确定所述目标对象访问所述工作流时的可执行请求操作,所述可执行请求操作包括以下至少一项:读操作权限、写操作、执行操作或者禁止操作;
当所述目标对象的所述工作流访问请求用于请求执行所述工作流,且,所述目标对象的所述可执行请求操作包括执行操作权限,从数据库中读取所述工作流;
执行所述工作流中包括的一个或多个业务实例,其中,所述一个或多个业务实例的执行顺序由所述工作流指示;
将所述工作流中包括的所述一个或多个业务实例的执行记录,保存至所述数据库。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标对象的权限等级和所述工作流的权限设置信息,确定所述目标对象访问所述工作流时的可执行请求操作,包括:
获取所述工作流访问请求中的所述目标对象的身份标识;
获取所述工作流的拥有者标识;
当所述目标对象的身份标识与所述工作流的拥有者标识一致,则确定所述目标对象的权限等级为所述拥有者权限等级;
根据所述工作流的权限设置信息中所述拥有者权限等级的所述操作权限,确定所述目标对象访问所述工作流时的所述可执行请求操作。
3.根据权利要求2所述的方法,其特征在于,获取所述工作流的拥有者标识之后,所述方法还包括:
当所述目标对象的身份标识与所述工作流的拥有者标识不一致,且所述目标对象的所属组标识与所述工作流的所属组标识一致,则确定所述目标对象的权限等级为所述所属组权限等级;
根据所述工作流的权限设置信息中所述所属组权限等级的所述操作权限,确定所述目标对象访问所述工作流时的所述可执行请求操作。
4.根据权利要求3所述的方法,其特征在于,获取所述工作流的拥有者标识之后,所述方法还包括:
当所述目标对象的所属组标识与所述工作流的所属组标识不一致,则确定所述目标对象的权限等级为所述第三方权限等级;
根据所述工作流的权限设置信息中所述第三方权限等级的所述操作权限,确定所述目标对象访问所述工作流时的所述可执行请求操作。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述响应于所述目标对象的所述工作流访问请求,根据所述目标对象的所述可执行请求操作,对所述工作流进行处理,包括:
当所述目标对象的所述工作流访问请求用于请求读取所述工作流,且,所述目标对象的所述可执行请求操作包括读操作权限,从数据库中读取所述工作流;
将所述数据库中存储的所述工作流数据,返回至所述目标对象。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述响应于所述目标对象的所述工作流访问请求,根据所述目标对象的所述可执行请求操作,对所述工作流进行处理,包括:
当所述目标对象的所述工作流访问请求用于请求编辑所述工作流,且,所述目标对象的所述可执行请求操作包括写操作权限,从数据库中读取所述工作流;
接收来自所述目标对象的工作流编辑请求;
根据所述工作流编辑请求对所述工作流进行编辑,得到编辑后的工作流;
将所述编辑后的工作流更新至所述数据库。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述执行所述工作流中包括的所述一个或多个业务实例之后,所述方法还包括:
接收来自所述目标对象的中止请求;
根据所述中止请求停止所述工作流的执行操作。
8.一种工作流权限管理装置,其特征在于,包括:
收发模块,用于接收来自目标对象的工作流访问请求,所述工作流访问请求携带所述目标对象的权限等级,所述目标对象的权限等级为以下权限等级中的一种:拥有者权限等级、所属组权限等级或者第三方权限等级;
处理模块,用于根据所述工作流访问请求,确定工作流的权限设置信息,所述工作流的权限设置信息指示相应权限等级的目标对象访问所述工作流时的操作权限,所述操作权限包括以下至少一项:读操作权限、写操作权限、执行操作权限或者禁止操作权限;
所述处理模块,还用于根据所述目标对象的权限等级和所述工作流的权限设置信息,确定所述目标对象访问所述工作流时的可执行请求操作,所述可执行请求操作包括以下至少一项:读操作权限、写操作、执行操作或者禁止操作;
所述处理模块,还用于当所述目标对象的所述工作流访问请求用于请求执行所述工作流,且,所述目标对象的所述可执行请求操作包括执行操作权限,从数据库中读取所述工作流;
所述处理模块,还用于执行所述工作流中包括的一个或多个业务实例,其中,所述一个或多个业务实例的执行顺序由所述工作流指示;
所述处理模块,还用于将所述工作流中包括的所述一个或多个业务实例的执行记录,保存至所述数据库。
9.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至7中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
10.一种计算机程序产品,包括计算机程序和指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202210055662.3A 2022-01-18 2022-01-18 一种工作流权限管理方法以及相关装置 Pending CN116502196A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210055662.3A CN116502196A (zh) 2022-01-18 2022-01-18 一种工作流权限管理方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210055662.3A CN116502196A (zh) 2022-01-18 2022-01-18 一种工作流权限管理方法以及相关装置

Publications (1)

Publication Number Publication Date
CN116502196A true CN116502196A (zh) 2023-07-28

Family

ID=87329018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210055662.3A Pending CN116502196A (zh) 2022-01-18 2022-01-18 一种工作流权限管理方法以及相关装置

Country Status (1)

Country Link
CN (1) CN116502196A (zh)

Similar Documents

Publication Publication Date Title
KR102245025B1 (ko) 메모리 반환 방법 및 장치
EP3314417B1 (en) Multi-tenant, tenant-specific applications
CN106970790B (zh) 一种应用程序创建的方法、相关设备及系统
CN106502703A (zh) 一种函数调用方法和装置
CN112130866A (zh) 一种应用部署方法和相关装置
CN111125269A (zh) 一种数据管理方法、血缘关系显示方法和相关装置
CN113420051A (zh) 一种数据查询方法、装置、电子设备和存储介质
CN106502833A (zh) 数据备份方法及装置
CN107992498A (zh) 一种将数据导入数据仓库的方法及系统
CN115658348A (zh) 微服务调用方法、相关装置及存储介质
CN103793267A (zh) 队列的访问方法及装置
WO2024187932A1 (zh) 一种通信系统、方法以及终端设备
CN112328349B (zh) 一种参数设置方法及相关设备
CN115640567B (zh) Tee完整性认证方法、装置、系统及存储介质
US20230055129A1 (en) Techniques for utilizing patterns and logical entities
CN113742716B (zh) 代码运行方法、装置、电子设备、存储介质和程序产品
CN112988913B (zh) 一种数据处理方法和相关装置
CN116502196A (zh) 一种工作流权限管理方法以及相关装置
CN116028099A (zh) 一种安装包生成的方法及相关装置、设备和存储介质
CN116563041A (zh) 一种数据对账方法以及相关装置
CN114490307B (zh) 一种单元测试方法、装置及存储介质
CN110753909A (zh) 服务调度方法和装置、计算机设备、计算机可读存储介质
CN115373865A (zh) 一种并发线程管理方法、装置、电子设备和存储介质
US20230362659A1 (en) Microwave design tool
CN104965715A (zh) 更新内置搜索引擎的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40089546

Country of ref document: HK