
2007年11月11日
摘要:
閱讀全文
posted @
2007-12-12 16:16 jbpm 閱讀(1836) |
評論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2007-12-12 16:13 jbpm 閱讀(1469) |
評論 (0) |
編輯 收藏
作者:楊洪波
jbpm解析流程定義有三種方式:
1)par包
static ProcessDefinition auctionProcess =
ProcessArchive.parse("org/jbpm/tdd/auction.par");
注意,必須在classes的org/jbpm/tdd/目錄下有一個(gè)auction.par文件
2)xml文件方式
static ProcessDefinition auctionProcess =
JpdlXmlReader.parseFromResource("org/jbpm/tdd/auction.xml");
注意,必須在classes的org/jbpm/tdd/目錄下有一個(gè)auction.xml文件
3)文本方式
static ProcessDefinition auctionProcess = JpdlXmlReader.parse(
"<process-definition>" +
" <start-state name='start'>" +
" <transition to='auction'/>" +
" </start-state>" +
" <state name='auction'>" +
" <transition to='end'/>" +
" </state>" +
" <end-state name='end'/>" +
"</process-definition>");
這種方式的本質(zhì)和xml文件解析方式是一樣的.
posted @
2007-11-22 18:02 jbpm 閱讀(753) |
評論 (0) |
編輯 收藏
作者:楊洪波
作者:楊洪波
shark和jbpm配置文件處理方式比較
1.都使用了單例模式
我想這個(gè)是最基本的,一般的程序員寫解析程序都會這樣使用;要說明的是,AgileFlow
除了使用單例模式,還實(shí)現(xiàn)了配置文件的動態(tài)裝載,如果用戶修改了配置文件,它能夠在
運(yùn)行中動態(tài)的獲取這些變化.
使用jbpm時(shí),第一句話就要使用該模式:JbpmServiceFactory.getInstance()....
2.都實(shí)現(xiàn)了缺省配置和定制配置
Shark中,缺省配置放在一個(gè)深層次的目錄中,定制配置放在config目錄,兩個(gè)配置
文件的內(nèi)容差不多;
jbpm中,缺省配置放在代碼中實(shí)現(xiàn),如下:
propertyClassNames = new HashMap();
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
定制配置放在config目錄中,為jbpm.properties
比較而言,jbpm的實(shí)現(xiàn)方式要好,理由如下:
1)缺省配置容易找到
2)定制配置很簡單,默認(rèn)是沒有配置的,比shark的要清爽很多
3.都實(shí)現(xiàn)了用一個(gè)單例實(shí)現(xiàn)多個(gè)單例
我在Shark學(xué)習(xí)系列的文章中討論過這個(gè)功能,jbpm是在JbpmConfiguration.java中實(shí)現(xiàn)的:
private void instantiateConfiguredObjects() {
// instantiate configured objects
this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );
this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );
this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );
}
1.都使用了單例模式
我想這個(gè)是最基本的,一般的程序員寫解析程序都會這樣使用;要說明的是,AgileFlow
除了使用單例模式,還實(shí)現(xiàn)了配置文件的動態(tài)裝載,如果用戶修改了配置文件,它能夠在
運(yùn)行中動態(tài)的獲取這些變化.
使用jbpm時(shí),第一句話就要使用該模式:JbpmServiceFactory.getInstance()....
2.都實(shí)現(xiàn)了缺省配置和定制配置
Shark中,缺省配置放在一個(gè)深層次的目錄中,定制配置放在config目錄,兩個(gè)配置
文件的內(nèi)容差不多;
jbpm中,缺省配置放在代碼中實(shí)現(xiàn),如下:
propertyClassNames = new HashMap();
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
定制配置放在config目錄中,為jbpm.properties
比較而言,jbpm的實(shí)現(xiàn)方式要好,理由如下:
1)缺省配置容易找到
2)定制配置很簡單,默認(rèn)是沒有配置的,比shark的要清爽很多
3.都實(shí)現(xiàn)了用一個(gè)單例實(shí)現(xiàn)多個(gè)單例
我在Shark學(xué)習(xí)系列的文章中討論過這個(gè)功能,jbpm是在JbpmConfiguration.java中實(shí)現(xiàn)的:
private void instantiateConfiguredObjects() {
// instantiate configured objects
this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );
this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );
this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );
}
posted @
2007-11-22 17:59 jbpm 閱讀(479) |
評論 (0) |
編輯 收藏
摘要: 目前我看過采用JBPM的工作流有web-console (JBPM 3.2.1自帶)、RUNA WFE、SMART,就這三個(gè)我做一個(gè)比較:
RUNA WFE
RUNA WFE是上面提到的三個(gè)中,唯一可以直接部署應(yīng)用的,當(dāng)然也有它的缺點(diǎn),下面我會提到。這個(gè)框架采用的是Struts作為表示層,流程管理和組織架構(gòu)管理都做的不錯(cuò),良好的國際化,文檔很全。如果只打算研究可以看下它的permission部分,它已經(jīng)實(shí)現(xiàn)了對流程查看、啟動、結(jié)束等的權(quán)限控制,JBPM自身在這部分基本還是TODO狀態(tài)。
閱讀全文
posted @
2007-11-11 16:24 jbpm 閱讀(2018) |
評論 (0) |
編輯 收藏
摘要: 研究工作流及其相關(guān)技術(shù)的人一定知道這個(gè)組織——工作流管理聯(lián)盟(簡稱WfMC,Workflow Management Coalition),其成立于1993年。作為工作流技術(shù)標(biāo)準(zhǔn)化的工業(yè)組織,WfMC提出的工作流系統(tǒng)參考模型(Reference Model)無疑為各家工作流軟件廠商的系統(tǒng)設(shè)計(jì)規(guī)劃提供了最權(quán)威的參考,乃至標(biāo)準(zhǔn)。下面就是這個(gè)參考模型:
閱讀全文
posted @
2007-11-11 16:00 jbpm 閱讀(985) |
評論 (0) |
編輯 收藏