首先,不管針對(duì)任何元素進(jìn)行可配置最終效果還是體現(xiàn)在界面上,主要包括兩個(gè)方面:一方面是功能菜單,另外一方面是功能頁面。
創(chuàng)新互聯(lián)建站是專業(yè)的鎮(zhèn)原網(wǎng)站建設(shè)公司,鎮(zhèn)原接單;提供網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鎮(zhèn)原網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
功能菜單作為原子功能的承載體,其包含的上下級(jí)及依賴關(guān)系直接反應(yīng)了功能可配置,而功能頁面的可定制化可有效的體現(xiàn)租戶的特性數(shù)據(jù)。對(duì)于常用SaaS設(shè)計(jì),功能菜單定制化可通過系統(tǒng)菜單框架來實(shí)現(xiàn),功能頁面定制化可通過功能頁面容器來實(shí)現(xiàn)。
其次,針對(duì)流程、數(shù)據(jù)、功能的可配置需通過三類主流的工作引擎來實(shí)現(xiàn)。流程可配置對(duì)應(yīng)的是工作流引擎,拓展數(shù)據(jù)的查詢、使用、提交及相應(yīng)的檢查可通過拓展數(shù)據(jù)引擎。最后,設(shè)計(jì)單獨(dú)的功能引擎,負(fù)責(zé)系統(tǒng)內(nèi)功能的調(diào)度和租戶功能的使用。
所以,可配置系統(tǒng)的運(yùn)行,需要包括系統(tǒng)菜單框架、功能頁面容器、工作流引擎、拓展數(shù)據(jù)引擎、功能引擎的配合。
下面將對(duì)其進(jìn)行一一的講解,需要說明的,下面只是簡單的介紹基本概念,至于具體詳細(xì)設(shè)計(jì),筆者將會(huì)在后續(xù)的文章中做進(jìn)一步說明。
系統(tǒng)菜單框架
系統(tǒng)菜單框架主要負(fù)責(zé)系統(tǒng)功能菜單的展示,其主要目的在于滿足租戶對(duì)功能菜單定制化的需求,依托功能菜單框架系統(tǒng)可根據(jù)租戶所配置的菜單進(jìn)行裝載。
需要注意是的,系統(tǒng)菜單框架需要依托功能引擎。因?yàn)樵趯?shí)際產(chǎn)品設(shè)計(jì)過程中,功能菜單背后所體現(xiàn)的是具體的原子功能。因此,需要結(jié)合功能引擎,在系統(tǒng)運(yùn)行過程中,功能引擎負(fù)責(zé)為對(duì)應(yīng)的功能菜單裝載功能。同時(shí),在菜單被點(diǎn)擊時(shí),由功能引擎負(fù)責(zé)對(duì)具體原子功能的調(diào)度和使用。
如上圖所示,功能菜單可直接展示給租戶查看并操作,但底層具體裝載和調(diào)度還是有功能引擎實(shí)現(xiàn),系統(tǒng)菜單框架只提供功能菜單的配置。
功能頁面容器
功能頁面容器主要解決的問題包含:頁面要素展示、頁面功能可用性、可配置數(shù)據(jù)展示、可配置數(shù)據(jù)提交。
頁面要素展示:頁面要素展示就是根據(jù)頁面的設(shè)計(jì)或租戶的配置,展示頁面的各種要素,在實(shí)際生產(chǎn)過程中租戶來源于各行各業(yè),不同的行業(yè)或公司有不同的設(shè)計(jì)要求,都需要在頁面要素展示中通過配置實(shí)現(xiàn)。 頁面功能可用性:根據(jù)租戶的購買行為,確定對(duì)應(yīng)的原子功能是否可用。針對(duì)不可使用功能,系統(tǒng)可設(shè)置為不可用或直接隱藏。 可配置數(shù)據(jù)展示:根據(jù)租戶針對(duì)頁面實(shí)現(xiàn)定義可配置數(shù)據(jù)列表,在頁面自動(dòng)展示。前面在《SaaS可配置化:數(shù)據(jù)可配置》中提及,用戶根據(jù)實(shí)際需要,會(huì)產(chǎn)生添加拓展數(shù)據(jù)的需求,在系統(tǒng)實(shí)際運(yùn)行過程中需要通過功能頁面容器對(duì)拓展數(shù)據(jù)實(shí)現(xiàn)特性化展示。 可配置數(shù)據(jù)提交:租戶針對(duì)頁面實(shí)體設(shè)計(jì)的可配置數(shù)據(jù)項(xiàng),當(dāng)頁面提交時(shí),從頁面實(shí)體中收集可配置的數(shù)據(jù)內(nèi)容,和頁面實(shí)體一并提交。針對(duì)需要進(jìn)行提交驗(yàn)證的數(shù)據(jù),采用正則表達(dá)式進(jìn)行驗(yàn)證。 拓展數(shù)據(jù)引擎
拓展數(shù)據(jù)引擎主要負(fù)責(zé)拓展數(shù)據(jù)的展示,拓展數(shù)據(jù)的提交,拓展數(shù)據(jù)的校驗(yàn)與保存。在實(shí)際生產(chǎn)過程中,拓展數(shù)據(jù)引擎需要依賴功能頁面容器來實(shí)現(xiàn),其主要工作方式為負(fù)責(zé)對(duì)應(yīng)拓展數(shù)據(jù)的轉(zhuǎn)換。例如:拓展數(shù)據(jù)展示時(shí),系統(tǒng)從后臺(tái)獲取對(duì)應(yīng)的數(shù)據(jù),交由拓展引擎負(fù)責(zé)對(duì)其進(jìn)行相應(yīng)的類型轉(zhuǎn)換,進(jìn)而完美的顯示到頁面。
功能引擎
功能引擎的實(shí)現(xiàn)最終還是需要依賴系統(tǒng)菜單框架及功能頁面容器兩方面的配合,功能引擎主要作用是依據(jù)租戶所購買的功能包為其分配對(duì)應(yīng)原子功能,而原子功能依托系統(tǒng)功能框架體現(xiàn)到用戶端。
在實(shí)際使用過程中,功能引擎會(huì)確定對(duì)應(yīng)的租戶是否可執(zhí)行相應(yīng)的功能或操作。
上述對(duì)可配置系統(tǒng)運(yùn)行的核心模塊做了簡單的介紹,后續(xù)將會(huì)根據(jù)實(shí)際工作需要,對(duì)其逐一進(jìn)行詳細(xì)說明。