jbpm/drools学习自我考查(一般使用程度)
大部分是基本的,而且是不需要死记的
=================== jbpm/BPMN ==========================
1、目前的jBPM 6版本从jBPM 4延续而来(是/否)
2、jBPM 6支持JPDL流程语言(是/否)
3、一个空的菱形符号表示一个排他网关(分支网关)(是/否)
4、并发分裂网关的符号是中间包含+号的菱形(是/否)
5、BPMN流程图中的Artifact(组、附注)元素对流程执行没有影响(是/否)
6、脚本任务的执行不需要人工的参与(是/否)
7、jBPM默认是持久化的(是/否)
8、org.kie.api.io.Resource表示一个资源,根据资源类型的不同(规则、流程、工作项定义)使用不同的子类型(是/否)
9、KieBase表示一个知识库,可从KieBase创建一个Session(是/否)
10、获得org.kie.api.task.TaskService接口引用后就可以进行查找任务、操作任务(是/否)
11、任务服务的实现,内部使用了Command模式(是/否)
12、jBPM的Execution Server,提供了JMS和基于SOAP的Web Service接口(是/否)
13、1995年,WfMC提出了工作流参考模型的5个接口,以下哪个接口不在这5个接口中?
A. 流程定义接口 B. 客户端调用接口 C. Web服务接口 D. 互操作接口
14、JBPM不支持以下哪个规范?
A. XPDL B. BPMN C. WS-HumanTask D. JPA
15、关于BPMN 2.0,以下说法错误的是:
A. BPMN 2.0规定了流程编制元素的符号形状
B. BPMN 2.0规定了流程编制元素的符号颜色
C. BPMN 2.0可以建模,也可以执行
D. BPMN 2.0使用xml文件格式来存储
16、关于jBPM 6,以下说法错误的是:
A. 是由JBoss公司维护、开发
B. 是基于Apache License 2.0的开源项目
C. 可在github.com上找到源代码
D. 只能以嵌入的方式来运行
17、对于jBPM Workbench,以下说法错误的是:
A. 基于Uberfire项目开发
B. 使用maven方式打包、部署资源
C. 使用JCR系统存储资源
D. 包含了Execution Server,可提供REST接口
18、在BPMN流程编制元素中的流对象,不包含以下哪一个?
A. 活动 B. 泳道 C. 网关 D. 事件
19、接收任务的含义是:
A. 等待接收一个信号,接收完毕任务即完成
B. 等待接收一个信号,接收完毕流程即完成
C. 等待接收一条消息,接收完毕任务即完成
D. 等待接收一条消息,接收完毕流程即完成
20、关于任务指派,以下说法错误的是:
A. 服务任务不需要指定办理人
B. 任务办理人可以在定义期、也可以在运行期指派
C. Ad-Hoc任务可以由执行者决定执行顺序
D. 泳道中如果有多个人工任务,只需要指定第一个任务的办理人
21、jBPM持久化采用的是:
A. JPA
B. iBatis
C. Spring JDBC Template
D. 直接使用JDBC
22、关于流程元素符号,以下说法错误的是:
A. 开始事件是实心的圆圈
B. 中间事件是双圆圈图形
C. 非中断边界事件是虚线圆圈
D. 结束事件是粗线圆圈
23、关于消息事件、信号事件,以下说法错误的是:
A. 消息是一对一的,信号是广播的
B. 消息和信号都可以触发启动一个流程
C. 消息和信号都可以用在子流程边界上
D. 只有信号可以用在延迟选择模式中
24、以下有三个是对同一网关的不同说法,其余一个是:
A. 分支网关 B. 包容性网关 C. 多选网关 D. OR网关
25、关于活动实例和工作项,以下说法正确的是:
A. 一个活动实例对应1个工作项
B. 一个活动实例对应0个、1个或多个工作项
C. 一个工作项对应1个活动实例
D. 一个工作项对应0个、1个或多个活动实例
26、以下哪个不是预定义的RuntimeManager:
A. SingletonRuntimeManager
B. PerRequestRuntimeManager
C. PerProcessInstanceRuntimeManager
D. PerProcessDefinitionRuntimeManager
27、关于KieSession,以下说法错误的是:
A. KieSession是有状态的,会在多次调用之间保持状态
B. KieSession的创建是一个重量级的操作
C. 对不再使用的KieSession应该调用dispose()以释放资源
D. 如果启用了持久化,KieSession中的信息会在引擎重启后恢复
28、对于事件监听器org.kie.api.event.process.ProcessEventListener,不能监听到的事件是:
A. 流程的启动
B. 节点的开始
C. 变量的变化
D. 新流程的部署
29、WorkItemHandler接口的作用是:
A. 由它获得TaskService接口
B. 运行脚本任务
C. 处理各种类型的工作项
D. 创建活动实例
30、事件子流程不能由以下哪种方式触发?
A. 定时器
B. 接收到一个信号事件
C. 其他任务连接的顺序流
C. 接收到异常事件
31、要查看一个任务的当前状态,可以看哪个表?
A. WorkItem
B. SessionInfo
C. NodeInstanceLog
D. Task
32、对于人工任务的角色,以下说法错误的是:
A. Business Administrator可以执行全部任务操作
B. Initiator可以执行全部任务操作
C. Potential Owners可以claim一个任务
D. Actual Owner可以complete一个任务
33、鉴别器模式可以实现:
A. 同步汇聚
B. 延时选择
C. 多选1,忽略其余
D. 异步多实例
34、jBPM中任务间不能通过以下方式传递数据:
A. 直接访问全局变量
B. 直接访问流程实例变量
C. 输入输出映射流程实例变量
D. 活动变量
=================== drools ==========================
1、drools的规则语言(dialect)支持java、mvel(是/否)
2、目前OltaPlanner是drools的一部分(是/否)
3、可从KieContainer中获得KieSession(是/否)
4、每个Kbass实例关联一个工作内存(是/否)
5、规则属性salience的默认值是100(是/否)
6、规则文件中不能对已有的类型增加元数据(是/否)
7、drools规则资源和jbpm流程资源可以打包进同一个kmodule(是/否)
8、模式not Task(status=="Completed")表示匹配所有status!="Completed"的Task(是/否)
9、同一时刻只有一个ruleflow-group中的规则被执行(是/否)
10、activation-group需要获得焦点(focus)其中的规则才能被触发(是/否)
11、规则的LHS部分不应该修改fact(是/否)
12、drools引擎核心实现了RETE算法(是/否)
13、auto-focus跟哪个规则属性有关
A. agenda-group B. ruleflow-group C. activation-group D. salience
14、想要定义几条互斥执行的规则,这些规则应该
A. 都在一个agenda-group里
B. 都在一个activation-group里
C. 不能在同一个agenda-group里
D. 不能在同一个activation-group里
15、规则属性no-loop的作用是
A. 避免同一条规则被自身再次触发执行
B. 避免同一agenda-group的规则被循环执行
C. 避免同一activation-group的规则被多次执行
D. 避免规则在再次调用fireAllRules()时被执行
16、drools支持的从目标反向推理的算法是
A. RETE
B. PHREAK
C. Backward-Chaining
D. Viterbi
17、以下哪种写法是错误的
A. $tasks : ArrayList( ) from collect( Task() )
B. $tasks : LinkedList( ) from collect( Task() )
C. $tasks : HashSet( ) from collect( Task() )
D. $tasks : HashMap( ) from collect( Task() )
18、drools规则的action部分可以使用哪个预定义变量
A. runtime B. drools C. variables D. session
19、对于约束(total >= 10 && total < 20),以下哪个是等价的写法
A. (total >= 10 , < 20)
B. (total >= 10 && < 20)
C. (total >= 10 < 20)
D. (total >= 10 and < 20)
20、有类型:
declare Task
receiver : String @position(2)
status : String @position(1)
end
要匹配receiver == "WY"并且status == "Completed"的Task,以下写法正确的是
A. $t: Task(receiver == "WY", status == "Completed";)
B. $t: Task("WY"; status == "Completed")
C. $t: Task("Completed", "WY")
D. $t: Task("Completed", "WY";)
21、为了及时让引擎得知工作内存中的一个fact发生了变化,不能采取的办法是
A. 在fact的类型上加@propertyChangeSupport标注
B. insert(fact)
C. update(fact)
D. modify(fact){...}
22、匹配属性status在Completed、Aborted、Cancelled中的Task,正确的写法是
A. Task(("Completed","Aborted","Cancelled") contains status)
B. Task(status in ("Completed","Aborted","Cancelled"))
C. Task(status memberOf ("Completed","Aborted","Cancelled"))
D. Task(status matches("Completed","Aborted","Cancelled"))
23、关于fact和event,以下说法正确的是
A. fact是一种event
B. event也是一种fact
C. 插入引擎的数据,默认就是event
D. event不会被引擎自动移除
24、关于规则文件中的insertLogical(object),以下说法正确的是
A. insertLogical不会实际插入对象
B. 工作内存中已存在的对象才能调用insertLogical
C. insertLogical插入的对象未来可能会被引擎自动删除
D. insertLogical用来插入event对象
25、通过以下模式匹配时,eventA和eventB哪个先发生,哪个先结束
eventA : EventA( this during eventB )
A. eventA先发生,eventA先结束
B. eventA先发生,eventB先结束
C. eventB先发生,eventA先结束
D. eventB先发生,eventB先结束
26、在Stream模式中,如何指定fact的失效时间
A. 在Fact类型上加@expires标注
B. 在Fact类型上加@duration标注
C. 在规则中用timer指定超时时间
D. 把fact插入引擎是加上时效时间参数
27、如何指定一条规则的生效日期和过期日期
28、StatelessKieSession跟KieSession区别的是什么
29、对于大批类似的规则,可以采取什么办法减少重复
30、在Stream模式下,事件滑动窗口的含义是什么
31、可以采取什么办法来区分不同来源的event