CN104657149A - 一种存储***的管理模块的软件框架实现方法 - Google Patents
一种存储***的管理模块的软件框架实现方法 Download PDFInfo
- Publication number
- CN104657149A CN104657149A CN201510109076.2A CN201510109076A CN104657149A CN 104657149 A CN104657149 A CN 104657149A CN 201510109076 A CN201510109076 A CN 201510109076A CN 104657149 A CN104657149 A CN 104657149A
- Authority
- CN
- China
- Prior art keywords
- layer
- storage system
- middle layer
- function
- order
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种存储***的管理模块的软件框架实现方法,属于存储***的管理模块技术领域,技术方案为:所述的软件框架包括UI层、中间层和底层,UI层提供管理员或者上层应用管理接口,同时负责与中间层的通信交互;中间层负责和UI层、底层通信,用于实现用户空间数据和内核空间数据的交互;底层为上层功能需求的具体实现,运行于内核态,和实际硬件打交道。UI层提供命令行工具或者API接口;中间层通过配置文件对存储***进行相关配置;底层用于实现查询功能、对存储设备停止功能、对存储设备激活功能。本发明抽象出管理模块的开发模式,形成一种软件框架,大大提升存储***管理模块的开发速度,提升开发人员的效率。
Description
技术领域
本发明涉及一种存储***的管理模块技术领域,具体地说是一种存储***的管理模块的软件框架实现方法。
背景技术
存储***是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的***。
随着存储数据量的日益扩大,存储***也日益复杂,相关存储***的开发周期也越来越长,相应的管理软件也变得愈发复杂。目前,存储***的管理软件随着存储***的不同而不同,给软件开发工作带来了较大的工作量,设计人员需要针对不同的存储***设计不同的存储管理模块,但是,存储***的管理功能在实际应用中大致相同,因此如果可以抽象出管理模块的开发模式,形成一种软件开发框架,必将大大提升存储***管理模块的开发速度,提升开发人员的效率。如何实现上述方法,是目前迫切需要解决的问题。
发明内容
本发明的技术任务是提供一种存储***的管理模块的软件框架实现方法;对管理模块的主要功能抽象成函数库,并提供一组接口实现对存储***的管理功能,同时规定了业务实体需要实现的接口和继承的超类,并且通过配置文件的方式满足对存储***的特殊定制化管理需求。
本发明的技术任务是按以下方式实现的,一种存储***的管理模块的软件框架实现方法,所述的软件框架包括UI层、中间层和底层,UI层提供管理员或者上层应用管理接口,同时负责与中间层的通信交互;中间层负责和UI层、底层通信,用于实现用户空间数据和内核空间数据的交互;底层为上层功能需求的具体实现,主要运行于内核态,和实际硬件打交道。
UI层提供命令行工具或者API接口;中间层具体实现的功能和具体存储***有关,为了满足不同存储***的个性化要求,中间层通过配置文件对存储***进行相关配置;底层用于实现查询功能、对存储设备停止功能、对存储设备激活功能。
软件框架流程分成三个主要的步骤,即,输入命令、传递命令、实现命令,在实际过程中,命令的表现形式可以不同,比如API调用的形式或者命令行的形式;每个步骤对应本软件框架中由上至下的一个层次;软件框架管理命令主要分为四类:创建类、删除类、停止或激活类、查询类,四类管理命令满足一般情况下存储***的管理模块需求。
UI层负责输入命令,实现对管理模块的命令的解析功能,在UI层,主要的功能以函数库的形式对外提供服务,主要的功能有:命令的读取、解析、向下层传递,通过这种方式,简化了设计人员的开发复杂度,同时方便后续的扩展工作,命令行和API接口的实现调用统一的函数库接口;
中间层传递命令,负责UI层和底层的交互,一般运行于用户态空间,UI层获取管理模块的命令后经过处理,会传递给中间层,中间层会对命令进行再一次封装,同时中间层从配置文件处读取配置信息,实现不同存储***的特殊化需求,最后,把封装好的命令传递到内核态空间,同时读取从内核态空间返回的结果并解析上传到UI层;
底层实现命令,中间层封装好命令后就会向下传递到底层,底层负责实现中间层的功能请求,处理底层硬件相关的实现,运行于内核态,底层的实现多和具体的硬件设施相关,因此底层提供接口,用于实现元数据的修改、对磁盘的读写。
本发明的一种存储***的管理模块的软件框架实现方法具有以下优点:
1、抽象出管理模块的开发模式,形成一种软件框架,大大提升存储***管理模块的开发速度,提升开发人员的效率;
2、对管理模块的主要功能抽象成函数库,并提供一组接口实现对存储***的管理功能,同时规定了业务实体需要实现的接口和继承的超类,并且通过配置文件的方式满足对存储***的特殊定制化管理需求;
3、UI层对外提供的管理接口,通过实现管理接口为命令行工具和管理应用提供调用接口,命令行工具和API函数接口,前者提供给管理员使用,后者用于上层应用调用,同时,通过对主要功能函数模块化以函数库的形式提供服务,大大减少程序开发复杂度;
4、中间层读取配置文件获取特殊的管理需求,满足管理模块的差异化需求,同时负责用户态空间和内核态空间的数据通信,封装管理命令同时起到缓冲上下层间的通信,提高命令执行效率,接口函数采用库函数的形式提供调用服务;
5、底层抽象出存储***的管理模块的主要功能,形成四类接口,创建类,删除类,查询类和状态改变类,定义出相关接口,但是没有提供具体实现,需要设计人员自行实现,因此屏蔽掉底层硬件设施的管理代码,增加了软件框架的普通适用性。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种存储***的管理模块的软件框架实现方法的管理模块软件框架示意图;
附图2为一种存储***的管理模块的软件框架实现方法的软件框架各层主要函数接口及执行流程图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种存储***的管理模块的软件框架实现方法作以下详细地说明。
实施例1:
本发明的一种存储***的管理模块的软件框架实现方法,所述的软件框架包括UI层、中间层和底层,UI层提供管理员或者上层应用管理接口,同时负责与中间层的通信交互;中间层负责和UI层、底层通信,用于实现用户空间数据和内核空间数据的交互;底层为上层功能需求的具体实现,运行于内核态,和实际硬件打交道。
UI层提供命令行工具或者API接口;中间层通过配置文件对存储***进行相关配置;底层用于实现查询功能、对存储设备停止功能、对存储设备激活功能。
软件框架流程分成三个主要的步骤,即,输入命令、传递命令、实现命令,每个步骤对应本软件框架中由上至下的一个层次;软件框架管理命令主要分为四类:创建类、删除类、停止或激活类、查询类。
实施例2:
本发明的一种存储***的管理模块的软件框架实现方法,所述的软件框架包括UI层、中间层和底层,UI层提供管理员或者上层应用管理接口,同时负责与中间层的通信交互;中间层负责和UI层、底层通信,用于实现用户空间数据和内核空间数据的交互;底层为上层功能需求的具体实现,主要运行于内核态,和实际硬件打交道。
UI层提供命令行工具或者API接口;中间层具体实现的功能和具体存储***有关,为了满足不同存储***的个性化要求,中间层通过配置文件对存储***进行相关配置;底层用于实现查询功能、对存储设备停止功能、对存储设备激活功能。
软件框架流程分成三个主要的步骤,即,输入命令、传递命令、实现命令,在实际过程中,命令的表现形式可以不同,比如API调用的形式或者命令行的形式;每个步骤对应本软件框架中由上至下的一个层次;软件框架管理命令主要分为四类:创建类、删除类、停止或激活类、查询类,四类管理命令满足一般情况下存储***的管理模块需求。
UI层负责输入命令,实现对管理模块的命令的解析功能,在UI层,主要的功能以函数库的形式对外提供服务,主要的功能有:命令的读取、解析、向下层传递,通过这种方式,简化了设计人员的开发复杂度,同时方便后续的扩展工作,命令行和API接口的实现调用统一的函数库接口;
中间层传递命令,负责UI层和底层的交互,一般运行于用户态空间,UI层获取管理模块的命令后经过处理,会传递给中间层,中间层会对命令进行再一次封装,同时中间层从配置文件处读取配置信息,实现不同存储***的特殊化需求,最后,把封装好的命令传递到内核态空间,同时读取从内核态空间返回的结果并解析上传到UI层;
底层实现命令,中间层封装好命令后就会向下传递到底层,底层负责实现中间层的功能请求,处理底层硬件相关的实现,运行于内核态,底层的实现多和具体的硬件设施相关,因此底层提供接口,用于实现元数据的修改、对磁盘的读写。
实施例3:
本发明的一种存储***的管理模块软件框架实现方法,所述的软件框架有三个模块:UI层模块,中间层模块,底层模块,即每个层次对应了一个模块,UI模块实现命令行管理工具及管理API,中间层模块实现用户态空间和内核态空间的通信交互,底层模块具体实现对底层硬件设备的管理功能。
UI模通过公共的函数库,实现命令行的解析,容错等功能,用户根据提供的公共函数库实现命令行工具或者API接口,公共的函数库有以下几个主要函数:
command_resolve(),用于解析命令行参数;
send_command(),向中间层传递命令;
中间层模块负责处理上层传输下来的管理命令参数,进行封装后向下传递给底层,起到一个传递的作用,同时,中间层可以从配置文件中读取配置信息,对存储***进行特殊化配置,主要的函数有:
Get_con(),读取配置文件,获取管理***个性化要求;
Handle_command(),封装上层传输下来的命令并传递给底层处理,涉及到用户空间和内核空间的数据交互;
底层模块实现具体的管理功能,比如创建存储***,删除存储***,因此在底层代码中,主要提供了相关接口,并没有具体实现,因为实现代码和具体硬件相关,这种实现和接口相分离的设计使得本框架可以满足不同的硬件平台需求:
create(),创建功能,比如创建存储***或者逻辑卷;
delete(),删除功能,删除创建的池或者卷等;
extend(),扩容功能,负责对创建的池或者卷进行扩容;
reduce(),缩容功能,负责对创建的池或者卷进行缩容;
change(),停止/启动功能,启动或者停止池或者卷;
query(),查询功能,负责查询一些元数据信息,比如存储***路径,个数等,实现时,主要实现底层的管理接口,中间层通过相关的配置文件,通过配置文件可以屏蔽掉不同的存储管理***个性化要求。
实现管理功能时,首先UI层读取管理命令,并解析命令,并传给中间层;然后,中间层处理UI层传输下来的管理命令参数,进行封装后向下层传递,同时,中间层也可以从配置文件中读取配置信息,对存储***进行特殊化配置;最后,底层接受到中间层传输的数据,调用底层管理接口实现相关功能,下面对上述三个步骤详细介绍。
UI层获取管理命令后,首先调用command_resolve()函数解析管理命令,获取输入的命令参数后,通过send_command()函数传递到中间层,然后,中间层获取上层传输的命令后,调用get_con()从配置文件中读取特殊配置,调用handle_command()函数封装命令和配置传递给底层,最后,底层通过分析上层传入的数据,调用相应管理接口,如图2中所示。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
Claims (4)
1.一种存储***的管理模块的软件框架实现方法,其特征在于所述的软件框架包括UI层、中间层和底层,UI层提供管理员或者上层应用管理接口,同时负责与中间层的通信交互;中间层负责和UI层、底层通信,用于实现用户空间数据和内核空间数据的交互;底层为上层功能需求的具体实现,运行于内核态,和实际硬件打交道。
2.根据权利要求1所述的一种存储***的管理模块的软件框架实现方法,其特征在于UI层提供命令行工具或者API接口;中间层通过配置文件对存储***进行相关配置;底层用于实现查询功能、对存储设备停止功能、对存储设备激活功能。
3. 根据权利要求2所述的一种存储***的管理模块的软件框架实现方法,其特征在于软件框架流程分成三个主要的步骤,即,输入命令、传递命令、实现命令,每个步骤对应本软件框架中由上至下的一个层次;软件框架管理命令主要分为四类:创建类、删除类、停止或激活类、查询类。
4.根据权利要求3所述的一种存储***的管理模块的软件框架实现方法,其特征在于UI层负责输入命令,实现对管理模块的命令的解析功能,在UI层,主要的功能以函数库的形式对外提供服务,主要的功能有:命令的读取、解析、向下层传递,命令行和API接口的实现调用统一的函数库接口;
中间层传递命令,负责UI层和底层的交互, UI层获取管理模块的命令后经过处理,会传递给中间层,中间层会对命令进行再一次封装,同时中间层从配置文件处读取配置信息,实现不同存储***的特殊化需求,最后,把封装好的命令传递到内核态空间,同时读取从内核态空间返回的结果并解析上传到UI层;
底层实现命令,中间层封装好命令后就会向下传递到底层,底层负责实现中间层的功能请求,处理底层硬件相关的实现,运行于内核态,底层提供接口,用于实现元数据的修改、对磁盘的读写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510109076.2A CN104657149A (zh) | 2015-03-13 | 2015-03-13 | 一种存储***的管理模块的软件框架实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510109076.2A CN104657149A (zh) | 2015-03-13 | 2015-03-13 | 一种存储***的管理模块的软件框架实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104657149A true CN104657149A (zh) | 2015-05-27 |
Family
ID=53248335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510109076.2A Pending CN104657149A (zh) | 2015-03-13 | 2015-03-13 | 一种存储***的管理模块的软件框架实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657149A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469048A (zh) * | 2015-08-18 | 2017-03-01 | 北京神州泰岳软件股份有限公司 | 一种调用属性配置文件中内容的方法和装置 |
CN106874953A (zh) * | 2017-02-16 | 2017-06-20 | 北京小米移动软件有限公司 | 指纹识别测试方法及装置 |
CN107025109A (zh) * | 2015-12-26 | 2017-08-08 | 英特尔公司 | 使用二进制分析的本机代码援引的技术 |
CN107220133A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据交互方法、装置及*** |
CN107294783A (zh) * | 2017-06-30 | 2017-10-24 | 济南浪潮高新科技投资发展有限公司 | 一种交换机管理软件架构 |
CN107391201A (zh) * | 2017-07-27 | 2017-11-24 | 艾迪森海安数字医疗装备有限公司 | 一种动态业务数据的软件框架的数据流动实现方法 |
CN107708223A (zh) * | 2017-09-28 | 2018-02-16 | 努比亚技术有限公司 | 一种信息交互方法、设备及计算机可读存储介质 |
CN110889104A (zh) * | 2019-11-05 | 2020-03-17 | 福州汇思博信息技术有限公司 | 基于Android平台的设备数据采集方法、装置、设备和介质 |
CN112463049A (zh) * | 2020-11-26 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种定制化存储***的方法和设备 |
CN112685073A (zh) * | 2019-10-17 | 2021-04-20 | 天津天堰科技股份有限公司 | 一种***架构和应用该***架构的*** |
CN113760408A (zh) * | 2021-08-19 | 2021-12-07 | 深圳市新国都股份有限公司 | 分层调用方法、***、设备及存储介质 |
CN116319245A (zh) * | 2023-05-17 | 2023-06-23 | 南京中科算通科技有限公司 | 面向5g协议的分布式测试*** |
CN117744543A (zh) * | 2024-02-21 | 2024-03-22 | 三微电子科技(苏州)有限公司 | 一种基于语音交互的电子设计自动化软件架构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645342A (zh) * | 2005-01-21 | 2005-07-27 | 清华大学 | San环境中基于网络的海量存储资源管理方法 |
CN103678573A (zh) * | 2013-12-09 | 2014-03-26 | 浪潮(北京)电子信息产业有限公司 | 一种实现缓存加速的方法及*** |
CN104123194A (zh) * | 2014-07-16 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 内核态与用户态的通信结构及通信方法 |
-
2015
- 2015-03-13 CN CN201510109076.2A patent/CN104657149A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645342A (zh) * | 2005-01-21 | 2005-07-27 | 清华大学 | San环境中基于网络的海量存储资源管理方法 |
CN103678573A (zh) * | 2013-12-09 | 2014-03-26 | 浪潮(北京)电子信息产业有限公司 | 一种实现缓存加速的方法及*** |
CN104123194A (zh) * | 2014-07-16 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 内核态与用户态的通信结构及通信方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469048A (zh) * | 2015-08-18 | 2017-03-01 | 北京神州泰岳软件股份有限公司 | 一种调用属性配置文件中内容的方法和装置 |
CN107025109A (zh) * | 2015-12-26 | 2017-08-08 | 英特尔公司 | 使用二进制分析的本机代码援引的技术 |
CN106874953A (zh) * | 2017-02-16 | 2017-06-20 | 北京小米移动软件有限公司 | 指纹识别测试方法及装置 |
CN107220133A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据交互方法、装置及*** |
CN107294783A (zh) * | 2017-06-30 | 2017-10-24 | 济南浪潮高新科技投资发展有限公司 | 一种交换机管理软件架构 |
CN107391201B (zh) * | 2017-07-27 | 2020-03-27 | 艾迪森海安数字医疗装备有限公司 | 一种动态业务数据的软件框架的数据流动实现方法 |
CN107391201A (zh) * | 2017-07-27 | 2017-11-24 | 艾迪森海安数字医疗装备有限公司 | 一种动态业务数据的软件框架的数据流动实现方法 |
CN107708223B (zh) * | 2017-09-28 | 2021-01-15 | 努比亚技术有限公司 | 一种信息交互方法、设备及计算机可读存储介质 |
CN107708223A (zh) * | 2017-09-28 | 2018-02-16 | 努比亚技术有限公司 | 一种信息交互方法、设备及计算机可读存储介质 |
CN112685073A (zh) * | 2019-10-17 | 2021-04-20 | 天津天堰科技股份有限公司 | 一种***架构和应用该***架构的*** |
CN110889104B (zh) * | 2019-11-05 | 2022-03-25 | 福州汇思博信息技术有限公司 | 一种Android***设备的数据采集方法和装置 |
CN110889104A (zh) * | 2019-11-05 | 2020-03-17 | 福州汇思博信息技术有限公司 | 基于Android平台的设备数据采集方法、装置、设备和介质 |
CN112463049A (zh) * | 2020-11-26 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种定制化存储***的方法和设备 |
CN113760408A (zh) * | 2021-08-19 | 2021-12-07 | 深圳市新国都股份有限公司 | 分层调用方法、***、设备及存储介质 |
CN113760408B (zh) * | 2021-08-19 | 2023-12-01 | 深圳市新国都股份有限公司 | 分层调用方法、***、设备及存储介质 |
CN116319245A (zh) * | 2023-05-17 | 2023-06-23 | 南京中科算通科技有限公司 | 面向5g协议的分布式测试*** |
CN116319245B (zh) * | 2023-05-17 | 2023-08-29 | 南京中科算通科技有限公司 | 面向5g协议的分布式测试*** |
CN117744543A (zh) * | 2024-02-21 | 2024-03-22 | 三微电子科技(苏州)有限公司 | 一种基于语音交互的电子设计自动化软件架构 |
CN117744543B (zh) * | 2024-02-21 | 2024-05-14 | 三微电子科技(苏州)有限公司 | 一种基于语音交互的电子设计自动化*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657149A (zh) | 一种存储***的管理模块的软件框架实现方法 | |
CN109597814B (zh) | 一种后台管理信息***的在线快速交付*** | |
US8417739B2 (en) | Systems and methods for object-based modeling using hierarchical model objects | |
CN103049317B (zh) | 云环境下基于队列的高并发数据快速写入***及方法 | |
CN104965689A (zh) | 一种cpu/gpu的混合并行计算方法及装置 | |
CN102254021A (zh) | 基于虚拟机管理***的数据库构建方法 | |
CN102314358B (zh) | 一种在云平台上以soa的方式部署常规应用的方法 | |
CN105630472A (zh) | 制造执行***客户端快速开发框架及其软件开发方法 | |
CN102024204B (zh) | 一种面向服务架构的可靠性设计分析服务体系的构建方法 | |
CN201993811U (zh) | 云融合商业智能终端 | |
CN104991763A (zh) | 一种通用的游戏界面行为控制*** | |
CN101710281B (zh) | 基于Agent的动态集成开发平台***和方法 | |
CN103150154B (zh) | 一种应用程序插件的实现方法及装置 | |
CN102054217B (zh) | 基于元模型的工具中的实体变形 | |
US10216513B2 (en) | Plugin for multi-module web applications | |
CN103064670A (zh) | 基于位置网的创新平台数据管理方法及*** | |
CN105867944A (zh) | Web前端数据操作层及其实现方法 | |
CN113569508B (zh) | 基于id进行数据索引与访问的数据库模型构建方法及设备 | |
CN103617167A (zh) | 一种通用的元数据/关系映射框架 | |
CN104317578A (zh) | 基于引擎Lua脚本应用和引擎与Lua脚本相互调用方法及装置 | |
CN101789944B (zh) | 多功能电能表通信协议栈的开发*** | |
CN110532058B (zh) | 容器集群服务的管理方法、装置、设备及可读存储介质 | |
CN106293770A (zh) | 一种表数据的通用导表***和方法 | |
CN103631645A (zh) | 一种基于数字医疗的数字家庭中间件*** | |
CN103501341A (zh) | 一种Web服务的创建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150527 |
|
WD01 | Invention patent application deemed withdrawn after publication |