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人员仅仅观注于技术的实现;


    减少产品、项目中技术集成的复杂性;


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




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


    还是看不懂? 没关系,来看以下这个样例




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


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



    什么是SOA




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


    '



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






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


    '



    作业


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



    微信号例如以下。欢迎一起交流







  • 相关阅读:
    141. Linked List Cycle【easy】
    237. Delete Node in a Linked List【easy】
    234. Palindrome Linked List【easy】
    排序_归并排序
    排序_选择排序
    排序_快速排序
    排序_冒泡排序
    排序_希尔排序
    排序_插入排序
    121. Best Time to Buy and Sell Stock【easy】
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7350543.html
Copyright © 2011-2022 走看看