《协同数据库与综合实例》由会员分享,可在线阅读,更多相关《协同数据库与综合实例(148页珍藏版)》请在金锄头文库上搜索。
1、第第12章章 协同数据库与综合实例协同数据库与综合实例数据库能否支持协同工作,决定着一个系统在信息存储和信息交换等方面的效率,进而影响整个系统的协同特性。12.1 数据库中的协同工作数据库中的协同工作12.1.1计算机支持的协同工作计算机支持的协同工作协同技术是近年发展起来的一门新兴课题,与之相关的学科通常被称为计算机支持协同工作(ComputerSupportedCooperativeWork,CSCW)或群件。CSCW侧重研究计算机及网络环境下共享信息、协同工作的技术和某一类专门系统(如可视会议系统等)的研制。CSCW技术与系统能支持群体成员间的协同工作所需的多点间对称的交互方式与功能。C
2、SCW的特点是支持群件的协同工作方式,即支持多点间的交互方式和对称的交互方式.CSCW的目的就是在计算机环境下提供对人们群体工作的支持。CSCW的3个基本要素是:通信、合作和协调。通信:CSCW基础是通信。自然的组通信发生在地理上是分布的用户之间(本地通信可以认为是分布系统的特例),因此网络通信是至关重要的,并且在合作环境中处理多媒体文件传输和数据控制是很复杂的。而基于计算机的或者以计算机为媒体的通信,并没有完全与其他的通信形式相结合。异步的基于文本的电子邮件和公告板与同步的电话和面对面的交谈是不同的:人们不能在任意的两个电话号码之间传送文件,将计算机技术和通信技术结合起来可以解决这个问题。合
3、作:CSCW的形式是合作。与通信相似,合作是小组活动的重要内容。在群体活动中,任意一项活动都必须是多人合作完成。有效的合作要求人们必须共享信息。但是当前的信息系统尤其是数据库系统在很多情况下把人们互相隔离开。比如,当两个设计人员使用同一个CAD数据库进行操作时,他们不可能同时修改同一个设计物体的不同部分并且知道他的合作者所做的修改;他们必须通过互相检查才能知道对方所做的工作。许多任务都需要良好的共享环境,可以在适当的时候友好地通知群组的活动信息以及各个用户的活动。协调:CSCW的关键是协调。如果一个组的活动是协调的,那么它的通信和合作将会大大得到加强。如果一个工作小组成员之间不能很好地协调,势
4、必会经常发生冲突和重复劳动。当几个部分共同组成一个任务时,协调本身被看作是一个必不可少的活动。当前的数据库应用提供了对共享对象的访问,然而大多数软件工具只提供对单用户的支持,对支持小组的协调这一重要功能所做的却很少。CSCW是跨学科、跨领域的崭新研究领域,它正应用到越来越多的领域和学科。目前国内外CSCW研究已经涉及多媒体信息处理技术、通信技术,分布式计算技术,也涉及心理学、管理科学等多种学科。下面列出一本名为CSCW的国际性杂志所提供的覆盖范围:群件。社会技术系统设计。协同工作的理论模型。计算机为媒介的通信。人机交互。群体决策支持系统。协调系统。分布式系统。协同工作及实际活动的研究。组织理论
5、及设计。技术社会学。管理科学。支持协同的人工智能和分布式人工智能方法。具有创新性实际策略的研究。用户支持协同工作的所有具有创新性的技术手段,如电子会议室、远程会议设施、电子邮件、实时和异步技术、桌面会议系统、共享编辑、视频和多媒体系统。有关CSCW系统的社会、文化、伦理道德、法律和政治等方面的研究。1. “人人-机交互机交互”与与“人人-人交互人交互”传统的系统只有“人-机界面”概念,人与系统的界面只是“人与计算机”之间的接口;而CSCW重要特征是群体协同性,除了“人-机交互”外,必须考虑“人与人”之间的接口,即“人-人交互”问题。那么,什么是“人-机交互”,什么是“人-人交互”,为什么要引入
6、“人-人交互”呢?人-机交互是利用汁算机完成某种工作,人-机交互只有“机器感”,仅仅支持个体工作。人-人交互虽然也是通过人-机界面实现的,但它支持群体合作开展工作,共同完成某项任务,人-人交互界面应使用户有更多的“人感”,而不是“机器感”。人-人交互虚拟“人感”环境是由人-机界面和计算机网络环境实现的2. 共享信息与协同工作空间共享信息与协同工作空间 在CSCW应用系统中,信息是群体所产生并为群体所利用。信息具有分布式特点,信息共享是协同的一种主要实现方式。传统的网络环境数据库系统中,对于数据库共享访问,存取等都有许多成熟的技术(如数据加锁和访问等)。除了应有必需的信息共享功能外,群体成员必须
7、有支持协同工作的共享空间协同工作空间描述与设计及其与“私有工作空间”的关系问题也是CSCW要解决的关键问题之一。3. 信息的信息的“时空时空”特性与协同通信特性与协同通信群体成员间协同工作必须相互”交流”信息。这就需要在成员间传输信息传统的管理信息系统中,用户之间的信息通信主要是简单的数据通信。而群件中,必须同时考虑信息的“协同”问题。一般来说,信息协同传输有4种方式:(1)同地异步方式;(2)同地同步方式;(3)异地异步方式;(4)异地同步方式。此外,在实际系统中,特别是多媒体信息有时间和空间的要求。协同工作的难点是信息的同步与实时通信、协同机制等。4. 冲突与协同控制冲突与协同控制协同工作
8、是有很多人参与的项群体活动,有“协同”,就必然有“冲突”,所以有必要进行一定的管理和控制。此外,群件协同正作的活动往往具有地域性和历史性等特点,这些都需要系统提供相应的管理和控制功能,如身份确认、冲突协调、历史文档资料存储与查询。CSCW和群件的基础是多媒体和网络,核心是“协同”技术。其关键技术主要有:高速多媒体通信网络及协议、分布式多媒体数据库技术、同步机制和控制策略以及群件系统的体系结构等。分类的可依据CSCW系统中的活动方式、群体成员地理分布位置、使用的基本工具和工作环境,以及应用等。分类如下:(1)按照交互协作方式分类可有同步方式和异步方式两种。在同步方式时,在同一时间群体各成员进行同
9、一任务的协作;在异步方式时,在不同时间群体各成员进行同一任务的协作。(2)按群体成员的地理分布分类协作又分成同地协作(Co-located)和异地或远程协作(Remote)两种,异地协作的成员位于地理上的不同位置,或在逻辑上位于不同的位置。(3)按群体规模分类分为两人协同系统和多人协同系统,多人协同系统具有更大的复杂性。(4)按使用的基本工具和工作环境分类具体的CSCW系统有电子邮件系统,电子布告栏、会议系统、协同写作和讨论(编著)系统、工作流系统和群件等。(5)按CSCW应用领域分类由于CSCW的概念应用广泛,不同的应用领域CSCW有不同的特点。按应用领域分类有:协同科研系统、协同设计系统、
10、远程医疗系统、远程教育系统、协同决策系统、军事协同(参谋会议)系统和协同办公系统等。CSCW系统针对的是多个用户的信息交流,凡是在计算机及网络环境下共享信息、协同完成工作的应用领域都可以属于广义的CSCW范畴。CSCW系统强调的是信息的共享性和工作协同性。CSCW应用正在渗透到越来越多的领域,逐步改变一些传统的领域。主要应用例如:电子邮件系统(E-mailElectronicmail)。电子公告板系统(BBSBulletinBoardSystem)。远程教育。远程医疗。视频会议系统。共享电子白板。虚拟协作环境。协同设计。协同著作系统。协同编辑。12.1.2基于基于XML的数据库协同工作的数据库
11、协同工作XML是eXtensibleMarkupLanguage(可扩展的标记语言)的缩写,是W3C组织于1998年2月发布的标准。W3C组织制定XML标准的初衷是,定义一种互联网上交换数据的标准。W3C采取了简化SGML的策略,在SGML基础上,去掉语法定义部分,适当简化DTD部分,并增加了部分互联网的特殊成分。因此,XML也是一种置标语言,基本上是SGML的一个子集。因为XML也有DTD,所以XML也可以作为派生其他置标语言的元语言。由于XML是一种树状结构,可以把形式与内容彻底分离,正是基于这个原因,引出了本文的研究关键:使用XML将不同数据格式的数据标准化,从而达到协同工作的目的。XM
12、L的特点及其优越性主要表现如下:跨平台性:由于XML使用文本来保存数据,而不是使用二进制格式,因此对于跨平台的交换数据十分方便。自描述性:在于其中的每个项目都有自己的名字,而这个名字又与文档所描述的现实世界中的问题所涉及的某项具体内容密切相关。灵活性:XML可以随意定义元素之间的关系,因此可以定义非常复杂的数据结构。灵活的文件结构几乎可以满足所有的应用需求。方便性:文件的内容和外观设计是完全分开的,外观变动时,XML文件本身不受影响。对信息进行搜索时,只要对XML文件进行搜索就可以得到自己想要的有用信息。XML基本要素包括:DTD(DocumentTypeDeclaration,文档类型声明)
13、或XMLSchema、XSL和XLink。DTD和XML大纲规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素和元素的属性之间的关系;Namespace实现统一的XML文档数据表示以及数据的相互集成;XSL用于规定XML文档呈现样式的语言,它使得数据与其表现形式相互独立;而XLink将进一步扩展目前Web上已有的简单链接。对于不同的数据库,只要以XML为标准编写数据库与XML之间的转换即可,这样就大大地降低了开发成本,实现了线性成本的数据转换模式在关系数据库模型中,数据库是关系的集合。每一个关系就是由若干个带有同样属性的元组组成的集合,并且通常一个关系都用一个二维的表格来
14、表示,即数据库是由一个个的表构成的。每个表,通常由多条记录组成,每一条记录代表一个数据。记录的集合构成记录集。每一条记录由若干的字段组成,字段有着各种属性.对于数据库中的各个表之间,可能存在着依赖关系,这些依赖关系靠外键进行定义。关系数据库一般由3层模型组成,每个字段的值是原子的,不包含一系列值信息交换是CSCW提供不同数据库之间进行密切合作的一种有效手段。在不同的应用背景下,这种应用模式以不同的形式出现,随着信息的进一步社会化,CSCW为异构数据库转换提供了一种重要的技术和手段,更重要的是提供了一种理念:Web环境下不同数据源之间最大程度共享数据,从而达到降低成本、提高检索效率等。在这类应用
15、中,XML解决了数据的统一接口问题,达到了协同工作的目的。但是,与其他的数据传递标准不同的是,XML并没有定义数据文件中数据出现的具体规范,而是在数据中附加TAG来表达数据的逻辑结构和含义。这使XML成为一种程序能自动理解的规范。至于信息重用,可以用XML格式存放数据,就可能以单一的知识库通过模板提供不同形式的输出,以更低的价格提供最为及时的更新数据。12.1.3 时态时态XML扩展扩展在信息时代,如何以最便捷、最可靠、最有效的方式获取所需的信息是一个很大的困扰。人们期待着能够找到一种可以描述任何逻辑关系的数据格式来统一电子数据的存储,从而不再因为数据格式的不统一而苦恼和困惑。目前,能够担当此
16、任的就是XML(ExtensibleMarkupLanguage,可扩展符号化语言)1. 时态时态XML的引入的引入XML是由W3C(WorldWideWebConsortium)的团体提出并构想出来的。XML(ExtensibleMarkupLanguage可扩展标记语言)与HTML(超文本标记语言)类似,也是一种基于标记的标记语言,但却有着HTML所无法比拟的卓越的性能表现:1)开放性XML技术根据标准规范,允许数据在任何平台上用读取和处理,通过开放性数据标准进行通信,不必使用专用通信协议。2)简单性XML文档是非常简单的纯文本格式。3)高效可扩展用户可创建和使用自定义的标签,通过DTD(
17、DocumentTypeDefinition文档定义类型)或者Schema来定义数据类型,从而检验数据的合法性和共享数据。4)操作性XML可以在多种平台上使用.并且文档的结构是相容的,所以分析文档的解析器可以很容易地建立。5)自描述性数据内容和表示分离,自定义标签使得数据本身就具有意义,XML的数据组织方式也是的信息容易阅读和理解。6)国际化新的编码标准支持世界上所有以主要语言编写的混合文本,从而使得XML文档能在不同计算机系统乃至跨国界和不同文化疆域内交换信息。2. 一种时态一种时态XML的模型的模型这里采用XPath数据模型作为时态模型的基础。XPath是由W3C组织定义的XML文档的地址
18、查询语言,它把XML文档描述成树状结构。首先了解一些关于时态的基本概念。我们利用线性时间模型来描述时间元。在这种方式中,从过去时间到将来时间构成一个全序关系。时间线(timeline)由一个相对起始时间和一个当前时间限定,当前时间用“now”表示,它随着时间的变化而持续变化。时刻(timeinstant)在时间线(timeline)上是一个最基本的时间量子(chronon)。时间区间(timeinterval)ts,te是指在时刻ts到te间的一段时间,其中tste。有效时间是指一个对象在现实世界中发生并保持的那段时间,即在现实世界中为真的那段时间。一个对象可能跟多个时刻和多个时间区间有联系。
19、时态XPath是用于表示XML文档的变化的,基于XPath数据模型的。一个时态XPath文档包含4种结点:根结点(root)、元素(element)、文本结点(textnode)、属性结点(attributenode)。定义定义12-1(结点):(结点):设D是一个XML文档,V(D)是它结点的集合。则四种结,根结点、元素、文本结点和属性结点,分别被表示为r、Ve(D)、Vt(D)和Va(D)。V(D)=rVe(D)Vt(D)Va(D)。定义定义12-2(边):(边):设D是一个XML文档,E(D)是带标签的边(p,c),t)的集合,其中p=r,cVe(D);或pVe(D),cVe(D);或p
20、Ve(D),cVt(D);或pVe(D),cVa(D);或pVa(D),cVt(D)。t时表示c的有效时间的标签。也就是说,c在时间区间t中存在。定义定义12-3(一致的时态(一致的时态XPath文档):文档):一个时态XPath文档D只有在满足下列条件时才是一致的:1)设r是D的根,ci(1=i=n)是r的孩子。ti是边(r,ci),ti)的有效时间,则titj=(ij,1i,jn)2)设vV(D)-r是一个结点,ti(1im)和ui(1in)分别是v的入边和出边的有效时间标签。则:1jmuj1inti3)设vV(D)-r是一个元素(或属性)结点,ci为v的一个孩子,ti为边(v,ci),t
21、i)的有效时间标签。则对于每对相邻的e-t(或a-t)边有:titi+1=第一个条件是指,文档的根元素在同一时刻只能包含一个元素。第二个条件是指,每个元素、属性和文本结点的存在都依赖于它们的父结点,如果从根结点到它们没有有效路径则它们不能存在。第三个条件是指,元素/属性结点不能同时拥有两个文本结点12.2 工作流技术工作流技术12.2.1 工作流技术的起源与发展工作流技术的起源与发展80年代中期,FileNet和ViewStar等公司率先开拓了工作流产品市场,成为最早的一批工作流产品供应商。进入90年代,集中式信息处理的时代已经过去,实现大规模的异构分布式执行环境,使得相互关联的任务能够高效运
22、转并接受密切监控已成为一种趋势。工作流管理系统也由最初的创建无纸办公环境转而成为同化企业复杂信息环境、实现业务流程自动执行的必要工具。这样的一个转变,把工作流技术带入了一个崭新的发展阶段,使得人们从更深的层次、更广的领域上对工作流展开了研究。随着工作流技术的蓬勃发展,工作流技术的标准化组织工作流管理联盟(WorkflowManagementCoalition,简称WfMC)应运而生。它的成立标志着工作流技术开始进入相对成熟的阶段,WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准。在全球范围内,对工作流技术的研究进入了空前繁荣的阶段。12.2.2 工作流的定义工作
23、流的定义工作流是工作任务在多个人或单位之间的流转。在计算机网络环境下,这种流转实际上将表现为信息或数据在多个人之间的传送。到目前为止,对于工作流仍没有完全统一的定义。下面列举一些有代表性定义:IBMAlmadenResearchCenter的定义:工作流是经营过程中的一种计算机化的表示模型,定义了完成整个过程所需用的各种参数。这些参数包括对过程中每一个单独步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序。AmitSheth的定义:工作流是涉及到多任务协调执行的活动,这些任务分别由不同的处理实体来完成。一项任务定义了需要做的某些工作,它可用各种形式
24、来进行定义,包括在文件或电子邮件中的文本描述、一张表格、一条消息以及一个计算机程序。用来执行任务的处理实体可以是人,也可以是计算机系统。WfMC的定义:工作流指的是“业务过程的部分或全部在计算机应用环境下的自动化”。在此过程当中文档、信息或任务按照一定的过程规则流转,实现组织成员之间的协调工作以期达到业务的整体目标。从理论上概括来说,工作流包括定义、监测、控制和优化,以及相关的逻辑支持的复杂过程,是一个三维的概念,即过程、事件和资源的有机结合。“自动”(automate)是工作流的一个特征,但这主要是指它自动进行的特征,而不是说没有人的参与。工作流实际上是一个人-电脑协调的混合过程,在一个实际
25、的工作流中,通常总有些步骤是人完成的。协调是工作流管理的一个目标或者特征,这包括了人与人、人与电脑、电脑(软件)之间等多种层面的含义。监察(Monitoring)与控制(Controling)是工作流系统的重要功能与特征。这不仅包括对正在发生的业务过程(工作流),还包括它的定义或改变(比如BPR的过程)。这是工作流系统带给我们的明显好处之一。12.2.3 工作流的相关概念工作流的相关概念业务过程(BusinessProcess):就是实际工作中的活动集合,这些活动均关联于特定的托付事项(Commitment),为过程的产出增值。相对于“工作流”,业务过程是一个更一般化的统称,而工作流这个词,则
26、已经不能仅从字面含义或原理上去理解,它已经被赋予了更深一层的特定含义专指基于信息技术规划、运作和管理的业务过程。工作流模型(也称作是过程定义):即工作流的建模,用计算机可识别的方式描述业务过程,过程运行中会涉及到的各种参数将被描述在模型当中,由计算机运行和控制,如业务过程的开始和终止条件、各个工作环节及相互之间的控制流动与数据流动关系等。通常采用的工作流建模方法有:有向图、条件化有向图、PetriNets、对象模型和基于约束条件的形式语言文法表示等。活动:指的是工作流中的一个逻辑步骤或称环节,它包含的信息包括:开始和结束条件;参加此项活动的用户,活动中需要处理的数据,以及其他的一些约束控制信息
27、,例如时间约束。过程实例:指的是某个工作流的一次执行。工作流的执行是在工作流模型中带入实际的数据并有计算机控制的执行过程。过程实例的运行将有WfMS管理,按照过程定义完成整个业务过程。工作项(WorkItem):是过程实例和要被执行的任务的结合。与活动相似,工作项也被链接到某个特定的案例。工作项在其开始执行时消失,也就是说在任务开始执行的时刻,工作项就变成活动了。选择路由:许多过程需要具有处理多种案例的能力,即并不是所有案例都会以相同方式在一个特定的过程中前进。换句话说,一个过程可能存在多个路由。顺序路由:当多个任务一个接一个地被执行时,我们称之为顺序任务执行。当两个连续的任务通过一个条件相链
28、接时,它们必须被顺序执行。多人:若是单人就可以完成的工作,则不能归类为流程工作。凡是一件工作必须经由两个或更多人来协力完成的工作才能称为流程工作。共同目的:多人参与的流程性工作,必须是以完成共同目的为前提。如果一群人是分别针对不同的专案来执行各别的工作,并不算构成一个工作流程。工作流管理(WorkflowManagement,WfM):是人与电脑共同工作的自动化协调、控制和通信,在电脑化的业务过程上,通过在网络上运行软件,使所有命令的执行都处于受控状态。在工作流管理下,工作量可以被监督,分派工作到不同的用户达成平衡。12.2.4 工作流管理系统工作流管理系统(WfMS)工作流管理系统(Work
29、flowManagementSystem,简称WfMS)通过管理工作活动序列,调用与各种活动步骤相关的人员、IT资源,对业务过程提供自动化处理。根据WfMC的定义,工作流管理系统是这样的一个系统,详细定义、管理并执行工作流,系统通过运行一些软件来执行工作流。这些软件的执行顺序由工作流逻辑的计算机表示形式(计算机化的业务规则过程定义)驱动。WfMS就是运行在一个或多个称为工作流机的软件上的用于定义、实现和管理工作流运行的一套软件系统,它和工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。一般而言,所有的WfMS都将包含如下3大功能模块:建立时功能、运行时控制功能以及与用
30、户和应用程序的交互功能。1.建立时期功能建立时期功能主要目标是通过某种分析、建模及系统定义手段将现实世界的业务过程转化成某种能够被计算机处理的形式化表示。这种形式化表示,我们就称之为过程定义(也可称为过程模型、过程模板等)。过程定义中一般都包含有对业务过程中的各个活动步骤的描述、同这些活动相关的各种计算机或人工操作、以及在各活动之间进行切换的各种控制规则。过程定义所定义的实际上就是控制工作流过程执行的各种参数。2. 运行时实例控制功能运行时实例控制功能主要进行在某个计算环境中工作流过程的管理及各活动步骤之间的状态转换。运行时控制系统将解释过程定义,完成过程的可操作实例的创建及控制,调度过程中各
31、活动步骤,为所涉及到的用户生成待其处理的任务,并在合适的时机调用有关的应用程序资源,等等。这些服务一般就称之为“工作流执行服务”。有些系统可能是通过一个工作流引擎提供这些服务,而在另外一些系统则可能会用到多个协作的工作流引擎。工作流引擎是工作流运行时控制系统的核心部分,各种过程实例的执行都是由它负责完成的。3. 运行时同用户及应用的交互功能运行时同用户及应用的交互功能主要完成对工作流实例执行过程中各种活动的处理。在过程实例的执行过程中,经常需要用户通过某种应用程序来完成过程定义所要求完成的处理或操作,另外工作流执行服务也可能需要自动地调用有关的应用对数据进行处理,在不同的WfMS中,工作流执行
32、服务所能访问的应用或资源可能是不一样的,如有些WfMS可能不提供此种能力,有些可能只能访问本地的应用或资源,有些则可能通过某种远程调用机制(如RPC或对象代理等)去访问其他机器上的资源。所有这些构成了运行时交互功能的主要内容。12.2.5 工作流管理系统的分类工作流管理系统的分类1. 结构化与即席模型结构化与即席模型结构化工作流是指工作流程固定、严格按照定义进行的工作流程。其难点主要是工作流的分析和定义阶段,在这个阶段必须对业务过程进行详细的分析,从而得到完整的过程定义并在以后的应用过程中反复使用。主要应用在如公文处理、审批等应用中。即席工作流则是指分析和设计阶段无法确定,必须根据实际运行的状
33、态确定工作流的流程,这种工作流要求系统提供更高的灵活性,可在执行时动态调整工作流。2. 面向文档与面向过程面向文档与面向过程 面向文档的工作流的核心是对文档进行管理,将文档在有关的人员之间进行分发,以便能够得到不同人的处理与审阅。公文流转系统就属此类。面向过程的工作流则是对一系列的工作项进行管理,这一系列的工作项的执行构成了工作流的执行。3. 基于邮件和基于数据库基于邮件和基于数据库 基于邮件的工作流采用邮件系统来分发任务和数据;基于数据库的工作流是将数据和任务保存在数据库中,不同的用户在不同的阶段访问数据库中相应的数据。前者是松散耦合的运行模式,后者是相对紧密的运行模式,侧重数据的集中管理。
34、4. 任务推动与目标拉动任务推动与目标拉动任务推动的工作流是目前通用的执行方式,它采用正向执行模式,各个工作环节之间有很强的顺序关系,当某个活动实例被处理完之后,后续的有关活动将被创建并被激活,由此直至整个工作流程的完成。目标拉动是一种全新的执行方式,是基于任务分解执行的,一个大任务的完成必须被分解成多个小的任务,小的任务再分解成更小的任务,只有当这些分解的任务都完成时,总的大任务才能完成。12.2.6 WfMC工作流参考模型工作流参考模型驱使实现工作流重要功能接口的标准化主要有以下两个原因:1. 继续支持过程重组和操作的灵活性继续支持过程重组和操作的灵活性业务过程重组与相应的工作流实现是有战
35、略意义的,从而要求工作流产品要有足够的灵活性来处理不停变化的业务过程,这是采用工作流技术的主要动机。有时,用不同工作流产品实现的几个单独的业务过程,后来业务过程重组为一个单一的复合过程。这种需求可能由于组织的合并、立法的变化、业务对象的改变等引起。在这种情况下,非常希望在不同的组织或者部门间使用不同的产品,而那些不能用于协调工作的产品,在过程变化时会产生十分严重的潜在问题。2. 满足产品专业性与市场变化的需要满足产品专业性与市场变化的需要市场中很多的工作流产品都针对不同方面的应用和不同的数据/应用程序集成。协同标准的制定,将使得我们可以选择每一应用领域的产品中最好的来满足要求,此外,许多工作流
36、程序需要与其他已有的或者将要出现的系统集成,标准化的接口可以支持这种集成并减少产品的复杂度。工作流参考模型(WorkflowReferenceModel)详细描述了工作流系统的有关概念,并在此基础上,给出WfMS的主要组成部分、各部分的功能及相互之间的接口1. 过程定义工具过程定义工具(Process Definition Tools)有各种各样的过程定义工具可以使用,有的采用PetriNets建模,有的采用形式语言建模等,这些工具可以由不同的厂商开发,目的是为用户对定义工作流提供帮助。用户可以使用这些工具对实际业务过程进行分析、建模,并最终生成工作流定义的计算机描述(过程定义)。由于这些工具
37、的多样性,为保证各种工具能够正确地与工作流系统整合,在过程定义工具与工作流执行服务之间定义接口“接口1”,任何过程定义工具只要遵循接口定义就可以正确地执行。此接口为工作流过程定义信息的交换提供了标准的互换格式及APl调用。2. 工作流执行服务工作流执行服务(Work Enactment Service)工作流执行服务是工作流运行的核心环境,其中可以使用一个或多个工作流引擎(根据系统的需要,可以使用多个工作流引擎执行工作流,在大型的WfMS中,工作流的运行时控制可能需要多个工作流引擎共同完成),激活并解释过程定义的全部或部分,并同外部的应用程序进行交互,完成工作流过程实例的创建、执行与管理,如过
38、程定义的解释、过程实例的控制(创建、激活、暂停和终止等),在过程各活动之间的游历(控制条件的计算与数据的传递等),并生成有关的工作项通知用户进行处理等,为工作流程的进行提供一个运行时环境。此外,不同的工作流执行服务可以通过“接口4”与其他的工作流执行服务协同工作,共同完成一个复杂的工作流执行。这些相互通信的工作流服务可以是相同类型的,也可以是不同类型的,要保证工作流执行服务之间的正确执行,必须遵循统一的接口标准,这些是接口4定义的内容。3. 客户应用程序客户应用程序(WorkFlow Client Application)用户在工作流的执行过程中,可以通过客户应用程序将人包括到工作流的执行过程
39、中,当某一工作项需要用户处理时,工作流执行服务通过客户应用程序通知用户,给用户发送数据,当用户处理完后,由客户应用程序将处理结果返回到工作流执行服务中,工作流得以继续执行。WfMS将为每个用户维护一个工作项列表,它表示当前需要该用户处理的所有任务。4. 被调应用程序被调应用程序(Invoked Application)在工作流执行过程中,有的工作项需要人工完成,有的可以由系统自动完成,而系统对工作项的自动处理内容,必须预先定义好。被调用程序就是一些预先定义好的处理,用以对应用数据进行自动处理,这些可以是系统预先定义的,也可以由用户根据需要自己定义。“接口3”的目标就是提供一些标准的服务,供工作
40、流执行服务经过此接口调用被调用程序。5. 管理及监控工具管理及监控工具(Administration & Monitoring Tools)管理及监控工具目的是对运行的工作流实例的状态进行监控与管理,这些管理内容有:用户管理、角色管理、审计管理和资源控制(包括过程管理及过程状态控制等)等。遵循“接口5”接口规范的管理工具都可以对工作流执行服务中的实例进行管理,不同厂商开发的管理工具有不同的特点,用户可以根据自己的喜好进行相应的选择,定制自己的工作流管理工具集。12.2.7 现代的工作流产品介绍现代的工作流产品介绍1. Software-ley GmbH公司的公司的COSA产品产品其主要特点有:
41、它是一个基于Petri网的工作流管理系统。COSA的结构可以很容易地映射到工作流管理联盟的参考模型。COSA支持多种技术平台。服务器端有UNIX、WindowsNT/2000和OS/2。客户端有Windows3.1、Windows95/98/2000和UNIX。同时还支持下列的数据库系统:Oracle、Informix、Sybase、Ingres和DB2。2Action Technologies公司的公司的ActionWorkflow产品产品它着重支持以员工和/或团队间的通信为主的过程。主要特点如下:ActionWorkflow采用业务过程图,他由很多工作流组合而成。工作流可以彼此链接,以表示
42、事务间的联系。ActionWorkflow的结构可以映射到工作流管理联盟的参考模型。ActionWorkflow只能支持有限种类的平台。ActionWorkflow3.0服务器端只可用于WindowsNT/2000。数据管理只能使用MicrosoftSQLServer。3. Microsoft的的Exchange产品产品基于微软Exchange软件平台开发的工作流产品的特点主要有:实现邮件、传真、声音和数据交互通信,实现用户与知识的联合。Exchange与Windows操作系统之间实现了无缝集成,获得增强的可靠性、伸缩性、企业消息和协作平台性能。通过应用无线通信、统一消息、手持设备及远程会议等
43、新兴技术的应用来实现在任何时间、任何地点都能提供信息访问的通信基础架构。针对消息和协作而改进的平台,Exchange提供了一套具有较低总体拥有成本的消息和协作基础架构。并提供了增强的可靠性、伸缩性以及从对消息、协作与网络资源进行统一管理中派生出来的性能。4. IBM的的Lotus产品产品基于LotusWorkFlow软件或Domino软件平台开发的工作流产品的特点主要有:使用Domino平台作为应用的支持,同时具有多平台支持,不仅支持Windows,也同样支持Unix操作系统。利用Lotus开发工具包,应用开发员可以建立功能更加强大的工作流解决方案,可以利用其他目录,包括Domino目录和LD
44、AP目录等。具有先进的工作流性能,包括可以使用户自动替代关键流程参与者的代理管理;先进的进度控制,包括到期提示和缺席提示;对并行处理流程的支持,使流程可同时执行,并可重新合并可视化的工作流开发工具。可以通过直观的图形界面定制业务流程、参与者及他们的角色、相关数据等,所有这些都不需要额外工作。基于规则和角色定义流程。内容与流程处理逻辑是分离的,所以当用户需要开发新的流程时,只需要重用或简单地修改现有的流程定义模块即可。12.3 一个综合实例一个综合实例工资智能决策支持系统(SIDSS)也称为工资时态知识数据库系统,是我们开发的一个实际应用系统。其目标是将各单位的人事部门从繁琐的工资调整工作中解放
45、出来,不再陷于成堆的工资政策中;同时也可以避免许多人为造成的错误,使工资管理规范化。12.3.1SIDSS系统框架根据工资系统的特点,SIDSS主要包括人员自然信息处理、工资政策管理、事件生成器、工资变更管理等模块。(1)人员信息管理模块包括人员信息的录入、变更、查询、统计等。人员信息包括自然信息和影响工资的信息。人员自然信息是指姓名、性别、身份证号、出生年月等不影响工资的信息;影响工资的信息则非常复杂,包括参加工作时间等不受时间影响的信息,还包括学历、职务晋升、职称晋升、奖惩情况、年度考核结果、职业、岗位等受时间影响的信息。(2)工资政策管理模块包括政策的录入、变更、查询等。工资政策是确定和
46、变更人员工资的依据,复杂且时态性很强,还有地域性。我们采用知识库技术,根据工资政策的特点提出了一种适合于工资政策表达的知识表达模式。(3)事件生成器是一个推理机制,根据人员信息变动事实和工资政策知识库触发工资变更事件。(4)工资确定与变更模块根据工资变更事件重新确定人员的工资,并在工资库变更人员的工资信息,同时记录变更事件以供存档、查阅。(5)上报人事主管单位模块生成有关报表和文件,上报给上级人事主管单位审批。12.3.2 工资信息的时态性工资信息的时态性工资系统的时态知识主要包括时态性工资政策和时态性工资标准1工资系统的时态数据工资系统的时态数据影响人员工资变动的信息主要包括:参加工作时间、
47、学历、职务级别、任职时间、年度考核结果、奖励及处分等。当某人员的信息有改动时,并不代表可以替换过去的信息,否则将引起工资确认的错误。影响工资并受时间影响的信息,如学历、职务晋升、工资标准等。另外,还有在工资确定过程中产生的人员工资历史记录,它们同样具有时态性。单位中的人员信息是动态的,这不但包含人员来到该单位、离开该单位,也包括人员本身不断进步或改变,如职务晋升、奖惩记录等。职务待遇 工资档次 变动原因 执行时间 助 教 2 转正定级 1995/7 助 教 3 正常晋升 1998/10 讲 师 2 职务晋升 1999/3 讲 师 3 正常晋升 2000/10该表记录了该人员自参加工作以来的工资
48、变动历程,其时态性是显而易见的。为了说明从实践中抽象出工资变动记录对象对历史模型的过程,年份考核结果1994合格1995优秀1996优秀1997合格1998优秀1999优秀2000优秀人员M从1994年至2000年的年度考核结果根据1993年和1999年的“两年优晋升”工资政策,M可以分别在1997年和2001年晋升一档工资。系统对历年考核结果的处理过程如表所示。年份事件两年优原工资档次新工资档次政策依据1997越级晋升1995,1996121993年2000越级晋升1998,1999221999年2001越级晋升1999,2000231999年容易看出,工资越级晋升处理过程包含以下要素:1)
49、一个属性集合。其中包括“年份”(方便起见,计为Y)、“考核结果”(T)、“原工资档次”(L1)、“新工资档次”(L2)以及“工资政策依据”(P)。这些属性起着不同的作用。P暗含工资政策的时态性,可与Y合并,称为状态属性,在系统中表现为某一具体的规则:T和L1来自系统的状态数据库,称为输入属性;而L2有系统根据输入属性和相应规则进行计算得出,称为求值属性。2)一些函数。用于计算状态属性值的函数称为状态函数,用于获取输入属性值的函数称为输入函数,用于计算求值属性的函数称为求值函数。2.工资政策的时态性工资政策的时态性工资政策与普通的知识是截然不同的。在不同时期需要使用相应时间段的工资政策,这样才能
50、保证工资确定的正确性。在一般的人工智能系统中,知识只有好知识与坏知识之分,好知识是当前正确的知识,根据好知识可以推理出正确的结果,而根据坏知识推理出来的结果则是不正确的。作为工资管理决策支持系统最重要的知识工资政策,其本身则没有好坏之分,每一条工资政策在某个特定的时期里都是正确的。当某条工资政策被终止使用时,并非因为该政策是错误的,而仅仅说明该政策以后不再适用,但在生命周期中,它仍然有效。例例12-4工资政策中“两年优晋升”的政策。该政策在1999年以前的描述是这样的:人员连续两年考核优秀,或某年考核优秀有“一年优”标志,工资档次允许晋升一档,考核结果有效年份从下年算起,但连续两次晋升之间必须
51、相隔两年以上。该政策在1999年以后的描述则改为:连续两次晋升之间必须相隔四年以上。举例说明:人员A从1995年到2000年的考核均为优秀,则他可以分别在1997年和1999年执行一次工资档次晋升,而由于1999年以后的工资政策规定,2001年与1999年之间并未相隔四年以上,因此不允许在2001年执行档次晋升,如图12-9所示。可见,同样的一条工资政策,在不同的时期必须执行的操作是不同的,这就为工资政策打下了深深的时间烙印。3 工资标准的时态性工资标准的时态性工资标准其实也属于工资政策的一部分,但它与用于确定工资档次那部分工资政策有所不同,这两者在实际应用中相当于知识库中的事实和规则。例例1
52、2-5大学讲师一档工资标准:在1993年10月至1997年7月为205元;在1997年8月至1999年7月间为219元;在1999年8月至今为312元。12.3.3工资的时态数据模型工资的时态数据模型1时态工资数据结构时态工资数据结构前面SIDSS中含有三类信息:第一类是不影响工资的信息,如人员编号、姓名、身份证号等;第二类是影响工资但不受时间影响的信息,如参加工作时间等;第三类是影响工资也受时间影响的信息,如学历、职务晋升、工资标准等。另外,还有在工资确定过程中产生的人员工资历史记录,它们同样具有时态性。工资管理决策支持系统的一大重要特点是根据用户输入的人员信息重现该人员自参加工作以来的工资
53、变动历程,以确保工资确定的正确性。由此可知,SIDSS既要记录有效时间,又要记录事务时间。因此,SIDSS采用双时态数据库。但如此一来,将使人员的不受时间影响的信息重复记录,造成数据冗余量非常庞大人员编号身份证号姓名性别专业技术职务0101010001330223700802004李明女1993.7,1996.10助教0101010001330223700802004李明女1996.11,2000.10讲师0101010001330223700802004李明女2000.11, NOW副教授0101010002110223740112001王东男1997.7,2000.10助教01010100
54、02110223740112001王东男2000.11, NOW讲师为减少数据冗余,将独立于时间的属性(即不受时间影响的信息)和时变属性(即受时间影响的信息)分开不同的表存放,以“人员编号”为关键字进行索引。但在保存时变属性的表中,信息的冗余量还是很大的,而且人员的不同属性的时间区间个数不一样、取值也不一样,不好表达、管理,更不利于查询。如表12-5所示,人员编号为“0101010001”的专业技术职务属性有三个时间区间,而部门属性有四个时间区间,而且每个区间之间无任何对应关系。人员编号专业技术职务部门01010100011993.7,1996.10助教1996.11,2000.10讲师200
55、0.11, NOW副教授1993.7,1995.5数学系1995.6,1997.8计算机系1997.9, 2000.2数学系2000.2, NOW网络中心01010100021997.7,2000.10助教2000.11, NOW讲师1997.7, NOW机电系可见,时态数据库的对象是三维的实体,用传统的关系数据库(二维表)模拟它是勉强的,因为一个对象的历史需要用几个1NF元组才能表示。近年来,非第一范式的理论、实现、应用均取得巨大进展。非第一范式方法的本质在于允许一个关系的属性是另外一个关系,它可以描述大而复杂的结构,用它来描述三维对象是比较方便、直观的2时态实体时态实体-关系模型关系模型时
56、态实体-关系模型(TemporalEntity-RelationshipModel),简称TER模型采用传统的实体-关系方法作为它的基本机制。它不仅在图形表示上而且在语义上都对ER模型进行了扩展。最突出的是它能表示时间、分类层次关系和复杂对象,具有较强的描述能力,又避免了过分的复杂。在TER模型中,基本概念是类,即若干具有共同性质的对象组成的整体。并且也只有类被表示出来。类分为实体类、值类、时间类和关系类四种。我们将沿用传统ER模型中的一些概念和符号。以上TER模型是基于类的时态ER模型,它不仅在图形表示上而且在语义上都对ER模型进行了扩展。最突出的是它能表示时间、分类层次关系和复杂对象,具有
57、较强的描述能力,又避免了过分的复杂。为更突出时变属性的时态性,也为了更好、更方便地表达及引用时态区间,我们将沿用TER模型的图形表示,并利用嵌套关系来将TER模型进行进一步的扩展,得到嵌套关系的时态实体-关系数据模型(NestedTemporalEntity-RelationshipModel),简称NTER模型。图元含义如下:(a):属性(b):实体集(c):联系集(d):时态联系集(e):将属性连接到实体集,或将实体集连接到联系集(当实体集与联系集之间为“多”的关系时)(f):将实体集连接到联系集(当实体集与联系集之间为“一”的关系时),此时箭头指向实体集(g):具有嵌套关系的复杂属性,其
58、中顶头的矩形框为该复杂属性,而它本身又是一个实体集,它包含下面各个矩形框所示的属性。由NTER模型的基本图元,可得NTER形式化模型。例如,若有实体集E1、E2、E3,E1与E2之间有一对一的时态联系T,E1与E3之间有一对多的普通联系R。E1包含有属性A1、B1、C1、,表示为E1=(A1,B1,C1,);同理,有E2=(A2,B2,C2,),E3=(A3,B3,C3,),其中属性B2为复杂属性,B2=(B21,B22),则其NTER形式化模型如图12所示在设计NTER图时应遵循一定的规则。1)真实性原则:在使用NTER图描述客观现实时,这种描述必须是真实的。也就是说,NTER图必须真实地反
59、映出客观世界的状况。2)避免冗余原则:数据冗余现象是数据库系统需要克服的一种重要现象,是数据库理论需要解决的一项重要工作,也是提出NTER模型要解决的主要问题之一。避免冗余原则的本质是对客观现实的一个事物进行设计时只能出现在一个地方。3)简单性原则:模型既是对客观现实的反映,又是对客观现实的简化,应保证在设计NTER图时,避免引入过多的元素。4)合适性原则:选择什么基本图元来表示客观现实(例如:用实体集还是属性?用实体集还是联系集?),要根据实际情况而定。5)基于时态分析原则:NTER模型是专门为解决时态问题而设计的,故在设计时应仔细分析客观现实中存在的时态性,按它们受时间因素影响的程度以及对
60、时间因素所造成影响的程度将它们分为几个层次,至少为两个层次:其一为完全不受时间因素影响的,其二为受时间因素影响的,则它们之间的联系显然是时态联系T。6)用嵌套关系表示时态关系原则:NTER模型是利用嵌套关系来表示时态关系,以解决时态数据库冗余及表达问题的。故在设计时,对于存在时态关系的客观现实,尽量用嵌套关系表达。3NTER模型应用模型应用根据基于时态分析原则来分析SIDSS中的客观因素,例如,对于有关人员的信息,将人员信息中独立于时间的属性(即不受时间因素影响的属性)置于“人员自然信息”关系中,将时变属性(即受时间因素影响的属性)置于“人员时变信息”关系中。在“人员时变信息”关系中,用嵌套关
61、系来表示随时间变化的各种信息,这样能够将各种信息统一归类管理,既克服了冗余数据多的缺陷,也便于查询。SIDSS的NTER模型如图13所示12.3.4工资政策时态知识模型工资政策时态知识模型1.结构化时态知识的描述结构化时态知识的描述所谓结构化的时态知识,是指结构比较明确的知识,这种知识有时态特征。例如:讲师的职务工资标准为:“从1993年10月1开始,讲师一档至五档的职务工资分别为:210、228、246、264、312元;从1997年7月1日开始,讲师一档至五档的职务工资分别为:226、244、262、304、328。”这是一条典型的结构化工资政策,它有以下几个特点:1)数据结构明确;2)知
62、识中包含着数据;3)知识的时态特征主要表现为有效时间。执行时间一档二档三档四档五档1993.10.12102282462643121997.7.12262442623043281999.7.13303483664084322001.1.14104304504965222001.10.1463486509562592可以设想,各类人员的职务工资、津贴标准等等,如果符合如下模型的定义,那么可以都可以用表来记录。设D1,D2,Dn为n个论域,作论域D1,D2,Dn上的笛卡儿积:D1D2Dn并对其中每一个元组R定义一个时态间论域T.上的时态映射TD。其中:R=(A1,A2,An),AiDi(i=1,2
63、,n)TD=fi|fi:TR,fi是从时间域到关系R上的一个偏映射。这样,结构化知识可以用一个时态关系描述:TR=R,T用面向对象的时态知识表达模型来直观描述,就是描述对象的三元组:对象标识,属性集,时态属性集以表6的工资标准为例,知识对象可以描述为:publicclassTK讲师工资标准privateStringsTK_Id;/对象标识publicFloatsTK_档次1;publicFloatsTK_档次5;privateIntervalBasedTimeValidTime/知识的有效时间PublicBooleanTConstraint/时态约束TConstraint=Before(Pri
64、or.ValidTime,this.ValidTime)&Before(this.ValidTime,Next.ValidTime)2.非结构化时态知识的描述非结构化时态知识的描述非结构化时态知识与事件、动作等有关,知识对象不仅要描述事件或动作中包含的具体业务,而且要描述它们之间的的时态关系。通过面向对象的方法把事件、方法构建在一个知识对象中,同时采用时态逻辑定义了关于时态的约束表达式,它们广泛用于表达时态规则前提、事实和结论。例如,“两年优晋升”的政策:1999年以前,如果人员连续两年考核优秀,或其中某年考核优秀为“一年优”,工资档次允许晋升一档,考核结果有效年份从下年算起,但连续两次晋升之
65、间必须相隔两年以上。1999年以后的政策改为:连续两次晋升之间必须相隔四年以上。用面向对象的时态知识表达方法来描述这条知识,首先要仔细分析它隐含的判断条件:资晋升的基本条件。如:“考核优秀”、“年度考核一年优”的条件等。我们把和时间关系不紧密的条件都归于这一类条件,这些条件表现为程序中的和业务紧密相关的函数。与时间相关的约束。在举例说明的这条知识包含的时态约束就是:1999年前晋升的间隔最少为2年,1999年后晋升的间隔最少为4年。这类时态约束可以直接用引入的时态算子描述。作如下定义:1BooleanValidNonimation(ID),判断是否满足两年考核结果为“优“或“一年优”;2MGe
66、t_上一次晋升年份:用于返回上一次晋升的年份Prior;3晋升的时态约束表达式TC_Exp:(GAP(Prior,Now)2YearANDBefore(Now,1999)OR(GAP(Prior,Now)4YearANDAfter(Now,1999)TC_Exp返回布尔结果给Flag。对象结构结构内容STK_IdTK_晋升sTK_Description工资档次晋升ValidTime1993-10-1 , Priority1TK_TriggerValidNomination ( ID )TK_RuleTKRule_工资晋升MethodMGet_上一次晋升年份M_确定晋升一档表表17晋升政策描述规
67、则“TKRule_工资晋升”内容如下:Rule:TKRule_工资晋升While_Event:MGet_上一次晋升年份(ID)When:TC_ExpIf: TrueThen: M_确定晋升一档3.时态知识的可视化管理时态知识的可视化管理一般而言,在一个应用系统中基本上有:一是关于数据的管理,另一个是关于知识的管理。关系型数据库管理系统从理论研究到实际产品已经非常成熟,目前开发的信息管理系统基本上都是应用这些商业产品。而针对知识库管理系统的研究在理论上探讨比较多,实用产品大多停留在实验室原型研究阶段,距离商业应用仍有不小距离。这是因为:知识的种类繁多、范围广泛,不同的知识有不同的表达方法,很难用
68、几种模型统一描述,理论研究的复杂程度高。与数据具有结构化的特点不同的是,许多知识存在不确定、异构的特点,在计算机中如何存储、表示知识是另一个难点。知识是人类智慧的集中体现,知识库既需要领域专家的经验支持,又需要计算机专家把知识转换成计算机能理解和管理的数据结构。这使得知识库系统应用往往离不开两个领域的专家,限制了它的推广应用。属性的可视化属性的可视化在面向对象技术中,对某个对象,其属性集的结构是相对确定的。属性的可视化要求:当选定某个对象时,能找到它的属性、值、还有属性约束,不仅包括对象本身的属性,还有它的基类的属性。对于任何一个父类,属性集和对象标识是保持一一映射;而其继承子类不仅包含自身新
69、增的属性,同时包含父类定义的属性。类似于图14显示的三个类之间的继承关系。图图14类属性的层次可用如下方法对对象属性的可视化:用数据表记录类的继承关系,以及各个类的属性名称、类型、约束等,子类中不登记其父类的属性,如表8和表9所示。类名父类名基本时间类Null基于点的时间基本时间类基于区间的时间基于点的时间类名属性名属性类别属性约束基本时间类年数字4位数字基本时间类秒数字160基于点的时间时间粒度数字1-6基于区间的时间起始时间基于点的时间基于区间的时间终止时间基于点的时间表表8表表9当用户选择某一对象时,其所有可视化属性可以按如下算法得到:Step1:在表12-9中定位到第一条该对象对应类的
70、属性记录;Step2:读取表中所有该类的属性记录;Step3:在表12-8中找到当前类的父类,如果没有则退出,否则继续;Step4:把父类设为当前类,跳至Step1继续。实际上基于继承关系的类的属性关系如同一棵树。当选择了一个对象,要找到它所有的属性给用户编辑,这一寻找过程就是:以该对象所在节点为起点,向根节点遍历的过程。这时用户看到的是一个知识对象的属性面板,里面提供了各个对象的属性。规则的可视化规则的可视化确定了规则的结构,就可以通过可视化界面管理、编辑时态知识。对于产生式规则而言,它的基本结构为:IFPTHENQ一个复杂的规则,可以通过多个规则的组合来表示。规则的前件可以是表达式或者函数
71、,规则的后件可以是下一条规则或是某个动作。解决规则的可视化需要考虑如下问题:采取某种自然的语法结构方便用户理解规则;复杂规则的表示;规则中的表达式、动作的选择。IF/THEN/ELSE语法结构是产生式规则的标准结构,为了方便表示时态知识,我们采取了扩展的规则语法结构。同时为了简化结构,我们把知识对象中的触发条件和规则合并到一起,其BNF语法如下::=;:=|;:=;:=;:=;:=;:=|;:=|;:=|;触发条件在While_Event中体现;When用时态表达式描述时态约束。下面以三条规则为例,说明扩展的规则语法:TKRule_助工评定Rule:TKRule_助工评定While_Event
72、: ApplyForAssEngineer(ID)When:During(Now1year,Now),毕业期限)If: IsUndergraduate(ID)Then:M_确定助工资格(ID)说明:While_Event:用于接收事件请求,这里ApplyForAssEngineer(ID)指当接收到申请评审助工请求时。When:用于申明关于时态的约束,这里During(Now1year,Now),毕业期限)要求“毕业期限”在有效的申请区间内。If:用于规则的其它非时态判断,IsUndergraduate(ID)判断是否为本科学历。Then:满足IF条件时的动作或下一条规则,M_确定助工资格(I
73、D)为确定助工的业务处理。TKRule_工程师评定1Rule:TKRule_工程师评定1While_Event:ApplyForEngineer(ID)When: Gap(助工起始日期,当前日期)4年If: IsUndergraduate(ID)Then: M_确定工程师资格Else: TKRule_工程师评定2TKRule_工程师评定2Rule:TKRule_工程师评定2While_Event:ApplyForEngineer(ID)When:Gap(助工起始日期,当前日期)5年If:IsUndergraduate(ID)Then: M_确定工程师资格说明:工程师评审有2条规则,需要注意的是
74、,TKRule_工程师评定1中的Else部分指定启用另一条规则TKRule_工程师评定212.3.5主动事件机制主动事件机制1事件形式化表达事件形式化表达事件主要由两个表达式描述:状态表达式和时间表达式。状态表达式通过人员的现状态和变动条件组合而成。如:新职务工资待遇原职务工资待遇。时间表达式主要是判断工资的可变动性,如:职务变动时间原任职时间And职务变动时间原工资变动时间事件与规则之间的映射关系通过对应关系表描述,由于与事件相关的规则可分为用于生成事件的规则和用于处理事件的规则两类,因此对应关系表也应该有两个。表10、11分别是时间和事件规则对应生成表的例子,事件规则对应处理表与事件规则对
75、应生成表类似。在实际处理中,状态表达式和时间表达式都非常复杂,这里仅给出的仅仅是简化的示例。表表1010 事件表事件事件ID事件名事件名人人员编号号身份身份时间E1职务晋升00001管理人员1995/07/02E2职务降低00001专业技术人员1998/11/21表表1111 事件规则对应生成表事件事件ID规则IDE1R1E2R22事件处理器事件处理器事件处理器主要分为事件生成器、事件排队器、事件调度器和事件处理子模块。事件处理器的控制结构如图事件生成器事件生成器根据数据库状态和规则生成相应的事件并传递给事件排队器进行排队。事件生成器顺序扫描各项人员历史资料,查找事件-规则对应产生表,调用规则
76、生成相应的事件。由于某一类事件通常只与人员的某项历史资料相关,例如职务晋升和职务降低事件只与人员任职历史有关,工改事件和转正定级事件只与人员转正时间有关,因此事件生成器的实现比较容易。事件生成器在生成事件的同时,把新事件传给事件排队器进行排队处理。当人员资料扫描完毕,事件生成器结束运行。事件排队器事件排队器将事件放入相应的队列,并参照优先级表对事件进行排队,然后把事件队列传给事件调度器。事件排队器在信息采集时的处理显得尤为重要。因为在未分散处理前,信息采集得到的信息实际上就是系统的模型库,此时需要根据大量的职员历史信息计算出历年来的工资变动情况,并确定现行工资,所以会触发大量事件。而这些事件又
77、由于事件及优先级的不同,要进行复杂的排队以保证正确的处理顺序,这些工作都是由事件排队器做出保障。事件调度器事件调度器接收事件排队器传来的事件队列,逐一取出要处理的事件,查找事件-规则对应处理表,调用方法库中的方法从用户数据库中读取规则所需的状态变量,然后调用相应的规则,在调用方法将规则的处理结果写入用户数据库中。事件处理子模块事件处理子模块负责读写全局状态变量,调用规则处理器及调用方法库读写用户数据库。由于工资变动可能触发多种事件,而信息采集时的处理模型更涉及多个事件序列,事件之间又存在优先关系,因此本系统采用多事件队列的方法进行处理,如图图图16事件队列首先针对每种人员类别(即人员身份,如管
78、理人员、专业技术人员、技术工人和普通工人)分别建立一个事件队列,另外还要建立一个优先级表,如表12所示,表中描述了每一类事件的优先级。其次要实现一个事件排队器,在新事件进入队列时根据事件的时间和优先级插入队列的相应位置。事件发生时间越早,在队列中的位置越靠前;同一时间发生的事件则根据优先级表决定它们的位置先后。当事件产生器运行结束后,把事件队列发送给事件调度器事件排队器对事件进行排队的工作流程如下:step1:接收新事件,根据新事件的身份参数判断该事件应该进入哪个队列。Step2:将新事件插入队列头,如果该队列为空,转第6步;否则转第3步。表表1212 事件优先级表事件ID优先级E11E22S
79、tep3:将新事件的时间参数与其队列后面的事件的时间参数作比较,如果新事件的时间=旧事件的时间,转第4步;如果新事件的时间旧事件的时间,将新事件与旧事件在队列中的位置互换,转第5步;如果新事件的时间=旧事件的优先级,转第6步;否则将新事件与旧事件在队列中的位置互换,转第5步。Step5:如果新事件当前位置是队列的尾部,转第6步;否则转第3步。Step6:事件排队结束。12.3.6系统的协同机制系统的协同机制SIDSS由管理版和用户版组成,管理版用户是上级人事部门(人事厅、局),用户版的用户是机关事业单位的人事部门。系统中存在两种协同工作:系统间协同和系统内部的协同工作。建立系统间的协同工作机制
80、,满足管理版与用户版之间协同审批工作的需求以及工资变更操作。同时在系统内部:工资变更所涉及的数据、属性、方法、规则、事件和操作都是与时间紧密相关的,事件和规则的顺序很关键。SIDSS的工资结算在月底进行,这是一个集中批处理任务:所有单位的工资必须由省一级管理部门统一核对并计算。工资结算时,由一个客户程序直接发起服务请求。由于工资核对和计算过程的复杂,整个过程大约需要67个小时才能完成,而且中间不允许出现中断,否则可能需要从头再来。针对这一问题,我们采用了多种方法来提高处理速度,包括优化数据库、精心设计算法等,这些方法效果不明显。我们把解决方案放到并行协同处理上来,利用局域网内的计算机协同工作,
81、共同完成结算任务。为了利用局域网计算资源,设计任务必须注意以下几点:任务定义:任务的定义必须根据业务流程划分,在结算过程中,这些任务能够独立执行。任务粒度的大小也是要考虑的,太大会导致任务集中在几台计算机上;任务粒度太小导致计算机频繁通信从而降低效率。任务分配:不同的任务有不同的级别,优先级高的任务必须先执行。任务登记:当任务分配和完成时,要登记每个任务的状态。特别是其时态属性,这关系到任务处理的时序管理。时态规则确保任务分配时按正常时序分配任务,定义如下:二维数组TAi,ji1,2,N,j1,2,3记录前3个步骤中的所有任务。其中i代表了单位个数,j代表着步骤次数。例如:T2,2代表单位2的
82、第2个任务,任务T2,2在任务T2,1后,任务T2,3前。再定义TA4和TA5分别代表最后两个结算任务:汇总、上报。任务执行必须遵循时序关系,这种关系是一种时态知识,可以用如下时态规则来约束,定义如下:Temporal Rule1: Always(NotTAi,2UntilTAi,1)AND(NotTAi,3UntilTAi,2)或Always(Before(TAi,1,TAi,2)ANDBefore(TAi,2,TAi,3)Temporal Rule2: Always(NotTA4Until(TA1,3,TA2,3,TAN,3)Temporal Rule3:Always(NotTA5Unti
83、lTA4)第1条时态规则描述了前3步的时序关系,对同一单位而言,其子任务必须是顺序执行的,这要求在任务分配时予以保证。但是不同单位的子任务是可以并行执行的。第2条时态规则要求只有当所有单位的前3个任务都完成,汇总任务才可以分配执行。第3条时态规则要求只有当汇总任务完成后,上报任务才可以分配执行。作为时态知识库的基本单元,描述该时态约束的知识对象如表对象结构结构内容STK_IdTK_任务分配sTK_Description任务分配的时态约束ValidTime(, )Priority1TK_TriggerForTaskAssignement (Workstation ID )TK_RuleTemporal Rule1;Temporal Rule2;Temporal Rule3;MethodMGet_分配任务12.4 本章小结本章小结本章主要介绍了计算机支持的协同工作(CSCW)基本概念,XML语言、工作流等数据库协同工作的主要技术,最后介绍一个协同数据库实例:工资智能决策支持系统,该系统具有典型的时态特征。系统涉及时态数据库、主动数据库技术、知识库、数据库协同工作等多种数据库技术,系统不是简单应用某种数据库技术,而是综合应用了多种数据库与软件开发技术提出的综合性解决方案。