掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本说明书一个或多个实施例涉及组件开发技术领域,尤其涉及一种服务组件的在线开发方法及相关设备。

背景技术

软件即服务(Software as a Service,SaaS)系统可以通过互联网向客户(即租户)提供软件服务。但是,每个客户所需的服务通常存在差异,SaaS系统往往只能提供一些较为通用的服务组件,无法满足所有客户的需求。基于此,客户如果有定制化服务的需求,只能先在本地自建系统,然后通过远程调用SaaS系统提供的企业数据查询OpenAPI,在本地定制化开发自己所需的服务组件。显然,此方案需要较多的本地开发资源以及服务器资源,造成客户的成本过大,无法满足客户的实际需求。

发明内容

有鉴于此,本说明书一个或多个实施例提供一种服务组件的在线开发方法及相关设备。

第一方面,本说明书提供了一种服务组件的在线开发方法,应用于软件即服务SaaS系统,所述SaaS系统维护了开发者列表;所述SaaS系统面向所述开发者列表中包含的各个开发者开放了在所述SaaS系统上在线开发服务组件的系统资源;所述方法包括:

获取目标租户发送的与目标服务组件对应的需求数据;

响应于所述需求数据,确定所述SaaS系统面向租户提供的服务组件中是否包含所述目标服务组件;

如果所述服务组件中不包含所述目标服务组件,从所述开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者,并指示所述目标开发者基于所述SaaS系统开放的系统资源,在所述SaaS系统上为所述目标租户在线开发所述目标服务组件;

获取所述目标开发者开发完成的所述目标服务组件,并将所述目标服务组件发布到所述SaaS系统上,以供所述目标租户调用。

第二方面,本说明书提供了一种服务组件的在线开发装置,应用于软件即服务SaaS系统,所述SaaS系统维护了开发者列表;所述SaaS系统面向所述开发者列表中包含的各个开发者开放了在所述SaaS系统上在线开发服务组件的系统资源;所述装置包括:

获取单元,用于获取目标租户发送的与目标服务组件对应的需求数据;

确定单元,用于响应于所述需求数据,确定所述SaaS系统面向租户提供的服务组件中是否包含所述目标服务组件;

在线开发单元,用于如果所述服务组件中不包含所述目标服务组件,从所述开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者,并指示所述目标开发者基于所述SaaS系统开放的系统资源,在所述SaaS系统上为所述目标租户在线开发所述目标服务组件;

发布单元,用于获取所述目标开发者开发完成的所述目标服务组件,并将所述目标服务组件发布到所述SaaS系统上,以供所述目标租户调用。

第三方面本说明书提供了一种SaaS系统,包括管理子系统、开发子系统和租户子系统;其中,所述管理子系统中维护了开发者列表,所述开发子系统面向所述开发者列表中包含的各个开发者开放了在所述SaaS系统上在线开发服务组件的系统资源;

所述租户子系统,用于获取目标租户发送的与目标服务组件对应的需求数据,并将所述需求数据发送给所述开发子系统;

所述开发子系统,用于响应于所述需求数据,确定所述SaaS系统面向租户提供的服务组件中是否包含所述目标服务组件;

如果所述服务组件中不包含所述目标服务组件,从所述开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者,并指示所述目标开发者基于所述SaaS系统向所述目标开发者开放的系统资源,在所述SaaS系统上为所述目标租户在线开发所述目标服务组件;

获取所述目标开发者开发完成的所述目标服务组件,并将所述目标服务组件发布到所述SaaS系统上,以供所述目标租户调用。

相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述第一方面所述的服务组件的在线开发方法。

相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述第一方面所述的服务组件的在线开发方法。

综上所述,本申请中的SaaS系统维护了开发者列表,并向开发者列表中的各个开发者开放了在SaaS系统上在线开发服务组件的系统资源。基于此,本申请在获取到目标租户发送的与目标服务组件对应的需求数据后,如果确定SaaS系统面向租户提供的已有的服务组件中不包含该目标服务组件,则可以从上述开发者列表中为目标租户确定与该目标服务组件相对应的目标开发者,并指示该目标开发者基于SaaS系统开放的系统资源,在SaaS系统上为目标租户在线开发该目标服务组件。进一步地,在目标开发者开发完成目标服务组件后,SaaS系统可以获取该目标服务组件,并将该目标服务组件发布到SaaS系统上,以供所述目标租户调用。如此,本申请中的SaaS系统可以基于客户的服务使用需求,由自身维护的开发者列表中对应的开发者基于SaaS系统提供的系统资源,在SaaS系统上为客户在线开发相应的服务组件,既保证了客户需求,又避免了客户本地化开发服务组件所需的服务器资源等,降低了客户成本,满足了客户的实际需求。

附图说明

图1是一示例性实施例提供的一种系统架构示意图;

图2是一示例性实施例提供的一种SaaS系统的结构示意图;

图3是一示例性实施例提供的一种服务组件的在线开发方法的流程示意图;

图4是一示例性实施例提供的一种服务组件开发的模型关系示意图;

图5是一示例性实施例提供的一种服务组件的在线开发装置的结构示意图;

图6是一示例性实施例提供的一种计算机设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

需要说明的是,本申请中所述的“多个”是指两个或者两个以上。

此外,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

如上所述,SaaS系统可以通过互联网向各个客户提供软件服务。但是,每个客户所需的服务通常存在差异,SaaS系统往往只能提供一些较为通用的服务组件,无法满足所有客户的需求。示例性的,该SaaS系统可以是企业风控SaaS系统,可以向用户提供通用的企业信息查询服务,比如工商基本信息查询服务、股东信息查询服务等,但是,随着企业的发展,一些客户可能存在企业评级服务的使用需求,然而现有的企业风控SaaS系统无法提供这些较为特殊的服务。

基于此,客户如果有定制化服务的需求,只能先在本地自建系统,然后通过远程调用SaaS系统提供的企业数据查询OpenAPI,在本地定制化开发自己所需的服务组件。显然,此方案需要较多的本地开发资源以及服务器资源,造成客户的成本过大,无法满足客户的实际需求。

基于此,本说明书提供了一种技术方案,由SaaS系统维护开发者列表,开发者列表中的开发者可以基于SaaS系统提供的系统资源,在SaaS系统上在线开发与客户需求相应的服务组件,大大节省了客户本地的服务器资源。

在实现时,本申请可以应用于SaaS系统,该SaaS系统维护了开发者列表,并且该SaaS系统面向开发者列表中包含的各个开发者开放了在SaaS系统上在线开发服务组件的系统资源。首先,SaaS系统可以获取目标租户发送的与目标服务组件对应的需求数据,响应于该需求数据,确定SaaS系统面向租户提供的服务组件中是否包含该目标服务组件。如果服务组件中不包含该目标服务组件,则从上述开发者列表中为目标租户确定与该目标服务组件对应的目标开发者,并指示该目标开发者基于SaaS系统开放的系统资源,在SaaS系统上为目标租户在线开发该目标服务组件。最后,SaaS系统可以获取目标开发者开发完成的目标服务组件,并将该目标服务组件发布到SaaS系统上,以供目标租户调用。

在以上技术方案中,本申请中的SaaS系统可以基于客户的服务使用需求,由自身维护的开发者列表中对应的开发者基于SaaS系统提供的系统资源,在SaaS系统上为客户在线开发相应的服务组件,既保证了客户需求,又避免了客户本地化开发服务组件所需的服务器资源等,降低了客户成本,满足了客户的实际需求。

请参阅图1,图1是一示例性实施例提供的一种系统架构示意图。本说明提供的一个或多个实施例可以在图1所示的系统架构或者类似的系统架构中具体实施。如图1所示,该系统可以包括计算机设备100和SaaS系统200,其中,SaaS系统200可以包括多个计算机设备,例如包括计算机设备200a、计算机设备200b、计算机设备200c等。其中,计算机设备100可以作为客户终端,与SaaS系统200之间可以通过无线网络的方式建立通信连接。

在一示出的实施方式中,SaaS系统200中可以维护有开发者列表,该开发者列表中包括多个开发者。进一步地,SaaS系统200向开发者列表中包括的各个开发者开放了在SaaS系统200上在线开发服务组件的系统资源。

需要说明的是,服务组件(或者称之为功能模块)主要包括前端资源和后端资源。其中,前端资源主要包括前端界面数据,后端资源主要包括后端API和数据表。

在一示出的实施方式中,前端界面数据具体可以包括与前端界面对应的界面元数据,用于生成面向用户输出展示的前端界面。

在一示出的实施方式中,后端API可以通过传统的硬编码控制(controller)接口的方式来实现,也可以通过自定义API的方式实现,等等,本申请对此不做具体限定。其中,硬编码controller接口是指在已有的controller接口对应的代码中直接写入新的数据。其中,自定义API的方式则是直接自定义一个新的接口。

在一示出的实施方式中,SaaS系统200可以面向租户提供多个服务组件,这些服务组件可以是与SaaS系统维护的服务数据相关的服务功能对应的服务组件。示例性的,该SaaS系统200可以是企业风控SaaS系统,相应的,企业风控SaaS系统维护的服务数据可以为企业数据,上述服务功能可以包括与企业风控相关的服务功能,上述服务组件可以是与企业风控相关的服务功能对应的服务组件。示例性的,与企业风控相关的服务功能可以包括企业股东信息查询功能、工商信息查询功能,等等,本说明书对此不做具体限定。

如图1所示,在一示出的实施方式中,租户可以通过计算机设备100向SaaS系统200发送针对目标服务组件的需求数据。

进一步地,SaaS系统200响应于接收到的针对目标服务组件的需求数据,确定其当前面向租户提供的多个服务组件中是否包含该目标服务组件。

在一示出的实施方式中,如果SaaS系统200当前提供的服务组件中包含该目标服务组件,则目标租户可以直接订购该目标服务组件,在目标租户完成对该目标服务组件的订购支付后,SaaS系统200可以向目标租户开放该目标服务组件的调用权限,以供目标租户调用。

在一示出的实施方式中,如果SaaS系统200当前提供的服务组件中不包含该目标服务组件,则SaaS系统200可以从其维护的开发者列表中为目标租户确定与该目标服务组件对应的目标开发者,并指示该目标开发者基于SaaS系统200开放的系统资源,在SaaS系统上为目标租户在线开发该目标服务组件。

进一步地,SaaS系统200可以获取目标开发者开发完成的目标服务组件,并将目标服务组件发布到所述SaaS系统200上。后续目标租户便可以在SaaS系统200订购该目标服务组件,相应的,在目标租户完成对该目标服务组件的订购支付后,SaaS系统200可以向目标租户开放该目标服务组件的调用权限,以供目标租户调用。

如此,本申请中SaaS系统200可以基于租户的服务使用需求,由自身维护的开发者列表中对应的开发者基于SaaS系统200提供的系统资源,在SaaS系统200上为租户在线开发相应的服务组件,既保证了租户需求,又避免了租户本地化开发服务组件所需的服务器资源等,降低了租户成本。

在一示出的实施方式中,计算机设备100可以是具备上述功能的智能手机、平板电脑、笔记本电脑、台式电脑、服务器,等等,本说明书对此不做具体限定。

在一示出的实施方式中,SaaS系统200中包括的计算机设备200a、计算机设备200b、计算机设备200c等可以是具备上述功能的台式电脑、服务器,或者由多个服务器构成的服务器集群,等等,本说明书对此不做具体限定。

请参阅图2,图2是一示例性实施例提供的一种SaaS系统的结构示意图。如图2所示,SaaS系统200中可以包括多个子系统,具体包括租户子系统201、管理子系统202、开发子系统203。

租户子系统201,面向SaaS系统200中的多个租户,与租户进行交互,例如包括接收多个租户中的目标租户发送的针对目标服务组件的需求数据,等等,本说明书对此不做具体限定。需要说明的是,SaaS系统是一个多租户系统,一个租户可以由租户ID来唯一标识,一个租户下可以包含多个账号,每个账号可以对应一个用户(自然人)。示例性的,一个租户可以是一个企业,也可以是一个部门或团队,比如一些供应链核心企业、产业园区、金融办,等等,本说明书对此不做具体限定。

管理子系统202,用于维护开发者列表。该开发者列表具体可以包括官方开发者列表和第三方开发者列表。其中,官方开发者列表中可以包括SaaS系统200内部的若干个官方开发者,第三方开发者列表中可以包括若干个第三方开发者。这些第三方开发者可以属于相同或者不同的组织,部分第三方开发者甚至可以是SaaS系统200的租户,本说明书对此不做具体限定。

在一示出的实施方式中,官方开发者主要用于开发通用服务组件(或者称之为官方服务组件)。其中,通用服务组件可以包括内置的通用服务组件和非内置的通用服务组件。

其中,内置的通用服务组件通常是官方开发者通过硬编码写在平台的java代码库中的方式来实现开发。其中,非内置的通用服务组件通常是官方开发者通过自定API和自定义数据表(简称自定义表)的方式来实现开发。

一般情况下,如果服务组件的开发比较复杂,很难用自定义API和自定义数据表的方式来实现开发,则可以采用硬编码的方式来实现开发。

在一示出的实施方式中,第三方开发者主要用于开发租户定制化的非通用服务组件(或者称之为第三方服务组件)。其中,非通用服务组件通常是第三方开发者通过自定义API和自定义数据表的方式来实现开发。

其中,非内置的通用服务组件以及非通用服务组件在开发完成后,需要上架到SaaS系统200的服务组件市场中,并公开给租户,以供租户调用。在一示出的实施方式中,通用服务组件可以公开给所有租户,非通用服务组件可以仅公开给定制该服务组件的目标租户。

在一示出的实施方式中,管理子系统202还可以用于企业数据查询OpenAPI的管理,租户管理,计量计费和服务组件的审核,等等,本说明书对此不做具体限定。

开发子系统203,面向开发者列表中的各个开发者,为其提供开发服务组件的能力。具体地,开发子系统203可以用于向开发者列表中的各个开发者提供在线开发服务组件的系统资源。各个开发者可以在开发子系统203中基于提供的系统资源在线开发相应的服务组件。

在一示出的实施方式中,租户子系统201接收到目标租户发送的与目标服务组件对应的需求数据后,可以将该需求数据发送给所述开发子系统203。进一步地,开发子系统203可以响应于接收到的需求数据,确定该SaaS系统面向租户提供的服务组件中是否包含该目标服务组件。

在一示出的实施方式中,如果服务组件中不包含该目标服务组件,开发子系统203可以进一步判断该目标服务组件是否为通用服务组件。

在一示出的实施方式中,如果该目标服务组件是通用服务组件,则开发子系统203可以从管理子系统202维护的官方开发者列表中为目标租户确定与该目标服务组件对应的目标开发者。

在一示出的实施方式中,如果该目标服务组件不是通用服务组件,则开发子系统203可以从管理子系统202维护的第三方开发者列表中为目标租户确定与该目标服务组件对应的目标开发者。

进一步地,目标开发者可以基于开发子系统203提供的系统资源,在开发子系统203上为目标租户在线开发该目标服务组件。进一步地,开发子系统203可以获取目标开发者开发完成的目标服务组件,并将该目标服务组件发布到SaaS系统200的服务组件市场中,以供目标租户调用。

在一示出的实施方式中,目标服务组件可以包括:与该目标服务组件对应的服务功能相关的后端API;与该目标服务组件对应的服务功能相关的数据表;与该目标服务组件对应的服务功能相关的前端界面数据。相应的,开发子系统203提供的系统资源可以包括:自定义后端API的第一功能调用接口、自定义数据表的第二功能调用接口、上传前端界面数据的上传接口。

在一示出的实施方式中,目标开发者在线开发目标服务组件时,具体可以包括:调用开发子系统203开放的第一功能调用接口,自定义与目标服务组件对应的后端API;调用开发子系统203开放的第二功能调用接口,自定义与目标服务组件对应的数据表;调用开发子系统203开放的上传接口,将开发完成的与目标服务组件对应的前端界面数据上传到开发子系统203。

在一示出的实施方式中,开发子系统203还可以用于管理与开发的服务组件对应的功能权限码,进而管理各个租户对服务组件的调用权限。在一示出的实施方式中,开发子系统203还可以用于管理上述开发子系统203提供的系统资源中的各个接口对应的接口权限码,进而管理各个开发者对开发子系统203提供的接口的调用权限,等等,本说明书对此不做具体限定。

此外,在一些可能的实施方式中,SaaS系统200中还可以包括一些核心开发者,这些核心开发者主要用于提供SaaS系统200的底层实现。

示例性的,SaaS系统200的底层实现可以包括:企业数据通用查询的底层实现,可以通过写在平台的java代码库中实现;多个企业数据查询OpenAPI的底层实现,可以在SaaS系统200内部的通用查询这一模块里编写,此外,在编写企业数据查询OpenAPI时,需要指定数据源类型、编写数据源的查询SQL(或者其他DSL)、最终的加工计算groovy脚本等,本说明书对此不做具体限定。

示例性的,SaaS系统200的底层实现还可以包括:自定义表这一功能的底层实现,可以通过写在平台的java代码库中实现;自定义API这一功能的底层实现,可以通过写在平台的java代码库中实现。

示例性的,SaaS系统200的底层实现还可以包括:身份识别与访问管理(Identityand Access Management,IAM)的底层实现,可以通过写在平台的java代码库中实现,其中,IAM主要用于对系统中的租户、账号进行管理,以及登录态维护和功能权限管理,等等,本说明书对此不做具体限定;开发者列表的底层实现,主要包括创建开发者列表的底层实现以及向列表中的各个开发者开放相关的开发权限的底层实现,可以通过写在平台的java代码库中实现。

示例性的,SaaS系统200的底层实现还可以包括:服务组件的底层实现,可以通过写在平台的java代码库中实现;租户订购服务组件这一功能的底层实现,可以通过写在平台的java代码库中实现。

在一示出的实施方式中,SaaS系统200的底层实现还可以包括其他任何可能的底层实现,本说明书对此不做具体限定。

需要说明的是,上述图2所示的SaaS系统200的结构只作示例性说明,在一些可能的实施方式中,SaaS系统200可以包括比图2所示更多或者更少的结构,等等,本说明书对此不做具体限定。

请参阅图3,图3是一示例性实施例提供的一种服务组件的在线开发方法的流程示意图。该方法可以应用于图1或者图2所示的SaaS系统200,该SaaS系统中维护有开发者列表,并且该SaaS系统面向开发者列表中包含的各个开发者开放了在SaaS系统上在线开发服务组件的系统资源。如图3所示,该方法具体可以包括如下步骤S101-步骤S103。

步骤S101,获取目标租户发送的与目标服务组件对应的需求数据。

如上所述,SaaS系统中维护有开发者列表,该开发者列表可以包括官方开发者列表和第三方开发者列表。其中,官方开发者列表中可以包括若干个官方开发者,这若干个官方开发者可以属于一个或多个官方的开发者组织。其中,第三方开发者列表中可以包括若干个第三开发者,这若干个第三开发者可以属于一个或多个第三方的开发者组织。

在一示出的实施方式中,开发者列表(包括官方开发者列表和第三方开发者列表)可以以数据表的形式存储于关系型数据库中。示例性的,与该开发者列表对应的数据表的结构可以如下表一所示。

表一

进一步地,开发者列表中的各个开发者的数据也可以以数据表的形式存储于关系型数据库中。示例性的,与开发者数据对应的数据表的结构可以如下表二所示。

表二

在一示出的实施方式中,SaaS系统可以面向租户提供多个服务组件,这些服务组件可以是与SaaS系统维护的服务数据相关的服务功能对应的服务组件,具体可参考上述图1对应实施例的描述,此处不再进行赘述。

在一示出的实施方式中,SaaS系统当前提供的这多个服务组件中可以包括通用服务组件。在一示出的实施方式中,这多个服务组件中的通用服务组件可以包括由SaaS系统中的官方开发者预先开发完成并发布的服务组件,还可以包括由官方开发者基于若干个租户的历史服务需求在SaaS系统上开发完成并发布的服务组件,等等,本说明书对此不做具体限定。

在一示出的实施方式中,SaaS系统当前提供的这多个服务组件中还可以包括非通用服务组件。在一示出的实施方式中,这多个服务组件中的非通用服务组件可以是由第三方开发者基于若干个租户的历史服务需求在SaaS系统上开发完成并发布的服务组件,等等,本说明书对此不做具体限定。

在一示出的实施方式中,目标租户在调用SaaS系统提供的服务组件之前,可以先查看SaaS系统中现有的服务组件是否能满足自己的需求。在一示出的实施方式中,目标租户可以基于自身的服务使用需求,向SaaS系统发送与目标服务组件对应的需求数据,相应的,SaaS系统接收目标租户发送的该需求数据。

示例性的,目标租户可以向SaaS系统发送针对目标服务功能的使用请求,该请求中可以包括与该目标服务功能对应的目标服务组件相关的需求数据。

示例性的,以SaaS系统为企业风控SaaS系统为例,该目标服务功能可以包括企业评级功能,等等,本说明书对此不做具体限定。

步骤S102,响应于所述需求数据,确定所述SaaS系统面向租户提供的服务组件中是否包含所述目标服务组件。

在一示出的实施方式中,SaaS系统响应于接收到与目标服务组件对应的需求数据,可以先确定SaaS系统当前面向租户提供的多个服务组件中是否包含该目标服务组件。

步骤S103,如果所述服务组件中不包含所述目标服务组件,从所述开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者,并指示所述目标开发者基于所述SaaS系统开放的系统资源,在所述SaaS系统上为所述目标租户在线开发所述目标服务组件。

在一示出的实施方式中,如果SaaS系统确定当前面向租户提供的多个服务组件中包含该目标服务组件,则目标租户可以直接向SaaS系统订购该目标服务组件。

示例性的,SaaS系统在确定当前提供的多个服务组件中包含该目标服务组件后,可以向目标租户反馈相应的指示消息,以指示目标租户向SaaS系统发送与目标服务组件对应的订购请求。进一步地,SaaS系统响应于接收到的订购请求,可以指示目标租户针对该目标服务组件进行订购支付,并在确定目标租户完成了针对目标服务组件的订购支付后,向目标租户对应的用户账号,开放该目标服务组件的调用权限,以供目标租户调用。

在一示出的实施方式中,如果SaaS系统确定当前面向租户提供的多个服务组件中不包含该目标服务组件,则SaaS系统可以从其维护的开发者列表中为目标租户确定与目标服务组件对应的目标开发者,并指示该目标开发者在SaaS系统上为目标租户在线开发该目标服务组件。

在一示出的实施方式中,SaaS系统在确定与目标服务组件对应的目标开发者时,可以先判断该目标服务组件是否为通用服务组件,并基于判断结果选择合适的目标开发者。

在一示出的实施方式中,如果该目标服务组件是通用服务组件,则SaaS系统可以从官方开发者列表中为目标租户确定与该目标服务组件对应的目标开发者,即目标开发者为官方开发者列表中的官方开发者。

在一示出的实施方式中,如果该目标服务组件不是通用服务组件,则SaaS系统可以从第三方开发者列表中为目标租户确定与该目标服务组件对应的目标开发者,即目标开发者为第三方开发者列表中的第三方开发者。

需要说明的是,本说明书对确定目标开发者的策略不作特别限定,在一示出的实施方式中,SaaS系统可以将官方开发者列表/第三方开发者列表中较为空闲的开发者确定为目标开发者,或者可以将与目标服务组件对应的服务功能相匹配的开发者确定为目标开发者,等等,本说明书对此不做具体限定。

在一示出的实施方式中,如果该目标服务组件不是通用服务组件,也可以由目标租户来确定目标开发者。示例性的,SaaS系统可以向目标租户发送通知消息,其中,该通知消息包含SaaS系统维护的第三方开发者列表,以使目标租户从第三方开发者列表中为目标服务组件指定目标开发者。进一步地,目标租户可以向SaaS系统发送反馈消息,该反馈消息可以包含目标租户确定出的目标开发者,相应的,SaaS系统可以接收该反馈消息,以获取目标租户从第三方开发者列表中为目标服务组件指定出的目标开发者。

进一步地,在一示出的实施方式中,目标开发者可以基于SaaS系统开放的系统资源,在SaaS系统上为目标租户在线开发该目标服务组件。其中,目标服务组件可以包括:与该目标服务组件对应的服务功能相关的后端API;与该目标服务组件对应的服务功能相关的数据表;与该目标服务组件对应的服务功能相关的前端界面数据。

在一示出的实施方式中,与该目标服务组件对应的服务功能相关的数据表可以包括:由与目标服务组件对应的服务功能相关的多个物理数据表映射成的逻辑数据表。应理解,在有外部开发者的场景下,如果采取物理表的方案,那么物理表数量会较多且较难统一管理,因此本申请采用将多个物理数据表映射成一个逻辑表数据表的方式来高效、可靠地构建目标服务组件中的数据表。

在一示出的实施方式中,与该目标服务组件对应的服务功能相关的前端界面数据可以包括:与该前端界面对应的界面元数据。

相应的,SaaS系统开放的系统资源可以包括:自定义后端API的第一功能调用接口、自定义数据表的第二功能调用接口、上传前端界面数据的上传接口。

在一示出的实施方式中,目标开发者基于SaaS系统开放的系统资源在线开发目标服务组件时,具体可以包括:调用SaaS系统开放的第一功能调用接口,自定义与目标服务组件对应的后端API;调用SaaS系统开放的第二功能调用接口,基于SaaS系统维护的服务数据以及租户提供的客户数据等,自定义与目标服务组件对应的数据表;调用SaaS系统开放的上传接口,将开发完成的与目标服务组件对应的前端界面数据上传到SaaS系统。

在一示出的实施方式中,自定义数据表的元数据,可以以数据表的形式存储在关系型数据库中。示例性的,该数据表的结构可以如下表三所示。

表三

在一示出的实施方式中,自定义数据表中的列的元数据,也可以以数据表的形式存储在关系型数据库中。示例性的,该数据表的结构可以如下表四所示。

表四

在一示出的实施方式中,自定义数据表中的实际数据,可以以数据表的形式存储在在线分析型数据库中。其中,该实际数据可以包括目标租户提供的客户数据,还可以包括SaaS系统维护的服务数据(例如企业数据)。需要说明的是,采用在线分析型数据库既能支持SQL操作,又能在没有二级索引或者倒排索引的情况下保持较好的查询性能。示例性的,该数据表的结构可以如下表五所示。

表五

在一示出的实施方式中,SaaS系统中的各个服务组件的数据(包括本次开发完成的目标服务组件的数据),都可以以数据表的形式存储在关系型数据库中。示例性的,该数据表的结构可以如下表六所示。

表六

在一示出的实施方式中,SaaS系统中的各个服务组件和与其对应的自定义API的关联数据,可以以数据表的形式存储在关系型数据库中。示例性的,该数据表的结构可以如下表七所示。

表七

在一示出的实施方式中,SaaS系统中的各个服务组件和与其对应的自定义表的关联数据,可以以数据表的形式存储在关系型数据库中。示例性的,该数据表的结构可以如下表八所示。

表八

步骤S104,获取所述目标开发者开发完成的所述目标服务组件,并将所述目标服务组件发布到所述SaaS系统上,以供所述目标租户调用。

在一示出的实施方式中,在目标开发者开发完成上述目标服务组件后,SaaS系统可以获取目标开发者开发完成的该目标服务组件,并将该目标服务组件发布到SaaS系统上,以供所述目标租户调用。

在一示出的实施方式中,如果目标服务组件是通用服务组件,SaaS系统可以直接将开发完成的该目标服务组件发布到SaaS系统上。

在一示出的实施方式中,如果目标服务组件不是通用服务组件,SaaS系统可以获取目标开发者开发完成的目标服务组件,并发起针对目标服务组件的审核。进一步地,响应于目标服务组件审核通过,SaaS系统可以将目标服务组件发布到SaaS系统上,以保证第三方开发的安全性。

在一示出的实施方式中,SaaS系统在将目标服务组件发布到SaaS系统上时,可以选择公开给所有租户,也可以定向公开给目标租户。示例性的,SaaS系统可以为目标租户定向开放针对该目标服务组件的查看权限。

在一示出的实施方式中,在将目标服务组件发布到SaaS系统上之后,目标租户便可以订购该目标服务组件并使用。示例性的,目标租户可以向SaaS系统发送与目标服务组件对应的订购请求。进一步地,SaaS系统响应于接收到的订购请求,可以指示目标租户针对该目标服务组件进行订购支付,并在确定目标租户完成了针对目标服务组件的订购支付后,向目标租户对应的用户账号,开放该目标服务组件的调用权限,以供目标租户调用。

在一示出的实施方式中,租户与其订购的服务组件之间的关联数据,可以以数据表的形式存储在关系型数据库中。示例性的,该数据表的结构可以如下表九所示。

表九

进一步地,在一示出的实施方式中,请参阅图4,图4是一示例性实施例提供的一种服务组件开发的模型关系示意图。图4以与企业风控相关的服务组件开发为例,如图4所示,该模型可以包括服务组件的开发、企业数据的使用、客户数据的使用和IAM等各个部分。

需要说明的是,图4中不带箭头的实线表示二者有关联关系,带箭头的实线表示二者有先后关系,带箭头的虚线表示有调用关系。此外,图4连线上标注的比值为二者的数量比,N、M为大于或者等于1的整数。

如图4所示,1AM中的功能权限(等价于垂直权限),表示一个账号能否访问某个服务组件,在一示出的实施方式中,SaaS系统可以通过功能权限码来管理各个租户对服务组件的调用权限,本说明书对此不做具体限定。如图4所示,IAM中的角色是指一组功能权限的集合,角色限定在租户中;接口权限,表示一个账号能否访问某个后端API。在一示出的实施方式中,SaaS系统可以通过接口权限码来管理各个开发者对SaaS系统提供的自定义后端API的第一功能调用接口的调用权限,等等,本说明书对此不做具体限定。

如图4所示,本申请中由第三方开发者在线开发的非通用服务组件,也会基于SaaS维护的企业数据实现的一些满足租户自定义服务需求的非通用服务组件,也就是说,由第三方开发者开发的自定义的API,也需要调用企业开放的企业数据OpenAPI。

图4所涉及的方法流程具体可参考上述图1-图3对应实施例的描述,此处不再进行赘述。

综上所述,本申请中的SaaS系统维护了开发者列表,并向开发者列表中的各个开发者开放了在SaaS系统上在线开发服务组件的系统资源。基于此,本申请在获取到目标租户发送的与目标服务组件对应的需求数据后,如果确定SaaS系统面向租户提供的已有的服务组件中不包含该目标服务组件,则可以从上述开发者列表中为目标租户确定与该目标服务组件相对应的目标开发者,并指示该目标开发者基于SaaS系统开放的系统资源,在SaaS系统上为目标租户在线开发该目标服务组件。进一步地,在目标开发者开发完成目标服务组件后,SaaS系统可以获取该目标服务组件,并将该目标服务组件发布到SaaS系统上,以供所述目标租户调用。如此,本申请中的SaaS系统可以基于客户的服务使用需求,由自身维护的开发者列表中对应的开发者基于SaaS系统提供的系统资源,在SaaS系统上为客户在线开发相应的服务组件,既保证了客户需求,又避免了客户本地化开发服务组件所需的服务器资源等,降低了客户成本,满足了客户的实际需求。

与上述方法流程实现对应,本说明书的实施例还提供了一种服务组件的在线开发装置。请参阅图5,图5是一示例性实施例提供的一种服务组件的在线开发装置的结构示意图,该装置50可以应用于图1或者图2所示的SaaS系统,该SaaS系统维护了开发者列表,并且该SaaS系统面向开发者列表中包含的各个开发者开放了在SaaS系统上在线开发服务组件的系统资源。如图5所示,该装置50包括:

获取单元501,用于获取目标租户发送的与目标服务组件对应的需求数据;

确定单元502,用于响应于所述需求数据,确定所述SaaS系统面向租户提供的服务组件中是否包含所述目标服务组件;

在线开发单元503,用于如果所述服务组件中不包含所述目标服务组件,从所述开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者,并指示所述目标开发者基于所述SaaS系统开放的系统资源,在所述SaaS系统上为所述目标租户在线开发所述目标服务组件;

发布单元504,用于获取所述目标开发者开发完成的所述目标服务组件,并将所述目标服务组件发布到所述SaaS系统上,以供所述目标租户调用。

在一示出的实施方式中,所述开发者列表中包括第三方开发者列表和所述SaaS系统中的官方开发者列表;

所述在线开发单元503,具体用于:

如果所述服务组件中不包含所述目标服务组件,则进一步确定所述目标服务组件是否为通用服务组件;

如果所述目标服务组件是通用服务组件,则从所述官方开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者;

如果所述目标服务组件不是通用服务组件,则从所述第三方开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者。

在一示出的实施方式中,所述在线开发单元503,具体用于:

向所述目标租户发送通知消息,其中所述通知消息包含所述第三方开发者列表,以使所述目标租户从所述第三方开发者列表中为所述目标服务组件指定目标开发者;

获取所述目标租户从所述第三方开发者列表中为所述目标服务组件指定的目标开发者。

在一示出的实施方式中,所述发布单元504,具体用于:

如果所述目标服务组件不是通用服务组件,则获取所述目标开发者开发完成的所述目标服务组件,并发起针对所述目标服务组件的审核;响应于所述目标服务组件审核通过,将所述目标服务组件发布到所述SaaS系统上。

在一示出的实施方式中,所述发布单元504,具体用于:

将所述目标服务组件发布到所述SaaS系统上,并为所述目标租户定向开放针对所述目标服务组件的查看权限。

在一示出的实施方式中,所述目标服务组件包括:

与该目标服务组件对应的服务功能相关的后端API;

与该目标服务组件对应的服务功能相关的数据表;

与该目标服务组件对应的服务功能相关的前端界面数据。

在一示出的实施方式中,所述前端界面数据包括与所述前端界面对应的界面元数据。

在一示出的实施方式中,所述系统资源包括:自定义所述后端API的第一功能调用接口、自定义所述数据表的第二功能调用接口、上传所述前端界面数据的上传接口;

所述在线开发单元503,具体用于:

指示所述目标开发者调用所述SaaS系统开放的所述第一功能调用接口,自定义与所述目标服务组件对应的所述后端API;

指示所述目标开发者调用所述SaaS系统开放的所述第二功能调用接口,自定义与所述目标服务组件对应的所述数据表;

指示所述目标开发者调用所述SaaS系统开放的所述上传接口,将开发完成的与所述目标服务组件对应的前端界面数据上传到所述SaaS系统。

在一示出的实施方式中,与所述目标服务组件对应的服务功能相关的数据表包括:

由与所述目标服务组件对应的服务功能相关的多个物理数据表映射成的逻辑数据表。

在一示出的实施方式中,所述装置50还包括,订购单元505,用于:

接收目标租户发送的与所述目标服务组件对应的订购请求;

响应于所述订购请求,指示所述目标租户针对所述目标服务组件进行订购支付,并在确定所述目标租户完成了针对所述目标服务组件的订购支付后,向所述目标租户对应的用户账号,开放所述目标服务组件的调用权限。

在一示出的实施方式中,所述服务组件为与所述SaaS系统维护的服务数据相关的服务功能对应的服务组件。

在一示出的实施方式中,所述SaaS系统为企业风控SaaS系统;所述SaaS系统维护的服务数据为企业数据;所述服务功能包括与企业风控相关的服务功能。

上述装置50中各个单元的功能和作用的实现过程具体详见上述图1-图4对应实施例的描述,在此不再进行赘述。应理解,上述装置50可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的处理器(CPU)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了CPU以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备、车载计算机或者这些设备中的任意几种设备的组合。

与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备。请参阅图6,图6是一示例性实施例提供的一种计算机设备的结构示意图。图6所示的计算机设备可以为上述图1所示的SaaS系统200中的计算机设备。如上所述,该SaaS系统维护了开发者列表,并且,该SaaS系统面向所述开发者列表中包含的各个开发者开放了在所述SaaS系统上在线开发服务组件的系统资源。如图6所示,该计算机设备包括处理器1001和存储器1002,进一步还可以包括输入设备1004(例如键盘等)和输出设备1005(例如显示器等)。处理器1001、存储器1002、输入设备1004和输出设备1005之间可以通过总线或其他方式连接。如图6所示,存储器1002包括计算机可读存储介质1003,该计算机可读存储介质1003存储有能够由处理器1001运行的计算机程序。处理器1001可以是CPU,微处理器,或用于控制以上方法实施例执行的集成电路。处理器1001在运行存储的计算机程序时,可以执行本说明书实施例中服务组件的在线开发方法的各个步骤,包括:获取目标租户发送的与目标服务组件对应的需求数据;响应于所述需求数据,确定所述SaaS系统面向租户提供的服务组件中是否包含所述目标服务组件;如果所述服务组件中不包含所述目标服务组件,从所述开发者列表中为所述目标租户确定与所述目标服务组件对应的目标开发者,并指示所述目标开发者基于所述SaaS系统开放的系统资源,在所述SaaS系统上为所述目标租户在线开发所述目标服务组件;获取所述目标开发者开发完成的所述目标服务组件,并将所述目标服务组件发布到所述SaaS系统上,以供所述目标租户调用,等等。

对上述服务组件的在线开发方法的各个步骤的详细描述请参见之前的内容,此处不再进行赘述。

与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中服务组件的在线开发方法的各个步骤。具体请参见上述图1-图4对应实施例的描述,此处不再进行赘述。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

在一个典型的配置中,终端设备包括一个或多个CPU、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。

计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

相关技术
  • 一种设备故障检测的方法、系统及相关组件
  • 一种电子设备组件、检测设备和校准方法
  • 一种盖板、显示屏组件、电子设备及制程方法
  • 一种教育平台下的自动生成组件文件的方法及电子设备
  • 一种监控设备组件状态的方法及装置
  • 交换用户设备服务能力暴露功能(SCEF)相关信息的方法及组件
  • 生成人工智能服务组件的方法、装置及相关设备、系统
技术分类

06120116484163