用于使bpm应用能为多租户使用的方法和装置的利记博彩app

文档序号:6600377阅读:253来源:国知局
专利名称:用于使bpm应用能为多租户使用的方法和装置的利记博彩app
技术领域
本发明涉及多租户技术,更具体涉及一种使BPM应用能为多租户使用的方法和装置。
背景技术
近来广泛流行的&iaS (Software as a krvice-软件作为服务),通过多租户 (MT-Multi-Tenancy)技术,能够降低软件应用程序的开发、部署和运行的费用。MT技术,是指在服务提供商的服务器上运行软件应用程序的单个实例,由该单个实例为多个租户(例如企业之类的组织)提供软件应用服务。传统方式下,软件提供商(ISV)通过许可方式销售软件,用户通过许可,使用特定的软件应用程序。现在,ISV也需要考虑通过^aS来服务于更多的用户。为此,需要将原来支持许可方式的软件应用转换为支持多租户的软件应用。这种转换,除了要求在技术上能满足特定的MT场合,例如资源共享,安全隔离、多样化的服务水平协议(SLA-Service LevelAgreements),还要求尽量少地重写原来的应用程序。业务流程管理(BPM-Business Process Management)应用,被广泛用于以&iaS模式服务于众多的中小企业租户。由于BPM应用具有构件复杂的特点,将BPM应用转换为支持多租户的应用通常也比较复杂。

发明内容
如上文所述,要将BPM应用转换为MT应用比较复杂,通常要重写应用程序,这需要对应用程序中的代码作较大的修改,并且需要实现包括共享和隔离、多样化的SLA、可升级性等MT功能细节的技巧。本发明的一个目的是提供使BPM应用能为多个租户使用,支持租户多样化的SLA。本发明的总体构思是,为BPM应用定义不同的多租户模型,并提供对BPM应用的构件的相应转换方法,在新租户注册时,为新租户部署BPM应用的构件,使BPM应用转换为支持多租户的多样化的SLA的MT应用。根据本发明的一个方面,提供一种用于使BPM应用能为多租户使用的方法,包含 响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议SLA;基于所获得的 SLA,选择多租户模型;调用与所选择的多租户模型对应的预定转换过程,处置BPM应用中的BPM构件,使得所述BPM应用能作为多租户BPM应用供该租户使用;以及在该租户的元数据中保存所述转换过程对BPM构件的处置结果。根据本发明的另一个方面,提供了一种用于使BPM应用能为多租户使用的装置, 包含获取模块,被配置用于响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议SLA ;选择模块,被配置用于基于SLA,选择多租户模型;转换模块,被配置用于调用与多租户模型对应的预定转换过程,处置BPM应用中的BPM构件,使得所述BPM应用能作为多租户BPM应用被使用;以及存储模块,被配置用于在租户的元数据中保存所述转换过程对BPM构件的处置结果。本发明也提供一种计算机程序产品,该程序产品包含能实现上述方法及其各种实施例的特征步骤的计算机程序代码,当其被加载到计算机系统中时,能够实现上述方法及其各种实施例的功能。


所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对示例性实施例的详细说明可更好地理解发明本身以及其使用模式、另外的目标、特征以及优点,在附图中图1示出了本发明实施例在其中实现的多租户BPM应用部署方式的示意图;图2A-2D是几种典型的多租户模型的图示;图3表示本发明方法一个实施例的流程图;图4表示根据本发明的以MT方式实时运行BPM应用的一个实施例的流程图;图5表示根据本发明的以MT方式实时运行BPM应用的另一个实施例的流程图;图6示出了本发明装置一个实施例的概略框图。
具体实施例方式下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员很明显,本发明的实现可不具有这些具体细节。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和元素的任意组合来实施和实践本发明。而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。参看图1,该图示意性表示本发明实施例在其中实现的多租户BPM应用部署方式。 如图1左侧所示,在BPM应用的典型多租户实现中,将多租户BPM应用包分为两个部分应用J2EE包和业务流程包或应用BPM包。在部署时,将J2EE包部署到Web&J2EE容器(如图1右上部分所示)中,将业务流程包部署到业务流程服务器(如图1右下部分所示)中。 Web&J2EE容器的一个例子是网络应用服务器WAS (Web Application Server),业务流程服务器的一个例子是 WPS (Websphere Process Server)。在Web&J2EE容器中的多租户BPM应用实例,由所有租户共享。业务流程服务器(业务流程引擎)中的业务流程包,包括流程模板、(采用LDAP Idif文件形式的)用户注册表,以及其他的内容和/或文件等等。租户的SLA,定义了为租户提供的服务水平。租户多样化的SLA,对业务流程包的部署产生不同的要求。为了使BPM应用支持多租户,需要处理BPM应用中与SLA有关、或者影响SLA的构件,以满足特定租户的特定要求。影响SLA的BPM应用的构件,通常包括流程模板和用户注册表。所述技术领域的技术人员知道,流程模板定义业务流程,它描述特定的业务逻辑,可用来在运行环境创建业务流程实例。用户注册表通常采取LDAP (轻量目录访问协议)idif文件的形式,用以保存用户帐户信息,诸如用户ID(标识符)和登录口令等等。一个租户的用户注册表中的每个用户被指派在执行该租户的业务流程过程中所担当的角色,例如经理角色、处理异常的管理员角色等等。为支持多租户而对BPM应用的构件的处理,有不同的组合方式,即不同的多租户模型。现在参看图2A-2D对几种典型的多租户模型的图示,示例性地定义一些典型的 BPM应用多租户模型(在上下文清楚的情况下,以下也简称“多租户模型”或“模型”)的定义。模型A 共享流程模板,分离用户注册表。按照这样的模型,除了如上所述的那样, 在J2EE容器中的应用实例由所有租户共享,在流程服务器中的流程模板也被所有租户共享;租户的用户注册表是分开的。图2A可以表示模型A,其中,租户1和租户2共享流程服务器中的流程模板,而用户注册表则是分开的,(例如在LDAP服务器中)有各自的LDAP子树“租户1的用户组”和“租户2的用户组”。模型B 在相同流程引擎中分离流程模板,分离用户注册表。按照这样的模型,所有租户共享一个流程引擎,每个租户单独有一份在流程引擎中的流程模版,租户的用户注册表是分开的。这种模型如图2B所示,其中,租户1和租户2在流程服务器中有单独的流程模板“租户1的流程模板”和“租户2的流程模板”,并且有各自的LDAP子树“租户1的用户组”和“租户2的用户组”。模型C 在相同流程引擎中分离流程模板,在专有服务器中分离用户注册表。按照这样的模型,所有租户共享一个流程引擎,每个租户单独有一份在流程引擎中的流程模版, 租户的用户注册表是分开的。这种模型如图2C所示,其中,租户1和租户2在流程服务器中有单独的流程模板“租户1的流程模板”和“租户2的流程模板”,并且各自的LDAP服务器中的LDAP树)“租户1的用户组”和“租户2的用户组”。模型D 在专用流程引擎中分离流程模板,在专有服务器中分离用户注册表。按照这样的模型,每个租户有自己独立的流程引擎,每个租户单独有一份在流程引擎中的流程模版,租户的用户注册表是分开的。图2D清楚地表示了模型D的上述特点。所述技术领域的技术人员应当知道,除了业务模板和用户注册表之外,影响SLA 的BPM应用的构件,还可以包括外部数据访问部件(或称外部服务组件)。业务流程可以用外部数据访问部件以各种方式调用业务流程外部的组件来完成业务操作。因此,按照本发明的实施例,在上述模型的基础上,还可构建进一步的多租户模型,例如,模型A’ =模型A+共享支持多租户的外部数据访问部件;模型B’ =模型B+共享支持多租户的外部数据访问部件;模型C’=模型C+共享支持多租户的外部数据访问部件; 模型D’ =模型D+每个租户有自己的不支持多租户共享的外部数据访问部件。所述技术领域的技术人员知道,根据具体需要,还可以构建更多的多租户模型。BPM多租户模型的多样性,反映了 SLA的多样性。由于SLA的多样性,要使BPM应用支持MT应用场景,就要求编程人员经常要针对新租户对BPM应用程序中的代码作复杂的修改,这样的效率很低。按照本发明,在构建不同的BPM多租户模型后,还预先提供相应的转换过程。转换过程针对不同的BPM多租户模型,处置BPM应用中的构件,例如流程模板,用户注册表、外部数据访问部件。这样,在用户要求注册成为BPM应用的一个租户时,可以根据SLA要求,随时调用转换方法来部署BPM应用中的构件,使之能以MT应用的方式为租户提供服务。参看图3,该图示例性地表示按照本发明方法一个实施例,在新租户注册时所作的处理过程。在步骤301,响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议 SLA。例如,代表租户的用户可以通过一个UI (例如SPI)输入SLA或者从一个SLA列表中选择所要求的SLA。步骤303,基于所获得的SLA,选择多租户模型。按照本发明一个实施例,可以从一个多租户模型列表中选择多租户模型,其中,所述多租户模型列表中预先定义了与各种SLA对应的多租户模型。在步骤305,调用与所选择的多租户模型对应的预定转换过程,处置BPM应用中的 BPM构件,使得所述BPM应用能作为多租户BPM应用供该租户使用。按照本发明的实施例,在将BPM应用以对多租户应用的形式提供服务之前,首先为各种BPM多租户模型提供转换方法。可以将这种转换方法编程为被调用的程序或转换过程。所述转换方法或转换过程针对不同的BPM多租户模型,处置BPM应用中的BPM构件,使得BPM应用能作为多租户BPM应用供多个租户使用。按照本发明的实施例,步骤307对BPM构件的处置包括,对于所选择的多租户模型要求单独的用户注册表的情况,转换过程用租户的标识区分用户注册表。例如,模型A的定义是共享流程模板,分离用户注册表。转换方法针对模型A对 BPM应用中的组件用户注册表和流程模板作如下处理。对用户注册表进行隔离。这可以例如通过在用户注册表名称<USer_RegiStry_ Name)中使用租户的标识(或租户名称)<Tenant_ID>作为前缀,来区分每个租户的用户注册表,例如〈TenantJD〉”-"^serRegistry Name〉。这样,就使新注册的租户有单独的用户
注册表。对模型A的流程模板,无需作特别处理。流程模板的隔离将由系统在运行时保证。按照本发明的实施例,步骤307对BPM构件的处置包括,在所选择的多租户模型要求单独的要求单独的流程模板的情况下,转换过程用租户的标识区分流程模板。例如,模型B的定义是在相同流程引擎中分离流程模板,分离用户注册表。转换方法针对模型B对BPM应用中的组件用户注册表和流程模板作如下处理。对用户注册表进行隔离。同样,这可以例如通过在用户注册表名称<USer_ Registry_Name>中使用租户名称<Tenant_ID>作为前缀,来区分每个租户的用户注册表, 例如<Tenant_ID>”-”^Ser Registry Name〉。这样,就使新注册的租户有单独的用户注册表。此外,还对流程模板进行隔离。这可以例如通过在模板名称<Pr0CeSS_Template_ Name)中使用租户名称<Tenant_ID>作为前缀,来区分每个租户的流程模板,例如<Tenant_ ID>” -,,〈ProcessJemplattName〉。这样,就使新注册的租户有单独的流程模板。按照本发明的实施例,步骤305中的处置BPM构件,包括为BPM构件选择对应的服务器,以部署所述BPM构件,转换过程对BPM构件的处置结果包含BPM构件的名称和所选择的对应的服务器的名称。
例如,模型D的定义是在专用流程引擎中分离流程模板,在专用服务器中分离用户注册表。转换方法针对模型D对BPM应用中的组件用户注册表和流程模板作如下处理。选择一个专用的服务器,例如LDAP服务器,将用户注册表部署于该专用的服务器上。这样,就使新注册的租户有在专用的服务器上的单独的用户注册表。选择一个专用的流程引擎服务器,将流程模板“克隆”在该专用的流程引擎服务器上。这样,就使新注册的租户在专用的流程引擎服务器上有单独的流程模板。再例如,模型A’的定义是,模型A’ =模型A+共享支持多租户的外部数据访问部件;转换方法针对模型A’对BPM应用中的组件的处理包括,对用户注册表和流程模板作与上述针对模型A的类似的处理;此外,对访问外部数据的部件,转换方法无需加以处理,访问外部数据的部件将由部件自己管理。以上对针对不同模型的转换方法或转换过程的说明,仅仅是示意性的。通过以上示例性介绍,所属技术领域的技术人员,可以根据具体的BPM多租户模型的定义,提供针对 BPM多租户模型的对应转换方法。如所述技术领域的技术人员应当明白的那样,上文中所称的服务器,可以指物理的服务器,也可以指虚拟的服务器,例如,在具体实现中,业务流程服务器和LDAP服务器可以在不同的服务器实体上实现,也可以在一个服务器实体上实现。在步骤307,在该租户的元数据中保存所述转换过程对BPM构件的处置结果。按照本发明的实施例,上述的处理结果,例如新租户的用户注册表〈Tenant ID>,,_,,<User Registry Name〉,新租户的流程模板 <Tenant_ID>,,-,,〈Process—Template— Name〉,为新租户的用户注册表选择的LDAP服务器,为新租户的流程模板选择的流程引擎服务器,都将作为新租户的元数据被存储起来。图3所示的过程,可以针对每一个新租户注册重复进行。由于预先定义了各种多租户模型,并针对各种模型预先设计了可在租户注册时调用的转换过程,因此可以降低为每个新租户修改BPM应用的程序的工作量。注册租户的用户在运行BPM应用时,系统将(例如通过MT扩展的BPMAPI和运行组件)根据当前租户和及其在注册时选择的多租户模型来路由和隔离租户请求。下面参照附图4描述根据本发明一个以MT方式实时运行BPM应用实施例。该图示意性地表示对注册租户的用户请求创建流程实例的处理的流程。如图所示,过程开始时400,用户发出要求创建流程实例请求。响应于该请求,在步骤401,获得用户所属的注册租户的标识。在具体实现中,可以选择各种方式来获得用户所属的注册租户的标识可以从用户的请求中获得,例如通过用户在登录时的需要输入的信息中获得。在步骤403,从租户的元数据中获得该租户部署在预定服务器上的流程模板。如图3所示的实施例的说明中所述的那样,每个注册租户的元数据中,已经保存了流程模板名称和对应的服务器名称。因此,通过租户的标识,就可以在该租户的元数据中获得该租户部署在预定服务器上的某个流程模板。在步骤405,根据所获得的流程模板,创建流程实例。在步骤407,为所创建的流程实例设置租户上下文。例如,为该流程实例的线程设置租户标识。上述实施例旨在说明在如图3所示的过程中的步骤307中保存的对BPM构件的处置结果的使用。为注册租户创建流程实例的过程,是所述技术领域的技术人员熟知的内容, 在此不再详述。图5示出了根据本发明以MT方式运行BPM应用的另一个实施例的流程图。该实施例示意性地表示对注册租户的用户的查询请求的处理。如图所示,响应于来自用户的查询请求,在步骤501,从用户的请求中获得用户所属的注册租户的标识。 在步骤503,获得该注册租户的元数据。在步骤505,根据该注册租户的元数据,将用户的请求路由到预定的服务器。在步骤507,返回查询结果。按照本发明的实施例,在将预定的服务器返回的查询结果发送到发出查询请求的用户之前,要过滤掉来自服务器的查询结果中与注册租户无关的内容。在多租户环境中,与注册租户无关的内容,例如是属于其他租户的内容上述实现简单功能的实施例,旨在说明按照本发明实施例的方法注册后的BPM应用作为多租户应用被使用的情形,其中对来自服务器的查询结果的过滤,体现了多租户应用的特点的一个方面。以上描述了根据本发明的实施例的用于使BPM应用能为多租户使用的方法,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序可以与所描述的不同。例如,在本发明的一些实施例中,可以没有上述一个或多个可选步骤。每个步骤的具体执行方式可以与所描述的不同。所有这些变化都处于本发明的精神和范围之内。按照相同的发明构思,本发明也提出一种用于使BPM应用能为多租户使用的装置。下面参照附图6描述根据本发明的实施例的用于使BPM应用能为多租户使用的装置。如图所示,该装置600包括获取模块601、选择模块603、转换模块605和存储模块 607。获取模块601被配置得用于响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议SLA。选择模块603被配置得用于基于SLA,选择多租户模型。转换模块605被配置得用于调用与多租户模型对应的预定转换过程,处置BPM应用中的BPM构件,使得所述BPM应用能作为多租户BPM应用被使用。存储模块607被配置用于在租户的元数据中保存所述转换过程对BPM构件的处置结果。例如,按照本发明一个实施例,选择模块603可以从一个多租户模型列表中选择多租户模型,其中,所述多租户模型列表中预先定义了与各种SLA对应的多租户模型。按照本发明一个实施例,转换模块605处置的BPM构件至少包含流程模板和用户注册表;还可以进一步包含外部数据访问组件。按照本发明的实施例,转换模块605调用的转换过程用租户的标识区分单独的用户注册表,或者/并且用租户的标识区分单独的流程模板。按照本发明一个实施例,转换模块605调用的转换过程为BPM构件选择对应的服务器,以部署所述BPM构件。例如,转换模块605调用的转换过程为流程模板选择对应的服务器,例如业务流程服务器,以部署所述流程模板,或者/并且为用户注册表选择对应的服务器,例如LDAP服务器,以部署所述用户注册表,相应地,存储模块607进一步被配置得在租户的元数据中保存所述流程模板的名称和对应的服务器的名称,或者/并且保存用户注册表和对应服务器的名称。该装置600及其各种实施例,可用于实现上文描述的根据本发明的实施例的用于使BPM应用能为多租户使用的方法。为简明起见,在以上对装置600及其各种实施例的描述中,省略了与上文对相应方法的描述中重复的部分内容。因此,可参见以上关于相应方法的描述来了解该装置的细节。因此,以上对装置600及其各种实施例的描述和图示仅仅为示例性的,而不是对本发明的限制。在本发明的其他实施例中,该装置可具有更多、更少或不同的模块,且各模块之间的连接或包含关系可以与所描述和图示的不同。例如,如所述技术领域的技术人员应当明白的那样,本文中所称的服务器,可以是物理的,也可以是虚拟的。例如,在具体实现中,业务流程引擎服务器和LDAP服务器可以在不同的服务器实体上实现,也可以在一个服务器实体上实现。本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。
权利要求
1.一种用于使业务流程管理BPM应用能为多租户使用的方法,包含响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议SLA ; 基于所获得的SLA,选择多租户模型;调用与所选择的多租户模型对应的预定转换过程,处置BPM应用中的BPM构件,使得所述BPM应用能作为多租户BPM应用供该租户使用;以及在该租户的元数据中保存所述转换过程对BPM构件的处置结果。
2.权利要求1的方法,其中,从一个多租户模型列表中选择多租户模型,其中,所述多租户模型列表中预先定义了与各种SLA对应的多租户模型。
3.权利要求1或2的方法,其中,所述BPM构件至少包含流程模板和用户注册表。
4.权利要求3的方法,其中,所述BPM构件进一步包含外部数据访问组件。
5.权利要求3的方法,其中,所选择的多租户模型要求单独的用户注册表,所述转换过程用租户的标识区分用户注册表。
6.权利要求3的方法,其中,所选择的多租户模型要求单独的流程模板,所述转换过程用租户的标识区分流程模板。
7.权利要求3的方法,所述处置BPM应用中的BPM构件包括为BPM构件选择对应的服务器,以部署所述BPM构件,所述转换过程对BPM构件的处置结果包含所述BPM构件的名称和所选择的对应的服务器的名称。
8.权利要求4的方法,所述处置BPM应用中的BPM构件包括为BPM构件选择对应的服务器,以部署所述BPM构件,所述转换过程对BPM构件的处置结果包含所述BPM构件的名称和所选择的对应的服务器的名称。
9.权利要求7的方法,进一步包含响应于来自用户的创建流程实例的请求,获得用户所属的注册租户的标识; 从所述租户的元数据中获得该租户部署在预定服务器上的对应流程模板; 根据所获得的租户流程模板,创建流程实例; 为所创建的流程实例设置租户上下文。
10.权利要求1的方法,进一步包含响应于来自用户的查询请求,获得用户所属的注册租户的标识; 获得该注册租户的元数据;根据该注册租户的元数据,将用户的查询请求路由到预定的服务器; 过滤掉所述服务器的查询结果中与所述注册租户无关的内容; 将经过过滤的查询结果返回到所述用户。
11.一种用于使业务流程管理BPM应用能为多租户使用的装置,包含获取模块,被配置用于响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议SLA ;选择模块,被配置用于基于SLA,选择多租户模型;转换模块,被配置用于调用与多租户模型对应的预定转换过程,处置BPM应用中的BPM 构件,使得所述BPM应用能作为多租户BPM应用被使用;以及存储模块,被配置用于在租户的元数据中保存所述转换过程对BPM构件的处置结果。
12.权利要求11的装置,其中,所述选择模块进一步被配置得从一个多租户模型列表中选择多租户模型,其中,所述多租户模型列表中预先定义了与各种SLA对应的多租户模型。
13.权利要求11或12的装置,其中,所述BPM构件至少包含流程模板和用户注册表。
14.权利要求13的装置,其中,所述BPM构件进一步包含外部数据访问组件。
15.权利要求13的装置,其中,所选择的多租户模型要求单独的用户注册表,所述转换过程用租户的标识区分用户注册表。
16.权利要求13的装置,其中,所选择的多租户模型要求单独的要求单独的流程模板, 所述转换过程用租户的标识区分流程模板。
17.权利要求13的装置,其中,所述转换模块调用的转换过程为流程模板选择对应的服务器,以部署所述流程模板,所述存储模块进一步被配置用于在租户的元数据中保存所述流程模板的名称和对应的服务器的名称。
18.权利要求13的装置,其中,所述转换模块调用的转换过程为用户注册表选择对应的服务器,以部署所述用户注册表,存储模块进一步被配置用于在租户的元数据中保存所述用户注册表的名称和所选择的对应的服务器的名称。
全文摘要
本发明涉及多租户技术。公开了一种用于使BPM应用能为多租户使用的方法、装置和计算机程序产品,该方法包含响应于租户对所述BPM应用的注册请求,获得租户要求的服务水平协议SLA;基于所获得的SLA,选择多租户模型;调用与所选择的多租户模型对应的预定转换过程,处置BPM应用中的BPM构件,使得所述BPM应用能作为多租户BPM应用供该租户使用;在该租户的元数据中保存所述转换过程对BPM构件的处置结果。本发明便于灵活地将BPM应用转换为多租户BPM应用。
文档编号G06Q10/00GK102208081SQ20101014207
公开日2011年10月5日 申请日期2010年3月31日 优先权日2010年3月31日
发明者孙伟, 欧铁军, 殷切, 郭常杰, 高波 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1