
技术
文章平均质量分 77
ronghao100
目前为ThoughtWorks咨询师,邮箱:ronghao100@gmail.com
新浪微薄:http://t.sina.com.cn/ronghao100
展开
-
sqlserver2000并发测试下的一些问题
测试在sqlserver2000上进行,对工作流操作的相关方法在单元测试里进行多线程并发。测试发现sqlserver出现死锁的情况相当多,一些典型的情况:1、对同一张表先insert再update是很快会引起死锁的,不管操作的是否是同一记录解决方法:对于同一记录,需要调整hibernate的映射策略,使得一次insert完成操作。对于不同的记录需要在代码中手动flush,使得update先于...2008-06-19 13:39:09 · 206 阅读 · 0 评论 -
了解DOM的事件流
DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有着相当大的影响。这两种事件流分别是捕获和冒泡。和许多Web技术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们。Netscape选择实现了捕获事件流,微软则实现了冒泡事件流。幸运的是,W3C决定组合使用这两种方法,并且大多数新浏览器都遵循这两种事件流方式。默认情况下,事件使用冒泡事件流,不使用捕获事件...2008-03-02 15:01:04 · 148 阅读 · 0 评论 -
一些工作流管理权限的分析
既然是与用户相关的权限,那么权限的表现则一定与UI紧密相连。工作流管理系统里,用户与工作流的交互界面有四种:1、流程设计器 流程设计器的功能比较单一:定义或更新流程定义。里面涉及到包、模板和版本的概念。资源即流程模板(例如发文模板、收文模板),权限可以细分为:维护、只读以及不可见。2、流程管理控制台 对流程实例(包括活动实例和工作项实例)进行管理。这里对资源的划分有两种方式:操作和数据。从操作来...2008-03-08 16:25:05 · 255 阅读 · 0 评论 -
《Head First Process-深入浅出流程》连载预告
似乎一到年末,就会忙起来。05年的时候忙着和现在的老婆谈那从来没谈过而导致过分饥渴的恋爱;06年的时候新配置了机器,忙着通关使命召唤和生化危机;07年的时候和张祖良一起翻译AJAX企业级开发,第一次翻译,忙得像黄牛,慢得像蜗牛,在心里祈祷,翻译出来的东西不被骂就好;08年的时候和丁雪峰、总司令又一起翻译Spring攻略,第二次翻译,熟练了一些,但是每一个句子还是要花上很多时间,很多时候...2009-10-17 22:58:14 · 118 阅读 · 0 评论 -
工作流委办功能分析
委办只针对个人。委派给组织或岗位没有业务意义。一、委办的分类 1、用户单一工作项的委办以及收回委办 2、用户所有工作项的委办,全权委办 3、用户按流程划分工作项的委办,基于模板的全权委办,也可以理解为基于业务的委办二、委办的触发与终止 1、对于单一工作项的委办,在待签收和待办工作项列表需要出现委办的功能按钮,由用户选择其他用户代为办理。工作项委办后进入委办工作项列表,用户可...2008-04-07 18:35:00 · 145 阅读 · 0 评论 -
基于memcached的SNA实现
系统要集群,使用SNA方案。一、 缓存的处理缓存要使用统一的缓存服务器,集中式缓存。原先的实现采用ehcache。在spring里的配置,以资源缓存为例:<!-- EhCache Manager --> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFacto...2008-10-28 17:34:17 · 114 阅读 · 0 评论 -
BPM向左,工作流向右(二)工作流系统杂谈
当面对一个完整的工作流系统时,你可能会被它众多的功能所困惑:流程流转模式、时间服务、组织适配、表单权限等等。但是如果我们转换一种思路,首先从用户使用的角度来进行分析,工作流系统的组成就会变得异常清晰。实际在现实开发中,整个系统也是由用户的业务需求一步步迭代而来。 一、 从用户的角度分析工作流系统的组成这里的用户分为两类:一类是应用系统开发人员(以后简称开发...2008-11-07 11:28:51 · 201 阅读 · 0 评论 -
py工作流分析
py工作流是国内比较好的工作流之一。大概看过它的一些文档,分析一下。1、路由模型 py支持的工作流模式其实并不多,只是支持1到7七种模式而已,其中比较重要的是模式6和模式7,即M选N分支和 M选N聚合,看过它的实现,利用转移线条件来触发转移线,从而触发后续的节点。这样做比较简单,但是同时也存在很多问题,例如在路由非常复杂的情况下,例如多个分支节点的串联,以及并发路由存在多个节点时,这种做法...2008-05-06 17:26:50 · 214 阅读 · 0 评论 -
工作流需求分析
用户的需求大概分为两部分:一部分是整个项目完全基于工作流来搭建开发,这也是很多工作流厂商患有“平台压迫症”的原因;另一部分是将工作流作为业务组件加入已有的项目中,推动业务的“审批”流转。前者的要求显然更高,但也意味着有更多的利润。其实这一部分的用户又可以进一步的细分:一是技术能力比较差的公司,他们通过层层外包接到项目,而又没有实力自己开发,于是想通过采购工作流加上几个刚入门的程序员来完成整个项...2008-05-08 17:41:11 · 805 阅读 · 0 评论 -
工作流流程状态管理及变迁
这是我们(东方易维)工作流产品设计过程中采取的设计:一、流程实例的状态 状态分为5种:实例化、执行中、挂起、手工结束、正常结束。 状态的变迁如下图:二、节点实例的状态状态分为5种:实例化、执行中、挂起、手工结束、正常结束。状态的变迁如下图:三、具体节点的状态 细分:A、人工节点、等待节点这两个节点被触发后存在一个执行...2008-05-26 19:39:49 · 1183 阅读 · 0 评论 -
(Multi-stage Continuous Integration)多阶段持续集成
[b]一、目前的情况[/b]目前我们要进行持续集成的对象是一个有着100人左右的开发团队,他们开发着一套很庞大的系统。整个开发团队划分为多个开发小组进行协同开发,每个开发小组负责2-3个模块的开发,实际这里的模块已经相当于一个中小型系统。各模块所有的类都通过eclipse整体编译在一起,直接放置在WEB-INF/classes下。本地是无法启动整个系统的,需要耗费大量的资源。[b]...2009-05-26 23:08:27 · 268 阅读 · 0 评论 -
数据驱动测试
我们从一个最简单的登录例子开始。最开始我们需要验证在用户名和密码都正确的情况下,能够正常登录系统,我们这样编写测试代码(以下都是伪代码,使用TestNG和Selenium):@Testdef should_login_success_with_exist_username_and_correct_password(){ LoginPage page = user.open(Log...2009-12-05 22:25:11 · 223 阅读 · 0 评论 -
工作流技术基础读后
大概花了三天的时间读完这本书,书本身也不厚,读起来很快。这本书出版于2001年,所以对它也没有抱有很大的期望,但是还不错,特别是前三章,很有些惊喜。后面关于工作流仿真的描述也很到位。但是关于技术实现,则大都略过了。 总结一下里面个人觉得不错的部分。 第一章很不错,强调为什么需要工作流管理系统。 ...2009-02-09 18:03:11 · 162 阅读 · 0 评论 -
使用selenium测试showModalDialog模态对话框
Selenium目前没有提供对IE模态对话框(即通过showModalDialog方法打开的弹出对话框)的处理。原因在于,模态对话框会将父页面的JS挂起,直至对话框处理完毕才会继续执行父页面JS。因为Selenium的底层实现是基于JS的,所以模态对话框会同时将selenium挂起,selenium无法选中模态对话框,直至超时。但是很多系统往往有大量的模态对话框应用。这些应用分为两类:一类是选人、...2009-07-27 21:10:08 · 737 阅读 · 0 评论 -
一家公司发展的胡言乱语
终于一天早上,睁开极不情愿被睁开的眼睛,厌倦了文档、厌倦了没完没了的BUG、需求反复、项目延期,做出一个极为重要的决定:自己干。忽悠到2个人,于是创业开始。第一个项目时间很紧张,是经过层层外包转包而来,尽管利润微薄,但是3个人在一起非常开心,我们做持续集成、做自动化测试,所有问题都经过集体讨论解决,很累,但每个人都很努力,因为大家的目的都是一致的。终于,项目按时完成,我们拿到自己挣到的第一...原创 2010-01-16 23:06:47 · 150 阅读 · 0 评论 -
你服务,你全家才服务
在拥挤的公交车上读完《工作流管理(模型、方法和系统)》,自从搬完家,上班的路途突然变得遥远。这本书确实是按照它的副标题组织的,分别介绍工作流的建模模型、应用工作流开发的方法以及部分商业的工作流产品。对petri网的介绍是这本书的重点,如果想对petri网有个大概的了解而又不愿意接触深奥的数学,那么可以一读。本书随后分析了如何对流程模型进行分析,包括对建模正确性与否的定量分析以及对资源运行效率...2009-02-19 14:18:22 · 106 阅读 · 0 评论 -
关于异常的问与答
今天的问题是关于异常,自然,今天的主角是异常之神。[b]我问:大神,异常到底是个什么东西哩?什么情况下我们需要抛出异常呢[/b]?果然是异常之神,很异常,反问:如果老婆叫你去超市买虾,虾刚好卖光了,你会怎么办?我想都没想,说:给老婆打电话哈!神仙说:这就是异常!我说:不能完成买虾这个任务?神仙说:不在你控制范围内的因素所造成的问题、没有预料到的情况就叫异常。在上面这...原创 2010-09-16 22:34:17 · 113 阅读 · 0 评论 -
讨论一下你觉得一个工作流产品好的标准
工作流现在已经应用的非常广泛了,审批OA等等自然不必多说,许多业务系统里也有大量的应用。前两天的一个项目就是使用工作流将整个项目管理的过程进行整合,包括了前期预算、项目进度管理、合同管理等等。可供选择的工作流也很多,商业的、开源的。那么你是如何评价一个工作流产品的好坏的呢?你的标准是什么?当然,用户也经常会问我这个问题,我的回答是:根据你实际的业务。是的,不管是什么样的工作流,都是...2008-02-22 14:53:41 · 206 阅读 · 0 评论 -
也说炮轰
社区里目前最火的无疑是hax的炮轰《Javascript征途》事件。看这种帖子,总能看出众生相来。比如“我个人觉得你至少也写本书出来,才有资格写这篇文章,不然我觉得你真是够无聊,虽然吹捧之风盛行,但至少有实际产出,先不说质量,至少人家有产量,你呢除了一篇炮轰文章还有什么 ”比如“总之现在,国产书基本无视! ”这种跟帖,每隔一段时间都会冒出来。我买过的国产书,有好多本,影响最深刻...2009-10-05 13:13:10 · 145 阅读 · 0 评论 -
一本好书(Hibernate实战(第2版))
收到这本书已经好久,甚至读完这本书都已经好久,一直想着写个书评,却一直被这事那事拖着,直到今天。我只想说,这是一本好书。关于Hibernate似乎不必说太多。和朋友聊天,朋友说,你对Hibernate熟吗?我说,还好,用了两年了。朋友说,如果10分是满分,你给自己打几分?我认真想了想,6分吧。说实话还真没有底气,会用而已。在此之前,我就看过一本Hibernate的书籍,《深入浅出Hibe...2008-06-22 16:05:13 · 113 阅读 · 0 评论 -
工作流回退模式分析
回退(Rollback WorkItem)回退是工作流参与者对自己“待办任务”(实际是对工作项)的一种操作,即参与者主动回退待办任务列表中的任务到已经执行过的人工节点。为什么要回退?参与者接受任务后,发现不应由自己办理此任务或以前的执行者办理有错误等情况后,需要将此接受的任务回退给以前某个节点的执行者重新办理。回退模式回退的情况实际上是非常复杂的,其中包括...2008-06-24 09:20:21 · 622 阅读 · 0 评论 -
从贫血到充血Domain Model
关于Domain Model的讨论已经非常多了,炒炒冷饭,这里是自己的一些做法。以Workitem(工作流里的工作项)作为例子。最开始的做法:一个实体类叫做Workitem,指的是一个工作项或者称为任务项一个DAO类叫做WorkitemDao一个业务逻辑类叫做WorkitemManager(或者叫做WorkitemService)主要看看WorkitemManager,因为主要逻辑集中在这里pu...2008-07-03 12:01:32 · 142 阅读 · 0 评论 -
工作流之收回
收回收回是工作流参与者对自己“已办任务”(对已完成的工作项)的一种操作,即参与者主动对已办理过的工作项进行重新办理。 为什么要收回?参与者完成任务后,发现自己办理有错误等情况后,需要将此任务收回重新办理。 工作项的参与方式目前有四种方式:共同参与、竞争参与、顺序参与、基于角色的共同参与。下面会针对这四种方式进行讨论。 工作项收回模式...2008-07-15 18:31:02 · 273 阅读 · 0 评论 -
结合spring+hibernate与jdbc的事务
结合spring+hibernate与jdbc的事务问题背景:我们是一家工作流公司,客户采购我们的产品后,将其嵌入其项目中。我们的工作流采用的是spring+hibernate的方式,客户项目则是jdbc直接进行数据库操作。问题:客户在其数据库操作过程中需要调用我们的工作流接口,这样就需要将我们的工作流操作与他们的业务操作置于同一个事务中。我们的服务采用的都是spring的声明式事务,而客户采...2007-10-09 16:52:14 · 175 阅读 · 0 评论 -
js组件的测试,是个问题
用js编写自己的组件,测试一直是个头疼的问题。最开始大量使用alert,firebug出现后天突然蓝了。但是人的欲望总是没有止境的,在面对越来越多的后台数据交互以及特定于不同业务数据不同的展现形式时,仿佛一夜回到解放前。 说说我现在的困境: 目前要做的是工作流的提交页面,也就是对当前办理工作的用户展现后续任务,根据不同的情况由用户选择或是引擎自动计算。这是最简单的情况,后续包括参与者的...2008-08-11 19:06:57 · 174 阅读 · 0 评论 -
执行JavaScript代码,中间有个异步加载过程,结果代码直接执行到下一行
代码如下:[code]var id=$F("id");var bar=new Outlookbar("/treeServlet?kind=com.framework.extcomponent.ui.bizmoduleconfig.tree.MenuImpl&id="+id,"right");bar.expand();var outline = bar.getOutLine(...2006-09-30 17:48:36 · 299 阅读 · 0 评论 -
使用solr搭建你的全文检索
Solr 是一个可供企业使用的、基于 Lucene 的开箱即用的搜索服务器。对Lucene不熟?那么建议先看看下面两篇文档:<o:p></o:p>实战Lucene,第 1 部分: 初识 Lucene:http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/<o:p></o:p>用Lucene加...2007-11-06 17:52:41 · 86 阅读 · 0 评论 -
对流程驱动开发的YY
也许是流程做多了的缘故,所以看起程序开发来一切都是流程或者说都包含流程。个人认为大多数的企业应用(不包括特殊应用,例如文档库、信息资源库、BBS等 等)不过是对数据以一定的样式展现(表单),以一定的逻辑对数据进行操作(业务规则),以及把这些处理数据的过程以一定的流程进行管理(流程)。上面三个 方面分别对应着表单、业务规则和流程。程序开发中则对应于表单引擎、规则引擎和工作流引擎。而这些方面又可以统一...2007-11-12 09:43:42 · 364 阅读 · 0 评论 -
Flex框架Riawave应用以及对AJAX开发框架的思考
Jbpmside要使用Flex开发流程设计器以及管理器,刚好公司的一个内部项目也应用到Flex,大概花了一个礼拜来熟悉和了解Flex。其中发现Flex开发和AJAX开发的很多相通之处,这里把自己对Flex的一些学习心得总结一下。分为三部分,分别是对Riawave框架的介绍、参照Riawave,对自己先前采用的AJAX开发框架的介绍、以及对AJAX前景的一些自己看法。一、Flex框架Riawave的...2009-03-01 22:05:32 · 117 阅读 · 0 评论 -
EXT的事件
EXT将事件分为了两种:自定义事件与浏览器事件。自定义事件:按字面意思就是用户自己定义的事件,这个事件通常与组件相关。并且需要用户根据组件的状态自己触发。相关的类Ext.util.Observable 、Ext.util.Event(Observable.js)。Ext.util.Observable是所有组件(component)的父类,它使得所有的组件都可以任意的添加自定义事件,它...2008-01-17 15:29:53 · 236 阅读 · 0 评论 -
jBPM-side流程设计器功能规划
目标:jBPM-sideProcessDesigner是一个独立的设计器,基于Flex技术。其目的在于既使得程序开发人员能够基于其进行业务流程的建模,同时业务人员也能够基于其进行简单的建模和修改,例如修改节点的顺序、参与者等操作。此外,jBPM-sideProcessDesigner具有很高的可配置性,在流程定义scheme变化的情况下,能够很快的做出适配。即其与具体的流程定义语...2009-03-08 21:57:41 · 171 阅读 · 0 评论 -
BPM向左,工作流向右(一)什么是业务流程
从事工作流以及相关开发已经三年。提到工作流,很多人都会想到BPM,想到业务流程。对于业务流程,我的理解经过了一个过程,从最开始对工作流抱有的不切实际的期望,到对BPM的一些看法,再到目前的趋于实际。有一些感触,也有一些理解。对于业务流程管理而言,我想说的是:BPM向左,工作流向右,都不靠谱,或者说它们实际所能描述的流程和这里的业务流程根本就风牛马不相及,不是一个概念,唯一的相同点是只...2008-08-26 17:43:37 · 223 阅读 · 0 评论 -
一次性能调优的实战
项目情况:是一个大型公司的内部办公系统,该系统有两个和一般企业应用不太一样的特点:一是用户量非常多,人员数达到2W左右,另一个是采用分级管理的形式,各个分公司数据分开管理。我们的定位:我们是作为业务平台的提供商参与这个项目的,我们提供底层的开发平台,系统集成商在此基础上进行二次开发。在项目从开发到部署的过程中遇到了很多的问题,也反映出很多问题。[b]一、怎么回事,跑得比猫还...2008-09-01 12:56:10 · 172 阅读 · 0 评论 -
SNA方案之session炒冷饭
SNA方案中,session的处理是一个重要方面。原帖见这里:http://www.iteye.com/topic/200611原帖里提到的两种方案都需要hack代码。下面是我的方案:1、使用会话cookie保存web服务器产生的sessionid 为什么是sessionid而不是userid,原因在于谁也不知道除去登录外其他人会在httpsession里干些什么2、自定义SessionMap...2008-09-04 14:49:19 · 263 阅读 · 0 评论 -
JbpmSide 流程设计器进度
汇报一下设计器当前进度以及下一阶段主要的开发目标。当前进度主要集中在图像处理方面: 1、采用Riawave,完成了整个设计器图形处理的架构 2、工作流节点的图形建模 3、节点的拖拽以及连线 4、节点、连线的剪贴、复制、删除操作,支持快捷键 5、画板的缩放和Grid显示与否采用的图形类库是Degrafa。下一阶段(2-3周)会实现以下的功能: 1...2009-03-26 22:15:22 · 149 阅读 · 0 评论 -
Zookeeper与paxos算法
一、 zookeeper是什么官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。好抽象,我们改变一下方式,先看看它都提供了哪些功能,然后再看看使用它的这些功能能做点什么。 二、 ...2012-03-22 20:36:21 · 115 阅读 · 0 评论