一种防止数据重复提交的装置及其方法与流程

文档序号:11254039阅读:486来源:国知局
一种防止数据重复提交的装置及其方法与流程

本发明涉及通信技术领域,更具体地说,涉及一种防止数据重复提交的装置及其方法。



背景技术:

目前,在互联网应用中,客户端(app)和服务器之间的数据交互都是采用服务器暴露接口给客户端进行调用来实现,在app向服务器提交表单的时候,通常是通过用户点击提交数据的按钮来触发客户端上的数据提交操作,但是该触发方式通常会由于用户点击过快、网络延迟、或者客户端的卡顿而使得用户误判没有提交成功而选择再次提交,这就造成了数据的重复提交。

而现有的解决方式是在用户点击提交数据按钮的时候,客户端自动将按钮禁用,或者将该客户端的整个操作界面全部禁用,直到提交完毕后再将按钮变为可用状态。该方式在一定程度上降低了重复提交的现象,但是并不能完全避免,当在用户操作频率较为快速时,还是会出现数据重复提交,并且该直接禁用界面的方式导致了开发商的开发难度。



技术实现要素:

本发明提供了一种防止数据重复提交的装置及其方法,以解决客户端向服务器提交数据的过程中会存在重复提交的技术问题。

为解决上述技术问题,本发明提供一种防止数据重复提交的装置,包括:接收模块、第一获取模块、签名模块、第一判断模块和提交模块;

所述接收模块用于接收客户端下发的数据提交请求;

所述第一获取模块用于根据所述数据提交请求获取所述客户端中待提交的用户数据;

所述签名模块用于对所述待提交的用户数据进行签名处理,生成第一签名值;

所述第一判断模块用于判断在数据缓存列表中是否存在与所述第一签名值相同的签名值;

所述提交模块用于在所述数据缓存列表中存在与所述第一签名值相同的签名值时,拒绝所述客户端请求提交的用户数据。

进一步地,所述签名模块用于根据预设的数据提交格式对所述待提交的用户数据进行格式转换;根据签名运算算法对所述转换后的用户数据进行签名处理,生成第一签名值。

进一步地,所述装置还包括:第二获取模块,用于获取所述客户端的身份标识信息;

所述第一判断模块用于根据所述第一签名值查询所述数据缓存列表中是否存在相同的签名值;若查询所述数据缓存列表中存在相同的签名值,则判断所述身份标识信息与所述签名值对应的身份识别信息是否一致;若判断所述身份标识信息与所述签名值对应的身份识别信息一致,则所述提交模块拒绝所述客户端请求提交的用户数据。

进一步地,所述装置还包括:第二判断模块,用于判断查询到的所述签名值是否在有效期内,若所述签名值的有效期已过,则所述提交模块将所述第一签名值更新至所述数据缓存列表中,并执行提交用户数据的提交操作;若所述签名值的有效期未过,则所述提交模块拒绝所述客户端请求提交的用户数据。

进一步地,所述签名模块用于根据哈希运算算法对转换后的用户数据进行哈希运算,得到第一哈希值。

进一步地,本发明还提供了一种防止数据重复提交的方法,包括:

接收客户端下发的数据提交请求;

根据所述数据提交请求获取所述客户端中待提交的用户数据;

对所述待提交的用户数据进行签名处理,生成第一签名值;

判断在数据缓存列表中是否存在与所述第一签名值相同的签名值;

若在所述数据缓存列表中存在与所述第一签名值相同的签名值,则拒绝所述客户端请求提交的用户数据。

进一步地,所述对所述待提交的用户数据进行签名处理,生成第一签名值包括:

根据预设的数据提交格式对所述待提交的用户数据进行格式转换;

根据签名运算算法对所述转换后的用户数据进行签名处理,生成第一签名值。

进一步地,在所述对所述待提交的用户数据进行签名处理之前,还包括:获取所述客户端的身份标识信息;

所述判断在数据缓存列表中是否存在于所述第一签名值相同的签名值包括:

根据所述第一签名值查询所述数据缓存列表中是否存在相同的签名值;

若查询所述数据缓存列表中存在相同的签名值,则判断所述身份标识信息与所述签名值对应的身份识别信息是否一致;

若所述身份标识信息与所述签名值对应的身份识别信息一致,则拒绝所述客户端请求提交的用户数据。

进一步地,在所述查询所述数据缓存列表中存在相同的签名值之后,还包括:判断查询到的所述签名值是否在有效期内,若所述签名值的有效期已过,则将所述第一签名值更新至所述数据缓存列表中,并执行提交用户数据的提交操作;若所述签名值的有效期未过,则拒绝所述客户端请求提交的用户数据。

进一步地,所述根据签名运算算法对转换后的用户数据进行签名处理,得到第一签名值包括:根据哈希运算算法对所述转换后的用户数据进行哈希运算,得到第一哈希值。

本发明的有益效果是:

本发明提供的防止数据重复提交的装置及其方法,在接收到数据提交请求后,根据请求获取对应的待提交的用户数据,并对该用户数据进行签名,得到第一签名值,然后判断在数据缓存列表中是否存在与该第一签名值相同的签名值,若存在,则拒绝客户端的数据提交请求;通过在提交数据的同时,对该需要提交的数据进行签名,根据签名判断该数据是否已经被提交,若已提交,则拒绝请求,从而实现了防止数据重复提交的问题,提高了数据提交的效率。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

图2为实现本发明各个实施例一个可选的服务器的结构示意图。

图3为本发明实施例一提供的防止数据重复提交的装置的结构框图。

图4为本发明实施例二提供的防止数据重复提交的装置的另一种结构框图。

图5为本发明实施例三提供的防止数据重复提交的方法的流程图。

图6为本发明实施例四提供的防止数据重复提交的方法的另一种流程图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设本申请中的客户端是移动终端,然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

移动终端100可以包括无线通信单元110、输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件,可以替代地实施更多或更少的组件,将在下面详细描述移动终端的元件。

无线通信单元110通常包括一个或多个组件,其允许移动终端100与服务器或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113中的至少一个。

广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括tv广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与tv或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(dmb)的电子节目指南(epg)、数字视频广播手持(dvb-h)的电子服务指南(esg)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(dmb-t)、数字多媒体广播-卫星(dmb-s)、数字视频广播-手持(dvb-h),前向链路媒体(mediaflo@)的数据广播系统、地面数字广播综合服务(isdb-t)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。

移动通信模块112将无线电信号发送到基站(例如,接入点等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的网络数据。

无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括wlan(无线lan)(wi-fi)、wibro(无线宽带)、wimax(全球微波互联接入)、hsdpa(高速下行链路分组接入)等等。

在本发明中,当客户端需要进行数据提交时,通过无线通信单元110向服务器发送数据提交请求,并将需要提交的用户数发送给服务器,再由服务器进行数据签名处理,判断该数据是否是重复提交的数据。

输入单元120用于接收音频或视频信号。输入单元120可以包括相机121和麦克风1220,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示模块151上。经相机121处理后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端的构造提供两个或更多相机121。麦克风122可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。

用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示模块151上时,可以形成触摸屏。

在本发明中,所述待提交的用户数据具体可以通过输入单元120获取,然后通过无线通信单元110发送给服务器处理,也可以是移动终端100从互联网上获取到的互联网数据。优选的,还可以是用户通过用户输入单元130自行输入的数据,例如文字、短息消息等

感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。感测单元140可以包括接近传感器141。

接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(uim)、客户识别模块(sim)、通用客户识别模块(usim)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。

另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。

输出单元150可以包括显示模块151、音频输出模块152、警报模块153等等。

显示模块151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示模块151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(ui)或图形用户界面(gui)。当移动终端100处于视频通话模式或者图像捕获模式时,显示模块151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的ui或gui等等。

同时,当显示模块151和触摸板以层的形式彼此叠加以形成触摸屏时,显示模块151可以用作输入装置和输出装置。显示模块151可以包括液晶显示器(lcd)、薄膜晶体管lcd(tft-lcd)、有机发光二极管(oled)显示器、柔性显示器、三维(3d)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为toled(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示模块(或其它显示装置),例如,移动终端可以包括外部显示模块(未示出)和内部显示模块(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。

音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括扬声器、蜂鸣器等等。

警报模块153可以提供输出以将事件的发生通知给移动终端100。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报模块153可以以不同的方式提供输出以通知事件的发生。例如,警报模块153可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incomingcommunication)时,警报模块153可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报模块153也可以经由显示模块151或音频输出模块152提供通知事件的发生的输出。

存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。

控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。

电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。

至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。

如图2所示,为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:输入输出(io)总线21、处理器22、存储器23、内存24和通信装置25。其中,

输入输出(io)总线21分别与自身所属的服务器的其它部件(处理器22、存储器23、内存24和通信装置25)连接,并且为其它部件提供传送线路。

处理器22通常控制自身所属的服务器的总体操作。例如,处理器22执行计算和确认等操作。其中,处理器22可以是中央处理器(cpu)。

存储器23存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器22执行本文描述的功能的指令(即软件执行功能)。

内存24,一般采用半导体存储单元,包括随机存储器(ram),只读存储器(rom),以及高速缓存(cache),ram是其中最重要的存储器。内存24是计算机中重要的部件之一,它是与cpu22进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放cpu22中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,cpu22就会把需要运算的数据调到内存中进行运算,当运算完成后cpu22再将结果传送出来,内存的运行也决定了计算机的稳定运行。

通信装置25,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。

其中,本发明提供的防止数据重复提交的装置中的各模块可以通过上述的服务器来实现,其处理过程为通过通信模块25接收移动终端100发送的数据提交请求以及待提交的用户数据,处理器22对用户数据进行签名处理,得到第一签名值,根据该第一签名值查询内存24中是否存在相同的签名值,若存在,则处理器22直接拒绝移动终端100的数据提交请求。

进一步地,本发明提供的防止数据重复提交的装置中各模块所实现的功能,还可以通过软件代码来实现,其实现具体是将接收模块、第一获取模块、第二获取模块、签名模块、第一判断模块、第二判断模块和提交模块的功能实现的软件代码可存储在存储器23中,并由处理器22执行或编译后执行。

以下通过具体实施例进行详细说明。

实施例一:

参照图3,图3为本发明实施例一提供的防止数据重复提交的装置的结构框图,该装置是基于上述现有的服务器硬件结构所提出的一种能实现防止数据重复提交的方案,具体的,本实施例提供的防止数据重复提交的装置包括:接收模块31、第一获取模块32、签名模块33、第一判断模块34和提交模块35,其中:

接收模块31用于接收客户端下发的数据提交请求,该数据提交请求用于从客户端中获取对应的待提交的用户数据。

第一获取模块32用于对根据所述数据提交请求获取所述客户端中待提交的用户数据。

签名模块33用于对所述待提交的用户数据进行签名处理,生成第一签名值。

第一判断模块34用于判断在所述数据缓存列表中是否存在与所述第一签名值相同的签名值。

若存在,则提交模块35拒绝所述客户端请求提交的用户数据。

在本实施例中,还包括:当第一判断模块34的判断结果为在数据缓存列表中不存在相同的签名值时,则提交模块35接收客户端的数据提交请求,并执行对应的数据提交操作,同时还将通过签名模块33签名得到的第一签名值和对应的客户端的身份标识信息存储到数据缓存列表中。

在本实施例中,所述签名模块33在对待提交的用户数据进行签名处理时,具体包括:首先将从客户端中获取到的用户数据进行格式的转换,优选的,根据预设的数据提交格式进行转换,例如,数据提交的格式为一串按时间顺序排序的字符串,而签名模块33在进行签名之前,要将接收到的所有用户数据根据接收的时间顺序进行排序,然后按照排序的顺序串联起来,得到一个字符串,该字符串的格式为“数据名称1+数据内容1+数据名称2+数据内容2……”的形式,最后签名模块33根据转换后的用户数据(即是得到字符串)进行签名处理,得到第一签名值,该第一签名值可以是一个数字,也可以是一串字符串。第一判断模块34根据该第一签名值判断客户端请求提交的用户数据是否已被提交,若是,则拒绝提交请求,若否,则执行数据提交操作,并将第一签名值缓存至数据缓存列表中。

为了进一步地提高判断是否重复提交的准确率,在本实施例中,所述装置还包括对需要提交数据的客户端的身份标识信息进行比对,若判断存在相同的签名值的同时,其身份标识信息也相同的情况下,判定该客户端提交的用户数据在此之前已提交过了,若签名值和身份标识信息中存在一者不同,则判定该提交的用户数据不是重复的数据。

在实际应用中,本实施例提供的防止数据重复提交的装置具体是通过根据数据提交请求获取客户端中待提交的用户数据以及该客户端的身份标识信息,对该获取到的用户数据进行签名处理,得到第一签名值,然后根据该第一签名值在数据缓存列表中查询是否存在相同的签名值,若存在,则获取该签名值对应的身份识别信息,并将比较该身份识别信息与客户端的身份标识信息是否一致,若一致,则通知提交模块35拒绝该客户端发送的数据提交请求,若不一致,则提交模块35接收客户端请求提交的用户数据,并执行对应的数据提交操作。

在本实施例中,在查询所述数据缓存列表中存在相同的签名值之后,还包括:判断所述查询到的签名值是否还在有效期内,由于客户端的用户数据会不断地随着时间的增加而增加,比如其数据的刷新时间为15秒,那么在该15秒内客户端中的用户数据是不会增加,而15秒之后有可能会发生变化,所以当客户端在15秒的时间内进行多次的数据提交时,就会被认为是重复提交,因此,为了避免该种误操作,本实施例还为数据缓存列表中的签名值设置一个有效时间,例如15秒,在该15秒内查询出的相同的签名值是有效的。

当判断所述签名值的有效期已过,则将所述第一签名值更新至所述数据缓存列表中,并执行提交用户数据的提交操作。

当判断所述签名值的有效期未过,则拒绝所述客户端请求提交的用户数据。

在实际应用中,在所述数据缓存列表中存储签名值时,具体还包括存储客户端的身份标识信息,并将签名值和身份标识信息一起打包存储,优选的,可以按照“签名值+身份标识信息”的格式进行存储。

在本发明提供的实施例中,所述装置在对待提交的用户数据进行签名处理时,具体可以通过特定的签名运算算法进行签名,例如,哈希运算算法,根据哈希运算算法对所述转换后的用户数据进行哈希运算,得到第一哈希值,根据该哈希值查询在数据缓存列表中是否存在相同的哈希值,最后根据查询结果对该数据提交请求进行处理。

在实际应用中,对于签名处理的签名运算算法,只要使得计算出来的值是唯一的不可逆的均可以。

本实施例提供的防止数据重复提交的装置,通过设置签名模块对客户端提交的用户数据进行签名处理,得到一个签名值,并根据该签名值判断出该用户数据是否已经提交过了,从而实现了防止数据重复提交的问题,提高了数据提交的效率。

进一步地,本实施例还设定了签名值的有效期,只有在预设时间段内查询到的签名值才能作为重复提交的判断依据,本发明利用时间进行请求重复提交的判定,不仅解决了重复提交数据的问题,还解决了提交数据处理装置拓展性差的问题,进而达到了既能够防止请求重复提交,又能够提高装置拓展性以及数据的处理效率。

实施例二:

参照图4,图4为本发明实施例二提供的防止数据重复提交的装置的结构框图,本实施例提供的装置包括:接收模块31、第一获取模块32、签名模块33、第一判断模块34和提交模块35,其中:

接收模块31用于接收客户端下发的数据提交请求,该数据提交请求用于从客户端中获取对应的待提交的用户数据。

第一获取模块32用于对根据所述数据提交请求获取所述客户端中待提交的用户数据。

签名模块33用于对所述待提交的用户数据进行签名处理,生成第一签名值。

第一判断模块34用于判断在所述数据缓存列表中是否存在与所述第一签名值相同的签名值。

若存在,则提交模块35拒绝所述客户端请求提交的用户数据。

在本实施例中,还包括:当第一判断模块34的判断结果为在数据缓存列表中不存在相同的签名值时,则提交模块35接收客户端的数据提交请求,并执行对应的数据提交操作,同时还将通过签名模块33签名得到的第一签名值和对应的客户端的身份标识信息存储到数据缓存列表中。

在实际应用中,在所述数据缓存列表中存储签名值时,具体还包括存储客户端的身份标识信息,并将签名值和身份标识信息一起打包存储,优选的,可以按照“签名值+身份标识信息”的格式进行存储。

在本实施例中,所述签名模块33对所述待提交的用户数据进行签名处理,生成第一签名值具体是通过以下方式实现:

根据预设的数据提交格式对所述待提交的用户数据进行格式转换;

根据签名运算算法对所述转换后的用户数据进行签名处理,生成第一签名值。

在实际应用中,数据提交的格式可以理解为是一串按时间顺序排序的字符串,而签名模块33根据预设的数据提交格式对所述待提交的用户数据进行格式转换即是将接收到的所有用户数据根据接收的时间顺序进行排序,然后按照排序的顺序串联起来,得到一个字符串,例如得到的字符串的格式为“数据名称1+数据内容1+数据名称2+数据内容2……”的形式,最后签名模块33根据转换后的用户数据(即是得到字符串)进行签名处理,得到第一签名值,该第一签名值可以是一个数字,也可以是一串字符串。

进一步地,该签名模块33在对所述字符串进行签名处理时,具体可以通过特定的签名运算算法进行签名,例如:哈希运算算法,根据哈希运算算法对所述字符串进行哈希运算,得到第一哈希值,根据该第一哈希值查询在数据缓存列表中是否存在相同的哈希值,最后根据查询结果对该数据提交请求进行处理。

在实际应用中,对于签名处理的签名运算算法,只要使得计算出来的值是唯一的不可逆的均可以。

在本实施例中,所述装置除了对签名值进行判断之外,还包括:对需要提交数据的客户端的身份标识信息进行比对,若判断存在相同的签名值的同时,其身份标识信息也相同的情况下,判定该客户端提交的用户数据在此之前已提交过了,若签名值和身份标识信息中存在一者不同,则判定该提交的用户数据不是重复的数据。

具体的所述装置还包括:第二获取模块36,用于获取所述客户端的身份标识信息;

所述第一判断模块34用于根据所述第一签名值查询所述数据缓存列表中是否存在相同的签名值;若查询所述数据缓存列表中存在相同的签名值,则判断所述身份标识信息与所述签名值对应的身份识别信息是否一致;若所述身份标识信息与所述签名值对应的身份识别信息一致,则所述提交模块35拒绝所述客户端请求提交的用户数据。若不一致,则执行提交用户数据的提交操作。

在实际应用中,本实施例提供的防止数据重复提交的装置具体是通过根据数据提交请求获取客户端中待提交的用户数据以及该客户端的身份标识信息,对该获取到的用户数据进行签名处理,得到第一签名值,然后第一判断模块34根据该第一签名值在数据缓存列表中查询是否存在相同的签名值,若存在,则获取该签名值对应的身份识别信息,并将比较该身份识别信息与客户端的身份标识信息是否一致,若一致,则通知提交模块35拒绝该客户端发送的数据提交请求,若不一致,则提交模块35接收客户端请求提交的用户数据,并执行对应的数据提交操作。

在实际应用中,由于客户端的用户数据会不断地随着时间的增加而增加,比如其数据的刷新时间为15秒,那么在该15秒内客户端中的用户数据是不会增加,而15秒之后有可能会发生变化,所以当客户端在15秒的时间内进行多次的数据提交时,就会被认为是重复提交,因此,为了避免该种误操作,本实施例还为数据缓存列表中的签名值设置一个有效时间,例如15秒,在该15秒内查询出的相同的签名值是有效的。

对此,本实施例提供的装置还包括:第二判断模块37,用于判断查询到的所述签名值是否在有效期内,若所述签名值的有效期已过,则所述提交模块35将所述第一签名值更新至所述数据缓存列表中,并执行提交用户数据的提交操作;若所述签名值的有效期未过,则所述提交模块35拒绝所述客户端请求提交的用户数据。

在实际应用中,所述防止数据重复提交的装置中的各模块可以通过图2中的服务器来实现,其中,所述接收模块31、第一获取模块32和第二获取模块36采用通信装置25来实现,所述签名模块33、第一判断模块34、提交模块35和第二判断模块37采用处理器22实现,具体步骤为:所述通信装置25用于接收客户端下发的数据提交请求,根据所述数据提交请求获取所述客户端中待提交的用户数据;所述处理器22用于对所述待提交的用户数据进行签名处理,生成第一签名值,并判断在数据缓存列表中是否存在与所述第一签名值相同的签名值,若在所述数据缓存列表中存在与所述第一签名值相同的签名值,则拒绝所述客户端请求提交的用户数据。

在本实施例中,所述处理器25在对所述待提交的用户数据进行签名处理时,具体是根据预设的数据提交格式对所述待提交的用户数据进行格式转换,根据签名运算算法对所述转换后的用户数据进行签名处理,生成第一签名值,优选的,所述签名运算算法为哈希运算算法。

所述通信装置25还用于获取所述客户端的身份标识信息;所述处理器22根据所述第一签名值查询所述数据缓存列表中是否存在相同的签名值;若查询所述数据缓存列表中存在相同的签名值,则判断所述身份标识信息与所述签名值对应的身份识别信息是否一致;若所述身份标识信息与所述签名值对应的身份识别信息一致,则拒绝所述客户端请求提交的用户数据。

所述处理器22还用于判断查询到的所述签名值是否在有效期内,若所述签名值的有效期已过,则将所述第一签名值更新至所述数据缓存列表中,并执行提交用户数据的提交操作;若所述签名值的有效期未过,则拒绝所述客户端请求提交的用户数据。

本实施例提供的防止数据重复提交的装置,通过设置签名模块对客户端提交的用户数据进行签名处理,得到一个签名值,并根据该签名值判断出该用户数据是否已经提交过了,从而实现了防止数据重复提交的问题,提高了数据提交的效率。另外,该装置还设定了签名值的有效期,只有在预设时间段内查询到的签名值才能作为重复提交的判断依据,本发明利用时间进行请求重复提交的判定,不仅解决了重复提交数据的问题,还解决了提交数据处理装置拓展性差的问题,进而达到了既能够防止请求重复提交,又能够提高装置拓展性以及数据的处理效率。

第三实施例:

参照图5,图5为本发明实施例三提供的防止数据重复提交的方法的流程图,该方法是基于上述现有的服务器硬件结构所提出的一种能实现防止数据重复提交的方案,具体的,本实施提供的防止数据重复提交的方法具体包括如下步骤:

s501,接收客户端下发的数据提交请求,该数据提交请求用于从客户端中获取对应的待提交的用户数据。

s502,根据所述数据提交请求获取所述客户端中待提交的用户数据。

在实际应用中,服务器在接收到客户端发送的过来的数据提交请求后,从请求中获取客户端的地址信息,并根据地址信息定位到对应的客户端,并从客户端中下载客户端中待提交的用户数据,该用户数据包括用户通过客户端的输入单元输入的文字信息、拍摄的照片、录制的视频或音频,甚至还可以是客户端中互联网中下载的网络信息等等。

s503,对所述待提交的用户数据进行签名处理,生成第一签名值。

在本实施例中,服务器对获取到的待提交的用户数据进行签名处理具体时根据预设的数据提交格式对待提交的用户数据进行格式的转换,根据签名运算苏纳法对所述转换后的用户数据进行签名处理,生成第一签名值。

在实际应用中,该数据提交的格式可以理解为是一串按时间顺序排序的字符串,而根据预设的数据提交格式对所述待提交的用户数据进行格式转换即是将接收到的所有用户数据根据接收的时间顺序进行排序,然后按照排序的顺序串联起来,得到一个字符串,例如得到的字符串的格式为“数据名称1+数据内容1+数据名称2+数据内容2……”的形式,最后根据转换后的用户数据(即是得到字符串)进行签名处理,得到第一签名值,该第一签名值可以是一个数字,也可以是一串字符串。

具体的所述签名运算算法为哈希运算算法,根据哈希运算算法对所述字符串进行哈希运算,得到第一哈希值,根据该第一哈希值查询在数据缓存列表中是否存在相同的哈希值,最后根据查询结果对该数据提交请求进行处理。

在实际应用中,对于签名处理的签名运算算法,只要使得计算出来的值是唯一的不可逆的均可以。

s504,判断在数据缓存列表中是否存在与所述第一签名值相同的签名值。

在实际应用中,根据哈希运算得到的第一哈希值查询服务器中的数据缓存列表中是否存在相同的哈希值,若存在,则说明客户端本次请求的数据提交已在之前有提交了,并拒绝本次的数据提交请求。

s505,若在所述数据缓存列表中存在与所述第一签名值相同的签名值,则拒绝所述客户端请求提交的用户数据。

在本实施例中,所述防止数据重复提交的方法除了对签名值进行判断之外,还包括:对需要提交数据的客户端的身份标识信息进行比对,若判断存在相同的签名值的同时,其身份标识信息也相同的情况下,判定该客户端提交的用户数据在此之前已提交过了,若签名值和身份标识信息中存在一者不同,则判定该提交的用户数据不是重复的数据。

所述方法还包括:获取所述客户端的身份标识信息;

根据所述第一签名值查询所述数据缓存列表中是否存在相同的签名值;

若查询所述数据缓存列表中存在相同的签名值,则判断所述身份标识信息与所述签名值对应的身份识别信息是否一致;

若所述身份标识信息与所述签名值对应的身份识别信息一致,则拒绝所述客户端请求提交的用户数据。

在实际应用中,其提交数据的具体步骤包括:根据数据提交请求获取客户端中待提交的用户数据以及该客户端的身份标识信息,对该获取到的用户数据进行签名处理,得到第一签名值,然后根据该第一签名值在数据缓存列表中查询是否存在相同的签名值,若存在,则获取该签名值对应的身份识别信息,并将比较该身份识别信息与客户端的身份标识信息是否一致,若一致,则拒绝该客户端发送的数据提交请求,若不一致,则接收客户端请求提交的用户数据,并执行对应的数据提交操作。

在实际应用中,由于客户端的用户数据会不断地随着时间的增加而增加,比如其数据的刷新时间为15秒,那么在该15秒内客户端中的用户数据是不会增加,而15秒之后有可能会发生变化,所以当客户端在15秒的时间内进行多次的数据提交时,就会被认为是重复提交,因此,为了避免该种误操作,本实施例还为数据缓存列表中的签名值设置一个有效时间,例如15秒,在该15秒内查询出的相同的签名值是有效的。

因此,在本实施例中,在所述查询所述数据缓存列表中存在相同的签名值之后,还包括:判断查询到的所述签名值是否在有效期内,若所述签名值的有效期已过,则将所述第一签名值更新至所述数据缓存列表中,并执行提交用户数据的提交操作;若所述签名值的有效期未过,则拒绝所述客户端请求提交的用户数据。

本实施例提供的防止数据重复提交的方法,通过接收客户端下发的数据提交请求,根据所述数据提交请求获取所述客户端中待提交的用户数据,对所述待提交的用户数据进行签名处理,生成第一签名值,判断在数据缓存列表中是否存在与所述第一签名值相同的签名值,若在所述数据缓存列表中存在与所述第一签名值相同的签名值,则拒绝所述客户端请求提交的用户数据;通过在提交数据的同时,对该需要提交的数据进行签名,根据签名判断该数据是否已经被提交,若已提交,则拒绝请求,从而实现了防止数据重复提交的问题,提高了数据提交的效率。

另外,本实施例提供的防止数据重复提交的方法还设定了签名值的有效期,只有在预设时间段内查询到的签名值才能作为重复提交的判断依据,本发明利用时间进行请求重复提交的判定,不仅解决了重复提交数据的问题,还解决了提交数据处理装置拓展性差的问题,进而达到了既能够防止请求重复提交,又能够提高装置拓展性以及数据的处理效率。

实施例三:

参照图6,图6为本发明实施例三提供的防止数据重复提交的方法的流程图,该方法结合图1和2中提供的移动终端和服务器的结构提出的方案,其具体的处理流程如下:

s601,移动终端向服务器发起第一次请求。

服务器在接收到移动终端的提交请求后,对移动终端提交的用户数据进行签名。采用的算法是将移动终端提交的用户数据以(数据名1数据内容1数据名2数据内容2……)的形式拼接成一个字符串,然后用签名运算算法,具体是用sha1对拼接后的字符串进行hash运算得出一个值。

s602,将签名值存储到服务器的数据缓存列表中。

服务器根据步骤s601计算出的签名值存储到数据缓存列表中,所述签名值在数据缓存列表中的数据结构为key-value形式,其中,key表示签名值,value表示用户的身份标识信息,预设该签名值在数据缓存列表中的有效时间为15秒,当该值存储时间超过15秒后,将会被服务器自动清除,并将新的签名值更新到对应的位置中。

s603,移动终端再次向服务器发送数据提交请求。

s604,判断该数据提交请求的请求时间是否在签名值的有效时间内。

s605,若在有效时间内,则查询是否存在相同的签名值。

在本实施例中,若判断的结果是在有效时间内,服务器接收到的请求后,其重复执行步骤s601的操作,得到该次请求的签名值,根据该签名值在数据缓存列表中通过进行key的查找,如果找到与该签名值对应的key,则进一步地校验value值是否和该请求数据提交的用户的身份标识信息一致,若一致,则说明该次请求为重复请求,服务器通知移动终端拒绝该数据提交请求;若不一致则,进行正常的业务操作,并将该签名值和对应的移动终端的身份标识信息更新到数据缓存列表中。

s606,若不在有效期内,则执行进行正常的业务操作。

在本实施例中,若判断的结果为不在有效时间内,服务器接收到的请求后,其重复执行步骤s601的操作,得到该次请求的签名值,根据该签名值在数据缓存列表中通过进行key的查找,在数据缓存列表中找不到与该签名值对应的key,服务器执行进行正常的业务操作,并将该签名值和对应的移动终端的身份标识信息更新到数据缓存列表中。

本发明提供的防止数据重复提交的装置及其方法,通过设置签名模块对客户端提交的用户数据进行签名处理,得到一个签名值,并根据该签名值判断出该用户数据是否已经提交过了,从而实现了防止数据重复提交的问题,提高了数据提交的效率。

进一步地,本实施例还设定了签名值的有效期,只有在预设时间段内查询到的签名值才能作为重复提交的判断依据,本发明利用时间进行请求重复提交的判定,不仅解决了重复提交数据的问题,还解决了提交数据处理装置拓展性差的问题,进而达到了既能够防止请求重复提交,又能够提高装置拓展性以及数据的处理效率。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1