一種定制服務(wù)組件的調(diào)用方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及企業(yè)應(yīng)用軟件開發(fā)領(lǐng)域,尤其涉及一種定制服務(wù)組件的調(diào)用方法和裝置。
【背景技術(shù)】
[0002]目前,應(yīng)用軟件系統(tǒng)需要面對各種客戶,比如ERP類軟件系統(tǒng)常常遇到這樣的問題,各個企業(yè)都有自己的文化和特征,現(xiàn)有的ERP軟件系統(tǒng)和該企業(yè)的需求匹配度不高,不能完全滿足企業(yè)的個性化需求,就會導(dǎo)致客戶丟失。如果對軟件系統(tǒng)進行定制開發(fā),則可能面臨極大的成本投入和風(fēng)險,開發(fā)周期也會延長。
[0003]業(yè)界現(xiàn)有的定制開發(fā)方式,主流有Saas架構(gòu)的兩種思路:一是為每個企業(yè)用戶獨立部署一套應(yīng)用,使用代碼分流進行定制開發(fā);二是使用文件配置方式和工作流,提前預(yù)留定制配置項,為每個新企業(yè)定制配置。
[0004]但是上述方法也有很多不理想的地方,對于Saas思路一來說,如果定制的企業(yè)用戶過多,代碼分流也多,軟件系統(tǒng)的維護和升級面臨不斷的膨脹成本和不可預(yù)估的風(fēng)險;對于Saas思路二來說,預(yù)設(shè)配置項會使軟件系統(tǒng)的復(fù)雜度增加,嚴重增加了產(chǎn)品的開發(fā)成本和開發(fā)周期,而去配置項本身也會不斷更新,可能會造成軟件系統(tǒng)不斷重構(gòu)代碼。
【發(fā)明內(nèi)容】
[0005]為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明實施例主要提供一種定制服務(wù)組件的調(diào)用方法和裝置,在軟件系統(tǒng)中增加、刪除定制服務(wù)組件時,靈活簡單,節(jié)省開發(fā)成本,降低風(fēng)險。
[0006]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0007]本發(fā)明提供一種定制服務(wù)組件的調(diào)用方法,該方法包括:
[0008]在服務(wù)切入點設(shè)置定制攔截器,軟件系統(tǒng)在調(diào)用服務(wù)時,攔截調(diào)用;檢索出與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器;
[0009]所述定制攔截器確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件。
[0010]上述方案中,所述在服務(wù)切入點設(shè)置定制攔截器為:對軟件系統(tǒng)中需要定制的服務(wù)切入點進行解析,根據(jù)解析結(jié)果對相應(yīng)的邏輯部件和定制規(guī)則進行個性化定制設(shè)置,輸出具有約定格式的定制攔截器。
[0011]上述方案中,所述在調(diào)用服務(wù)時,攔截調(diào)用為:攔截處理中心對所有的服務(wù)調(diào)用進行攔截。
[0012]上述方案中,所述定制攔截器確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件為:所述定制攔截器判斷調(diào)用的服務(wù)是否與定制規(guī)則匹配,當(dāng)匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的定制服務(wù)組件,當(dāng)不匹配時,由下一個與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器判斷調(diào)用的服務(wù)是否與定制規(guī)則匹配,當(dāng)匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的定制服務(wù)組件;
[0013]所述定制規(guī)則為:用戶身份+服務(wù)名。
[0014]本發(fā)明還提供一種服務(wù)組件的調(diào)用裝置,該裝置包括:定制設(shè)置中心、攔截處理中心、定制攔截器;其中,
[0015]所述定制設(shè)置中心,用于在服務(wù)切入點設(shè)置定制攔截器;
[0016]所述攔截處理中心,用于在軟件系統(tǒng)在調(diào)用服務(wù)時,攔截調(diào)用,檢索出與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器,并通知所述定制攔截器;
[0017]定制攔截器,用于確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件。
[0018]上述方案中,所述定制設(shè)置中心,具體用于對軟件系統(tǒng)中需要定制的服務(wù)切入點進行解析,根據(jù)解析結(jié)果對相應(yīng)的邏輯部件和定制規(guī)則進行個性化定制設(shè)置,輸出具有約定格式的定制攔截器。
[0019]上述方案中,所述定制攔截器,具體用于當(dāng)確定調(diào)用的服務(wù)與定制規(guī)則匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的定制服務(wù)組件。
[0020]上述方案中,所述定制攔截器,具體還用于當(dāng)確定調(diào)用的服務(wù)與定制規(guī)則不匹配時,通知攔截處理中心;
[0021]相應(yīng)的,所述攔截處理中心,還用于在第一個與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器確定調(diào)用的服務(wù)與定制規(guī)則不匹配時,檢索下一個與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器。
[0022]本發(fā)明提供了一種定制服務(wù)組件的調(diào)用方法和裝置,通過在服務(wù)切入點設(shè)置定制攔截器,在軟件系統(tǒng)調(diào)用服務(wù)時,攔截當(dāng)前服務(wù)調(diào)用,檢索出與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器,定制攔截器確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件,實現(xiàn)軟件系統(tǒng)的靈活定制,滿足“開閉原則”和“定制可拔式管理”,達到了節(jié)省開發(fā)成本、降低風(fēng)險的效果,并提高了軟件系統(tǒng)的可持續(xù)維護。
【附圖說明】
[0023]圖1為本發(fā)明實施例提供的定制服務(wù)組件的調(diào)用方法流程示意圖;
[0024]圖2為本發(fā)明實施例提供的定制服務(wù)組件的調(diào)用裝置的結(jié)構(gòu)示意圖;
[0025]圖3為本發(fā)明實施例提供的定制服務(wù)組件的調(diào)用示意圖;
[0026]圖4為本發(fā)明實施例提供的定制攔截處理流程圖。
【具體實施方式】
[0027]本發(fā)明實施例中,通過在服務(wù)切入點設(shè)置定制攔截器,軟件系統(tǒng)在調(diào)用服務(wù)時,攔截調(diào)用;檢索出與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器,所述定制攔截器確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件,從而實現(xiàn)軟件快速、靈活的定制開發(fā)。
[0028]下面通過附圖及具體實施例對本發(fā)明做進一步的詳細說明。
[0029]本發(fā)明實施例提供一種定制服務(wù)組件的調(diào)用方法,該方法的流程示意圖如圖1所示,包括以下步驟:
[0030]步驟101:在服務(wù)切入點設(shè)置定制攔截器;
[0031]具體的,對軟件系統(tǒng)中需要定制的服務(wù)切入點進行解析,即解析具體需要定制的邏輯部件以及與這些邏輯部件相對應(yīng)的定制規(guī)則,根據(jù)解析結(jié)果對相應(yīng)的邏輯部件和定制規(guī)則進行個性化定制設(shè)置,輸出具有約定格式的定制攔截器;例如,在查詢服務(wù)的切入點設(shè)置定制攔截器時,需要對查詢服務(wù)中輸入的關(guān)鍵字這一部分的邏輯部件進行定制,而且該邏輯部件需要有對應(yīng)的匹配規(guī)則,規(guī)則至少為兩個特征,如,用戶名+服務(wù)名,再根據(jù)上述需要對查詢服務(wù)的邏輯部件和對應(yīng)的定制規(guī)則進行具體設(shè)置,就可以輸出有約定格式的查詢服務(wù)的定制攔截器;
[0032]其中,所述約定格式,就是統(tǒng)一繼承一個攔截處理中心提供的接口類;具有所述約定格式的定制攔截器才可以被攔截處理中心識別。
[0033]步驟102:軟件系統(tǒng)在調(diào)用服務(wù)時,攔截調(diào)用;
[0034]具體的,當(dāng)軟件系統(tǒng)在任何一個服務(wù)切入點調(diào)用任意服務(wù)時,攔截處理中心對所有的服務(wù)調(diào)用進行攔截;其中,所述攔截具體為:軟件系統(tǒng)中所有的服務(wù)都注冊在容器中,當(dāng)調(diào)用容器中的任意服務(wù)時,所有的服務(wù)調(diào)用都要經(jīng)過攔截處理中心的動態(tài)代理入口,通過源代碼在所述動態(tài)代理入口處對服務(wù)調(diào)用進行攔截。
[0035]步驟103:檢索出與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器,所述定制攔截器確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件;
[0036]具體的,攔截處理中心將服務(wù)調(diào)用攔截后,遍歷所有具有約定格式的定制攔截器,判斷是否存在與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器,當(dāng)不存在時,直接執(zhí)行當(dāng)前調(diào)用服務(wù)的標(biāo)準版服務(wù)組件,當(dāng)存在時,所述定制攔截器判斷調(diào)用的服務(wù)是否與定制規(guī)則匹配,當(dāng)匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的定制服務(wù)組件,當(dāng)不匹配時,由下一個與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器判斷調(diào)用的服務(wù)是否與定制規(guī)則匹配,當(dāng)匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的定制服務(wù)組件;在所有與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器均確認調(diào)用的服務(wù)與定制規(guī)則不匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的標(biāo)準版服務(wù)組件;
[0037]其中,所述標(biāo)準版服務(wù)組件為實現(xiàn)服務(wù)基本功能的邏輯部件;所述定制服務(wù)組件為實現(xiàn)服務(wù)個性定制開發(fā)后的功能的邏輯部件;
[0038]所述定制規(guī)則可以根據(jù)設(shè)計需求或產(chǎn)品特點來設(shè)置,例如,可以是用戶身份+服務(wù)名,在實際應(yīng)用中,不同的企業(yè)可能對相同的服務(wù)有不同的要求,因此,設(shè)置定制規(guī)則可以避免企業(yè)之間對相同服務(wù)都有定制時,在使用過程中發(fā)生混淆。
[0039]為了實現(xiàn)上述方法,本發(fā)明實施例還提供一種定制服務(wù)組件的調(diào)用裝置,如圖2所示,該裝置包括:定制設(shè)置中心20、攔截處理中心21、一個以上定制攔截器22 ;其中,
[0040]所述定制設(shè)置中心20,用于在服務(wù)切入點設(shè)置定制攔截器22 ;
[0041]所述攔截處理中心21,用于在軟件系統(tǒng)在調(diào)用服務(wù)時,攔截調(diào)用,檢索出與當(dāng)前調(diào)用服務(wù)對應(yīng)的定制攔截器22,并通知所述定制攔截器22 ;
[0042]定制攔截器22,用于確定與調(diào)用的服務(wù)匹配的定制服務(wù)組件,執(zhí)行所述定制服務(wù)組件;
[0043]所述定制設(shè)置中心20,具體用于對軟件系統(tǒng)中需要定制的服務(wù)切入點進行解析,根據(jù)解析結(jié)果對相應(yīng)的邏輯部件和定制規(guī)則進行個性化定制設(shè)置,輸出具有約定格式的定制攔截器22 ;
[0044]所述約定格式就是統(tǒng)一繼承一個攔截處理中心提供的接口類,具有所述約定格式的定制攔截器22才可以被攔截處理中心21識別;
[0045]所述定制攔截器22,具體用于當(dāng)確定調(diào)用的服務(wù)與定制規(guī)則匹配時,執(zhí)行所述當(dāng)前調(diào)用服務(wù)的定制服