发明名称 一种图案协同设计中的复杂加锁方法
摘要 本发明公开了一种图案协同设计中的复杂加锁方法。在分布式协同编辑系统中,为了防止并行操作中出现冲突,常常用到加锁的机制。本发明是一种不但能够给对象加锁,而且能够给区域加锁的加锁方法。在这种加锁方法下,用户可以自由的选择给一个图案对象加锁或者给一个工作区域加锁。这是一种细粒度和粗粒度的结合,既有利于减少加锁时系统的负载,又有利于方便用户的操作。
申请公布号 CN100346341C 申请公布日期 2007.10.31
申请号 CN200510060796.0 申请日期 2005.09.16
申请人 浙江大学 发明人 陈纯;卜佳俊;杨建旭;姜波
分类号 G06F17/50(2006.01);G06F9/46(2006.01) 主分类号 G06F17/50(2006.01)
代理机构 杭州求是专利事务所有限公司 代理人 林怀禹
主权项 1.一种图案协同设计中的复杂加锁方法,其特征在于:1)用户设计图案过程中,图形对象与设计区域存在以下关系:定义1:半包围锁定给定一个图形对象和一个区域锁,当区域锁的轮廓包围对象的一部分时,图形对象与区域锁二者共同所处的状态称作半包围锁定;定义2:全包围锁定给定一个图形对象和一个区域锁,当区域锁的轮廓包围对象的全部时,图形对象与区域锁二者共同所处的状态称作全包围锁定;定义3:相关包围锁定当用户锁定一个区域时,用户不但同时锁定处于全包围锁定状态的对象,并且也同时锁定处于半包围锁定状态的对象,而不是只锁定其一部分;这样的锁定称作相关包围锁定;定义4:相关包围对象集合REOS给定一个用户的区域锁,所有与该区域锁处于相关包围锁定状态的图形对象都属于REOS;2)图案设计用户UserK拥有的锁权限是一个二元组{LockSetkregion,LockSetkobject},其中:LockSetkregion是Userk拥有的区域锁集合,该集合中的每一个元素由两部分组成,其一是Userk拥有的区域本身,其二是该区域的相关包围对象集合REOS;LockSetkregion的表示形式如下:{[Region1k,REOSregion1k(Object11k,Object12k,Object13k…)],[Region2k,REOSregion2k(Object21k,Object22k,Object23k…)]…}每一项的上标表示这个区域或对象的所有者;LockSetkobject是Userk拥有的独立对象锁集合,这里的独立对象锁所指的是这个对象锁不属于任何一个区域锁;3)重复锁定的处理方法:a.当用户锁定一个对象之后又锁定一个区域,而这个区域全包围或半包围这个锁定的对象:系统将提示用户是否把该对象的锁权限加入该区域;b.当用户锁定一个区域之后又锁定另一个区域,而这两个区域是有重叠的部分:允许同一用户锁定重叠的区域;c.当用户锁定一个区域及其对象,之后用户释放了其中一些对象,一段时间后用户又试图对它们加锁:系统将提示用户或者把该对象的锁权限加入该区域,或者独立为一个对象锁;d.当用户锁定一个对象之后又锁定该对象:忽略第二次锁定;e.当用户锁定一个区域之后又锁定该区域:忽略第二次锁定;4)限制用户操作的处理方法:a.当一用户锁定一个对象:其他用户不可以对该对象进行编辑操作;b.当一用户锁定一个区域:其他用户不可以移动对象进入该区域,其他用户新建的对象与该区域不能处于的半包围锁定或全包围锁定状态;其他用户不可以对区域锁定的对象进行编辑操作;其他用户锁定的区域不可以与该区域有相交的部分;5)特殊情况的处理方法:存在这样一种情况,用户A的区域锁锁定一系列对象,用户B此时试图编辑这一系列对象中的单个对象Objecta;A只释放Objecta的权限;存在另一种情况,用户A的区域锁已经锁定一系列对象,用户B此时试图锁定另一个区域,而这个区域与Objecta处于相关包围锁定状态,采取处理是:Objecta的锁权限归属于A,允许A操作Objecta在B中移动的方式;加入B对Objecta的可等待机制。
地址 310027浙江省杭州市西湖区浙大路38号