當(dāng)我們使用了BRMS,技術(shù)人員被要求驗證業(yè)務(wù)規(guī)則的正確性。他還需要了解業(yè)務(wù)邏輯嗎?如果不需要了解,如何進(jìn)行驗證呢?按照BRMS的說法,業(yè)務(wù)需求將直接以業(yè)務(wù)規(guī)則的方式呈現(xiàn)。如果客戶能夠清晰地整理規(guī)范的業(yè)務(wù)規(guī)則,寫在規(guī)則編輯器中和寫在需求文檔中有什么本質(zhì)的區(qū)別呢?無論寫在哪里,都離不開技術(shù)人員的參與。那么,提供一個規(guī)則編輯器,大連外貿(mào)客戶管理軟件除了滿足客戶參與系統(tǒng)實現(xiàn)的愿望,還有什么其他的意義呢?從這個角度來看,BRMS的意義只是提供了一個整理業(yè)務(wù)規(guī)則的方法而已,并沒有什么特殊的價值。當(dāng)然,這是個畫蛇添足的問題,但并不致命。接下來,我們來看一些真正嚴(yán)重的問題。如果定義業(yè)務(wù)詞匯和組織業(yè)務(wù)語句可以為我們帶來革命性的變化(例如,BPM),我們也許會嘗試克服革命帶來的一些副作用,但是BRMS的確毫無是處。
BRMS帶來的一個嚴(yán)重問題,就是由于它自身的發(fā)展,導(dǎo)致了規(guī)則遷移變得困難。比方說,當(dāng)規(guī)則語言發(fā)生變化時,就會導(dǎo)致成千上萬的規(guī)則面目全非。這是個非?,F(xiàn)實的問題。在開發(fā)大連外貿(mào)客戶管理軟件中我曾多次降低人工成本,那么軟件定制價格由什么決定呢?簡直痛不欲生。BRMS帶來的另一個嚴(yán)重問題,來自BOM。我們曾經(jīng)在前面談到,所有的業(yè)務(wù)規(guī)則都是基于BOM的。當(dāng)規(guī)則庫中的業(yè)務(wù)規(guī)則發(fā)展到數(shù)以萬計的規(guī)模時,BOM的變化將會導(dǎo)致不可收拾的局面。想象一下,我們定義的業(yè)務(wù)詞匯與底層實現(xiàn)脫節(jié)了,太可怕了,規(guī)則的價值就像股市的泡沫,頃刻間灰飛煙滅。BOM的變化不是一個小概率事件,有誰敢保證BOM在企業(yè)應(yīng)用系統(tǒng)的演變過程中不會發(fā)生變化呢?它會經(jīng)常發(fā)生變化。
業(yè)界有種說法,BRMS在用于業(yè)務(wù)規(guī)則生產(chǎn)時,應(yīng)該采用自上而下的模式,即先有獨立的業(yè)務(wù)詞匯,然后才考慮各種實現(xiàn)(更加自動化)。我愿意看一看這種方案的效果,但我更期待BRMS能夠獨立到與應(yīng)用系統(tǒng)的關(guān)系達(dá)到最大程度的松散性。什么是更好的方案?在大連外貿(mào)客戶管理軟件開發(fā)中,我們不妨回頭看看業(yè)務(wù)規(guī)則的本質(zhì)。所謂業(yè)務(wù)規(guī)則,就是一組對象和基于對象的操作,這些具有規(guī)則特征的對象和對象操作被抽取出來,獨立于系統(tǒng)中其他的邏輯。業(yè)務(wù)規(guī)則的本質(zhì)看上去非常簡單。實際上,建立一個編程模型,就完全可以解決這個問題。使用編程模型的好處是,它不需要購買BRMS,它更容易調(diào)試,而且擁有更好的性能。