shark工作流源代码学习(一)

原创 2004年05月31日 16:47:00

org.enhydra.shark.SharkEngineManager<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

SharkEngineManagershark引擎的控制室,它在shark引擎内部使用,shark引擎的所有管理器都是由它产生的。

SharkEngineManager使用了singleton模式,保证整个系统只有一个它的instance

// the one and only instance of this class

   private static SharkEngineManager engineManager;

 

   static SharkEngineManager getInstance () {

      if (engineManager==null) {

         engineManager=new SharkEngineManager();

      }

      return engineManager;

   }

 

SharkEngineManager的所有get()方法的作用都是返回初始化时实例化的管理器,这些管理器也是singleton的,这样通过一个类,实现了无限个类的singleton模式,这在我们平常的系统中可以借鉴。

 

当系统启动时,将调用Shark.conf()进行系统的配置,配置时将调用SharkEngineManager的init (Properties properties)方法,该方法示例如下:

void init (Properties properties) {       

          String objectFactoryClassName=properties.getProperty

         ("ObjectFactoryClassName",

          "org.enhydra.shark.SharkObjectFactory");     

 

      String amClassName =properties.getProperty

         ("AssignmentManagerClassName");

   …………

}

如上所示,首先从properties中读ObjectFactoryClassName,如果有,则使用配置文件中的;如果没有,则用org.enhydra.shark.SharkObjectFactory。AssignmentManagerClassName也是从配置文件中读的。

 

Init()的下一步是用读到的配置或用缺省的配置将各管理器实例化,在后面运行时直接取用,如下:

try {

         callbackUtilities=(CallbackUtil)cl.loadClass(cbuClassName).newInstance();

callbackUtilities.setProperties(properties);

         objectFactory =(SharkObjectFactory)cl.loadClass(objectFactoryClassName).newInstance();

         toolAgentManager = (ToolAgentManager) cl.loadClass(tamClassName).newInstance();

         xmlInterface=new XMLInterfaceForJDK13();

      } catch (Throwable ex) {

         throw new Error("Problems instantiating core managers");

      }

当然了,这里返回的都是接口,所以,我们可以方便的扩展它,只要写自己的类继承这些接口,然后在配置文件中进行配置,就可以不动它的代码而达到扩展的目的。

 

hongbo781202,又名HongSoft,职业程序员,研究领域:1)基于工作流的BPM系统研究2)基于JAVA的信息安全

技术.http://blog.csdn.net/hongbo781202/

 hongbosoftware@163.com

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

Shark机器学习库安装过程记录

今天装了一下Shark这个基于C++的机器学习库,现在把安装过程记录如下: 参考博客:http://blog.csdn.net/hitwengqi/article/details/8990384 ...
  • messiran10
  • messiran10
  • 2015年10月21日 20:35
  • 1642

开源机器学习C++库Shark的编译与开发环境搭建

Shark是一个快速、模块化、功能丰富的开源C++机器学习库,提供了各种机器学习相关技术,比如线性/非线性优化、基于内核学习算法、神经网络等。   机器学习(MachineLearning)是...
  • deirjie
  • deirjie
  • 2014年08月20日 18:50
  • 3933

Shark:强大的开源C++机器学习库

申明:本文非笔者原创,原文转载自:http://sigvc.org/bbs/thread-872-1-1.html Shark 是一个快速、模块化、功能丰富的开源 C++ 机器学习库,...
  • yangleo1987
  • yangleo1987
  • 2016年11月16日 14:35
  • 2115

机器学习_SVM支持向量机

在没有领域相关的先验知识的情况下,SVM差不多是最好的不用修改就能很好工作的分类器了。...
  • xieyan0811
  • xieyan0811
  • 2017年11月27日 22:03
  • 60

WIN7下,VS2013配置shark库

1.       VS2013配置Shark机器学习库,首先要配置boost库,boost库的配置方法,可参考上篇文章WIN7下,VS2013配置boost库 2.       Shark3....
  • xiao_lxl
  • xiao_lxl
  • 2017年06月07日 15:49
  • 280

机器学习实战(5)--SVM(Support vector machine)(一)

支持向量机,SVM
  • chaoshengmingyue
  • chaoshengmingyue
  • 2016年03月27日 16:09
  • 543

java开源工作流引擎

Willow  由Huihoo Power开发详细可到其中文主页查看。 OpenWFE  OpenWFE是一个开放源码的Java工作流引擎。它是一个完整的业务处理管理套件:一...
  • u010850285
  • u010850285
  • 2014年11月18日 14:02
  • 1176

工作流学习——重要概念扫盲篇一步曲

通过这篇文章我们可以了解到工作流、工作流管理系统、工作流框架、工作流引擎他们的概念以及他们之间的相互关系,同时我们还讲解了activiti的前世今生,同时我们还将activiti于jbpm5进行了比较...
  • zwk626542417
  • zwk626542417
  • 2015年06月22日 11:55
  • 11529

Shark简介、部署及编译小结

Shark即Hive on Spark,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD操作,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会...
  • zbf8441372
  • zbf8441372
  • 2013年09月24日 11:21
  • 5354
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shark工作流源代码学习(一)
举报原因:
原因补充:

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