现代企业的信息系统至少可以被分为两大类:管理信息系统(MaIlagementInfomation System,MIS)和业务系统。MIS系统主要对机构运作中所产生的信息进行管理,而业务系统除管理数据外,还要管理机构的运作程序、运作流程。一个良好运作的机构对其业务具有有序性的要求,这些既定业务步骤就形成了机构特有的业务流程,因此对业务系统的最基本要求是对业务流程的支持。对于业务系统,应该以流程为中心,数据仅仅是流程向前推进中产生的副作用(side e侬娥),信息和流程应该分开描述和管理。将流程的建立管理与流程中的应用信息分开进行描述,可以使需求分析工作更为清晰,减少开发和扩展维护的代价。这就是业务流程建模的意义所在。
在这种背景下,二十世纪九十年代哈默教授提出了“业务流程重组”(Business Process Reengineering)的管理思想,进而出现了“流程管理’’的管理理念。蕴含人工智能、构件技术、规则与程序分离等现代软件工程理念,以过程管理和过程控制为核心,结合最新rr技术的企业级软件开发技术、结构和平台已经成为众多软件开发商提升产品质量和竞争力的重要举措川。这些技术大大提升了应用程序的柔性,并促使企业应用从面向功能的事务处理向面向过程的业务处理变化。
然而我们更应该意识到,仅仅将业务流程与业务数据相分离、建立业务流程模型是不够的。知识经济为社会各企业指出了影响竞争力的一个重要因素——知识。知识可以实现建立在自身基础上的发展,即所谓“内生性发展”,被认为是新形势下的“高级要素。不断产生新知识、适应新形势是现代企业保持竞争力的重要举措。随着人们对业务流程认识的逐渐深入,流程的知识本质也逐步呈现出来。应用新的知识表示方法去描述业务流程,使业务流程对新的业务知识具有动态适应性,是具有重要意义的。
研究内容与选题意义
传统的业务流程建模及业务系统丌发框架都是通过提高丌发框架对流程的描述能力和解释能力来降低在框架上进行应用开发的复杂度,提高应用丌发速度并达到目标系统的强壮性。但它们一般是以一种预先固定好的模式和结构提供给户。业务流程一旦建立,再需要迸行管理与流程重建时,很难真正达到重组的效果。其流程定义与运行绝对分离的特性制约了动态业务流程重组。这种流程定义的方式是一次性的、静态的,忽略了流程作为一种知识的内生性。本文的研究内容是基于流程在知识表示方面的改进提出了一种支持动态柔性的业务流程模型(FBPM.PK)。主要贡献在于结合人工智能领域的逻辑表示方法和处理理论,创新性地提出“事件纵横分类法"及相应的业务规则描述方法,实现了业务流程和业务逻辑进行形式化的逻辑描述。事件纵横分类法拓了业务流程描述的维度,使原来直线化描述的业务流程变为平面化描述,描述业务流程的规则上升到知识的高度,有利于减少规则冗余,并且在描述能力上有所增强。该模型运用专家系统的思想,通过规则库中规则的推理,产生和运行整个业务流程。由于规则的动态匹配,该业务流程模型可支持流程的动态柔性,实现了对流程的动态管理。
当前的业务流程模型在动态扩展方面存在着诸多不足,限制了企业业务过程的自动化的发展,本文构建的基于流程知识的业务流程模型(FBPM.PK)支持动态柔性,流程灵活性大。并且采用了比有向图更为宽松的知识表示,知识获取更加容易,知识存储更少。并且在构建该业务流程模型的基础上,探讨实际流程实例的产生和运行机制,对构建具有自动化,智能性和适应性的业务系统具有一定的参考价值。
第2章 相关领域研究
业务系统开发方法及业务流程建模方法发展历程
流程(process)在牛津英语大词典《Oxford En百ish Dictionary》中的定义是:一个或一系列连续有规律的行动,这些行动以确定的方式发生或执行,导致特定结果的实现:一个或一系列连续的操作(operation)。而辞典中对流程的解释是产生某一结果的一系列活动或操作,特别是指连续的操作和处理。
Hammer和Champy则将业务流程定义为一个由许多业务活动组成的整体系统。它由活动、活动间的逻辑关系、活动的实现方式和活动的承担者四个要素组成。
从这些定义我们可以总结出流程的特征:
1)具有一系列有序的、有规律的行动、活动或操作,也即行动、活动或操作之间具有逻辑关系;
2)需要产生某一结果,实现某一效果;
3)行动、活动或操作具有其承担者。
业务流程模型(Process Modelin曲的主要目的是建立结构化模型元素及规范,使其能够对复杂的流程结构与关系予以抽象表达,并通过所建模型使读者可对业务流程达成一致的理解。围绕以上几个特征,出现了许多描述业务流程的模型和开发业务系统的方法:
传统的业务系统开发多数将流程硬编码到代码中。这也意味着业务流程的多变性,将导致业务系统的开发、维护过程异常复杂。
Bell提出了一种朴素且有效地解决业务逻辑硬编码的方法。其核心概念tllreaded code,原指一类实现虚拟机翻译器的技术。包括:直接字符串编译;将目标编译成一个抽象的语法树,并解释该语法树等。实际上当前具有代表性的基于流程的开发多数都借鉴了虚拟机翻译器的思想。采用对业务流程进行建模;将流程描述成特定的语法结构体;运行时解析结构体的语义,从而实现业务流程。然而流程模型可视为一个较复杂的企业知识系统,存在许多不完全、不确定的成分,流程元素关系也不易量化,难以用定量的数学方程描述。
知识表示发展历程
计算机可处理的问题必须满足3个条件,即这个问题必须霹形式化表示,针对问题必须存在一个算法,且这个算法必须是可计算的。问题的形式化表示就涉及到知识表示的问题。知识表示是将知识符号化,并用特定的数据结构对知识进行描述与存储的过程。
王珏等指出,在AI中经常使用的表示方法,可以分成三类:
1)局部表示类:逻辑,产生式系统,语义网络,框架,脚本,过程等;
2)分布表示类:基因,联接机制;
3)直接表示类:各种图形,图象,声音及入造环境等
在这个知识表示体系树中,局部表示是AI研究最充分、正统AI最经常使用的表示方法。在这里我们仅讨论局部表示方式。下面介绍几种经典的局部表示方式:
一阶谓词逻辑表示法
谓词逻辑适合于表示事物的状态、属性、概念等事实性的知识;也可以用来表示事物间确定的因果关系,即规则;还可以用来表示知识元。事实通常用合取/析取公式表示,规则通常用蕴含式表示。用谓词公式表示知识时,首先定义谓词,指出每个谓词的确切含义,然后再用连接词把有关的谓词连接起来,就形成一个谓词公式表达一个完整的意义。优点:具有自然性、精确性、严密性,并且容易实现;缺点:不能表示不确定的知识;推理过程有可能形成组合爆炸;推理过程冗长,系统效率低。
·产生式表示法
产生式通常用于表示具有因果关系的知识。其基本形式是:ifp then q。其中p是产生式的前提,q是一组结论或操作。整个产生式的含义是:如果前提p被满足,则可以推出结论q或者执行q所规定的操作。把一组产生式放在一起,让它们协同作用,一个产生式生成的结论可供另一个产生式作为已知事实使用,以求得问题的解决,这样的系统称为产生式系统。一个产生式系统由以下三个基本部分组成:规则库、综合数据库、控制系统。规则库是用于描述相应领域内知识的产生式集合。综合数据库又称为事实库、上下文、黑板等,是存放问题求解过程中各种当前信息的数据结构。当规库中某条产生式前提可与综合数据库中的某些事实匹配是,该产生式就被激活,并将用它推出的结论放入综合数据库中,作为其后推理的已知事实。控制统又称为推理机构,它是维持系统运行的程序集合。主要工作包括选择规则与已知事实进行匹配、冲突消解、将结论加入综合数据库中等。推理过程对规则的选择是控制系统的关键所在。
优点:自然性、模块性(修改上的独立性)、有效性(适用于各种类型的知识系统)、清晰性(控制结构清晰)。缺点:效率不高(也是容易引起组合爆炸)、不能表达具有结构性的知识。
知识表示在业务系统开发中的应用
下文选取两种具有代表性的业务流程建模方法——工作流模型及SPDM模型,来介绍知识表示在业务系统开发中的应用。
工作流模型
工作流管理联盟(wfMC)对工作流的定义是指整个或部分业务过程在计算机支持下的全自动或半自动化。工作流关注的主体是过程。它根据一系列预定义的过程规则,使得文档、信息或任务能够在不同的执行者之间传递与执行,从而实现某个预期的业务目标,或者是促使此目标的实现。
工作流的元模型是用于描述工作流内部的各个元素、元素之间关系及元素属性的。工作流管理联盟为过程定义开发了一个基本的元模型,涉及相关联的3个子元模型,其核心是过程定义元模型。
1)过程定义元模型:模型元素用于定义业务过程,控制工作流的执行。
2)组织机构元模型:描述单位、部门、人员的组织关系以及所担当的角色。
3)相关数据元模型:工作流生产和消费的数据以及它们的流动关系。目前具有代表性的工作流知识表示方法大致有如下几种:基于有向图的模型、基于对话的工作流模型、Petri网模型、基于规则的工作流模型。其中Petri网在过程建模中得到广泛应用。
工作流的提出本身就是为了分离应用中的流程,控制现实应用中的变化。但现行的工作流模型建立与运行阶段的绝对分离导致了如下问题的产生:工作路由固定,不能根据实际情况的变化动态变换路由;任务在模型定义之初就已经固定,不能根据企业经营任务的变化及时更改;任务不能动态划分,任务粒度有待细化;相关资源在模型定义之初就进行绑定,不能适应由工作任务和工作环境变化引起的工作流资源动态分配鳓。严格的过程描述缺少对过程的人工动态干预和李}救措施,使得工作流模型不能报好地支持工作流的柔性。工作流系统的柔性体现为灵活、动态地处理变更和异常的能力。Pe娩等人将工作流的柔性分为选择性柔性和适应性柔性(又称静态柔性和动态柔性)。选择性柔性要求建模时预知可能的变化;适应性柔性又分为型调整和实例调整两类,其中实例调整要求对工作流的修改可以立即生效,也称动态适应目前柔性工作流的解决方案主要集中在如下几种:基于ECA规则的解决方案、与群件相结合的解决方案、基于扩震元模型豹解决方案、提供原语供用户进行操作的解决方案,以及与用户交互反馈的解决方案。在知识表示方顽进行改进的是基于ECA规则翔基于扩展元模型这两种解决方案。
D.K.W.Chiu提出了利用ECA规则的解决方案。其对柔性的支持是:将活动分为如下几个类别:必须的、可选的、可重复的。在出现异常情况时,可以根据活动的属性做响应的处理。利用ECA规则,针对出现变化要求时的不同情况采用不同的异常处理策略。其不足之处是:要求异常的处理必须是事先可以预知的。只相当于解决了“选择性柔性"的问题。基予扩展元模型的解决方案是从更基本的层次解决动态自适应性问题,莽望在工作流的过程定义中能够充分考虑动态特性,配合执行阶段的处理。因此试图扩展元模型,用更丰富多样的元模型来表达过程定义、支持动态性。赵文等人为了屏蔽过程变化所带来的副作用引入了问题分离(separation ofconcenls)原则。过程定义元模型作了适当的修改和扩展,把汇聚、分支结构和它们的约束(AND,0R,XOR)的说明从活动中提取出来,弓|入了一种薪的元模型元素“连接符"(∞越e醚or)。把所有控制信息说明从活动说明中独立出来,分别封装,这种分离有剩予工作流模型的动态修改。余阳和汤庸提出将W州c过程定义元模型中的转移条件fTransitionConditions)分解为活动的状态转换规则和活动问的转移规则。活动的状态转换规则是活动描述的~部分.可将它们封装在一起。活动间的转移规则是处理活动结构(ioin,spl矗等)及其约束(AND,OR,XOR)、活动间转移的规则,可单独封装。这些封装的独立性使得WFMS对过程定义进行动态修改变得更加容易和灵活,增强了wFMs对各种变化的适应性。
孙瑞志和史美林在WfMC定义的工作流元模型基础上,提出了支持动态特性的过程元模型。主要在元模型一级提供了“黑盒”来提供一定的可变性。“黑盒”是一个新的节点类型,用来标识一个语义不确定的节点,也即采用层次化的方法,在较高的层次上维护其结构性,在具体行为上允许有随机性。孙瑞志和史美林中提出工作流系统知识学习的概念,并且将交互的过程用知识学习的方式来表达。定义了根据规则执行某一动作,从而由原有知识产生新的知识。其动作集合为{inseft,delete,set),动作作用于活动,并由规则检查动作的合法性。
综上所述可见,现有的工作流模型存在如下缺点:
·模型均试图采用图的知识表示方式来表达工作流的业务流程,如有向图、Petri网等,从而导致模型既复杂又庞大,同时削弱了模型的描述能力;
·现有的工作流模型趋向于将所有的活动和规则事先准确、完善的定义,控制流和信息流之间紧密耦合,从而降低了模型的柔性。而经过扩展的支持柔性的模型多是对现有描述结构进行一定的封装,但仍然无法摆脱基于“活动”这一粒度级别上对流程进行描述,无法将流程描述上升到知识的高度,造成模型描述在一定程度上的冗余。
SPDM模型
SPDM模型以表单中心来定义流程,将表单在其生命周期中的变化过程抽象为一系列状态的转换,基于确定有限自动机模型做了一系列扩展,使其更适合业务流程的描述。主要做了如下扩展:
·对状态转换的约束条件进行扩展,使其包含权限约束、消息约束以及规则约束。消息约束是为了支持两个或多个流程进行交互,并作为交互的逻辑关系描述;规则约束是一个逻辑表达式,用于描述当一个转换被触发时所需满足的约束条件;权限约束从用户操作的角度定义了对状态转换的限制。
·将状态转换过程的动作扩展为一段逻辑程序处理。SPDM模型有别于经典有限状态机模型描述的对象,前者往往在某业务操作触发过程中需要执行毙“动作”语义更复杂的逻辑,倒如更新数据库或作一个复杂的运算等。
在状态转换过程发送消息。在sPDM模型中,只能在状态转换中发送消息(特指用于流程交互的消息),消息被正确地发送到目标流程后,在后续的某个转换中起作用;另外,发送过程是瞬时完成的,不考虑延迟。
·在状态上接收消息。SPDM模型采用状态表示表单在其业务流程中的驻留点,表单在某个状态下所拥有的全部信息都是可持久化的,鼓瑟状态是稳定的,也只有在这段持续期才熊接收来自不同流程的交互消息。SpDM模型将业务流程定义持久他予数据库表中,流程实例运行时,状态推导引擎读取并解析数据库中的流程定义。若要对流程进行动态修改,则必须替换数据库中的流程定义。
流程知识的概念
由MIS系统开发到业务系统开发的过渡中,我们可以看到知识表示在其中的变化:
1)对于流程为隐式、仅管理数据的MIs系统,其知识表示可以看作是一张完全图,任意两个结点之间都可以随意跳转,但是并不代表任意两个结点之间的跳转都具有实际意义。用户所要徽的是自己寻找一个操作序列,以完成莱种功能,也罄用户需要自己寻找~条通往冒的结点的路径。这时用户的操作正误判断及出错处理只能在废用程序中处理,两且很容易遗漏。
2)对于流程为硬编码的显式流程的业务系统,其知识表示仍然是一张图,但是不再是完全图的形式,硬编码的业务逻辑确定了结点之间的关系。当用户到达某个结点时,系统就确定了一个范围,用户所看到的是与该结点相关的主题,这些主题表现为系统的一个子圈。此时系统的逻辑是不含变量的命题逻辑。也可以看律是有限状态桃逻辑。例如:在业务逻辑中硬编码:对用户小明,给予编辑权限;对用户小红,给予查看权限。
3)对于将业务流程这一过程性知识分离出来的业务系统(如:工作流的过程模型、中山大学软件所的SPDM模型等),其知识表示也是一张图,仍然是有限状态机逻辑。但此处的有限状态机得到了扩展,当用户到达某个结点时,系统会根据用户的输入、结合业务流程描述以及系统当前的状态(上下文)来确定下一步的走向。此时系统的逻辑是带有变量的谓词逻辑。如:在模型中可以确定各种角色的权限——A角色为查看权限,B角色为编辑权限。当用户小红被指派为A角色时,系统自动可以确定其权限。可以看到,命题逻辑是谓词逻辑的一种特殊情况。在上述各种开发方法中,对业务流程的表示无一例外都采取了图的形式。我们知道,图是完全的路径知识,也即要将业务中所有可能出现的情况都明确在图上表示,这样所产生的知识结构是庞大的,可能产生冗余的。业务的描述成分与控制成分相分离,提取了一部分具有共性的知识,实现了从命题逻辑到谓词逻辑的飞跃。然而,图的知识表示形式限制了共性描述的进一步提取,因此必须突破图的表示方式。
郭维森提出了流程知识的概念。过程性知识是一类描述因果关系的,与时间密切相关的知识。流程知识就属于过程性知识。纵观2.1小节中所述的业务系统开发方法中业务流程建模的发展,此前的方法都只是考虑了将过程与数据分离,而没有将过程上升为过程性知识的高度并加以利用。流程知识本质上是一种方法性知识,是以流程中的活动、活动间的关系为核心,结合各种相关知识构成的组合性知识。流程知识表示是将对流程的认识结果以一定方式显性地表示出来。
综上所述,要使流程模型具有动态柔性,就必须具有动态解析流程模型、生成流程实例的能力;要减少流程模型描述的冗余,就必须突破图的知识表示方式,寻求对流程中共性知识的进一步抽取。
基于规则的业务流程描述可以通过动态解析规则来达到动态生成流程实例的目的。在此基础上,将规则抽象化到更高层次上,有助于减少流程描述冗余,用少量规则就可以描述大量具有共性特征的流程。本文认为,在一个共性层次上描述流程的规则,可称为流程知识。
第3章 基于时态约束的业务流程模型
3.1 时态知识的相关概念
从人们日常生活中来看,时间是每时每刻存在的,连续发生的,从计算机科学的角度来讲,如何量化时间和确定某个时间点或者时间段,这关系到如何确定时间模型。
时间点
如果将非负实数半轴看做一条时间直线(简称时间轴),则其上的每一个实数点就称为时间点,基于点的时间将时间点离散化,把时间看成一个孤立的点,用于描述现实世界某个事件发生的时间。在本文中时间粒度精确到秒。
时间区间
所谓时间区间是指事件发生或者命题成立的时间段,一个时间区间可以通这个时间段开始和结束的时间点来表示,表示为I=(a,b),a和b分别表示时间段的开始和结束。
相对时间
相对时间表示某个时间点与另外一个时间点的差值,比如起床2小时后开始吃饭,则开始吃饭的时间比起床的时间点晚2个小时,2个小时就是一个相对时间。
这个约束表示表单在连续进入两个状态的时候必须满足某些时间的限制,比如:可以通过在一个流程的开始状态和终止状态上定义时间约束来限制某个表单从开始创建开始到运行到终止终止状态不能超过指定的时间。
事件问的时间约束定义
定义:事件间的约束函数MEvcntCF:EventsXEvents-·TDIS,使得对于Vel,e2∈Events,MEventCF(el,e2)将一个流程模式中的两个事件映射到一个时间段区间tdi上,表示某个表单在调度过程中,如果事件e1发生,则由e1发生到e2发生所花费的时间段必须大于等于m(tdi)dx于等于M(tdi)。
这个约束表示在表单上连续发生两个事件的时候必须满足某些时间的限制,比如:可以通过在一个“公文“的流程中定义一个公文从"起草“开始到"二审“必须在指定的时间范围内完成。
注意:对于事件之间的约束和状态之间的约束,如果到第二个事件发生时,第一个事件没发生,或者到表单进入第二个状念时候,表单没有进入第一个状态,这个约束无效。
事件周期时间约束的定义
定义:时间周期时间约束函数CTCF:Events—PS,使得对于V eE Events,MEventCF(e)将事件映射到一个周期时间区间P上,表示事件只能在周期时间范围内发生。
另外还有一种周期时间点的约束,比如:某个事件只允许在每年每月每日12:00以后发生,其实可以转化为一个周期时间区间约束,每年每月每日12:OO至24:00发生。
一般流程中还会有绝对时间的约束,比如:某个事件只允许在某年某月某日某时某分发生,或者之前之后发生,这种约束显然是静态的,不依赖于流程实例的运行时间,缺乏柔性,因此在模式中定义实际价值不大。上面所定义的相对时间的约束和周期时间的约束都是争对流程模式来定义的,我们认为绝对时间的约束体现在流程实例中,相对时间约束根据具体的流程实例会转化为绝对时间约束。而在流程实例的运行中我们提供一种方法动态的对具体的一个流程实例指定绝对时间约束,这一点在后面提出。
流程特殊结构的时间约束
自环结构
在全局流程集成平台中还有几类特殊的事件,自环事件和跳出自环事件,自环事件在业务流程中最常见的应用是:对于一个相同的事件,必须由多个执行者重复执行,执行者所属范围和执行次数都有规定。而跳出自环事件和与自环事件配合使用,当触发自环事件的所有用户满足定义好的约束条件时,就跳出自环事件的重叠执行,执行下一个事件。一个有自环事件和跳出自环事件的流程如图在流程中,起草是普通事件,审批通过是跳出自环事件,审批是自坏事件,如果表单在调度过程中,发生了审批事件,那么表单重复进入待审批状态,同时也可能发生多次审核事件,这会导致之前定义的时间约束有歧义。因此,如果一个流程中有自环事件,对于有自环特性事件的情况来讲,定义中山大学硕上学位论文基于全局流程集成平台时态信息的研究和应用在自环事件上的事件时间约束,和自环事件对应的状态时间约束认为是相对最近一次进入状态的时刻而言,而不是第一次进入状态的时刻,而定义在跳出自坏事件上的事件时间约束是对于第一次进入状态而言。
那么如果在“审批’’事件上有一个事件时间约束(2h,3h),我们认为它表示的含义是表单每次进入“待审核”状态后,只有在2.3小时内才能触发事件“审批“事件,如果在“待审批"状态上有一个状态时间约束2h,我们认为它表示的含义是表单每次进入“待审批”状态时,持续时间不能超过2小时,在2个小时以内必须有审批事件或者通过审批事件发生,即使表单一直都是处于“待审核“状态,如果联系实际的业务可以理解为每审批人操作的时间间隔不能超过2个时间单位。
如果一个环节有自环事件,那么会有一个可能会重复进入的状态和重复发生的事件,对于状态间的时间约束,如果其中一个或者两个是自环事件对应的状态,我们都认为约束是定义在第一次进入状态而言,对于事件问的时间约束,如果要定义两个事件之间的时间约束,这两个事件都不能是自环事件。
循环结构
当流程中有环形结构时,也会导致这种歧义,这种类型的流程中虽然没有自环事件和跳出自环事件,但是有些事件也会重复发生,有些状态也会重复进入。对于这种情况下的状态时间约束和事件时间约束同自环结构的流程中的自环事件上的时间约束和自环事件对应的状态的时间约束来理解:对于状态间的时间约束,要么两个状态都是都不是循环结构中的状态,要么都是循环结构中的状态,如果两个状态都是循环结构中的状念,我们定义的时间约束表示的都是相同次数进入这两个状态时的约束,对于事件间的事件约束同样理解。
3.3 一致性标准
当一个业务流程的模型建立好后,应该对模型进行验证,以检查模型的正确性,一个业务流程的模型也许是正确的,但是当引入时态因素以后,业务流程在逻辑上并不一定正确。
定义1:一个时序约束与一个给定的工作流模型是一致的,当且仅当基于工作流模型语义与工作流活动的执行延迟,该时序约束是满足的(在工作流模型正常执行过程中,描述该时序约束的表达式一直成立)。
定义2:一个时序约束集与某一给定的工作流模型是一致的,当且仅当基于工作流模型语义和工作流活动的执行延迟,该集合中所包含的时序约束是满足的。
绝对时间
绝对时间表示一个确定的时间点,例如2009年3月15同8点l0分30秒。
时间约束定义
全局流程集成平台基于有限状态自动机建模,主要描述表单的生命周期中状态的变化,业务流程中的状态用于标识表单的例在某个时刻所具有的流程属性的集合,状态的变化由事件产生,事件是指某一个时刻所能引发表单状态改变的事件的抽象化描述。在全局流程集成平台中每个事件对应一段业务处理程序,事件都是由用户的参与而产生的,而用户的操作带由随机性,因此,我们理论上认为,表单在任何状态上都会持续一段时间,同时,假设程序的执行是一瞬间完成的,所以事件的触发是一瞬间完成,不消耗时间。
因为表单的某个状态会持续一段时间,我们对一个流程中的每个状态定义两个时间点。在定义相关的时间约束之前定义两个集合:状态集合States,事件集合Events。
时间函数定义
定义:函数b:States—ATPS,函数e:States—ATPS,使得对于V SE States,b(s),e(s)分别表示表单进入状态S和离开状态S的时间。注意,这两个时间的具体的值依赖于实际流程的例,这两个时间是绝对时间。
由于表单在离开开始状态时被创建,进入终止状态时停止调度,因为表单不会进入开始状态,也不会离开终止状态,所以可以认为b(s)=e(s),如果S是开始状态或者终止状态。
定义:函数t:Events—ATPS,t(e)表示在表单上发生事件e的时间,注意,这个时间的具体的值依赖于实际流程的例。
事件时间约束定义
定义:事件的时间约束函数EventCF:Events---RTIS,使得对于V e∈Events,EventCF(e)将事件映射到一个相对时间区间d,因为一个事件总是依赖于一个状态,假设这个状态为S,则事件e的有效触发时间是一个绝对时间区间tr(d,b(s))。这个约束表示表单在进入某个状态后必须在特定的时间范围内触发。
状态时间约束定义
定义:状态的时间约束函数StateCF,使得对于V SE States,StatcCF(s)将一个状态映射到一个时间段td上,表示表单在状态s上的持续时间不能超过时间段td。这个约束表示表单在进入某个状态后不能在这个状态上停留超过时间段td。
状态问的时间约束定义
定义:状态间约束函数MStateCF:Statesx States—TDIS,使得对于V sl,s2∈States,MStateCF(sl,s2)将一个流程模式中的两个状态映射到一个时间段区间tdi上,表示某个表单在进入状态sl后,经过调度进入s2状态所花费的时间段必须大于等于m(tdi)d,于等于M(tdi)。
在这罩将状态的时间约束对应的时钟约束定义在状态上,用不变式表示。
(2)事件时间约束
对于普通事件和循环结构中的事件:在这个事件对应的状态之前重置一个时钟,在事件上定义一个时钟约束,也就是转换条件。对于自环事件:如果这个事件是自环事件,则在自环过程中每次进入时都要重置时钟,在事件上定义一个时钟约束。对于跳出自环事件:在这个事件对应状态之前重置一个时钟,在事件上定义一个时钟约束。
(3)事件之间的时间约束
普通事件之间以及循环结构中的事件之间的时间约束:在第一个事件上重置一个时钟,在第二个事件上定义一个时钟约束。
(4)状态之间的时间约束
状态间的时钟约束:在第一个状态前对应的事件(非自环事件)上重置一个时钟,在第二个状态之前的进入事件(非自环事件)上定义一个时钟约束(转换条件)。
模型转化要考虑的问题
(1)多个进入事件(普通事件)
由于很多时候要在一个状态前面的事件上重置一个时钟,或者定义一个时钟约束,对于可以有多个事件进入的状态来讲,由于系统在运行的时候只能从一个事件进入,如果某个约束和这个状态有关,那么需要保证在多个进入事件上重置同一个时钟或定义,为了减少麻烦可以额外添加一个没有实际意义的状态(uregntlocation)和事件进行处理(时间自动机中,紧迫位置(uregnt location)没有时间流逝,可以减少模型分析的复杂度),使得每个与时钟约束有关的状态只有一个进入事件,这样便于定义约束。
验证方式
将有时间约束的模型转化为时间自动机后,模型的定义时的一致性可以转化为时间自动机上的可达性进行验证,即验证是否存在一个从开始位置到终止位置的执行序列。具体实现依赖于相关的检测工具,在第四章中详细说明。
3.5 动态验证
在流程运行中进行的验证叫做动态验证,在实际的运行过程中,流程的实际运行会受到人为因素的影响,其中前期某个事件的实际执行时间的波动会引起后续时间约束的变化。而运行时的时间约束主要争对某个具体的表单而言,所以在每个表单的调度过程中均要进行验证。
我们在流程模式上定义了两种时间约束:周期时间约束和相对时间约束。在运行阶段进行的动态验证是争对一个流程模式的例来进行,流程模式中定义的相对时间约束要在运行时转化为绝对时间约束,同时还要考虑周期时间约束和运行时争对例添加的绝对时间约束。
流程实例运行中,我们仅考虑当前的时间约束。考虑表单在当前状态是否出现约束违反,在当前状态对应的事件上能否执行,如果不能执行,是时问没到还是超过了期限,同时还要判断是不是超过了发生对应事件的期限,或进入下一个状态的期限。而这些情况还依赖于具体的事件,状态类型。对于如此复杂的信息,我们用基本的推理规则来描述,再使用合适的推理机实现基于时态约束的推导和动态验证。
使用规则的好处是基于时间信息的推理逻辑不用采用硬编码的形式实现,而是用一种说明性的语言来表示,灵活性很好。同时可以自定义事实与规则来描述流程的基于条件产生的约束。
小结
本章首先根据实际的应用需求,对SPDM模型中的元素定义了几类时间约束函数,引出模型定义阶段的时间约束一致性验证的问题,并提出将基于时间约束的SPDM模型转化为时间自动机,通过验证时间自动机的可达性来验证模型的一致性。之后,定义一种规则语法,同时定义一类谓词,用于描述基于时间约束的SPDM模型,定义相关的规则描述流程实例的时间约束的相关推理。