一種服務(wù)開發(fā)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種服務(wù)開發(fā)方法和裝置。
【背景技術(shù)】
[0002] 頁(yè)面開發(fā)、軟件代碼的編寫往往可采用的語(yǔ)言是多樣化的,其中,Go語(yǔ)言專門針對(duì) 多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速 度,而且更加安全、支持并行進(jìn)程。
[0003] 但在實(shí)際當(dāng)中,采用源生的Go語(yǔ)言開發(fā)應(yīng)用服務(wù)時(shí),除了要寫一套完整的業(yè)務(wù)邏 輯以外,還要產(chǎn)生一個(gè)handle處理器,注冊(cè)handle處理器,再啟動(dòng)服務(wù),過(guò)程非常繁瑣,并 且每開發(fā)一個(gè)服務(wù)時(shí),都要重復(fù)完成上述過(guò)程。
【發(fā)明內(nèi)容】
[0004] 鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上 述問(wèn)題的服務(wù)開發(fā)方法和裝置。
[0005] 依據(jù)本發(fā)明的一個(gè)方面,提供了一種服務(wù)開發(fā)方法,包括:預(yù)設(shè)服務(wù)生成模板;所 述服務(wù)生成模板中配置有執(zhí)行服務(wù)注冊(cè)邏輯的第一代碼;當(dāng)要生成一個(gè)指定服務(wù)時(shí),調(diào)取 所述服務(wù)生成模板,在所述服務(wù)生成模板中添加該指定服務(wù)的地址和執(zhí)行該指定服務(wù)的業(yè) 務(wù)邏輯的業(yè)務(wù)處理模塊,生成指定服務(wù);其中,將該指定服務(wù)發(fā)布到服務(wù)器上時(shí),由該服務(wù) 中的所述第一代碼執(zhí)行將該指定服務(wù)注冊(cè)到所述服務(wù)器的邏輯,以使得服務(wù)器在接收到訪 問(wèn)所述指定服務(wù)的地址的請(qǐng)求時(shí),將該請(qǐng)求映射到該指定服務(wù)。
[0006] 可選地,所述服務(wù)生成模板中還配置有除服務(wù)地址和執(zhí)行服務(wù)的業(yè)務(wù)邏輯的業(yè)務(wù) 處理模塊以外的所有其他代碼。
[0007] 可選地,該方法還包括:生成執(zhí)行該指定服務(wù)的業(yè)務(wù)邏輯的業(yè)務(wù)處理模塊的步驟, 具體包括:預(yù)設(shè)包含多個(gè)組件的組件池,其中不同的組件完成不同的處理邏輯,且每個(gè)組件 都具有接收數(shù)據(jù)的接口和發(fā)送數(shù)據(jù)的接口;根據(jù)所述指定服務(wù)的業(yè)務(wù)邏輯需求,從所述組 件池中選擇兩個(gè)以上的組件;利用所述兩個(gè)以上組件各自的接收數(shù)據(jù)的接口和發(fā)送數(shù)據(jù)的 接口,將所述兩個(gè)以上的組件依次串連,得到由所述兩個(gè)以上組件組成的業(yè)務(wù)處理模塊。
[0008] 可選地,所述組件池中的每個(gè)組件符合如下約束規(guī)則:每個(gè)組件包括:事前處理 單元、業(yè)務(wù)邏輯單元和事后處理單元;所述事前處理單元接收用戶端的請(qǐng)求數(shù)據(jù)或者接收 自身所在組件串連的上一級(jí)組件發(fā)送的數(shù)據(jù),對(duì)接收到的數(shù)據(jù)進(jìn)行準(zhǔn)備處理后發(fā)送給業(yè)務(wù) 邏輯單元;所述業(yè)務(wù)邏輯單元對(duì)事前處理單元發(fā)送的數(shù)據(jù)按照本組件的處理邏輯進(jìn)行處 理,判斷是否有與自身所在組件串連的下一級(jí)的組件,是則將處理后的數(shù)據(jù)發(fā)送給下一級(jí) 組件,否則將處理后的數(shù)據(jù)發(fā)送給事后處理單元;所述事后處理單元接收業(yè)務(wù)邏輯單元發(fā) 送的數(shù)據(jù)或者接收自身所在組件串連的下一級(jí)組件發(fā)送的數(shù)據(jù),對(duì)接收到數(shù)據(jù)進(jìn)行收尾處 理后發(fā)送給自身所在組件串連的上一級(jí)組件或者返回給所述用戶端。
[0009] 可選地,所述利用所述兩個(gè)以上組件各自的接收數(shù)據(jù)的接口和發(fā)送數(shù)據(jù)的接口, 將所述兩個(gè)以上的組件依次串連,得到有所述兩個(gè)以上組件組成的業(yè)務(wù)處理模塊包括:將 所述兩個(gè)以上的組件依據(jù)業(yè)務(wù)處理需求進(jìn)行排序;對(duì)于第一個(gè)組件,其事前處理單元接收 用戶端的請(qǐng)求,以及其事后處理單元將處理后的數(shù)據(jù)返回給用戶端;對(duì)于每?jī)蓚€(gè)相鄰的組 件,上一級(jí)組件的業(yè)務(wù)邏輯單元的輸出與下一級(jí)組件的事前處理單元對(duì)接,下一級(jí)組件的 事后處理單元的輸出與上一級(jí)組件的事后處理單元對(duì)接。
[0010] 可選地,該方法進(jìn)一步包括:提供組件擴(kuò)展接口;通過(guò)所述組件擴(kuò)展接口接收符 合所述約束規(guī)則的組件,放入所述組件池中。
[0011] 可選地,所述組件池中的每個(gè)組件符合的約束規(guī)則還包括:對(duì)于一個(gè)組件,其事前 處理單元、業(yè)務(wù)邏輯單元和事后處理單元中任意兩個(gè)的處理邏輯可以為空。
[0012] 可選地,所述生成執(zhí)行該指定服務(wù)的業(yè)務(wù)邏輯的業(yè)務(wù)處理模塊的步驟進(jìn)一步包 括:對(duì)于由所述兩個(gè)以上組件組成的業(yè)務(wù)處理模塊,從串連的組件中拆除一個(gè)組件得到新 的業(yè)務(wù)處理模塊;或者,對(duì)于由所述兩個(gè)以上組件組成的業(yè)務(wù)處理模塊,在串連的組件中插 入一個(gè)新組件得到新的業(yè)務(wù)處理模塊。
[0013] 依據(jù)本發(fā)明的另一方面,提供了一種服務(wù)開發(fā)裝置,包括:模板存儲(chǔ)單元,適于存 儲(chǔ)預(yù)設(shè)的服務(wù)生成模板;所述服務(wù)生成模板中配置有執(zhí)行服務(wù)注冊(cè)邏輯的第一代碼;服務(wù) 生成單元,適于當(dāng)要生成一個(gè)指定服務(wù)時(shí),調(diào)取所述服務(wù)生成模板,在所述服務(wù)生成模板中 添加該指定服務(wù)的地址和執(zhí)行該指定服務(wù)的業(yè)務(wù)邏輯的業(yè)務(wù)處理模塊,生成指定服務(wù);其 中,將該指定服務(wù)發(fā)布到服務(wù)器上時(shí),由該服務(wù)中的所述第一代碼執(zhí)行將該指定服務(wù)注冊(cè) 到所述服務(wù)器的邏輯,以使得服務(wù)器在接收到訪問(wèn)所述指定服務(wù)的地址的請(qǐng)求時(shí),將該請(qǐng) 求映射到該指定服務(wù)。
[0014] 可選地,所述服務(wù)生成模板中還配置有除服務(wù)地址和執(zhí)行服務(wù)的業(yè)務(wù)邏輯的業(yè)務(wù) 處理模塊以外的所有其他代碼。
[0015] 可選地,該裝置還包括:組件池存儲(chǔ)單元,適于存儲(chǔ)預(yù)設(shè)的包含多個(gè)組件的組件 池,其中不同的組件完成不同的處理邏輯,且每個(gè)組件都具有接收數(shù)據(jù)的接口和發(fā)送數(shù)據(jù) 的接口;組件選擇單元,適于根據(jù)所述指定服務(wù)的業(yè)務(wù)邏輯需求,從所述組件池中選擇兩個(gè) 以上的組件;業(yè)務(wù)模塊生成單元,適于利用所述兩個(gè)以上組件各自的接收數(shù)據(jù)的接口和發(fā) 送數(shù)據(jù)的接口,將所述兩個(gè)以上的組件依次串連,得到由所述兩個(gè)以上組件組成的業(yè)務(wù)處 理模塊。
[0016] 可選地,所述組件池存儲(chǔ)單元中的所述組件池中的每個(gè)組件符合如下約束規(guī)則: 每個(gè)組件包括:事前處理單元、業(yè)務(wù)邏輯單元和事后處理單元;所述事前處理單元接收用 戶端的請(qǐng)求數(shù)據(jù)或者接收自身所在組件串連的上一級(jí)組件發(fā)送的數(shù)據(jù),對(duì)接收到的數(shù)據(jù)進(jìn) 行準(zhǔn)備處理后發(fā)送給業(yè)務(wù)邏輯單元;所述業(yè)務(wù)邏輯單元對(duì)事前處理單元發(fā)送的數(shù)據(jù)按照本 組件的處理邏輯進(jìn)行處理,判斷是否有與自身所在組件串連的下一級(jí)的組件,是則將處理 后的數(shù)據(jù)發(fā)送給下一級(jí)組件,否則將處理后的數(shù)據(jù)發(fā)送給事后處理單元;所述事后處理單 元接收業(yè)務(wù)邏輯單元發(fā)送的數(shù)據(jù)或者接收自身所在組件串連的下一級(jí)組件發(fā)送的數(shù)據(jù),對(duì) 接收到數(shù)據(jù)進(jìn)行收尾處理后發(fā)送給自身所在組件串連的上一級(jí)組件或者返回給所述用戶 端。
[0017] 可選地,所述業(yè)務(wù)模塊生成單元,適于將所述兩個(gè)以上的組件依據(jù)業(yè)務(wù)處理需求 進(jìn)行排序;對(duì)于第一個(gè)組件,其事前處理單元接收用戶端的請(qǐng)求,以及其事后處理單元將處 理后的數(shù)據(jù)返回給用戶端;對(duì)于每?jī)蓚€(gè)相鄰的組件,上一級(jí)組件的業(yè)務(wù)邏輯單元的輸出與 下一級(jí)組件的事前處理單元對(duì)接,下一級(jí)組件的事后處理單元的輸出與上一級(jí)組件的事后 處理單元對(duì)接。
[0018] 可選地,該裝置進(jìn)一步包括:組件擴(kuò)展接口,適于接收符合所述約束規(guī)則的組件, 放入所述組件池中。
[0019] 可選地,所述組件池存儲(chǔ)單元中的組件池中的每個(gè)組件符合的約束規(guī)則還包括: 對(duì)于一個(gè)組件,其事前處理單元、業(yè)務(wù)邏輯單元和事后處理單元中任意兩個(gè)的處理邏輯可 以為空。
[0020] 可選地,所述業(yè)務(wù)模塊生成單元,進(jìn)一步適于對(duì)于由所述兩個(gè)以上組件組成的業(yè) 務(wù)處理模塊,從串連的組件中拆除一個(gè)組件得到新的業(yè)務(wù)處理模塊;或者,對(duì)于由所述兩個(gè) 以上組件組成的業(yè)務(wù)處理模塊,在串連的組件中插入一個(gè)新組件得到新的業(yè)務(wù)處理模塊。
[0021] 由上述可知,本發(fā)明的技術(shù)方案描述了基于預(yù)設(shè)的配置有執(zhí)行服務(wù)注冊(cè)邏輯的第 一代碼的服務(wù)生成模板,生成一個(gè)指定服務(wù)的服務(wù)開發(fā)方法和相應(yīng)的裝置,該方案通過(guò)克 服現(xiàn)有技術(shù)中使用編寫代碼過(guò)程中需要處理handle處理器的問(wèn)題,簡(jiǎn)化了繁瑣的開發(fā)過(guò) 程,提供了一種簡(jiǎn)便、規(guī)范的服務(wù)開發(fā)方法,只需要用戶調(diào)取預(yù)設(shè)服務(wù)生成模板添加服務(wù)地 址和業(yè)務(wù)處理模塊,開發(fā)任務(wù)僅限于業(yè)務(wù)邏輯部分,縮短了開發(fā)時(shí)間,降低了開發(fā)成本。
[0022] 上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠 更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0023] 通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通 技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明 的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中: