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開發人員來說意味着什麼


'



作業


結束本次教程,留個涉作業給大家



微信號如下,歡迎一起交流







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章