书城政治政务工作全书(下)
12434200000035

第35章 电子政务(19)

API提供了创建、管理和定制规则库以及管理规则库中的业务规则所需的所有工具和类。另外,API还提供了用来在J2EE环境中部署规则引擎的类。

3.规则库( Repository)

规则库是保存和维护结构化规则数据的集中存储区域。ILOG JRules规则库提供了保存、维护和管理业务规则及相关数据所需的模型和服务。存储在ILOG JRules规则库中的内容有项目( Project)、包(Package)、业务规则、决策表(Decition Ta-ble)、规则流(Ruleflow)、函数、模板库、规则模板和业务对象模型(BOM)。

规则库对象模型遵循与元数据表示和交换相关的规范,如MOF(Meta Object Fa-cility)和OMG(Object Management Group)标准模型规范。对规则库访问的AP1遵循Java JMI规范。

规则库对象模型是可以扩展的。开发人员可以定制和扩展存储在规则库中的数据的类型。因此,对于特殊的需求,规则库提供了强大的可灵活定制的功能。

(1)规则库

规则库模型决定了可存储在规则库中的对象的类型。ILOG JRules规则库附带有一个预定义的模型,可以满足通用业务规则需求。必要时,可以对此模型进行扩展,使之满足特定需求。本部分的其余内容将介绍规则库模型中最常用的对象。业务规则库模型如图15 -4 -13所示。

(2)业务规则

一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常是由业务分析人员和策略管理者编写和编辑。编写业务规则时需要使用类似于自然语言语法的业务规则语言的规则编辑器和相关的业务模型定义。业务规则的理论基础是设置一个或多个条件,当满足这些条件时会触发一图15 -4 -13业务规则库模型个或多个操作。以下是一个用BAL语法表示的简单业务规则的结构

如果(If)

对象的条件

那么( Then)对这些对象执行的操作

[否则( Else)]

执行此分支操作

(3)业务对象模型

BOM提供作为业务规则基础的类和方法。BOM包含的类可以是直接从现有的Ja-va对象模型、XML Schema或Web Service导入的,也可以是直接从一组面向业务的类导入的。这些面向业务的类不直接映射到底层的Java类或XML架构,称为“虚拟类”。

业务规则语言可以视为语言的语法,而BOM可视为词汇。在将业务规则转换为执行规则时,BOM类也会转换为XOM类。在BOM中还可以建立自然语言映射。因此,BOM支持用自然语言的语法编辑和书写业务规则。

(4)规则流(Ruleflow)

规则流是一个图表,定义了解决问题或执行业务流程的顺序。规则流类似于统一建模语言(UML)活动图(Activity Diagram.)。它由一组任务(Task)以及定义这些任务之间执行顺序的转换逻辑组成。一个转换由条件控制,只有当该限制条件为“真”时才能完成这种转换。

这些任务可以是规则任务、函数任务或子规则流任务。规则任务包含一组要作为任务主体执行的规则。规则的执行逻辑由用户设置的任务属性严格控制着。

1)规则的排序。使用动态优先级、静态优先级,或者按照用户明确规定的顺序。

2)规则触发策略。触发所有符合条件的规则,或者触发一条规则并退出任务。

3)执行算法。基于Rete算法或者使用连续的字节码生成法来优化性能。

函数任务包含要作为任务主体执行的脚本代码。最后,子规则流任务包含任务开始后将依次执行的子规则流。

该规则流中规则的触发反过来又可以触发规则集中的其他规则。规则流提供了表示可执行流程的模型,而任务则类似于该流程中的一个步骤。

4.规则语言

当书写业务规则的时候,用户必须选择预先定义的业务规则语言或者使用用户自己开发的自然语言语法形式的业务规则语言。开发人员可以扩展BAL,也可以通过BRLDF开发一种自定义业务规则语言。

业务规则语言是针对BOM中包含的业务模型对象编写的。它是为业务分析人员或策略管理者设计的,因此使用的是业务词汇而非技术词汇。有了它,人们就能够对反映业务领域的业务规则进行定制,而不是底层Java或XML实施。

(1) BAL

一种通用的业务规则语言,可提供自然语言语法。BAL旨在满足编写业务规则时最常见的需求。

(2)技术规则语言(TRL)

TRL是ILOG规则语言(IRL)的语法驱动形式,主要供开发人员使用。

(3)决策表

决策表由行和列组成,用于按表格形式展示业务决策可能遇到的所有情形。其中指定了在每种情况下要采取的措施。

(4) IRL

IRL可由规则引擎直接执行的语言。IRL的语法类似于Java,主要供开发人员使用。开发人员在编写规则时也可以使用BAL或TRL之类的业务规则语言。

使用业务规则语言定义框架( BRLDF)的自定义业务规则语言支持功能。有了这种功能,就可以在XML文件中定义语言。BRLDF位于标记模型(Token Model)的顶层,可用于进行高级定制。

规则编写语言使用户能够用不同类型的规则编辑器和不同的规则语法来编写业务规则。规则引擎规则引擎是ILOG JRules的核心部分,负责执行业务规则,它可用随IRL规则集被实例化。规则引擎对规则集进行解释,以便能够对规则进行动态修改。

ILOG JRules在执行业务规则时采用优化的Rete算法。Rete算法已被人们广泛采用,因为它能够在业务规则应用程序中处理大量的规则,而且在处理需要动态引用变化数据的规则时,它表现出了卓越的性能。

用户可以将规则引擎处理算法设定为顺序执行模式,这样在处理某些类型的规则集时可以显著地加快处理速度。

1.规则引擎功能规则引擎主要有如下功能。

1)能够将关键的业务规则与其他源代码分开保存。它使用户能够迅速实施业务逻辑的更改而不必重新编写应用程序。

2)它使用了XOM,以定义应用执行规则的类。这些类可以有不同的数据来源,这些数据可以在XOM中像Java的类一样进行查看和处理。如XOM使用了功能强大的XML绑定系统,使规则引擎能够直接对XML数据或Web Service所提供的数据进行操作。

3)通过嵌入方式,可以在任何Java应用程序中执行业务规则,并支持多种部署方案,从而优化了系统性能和可扩展性。

4)可以执行业务规则应用程序中所集成的规则集。

2.规则执行

执行规则时需要具备相应的上下文、规则集,并可以进行规则调试。

3.上下文( Context)图15 -4 -14给出了规则引擎类IlrContext的实例。该类中包含了在控制规则引擎和执行规则时所需的全部方法。

4.规则集

图15 -4 -14所示是规则集(Ruleset)类IlrRuleset的一个实例。该实例引用了一个规则集文件。该类的作用是管理规则集。

5.远程调试器连接

与Rule Builder进行远程连接的目的是进行调试和分析。从IlrContext类中调用delegate Control方法(规则引擎将控制权委托给Rule Builder)可以实现该连接。

6.执行对象模型

执行对象模型( Execution Object Model)是规则引擎的一部分,它指定了针对哪些执行对象运行规则。这些对象通常是由定义它们的数据路径定义的,如果定义的是Java对象,则此类数据为Jar文件;如果是XML数据所生成的对象,则为UML架构。

使用XOM,规则引擎能够以相同的方式处理不同来源的数据对象。在将业务规则转换为可执行的业务规则时,BOM类也会转换为XOM类。

7.绑定

XOM通过所谓的绑定过程提供指向各类不同对象的链接。

可以将绑定看作是连接不同对象类型的XOM接口。从Java类和数据库中派生的信息可以分别使用ILOG JRules Java绑定功能和数据库绑定功能,而XML和WebService架构则需要借助XML绑定功能转换为Java表示的对象。

(1) Java绑定

Java绑定是指将Java对象绑定到XOM上并提交给规则引擎的过程。XOM通过使用类路径这种最简单的绑定方式来引用Java对象。

(2) Web Service绑定

XML Schema和XMI.数据可以通过Web Services来提供(如果它们位于远程数据库中),然后在运行规则引擎时动态地加载并转换为对象。这些对象将作为XOM动态对象绑定到XOM上并提供给规则引擎。Web Service绑定与XML绑定采用的是相同的机制,但前者是通过Web Service实施的。ILOG JRules Web Service模块采用了基于XML的远程过程调用(RPC),RPC使用的是简单对象访问协议(SOAP)1.1规范。

(3)数据库绑定

借助ILOG JRules数据库连接工具可以轻松地从ILOG JRules应用程序访问符合Java Dstabase Connectivity (JDBC(tm))的任何数据库,可以直接在关系型数据库实体上编写业务规则。

(4) XML绑定

通过XML绑定可以将对象从XML文档加载到规则引擎中。在ILOG JRules中,文档结构是由XML模式定义(XML Schema Definition,XSD)文件描述的,该文件中包含限定XML数据的结构和内容的信息。

(第四节 公文流转与审批系统项目开发分析

一、公文流转与审批系统结构分析

纵观目前市场上成形的公文流转与审批系统,其开发模式上的差别主要体现在系统结构和开发的技术手段上。系统结构主要指终端操作人员与应用服务系统的相对关系。按照系统终端情况的不同,可将公文流转与审批系统的开发结构分为B/S(浏览器/服务器)和C/S(客户端/服务器)两种模式,它们各具特色,是当前公文流转与审批系统开发的主流。

1.C/S模式

C/S模式系统以服务器作为数据处理和存储平台,在终端设计有专门的应用程序进行数据的采集和初次处理,再将数据传递到服务器端,用户必须使用客户端应用程序才能对数据进行操作。C/S模式具有专业化程度高、开发手段灵活、运行速度快等特点,但受到维护成本高,适应性弱等问题的影响。

2.B/S模式

B/S模式的系统以服务器为核心,程序处理和数据存储都在服务器端完成,用户无须安装专门的客户端软件,只要通过网络中的计算机连接服务器,使用浏览器就可以进行事务处理。B/S模式具有易于升级,便于维护,客户端使用难度低,可移植性强等特点。

BRM - Workflow&BPS的体系结构为B/S模式。

二、开发手段分析