一种基于本位的Web语义规则软件体系结构的研究

上传人:飞*** 文档编号:43738416 上传时间:2018-06-07 格式:DOCX 页数:5 大小:105.21KB
返回 下载 相关 举报
一种基于本位的Web语义规则软件体系结构的研究_第1页
第1页 / 共5页
一种基于本位的Web语义规则软件体系结构的研究_第2页
第2页 / 共5页
一种基于本位的Web语义规则软件体系结构的研究_第3页
第3页 / 共5页
一种基于本位的Web语义规则软件体系结构的研究_第4页
第4页 / 共5页
一种基于本位的Web语义规则软件体系结构的研究_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《一种基于本位的Web语义规则软件体系结构的研究》由会员分享,可在线阅读,更多相关《一种基于本位的Web语义规则软件体系结构的研究(5页珍藏版)》请在金锄头文库上搜索。

1、一种基于本位的一种基于本位的 WebWeb 语义规则软件体系结构的研究语义规则软件体系结构的研究摘摘 要:要:以 Web 服务为基础的面向服务软件体系结构(SOA)扮演着越来越重要的角色,其开发方法和建模研究正成为软件工程领域一个新的热点问题。目前软件系统面向大规模和复杂业务处理的要求,研究对业务流程和逻辑进行形式化的逻辑描述和逻辑处理,引入 Mandarax 规则引擎进行业务逻辑的推理处理,实现业务逻辑的集中处理。作为一个可复用的系统构架设计的基于规则的软件体系结构,使用 Prova 建立规则层,利用规则引擎实现业务逻辑的推理处理,通过规则层应用实验的实现证明基于规则的软件系统结构的可行性和

2、有效性,在一定程度上完善了软件工程设计技术的理论层次。 关键词:关键词:语义 Web;Prova 语言;规则层;规则引擎A A methodmethod basedbased onon standardstandard WebWeb semanticsemantic rulesrules ofof thethe softwaresoftware architecturearchitecture researchresearchGanHong PanDanGuangZhou City Construction College GuangZhou 510925【Abstract】This pape

3、r aims at the need of large scale and complex business processes of current software system, focuses on formalizing the logical description and disposal of business flow and logic. Mandarax, a Java rule engine, is introduced for consequence of the business rules. As a reusable system architecture in

4、tegrates the main research achievement which builds the rule layer using Prova, implements the reasoning process of business logic. The rule-based software system architecture is proved to be feasible and effective, more complete in the theory level of software engineering design technique at some e

5、xtent. 【Key words】semantic Web; Prova language; layer of rules; rule engine1 1 概述概述 近年来,在 web 环境下的软件系统结构的研究,人们逐渐认识到,整个软件系统结构的设计与规格说明己经比在早期软件开发中占有重要地位的算法选择和计算问题的数据结构更为重要,代码级别的复用方式现在己经远不能满足软件开发的需求。业务规则的概念便在这种情况下诞生。 业务规则是一组准确凝练的语句,用于描述、约束及控制企业的结构、运作和战略1。业务规则系统是完成业务逻辑快速变换的理想方案, 它将业务逻辑本身和实现分离开来,以业务规则的形式表

6、述,系统执行业务规则以完成企业的业务流程,使得业务逻辑的变化不会影响到应用系统本身。 2 2 问题描述问题描述 作为下一代 Web 技术,语义 Web 的出现和发展己成为推动业务规则相关技术发展新驱动力之一。语义 Web 的核心思想是赋给当前 Web 信息以机器可以理解的语义,克服当前 Web 信息只能供人工阅读和理解的弊端,使施加于 Web 信息之上的各种智能技术更加易于实现。语义 Web 的出现使Internet 上杂乱浩瀚的“信息海洋”变成了脉络清晰的“知识网络” ,为高层次的智能 Web 应用提供了广阔的运转空间2。语义信息模型今后必将成为 Internet 上的主流信息模型,从而跨越

7、 Web 信息检索和信息集成在语义异构等难点上的困扰,实现网上许多目前很难实现的一系列智能化应用。基于规则的服务水平协议(Rule Based Service Level Agreements, RBSLA)是慕尼黑工业大学正在研究的课题,是在语义 Web 规则层上的一个尝试。它将一个商业合同条款用一定格式的规则进行描述,并使用规则引擎实现 SLA 管理工具的功能。3 3 研究目标研究目标 在现有软件系统结构分层模式的基础上,结合语义 Web 规则进行推理的能力,本文围绕规则层主要进行了以下研究工作:研究规则层与表示层、数据层的通信方式,通过设计仿真的应用环境证明规则层的可行性。 4 4 规则

8、层与数据层的通信方式规则层与数据层的通信方式 Prova 源于 Jens Dietrich 开发的基于 Java 的 Mandarax 推理系统。它是以 Mandarax rule engine 为基础的 Script 语言,结合了描述和命令编程。Prova 通过提供适当的语法、集成 Java 自身的语法以及代理信息和反映规则等方式扩展了 Mandarax 的应用并增强了语义的描述3。 在一般应用软件的架构设计中,数据层通常表现为关系数据库,对大的数据集(例如用户数据和产品信息等)的操作通常都需要数据库系统的支持才能快速有效地完成。虽然 Prova 本身也提供了类似的数据结构来存储数据,但是其

9、执行效率相对于企业应用级的软件是比较慢的4。 而且本文设计规则层的初衷也只是在于以规则集合来代替原本写入到源代码中的应用逻辑,而不是想要代替整个逻辑层和数据层。因此,需要达到的目的就是实现规则层与数据层的通信,使得规则引擎可以获取数据库中的信息。因为这些数据会经常改变,所以只通过一次读取是不够的,需要将数据动态引入到 Knowledge Base 中。(1)使用 Prova 连接数据库:在 Prova 语法中,提供了内嵌的连接数据库的谓词 location。location 是一个事实,只有 Head 部分。 (2)使用 Prova 打开数据库:为了打开数据库,还要定义一个 Exception

10、。这样在数据库打开过程中出现问题时,可以捕获异常以便确认出错的环节。 这样就可以使用 dbopen 这个谓词来打开数据库, 并且查询记录后产生一个以谓词 customer 描述的事实,然后放入到 Knowledge Base 中。 5 5 规则层与表示层的通信方式规则层与表示层的通信方式 在规则层中,谓词是最基本的元素,也是进行推理的源头。在规则层与表示层通信交互的过程中,由表示层传入一个谓词,也就是提出一个查询然后交由规则引擎进行推理,最后将结果传回表示层,返回给用户5。 规则层与表示层进行通信需要做到 3 点:(1)规则层提供接受谓词并进行查询的机制;(2)规则层以事实或谓词参数的方式返回

11、推理结果;(3)表示层能够获取并分析规则层的推理结论。 6 6 基于规则的软件体系结构基于规则的软件体系结构 综上所述,本文已经讨论了规则的生成、规则的标准化,从而建立了整个规则层;又通过规则引擎的推理机制,使用 Prova 的相关语法设计了规则层与表示层和数据层的通信方式6。至此,这个基于规则的软件体系结构己经基本成形,其具体架构见图 1。图图 1 1 基于规则的软件体系结构基于规则的软件体系结构7 7 规则层应用实验的实现规则层应用实验的实现 7.17.1 需求分析需求分析 本应用设计了以下场景:服务商为客户提供网络硬盘的服务,并对客户区分不同级别,系统根据用户级别给予不同用户相应的折扣方

12、案;客户使用 Web 服务查询自己当前级别以及目前网络硬盘的已用空间;管理员使用管理端监视网络硬盘服务的运行情况,动态对运行情况作出模糊的统计,在服务出现故障时去通知相应的人员。应用实验的目的如下:(1)设计规则层,使用相应的机制解决冲突;(2)描述规则层与数据层的关系,使用 2 种方法存取数据;(3)使用 Web 服务作为表现层与规则层通信;(4)使用普通应用程序与规则层通信。 7.27.2 设计与实现设计与实现 7.2.17.2.1 规则层建立规则层建立 根据需求,实验共分为 2 套应用逻辑,分别对应客户的查询和管理员对所提供网络硬盘服务能否正常使用的监视。 (1)对应客户的逻辑,本文设计

13、了 2 个典型的冲突,即以下 3 条规则:1)前一年预交 15 000 元费用的用户,被认为是可以享受 12%优惠的金卡用户。2)前一年预交 10 000 元费用的用户,被认为是可以享受 8%优惠的银卡用户。3)在某特殊时期,所有银卡用户享受统一的 9%优惠,也就是在管理员根据这段促销时期的这种需求添加相应规则后。 可以看出,在这 3 条规则中,前 2 条的冲突在于,一个预交 15 000 元以上的用户既被认为是 gold,又被认为是 silver,存在优先级的冲突,需要用 GCLP 解决;第 3 条只在某时期有效,它属于 Defeasible Lugics。基于此,下面结合使用 2 种方式处

14、理如下:1)定义绝对的非和可废止的非;2)定义优先级;3)使用 GCLP 的方式来处理。 规则冲突是不可避免出现的一种情况,现在对于常见的规则冲突,DL 和 GCLP 等方法已经是很成熟的解决方案了。所以,在具体应用中,开发人员可以设计为应用程序专门制定的图形界面,输入产生冲突的规则,因为规则都具有标准的格式,所以应用程序可以方便地得到规则的 Head 和 Body 部分,并套用到对应的解决方法模板中,完成解决冲突的工作。 (2)对应管理员的逻辑,实验也设计了以下 3 个方面:1)使用 EA 形式的 ECA 规则来检查服务的运行状况。2)通过逻辑规则的推理来判断某时刻出现故障时应通知谁;分别设

15、计了不同职务等级的几个人员,如果要通知的人员因生病缺席或正在休假,则通知后面的人,直到成功通知到某人为止。3)为表现层提供绘制线形图的相应规则。7.2.27.2.2 数据库的使用数据库的使用 在实验中,本文分别尝试了 2 种数据的存放方法:(1)使用事实存放数据。(2)使用 MySQL 来记录每次网络硬盘服务的故障时间。以上 2 种方式都可以实现数据的存取。 综合来说,使用规则层模式设计的应用系统,依然需要大型数据库作为数据层;规则层的事实可以用来存放常用的静态信息。在实际应用中,可以结合上述 2 种方式来实现基于规则软件体系结构中的数据层。 7.37.3 表示层的执行效果表示层的执行效果 本

16、应用实验首先编写了 wrapper 来向 Mandarax 提交一套规则。它的主要作用是分析 Prova 文件中的事实、规则和查询,将其中的事实和规则加入到 Knowledge Base 中并激活,根据最后提交的查询使用规则引擎推导结果。其次,在实验中借用了 MVC 模式中 Viewer 的思想,使用了 DefavltText-Viewer、AdvancedTextViewer、GraphicBarChartViewer 和 Gra-phicTimeSeriesViewer 来直接接收谓词,并显示推理结果7。 实验中使用 MySQL 作为数据层,使用 Tomcat+Axis 实现 Web 服务的发布和部署,通过对系统中 Tomcat 服务器的启动和关闭来模拟网络硬盘服务是否有效。执行结果如图 2 和图 3 所示。图图 2 2 DLDL 对优先级的处理结果对优

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号