本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是指一種多服務(wù)應(yīng)用的管理與發(fā)布方法及裝置。
背景技術(shù):
無論是以往的三層架構(gòu)、SOA架構(gòu)(Service Oriented Architecture,面向服務(wù)的體系結(jié)構(gòu)),還是現(xiàn)在流行的微服務(wù)架構(gòu)的應(yīng)用一般都涉及到多個分別部署的模塊或者服務(wù)。當遷移傳統(tǒng)的應(yīng)用或者流行的微服務(wù)架構(gòu)的應(yīng)用為SaaS(Software-as-a-Service:軟件即服務(wù))應(yīng)用并部署到PaaS(Platform-as-a-Service:平臺即服務(wù))平臺上時,不可避免地會遇到多服務(wù)應(yīng)用的多服務(wù)聯(lián)合發(fā)布的問題。
比如三層架構(gòu)是將整個業(yè)務(wù)應(yīng)用劃分為:界面層(User Interface layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問層(Data access layer)。將三層架構(gòu)遷移到PaaS平臺的多服務(wù)應(yīng)用時一般可以包含三個服務(wù):界面層服務(wù)、業(yè)務(wù)邏輯層服務(wù)以及數(shù)據(jù)訪問層服務(wù)。
SOA面向服務(wù)的體系結(jié)構(gòu),是一個組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應(yīng)該獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進行交互。
面向服務(wù)的體系結(jié)構(gòu)中的角色如圖1所示。面向服務(wù)的體系結(jié)構(gòu)中的每個實體都扮演著服務(wù)提供者、請求者和注冊中心這三種角色中的某一種(或多種)當遷移SOA架構(gòu)應(yīng)用到PaaS平臺的多服務(wù)應(yīng)用時,每個服務(wù)實體都可以構(gòu)成多服務(wù)應(yīng)用的一個服務(wù)。
微服務(wù)架構(gòu)應(yīng)用,是把一個單獨的應(yīng)用程序開發(fā)為一套小服務(wù),每個小服務(wù)運行在自己的進程中,并使用輕量級機制通信,通常是HTTP API。這些服務(wù)圍繞業(yè)務(wù)能力來構(gòu)建,并通過完全自動化部署機制來獨立部署。微服務(wù)架構(gòu)應(yīng)用天生適合PaaS平臺部署,每個小服務(wù)就構(gòu)成多服務(wù)應(yīng)用的一個服務(wù)。
Docker是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機器上,也可以實現(xiàn)虛擬化。Kubernetes是Google開源的Docker容器集群管理系統(tǒng),它構(gòu)建在Docker技術(shù)之上,為容器化的應(yīng)用提供資源調(diào)度、部署運行、服務(wù)發(fā)現(xiàn)、擴容縮容等整一套功能,本質(zhì)上可看作是基于容器技術(shù)的mini-PaaS平臺。
然而,原生的Docker和Kubernetes的技術(shù)框架里雖然提出了服務(wù)的概念,但是并沒有提出應(yīng)用的概念,并且對于構(gòu)成某個多服務(wù)應(yīng)用的多服務(wù)之間的依賴管理和聯(lián)合發(fā)布更是缺乏好的實現(xiàn)。因此,當PaaS平臺基于Docker和Kubernetes的技術(shù)框架開發(fā)時,則需要解決多服務(wù)應(yīng)用的多服務(wù)之間的依賴管理和聯(lián)合發(fā)布的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提出一種多服務(wù)應(yīng)用的管理與發(fā)布方法及裝置,很好地解決了多服務(wù)應(yīng)用的多服務(wù)之間的依賴管理及聯(lián)合發(fā)布問題。
基于上述目的本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法,包括:
接收多服務(wù)應(yīng)用創(chuàng)建請求;
根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù);在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中,根據(jù)所述服務(wù)的依賴屬性,設(shè)定所述服務(wù)之間的樹形依賴關(guān)系;
在發(fā)布多服務(wù)應(yīng)用時,將所述樹形依賴關(guān)系轉(zhuǎn)換為線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的發(fā)布。
在一些可選實施方式中,所述根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的步驟,具體包括:
創(chuàng)建無依賴的服務(wù);
創(chuàng)建有依賴的服務(wù);并且,在所述有依賴的服務(wù)的服務(wù)定義過程中,在所述有依賴的服務(wù)的依賴服務(wù)屬性里選擇要依賴的服務(wù);所述依賴服務(wù)屬性包括已經(jīng)開通的公共服務(wù)和所述多服務(wù)應(yīng)用下已經(jīng)創(chuàng)建的服務(wù);
組成所述多服務(wù)應(yīng)用的服務(wù)均已創(chuàng)建完成后,根據(jù)服務(wù)之間的依賴關(guān)系生成所述多服務(wù)應(yīng)用的樹形拓撲圖。
在一些可選實施方式中,所述創(chuàng)建無依賴的服務(wù)的步驟包括:
對于本身無依賴的服務(wù),創(chuàng)建為無依賴的服務(wù);
對于有依賴但所依賴的服務(wù)當前不存在的服務(wù),先創(chuàng)建為無依賴的服務(wù),待其所依賴的服務(wù)被創(chuàng)建后,再更改所述服務(wù)的依賴服務(wù)屬性,使其成為有依賴的服務(wù)。
在一些可選實施方式中,將所述樹形依賴關(guān)系轉(zhuǎn)換為線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的發(fā)布的步驟,具體包括:
遍歷所述樹形拓撲圖,標記每個服務(wù)節(jié)點的層級;
按所述服務(wù)節(jié)點的層級,完成多服務(wù)應(yīng)用的發(fā)布。
在一些可選實施方式中,所述按所述服務(wù)節(jié)點的層級,完成多服務(wù)應(yīng)用的發(fā)布的步驟,具體包括:
找到所有服務(wù)節(jié)點的最高層級,設(shè)為M;
如果M=0,則對應(yīng)的服務(wù)節(jié)點表示為根服務(wù)節(jié)點,發(fā)布完成所述根服務(wù)結(jié)點后返回;否則循環(huán)執(zhí)行下面步驟:
依次發(fā)布層級為M的服務(wù)節(jié)點;
完成層級為M的服務(wù)節(jié)點的發(fā)布后,令M=M-1。
本發(fā)明還提供了一種多服務(wù)應(yīng)用的管理與發(fā)布裝置,包括:
接收模塊,用于接收多服務(wù)應(yīng)用創(chuàng)建請求;
創(chuàng)建模塊,用于根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,依次創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù);在依次創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中,根據(jù)所述服務(wù)的依賴屬性,設(shè)定所述服務(wù)之間的樹形依賴關(guān)系;
發(fā)布模塊,用于在發(fā)布多服務(wù)應(yīng)用時,將所述樹形依賴關(guān)系轉(zhuǎn)換為線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的發(fā)布。
在一些可選實施方式中,所述創(chuàng)建模塊,具體用于:
創(chuàng)建無依賴的服務(wù);
創(chuàng)建有依賴的服務(wù);并且,在所述有依賴的服務(wù)的服務(wù)定義過程中,在所述有依賴的服務(wù)的依賴服務(wù)屬性里選擇要依賴的服務(wù);所述依賴服務(wù)屬性包括已經(jīng)開通的公共服務(wù)和所述多服務(wù)應(yīng)用下已經(jīng)創(chuàng)建的服務(wù);
組成所述多服務(wù)應(yīng)用的服務(wù)均已創(chuàng)建完成后,根據(jù)服務(wù)之間的依賴關(guān)系生成所述多服務(wù)應(yīng)用的樹形拓撲圖。
在一些可選實施方式中,所述創(chuàng)建模塊,還具體用于:
對于本身無依賴的服務(wù),創(chuàng)建為無依賴的服務(wù);
對于有依賴但所依賴的服務(wù)當前不存在的服務(wù),先創(chuàng)建為無依賴的服務(wù),待其所依賴的服務(wù)被創(chuàng)建后,再更改所述服務(wù)的依賴服務(wù)屬性,使其成為有依賴的服務(wù)。
在一些可選實施方式中,所述發(fā)布模塊,具體用于:
遍歷所述樹形拓撲圖,標記每個服務(wù)節(jié)點的層級;
按所述服務(wù)節(jié)點的層級,完成多服務(wù)應(yīng)用的發(fā)布。
在一些可選實施方式中,所述發(fā)布模塊,還具體用于:
找到所有服務(wù)節(jié)點的最高層級,設(shè)為M;
如果M=0,則對應(yīng)的服務(wù)節(jié)點表示為根服務(wù)節(jié)點,發(fā)布完成所述根服務(wù)結(jié)點后返回;否則循環(huán)執(zhí)行下面步驟:
依次發(fā)布層級為M的服務(wù)節(jié)點;
完成層級為M的服務(wù)節(jié)點的發(fā)布后,令M=M-1。
從上面所述可以看出,本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法及裝置,通過在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中設(shè)定服務(wù)之間的樹形依賴關(guān)系,從而在發(fā)布時按照基于樹形依賴關(guān)系的線性發(fā)布順序完成多服務(wù)應(yīng)用的發(fā)布,從而實現(xiàn)了多服務(wù)應(yīng)用的多服務(wù)一鍵聯(lián)合發(fā)布并方便了多服務(wù)之間的依賴關(guān)系的管理。
附圖說明
圖1為現(xiàn)有技術(shù)中面向服務(wù)的體系結(jié)構(gòu)的示意圖;
圖2為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法的一個實施例的流程示意圖;
圖3為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法的另一個實施例的流程示意圖;
圖4為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布裝置的一個實施例的模塊結(jié)構(gòu)示意圖;
圖5為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法及裝置實施例中樹形拓撲圖的示例性結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
需要說明的是,本發(fā)明實施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個相同名稱非相同的實體或者非相同的參量,可見“第一”“第二”僅為了表述的方便,不應(yīng)理解為對本發(fā)明實施例的限定,后續(xù)實施例對此不再一一說明。
為彌補原生的Docker和Kubernetes技術(shù)框架的不足,本發(fā)明實施例提供的PaaS平臺開發(fā)了一種通用方法可以為基于Docker和Kubernetes技術(shù)框架開發(fā)的PaaS平臺實現(xiàn)多服務(wù)應(yīng)用的多服務(wù)一鍵聯(lián)合發(fā)布并方便管理多服務(wù)之間的依賴關(guān)系。
云計算PaaS平臺是一個供多租戶發(fā)布運維應(yīng)用的平臺,我們把可以供多租戶使用的平臺級服務(wù)比如數(shù)據(jù)庫服務(wù),中間件服務(wù)作為公共服務(wù)。公共服務(wù)包含開通、停用、啟用、刪除等通用接口。應(yīng)用中的服務(wù)可以依賴的服務(wù)包含兩種類型:一種是該租戶開通的公共服務(wù),該公共服務(wù)可以被當前應(yīng)用或者該租戶的其他應(yīng)用所依賴;另一種是當前應(yīng)用包含的其他服務(wù)(即,除了當前定義的服務(wù)和公共服務(wù)以外的當前應(yīng)用包含的其他服務(wù))。
基于前述目的,本發(fā)明實施例的第一個方面,提供了一種能夠解決多服務(wù)應(yīng)用的多服務(wù)之間的依賴管理及聯(lián)合發(fā)布問題的多服務(wù)應(yīng)用的管理與發(fā)布方法的一個實施例。如圖2所示,為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法的一個實施例的流程示意圖。
所述多服務(wù)應(yīng)用的管理與發(fā)布方法,可選的,應(yīng)用于發(fā)布應(yīng)用的PaaS平臺,包括:
步驟101:接收多服務(wù)應(yīng)用創(chuàng)建請求;
步驟102:根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù);在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中,根據(jù)所述服務(wù)的依賴屬性,設(shè)定所述服務(wù)之間的樹形依賴關(guān)系;
步驟103:在發(fā)布多服務(wù)應(yīng)用時,將所述樹形依賴關(guān)系轉(zhuǎn)換為線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的發(fā)布。
從上述實施例可以看出,本發(fā)明實施例提供的多服務(wù)應(yīng)用的管理與發(fā)布方法,通過在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中設(shè)定服務(wù)之間的樹形依賴關(guān)系,從而在發(fā)布時按照基于樹形依賴關(guān)系的線性發(fā)布順序完成多服務(wù)應(yīng)用的發(fā)布,從而實現(xiàn)了多服務(wù)應(yīng)用的多服務(wù)一鍵聯(lián)合發(fā)布并方便了多服務(wù)之間的依賴關(guān)系的管理。
本發(fā)明還提供了一種能夠解決多服務(wù)應(yīng)用的多服務(wù)之間的依賴管理及聯(lián)合發(fā)布問題的多服務(wù)應(yīng)用的管理與發(fā)布方法的另一個實施例。如圖3所示,為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法的一個實施例的流程示意圖。
所述多服務(wù)應(yīng)用的管理與發(fā)布方法,可選的,應(yīng)用于發(fā)布應(yīng)用的PaaS平臺,包括:
步驟101:接收用戶發(fā)送的多服務(wù)應(yīng)用創(chuàng)建請求;這里,用戶通過其在PaaS平臺租戶門戶創(chuàng)建一個空應(yīng)用,從而向PaaS平臺發(fā)出了所述多服務(wù)應(yīng)用創(chuàng)建請求。
步驟201:接收用戶發(fā)送的公共服務(wù)創(chuàng)建請求;這里,用戶根據(jù)自己想要創(chuàng)建的多服務(wù)應(yīng)用的定義,決定是否需要選擇或創(chuàng)建公共服務(wù),若需要創(chuàng)建公共服務(wù),則調(diào)用PaaS平臺的創(chuàng)建公共服務(wù)的模塊,亦即,向PaaS平臺發(fā)出所述公共服務(wù)創(chuàng)建請求。
步驟202:循環(huán)創(chuàng)建所述多服務(wù)應(yīng)用所需的公共服務(wù);這里,公共服務(wù)都是基礎(chǔ)服務(wù),因此,互相之間不存在相互依賴關(guān)系。
步驟203:公共服務(wù)創(chuàng)建完成后,將相關(guān)的公共服務(wù)的連接調(diào)用參數(shù)返回給用戶。
步驟102:根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù);在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中,根據(jù)所述服務(wù)的依賴屬性,設(shè)定所述服務(wù)之間的樹形依賴關(guān)系。
可選的,所述根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的步驟102,具體可包括以下步驟:
步驟1021:創(chuàng)建無依賴的服務(wù);其中,可選的,對于本身無依賴的服務(wù),創(chuàng)建為無依賴的服務(wù);對于有依賴但所依賴的服務(wù)當前不存在的服務(wù),先創(chuàng)建為無依賴的服務(wù),待其所依賴的服務(wù)被創(chuàng)建后,再更改所述服務(wù)的依賴服務(wù)屬性,使其成為有依賴的服務(wù);比如如果在創(chuàng)建服務(wù)a的時候服務(wù)b尚未創(chuàng)建,那么在服務(wù)a的服務(wù)依賴屬性里無法選擇服務(wù)b,這時可以先創(chuàng)建一個無依賴的服務(wù)a,在服務(wù)b創(chuàng)建完成后,再修改服務(wù)a的依賴屬性,選擇依賴服務(wù)b;
步驟1022:創(chuàng)建有依賴的服務(wù);并且,在所述有依賴的服務(wù)的服務(wù)定義過程中,在所述有依賴的服務(wù)的依賴服務(wù)屬性里選擇要依賴的服務(wù)并為其設(shè)置別名;所述依賴服務(wù)屬性包括已經(jīng)開通的公共服務(wù)和所述多服務(wù)應(yīng)用下已經(jīng)創(chuàng)建的服務(wù);設(shè)置所述別名是為了將依賴服務(wù)的參數(shù)關(guān)聯(lián)到當前服務(wù)的參數(shù);所述別名通常是當前服務(wù)已經(jīng)定義好的參數(shù)名字;
步驟1023:組成所述多服務(wù)應(yīng)用的服務(wù)均已創(chuàng)建完成后,根據(jù)服務(wù)之間的依賴關(guān)系生成所述多服務(wù)應(yīng)用的樹形拓撲圖,從而直觀顯示服務(wù)之間的相互依賴關(guān)系;如圖4所示,為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布方法實施例中樹形拓撲圖的示例性結(jié)構(gòu)示意圖,所述樹形拓撲圖中,葉子節(jié)點是公共服務(wù)或者是無依賴的服務(wù),當中的節(jié)點是有依賴的服務(wù),根節(jié)點是沒有被任何服務(wù)所依賴的服務(wù);比如,服務(wù)a依賴服務(wù)b、服務(wù)g和公共服務(wù)c,而服務(wù)b又依賴公共服務(wù)d、e、f,這樣,生成的樹形依賴關(guān)系就如圖5所示。
步驟103:在發(fā)布多服務(wù)應(yīng)用時,調(diào)用樹遍歷算法,從而將所述樹形依賴關(guān)系轉(zhuǎn)換為多服務(wù)的線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的多服務(wù)發(fā)布。
所述將所述樹形依賴關(guān)系轉(zhuǎn)換為線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的發(fā)布的步驟103,具體可包括以下步驟:
步驟1031:遍歷所述樹形拓撲圖,標記每個服務(wù)節(jié)點的層級;這里,服務(wù)節(jié)點是指形成為所述樹形拓撲圖中的其中一個節(jié)點的服務(wù);
進一步的,所述遍歷所述樹形拓撲圖,標記每個服務(wù)節(jié)點的層級的步驟1031,具體可包括以下步驟:
如果子樹為空則直接返回,否則,采用以下步驟完成遍歷:
訪問根服務(wù)節(jié)點,標志層級為其父服務(wù)節(jié)點層級+1,如果為根服務(wù)節(jié)點則標記為0;
訪問左一子樹;
訪問左二子樹;
直到同一層級子樹為空;
以圖5為例就得到了各服務(wù)節(jié)點的層級如下:a[0]、c[1]、b[1]、d[2]、e[2]、f[2]、g[1];[]中的數(shù)字即為對應(yīng)服務(wù)節(jié)點的層級;
步驟1032:按所述服務(wù)節(jié)點的層級,完成多服務(wù)應(yīng)用的發(fā)布;
進一步的,所述按所述服務(wù)節(jié)點的層級,完成多服務(wù)應(yīng)用的發(fā)布的步驟1032,具體可包括以下步驟:
找到所有服務(wù)節(jié)點的最高層級,設(shè)為M;
如果M=0,則對應(yīng)的服務(wù)節(jié)點表示為根服務(wù)節(jié)點,發(fā)布完成所述根服務(wù)結(jié)點后返回;否則循環(huán)執(zhí)行下面步驟:
依次發(fā)布層級為M的服務(wù)節(jié)點;如果服務(wù)節(jié)點為公共服務(wù)則略過(公共服務(wù)已經(jīng)提前開通好);
完成層級為M的服務(wù)節(jié)點的發(fā)布后,令M=M-1。
這樣,以圖5為例就得到了發(fā)布服務(wù)的采用樹遍歷法生成的線性發(fā)布序列為:d→e→f→c→b→g->a。
從上述實施例可以看出,本發(fā)明實施例提供的多服務(wù)應(yīng)用的管理與發(fā)布方法,通過在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中設(shè)定服務(wù)之間的樹形依賴關(guān)系,從而在發(fā)布時按照基于樹形依賴關(guān)系的線性發(fā)布順序完成多服務(wù)應(yīng)用的發(fā)布,從而實現(xiàn)了多服務(wù)應(yīng)用的多服務(wù)一鍵聯(lián)合發(fā)布并方便了多服務(wù)之間的依賴關(guān)系的管理。
基于前述目的,本發(fā)明實施例的第二個方面,提供了一種能夠解決多服務(wù)應(yīng)用的多服務(wù)之間的依賴管理及聯(lián)合發(fā)布問題的多服務(wù)應(yīng)用的管理與發(fā)布裝置的一個實施例。如圖4所示,為本發(fā)明提供的多服務(wù)應(yīng)用的管理與發(fā)布裝置的一個實施例的模塊結(jié)構(gòu)示意圖。
如圖4所示,所述多服務(wù)應(yīng)用的管理與發(fā)布裝置,包括:
接收模塊301,用于接收多服務(wù)應(yīng)用創(chuàng)建請求;
創(chuàng)建模塊302,用于根據(jù)所述多服務(wù)應(yīng)用創(chuàng)建請求,依次創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù);在依次創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中,根據(jù)所述服務(wù)的依賴屬性,設(shè)定所述服務(wù)之間的樹形依賴關(guān)系;
發(fā)布模塊303,用于在發(fā)布多服務(wù)應(yīng)用時,將所述樹形依賴關(guān)系轉(zhuǎn)換為線性發(fā)布順序,并根據(jù)所述線性發(fā)布順序,完成多服務(wù)應(yīng)用的發(fā)布。
從上述實施例可以看出,本發(fā)明實施例提供的多服務(wù)應(yīng)用的管理與發(fā)布裝置,通過在創(chuàng)建組成多服務(wù)應(yīng)用的服務(wù)的過程中設(shè)定服務(wù)之間的樹形依賴關(guān)系,從而在發(fā)布時按照基于樹形依賴關(guān)系的線性發(fā)布順序完成多服務(wù)應(yīng)用的發(fā)布,從而實現(xiàn)了多服務(wù)應(yīng)用的多服務(wù)一鍵聯(lián)合發(fā)布并方便了多服務(wù)之間的依賴關(guān)系的管理。
在一些可選實施方式中,所述創(chuàng)建模塊302,還具體用于:
創(chuàng)建無依賴的服務(wù);
創(chuàng)建有依賴的服務(wù);并且,在所述有依賴的服務(wù)的服務(wù)定義過程中,在所述有依賴的服務(wù)的依賴服務(wù)屬性里選擇要依賴的服務(wù);所述依賴服務(wù)屬性包括已經(jīng)開通的公共服務(wù)和所述多服務(wù)應(yīng)用下已經(jīng)創(chuàng)建的服務(wù);
組成所述多服務(wù)應(yīng)用的服務(wù)均已創(chuàng)建完成后,根據(jù)服務(wù)之間的依賴關(guān)系生成所述多服務(wù)應(yīng)用的樹形拓撲圖。
通過上述實施例,按照順序?qū)M成多服務(wù)應(yīng)用的多服務(wù)進行創(chuàng)建,從而形成較為完整的樹形拓撲圖,能夠更好地對其進行管理。
在一些可選實施方式中,所述創(chuàng)建模塊302,還具體用于:
對于本身無依賴的服務(wù),創(chuàng)建為無依賴的服務(wù);
對于有依賴但所依賴的服務(wù)當前不存在的服務(wù),先創(chuàng)建為無依賴的服務(wù),待其所依賴的服務(wù)被創(chuàng)建后,再更改所述服務(wù)的依賴服務(wù)屬性,使其成為有依賴的服務(wù)。
通過上述實施例,使得對組成多服務(wù)應(yīng)用的多服務(wù)進行創(chuàng)建的過程更加具有靈活性。
在一些可選實施方式中,所述發(fā)布模塊303,具體用于:
遍歷所述樹形拓撲圖,標記每個服務(wù)節(jié)點的層級;
按所述服務(wù)節(jié)點的層級,完成多服務(wù)應(yīng)用的發(fā)布。
通過上述實施例,從而能夠?qū)⑺鰳湫瓮負鋱D完整展開為線性發(fā)布順序,使得多服務(wù)的發(fā)布更加具有規(guī)律,不易發(fā)生錯漏。
在一些可選實施方式中,所述發(fā)布模塊303,還具體用于:
找到所有服務(wù)節(jié)點的最高層級,設(shè)為M;
如果M=0,則對應(yīng)的服務(wù)節(jié)點表示為根服務(wù)節(jié)點,發(fā)布完成所述根服務(wù)結(jié)點后返回;否則循環(huán)執(zhí)行下面步驟:
依次發(fā)布層級為M的服務(wù)節(jié)點;
完成層級為M的服務(wù)節(jié)點的發(fā)布后,令M=M-1。
通過上述實施例,提出了一種具體的將所述樹形拓撲圖完整展開為線性發(fā)布順序的方法,能夠很好地實現(xiàn)所述轉(zhuǎn)化。
所屬領(lǐng)域的普通技術(shù)人員應(yīng)當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實施例或者不同實施例中的技術(shù)特征之間也可以進行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細節(jié)中提供。
另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實,即關(guān)于這些框圖裝置的實施方式的細節(jié)是高度取決于將要實施本發(fā)明的平臺的(即,這些細節(jié)應(yīng)當完全處于本領(lǐng)域技術(shù)人員的理解范圍內(nèi))。在闡述了具體細節(jié)(例如,電路)以描述本發(fā)明的示例性實施例的情況下,對本領(lǐng)域技術(shù)人員來說顯而易見的是,可以在沒有這些具體細節(jié)的情況下或者這些具體細節(jié)有變化的情況下實施本發(fā)明。因此,這些描述應(yīng)被認為是說明性的而不是限制性的。
盡管已經(jīng)結(jié)合了本發(fā)明的具體實施例對本發(fā)明進行了描述,但是根據(jù)前面的描述,這些實施例的很多替換、修改和變型對本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。例如,其它存儲器架構(gòu)(例如,動態(tài)RAM(DRAM))可以使用所討論的實施例。
本發(fā)明的實施例旨在涵蓋落入所附權(quán)利要求的寬泛范圍之內(nèi)的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。