关于并发锁的设计问题
大家好,今天刚到Jdon,以后多多关照啊^_^
今天碰上个设计问题,在这请教了。
问题背景:
1 项目是政府办公自动化系统,涉及到工作流。在办公流程中,会出现各种并发的任务。(比如:一份公文的审批,需要多个领导的审批意见,这些领导都对公文修改的权利)
2 需求: 保证公文的数据完整,需要对并发任务涉及的公文进行访问控制,但有A申请办理公文时,如果有人正在办理,则提示“有人正在办理”,阻止A进入办文流程。
3 方案: 用锁机制。
我现在考虑的问题主要有几个:
1 被锁的对象:
粒度问题:现在的需求是对某个办文流程进行加锁, 我希望对被锁对象进行抽象, 使锁与被锁对象解偶。能是锁支持对不同粒度对象的控制(比如:一整个业务流程对象、 流程中的一个步骤对象、 实体对象、 对象的某一个方法等 )
2 加锁、解锁时机设计:
主要考虑问题是:如何在尽量不修改原代码的情况下,在逻辑、流程的某个位置加入锁管理的逻辑。