1.一种基于生物特征交叉验证的云投票方法,其特征在于:该云投票方法包括以下步骤:(1)应用系统TA标注
(1.1)应用系统TA通过服务标注SMa向云投票层标注需要使用的云投票层服务;
(1.2)TA通过服务标注SMa向云投票层标注自身提供服务的调用地址,TA必须提供三个服务的调用地址且必须是REST服务形式,分别是受评人服务,投票人服务,投票结果服务;
(1.3)云投票层通过服务标注SMa接收TA标注的信息并对标注的信息的有效性进行验证,有效性包括TA所需要的服务是否存在以及TA提供的服务是否完整;若验证通过,则通知TA标注成功,并返回标注码TACode,并进行图像处理模块初始化,若验证失败,则返回错误信息;
(2)图像处理模块初始化
(2.1)TA服务标注成功后,云投票层的图像处理模块即调用TA的投票人服务获取投票人信息,提取投票人与照片映射元组IPD;图像处理模块得到IDP后对其中的
(3)用户层路由映射
(3.1)用户层通过服务路由SRe向云投票层调用服务,用户层必须携带TACode,该TACode表示该用户需要路由到的TA;
(3.2)服务路由SRe通过TACode在服务标注SMa中映射对应的TA,若映射成功则通知用户层映射成功,进行接用户层验证。若映射失败则结束;
用户层路由映射成功后,用户即可进行投票,投票过程中,用户层通过Web服务的方式调用云投票层封装的REST服务,投票人发出的所有请求都会被验证模块SS_V拦截,验证模块SS_V对发起请求的用户进行身份和权限认证,在该验证过程中会调用核心服务层的图像处理模块并调用TAi的Web服务获得持久层数据TIN,若验证通过再将请求转发至投票模块SS_T,投票模块SS_T的业务逻辑组件在完成其功能的过程中,会调用TAi的Web服务获取持久层的数据SIN和TR并进行交互;
(4)用户防伪造验证
(4.1)用户层映射成功后,自动启动设备摄像头,投票人选择进行拍摄或者退出使用的客户端,投票人无法从本地相册中选取照片,照片拍摄会在一秒之内拍摄三张,组成照片组VT,投票人选择是否上传VT,若选择不上传,则重新进行拍摄;
(4.2)投票人选择上传VT后,用户层通过服务路由SRe调用云投票层封装的REST服务apFaceVerification(),该方法向云投票层发起人脸验证请求,云投票层SS_V模块收到请求后获取VT,调用faceVerification()进行人脸验证,faceVerfication()会调用云投票层SS_G模块的图像差值匹配对VT进行验证;
(4.2.1)云投票层SS_G模块的图像差值匹配会调用calHSV()计算照片的HSV,通过调用hasBrightSpot()来检查局部亮点,若有局部亮点,则云投票层判定非正常情况,验证失败;若验证成功,则进行RGB差值计算;
(4.2.2)云投票层SS_G模块的图像差值匹配调用calRGB()计算照片的RGB,将三张照片的RGB做差值运算,差值运算若结果若为零,则表示三张照片完全一样,云投票层判定非正常情况,验证失败,否则,验证通过;
(5)用户人脸特征验证
(5.1)VT验证通过后,云投票层SS_V模块随机抽取照片组V3的一张照片,调用云投票层SS_G模块的getCharac()进行预处理并提取特征T_characi;
(5.2)云投票层SS_T使用提取的特征T_characi调用getTId(),该方法会通过服务标注SMa调用TA封装的REST服务,该服务会在持久层中查找对应的IDC;若没有找到,表示该投票人不是合法的投票人。若能找到则返回给云投票层的SS_T;
(6)生成并发送投票码
(6.1)若能成功查找到IDC,就唯一确定投票人T_idi,云投票层SS_T的投票码模块调用generateTCode()为T_idi生成投票码T_codei,组成ICC;
(6.2)云投票层SS_T模块调用sendTCode(),sendTCode()通过T_idi在单元信息对象DPM中查找对应的T_maili,将T_codei以邮件形式发送至T_maili;
(7)用户层登陆验证
(7.1)用户层的投票人在进行登录时需要输入从邮箱获取的投票码T_codei,并且拍摄一张人脸照片T_pici,用户层的客户端会自动从客户端系统中获取T_UUIDi,生成登录验证对象IPD,通过服务路由SRe调用云投票层的REST服务apLogin()提交登陆请求;UUID是指在一台机器上生成的数字;
(7.2)云投票层SS_V模块调用getIPD()获取T_pici,并且调用SS_G进行图像预处理与特征提取,得到图像特征T_characi;调用isMatching(),isMathcing()通过用户提交的T_codei与得到的T_characi在ICC中查找对应的T_idi,若找到,则表示投票人合法,调用generateICU()将T_UUIDi加入到合法UUID队列,生成ICU;
T_UUIDi加入到合法UUID队列后,在之后的流程中,投票人请求查看受评人信息和提交选票都自动提交发出请求的客户端的UUID,SS_V进行查询合法性验证时从ICU队列中查找匹配的UUID,若存在,表示合法;
(8)获取受评人信息
(8.1)用户登录验证通过后,云投票层SS_V调用getAppraiseeInfo()向SS_T请求受评人信息;
(8.2)云投票层SS_T通过REST服务通过服务路由SRe找到对应的应用系统TA,使用REST方式调用TA的受评人服务获取受评人信息,成功获取后通过回调函数sendAppraiseeInfo()将受评人信息发送给用户层;
(8.3)用户层调用bowerAppraiseeInfo()获取并显示受评人信息;
(9)提交选票数据
(9.1)用户层的投票人在浏览受评人信息后进行投票,投票完成后用户层调用commitVote()提交选票数据;
(9.2)选票数据首先会经过云投票层的SS_V模块进行选票有效性验证,SS_V通过getVote()获取选票数据,并且进行UUID的合法性验证;若是合法用户,则调用云投票层的SS_T模块进行选票的统计,否则,选票废弃;
(9.3)云投票SS_V模块通过getVoteInfo()将选票数据发送给SS_T模块,SS_T模块对选票数据进行统计。
2.如权利要求1所述的一种基于生物特征交叉验证的云投票方法,其特征在于:所述云投票方法还包括以下步骤:(10)选票持久化(10.1)云投票层SS_T的计票模块在完成选票统计后为了抗抵赖和保密性,调用blindVoteEncryption()对提交选票的投票人的ICU进行数字签名;
(10.2)通过服务标注SMa找到对应的应用系统TA,调用TA的投票结果服务将选票数据持久化至持久层。
3.如权利要求2所述的一种基于生物特征交叉验证的云投票方法,其特征在于:所述云投票方法还包括以下步骤:(11)投票结果公示(11.1)云投票层SS_T通过服务路由SRe和服务标注SMa将用户层投票人与应用系统TA映射,通过调用TA的投票结果服务获取投票结果,并通过数字签名查看投票结果是否被篡改。若结果正常则调用pushResult()方法将数据发送至对应的用户层投票人;
(11.2)用户层投票人通过bowerResult()查看投票结果。
4.如权利要求1~3之一所述的一种基于生物特征交叉验证的云投票方法,其特征在于:所述步骤(1.2)中,受评人服务会由云投票层SS_T的受评人模块调用,投票人服务会由云投票层SS_T的投票人模块调用,投票结果服务会有云投票层SS_T的实时推送模块调用。