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

上传人:1** 文档编号:626117 上传时间:2018-02-26 格式:PDF 页数:12 大小:1.53MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410318899.1

申请日:

2014.07.04

公开号:

CN104077139A

公开日:

2014.10.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06F 9/44变更事项:申请人变更前:用友软件股份有限公司变更后:用友网络科技股份有限公司变更事项:地址变更前:100094 北京市海淀区北清路68号用友软件园变更后:100094 北京市海淀区北清路68号|||实质审查的生效IPC(主分类):G06F 9/44申请日:20140704|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

用友软件股份有限公司

发明人:

张乐龙

地址:

100094 北京市海淀区北清路68号用友软件园

优先权:

专利代理机构:

北京友联知识产权代理事务所(普通合伙) 11343

代理人:

尚志峰;汪海屏

PDF下载: PDF下载
内容摘要

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

权利要求书

1.  一种脚本驱动环境下的远程调用方法,其特征在于,包括:
在接收到对前台任一控件的操作时,判断所述操作的类别;
在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;
在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。

2.
  根据权利要求1所述的脚本驱动环境下的远程调用方法,其特征在于,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括:
响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;
判断所述任一控件的属性和/或行为是否已被修改的步骤具体为:
判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。

3.
  根据权利要求1所述的脚本驱动环境下的远程调用方法,其特征在于,还包括:
将所述前台的初始化业务逻辑转移到所述后台执行。

4.
  根据权利要求1至3中任一项所述的脚本驱动环境下的远程调用方法,其特征在于,还包括:
若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。

5.
  根据权利要求4所述的脚本驱动环境下的远程调用方法,其特征在于,对添加至所述执行队列中的操作进行合并包括:
合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。

6.
  一种脚本驱动环境下的远程调用装置,其特征在于,包括:
判断单元,用于在接收到对前台任一控件的操作时,判断所述操作的 类别,以及
在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;
处理单元,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及
在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。

7.
  根据权利要求6所述的脚本驱动环境下的远程调用装置,其特征在于,还包括:
响应单元,用于在所述判断单元判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;
所述判断单元具体用于:
判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。

8.
  根据权利要求6所述的脚本驱动环境下的远程调用装置,其特征在于,所述处理单元还用于:
将所述前台的初始化业务逻辑转移到所述后台执行。

9.
  根据权利要求6至8中任一项所述的脚本驱动环境下的远程调用装置,其特征在于,所述处理单元还用于:
在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。

10.
  根据权利要求9所述的脚本驱动环境下的远程调用装置,其特征在于,对添加至所述执行队列中的操作进行合并包括:
合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。

说明书

脚本驱动环境下的远程调用方法和远程调用装置
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种脚本驱动环境下的远程调用方法和一种脚本驱动环境下的远程调用装置。
背景技术
在脚本驱动环境下,脚本引发会引发远程调用,这常常引发远程调用过多(例如打开界面有近100个远程调用)。
商业智能或者其他业务系统可能需要实现更灵活的定制功能,而引入脚本是实现这种需求的一种途径。但是,在实现最大的灵活性的同时,也带来了更大的技术挑战:因为脚本之间互相调用而产生大量的远程调用,从而影响系统的性能。具体地,如图1所示的界面,需要编写如下的脚本:
脚本1:系统初始化脚本:
var默认组织=获得默认组织远程API();//引发远程调用
组织控件.设置默认组织(默认组织);
脚本2:组织控件的内容变更事件脚本:
var组织id=组织控件.获得值();//引发远程调用
var产品分类数组=产品分类API.根据条件获得产品分类(组织id);
产品分类控件.设置产品分类值(产品分类数组[0]);
脚本3:产品分类控件的内容变更事件脚本
var产品分类id=产品分类控件.获得值();
var产品数组=产品API.根据条件获得产品(产品分类id);//引发远程调用
产品控件.设置产品值(产品数组[0]);
脚本4:产品控件的内容变更事件脚本
var产品id=产品控件的值;
销售统计图.刷新();//引发远程调用
库存统计图.刷新();//引发远程调用
占比分析.刷新();//引发远程调用
组合分析.刷新();//引发远程调用
本月销量表.刷新();//引发远程调用
在如图1所示的简单实例中,远程调用一共发生了至少9次(考虑到这个界面的打开),而在其他实例中,可能引发的远程调用会达到几十次,严重这影响了系统性能和用户的体验。
因此,如何避免不必要的远程调用,降低远程调用的次数,以优化系统的性能和用户的体验成为亟待解决的技术问题。
发明内容
本发明正是基于上述技术问题,提出了一种新的脚本驱动环境下的远程调用方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
有鉴于此,本发明提出了一种脚本驱动环境下的远程调用方法,包括:在接收到对前台任一控件的操作时,判断所述操作的类别;在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。
在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
在上述技术方案中,优选地,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括:响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属 性和/或行为是否被修改的步骤具体为:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
在上述技术方案中,优选地,还包括:将所述前台的初始化业务逻辑转移到所述后台执行。
在上述技术方案中,优选地,还包括:若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
根据本发明的另一方面,还提出了一种脚本驱动环境下的远程调用装置,包括:判断单元,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。
在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
在上述技术方案中,优选地,还包括:响应单元,用于在所述判断单元判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述 修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元具体用于:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
在上述技术方案中,优选地,所述处理单元还用于:将所述前台的初始化业务逻辑转移到所述后台执行。
在上述技术方案中,优选地,所述处理单元还用于:在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务
通过以上技术方案,最大限度地避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
附图说明
图1示出了基于脚本生成的界面示意图;
图2示出了根据本发明的实施例的脚本驱动环境下的远程调用方法的示意流程图;
图3示出了根据本发明的实施例的脚本驱动环境下的远程调用装置的示意框图;
图4示出了根据本发明的实施例的前台和后台逻辑结构示意图;
图5示出了根据本发明的实施例的前台合并的逻辑结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图2示出了根据本发明的实施例的脚本驱动环境下的远程调用方法的示意流程图。
如图2所示,根据本发明的实施例的脚本驱动环境下的远程调用方法,包括:步骤202,在接收到对前台任一控件的操作时,判断所述操作的类别;步骤204,在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;步骤206,在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。
在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
在上述技术方案中,优选地,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括:响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属性和/或行为是否被修改的步骤具体为:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
在上述技术方案中,优选地,还包括:将所述前台的初始化业务逻辑转移到所述后台执行。
在上述技术方案中,优选地,还包括:若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
图3示出了根据本发明的实施例的脚本驱动环境下的远程调用装置的示意框图。
如图3所示,根据本发明的实施例的脚本驱动环境下的远程调用装置300,包括:判断单元302,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述断所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元304,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。
在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
在上述技术方案中,优选地,还包括:响应单元306,用于在所述判断单元302判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元302具体用于:判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。
在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设 置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。
在上述技术方案中,优选地,所述处理单元304还用于:将所述前台的初始化业务逻辑转移到所述后台执行。
在上述技术方案中,优选地,所述处理单元304还用于:在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。
在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。
在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括:合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。
本发明主要提出了通过前台逻辑后移和前台远程调用合并的方案实现最大限度地降低远程调度的次数。具体地,以下结合图4至图5详细说明本发明的技术方案。
图4示出了根据本发明的实施例的前台和后台逻辑结构示意图。
前台逻辑后移主要包括将本来在前台执行的初始化逻辑转移到后台,相当于执行了合并。这需要在后台执行脚本和业务逻辑,此处的业务逻辑仅初始化。
具体地,如图4所示,根据本发明的实施例的前台和后台逻辑,包括:
用户界面,主要设置在前台,用于获取用户的各种操作。
后台执行器,用来在后台模拟前台执行环境,当然仅仅是业务逻辑上的模拟,不包括前台控件本身的执行。后台执行器需要总控脚本引擎、事件管理器、各种API、控件后台模型等。
脚本引擎,脚本引擎用来执行脚本。脚本中有对控件模型、API等的调用,因此脚本引擎启动之前,需要由后台执行器设置对应的执行环境。例如:脚本引擎必须知道脚本中对API的调用如何对应到到真正的组织API运行期代码。
事件管理器,因为前台支持事件机制,因此后台要执行前台逻辑,也必须执行事件代码。事件管理器支持各种定义好的前台事件。
控件后台模型,脚本对控件的操作通过控件模型进行,在后台也应建立对应的控件后台模型。例如:脚本列表控件的设置值将导致控件发生“选项变更”事件。
后台API,提供需要的API调用服务。是前台API在后台的体现。
UI元数据:用于描述UI环境,描述方式不限,例如使用XML描述UI;逻辑处理和UI生成器:用于生成UI之前的逻辑处理(如获取数据、权限过滤等),并生成UI(如HTML等)。
图5示出了根据本发明的实施例的前台合并的逻辑结构示意图。
其中,前台合并的原理主要是:1)对于修改控件属性或者控件行为的操作(即set操作)不引发后台的刷新操作,并且在修改空间属性或控件行为之后,将set操作置脏标记;2)对于获取控件属性的操作(即get操作),需要判断脏标记是否被设置,如不是就应该刷新;3)每次刷新都应该将全部待执行的操作(command)传递到后台服务,在后台服务中执行全部操作。
如图5所示,前台合并的要点包括前台合并框架、后台合并框架、合并执行的时机选择。
针对前台合并框架。该框架起到协调脚本、控件刷新、后台合并执行服务的作用,是前台合并的核心,主要包括:
1)待执行队列,需要合并执行的操作会被放到待执行队列中。记录的内容包括控件ID、API、参数及适当的附加信息;
2)添加合并执行API,将待执行操作添加到队列中,通常由set方法调用;
3)激发执行API,通常由控件的set方法调用;
4)远程调用框架后台通讯执行远程调用,可以利用AJAX执行。
5)结果分发,后台合并执行的结果也是一个合并的结果,合并的结果数据需要被分发到各个控件。
针对后台合并框架。提供根据待执行队列,调用各控件的合并执行接 口获取结果,并将结果返回前台。包括三个部分:合并执行接口、合并执行接口实现注册表、合并执行服务。每个需要合并执行的控件都应该自己实现合并接口。合并执行接口注册表是一个从控件类型到接口实现的映射表。
针对合并执行时机选择。其中,时机的选择有两个:1)用户事件执行完,合并执行队列中有待执行任务;2)脚本中调用了set之后,又调用了其get方法。
普通的set方法不引发远程调用,而是进入全局合并执行队列。当需要此数据时(如某get方法被调用),全局合并执行队列将被执行。此时队列中的远程调用被合并为一个,打包后提交到后台。
通过上述技术方案,可以实现对使用了很多数据控件的UI的后台执行次数进行优化,尽力降低后台执行的次数,提升用户感受,主要包括:UI第一次打开时,仅有一个远程调用;对UI的后续操作,大量减少远程连接数量。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,前台对后台的远程调用较多,严重影响了系统的性能和用户的体验。因此,本发明提出了一种新的脚本驱动环境下的远程调用方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

脚本驱动环境下的远程调用方法和远程调用装置.pdf_第1页
第1页 / 共12页
脚本驱动环境下的远程调用方法和远程调用装置.pdf_第2页
第2页 / 共12页
脚本驱动环境下的远程调用方法和远程调用装置.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《脚本驱动环境下的远程调用方法和远程调用装置.pdf》由会员分享,可在线阅读,更多相关《脚本驱动环境下的远程调用方法和远程调用装置.pdf(12页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104077139A43申请公布日20141001CN104077139A21申请号201410318899122申请日20140704G06F9/4420060171申请人用友软件股份有限公司地址100094北京市海淀区北清路68号用友软件园72发明人张乐龙74专利代理机构北京友联知识产权代理事务所普通合伙11343代理人尚志峰汪海屏54发明名称脚本驱动环境下的远程调用方法和远程调用装置57摘要本发明提供了一种脚本驱动环境下的远程调用方法和一种脚本驱动环境下的远程调用装置,其中,所述脚本驱动环境下的远程调用方法,包括在接收到对前台任一控件的操作时,判断所述操作的类别;在判定。

2、所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否被修改,若否,则不执行对后台的远程调用。通过本发明的技术方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。51INTCL权利要求书2页说明书6页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图3页10申请公布号CN104077139ACN104077139A1/2页21一种脚本驱动环境下的远程调用方法,其特征在于,包括在接收到对前台任一控件的操作时,判断所述操作的类。

3、别;在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。2根据权利要求1所述的脚本驱动环境下的远程调用方法,其特征在于,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属性和/或行为是否已被修改的步骤具体为判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。3根据权利要求1所述的脚本驱动环境下的。

4、远程调用方法,其特征在于,还包括将所述前台的初始化业务逻辑转移到所述后台执行。4根据权利要求1至3中任一项所述的脚本驱动环境下的远程调用方法,其特征在于,还包括若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。5根据权利要求4所述的脚本驱动环境下的远程调用方法,其特征在于,对添加至所述执行队列中的操作进行合并包括合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。6一种脚本驱动环境下的远程调用装置,其特征在于,包括判断单元,用于在接收到对前台任一控件的操作时,判断所述操作的。

5、类别,以及在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。7根据权利要求6所述的脚本驱动环境下的远程调用装置,其特征在于,还包括响应单元,用于在所述判断单元判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元具体用于判断是否存在对应于所述。

6、任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。8根据权利要求6所述的脚本驱动环境下的远程调用装置,其特征在于,所述处理单权利要求书CN104077139A2/2页3元还用于将所述前台的初始化业务逻辑转移到所述后台执行。9根据权利要求6至8中任一项所述的脚本驱动环境下的远程调用装置,其特征在于,所述处理单元还用于在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。10根据权利要求9所述的脚本驱动环境下的远程调用装置,其特征在于,对添加至所述执行队列中的操作进行合并包括合并所述执行队列中的操作的执行接口、。

7、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。权利要求书CN104077139A1/6页4脚本驱动环境下的远程调用方法和远程调用装置技术领域0001本发明涉及计算机技术领域,具体而言,涉及一种脚本驱动环境下的远程调用方法和一种脚本驱动环境下的远程调用装置。背景技术0002在脚本驱动环境下,脚本引发会引发远程调用,这常常引发远程调用过多例如打开界面有近100个远程调用。0003商业智能或者其他业务系统可能需要实现更灵活的定制功能,而引入脚本是实现这种需求的一种途径。但是,在实现最大的灵活性的同时,也带来了更大的技术挑战因为脚本之间互相调用而产生大量的远程调用,从而影响系统的性。

8、能。具体地,如图1所示的界面,需要编写如下的脚本0004脚本1系统初始化脚本0005VAR默认组织获得默认组织远程API;/引发远程调用0006组织控件设置默认组织默认组织;0007脚本2组织控件的内容变更事件脚本0008VAR组织ID组织控件获得值;/引发远程调用0009VAR产品分类数组产品分类API根据条件获得产品分类组织ID;0010产品分类控件设置产品分类值产品分类数组0;0011脚本3产品分类控件的内容变更事件脚本0012VAR产品分类ID产品分类控件获得值;0013VAR产品数组产品API根据条件获得产品产品分类ID;/引发远程调用0014产品控件设置产品值产品数组0;0015脚。

9、本4产品控件的内容变更事件脚本0016VAR产品ID产品控件的值;0017销售统计图刷新;/引发远程调用0018库存统计图刷新;/引发远程调用0019占比分析刷新;/引发远程调用0020组合分析刷新;/引发远程调用0021本月销量表刷新;/引发远程调用0022在如图1所示的简单实例中,远程调用一共发生了至少9次考虑到这个界面的打开,而在其他实例中,可能引发的远程调用会达到几十次,严重这影响了系统性能和用户的体验。0023因此,如何避免不必要的远程调用,降低远程调用的次数,以优化系统的性能和用户的体验成为亟待解决的技术问题。发明内容说明书CN104077139A2/6页50024本发明正是基于上。

10、述技术问题,提出了一种新的脚本驱动环境下的远程调用方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。0025有鉴于此,本发明提出了一种脚本驱动环境下的远程调用方法,包括在接收到对前台任一控件的操作时,判断所述操作的类别;在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改,若是,则不执行对后台的远程调用。0026在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执。

11、行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。0027在上述技术方案中,优选地,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属性和/或行为是否被修改的步骤具体为判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。0028在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。。

12、0029在上述技术方案中,优选地,还包括将所述前台的初始化业务逻辑转移到所述后台执行。0030在上述技术方案中,优选地,还包括若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。0031在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。0032在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。0033根据本发明的另一方面,还提出了一种脚本驱动环境下的远。

13、程调用装置,包括判断单元,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。0034在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的。

14、次数,优化了系统的性能,提升了用户的体说明书CN104077139A3/6页6验。0035在上述技术方案中,优选地,还包括响应单元,用于在所述判断单元判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元具体用于判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。0036在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。0037在上述技术方案中,优选。

15、地,所述处理单元还用于将所述前台的初始化业务逻辑转移到所述后台执行。0038在上述技术方案中,优选地,所述处理单元还用于在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。0039在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。0040在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务0041通过以上技术方案,最大限度地避免不必要的远程调用,降低了远程。

16、调用的次数,优化了系统的性能,提升了用户的体验。附图说明0042图1示出了基于脚本生成的界面示意图;0043图2示出了根据本发明的实施例的脚本驱动环境下的远程调用方法的示意流程图;0044图3示出了根据本发明的实施例的脚本驱动环境下的远程调用装置的示意框图;0045图4示出了根据本发明的实施例的前台和后台逻辑结构示意图;0046图5示出了根据本发明的实施例的前台合并的逻辑结构示意图。具体实施方式0047为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。0048在下。

17、面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。0049图2示出了根据本发明的实施例的脚本驱动环境下的远程调用方法的示意流程图。说明书CN104077139A4/6页70050如图2所示,根据本发明的实施例的脚本驱动环境下的远程调用方法,包括步骤202,在接收到对前台任一控件的操作时,判断所述操作的类别;步骤204,在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用;步骤206,在判定所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或。

18、行为是否已被修改,若是,则不执行对后台的远程调用。0051在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。0052在上述技术方案中,优选地,在判定所述操作为修改所述任一控件属性和/或行为的操作时,还包括响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;判断所述任一控件的属性和/或行为是否被修改的步骤具体为判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行。

19、为已被修改。0053在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。0054在上述技术方案中,优选地,还包括将所述前台的初始化业务逻辑转移到所述后台执行。0055在上述技术方案中,优选地,还包括若所述前台需要对所述后台进行远程调用,则将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。0056在该技术方案中,通过将触发远程调用的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。0057在上述技术方案中,优选地,对添加至所述执行。

20、队列中的操作进行合并包括合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。0058图3示出了根据本发明的实施例的脚本驱动环境下的远程调用装置的示意框图。0059如图3所示,根据本发明的实施例的脚本驱动环境下的远程调用装置300,包括判断单元302,用于在接收到对前台任一控件的操作时,判断所述操作的类别,以及在判定所述断所述操作为获取所述任一控件属性的操作时,判断所述任一控件的属性和/或行为是否已被修改;处理单元304,用于在判定所述操作为修改所述任一控件属性和/或行为的操作时,不执行对后台的远程调用,以及在所述判断单元判定所述操作为获取所述任。

21、一控件属性的操作,且判定所述任一控件的属性和/或行为已被修改时,不执行对后台的远程调用。0060在该技术方案中,通过在对前台控件执行修改控件属性和/或行为的操作时,以及在对属性和/或行为已修改的控件执行获取属性的操作时,不执行对后台的远程调用,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。说明书CN104077139A5/6页80061在上述技术方案中,优选地,还包括响应单元306,用于在所述判断单元302判定所述操作为修改所述任一控件属性和/或行为的操作时,响应所述修改所述任一控件属性和/或行为的操作,并设置对应于所述任一控件的标识位;所述判断单元302。

22、具体用于判断是否存在对应于所述任一控件的标识位,若存在,则判定所述任一控件的属性和/或行为已被修改。0062在该技术方案中,通过在对控件的属性和/或行为进行修改之后,设置对应于该控件的标识位,使得能够通过判断该控件是否存在标识位方便地判断该该控件的属性和/或行为是否被修改。0063在上述技术方案中,优选地,所述处理单元304还用于将所述前台的初始化业务逻辑转移到所述后台执行。0064在上述技术方案中,优选地,所述处理单元304还用于在所述前台需要对所述后台进行远程调用时,将触发所述远程调用的操作添加至执行队列中,以对添加至所述执行队列中的操作进行合并。0065在该技术方案中,通过将触发远程调用。

23、的操作添加至执行队列中,以进行合并,使得可以最大限度地降低远程操作的次数。0066在上述技术方案中,优选地,对添加至所述执行队列中的操作进行合并包括合并所述执行队列中的操作的执行接口、合并所述执行接口的实现注册表、合并所述执行队列中的操作的执行服务。0067本发明主要提出了通过前台逻辑后移和前台远程调用合并的方案实现最大限度地降低远程调度的次数。具体地,以下结合图4至图5详细说明本发明的技术方案。0068图4示出了根据本发明的实施例的前台和后台逻辑结构示意图。0069前台逻辑后移主要包括将本来在前台执行的初始化逻辑转移到后台,相当于执行了合并。这需要在后台执行脚本和业务逻辑,此处的业务逻辑仅初。

24、始化。0070具体地,如图4所示,根据本发明的实施例的前台和后台逻辑,包括0071用户界面,主要设置在前台,用于获取用户的各种操作。0072后台执行器,用来在后台模拟前台执行环境,当然仅仅是业务逻辑上的模拟,不包括前台控件本身的执行。后台执行器需要总控脚本引擎、事件管理器、各种API、控件后台模型等。0073脚本引擎,脚本引擎用来执行脚本。脚本中有对控件模型、API等的调用,因此脚本引擎启动之前,需要由后台执行器设置对应的执行环境。例如脚本引擎必须知道脚本中对API的调用如何对应到到真正的组织API运行期代码。0074事件管理器,因为前台支持事件机制,因此后台要执行前台逻辑,也必须执行事件代码。

25、。事件管理器支持各种定义好的前台事件。0075控件后台模型,脚本对控件的操作通过控件模型进行,在后台也应建立对应的控件后台模型。例如脚本列表控件的设置值将导致控件发生“选项变更”事件。0076后台API,提供需要的API调用服务。是前台API在后台的体现。0077UI元数据用于描述UI环境,描述方式不限,例如使用XML描述UI;逻辑处理和UI生成器用于生成UI之前的逻辑处理如获取数据、权限过滤等,并生成UI如HTML等。说明书CN104077139A6/6页90078图5示出了根据本发明的实施例的前台合并的逻辑结构示意图。0079其中,前台合并的原理主要是1对于修改控件属性或者控件行为的操作即。

26、SET操作不引发后台的刷新操作,并且在修改空间属性或控件行为之后,将SET操作置脏标记;2对于获取控件属性的操作即GET操作,需要判断脏标记是否被设置,如不是就应该刷新;3每次刷新都应该将全部待执行的操作COMMAND传递到后台服务,在后台服务中执行全部操作。0080如图5所示,前台合并的要点包括前台合并框架、后台合并框架、合并执行的时机选择。0081针对前台合并框架。该框架起到协调脚本、控件刷新、后台合并执行服务的作用,是前台合并的核心,主要包括00821待执行队列,需要合并执行的操作会被放到待执行队列中。记录的内容包括控件ID、API、参数及适当的附加信息;00832添加合并执行API,将。

27、待执行操作添加到队列中,通常由SET方法调用;00843激发执行API,通常由控件的SET方法调用;00854远程调用框架后台通讯执行远程调用,可以利用AJAX执行。00865结果分发,后台合并执行的结果也是一个合并的结果,合并的结果数据需要被分发到各个控件。0087针对后台合并框架。提供根据待执行队列,调用各控件的合并执行接口获取结果,并将结果返回前台。包括三个部分合并执行接口、合并执行接口实现注册表、合并执行服务。每个需要合并执行的控件都应该自己实现合并接口。合并执行接口注册表是一个从控件类型到接口实现的映射表。0088针对合并执行时机选择。其中,时机的选择有两个1用户事件执行完,合并执行。

28、队列中有待执行任务;2脚本中调用了SET之后,又调用了其GET方法。0089普通的SET方法不引发远程调用,而是进入全局合并执行队列。当需要此数据时如某GET方法被调用,全局合并执行队列将被执行。此时队列中的远程调用被合并为一个,打包后提交到后台。0090通过上述技术方案,可以实现对使用了很多数据控件的UI的后台执行次数进行优化,尽力降低后台执行的次数,提升用户感受,主要包括UI第一次打开时,仅有一个远程调用;对UI的后续操作,大量减少远程连接数量。0091以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,前台对后台的远程调用较多,严重影响了系统的性能和用户的体验。因此,本发明提出了一种新的脚本驱动环境下的远程调用方案,可以避免不必要的远程调用,降低了远程调用的次数,优化了系统的性能,提升了用户的体验。0092以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书CN104077139A1/3页10图1图2图3说明书附图CN104077139A102/3页11图4说明书附图CN104077139A113/3页12图5说明书附图CN104077139A12。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1