OSWorkflow与可扩展性设计

系统 1343 0

基本上以后设计脚本自定义支持、组件自定义支持时,可以偷懒的参考OSWorkflow的所使用的各种组件类型、设计、代码。

类似于Apache Camel,学到很多Endpoint的使用。

 

1.条件(Condition)可扩展。条件用于权限类、Join是否满足等。

 

Condition包括常见的BSF\BeanShell脚本、也可以与人员执行上下文关联、也可以是一个注册为JNDI的Condtion实现、EJB等。

Condition接口定义传入了必要的上下文信息,上下文信息比较优雅的将信息封装在transientVars、args、propertySet 中,考虑的较为周到,以更方便的在自定义脚本或实现中判断条件:

    public boolean passesCondition(Map transientVars, Map args, PropertySet ps) 
  
 

在流程定义使用这些Condition时,对“如何简化Condition类型定义”与“应用自定义”之间做了较好的平衡。

系统自带的:

    <condition type="beanshell">
	<arg name="script"><![CDATA[
					"Finished".equals(jn.getStep(6).getStatus()) && "Finished".equals(jn.getStep(8).getStatus())
					]]></arg>
</condition>
  

 

一个自定义的:

    <condition type="class">
        <arg name="class.name">com.packtpub.osw.TimeCondition
        </arg>
       <arg name="dayNumber">7
       </arg>
</condition>
  
 

2.Function可扩展。

 

 

 

3.其他可扩展的设置:
存储可以自定义为内存存储、Hibernate存储、SQL存储等若干方式,原则上可扩展。

 

 

4.与spring的结合。

目前OSWorkflow做到的是配置如何结合,采用Hibernate存储时如何结合。
感觉不愉快的地方是,若基于Spring实现一致性事务、强制应用也使用Spring+Hibernate。
可以将Condition Type、Function Type的名字类型的匹配做成SpringTypeResolver,感觉用处不大。

 

5.由于可扩展,可基于OSWorkflow实现与JBoss Drools做业务规则管理、与ESPer做企业复杂事件管理(CEP)、与Quartz做计划管理、与Penhato做企业仪表盘、做到Mule企业服务总线之上。

OSWorkflow与可扩展性设计


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论