一种支持多租户数据与服务定制运行的方法和装置转让专利

申请号 : CN201110156041.6

文献号 : CN102215264B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李庆忠王新军张世栋孔兰菊

申请人 : 山东大学

摘要 :

本发明涉及一种支持多租户数据与服务定制运行的方法和装置,以提高整个软件的可定制性,使得事务一致性更好。它包括事务处理单元,负责SaaS业务服务引擎中所有事务的协调、并可确保在整个事务处理过程中出现失败或异常时保证数据库的完整性并回滚所有失败事务的变更,同时事务处理单元还需将基本服务调用单元、扩展服务调用单元的调用是否成功记录下来;基本服务调用单元,负责组织基本业务服务的输入参数并根据参数来调用基本业务服务;扩展服务调用单元,负责调用扩展业务服务,调用结果整合单元,负责将调用的基本服务调用单元和扩展服务调用单元的结果进行整合。

权利要求 :

1.一种支持多租户数据与服务定制运行的方法,其特征是,它包括以下步骤:

A.事件源组织SaaS业务服务调用参数;

B.SaaS业务服务引擎将输入的参数进行解析,根据输入参数获得事务信息,由事务信息来判断是否是一次新调用,如果不是新调用并且标准业务服务事务标识为成功则跳到步骤D直接调用租户定制业务服务;如果为一次新的服务调用或标准业务服务标识为未成功则继续步骤C调用标准业务服务;

C.根据步骤A中的服务调用参数来组织标准业务服务调用参数,同时根据context、WSDL地址和operation进行业务服务选择、映射、调用,调用完成后由事务处理单元将标准业务服务事务标识更新为成功;所述标准业务服务为原始事件源已知并存在固有调用关系的服务,它由若干事件源需要调用的业务组成;

D.从数据库中获取事件源列表信息和表主键列信息,将这些信息和步骤A中的业务服务调用参数context、入参列表组成租户定制业务服务调用参数,同时根据标准业务服务名称和事务信息来进行租户定制业务服务的选择、调用,调用完成后由事务处理单元将租户定制业务服务事务标识更新为成功;所述租户定制业务服务是由SaaS业务服务引擎提供的,包括了查询、增加、修改和删除业务操作,它主要处理事件源中定制列表中的定制数据;

E.将标准业务服务和租户定制业务服务的返回结果进行整合;

F.将整合后的SaaS业务服务返回结果返回给事件源。

2.如权利要求1所述的支持多租户数据与服务定制运行的方法,其特征在于,所述步骤A中事件源组织的SaaS业务服务调用参数包括context信息、SaaS业务服务定义地址信息、SaaS业务服务操作、原始SaaS业务服务参数和事件源ID。

3.一种权利要求1所述的支持多租户数据与服务定制运行方法用装置,其特征在于,该装置包括:一个事务处理单元,它负责SaaS业务服务引擎中所有事务的协调、并确保在整个事务处理过程中出现失败或异常时保证数据库的完整性并回滚所有失败事务的变更,同时事务处理单元还将基本业务服务、扩展业务服务的调用是否成功记录下来,保证了标准服务与租户定制服务、业务单元的事务一致性;

一个基本服务调用单元,它负责组织基本业务服务的输入参数,同时根据context、WSDL地址和operation进行基本业务服务选择、映射、调用;

一个扩展服务调用单元,它负责根据事务信息来组织参数调用扩展业务服务,扩展服务调用单元从数据库中获取事件源列表信息和表主键列信息,将这些信息和context、入参列表组成租户定制业务服务调用参数,同时根据标准业务服务名称和事务信息来进行租户定制业务服务的选择、调用;

一个服务调用结果整合单元,它负责将调用的基本业务服务和扩展业务服务的结果进行整合。

说明书 :

一种支持多租户数据与服务定制运行的方法和装置

技术领域

[0001] 本发明涉及SaaS定制技术领域,特别涉及一种支持多租户数据与服务定制运行的方法和装置。

背景技术

[0002] 目前在多租户系统架构下,是多个租户共享同一个应用实例,但由于租户之间因业务侧重点、运营规则等的差别,导致了个性化需求的不同,这就需要根据租户的个性化需求对SaaS(Software-as-a-service,软件即服务)应用进行个性化定制,这其中包括了页面、数据、服务等的定制。PaaS(Platform as a Service,平台即服务)基于云计算技术通过互联网向多个独立软件开发商提供便捷的SaaS开发、应用、计算等信息化服务,SaaS应用部署到PaaS平台后,PaaS平台需要为其提供应用的定制能力,而在其中自定义数据的处理、定制服务响应是个性化定制技术中的一个难点,以往的实现方案是预先分配字段和字段对应的服务,预分配字段就是在表中预先扩展分配一定数量的字段,预分配服务就是在服务引擎上部署处理这些扩展字段的服务,当租户需要扩展字段时,就可以使用这些预先分配的字段,用户使用时扩展数据也可通过预先确定的服务进行传输,但问题也随之而来,预分配的字段对当前租户代表什么含义,同一个预分配的字段对不同租户又代表什么含义,如果表中只预分配一个整型字段,而租户需要两个整形字段怎么办?如果预分配字段和处理这些字段的服务设计太多就会造成数据库的膨胀和相同作用服务的重合,也可能造成大量无意义的字段,形成存储空间的浪费。同时在以往的自定义数据的处理、定制服务响应的过程中,因为字段跟服务都是预分配的所以不需要考虑服务响应的事物一致性。

发明内容

[0003] 本发明的目的就是为解决上述问题,提供一种支持多租户数据与服务定制运行的方法和装置,以提高整个软件的可定制性,使得事务一致性更好,从而提高工作效率。
[0004] 为实现上述目的,本发明采用如下技术方案:
[0005] 一种支持多租户数据与服务定制运行的方法,它包括以下步骤:
[0006] A.事件源(包括UI、其他业务服务等)组织SaaS业务服务调用参数;
[0007] B.SaaS业务服务引擎将输入的参数进行解析,根据输入参数获得事务管理信息,由事务信息来判断是否是一次新调用,如果不是新调用并且标准业务服务事务标识为成功则跳到步骤D直接调用租户定制业务服务;如果为一次新的服务调用或标准业务服务标识为未成功则继续步骤C调用标准业务服务;
[0008] C.根据步骤A中的服务调用参数列表来组织标准业务服务调用参数,同时根据context、WSDL地址和operation进行业务服务选择、映射、调用,调用完成后由事务处理单元将标准业务服务事务标识更新为成功;
[0009] D.从数据库中获取事件源列表信息和表主键列信息,将这些信息和步骤A中的SaaS业务服务调用参数context、入参列表组成租户定制业务服务调用参数,同时根据标准业务服务名称和事务信息来进行租户定制业务服务的选择、调用,调用完成后由事务处理单元将租户定制业务服务事务标识更新为成功;
[0010] E.将标准业务服务和租户定制SaaS业务服务的返回结果进行整合;
[0011] F.将整合后的SaaS业务服务返回结果返回给事件源。
[0012] 所述步骤A中事件源组织的业务服务调用参数包括context信息、业务服务定义地址信息、业务服务操作、原始业务服务参数和事件源ID。
[0013] 所述步骤C中标准业务服务为原始事件源已知并存在固有调用关系的服务,它由若干事件源需要调用的业务组成。
[0014] 所述步骤D中租户定制业务服务是由SaaS业务服务引擎提供的,包括了查询、增加、修改和删除业务操作,它主要处理事件源中定制列表中的定制数据。
[0015] 一种支持多租户数据与服务定制运行方法用装置,该装置包括:
[0016] 一个事务处理单元,它负责SaaS业务服务引擎中所有事务的协调、并确保在整个事务处理过程中出现失败或异常时保证数据库的完整性并回滚所有失败事务的变更,同时事务处理单元还将基本业务服务、扩展业务服务的调用是否成功记录下来,保证了标准服务与租户定制服务、业务单元的事务一致性;
[0017] 一个基本服务调用单元,它负责组织基本业务服务的输入参数,同时根据context、WSDL地址和operation进行基本业务服务选择、映射、调用;一个扩展服务调用单元,它负责根据事务信息来组织参数调用扩展业务服务,扩展服务调用单元从数据库中获取事件源列表信息和表主键列信息,将这些信息和context、入参列表组成租户定制业务服务调用参数,同时根据标准业务服务名称和事务信息来进行租户定制业务服务的选择、调用;
[0018] 一个服务调用结果整合单元,它负责将调用的基本业务服务和扩展业务服务的结果进行整合。
[0019] 本发明的有益效果是:
[0020] 1、提供了一种支持多租户数据与服务定制运行的方法和装置,使得租户可对数据进行随意的自定义,提高了SaaS软件的可定制性;
[0021] 2.解决了定制业务服务的响应问题;
[0022] 3.保证了标准业务服务与租户定制业务服务、业务单元的事务一致性;
[0023] 4.实现了数据定制技术与业务逻辑开发的分离,使开发商更专注于业务逻辑的开发,提高了租户数据的定制能力,提高了按需变更能力。

附图说明

[0024] 图1为一种支持多租户数据与服务定制运行的方法总体流程图;
[0025] 图2为一种支持多租户数据与服务定制运行的装置结构图。

具体实施方式

[0026] 下面结合附图与实施例对本发明做进一步说明。
[0027] 图1中,一种支持多租户数据与服务定制运行的方法,包括以下步骤:
[0028] 步骤101、由事件源组织服务调用参数,调用参数中包括context信息、WSDL地址、服务操作、原始服务参数和事件源ID;
[0029] 步骤102、服务引擎将输入的参数进行解析,根据入参获得事务管理信息,根据事务判断是否是一次新交易,如果不是一次新交易并且基本服务事务标识为成功则跳到步骤104,如果是一次新交易或者基本服务事务标识为未成功则继续步骤103;
[0030] 步骤103、根据步骤101中的服务调用参数列表来组织基本服务调用参数,同时根据context、WSDL地址和operation进行业务服务选择、映射、判断其是否属于第三方服务,确定最终调用的服务地址,如果属于第三方服务则调用第三方服务操作,如果属于业务服务则调用相应的业务服务操作;
[0031] 步骤104、对返回的业务服务结果进行解析,并将基本服务事务标识进行更新,通过命名规范及事务信息判断是否要调扩展服务,如果需要调用扩展服务且扩展服务事务标识成功则跳到步骤106,如果需要调用扩展服务且扩展服务事务标识为未成功则继续,从元数据引擎中获取页面定制元数据信息列表和表主键列信息,利用页面定制元数据、表主键列元数据和步骤101中的服务调用参数context、入参列表和业务服务返回结果进行组织,组合出扩展服务调用参数,根据命名规范识别要调用的扩展服务名,根据扩展服务名调用扩展服务;
[0032] 步骤105、调用完扩展服务后更新扩展服务事务标识,将扩展服务事务标识为已调用,将基本业务服务的返回结果和扩展服务的返回结果进行整合;
[0033] 步骤106、将所有操作写入日志中,将整合后的服务结果返回给事件源。
[0034] 图2中,一种支持多租户数据与服务定制运行的装置,该装置包括:
[0035] 事务处理单元201,负责SaaS业务服务引擎中所有事务的协调、并可确保在整个事务处理过程中出现失败或异常时保证数据库的完整性并回滚所有失败事务的变更,同时事务处理单元还需将基本服务调用单元203、扩展服务调用单元202的调用是否成功记录下来;
[0036] 基本服务调用单元202,负责组织基本业务服务的输入参数并根据参数来调用基本业务服务;
[0037] 扩展服务调用单元203,负责调用扩展业务服务;
[0038] 调用结果整合单元204,负责将调用的基本服务调用单元203和扩展服务调用单元202的结果进行整合。