CN114398683A - 一种基于异构子系统的内生安全数据库存储方法及装置 - Google Patents
一种基于异构子系统的内生安全数据库存储方法及装置 Download PDFInfo
- Publication number
- CN114398683A CN114398683A CN202210291929.9A CN202210291929A CN114398683A CN 114398683 A CN114398683 A CN 114398683A CN 202210291929 A CN202210291929 A CN 202210291929A CN 114398683 A CN114398683 A CN 114398683A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- heterogeneous
- instruction
- server system
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于异构子系统的内生安全数据库存储方法和装置。通过将传统的数据库分为服务器系统和异构子系统,中间再添加一个专用于分发、裁决、同步和调度的裁决系统,可以实现兼顾成本和安全性。其中异构子系统可以根据实际需求,部署在不同规格的软硬件异构环境,实现异构架构的同时达到成本可控,也可以绑定硬件模块甚至设计成专用芯片,通过批量生产进一步降低成本。而服务器系统则能够实现多应用层的广泛适配性,即使具备多个异构子系统,对外表现出来的仍然是一个典型的数据库服务器,在数据库与应用软件耦合性很强(例如SONiC系统)的场景当中有着独特的优势。
Description
技术领域
本发明涉及内生安全数据库技术领域,特别涉及一种基于异构子系统的内生安全数据库存储方法及装置。
背景技术
当前数据库技术广泛应用在众多领域当中,例如网络操作系统SONiC就是基于redis数据库构建起来,但当前对数据库的应用往往是基于已有的完整的数据库,数据库的安全性难以保证,针对未知风险的抵御能力也存在欠缺。
发明内容
本发明的目的在于提供一种基于异构子系统的内生安全数据库存储方法和装置,以克服现有技术中的不足。
为实现上述目的,本发明提供如下技术方案:
本申请公开了一种基于异构子系统的内生安全数据库存储方法,所述内生安全数据库包括服务器系统、裁决系统和异构子系统;服务器系统部署于主CPU上,裁决系统部署于FPGA上,异构子系统部署于硬件异构架构的子系统上;所述方法包括如下步骤:
S1、所述FPGA与主CPU以及各个异构子系统之间维护通信链路;
S2、服务器系统接收到用户指令后,对用户指令进行解析并判断指令响应域,所述指令响应域包括服务器系统响应域和子系统响应域;若指令响应域为服务器系统响应域,则服务器系统通过客户端管理模块创建或更新客户端状态信息表,并根据用户指令的内容调用服务器系统的时间管理模块和/或服务器系统的功能扩展模块执行相关的业务逻辑;若指令响应域为子系统响应域,则服务器系统通过客户端管理模块创建或更新客户端状态信息表,然后调用裁决系统的输入接口,将该指令下发给裁决系统;
S3、裁决系统接收到服务器系统下发的指令,对所述服务器系统下发的指令进行解析并判断指令类型,所述指令类型包括数据存储/删除指令和数据读取指令,所述数据存储/删除指令通过调用裁决系统的分发模块下发给各个异构子系统执行,所述数据读取指令通过裁决系统的裁决模块读取各个异构子系统的数据后裁决得到正确数据并返回给服务器系统;
S4、当异构子系统接收到数据存储/删除指令时,根据自身数据空间组织形式对数据进行存储/删除;当异构子系统接收到数据读取指令时,在自身数据空间中检索数据信息,并返回给裁决系统。
作为优选,所述裁决系统周期性触发裁决系统的同步模块和裁决系统的调度模块,所述同步模块对各个子系统的逻辑时钟和数据信息进行同步,所述调度模块对各个子系统的优先级进行设置和排序。
作为优选,所述步骤S1中所述FPGA与主CPU以及各个异构子系统之间维护的通信链路采用安全通信机制,所述安全通信机制包括签名认证、加密和防重放。
作为优选,所述步骤S2中所述的客户端状态信息表中的项目包括客户端名称、客户端地址和端口、客户端当前对应的数据库id、客户端状态标志、客户端输入输出缓冲区、客户端身份验证标志、客户端活跃\离线时间。
作为优选,所述步骤S2中调用时间管理模块执行相关的业务逻辑具体包括以下子步骤:
S21、初始化阶段创建并维护时间事件信息表,所述时间事件信息表当中存储指定时间和延时时间触发的子系统响应域指令;
S22、服务器系统周期性扫描时间事件信息表,取出满足时间条件的指令,重新封装后下发给裁决系统;
S23、服务器系统获得裁决系统返回的指令执行信息,更新时间事件信息表;
作为优选,所述步骤S2中调用功能扩展模块执行相关的业务逻辑具体包括以下子步骤:
S31、用户对扩展功能接口进行注册;
S32、服务器系统根据用户注册信息,建立并维护扩展功能接口信息表,所述扩展功能接口信息表包括扩展功能接口名称、扩展功能参数数量、扩展功能参数类型;
S33、服务器系统接解析用户指令后,在扩展功能接口信息表当中进行检索,检索到匹配项以后,根据表中的信息调用对应接口。
作为优选,所述步骤S31中所述注册的过程包括编译前注册和运行时注册,所述编译前注册为通过修改源码的方式,将扩展功能接口添加到服务器系统源码当中;所述运行时注册包括以下子步骤:
S311、用户将可执行文件拷贝到指定位置;
S312、用户向内生安全数据库服务器系统发送扩展功能注册指令,所述扩展功能注册指令包含命令标签、扩展功能接口名称、扩展功能接口信息以及扩展功能可执行文件路径;
S313、服务器系统接收到扩展功能注册指令,解析指令内容,形成注册信息,对扩展功能接口进行注册。
本申请还公开了一种基于异构子系统的内生安全数据库系统,所述内生安全数据库包括服务器系统、裁决系统和异构子系统,所述服务器系统包括客户端交互接口、客户端管理模块、时间管理模块和功能扩展模块,所述裁决系统包括输入接口、输出接口、分发模块、裁决模块、同步模块、和调度模块,所述异构子系统包括存取数据接口和数据管理模块。所述服务器系统的客户端交互接口用于跟数据库客户端建立连接并收发消息,客户端管理模块用于管理数据库客户端的状态和信息,时间管理模块用于管理时间事件,功能扩展模块用于扩展用户功能;所述裁决系统的输入接口和输出接口用于跟服务器系统以及异构子系统进行交互,分发模块用于将数据分发给各个异构子系统,裁决模块用于对异构子系统返回的数据进行裁决,同步模块用于同步各个异构子系统的状态和数据信息,调度模块用于对各个子系统的优先级进行设置和排序;所述异构子系统的数据存取接口用于接收裁决系统的存取指令并返回指令处理结构,所述数据管理模块用于管理自身保存的数据。
本申请还公开了一种基于异构子系统的内生安全数据库存储装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述的基于异构子系统的内生安全数据库存储方法。
本申请还公开了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的基于异构子系统的内生安全数据库存储方法。
本发明的有益效果:
与现有技术相比,本发明提供一种基于异构子系统的内生安全数据库存储方法和装置,以解决现有存在的数据库安全性不足、未知风险抵御能力较弱的问题。通过将传统的数据库分为服务器系统和异构子系统,中间再添加一个专用于分发、裁决、同步和调度的裁决系统,可以实现兼顾成本和安全性。其中异构子系统可以根据实际需求,部署在不同规格的软硬件异构环境,实现异构架构的同时达到成本可控,也可以绑定硬件模块甚至设计成专用芯片,通过批量生产进一步降低成本。而服务器系统则能够实现多应用层的广泛适配性,即使具备多个异构子系统,对外表现出来的仍然是一个典型的数据库服务器,在数据库与应用软件耦合性很强(例如SONiC系统)的场景当中有着独特的优势本发明的特征及优点将通过实施例结合附图进行详细说明。
附图说明
图1是本发明实施例提供的一种基于异构子系统的内生安全数据库存储方法方法的流程图。
图2是系统架构示意图。
图3是SONiC系统框架示意图。
图4是时间事件信息表。
图5是服务器系统指令表。
图6是本发明一种基于异构子系统的内生安全数据库存储装置的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
参考图1,本发明实施例提供一种基于异构子系统的内生安全数据库存储方法,其特征在于,所述内生安全数据库包括服务器系统、裁决系统和异构子系统,所述服务器系统包括客户端交互接口、客户端管理模块、时间管理模块和功能扩展模块,所述裁决系统包括输入输出接口、分发模块、裁决模块、同步模块、和调度模块,所述异构子系统包括存取数据接口和数据管理模块,具体如下步骤:
步骤S1,内生安全数据库服务器系统部署于主CPU上,裁决系统部署于FPGA上,内生安全数据库异构子系统部署于硬件异构架构的子系统上,所述主CPU同时运行其他用户业务进程,所述FPGA与主CPU以及各个异构子系统之间维护通信链路。
所述步骤S1中所述所述FPGA与主CPU以及各个异构子系统之间维护的通信链路采用安全通信机制,所述安全通信机制包括签名认证、加密和防重放。
具体的,参考图2,在本实施例中,主CPU运行的是一个linux系统,在linux系统上同时运行着多个用户进程和数据库服务器系统进程,用户进程与数据库服务器系统进程之间通过进程间通信技术互通,本实施例采用unix域socket通信作为本地进程间通信的方式,同时也允许远程主机通过socket访问本地数据库,二者采用一致的linux IO多路复用技术进行管理,并且采用相同的安全通信机制。
本实施例中,所述安全通信机制包括防重放攻击、非对称加密和签名认证的方案。所述防重放攻击是在所有的socket消息包当中增加递增的序列号,消息接收方通过序列号判断是否为重放攻击,若为重放攻击的消息包则直接丢弃;所述非对称加密采用公钥-私钥的形式,所有客户端(用户进程和远程主机)保存数据库服务器系统进程的公钥,同时数据库服务器系统进程也保存所有客户端的公钥,消息发送方使用接收方的公钥对消息进行加密,消息接收方再通过自身私钥进行解密;所述签名认证是消息发送方在消息包当中增加自身签名,而消息接收方则对消息进行认证,认证不通过的消息包直接丢弃。以上都有业界成熟的方案供参考,不再赘述。
本实施例中FPGA选用Xilinx的XC7A100T芯片,与主CPU之间通过千兆网口进行通讯,linux系统与FPGA之间的安全通信机制也与上方所述一致。FPGA当中部署了裁决系统,具体的包含分发、裁决、同步和调度模块。所述分发模块的作用是主CPU需要存储/删除数据时,该模块将数据存储/删除信息分别下发给三个子系统;所述裁决模块的作用是主CPU需要读取数据时,该模块从子系统当中获取数据,通过数据的比较选择出一个准确值返还给主CPU;所述同步模块的作用是对子系统的逻辑时钟和数据内容进行周期性同步;所述调度模块是从三个子系统当中选择一个最可信的一个,作为直连子系统跟主CPU进行交互,以防存取的数据量较大时产生拥塞。
本实施例中,三个子系统采用MCU裸机的硬件结构,分别为M7、M4和A7内核的ARM架构MCU。需要说明的是,子系统的硬件架构可选范围非常丰富,由于子系统上仅运行存取数据接口和数据管理模块,对系统环境的依赖较低,不像redis等数据库只能运行在linux主机上,因而子系统的业务逻辑既可以裸机运行,也可以依托于任意一种操作系统,可以综合成本以及用户需求来进行设计。
本实施例中FPGA与子系统之间采用百兆网口进行通信,安全通信机制也可以跟上述方案保持一致。此处选用百兆网口一方面是因为ARM-M4内核不支持千兆网口,另一方面主CPU与FPGA之间的带宽大于FPGA与子系统之间的带宽也为分布式存储等需求保留了开发空间。
步骤S2,内生安全数据库服务器系统接收到用户指令后,对指令进行解析并判断指令响应域,所述指令响应域包括服务器系统响应域和子系统响应域,所述服务器系统响应域的指令由服务器系统单独执行,所述子系统响应域的指令由服务器系统、裁决系统以及异构子系统协同执行。
本实施例的具体应用场景为基于redis数据库的SONiC网络操作系统,具体的,参考图3。图3所示的redis数据库经过本方案改造后具备内生安全数据库属性,而图3当中的SWSS、Syncd等模块即为图2中所示的用户进程。SWSS进程与redis数据库服务器系统建立连接以后,会向redis发送指令,一部分指令只需要在主CPU的redis数据库服务器系统进程上进行响应,例如切换数据库id;另一部分指令则需要服务器系统、裁决系统和子系统协同响应,例如保存数据等等。
步骤S3,内生安全数据库服务器系统接收到的服务器系统响应域的指令后,通过客户端管理模块创建或更新客户端状态信息表,并根据指令内容调用时间管理模块和/或功能扩展模块执行相关的业务逻辑。
所述步骤S3中所述的客户端状态信息表中的项目包括客户端名称、客户端地址和端口、客户端当前对应的数据库id、客户端状态标志、客户端输入输出缓冲区、客户端身份验证标志、客户端活跃\离线时间。
所述步骤S3中所述时间管理模块具体包括以下子步骤:
S31,初始化阶段创建并维护时间事件信息表,所述时间事件信息表当中存储指定时间和延时时间触发的子系统响应域指令。
具体的,参考图4,本实施例中,时间事件信息表是一个指针数组,每一个指针时间事件信息结构体。在时间事件中,典型的两种应用就是定时删除和延时删除两种,在图4所示的timeEvent数组当中,下标为0的指针指向的即为定时删除keyA键的信息,下标为1的指针指向的即为延时删除keyB键的信息。
当内生安全数据库服务器系统接收到用户发送的时间事件指令后,例如用户发送“delete --time --fixedtime 20220311110600 keyA”,服务器系统会对该指令进行解析,并获取到指令当中的时间事件信息,并保存到图4所示的TimeEventInfo结构体当中,并将timeEvent数组当中的0号指针指向该结构体。
S32,服务器系统周期性扫描时间事件信息表,取出满足时间条件的指令,重新封装后下发给裁决系统。
本实施例中采用每隔1s扫描一遍图4中所示的timeEvent指针数组,首先判断TimeEventInfo当中的tpye项的内容,本实施例中通过枚举类型设置了FIXEDTIME和DELAYTIME两种,也可以根据实际用户需求进行扩展。当类型是定时触发,则对比TimeEventInfo中的time项所指向的时间戳字符串与当前系统时钟是否匹配,若匹配则执行delete keyA指令——将该指令下发给裁决系统。若type项为延时触发,则需要综合对比系统事件、time项时间戳和延时时间,本实施例当中delaytime项的单位是秒,如果延时条件匹配,那么服务器系统将会把delete keyB指令下发给裁决系统。
S33,服务器系统获得裁决系统返回的指令执行信息,更新时间事件信息表。
本实施例中,当服务器系统将delete keyA的指令下发给裁决系统后,裁决系统的分发模块会将该指令下发给各个子系统,各个子系统完成指令后会将执行成功的信息返回给裁决系统,裁决系统再回送给服务器系统,服务器系统得到这个反馈信息后,会将timeEvent指针数组的0号下标指向的TimeEventInfo结构体释放,并将0号下标指针置为NULL,代表该时间事件执行完成。
本实施例当中所有的TimeEventInfo都是一次性的,如果用户需要,也可以扩展为循环执行,只需要在type字段对应的枚举类型当中增加新的项,并扩展相应的业务逻辑。此时,服务器系统在接收到指令执行完成的反馈信息后,会更新TimeEventInfo当中的信息内容,而不是直接删除。
本实施例当中timeEvent指针数组默认长度为256,可以通过配置文件设置环境变量TIMEEVENTNUM,在编译时读取该变量并将该变量作为timeEvent指针数组的初始化长度。
步骤S3中所述功能扩展模块具体包括以下子步骤:
S34,用户对扩展功能接口进行注册。
所述步骤S34中所述注册过程包括编译前注册和运行时注册,所述编译前注册为通过修改源码的方式,将扩展功能接口添加到服务器系统源码当中。
具体的参考图5,在本实施例当中,将服务器系统能够处理的所有指令都初始化设置在一个commandTable的结构体数组当中,数组当中的每一个项为CommandInfo结构体,结构体当中的name项为指令的名称,commandProc为该命令具体执行的函数,arity项为命令参数的个数(-3代表>=3)。当用户执行set keyA valueA指令时,服务器系统会解析这条命令,得到一个参数表[“set”, “keyA”, “valueA”],然后检索commandTable表,发现0号CommandInfo的name项匹配,那么将调用setCommand函数对该指令进行处理。
所述编译前注册,就是在源码当中的commandTable表增加一项,设置该命令的相关信息,在公共头文件当中声明subscribCommand函数并新建一个源文件来实现subscribeCommand函数,就实现了编译前扩展功能的注册过程。然后增加编译文件当中的subscribeCommand函数源文件依赖,再重新编译数据库服务器系统程序,新的数据库服务器系统就可以处理用户扩展的功能。如图5所示的下标为254的指针所执行的CommandInfo即为编译前注册的扩展命令。
所述运行时注册包括以下子步骤:
S341、用户将可执行文件拷贝到指定位置;
S342、用户向内生安全数据库服务器系统发送扩展功能注册指令,所述扩展功能命令当中包含命令标签、扩展功能接口名称、扩展功能接口信息以及扩展功能可执行文件路径;
S343、服务器系统接收到扩展功能注册指令,解析指令内容,形成注册信息,对扩展功能接口进行注册。
具体的,参考图5,commandTable当中标号255的项所指向的CommandInfo结构体即为运行时注册的命令接口,它与其他CommandInfo的区别在于commandProc项所指向的对象不是一个函数而是一个路径,服务器系统也根据该特征区别是否为运行时注册的指令。
当用户向服务器发送register pubscribe ./pubsrribe -2 …的命令后,服务器系统解析该命令,新建一个CommandInfo结构体保存扩展功能注册信息,然后将commandInfo当中原本空闲的标号255的指针指向新建的CommandInfo结构体,即完成命令注册的过程。
S35,服务器系统根据用户注册信息,建立并维护扩展功能接口信息表,所述扩展功能信息表包括扩展功能接口名称、扩展功能参数数量、扩展功能参数类型。
在本实施例当中,将基本功能和扩展功能放置在同一个命令表commandTable当中,这样实现起来较为简单。也可以另外新建一个扩展功能接口信息表,并优先检索扩展功能接口信息表,由此可以解决扩展功能和基本功能接口名称相冲突的问题。
S36,服务器系统接解析用户指令后,在扩展功能接口信息表当中进行检索,检索到匹配项以后,根据表中的信息调用对应接口。
在本实施例当中,服务器系统接收到扩展功能指令(例如pubsrcibe channelAvalueA)后,也在commandTable当中进行检索,匹配到标号255指针所指向的CommandInfo结构体,那么将执行commandProc项所指向的路径的可执行文件,并且传入对应的参数列表[“pubsrcibe”, “channelA”, “valueA”]。
需要注意的是,运行时注册需要服务器系统当中的各个模块进行配合,因而是个可选项目,通过编译宏RUNNING_REGISTER可以控制该功能,默认状态下可以不开启。
步骤S4,内生安全数据库服务器系统接收到的子系统响应域的指令后,通过客户端管理模块创建或更新客户端状态信息表,然后调用裁决系统的输入接口,将该指令下发给裁决系统。
本实施例当中,典型的子系统响应域的指令为数据的增删改查指令。
例如,用户发送set keyA valueA指令,那么服务器系统接收到该指令后,更新对应用户进程客户端的相关信息(例如活跃时间等),然后将该命令下发给裁决系统,并等待裁决系统的执行结果回复,若执行成功,则将OK字符串返回给用户,若执行失败,则根据裁决系统返回的错误码,封装不同的错误信息反馈给用户进程。
步骤S5,裁决系统接收到服务器系统下发的指令,对指令进行解析并判断指令类型,所述指令类型包括数据存储/删除和数据读取两类,所述数据存储/删除类型指令通过调用分发模块下发给各个异构子系统执行,所述数据读取类型指令通过裁决模块读取各个异构子系统的数据后裁决得到正确数据并返回给服务器系统。
所述步骤S5中所述分发模块维护着裁决系统与各个子系统之间的通信接口,所述通信接口包括硬件接口和协议接口,所述步骤S5中所述裁决策略采用择多裁决。
本实施例中,分发模块与各个子系统之间的通信硬件接口均为100M网口,在FPGA上实例化三个百兆IP核,相当于三个网卡,配合FPGA外围硬件phy驱动等模块,实现跟子卡的互联。本实施例采用phy对phy的硬件直连模式,从而略去网口变压器等硬件,节约成本和PCB空间。
当裁决系统接收到服务器系统发送的set keyA valueA的指令后,分发模块直接调用跟各个子系统的之间的通信协议接口,将该命令重新封装成各个子系统可以识别的命令协议,然后再调用通信硬件接口,将该命令下发给各个子系统。子系统收到该命令后会进行回复,裁决系统的分发模块接收到子系统的反馈,综合判断该命令是否执行成功,并将结果返回给服务器系统。
当裁决系统接收到服务器系统发送的get keyA的指令后,分发模块继续上述的步骤,将该命令下发给子系统并获取结果,获取到的结果交给裁决模块进行裁决。本实施例中,择多裁决采用少数服从多数的方案,即子系统1和子系统2回复valueA,但子系统3回复valueB,那么裁决认为valueA为正确值,并将该值反馈给服务器系统。如果三个子系统返回的值均不相同,那么返回一个裁决错误。
步骤S6,裁决系统周期性触发同步模块和调度模块,所述同步模块对各个子系统的逻辑时钟和数据信息进行同步,所述调度模块对各个子系统的优先级进行设置和排序。
所述步骤S6中所述调度模块采用信用分机制。
在本实施例当中,各个子系统的main函数都设置一个while(1)循环执行子系统逻辑,各个子系统都会设置一个技术器,每次while(1)循环加一,该计数器就是逻辑时钟,同步模块需要对该逻辑时钟进行同步。首先各个子系统当中设置的系统主频相同(本实施例均设为400MHz),各个子系统的业务流程也相同,理论上逻辑时钟应该是同步的,但由于硬件等种种原因,逻辑时钟会出现偏差。裁决系统会周期性(本实施例设置为100ms)获取各个子系统的逻辑时钟,当子系统的逻辑时钟出现较大偏差(本实施例设置为50),那么裁决系统会下发指令,让时钟较快的几个子系统暂时阻塞,等待时钟较慢的子系统追赶上来。
在阻塞期间,服务器系统新下发的指令会被暂存在缓冲器,等待时钟同步后再执行。
数据信息同步的目的是保持各个子系统当中数据一致,当周期性触发了数据同步事件(本实施例设置的周期为60s),裁决系统的分发模块下发同步指令给各个子系统,从各个子系统获取数据信息(若数据信息太大超过FPGA缓存BUF,则将数据分成几部分依次处理),并对各个数据信心按照择多裁决的策略判断一致性,不一致的数据下发指令进行修改或直接删除,若数据被删除,则要上报给服务器系统,让服务器系统告知各个用户进程。
调度模块对各个子系统的优先级进行设置和排序,采用信用分机制。所述信用分机制是在初始化阶段按照各个子系统的性能优良先设置一个初始信用分,例如子系统1信用分为80,子系统2为70,子系统3为60。然后在裁决和同步的过程中依次更新信用分,例如上述get keyA的指令执行过程,子系统3返回的数据跟子系统1以及子系统2不同,那么子系统1和子系统2加5分,子系统3减五分。同步的过程同理,当时钟同步或数据同步时,裁决正确的加分,裁决错误的减分。
设置子系统的优先级主要用于服务器和子系统直连的应用场景,例如短时间内有大量数据,FPGA缓存区无法存储,那么将直接保存到子系统1当中,并设置一个标签防止在同步过程当中将这些数据裁决失败。
步骤S7,异构子系统接收到数据存储/删除指令后,根据自身数据空间组织形式对数据进行存储/删除,异构子系统接收到数据读取指令后,在自身数据空间中检索数据信息,并返回给裁决系统。
本实施例当中,三个异构的子系统分别为基于ARM-A7、ARM-M7和ARM-M4的MCU裸机运行数据库子系统功能,从而实现硬件异构。各个子系统跟裁决系统的分发模块维护通信硬件接口和协议接口,在本实施例当中,硬件接口采用100M网口PHY直连的形式实现,协议接口则是基于RESP协议。
本实施例中三个数据空间组织形式保持一致,采用键空间和值空间分离的方式,键空间包括实际索引值(数据键)和实际数据值的内存位置信息(包括首地址和长度),有许多技术可用来组织索引文件以提高按键查询的速度和效率,散列表和 B+树是两种常用的技术,本实施例采用固定大小的散列表来组织索引文件结构,具体的可以根据实际应用场景的变化来进行选择。
本实施例中,所有的子系统均运行为从机模式,即不会主动向裁决系统发送数据,所有的业务逻辑都由裁决系统下发指令来触发。
以上所述的一种基于异构子系统的内生安全数据库存储方法和装置,通过将传统的数据库分为服务器系统和异构子系统,中间再添加一个专用于分发、裁决、同步和调度的裁决系统,可以实现兼顾成本和安全性。其中异构子系统可以根据实际需求,部署在不同规格的软硬件异构环境,实现异构架构的同时达到成本可控,也可以绑定硬件模块甚至设计成专用芯片,通过批量生产进一步降低成本。而服务器系统则能够实现多应用层的广泛适配性,即使具备多个异构子系统,对外表现出来的仍然是一个典型的数据库服务器,在数据库与应用软件耦合性很强(例如SONiC系统)的场景当中有着独特的优势。
与前述物联网设备协同联动设计方法的实施例相对应,本发明还提供了物联网设备协同联动设计装置的实施例。
参见图6,本发明实施例提供的一种基于异构子系统的内生安全数据库存储装置,包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的基于异构子系统的内生安全数据库存储方法。
本发明基于异构子系统的内生安全数据库存储装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明基于异构子系统的内生安全数据库存储装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的物联网设备协同联动设计方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述内生安全数据库包括服务器系统、裁决系统和异构子系统;服务器系统部署于主CPU上,裁决系统部署于FPGA上,异构子系统部署于硬件异构架构的子系统上;所述方法包括如下步骤:
S1、所述FPGA与主CPU以及各个异构子系统之间维护通信链路;
S2、服务器系统接收到用户指令后,对用户指令进行解析并判断指令响应域,所述指令响应域包括服务器系统响应域和子系统响应域;若指令响应域为服务器系统响应域,则服务器系统通过客户端管理模块创建或更新客户端状态信息表,并根据用户指令的内容调用服务器系统的时间管理模块和/或服务器系统的功能扩展模块执行相关的业务逻辑;若指令响应域为子系统响应域,则服务器系统通过客户端管理模块创建或更新客户端状态信息表,然后调用裁决系统的输入接口,将该指令下发给裁决系统;
S3、裁决系统接收到服务器系统下发的指令,对所述服务器系统下发的指令进行解析并判断指令类型,所述指令类型包括数据存储/删除指令和数据读取指令,所述数据存储/删除指令通过调用裁决系统的分发模块下发给各个异构子系统执行,所述数据读取指令通过裁决系统的裁决模块读取各个异构子系统的数据后裁决得到正确数据并返回给服务器系统;
S4、当异构子系统接收到数据存储/删除指令时,根据自身数据空间组织形式对数据进行存储/删除;当异构子系统接收到数据读取指令时,在自身数据空间中检索数据信息,并返回给裁决系统。
2.如权利要求1所述的一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述裁决系统周期性触发裁决系统的同步模块和裁决系统的调度模块,所述同步模块对各个子系统的逻辑时钟和数据信息进行同步,所述调度模块对各个子系统的优先级进行设置和排序。
3.如权利要求1所述的一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述步骤S1中所述FPGA与主CPU以及各个异构子系统之间维护的通信链路采用安全通信机制,所述安全通信机制包括签名认证、加密和防重放。
4.如权利要求1所述的一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述步骤S2中所述的客户端状态信息表中的项目包括客户端名称、客户端地址和端口、客户端当前对应的数据库id、客户端状态标志、客户端输入输出缓冲区、客户端身份验证标志、客户端活跃\离线时间。
5.如权利要求1所述的一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述步骤S2中调用时间管理模块执行相关的业务逻辑具体包括以下子步骤:
S21、初始化阶段创建并维护时间事件信息表,所述时间事件信息表当中存储指定时间和延时时间触发的子系统响应域指令;
S22、服务器系统周期性扫描时间事件信息表,取出满足时间条件的指令,重新封装后下发给裁决系统;
S23、服务器系统获得裁决系统返回的指令执行信息,更新时间事件信息表。
6.如权利要求1所述的一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述步骤S2中调用功能扩展模块执行相关的业务逻辑具体包括以下子步骤:
S31、用户对扩展功能接口进行注册;
S32、服务器系统根据用户注册信息,建立并维护扩展功能接口信息表,所述扩展功能接口信息表包括扩展功能接口名称、扩展功能参数数量、扩展功能参数类型;
S33、服务器系统接解析用户指令后,在扩展功能接口信息表当中进行检索,检索到匹配项以后,根据表中的信息调用对应接口。
7.如权利要求6所述的一种基于异构子系统的内生安全数据库存储方法,其特征在于:所述步骤S31中所述注册的过程包括编译前注册和运行时注册,所述编译前注册为通过修改源码的方式,将扩展功能接口添加到服务器系统源码当中;所述运行时注册包括以下子步骤:
S311、用户将可执行文件拷贝到指定位置;
S312、用户向内生安全数据库服务器系统发送扩展功能注册指令,所述扩展功能注册指令包含命令标签、扩展功能接口名称、扩展功能接口信息以及扩展功能可执行文件路径;
S313、服务器系统接收到扩展功能注册指令,解析指令内容,形成注册信息,对扩展功能接口进行注册。
8.一种基于异构子系统的内生安全数据库系统,其特征在于:所述内生安全数据库包括服务器系统、裁决系统和异构子系统,所述服务器系统包括客户端交互接口、客户端管理模块、时间管理模块和功能扩展模块,所述裁决系统包括输入接口、输出接口、分发模块、裁决模块、同步模块、和调度模块,所述异构子系统包括存取数据接口和数据管理模块;所述服务器系统的客户端交互接口用于跟数据库客户端建立连接并收发消息,客户端管理模块用于管理数据库客户端的状态和信息,时间管理模块用于管理时间事件,功能扩展模块用于扩展用户功能;所述裁决系统的输入接口和输出接口用于跟服务器系统以及异构子系统进行交互,分发模块用于将数据分发给各个异构子系统,裁决模块用于对异构子系统返回的数据进行裁决,同步模块用于同步各个异构子系统的状态和数据信息,调度模块用于对各个子系统的优先级进行设置和排序;所述异构子系统的数据存取接口用于接收裁决系统的存取指令并返回指令处理结构,所述数据管理模块用于管理自身保存的数据。
9.一种基于异构子系统的内生安全数据库存储装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-7中任一项所述的基于异构子系统的内生安全数据库存储方法。
10.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-7中任一项所述的基于异构子系统的内生安全数据库存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291929.9A CN114398683B (zh) | 2022-03-24 | 2022-03-24 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291929.9A CN114398683B (zh) | 2022-03-24 | 2022-03-24 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398683A true CN114398683A (zh) | 2022-04-26 |
CN114398683B CN114398683B (zh) | 2022-06-10 |
Family
ID=81234361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210291929.9A Active CN114398683B (zh) | 2022-03-24 | 2022-03-24 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398683B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001852A (zh) * | 2022-07-18 | 2022-09-02 | 之江实验室 | 一种网络操作系统中应用内生安全数据库存取方法和装置 |
CN115408371A (zh) * | 2022-10-31 | 2022-11-29 | 之江实验室 | 一种redis数据库动态冗余部署方法和装置 |
CN115955365A (zh) * | 2023-03-14 | 2023-04-11 | 之江实验室 | 一种内生安全的网络编译系统及方法 |
CN116049035A (zh) * | 2022-12-27 | 2023-05-02 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
CN117082017A (zh) * | 2023-10-17 | 2023-11-17 | 之江实验室 | 一种白盒交换机扩展卡管理的方法及装置 |
CN117234857A (zh) * | 2023-11-10 | 2023-12-15 | 之江实验室 | 一种内生安全架构系统及异常检测方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460658A (zh) * | 2019-08-05 | 2019-11-15 | 上海拟态数据技术有限公司 | 一种基于拟态构造的分布式存储构建方法 |
CN110545260A (zh) * | 2019-08-05 | 2019-12-06 | 上海拟态数据技术有限公司 | 一种基于拟态构造的云管理平台构建方法 |
CN111310245A (zh) * | 2020-03-05 | 2020-06-19 | 之江实验室 | 一种面向拟态防御系统的数据加密存储方法 |
CN111460493A (zh) * | 2020-03-24 | 2020-07-28 | 上海红阵信息科技有限公司 | 一种基于拟态构造的sql数据库构建方法 |
CN111866038A (zh) * | 2019-04-25 | 2020-10-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于异构多副本的分布式存储动态防御系统及方法 |
CN112242923A (zh) * | 2020-09-15 | 2021-01-19 | 中国人民解放军战略支援部队信息工程大学 | 基于拟态防御的统一数据管理网络功能实现系统及方法 |
CN113505006A (zh) * | 2021-07-08 | 2021-10-15 | 上海红阵信息科技有限公司 | 一种面向拟态数据库的裁决装置及方法 |
CN113835685A (zh) * | 2021-11-26 | 2021-12-24 | 之江实验室 | 一种基于拟态数据库的网络操作系统设计方法 |
-
2022
- 2022-03-24 CN CN202210291929.9A patent/CN114398683B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866038A (zh) * | 2019-04-25 | 2020-10-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于异构多副本的分布式存储动态防御系统及方法 |
CN110460658A (zh) * | 2019-08-05 | 2019-11-15 | 上海拟态数据技术有限公司 | 一种基于拟态构造的分布式存储构建方法 |
CN110545260A (zh) * | 2019-08-05 | 2019-12-06 | 上海拟态数据技术有限公司 | 一种基于拟态构造的云管理平台构建方法 |
CN111310245A (zh) * | 2020-03-05 | 2020-06-19 | 之江实验室 | 一种面向拟态防御系统的数据加密存储方法 |
CN111460493A (zh) * | 2020-03-24 | 2020-07-28 | 上海红阵信息科技有限公司 | 一种基于拟态构造的sql数据库构建方法 |
CN112242923A (zh) * | 2020-09-15 | 2021-01-19 | 中国人民解放军战略支援部队信息工程大学 | 基于拟态防御的统一数据管理网络功能实现系统及方法 |
CN113505006A (zh) * | 2021-07-08 | 2021-10-15 | 上海红阵信息科技有限公司 | 一种面向拟态数据库的裁决装置及方法 |
CN113835685A (zh) * | 2021-11-26 | 2021-12-24 | 之江实验室 | 一种基于拟态数据库的网络操作系统设计方法 |
Non-Patent Citations (3)
Title |
---|
BOLIN MA等: "A formalization research on web server and scheduling strategy for heterogeneity", 《2016 IEEE ADVANCED INFORMATION MANAGEMENT, COMMUNICATES, ELECTRONIC AND AUTOMATION CONTROL CONFERENCE (IMCEC)》, 2 March 2017 (2017-03-02), pages 1447 - 1451 * |
武兆琪等: "一种基于执行体异构度的拟态裁决优化方法", 《计算机工程》, vol. 46, no. 05, 31 May 2020 (2020-05-31), pages 12 - 18 * |
郭威等: "一种分布式存储系统拟态化架构设计与实现", 《计算机工程》, vol. 46, no. 06, 30 June 2020 (2020-06-30), pages 12 - 19 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001852A (zh) * | 2022-07-18 | 2022-09-02 | 之江实验室 | 一种网络操作系统中应用内生安全数据库存取方法和装置 |
CN115408371A (zh) * | 2022-10-31 | 2022-11-29 | 之江实验室 | 一种redis数据库动态冗余部署方法和装置 |
CN116049035A (zh) * | 2022-12-27 | 2023-05-02 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
CN116049035B (zh) * | 2022-12-27 | 2024-02-09 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
CN115955365A (zh) * | 2023-03-14 | 2023-04-11 | 之江实验室 | 一种内生安全的网络编译系统及方法 |
CN117082017A (zh) * | 2023-10-17 | 2023-11-17 | 之江实验室 | 一种白盒交换机扩展卡管理的方法及装置 |
CN117082017B (zh) * | 2023-10-17 | 2024-01-09 | 之江实验室 | 一种白盒交换机扩展卡管理的方法及装置 |
CN117234857A (zh) * | 2023-11-10 | 2023-12-15 | 之江实验室 | 一种内生安全架构系统及异常检测方法 |
CN117234857B (zh) * | 2023-11-10 | 2024-01-26 | 之江实验室 | 一种内生安全架构系统及异常检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114398683B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114398683B (zh) | 一种基于异构子系统的内生安全数据库存储方法及装置 | |
US6226644B1 (en) | Method, storage medium and system for distributing data between computers connected to a network | |
US20190179821A1 (en) | Method and system for accessing out-of-chain data based on consortium block chain | |
US10908977B1 (en) | Efficient message queuing service | |
CN111414381B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108183918B (zh) | 一种aaa高并发认证方法及系统 | |
US9589153B2 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
CN111694873B (zh) | 虚拟资源包的处理方法、装置及数据库服务器 | |
CN112243032B (zh) | 基于访问网关的服务调用方法及其系统 | |
Cachin et al. | Efficient fork-linearizable access to untrusted shared memory | |
US11429633B2 (en) | Data processing system with synchronization of local directory information to cloud system | |
CN109032796A (zh) | 一种数据处理方法和装置 | |
CN114780569B (zh) | 一种拟态redis数据库的输入输出代理方法和装置 | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
Bindschaedler et al. | Tesseract: distributed, general graph pattern mining on evolving graphs | |
WO2023040453A1 (zh) | 一种交易信息处理方法及装置 | |
US8204853B2 (en) | Maintaining client data integrity in a distributed environment using asynchronous data submission | |
Wang et al. | Improved time bounds for linearizable implementations of abstract data types | |
KR20210082481A (ko) | 데이터베이스 관리 서비스 제공 시스템 | |
CN111081258A (zh) | 一种声纹模型管理方法、系统、存储介质及装置 | |
CN113312164B (zh) | 一种适用于云计算系统的资源数据读取方法 | |
US11537455B2 (en) | Schema management using an event stream | |
CN115510161A (zh) | 数据同步方法、装置、设备及存储介质 | |
US11922222B1 (en) | Generating a modified component for a data intake and query system using an isolated execution environment image | |
Chandrasekaran et al. | Matching scenarios with timing constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |