具体实施方式
本发明实施例提供了一种信息处理方法及相关设备,用于通过识别视频的虚假播放,减少视频网站的损失。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明实施例提供的一种可能的信息处理方法的流程图,具体包括:
101、服务器生成第一公私钥对;
需要说明的是,为了提高服务器与客户端之间进行数据传输的安全性,可以对服务器与客户端之间的通信进行加密处理。本发明实施例中,可采用非对称RSA加密算法来生成公私钥对,其中,当客户端每次打开一个视频进行播放时,则会重新生成一对公私钥对,保障每个视频的公私钥对均不一样。
可选的,本发明中,服务器根据客户端正在播放的当前视频的信息来生成第一公私钥对,其包括第一公钥和第一私钥。具体的第一私钥可以使用随机数生成,第一公钥则调用RSA的接口函数可以生成对应的公钥,第一私钥和第一公钥是唯一配对的关系,生成第一公私钥对的实现方式包括以下步骤:
步骤1、生成随机数据;
Randdata=rand();
通过调用系统函数rand来生成一段随机数据Randdata。
步骤2、依据当前视频的身份标识号码(identification,ID)和随机数生成其Md5值做为第一私钥;
ClientPrivatekey=Md5.Create(Randdata+VideoId);
其中VideoId用于表示当前视频的ID号,需要说明的是,该当前视频的ID可以理解为每个视频的房间号。
通过调用Md5函数的接口Md5.Create来对随机数据和当前视频的ID号拼接到一起计算其Md5值,从而得到了第一私钥的数据。
步骤3、计算第一公钥。
ClientPublickey=RSA.CreatePair(ClientPrivatekey);
第一公钥则调用RSA的生成配对钥匙接口RSA.CreatePair来生成。
从而最终服务器生成了一对第一公钥和第一私钥信息。
102、客户端生成第二公私钥对;
当服务器与客户端交互时,首先服务器会将自己的第一公钥的信息下发给客户端。与此同时,客户端也会依照服务器的方式生成一对第二公私钥对。服务器的生成则也会依照当前视频的ID号,用户的用户身份标识号码(userID,Uid)以及随机数据来生成第二私钥,从而尽可能保障不同客户端播放不同视频时的私钥不一样。具体实现如下:
步骤1、生成随机数据;
Randdata=rand();
通过调用系统函数rand来生成一段随机数据Randdata。
步骤2、依据当前视频的ID号、Uid和随机数生成其Md5值做为第二私钥。
ServerPrivatekey=Md5.Create(Randdata+Uid+VideoId);
通过调用Md5函数的接口Md5.Create来对随机数、用户的Uid和当前视频的ID号拼接到一起计算其Md5值,从而得到了第二私钥的数据。
步骤3、计算第二公钥。
ServerPublickey=RSA.CreatePair(ServerPrivatekey);
第二公钥则调用RSA的生成配对钥匙接口RSA.CreatePair来生成。
从而客户端则生成了第二公私钥对的信息。
此时客户端收到服务器下发的第一公钥后,则将自己的第二公钥的信息发送给服务器。
103、服务器与客户端互换公钥并生成共享秘钥;
服务器和客户端互换各自的公钥信息,来生成一个共享秘钥,可以理解的是,服务器和客户端生成的共享秘钥是同一个值。需要说明的是,为了保证服务器和客户端生成的共享秘钥是同一个值,服务器和客户端在生成共享秘钥之前,需要协商确定一个生成算法,该生成算法用于根据第一公钥和第二公钥生成共享秘钥。
具体服务器和客户端互换公钥并生成共享秘钥实现如下:
步骤1、互换公钥。
服务器将服务器的第一公钥ServerPublickey发送给客户端。
客户端将客户端的第二公钥ClientPublickey发送给服务器。
步骤2、客户端生成共享秘钥。
ShareKey=RSA.CreateShareKey(ServerPublickey,ClientPrivatekey);
步骤3、服务器生成共享秘钥。
ShareKey=RSA.CreateShareKey(ClientPublickey,ServerPrivatekey);
由于生成因素和生成算法一致,从而服务器和客户端生成的ShareKey的值是一致的。
需要注意的是,客户端通过步骤2生成共享秘钥,服务器通过步骤3生成共享秘钥,这两个过程并没有时序的限定,即可以先执行步骤2,也可以先执行步骤3,或者同时执行,具体此处不做限定。
服务器和客户端都生成共享秘钥后,根据该共享秘钥对服务器和客户端进行加密或者解密处理。可选的,本发明实施例中,除了采用非对称RSA加密算法来进行加密或者解密处理外,还可以采用数据加密算法(Data EncryptinStandard,DES)或者其他加密算法,具体此处不做限定。
104、服务器确定随机字符串和计算结果要求;
需要说明的是,对于一个正常的用户来说,其同时观看视频的频率是有限的。而对于黑客来说,为了伪造大量的观看记录,需要大量的刷观看记录才会有收益。那么需要一种方法来证明客户端有进行观看视频的验证,验证方法可以是客户端通过一定的计算量得到一个验证数据,其中计算验证数据会消耗客户端的CPU资源,从而使得客户端同时并发观看视频时,需要并发进行大量的计算消耗CPU资源,从而使得其并发数量有限,故能够阻止客户端的刷观看次数的行为。对于正常用户,正常的观看一次视频不影响用户,而对于并发大量发观看视频则会影响非常大,增加了其成本。因此,本发明实施例中,通过使客户端有一定的计算量来得到计算结果,且服务器又比较容易的鉴别客户端的计算结果,即不消耗服务器的CPU资源。
因此,服务器生成一个随机字符串,该随机字符串的长度可以为32位,具体地,通过调用系统函数rand来生成一段随机数据rdata,rdata=rand()。且服务器还需要确定客户端需要得到的计算结果的要求即计算结果要求,其中,该计算结果要求可以为客户端生成的计算结果的前预置数目位为目标字符,该目标字符可以为数字或者字母,例如前预置数目位为第一位,且目标字符可以为0或1或a等,或者前预置数目位为前2位,且目标字符可以为00,或者01,或者ab等,因此,本发明实施例中,计算结果要求具体此处不做限定。
可以理解的是,计算结果要求的前预置数目位越多,则客户端的计算量也越大。
105、服务器根据共享秘钥对随机字符串和计算结果要求进行加密处理;
服务器确定了随机字符串以及计算结果要求后,根据共享秘钥对随机字符串和计算结果要求进行加密处理。其中,本发明实施例中,可以采用加密算法如高级加密标准(advanced encryption standard,AES)来进行加密。
106、服务器将随机字符串和计算结果要求发送给客户端;
服务器将根据共享秘钥加密后得到的随机字符串和计算结果要求发送给客户端,以使得客户端进行解密处理。
107、客户端根据随机字符串和客户端播放的当前视频的信息,生成符合计算结果要求的客户端计算结果;
由于视频网站的播放器是由视频网站开发的,所以如果是正常的客户端,则一定是由视频网站的视频播放器来进行观看,因此正常的客户端是具备收取服务器的视频数据及解密视频数据的功能。故客户端接收到加密后的随机字符串和计算结果要求后,可以解密出原始的随机字符串和计算结果要求。其中,客户端也可以使用AES算法来对加密后的随机字符串和计算结果要求进行解密操作,得到原始的随机字符串和计算结果要求。
客户端根据随机字符串和客户端播放的当前视频的信息,生成符合计算结果要求的客户端计算结果。具体地,该客户端计算则是包含客户端的设备唯一ID、客户端登录时使用的TOKEN数据、客户端当前观看的视频唯一ID、服务器下发的随机数据、当前的系统时间戳信息拼接到一起,并加上客户端自身的随机数据,一起来计算MD5值,具体实现方式如下:
Md5result=Md5.Create(DeviceId+Token+videoId+rdata+Time+clientRandData);
其中Md5result用于表示结果数据,DeviceId则是客户端的设备唯一ID;Token则是客户端登录服务器时的token值;videoId则是当前视频的唯一id;rdata则是服务器下发的随机字符串;clientRandData则是客户端生成的随机数据。最终通过md5算法则得到了Md5result。
由于服务器会要求客户端计算的结果数据中,前预置数目位为目标字符,为便于理解,假设计算结果要求为客户端计算结果的首位为0,因此,若计算的结果数据为“2013dabcd6987abc4523654123451263”,由于该结果数据的首位是2而不是0,因此客户端还需要不断的生成随机数据来计算Md5result,直到最终得到的客户端计算结果满足服务器的计算结果要求。
108、客户端将客户端计算结果和客户端数据发送给服务器;
客户端计算得到的客户端计算结果满足计算结果要求后,根据共享秘钥将该客户端计算结果与客户端数据进行加密,并发送给服务器,其中,客户端数据为客户端计算得到客户端计算结果的过程中所参与的数据,包括Md5result+DeviceId+Time+clientRandData。而其他数据包括视频唯一ID和登录时的token,服务器本身有记录,故客户端可以不向服务器发送。
109、服务器根据客户端数据得到服务器计算结果;
服务器接收到客户端根据共享秘钥发送的客户端计算结果与客户端数据后,根据共享秘钥解密得到原始的客户端计算结果和客户端数据,并根据客户端数据得到服务器计算结果,以校验客户端计算结果是否正确。服务器得到服务器计算结果的具体方式如下:
Md5result=Md5.Create(DeviceId+Token+videoId+rdata+Time+clientRandData);
其中,本步骤中,Md5result用于表示服务器计算结果,DeviceId则是客户端的设备唯一ID;Token则是客户端登录服务器时的token值;videoId则是当前视频的唯一id;rdata则是服务器下发的随机字符串;clientRandData则是客户端生成的随机数据。
110、服务器确定客户端计算结果与服务器计算结果是否一致;若否,则执行步骤111;若是,则执行步骤112;
服务器得到服务器计算结果后,判断该服务器计算结果与客户端计算结果是否一致,并且是否满足计算结果要求,如果服务器计算结果与客户端计算结果一致,且服务器计算结果也满足计算结果要求,则说明客户端计算结果是正确的,故执行步骤112;如果服务器计算结果与客户端计算结果不一致,则说明客户端计算结果不是正确的,则执行步骤111。
111、服务器确定当前观看当前视频的记录为虚假记录;
当客户端计算结果与服务器计算结果不一致时,说明客户端的计算有问题,则确定当前观看该视频的记录为虚假记录,即该当前视频的此次播放不算做当前视频的观看次数内
112、服务器确定当前观看当前视频的记录为合法记录。
当客户端计算结果与服务器计算结果一致时,可以认为客户端的计算没有问题,客户端有真实的播放当前视频,则确定当前观看该视频的记录为合法记录,即该当前视频的此次播放算入当前视频的观看次数内。
本发明实施例中,服务器只需要计算一次服务器计算结果就可以知道客户端计算结果是否正确,因为客户端是在频繁的计算客户端计算结果以取得一个合适的随机数据clientRandData,而服务器则从客户端上报的客户端计算结果知道客户端选择的随机数据,从而服务器验证则比较简单。
需要说明的是,本发明实施例中,除了通过图1所示的信息处理方法来识别视频的虚假播放,还可以采用如下方式来识别视频的虚假播放,例如:
方式1:服务器和客户端可以协商一个共享密钥,该共享密钥用于对服务器和客户端之间的通信进行加密或者解密。服务器根据客户端播放的当前视频获得视频数据,如随机数据Rdata,起始帧数据startFrame,和需要计算的帧数NumFrames,和当前的时间戳信息;服务器将该视频数据发送给客户端,以使得客户端根据视频数据进行计算得到客户端计算结果,具体的,客户端从当前视频的起始帧数和需要计算的帧数来对视频数据进行MD5计算,同时计算时也会加上服务器下发的随机数据Rdata,从而保障即使是相同的起始帧和帧数,最终计算得到的客户端计算结果是不一致的。具体实现如下:
Md5result=Md5.Create(video_data+Rdata);其中Md5result用于表示客户端计算结果,video_data用于表示视频的起始帧到帧数的视频数据;Rdata用于表示服务器下发的随机数据。故最终通过md5算法则得到了HASH的结果数据即客户端计算结果,客户端再使用共享密钥将该客户端计算结果加密发送给服务器。服务器接收客户端发送的客户端计算结果,并使用共享密钥解密;其中,服务器也会根据视频数据按照相同的算法得到服务器计算结果,当客户端计算结果与服务器计算结果不同时,则服务器确定当前观看所述当前视频的记录为虚假记录。
方式2:在客户端中定期得到采集信息(采集信息包括观看的视频编号,用户的唯一uid,视频观看时的起始帧的打开时间,当前视频的码率,当前视频播放的FPS,视频的硬件解码,软件解码,视频观看的状态记录(是否有错误出现等,是否有卡顿现象),视频的观看时长,及整个观看时长所下载的视频流数据的总量),例如以1分钟为界限,每隔1分钟来采集一次采集信息,并且将该采集信息使用客户端和服务器协商的加密算法来将采集信息上报到服务器。因此,任何第三方平台盗刷(第三方平台使用通用的或者第三方平台自己的视频播放器)视频流或者并没有观看过视频,则都不会有该采集信息。同时对于黑客来说,本文的采集信息为加密后的采集信息(加密算法是通过客户端和服务器进行协商的共享秘钥来加密,并且采集信息的加密是依赖于时间和用户独有的信息,那么复制该条数据来伪造采集信息,服务器则可以通过解密采集信息来识别该采集信息是非法的,同时即使采集信息被截获,黑客获取不到共享秘钥也无法进行解密采集信息),不容易伪造和截获。
进一步的为了对破解或者黑客起到干扰的作用,也可以定期上报明文的数据采集信息,明文数据采集主要包含部分不是特别重要的信息,其目的是数据采集信息是明文,黑客很容易发现数据采集信息,从而让黑客以为本文是通过上报这些明文的数据采集信息来识别盗刷行为的。其中,数据采集信息可以包含当前用户设备唯一ID信息,当前观看时长信息,当前观看影片的ID信息,当前观看的视频码率信息。此数据采集信息则主要是用于干扰黑客。
需要说明的是,本发明上报的客户端下载的视频流流量数据可以非常好的识别盗刷的行为,首先正常的观看例如10分钟的视频,则必须在一个合理的视频流量的范围内容,不在范围内则都是非法的,同时即使黑客去盗刷,那么其必须有非常大的网络带宽,才能刷大量的虚假观看次数,从而对于黑客则由极大的成本。因此通过本文的上述信息能够比较好的识别出盗刷视频观看次数的用户。
方式3:对于视频网站的所有视频都是用户将制作好的视频上传到服务器。服务器则首先会对视频进行审核,同时会在视频中加入视频网站的水印以防止其他网站盗取该视频。因此,本发明中,可以在对视频加入视频网站的水印后,进一步会对视频加入一路验证信息,该验证信息并不会进行播放,而只是起到验证的作用。并且在插入信息时,本发明依据一定算法,使得每个视频插入的信息是不一样的。当用户端进行视频观看时,则会下载该视频内容,其中该视频内容携带了该验证信息,那么只有视频网站的播放器才会解密出该验证信息,并对验证信息进行计算得到验证结果上报到服务器。而对于其他非视频网站的播放器则并不会知道有一条验证信息,也并不知道如何计算验证结果,从而服务器可以识别得到真实的通过视频网站播放器观看的真实观看次数。
上面从信息处理方法的角度对本发明实施例进行了描述,下面分别从服务器和客户端的角度分别对本发明实施例进行描述。
请参阅图2,图2为本发明实施例提供的服务器的一个实施例示意图,该服务器,具体包括:
确定单元201,用于确定随机字符串和计算结果要求;
收发单元202,用于将所述随机字符串和所述计算结果要求发送给所述客户端,以使得所述客户端根据所述随机字符串和所述客户端播放的当前视频的信息,生成符合所述计算结果要求的客户端计算结果;
所述收发单元202,还用于接收所述客户端发送的所述客户端计算结果和客户端数据,所述客户端数据为所述客户端用于得到所述客户端计算结果的数据;
所述确定单元201,还用于当所述服务器根据所述客户端数据得到的服务器计算结果与所述客户端计算结果一致时,确定当前观看所述当前视频的记录为合法记录。
可选的,在一些可能的实现方式中,所述服务器还包括:
生成单元203,用于与所述客户端进行协商生成共享秘钥,所述共享秘钥用于对所述服务器和所述客户端之间的通信进行加密或解密。
可选的,在一些可能的实现方式中,所述生成单元203包括:
生成模块2031,用于根据所述当前视频的信息生成第一公私钥对,所述第一公私钥对包括第一公钥和第一私钥;
收发模块2032,用于向所述客户端发送所述第一公钥,以使得所述客户端根据所述第一公钥生成共享秘钥;
所述生成模块2031还用于根据所述第一公钥和第二公钥生成所述共享秘钥,所述第二公钥由所述客户端生成并发送。
可选的,在一些可能的实现方式中,所述服务器还包括:加密单元204,用于根据所述共享秘钥对所述随机字符串和所述计算结果要求进行加密处理。
请参阅图3,图3为本发明实施例提供的客户端的一个实施例示意图,该客户端,具体包括:
收发单元301,用于接收服务器发送的随机字符串和计算结果要求;
生成单元302,用于根据所述随机字符串和所述客户端播放的当前视频的信息,生成符合所述计算结果要求的客户端计算结果;
所述收发单元302还用于,将所述客户端计算结果和客户端数据发送给所述服务器,所述客户端数据为所述客户端用于得到所述客户端计算结果的数据。
可选的,在一些可能的实现方式中,所述生成单元302还用于:与所述服务器进行协商生成共享秘钥,所述共享秘钥用于对所述服务器和所述客户端之间的通信进行加密或解密。
请参阅图4,图4为本发明实施例提供的电子设备的实施例示意图。
如图4所示,本发明实施例提供了一种电子设备,包括存储器410、处理器420及存储在存储器420上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:确定随机字符串和计算结果要求;将所述随机字符串和所述计算结果要求发送给所述客户端,以使得所述客户端根据所述随机字符串和所述客户端播放的当前视频的信息,生成符合所述计算结果要求的客户端计算结果;接收所述客户端发送的所述客户端计算结果和客户端数据,所述客户端数据为所述客户端用于得到所述客户端计算结果的数据;当根据所述客户端数据得到的服务器计算结果与所述客户端计算结果一致时,确定当前观看所述当前视频的记录为合法记录。
可选的,所述处理器还用于:
与所述客户端进行协商生成共享秘钥,所述共享秘钥用于对所述服务器和所述客户端之间的通信进行加密或解密。
可选的,与所述客户端进行协商生成共享秘钥包括:
根据所述当前视频的信息生成第一公私钥对,所述第一公私钥对包括第一公钥和第一私钥;向所述客户端发送所述第一公钥,以使得所述客户端根据所述第一公钥生成共享秘钥;根据所述第一公钥和第二公钥生成所述共享秘钥,所述第二公钥由所述客户端生成并发送。
可选的,所述处理器还用于:所述服务器根据所述共享秘钥对所述随机字符串和所述计算结果要求进行加密处理。
可选的,根据所述第一公钥和第二公钥生成共享秘钥之前,还包括:与所述客户端确定生成算法,所述生成算法用于生成所述共享秘钥。
在具体实施过程中,处理器420执行计算机程序411时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本发明实施例中一种服务器所采用的设备,故而基于本发明实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍,只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。
请参阅图5,图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现如下步骤:确定随机字符串和计算结果要求;将所述随机字符串和所述计算结果要求发送给所述客户端,以使得所述客户端根据所述随机字符串和所述客户端播放的当前视频的信息,生成符合所述计算结果要求的客户端计算结果;接收所述客户端发送的所述客户端计算结果和客户端数据,所述客户端数据为所述客户端用于得到所述客户端计算结果的数据;当根据所述客户端数据得到的服务器计算结果与所述客户端计算结果一致时,确定当前观看所述当前视频的记录为合法记录。
可选的,该计算机程序511被处理器执行时还用于实现如下步骤:
与所述客户端进行协商生成共享秘钥,所述共享秘钥用于对所述服务器和所述客户端之间的通信进行加密或解密。
可选的,该计算机程序511被处理器执行时还用于实现如下步骤:根据所述当前视频的信息生成第一公私钥对,所述第一公私钥对包括第一公钥和第一私钥;向所述客户端发送所述第一公钥,以使得所述客户端根据所述第一公钥生成共享秘钥;根据所述第一公钥和第二公钥生成所述共享秘钥,所述第二公钥由所述客户端生成并发送。
可选的,该计算机程序511被处理器执行时还用于实现如下步骤:所述服务器根据所述共享秘钥对所述随机字符串和所述计算结果要求进行加密处理。
可选的,该计算机程序511被处理器执行时还用于实现如下步骤:与所述客户端确定生成算法,所述生成算法用于生成所述共享秘钥。
请参阅图6,为本发明实施例提供的另一种电子设备的实施例示意图。
如图6所示,本发明实施例提供了一种电子设备,包括存储器610、处理器620及存储在存储器620上并可在处理器620上运行的计算机程序611,处理器620执行计算机程序611时实现以下步骤:接收服务器发送的随机字符串和计算结果要求;根据所述随机字符串和所述客户端播放的当前视频的信息,生成符合所述计算结果要求的客户端计算结果;将所述客户端计算结果和客户端数据发送给所述服务器,所述客户端数据为所述客户端用于得到所述客户端计算结果的数据。
可选的,所述处理器620还用于执行:
与所述服务器进行协商生成共享秘钥,所述共享秘钥用于对所述客户端和所述视频网服务器之间的通信进行加密或解密。
在具体实施过程中,处理器620执行计算机程序611时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本发明实施例中一种客户端所采用的设备,故而基于本发明实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍,只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。
请参阅图7,图7为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
如图7所示,本实施例提供了一种计算机可读存储介质700,其上存储有计算机程序711,该计算机程序711被处理器执行时实现如下步骤:接收服务器发送的随机字符串和计算结果要求;根据所述随机字符串和所述客户端播放的当前视频的信息,生成符合所述计算结果要求的客户端计算结果;将所述客户端计算结果和客户端数据发送给所述服务器,所述客户端数据为所述客户端用于得到所述客户端计算结果的数据。
可选的,该计算机程序711被处理器执行时实现如下步骤:
与所述服务器进行协商生成共享秘钥,所述共享秘钥用于对所述客户端和所述视频网服务器之间的通信进行加密或解密。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。