具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
发明人经调查和分析发现,常见的用户行为进行模拟方法主要包括以下两种:第一种是人工编写脚本,第二种是APP录屏重放。
其中,通过人工编写脚本对用户行为进行模拟的方法主要包括以下步骤:首先还原出具体的用户行为使用场景,然后根据手机APP行为找到对应后端接口的映射,最后通过后端脚本的方式,人工编写脚本后去重现。
进一步地,通过APP录屏重放技术对用户行为进行模拟的方法主要包括以下步骤:首先人工操作APP录制下来正常的用户行为流程,然后通过重放模拟。
然而,发明人经进一步分析发现,第一种方法的门槛较高,最低门槛也需要具有编写脚本的能力,且这种方法难以直观地显示整个用户行为轨迹,也不易于运营。此外,这种方法需要用户的所有行为都存在后端对应的接口,无法覆盖到与后端无对应接口和映射关系的手机APP端的行为。第二种方法则严重依赖APP的用户界面(User Interface,UI)布局,一旦手机的UI布局出现调整,则需要重新录屏。同时,由于多种手机机型的UI位置存在差异,不同的手机机型需要单独录屏。此外,若用户行为存在调整,也需要重新录屏。
综上,常见的用户行为模拟方法难以程序化、自动化和精细化地实现用户行为模拟并还原用户行为轨迹。
有鉴于此,本说明书实施例提供了一种用户行为模拟方法、装置及计算机设备,用以解决或者部分解决如何程序化、自动化和精细化地实现用户行为模拟并还原用户行为轨迹的技术问题。
作为一种可选的实施例,请结合参阅图1,为本说明书实施例提供的一种用户行为模拟系统100的结构框图。由图可见,该用户行为模拟系统100包括运营系统1和核心系统2。
其中,运营系统1用于获取用户在应用程序上的连续的用户行为,然后对每个用户行为进行分解和逆向,进而得到每个用户行为对应的行为函数和行为参数。进一步地,运营系统1基于每个用户行为对应的行为函数和行为参数拟定不同的剧本文件,具体地,剧本文件中包括多个剧本节点,每个剧本节点可以理解为每个用户行为,此外,每个剧本节点可以作为一个“容器”,该“容器”内封装有行为函数。
在本说明书实施例中,行为函数是刻画用户行为的最小单位,每一个独立的用户行为在软件设计中对应一个行为函数的调用,例如,用户输入登陆账号和登陆密码的行为对应一个行为函数,又例如,用户滑动验证块的行为对应另一个行为函数。而行为参数则对应于行为函数,每个行为函数在调用时对应的参数为行为参数。
进一步地,每个剧本节点通过有向连边连接以形成有向无环图,可以理解,有向无环图表征了多个剧本节点的执行顺序。更进一步地,运营系统1为每个剧本文件配置初始剧本节点的输入信息,并为剧本文件设定剧本要素,从而完成对剧本文件的拟定。在本说明书实施例中,剧本要素可以包括以下几种,当然,在具体实施过程中,并不限于以下几种剧本要素:
1)剧本文件的执行主体(用户);
2)剧本文件的执行时间;
3)剧本文件的执行环境;
4)剧本文件中的剧本节点的行为函数;
5)剧本文件中的剧本节点的行为参数;
6)剧本文件中的剧本节点间的时间间隔;
7)剧本文件中的剧本节点间的关联关系。
可以理解,上述运营系统1能够采用图形化操作方式对剧本文件进行拟定,无需进行脚本的编写,也无需采用APP录屏技术,便能通过剧本化手段拟定出剧本文件,使得剧本文件能够以图形化的方式呈现。
请继续参阅图1,核心系统2中包括剧本播放器21和行为执行器22。剧本播放器21用于按照运营系统1中拟定的剧本文件以及剧本文件对应的剧本要素对剧本文件的播放做全局的调度管控,具体地,剧本播放器21用于播放剧本文件,在播放剧本文件时,剧本播放器21会将剧本节点按照剧本要素格式组装成行为函数执行任务,并下发至行为执行器22。行为执行器22用于执行剧本播放器21下发的行为函数执行任务,以对用户在对应的剧本节点上的行为进行模拟。进一步地,行为执行器22还可以将执行完行为函数执行任务得到的输出信息反馈至剧本播放器21。
具体地,剧本播放器21可以将封装有行为函数的剧本节点按照剧本要素格式组装成行为函数执行任务,并下发至行为执行器22,此外,剧本播放器21还可以在本地执行封装有非行为函数的剧本节点对应的非行为函数执行任务,在本说明书实施例中,封装有非行为函数的剧本节点可以理解为非行为函数剧本节点。
在本说明书实施例中,行为执行器22是APP中注入的一段钩子函数hook,钩子函数hook可以从接收到的行为函数执行任务中获取行为函数,并将行为函数映射到本地APP的软件开发工具包(Software Development Kit,SDK)中的high-level或low-level的函数。进一步地,high-level或low-level的函数获取行为函数执行任务中的行为参数,将行为参数进行配置之后直接调用行为函数,从而对用户在对应的剧本节点上的行为进行模拟。
在具体实施过程中,对于移动终端的APP,行为执行器22可以为真机或者模拟器,对于网页端的APP,安装有浏览器的终端设备均可以实现行为执行器22对应的功能。
进一步地,剧本播放器21每播放一个剧本节点,就完成了对一个用户行为的模拟,可以理解,剧本播放器21按照剧本文件中的执行顺序播放完剧本文件中的所有剧本节点,便能够得到用户在应用程序上的用户行为轨迹,如此,无需通过人工编写脚本和APP录屏重放技术,便能程序化、自动化和精细化地实现用户行为模拟并还原用户行为轨迹。
在本说明书实施例中,剧本播放器21在本地执行非行为函数执行任务可以通过Python脚本实现。具体地,非行为函数执行任务可以用于确定用户行为是否存在风险,如此,能够使得核心系统2不仅可以程序化、自动化和精细化地实现用户行为模拟并还原用户行为轨迹,还可以程序化、自动化和精细化地检测出存在风险的用户行为。
作为一种可选的实施例,请结合参阅图2,为本说明书实施例提供的一种用户行为模拟方法的流程图,所述用户行为模拟方法应用于图1中的核心系统2,所述用户行为模拟方法可以包括以下步骤:
S11,获取剧本文件。
在本说明书实施例中,剧本文件是对目标用户的连续的行为步骤进行剧本化处理得到的。剧本文件中包括多个剧本节点,多个剧本节点之间存在执行顺序,每个剧本节点中封装有行为函数。进一步地,剧本文件中还包括初始剧本节点的输入信息,初始剧本节点的输入信息中包括初始剧本节点对应的行为函数的行为参数。当图1中的剧本播放器21播放该剧本文件时,初始剧本节点的输入信息在剧本文件的所有剧本节点中按照执行顺序依次传递。例如,第i个剧本节点的输入信息是第i-1个剧本节点的输出信息,第i+1个剧本节点的输入信息是第i个剧本节点的输出信息,其中,i为大于1的整数,如此,使得剧本播放器21能够严格地按照剧本节点的执行顺序,依次、有序地播放剧本节点,实现剧本文件的程序化和自动化播放,并且相邻顺序的剧本节点之间的输入信息和输出信息是存在互相关联的,能够严格按照相邻的剧本节点之间的输入信息和输出信息准确、流畅地播放剧本文件,实现剧本文件精细化播放,由于剧本文件是对目标用户的连续的行为步骤进行剧本化处理得到的,因此,在实现剧本文件的程序化、自动化和精细化播放时,便能够实现对用户行为的程序化、自动化和精细化模拟。
具体地,目标用户的连续的行为步骤可以理解为目标用户在应用程序上的连续的用户行为。更为具体地,剧本文件是从图1所示的运营系统1中获取的。运营系统1能够对目标用户在应用程序上的连续用户行为进行分解和逆向,得到每个用户行为对应的行为函数和行为参数,然后基于每个用户行为对应的行为函数和行为参数拟定剧本文件,并为剧本文件设定剧本要素和初始剧本节点的输入信息。通过运行系统1对应用程序上的连续用户行为的收集,确保了连续用户行为收集的广泛性,从而确保了拟定出的剧本文件的多样性,使得核心系统2能够得到不同类型的剧本文件,并播放不同类型的剧本文件,从而对不同类型的用户行为进行模拟,提高了用户行为模拟的灵活性。
更为具体地,当运营系统1完成对剧本文件的拟定后,剧本播放器21播放剧本文件所依赖的输入信息为初始剧本节点的输入信息,如此,仅需要通过在剧本文件中的初始剧本节点的输入信息,便能够按照多个剧本节点的执行顺序依次执行播放每个剧本节点,并根据当前剧本节点的输出信息得到下一剧本节点的输入信息,从而实现播放剧本文件的全程自动化,无需在各个剧本节点之间额外配置输入信息,且根据当前剧本节点的输出信息得到下一剧本节点的输入信息,能够确保剧本节点的输入信息和输出信息的准确性和关联性,从而能够实现整个剧本文件的程序化、自动化和精细化播放,进而实现对用户行为的模拟,并按照多个剧本节点的播放流程得到用户行为轨迹。
相较于人工编写脚本的方法,本说明书实施例所提供的用户模拟方法是基于拟定的剧本文件进行的,是通过对剧本文件的播放实现对用户行为的模拟的,因此无需编写后端脚本,也无需求所有的用户行为都存在后端对应的端口。
相较于APP录屏重放技术(如按键精灵),本说明书实施例所提供的用户模拟方法是基于行为函数进行的,因此,无需考虑不同机型的UI布局,且由于本说明书实施例所提供的用户模拟方法是基于上下传递的输入信息和输出信息实现的,因此,能够适应可变的用户行为,提高用户行为模拟的真实性,避免机械化地模拟用户行为。
S12,解析剧本文件,确定出剧本文件中的所有剧本节点的执行顺序。
在本说明书实施例中,具体可以通过以下方式确定出剧本文件中的所有剧本节点的执行顺序:
获取剧本文件中的有向无环图;根据有向无环图,得到所有剧本节点之间的依赖关系;根据依赖关系,确定出所有剧本节点的执行顺序。
可以理解,剧本文件中包括多个剧本节点,每个剧本节点通过有向连边连接以形成有向无环图,可以理解,有向无环图表征了多个剧本节点的执行顺序。
具体地,核心系统2首先获取剧本文件中的有向无环图,然后根据该有向无环图,得到所有剧本之间的依赖关系,最后根据该依赖关系,确定出所有剧本节点的执行顺序。
例如,剧本文件中包括四个剧本节点:剧本节点A、剧本节点B、剧本节点C和剧本节点D。
该剧本文件的有向无环图如图3所示,通过图3可得,剧本节点A和剧本节点B之间的有向边所表征的依赖关系为剧本节点B为剧本节点A的下游节点,剧本节点B和剧本节点C之间的有向边所表征的依赖关系为剧本节点C为剧本节点B的下游节点,剧本节点C和剧本节点D之间的有向边所表征的依赖关系为剧本节点D为剧本节点C的下游节点。
进一步地,根据上述依赖关系,确定出所有剧本节点的执行顺序为:剧本节点A、剧本节点B、剧本节点C和剧本节点D。
在本说明书实施例中,通过为多个剧本节点设置有向无环图,一方面能够提高核心系统2对剧本文件解析的效率,使得核心系统能够根据有向无环图快速、准确地确定多个剧本节点之间的执行顺序,提高处理效率,另一方面,还能够以图形化、流程化的方式直观地展现剧本文件,提高剧本文件的可读性,减少剧本文件的分析成本,从而降低本说明书实施例的用户行为方法的使用门槛。
S13,获取所有剧本节点中的初始剧本节点和初始剧本节点的输入信息。
在本说明书实施例中,在确定出了所有剧本节点的执行顺序之后,获取所有剧本节点中的初始剧本节点和初始剧本节点的输入信息。
具体地,请结合参阅图3,所有剧本节点中的初始剧本节点为剧本节点A,其中,初始剧本节点的输入信息是运营系统1在拟定剧本文件时设定的。
在本说明书实施例中,初始剧本节点的输入信息中包括初始附加信息和初始剧本节点的行为参数。具体地,初始附加信息可以为剧本文件的全局性信息,例如剧本文件的runtime信息。
可以理解,在剧本播放器21播放上述剧本文件的过程中,初始剧本节点的输入信息是不断变化的,初始剧本节点的输入信息可以在上述剧本文件的每个剧本节点中不断传递和追加。如此,能够使得剧本播放器21在播放当前剧本节点时,都能够获取当前剧本节点之前的所有剧本节点的输入信息和输出信息,而不是单一地只获取当前剧本节点的输入信息,如此,能够将确定出当前剧本节点之前的所有剧本节点之间的关联。当剧本播放器21播放完当前剧本节点之后,又会将当前剧本节点的输出信息追加到下一剧本节点的输入信息中,从而使得剧本播放器21能够程序化、自动化且精细化地播放整个剧本文件,实现对用户行为的模拟,进而得到完整的用户行为轨迹。
S14,根据执行顺序和初始剧本节点的输入信息,依次对目标用户在每个剧本节点上的行为进行模拟,并得到目标用户在每个剧本节点上的输出信息。
请结合参阅图4,在本说明书实施例中,根据执行顺序和初始剧本节点的输入信息,依次对目标用户在每个剧本节点上的行为进行模拟,并得到目标用户在每个剧本节点上的输出信息,具体通过以下方式实现:
S141,根据初始剧本节点的输入信息,对目标用户在初始剧本节点上的行为进行模拟,得到初始剧本节点的输出信息。
在本说明书实施例中,初始剧本节点中封装有设定行为函数,根据初始剧本节点的输入信息,对目标用户在初始剧本节点上的行为进行模拟,得到初始剧本节点的输出信息,具体包括以下内容:
按照初始剧本节点对应的剧本要素格式,将初始剧本节点的输入信息和设定行为函数组装成初始剧本节点的行为函数执行任务。其中,初始剧本节点的输入信息中包括初始附加信息。执行初始剧本节点的行为函数执行任务,以对目标用户在初始剧本节点上的行为进行模拟,得到初始剧本节点的输出信息。
如此,能够将目标用户在初始剧本节点上的行为进行模拟转换为对行为函数的执行,进而将用户行为模拟转换为函数调用和执行,将用户行为模拟进行参数化,由于参数化的函数调用和执行是按照输入信息进行的,因此,确保了用户行为模拟的程序化、自动化和精细化。
在本说明书实施例中,按照初始剧本节点对应的剧本要素格式,将初始剧本节点的输入信息和设定行为函数组装成初始剧本节点的行为函数执行任务,具体可以通过以下方式实现:
根据初始剧本节点以及运营系统1为剧本文件设定的剧本要素格式,确定初始剧本节点对应的剧本要素格式,然后将初始剧本节点的输入信息和设定行为函数组装成初始剧本节点的行为函数执行任务。
在本说明书实施例中,运营系统1所设定的剧本要素是针对整个剧本文件的,因此,初始剧本节点对应的剧本要素可以通过运营系统1所设定的剧本要素所确定。
请结合参阅图3,由图3可知,初始剧本节点为剧本节点A,剧本节点A中封装的设定行为函数为fA,剧本节点A的输入信息inA中包括设定行为函数fA的行为参数pA和初始附加信息e0。
进一步地,剧本播放器21将设定行为函数fA、行为参数pA和附加信息e0按照剧本节点A对应的剧本要素格式组装成剧本节点A的行为函数执行任务rA,然后将行为函数执行任务rA下发至行为执行器22。
行为执行器22中的钩子函数hook执行行为函数执行任务rA,从而对目标用户在剧本节点A上的行为进行模拟,并得到剧本节点A的输出信息outA。
在本说明书实施例中,当对目标用户在初始剧本节点上的行为进行模拟时,根据初始附加信息,得到初始剧本节点的附加信息。
具体地,行为执行器22在执行行为函数执行任务rA时,根据初始附加信息e0,得到剧本节点A的附加信息eA。可以理解,剧本节点A的输出信息outA中包括了行为参数pA、附加信息eA、初始附加信息e0。由此可见,在剧本节点A的输出信息outA中,追加了剧本节点A的附加信息eA。如此,能够在每个剧本节点上进行用户行为模拟时,将已获得的输入信息和输出信息依次传递和追加,无需为之前的剧本节点的输入信息和输出信息进行手动追加操作,实现了用户行为模拟的程序化和自动化,又由于上述用户行为模拟是基于钩子函数hook执行的,能够按照输入信息严格、准确地得到输出信息,实现了精细化的用户行为模拟。
进一步地,行为执行器22将得到的输出信息outA返回给剧本播放器21,以便剧本播放器21对下一个剧本节点进行播放,如此,能够使得每个剧本节点的输入信息和输出信息能够随着剧本节点的播放依次传递和追加,无需在播放剧本节点的过程中额外对输入信息和输出信息的依次传递和追加进行操作,减少了操作流程,减小了计算机设备的运载负荷,也实现了多个剧本节点的播放流畅性,从而能够流畅地而不是断断续续地得到用户行为轨迹。
S142,根据初始剧本节点的输出信息,获得下一个剧本节点的输入信息。
在本说明书实施例中,下一个剧本节点是根据执行顺序和初始剧本节点,从所有剧本节点中确定的。
具体地,请结合参阅图3,图3中的初始剧本节点为剧本节点A,执行顺序为:剧本节点A、剧本节点B、剧本节点C和剧本节点D,可以理解,下一个剧本节点为剧本节点B。
进一步地,剧本节点B的输入信息是根据剧本节点A的输出信息得到的。
具体地,可以根据剧本节点A的输出信息outA,得到剧本节点B的输入信息inB。更为具体地,可以理解为inB包含有outA,也可以理解为inB=outA。如此,在播放整个剧本文件时,只需要确定初始剧本节点的输入信息,就能够实现整个剧本文件的流畅播放,并且在整个剧本文件的播放过程中,当前剧本节点的输入信息可以根据上一个剧本节点的输出信息得到,且根据当前剧本节点的输出信息又可以得到下一个剧本节点的输入信息,能够实现剧本文件的程序化、自动化和精细化播放,从而流畅地得到用户行为轨迹。
S143,根据下一个剧本节点的输入信息,对目标用户在下一个剧本节点上的行为进行模拟,直至得到最后一个剧本节点的输出信息。
在本说明书实施例中,下一个剧本节点中封装有预设行为函数,根据下一个剧本节点的输入信息,对目标用户在下一个剧本节点上的行为进行模拟,具体包括以下步骤:
按照下一个剧本节点对应的剧本要素格式,将下一个剧本节点的输入信息和预设行为函数组装成下一个剧本节点的行为函数执行任务。执行下一个剧本节点的行为函数执行任务,以对目标用户在下一个剧本节点上的行为进行模拟,得到下一个剧本节点的输出信息。
请结合参阅图3,剧本节点A的输出信息outA中包括行为参数pA、初始附加信息e0和附加信息eA,
剧本节点B中封装有预设行为函数fB,进一步地,可以根据剧本文件的剧本要素确定出预设行为函数fB的行为参数pB。
再进一步地,剧本播放器21将预设行为函数fB、行为参数pA、行为参数pB、初始附加信息e0和附加信息eA按照剧本节点B对应的剧本要素格式组装成剧本节点B的行为函数执行任务rB,然后将行为函数执行任务rB下发至行为执行器22。
行为执行器22中的钩子函数hook执行行为函数执行任务rB,从而对目标用户在剧本节点B上的行为进行模拟,并得到剧本节点B的输出信息outB。
在本说明书实施例中,当对目标用户在下一个剧本节点上的行为进行模拟时,根据初始剧本节点的附加信息,得到下一个剧本节点的附加信息。
具体地,行为执行器22在执行行为函数执行任务rB时,根据初始附加信息e0和附加信息eA,得到剧本节点B的附加信息eB。可以理解,剧本节点B的输出信息outB中包括了行为参数pA、行为参数pB、初始附加信息e0、附加信息eA和附加信息eB。
进一步地,行为执行器22将得到的输出信息outB再次返回给剧本播放器21,以便剧本播放器21对下一个剧本节点的下一个顺序的剧本节点进行播放。
可以理解,剧本播放器21对下一个剧本节点的下一个顺序的剧本节点进行播放的方法与上述剧本播放器21对初始剧本节点和下一个剧本节点进行播放的方法类似,因此在此不作更多说明。
进一步地,通过上述方法,能够按照执行顺序依次对目标用户在每个剧本节点上的行为进行模拟,并得到目标用户在每个剧本节点上的输出信息,且目标用户在每个剧本节点上的输出信息中包括了该剧本节点以及该剧本节点之前的所有剧本节点的输入信息和输出信息,如此,根据剧本文件中任意一个剧本节点的输出信息,便能够得到该剧本节点之间的用户行为轨迹,不仅能够对连续的用户行为进行整体分析,还能够对连续的用户行为模拟进行分段分析,提高了用户行为模拟的灵活性。
在本说明书实施例中,剧本播放器21在播放每个剧本节点时,会根据剧本文件中剧本要素进行播放。具体地,剧本文件的剧本要素中包括了剧本文件的执行时间。更为具体地,剧本文件的执行时间中包括了每个剧本节点的设定执行时刻。
请结合参阅图5,图5示出了剧本播放器在播放每个剧本节点时的流程图。
S31,获取当前剧本节点的设定执行时刻。
在本说明书实施例中,剧本播放器21可以从剧本文件的剧本要素中获取当前剧本节点的设定执行时刻。
S32,判断当前时刻是否达到设定执行时刻。
可以理解,为了确保用户行为模拟的程序化、自动化和精细化,剧本播放器21在播放每个剧本节点时,需要按照设定执行时刻播放每个剧本节点。
若当前时刻到达设定执行时刻,转向S33,否则,剧本播放器21进行等待,直到当前时刻到达设定执行时刻。
S33,播放当前剧本节点。
可以理解,若当前时刻到达设定执行时刻,剧本播放器21播放当前剧本节点。
请结合参阅图3,例如,若剧本节点B的设定执行时刻为13:00:00,而当前时刻为12:59:30,在这种情况下,剧本播放器21会等待30s,在当前时刻为13:00:00时播放剧本节点。如此,能够确保剧本节点的播放是严格按照剧本文件的剧本要素进行的,提高了在播放剧本文件时的抗干扰性,避免在播放剧本文件的过程中随意改变剧本节点的播放时刻,确保了剧本文件播放的准确性和严谨性,剧本播放器21只会在到达当前剧本节点的设定执行时刻时才播放当前剧本节点,并按照执行顺序严格执行播放,能够确保整个剧本文件能够程序化、自动化和精细化地进行播放,从而实现程序化、自动化和精细化的用户行为模拟。
在本说明书实施例中,按照执行顺序确定出的相邻两个剧本节点之间所传递的输入信息和输出信息可以理解为上下文信息。该上下文信息在整个剧本文件的播放过程中是不断变化、迭代和追加的。在本说明书实施例中,上下文信息是一个字典型数据结构。具体地,上下文信息中最初仅包含了初始剧本节点的输入信息,当剧本播放器播放完整个剧本文件时,上下文信息最后涵盖了所有剧本节点的输入信息和输出信息。其中,所有剧本节点的输入信息和输出信息能够直观地反映出目标用户在应用程序上的用户行为轨迹。可以理解,通过上下文信息,能够准确确定用户行为模拟的轨迹,例如,若剧本节点包括剧本节点A1、剧本节点A2、剧本节点A3、剧本节点A4和剧本节点A5,当上下文信息传递到剧本节点A3时,可以通过上下文信息确定剧本节点A1到剧本节点A3之间的用户行为轨迹,当上下文信息传递到剧本节点A5时,能够通过上下文信息确定整个用户行为轨迹,如此,提高用户行为轨迹确定的灵活性。此外,通过上下文信息,能够使得每个剧本节点的输入信息和输出信息能够随着剧本节点的播放依次传递和追加,无需在播放剧本节点的过程中额外对输入信息和输出信息的依次传递和追加进行操作,减少了操作流程,减小了计算机设备的运载负荷,也实现了多个剧本节点的播放流畅性,从而能够流畅地而不是断断续续地得到用户行为轨迹。
可以理解,剧本播放器21在播放每个剧本节点之前,会根据该剧本节点的输入信息进行前置处理,剧本播放器21在播放每个剧本节点之后,会根据该剧本节点的输出信息进行后置处理。
在本说明书实施例中,前置处理可以理解为根据该剧本节点的输入信息确定该剧本节点的运行流程,前面提到,第i个剧本节点的输入信息是第i-1个剧本节点的输出信息,因此,在获取了前一个剧本节点的输出信息之后,会根据前一个剧本节点的输出信息,确定当前剧本节点的输入信息和运行流程。如此,能够根据前一个剧本节点的输出信息灵活地确定当前剧本节点的输入信息和运行流程,在前一个剧本节点的输出信息出现变化时,当前剧本节点的输入信息和运行流程也会出现适当调整,从而避免机械化地模拟用户行为,使得剧本播放器21在播放每个剧本节点时能够适应前一个剧本节点的变化,高度还原了用户行为,使得模拟的用户行为更接近于真实用户行为。
例如,若前一个剧本节点的输出信息表征用户多次输入密码才通过登录,那么当前剧本节点的运行流程可以为:继续输入短信验证码,输入信息为短信验证码。又例如,若前一个剧本节点的输出信息表征用户通过一次密码就通过了登录,那么当前剧本节点的运行流程可以为:进行滑块验证,输入信息为用户输入的轨迹参数。
通过上述示例可以得到,在前一个剧本节点的输出信息不同时,当前剧本节点的运行流程和输入信息也会进行相应调整和改变,如此,避免了机械化地模拟用户行为,使得剧本播放器21在播放每个剧本节点时能够适应前一个剧本节点的输出信息的变化(适应前一个用户行为的变化),高度还原了用户行为,使得模拟的用户行为更接近于真实用户行为。
在本说明书实施例中,后置处理可以用于时间延迟控制,用于模拟行为间的停顿间隔。此外,后置处理还可以用于确定当前剧本节点对应的用户行为是否存在风险,确定当前剧本节点对应的用户行为是否存在风险将在后文进行说明,因此在此不做更多说明。
S15,根据目标用户在每个剧本节点上的输出信息,得到目标用户在应用程序上的用户行为轨迹。
在本说明书实施例中,由于每个剧本节点的输入信息和输出信息是依次传递和追加的,当核心系统2完成对目标用户在剧本文件中的所有剧本节点上的行为模拟时,会得到最后一个剧本节点的输出信息,其中,最后一个剧本节点的输出信息可以理解为上下文信息,该上下文信息包含了剧本文件中每个剧本节点的输入信息和输出信息,如此,能够根据该上下文信息,得到目标用户在应用程序上的用户行为轨迹。
通过拟定剧本文件,能够实现直观的剧本化设定,且对目标用户在剧本文件中的所有剧本节点上的行为模拟是基于行为函数和行为参数实现的,如此,能够将目标用户在初始剧本节点上的行为进行模拟转换为对行为函数的执行,进而将用户行为模拟转换为函数调用和执行,将用户行为模拟进行参数化,由于参数化的函数调用和执行是按照输入信息(行为参数)在钩子函数hook上执行的,因此,能够按照输入信息严格、准确地得到输出信息,确保了用户行为模拟的程序化、自动化和精细化,无需借助人工编写脚本和APP录屏重放技术,也能够程序化、自动化且精细化地模拟用户行为,得到用户行为轨迹。
在本说明书实施例中,通过剧本化的方式模拟用户行为,还能够确定每个剧本节点对应的用户行为是否存在风险。如此,能够对用户行为所存在的风险进行修复或增设对应的风险防范流程,能够基于用户行为提前确定出可能出现的风险并进行预防,避免或减少实际用户行为出现风险带来的损失。
请结合参阅图6,为本说明书实施例所提供的确定剧本节点对应的用户行为是否存在风险的流程图:
S41,获得所有剧本节点中的任意一个目标剧本节点的输出信息。
在本说明书实施例中,剧本播放器21可以获取所有剧本节点中的任意一个目标剧本节点的输出信息,以目标剧本节点T为例,目标剧本节点T的输出信息可以包括以下几种,当然,在具体实施过程中,并不限于以下几种:
1)在目标剧本节点T上完成行为模拟的耗时时长。
2)目标剧本节点T的输入信息中的设定环境变量,以及目标剧本节点T的输出信息中的在目标剧本节点上进行行为模拟时的实际环境变量。
3)在目标剧本节点T上完成行为模拟时的轨迹参数。
S42,根据目标剧本节点的输出信息,确定目标用户在目标剧本节点上的模拟行为是否存在风险。
在本说明书实施例中,根据目标剧本节点的输出信息,确定目标用户在目标剧本节点上的模拟行为是否存在风险,具体可以通过以下三种方式实现,当然,在具体实施时,并不限于以下几种方式。
第一种确定目标用户在目标剧本节点上的模拟行为是否存在风险的方式:
判断耗时时长是否落入设定数值区间内,获得判断结果。若判断结果表征耗时时长未落入设定数值区间内,确定目标用户在目标剧本节点上的模拟行为存在风险。
在本说明书实施例中,设定数值区间为实际的用户行为所耗费的时长构成的区间。具体地,以目标用户输入登陆账号和登陆密码的用户行为为例,在实际中,目标用户输入登陆账号和登陆密码的最短耗时为t1,最长耗时为t2,则设定数值区间可以为[t1,t2]。
在本说明书实施中,以tx表示在目标剧本节点T上完成行为模拟的耗时时长。具体地,耗时时长tx未落入设定数值区间内,具体包括以下两种情况:
第一种,tx小于t1,在这种情况下,在目标剧本节点T上完成的行为模拟可能表征目标用户的登陆账号和登陆密码是通过软件输入的,可能存在目标用户的登陆账号和登陆密码被窃取或者目标用户使用第三方软件的情况,因此,在这种情况下,会确定目标用户在目标剧本节点上的模拟行为存在风险。
第二种,tx大于t2,在这种情况下,在目标剧本节点T上完成的行为模拟可能表征目标用户以外的人员在获取了目标用户的登陆账号之后,又花费大量时间窃取目标用户的登陆密码,可能存在输入登陆账号和登陆密码是非本人执行的情况,因此,在这种情况下,会确定目标用户在目标剧本节点上的模拟行为存在风险。
可以理解,在通过上述方式确定出目标用户在目标剧本节点上的模拟行为存在风险时,可以在目标剧本节点之后增设一个风险验证流程节点,例如,若判断结果表征耗时时长未落入设定数值区间内,向用户发送一个二次验证的流程,例如,二次验证可以是人脸验证、语音验证和指纹验证等,如此,能够在检测到可能存在风险时启动风险验证流程,避免和减小目标用户在目标剧本节点上的模拟行为风险带来的损失。
具体地,在增设了风险验证流程节点之后,还可以对该剧本文件继续进行模拟,从而验证该风险验证流程节点的执行可靠性,从而根据风险验证流程节点的执行可靠性的验证结果对风险验证流程节点进行优化,还可以将增设了风险验证流程节点的剧本文件进行回归测试,能够大幅降低基于剧本文件的风险验证测试、维护升级等阶段的成本。
第二种确定目标用户在目标剧本节点上的模拟行为是否存在风险的方式:
检测实际环境变量与设定环境变量是否相同,获得检测结果。若所述检测结果表征所述实际环境变量与所述设定环境变量不相同,确定所述目标用户在所述目标剧本节点上的模拟行为存在风险。
在本说明书实施例中,所述设定环境变量可以理解为在目标剧本节点T上进行行为模拟之前,为目标剧本节点T配置的环境变量,其中,所述设定环境变量中可以包括行为模拟的地点或模拟行为的设备对应的mac地址等。所述实际环境变量可以理解为在目标剧本节点T上进行行为模拟时的实时环境变量,可以理解,若所述实际环境变量和所述设定环境变量不相同,则表征在目标剧本节点T上进行行为模拟时地点发生了变化,或者在目标剧本节点T上进行行为模拟时设备的mac地址发生了变化,在这种情况下,可能存在该行为是非目标用户本人所为,也可能表征所述目标用户在执行该用户行为时遭受到木马或者病毒的攻击,在这种情况下,会确定目标用户在所述目标剧本节点上的模拟行为存在风险。
可以理解,在通过上述方式确定出目标用户在目标剧本节点上的模拟行为存在风险时,也可以在目标剧本节点之后增设一个风险验证流程节点,并对该剧本文件继续进行模拟,从而验证该风险验证流程节点的执行可靠性,从而根据风险验证流程节点的执行可靠性的验证结果对风险验证流程节点进行优化,还可以将增设了风险验证流程节点的剧本文件进行回归测试,能够大幅降低基于剧本文件的风险验证测试、维护升级等阶段的成本。
第三种确定目标用户在目标剧本节点上的模拟行为是否存在风险的方式:
检测轨迹参数是否符合设定行为轨迹,若轨迹参数未符合设定行为轨迹,确定目标用户在目标剧本节点上的模拟行为存在风险。
在本说明书实施例中,设定行为轨迹可以理解为正常情况下目标用户拖动验证块时,手指触摸显示屏进行滑动或者通过鼠标进行滑动生成的轨迹,可以理解,设定行为轨迹为非直线。轨迹参数可以理解为在目标剧本节点T上完成行为模拟时的生成的轨迹。
在正常情况下,目标用户的手指触摸显示屏进行滑动或者通过鼠标进行滑动生成的轨迹为非直线,具体地,在正常情况下,轨迹参数对应的轨迹是符合设定行为轨迹的,若轨迹参数对应的轨迹未符合设定行为轨迹,表征目标用户可能采用了外挂或者其他第三方的验证软件进行滑块验证,在这种情况下,会确定目标用户在目标剧本节点上的模拟行为存在风险。
可以理解,在通过上述方式确定出目标用户在目标剧本节点上的模拟行为存在风险时,也可以在目标剧本节点之后增设一个风险验证流程节点,并对该剧本文件继续进行模拟,从而验证该风险验证流程节点的执行可靠性,从而根据风险验证流程节点的执行可靠性的验证结果对风险验证流程节点进行优化,还可以将增设了风险验证流程节点的剧本文件进行回归测试,能够大幅降低基于剧本文件的风险验证测试、维护升级等阶段的成本。
在本说明书实施例中,确定目标用户在目标剧本节点上的模拟行为是否存在风险可以由剧本播放器21在本地执行。具体地,剧本播放器21可以在本地执行非行为函数执行任务,从而确定用户行为是否存在风险,具体地,剧本播放器21在本地执行非行为函数执行任务可以通过Python脚本实现,也可以选择其他动态脚本,在此不做限定。
可以理解,根据目标剧本节点的输出信息,能够从多个维度确定用户行为是否存在风险,提高了用户行为风险检测的准确性,基于多维度的用户行为风险,能够增设不同的风险验证流程节点,进而能够基于用户行为模拟提前感知风险,并在提前感知风险的前提下对用户行为的风险控制场景进行主动性地策略优化,提高了风险防控的主动性和前瞻性。
在本说明书实施例中,非行为函数执行任务对应非行为函数剧本节点。具体地,可以为剧本文件中的每个剧本节点配置一个非行为函数剧本节点,也可以在剧本文件中的最后一个剧本节点后面配置一个非行为函数剧本节点。
在本说明书实施例中,配置非行为函数剧本节点可以理解为对剧本节点进行后置处理,如此,采用上述用户行为模拟方法,不仅能够程序化、自动化、精细化地模拟用户行为,还能够根据模拟出的用户行为提前检测风险,从而对用户行为的风险控制场景进行主动性地策略优化,提高了风险防控的主动性和前瞻性。
请结合参阅图7,是本说明书实施例中为剧本文件中的每个剧本节点配置一个非行为函数剧本节点的示意图。
由图7可知,图7中的剧本节点的执行顺序为:剧本节点D、剧本节点D、剧本节点E和剧本节点E,其中,剧本节点D和剧本节点E为非行为函数剧本节点。剧本节点D用于确定剧本节点D对应的用户行为模拟是否存在风险,剧本节点E用于确定剧本节点E对应的用户行为模拟是否存在风险。
请结合参阅图8,是本说明书实施例中为剧本文件中的最后一个剧本节点后面配置一个非行为函数剧本节点的示意图。
由图8可知,图8中的剧本节点的执行顺序为:剧本节点D、剧本节点E、剧本节点F和剧本节点G,其中,剧本节点G,为非行为函数剧本节点。剧本节点G用于确定剧本节点D、剧本节点E和剧本节点F对应的用户行为模拟是否存在风险。
可以理解,通过上述两种配置非行为函数剧本节点的方式,均能够确定在剧本节点上模拟的用户行为是否存在风险,在具体实施过程中,并不限于以上两种配置非行为函数剧本节点的方式。
通过上述配置非行为函数剧本节点的方式,提高了对剧本文件配置非行为函数剧本节点的灵活性,能够提高拟定剧本文件时的灵活性,使得剧本文件能够高度还原实际的用户行为。
可以理解,通过上述对剧本文件进行播放以实现剧本化用户行为模拟的方法,能够程序化、自动化和精细化地实现用户行为模拟,还原用户行为轨迹,并且还能够基于非行为函数剧本节点对确定剧本节点对应的用户行为模拟是否存在风险,确保了从用户行为模拟到模拟结果处理的全程自动化。
为便于理解上述方法,本说明书实施例以一完整事例进行说明:
以用户登陆APP为例,用户登陆APP的流程包括以下几个连续的行为步骤:
1)打开APP;
2)进入登陆页面,输入账号和密码;
3)滑块验证。
可以理解,运营系统1在拟定上述行为步骤的剧本文件时,可以获取3个行为函数:f(打开APP)、f(打开登录页并登陆)和f(滑动滑块验证卡片)。
行为函数f(打开APP)的输入信息可以为登录设备ID(剧本要素),具体地,登录设备ID也可以理解为设定环境变量,输出信息为打开APP之后的设备对应的ID。
行为函数f(打开登录页并登陆)的输入信息可以为账号、密码、登录时间等(剧本要素),输出信息可以为登录认证结果。
行为函数f(滑动滑块验证卡片)的输入信息可以为采集的轨迹参数(剧本要素),输出信息为验证结果。
进一步地,剧本播放器21在播放上述剧本文件时,将行为函数f(打开APP)及其输入信息组装为行为函数执行任务下发到行为执行器22,行为执行器22执行该行为函数执行任务之后得到打开APP之后的设备对应的ID,将打开APP之后的设备对应的ID返回给剧本播放器21。
剧本播放器21获取到打开APP之后的设备对应的ID时,确定出行为函数f(打开登录页并登陆)的输入信息,然后将行为函数f(打开登录页并登陆)及其输入信息组装为行为函数执行任务下发到行为执行器22,行为执行器22执行该行为函数执行任务之后得到登录认证结果,将登录认证结果返回给剧本播放器21。
剧本播放器21获取到登录认证结果之后,行为函数f(滑动滑块验证卡片)的输入信息,然后将行为函数f(滑动滑块验证卡片)及其输入信息组装为行为函数执行任务下发到行为执行器22,行为执行器22执行该行为函数执行任务之后得到验证结果,将验证结果返回给剧本播放器21。
通过上述步骤,能够根据用户打开APP的行为、用户输入账号和密码的行为以及用户进行滑块验证的行为确定出对应的行为函数和输入信息,从而实现用户行为的参数化,进而将用户行为模拟转换为函数调用和执行,由于参数化的函数调用和执行是严格、准确地按照输入信息进行的,因此,确保了用户行为模拟的程序化、自动化和精细化,从而确保了用户登陆APP的行为模拟的程序化、自动化和精细化。
本说明书实施例中,还可以在行为函数f(滑动滑块验证卡片)对应的剧本节点后面增加非行为函数剧本节点,以检测在行为函数f(滑动滑块验证卡片)对应的剧本节点上模拟的用户行为是否存在风险。
具体地,剧本播放器21可以在本地执行非行为函数剧本节点对应的非行为函数执行任务,例如,获取滑动滑块的耗时时长,若耗时时长未落入设定数值区间内,则确定用户滑动滑块的模拟行为存在风险。又例如,获取滑块滑动的轨迹参数,检测轨迹参数是否符合设定行为轨迹,若轨迹参数未符合设定行为轨迹(轨迹参数为直线或者线性曲线),则确定用户滑动滑块的模拟行为存在风险。
在确定出用户滑动滑块的模拟行为存在风险时,可以在用户滑动滑块的节点之后增设一个风险验证流程节点(例如二次验证节点),并对用户登录APP的行为继续进行模拟,从而验证该风险验证流程节点的执行可靠性,从而根据风险验证流程节点的执行可靠性的验证结果对风险验证流程节点进行优化,还可以将增设了风险验证流程节点的用户登录APP的行为对应的剧本文件进行回归测试,能够大幅降低基于剧本文件的风险验证测试、维护升级等阶段的成本。
应当理解,检测用户的模拟行为是否存在风险的方法并不限于上述内容,在具体实施过程中,可以根据每个剧本节点可能出现的异常操作进行风险检测,如此,能够基于剧本文件全面、多维地实现风险的提前检测和预知,从而从而对用户行为的风险控制场景进行主动性地策略优化,提高了风险防控的主动性和前瞻性。
基于与前述实施例中同样的发明构思,本说明书实施例还提供一种用户行为模拟装置500,请结合参阅图9,用户行为模拟装置500包括剧本文件获取模块501、剧本文件解析模块502、用户行为模拟模块503和用户行为轨迹获取模块504。
剧本文件获取模块501,用于获取剧本文件,所述剧本文件是对目标用户的连续的行为步骤进行剧本化处理得到的,所述剧本文件中包括多个剧本节点;
剧本文件解析模块502,用于解析所述剧本文件,确定出所述剧本文件中的所有剧本节点的执行顺序,并获取所述所有剧本节点中的初始剧本节点和所述初始剧本节点的输入信息;
用户行为模拟模块503,用于根据所述执行顺序和所述初始剧本节点的输入信息,依次对所述目标用户在每个剧本节点上的行为进行模拟,并得到所述目标用户在所述每个剧本节点上的输出信息;
用户行为轨迹获取模块504,用于根据所述目标用户在所述每个剧本节点上的输出信息,得到所述目标用户在应用程序上的用户行为轨迹。
在一种可选方式中,用户行为模拟模块503,用于:根据所述初始剧本节点的输入信息,对所述目标用户在所述初始剧本节点上的行为进行模拟,得到所述初始剧本节点的输出信息;根据所述初始剧本节点的输出信息,获得下一个剧本节点的输入信息;其中,所述下一个剧本节点是根据所述执行顺序和所述初始剧本节点,从所述所有剧本节点中确定的;根据所述下一个剧本节点的输入信息,对所述目标用户在所述下一个剧本节点上的行为进行模拟,直至得到最后一个剧本节点的输出信息。
在一种可选方式中,用户行为模拟模块503,用于:按照所述初始剧本节点对应的剧本要素格式,将所述初始剧本节点的输入信息和所述设定行为函数组装成所述初始剧本节点的行为函数执行任务;其中,所述初始剧本节点的输入信息中包括初始附加信息;执行所述初始剧本节点的行为函数执行任务,以对所述目标用户在所述初始剧本节点上的行为进行模拟,得到所述初始剧本节点的输出信息。
在一种可选方式中,用户行为模拟模块503,用于:当对所述目标用户在所述初始剧本节点上的行为进行模拟时,根据所述初始附加信息,得到所述初始剧本节点的附加信息。
在一种可选方式中,用户行为模拟模块503,用于:根据所述初始剧本节点的输出信息和所述初始剧本节点的附加信息,获得所述下一个剧本节点的输入信息。
在一种可选方式中,用户行为模拟模块503,用于:按照所述下一个剧本节点对应的剧本要素格式,将所述下一个剧本节点的输入信息和所述预设行为函数组装成所述下一个剧本节点的行为函数执行任务;执行所述下一个剧本节点的行为函数执行任务,以对所述目标用户在所述下一个剧本节点上的行为进行模拟,得到所述下一个剧本节点的输出信息。
在一种可选方式中,用户行为模拟模块503,用于:当对所述目标用户在所述下一个剧本节点上的行为进行模拟时,根据所述初始剧本节点的附加信息,得到所述下一个剧本节点的附加信息;根据所述下一个剧本节点的输出信息和所述下一个剧本节点的附加信息,获得所述下一个剧本节点的下一个顺序的剧本节点的输入信息。
在一种可选方式中,用户行为模拟装置500还包括风险确定模块505,风险确定模块505,用于:获得所述所有剧本节点中的任意一个目标剧本节点的输出信息;根据所述目标剧本节点的输出信息,确定所述目标用户在所述目标剧本节点上的模拟行为是否存在风险。
在一种可选方式中,风险确定模块505,用于:判断所述耗时时长是否落入设定数值区间内,获得判断结果;若所述判断结果表征所述耗时时长未落入所述设定数值区间内,确定所述目标用户在所述目标剧本节点上的模拟行为存在风险。
在一种可选方式中,风险确定模块505,用于:检测所述实际环境变量与所述设定环境变量是否相同,获得检测结果;若所述检测结果表征所述实际环境变量与所述设定环境变量不相同,确定所述目标用户在所述目标剧本节点上的模拟行为存在风险。
在一种可选方式中,风险确定模块505,用于:检测所述轨迹参数是否符合设定行为轨迹;若所述轨迹参数未符合所述设定行为轨迹,确定所述目标用户在所述目标剧本节点上的模拟行为存在风险。
在一种可选方式中,剧本文件解析模块502,用于:获取所述剧本文件中的有向无环图;根据所述有向无环图,得到所述所有剧本节点之间的依赖关系;根据所述依赖关系,确定出所述所有剧本节点的执行顺序。
基于与前述实施例中同样的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本说明书的实施例还提供一种计算机设备,如图10所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文任一所述方法的步骤。
其中,在图10中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口605在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他终端设备通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
通过本说明书的一个或者多个实施例,本说明书具有以下有益效果或者优点:
本说明书实施例所公开的用户行为模拟方法、装置及计算机设备,由于获取到的剧本文件是运营系统对目标用户的连续的行为步骤进行剧本化处理得到的,且运营系统还为剧本文件设定了剧本要素和初始剧本节点的输入信息,如此,能够对剧本文件进行解析,确定出剧本文件中的所有剧本节点的执行顺序,并获取多个剧本节点中的初始剧本节点和初始剧本节点的输入信息,然后根据执行顺序和初始剧本节点的输入信息,依次对目标用户在每个剧本节点上的行为进行模拟,并得到目标用户在每个剧本节点上的输出信息,进而根据目标用户在每个剧本节点上的输出信息,得到目标用户在应用程序上的用户行为轨迹。由于目标用户在每个剧本节点上的行为模拟是严格按照执行顺序和初始剧本节点的输入信息以程序化方式自动进行,并且剧本文件中的每个剧本节点的输入信息和输出信息是依次传递和追加的,如此,无需通过人工编写脚本和APP录屏重放技术,便能程序化、自动化和精细化地实现用户行为模拟,还原用户行为轨迹。
此外,通过在剧本文件中配置非执行函数剧本节点,能够多维度地检测剧本文件中的剧本节点对应的用户行为是否存在风险,确保了从用户行为模拟到模拟结果处理的全程自动化,能够对用户行为所存在的风险进行修复或增设对应的风险防范流程,能够基于用户行为提前确定出可能出现的风险并进行预防,并在提前感知风险的前提下对用户行为的风险控制场景进行主动性地策略优化,提高了风险防控的主动性和前瞻性,避免或减少实际用户行为出现风险带来的损失。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本说明书也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本说明书的内容,并且上面对特定语言所做的描述是为了披露本说明书的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本说明书的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本说明书的示例性实施例的描述中,本说明书的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本说明书要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本说明书的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本说明书的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本说明书的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本说明书实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本说明书还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本说明书的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本说明书进行说明而不是对本说明书进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本说明书可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。