嵌入式网络设备的虚拟化数据访问系统及方法与流程

文档序号:11734545阅读:218来源:国知局
嵌入式网络设备的虚拟化数据访问系统及方法与流程
本发明涉及嵌入式网络设备,特别涉及一种嵌入式网络设备的虚拟化数据访问系统及方法。

背景技术:
嵌入式设备是一种资源稀缺平台,一般用于实现单一的功能。但随着硬件技术的革新,平台化的、可二次开发的嵌入式网络设备平台已经实现,但在嵌入式设备开发中,一旦不限于单一功能,业务应用系统的数目便会增加,数据的访问便成了性能和资源的瓶颈。在嵌入式网络设备中,受限于硬件资源,平台多业务应用间数据访问的时效性、稳定性很难得到保证,特别是上层应用与底层硬件关系比较紧密的嵌入式网络设备中,给嵌入式网络设备的业务应用系统开发添加了诸多负担。

技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供一种嵌入式网络设备的虚拟化数据访问系统,其可以实现在嵌入式网络设备上向多个业务应用系统提供统一的虚拟化数据访问服务接口和方法,有效提高嵌入式网络设备数据存取的一致性和时效性,有助于提升嵌入式网络设备数据服务的可扩展性。本发明的另一目的在于,利用上述系统在嵌入式网络设备上向多个业务应用系统提供统一的虚拟化数据访问方法。为了达到上述第一个目的,本发明采用以下技术方案:嵌入式网络设备的虚拟化数据访问系统,包括数据存储子系统、数据服务子系统和数据业务接口,所述数据业务接口通过数据服务子系统与所述数据存储子系统连接;所述数据存储子系统位于所述虚拟化数据访问系统的底层,所述数据业务接口位于所述虚拟化数据访问系统的顶层;所述数据业务接口包括相互连接的数据封装与解释模块和服务调用接口模块;所述数据封装与解释模块接收业务应用系统的数据服务请求,按照通信报文结构封装数据;所述数据服务子系统包括数据服务适配器、数据服务日志模块和数据服务实现模块,所述数据服务适配器、数据服务日志模块和数据服务实现模块两两相互连接;所述数据存储子系统包括相互连接的数据接口模块与数据存储模块;所述数据业务接口中的服务调用接口模块与所述数据服务子系统的数据服务适配器连接,所述数据服务子系统的数据服务实现模块与所述数据存储子系统的数据接口模块连接。优选的,所述数据服务子系统中数据服务实现模块包含若干个业务应用数据服务实现子模块。更进一步的,所述业务应用数据服务实现子模块在虚拟化数据访问系统启动时以模块化的形态静态方式加载或在虚拟化数据访问系统运行阶段以动态方式加载。更进一步的,所述通信报文依次由系统报头、模块报头和模块数据三个部分组成;所述系统报头依次由模块标识、状态码、保留字段和报文总长度组成;所述模块报头依次由模块版本号、操作号、保留字段和模块数据类型标识组成,所述模块数据中包含了读取或写入的实际数据。更进一步的,所述数据存储子系统中的数据存储模块包含若干个数据容器,所述数据容器与所述业务应用数据服务实现子模块一一对应,所述数据容器由若干个数据存储单元组成,所述数据存储单元分为正在使用的数据存储单元和空闲的数据存储单元,所述正在使用的数据存储单元通过数据链接表方式组成工作链表,所述空闲的数据存储单元通过数据链表方式组成空闲链表。更进一步的,所述数据存储单元包括索引号和键值,所述索引号为由模块标识和模块数据类型通过哈希函数计算得到的存储数据的索引序号,所述键值用于存储应用数据。为了达到上述第二个目的,本发明采用以下技术方案:嵌入式网络设备的虚拟化数据访问方法,包括以下步骤:(a)启动虚拟化数据访问系统;(b)数据业务接口接收来自业务应用系统的数据服务请求,并由数据封装与解释模块按照通信报文结构对来自业务应用系统的服务请求进行封装,再由服务调用接口模块将通信报文传送给数据服务子系统的数据服务适配器处理;(c)数据服务子系统的数据服务适配器校验通信报文的系统报头是否正确;若校验正确,则解析出通信报文的模块报头,然后按照通信报文的模块报头,将通信报文交由数据服务实现模块中相应的业务应用数据服务实现子模块处理;最后由业务应用数据服务实现子模块传送给数据存储子系统进行处理;其中数据服务日志模块记录操作和运行信息;(d)数据存储子系统的数据接口对通信报文的模块数据格式进行校验;若校验正确,则将通信报文传递给数据存储模块,数据存储模块根据通信报文的模块标识,选择对应的数据容器,再计算出索引号;若业务应用系统的数据服务请求为写入数据请求,则将通信报文中的模块数据作为键值,与索引号一起写入到对应的数据容器中,然后数据存储子系统将写入结果返回给数据服务子系统;若业务应用系统的数据服务请求为读取数据请求,则根据索引号,在对应数据容器中找到对应的键值,然后将键值复制到通信报文的模块数据中,将通信报文与读取结果状态一起返回给数据服务子系统;(e)数据服务子系统的业务应用数据服务实现子模块将结果返回给数据服务适配器;(f)数据服务适配器将返回执行结果传送给数据业务接口;数据业务接口的服务调用接口模块接收返回结果,并由数据封装与解释模块对返回结果进行解释,将解释后的数据返回给业务应用系统;优选的,所述步骤(a)中,所述虚拟化数据访问系统的启动包括如下操作:首先初始化数据存储模块的存储区域,将数据存储模块初始化为若干大小不等的数据容器;接着数据服务子系统启动数据服务日志模块;然后将设置为静态加载的业务应用数据服务实现子模块以模块化的形式进行静态加载。优选的,所述步骤(d)中写入结果为数据写入成功或数据写入失败;读取结果为数据读取成功或数据读取失败。优选的,所述步骤(d)中,若业务应用系统的服务请求为写入数据请求时,则数据存储模块首先在对应数据容器的空闲链表上取出一个大小合适的数据存储单元,尝试锁定该数据存储单元,加锁成功后,将索引号和通信报文中的模块数据存放到数据存储单元中,并将该数据存储单元从空闲链表更改到工作链表中;所述步骤(d)中,若业务应用系统的服务请求为读取数据请求时,则根据索引号,在对应数据容器的工作链表上找到对应键值的数据存储单元;然后将该数据存储单元的键值复制到通信报文的模块数据中。所述步骤(d)中在读取数据时,每个数据容器中有一个或多个进程进行读取;所述步骤(d)中在写入数据时,每个数据容器中有一个进程进行写入,当数据容器有写入操作时,对该数据容器的整个数据块加上写锁;当写入数据操作冲突无法执行操作时,数据存储子系统以数据写入失败状态返回此次操作,并由数据服务子系统的服务日志模块记录下操作冲突情景,业务应用系统收到返回结果后,可以从失败状态信息得知失败原因,并由业务应用系统决定是否再次执行操作。本发明相对于现有技术具有如下的优点及效果:(1)本发明系统在嵌入式网络设备上向多个业务应用系统提供了统一的虚拟化数据访问服务接口和方法,避免了由嵌入式网络设备上的各个业务应用系统去设计实现各自公共数据的访问系统,减少了业务应用系统开发者在嵌入式网络设备数据访问上的开发负担,有效提高了嵌入式网络设备数据存取的一致性。(2)本发明嵌入式网络设备的虚拟化数据访问系统中,每个业务应用系统在虚拟化数据访问系统中都有一个对应的业务应用数据服务实现子模块和数据容器,各个业务应用系统的数据访问方法在虚拟化数据访问系统中是相互隔离的,因此不同业务应用系统在虚拟化数据访问系统中互不干扰,不同业务应用系统的开发者可按需在嵌入式网络设备的虚拟化数据访问系统中添加各自的数据访问方法来实现,提高了本发明数据服务的可扩展性。本发明数据存取的效率主要在于将数据保存在数据存储子系统的数据存储模块中,存取数据方式较为简洁,因此数据存取的效率较高,提高了本发明数据存取的时效性。(3)本发明系统中的数据容器在写入数据时,每个数据容器只允许有一个进程进行写入,当数据容器有写入操作时,对该数据容器的整个数据块加上写锁;有效避免了其它进程对同一数据块的写入导致数据冲突的现象。附图说明图1是本发明系统的组成结构框图。图2是本发明系统中通信报文的组成结构图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。实施例如图1所示,本实施例公开了一种嵌入式网络设备的虚拟化数据访问系统,包括数据存储子系统、数据服务子系统和数据业务接口,数据业务接口通过数据服务子系统与数据存储子系统连接;数据存储子系统位于虚拟化数据访问系统的底层,数据业务接口位于虚拟化数据访问系统的顶层;数据业务接口是本实施例嵌入式网络设备的虚拟化数据访问系统提供给业务应用系统的数据业务访问接口;其中数据业务接口包括相互连接的数据封装与解释模块和服务调用接口模块;数据封装与解释模块的一个作用是:接收业务应用系统的数据服务请求,按照通信报文结构封装数据服务请求,并将封装后的通信报文交由服务调用模块发送;另一个作用是:按照通信报文结构解释有服务调用接口模块接收到的数据,并发送给业务应用系统。数据服务子系统由数据存储子系统提供数据存储支持,向数据业务接口提供数据服务的注册、数据服务的实现和数据服务的监控,其中数据服务子系统包括数据服务适配器、数据服务日志模块和数据服务实现模块,数据服务适配器、数据服务日志模块和数据服务实现模块两两相互连接;本实施例数据服务子系统的数据服务适配器接受来自业务应用系统通过数据业务接口的服务请求,根据数据业务接口的请求适配特定的服务,不同的服务可以由服务名或服务标识来唯一标识,对应于数据存储子系统中不同的数据容器。本实施例数据服务子系统的数据服务日志模块统计各项应用服务的运行信息,包括了各类调试信息、运行状态信息等,主要用于在故障或升级设备时查看系统的运行流水。本实施例数据服务子系统的数据服务实现模块包含10个业务应用数据服务实现子模块,业务应用数据服务实现子模块是各个业务应用系统在数据服务子系统中对各自数据访问抽象接口的具体实现,不同的上层业务应用对应不同的业务应用数据服务实现子模块,每个业务应用系统在虚拟化数据访问系统中都有一个对应的业务应用数据服务实现子模块和数据容器;其中数据访问抽象接口是指对数据访问方式的抽象,对二进制数据、字符串数据及其他类型数据的操作都被整理为一组操作方法,作为虚拟方法由各个业务应用数据服务实现子模块去继承与实现。业务应用数据服务实现子模块按照不同的启动方式设置,可在系统启动时以模块化的形态静态方式加载,或在系统运行阶段以动态方式加载。数据存储子系统包括相互连接的数据接口模块与数据存储模块;其中数据接口模块是数据存储子系统提供的数据访问接口;数据存储模块为业务应用系统写入的数据提供了存储空间及存储了业务应用系统需要读取的数据。其中本实施例数据存储模块中包含10个数据容器,每个数据容器由100个100字节到10K字节大小不等的数据存储单元组成。数据存储单元分为正在使用的数据存储单元和空闲的数据存储单元,正在使用的数据存储单元通过数据链接表方式组成used_list链表,空闲的数据存储单元通过数据链表方式方式组成free_list链表。初始都未使用时,全部数据存储单元链接在free_list链表。数据存储单元包括索引号和键值,索引号为由模块标识和模块数据类型通过哈希函数计算得到的存储数据的索引序号。本实施例数据业务接口中的服务调用接口模块与数据服务子系统的数据服务适配器连接,数据服务子系统的数据服务实现模块与数据存储子系统的数据接口模块连接。本实施例嵌入式网络设备的虚拟化数据访问系统的配置包括分配给数据存储模块内存大小,确定数据容器及其数据存储单元的大小与个数,确定数据服务子系统加载哪些业务应用数据服务实现子模块以及数据服务日志模块记录哪些信息。如图2所示,本实施例中通信报文依次由4个字节的系统报头、4个字节的模块报头和模块数据三个部分组成;系统报头依次由4位的模块标识、4位的状态码、8位的保留字段和16位的报文总长度组成,其中模块标识唯一标识了数据存储子系统中的数据存储模块,状态码指明了请求调用的执行情况,报文总长度为整个通信报文的长度;模块报头依次由4位的模块版本号、4位的操作号、8位的保留字段和16位的模块数据类型标识组成,其中模块版本号指明模块的版本,便于模块的升级,操作号指定了对存储数据的执行何种操作,如读取或写入,模块数据类型标识指定了数据存储子系统中存储的数据类型.模块数据中包含了读取或写入的实际数据,其长度为0~65531字节。本实施例公开了一种基于上述嵌入式网络设备的虚拟化数据访问系统的嵌入式网络设备的虚拟化数据访问方法,包括如下步骤:(a)启动虚拟化数据访问系统;首先初始化数据存储模块的存储区域,将数据存储模块初始化为若干大小不等的数据容器;接着数据服务子系统启动数据服务日志模块;然后将设置为静态加载的业务应用数据服务实现子模块以模块化的形式进行静态加载。(b)数据业务接口接收来自业务应用系统的数据服务请求,并由数据封装与解释模块按照通信报文结构对来自业务应用系统的服务请求进行封装,再由服务调用接口模块将通信报文传送给数据服务子系统的数据服务适配器处理;(c)数据服务子系统的数据服务适配器校验通信报文的系统报头是否正确;若校验正确,则解析出通信报文的模块报头,然后按照通信报文的模块报头,将通信报文交由数据服务实现模块中对应的业务应用数据服务实现子模块进行数据合法性检查和数据整理;最后由业务应用数据服务实现子模块传送给数据存储子系统进行处理;其中数据服务日志模块记录操作和运行信息;(d)数据存储子系统的数据接口对通信报文的模块数据格式进行校验;若校验正确,则将通信报文传递给数据存储模块,数据存储模块根据通信报文的模块标识,选择对应的数据容器,再计算出索引号;若业务应用系统的数据服务请求为写入数据请求,则数据存储模块首先在对应数据容器的空闲链表上取出一个大小合适的数据存储单元,尝试锁定该数据存储单元,加锁成功后,将索引号和通信报文中的模块数据存放到该数据存储单元中,并将该数据存储单元从空闲链表更改到工作链表中;然后数据存储子系统将写入结果返回给数据服务子系统;其中写入结果为数据写入成功或数据写入失败。若业务应用系统的数据服务请求为读取数据请求,则根据索引号,在对应数据容器的工作链表中找到对应的数据存储单元;然后将该数据存储单元的键值复制到通信报文的模块数据中,将通信报文与读取结果一起返回给数据服务子系统;其中读取结果为数据读取成功或数据读取失败。(e)数据服务子系统的业务应用数据服务实现子模块将结果返回给数据服务适配器;(f)数据服务适配器将返回执行结果传送给数据业务接口;数据业务接口的服务调用接口模块接收返回结果,并由数据封装与解释模块对返回结果进行解释,将解释后的数据返回给业务应用系统。本实施例步骤(d)中在读取数据时,每个数据容器允许一个或多个进程进行读取。本实施例步骤(d)中在写入数据时,每个数据容器只允许有一个进程进行写入,当数据容器有写入操作时,对该数据容器的整个数据块加上写锁;当写入数据操作冲突无法执行操作时,数据存储子系统会以数据写入失败状态返回此次操作,并由数据服务子系统的服务日志模块记录下操作冲突情景,业务应用系统收到返回结果后,可以从失败状态信息得知失败原因,并由业务应用系统决定是否再次执行操作。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1