[发明专利]一种可动态部署规则的Java程序运行时验证系统有效
申请号: | 201510181988.0 | 申请日: | 2015-04-17 |
公开(公告)号: | CN104765688B | 公开(公告)日: | 2017-12-15 |
发明(设计)人: | 项程程;戚正伟;黄超;郑雨迪;管海兵 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海恒慧知识产权代理事务所(特殊普通合伙)31317 | 代理人: | 张宁展 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 部署 规则 java 程序 运行 验证 系统 | ||
1.一种可动态部署规则的Java程序运行时验证系统,该系统运行于DiSL字节码注入框架之上,包括验证规则翻译器、部署管理器以及运行时引擎三个模块,其特征是:
所述验证规则翻译器用于将验证规则定义文件翻译成由事件注入代码和规则验证代码组合成的验证代码;
所述部署管理器用于提供部署验证代码的相关用户接口;
所述运行时引擎用于根据接收的验证代码中事件注入代码产生的事件序列,为每个监控对象维护一个事件序列,验证维护的事件序列是否与规则验证代码定义的事件序列相同,并根据验证情况通过部署管理器对事件注入代码进行实时部署优化。
2.根据权利要求1所述的可动态部署规则的Java程序运行时验证系统,其特征在于所述验证规则定义文件为AspectJ语言切片语法描述的事件定义和状态机语言定义的事件序列规则。
3.根据权利要求1所述的可动态部署规则的Java程序运行时验证系统,其特征在于所述部署管理器提供的相关用户接口包括:将验证代码注入到目标Java程序的动态部署接口、根据运行时引擎的验证从目标Java程序中移除违反了验证规则和已通过验证的验证代码的动态反部署接口、动态更新目标Java程序中已部署规则的动态重部署接口。
4.根据权利要求1所述的可动态部署规则的Java程序运行时验证系统,其特征是运行时引擎包括规则监控器模块和部署优化器模块:
所述规则监控器模块根据接收的验证代码中事件注入代码产生的事件序列,为每个监控对象维护一个事件序列,验证产生的事件序列是否与规则验证代码定义的事件序列相同;
所述部署优化器模块根据规则监控器的验证结果,将已违背规则验证代码的事件注入代码和路径已完全覆盖的事件注入代码动态移除。
5.根据权利要求1所述的可动态部署规则的Java程序运行时验证系统,其特征在于验证规则翻译器将验证规则定义文件翻译成由事件注入代码和规则验证代码组合成的验证代码的过程为:
a)验证规则翻译器对验证规则进行词法分析,生成token流;
b)验证规则翻译器对token流进行语法分析,生成事件对象集合和规则对象集合;
c)验证规则翻译器分别将事件对象集合和规则对象集合生成为事件注入代码和规则验证代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510181988.0/1.html,转载请声明来源钻瓜专利网。