脚本驱动环境下的远程调用方法和远程调用装置制造方法

文档序号:6552386阅读:116来源:国知局
脚本驱动环境下的远程调用方法和远程调用装置制造方法
【专利摘要】本发明提供了一种脚本驱动环境下的远程调用方法和一种脚本驱动环境下的远程调用装置,其中,所述脚本驱动环境下的远程调用方法,包括:在接收到对前台任一控件的操作时,判断所述操作的类别;在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否被修改,若否,则不执行对后台的远程调用。通过本发明的技术方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
【专利说明】脚本驱动环境下的远程调用方法和远程调用装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体而言,涉及一种脚本驱动环境下的远程调用方法和一种脚本驱动环境下的远程调用装置。

【背景技术】
[0002]在脚本驱动环境下,脚本引发会引发远程调用,这常常引发远程调用过多(例如打开界面有近100个远程调用)。
[0003]商业智能或者其他业务系统可能需要实现更灵活的定制功能,而引入脚本是实现这种需求的一种途径。但是,在实现最大的灵活性的同时,也带来了更大的技术挑战:因为脚本之间互相调用而产生大量的远程调用,从而影响系统的性能。具体地,如图1所示的界面,需要编写如下的脚本:
[0004]脚本1:系统初始化脚本:
[0005]var默认组织=获得默认组织远程API O ;//引发远程调用
[0006]组织控件.设置默认组织(默认组织);
[0007]脚本2:组织控件的内容变更事件脚本:
[0008]var组织id =组织控件.获得值O ;//引发远程调用
[0009]var产品分类数组=产品分类AP1.根据条件获得产品分类(组织id);
[0010]产品分类控件.设置产品分类值(产品分类数组[O]);
[0011]脚本3:产品分类控件的内容变更事件脚本
[0012]var产品分类id =产品分类控件.获得值();
[0013]var产品数组=产品AP1.根据条件获得产品(产品分类id) ;//引发远程调用
[0014]产品控件.设置产品值(产品数组[O]);
[0015]脚本4:产品控件的内容变更事件脚本
[0016]var产品id =产品控件的值;
[0017]销售统计图.刷新();//引发远程调用
[0018]库存统计图.刷新O '11引发远程调用
[0019]占比分析.刷新O '11引发远程调用
[0020]组合分析.刷新O '11引发远程调用
[0021]本月销量表.刷新O '11引发远程调用
[0022]在如图1所示的简单实例中,远程调用一共发生了至少9次(考虑到这个界面的打开),而在其他实例中,可能引发的远程调用会达到几十次,严重这影响了系统性能和用户的体验。
[0023]因此,如何避免不必要的远程调用,降低远程调用的次数,以优化系统的性能和用户的体验成为亟待解决的技术问题。


【发明内容】

[0024]本发明正是基于上述技术问题,提出了一种新的脚本驱动环境下的远程调用方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
[0025]有鉴于此,本发明提出了一种脚本驱动环境下的远程调用方法,包括:在接收到对前台任一控件的操作时,判断所述操作的类别;在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。
[0026]在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
[0027]在上述技术方案中,优选地,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括:响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属性和/或行为是否被修改的步骤具体为:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
[0028]在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
[0029]在上述技术方案中,优选地,还包括:将所述前台的初始化业务逻辑转移到所述后台执行。
[0030]在上述技术方案中,优选地,还包括:若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行
I=I TT O
[0031 ] 在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
[0032]在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
[0033]根据本发明的另一方面,还提出了一种脚本驱动环境下的远程调用装置,包括:判断单元,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。
[0034]在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
[0035]在上述技术方案中,优选地,还包括:响应单元,用于在所述判断单元判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元具体用于:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
[0036]在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
[0037]在上述技术方案中,优选地,所述处理单元还用于:将所述前台的初始化业务逻辑转移到所述后台执行。
[0038]在上述技术方案中,优选地,所述处理单元还用于:在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
[0039]在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
[0040]在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务
[0041]通过以上技术方案,最大限度地避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。

【专利附图】

【附图说明】
[0042]图1示出了基于脚本生成的界面示意图;
[0043]图2示出了根据本发明的实施例的脚本驱动环境下的远程调用方法的示意流程图;
[0044]图3示出了根据本发明的实施例的脚本驱动环境下的远程调用装置的示意框图;
[0045]图4示出了根据本发明的实施例的前台和后台逻辑结构示意图;
[0046]图5示出了根据本发明的实施例的前台合并的逻辑结构示意图。

【具体实施方式】
[0047]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0048]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0049]图2示出了根据本发明的实施例的脚本驱动环境下的远程调用方法的示意流程图。
[0050]如图2所示,根据本发明的实施例的脚本驱动环境下的远程调用方法,包括:步骤202,在接收到对前台任一控件的操作时,判断所述操作的类别;步骤204,在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;步骤206,在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。
[0051]在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
[0052]在上述技术方案中,优选地,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括:响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属性和/或行为是否被修改的步骤具体为:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
[0053]在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
[0054]在上述技术方案中,优选地,还包括:将所述前台的初始化业务逻辑转移到所述后台执行。
[0055]在上述技术方案中,优选地,还包括:若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行
I=I TT O
[0056]在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
[0057]在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
[0058]图3示出了根据本发明的实施例的脚本驱动环境下的远程调用装置的示意框图。
[0059]如图3所示,根据本发明的实施例的脚本驱动环境下的远程调用装置300,包括:判断单元302,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述断所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元304,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。
[0060]在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
[0061]在上述技术方案中,优选地,还包括:响应单元306,用于在所述判断单元302判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元302具体用于:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
[0062]在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
[0063]在上述技术方案中,优选地,所述处理单元304还用于:将所述前台的初始化业务逻辑转移到所述后台执行。
[0064]在上述技术方案中,优选地,所述处理单元304还用于:在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
[0065]在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
[0066]在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
[0067]本发明主要提出了通过前台逻辑后移和前台远程调用合并的方案实现最大限度地降低远程调度的次数。具体地,以下结合图4至图5详细说明本发明的技术方案。
[0068]图4示出了根据本发明的实施例的前台和后台逻辑结构示意图。
[0069]前台逻辑后移主要包括将本来在前台执行的初始化逻辑转移到后台,相当于执行了合并。这需要在后台执行脚本和业务逻辑,此处的业务逻辑仅初始化。
[0070]具体地,如图4所示,根据本发明的实施例的前台和后台逻辑,包括:
[0071]用户界面,主要设置在前台,用于获取用户的各种操作。
[0072]后台执行器,用来在后台模拟前台执行环境,当然仅仅是业务逻辑上的模拟,不包括前台控件本身的执行。后台执行器需要总控脚本引擎、事件管理器、各种AP1、控件后台模型等。
[0073]脚本引擎,脚本引擎用来执行脚本。脚本中有对控件模型、API等的调用,因此脚本引擎启动之前,需要由后台执行器设置对应的执行环境。例如:脚本引擎必须知道脚本中对API的调用如何对应到到真正的组织API运行期代码。
[0074]事件管理器,因为前台支持事件机制,因此后台要执行前台逻辑,也必须执行事件代码。事件管理器支持各种定义好的前台事件。
[0075]控件后台模型,脚本对控件的操作通过控件模型进行,在后台也应建立对应的控件后台模型。例如:脚本列表控件的设置值将导致控件发生“选项变更”事件。
[0076]后台API,提供需要的API调用服务。是前台API在后台的体现。
[0077]UI元数据:用于描述UI环境,描述方式不限,例如使用XML描述UI ;逻辑处理和UI生成器:用于生成UI之前的逻辑处理(如获取数据、权限过滤等),并生成UI (如HTML
坐^
寸/ ο
[0078]图5示出了根据本发明的实施例的前台合并的逻辑结构示意图。
[0079]其中,前台合并的原理主要是:1)对于修改控件属性或者控件行为的操作(即set操作)不引发后台的刷新操作,并且在修改空间属性或控件行为之后,将set操作置脏标记;2)对于获取控件属性的操作(即get操作),需要判断脏标记是否被设置,如不是就应该刷新;3)每次刷新都应该将全部待执行的操作(command)传递到后台服务,在后台服务中执行全部操作。
[0080]如图5所示,前台合并的要点包括前台合并框架、后台合并框架、合并执行的时机选择。
[0081]针对前台合并框架。该框架起到协调脚本、控件刷新、后台合并执行服务的作用,是前台合并的核心,主要包括:
[0082]I)待执行队列,需要合并执行的操作会被放到待执行队列中。记录的内容包括控件ID、AP1、参数及适当的附加信息;
[0083]2)添加合并执行API,将待执行操作添加到队列中,通常由set方法调用;
[0084]3)激发执行API,通常由控件的set方法调用;
[0085]4)远程调用框架后台通讯执行远程调用,可以利用AJAX执行。
[0086]5)结果分发,后台合并执行的结果也是一个合并的结果,合并的结果数据需要被分发到各个控件。
[0087]针对后台合并框架。提供根据待执行队列,调用各控件的合并执行接口获取结果,并将结果返回前台。包括三个部分:合并执行接口、合并执行接口实现注册表、合并执行服务。每个需要合并执行的控件都应该自己实现合并接口。合并执行接口注册表是一个从控件类型到接口实现的映射表。
[0088]针对合并执行时机选择。其中,时机的选择有两个:1)用户事件执行完,合并执行队列中有待执行任务;2)脚本中调用了 set之后,又调用了其get方法。
[0089]普通的set方法不引发远程调用,而是进入全局合并执行队列。当需要此数据时(如某get方法被调用),全局合并执行队列将被执行。此时队列中的远程调用被合并为一个,打包后提交到后台。
[0090]通过上述技术方案,可以实现对使用了很多数据控件的Π的后台执行次数进行优化,尽力降低后台执行的次数,提升用户感受,主要包括:UI第一次打开时,仅有一个远程调用;对瓜的后续操作,大量减少远程连接数量。
[0091]以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,前台对后台的远程调用较多,严重影响了系统的性能和用户的体验。因此,本发明提出了一种新的脚本驱动环境下的远程调用方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
[0092]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种脚本驱动环境下的远程调用方法,其特征在于,包括: 在接收到对前台任一控件的操作时,判断所述操作的类别; 在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用; 在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。
2.根据权利要求1所述的脚本驱动环境下的远程调用方法,其特征在于,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括: 响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位; 判断所述任一控件的属性和/或行为是否已被修改的步骤具体为: 判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
3.根据权利要求1所述的脚本驱动环境下的远程调用方法,其特征在于,还包括: 将所述前台的初 始化业务逻辑转移到所述后台执行。
4.根据权利要求1至3中任一项所述的脚本驱动环境下的远程调用方法,其特征在于,还包括: 若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
5.根据权利要求4所述的脚本驱动环境下的远程调用方法,其特征在于,对添加至所述执行队列中的操作进行合并包括: 合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
6.一种脚本驱动环境下的远程调用装置,其特征在于,包括: 判断单元,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改; 处理单元,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及 在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。
7.根据权利要求6所述的脚本驱动环境下的远程调用装置,其特征在于,还包括: 响应单元,用于在所述判断单元判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位; 所述判断单元具体用于: 判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
8.根据权利要求6所述的脚本驱动环境下的远程调用装置,其特征在于,所述处理单元还用于: 将所述前台的初始化业务逻辑转移到所述后台执行。
9.根据权利要求6至8中任一项所述的脚本驱动环境下的远程调用装置,其特征在于,所述处理单元还用于: 在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
10.根据权利要求9所述的脚本驱动环境下的远程调用装置,其特征在于,对添加至所述执行队列中的操作进行合并包括: 合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的 执行服务。
【文档编号】G06F9/44GK104077139SQ201410318899
【公开日】2014年10月1日 申请日期:2014年7月4日 优先权日:2014年7月4日
【发明者】张乐龙 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1