[发明专利]面向云平台可信性验证的可靠数据采集方法在审
申请号: | 201710341312.2 | 申请日: | 2017-05-12 |
公开(公告)号: | CN108881350A | 公开(公告)日: | 2018-11-23 |
发明(设计)人: | 王琦 | 申请(专利权)人: | 深圳中软华泰信息技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;H04L12/24 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518029 广东省深圳市福田区八卦*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 云平台 可信性验证 数据采集终端 数据采集 消息队列服务 可靠数据 数据采集服务 数据采集工具 采集 计算节点 可信评估 守护进程 虚拟主机 重要意义 资源消耗 通用的 有效地 云服务 云计算 构建 日志 可信 保证 部署 | ||
1.面向云平台可信性验证的可靠数据采集方法,其特征在于:在云平台各个计算节点/虚拟主机上,部署数据采集工具和可靠的数据采集终端。数据采集终端周期性调用数据采集工具完成数据采集,将采集到的数据进行解析和预处理,封装为报文,签名并加密后发送给数据采集服务器。数据采集服务器(以集群形式组织)上运行有可靠消息队列服务负责缓存报文,同时运行有数据分析处理程序负责解析报文内容、持久化存储数据和评估云平台可信性;
该方法的步骤包括:
步骤一,在云平台内部环境中部署数据采集服务器;
步骤二,在云平台各计算节点/虚拟主机上部署数据采集工具和可靠数据采集终端;
步骤三,启动可靠数据采集终端并完成自检。可靠数据采集终端程序启动后,首先加载配置,然后检查预写日志(WAL,Write Ahead Log)中的内容,判断终端上一次运行是否正常结束。如果上一次运行异常终止,则需要将未成功发送的数据进行重发;
步骤四,自检结束后,可靠数据采集终端进入数据采集阶段。按照配置要求,周期性地调用数据采集工具完成数据采集。采集得到的数据,经过简单的数据预处理、消息签名、加密后封装为数据报文。数据报文将被首先写入预写日志,然后发送给数据采集服务器。
步骤五,数据采集服务器以集群的形式组织,部署可靠的消息队列服务(如Kafka),可以将收到的消息持久化存储在集群中,供数据分析处理程序进行后续处理。
通过上述步骤,本发明的方法能够有效地保证数据采集的可靠性,为建立第三方云平台可信性评测平台提供支持。
2.根据权利要求1所述的面向云平台可信性验证的可靠数据采集方法,其特征在于:
本发明的实施由数据采集工具、可靠数据采集终端以及数据采集服务器三部分组成,如说明书附图1所示。数据采集工具由第三方提供,根据具体的数据采集需要进行选择。可靠数据采集终端由数据采集工具适配器、任务调度模块、加密/签名模块、预写日志模块、消息传输模块等组成,如说明书附图2所示。其中的任务调度模块可以使用Quartz工具包构建,其他模块都可以使用JDK自带的API实现。同时为了能够在数据采集终端异常退出后自动重新启动,可以使用Supervisor工具将数据采集终端包装为一个系统服务,由Supervisor自动监控数据采集终端的执行情况,并在适当的时候重启数据采集终端。
可靠数据采集终端的设计,是本发明的核心,其执行流程如说明书附图3所示,包括如下步骤:
步骤一,可靠数据采集终端启动后,首先读取配置文件。配置文件以键值对的形式组织,包含下列信息:
1)数据采集服务器地址:
serverAddress=XXX.XXX.XXX.XXX:YYYY
2)预写日志所在目录:
walDir=/…/…/
3)Quartz定时器任务配置文件:
quartz=…/quartz.properties
4)数据采集工具及相应适配器:
tool.MEMINFO=cat/proc/meminfo
adapter.MEMINFO=AAA
tool.TOP=/usr/bin/top -n 1
adapter.TOP=BBB
注:每个数据采集工具及相应的适配器在配置文件中分别对应一条配置记录。如上面的例子中是MEMINFO和TOP工具的配置信息。可以看到,MEMINFO和TOP工具的执行命令分别为cat/proc/meminfo以及/usr/bin/top -n 1;MEMINFO和TOP工具的适配器程序分别为AAA和BBB。使用Java语言作为开发工具的情况下,AAA和BBB应该为适配器类的完整类名。
步骤二,完成配置信息读取后,数据采集终端需要检查预写日志的内容,如果数据采集终端的上一次运行没有正常退出,则需要检查预写日志中是否有未发送成功的报文记录,如果有,需要重发报文,否则,数据采集终端可以正常启动。预写日志的格式如下:
CRC:针对Message内容进行的CRC校验结果
MessageId:报文的唯一ID
Type:WAL的类型,可能取值为:1(SENT,表示报文已发出,但服务端可能并没有收到);2(ACKNOWLEDGED,表示服务端已经成功收到报文并向数据采集终端确认)
Length:Message部分的长度
Message:报文内容,长度可变,其长度由Length字段决定
从预写日志的格式可以看出,一条发送成功的报文,在预写日志中对应两条记录;如果仅找到一条记录,则需要重发该条报文。通过这种形式,可以保证报文发送的可靠性。
步骤三,报文补发结束后。根据配置,数据采集终端依赖Quartz框架实现数据采集工作的周期性调度。任务调度方面,Quartz支持crontab风格的任务时间设定,如:
0 0/3 16-23 * * ?
表示任务从16点至23点之间每三分钟执行一次。同时,Quartz提供了Job和JobDetail类来实现具体的业务逻辑。
步骤四,根据任务调度配置,Quartz框架周期性地启动数据采集工具完成数据采集工作。采集得到的数据,由适配器进行解析与处理,并加密、签名后封装为报文,本发明中,数据报文格式如下:
CRC:针对Message内容进行的CRC校验结果
ClientID:当前数据采集终端ID,可以在部署数据采集终端时设置
Signature:报文的签名
Length:报文中Message部分的长度
Message:报文内容,长度可变,其长度由Length字段决定
进一步地,报文中,Message部分格式如下:
URI:数据采集项的URI标识,用于唯一确定这一消息所刻画的云平台可信评估参数。
TimeStamp:Long型的时间戳,表示数据采集的时间。
Value:实际采集到的数据值,其格式和含义由URI决定
步骤五:生成的报文,首先写入预写日志,然后通过数据采集服务器上部署的可靠消息队列服务的客户端发送给数据采集服务器。发送成功的消息,将进一步将发送成功的结果写入预写日志。
通过上述的步骤,已经能够确保采集到的数据被可靠地发送到数据采集服务器;而数据采集终端自身的可靠性,可以借助Supervisor工具来实现,具体来说,可以将数据采集终端程序封装为服务进程,使用supervisorctl启动该服务进程,交由supervisord进行监控,当数据采集终端程序所在服务进程异常退出或被意外杀死时,自动重新启动该进程的执行。
数据采集服务器的构建相对较为简单,可以使用现有的可靠消息队列服务,如Kafka,来搭建。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳中软华泰信息技术有限公司,未经深圳中软华泰信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710341312.2/1.html,转载请声明来源钻瓜专利网。