规则引擎需求说明书_第1页
规则引擎需求说明书_第2页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXX公司规则引擎系统软件需求说明书2020/9/23修改记录文件编号版本号拟制人/修改人拟制/修改日期更改理由主要更改内容(写要点即可)V1.0.02020/9/23无无注:文件第一次拟制时,“更改理由”“主要更改内容”栏写“无”目录1.引言31.1. 目的31.2. 范围31.3. 简写与缩略语31.4.引用文件32.总体描述42.1.产品描述42.2.产品功能42.3.用户特点42.4. 约束42.5. 假设和依赖关系53.具体需求53.1. 外部接口需求53.2.功能需求53.2.1.规则引擎控制台53.2.2.规则引擎执行器83.2.3.规则引擎资源服务器83.2.4规则引擎客户端9

2、3.3.性能需求93.4.设计约束93.5. 软件系统属性93.5.1. 可靠性93.5.2. 可用性93.5.3.安全保密性103.5.4.可维护性103.5.5.可移植性101.引言1.1.目的该文档试图说明整个系统的轮廓,对功能需求和性能需求进行详细的描述。便于开发人员和用户进行理解和交流,反映出用户问题结构,可作为软件开发的依据和测试依据。本文面向多种读者:项目经理:可根据文档了解预期产品的功能,并进行系统设计,项目管理。开发人员:对需求进行分析,并设计出系统,包括数据库设计。测试人员:根据本文档编写测试用例,并对软件进行功能性测试和非功能性测试。1.2.范围规则引擎由推理引擎发展而来

3、,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。1.3.简写与缩略语字典:diet;函数:func;规则:rule;1.4. 引用文件1、Drools官网地址:git地址:Drools是JBoss公司旗下的一款开源规则引擎,其使用了匹配规则的方式来进行,使用时需将业务逻辑进行抽象,抽象成一条条规则。2、URule官方地址:git地址:URule是一款纯Java规则引擎,它以RETE算法为基础,提供了向导式规则集、脚本式规则集、决策表、交

4、叉决策表(PRO版提供)、决策树、评分卡及决策流共六种类型的规则定义方式,配合基于WEB的设计器,可快速实现规则的定义、维护与发布。URule提供了两个版本:一个是基于Apache-2.0协议开源免费版本,URule开源版本第一款基于Apache-2.0协议开源的中式规则引擎;另一个是商用PRO版本2. 总体描述2.1. 产品描述规则引擎通过java语言开发,把规则和核心业务拆开,规则单独配置。这样当我们的规则变化的时候,就可以通过修改规则文件而不用修改核心的代码了。在规则较为复杂的行业,都是适用的,如金融、制造、医疗、物流等行业,面临的规则变化较为复杂,目前使用较多。而且对规则引擎需求的行业

5、也将越来越多,如团购平台、传统企业管理渠道等2.2. 产品功能将自己的实际业务体现成具体规则,通过规则引擎实例出自己项目所需的各种规则,通过调用规则引擎来执行此规则来实现业务与核心代码分离。主要功能模块:项目(用户管理创建的项目信息,创建的字典,函数,规则信息会和项目关联)。知识库(字典管理:字典为创建规则时所依赖的实体信息;函数管理:用于规则中的条件判断)。规则管理(规则数据管理:维护业务所需的规则信息;规则调试:可以在控制台执行所选规则并查看执行结果)。调试(脚本执行:可用于编写脚本并执行,在创建函数后可在这里进行测试)。统计管理(统计函数和规则的执行情况)。2.3. 用户特点该系统的最终

6、用户为软件开发人员,该用户群体了解软件业务开发流程,了解RPC服务调用,了解grovvy脚本编写,能够良好的将业务和自己软件的核心代码进行拆分,将复杂业务用规则引擎来实现。通过规则引擎能够使开发人员减少大量的逻辑性代码编写。2.4.约束进行本软件的开发工作的约束条件:(1)开发周期:在指定的时间内完成主要功能模块,发布vl.0.0版本。(2)功能模块的扩展:需要调研市面其他规则引擎的功能,了解其优势,提高规则引擎的易用性丰富其功能。(3)编程语言:java,grovvy,react2.5.假设和依赖关系本系统能够成功设计完成主要取决于以下条件:(1)团队成员的积极配合,和其他系统成员之间协调接

7、口功能。对系统功能进行阶段性规划,个人时间合理规划,学习更多专业技能来保证系统的性能。(2)及时沟通系统功能需求,解决开发阶段发现的其他风险。3. 具体需求3.1.外部接口需求(1)统一认证平台:系统登录的用户需要在统一认证平台录入。(2)统一权限管理平台:将系统的资源上报权限管理平台,通过配置角色和功能对不同用户进行权限管理。此系统需要调用用户信息。3.2. 功能需求3.2.1. 规则引擎控制台需求描述:(1)用户在控制台页面上进行所属项目的规则创建,可自行创建规则所需的字典和函数。函数可以在界面上用脚本测试。在自己创建的规则中体现出业务场景,提供控制台调试规则。字典、函数、规则数据拥有线上

8、和线下版本,当使用快照模式执行规则时使用的为最新版本的数据。(2)在控制台可查看规则执行后的统计数据,相应规则、函数的执行成功、失败、,梦中数量。(3)客户端订阅资源服务器信息:客户端远程ip、连接的资源服务器ip、订阅的内容、关注的资源。. FUNC-010-0010用户登录需求描述:系统提供控制台登录界面,当用户使用规则引擎时需要在统一权限管理平台创建用户,用户的账号密码登录规则引擎控制台。登录时前端请求统一认证平台获取Token,用于用户身份验证。优先级:高使用频度:经常正常流程:统一证管理平台管理员创建的用户,用账号密码登录规则引擎控制台。. FUNC-01

9、0-0020用户退出需求描述:控制台提供退出登录按钮,点击时退出当前用户清除token。优先级:高使用频度:经常正常流程:在控制台页面提供退出按钮,点击按钮退出当前用户。. FUNC-010-0030项目管理需求描述:用户在使用规则引擎时首先需要创建自己的项目,规则依赖于所属项目。在创建项目时可进行项目描述。提供编辑删除功能。项目列表页提供分页显示。优先级:高使用频度:经常正常流程:以自己项目名称创建项目模块。. FUNC-010-0040字典管理需求描述:提供字典数据模块字典包括:字典编号、字典名称、所属项目、当前状态、线上状态、创建者、修改者、创建时间、修改时间

10、、线上版本、最新版本、操作(编辑,删除,版本)。在创建字典时字典包括基本信息:名称,code,所属项目,key(唯一),版本。请求参数:可提供java常用数据类型。扩展变量:字典的一些常量定义。字典提供多版本记录。优先级:高使用频度:经常正常流程:创建规则时依赖的对象信息,通过字典进行规则传参。以自己业务为准抽象为字典对象。创建完成后可发布版本。. FUNC-010-0050函数管理需求描述:提供函数管理模块,函数主要包括:列表分页,每条记录包括:函数签名,所属项目,类型,模式,是否公开,当前状态,线上状态,创建者、修改者、创建时间、修改时间、线上版本、最新版本、操作(编辑,调试

11、,删除,复制,版本)。在创建函数时提供属性:函数名称,key(唯一),函数code,返回值类型(java常用数据类型),函数类型(动作,操作符,补全函数),函数说明。参数(支持多个):定义函数所用参数。调试:在脚本执行界面执行函数代码展现出执行结果。优先级:高使用频度:经常正常流程:在创建完成函数后,在使用规则时用于条件判断,例如大于、等于、小于等这些常用的函数可公开使用。利于其他项目引用。. FUNC-010-0060规则管理需求描述:提供规则管理模块,规则分页列表每条记录包括属性:规则名称,key(唯一)、所属项目,当前状态,线上状态,类型(普通向导式)、创建者、修改者、创建

12、时间、修改时间、线上版本、最新版本、操作(编辑,调试,删除,版本);在创建规则式基本信息会绑定字典。在规则集中体现具体的业务描述(如果.那么.否则)。提交规则调试:用于页面执行规则查看结果,可选择线上或者线下的规则进行调试,在执行参数中输入指定的参数,规则执行后展示是否命中,规则结构树,执行结果(json数据)。统计管理优先级:高使用频度:经常正常流程:将自己的业务逻辑在规则中体现出来,可在界面执行查看出具体结果和是否命中。. FUNC-010-0070统计管理需求描述:统计计数:展示规则,函数在某段时间内的执行情况,包括接收数,命中数,异常数,成功数,平均耗时ms优先级:低使用

13、频度:偶尔正常流程:在线上规则执行后,所使用的函数和相应规则的执行接口会记录,在统计模块提供查询。. FUNC-010-0080客户端需求描述:TCP列表,展示客户端和资源服务器的连接情况,客户端远程ip、连接的资源服务器ip、订阅的内容、关注的资源。同步资源服务器对应的客户端数据。优先级:高使用频度:经常正常流程:在客户端引用规则引擎时会订阅规则引擎的资源服务器,当订阅成功后会看到每台资源服务器对应的远程客户端。当订阅的资源修改之后会自动触发数据同步,而此处的同步为服务连接异常或者其他特殊情况,管理员可手动触发。3.2.2.规则引擎执行器. FUNC-020-00

14、10规则执行需求描述:规则执行器为规则引擎的核心处理模块,提供控制台、远程服务的调用执行规则。提供快照和正式版执行方式,快照执行会每次加载数据库的规则数据,正式版执行会将第一次的规则数据进行缓存,保证重复调用时的执行速度。优先级:高使用频度:经常正常流程:实现规则引擎暴露的接口,在接口中接收规则参数,具体执行相应的规则返回执行结果并记录。. FUNC-020-0020数据同步需求描述:当线上的字典、函数、规则数据改变时更新执行器的缓存数据,保证数据一致性。优先级:高使用频度:经常正常流程:在控制台发布字典、函数、规则时自动触发更新数据操作。3.2.3.规则引擎资源服务器3.2.3

15、.1. FUNC-030-0010数据通信需求描述:维持于多个客户端之间的订阅关系,通过订阅来传输数据,当数据发布后控制台的数据同步到各个资源服务器,如果这些数据中存在客户端关注的资源,资源服务器将推送数据到客户端。接收客户端发送过来的数据,如果客户端发送来的资源数据库中不存在,则创建相应的字典或者函数。暴露接口提供控制台统计客户端TCP连接信息。优先级:高使用频度:经常正常流程:当客户端订阅资源服务器时,控制台显示TCP连接信息,数据发布、下线时客户端接收数据。3.2.4规则引擎客户端. FUNC-030-0010订阅资源服务器需求描述:能提供给外部服务引用,在客户端可以自定义

16、字典、函数,根据rule_key提供本地规则执行。连接资源服务器实时获取到资源变更后数据。保证订阅资源服务器高可用。优先级:高使用频度:经常正常流程:外部服务引入客户端模块,在外部服务启动的时候初始化自定义的字典、函数到资源服务器,并缓存本地字典、函数和规则数据,利于本地执行规则。启动时并触发订阅资源服务器实现数据同步。在与资源服务器连接断开时触发重连,当指定的资源服务器无法连接时,尝试连接其他可用资源服务器。3.3. 性能需求数据一致性;接口相应在1S内。支持并行操作用户数:1000。资源服务器支持客户端数:1003.4. 设计约束按照公司项目管理规范3.5.软件系统属性3.5.1.可靠性在现有软件环境和硬件条件下、在满足当前需求的条件下、在没有出现错误操作的情况下,所有软件模块必须能稳定无故障运行3.5.2.可用性(1) 操作方便:操作流程合理,方便用户调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论