本發(fā)明涉及計(jì)算機(jī)互聯(lián)網(wǎng)領(lǐng)域,特別是涉及開發(fā)網(wǎng)站與移動APP相關(guān)領(lǐng)域,尤其是一種面向服務(wù)的開發(fā)框架,即YC-Framework。
背景技術(shù):
在每個互聯(lián)網(wǎng)產(chǎn)品研發(fā)過程中,業(yè)務(wù)邏輯間的耦合性在現(xiàn)在IT產(chǎn)品中直接影響到產(chǎn)品的迭代速度、可維護(hù)性、可擴(kuò)展性,恰恰現(xiàn)有的各類開發(fā)框架均沒有達(dá)到靈活配置、跨平臺、跨語言、代碼高度可復(fù)用,僅僅實(shí)現(xiàn)了MVC模式開發(fā)。
目前市面上已有的一些互聯(lián)網(wǎng)開發(fā)框架主要有CakePHP、YII、Symfony、Laravel等,相比之下,這些產(chǎn)品的缺點(diǎn),一是,整個框架太重,運(yùn)行效率慢;二是,學(xué)習(xí)成本比較高;三是,這些產(chǎn)品只是一個基礎(chǔ)開發(fā)框架,在實(shí)際項(xiàng)目開發(fā)中,需要根據(jù)不同需求,定制開發(fā)不同的項(xiàng)目,項(xiàng)目復(fù)用性較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是:針對上述現(xiàn)有開發(fā)框架的問題與缺陷,本發(fā)明提供了一種面向服務(wù)(SOA)的開發(fā)框架(YC-Framework),其彌補(bǔ)了現(xiàn)有框架的短板:通過SOA將IT產(chǎn)品中遇到的各種功能業(yè)務(wù)抽象出來形成一個個高復(fù)用率的服務(wù),以獨(dú)立的服務(wù)形態(tài)服務(wù)所有的IT產(chǎn)品中的業(yè)務(wù)邏輯,對外提供穩(wěn)定、健壯的底層支撐;引入邏輯分層的設(shè)計(jì),包括API接口層、通訊協(xié)議層、數(shù)據(jù)邏輯層、系統(tǒng)服務(wù)層,通過簡單上下層的邏輯關(guān)系進(jìn)行互連;采用統(tǒng)一配置對API層、通訊協(xié)議層、數(shù)據(jù)邏輯層和系統(tǒng)服務(wù)層的所有配置信息進(jìn)行管理;采用公共組件實(shí)現(xiàn)路由、安全防范等工作;最終實(shí)現(xiàn)了一種高負(fù)載、可擴(kuò)展、可維護(hù)、快速迭代的面向服務(wù)的開發(fā)框架(YC-Framework)。
本發(fā)明的技術(shù)方案是:
提供一種面向服務(wù)的開發(fā)框架YC-Framework,包括API接口層、通訊協(xié)議層、數(shù)據(jù)邏輯層、系統(tǒng)服務(wù)層、公共組件和統(tǒng)一配置;其中,API接口層是框架輸入輸出數(shù)據(jù)流的對接口,實(shí)現(xiàn)提供異構(gòu)語言、異構(gòu)終端的接入能力,接口調(diào)用和適配能力,調(diào)用次數(shù)限制能力;通訊協(xié)議層為API接口層和數(shù)據(jù)邏輯層的中間通訊協(xié)議,通過標(biāo)準(zhǔn)的接口完成API接口層所需的協(xié)議翻譯,完成第三方服務(wù)的對接工作;數(shù)據(jù)邏輯層完成數(shù)據(jù)的讀寫和組裝,將請求所需的數(shù)據(jù)從服務(wù)層中獲取并完成數(shù)據(jù)處理的工作;系統(tǒng)服務(wù)層為整個框架的數(shù)據(jù)中心,包含多個獨(dú)立封裝的服務(wù),每個服務(wù)可以使用不同的開發(fā)語言開發(fā),各個服務(wù)定義通用的讀寫接口驅(qū)動,以適應(yīng)各種高性能的分布式系統(tǒng)以及根據(jù)后期應(yīng)用產(chǎn)品的迭代自由添加和刪除服務(wù),所述服務(wù)之間互不影響,服務(wù)資源共享,可擴(kuò)展,可重用;公共組件,實(shí)現(xiàn)開發(fā)框架內(nèi)部公共邏輯的處理工作;統(tǒng)一配置,涉及對API接口層、通訊協(xié)議層、數(shù)據(jù)邏輯層、系統(tǒng)服務(wù)層的所有配置信息的管理。
所述通訊協(xié)議層包含Restful標(biāo)準(zhǔn)數(shù)據(jù)格式協(xié)議和Soap、Socket、HTTP標(biāo)準(zhǔn)通信協(xié)議,通過協(xié)議實(shí)現(xiàn)了不同終端之間數(shù)據(jù)標(biāo)準(zhǔn)化交互。
所述不同終端包含APP、PC、H5、WAP。
所述系統(tǒng)服務(wù)層的多個服務(wù)包含:數(shù)據(jù)持久化服務(wù)、緩存服務(wù)、文件存儲服務(wù)、文件上傳服務(wù)、加密服務(wù)、分享組件服務(wù)、支付服務(wù)、消息通知服務(wù)、消息推送服務(wù)、定位服務(wù)、用戶認(rèn)證服務(wù)、郵件服務(wù)、短信服務(wù)、短地址服務(wù)、日志服務(wù)、錯誤處理服務(wù)、圖片處理服務(wù)、任務(wù)調(diào)度服務(wù)、隊(duì)列服務(wù)、表單生成服務(wù)、關(guān)鍵詞服務(wù)、用戶行為統(tǒng)計(jì)服務(wù)、模版引擎服務(wù)、流媒體服務(wù)。
所述統(tǒng)一配置進(jìn)行包括數(shù)據(jù)庫連接帳號密碼、第三方登陸帳號密碼、使用的通訊協(xié)議類型、數(shù)據(jù)庫類型、緩存類型的選擇配置工作。
所述系統(tǒng)服務(wù)層中各個服務(wù)封裝時的接口支持restful標(biāo)準(zhǔn)請求資源,實(shí)現(xiàn)JSON、XML雙格式自由切換。
所述公共組件包含路由組件、過濾組件、安全防范組件,主要是實(shí)現(xiàn)URI請求的解析、分發(fā)工作,對外部訪問所請求的數(shù)據(jù)進(jìn)行安全過濾以及安全防范,以及一些公共數(shù)據(jù)的轉(zhuǎn)換。
還提供了一種如權(quán)利要求1所述的開發(fā)框架YC-Framework的服務(wù)使用方法,包括如下步驟:
第一步:通過配置文件加載業(yè)務(wù)所需的服務(wù),完成基礎(chǔ)開發(fā)框架最小運(yùn)行環(huán)境;
第二步:從API接口層接收不同用戶終端的入口請求資源;
第三步:根據(jù)不同終端來源,通過路由表權(quán)限服務(wù)審核請求內(nèi)容的權(quán)限,如果權(quán)限有問題,進(jìn)入錯誤處理服務(wù),提示輸出原因;如果權(quán)限沒問題進(jìn)入下一步;
第四步:通過路由表服務(wù),分析終端請求資源內(nèi)容,將請求轉(zhuǎn)發(fā)到服務(wù)層;
第五步:根據(jù)服務(wù)層請求調(diào)度系統(tǒng)服務(wù)獲取請求所需的資源;
第六步:根據(jù)所請求的資源,對請求調(diào)度的服務(wù)進(jìn)行服務(wù)訪問配置;
第七步:負(fù)載均衡處理,根據(jù)后端服務(wù)壓力,動態(tài)分發(fā)請求資源內(nèi)容到不同后端服務(wù)上;
第八步:所請求資源對服務(wù)進(jìn)行讀或者寫訪問,根據(jù)讀寫動作的不同來獲取數(shù)據(jù);
第九步:獲取數(shù)據(jù)后,通過Restful標(biāo)準(zhǔn)輸出數(shù)據(jù),所述數(shù)據(jù)包含狀態(tài)數(shù)據(jù)和資源數(shù)據(jù),輸出數(shù)據(jù)標(biāo)準(zhǔn)格式為JSON或XML;
第十步 將上述輸出數(shù)據(jù)返回給用戶,結(jié)束請求,至此,完成了一個服務(wù)從請求到輸出的所有流程。
本發(fā)明的有益技術(shù)效果是:服務(wù)單例化,服務(wù)之間互不影響,服務(wù)不依賴于其他服務(wù)的上下文和狀態(tài),在實(shí)現(xiàn)時它不需要獲取從一個請求到另一個請求的信息或狀態(tài);服務(wù)資源可共享,可擴(kuò)展、可重用;松耦合化,不相關(guān)程序語言,不相關(guān)底層平臺,根據(jù)需要組合服務(wù);協(xié)議標(biāo)準(zhǔn)化,適用各種開放標(biāo)準(zhǔn)化協(xié)議;跨平臺、跨語言,將行業(yè)應(yīng)用從適配不同終端、不同業(yè)務(wù)系統(tǒng)的開發(fā)環(huán)節(jié)中解放出來,使研發(fā)人員專注于業(yè)務(wù)服務(wù)的實(shí)現(xiàn)和業(yè)務(wù)流程的優(yōu)化,縮短研發(fā)周期,提高了效率;安全可靠,框架本身有統(tǒng)一安全防范組件,適用所有服務(wù),保證服務(wù)安全性。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將結(jié)合附圖對具體實(shí)施例進(jìn)行描述,此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其附圖說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1所示為本發(fā)明的面向服務(wù)的開發(fā)框架的示意性結(jié)構(gòu)圖;
圖2所示為本發(fā)明的整體開發(fā)框架服務(wù)使用流程圖。
具體實(shí)施例
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。
本發(fā)明提供了一套有一定開發(fā)標(biāo)準(zhǔn)、代碼復(fù)用率高、可擴(kuò)展性高和穩(wěn)定運(yùn)行的成熟開發(fā)框架。
如圖1所示為本發(fā)明的面向服務(wù)的開發(fā)框架的示意性結(jié)構(gòu)圖。
本發(fā)明的開發(fā)框架按層主要劃分為4層:API接口層、通訊協(xié)議層、數(shù)據(jù)邏輯層、系統(tǒng)服務(wù)層。在業(yè)務(wù)應(yīng)用系統(tǒng)中使用分層的架構(gòu)模式,將系統(tǒng)在橫向維度上切分成幾個部分,每個部分負(fù)責(zé)一部分相對比較單一的職責(zé),然后通過上層對下層的依賴和調(diào)用組成一個完整的系統(tǒng),能給框架帶來源碼高度的可讀性、更低的耦合性。各層分別包括如下:
API接口層:是框架輸入輸出數(shù)據(jù)流的對接口,為實(shí)現(xiàn)一次開發(fā)適用于多種終端(APP、PC、H5、WAP),該層主要提供異構(gòu)語言、異構(gòu)終端的接入能力、不同終端接口調(diào)用和適配能力、調(diào)用次數(shù)限制能力等;
通訊協(xié)議層:該層為API接口層和數(shù)據(jù)邏輯層的中間通訊協(xié)議,通過標(biāo)準(zhǔn)的接口完成API接口層所需的協(xié)議翻譯工作;包含Restful標(biāo)準(zhǔn)數(shù)據(jù)格式協(xié)議和Soap、Socket、HTTP標(biāo)準(zhǔn)通信協(xié)議;
數(shù)據(jù)邏輯層:該層主要完成數(shù)據(jù)的讀寫和組裝,將請求所需的數(shù)據(jù)從系統(tǒng)服務(wù)層的多個服務(wù)中獲取、合并、并完成數(shù)據(jù)處理等工作;
系統(tǒng)服務(wù)層:該層為整個框架的數(shù)據(jù)中心,每種服務(wù)定義通用的讀寫接口驅(qū)動,使開發(fā)者不必關(guān)心服務(wù)背后能力的提供者是誰。
其中,系統(tǒng)服務(wù)層的各種服務(wù)經(jīng)過嚴(yán)謹(jǐn)?shù)姆庋b形成可獨(dú)立運(yùn)行的具有通用接口的代碼包,以適應(yīng)各種高性能的分布式系統(tǒng)以及根據(jù)后期應(yīng)用產(chǎn)品的迭代自由添加和刪除服務(wù)不影響產(chǎn)品的運(yùn)行,達(dá)到高可用要求。所述服務(wù)層的服務(wù)具體包括但不限于以下幾種:
數(shù)據(jù)持久化服務(wù):封裝Mysql、Mongodb、Oracle、SqlServer(MSSQL)標(biāo)準(zhǔn)的數(shù)據(jù)庫讀寫接口驅(qū)動,實(shí)現(xiàn)統(tǒng)一接口完成各種數(shù)據(jù)庫的對接工作;
緩存服務(wù):封裝Redis、Memcache、OPcache、Xcache, Filecache標(biāo)準(zhǔn)的緩存讀寫接口驅(qū)動,實(shí)現(xiàn)統(tǒng)一接口完成各種緩存應(yīng)用的對接工作;
文件存儲服務(wù):封裝文件系統(tǒng)的標(biāo)準(zhǔn)讀寫接口驅(qū)動,實(shí)現(xiàn)統(tǒng)一接口完成文件系統(tǒng)、TFS、NAS、云存儲系統(tǒng)的讀寫工作;
文件上傳服務(wù):封裝標(biāo)準(zhǔn)上傳接口驅(qū)動,實(shí)現(xiàn)統(tǒng)一接口驅(qū)動完成本地文件系統(tǒng)、第三方上傳接口的各種類型的文件上傳、驗(yàn)證、命名、上傳大小限制、文件類型限制、進(jìn)度條反饋等工作;
加密服務(wù):封裝主流加密方案RSA、DES、3DS、AES、MD5接口驅(qū)動,實(shí)現(xiàn)統(tǒng)一加解密接口,提高系統(tǒng)數(shù)據(jù)傳輸安全性;
分享組件服務(wù):封裝國內(nèi)外流行的第三方分享組件接口驅(qū)動,通過配置API密鑰實(shí)現(xiàn)分享功能的開關(guān);
支付服務(wù):封裝支付寶支付、微信支付、Apple Pay、貝寶統(tǒng)一的接口驅(qū)動,通過配置密鑰信息實(shí)現(xiàn)支付功能的開關(guān)和支付回調(diào)工作的處理;
消息通知服務(wù):封裝消息通知服務(wù)的接口驅(qū)動,所有業(yè)務(wù)系統(tǒng)內(nèi)部時時消息的通知,開放輪詢檢查是否有新消息、Socket時時推拉消息;
消息推送服務(wù):封裝推送服務(wù)的接口驅(qū)動,實(shí)現(xiàn)對接第三方推送服務(wù)極光、友盟、以及對接蘋果等推送接口,實(shí)現(xiàn)多平臺推送服務(wù);
定位服務(wù):封裝標(biāo)準(zhǔn)定位相關(guān)服務(wù)接口驅(qū)動,實(shí)現(xiàn)經(jīng)緯度信息上傳、計(jì)算距離、查找周邊、反查地址等工作;
用戶認(rèn)證服務(wù):封裝標(biāo)準(zhǔn)認(rèn)證服務(wù)接口驅(qū)動,實(shí)現(xiàn)基礎(chǔ)用戶認(rèn)證、OAuth、JWT等認(rèn)證體系;
郵件服務(wù):實(shí)現(xiàn)郵件服務(wù)標(biāo)準(zhǔn)接口驅(qū)動,實(shí)現(xiàn)第三方郵局以及自建郵局的郵件收發(fā)、解析郵件內(nèi)容等工作;
短信服務(wù):實(shí)現(xiàn)短信標(biāo)準(zhǔn)接口驅(qū)動,實(shí)現(xiàn)第三方短信提供商收發(fā)、解析短信內(nèi)容等工作;
短地址服務(wù):實(shí)現(xiàn)統(tǒng)一接口驅(qū)動,實(shí)現(xiàn)第三方短地址服務(wù)以及自建長連接轉(zhuǎn)換成端連接、端連接轉(zhuǎn)成長連接等工作;
日志服務(wù):實(shí)現(xiàn)統(tǒng)一的接口驅(qū)動,對系統(tǒng)關(guān)鍵、敏感信息使用標(biāo)準(zhǔn)接口記錄日志、分布式日志系統(tǒng)上傳等,提供數(shù)據(jù)統(tǒng)計(jì)分析業(yè)務(wù);
錯誤處理服務(wù):對系統(tǒng)級別、業(yè)務(wù)級別錯誤反饋提供統(tǒng)一接口驅(qū)動,供所有業(yè)務(wù)對接使用;
圖片處理服務(wù):實(shí)現(xiàn)圖片處理接口驅(qū)動,GD2庫、Imagick庫通過標(biāo)準(zhǔn)接口處理圖片文件壓縮、打水印、裁剪等工作,對移動端圖片返回指定分辨率下的圖片格式;
任務(wù)調(diào)度服務(wù):實(shí)現(xiàn)定時任務(wù)處理工作;
隊(duì)列服務(wù):實(shí)現(xiàn)隊(duì)列服務(wù)標(biāo)準(zhǔn)接口驅(qū)動,完成第三方隊(duì)列服務(wù)Redis、queue讀寫操作,實(shí)現(xiàn)先進(jìn)先出功能,解決需要有強(qiáng)制排隊(duì)要求的業(yè)務(wù)需求,如:在線排隊(duì)購票、排隊(duì)搶購等電商需求;
表單生成服務(wù):實(shí)現(xiàn)表單自定義配置生成功能;
關(guān)鍵詞服務(wù):實(shí)現(xiàn)違禁關(guān)鍵詞庫、敏感詞庫、搜索關(guān)鍵詞庫等功能數(shù)據(jù);
用戶行為統(tǒng)計(jì)服務(wù):實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)數(shù)據(jù)采集、用戶訪問量/頁面訪問量/IP訪問量統(tǒng)計(jì)、生成統(tǒng)計(jì)報(bào)表;
模版引擎服務(wù):實(shí)現(xiàn)支持模版引擎接口驅(qū)動,可按照需求切換至的模版引擎如Smarty等,實(shí)現(xiàn)前端HTML頁面渲染服務(wù);
流媒體服務(wù):實(shí)現(xiàn)音視頻推流、轉(zhuǎn)碼、拉流、錄制等標(biāo)準(zhǔn)接口驅(qū)動,實(shí)現(xiàn)在線音視頻的直播、點(diǎn)播服務(wù),同時可以基于文件存儲服務(wù)將錄制的音視頻文件進(jìn)行持久化存儲。
同時,在本發(fā)明的開發(fā)框架內(nèi)還建立了多個公共組件,以完成框架的路由、安全防范等工作。各組件具體包括:
路由組件:實(shí)現(xiàn)URI請求的解析、分發(fā)工作,將業(yè)務(wù)系統(tǒng)所需的資源分發(fā)定位到框架內(nèi)資源位置。主要包括路由表權(quán)限服務(wù)和路由表服務(wù)。
安全防范組件:針對URI請求地址中存在的各種危險(xiǎn)進(jìn)行處理,即URI請求防范,防范惡意IP攻擊以及配置IP訪問權(quán)限。其中,URI請求防范包括:SQL注入過濾、XSS漏洞過濾、CRSF跨站請求處理、文件上傳安全檢測處理、下載文件目錄安全以及文件類型檢測處理;IP訪問權(quán)限包括:訪問控制表(ACL)配置,允許和屏蔽指定IP或者IP段訪問應(yīng)用,對于異常訪問的IP地址進(jìn)行指定時間內(nèi)自動封鎖IP。例如,安全防范組件可以實(shí)現(xiàn)SQL注入攻擊防范。如果在編寫SQL語句的時候,用戶輸入的變量不是直接嵌入到SQL語句。而是通過參數(shù)來傳遞這個變量的話,那么就可以有效的防治SQL注入式攻擊。也就是說,用戶的輸入絕對不能夠直接被嵌入到SQL語句中。與此相反,用戶的輸入的內(nèi)容必須進(jìn)行過濾,或者使用參數(shù)化的語句來傳遞用戶輸入的變量。參數(shù)化的語句使用參數(shù)而不是將用戶輸入變量嵌入到SQL語句中。采用這種措施,可以杜絕大部分的SQL注入式攻擊。該安全防范組件還可以實(shí)現(xiàn)CSRF攻擊防范、XSS跨站攻擊防范等。
過濾組件:實(shí)現(xiàn)了對用戶輸入輸出數(shù)據(jù)的格式化過濾,對特殊字符,空格,非法字符,進(jìn)行搜索過濾,替換,對HTML.JS等數(shù)據(jù)進(jìn)行格式化過濾處理。
數(shù)據(jù)轉(zhuǎn)換組件:實(shí)現(xiàn)了各類數(shù)據(jù)類型格式的轉(zhuǎn)換,排序算法,數(shù)據(jù)格式化輸出等模塊需求。
另外,本發(fā)明的開發(fā)框架還包括統(tǒng)一配置,涉及API接口層、通訊協(xié)議層、數(shù)據(jù)邏輯層、系統(tǒng)服務(wù)層的所有配置信息的管理,包括數(shù)據(jù)庫連接帳號密碼、第三方登陸帳號密碼、使用的通訊協(xié)議類型、數(shù)據(jù)庫類型、緩存類型的選擇配置等工作。配置是將一組為實(shí)現(xiàn)某一特定項(xiàng)目功能需求為目的的服務(wù)集合并通過平臺公共模塊相互關(guān)聯(lián)形成針對該項(xiàng)目的一整套開發(fā)框架,其中每一個服務(wù)功能稱為一個配置項(xiàng)。
各個服務(wù)封裝時的接口支持restful標(biāo)準(zhǔn)請求資源,實(shí)現(xiàn)JSON、XML雙格式自由切換;具體接口設(shè)計(jì)如下:
單資源( singular-resourceX )
url樣例:order/ (order即指那個單獨(dú)的資源X)
GET – 返回一個新的order,
POST- 創(chuàng)建一個新的order,從post請求攜帶的內(nèi)容獲取值。
單資源帶id(singular-resourceX/{id} )
URL樣例:order/1 ( order即指那個單獨(dú)的資源X ),
GET – 返回id是1的order
DELETE – 刪除id是1的order,
PUT – 更新id是1的order,order的值從請求的內(nèi)容體中獲取。
復(fù)數(shù)資源(plural-resourceX/)
URL樣例:orders/
GET – 返回所有orders。
復(fù)數(shù)資源查找(plural-resourceX/search)
URL樣例:orders/search?name=123
GET – 返回所有滿足查詢條件的order資源。(實(shí)例查詢,無關(guān)聯(lián)) – order名字等于123的。
復(fù)數(shù)資源查找(plural-resourceX/searchByXXX)
URL樣例:orders/searchByItems?name=ipad
GET – 將返回所有滿足自定義查詢的orders – 獲取所有與items名字是ipad相關(guān)聯(lián)的orders。
單數(shù)資源(singular-resourceX/{id}/pluralY)
URL樣例:order/1/items/ (這里order即為資源X,items是復(fù)數(shù)資源Y)
GET – 將返回所有與order id 是1關(guān)聯(lián)的items。
singular-resourceX/{id}/singular-resourceY/
URL樣例:order/1/item/
GET – 返回一個瞬時的新的與order id是1關(guān)聯(lián)的item實(shí)例,
POST – 創(chuàng)建一個與order id 是1關(guān)聯(lián)的item實(shí)例,Item的值從post請求體中獲取。
singular-resourceX/{id}/singular-resourceY/{id}
URL樣例:order/1/item/2/package/
GET – 返回一個瞬時的新的與item2和order1關(guān)聯(lián)的package實(shí)例,
POST – 創(chuàng)建一個新的與item 2和order1關(guān)聯(lián)的package實(shí)例,package的值從post請求體中獲得。
圖2所示為本發(fā)明的整體開發(fā)框架服務(wù)使用流程圖。其中的重要業(yè)務(wù)流程包括:
第一步:通過配置文件加載業(yè)務(wù)所需的服務(wù),完成基礎(chǔ)開發(fā)框架最小運(yùn)行環(huán)境;
第二步:從API接口層接收不同用戶終端(APP、PC、H5、WAP)的入口請求資源;
第三步:根據(jù)不同終端來源,通過路由表權(quán)限服務(wù)審核請求內(nèi)容的權(quán)限,如果權(quán)限有問題,進(jìn)入錯誤處理服務(wù),提示輸出原因;如果權(quán)限沒問題進(jìn)入下一步;
第四步:通過路由表服務(wù),分析終端請求資源內(nèi)容,將請求轉(zhuǎn)發(fā)到服務(wù)層;
第五步:根據(jù)服務(wù)層請求調(diào)度系統(tǒng)服務(wù)獲取請求所需的資源;
第六步:根據(jù)所請求的資源,對請求調(diào)度的服務(wù)進(jìn)行服務(wù)訪問配置;
第七步:負(fù)載均衡處理,根據(jù)后端服務(wù)壓力,動態(tài)分發(fā)請求資源內(nèi)容到不同后端服務(wù)上;
第八步:所請求資源對服務(wù)進(jìn)行讀或者寫訪問,根據(jù)讀寫動作的不同來獲取數(shù)據(jù);
第九步:獲取數(shù)據(jù)后,通過Restful標(biāo)準(zhǔn)輸出數(shù)據(jù),所述數(shù)據(jù)包含狀態(tài)數(shù)據(jù)和資源數(shù)據(jù),輸出數(shù)據(jù)標(biāo)準(zhǔn)格式為JSON和XML格式;
第十步 將上述輸出數(shù)據(jù)返回給用戶,結(jié)束請求,至此,完成了一個服務(wù)從請求到輸出的所有流程。
例如,具體調(diào)度一個數(shù)據(jù)持久化服務(wù)時的步驟主要如下:
第一至第三步同上所述;
第四步:通過分析終端請求內(nèi)容,通過路由表服務(wù),分發(fā)到不同的業(yè)務(wù)處理上;業(yè)務(wù)處理分發(fā)到數(shù)據(jù)持久化服務(wù),根據(jù)數(shù)據(jù)化持久服務(wù)配置,選取數(shù)據(jù)持久化服務(wù)中配置,存取不同的數(shù)據(jù);
第五步:數(shù)據(jù)持久化服務(wù)配置,配置了對數(shù)據(jù)庫,庫,表,訪問用戶,端口,分表規(guī)則等配置訪問;
第六步:負(fù)載均衡處理,根據(jù)后端數(shù)據(jù)庫服務(wù)壓力,動態(tài)分發(fā)終端請求內(nèi)容到不同后端數(shù)據(jù)庫服務(wù)上;
第七步:根據(jù)終端訪問數(shù)據(jù)的讀寫不同動作,根據(jù)讀寫動作的不同,動態(tài)分發(fā)請求到不同的數(shù)據(jù)庫服務(wù)器;
第八步:數(shù)據(jù)訪問,針對不同的數(shù)據(jù)庫,制定統(tǒng)一的訪問機(jī)制,統(tǒng)一規(guī)則訪問;
第九步:根據(jù)終端訪問請求,獲取數(shù)據(jù)后,通過Restful標(biāo)準(zhǔn)輸出數(shù)據(jù),輸出內(nèi)容格式為JSON/XML;
第十步:請求結(jié)束,返回給用戶終端訪問狀態(tài)和資源數(shù)據(jù)。至此,完成了一個具有數(shù)據(jù)持久化功能的開發(fā)框架數(shù)據(jù)的輸出。
上述方法還支持多個服務(wù)并發(fā)處理。
本發(fā)明未涉及的部分均與現(xiàn)有技術(shù)相同或可利用現(xiàn)有技術(shù)加以實(shí)現(xiàn)。