法律状态公告日
法律状态信息
法律状态
2016-03-30
授权
授权
2014-04-16
实质审查的生效 IPC(主分类):G06F17/30 申请日:20131211
实质审查的生效
2014-03-19
公开
公开
技术领域
本发明涉及一种计算机软件数据管理方法,采用本地存储与远程服务 器存储相结合、关系型数据库与版本管理系统相结合的数据管理方法,用 于高可信软件协同开发环境的数据存储与管理。
背景技术
高可信软件(如航空、航天、汽车电子领域的嵌入式软件等)协同开 发环境要求软件数据(如需求文档、设计文档、软件模型、源代码、目标 码、测试数据、评审记录、相关规范指南文档等)要求将不同格式、不同 来源的数据进行统一存储和管理,实现开发团队间的数据共享,同时要求 能够对数据的版本、状态进行管理访问且能够对用户访问权限进行控制, 以对高可信软件开发过程提供支持。
现有共享数据管理方法主要有四类:一是共享文件或目录,这种方法 利用操作系统提供的网络共享工具即可实现,但无法实现版本管理,不适 用于软件开发;二是通过数据库进行数据共享,例如上海华虹NEC电子有 限公司的200610116713.X号专利“测试数据管理系统”、中国移动通信集 团云南有限公司的200810130320.3号专利“一种网络资源数据管理方法 及系统”等,这类方法适于管理结构化的共享数据,并可利用数据库方便 地进行权限管理和版本管理,但不适用于软件开发过程中可能产生的各类 非结构化、长度不定的共享数据;三是广泛用于代码管理的版本管理系统, 如SVN、VSS、中兴通讯股份有限公司的200710088213.4号专利“软件 版本管理方法及系统”、联想(北京)有限公司的200910092893.6号专利 “一种数据备份的版本管理方法及装置”,这类系统以文件集合的版本为管 理对象,实现“复制-编辑-合并”的过程,种类方法强调数据的共享和版 本的管理,而不关注对数据访问权限和数据状态的管理,不符合高可信软 件开发中对文件版本与状态严格控制的要求;第四类是各类云服务所采用 的同步技术,如微软公司的201210019191.7号专利“基于云的主数据管 理”、清华大学的201010184346.3号专利“一种基于云计算环境的个人数 据管理方法”、中国电力科学研究院的201210499413.X号专利“一种基于 Hadoop的分布式云存储自动分级数据管理系统”等,这类方法利用云技 术实现网络上的数据共享,直接同步云端与客户端的文件,但对网络通信 依赖较强,通信数据量较大,同时也不便于版本管理、权限控制等功能的 实现。
发明内容
本发明解决的问题是:解决了高可信软件协同开发环境中的数据存储 与管理问题,实现软件数据共享、数据访问权限管理、数据状态与数据版 本管理等要求,同时克服网络存储的访问速度慢的问题,满足软件开发工 具对数据访问的性能需求。结合关系型数据库和版本管理系统的优势,实 现了高效的数据共享。
为达到上述目的,本发明的技术方案如下。
如图1所示,本发明所提出的数据管理方法要求建立数据存储库和本 地工作区两个部分。
1.数据存储库部署于远程(相对于数据管理终端用户所使用的计算 机),基于关系型数据库和版本管理系统建立,并对关系型数据库和版本管 理系统的数据访问操作进行封装,便于客户端调用。
其中,关系型数据库可利用SQL Server、MySQL等商业或开源的数 据库服务器系统建立;版本管理系统是指以文件形式存储和管理数据的系 统,可基于SVN、CVS、GIT等开源文件版本管理系统建立。
版本管理系统存储各项软件数据的原始数据文件;关系型数据库对软 件数据文件的信息、状态、用户权限、数据文件之间的关联等信息进行存 储和管理,一些适于存入关系型数据库的软件数据也在其中存储(例如需 求项、测试用例、需求覆盖表等)。
数据存储库中的数据按照项目进行组织,每个项目下包含若干数据项, 数据项包含子数据项或文件和文件夹。
数据存储库提供数据访问接口,对关系型数据库和版本管理系统提供 的数据访问接口进行封装,并对用户所需的软件数据进行组织和结构化封 装,便于客户端调用和访问,同时实现对访问权限的控制。
2.在终端用户所使用的计算机本地硬盘上建立工作区,存储用户当前 使用的数据。
本地工作区是用户在本地硬盘指定的文件夹,通过该文件夹下的特定 文件记录该文件夹内所有子文件夹和文件的类型和状态,以及与远程数据 存储库数据的对应关系。
本地工作区按照用户的权限和要求,下载指定项目的数据列表;当用 户需要访问特定文件时,检查本地工作区该文件与服务器端该文件的版本, 按需要下载该文件,并将该文件的版本等信息在本地工作区状态文件中进 行记录。
3.本地工作区内的数据与数据存储库对应的数据实现被动同步。
所谓被动同步是指数据的同步只能由用户主动发出同步操作或者对应 数据被特定软件工具访问而发出同步操作来触发。
同步操作包括本地工作区的数据向数据存储库上传的操作,以及从数 据存储库向本地工作区下载的操作。
从数据存储库中下载数据时,操作流程如图2所示:首先检查用户访 问该数据的权限;允许下载的情况下,则需要提供访问数据的类型,即只 读和修改。若只读该数据,将下载该数据,并订阅该数据的更动通知,同 时检查数据是否被其他用户标记为“修改中”,若标记则提示用户所下载数 据将被其他用户修改。若访问数据的类型为修改,则首先检查数据是否被 其他用户标记为“修改中”,若标记,则拒绝访问;若未标记,则通知已下 载该数据的用户该数据将被修改,并将该数据标记“修改中”。
用户从本地工作区向数据存储库上传数据时,操作流程如图3所示: 首先判断上传数据操作的类型(新增/修改);若是新增数据,则要向数据 存储库提供数据类型、所属项目、提交用户等信息。若是修改数据,所上 传的数据必须对应于之前被该用户标记为“修改中”的数据;新上传的数 据将覆盖原有被标记为“修改中”的数据,原有数据通过版本管理系统的 版本记录功能保存;向订阅该数据更动通知的用户发出通知。
4.对数据存储库内数据的删除通过直接对数据存储库操作来实现,不 涉及本地工作区与数据存储库的同步;对本地工作区数据的删除,仅执行 对本地工作区数据的删除,不删除远程数据存储库中对应的数据。
本发明与现有技术具有以下优点:
(1)通过数据存储库实现了软件数据的多用户共享;
(2)通过本地工作区实现软件数据的本地缓存,提高了对数据访问和 操作的速度;
(3)实现了数据访问权限控制;
(4)实现了数据状态与版本的管理;
(5)提供了共享数据更动通知机制,解决了多用户使用的数据状态不 一致的问题。
附图说明
图1是本发明系统组成示意图;
图2是本发明下载数据流程图;
图3是本发明上传数据流程图;
图4是本发明中本地工作区文件夹状态信息文件示例。
具体实施方式
本发明基于商业或开源的关系型数据库系统、版本管理系统,提供了 一种本地与远程相结合的共享数据管理方法,应用本方法的主要步骤包括: 建立数据存储库的文件库部分、建立数据存储库的关系型数据库部分、研 制并部署数据存储库服务器软件、研制并部署数据管理客户端软件。以下 实施例应用本发明的方法实现了一个数据管理系统。
如图1所示,本发明具体实现如下;
1.建立数据存储库的文件库部分
采用SVN建立数据存储库的文件库部分。SVN服务器可采用Visual SVN建立;客户端可采用SharpSVN实现对SVN的访问(SharpSVN 是.Net平台上的一个开源SVN项目,基于SharpSVN可以方便的实现对 SVN服务器的访问和操作)。
数据项实体(文件、文件夹等)在SVN中分项目存储,其存储项目下 的存储路径与项目中的路径一致。因此在需要使用数据项的实体时,可以 数据库中记录的数据项信息,方便地获取到文件在SVN中的存储路径。
SVN服务器具有独立的用户管理机制,采用用户名映射的方式来实现 本数据管理系统用户与SVN用户之间的统一,具体地,将预先在SVN服 务器上建立1000个用户(user0001~user1000),设置并保存好每个用 户的用户名和密码。在数据管理系统中添加用户时,将自动为新用户分配 SVN用户,该用户对SVN数据的访问将通过所分配的SVN用户进行。
2.建立数据存储库的关系型数据库部分
采用SQL Server来建立数据存储库的数据库部分。利用关系型数据 库的存储机制,对软件数据的信息按照以下五个部分进行存储和管理。
第一部分记录“数据项”,即记录数据存储库中的文件和文件夹。建 立以下表结构用于描述每次“上传”的细节内容:
数据项标识:作为数据项的唯一标识;
所属项目:记录此数据项所属的项目;
数据项路径:记录此数据项的存储路径;
数据项类型:记录此数据项的类型;
创建用户:记录此资源的创建用户;
顺序号:记录此资源在当前路径的顺序号;
状态标记:记录是否有用户正在对此数据项进行修改;
权限:记录对此数据项的各类用户的权限配置的标识;
数据项最后操作:记录对此数据项的最后一次操作的标识。
第二部分记录“操作”,即对用户的数据访问进行记录。建立以下表 结构用于描述每次的“操作”:
操作人:记录操作的发起用户;
操作时间:记录操作的发起时间;
操作类型:记录操作的类型(增、删、改、查等);
操作工具:记录客户端发起此操作的工具;
操作工具调用方式:记录操作工具的调用方式信息(如用户手动调 用、批处理调用或流程调用等);
备注:记录此次操作的描述信息。
第三部记录用户信息。建立以下表结构用于描述用户信息:
用户标识:作为用户的唯一标识;
用户信息:用户姓名、职位、头衔等信息;
用户分组:记录用户所在用户组集合;
用户SVN账号:用于记录SVN账号。
第四部分记录用户组。建立以下表结构描述用户组:
用户组标识:作为用户组的唯一标识;
用户组类型:记录用户组的分类。
第五部分记录权限设置信息。建立以下表结构:
权限设置标识:作为权限设置的唯一标识;
权限设置类型:记录权限设置的类型(数据项访问权限设置、数据 表访问权限设置、客户端操作权限设置等);
权限设置对应用户组:记录本权限设置所适用的用户组;
权限设置项目:记录权限的项目(如数据项、数据表、客户端项目 等);
项目权限:记录对权限设置项目的权限。
例如:一个权限设置项(记为RC1)中,对应用户组设置为“XX 软件测试人员”,权限设置项目是“数据项”,项目权限为“读”。 数据存储库中的“XX软件需求规格说明.doc”的权限中包含的此 权限设置项,则XX软件测试人员这一用户组内的用户对该doc文 件具有只读的权限。
通过以上数据结构,可以方便的获取每个数据项的信息。在平台内访 问数据项信息时而未使用到其实体时,将只通过数据库查询获取。
3.研制并部署数据存储库服务器软件
数据存储库软件作为服务器程序运行于服务器端,该软件实现以下功 能:
(1)封装对SQL Server和SVN服务器的数据访问操作,向客户端 提供访问数据存储库的统一接口,用以查询、下载、上传、删除、修改、 新增各类数据;
(2)提供网络服务,接收对数据存储库进行数据访问的网络请求并进 行处理和响应;
(3)封锁SQL Server、SVN服务器的网络访问端口,确保数据存储 库中数据的安全性。
开发实现上述服务器程序,并在服务器上运行。
4.研制并部署数据管理客户端软件
数据管理客户端软件对本地工作区进行管理,并向用户提供数据访问 界面,实现以下功能:
(1)建立本地工作区;
(2)提供界面供用户选择需要访问的项目;
(3)从数据存储库中读取用户选中项目的目录结构和文件列表,在本 地工作区中建立相应的目录结构;
(4)在本地工作区内的每个文件夹下创建并维护XML格式的文件夹 状态信息文件,对此文件夹及所包含的文件的状态信息进行记录。
图4为本地工作区文件夹状态信息文件的示例,包括文件夹的状态 信息和所包含文件的状态信息两部分内容。其中文件夹状态信息部分包括 以下内容:
文件夹类型:通过FolderInfo字段Type属性值记录;
文件夹创建用户:通过FolderInfo字段User属性值记录;
创建时间:通过FolderInfo字段CreateTime属性值记录;
创建类型:记录文件夹是从远程数据存储库下载,还是本地 直接建立;通过FolderInfo字段CreateType属性值记录;
修改状态:记录文件夹信息是否被修改;通过FolderInfo字 段Modified属性值记录;
远程数据项标识:此文件夹如果是远程下载,记录远程数据 存储库中对应数据项的标识;通过FolderInfo字段 RemoteDataID属性值记录。
文件夹包含文件的状态信息由FileList字段下的若干File字段记 录,每个File字段对应该文件夹下的一个文件,具体记录以下信息:
文件名:由File字段的name属性值记录;
文件类型:由File字段的Type属性值记录;
文件创建用户:由File字段的User属性值记录;
创建时间:由File字段CreateTime属性值记录;
创建类型:记录文件是从远程数据存储库下载,还是本地直 接建立;由File字段CreateType属性值记录;
更改标记:若是远程下载的文件,下载后是否被更改;若是 本地建立的文件,标记为true;由File字段Modified属性值 记录;
更改时间:记录最后更改该文件的时间;由File字段 ModifyTime属性值记录;
远程数据项标识:如果是远程下载,记录远程数据存储库中 对应数据项的标识;由File字段RemoteDataID属性值记录;
描述:记录一个对文件进行描述的字符串;由File字段 Description属性值记录。
(5)提供封装数据项、项目、用户、用户组、权限配置等数据的数据 结构及对相应数据结构的操作函数接口,供第三方软件对数据库进行访问。
开发实现上述功能的客户端,并在用户本地计算机运行,实现用户对 数据的操作。这一客户端也可作为一个模块,加载到某一集成环境中(如 高可信软件集成开发环境),为集成环境提供数据存储和管理的支持。
本发明未详细阐述部分属于本领域公知技术。
机译: 应用软件和数据管理方法,管理系统以及用于其的瘦客户端,管理服务器和远程计算机
机译: 应用软件和数据管理方法,管理系统以及用于其的瘦客户端,管理服务器和远程计算机
机译: 配置用于在远程服务器和本地工业设备之间进行数据通信的远程服务器和远程服务设备