Shark是一个完全基于WFMC和OMG规范的工作流引擎。
l 它使用WFMC的XPDL语言作为它本身的工作流定义格式。
l 在它的标准核心执行(implementation)中,Shark是一个库,它不产生自己的线程,能在很多环境中使用(web,swing,corba,ejb)
l 它是十分结构化的,它所有内部接口,全部内核都可以被外部执行(implementation)替代。
l 它能同时被许多虚拟机使用(VMs)
l 连同Pojo接口,它提供Corba接口,通过Corba接口,使得Corba客户程序可以和发布为Corba服务的Shark引擎进行通讯。
l 通过配置可以使得组织结构配置在Ldap上。
l 它不使用任何Xpdl的扩展属性作为它的执行规则。
l 它的接口允许外部的事务(transactions),因此Shark可以对这个“客户”事务起作用。
l Shark使用DODS,这使得Shark可以用几乎任何数据库进行信息存取,而且它能很容易被配置来转换目标DB或Url(有着事先定义好的脚本,通过使用Enhydra的Octopus- ETL工具自动在相应的DB中创建表)
l Shark贯彻了WFMC的用来处理自动活动的ToolAgent概念。
l Shark能用自定义的Java类(甚至接口和抽象类)作为过程变量。