﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-jbpm</title><link>http://www.blogjava.net/jbpm/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 11:42:16 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 11:42:16 GMT</pubDate><ttl>60</ttl><item><title>jBPM开发企业流程应用之在Tomcat上部署流程引擎及控制台</title><link>http://www.blogjava.net/jbpm/archive/2007/12/12/167259.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Wed, 12 Dec 2007 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/12/12/167259.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/167259.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/12/12/167259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/167259.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/167259.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/jbpm/archive/2007/12/12/167259.html'>阅读全文</a><img src ="http://www.blogjava.net/jbpm/aggbug/167259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-12-12 16:16 <a href="http://www.blogjava.net/jbpm/archive/2007/12/12/167259.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jBPM开发企业流程应用之安装流程设计器 </title><link>http://www.blogjava.net/jbpm/archive/2007/12/12/167256.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Wed, 12 Dec 2007 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/12/12/167256.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/167256.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/12/12/167256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/167256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/167256.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/jbpm/archive/2007/12/12/167256.html'>阅读全文</a><img src ="http://www.blogjava.net/jbpm/aggbug/167256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-12-12 16:13 <a href="http://www.blogjava.net/jbpm/archive/2007/12/12/167256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jbpm解析流程定义有三种方式</title><link>http://www.blogjava.net/jbpm/archive/2007/11/22/162430.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Thu, 22 Nov 2007 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/11/22/162430.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/162430.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/11/22/162430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/162430.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/162430.html</trackback:ping><description><![CDATA[<p>作者:杨洪波<br />
jbpm解析流程定义有三种方式:<br />
1)par包<br />
static ProcessDefinition auctionProcess = <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessArchive.parse("org/jbpm/tdd/auction.par");<br />
注意,必须在classes的org/jbpm/tdd/目录下有一个auction.par文件</p>
<p>2)xml文件方式<br />
static ProcessDefinition auctionProcess = <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JpdlXmlReader.parseFromResource("org/jbpm/tdd/auction.xml");<br />
注意,必须在classes的org/jbpm/tdd/目录下有一个auction.xml文件</p>
<p>3)文本方式<br />
static ProcessDefinition auctionProcess = JpdlXmlReader.parse(<br />
&nbsp;&nbsp;&nbsp; "&lt;process-definition&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp; &lt;start-state name='start'&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp;&nbsp;&nbsp; &lt;transition to='auction'/&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp; &lt;/start-state&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp; &lt;state name='auction'&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp;&nbsp;&nbsp; &lt;transition to='end'/&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp; &lt;/state&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&nbsp; &lt;end-state name='end'/&gt;" + <br />
&nbsp;&nbsp;&nbsp; "&lt;/process-definition&gt;");<br />
这种方式的本质和xml文件解析方式是一样的.</p>
<img src ="http://www.blogjava.net/jbpm/aggbug/162430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-11-22 18:02 <a href="http://www.blogjava.net/jbpm/archive/2007/11/22/162430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shark和jbpm配置文件处理方式比较</title><link>http://www.blogjava.net/jbpm/archive/2007/11/22/162428.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Thu, 22 Nov 2007 09:59:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/11/22/162428.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/162428.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/11/22/162428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/162428.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/162428.html</trackback:ping><description><![CDATA[<p>作者:杨洪波</p>
<p>作者:杨洪波</p>
<p align="left">shark和jbpm配置文件处理方式比较</p>
<p>1.都使用了单例模式<br />
我想这个是最基本的,一般的程序员写解析程序都会这样使用;要说明的是,AgileFlow<br />
除了使用单例模式,还实现了配置文件的动态装载,如果用户修改了配置文件,它能够在<br />
运行中动态的获取这些变化.<br />
使用jbpm时,第一句话就要使用该模式:JbpmServiceFactory.getInstance()....</p>
<p>2.都实现了缺省配置和定制配置<br />
Shark中,缺省配置放在一个深层次的目录中,定制配置放在config目录,两个配置<br />
文件的内容差不多;<br />
jbpm中,缺省配置放在代码中实现,如下:<br />
propertyClassNames = new HashMap();<br />
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );<br />
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );<br />
定制配置放在config目录中,为jbpm.properties<br />
比较而言,jbpm的实现方式要好,理由如下:<br />
1)缺省配置容易找到<br />
2)定制配置很简单,默认是没有配置的,比shark的要清爽很多</p>
<p>3.都实现了用一个单例实现多个单例<br />
我在Shark学习系列的文章中讨论过这个功能,jbpm是在JbpmConfiguration.java中实现的:<br />
private void instantiateConfiguredObjects() {<br />
&nbsp;&nbsp;&nbsp; // instantiate configured objects<br />
&nbsp;&nbsp;&nbsp; this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );<br />
&nbsp;&nbsp;&nbsp; this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );<br />
&nbsp;&nbsp;&nbsp; this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );<br />
}</p>
<p>1.都使用了单例模式<br />
我想这个是最基本的,一般的程序员写解析程序都会这样使用;要说明的是,AgileFlow<br />
除了使用单例模式,还实现了配置文件的动态装载,如果用户修改了配置文件,它能够在<br />
运行中动态的获取这些变化.<br />
使用jbpm时,第一句话就要使用该模式:JbpmServiceFactory.getInstance()....</p>
<p>2.都实现了缺省配置和定制配置<br />
Shark中,缺省配置放在一个深层次的目录中,定制配置放在config目录,两个配置<br />
文件的内容差不多;<br />
jbpm中,缺省配置放在代码中实现,如下:<br />
propertyClassNames = new HashMap();<br />
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );<br />
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );<br />
定制配置放在config目录中,为jbpm.properties<br />
比较而言,jbpm的实现方式要好,理由如下:<br />
1)缺省配置容易找到<br />
2)定制配置很简单,默认是没有配置的,比shark的要清爽很多</p>
<p>3.都实现了用一个单例实现多个单例<br />
我在Shark学习系列的文章中讨论过这个功能,jbpm是在JbpmConfiguration.java中实现的:<br />
private void instantiateConfiguredObjects() {<br />
&nbsp;&nbsp;&nbsp; // instantiate configured objects<br />
&nbsp;&nbsp;&nbsp; this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );<br />
&nbsp;&nbsp;&nbsp; this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );<br />
&nbsp;&nbsp;&nbsp; this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );<br />
}</p>
<img src ="http://www.blogjava.net/jbpm/aggbug/162428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-11-22 17:59 <a href="http://www.blogjava.net/jbpm/archive/2007/11/22/162428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM外接任务表单简述   </title><link>http://www.blogjava.net/jbpm/archive/2007/11/11/159753.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Sun, 11 Nov 2007 08:24:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/11/11/159753.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/159753.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/11/11/159753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/159753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/159753.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  目前我看过采用JBPM的工作流有web-console (JBPM 3.2.1自带）、RUNA WFE、SMART,就这三个我做一个比较：<br><br>RUNA WFE <br><br>    RUNA WFE是上面提到的三个中，唯一可以直接部署应用的，当然也有它的缺点，下面我会提到。这个框架采用的是Struts作为表示层，流程管理和组织架构管理都做的不错，良好的国际化，文档很全。如果只打算研究可以看下它的permission部分，它已经实现了对流程查看、启动、结束等的权限控制，JBPM自身在这部分基本还是TODO状态。 <br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/jbpm/archive/2007/11/11/159753.html'>阅读全文</a><img src ="http://www.blogjava.net/jbpm/aggbug/159753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-11-11 16:24 <a href="http://www.blogjava.net/jbpm/archive/2007/11/11/159753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流系统参考模型</title><link>http://www.blogjava.net/jbpm/archive/2007/11/11/159745.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Sun, 11 Nov 2007 08:00:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/11/11/159745.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/159745.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/11/11/159745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/159745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/159745.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 研究工作流及其相关技术的人一定知道这个组织——工作流管理联盟（简称WfMC，Workflow Management Coalition），其成立于1993年。作为工作流技术标准化的工业组织，WfMC提出的工作流系统参考模型（Reference Model）无疑为各家工作流软件厂商的系统设计规划提供了最权威的参考，乃至标准。下面就是这个参考模型：<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/jbpm/archive/2007/11/11/159745.html'>阅读全文</a><img src ="http://www.blogjava.net/jbpm/aggbug/159745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-11-11 16:00 <a href="http://www.blogjava.net/jbpm/archive/2007/11/11/159745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国内外主要bpm厂商</title><link>http://www.blogjava.net/jbpm/archive/2007/10/28/156461.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Sun, 28 Oct 2007 04:21:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/10/28/156461.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/156461.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/10/28/156461.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/156461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/156461.html</trackback:ping><description><![CDATA[作者:胡长城<br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目前主要列出了13家公司，这几家主要是做workflow的。当然，目前国内做OA，做Platform（包含workflow）的公司很多，但是，在workflow方面非常专注的，比较少。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 还有很多公司没有列出来，主要是个人感觉他们在workflow这一个方面并不是非常强劲（可能他们的product，platform很好），比如：BOS（金蝶），EOS（普元），GK-Workflow（北京点击科技），iOffice.net（广州红帆），KA-2（北京科诺），OW4J（Oracle中国），UAP（用友），HotOA（上海华炎），ZoTn（中唐）。还有些小型的工作流产品公司，产品并不是非常有特色，也没有列出来，比如：WiseFlow（上海维泰），aoflow（北京奥宝）<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目前我所知道的，在国内比较有名的国外workflow/BPM 厂商，主要有三家：Ultimus（较早进入中国），BusinessWare（北京麒麟，美国VITRIA）,2003年进入中国； webMethods（2003年底在北京成立办事处)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以下的&#8220;<span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★</span>&#8221;表示可workflow参考度和可研究度，越多表示产品在workflow这一方面更有特点。注：BusinessWare只给了三个&#8220;<span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★</span>&#8221;，是表示其所定位在解决方案和项目实施，整个产品定位在Business Process Integration层次，有些超越目前国内市场需求。
<table class="MsoNormalTable" style="border-right: medium none; border-top: medium none; margin: auto auto auto 5.4pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr style="height: 15.75pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.75pt; background-color: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编号</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.75pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.75pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 15.75pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
            </td>
        </tr>
        <tr style="height: 14.25pt; mso-yfti-irow: 1">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I00</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">AWF</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（北京炎黄盈动）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 14.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">嵌入式的工作流平台，功能不是太完善，主要研发实力不足</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 2">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I01</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">DLFlo</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（上海东兰）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">2000</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就开始做工作流平台，</span><span lang="EN-US">2002</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年推出了</span><span lang="EN-US">java</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本。但整体来看，发展的不是很理想</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 3">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I02</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: blue; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">LiveFlow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（上海东兰）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">DLFlo</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定位差不多，都面向二次开发平台。但是正个产品还是停留在&#8220;</span><span lang="EN-US">workflow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8221;功能层次。——</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但是，吸收了</span><span lang="EN-US">DLFlo</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的很多经验，所以其工作流平台目前还是属于国内前列</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 4">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I03</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">BusinessWare</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（北京麒麟远创）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要方向是</span><span lang="EN-US">BPM</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">BPI</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（业务流程整合）。整个产品是一个&#8220;集成平台&#8221;。</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 5">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I04</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">e-cology</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（上海泛微）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但从</span><span lang="EN-US">workflow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个层次来说，泛微没有太多的特色。</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 6">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I05</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">eWay Platform</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（北京东方易维）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">Eway</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的黄金时代已经一去不复返了，自动&#8220;马毅&#8221;那个团队离开以后。工作流的一些理念当时还是值得的，有些类似</span><span lang="EN-US">ofbiz</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。表单处里采用二次开发</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面来处理。</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 7">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I06</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">JKCFlow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（四川金科成）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">JFCFlow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从早期的工作流产品转移向&#8220;业务基础软件平台&#8221;，但是整个产品平台目前还只能算是，一个</span><span lang="EN-US">OA</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发平台。在</span><span lang="EN-US">workflow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">model</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方面并不是非常的强</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 8">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I07</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">JoinWork</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（上海天际星）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Joinwork</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">刚刚推出来，其开发者丁宏比较欣赏</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">jBPM</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">joinwork</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很多思想也是参考了</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">jBPM</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。但功能上稍微弱了点。但是其基于</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">SWT</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的设计思想很值得借鉴。</span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 9">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I08</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">Koof MetaLogic</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（北京世纪金政）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">去年推出的</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">workflow</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">产品，专做工作流平台，虽然主要定位于</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">oa</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和电子政务平台，但工作流这一快，还是有很多克参考的功能。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 10">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I09</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">RiseOffice</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（北京有生博大）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当前版本</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">riseoffice5.1</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，整个工作流产品基本上为&#8220;</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">OA</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">审批流程&#8221;量身定做。其表单处里和权限控制很有特色，以及审批历程的处理。整个</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">design</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端时采用</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">web</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的，用的</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> addflow</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">控件。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 11">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I10</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: blue; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">SunFlow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（杭州信雅达）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">sunFlow</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这一两年发展很迅速，大有赶超</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">SynchroFlow </span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">趋势。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其产品最大的特色是采用基于域的联邦系统架构，对分布式管理、运行支持较好。而且也是目前国内为数不多的可以支持&#8220;仿真&#8221;的工作流系统。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 12">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I11</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: blue; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★★★</span><span lang="EN-US" style="color: gray; font-family: 宋体; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">SynchroFlow</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（西安协同数码）</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基本上非常严格遵循了</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">wfmc</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的规范，</span><span style="font-size: 10pt; font-family: 新宋体">完全实现了<span lang="EN-US">interface1</span>、<span lang="EN-US">interface2</span>、<span lang="EN-US">interface3</span>、<span lang="EN-US">interface5</span>。<span lang="EN-US"><o:p></o:p></span></span></p>
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: #000000"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 10pt; color: purple; font-family: 新宋体">这一点上，</span><span lang="EN-US" style="color: purple">SunFlow</span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: purple; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US" style="color: purple">SynchroFlow</span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: purple; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都有很多相像的地方，都遗留很多学院研究的特点（这两个产品的最初原型都是在大学中诞生的）。</span><span lang="EN-US" style="color: purple"><o:p></o:p></span></strong></span></p>
            </td>
        </tr>
        <tr style="height: 23.25pt; mso-yfti-irow: 13; mso-yfti-lastrow: yes">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 45pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="60">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">I12</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 88.9pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="119">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="color: blue; font-family: 宋体; mso-bidi-font-size: 10.5pt">★★★★★<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 161.85pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="216">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US">Utimus</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（国内）</span><span lang="EN-US"><br />
            </span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上海敏照（增值代理商），上海永信（增值代理商）</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt"><br />
            Ultimus</span><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上海分公司</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #d4d0c8; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #d4d0c8; width: 407.55pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; height: 23.25pt; background-color: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="543">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进入中国最早的国外工作流产品，整个产品采用逻辑的组织结构图，工作流系统支持的功能也很强。其比较有特色的是其&#8220;事件条件表</span></p>
            </td>
        </tr>
    </tbody>
</table>
 <img src ="http://www.blogjava.net/jbpm/aggbug/156461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-10-28 12:21 <a href="http://www.blogjava.net/jbpm/archive/2007/10/28/156461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流活动实例状态转换的两种实现模式</title><link>http://www.blogjava.net/jbpm/archive/2007/10/28/156458.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Sun, 28 Oct 2007 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/10/28/156458.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/156458.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/10/28/156458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/156458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/156458.html</trackback:ping><description><![CDATA[&nbsp; 作者:胡长城<br />
今天和同事chelsea 就活动实例状态的实现思路上进行了讨论。我们两个站在了两个不同的角度来看待，这两个不同的角度也正好眼下最为常见到的两种实现思路：<br />
helsea是从状态角度来看待，当然也完全是从state pattern的角度来思考：状态在达到某个状态的时候，会引起或必须引起活动实例执行什么操作。<br />
<br />
而我是从活动实例的角度来考虑，活动实例的状态只是活动实例的一个属性体，是因为什么行为，造成了什么状态的结果。<br />
<br />
<br />
&nbsp;这两种观点，没有谁对谁错，也没有谁优谁劣，两者是站在不同的角度来分析同一个问题。其实这两种模式在应用中都是很普遍的，也都是能够很好的解决问题的。不过在现有的workflow引擎实现中，基于活动实例的角度是占绝大多数的，比如obe，shark等等。所以我受这个的影响也是比较深的。<br />
<br />
<br />
先说说基于活动活动实例的角度的思路吧：<br />
<br />
<br />
<br />
让我下先来看看状态类：<br />
<br />
public final class WMActivityInstanceState extends WMObjectState {<br />
<br />
public static final int OPEN_NOTRUNNING_INT = 0;<br />
<br />
public static final int OPEN_SUSPENDED_INT = 1;<br />
<br />
}<br />
<br />
或者也可以这么表示：<br />
<br />
public enum WMActivityInstanceState{<br />
<br />
NOTRUNNIN(0),<br />
<br />
SUSPENDED(1);<br />
<br />
private int code;<br />
<br />
private WMActivityInstanceState(int code){this.code = code;}<br />
public int getCode(){return this.code}<br />
<br />
}<br />
<br />
<br />
<br />
<br />
对于活动实例来说，状态只是其一个属性而已：<br />
<br />
public class BasicActivityInstance extends BasicAttributedEntity{<br />
<br />
private int _state;<br />
<br />
public void setState(int state) {<br />
<br />
_state = state; }<br />
<br />
}<br />
<br />
或者也可以是<br />
<br />
Public void setState(WMActivityInstanceState state)<br />
<br />
<br />
<br />
<br />
所以，从活动实例的角度来看，状态之间的关系是平行的。你可以在执行完一些初始化的操作之后，将活动实例的状态设置为Initialized：当然这个操作你必须显示的去设置活动实例（当然，你可以用一些Event去处理），比如调用活动实例的setState方法。至于为什么调用这个方法，或者此时设置的状态是对是错，活动实例并不关心。<br />
<br />
<br />
<br />
下面再来说说基于状态角度的思路吧，这个思路大体可以说就是state pattern的应用。<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 说道这儿，您可以看看这篇文档：从工作流状态机实践中总结状态模式使用心得 。当然如果您对state pattern不是很了解，那么建议你先看看这篇文档：设计模式之state 。<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp; State模式的着眼点就是状态，以状态的变迁影响实例的行为和动作。其实这就是两个不同的抽象体：state和stateOwner，我们可以看到，活动实例对象就表现为stateOwner。<br />
<br />
&nbsp;&nbsp; State模式的依据是状态之间是有有向连接关系的，这有向连接关系其实就是状态的转换规则：A-B-C-D-A。<br />
<br />
&nbsp;&nbsp; 激发状态的变迁，是由外界的事件（Event）影响的：这个事件会告知，当前的活动实例状态要从当前状态往下一个状态变迁。而活动实例并不知道下一个状态是什么，这完全是状态对象负责维护和告知的。<br />
<br />
<br />
<br />
至此，我们可以看出来了，两种方式的不同：<br />
<br />
第一种方式（基于活动实例），其外界事件是影响到活动实例，或者说在事件中显示的告知活动实例状态从什么变为什么。<br />
<br />
第二种方式（基于实例状态），其外界事件是影响到活动实例状态对象，至于这个状态的下一个状态是什么，时间并不知道，完全由活动状态之间的关系来维护。<br />
<br />
<br />
<img src ="http://www.blogjava.net/jbpm/aggbug/156458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-10-28 12:12 <a href="http://www.blogjava.net/jbpm/archive/2007/10/28/156458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个简单的会签实例</title><link>http://www.blogjava.net/jbpm/archive/2007/10/15/153036.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Mon, 15 Oct 2007 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/10/15/153036.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/153036.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/10/15/153036.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/153036.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/153036.html</trackback:ping><description><![CDATA[<p align="left">作者:tomkoo<br />
以下例子中 采用了jbpm console 的几个实例用户 </p>
<p>项目提交人 : ernie .</p>
<p>主管审批 : bert</p>
<p>会签 : ernie , bert , grover</p>
<p>老板审批 : grover</p>
<p>&nbsp;</p>
<p>正常流程: 项目金额 &gt;= 500W RMB</p>
<p>提交项目 --&gt; 主管审批 --&gt; 会签 --&gt; 老板审批 --&gt; 审批通过(结束)</p>
<p>正常流程: 项目金额 &lt; 500W RMB</p>
<p>提交项目 --&gt; 主管审批 --&gt; 会签 --&gt; 审批通过(结束)</p>
<p>其中主管审批, 会签, 老板审批 , 不通过, 全部退回给项目提交人修改. <br />
<br />
会签中: 所有人全通过, 则通过. 任何一人不通过, 停止其他会签任务.退回给提交人.</p>
<p>流程定义如下: </p>
<p>
<div class="code_div">
<div class="dp-highlighter">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">process-definition</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">"urn:jbpm.org:jpdl-3.1"</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_approval"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">swimlane</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"initiator"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!项目提交人&nbsp;&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">swimlane</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"requester"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">assignment</span><span>&nbsp;</span><span class="attribute">expression</span><span>=</span><span class="attribute-value">"user(ernie)"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">swimlane</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!&nbsp;主管&nbsp;&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">swimlane</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"chief"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">assignment</span><span>&nbsp;</span><span class="attribute">expression</span><span>=</span><span class="attribute-value">"user(bert)"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">swimlane</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!老板&nbsp;&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">swimlane</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"boss"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">assignment</span><span>&nbsp;</span><span class="attribute">expression</span><span>=</span><span class="attribute-value">"user(grover)"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">swimlane</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!会签人&nbsp;&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">swimlane</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"cosinger"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">assignment</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"net.chenj.jbpm.sample.CosingerAssiHandler"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">assignment</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">swimlane</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">start-state</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"start"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_newprj"</span><span>&nbsp;</span><span class="attribute">swimlane</span><span>=</span><span class="attribute-value">"initiator"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">task</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"to_submit"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_submit"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">start-state</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task-node</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_submit"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_submit"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">task</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"to_chiefapprove"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_chiefapprove"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">task-node</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task-node</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_chiefapprove"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_chiefapprove"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">task</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"approve"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_countersign"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"disapprove"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_submit"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">task-node</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task-node</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_countersign"</span><span>&nbsp;</span><span class="attribute">signal</span><span>=</span><span class="attribute-value">"last-wait"</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">create-tasks</span><span>=</span><span class="attribute-value">"false"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_countersign"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">event</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">"task-end"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"net.chenj.jbpm.sample.TaskEndCountersign"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">action</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">event</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">task</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">event</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">"node-enter"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"createInstance"</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"net.chenj.jbpm.sample.CreateTaskInstanceCountersign"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">action</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">event</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"approve"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"amount_decision"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"disapprove"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_submit"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">task-node</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">decision</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"amount_decision"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"to_bossapprove"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_bossapprove"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"to_end"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"end1"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">decision</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task-node</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_bossapprove"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">task</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"tc_prj_bossapprove"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">task</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"approve"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"end1"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">transition</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"disapprove"</span><span>&nbsp;</span><span class="attribute">to</span><span>=</span><span class="attribute-value">"tc_prj_submit"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">condition</span><span class="tag">&gt;</span><span>#{amount&nbsp;</span><span class="tag">&gt;</span><span>=&nbsp;500}</span><span class="tag">&lt;/</span><span class="tag-name">condition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">transition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">task-node</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">end-state</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"end1"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">end-state</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">process-definition</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<script>render_code();</script>
<p>&nbsp;</p>
<p>会签swimlane class</p>
<p>
<div class="code_div">
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;net.chenj.jbpm.sample; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.exe.*; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;org.jbpm.taskmgmt.def.*; &nbsp;&nbsp;</span></span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.taskmgmt.exe.Assignable; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;CosingerAssiHandler&nbsp;</span><span class="keyword">implements</span><span>&nbsp;AssignmentHandler&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">long</span><span>&nbsp;serialVersionUID&nbsp;=&nbsp;1L; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;assign(Assignable&nbsp;assignable,&nbsp;ExecutionContext&nbsp;executionContext)&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;从数据库或者ldap&nbsp;读取会签人设置 </span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;a&nbsp;=&nbsp;{&nbsp;</span><span class="string">"ernie"</span><span>,&nbsp;</span><span class="string">"bert"</span><span>,&nbsp;</span><span class="string">"grover"</span><span>&nbsp;}; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assignable.setPooledActors(a); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>} &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<script>render_code();</script><br />
创建会签任务实现类
<p>&nbsp;</p>
<p>&nbsp;
<div class="code_div">
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;net.chenj.jbpm.sample; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.def.ActionHandler; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.exe.ExecutionContext; &nbsp;&nbsp;</span></span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.exe.Token; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.node.TaskNode; &nbsp;&nbsp;</span></span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.taskmgmt.def.Task; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;org.jbpm.taskmgmt.exe.TaskMgmtInstance; &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;CreateTaskInstanceCountersign&nbsp;</span><span class="keyword">implements</span><span>&nbsp;ActionHandler&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">long</span><span>&nbsp;serialVersionUID&nbsp;=&nbsp;1L; &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;execute(ExecutionContext&nbsp;executionContext)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Token&nbsp;token&nbsp;=&nbsp;executionContext.getToken(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskMgmtInstance&nbsp;tmi&nbsp;=&nbsp;executionContext.getTaskMgmtInstance(); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskNode&nbsp;taskNode&nbsp;=&nbsp;(TaskNode)&nbsp;executionContext.getNode(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task&nbsp;task&nbsp;=&nbsp;taskNode.getTask(</span><span class="string">"tc_prj_countersign"</span><span>); &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;从数据库或者ldap&nbsp;读取会签人设置创建任务实例 </span><span>&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmi.createTaskInstance(task,&nbsp;token).setActorId(</span><span class="string">"ernie"</span><span>); &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmi.createTaskInstance(task,&nbsp;token).setActorId(</span><span class="string">"bert"</span><span>); &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmi.createTaskInstance(task,&nbsp;token).setActorId(</span><span class="string">"grover"</span><span>); &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<script>render_code();</script>
<p>&nbsp;</p>
<p>结束不通过时结束其他会签任务实现 <br />
<div class="code_div">
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;net.chenj.jbpm.sample; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;java.util.Collection; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;java.util.Iterator; &nbsp;&nbsp;</span></span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.def.ActionHandler; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;org.jbpm.graph.exe.ExecutionContext; &nbsp;&nbsp;</span></span>
    <li class="alt"><span class="keyword">import</span><span>&nbsp;org.jbpm.taskmgmt.exe.TaskInstance; &nbsp;&nbsp;</span></span>
    <li class=""><span class="keyword">import</span><span>&nbsp;org.jbpm.taskmgmt.exe.TaskMgmtInstance; &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;TaskEndCountersign&nbsp;</span><span class="keyword">implements</span><span>&nbsp;ActionHandler&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">long</span><span>&nbsp;serialVersionUID&nbsp;=&nbsp;1L; &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;execute(ExecutionContext&nbsp;executionContext)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">boolean</span><span>&nbsp;isDisapprove&nbsp;=&nbsp;Boolean.valueOf((String)&nbsp;executionContext &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getVariable(</span><span class="string">"isDisapprove"</span><span>)); &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;如果有一个任务实例拒绝通过则结束除当前任务实例外其他任务实例 </span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(isDisapprove)&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskMgmtInstance&nbsp;tmi&nbsp;=&nbsp;executionContext.getTaskMgmtInstance(); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskInstance&nbsp;ti&nbsp;=&nbsp;executionContext.getTaskInstance(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">final</span><span>&nbsp;String&nbsp;actorId&nbsp;=&nbsp;ti.getActorId(); &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection&nbsp;c&nbsp;=&nbsp;tmi.getSignallingTasks(executionContext); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(Iterator&nbsp;it&nbsp;=&nbsp;c.iterator();&nbsp;it.hasNext();)&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskInstance&nbsp;task&nbsp;=&nbsp;(TaskInstance)&nbsp;it.next(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(!(actorId.equals(task.getActorId()))&nbsp;&amp;&amp;&nbsp;(!task.hasEnded()))&nbsp;{ &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;task.end(</span><span class="string">"disapprove"</span><span>); &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<script>render_code();</script>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/jbpm/aggbug/153036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-10-15 17:34 <a href="http://www.blogjava.net/jbpm/archive/2007/10/15/153036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jbpm和Shark比较的feature list </title><link>http://www.blogjava.net/jbpm/archive/2007/10/15/152997.html</link><dc:creator>jbpm</dc:creator><author>jbpm</author><pubDate>Mon, 15 Oct 2007 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/jbpm/archive/2007/10/15/152997.html</guid><wfw:comment>http://www.blogjava.net/jbpm/comments/152997.html</wfw:comment><comments>http://www.blogjava.net/jbpm/archive/2007/10/15/152997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jbpm/comments/commentRss/152997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jbpm/services/trackbacks/152997.html</trackback:ping><description><![CDATA[<div class="content">
<p>作者：Ni Yue<br />
前一段时间做的一个jbpm和shark的feature对比，今天整理笔记突然又看到这张记录纸了，so post here and drop the paper.作比较的时候Shark是1.0版本，而Jbpm是2.0版本（现在已经出到3.0了）</p>
<table cellspacing="2" cellpadding="3" width="100%" border="1">
    <tbody>
        <tr>
            <td>&nbsp;</td>
            <td>
            <p align="center">Shark</p>
            </td>
            <td>
            <p align="center">Jbpm</p>
            </td>
        </tr>
        <tr>
            <td>持久层</td>
            <td>Shark自己的一个ORM的方案DODS，感觉不是很好</td>
            <td>大名鼎鼎的 Hibernate（Jbpm2中使用的是Hibernate 2.1，Jbpm3种使用的是Hibernate3）</td>
        </tr>
        <tr>
            <td>灵活性</td>
            <td>Shark给人的感觉就是庞大，需要独立的运行一个工作量引擎服务</td>
            <td>相对更加灵活，和OSWorkflow有的一比，也可以作为嵌入式的工作流引擎</td>
        </tr>
        <tr>
            <td>后台管理</td>
            <td>其实这点和上面一点有点相对应了，灵活性差其实是由于提供的功能太多的缘故，Shark自带了一个管理程序，界面虽然差了一点，但是功能满全面的</td>
            <td>Jbpm2中没有提供后台的管理，Jbpm3还没怎么用过，好像是有的，不知道具体功能如何</td>
        </tr>
        <tr>
            <td>流程定义的图形设计器</td>
            <td>Shark使用的WfMC定义的XPDL语言定义流程，有一个JaWE来图形化定义流程，不过XPDL是在是看起来很难懂</td>
            <td>Jbpm2中没有流程图形定义器，不过Jbpm3中已经有了，是基于Eclipse的一个插件，可以使用它定义Jbpm使用的JPDL，而且不仅是插件形式，后面还会出stand alone的版本</td>
        </tr>
        <tr>
            <td>表单定制</td>
            <td>这个Shark可以借助XPDL来进行表单定制，没看太懂就是了</td>
            <td>Jbpm2不支持，原来看了Jbpm的MailList里面说在考虑Jbpm3中会加入这方面的内容，现在似乎没有看到还</td>
        </tr>
        <tr>
            <td>用户模型</td>
            <td>好像必须采用Shark中的用户模型</td>
            <td>灵活性的体现，任意的用户模型。Jbpm3.1的roadmap里面考虑自带一个简单的用户模型供使用</td>
        </tr>
        <tr>
            <td>异构系统交互</td>
            <td>Shark可以开CORBA的服务，这个方面的功能很强大</td>
            <td>只能通过Java和异构系统的交互似乎，Java能做的Jbpm就行</td>
        </tr>
        <tr>
            <td>学习成本</td>
            <td>Shark使用的XPDL很难看懂&#8230;</td>
            <td>相对简单</td>
        </tr>
        <tr>
            <td>文档</td>
            <td>感觉是一片空白，给的那几个pdf都不顶什么用，用两三个小时就全部看完了，组织的不是很好而且。相对其他的方面，这个是最大的缺点了</td>
            <td>挺全面的文档，一个chapter一个chapter的，看起来也方便</td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.blogjava.net/jbpm/aggbug/152997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jbpm/" target="_blank">jbpm</a> 2007-10-15 15:09 <a href="http://www.blogjava.net/jbpm/archive/2007/10/15/152997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>