﻿<?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-随笔分类-jbpm其他</title><link>http://www.blogjava.net/jbpm/category/25748.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 23 Nov 2007 03:46:57 GMT</lastBuildDate><pubDate>Fri, 23 Nov 2007 03:46:57 GMT</pubDate><ttl>60</ttl><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和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>