- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NetBPM工作流的架构设计及实现浅析NetBPM组件接口定义组件(Definition Component)运行组件(Execution Component)组织架构组件(Oorganization Component)日志组件(Log Component)任务调度组件(Scheduler Component)管理监控组件(Admin Component)NetBpm中的几个重要概念 flow attributes(属性)引擎运行时上下文环境(Execution Context)委托类流程定义版本问题异常处理机制流程定义元素类图NetBpm中使用的框架或组件 IOC容器――Castle数据持久层―― NHibernate示例Web层――MonoRail系统日志――Log4Net单元测试工具――NUnit后记--------------------------------------------------------------------------------读前的话:由于本文涉及内容颇多,若有地方读来不很明白,建议先跳过,整体上有个认识后,再回过头来理解。作者认识有限,若有错误,欢迎斧正:)原文地址: NetBPM工作流的架构设计及实现浅析(转载请保留)NetBPM组件接口 NetBPM由一系列的组件构成,每一个组件都实现一个核心接口(采用Facade Pattern)。不同组件各自负责的核心功能根据WfMC规范而来。 NetBPM接口图:为流程开发者提供的接口(Process Developer):该接口负责加载流程定义到NetBpm引擎。首先,流程开发者依照nPdl创建一个流程定义,并将其打包成流程定义压缩包(该包包含一个业务流程的所有信息),然后通过NetBPM Web界面或者是其他方式把流程定义压缩包加载到NetBPM引擎,在加载过程中流程定义压缩包将会被解析被保存到NetBPM数据库中。为用户提供的接口(User):这里用户表示执行流程的人。流程运行主要有2种行为:开始一个流程和执行一个活动(activity)。开始一个流程将创建该流程的一个流程实例,一个流程实例对应流程定义的一次执行。一个流程实例包含了一个或多个并行的flow-of-execution(见flow)。对于处在activity-state(活动节点,见nPdl)的flow,系统一定会指派一个具体的人(或者组)或者第三方来执行活动(activity)。执行活动是Execution Interface的第二种行为。当然了,运转接口还会实现一些其他的方法如获取任务列表,获取有效流程定义列表等。外部IT系统(External IT Systems)和NetBpm引擎之间的接口:外部IT系统能以2种方式实现和NetBPM的交互。系统发起交互:系统直接和外部IT系统交互。当系统想要触发流程中的某一个action时,它必须使用上面提到的Execution Interface。流程发起交互:对于流程发起交互这种类型来说,需要有Interactors。这些Interactors是流程定义的一部分,它包含在流程定义包内(实际上Interactors就是能够访问FlowContext的.NET程序集,也就是我们后面要说到的包含委托类的程序集合)。Interactors在FlowContext(FLOW运行上下文环境)和外部IT系统之间建立起了通信渠道。组织架构数据(Organisational Datastore)和NetBpm之间的接口:仔细想想,NetBpm是不是还缺了点什么,没错,那就是组织架构的信息:比如说人、团队、部门、角色等。因为在现实情况中,对于不同的组织结构,组织架构信息可能被保存在不同类型的数据库中,如LDAP系统,关系型数据库等。为了让NetBPM能够在一个现实的组织架构中实现快速部署,NetBPM把所有的组织架构信息都聚集在一个组件(Organisation Component)中。这种做法也就是我们通常说道会话门面模式(Session Fa?ade Pattern),它使得NetBPM访问来自不同数据源的组织架构信息变得更为简单。下面我们逐步介绍NetBPM的各个组件,下面是NetBpm组件结构图:定义组件(Definition Component)该组件实现核心接口IDefinitionSessionLocal,用来解析、加载流程定义压缩包,并将其保存到数据库中。此外,它还提供获取某个流程定义,获取所有有效流程定义列表等和流程定义相关的方法。运转组件(Execution Component)该组件实现了核心接口IExecutionSessionLocal,它是NetBPM引擎推动核心,如前面
文档评论(0)