今天在javaeye里收到网友的消息,想交流一下工作流。虽然自己去年在开发OA系统时曾设计并实现了工作流系统(http://yongtree.iteye.com/blog/211321),但是对于工作流的认识还是处在一个比较肤浅的认识。本着交流与学习的心态,在此简单说一下自己对于工作流的一些小小的认识,抛砖引玉,希望各位朋友们能分享自己的经验。
工作流具体的概念和功能我就不多说了,还是说一下在设计和开发工作流过程中的一些体会吧。
首先,我们需要一个什么样的工作流?为什么这么问呢,这就是因为我们做任何系统都不能脱离实际的业务需求,除非是平台提供商,功能要包罗万象,否则就仔细考虑一下我们的系统应该满足怎样的业务需求,根据需求做出最合适的设计。加入我们去年做的,就是为公司做一个小型的OA系统,加入工作流的目的就是为了在OA系统中实现审批的功能,其实功能不需要太复杂,如果我们也像西安协同和北京易维那样做一个大型的工作流系统,我们人力财力都无法支撑,即使开发出来,也不见得都有所用。所以开发前想一想我们需要多少的功能。在我开发的工作流中,我在设计的时候考虑过自动路由的功能,也将其设计进去,但是在开发的过程中,发现这是一个很难的环节,如果把时间都耗费在这上面,必将造成项目进度的拖延,所以也就没有开发。后来系统运行的事实证明,用户根本不在意这样的工作流程,人们还是相关手工选择路由。所以说,并不见得功能全面的系统就是好系统,这可能还会到来更多的操作复杂性,用户都是很懒的,做他们最需要的系统这是我们在开发前设计时要考虑的。
其次,我们采用什么样的工作流引擎?工作流系统是一个系统工程,内涵大量的通用的业务、理论知识,选择一个合适的工作流引擎既可以提高我们的开发效率,又能降低开发成本。现在业内有很多免费开源的工作流引擎供我们选择,老牌的shark,轻量级的OSWorkflow,还有发展潜力更大的JBOSS的jbpm。根据自己的采用的开发技术,综合这些工作流引擎的功能,选择一个合适的工作流引擎,将您的系统在它的基础上扩展,不失一种好的方案。由于我做的工作流比较小,只要能满足集团的需要就可以了,所以在选择工作流引擎的时候由于考虑到学习的时间成本,我选择自己开发工作流引擎,采用和工作流标准的xml描述流程的方式不一样的方式,采用数据库为主的流程描述,以XML的描述作为辅助,开发一个及其轻量级的流程运行环境。
最后,耦合还是分离?什么是耦合,也就是说工作流和它所处的系统关联太深,离开了外围的大系统工作流就变的一无是处了。流程和表单是否紧密相连,表单里有流程的信息,流程中有对表单有过多的控制。这些就要看需求和对工作流的理解了,我当初想把工作流做成一个通用的中间件,可以在其他系统上也能比较好的集成,所以设计的时候工作流和OA之间几乎没有数据结构和类结构的关联,之间的通讯是通过两者之间构造的接口进行通信,虽然没有耦合,便于工作流系统的移植,但是也造成了开发的复杂性,消耗了大量的时间成本,也引起了一点点的性能缺失。在表单的处理上,我和项目经理在初期存在着分歧,我认为工作流系统中必须集成非常灵活的电子表单,让用户自定义表单,但是经理认为这样非常复杂,有难度,要求采用预设好的web表单。但是最后在领导的要求下,我们还是引入了简单的电子表单。我们的电子表单在表现上采用了对在线编辑器进行改造构建电子表单,效果还是不错的。同时,我的思路是表单不要和流程耦合太深,纠缠不清。流程就是流程,表单就是业务数据,各施其责,二者通过相关的接口进行相互合作,这在我们项目组也有一些异议,最后我还是采用了我的思路,不知道大家对于这有没有其他意见。
工作流是我毕业后第一年就设计和开发的,过程充满了痛苦和心酸,但是一路走来我发现自己成长了不少。我的那个工作流系统依然在不断的完善中,也希望对工作流感兴趣的朋友们能分享你们的认识和心得,让更多的人参与进来。
分享到:
相关推荐
工作流引擎是用于自动化业务流程的...对于初学者而言,熟悉这些概念和技术需要一定的背景知识,包括对工作流的理解以及对Petri网的基础认识。只有深入了解这些引擎的工作原理,才能更好地应用和定制工作流解决方案。
本篇报告,旨在探讨计算机网络实验报告中关于网络认识和协议添加的实验过程、结果以及对实验目标的反思与总结,旨在全面提高学生对于网络基础概念、工作机制以及实际操作技能的掌握。 实验题为“认识计算机网络”,...
大学生物流岗位实习不仅是对专业知识的应用和检验,更是对职业生涯规划和行业理解的深化。2021年10月,我在xxxx公司物流仓储部的实习,就是这样一个将理论与实践相结合的过程。 实习期间,我担任的是物流仓储部的...
我清晰地认识到,作为一名社区工作者,我的职责是为居民提供服务,参与社区的和谐稳定建设。在初入职场时,我面对的是一个完全陌生的环境,但我快速适应了新角色,调整了心态,以积极向上的态度迎接各种挑战。 为了...
实习经历使实习生们对会计工作有了更全面的认识,有助于他们在未来的职业道路上作出更为明智的规划,并为将来的职业生涯做好充分的准备。对于会计实习生来说,实习是理论与实践相结合的关键一步,它为他们开启了一扇...
在幼教的过程中,保育员的工作细致入微,每一个小小的关怀和教导都为孩子们的全面发展奠定了坚实的基础。通过这样的工作心得分享,我们可以看到保育员在幼儿园中的多维度工作和对孩子们成长的重要影响。
了解到单据填写的准确性对于后续的物流操作至关重要,一个小小的错误都可能导致工作流程的重复,甚至带来潜在的经济损失。通过在实习中的反复练习和仔细核查,我在业务操作方面获得了宝贵的经验。 其次,客服角色在...
比如,在处理路面冲洗、水池清洁等工作中,一个小小的疏忽都可能导致整个小区的卫生标准不达标。因此,必须关注细节,确保每一项工作都能够细致入微、尽善尽美。这一理念的应用,不仅体现了司机个人的专业素养,也是...
反复操作的目的是为了加深学生对财务流程的认识,提高他们在实际工作中遇到复杂状况时的应对能力。在重复练习中,学生很可能会遇到各种各样的问题,例如计算错误、数据处理不当等。这些问题的出现,虽然会暂时阻碍...
每一笔账目的处理都需要精确到位,任何小小的错误都可能对企业的财务状况造成重大影响。因此,会计人员必须具备严谨的工作态度,通过认真细致的工作习惯,及时发现和解决问题,确保账目清晰、准确无误。 在实际工作...
此外,本课程还特别设计了“小小调解员”活动,目的是引导学生理解和尊重不同地区的生活习惯和观念。通过分享和讨论面食、火锅、海鲜等地方美食的多样性,以及不同地方人的性格特点,学生将学会消除地域偏见,形成...
他们的辛勤工作常常被忽略,但对每个学生来说,老师所给予的关心和教育是无法用物质衡量的宝贵财富。我们感激老师的每一份付出,每一份关怀。 在特定的日子里,比如教师节,我们会用各种方式,通过短信、朋友圈、...
在我们的生活中,经常能够听到“一屋不扫,何以扫天下”的古训,这与PPT文件...正如那句老话所说,“不积跬步无以至千里,不积小流无以成江海”,让我们从现在做起,用小小的积累,去创造属于我们自己的伟大成就吧。
一次小小的疏忽就可能导致不可挽回的后果,安全规则并非无足轻重,而是关乎生死的重要准则。 再者,企业应当建立科学、理性的安全规章制度,并严格执行。这些规章制度是预防事故的宝典,它们基于对危险源的深入理解...
在电路的学习中,小小灯泡的构造讲解让学生明白了电灯的工作原理。通过学习简单电路中电灯和电池串联和并联的不同连接方式,学生能够了解电流的基本流动路径。电路检测器的使用是培养学生解决问题能力的重要环节,...
他们需要对公司整体财务状况有着深刻的认识,并在预算估算、资金筹措和风险控制方面做出重要决策。财务总监必须能够有效地与公司其他部门沟通协调,以确保各部门的工作能够顺畅进行。税务规划和管理是财务总监的另一...
通过这份课件,学生们将能够逐步建立起对科学世界的认识,理解自然界的奥秘,并将这些知识应用到实际生活中去。这份课件中的每一个知识点都是未来科学学习的基石,让学生们在不断的探索和实践中,逐渐成长为有知识、...
此外,将这些案例转化为安全教育资源,利用案例教学的方式对员工进行安全教育,可以更有效地提高员工对安全问题的认识和重视。 综上所述,工业生产中对安全生产的重视绝不能停留在口头上或纸面上,而应体现在实际...
通过这个实验,学习者能够了解到单片机的基本原理和应用,掌握Keil和Proteus软件的使用技巧,熟悉数字电路的基本工作原理,特别是对单片机的I/O端口控制有了直观的认识。这些知识和技能为进一步深入学习单片机技术...
提高全民的环保意识,增强每个人对垃圾分类的认识和责任感,是推进垃圾分类工作不可或缺的一部分。我们每个人都是垃圾处理链条中的一员,我们的一个小小举动,都可能对环境造成直接或间接的影响。因此,从家庭做起,...