(9)Shark工作流的实现和WMFC&OMG规范的对比

原创 2004年02月11日 14:09:00

Shark工作流的实现和WMFC&OMG规范的对比

                                 -----第九部分:分析obe自带例子的执行过程

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

关键字:Shark 工作流 WMFC OMG 规范

  

    Obe工作流的执行过程,下面来说说自带test中的例子的执行过程:

    初始化工作流引擎的时候需要一个RepositoryManager 的实例

    RepositoryManager 代表工作流执行中需要的资源库,比如:活动的参与者,活动中需要调用的外部工具信息,等等。然后进行工作流引擎的初始化:

    WorkflowEngine engine = new WorkflowEngine(repositoryManager);

    引擎初始化后用obexpdl解析类从用户定义的xpdl流程中实例化Package

    XPDLParser parser = new Dom4JXPDLParser();

FileInputStream in = new FileInputStream(file);

Package pkg = null;

            try{

                pkg = parser.parse(in);

            } catch(Exception e){

                log.fatal("Error parsing configuration: " + e.getMessage());

                e.printStackTrace();

                return;

            }

    然后把初始化后的package加入到引擎实例中:

    engine.addPackage(pkg);

    随后就执行了:

try{

        log.info("Executing workflow process " + packageId + ":" + processId);

        if(executionMode.equalsIgnoreCase("asynch")){

                log.info("Executing asynchronously");

                engine.executeAsynch(packageId, processId, getParameters());

        } else {

                log.info("Executing synchronously");

                engine.executeSynch(packageId, processId, getParameters());

        }

    } catch(Exception e){

log.error("Error executing workflow process " + processId + " in package " + packageId);

        e.printStackTrace();

    }

看起来整个执行流程很简单。

 

上面提到的RepositoryManager是如何初始化的呢?

例子中带的资源库有如下类型:

1、  BasicApplicationRepository

2、  BasicProcedureRepository

3、  BasicParticipantRepository

其中BasicParticipantRepository下面又包括:
1
RoundRobinGroup

2WorkflowSystem

 

    比如:添加管理和编辑人员信息:

        RoundRobinGroup editors = new RoundRobinGroup();

        editors.add(new Human("Bob Smith"));

        editors.add(new Human("Joe User"));

       

        RoundRobinGroup administrators = new RoundRobinGroup();

        administrators.add(new Human("Anthony Eden"));

       

        WorkflowSystem system = new WorkflowSystem();

       

        participantRepository.put("P1", editors);

        participantRepository.put("P2", administrators);

        participantRepository.put("P3", system);

        participantRepository.setDefaultConnector(system);

       

        getParticipantRepositories().add(participantRepository);

 

    BasicApplicationRepository appRepository = new BasicApplicationRepository();

        appRepository.put("A1", new DebugApplicationConnector("App 1"));

        appRepository.put("A2", new DebugApplicationConnector("App 2"));

        appRepository.put("A3", new RuntimeApplicationConnector(TEST_EXE,

           ExecutionType.SYNCHRONOUS));

        appRepository.put("A4", new DebugApplicationConnector("App 4", 10000));

        appRepository.put("A5", new DebugApplicationConnector("App 5"));

       

        getApplicationRepositories().add(appRepository);

 

    下面 我们根据obe提供的例子结合引擎分析 obe引擎的执行过程。

 

 

待续

田春峰

accesine@163.com

 

版权声明:本文为博主原创文章,在不删除、修改文章内容的情况下,可以自由转载。

j2ee常用工作流比较(shart、osworkflow、jbpm)

工作流引擎   Shark(EnhydraShark) Osworkflow opensymphony Jbpm(JBoss JBPM) 工作流描述语言...
  • shadowkiss
  • shadowkiss
  • 2013年05月07日 15:14
  • 2197

《流程的永恒之道:工作流及BPM技术的理论、规范、模式及最佳实践》书籍导读

《流程的永恒之道:工作流及BPM技术的理论、规范、模式及最佳实践》是一本全面讲解业务流程及其实现的专著,书中阐述了应用流程的三大永恒之道,即工作流技术永恒之道、BPM技术永恒之道、BPM治理永恒之道,...
  • wacky
  • wacky
  • 2016年08月08日 21:37
  • 1709

初识工作流 BPMN Activiti以及JBPM

最近做OA系统,接触了工作流,知道了JBPM和Activiti两种工作流引擎。 工作流    BPMN   BPMN全称Business Process Model And Notation...
  • u013045552
  • u013045552
  • 2017年02月05日 19:30
  • 1912

基于shark的工作流流程的实现方式研究.PDF

  • 2009年09月26日 12:08
  • 120KB
  • 下载

基于shark的分布式工作流系统的设计与实现.PDF

  • 2009年09月26日 12:06
  • 361KB
  • 下载

shark 开发文档 工作流 代码解释

  • 2009年09月26日 11:42
  • 97KB
  • 下载

shark 开发文档 工作流 代码解释

  • 2009年09月26日 11:44
  • 64KB
  • 下载

shark 开发文档 工作流 代码解释

  • 2009年09月26日 11:43
  • 47KB
  • 下载

shark 开发文档 工作流 代码解释

  • 2009年09月26日 11:41
  • 29KB
  • 下载

shark 开发文档 工作流 代码解释

  • 2009年09月26日 11:43
  • 46KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(9)Shark工作流的实现和WMFC&OMG规范的对比
举报原因:
原因补充:

(最多只允许输入30个字)