对于不懂程序的普通用户来说,类SQL的EPL(事件处理语言)还是不够友好的。例如在算法交易系统或一些监控系统中,往往需要给用户通过操作界面来配置修改规则和策略。本文介绍一些帮助开发者完成这样功能的方法。通常来讲,我们可以自己做一个Web界面,并和CEPServer集成。过程如下图所示
思路是采用CRUD方式,编辑CEP规则的参数。调用CEPModelCustomization设置参数生成模型实例,用CEPClient类来设置、安装、启动、停止CEP模型。
CEP模型模板的原理:将模型XML文件中的参数用${variable}代替,放到templateDir目录中。然后用户配置阈值参数时,用阈值替换${variable}。阈值替换的代码如下所示
HashMap<String,String> customization=new HashMap<String,String>();
customization.put("variable","test@test.com");
String ret = new ModelCustomization().customizeCEPModelXML(templateDir,templateFileName,customization, generatedFilePath);
本示例是船只监测项目的子功能,输出船舶日常(历史)活动范围。包含3个规则模板boatfilter1、boatfilter2、ARA。在SODBASE Studio中建模后,制作模板。如建立boatfilter1模型后,转为XML文件。制作模板通常为2步。
(1)将XML文件中的模型名称boatfilter替换为变量${boatfilter1},随用户设定而变。XML的queryname、modelname、inputadaptor的参数、SODSQL FROM子句,有boatfilter的全部替换为${boatfilter1}。
(2)SODSQL中的参数为${boatid},亦随用户设定而变。
制作用户界面如下图所示