写下这个这题目我知道意味着一项艰巨冗长的任务开始了,做工作流方面的研发已经7年了,总算能拿出一些东西来,虽然走过很多弯路,但最终都变成收获。今天把一些心得和成果共享出来,和大家一起交流、探讨,也希望能得到大家的宝贵意见和建议。

说实话,不知道这个专题能持续多久,能持续到什么程度,但我尽力把工作流系统的核心和精华共享给大家,在开始详细的介绍之前,我会先介绍为什么要开发工作流系统,让大家充分体会到工作流系统的必要性和前景;然后我会介绍为什么要使用.net来开发工作流系统,让大家了解语言选择的原因;接下来详细介绍工作流系统的组成部分和每一部分的核心实现代码,在介绍核心代码的过程中,会结合工作流原理进行阐述,让读者真正从思想和应用上学会开发工作流系统。

声明:该系列文章中设计到的源码都属于本人编写,不会存在版权问题,本人已经申请版权保护,本着开源的精神,大家可以放心拿来研究,但不能用于商业用途。

第一篇 为什么要开发工作流系统

我们先来了解一下行业知识和行业背景,先来了解几个概念,什么是工作流系统,什么是BPM。工作流系统是以任务为中心,按照先后顺序把任务和数据有机的连接起来,使不同的人做不同的事,实现协同工作,这样的系统就是工作流系统,它体现在几个要素上:任务,数据,顺序,协同,这是工作流系统必须实现的四个要素。再抽象一点“达成企业各种业务环节(包括人和任务)整合的全面管理模式”,这种抽象的描述就是BPM(Business Process Management的英文字母缩写),后面没有什么特殊说明我们就称工作流系统为BPM。概念方面的知识大家可以百度搜索,这里不再做详细介绍。

国内做工作流系统的厂家很多,大部分是java语言的,全球做BPM系统的更是五花八门,也有几款比较流行的开源系统比如JBPM(java语言),NetBPM是JBPM的Net版,这几款很复杂,主要是学习资料很少,而且还严重的水土不服,国外的软件进入中国好像都有找个问题,原因是国外没有我们这么复杂的组织机构。国内的几款bpm系统做的还不错,java领域的不在我们讨论范围,主要研究NET领域的,最早的东兰的LiveFlow,合明的BPM系统,这两个出自一家,后来的H3,主要偏向于系统集成,最近方正也搞了一套,看了视频介绍还不错。这几套BPM产品都是很成熟的系统,包括流程设计器和表单设计器,是一整套系统,不可分割,对与全新开发业务系统的用户来说比较合适,对于已有业务系统的用户并不是他们的优势。

可见BPM系统正在迅速崛起,为什么会有这个趋势呢?需要我们从企业信息化需求找原因,只有这样我们才能明确是否值得花大力气研发BPM。

企业信息化建设分四个阶段,每个阶段有不同软件需求。如下图:

BPM正是第2和第3个阶段的工作,软件行业在国内发展了这么多年,如今已经到了企业流程再造的阶段,所以这方面的需求会大大增加,这也就是BPM系统需求为什么这么旺盛的原因。要详细了解企业信息化建设四个阶段的请访问《企业ERP系统的四个阶段》这篇文章,要想了解为什么要使用工作流系统的请访问《HF业务流程管理解决方案》这篇文章。

以上我们从行业背景和需求介绍了为什么要开发工作流系统,不知道您看到这里是不是已经充满信心,看好BPM的前景呢?

如果您已经充分认识到开发BPM系统的重要性和紧迫性,那么我们开始进行语言选型。

我们有俩个选择一是Java,二是NET,其他的也就不用考虑了。

目前Java领域的比较多,原因是Java开源做的比较好,留下来很多好东西,并不断完善。但是版本比较乱一个公司一个标准,学习成本很高,基本上都是
熟悉的人在玩,新人很少能玩的了的,成本高一般公司也玩不起,随着Net的兴起,java语言的程序员也面临着挑战。Net成本低,程序员也多,这个领域开源的好东西少,很多应用还是空白的,这正好给我们一个机会,物以稀为贵吗,我们选择使用Net语言来开发BPM,谁先做出来谁就是前辈。

选好了语言我们,我们又面临着一个选择,伟大的无所不能的微软在Net3.0推出了一WWF框架,支持工作流 系统开发,当初得到这个消息,很兴奋,但是研究一段时间后,很失望。一句话总结WWF,它只是一个底层框架,只告诉你它能干什么,怎么干还得你自己来实现。而且WWF极其复杂,学习成本很高。既然这样,我们是否可以按照工作流原理自己实现一套流程系统呢?回答是肯定的。这也正是该系列文章的内容。要详细了解WWF和自开发流程的区别的请访问《微软wwf与自开发工作流引擎的比较》这篇文章。

本篇到这里就该结束了,如果看到这里你不能认识到自己开发BPM的重要性的话,那么你可以再去好好理会一下,再去查查相关的资料,或者跟同行交流一下。

下一篇我们正式开始介绍如何开发BPM系统。

转载于:https://www.cnblogs.com/legweifang/archive/2012/07/22/2604141.html

一步一步学习开发BPM工作流系统--------(一)为什么要开发工作流系统相关推荐

  1. OK6410开发板学习之一步一步实现精简BootLoader(BL1部分)

    众所周知,ok6410开发板是一块基于s3c6410芯片的开发板,板载资源丰富.s3c6410是三星电子生产的基于arm11内核的芯片.本文旨在总结一下bootloader操作步骤,用于以后复习.查找 ...

  2. Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice

    在日常开发中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升级版).现在只有axis2和cxf官方有更新.今天我们先以一个比较老的引擎为例.来讲诉一下w ...

  3. Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservi

    在日常开发中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升级版).现在只有axis2和cxf官方有更新.今天我们先以一个比较老的引擎为例.来讲诉一下w ...

  4. 一步一步学WF系列(四)——工作流模拟登陆

    1. 摘要 我们之前已经熟悉了关于WF的基本概念,相信各位也都跃跃欲试.想步入真正的WF开发. 从本文开始,我们就先来熟悉在WF中的活动. 2. 活动 WF的核心就是一系列的活动. 而工作流就是多个活 ...

  5. 【深度学习基础】一步一步讲解卷积神经网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送 本文转自:一步一步讲解卷积神经网络 卷积神经网络(Convoluti ...

  6. 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...

    通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本   版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...

  7. Java程序员从笨鸟到菜鸟之(一百零八)一步一步学习webservice(二)webservice基本原理

    本来这第二篇打算讲解"开发第一个基于XFire的webservice"的内容来着.但是想想.开发实例只是局限于了会用的层面上.如果想真正的理解webservice还是需要挖掘其原理 ...

  8. 一步一步学习iOS 5编程(第三版)-PDF中文版-正式发布!

    目前,这是第一本介绍iOS 5.x 和 Xcode 4.4 的中文版书籍,尤其适合于iOS 编程开发初学者.本教程由 EntLib.com 团队编写.如有任何技术问题,欢迎留言. 电子版 – PDF ...

  9. GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景

    目录(?)[-] Hadoop概要 Hadoop相关组件介绍 HDFS Yarn Hive HBase Spark Other Tools Hadoop集群硬件和拓扑规划 硬件配置 软件配置 Hado ...

最新文章

  1. 开发时,尤其是最初的版本,只要保持有80%的功能即可
  2. 每日一皮:这也许是稍微二字最好的诠释...
  3. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package
  4. 五大开源游戏引擎介绍
  5. 使用Nagios打造专业的业务状态监控
  6. 【华为云技术分享】《跟唐老师学习云网络》— Ping喂报文
  7. listctrl 优化_上海SEO整站优化公司_新站整站快速排名优化
  8. Linux 命令(18)—— screen 命令
  9. 但是,使用Navicat for MySQL软件连接失败,报错1862
  10. python爬虫百度文库_百度文库爬虫,Python爬取百度文库内容输出word文档low版
  11. 16.2. jps - Java Virtual Machine Process Status Tool
  12. python题库选择题刷题训练_python题库刷题训练开源到了Github
  13. 手把手教你7个常见数据库使用方法
  14. 汉字读音表GB2312版 (共7809个汉字)
  15. 深圳求职指南(2004版)
  16. Spring cloud 和 Spring Boot 升级到F版和2.x遇到的问题。
  17. CentOS 6 安装配置教程【完整版】
  18. 20个常用Python运维库模块及工具
  19. DTV 学习(二) 数字视频
  20. 利用TensorFlow搭建CNN,DNN网络实现图像手写识别,总结。

热门文章

  1. python基础教程多少钱-厦门厦禾路Python基础教程培训费用多少-泰兴市新闻
  2. 西安python工资怎么样-在西安为什么对Python编程需求这么大?工资这么高?
  3. python使用什么格式划分语句块-python以什么划分语句块
  4. python详细安装教程linux-Python 环境安装步骤
  5. python强大体现在哪些方面-python应用于哪些方面
  6. 西安python培训班多少钱-西安中公python培训班靠谱吗
  7. 自学网python教程视频-Python爬虫之Django视频教程
  8. python编程if语法-讲解Python中if语句的嵌套用法
  9. zerodivisionerror什么意思python-python代码里出现是啥意思
  10. linux中使用apt-get安装软件包的时候报错:E: Could not get lock /var/lib/dpkg/lock-frontend