论文部分内容阅读
摘要:本文分析了基于任务组管理的CoGIS功能安全设计的优缺点,提出在数据传输中采用XML命令消息封装安全权限,并通过协同客户端解析实现的方案。
关键词:CoGIS 功能性安全 XML
Abstract: This paper has analyzed the advantages and disadvantages of CoGIS functional safety design based on task management, and proposed using XML command message encapsulating security permissions in data transmission and through cooperative client to analyze the completed scheme.
Keywords: CoGIS, functional safety, XML
中图分类号:S611文献标识码:A 文章编号:
0 引言
CoGIS定义为:“一组或多组异地的用户,借助计算机及其网络技术,基于地理信息共同协调与合作来完成一项任务”。 [1] 在虚拟的协同工作环境中,感知的是地理信息行为,共享的是地理信息数据。因此,CoGIS对于应用安全的要求要远远高于其他GIS系统。
通常,应用安全分为系统级安全、程序资源访问控制级安全、功能性安全、数据域安全。其颗粒度依次由粗到细。本文仅从功能性安全进行论述。
1基于任务组管理的安全设计
在任务组管理的CoGIS工作中,协同用户依据任务划分被加入到一个任务组中,每个任务组就是一个资源的集合,主要包括协同用户、任务、子任务、共享数据表、规则集、版本等。[2]也就是说,在同一个任务组中,参与协同的用户具有相同的权利和义务,所有的地理信息行为和数据对于组用户来说都是透明的。采用角色访问控制模型即可实现协同GIS中的功能性安全。
协同GIS中的角色可分为三类:协同用户、组管理员和系统管理员。协同用户是协同事务的具体执行者,归属于某一个或多个用户组,其享有对协同工作环境的一般性操作功能,如协同编辑、协同查询和协同空间分析等;工作组管理员负责对协同工作组进行管理,为不同的工作组赋予操作某一个或多个协同事务的权限;系统管理员则实现了用户与角色的增删改查功能。
用户、角色、功能三者之间的关系如下图所示:
图1 协同用户、角色、功能之间的关系
Figure 1 relationship between cooperative user, role and function
这种方案易于理解,所有功能权限在系统入口时都已经进行控制,实现相对容易。其缺点是扩展性不强,一旦协同用户的功能权限需要变更,需要组管理员进行权限配置,或者任务组内部需要实现部分用户的权限控制,则需要系统管理员建立新的用户组。
CoGIS的基础是通信,如果能在传输对象中封装功能权限信息,待协同客户端收到后,在协同事务流程中进行逻辑验证,既可满足功能的安全性要求,又可提高系统的协同感知能力。
2基于XML命令消息的安全设计
目前,协同GIS传输对象的设计大多采用了XML的方式[3][4],其元素主要包括SendInfo和GISInfo。我们可以对其进行修改,加入关于功能性安全的元素。修改后的元素为三个,其一为事务类型ObjectType,指协同客户端所能支持的地理信息行为,如设置当前地图显示范围、缓冲查询、空间分析等;其二为安全信息SecurityInfo,用于功能权限的设置或验证;其三为协同对象CooperativeObject,与事务类型对应,描述了协同事务中需要操作的数据信息。如地图范围的左上角、右下角坐标,标绘符号的线型、颜色等属性。本文中重点论述安全信息的设计。
安全信息的元素如下表所示:
表1 安全信息的元素分析
Password为功能权限的验证码,协同客户端进行解析时,可以判断本地客户端是否存在相同的密码,如果相同则可以进行该事务操作,否则拒绝。密码为空则不进行验证。
SrcUserInfo中的元素为发送者的信息,某些协同事务操作仅发起方才能完成,如协同标绘时,发起方标绘了一个符号,其他協同用户是不能对其进行编辑的。此时,协同客户端可以进行验证。如果本地客户端的用户信息与发起方一致,才能操作。否则拒绝。
DestUserInfo为接收者的信息,通常接收者属于一个任务组或者机构。发送者可以通过系统指定本次协同事务的接收者,可以是一人,也可以是多人。当协同客户端接收到信息后,会将本地客户端的用户信息与之进行对比,如果满足要求,则继续执行,否则拒绝。当接收者信息为空,则默认所有参与协同的用户能够执行该事务。
DestGroupInfo为接收组或者机构的信息。发送者可以指定一个或多个任务组或机构。协同客户端解析过程同上。
对于以上元素,用户可以根据自己的需要进行扩展。在传输过程中,为保证安全,也可以对XML文件进行加密。
3原型实现
笔者基于C#.NET、ArcGIS Engine 9.3、WCF等技术实现了局域网的多用户协同工作原型系统,实现了点、线、面的编辑及文本标注、权限管理等功能,将其应用到测绘数据编辑中,并对功能性安全进行了测试。
通过试验,不同任务组的数据处理人员所具有的协同功能不同,如同一组成员只能浏览本组成员编辑的数据;通过界面设置,同一组成员中只有部分人员能够浏览;某一协同编辑数据后,其他人无法对数据进行修改。总体而言,提高了数据处理人员的协同工作能力,为今后的测绘数据生产提供了一种新的参考模式。
4结论
设计CoGIS的功能性安全时,应该采用角色权限控制与协同客户端事务流程控制混合模式,从安全上更可靠,从配置上更灵活。
CoGIS应用在测绘数据生产时,对共享的数据要求更高,需要在数据域安全方面进一步完善设计。
参考文献
[1]胡雪莲,程承旗,孙永军等。协同GIS—CoGIS概念初探[J]。中国图象图形学报,2003,8(A)(6):715—720
[2]李伟。协同GIS理论模型与技术研究。博士论文,2005。
[3]孙亚琴,闾国年,周良辰 。GIS命令消息在实时协同GIS系统中的应用研究[J]。计算机工程与应用,2009,45(27):1-4。
[4]王文来,吴伟,孙毅中。基于GIS操作驱动的同步协同显示研究。现代测绘,2010年9月,33卷第5期。
关键词:CoGIS 功能性安全 XML
Abstract: This paper has analyzed the advantages and disadvantages of CoGIS functional safety design based on task management, and proposed using XML command message encapsulating security permissions in data transmission and through cooperative client to analyze the completed scheme.
Keywords: CoGIS, functional safety, XML
中图分类号:S611文献标识码:A 文章编号:
0 引言
CoGIS定义为:“一组或多组异地的用户,借助计算机及其网络技术,基于地理信息共同协调与合作来完成一项任务”。 [1] 在虚拟的协同工作环境中,感知的是地理信息行为,共享的是地理信息数据。因此,CoGIS对于应用安全的要求要远远高于其他GIS系统。
通常,应用安全分为系统级安全、程序资源访问控制级安全、功能性安全、数据域安全。其颗粒度依次由粗到细。本文仅从功能性安全进行论述。
1基于任务组管理的安全设计
在任务组管理的CoGIS工作中,协同用户依据任务划分被加入到一个任务组中,每个任务组就是一个资源的集合,主要包括协同用户、任务、子任务、共享数据表、规则集、版本等。[2]也就是说,在同一个任务组中,参与协同的用户具有相同的权利和义务,所有的地理信息行为和数据对于组用户来说都是透明的。采用角色访问控制模型即可实现协同GIS中的功能性安全。
协同GIS中的角色可分为三类:协同用户、组管理员和系统管理员。协同用户是协同事务的具体执行者,归属于某一个或多个用户组,其享有对协同工作环境的一般性操作功能,如协同编辑、协同查询和协同空间分析等;工作组管理员负责对协同工作组进行管理,为不同的工作组赋予操作某一个或多个协同事务的权限;系统管理员则实现了用户与角色的增删改查功能。
用户、角色、功能三者之间的关系如下图所示:
图1 协同用户、角色、功能之间的关系
Figure 1 relationship between cooperative user, role and function
这种方案易于理解,所有功能权限在系统入口时都已经进行控制,实现相对容易。其缺点是扩展性不强,一旦协同用户的功能权限需要变更,需要组管理员进行权限配置,或者任务组内部需要实现部分用户的权限控制,则需要系统管理员建立新的用户组。
CoGIS的基础是通信,如果能在传输对象中封装功能权限信息,待协同客户端收到后,在协同事务流程中进行逻辑验证,既可满足功能的安全性要求,又可提高系统的协同感知能力。
2基于XML命令消息的安全设计
目前,协同GIS传输对象的设计大多采用了XML的方式[3][4],其元素主要包括SendInfo和GISInfo。我们可以对其进行修改,加入关于功能性安全的元素。修改后的元素为三个,其一为事务类型ObjectType,指协同客户端所能支持的地理信息行为,如设置当前地图显示范围、缓冲查询、空间分析等;其二为安全信息SecurityInfo,用于功能权限的设置或验证;其三为协同对象CooperativeObject,与事务类型对应,描述了协同事务中需要操作的数据信息。如地图范围的左上角、右下角坐标,标绘符号的线型、颜色等属性。本文中重点论述安全信息的设计。
安全信息的元素如下表所示:
表1 安全信息的元素分析
Password为功能权限的验证码,协同客户端进行解析时,可以判断本地客户端是否存在相同的密码,如果相同则可以进行该事务操作,否则拒绝。密码为空则不进行验证。
SrcUserInfo中的元素为发送者的信息,某些协同事务操作仅发起方才能完成,如协同标绘时,发起方标绘了一个符号,其他協同用户是不能对其进行编辑的。此时,协同客户端可以进行验证。如果本地客户端的用户信息与发起方一致,才能操作。否则拒绝。
DestUserInfo为接收者的信息,通常接收者属于一个任务组或者机构。发送者可以通过系统指定本次协同事务的接收者,可以是一人,也可以是多人。当协同客户端接收到信息后,会将本地客户端的用户信息与之进行对比,如果满足要求,则继续执行,否则拒绝。当接收者信息为空,则默认所有参与协同的用户能够执行该事务。
DestGroupInfo为接收组或者机构的信息。发送者可以指定一个或多个任务组或机构。协同客户端解析过程同上。
对于以上元素,用户可以根据自己的需要进行扩展。在传输过程中,为保证安全,也可以对XML文件进行加密。
3原型实现
笔者基于C#.NET、ArcGIS Engine 9.3、WCF等技术实现了局域网的多用户协同工作原型系统,实现了点、线、面的编辑及文本标注、权限管理等功能,将其应用到测绘数据编辑中,并对功能性安全进行了测试。
通过试验,不同任务组的数据处理人员所具有的协同功能不同,如同一组成员只能浏览本组成员编辑的数据;通过界面设置,同一组成员中只有部分人员能够浏览;某一协同编辑数据后,其他人无法对数据进行修改。总体而言,提高了数据处理人员的协同工作能力,为今后的测绘数据生产提供了一种新的参考模式。
4结论
设计CoGIS的功能性安全时,应该采用角色权限控制与协同客户端事务流程控制混合模式,从安全上更可靠,从配置上更灵活。
CoGIS应用在测绘数据生产时,对共享的数据要求更高,需要在数据域安全方面进一步完善设计。
参考文献
[1]胡雪莲,程承旗,孙永军等。协同GIS—CoGIS概念初探[J]。中国图象图形学报,2003,8(A)(6):715—720
[2]李伟。协同GIS理论模型与技术研究。博士论文,2005。
[3]孙亚琴,闾国年,周良辰 。GIS命令消息在实时协同GIS系统中的应用研究[J]。计算机工程与应用,2009,45(27):1-4。
[4]王文来,吴伟,孙毅中。基于GIS操作驱动的同步协同显示研究。现代测绘,2010年9月,33卷第5期。