專利名稱:用于使bpm應(yīng)用能為多租戶使用的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多租戶技術(shù),更具體涉及一種使BPM應(yīng)用能為多租戶使用的方法和裝置。
背景技術(shù):
近來(lái)廣泛流行的&iaS (Software as a krvice-軟件作為服務(wù)),通過(guò)多租戶 (MT-Multi-Tenancy)技術(shù),能夠降低軟件應(yīng)用程序的開(kāi)發(fā)、部署和運(yùn)行的費(fèi)用。MT技術(shù),是指在服務(wù)提供商的服務(wù)器上運(yùn)行軟件應(yīng)用程序的單個(gè)實(shí)例,由該單個(gè)實(shí)例為多個(gè)租戶(例如企業(yè)之類的組織)提供軟件應(yīng)用服務(wù)。傳統(tǒng)方式下,軟件提供商(ISV)通過(guò)許可方式銷售軟件,用戶通過(guò)許可,使用特定的軟件應(yīng)用程序?,F(xiàn)在,ISV也需要考慮通過(guò)^aS來(lái)服務(wù)于更多的用戶。為此,需要將原來(lái)支持許可方式的軟件應(yīng)用轉(zhuǎn)換為支持多租戶的軟件應(yīng)用。這種轉(zhuǎn)換,除了要求在技術(shù)上能滿足特定的MT場(chǎng)合,例如資源共享,安全隔離、多樣化的服務(wù)水平協(xié)議(SLA-Service LevelAgreements),還要求盡量少地重寫原來(lái)的應(yīng)用程序。業(yè)務(wù)流程管理(BPM-Business Process Management)應(yīng)用,被廣泛用于以&iaS模式服務(wù)于眾多的中小企業(yè)租戶。由于BPM應(yīng)用具有構(gòu)件復(fù)雜的特點(diǎn),將BPM應(yīng)用轉(zhuǎn)換為支持多租戶的應(yīng)用通常也比較復(fù)雜。
發(fā)明內(nèi)容
如上文所述,要將BPM應(yīng)用轉(zhuǎn)換為MT應(yīng)用比較復(fù)雜,通常要重寫應(yīng)用程序,這需要對(duì)應(yīng)用程序中的代碼作較大的修改,并且需要實(shí)現(xiàn)包括共享和隔離、多樣化的SLA、可升級(jí)性等MT功能細(xì)節(jié)的技巧。本發(fā)明的一個(gè)目的是提供使BPM應(yīng)用能為多個(gè)租戶使用,支持租戶多樣化的SLA。本發(fā)明的總體構(gòu)思是,為BPM應(yīng)用定義不同的多租戶模型,并提供對(duì)BPM應(yīng)用的構(gòu)件的相應(yīng)轉(zhuǎn)換方法,在新租戶注冊(cè)時(shí),為新租戶部署B(yǎng)PM應(yīng)用的構(gòu)件,使BPM應(yīng)用轉(zhuǎn)換為支持多租戶的多樣化的SLA的MT應(yīng)用。根據(jù)本發(fā)明的一個(gè)方面,提供一種用于使BPM應(yīng)用能為多租戶使用的方法,包含 響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議SLA;基于所獲得的 SLA,選擇多租戶模型;調(diào)用與所選擇的多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的BPM構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用供該租戶使用;以及在該租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于使BPM應(yīng)用能為多租戶使用的裝置, 包含獲取模塊,被配置用于響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議SLA ;選擇模塊,被配置用于基于SLA,選擇多租戶模型;轉(zhuǎn)換模塊,被配置用于調(diào)用與多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的BPM構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用被使用;以及存儲(chǔ)模塊,被配置用于在租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。本發(fā)明也提供一種計(jì)算機(jī)程序產(chǎn)品,該程序產(chǎn)品包含能實(shí)現(xiàn)上述方法及其各種實(shí)施例的特征步驟的計(jì)算機(jī)程序代碼,當(dāng)其被加載到計(jì)算機(jī)系統(tǒng)中時(shí),能夠?qū)崿F(xiàn)上述方法及其各種實(shí)施例的功能。
所附權(quán)利要求中闡述了被認(rèn)為是本發(fā)明的特點(diǎn)的創(chuàng)造性特征。但是,通過(guò)參照附圖閱讀下面對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明可更好地理解發(fā)明本身以及其使用模式、另外的目標(biāo)、特征以及優(yōu)點(diǎn),在附圖中圖1示出了本發(fā)明實(shí)施例在其中實(shí)現(xiàn)的多租戶BPM應(yīng)用部署方式的示意圖;圖2A-2D是幾種典型的多租戶模型的圖示;圖3表示本發(fā)明方法一個(gè)實(shí)施例的流程圖;圖4表示根據(jù)本發(fā)明的以MT方式實(shí)時(shí)運(yùn)行BPM應(yīng)用的一個(gè)實(shí)施例的流程圖;圖5表示根據(jù)本發(fā)明的以MT方式實(shí)時(shí)運(yùn)行BPM應(yīng)用的另一個(gè)實(shí)施例的流程圖;圖6示出了本發(fā)明裝置一個(gè)實(shí)施例的概略框圖。
具體實(shí)施例方式下面參照附圖來(lái)說(shuō)明本發(fā)明的實(shí)施例。在下面的說(shuō)明中,闡述了許多具體細(xì)節(jié)以便更全面地了解本發(fā)明。但是,對(duì)于本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員很明顯,本發(fā)明的實(shí)現(xiàn)可不具有這些具體細(xì)節(jié)。此外,應(yīng)當(dāng)理解的是,本發(fā)明并不限于所介紹的特定實(shí)施例。相反,可以考慮用下面的特征和元素的任意組合來(lái)實(shí)施和實(shí)踐本發(fā)明。而無(wú)論它們是否涉及不同的實(shí)施例。因此,下面的方面、特征、實(shí)施例和優(yōu)點(diǎn)僅作說(shuō)明之用而不應(yīng)被看作是所附權(quán)利要求的要素或限定,除非權(quán)利要求中明確提出。參看圖1,該圖示意性表示本發(fā)明實(shí)施例在其中實(shí)現(xiàn)的多租戶BPM應(yīng)用部署方式。 如圖1左側(cè)所示,在BPM應(yīng)用的典型多租戶實(shí)現(xiàn)中,將多租戶BPM應(yīng)用包分為兩個(gè)部分應(yīng)用J2EE包和業(yè)務(wù)流程包或應(yīng)用BPM包。在部署時(shí),將J2EE包部署到Web&J2EE容器(如圖1右上部分所示)中,將業(yè)務(wù)流程包部署到業(yè)務(wù)流程服務(wù)器(如圖1右下部分所示)中。 Web&J2EE容器的一個(gè)例子是網(wǎng)絡(luò)應(yīng)用服務(wù)器WAS (Web Application Server),業(yè)務(wù)流程服務(wù)器的一個(gè)例子是 WPS (Websphere Process Server)。在Web&J2EE容器中的多租戶BPM應(yīng)用實(shí)例,由所有租戶共享。業(yè)務(wù)流程服務(wù)器(業(yè)務(wù)流程引擎)中的業(yè)務(wù)流程包,包括流程模板、(采用LDAP Idif文件形式的)用戶注冊(cè)表,以及其他的內(nèi)容和/或文件等等。租戶的SLA,定義了為租戶提供的服務(wù)水平。租戶多樣化的SLA,對(duì)業(yè)務(wù)流程包的部署產(chǎn)生不同的要求。為了使BPM應(yīng)用支持多租戶,需要處理BPM應(yīng)用中與SLA有關(guān)、或者影響SLA的構(gòu)件,以滿足特定租戶的特定要求。影響SLA的BPM應(yīng)用的構(gòu)件,通常包括流程模板和用戶注冊(cè)表。所述技術(shù)領(lǐng)域的技術(shù)人員知道,流程模板定義業(yè)務(wù)流程,它描述特定的業(yè)務(wù)邏輯,可用來(lái)在運(yùn)行環(huán)境創(chuàng)建業(yè)務(wù)流程實(shí)例。用戶注冊(cè)表通常采取LDAP (輕量目錄訪問(wèn)協(xié)議)idif文件的形式,用以保存用戶帳戶信息,諸如用戶ID(標(biāo)識(shí)符)和登錄口令等等。一個(gè)租戶的用戶注冊(cè)表中的每個(gè)用戶被指派在執(zhí)行該租戶的業(yè)務(wù)流程過(guò)程中所擔(dān)當(dāng)?shù)慕巧缃?jīng)理角色、處理異常的管理員角色等等。為支持多租戶而對(duì)BPM應(yīng)用的構(gòu)件的處理,有不同的組合方式,即不同的多租戶模型?,F(xiàn)在參看圖2A-2D對(duì)幾種典型的多租戶模型的圖示,示例性地定義一些典型的 BPM應(yīng)用多租戶模型(在上下文清楚的情況下,以下也簡(jiǎn)稱“多租戶模型”或“模型”)的定義。模型A 共享流程模板,分離用戶注冊(cè)表。按照這樣的模型,除了如上所述的那樣, 在J2EE容器中的應(yīng)用實(shí)例由所有租戶共享,在流程服務(wù)器中的流程模板也被所有租戶共享;租戶的用戶注冊(cè)表是分開(kāi)的。圖2A可以表示模型A,其中,租戶1和租戶2共享流程服務(wù)器中的流程模板,而用戶注冊(cè)表則是分開(kāi)的,(例如在LDAP服務(wù)器中)有各自的LDAP子樹(shù)“租戶1的用戶組”和“租戶2的用戶組”。模型B 在相同流程引擎中分離流程模板,分離用戶注冊(cè)表。按照這樣的模型,所有租戶共享一個(gè)流程引擎,每個(gè)租戶單獨(dú)有一份在流程引擎中的流程模版,租戶的用戶注冊(cè)表是分開(kāi)的。這種模型如圖2B所示,其中,租戶1和租戶2在流程服務(wù)器中有單獨(dú)的流程模板“租戶1的流程模板”和“租戶2的流程模板”,并且有各自的LDAP子樹(shù)“租戶1的用戶組”和“租戶2的用戶組”。模型C 在相同流程引擎中分離流程模板,在專有服務(wù)器中分離用戶注冊(cè)表。按照這樣的模型,所有租戶共享一個(gè)流程引擎,每個(gè)租戶單獨(dú)有一份在流程引擎中的流程模版, 租戶的用戶注冊(cè)表是分開(kāi)的。這種模型如圖2C所示,其中,租戶1和租戶2在流程服務(wù)器中有單獨(dú)的流程模板“租戶1的流程模板”和“租戶2的流程模板”,并且各自的LDAP服務(wù)器中的LDAP樹(shù))“租戶1的用戶組”和“租戶2的用戶組”。模型D 在專用流程引擎中分離流程模板,在專有服務(wù)器中分離用戶注冊(cè)表。按照這樣的模型,每個(gè)租戶有自己獨(dú)立的流程引擎,每個(gè)租戶單獨(dú)有一份在流程引擎中的流程模版,租戶的用戶注冊(cè)表是分開(kāi)的。圖2D清楚地表示了模型D的上述特點(diǎn)。所述技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)知道,除了業(yè)務(wù)模板和用戶注冊(cè)表之外,影響SLA 的BPM應(yīng)用的構(gòu)件,還可以包括外部數(shù)據(jù)訪問(wèn)部件(或稱外部服務(wù)組件)。業(yè)務(wù)流程可以用外部數(shù)據(jù)訪問(wèn)部件以各種方式調(diào)用業(yè)務(wù)流程外部的組件來(lái)完成業(yè)務(wù)操作。因此,按照本發(fā)明的實(shí)施例,在上述模型的基礎(chǔ)上,還可構(gòu)建進(jìn)一步的多租戶模型,例如,模型A’ =模型A+共享支持多租戶的外部數(shù)據(jù)訪問(wèn)部件;模型B’ =模型B+共享支持多租戶的外部數(shù)據(jù)訪問(wèn)部件;模型C’=模型C+共享支持多租戶的外部數(shù)據(jù)訪問(wèn)部件; 模型D’ =模型D+每個(gè)租戶有自己的不支持多租戶共享的外部數(shù)據(jù)訪問(wèn)部件。所述技術(shù)領(lǐng)域的技術(shù)人員知道,根據(jù)具體需要,還可以構(gòu)建更多的多租戶模型。BPM多租戶模型的多樣性,反映了 SLA的多樣性。由于SLA的多樣性,要使BPM應(yīng)用支持MT應(yīng)用場(chǎng)景,就要求編程人員經(jīng)常要針對(duì)新租戶對(duì)BPM應(yīng)用程序中的代碼作復(fù)雜的修改,這樣的效率很低。按照本發(fā)明,在構(gòu)建不同的BPM多租戶模型后,還預(yù)先提供相應(yīng)的轉(zhuǎn)換過(guò)程。轉(zhuǎn)換過(guò)程針對(duì)不同的BPM多租戶模型,處置BPM應(yīng)用中的構(gòu)件,例如流程模板,用戶注冊(cè)表、外部數(shù)據(jù)訪問(wèn)部件。這樣,在用戶要求注冊(cè)成為BPM應(yīng)用的一個(gè)租戶時(shí),可以根據(jù)SLA要求,隨時(shí)調(diào)用轉(zhuǎn)換方法來(lái)部署B(yǎng)PM應(yīng)用中的構(gòu)件,使之能以MT應(yīng)用的方式為租戶提供服務(wù)。參看圖3,該圖示例性地表示按照本發(fā)明方法一個(gè)實(shí)施例,在新租戶注冊(cè)時(shí)所作的處理過(guò)程。在步驟301,響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議 SLA。例如,代表租戶的用戶可以通過(guò)一個(gè)UI (例如SPI)輸入SLA或者從一個(gè)SLA列表中選擇所要求的SLA。步驟303,基于所獲得的SLA,選擇多租戶模型。按照本發(fā)明一個(gè)實(shí)施例,可以從一個(gè)多租戶模型列表中選擇多租戶模型,其中,所述多租戶模型列表中預(yù)先定義了與各種SLA對(duì)應(yīng)的多租戶模型。在步驟305,調(diào)用與所選擇的多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的 BPM構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用供該租戶使用。按照本發(fā)明的實(shí)施例,在將BPM應(yīng)用以對(duì)多租戶應(yīng)用的形式提供服務(wù)之前,首先為各種BPM多租戶模型提供轉(zhuǎn)換方法。可以將這種轉(zhuǎn)換方法編程為被調(diào)用的程序或轉(zhuǎn)換過(guò)程。所述轉(zhuǎn)換方法或轉(zhuǎn)換過(guò)程針對(duì)不同的BPM多租戶模型,處置BPM應(yīng)用中的BPM構(gòu)件,使得BPM應(yīng)用能作為多租戶BPM應(yīng)用供多個(gè)租戶使用。按照本發(fā)明的實(shí)施例,步驟307對(duì)BPM構(gòu)件的處置包括,對(duì)于所選擇的多租戶模型要求單獨(dú)的用戶注冊(cè)表的情況,轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分用戶注冊(cè)表。例如,模型A的定義是共享流程模板,分離用戶注冊(cè)表。轉(zhuǎn)換方法針對(duì)模型A對(duì) BPM應(yīng)用中的組件用戶注冊(cè)表和流程模板作如下處理。對(duì)用戶注冊(cè)表進(jìn)行隔離。這可以例如通過(guò)在用戶注冊(cè)表名稱<USer_RegiStry_ Name)中使用租戶的標(biāo)識(shí)(或租戶名稱)<Tenant_ID>作為前綴,來(lái)區(qū)分每個(gè)租戶的用戶注冊(cè)表,例如〈TenantJD〉”-"^serRegistry Name〉。這樣,就使新注冊(cè)的租戶有單獨(dú)的用戶
注冊(cè)表。對(duì)模型A的流程模板,無(wú)需作特別處理。流程模板的隔離將由系統(tǒng)在運(yùn)行時(shí)保證。按照本發(fā)明的實(shí)施例,步驟307對(duì)BPM構(gòu)件的處置包括,在所選擇的多租戶模型要求單獨(dú)的要求單獨(dú)的流程模板的情況下,轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分流程模板。例如,模型B的定義是在相同流程引擎中分離流程模板,分離用戶注冊(cè)表。轉(zhuǎn)換方法針對(duì)模型B對(duì)BPM應(yīng)用中的組件用戶注冊(cè)表和流程模板作如下處理。對(duì)用戶注冊(cè)表進(jìn)行隔離。同樣,這可以例如通過(guò)在用戶注冊(cè)表名稱<USer_ Registry_Name>中使用租戶名稱<Tenant_ID>作為前綴,來(lái)區(qū)分每個(gè)租戶的用戶注冊(cè)表, 例如<Tenant_ID>”-”^Ser Registry Name〉。這樣,就使新注冊(cè)的租戶有單獨(dú)的用戶注冊(cè)表。此外,還對(duì)流程模板進(jìn)行隔離。這可以例如通過(guò)在模板名稱<Pr0CeSS_Template_ Name)中使用租戶名稱<Tenant_ID>作為前綴,來(lái)區(qū)分每個(gè)租戶的流程模板,例如<Tenant_ ID>” -,,〈ProcessJemplattName〉。這樣,就使新注冊(cè)的租戶有單獨(dú)的流程模板。按照本發(fā)明的實(shí)施例,步驟305中的處置BPM構(gòu)件,包括為BPM構(gòu)件選擇對(duì)應(yīng)的服務(wù)器,以部署所述BPM構(gòu)件,轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果包含BPM構(gòu)件的名稱和所選擇的對(duì)應(yīng)的服務(wù)器的名稱。
例如,模型D的定義是在專用流程引擎中分離流程模板,在專用服務(wù)器中分離用戶注冊(cè)表。轉(zhuǎn)換方法針對(duì)模型D對(duì)BPM應(yīng)用中的組件用戶注冊(cè)表和流程模板作如下處理。選擇一個(gè)專用的服務(wù)器,例如LDAP服務(wù)器,將用戶注冊(cè)表部署于該專用的服務(wù)器上。這樣,就使新注冊(cè)的租戶有在專用的服務(wù)器上的單獨(dú)的用戶注冊(cè)表。選擇一個(gè)專用的流程引擎服務(wù)器,將流程模板“克隆”在該專用的流程引擎服務(wù)器上。這樣,就使新注冊(cè)的租戶在專用的流程引擎服務(wù)器上有單獨(dú)的流程模板。再例如,模型A’的定義是,模型A’ =模型A+共享支持多租戶的外部數(shù)據(jù)訪問(wèn)部件;轉(zhuǎn)換方法針對(duì)模型A’對(duì)BPM應(yīng)用中的組件的處理包括,對(duì)用戶注冊(cè)表和流程模板作與上述針對(duì)模型A的類似的處理;此外,對(duì)訪問(wèn)外部數(shù)據(jù)的部件,轉(zhuǎn)換方法無(wú)需加以處理,訪問(wèn)外部數(shù)據(jù)的部件將由部件自己管理。以上對(duì)針對(duì)不同模型的轉(zhuǎn)換方法或轉(zhuǎn)換過(guò)程的說(shuō)明,僅僅是示意性的。通過(guò)以上示例性介紹,所屬技術(shù)領(lǐng)域的技術(shù)人員,可以根據(jù)具體的BPM多租戶模型的定義,提供針對(duì) BPM多租戶模型的對(duì)應(yīng)轉(zhuǎn)換方法。如所述技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白的那樣,上文中所稱的服務(wù)器,可以指物理的服務(wù)器,也可以指虛擬的服務(wù)器,例如,在具體實(shí)現(xiàn)中,業(yè)務(wù)流程服務(wù)器和LDAP服務(wù)器可以在不同的服務(wù)器實(shí)體上實(shí)現(xiàn),也可以在一個(gè)服務(wù)器實(shí)體上實(shí)現(xiàn)。在步驟307,在該租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。按照本發(fā)明的實(shí)施例,上述的處理結(jié)果,例如新租戶的用戶注冊(cè)表〈Tenant ID>,,_,,<User Registry Name〉,新租戶的流程模板 <Tenant_ID>,,-,,〈Process—Template— Name〉,為新租戶的用戶注冊(cè)表選擇的LDAP服務(wù)器,為新租戶的流程模板選擇的流程引擎服務(wù)器,都將作為新租戶的元數(shù)據(jù)被存儲(chǔ)起來(lái)。圖3所示的過(guò)程,可以針對(duì)每一個(gè)新租戶注冊(cè)重復(fù)進(jìn)行。由于預(yù)先定義了各種多租戶模型,并針對(duì)各種模型預(yù)先設(shè)計(jì)了可在租戶注冊(cè)時(shí)調(diào)用的轉(zhuǎn)換過(guò)程,因此可以降低為每個(gè)新租戶修改BPM應(yīng)用的程序的工作量。注冊(cè)租戶的用戶在運(yùn)行BPM應(yīng)用時(shí),系統(tǒng)將(例如通過(guò)MT擴(kuò)展的BPMAPI和運(yùn)行組件)根據(jù)當(dāng)前租戶和及其在注冊(cè)時(shí)選擇的多租戶模型來(lái)路由和隔離租戶請(qǐng)求。下面參照附圖4描述根據(jù)本發(fā)明一個(gè)以MT方式實(shí)時(shí)運(yùn)行BPM應(yīng)用實(shí)施例。該圖示意性地表示對(duì)注冊(cè)租戶的用戶請(qǐng)求創(chuàng)建流程實(shí)例的處理的流程。如圖所示,過(guò)程開(kāi)始時(shí)400,用戶發(fā)出要求創(chuàng)建流程實(shí)例請(qǐng)求。響應(yīng)于該請(qǐng)求,在步驟401,獲得用戶所屬的注冊(cè)租戶的標(biāo)識(shí)。在具體實(shí)現(xiàn)中,可以選擇各種方式來(lái)獲得用戶所屬的注冊(cè)租戶的標(biāo)識(shí)可以從用戶的請(qǐng)求中獲得,例如通過(guò)用戶在登錄時(shí)的需要輸入的信息中獲得。在步驟403,從租戶的元數(shù)據(jù)中獲得該租戶部署在預(yù)定服務(wù)器上的流程模板。如圖3所示的實(shí)施例的說(shuō)明中所述的那樣,每個(gè)注冊(cè)租戶的元數(shù)據(jù)中,已經(jīng)保存了流程模板名稱和對(duì)應(yīng)的服務(wù)器名稱。因此,通過(guò)租戶的標(biāo)識(shí),就可以在該租戶的元數(shù)據(jù)中獲得該租戶部署在預(yù)定服務(wù)器上的某個(gè)流程模板。在步驟405,根據(jù)所獲得的流程模板,創(chuàng)建流程實(shí)例。在步驟407,為所創(chuàng)建的流程實(shí)例設(shè)置租戶上下文。例如,為該流程實(shí)例的線程設(shè)置租戶標(biāo)識(shí)。上述實(shí)施例旨在說(shuō)明在如圖3所示的過(guò)程中的步驟307中保存的對(duì)BPM構(gòu)件的處置結(jié)果的使用。為注冊(cè)租戶創(chuàng)建流程實(shí)例的過(guò)程,是所述技術(shù)領(lǐng)域的技術(shù)人員熟知的內(nèi)容, 在此不再詳述。圖5示出了根據(jù)本發(fā)明以MT方式運(yùn)行BPM應(yīng)用的另一個(gè)實(shí)施例的流程圖。該實(shí)施例示意性地表示對(duì)注冊(cè)租戶的用戶的查詢請(qǐng)求的處理。如圖所示,響應(yīng)于來(lái)自用戶的查詢請(qǐng)求,在步驟501,從用戶的請(qǐng)求中獲得用戶所屬的注冊(cè)租戶的標(biāo)識(shí)。 在步驟503,獲得該注冊(cè)租戶的元數(shù)據(jù)。在步驟505,根據(jù)該注冊(cè)租戶的元數(shù)據(jù),將用戶的請(qǐng)求路由到預(yù)定的服務(wù)器。在步驟507,返回查詢結(jié)果。按照本發(fā)明的實(shí)施例,在將預(yù)定的服務(wù)器返回的查詢結(jié)果發(fā)送到發(fā)出查詢請(qǐng)求的用戶之前,要過(guò)濾掉來(lái)自服務(wù)器的查詢結(jié)果中與注冊(cè)租戶無(wú)關(guān)的內(nèi)容。在多租戶環(huán)境中,與注冊(cè)租戶無(wú)關(guān)的內(nèi)容,例如是屬于其他租戶的內(nèi)容上述實(shí)現(xiàn)簡(jiǎn)單功能的實(shí)施例,旨在說(shuō)明按照本發(fā)明實(shí)施例的方法注冊(cè)后的BPM應(yīng)用作為多租戶應(yīng)用被使用的情形,其中對(duì)來(lái)自服務(wù)器的查詢結(jié)果的過(guò)濾,體現(xiàn)了多租戶應(yīng)用的特點(diǎn)的一個(gè)方面。以上描述了根據(jù)本發(fā)明的實(shí)施例的用于使BPM應(yīng)用能為多租戶使用的方法,應(yīng)指出的是,以上描述僅為示例,而不是對(duì)本發(fā)明的限制。在本發(fā)明的其他實(shí)施例中,該方法可具有更多、更少或不同的步驟,且各步驟之間的順序可以與所描述的不同。例如,在本發(fā)明的一些實(shí)施例中,可以沒(méi)有上述一個(gè)或多個(gè)可選步驟。每個(gè)步驟的具體執(zhí)行方式可以與所描述的不同。所有這些變化都處于本發(fā)明的精神和范圍之內(nèi)。按照相同的發(fā)明構(gòu)思,本發(fā)明也提出一種用于使BPM應(yīng)用能為多租戶使用的裝置。下面參照附圖6描述根據(jù)本發(fā)明的實(shí)施例的用于使BPM應(yīng)用能為多租戶使用的裝置。如圖所示,該裝置600包括獲取模塊601、選擇模塊603、轉(zhuǎn)換模塊605和存儲(chǔ)模塊 607。獲取模塊601被配置得用于響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議SLA。選擇模塊603被配置得用于基于SLA,選擇多租戶模型。轉(zhuǎn)換模塊605被配置得用于調(diào)用與多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的BPM構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用被使用。存儲(chǔ)模塊607被配置用于在租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。例如,按照本發(fā)明一個(gè)實(shí)施例,選擇模塊603可以從一個(gè)多租戶模型列表中選擇多租戶模型,其中,所述多租戶模型列表中預(yù)先定義了與各種SLA對(duì)應(yīng)的多租戶模型。按照本發(fā)明一個(gè)實(shí)施例,轉(zhuǎn)換模塊605處置的BPM構(gòu)件至少包含流程模板和用戶注冊(cè)表;還可以進(jìn)一步包含外部數(shù)據(jù)訪問(wèn)組件。按照本發(fā)明的實(shí)施例,轉(zhuǎn)換模塊605調(diào)用的轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分單獨(dú)的用戶注冊(cè)表,或者/并且用租戶的標(biāo)識(shí)區(qū)分單獨(dú)的流程模板。按照本發(fā)明一個(gè)實(shí)施例,轉(zhuǎn)換模塊605調(diào)用的轉(zhuǎn)換過(guò)程為BPM構(gòu)件選擇對(duì)應(yīng)的服務(wù)器,以部署所述BPM構(gòu)件。例如,轉(zhuǎn)換模塊605調(diào)用的轉(zhuǎn)換過(guò)程為流程模板選擇對(duì)應(yīng)的服務(wù)器,例如業(yè)務(wù)流程服務(wù)器,以部署所述流程模板,或者/并且為用戶注冊(cè)表選擇對(duì)應(yīng)的服務(wù)器,例如LDAP服務(wù)器,以部署所述用戶注冊(cè)表,相應(yīng)地,存儲(chǔ)模塊607進(jìn)一步被配置得在租戶的元數(shù)據(jù)中保存所述流程模板的名稱和對(duì)應(yīng)的服務(wù)器的名稱,或者/并且保存用戶注冊(cè)表和對(duì)應(yīng)服務(wù)器的名稱。該裝置600及其各種實(shí)施例,可用于實(shí)現(xiàn)上文描述的根據(jù)本發(fā)明的實(shí)施例的用于使BPM應(yīng)用能為多租戶使用的方法。為簡(jiǎn)明起見(jiàn),在以上對(duì)裝置600及其各種實(shí)施例的描述中,省略了與上文對(duì)相應(yīng)方法的描述中重復(fù)的部分內(nèi)容。因此,可參見(jiàn)以上關(guān)于相應(yīng)方法的描述來(lái)了解該裝置的細(xì)節(jié)。因此,以上對(duì)裝置600及其各種實(shí)施例的描述和圖示僅僅為示例性的,而不是對(duì)本發(fā)明的限制。在本發(fā)明的其他實(shí)施例中,該裝置可具有更多、更少或不同的模塊,且各模塊之間的連接或包含關(guān)系可以與所描述和圖示的不同。例如,如所述技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白的那樣,本文中所稱的服務(wù)器,可以是物理的,也可以是虛擬的。例如,在具體實(shí)現(xiàn)中,業(yè)務(wù)流程引擎服務(wù)器和LDAP服務(wù)器可以在不同的服務(wù)器實(shí)體上實(shí)現(xiàn),也可以在一個(gè)服務(wù)器實(shí)體上實(shí)現(xiàn)。本發(fā)明可以硬件、軟件、或硬件與軟件的結(jié)合的方式實(shí)現(xiàn)。本發(fā)明可以集中的方式在一個(gè)計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn),或以分布方式實(shí)現(xiàn),在這種分布方式中,不同的部件分布在若干互連的計(jì)算機(jī)系統(tǒng)中。適于執(zhí)行本文中描述的方法的任何計(jì)算機(jī)系統(tǒng)或其它裝置都是合適的。一種典型的硬件和軟件的組合可以是帶有計(jì)算機(jī)程序的通用計(jì)算機(jī)系統(tǒng),當(dāng)該計(jì)算機(jī)程序被加載和執(zhí)行時(shí),控制該計(jì)算機(jī)系統(tǒng)而使其執(zhí)行本發(fā)明的方法,并構(gòu)成本發(fā)明的裝置。本發(fā)明也可體現(xiàn)在計(jì)算機(jī)程序產(chǎn)品中,該程序產(chǎn)品包含使能實(shí)現(xiàn)本文中描述的方法的所有特征,并且當(dāng)其被加載到計(jì)算機(jī)系統(tǒng)中時(shí),能夠執(zhí)行所述方法。盡管已參照優(yōu)選實(shí)施例具體示出和說(shuō)明了本發(fā)明,但是本領(lǐng)域內(nèi)的那些技術(shù)人員應(yīng)理解,可在形式和細(xì)節(jié)上對(duì)其進(jìn)行各種改變而不會(huì)背離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于使業(yè)務(wù)流程管理BPM應(yīng)用能為多租戶使用的方法,包含響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議SLA ; 基于所獲得的SLA,選擇多租戶模型;調(diào)用與所選擇的多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的BPM構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用供該租戶使用;以及在該租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。
2.權(quán)利要求1的方法,其中,從一個(gè)多租戶模型列表中選擇多租戶模型,其中,所述多租戶模型列表中預(yù)先定義了與各種SLA對(duì)應(yīng)的多租戶模型。
3.權(quán)利要求1或2的方法,其中,所述BPM構(gòu)件至少包含流程模板和用戶注冊(cè)表。
4.權(quán)利要求3的方法,其中,所述BPM構(gòu)件進(jìn)一步包含外部數(shù)據(jù)訪問(wèn)組件。
5.權(quán)利要求3的方法,其中,所選擇的多租戶模型要求單獨(dú)的用戶注冊(cè)表,所述轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分用戶注冊(cè)表。
6.權(quán)利要求3的方法,其中,所選擇的多租戶模型要求單獨(dú)的流程模板,所述轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分流程模板。
7.權(quán)利要求3的方法,所述處置BPM應(yīng)用中的BPM構(gòu)件包括為BPM構(gòu)件選擇對(duì)應(yīng)的服務(wù)器,以部署所述BPM構(gòu)件,所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果包含所述BPM構(gòu)件的名稱和所選擇的對(duì)應(yīng)的服務(wù)器的名稱。
8.權(quán)利要求4的方法,所述處置BPM應(yīng)用中的BPM構(gòu)件包括為BPM構(gòu)件選擇對(duì)應(yīng)的服務(wù)器,以部署所述BPM構(gòu)件,所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果包含所述BPM構(gòu)件的名稱和所選擇的對(duì)應(yīng)的服務(wù)器的名稱。
9.權(quán)利要求7的方法,進(jìn)一步包含響應(yīng)于來(lái)自用戶的創(chuàng)建流程實(shí)例的請(qǐng)求,獲得用戶所屬的注冊(cè)租戶的標(biāo)識(shí); 從所述租戶的元數(shù)據(jù)中獲得該租戶部署在預(yù)定服務(wù)器上的對(duì)應(yīng)流程模板; 根據(jù)所獲得的租戶流程模板,創(chuàng)建流程實(shí)例; 為所創(chuàng)建的流程實(shí)例設(shè)置租戶上下文。
10.權(quán)利要求1的方法,進(jìn)一步包含響應(yīng)于來(lái)自用戶的查詢請(qǐng)求,獲得用戶所屬的注冊(cè)租戶的標(biāo)識(shí); 獲得該注冊(cè)租戶的元數(shù)據(jù);根據(jù)該注冊(cè)租戶的元數(shù)據(jù),將用戶的查詢請(qǐng)求路由到預(yù)定的服務(wù)器; 過(guò)濾掉所述服務(wù)器的查詢結(jié)果中與所述注冊(cè)租戶無(wú)關(guān)的內(nèi)容; 將經(jīng)過(guò)過(guò)濾的查詢結(jié)果返回到所述用戶。
11.一種用于使業(yè)務(wù)流程管理BPM應(yīng)用能為多租戶使用的裝置,包含獲取模塊,被配置用于響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議SLA ;選擇模塊,被配置用于基于SLA,選擇多租戶模型;轉(zhuǎn)換模塊,被配置用于調(diào)用與多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的BPM 構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用被使用;以及存儲(chǔ)模塊,被配置用于在租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。
12.權(quán)利要求11的裝置,其中,所述選擇模塊進(jìn)一步被配置得從一個(gè)多租戶模型列表中選擇多租戶模型,其中,所述多租戶模型列表中預(yù)先定義了與各種SLA對(duì)應(yīng)的多租戶模型。
13.權(quán)利要求11或12的裝置,其中,所述BPM構(gòu)件至少包含流程模板和用戶注冊(cè)表。
14.權(quán)利要求13的裝置,其中,所述BPM構(gòu)件進(jìn)一步包含外部數(shù)據(jù)訪問(wèn)組件。
15.權(quán)利要求13的裝置,其中,所選擇的多租戶模型要求單獨(dú)的用戶注冊(cè)表,所述轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分用戶注冊(cè)表。
16.權(quán)利要求13的裝置,其中,所選擇的多租戶模型要求單獨(dú)的要求單獨(dú)的流程模板, 所述轉(zhuǎn)換過(guò)程用租戶的標(biāo)識(shí)區(qū)分流程模板。
17.權(quán)利要求13的裝置,其中,所述轉(zhuǎn)換模塊調(diào)用的轉(zhuǎn)換過(guò)程為流程模板選擇對(duì)應(yīng)的服務(wù)器,以部署所述流程模板,所述存儲(chǔ)模塊進(jìn)一步被配置用于在租戶的元數(shù)據(jù)中保存所述流程模板的名稱和對(duì)應(yīng)的服務(wù)器的名稱。
18.權(quán)利要求13的裝置,其中,所述轉(zhuǎn)換模塊調(diào)用的轉(zhuǎn)換過(guò)程為用戶注冊(cè)表選擇對(duì)應(yīng)的服務(wù)器,以部署所述用戶注冊(cè)表,存儲(chǔ)模塊進(jìn)一步被配置用于在租戶的元數(shù)據(jù)中保存所述用戶注冊(cè)表的名稱和所選擇的對(duì)應(yīng)的服務(wù)器的名稱。
全文摘要
本發(fā)明涉及多租戶技術(shù)。公開(kāi)了一種用于使BPM應(yīng)用能為多租戶使用的方法、裝置和計(jì)算機(jī)程序產(chǎn)品,該方法包含響應(yīng)于租戶對(duì)所述BPM應(yīng)用的注冊(cè)請(qǐng)求,獲得租戶要求的服務(wù)水平協(xié)議SLA;基于所獲得的SLA,選擇多租戶模型;調(diào)用與所選擇的多租戶模型對(duì)應(yīng)的預(yù)定轉(zhuǎn)換過(guò)程,處置BPM應(yīng)用中的BPM構(gòu)件,使得所述BPM應(yīng)用能作為多租戶BPM應(yīng)用供該租戶使用;在該租戶的元數(shù)據(jù)中保存所述轉(zhuǎn)換過(guò)程對(duì)BPM構(gòu)件的處置結(jié)果。本發(fā)明便于靈活地將BPM應(yīng)用轉(zhuǎn)換為多租戶BPM應(yīng)用。
文檔編號(hào)G06Q10/00GK102208081SQ20101014207
公開(kāi)日2011年10月5日 申請(qǐng)日期2010年3月31日 優(yōu)先權(quán)日2010年3月31日
發(fā)明者孫偉, 歐鐵軍, 殷切, 郭常杰, 高波 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司