zoukankan      html  css  js  c++  java
  • jboss规则引擎KIE Drools 6.3.0 Final 教程(3)

    在前2部教程中,介绍了如何在本地运行.drools文件以及使用stateless的方法访问远程repository上的规则。 KIE Drools还提供了一种叫有状态-stateful的访问方式。


    运行KIE-DROOLS上的规则-另一种写法


    先上代码

    String url = "http://192.168.0.101:8080/kie-drools/maven2/org/sky/drools/ApprovalDecision/1.0.0/ApprovalDecision-1.0.0.jar";
    
    KieServices ks = KieServices.Factory.get();
    KieRepository kr = ks.getRepository();
    UrlResource urlResource = (UrlResource) ks.getResources().newUrlResource(url);
    urlResource.setUsername("tomcat");
    urlResource.setPassword("tomcat");
    urlResource.setBasicAuthentication("enabled");
    InputStream is = urlResource.getInputStream();
    KieModule kModule = kr.addKieModule(ks.getResources().newInputStreamResource(is));
    KieContainer kContainer = ks.newKieContainer(kModule.getReleaseId());
    KieSession kieSession = kContainer.newKieSession();
    try {
    PaymentInfo m = new PaymentInfo();
    m.setMoneyAmount(10000);
    kieSession.insert(m);
    kieSession.fireAllRules();
    System.out.println(m.getDecisionPath());
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    	kieSession.dispose();
    } catch (Exception e) {
    }
    }
    


    其区别在于:


    这是一个stateful(有状态)session的调用,上一个教程中的例子里面我们是一个无状态的调用。


    Stateful VS Stateless


    Stateless


    即无状态调用,比如说FACT A里的值初始为0。当这条规则被执行完成后自动断开连接并释放。


    Stateful


    即有状态调用,比如说FACT A里的值初始为0,当某一条Request把其值修改为20时在代码没有显示的调用dispose时,这个值会一直维持着。


    因此在对于Stateful Session的调用完毕后要显示的去“手工”关闭和释放它,如下面的代码:


    finally {
        try {
    	    kieSession.dispose();
        } catch (Exception e) {
        }
    }


    迈向SOA的第一步


    重新来看“基于BRMS的系统逻辑架构”



    再回过头来思考下面3句话:


    IT人员的还本归宗,业务交由业务开发人员,IT人员只观注于技术的实现;


    降低产品、项目中技术集成的复杂性;


    容易培养出领域高手:即IT开发人员只需要关注于自己的某一块领域如:流程开发专家、数据库专家、前台特效程序员、系统实施、集成、管理专家。


    规则结合BPM(工作流)的典型应用场景


    还是看不懂? 没关系,来看下面这个例子




    当流程流转到“员工提交报销金额时”,此时有一个Decision节点,该节点通过返回“path(M或者GM)”,一旦BPM的Decision的path得到了这个值,BPM会自动决定下一步流程的走向到底是“报经理批”还是“再报总经理批”这样两条路径中来作一个选择。


    希望你通过这个例子明白什么叫“IT能够快速响应频繁的业务变化”、什么叫24*7、什么叫“加速业务走向市场”这些话的意思了吧。


    什么是SOA




    SOA对业务和销售人员来说意味着什么


    '



    SOA对企业、客户方的业务人员来说意味着什么






    SOA对IT开发人员来说意味着什么


    '



    作业


    结束本次教程,留个涉作业给大家



    微信号如下,欢迎一起交流







  • 相关阅读:
    instanceof 关键词
    类,类中成员变量,类中成员方法,方法中的局部变量,接口,接口中的方法的访问修饰符
    2.Object
    1API简介
    CMC 实例管理
    BW 转换字符空格问题
    BW ON HANA 业务模型关系与数据取数
    进步缓慢
    BO客户端安装更新,重新启动挂起。
    放弃看图,无差别筛选。
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154600.html
Copyright © 2011-2022 走看看