这两周与“传智播客”合作,开了一期企业工作流开发的专题课堂。来了一些IT企业的学员,以及“传智播客”本身的一部分学员。
本来四天的课程安排是围绕“概念、模型、系统、引擎构架和实现”这四个方面来阐述的,基本上一天围绕一个层面来展开。至于为什么前三个部分分为“概念、模型、系统”这三个层面,这是受荷兰的Aalst大师所写的《工作流管理——模型、方法、系统》这本的一定影响的,以及以及五年的工作流研发的经验总结出来的一套学习工作流的方法。
为了这四天讲解,准备的很充分。虽然在此之前已经给数十家企业培训过工作流,但是都只是一天的内容量,所以内容要比这此培训的少,也更有针对性。而这次培训的课程设计则是本着:从基础知识到实现一层层展开的。
第一天结合一些流程产品的演示来讲工作流的基本概念、历史、系统结构、参考模型。确发现几乎没有什么学员在意这个,好像每一个学员都觉得这个知识没啥用处——在给大家演示那些工作流产品的绘制流程界面、接受任务提交任务的一些demo之后,询问了大家最关注工作流什么。几乎所有的人都很好奇:工作流引擎是咋实现的?—— 我很矛盾,没有这些理论基础,你如何能够领悟一个process engine呢?
晚上回到家想了又想,决定第二天改变原定的讲解计划。原本第二天是打算讲解工作流的运转模型、组织模型、权限模型、事件模型、扩展模型,以及非常重要的建模方法和模式。决定换了。
第二天上午先简单过了过运转模型和组织、事件模型。然后开始带着学员们一步步的搭建jbpm开发环境(实际上就是利用jbpm-starters-kit在Eclipse中构建Process Project),从这以时刻起,突然发现所有的学员都有学习兴趣了(神奇的事情)。
接下来的三天课程主要就是带着大家:用jbpm建流程,利用TestCase创建ProcessInstance,并讲解存储结构,分配和处理TaskInstance。后来还花了半天时间讲了讲jbpm Engine Kernel的设计结构、原则和局限性,讲了讲Token的Singal的含义和过程。
我不知道围绕jBpm讲解的这些内容到底能够给学员们带来多大价值,但在我自己看来,除了那个jbpm engine kernel的是有比较大价值以外(毕竟这个是很少有人能知道的),其他的内容,真的不值得这些学员耗费金钱来听。—— 而在于我自己,其实是根本不想围绕jbpm讲这么多的。
我其实是想给学员们普及一套研究和开发工作流的方法,而这个方法肯定是依赖于概念、模型、建模方法的—— 可是,我发现没有人愿意听这个。
很多人开发人员以为,下个jbpm-starters-kit,看看user guide,搞搞扩展开发,就可以去实施工作流了。难道没有人注意,user guide永远只能告诉你:how to use it,而无法告诉你why and how to design。
不过,说实话,我也很理解这些来自企业的学员们,他们很多是被项目“逼”的,被“成本”逼的。——国人太喜欢使用开源了,struct,spring,hibernate这些都是开源,这些可以用,既然工作流也有开源,为啥不能用呢?
如果有时间,如果你对工作流感兴趣,那么抽空把流程建模方法、调度算法、参考模型等等一些基础知识看看吧。
分享到:
相关推荐
标题“统计建模和R软件”揭示了本文将要探讨的核心内容,即统计建模的基础知识和R语言在实现统计建模方面的应用。R语言是一种专门用于统计分析和图形表示的编程语言,它具有强大的统计计算能力,并且是数据科学领域...
4. **工作流讲解**:`2007工作流讲解.pdf` 可能是一份关于工作流基础和JBPM3实践的教程,它可能包含了工作流的概念、生命周期,以及如何在实际项目中应用JBPM3。 5. **编程接口介绍**:`Jbpm 相关编程接口.ppt` 是...
以上部分对工作流、BPMN、Activiti的概念做了一个简单的介绍,目的是了解Activiti究竟是什么,能做些什么…及在学习Activiti之前需要了解的知识与技术。其中大部分文字来自Copy网上的各种资料与文档,通过总结而来的...
标题提到的"各种算法 包括图论、比较、检索、最短路径等等"涵盖了多个计算机科学的重要分支,这些概念广泛应用于软件开发、数据处理和人工智能等领域。下面我们将深入探讨这些算法类别。 1. 图论:图论是数学的一个...
本文将围绕这些技术的面试知识点进行详细阐述。 首先,Hadoop是Apache基金会开发的一个开源框架,主要用于分布式存储和计算。其核心包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供了高容错性的...
在《数据库系统基础教程》中,读者将学习到关系模型的基础知识,包括关系的定义、键的概念、以及关系操作(如选择、投影、并集、差集和笛卡尔积)。此外,书中还会探讨关系数据库的完整性规则,例如实体完整性、参照...
学习流(stream)的概念和IO操作、文件的读写和传输。 掌握多线程编程、文件的操作和程序集的相关概念,学习反射和属性。 第二阶段教学内容安排(400课时) 课程名称 课程内容 培训目的 ASP.Net2.0、ADO.Net2.0和...
但是软件逆向工程仍然算不上成熟,这主要表现在对理论和实践的研究都还处于早期的探究阶段,并未形成统一的、系统的、科学的软件逆向工程的理论和方法。从工程实际的角度来看,大体上可以将软件逆向工程分为两大类:...
7. **过程描述、处理、数据流、数据存储和数据源/汇**:这些都是软件工程中设计和描述系统工作流的要素。过程描述关注于系统的操作步骤,处理是数据转换为另一种形式的方式,数据流指明了数据的流动路径,数据存储是...
学习流(stream)的概念和IO操作、文件的读写和传输。 掌握多线程编程、文件的操作和程序集的相关概念,学习反射和属性。 第二阶段教学内容安排(400课时) 课程名称 课程内容 培训目的 ASP.Net2.0、ADO.Net2.0和...
学习流(stream)的概念和IO操作、文件的读写和传输。 掌握多线程编程、文件的操作和程序集的相关概念,学习反射和属性。 第二阶段教学内容安排(400课时) 课程名称 课程内容 培训目的 ASP.Net2.0、ADO.Net2.0和...