08 2011 档案

摘要:JBPM流程部署之流程版本升级 流程定义是根据流程定义描述语言(JPDL)对现实业务需求的抽象,是对现实业务需求的高度抽象化;现实中对于同一个流程定义,很少会一成不变,很多时候随着时间的流逝,我们的业务流程有少许的变化,那么我们就需要对流程进行一些改变,这个时候就会涉及到流程的版本升级的问题。今天我们来了解一下jbpm的版本升级的相关执行,最后我们会对JBPM的现有版本升级进行扩展思考。 以下是我对JBPM流程版本升级的相关知识的思考,结合下图我们展开今天的学习 流程的基本属性 Name,流程的名称,在与用户交互时,用于标示不同的流程,主要用于界面展示 Key,流程的键,用于标示同一类流程,. 阅读全文
posted @ 2011-08-31 05:42 无风听海 阅读(1228) 评论(0) 推荐(0) 编辑
摘要:JBPM流程部署之流程定义实体对象分析 JBPM中运行时使用的流程定义实体对象是ProcessDefinitionImpl,流程定义实体对象是流程流转的路线图,他是根据我们对jpdl的解析形成的,他是在我们发布流程的同时,或者是首次发起本版本的流程实例的时候进行实例化;由于流程定义实体的初始化需要动态的解析jpdl,所以相对来说还是很耗费资源的,所以ProcessDefinitionImpl一旦形成流程引擎就会将其缓存起来,以后就会直接从缓存中获取。 ProcessDefinitionImpl在流程引擎具有很重要的作用,除了作为流程流转的依据外,同时也需要具有一些别的特别重要的功能,那么现在. 阅读全文
posted @ 2011-08-28 06:38 无风听海 阅读(2258) 评论(8) 推荐(0) 编辑
摘要:JBPM流程部署之部署数据表分析 JBPM流程部署xml格式的流程定义,虽然引擎默认的在发布完后就直接将流程定义实体缓存,以方便以后的流程运行流转使用,避免不必要的数据库访问,但是这些缓存直接存储在内存中,很容易就会丢失掉,比如重启服务器等,所以最终我们还是需要持久化到数据库里。今天我们来了解一下JBPM与流程部署相关的数据库表。 JBPM的持久化层使用的是Java中被广泛使用的ORM框架Hibernate,下面我们看一下JBPM流程部署实体-数据表关系,其关系如下图所示 本来打算使用visio好好的画个图,但是无奈自己能力有限,只能画了个简单的图,下面我们简单的介绍一下 Deploy... 阅读全文
posted @ 2011-08-24 21:42 无风听海 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:JBPM流程部署之部署解析器相关对象扩展 流程部署解析器是流程引擎很重要的部分,负责xml流程定义的解析并转化成运行时的流程定义实体对象,它在很大的程度上决定了流程定义xml的书写形式,当然了也可以说流程定义xml在很大的程度上决定了部署解析器的业务逻辑实现,只是因为站的角度不同;总之怎么强调部署解析器的重要性都不过分,可以说流程部署解析器就是流程定义描述语言的编译器,当我们发布流程的时候,它负责一次性编译好我们的xml流程语言,并最终形成我们流程引擎运行时使用的“语言”(流程定义运行时);流程部署相关对象主要涉及DeployManager、JpdlDeployer等对象。今天我们也简单的来. 阅读全文
posted @ 2011-08-21 08:50 无风听海 阅读(864) 评论(0) 推荐(0) 编辑
摘要:jbpm流程部署之部署服务相关对象扩展 流程部署服务是流程引擎提供给外界的调用接口,用于外部完成部署相关任务来使用,比如发布流程定义、通过流程名称或者流程ID获取流程定义等,所以说流程部署服务是流程引擎部署对外的门面。流程部署服务相关对象涉及到RepositoryService、RepositorySession、RepositoryCache,今天我们来体验一下JBPM在这方面的扩展性。 扩展RepositoryService流程部署服务 如果流程引擎提供的部署服务接口不能满足我们的业务需求,那么我们可以继承流程引擎服务RepositoryServiceImpl(当然我们也可以直接在这个类. 阅读全文
posted @ 2011-08-20 23:56 无风听海 阅读(606) 评论(0) 推荐(0) 编辑
摘要:JBPM流程部署之流程支持节点扩展 流程引擎支持的节点类型在很大的程度上决定了流程引擎对现实业务的支持能力,同时也需要能够灵活的扩展节点类型。通过上篇对流程部署环境的初始化,我们大致的了解到JBPM不仅提供能了众多的节点类型,这些节点基本上可以满足大部分的一般业务需求;同时我们也可以灵活的控制是否使用现有节点的某种类型;当然我们也可以灵活的扩展现有的节点类型和自定义节点的类型;那么现在我们来通过代码来体验JBPM流程引擎灵活的扩展性。 屏蔽JBPM流程引擎原有节点类型 如果我们不想使用JBPM本身提供的某种节点类型(例如hql),那么我们可以屏蔽掉它;我们知道JBPM在jbpm.jpdl.b. 阅读全文
posted @ 2011-08-19 00:07 无风听海 阅读(2217) 评论(0) 推荐(1) 编辑
摘要:JBPM流程部署之部署环境初始化 流程的部署是流程引擎需要完成的几个重要的任务之一,流程定义是现实中复杂业务需求在流程流转实现的体现;流程部署需要完成xml格式流程定义的校验、流程定义的持久化、流程定义到流程定义实体的转化、流程版本升级和流程实例的迁移等众多的功能; 今天我们来简单的学习一下流程部署的环境初始化;流程部署环境初始化需要完成部署服务、流程部署缓存、流程部署持久化相关对象、流程引擎支持的节点类型等相关binding对象及相关的部署解析器的实例化; 流程引擎支持的节点类型初始化 流程引擎支持众多的节点类型,比如任务节点、状态节点、子流程等等;此过程初始化JBPM默认支持的系统节点类. 阅读全文
posted @ 2011-08-17 01:04 无风听海 阅读(3376) 评论(1) 推荐(0) 编辑
摘要:Validation is a powerful tool. It enables you to quickly check that input is roughly in the form you expect and quickly reject any document that is too far away from what your process can handle. If there's a problem with the data, it's better to find out earlier than later.In the context of 阅读全文
posted @ 2011-08-14 06:29 无风听海 阅读(1814) 评论(0) 推荐(0) 编辑
摘要:JBPM流程定义校验之java利用XSD校验XML 上篇我们学习了在.net中怎样利用XSD来验证xml,今天我们来看一下在java中怎样实现利用xsd来校验xml! /****/packageWFTH;importjava.io.*;importjavax.xml.transform.Source;importjavax.xml.transform.stream.StreamSource;importjavax.xml.validation.*;importorg.xml.sax.SAXException;/***@author无风听海**/publicclassValidationMan. 阅读全文
posted @ 2011-08-14 01:51 无风听海 阅读(867) 评论(0) 推荐(0) 编辑
摘要:JBPM流程定义校验之.net利用XSD校验XML 上篇我们学习了在javascript中怎样利用XSD来验证xml,废话不在多说,今天我们来看一些怎样在.net中怎样实现利用xsd来校验xml! usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Xml.Schema;usingSystem.Xml;usingSystem.Xml.XPath;namespaceWFTH.XMLValidation{publicclassValidationManager{priv. 阅读全文
posted @ 2011-08-14 01:13 无风听海 阅读(477) 评论(0) 推荐(0) 编辑
摘要:JBPM流程定义校验之javascript利用XSD校验XML 上篇我们简单的介绍了一下XSD的相关知识,今天我们来学习一下在javascript中怎样利用XSD来验证xml;现在各大浏览器厂商中,好像就微软公布了相应的接口,其他的厂商需要我们自己来实现类库;所以今天我们讲的是在IE下利用XSD来验证xml。 我们先了解一下MSXML个版本对XML验证的支持情况Version Support MSXML仅支持DTD 验证,不支持xsd方式.MSXML 2.0 through 4.0支持XML-Data Reduced (XDR) 验证.MSXML 4.0 and later支持xsd验证方式. 阅读全文
posted @ 2011-08-14 00:58 无风听海 阅读(1350) 评论(0) 推荐(0) 编辑
摘要:- JBPM流程定义校验之XSD简介 JBPM的流程定义语言是JPDL,其本身是一种自定义结构的xml;JBPM的流程定义结构比较复杂,不仅元素的类型多样,而且对数据类型也有比较严格的要求,同时有很多元素有着相同的元素和属性等;做为流程引擎应该具有校验流程定义的有效性的能力,从而保证不会再流程流转过程中发生错误;同时流程引擎应该内置这种校验能力,而不能依赖流程设计器的校验!面对如此复杂的xml,JBPM首先使用XSD进行验证,然后再解析流程定义的同时进行一些XSD无法实现的校验!今天简单的介绍一下XSD的相关知识,然后接下来的将分别介绍在javascript、C#、java中怎样利用XSD对x 阅读全文
posted @ 2011-08-13 09:00 无风听海 阅读(590) 评论(0) 推荐(0) 编辑
摘要:在eclipse中运行jbpm4.4的流程测试用例 JBPM的源代码中有一些流程测试用例,对我们理解JBPM的运行机制和以JBPM为流程引擎进行二次开发都有很大的帮助,同时对我们理解JDPL也有一定的帮助。那么我们怎么样才能够在拿到JBPM源代码以后,最快的速度运行其中的测试用例呢?下面将我的方法分享如下: 使用JBPM的jar包 1.新建java project JBPMTest,并选择从已存在源创建,并选择JBPM根目录下的examples中的src即可; 2.单击下一步,选中libraries,并单击选择add external jars,选中JBPM根目录下的JBPM.jar并点击确. 阅读全文
posted @ 2011-08-07 10:00 无风听海 阅读(2217) 评论(0) 推荐(0) 编辑
摘要:C#扩展方法,爱你在心口难开 --C#扩展方法深入分析 什么是扩展方法?好几天了打算记录一下,今天我们来深入研究一下,探究一下扩展方法的实现机制;那么到底什么是扩展方法呢? 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。(引自csdn) 也许你并不明白以上的意思,那一点都没有关系,如果我们平时一定经常使用linq标准查询,那么我们就一直在使用扩展方法. 阅读全文
posted @ 2011-08-05 05:26 无风听海 阅读(9931) 评论(3) 推荐(5) 编辑
摘要:利用javascript的面向对象的特性实现限制试用期 Javascript是一种面向对象的脚本语言,其也具有面向对象的三大特性,但是今天我们不详细的讲解javascript的面向对象特性,今天我们简单的了解一下javascript的面向对象特性,然后学习一下怎样实现试用期的限制! 下边是我自己写的一个类,类中有字段、方法 //构造函数functionPerson(name,sex,age){this.name=name;this.sex=sex;this.age=age;};Person.prototype.getName=function(){returnthis.name;};Pers. 阅读全文
posted @ 2011-08-04 00:15 无风听海 阅读(451) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示