網(wǎng)站建設系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種網(wǎng)站建設系統(tǒng)及方法,網(wǎng)站建設系統(tǒng)包括至少一個前端服務器站點以及至少一個后端服務器站點,后端服務器站點具有統(tǒng)一的API接口;每個前端服務器站點均對目標數(shù)據(jù)請求業(yè)務進行序列化處理,并以ajax方式向所述API接口發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務;所述API接口對序列化處理后的所述目標數(shù)據(jù)請求業(yè)務進行反序列化處理,并從一后端服務器站點中提取目標數(shù)據(jù),通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至所述前端服務器站點;所述前端服務器站點還用于根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染。本發(fā)明能夠在網(wǎng)站建設的過程中將前端和后端分別設置在不同的站點并能夠?qū)η昂蠖诉M行解耦和。
【專利說明】網(wǎng)站建設系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及一種網(wǎng)站建設系統(tǒng)及方法,特別是涉及一種能夠在網(wǎng)站建設將前端和后端分別設置在不同的站點并能夠?qū)η昂蠖诉M行解耦和的網(wǎng)站建設系統(tǒng),以及一種利用所述網(wǎng)站建設系統(tǒng)實現(xiàn)的網(wǎng)站建設方法。
【背景技術】
[0002]現(xiàn)有的網(wǎng)站(B/S架構即瀏覽器/服務器架構應用系統(tǒng)的網(wǎng)站)通常包括兩大塊:內(nèi)容和樣式。其中內(nèi)容即是通常意義下的網(wǎng)站數(shù)據(jù),往往是指經(jīng)過加工處理過的,可以直接用于網(wǎng)站頁面展示的數(shù)據(jù);而樣式則通常包括:頁面的排版、風格、顏色等。針對這類網(wǎng)站的開發(fā),通常前端開發(fā)和后端開發(fā)都是在一個項目中完成的,前端開發(fā)人員負責頁面的排版和渲染(通常采用css+div (網(wǎng)站標準中的常用術語,一種可實現(xiàn)網(wǎng)頁頁面內(nèi)容與表現(xiàn)相分離的網(wǎng)頁布局方法)的方式)以及頁面交互開發(fā)(通常采用jquery (—種優(yōu)秀的輕量級的javascript框架,javascript是一種面向?qū)ο蟮膭討B(tài)類型的區(qū)分大小寫的客戶端腳本語言)等框架),后端開發(fā)人員則負責業(yè)務邏輯以及業(yè)務數(shù)據(jù)的處理,前端后端開發(fā)需要實時溝通配合才能共同完成網(wǎng)站的搭建。
[0003]在現(xiàn)有的網(wǎng)站開發(fā)框架下,前后端的數(shù)據(jù)交互主要依賴開發(fā)框架中的所能定義的對象。例如,對于現(xiàn)有技術中比較常用的asp.net開發(fā)框架(一種使嵌入網(wǎng)頁中的腳本可由因特網(wǎng)服務器執(zhí)行的服務器端腳本技術),開發(fā)人員普遍采取多層架構,例如包括數(shù)據(jù)層、業(yè)務層(即相當于后端)和表現(xiàn)層(即相當于前端),而數(shù)據(jù)層和表現(xiàn)層的數(shù)據(jù)往往都是提前定制的,表現(xiàn)層需要什么類型的數(shù)據(jù),數(shù)據(jù)層就會提供相應類型的數(shù)據(jù),這樣就導致表現(xiàn)層與數(shù)據(jù)層的數(shù)據(jù)耦合非常緊密,也就是前端后端的耦合過緊,進而導致數(shù)據(jù)、代碼的維護和管理都不是很方便。
[0004]并且,在現(xiàn)有的網(wǎng)站建設中,前端和后端屬于同一個項目,所以前后端的部署只可能在同一個站點下完成。因此,在現(xiàn)有的網(wǎng)站開發(fā)框架下,無論一個網(wǎng)站的開發(fā)框架包括多少層,其始終只是一個項目的應用,因而其中的任何一層都無法直接轉(zhuǎn)用到另一個項目的應用中。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術問題是為了克服現(xiàn)有技術中在現(xiàn)有的網(wǎng)站開發(fā)框架下,前端后端的耦合過緊,進而導致數(shù)據(jù)、代碼的維護和管理都不是很方便,以及前端和后端屬于同一個項目導致其中的數(shù)據(jù)和應用等無法直接轉(zhuǎn)用到另一個項目中的缺陷,提供一種能夠在網(wǎng)站建設將前端和后端分別設置在不同的站點并能夠?qū)η昂蠖诉M行解耦和的網(wǎng)站建設系統(tǒng),以及一種利用所述網(wǎng)站建設系統(tǒng)實現(xiàn)的網(wǎng)站建設方法。
[0006]本發(fā)明是通過下述技術方案來解決上述技術問題的:
[0007]本發(fā)明公開了一種網(wǎng)站建設系統(tǒng),其特點在于,其包括至少一個前端服務器站點以及至少一個后端服務器站點,所述至少一個后端服務器站點具有一統(tǒng)一的API接口(應用程序編程接口);
[0008]每個所述前端服務器站點均用于對目標數(shù)據(jù)請求業(yè)務進行序列化處理,并通過HTTP協(xié)議(超文本傳輸協(xié)議)以ajax (—種創(chuàng)建交互式網(wǎng)頁應用的網(wǎng)頁開發(fā)技術)方式向所述API接口發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務;
[0009]所述API接口用于對序列化處理后的所述目標數(shù)據(jù)請求業(yè)務進行反序列化處理,并從一后端服務器站點中提取目標數(shù)據(jù),通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至所述前端服務器站點;
[0010]所述前端服務器站點還用于根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染。
[0011]此處的目標數(shù)據(jù)一般都是網(wǎng)站開發(fā)時需要的重要業(yè)務數(shù)據(jù),比如網(wǎng)站需要的一些產(chǎn)品信息(如酒店、機票查詢后的內(nèi)容)、用戶信息(如用戶注冊時提供的個人資料)、用戶交易信息(如用戶下訂單的內(nèi)容)等。
[0012]較佳地,所述網(wǎng)站建設系統(tǒng)還包括一登錄狀態(tài)記錄模塊及一登錄狀態(tài)查詢模塊,所述登錄狀態(tài)記錄模塊用于記錄向所述前端服務器站點發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶的登錄狀態(tài);
[0013]所述登錄狀態(tài)查詢模塊用于在所述目標數(shù)據(jù)符合預設條件時,從所述登錄狀態(tài)記錄模塊中查詢發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶是否登錄,若是,則啟用所述API接口,若否,則通過HTTP協(xié)議將一出錯信息發(fā)送至所述前端服務器站點進行輸出顯示。
[0014]較佳地,所述前端服務器站點采用HTML (超文本標記語言)+JS (面向?qū)ο蟮膭討B(tài)類型的區(qū)分大小寫的客戶端腳本語言)的方式進行網(wǎng)站頁面的排版和渲染。
[0015]較佳地,所述序列化處理和反序列化處理分別為json (—種輕量級的數(shù)據(jù)交換格式)序列化處理和json反序列化處理或xml (可擴展標記語言)序列化處理和xml反序列化處理。
[0016]本發(fā)明的目的在于還提供了一種網(wǎng)站建設方法,其特點在于,其利用上述的網(wǎng)站建設系統(tǒng)實現(xiàn),所述網(wǎng)站建設方法包括以下步驟:
[0017]S1、所述前端服務器站點對目標數(shù)據(jù)請求業(yè)務進行序列化處理,并通過HTTP協(xié)議以ajax方式向所述API接口發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務;
[0018]S2、所述API接口對序列化處理后的所述目標數(shù)據(jù)請求業(yè)務進行反序列化處理,并從一后端服務器站點中提取目標數(shù)據(jù),通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至所述前端服務器站點;
[0019]S3、所述前端服務器站點根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染。
[0020]較佳地,所述網(wǎng)站建設系統(tǒng)還包括一登錄狀態(tài)記錄模塊及一登錄狀態(tài)查詢模塊,所述登錄狀態(tài)記錄模塊用于記錄向所述前端服務器站點發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶的登錄狀態(tài);
[0021]步驟S1和S2之間還包括一步驟S11:在所述目標數(shù)據(jù)符合預設條件時,所述登錄狀態(tài)查詢模塊從所述登錄狀態(tài)記錄模塊中查詢發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶是否登錄,若是,則執(zhí)行步驟S2,若否,則通過HTTP協(xié)議將一出錯信息發(fā)送至所述前端服務器站點進行輸出顯示,然后結束流程。
[0022]較佳地,所述前端服務器站點采用HTML+JS的方式進行網(wǎng)站頁面的排版和渲染。
[0023]較佳地,所述序列化處理和反序列化處理分別為json序列化處理和json反序列化處理或xml序列化處理和xml反序列化處理。
[0024]本發(fā)明的積極進步效果在于:本發(fā)明能夠在網(wǎng)站建設的過程中將前端和后端分別設置在不同的站點并能夠?qū)η昂蠖诉M行解耦和,優(yōu)化了網(wǎng)站建設的開發(fā)流程并且提升了網(wǎng)站部署的靈活性。
【專利附圖】
【附圖說明】
[0025]圖1為本發(fā)明的一較佳實施例的網(wǎng)站建設系統(tǒng)的結構示意圖。
[0026]圖2為本發(fā)明的一較佳實施例的網(wǎng)站建設方法的流程圖。
【具體實施方式】
[0027]下面結合附圖給出本發(fā)明較佳實施例,以詳細說明本發(fā)明的技術方案。
[0028]如圖1所示,本發(fā)明的網(wǎng)站建設系統(tǒng)包括至少一個前端服務器站點1、至少一個后端服務器站點2以及一狀態(tài)機服務裝置3,所述至少一個后端服務器站點2具有一個統(tǒng)一的API接口 4,所述狀態(tài)機服務裝置3包括一登錄狀態(tài)記錄模塊5及一登錄狀態(tài)查詢模塊6。
[0029]所述前端服務器站點I對于用戶的操作給予相應,當用戶需要采用一目標數(shù)據(jù)進行網(wǎng)站建設時,會向所述前端服務器站點I輸入給定的參數(shù),而所述前端服務器站點I的數(shù)據(jù)請求處理邏輯會收集用戶給定的參數(shù),依照業(yè)務參數(shù)請求協(xié)議中執(zhí)行的規(guī)則,對目標數(shù)據(jù)請求業(yè)務的業(yè)務類型、業(yè)務參數(shù)等進行json序列化處理,并通過HTTP協(xié)議以ajax方式向所述API接口 4發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務。
[0030]其中,對于網(wǎng)站頁面來說,ajax方式是異步的,所以不會對頁面在瀏覽器端的渲染造成阻塞,而目標數(shù)據(jù)請求業(yè)務中請求的目標數(shù)據(jù)的內(nèi)容格式可以是j son格式,也可以是其他的輕量級的數(shù)據(jù)格式。
[0031]所述后端服務器站點2可以部署為集群模式,即同時將大量的后端服務器站點集合在一起,當集群中的某一個后端服務器站點2響應用戶的數(shù)據(jù)請求后,所述API接口 4就會被激活,而所述API接口 4會根據(jù)業(yè)務參數(shù)請求協(xié)議中執(zhí)行的規(guī)則,對經(jīng)過json序列化處理后的目標數(shù)據(jù)請求業(yè)務進行json反序列化處理,從而解析出目標數(shù)據(jù)請求業(yè)務中的業(yè)務類型以及業(yè)務參數(shù)等。
[0032]所述API接口 4接著會從某一個后端服務器站點2中提取出用戶需要的目標數(shù)據(jù),并通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至相應的前端服務器站點I。其中,通過所述API接口 4來獲取所述目標數(shù)據(jù)的相應的接口函數(shù)都是可以事先設計的,并且是可以被其他項目的應用所調(diào)用的。同時通過采用接口函數(shù)來實現(xiàn)API調(diào)用,使得前端和后端的數(shù)據(jù)不再是完全唯一對應的,從而實現(xiàn)了對前端和后端進行解耦和,同時,通過定義接口函數(shù)的統(tǒng)一框架也方便了其他網(wǎng)站建設項目的應用的調(diào)用,為網(wǎng)站建設的擴展奠定了基礎。并且,整合后的接口具有普遍的應用場景以及易于擴展的契約規(guī)范,對于實際業(yè)務的快速上線,特別是在多個平臺的快速上線起到了很明顯的作用。
[0033]后端服務器可以采用RESTful架構(一種滿足客戶端和服務器之間的交互請求之間是無狀態(tài)的這一原則的網(wǎng)絡系統(tǒng)的架構樣式)來提供接口,也可以采用WebService方式(一個平臺獨立的、松耦合的、自包含的、基于可編程的網(wǎng)絡應用程序)來提供接口,當然,也可以同時采用兩種方式來提供接口。
[0034]而所述前端服務器站點I在接收到目標數(shù)據(jù)后,還根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染。在本發(fā)明中,前端頁面的開發(fā)和渲染主要采用HTML+JS的方式,在網(wǎng)站建設的過程中只要API接口協(xié)議確定,前端的開發(fā)人員就可以模擬接口數(shù)據(jù)來獨自開發(fā),完成前端數(shù)據(jù)展現(xiàn)以及交互操作后,直接把模擬接口的數(shù)據(jù)換成Ajax調(diào)用API接口 4即可。性能上Ajax采用異步的調(diào)用方式,對于前端頁面的展現(xiàn)也更為流暢與友好。
[0035]而前端頁面的呈現(xiàn)與現(xiàn)有技術相比在性能上會有一定的提升。以asp.net框架來進行網(wǎng)站建設為例:在asp.net的開發(fā)框架下,所有的前端頁面都是需要經(jīng)過服務器處理后才再傳給客戶端瀏覽器去解析的,哪怕前端頁面全部是HTML代碼也是如此,服務器在處理過程中會對頁面中的所有內(nèi)容進行掃描,對其中的服務器端控件進行解析。而在本發(fā)明中,前端頁面全部采用HTML+JS的框架,不需要服務器端的預處理過程,直接傳至客戶端瀏覽器,由客戶端瀏覽器負責解析所有HTML代碼以及運行JS代碼,相應性能提高了很多。
[0036]本發(fā)明的部署也更具靈活性,如果后端壓力大,可以單獨對后端服務進行橫向擴充,以滿足性能上的要求;而現(xiàn)有技術架構只能是整個網(wǎng)站全部的橫向擴充,擴展顆粒度會比較大,相對效果不如本發(fā)明的架構明顯。
[0037]同時,在本發(fā)明中,所述登錄狀態(tài)記錄模塊5會記錄向所述前端服務器站點I發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶的登錄狀態(tài),即用戶在發(fā)出目標數(shù)據(jù)請求業(yè)務時,其中的一些具有登錄權限的用戶可以在輸入用戶名和密碼登錄后再發(fā)送。
[0038]由于不同的用戶需要的目標數(shù)據(jù)也是不同的,當所述目標數(shù)據(jù)符合一定的預設條件時,就說明目標數(shù)據(jù)非常重要,此時對于重要數(shù)據(jù),就必須由具有登錄權限的用戶登錄后發(fā)出相應請求,才能夠獲取到,而對于一般的沒有登錄的用戶,則不允許獲取重要數(shù)據(jù)。
[0039]因此所述登錄狀態(tài)查詢模塊6會在所述目標數(shù)據(jù)符合預設條件時,從所述登錄狀態(tài)記錄模塊5中查詢發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶是否登錄,若是,則啟用所述API接口 4執(zhí)行上述的動作,將重要數(shù)據(jù)傳輸給具有權限的用戶,若否,則通過HTTP協(xié)議將一出錯信息發(fā)送至所述前端服務器站點I進行輸出顯示。
[0040]在本實施例中,通過所述網(wǎng)站建設系統(tǒng)能夠解決如端后端開發(fā)I禹合過緊、部署靈活性不足的問題,實現(xiàn)了后端業(yè)務數(shù)據(jù)一次開發(fā),多站點使用,前端頁面可靈活根據(jù)不同應用需求獨立開發(fā)單獨部署。
[0041]另一方面通過所述狀態(tài)機服務裝置解決了用戶登錄驗證的問題,實現(xiàn)了部分重要業(yè)務數(shù)據(jù)只有在請求用戶已經(jīng)是登錄狀態(tài)后方可成功調(diào)用。同時,可實現(xiàn)后端服務器的負載均衡部署,大大提高了后端服務器的橫向擴展性。
[0042]并且,本發(fā)明用最少的開發(fā)量完成多種不同應用的部署,各種前端應用共用一套后臺服務,以統(tǒng)一的API接口規(guī)范數(shù)據(jù)格式,減少了多個類似應用的維護成本,提高了網(wǎng)站建設的可靠性。
[0043]如圖2所示,本發(fā)明利用本實施例的網(wǎng)站建設系統(tǒng)實現(xiàn)的網(wǎng)站建設方法包括以下步驟:
[0044]步驟101、所述前端服務器站點I對目標數(shù)據(jù)請求業(yè)務進行json序列化處理,并通過HTTP協(xié)議以ajax方式向所述API接口 4發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務。
[0045]步驟102、在所述目標數(shù)據(jù)符合預設條件時,所述登錄狀態(tài)查詢模塊6從所述登錄狀態(tài)記錄模塊5中查詢發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶是否登錄,若是,則執(zhí)行步驟103,若否,則執(zhí)行步驟105。
[0046]步驟103、所述API接口 4對通過json序列化處理后的所述目標數(shù)據(jù)請求業(yè)務進行json反序列化處理,并從一后端服務器站點2中提取目標數(shù)據(jù),通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至所述前端服務器站點I。
[0047]步驟104、所述前端服務器站點I根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染,然后結束流程。
[0048]步驟105、通過HTTP協(xié)議將一出錯信息發(fā)送至所述前端服務器站點I進行輸出顯示,然后結束流程。
[0049]雖然以上描述了本發(fā)明的【具體實施方式】,但是本領域的技術人員應當理解,這些僅是舉例說明,本發(fā)明的保護范圍是由所附權利要求書限定的。本領域的技術人員在不背離本發(fā)明的原理和實質(zhì)的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護范圍。
【權利要求】
1.一種網(wǎng)站建設系統(tǒng),其特征在于,其包括至少一個前端服務器站點以及至少一個后端服務器站點,所述至少一個后端服務器站點具有一統(tǒng)一的API接口; 每個所述前端服務器站點均用于對目標數(shù)據(jù)請求業(yè)務進行序列化處理,并通過HTTP協(xié)議以ajax方式向所述API接口發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務; 所述API接口用于對序列化處理后的所述目標數(shù)據(jù)請求業(yè)務進行反序列化處理,并從一后端服務器站點中提取目標數(shù)據(jù),通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至所述前端服務器站點; 所述前端服務器站點還用于根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染。
2.如權利要求1所述的網(wǎng)站建設系統(tǒng),其特征在于,所述網(wǎng)站建設系統(tǒng)還包括一登錄狀態(tài)記錄模塊及一登錄狀態(tài)查詢模塊,所述登錄狀態(tài)記錄模塊用于記錄向所述前端服務器站點發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶的登錄狀態(tài); 所述登錄狀態(tài)查詢模塊用于在所述目標數(shù)據(jù)符合預設條件時,從所述登錄狀態(tài)記錄模塊中查詢發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶是否登錄,若是,則啟用所述API接口,若否,則通過HTTP協(xié)議將一出錯信息發(fā)送至所述前端服務器站點進行輸出顯示。
3.如權利要求2所述的網(wǎng)站建設系統(tǒng),其特征在于,所述前端服務器站點采用HTML+JS的方式進行網(wǎng)站頁面的排版和渲染。
4.如權利要求1-3中任意一項所述的網(wǎng)站建設系統(tǒng),其特征在于,所述序列化處理和反序列化處理分別為json序列化處理和json反序列化處理或xml序列化處理和xml反序列化處理。
5.一種網(wǎng)站建設方法,其特征在于,其利用如權利要求1所述的網(wǎng)站建設系統(tǒng)實現(xiàn),所述網(wǎng)站建設方法包括以下步驟: 51、所述前端服務器站點對目標數(shù)據(jù)請求業(yè)務進行序列化處理,并通過HTTP協(xié)議以ajax方式向所述API接口發(fā)送序列化處理后的所述目標數(shù)據(jù)請求業(yè)務; 52、所述API接口對序列化處理后的所述目標數(shù)據(jù)請求業(yè)務進行反序列化處理,并從一后端服務器站點中提取目標數(shù)據(jù),通過HTTP協(xié)議將所述目標數(shù)據(jù)發(fā)送至所述前端服務器站點; 53、所述前端服務器站點根據(jù)所述目標數(shù)據(jù)進行網(wǎng)站頁面的排版和渲染。
6.如權利要求5所述的網(wǎng)站建設方法,其特征在于,所述網(wǎng)站建設系統(tǒng)還包括一登錄狀態(tài)記錄模塊及一登錄狀態(tài)查詢模塊,所述登錄狀態(tài)記錄模塊用于記錄向所述前端服務器站點發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶的登錄狀態(tài); 步驟S1和S2之間還包括一步驟S11:在所述目標數(shù)據(jù)符合預設條件時,所述登錄狀態(tài)查詢模塊從所述登錄狀態(tài)記錄模塊中查詢發(fā)出所述目標數(shù)據(jù)請求業(yè)務的用戶是否登錄,若是,則執(zhí)行步驟S2,若否,則通過HTTP協(xié)議將一出錯信息發(fā)送至所述前端服務器站點進行輸出顯示,然后結束流程。
7.如權利要求6所述的網(wǎng)站建設方法,其特征在于,所述前端服務器站點采用HTML+JS的方式進行網(wǎng)站頁面的排版和渲染。
8.如權利要求5-7中任意一項所述的網(wǎng)站建設方法,其特征在于,所述序列化處理和反序列化處理分別為json序列化處理和json反序列化處理或xml序列化處理和xml反序列化處理。
【文檔編號】G06F9/44GK104426983SQ201310401380
【公開日】2015年3月18日 申請日期:2013年9月5日 優(yōu)先權日:2013年9月5日
【發(fā)明者】徐遐齡, 潘衛(wèi), 梁曉靖, 江志超 申請人:攜程計算機技術(上海)有限公司