跨平台安全服务软件构建方法、装置、设备及存储介质
文献发布时间:2023-06-19 10:00:31
技术领域
本发明涉及安全服务软件构建技术领域,也涉及计算机软件架构及构建技术,分层抽象封装解耦的技术领域,主要指一种安全服务软件构建方法、装置、设备及存储介质,尤指一种基于层次架系统抽象的跨平台安全服务软件构建方法、装置、设备及存储介质,其包括:使用插件+授仅文件方式动态自由组合不同安全服务产品。
背景技术
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。而网络安全已受到全社会的关注,针对网络安全的安全服务软件已大量应用于基于不同平的各种系统之中,在不同系统中的安全服务软件功能是相同的,但是面向不同的系统其软件组成就存在了差异,如何消除不同系统的差异,使得一套安全服务软件能够跨平台部署应用这个问题始终没有得到解决。
具体而言,安全服务软件不同于普通应用软件,不同操作系统下对于文件读写行为的监控,对操作系统可执行文件的木马静态分析;其需要监控扫描整个系统的运行,对整个系统提供安全服务,其功能涉及到系统的各个方面。因此对系统包括运行在系统内的各个应用都有着较强的依赖。现有的各种安全服务软件基本都是面向实现去编程,与对应的系统存在极强的相关性,更换一个系统或者更新一个其他应用对应的安全服务软件都可能不可用,只能依据系统变更更换响应的安全服务软件,这样带来的问题就是安全服务软件存在重复开发,资源浪费的问题。同时安全服务软件所涉及的业务功能广泛,很多业务功能存在重叠,也就是说不同的安全服务软件产品,其中必然存在功能重复,不同的安全服务软件各自独立开发,必然存在功能重复开发资源浪费的问题,对于当前安全服务软件开发所存在的主要问题有:
1.功能重复实现:不同安全服务软件产品独立开发,采取面实现的方式进行编程,各个产品对同一个功能或各产品间只有细微差的功能都自己实现,即使相同功能组件不同产品之间只能开发。
2.功能复用率低:不同安全服务软件产品独立开发,采取面向实现的方式进行,没有采用面向接口的编程方式,直接导致各个功能组件不能在不同安全服务产品这间的加载复用。通常同一公司各产品之间通过复制代码的方式实现功能复用。一旦一个功能需要修改或出现bug需要修复。所有使用该功能的产品都需要修改,重新编译,存在大量重复工作。
3.测试难以自动化:各产品的人机交互实现代码与业务逻辑代码混合一起。同时不同产品业务功能调用接品不统一,这将很难对业务逻辑进行自动化测试,只能依靠测试人员手动测试,测试结果依赖人工判断;回归测试需要大量重复的人力工作。
4.系统抽象层次低:由于业务功能与UI、操作系统接口混合一起,业务代码基于实现编程,耦合度高难以复用。不同操作系统平台需要分别实现。
5.软件可扩展性低:通过源码编译形成产品能力;添加或删除新的功能时都需要对整个产品源码进行重编。任何细小的改变都有可能对整个产品产生影响,不符合开闭原则。
发明内容
本发明实施例提供了一种跨平台安全服务软件构建方法、装置、设备及存储介质,能够解决现有安全服务软件构建中代码复用度低、测试难以自动化、不同操作系统需要各自开发、软件可扩展性低的问题,通过插件化的方式使用各功能模块之间完全独立、各功能模块之间不存在横依赖,所有功能模块仅依赖一个公共模块;功能模块可在软件运行过程中实现热插拔功能。各功能模块只关心业务逻辑代码,而不必关心操作系统的差异,实现了真正意义上的代码可复用、业务逻辑可复用、模块可复用以及软件可扩展的效果。
本发明实施例提供了一种跨平台安全服务软件构建方法,包括:
将安全服务软件的业务逻辑处理分为三层,该三层分别为驱动层、功能层和业务调度层;
将安全服务软件的人机交互与业务实现分离;
插件结合授权文件来决定。
进一步的,所述将安全服务软件的业务逻辑处理分为三层,即为以驱动
层、功能层和业务调度层这样的层次化模型进行分层抽象,各个层次之间基于接口编程,解耦安全服务软件的业务逻辑来实现与人机交互实现。
进一步的,所述驱动层作为公共依赖对底层公共应用及操作系统内核接口进行封装,用于提供业务模块热插拔的基本框架和提供注册业务功能接口,以实现插件化的架构。
进一步的,所述功能层直接依赖驱动层提供的接口进行编程,将功能逻辑抽象封装,同时保持各个功能组件间的相互独立,提供给业务调度层组合封装的能力。
进一步的,所述业务调度层用来根据不同的产品的策略组合功能组件完成产品综合应用功能,形成具备综合解决方案的产品。
进一步的,所述将安全服务软件的人机交互与业务实现分离的方法,包括:安全服务软件的作为前端的安全服务业务的实现进程与作为后端的人机交互进程相分离,所述人机交互进程与安全服务业务的实现进程之间采用IPC的方式进行数据交换。
进一步的,所述插件结合授权文件来决定的方法,包括:安全服务软件运行时不需要所有的二进制文件;框架只启动必要的功能和流程;通过授权文件方式动态决定产品能力,包含对授权文件的保护、授权内容的解析;框架提供注册插件的接口,对插件的加载、卸载生命周期进行管理;框架对插件中提供的业务功能根据需要进行业务分发派遣。
本发明实施例还提供一种跨平台安全服务软件构建装置,包括:
分层模块,用于将安全服务软件的业务逻辑处理分为三层,该三层分别为驱动层、功能层和业务调度层;还用于将安全服务软件的业务逻辑处理分为三层,即为以驱动层、功能层和业务调度层这样的层次化模型进行分层抽象,各个层次之间基于接口编程,解耦安全服务软件的业务逻辑来实现与人机交互实现;
分离模块,用于将安全服务软件的人机交互与业务实现分离;还用于安全服务软件的作为前端的安全服务业务的实现进程与作为后端的人机交互进程相分离,所述人机交互进程与安全服务业务的实现进程之间采用IPC的方式进行数据交换;
决定模块,用于插件结合授权文件来决定;还用于安全服务软件运行时不需要所有的二进制文件;框架只启动必要的功能和流程;通过授权文件方式动态决定产品能力,包含对授权文件的保护、授权内容的解析;框架提供注册插件的接口,对插件的加载、卸载生命周期进行管理;框架对插件中提供的业务功能根据需要进行业务分发派遣。
本发明实施例还提供一种跨平台安全服务软件构建设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述跨平台安全服务软件构建方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述跨平台安全服务软件构建方法。
本发明实施例,其方法包括:将安全服务软件的业务逻辑处理分为三层,该三层分别为驱动层、功能层和业务调度层;将安全服务软件的人机交互与业务实现分离;插件结合授权文件来决定。由此能够解决现有安全服务软件构建中代码复用度低、测试难以自动化、不同操作系统需要各自开发、软件可扩展性低的问题。通过插件化的方式使用各功能模块之间完全独立、各模块之间不存在横依赖,所有功能模块仅依赖一个公共模块;模块可在软件运行过程中实现热插拔功能。各功能模块只关心业务逻辑代码,而不必关心操作系统的差异。实现了真正意义上的代码可复用、业务逻辑可复用、模块可复用、软件可扩展。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
图1是本发明实施例的所述跨平台安全服务软件构建方法的整体流程图;
图2是本发明实施例的跨平台安全服务软件构建装置的结构图。
图3是本发明实施例的所述插件模式的结构图。
图4是本发明实施例的所述将安全服务软件的业务逻辑处理分为三层的结构图。
图5是本发明实施例的所述插件模式的工作流程图。
图6是本发明实施例的所述屏蔽不同操作系统接口差异的示意图。
图7是本发明实施例的所述将安全服务软件的人机交互与业务实现分离的示意图。
图8是本发明实施例的功能共同行为及差异封装示意图。
图9是本发明实施例的所述业务调度层的流程图。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在不同系统中的安全服务软件功能是相同的,但是面向不同的系统其软件组成就存在了差异,如何消除不同系统的差异,使得一套安全服务软件能够跨平台部署应用这个问题被提了出来,本发明实施例正是为了解决这个问题而产生的,本发明实施例提出一种基于层次架系统抽象的跨平台安全服务软件构建技术;该构建技术用以封装底层应用及操作系统内核,抽象业务功能,去除横向依赖,由服务层组合业务功能形成产品能力。消除代码重复以及不同平台代码的重复开发,以插件+授权文件的模式组合成不同产品,实现功能复用,最终用于解决了现有开发中源码级别的复用或仅仅只是库级别的复用问题;业务功能难以自动化测试问题;软件可扩展性低的问题;不同操作系统平台需要独立开发问题。
针对上述情况,如图1-图9所示,本发明实施例提出一种跨平台安全服务软件构建方法,本发明实施例认为安全服务软件的构建中操作系统提供的接口以及人机交互界面都只是软件实现的细节,业务处理代码不应该受这些细节的影响,基于此本发明实施例中提出三层架构模型、人机交互与业务实现分离、插件+授权文件的方式组合成产品能力三种模式,其包括:
步骤101,将安全服务软件的业务逻辑处理分为三层,该三层分别为驱动层、功能层和业务调度层。
其中,在一个实施例中,将安全服务软件的业务逻辑处理分为三层,即
为以驱动层、功能层和业务调度层这样的层次化模型进行分层抽象,各个层次之间基于接口编程,解耦安全服务软件的业务逻辑来实现与人机交互实现,业务调度层以插件模式构建,所述插件模式动态组合产品能力,包含授权文件生成、加密保护、授权文件解析;插件的动态加载、卸载以及插件动态注册到业务进程,从而实现不同安全服务能力的动态组合,功能模块的综合复用。如图3所示,每个插件中存在一个或多个业务逻辑,业务进程根据授权文件决定插件1、插件2、插件3、插件4中的一个或多个插件可被注册到业务进程。业务服务能力由插件和授权文件共同决定。
另外,在一个实施例中,所述驱动层作为公共依赖对底层公共应用及操作系统内核接口进行封装,将不同操作系统提供的系统调用抽象成统一接口,形成公共依赖为功能层提供服务,从而屏蔽不同操作系统接口差异,使得功能层不用感知操作系统差异,仅面向驱动层提供接口进行对接,如图6所示,图中LinuxShareMemory表示linux操作系统下创建共享内存的方式;WindowsShareMemory表示windows操作系统下创建共享内存。ShareMemory表示创建共享内存抽象封装,ShareMemory对外提供统一的Create接口用于屏蔽操作系统差异;驱动层提供授权文件的解析,业务插件动态注册、动态卸载,根据业务唯一标识进行业务分发处理,以实现插件化的架构,如图5所示,插件工作流程描述如下:
A-1:业务进程启动;
A-2:解析配置文件、根据配置文件中配置信息加载对应的插件信息;
A-3:插件将业务处理对象及其对应的唯一标识注册到业务进程中;
A-4:开始轮询是否有新的业务请求;
A-5:如果有新的业务请求,转A-6中执行;如果没有新的业务逻辑转A-8中执行;
A-6:根据业务唯一标识查询业务处理对象;
A-7:业务对象调用功能层的一个或多个接口组合完成业务逻辑。返回业务逻辑处理结果;
A-8:是否退出业务进程,如果不退出业务进程转A-4中继续轮询是否存在新的业务请求,如果需要退出业务进程转A-9中执行;
A-9:卸载动态加载的插件,程序退出。
这样,层次化模型将公共底层服务包括各种操作系统内核接口的抽象封装。
所述功能层直接依赖驱动层提供的接口进行编程,将功能逻辑抽象封装,同时保持各个功能组件间的相互独立提供给业务调度层组合封装的能力,如图4所示,其中,产品1和产品2分别表示最终发布的软件产品。业务层由多个插件组成;每个插件由一个或一组相关业务逻辑组成;插件1、插件2、插件3、插件4表示业务层四个不同的插件,每个插件由一个或多个业务组成。每个业务处理逻辑由功能层的一个或多个功能组件组合而成,功能1、功能2、功能3、功能4用于分别表示功能层四个相互之间不存在依赖关系的功能组件。驱动层抽象接口由底层公共服务和OS内核两部分组成,其中底层公共服务用于屏蔽各操作系统接口差异,向功能层提供统一接口封装;OS内核用于屏蔽操作系统内核与应用程序通信差异。对于各功能组件之间存在的相互依赖行为,将其封装至驱动层。这样,所述功能层作为独立功能组件存在,功能组件仅对驱动层存在依赖,将功能逻辑封闭在功能组件内,消除功能组件之间的横向依赖。
所述业务调度层用来根据不同的产品的策略,调度功能层的一个或多个功能组件组合形成业务能力,不同业务组件可以公用功能层的一个功能或多个功能组件;这样业务调度层就在不同安全服务软件产品中组合不同功能层组件形成对应产品组合交付能力。如图9所示,业务调度层工作流程描述具体如下所示:
B-1:业务进程获取请求数据;
B-2:解析获取硬盘信息的请求数据,判断获取硬盘信息策略值。若为策略1转B-3中执行,若为策略2转B-4中执行;
B-3:获取硬盘的序列号、型号和容量,转B-5中执行;
B-4:获取硬盘的序列号、型号和启动次数,转B-5中执行;
B-5:向UI进程发送结果数据,转B-6中执行;
B-6:本次业务处理结束。
步骤102,将安全服务软件的人机交互与业务实现分离。
其中,所述将安全服务软件的人机交互与业务实现分离,也就是,将安全服务业务实现功能与UI表现通过前后端进程分离技术将安全服务业务功能与UI表现解耦;使用IPC技术和消息队列完成前后端进程间数据交换。在一个实施例中,所述将安全服务软件的人机交互与业务实现分离的方法,包括:安全服务软件的作为前端的安全服务业务的实现进程与作为后端的人机交互进程相分离,所述人机交互进程与安全服务业务的实现进程之间采用IPC的方式进行数据交换;这样,将人机交互界面与业务功能实现采用前后端进程分离技术,进程间通信采用IPC技术;实现业务功能可自动化测试,业务功能进程对外提供接口,而不关心具体展现细节;测试人员可对业务进程提供的接口编写自动化测试脚本进行测试,同时也实现测试的可回归性,节省测试人员大量重复工作。
步骤103,插件结合授权文件来决定。
其中,在一个实施例中,所述插件结合授权文件来决定的方法,包括:安全服务软件运行时不需要所有的二进制文件;业务进程只需要启动IPC通道用于与UI进程进行数据交互,如图7所示,UI进程与业务进程交互步骤具体如下所示:
(1)前端UI进程触发业务请求,生成业务IPC消息
(2)由UI进程通过IPC通道向业务进程发送IPC消息
(3)业务进程解析收到IPC消息,调用对应的业务处理功能
(4)业务进程将处理结果数据由IPC通道发送给UI进程
(5)UI进程解析业务进程处理的数据,将结果显示到UI;
业务进程负责解析授权文件,根据授权文件配置信息动态加载所需插件,通过授权文件方式决定哪些插件可被加载到业务进程中,这样各业务模块不再以二进制的方式编译到目标文件中,目标文件通过解析授权文件就可以组合成强大的产品能力具体实现见图5所示。实现了功能模块可复用、业务逻辑可复用、软件可扩展性强的目标。
综上所述,本发明实施例的方法能够有效解决各安全服务软件间功能复用度低的问题;能够解决安全服务软件的业务功能不可自动化测试问题;能够有效解决不同操作系统平台间需要独立、重复开发的问题;安全服务软件的产品能力不再是通过静态编译生成的二进制目标文件所决定,而是由授仅文件和插件的方式灵活组合产品能力;能够将安全服务软件的模块修改产生的影响降到最低。各模块之间完全独立、一个模块源码只需要重编受影响的模块即可,不会对其它模块产生任何影响。
如图2所示,本发明实施例还提供一种跨平台安全服务软件构建装置,包括:
分层模块71,用于将安全服务软件的业务逻辑处理分为三层,该三层
分别为驱动层、功能层和业务调度层;还用于将安全服务软件的业务逻
辑处理分为三层,即为以驱动层、功能层和业务调度层这样的层次化模型进行分层抽象,各个层次之间基于接口编程,解耦安全服务软件的业务逻辑来实现与人机交互实现;
分离模块72,用于将安全服务软件的人机交互与业务实现分离;还用于安全服务软件的作为前端的安全服务业务的实现进程与作为后端的人机交互进程相分离,所述人机交互进程与安全服务业务的实现进程之间采用IPC的方式进行数据交换;
决定模块73,用于插件结合授权文件来决定;还用于安全服务软件运行时不需要所有的二进制文件;业务进程只启动必要的功能和流程;通过授权文件方式动态决定产品能力,包含对授权文件的保护、授权内容的解析;业务进程提供注册插件的接口,对插件的加载、卸载生命周期进行管理;业务进程对插件中提供的业务功能根据需要进行业务分发派遣。
本发明实施例还提供一种跨平台安全服务软件构建设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述跨平台安全服务软件构建方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述跨平台安全服务软件构建方法。
在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号。
- 跨平台安全服务软件构建方法、装置、设备及存储介质
- 软件构建方法、装置、计算机设备和存储介质