專利名稱:一種服務(wù)開發(fā)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種服務(wù)開發(fā)方法和系統(tǒng)。
背景技術(shù):
在互聯(lián)網(wǎng)時(shí)代,消費(fèi)者對(duì)虛擬服務(wù)的需求日益提高,服務(wù)提供商對(duì)新服務(wù)的快速響應(yīng)能力是吸引消費(fèi)者,提高消費(fèi)者忠誠(chéng)度的重要指標(biāo)。因此快速開發(fā)、快速部署服務(wù)是提高競(jìng)爭(zhēng)力的重要條件。隨著服務(wù)的數(shù)量越來越多,依賴關(guān)系(服務(wù)與服務(wù)之間,服務(wù)于第三方庫之間)會(huì)越來越復(fù)雜,其復(fù)雜程度會(huì)超出一個(gè)人所能控制的范疇。如何確保度服務(wù)和第三方庫的每一次修改都不會(huì)引起系統(tǒng)的不兼容性,從而導(dǎo)致服務(wù)的不可用,是服務(wù)開發(fā)、部署面臨的首要問題。
發(fā)明內(nèi)容
本發(fā)明提供了一種服務(wù)開發(fā)方法,該方法能實(shí)現(xiàn)服務(wù)的快速開發(fā),并且能保證系統(tǒng)的兼容性。本發(fā)明還提供了一種服務(wù)開發(fā)系統(tǒng),該系統(tǒng)能實(shí)現(xiàn)服務(wù)的快速開發(fā),并且能保證系統(tǒng)的兼容性。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明公開了一種服務(wù)開發(fā)方法,該方法包括定義服務(wù)的基本信息;其中,服務(wù)的基本信息包括服務(wù)類別信息、服務(wù)類別屬性信息、服務(wù)信息、服務(wù)屬性信息、服務(wù)方法信息、服務(wù)依賴信息;定義服務(wù)的邊界,具體為為服務(wù)所包含的累、配置文件和屬性文件定義邊界;定義服務(wù)的客戶端標(biāo)示;服務(wù)的客戶端標(biāo)示用于標(biāo)示被客戶端用到的類;對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證。本發(fā)明還公開了一種服務(wù)開發(fā)系統(tǒng),該系統(tǒng)包括服務(wù)開發(fā)中心、版本控制服務(wù)器、信息數(shù)據(jù)庫,其中服務(wù)開發(fā)中心,用于定義服務(wù)的基本信息、服務(wù)的邊界和服務(wù)的客戶端標(biāo)示,并對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證;其中,服務(wù)的基本信息包括服務(wù)類別信息、服務(wù)類別屬性信息、服務(wù)信息、服務(wù)屬性信息、服務(wù)方法信息、服務(wù)依賴信息;定義服務(wù)的邊界,具體為為服務(wù)所包含的累、配置文件和屬性文件定義邊界;服務(wù)的客戶端標(biāo)示用于標(biāo)示被客戶端用到的類;版本控制服務(wù)器器,用于保存服務(wù)的代碼和服務(wù)的發(fā)布包;信息數(shù)據(jù)庫,用于保存服務(wù)的基本信息。由上述可見,本發(fā)明這種定義服務(wù)的基本信息、定義服務(wù)的邊界定義服務(wù)的客戶端標(biāo)示,并對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證的技術(shù)方案,由于給出了定義的服務(wù)描述信息,因此能實(shí)現(xiàn)服務(wù)的快速開發(fā),并且進(jìn)行服務(wù)依賴驗(yàn)證的方案能保證系統(tǒng)的兼容性。
圖1是本發(fā)明實(shí)施例中的服務(wù)開發(fā)框架示意圖;圖2是本發(fā)明實(shí)施例中的具體的依賴關(guān)系的示意圖;圖3是本發(fā)明實(shí)施例中的一種共享庫管理方法的流程圖;圖4是本發(fā)明實(shí)施例中的一種服務(wù)開發(fā)方法的流程圖;圖5是本發(fā)明實(shí)施例中的一種服務(wù)開發(fā)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。在本發(fā)明的方案中,所有的開發(fā)以服務(wù)為基礎(chǔ),開發(fā)人員將專注于服務(wù)邏輯的開發(fā),而較少關(guān)注其它相關(guān)服務(wù)的狀態(tài)。在本發(fā)明的方案中,服務(wù)開發(fā)將遵循以下規(guī)則 服務(wù)作為最小的開發(fā)粒度,不同的服務(wù)將在開發(fā)中以合理的方式進(jìn)行隔離。 服務(wù)作為最小的編譯粒度,參考服務(wù)的依賴關(guān)系,服務(wù)應(yīng)該是可單獨(dú)編譯的。·服務(wù)作為最小的打包粒度,以真正實(shí)現(xiàn)服務(wù)級(jí)的熱更新?!し?wù)作為最小的部署粒度。圖1是本發(fā)明實(shí)施例中的服務(wù)開發(fā)框架示意圖。在圖1中,各個(gè)部分的描述如下·開發(fā)人員·用來開發(fā)服務(wù)·管理人員·用來查看、監(jiān)測(cè)服務(wù)的各種信息。·服務(wù)開發(fā)環(huán)境·用來快速開發(fā)服務(wù)·創(chuàng)建服務(wù),并產(chǎn)生服務(wù)描述信息?!ぎa(chǎn)生服務(wù)代碼框架,應(yīng)用服務(wù)編碼規(guī)則?!げ樵儸F(xiàn)有服務(wù)·編譯、打包、發(fā)布服務(wù)·驗(yàn)證服務(wù)一致性·瀏覽
·管理人員用來通過web服務(wù)器瀏覽服務(wù)信息?!し?wù)包· Jar包,用來發(fā)布服務(wù)·版本控制服務(wù)器·用來保存服務(wù)代碼,服務(wù)發(fā)布包·應(yīng)用服務(wù)器 用來運(yùn)行服務(wù)·服務(wù)信息數(shù)據(jù)庫
·保存服務(wù)描述信息·保存服務(wù)依賴信息 保存服務(wù)運(yùn)行日志· Web 服務(wù)器·實(shí)現(xiàn)服務(wù)的查詢、監(jiān)測(cè)。服務(wù)要正常運(yùn)行,必須依賴其他資源,一般情況下,其依賴可以有以下幾類· JDK 依賴·共享庫依賴 第三方包依賴·共享服務(wù)依賴·公共服務(wù)依賴·工具服務(wù)依賴·業(yè)務(wù)服務(wù)依賴·兄弟服務(wù)依賴可見服務(wù)正常運(yùn)行可能依賴的包有JDK和共享庫,其中,共享庫包括第三方包和共享服務(wù);所述共享服務(wù)又包括公共服務(wù)、工具服務(wù)、業(yè)務(wù)服務(wù)。除了對(duì)包的依賴,服務(wù)還有對(duì)協(xié)議、標(biāo)準(zhǔn)的依賴。但一般情況下,對(duì)協(xié)議、標(biāo)準(zhǔn)的依賴可以最終轉(zhuǎn)換成對(duì)協(xié)議、標(biāo)準(zhǔn)實(shí)現(xiàn)包的依賴,因?yàn)樘囟ò姹镜膮f(xié)議、標(biāo)準(zhǔn)實(shí)現(xiàn)包一定對(duì)應(yīng)一定版本的協(xié)議、標(biāo)準(zhǔn),因此對(duì)協(xié)議、標(biāo)準(zhǔn)的依賴性就可以間接表示成對(duì)包的依賴性圖2是本發(fā)明實(shí)施例中的具體的依賴關(guān)系的示意圖。由圖2可以看出JDK不依賴于其他任何包。接下來對(duì)本發(fā)明中如果管理被依賴的JDK和共享庫,以便其他服務(wù)能快速、一致地引用進(jìn)行說明。圖3是本發(fā)明實(shí)施例中的一種共享庫管理方法的流程圖。如圖3所示,包括301,將JDK的文件上傳到版本控制服務(wù)器的指定位置,將共享庫的文件上傳到版本控制服務(wù)器中的對(duì)應(yīng)共享庫類別的存放位置下。302,將JDK的描述信息保存到信息數(shù)據(jù)庫中。其中,JDK的描述信息包括JDK的標(biāo)示和JDK在版本控制服務(wù)器上的存放位置;303,將共享庫描述信息和共享庫依賴信息保存到信息數(shù)據(jù)庫中。其中,所述共享庫的描述信息包括共享庫的類別信息、共享庫信息、具體版本的共享庫信息、具體版本的共享庫包含的文件信息、具體版本共享庫的屬性信息;其中共享庫的類別信息中包含共享庫在版本控制服務(wù)器中的位置信息;所述共享庫的依賴信息包括共享庫的庫標(biāo)示和被依賴的共享庫的庫標(biāo)示;304,當(dāng)需要獲取指定JDK時(shí),先到信息數(shù)據(jù)庫中查找對(duì)應(yīng)的描述信息,根據(jù)描述信息從版本控制服務(wù)器獲取該指定JDK的文件。305,當(dāng)需要獲取指定共享庫時(shí),先到信息數(shù)據(jù)庫中查找對(duì)應(yīng)的共享庫描述信息和共享庫依賴信息,根據(jù)共享庫描述信息從版本控制服務(wù)器獲取該指定共享庫的文件,根據(jù)共享庫依賴信息獲取被該指定共享庫所依賴的其它包的文件。下面對(duì)為實(shí)現(xiàn)JDK和共享庫的合理管理,在信息數(shù)據(jù)庫上保存這些信息時(shí)所采用的數(shù)據(jù)結(jié)構(gòu)進(jìn)行說明1. JDK為公司需要支持的JDK版本建立一個(gè)庫,所有的第三方包,共享服務(wù)包,以及屬于一個(gè)產(chǎn)品的服務(wù)都必須顯示指定其所依賴的最小的JDK版本。一個(gè)JDK的描述(jdk_version)信息如表1所示
權(quán)利要求
1.一種服務(wù)開發(fā)方法,其特征在于,該方法包括定義服務(wù)的基本信息;其中,服務(wù)的基本信息包括服務(wù)類別信息、服務(wù)類別屬性信息、服務(wù)信息、服務(wù)屬性信息、服務(wù)方法信息、服務(wù)依賴信息;定義服務(wù)的邊界,具體為為服務(wù)所包含的累、配置文件和屬性文件定義邊界; 定義服務(wù)的客戶端標(biāo)示;服務(wù)的客戶端標(biāo)示用于標(biāo)示被客戶端用到的類; 對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)類別信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)類別標(biāo)示、服務(wù)類別名稱、服務(wù)類別描述、父服務(wù)類別標(biāo)示、服務(wù)類別序列號(hào);所述服務(wù)類別屬性信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)類別標(biāo)示、屬性名稱、服務(wù)類別序列號(hào)、屬性類型、屬性值;所述服務(wù)信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)標(biāo)示、服務(wù)類別標(biāo)示、服務(wù)名稱、服務(wù)描述、服務(wù)接口元數(shù)據(jù)、服務(wù)版本、最小的兼容版本號(hào)、服務(wù)類型、服務(wù)狀態(tài)、創(chuàng)建者、創(chuàng)建時(shí)間、最后一次發(fā)布時(shí)間;所述服務(wù)屬性信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)標(biāo)示、屬性名稱、屬性類型、屬性值; 所述服務(wù)方法信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)標(biāo)示、服務(wù)方法簽名、服務(wù)方法描述、服務(wù)是否過時(shí);所述服務(wù)依賴信息的包括服務(wù)的共享庫依賴信息和服務(wù)對(duì)其它服務(wù)的依賴信息;其中,服務(wù)的共享庫依賴信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)標(biāo)示、依賴的共享庫標(biāo)示、依賴的特定版本的共享庫標(biāo)示;服務(wù)對(duì)其它服務(wù)的依賴信息的數(shù)據(jù)結(jié)構(gòu)為服務(wù)標(biāo)示、依賴的服務(wù)標(biāo)示、依賴服務(wù)的版本號(hào)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述定義服務(wù)的邊界包括 將所有服務(wù)的源代碼和測(cè)試代碼存放在相同的位置;每個(gè)服務(wù)有一個(gè)單獨(dú)的JAVA包,該JAVA包以及其子包包含該服務(wù)的所有源代碼和測(cè)試代碼;各服務(wù)的JAVA包之間是并行的,不存在嵌套關(guān)系;將每個(gè)服務(wù)的測(cè)試數(shù)據(jù)、資源和配置文件都存在不同的子目錄中。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,該方法進(jìn)一步包括將JDK的文件上傳到版本控制服務(wù)器的指定位置,將共享庫的文件上傳到版本控制服務(wù)器中的對(duì)應(yīng)共享庫類別的存放位置下;將JDK的描述信息保存到信息數(shù)據(jù)庫中;其中,JDK的描述信息包括JDK的標(biāo)示和JDK 在版本控制服務(wù)器上的存放位置;將共享庫描述信息和共享庫依賴信息保存到信息數(shù)據(jù)庫中;所述共享庫的描述信息包括共享庫的類別信息、共享庫信息、具體版本的共享庫信息、具體版本的共享庫包含的文件信息、具體版本共享庫的屬性信息;其中共享庫的類別信息中包含共享庫在版本控制服務(wù)器中的位置信息;所述共享庫的依賴信息包括具體版本共享庫的庫標(biāo)示和被依賴的共享庫的庫標(biāo)示; 在服務(wù)開發(fā)的過程中,當(dāng)需要獲取指定JDK時(shí),先到信息數(shù)據(jù)庫中查找對(duì)應(yīng)的描述信息,根據(jù)描述信息從版本控制服務(wù)器獲取該指定JDK的文件;在服務(wù)開發(fā)的過程中,當(dāng)需要獲取指定共享庫時(shí),先到信息數(shù)據(jù)庫中查找對(duì)應(yīng)的共享庫描述信息和共享庫依賴信息,根據(jù)共享庫描述信息從版本控制服務(wù)器獲取該指定共享庫的文件,根據(jù)共享庫依賴信息獲取被該指定共享庫所依賴的其它包的文件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證為對(duì)服務(wù)以及其所依賴的所有其它服務(wù)、共享庫和 JDK的版本是否一致或兼容進(jìn)行驗(yàn)證;對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證具體包括JDK版本沖突驗(yàn)證、服務(wù)版本沖突驗(yàn)證、共享庫版本沖突驗(yàn)證。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,該服務(wù)開發(fā)的過程中,開發(fā)工具用工作室、項(xiàng)目、服務(wù)、JAVA包,四層來提供開發(fā)視圖。
7.一種服務(wù)開發(fā)系統(tǒng),其特征在于,該系統(tǒng)包括服務(wù)開發(fā)中心、版本控制服務(wù)器、信息數(shù)據(jù)庫,其中服務(wù)開發(fā)中心,用于定義服務(wù)的基本信息、服務(wù)的邊界和服務(wù)的客戶端標(biāo)示,并對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證;其中,服務(wù)的基本信息包括服務(wù)類別信息、服務(wù)類別屬性信息、服務(wù)信息、服務(wù)屬性信息、服務(wù)方法信息、服務(wù)依賴信息;定義服務(wù)的邊界,具體為為服務(wù)所包含的累、配置文件和屬性文件定義邊界; 服務(wù)的客戶端標(biāo)示用于標(biāo)示被客戶端用到的類; 版本控制服務(wù)器器,用于保存服務(wù)的代碼和服務(wù)的發(fā)布包; 信息數(shù)據(jù)庫,用于保存服務(wù)的基本信息。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,服務(wù)開發(fā)中心,用于將所有服務(wù)的源代碼和測(cè)試代碼存放在版本控制服務(wù)器中的相同的位置;用于為每個(gè)服務(wù)有建立一個(gè)單獨(dú)的JAVA包,該JAVA包以及其子包包含該服務(wù)的所有源代碼和測(cè)試代碼,各服務(wù)的JAVA包之間是并行的,不存在嵌套關(guān)系;將每個(gè)服務(wù)的測(cè)試數(shù)據(jù)、資源和配置文件分別保存在版本控制服務(wù)器中的不同的子目錄中。
9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括訪問管理中心; 版本控制服務(wù)器,進(jìn)一步用于在自身的指定位置中保存JDK,在自身的指定位置中按類別保存共享庫;信息數(shù)據(jù)庫,進(jìn)一步用于保存JDK的描述信息,以及共享庫的描述信息和共享庫的依賴信息;其中,JDK的描述信息包括JDK的標(biāo)示和JDK在版本控制服務(wù)器上的存放位置;所述共享庫的描述信息包括共享庫的類別信息、共享庫信息、具體版本的共享庫信息、具體版本的共享庫包含的文件信息、具體版本共享庫的屬性信息;其中共享庫的類別信息中包含共享庫在版本控制服務(wù)器中的位置信息;所述共享庫的依賴信息包括共享庫的庫標(biāo)示和被依賴的共享庫的庫標(biāo)示;訪問管理中心,用于在需要獲取指定JDK時(shí),先到信息數(shù)據(jù)庫中查找對(duì)應(yīng)的描述信息, 根據(jù)描述信息從版本控制服務(wù)器獲取該指定JDK的文件;用于在需要獲取指定共享庫時(shí), 先到信息數(shù)據(jù)庫中查找對(duì)應(yīng)的共享庫描述信息和共享庫依賴信息,根據(jù)共享庫描述信息從版本控制服務(wù)器獲取該指定共享庫的文件,根據(jù)共享庫依賴信息獲取被該指定共享庫所依賴的其它包的文件;所述服務(wù)開發(fā)中心,用于從訪問管理中心獲取指定JDK或指定共享庫。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述服務(wù)開發(fā)中心,用于對(duì)服務(wù)以及其所依賴的所有其它服務(wù)、共享庫和JDK的版本是否一致或兼容進(jìn)行驗(yàn)證,具體包括JDK版本沖突驗(yàn)證、服務(wù)版本沖突驗(yàn)證、共享庫版本沖突驗(yàn)證。
全文摘要
本發(fā)明公開了一種服務(wù)開發(fā)方法和系統(tǒng)。所述方法包括定義服務(wù)的基本信息;其中,服務(wù)的基本信息包括服務(wù)類別信息、服務(wù)類別屬性信息、服務(wù)信息、服務(wù)屬性信息、服務(wù)方法信息、服務(wù)依賴信息;定義服務(wù)的邊界,具體為為服務(wù)所包含的累、配置文件和屬性文件定義邊界;定義服務(wù)的客戶端標(biāo)示;服務(wù)的客戶端標(biāo)示用于標(biāo)示被客戶端用到的類;對(duì)服務(wù)的依賴性進(jìn)行驗(yàn)證。本發(fā)明的技術(shù)方案能實(shí)現(xiàn)服務(wù)的快速開發(fā),服務(wù)的快速?gòu)?fù)用并且能保證系統(tǒng)的兼容性。
文檔編號(hào)H04L29/08GK102325153SQ20111019420
公開日2012年1月18日 申請(qǐng)日期2011年7月12日 優(yōu)先權(quán)日2011年7月12日
發(fā)明者陳春松 申請(qǐng)人:北京新媒傳信科技有限公司