`
ww2
  • 浏览: 423936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Shark与OMG

阅读更多

<o:p> </o:p>       Shark让更多的人联想到了XPDL,而忘了OMG的一些东东。

<o:p> </o:p>

       Shark不仅支持XPDL,而且还扩展了OMG's Workflow Management Facility Specification

       所以你会在Shark中见到 WfExecutionObjectWfRequester等等让你并不是非常明白的类。

<o:p> </o:p>

       如果研究Shark,那么首先可以花费一些时间将 wfmopen 这个引擎研究一下。两者没有什么必然的联系,只是wfmopen简单一些,其中给出了一些omg core对象的关系和说明,而shark却很少提及。

       WfMOpen is a J2EE based implementation of a workflow facility (workflow engine) as proposed by the Workflow Management Coalition (WfMC) and the Object Management Group (OMG).
    The workflow component is based on a set of JAVA interfaces that define an API for a workflow management facility. The basic "omgcore" interfaces follow OMG's Workflow Management Facility Specification, V1.2 very closely, while making some modifications to adapt the CORBA service to the established design practices for a Java API.

<o:p> </o:p>

       下面这张图,很值得推敲。

http://wfmopen.sourceforge.net/userapi/de/danet/an/workflow/omgcore/doc-files/domain.gif
   
这个中的关系弄明白了,对shark的核心的类关系,也就大致了解了。<o:p></o:p>

       在下面这篇文档中,有这几个类的简要介绍:<o:p></o:p>

       http://www-db.stanford.edu/CHAIMS/Doc/RelatedWork/SWAP_jFLOW_CS446/paper.htm <o:p></o:p>

       其中还稍稍提及了流程实例的应该如何创建,看完以后,对你明白shark的流程创建非常有帮助。从这一点上你需要明白,shark的很多设计思想,是基于OMG规范的。<o:p></o:p>

<o:p> </o:p>

       不过,在shark中,有clientinternal之分。<o:p></o:p>

下面的代码摘自WfProcessWrapper中创建流程实例的一段,为了看得直接,有删节:
public WfProcess create_process (SharkTransaction t,WfRequester requester) {<o:p></o:p>

    WfProcessMgrInternal mgr=WfProcessMgrWrapper.getProcessMgrImpl(t,name);<o:p></o:p>

<o:p> </o:p>

WfRequesterInternal req=<o:p></o:p>

SharkEngineManager.getInstance().getObjectFactory().createDefaultRequester(userAuth);<o:p></o:p>

<o:p> </o:p>

    WfProcessInternal procInternal=mgr.create_process(t,req);<o:p></o:p>

WfProcess proc=<o:p></o:p>

SharkEngineManager.getInstance().getObjectFactory()<o:p></o:p>

.createProcessWrapper(userAuth,procInternal.key(t));<o:p></o:p>

    return proc;<o:p></o:p>

}

<o:p> </o:p>

       Sharkorg.enhydra.shark.api.client.wfmodel 包类似于wfmopen中的de.danet.an.workflow.omgcore ,是对omg的核心类的接口定义。<o:p></o:p>

       但是Shark却还有内部重要的api接口:org.enhydra.shark.api.internal 包。

分享到:
评论

相关推荐

    工作流引擎shark的技术

    Shark 是 Enhydra 开发的完全基于 WFMC 和 OMG 的标准, 使用 XPDL 来进行定义的工作流引擎。本文通过对其最核 心的工作模块调度方式的研究, 根据各种实际测量的数据详细地从两个方面分析了其作用和各种优缺点, 探讨...

    工作流引擎研究

    Shark是Enhydra公司开发的一款工作流引擎,它的设计基于WfMC(Workflow Management Coalition)和OMG(Object Management Group)的标准,如XPDL(eXtensible Process Definition Language)用于流程定义。Shark的...

    工作流管理系统综述

    4. Shark:作为完全遵循WFMC和OMG标准的产品,Shark提供了高度可扩展的流程定义和执行能力。它支持XPDL,包含服务器端的工具代理API,允许在多种环境下运行,包括WEB、SWING、CORBA服务或EJB容器。Shark的优势在于其...

    java 工作流简介

    13. Enhydra Shark:Shark遵循WfMC和OMG标准,使用XPDL作为流程定义语言,利用Enhydra DODS进行数据存储和对象关系映射。 14. PowerFolder:PowerFolder是一个J2EE工作流服务器,提供Web Studio供开发者使用,便于...

    工作流解决方案

    12. **Enhydra Shark**:基于WfMC和OMG标准的工作流引擎,使用XPDL作为工作流定义语言。 13. **PowerFolder**:一个基于J2EE的易用工作流服务器,包括基于Web的开发人员studio。 14. **OpenBusiness Engine**:...

    JAVA开源工作流.docx

    13. **Enhydra Shark** - 基于 WfMC 和 OMG 标准,使用 XPDL 作为流程定义语言,存储流程和活动使用 Enhydra DODS,一个开源对象关系映射工具。 14. **PowerFolder** - 是一个基于 J2EE 的工作流服务器,提供了一个...

    Java开源工作流引擎.pdf

    13. Enhydra Shark:完全遵循WfMC和OMG标准,使用XPDL作为流程定义语言,借助Enhydra DODS进行对象关系映射。 14. PowerFolder:这是一个易于使用和安装的J2EE工作流服务器,包含基于Web的开发工作室,方便开发者...

    工作流引擎对比

    - **流程定义语言**:基于WFMC和OMG指定的标准 - **工作流模型**:采用活动图作为建模元素 - **特点**: - 性能、兼容性和数据一致性方面有待提高。 ##### JBPM - **基本信息**: - **开源状况**:开源 - **...

Global site tag (gtag.js) - Google Analytics