基于Drools规则引擎的企业级应用系列(二)

    Drools的应用托管在github上,源代码下载比较方便,需要注意的是Guvnor在2013年有个大的版本升级,主要是前端GWT的部分。

    不得不吐糟的是在Java社区中,越是活跃的社区,往往会有越多的变化。这种变化对于企业级应用而言,是无比痛苦的事情。规则引擎也是这样。一个经典的话题就是jBPM的发展,本来这个和规则引擎原本没有关系,忽然有一天,它就和drools flow接上头了。2010年对jBPM来说最大的事件莫过于jBPM的创建者Tom Baeyens离开JBoss了,他的离开使得jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过。
    对于规则引擎来说,Drools运行中规则的一种模式就是package,将所有的规则文件编译成二进制的class,然后打包。一个小版本的升级就会让规则无法运行,导致很多项目都还在使用drools 4.X的版本。统统这些改变开源社区don't care, 如果你要使用新的功能,对不起,只靠你自己,或者来找我们的合作伙伴,类似于red hat公司,服务费在反哺到核心开发者,这成了开源社区的生财之道。

     这次Drools的GWT的升级,也比较有趣。Google从推出GWT以后,并且基于GWT开发了第一版的Gmail,在国外的企业级应用领域得到热捧。很多公司都用GWT开发界面逻辑复杂的应用,不过随着GWT的编译技术的成熟,在封装HTML元素方面出现了一些分歧。Google推出了比较朴实的HTML控件,extjs则推出了基于gwt的ext-gwt,还有一个smartgwt,以及芬兰的vaadin。前端方面超出了google的控制,因此在2012年,google放弃对GWT的控制权,成立了由上面几家组成的委员会。当然里面没有RedHat,但是redhat的GWT水平也很高,在Guvnor中有大量自定义优秀控件,因此,它决定利用开源力量在重新开发一套gwt的前端框架,这就是Guvnor6的由来。

    我选择的GWT2.4,需要在开发前认真学习gwt提供的showcase,否则,后续很多的开发都无法完成。