好久没有去看shark项目的进展了,说起来有些惭愧上次去enhydra.org网站应该还是四年前的事情了,shark 1.x版本一直觉得够用了,也就不再留意它的进展了。也一直未做过什么对外的文档与代码贡献,鄙视一下。今天来看看网站上对shark的描述,提些自己的看法与应用认识。
Shark与JaWE是Enhydra基于LGPL授权协议下提供的一组开源工作流软件。打个比方就类似于JasperReport与iReport的两者的关系。Shark提供完整的工作流引擎,JaWE是一个工作流程设计器与调试环境。
以我使用的经验来说,Shark是一个严格遵守WFMC标准的,使用XPDL语言进行描述的引擎。Shark可以应用在多种J2EE容器下支持会话Bean与Corba方式调用及WEB服务调用。
初学者很容易被这些开源项目中大量的概念与术语吓住,基本上都是死在第一步上的,无法入手。以我的经验来说,先了解WFMC标准与XPDL语言标签的含义,你有个基本的概念头认识后,然后用JaWE模仿示例做几个你常用的小流程,调试跑起来,你立即就会被它吸引上而不断去尝试它博大精深的内容。
当然,很多人又会跳出来说Shark不好,它是基于自己的框架开发的,并未使用struts/spring+hibernate这些更大众化的框架来做,它有自己的DODS等技术,学习曲线与成本很高。好象OFBiz不被大家接收也是这个原因(它有自己的OR技术与Framework)关于这点我的看法是,如果你是应付一些简单项目业务需求,是无需套用象OFBiz或Shark这些面向企业业务应用的框架,这叫用高射炮打蚊子。简单的信息CRUD自己随便找个框架或是原来的代码拷贝修改一下就可以了。不要天天比较说这个业务框架不好,那个技术不够开放。要知道这些项目都是这些开源组织多年持续坚持不断积累的沉淀,那时哪有这么多成熟的技术框架呀?而且我觉得客户或是作为技术负责人来说,只有最适合的,没有说一定要什么技术框架?啥叫主流?啥叫未来方向?扯淡多过实际,再过两三年现在所谓的主流框架还真的是主流吗?
shark在不同的人手中应该是可以有不同的用法,我是把它独立做为一个组件来应用的,使用需要用到工作流程驱动的应用我会使用到它。通过JaWE根据业务需求设计XPDL文件存放至资源库中,把流程结束点需触发的应用做成外部应用在工作流程中加以定义(支持Beanshell/WebService多种方式),类似于JspClient的示例方式在你自己的页面中提供待办事宜、工作申报、审批等操作。当然最主要的集成工作就是组织结构与权限的融合。这样你的业务系统就可以同shark全面融合了。最棒的情况下就是多个业务系统通过shark的同一实例串接起来,实现不同业务系统的工作衔接。
说得有些粗糙,可能文笔比较差,也不知别人是否能明白。以后有机会再就某个主题来说吧。
本人原创文章,欢迎转载,转载请注明出处!