一种控件接入方法及装置
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种控件接入方法及装置。
背景技术
数据分析平台(或称报表制作平台)是一种数据分析专题的配置生成工具,用于快速构建符合用户需求的数据分析专题。
目前,主要通过内置控件的方式来支持各种数据分析场景下的专题的构建,也即,平台操作维护人员将预先生成好的控件直接接入数据分析平台。平台用户在登录该数据分析平台后,即可以使用其内置的各种控件。
但是,这种预先内置控件的方式通常无法满足不同用户对控件的定制性要求,比如对于一个简单的数据统计用控件,有的用户可能希望该控件为柱状图形式的,而有的用户则可能希望该控件为饼图形式的。数据分析平台无法预知所有用户的不同需求,也就无法满足不同用户对数据分析平台的定制性要求。
为了满足用户对控件的定制性要求,数据分析平台需要引入控件自主接入机制,目前尚没有相关技术提供这种机制。
发明内容
本申请实施例提供一种控件接入方法及装置,用以满足对控件的自主接入需求。
本申请实施例提供一种控件接入方法,包括:
数据分析平台接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码;其中,所述控件的配置信息包括基本信息和属性信息,所述基本信息用于识别该控件,所述属性信息用于指示该控件需要满足的属性特征,所述控件代码用于实现该控件的功能;
所述数据分析平台对所述配置信息和控件代码进行合法性验证通过后,基于所述配置信息和控件代码,生成所述数据分析平台的控件,以便在所述数据分析平台中接入所述控件。
可选地,所述数据分析平台对所述配置信息进行合法性验证包括:对所述基本信息和属性信息进行信息完整性校验;
所述数据分析平台对所述控件代码进行合法性验证包括:对所述控件代码进行函数完整性校验。
可选地,所述数据分析平台对所述控件代码进行合法性验证还包括:对所述控件代码所指示的访问内容是否超出所述数据分析平台的合法服务内容进行校验。
可选地,所述生成接入所述数据分析平台的控件,包括:生成接入所述数据分析平台的控件的第一版本;
生成接入所述数据分析平台的控件的第一版本之后,还包括:
当具有编辑权限的用户对生成的所述控件进行编辑后,基于所述用户编辑后的内容,生成所述控件的第二版本;
当接收到任一用户针对所述控件的实例对象创建请求时,向该任一用户提供所述控件的第二版本;其中,保存的所述控件的第一版本用于支持之前基于该第一版本创建完成的实例对象。
可选地,在所述生成接入所述数据分析平台的控件之后,还包括:
接收安装所述控件的指令,在所述数据分析平台中安装并接入所述控件。
可选地,所述数据分析平台接收用户通过控件设置界面设置的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码之前,还包括:
所述数据分析平台基于用户输入的用户名和密码,对所述用户进行登录验证。
可选地,所述控件的基本信息包括以下信息中的一种或多种:
控件名称、控件图标、控件权限信息、控件类型、约束函数名。
可选地,所述控件的属性信息包括全局属性信息和自定义属性信息;其中,所述全局属性信息包括控件的长度、宽度、和标题中的一种或多种。
本申请实施例提供一种控件接入装置,包括:
接收模块,用于接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码;其中,所述控件的配置信息包括基本信息和属性信息,所述基本信息用于识别该控件,所述属性信息用于指示该控件需要满足的属性特征,所述控件代码用于实现该控件的功能;
验证模块,用于对所述配置信息和控件代码进行合法性验证;
第一生成模块,用于在所述验证模块进行合法性验证通过后,基于所述配置信息和控件代码,生成所述数据分析平台的控件,以便在所述数据分析平台中接入所述控件。
本申请另一实施例提供一种数据分析平台的控件接入装置,包括:
平台服务层,用于存储接入数据分析平台的控件需要遵循的服务协议;
控件编辑生成器,用于提供控件设置界面,供用户输入控件的配置信息,以及提供编辑器环境,供用户编辑控件代码;并基于所述平台服务层存储的服务协议,对用户输入的配置信息和控件代码进行合法性验证,在验证通过后,生成控件,以便在所述数据分析平台中接入所述控件;其中,所述控件的配置信息包括基本信息和属性信息,所述基本信息用于识别该控件,所述属性信息用于指示该控件需要满足的属性特征,所述控件代码用于实现该控件的功能;
核心配置库,用于存储控件编辑生成器生成的控件的配置信息和控件代码。
采用本申请实施例,数据分析平台可以接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码,并在对所述配置信息和控件代码进行合法性验证通过后,基于所述配置信息和控件代码,生成接入所述数据分析平台的控件。可见,本申请实施例提供了一种控件自主接入的机制,数据分析平台可以基于用户实际需求生成接入该数据分析平台的控件,无需预先内置大量控件,并满足了用户的定制性需求。
附图说明
图1为本申请实施例一提供的控件接入方法流程图;
图2为本申请实施例二提供的控件接入方法流程图;
图3为本申请实施例三提供的控件接入方法流程图;
图4为本申请实施例提供的进行控件接入的技术架构示意图;
图5为控件加载示意图;
图6为本申请实施例提供的控件接入装置结构示意图;
图7为本申请另一实施例提供的数据分析平台的控件接入装置结构示意图。
具体实施方式
本申请实施例中,数据分析平台可以接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码,并在对所述配置信息和控件代码进行合法性验证通过后,基于所述配置信息和控件代码,生成接入所述数据分析平台的控件。可见,本申请实施例提供了一种控件自主接入的机制,数据分析平台可以基于用户实际需求生成接入该数据分析平台的控件,无需预先内置大量控件,并满足了用户的定制性需求。
下面结合说明书附图对本申请实施例作进一步详细描述。
实施例一
如图1所示,为本申请实施例一提供的控件接入方法流程图,包括以下步骤:
S101:数据分析平台接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码;其中,所述控件的配置信息包括基本信息和属性信息,所述基本信息用于识别该控件,所述属性信息用于指示该控件需要满足的属性特征,所述控件代码用于实现该控件的功能。
在具体实施过程中,数据分析平台向用户提供控件设置界面,用户可以基于该控件设置界面输入待生成的控件的配置信息,包括基本信息和属性信息。
其中,基本信息可以包括控件名称、控件图标、控件权限信息、控件类型、约束函数名等信息。这里,控件名称为表征控件内容的名称,如柱状图控件的名称可以是柱状图;控件图标为控件的显示图标;控件权限信息可以包括私有权限(只有控件制作者本人可以查看、使用该控件),共享权限(控件制作者指定的用户可以查看、使用该控件),公开权限(合法的系统用户都可以查看、使用该控件)。控件类型包括:容器类控件(比如可以放置其它控件的画布canvas控件、标签tab控件等),图表类控件(比如柱状图、饼图等展现数据的控件),基础控件(比如点、线、文本等基本控件),以及除前述控件外的其它自定义控件。约束函数名为实现控件功能的约束函数的名称,比如,容器类约束函数包括:创建容器对象的函数(比如creatObj、initObj等)、在容器中增加对象(比如图表)的函数,在容器中移除对象(比如图表)的函数;图表类约束函数包括创建图表对象的函数,数据回填函数(调用获取的数据来渲染图表的函数)等;这里,函数名称本身没有限制,只要有对应的函数实现,并且通知给数据分析平台即可。
属性信息包括全局属性信息和自定义属性信息;其中,全局属性信息是一般控件都会涉及的属性信息,比如可以包括控件的长度、宽度、和标题(这里的标题不同于控件名称,是控件的一个实例名称,比如一个柱状图控件的标题可以是“某公司2014年销售数据分析”)中的一种或多种,自定义属性信息为与该控件特性相关的属性,比如柱状图类控件,除上述全局属性外,还需要设置数据服务地址、横坐标、纵坐标,比如由数据服务地址返回一个二维数组[a,b],其中a作为横坐标,b作为纵坐标。
本申请实施例中,数据分析平台提供编辑器环境,用户可以对自定义控件进行编辑、调试,得到实现控件功能的控件代码。
S102:数据分析平台对所述配置信息和控件代码进行合法性验证通过后,基于所述配置信息和控件代码,生成所述数据分析平台的控件,以便在所述数据分析平台中接入所述控件。
在具体实施过程中,数据分析平台可以基于平台服务协议对生成控件的配置信息和控件代码进行合法性验证,若确认用户输入的配置信息和编辑的控件代码符合预设的服务协议,则基于该配置信息和控件代码生成控件。这里的平台服务协议可以包括前端协议、后端协议和控件安全性约束等,比如前端协议中包括文件格式约束(比如不能设置平台无法识别的文件格式)、函数约束(比如实现控件功能必须具有的函数形式)等,后端协议中包括服务提供形式约束(比如对数据来源的约束)、函数约束等内容,控件安全性约束是指数据分析平台对接入的第三方控件采取安全沙箱机制,对该控件对平台核心服务的访问进行合法性校验。关于对控件进行合法性验证的详细内容可参见下述实施例二和实施例三的描述。
从上述内容可知,采用本申请实施例提供的控件接入方案,可以基于用户实际需求生成接入该数据分析平台的控件,无需通过预知不同用户需求而置入大量控件,并满足了用户对控件的定制性要求。除此之外,该方案由于提高了数据分析平台的可扩展性,从而有助于降低产品运维成本,增加用户满意度。
在实际实施中,在控件正式上线之前,对控件内容进行合法性验证是第三方控件接入时需要考虑的重要方面。本申请以下实施例二相比实施例一,进一步增加了对控件内容进行验证的阶段。
实施例二
如图2所示,为本申请实施例二提供的控件接入方法流程图,包括以下步骤:
S201:数据分析平台基于用户输入的用户名和密码,对所述用户进行登录验证,并在验证通过后进入S202。
在具体实施中,数据分析平台在用户登录平台,使用平台已有控件或接入控件之前,先对用户进行登录验证,在确认用户通过验证后,才会允许用户使用数据分析平台的各种功能,包括自主接入控件的功能。也即,用户在使用数据分析平台进行控件接入、并使用控件之间,先要通过注册成为数据分析平台的合法用户。
S202:数据分析平台接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码;其中,所述控件的配置信息包括基本信息和属性信息。
S203:数据分析平台对所述配置信息和控件代码进行合法性验证通过后,基于所述配置信息和控件代码,生成所述数据分析平台的控件,以便在所述数据分析平台中接入所述控件。
具体地,数据分析平台对所述配置信息进行验证包括对所述基本信息和属性信息进行信息完整性校验;也即查验是否有必要的基本信息和属性信息没有被设置。
数据分析平台对所述控件代码进行验证包括:对所述控件代码进行函数完整性校验。为了实现控件功能,一些函数是控件代码中必须存在的,比如创建对象(createobject)函数等,也即需要查验各个函数是否完整存在。
可选地,所述数据分析平台对所述控件代码进行验证还包括:对所述控件代码所指示的访问内容是否超出所述数据分析平台的合法服务内容进行校验。
在具体实施中,为了保证数据分析平台服务内容的安全性,需要限制控件代码中所调用的方法对数据分析平台的服务内容的访问。因此,当用户基于数据分析平台提供的编辑器环境进行编辑、调试得到控件代码后,还需要对该控件代码进行合法性校验。
在具体实施过程中,在生成控件之后,可以将生成的控件交由管理人员进行人工审核,比如通过代码走读,查看控件中是否隐藏了不安全操作,通过控件功能检验,验证控件是否可用、其作用是否与描述相符等,实际上是继S203的系统自动验证之后由人工进行的校验,这样可以进一步补救系统自动验证过程中的遗漏。在管理人员对该控件审核通过后,就可以执行控件的上线操作,也即该控件可以被正式启用。
在具体实施中,当具有编辑权限的用户对生成的所述控件进行编辑后,该控件的功能发生了变化(增加了新的功能或更改了功能),此时,由于一些实例是基于之前的控件版本创建的,因此还需要保证之前的控件版本的可用性。比如,某个控件C,初次发布的版本是V1.0,用户基于V1.0版本创建了一些页面实例,经过一段时间后,控件制作者将该控件的版本升级到了V2.0,此时,除了保证V2.0版本的正常使用外,还需要保证用V1.0版本创建的实例对象仍然可用。因此,在本申请实施例中,在基于用户的编辑内容生成新的控件版本的同时,也需要保留之前的控件版本,也即本申请实施例采用新增控件版本的方式进行控件升级,而不是进行版本的直接替换。如下面实施例三所述。
实施例三
如图3所示,为本申请实施例三提供的控件接入方法流程图,包括以下步骤:
S301:数据分析平台基于用户输入的用户名和密码,对所述用户进行登录验证,并在验证通过后进入S202。
该步骤实际是数据分析平台对用户接入控件进行的首次合法性校验。
S302:数据分析平台接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码;其中,所述控件的配置信息包括基本信息和属性信息。
这里,数据分析平台对用户接入控件进行二次校验。具体地,可以基于预设的平台服务协议(前端协议和后端协议)和控件安全性约束条件进行校验,其中主要包括对所述基本信息和属性信息进行完整性校验、对控件代码进行函数完整性校验、对控件代码的合法性校验(比如对所述控件代码所指示的访问内容是否超出所述数据分析平台的合法服务内容进行校验)。
S303:数据分析平台对所述配置信息和控件代码进行合法性验证通过后,基于所述配置信息和控件代码,生成所述数据分析平台的控件的第一版本。
可选地,数据分析平台在接收到安装所述控件的指令后,在所述数据分析平台中安装并接入所述控件。
这里,数据分析平台在确定生成的所述控件通过上线审核后,对该控件执行上线操作,正式将控件安装并接入到数据分析平台上使用。
在具体实施过程中,为了方便控件管理和保证安全性,可以设置人工管理的界面,对控件进行管理的内容除了可以包括对控件进行上线的合法性审核外,还可以包括对控件的属性管理(比如更改属性设置)、版本管理(比如增加/删除控件版本)、权限管理(比如更改控件查看、使用权限)、上/下线管理(比如执行控件的上/下线处理)等。
S304:当具有编辑权限的用户对生成的所述控件进行编辑后,基于所述用户编辑后的内容,生成所述控件的第二版本;当接收到任一用户针对所述控件的实例对象创建请求时,向该任一用户提供所述控件的第二版本;其中,保存的所述控件的第一版本用于支持之前基于该第一版本创建完成的实例对象。
这里,基于用户新编辑的控件内容,得到升级后的控件版本,存储升级后的控件版本,并在以后调用控件时,使用该升级后的控件版本;同时,保留升级前的控件版本,以支持用户基于升级前的控件版本创建的实例对象。
如图4所示,为本申请实施例提供的进行控件接入的技术架构示意图。其中,核心配置库中负责存储描述控件基本信息的元数据、表述控件属性信息的控件属性配置表、存储控件代码的控件源代码库;控件核心服务层负责进行控件的存取、加载、渲染等;控件生成/编辑器用于供用户进行控件代码的编辑、调试;控件安全沙箱用于基于用户身份进行控件合法性校验;前端控件区用于通过网页(Web Page)以数据表的形式向用户进行控件呈现,用户从数据表中按类别、权限等选择需要加载的控件。这里,当用户确认需要启动控件功能时,可以进行控件加载,如图5所示,具体加载过程是:
S51:通过前端控件区向控件核心服务层请求获取控件元数据;
S52:控件核心服务层通过访问核心配置库获取控件元数据,并返回给前端控件区;
S53:通过前端控件区向控件核心服务层请求获取控件属性信息和控件代码;
S54:控件核心服务层通过访问核心配置库,将控件属性信息和控件代码返回给前端控件区;
S55:前端控件区执行约束函数调用,生成控件对象。这里的控件对象即为控件的一个实例化对象。
基于同一发明构思,本申请实施例中还提供了一种与控件接入方法对应的控件接入装置,由于该装置解决问题的原理与本申请实施例控件接入方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,为本申请实施例提供的控件接入装置结构示意图,包括:
接收模块61,用于接收用户通过控件设置界面输入的控件的配置信息,以及基于数据分析平台的编辑器环境编辑的控件代码;其中,所述控件的配置信息包括基本信息和属性信息,所述基本信息用于识别该控件,所述属性信息用于指示该控件需要满足的属性特征,所述控件代码用于实现该控件的功能;
验证模块62,用于对所述配置信息和控件代码进行合法性验证;
第一生成模块63,用于在所述验证模块62进行合法性验证通过后,基于所述配置信息和控件代码,生成所述数据分析平台的控件,以便在所述数据分析平台中接入所述控件。
可选地,所述验证模块62具体用于,对所述基本信息和属性信息进行信息完整性校验;以及,对所述控件代码进行函数完整性校验。
可选地,所述验证模块62还用于:对所述控件代码所指示的访问内容是否超出所述数据分析平台的合法服务内容进行校验。
可选地,所述第一生成模块63具体用于:生成所述数据分析平台的控件的第一版本;
所述装置还包括:
第二生成模块64,用于当具有编辑权限的用户对生成的所述控件进行编辑后,基于所述用户编辑后的内容,生成所述控件的第二版本;
提供模块65,用于当接收到任一用户针对所述控件的实例对象创建请求时,向该任一用户提供所述控件的第二版本;其中,保存的所述控件的第一版本用于支持之前基于该第一版本创建完成的实例对象。
可选地,所述装置还包括:
接入模块66,用于在所述第一生成模块63生成所述数据分析平台的控件之后,接收安装所述控件的指令,在所述数据分析平台中安装并接入所述控件。
可选地,所述验证模块62还用于,在所述接收模块61接收所述配置信息和控件代码之前,基于用户输入的用户名和密码,对所述用户进行登录验证。
可选地,所述控件的基本信息包括以下信息中的一种或多种:
控件名称、控件图标、控件权限信息、控件类型、约束函数名。
可选地,所述控件的属性信息包括全局属性信息和自定义属性信息;其中,所述全局属性信息包括控件的长度、宽度、和标题中的一种或多种。
如图7所示,为本申请另一实施例提供的数据分析平台的控件接入装置结构示意图,包括:
平台服务层71,用于存储接入数据分析平台的控件需要遵循的服务协议;
控件编辑生成器72,用于提供控件设置界面,供用户输入控件的配置信息,以及提供编辑器环境,供用户编辑控件代码;并基于所述平台服务层存储的服务协议,对用户输入的配置信息和控件代码进行合法性验证,在验证通过后,生成控件,以便在所述数据分析平台中接入所述控件;其中,所述控件的配置信息包括基本信息和属性信息,所述基本信息用于识别该控件,所述属性信息用于指示该控件需要满足的属性特征,所述控件代码用于实现该控件的功能;
核心配置库73,用于存储控件编辑生成器生成的控件的配置信息和控件代码。
可选地,所述装置还包括:
控件管理层74,用于提供管理接口,供数据分析平台管理人员对接入的控件执行审核,授予上线权限。
可选地,所述服务协议包括控件接入协议;
所述控件编辑生成器72具体用于,基于所述控件接入协议,对所述基本信息和属性信息进行信息完整性校验,对所述控件代码进行函数完整性校验。
可选地,所述服务协议还包括安全性约束协议;
所述控件编辑生成器72具体用于,基于所述安全性约束协议,对所述控件代码所指示的访问内容是否超出所述数据分析平台的合法服务内容进行校验。
可选地,所述装置还包括:
登录验证层75,用于基于用户输入的用户名和密码,对所述用户进行登录验证,在验证通过后允许用户使用所述控件编辑生成器的功能。
可选地,所述装置还包括:
接入层76,用于在所述控件编辑生成器72生成所述数据分析平台的控件之后,接收安装所述控件的指令,在所述数据分析平台中安装并接入所述控件。
可选地,所述控件的基本信息包括以下信息中的一种或多种:
控件名称、控件图标、控件权限信息、控件类型、约束函数名。
可选地,所述控件的属性信息包括全局属性信息和自定义属性信息;其中,所述全局属性信息包括控件的长度、宽度、和标题中的一种或多种。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。