Posted on 2005-09-01 19:55 
publisher luo 阅读(4206) 
评论(0)  编辑  收藏  所属分类: 
项目问题解决 
			 
			
		 
		
| 
 | 
 | 
 |    客户的权限要求采集回来了,天哪,根本不是什么权限的设置和判断了,原有内容管理中的权限管理(RBAC Role based Access 
Control 
基于角色的访问控制)根本不能解决问题. 经过仔细分析,所有要求具为领导拍脑袋定下来的不符合逻辑的一些逻辑。如何解决?随即想到了采用专家系统来解决这个问题。找到开源的rete算法java实现包Drools(http://www.theserverside.com/articles/content/Drools/article.html),
并察看了专家系统的部分书籍。但是项目时间紧迫所以放弃了,主要是其规则存放于xml中,没想出好的办法与本工程良好的配合起来。所以还是决定先采用简单
的决策树(本系统中正好有树状结构的内容管理系统,很容易扩展)解决问题。在每个树状决策节点可以加入条件和行为,如何解析?成了一个问题。再
google一下,找找开源的脚本解析,哦不错有java脚本的解析器( BeanShell---Java应用程序脚本引挚 
)可以直接解析java语句,功能比较强大,包也不大。不得不佩服现在的开源真是如火如荼,还是早早的加入进去吧。 主要测试代码://创建一个bsh解释器实例
 Interpreter bsh = new 
Interpreter();
 //测试执行一个接口实现的类
 String program = "public Object excute(int 
aa,String bb){return \"Cool\";}";
 program ="Command command= new 
Command(){"+program+"};";
 program += "Object 
obj=command.excute(aa,bb);";
 bsh.eval(program);
 //测试执行一个函数
 String 
program = "Object excute(int aa,String bb){return \"bb+aa\";}";
 program += 
"Object obj=excute(aa,bb);";String program = "Object excute(int aa,String 
bb){return \"bb+aa\";}";
 program += "Object 
obj=excute(aa,bb);";
 bsh.eval(program);
 
 bsh.eval(program);
 |