客戶關(guān)系管理(CRM - Customer Relation Management)系統(tǒng),是SaaS實(shí)踐中的一個(gè)重要應(yīng)用姻政。我們不妨以此為例,就其傳統(tǒng)構(gòu)建過(guò)程和向SaaS 多租戶架構(gòu)演化的歷程总寒, 解析一般SaaS 多租戶架構(gòu)的構(gòu)建方法扶歪。
一理肺、用開源框架摄闸,構(gòu)建CRM系統(tǒng)的一般過(guò)程
如不考慮客戶數(shù)量善镰,及客戶不同的個(gè)性化需求,就單套CRM系統(tǒng)構(gòu)建而言年枕,其過(guò)程遵從架構(gòu)設(shè)計(jì)的結(jié)構(gòu)標(biāo)準(zhǔn) ——“4+1”視圖炫欺,即場(chǎng)景視圖、邏輯視圖熏兄、開發(fā)視圖品洛、過(guò)程視圖、物理視圖摩桶。
1桥状、構(gòu)建“場(chǎng)景視圖”
場(chǎng)景視圖(用例視圖),負(fù)責(zé)從用戶角度硝清,識(shí)別業(yè)務(wù)需求辅斟,描述業(yè)務(wù)場(chǎng)景。是架構(gòu)設(shè)計(jì)的起點(diǎn)和終點(diǎn)芦拿。根據(jù)CRM內(nèi)容士飒,具體構(gòu)建如下:
A. 場(chǎng)景描述
老板角度:了解客戶增減數(shù)量;了解客戶增減變化趨勢(shì)蔗崎;商務(wù)行程管理…
員工角度:保存和隨時(shí)查閱客戶資料酵幕;通過(guò)郵件、IM缓苛、IP電話與客戶保持及時(shí)溝通芳撒;商務(wù)行程管理…
B. 場(chǎng)景(用例)抽象
客戶管理:增、刪他嫡、改番官、查,客戶資料钢属;
行程管理:商務(wù)形成安排(客戶拜訪徘熔、合同談判);
訂單管理:已簽訂單的管理淆党;
C. 場(chǎng)景(用例)視圖
2酷师、構(gòu)建“邏輯視圖”
邏輯視圖,負(fù)責(zé)從對(duì)象角度染乌,構(gòu)建對(duì)象模型山孔,用以確立邏輯分層、模塊劃分荷憋、模塊功能台颠、模塊間依賴關(guān)系等。其中,模塊功能串前,既包括可見的業(yè)務(wù)功能瘫里,也包括不可見的系統(tǒng)功能(日志、權(quán)限荡碾、事務(wù)等)谨读。根據(jù)CRM內(nèi)容,具體構(gòu)建如下:
A. 模塊劃分及功能
[客戶]模塊坛吁、[行程]模塊劳殖、[訂單]模塊、[報(bào)表]模塊
B .模塊依賴關(guān)系
C. 模塊包含的業(yè)務(wù)對(duì)象
【客戶】模塊 — 客戶分組拨脉、客戶哆姻、聯(lián)系人;
【行程】模塊 — 時(shí)間玫膀、事項(xiàng)等填具;
【訂單】模塊 — 時(shí)間、客戶匆骗、訂單等劳景;
【報(bào)表】模塊 — ……
3、構(gòu)建“開發(fā)視圖”
開發(fā)視圖碉就,負(fù)責(zé)從開發(fā)角度盟广,描述軟件在開發(fā)環(huán)境下的靜態(tài)組織(程序包、應(yīng)用的統(tǒng)一框架瓮钥、引用的類庫(kù)筋量、SDK和中間件等),并規(guī)范和約束開發(fā)環(huán)境的結(jié)構(gòu)碉熄。邏輯視圖構(gòu)建好之后桨武,可從如下四個(gè)方面構(gòu)建開發(fā)視圖:
A.?開發(fā)環(huán)境
開發(fā)語(yǔ)言:Java、JavaScript锈津、Html ;
數(shù)據(jù)庫(kù)類型:MySQL 5.0 呀酸;
應(yīng)用服務(wù)器類型:Apache+JBOSS;
其他軟件:Ant、JUnit 等
相關(guān)硬件:略
B. 技術(shù)框架
開源框架:Struts+Spring+Hibernate框架結(jié)構(gòu)
調(diào)用視圖:Struts琼梆、Spring性誉、Hibernate向輕量級(jí)框架集的整合
C. 分層策略
數(shù)據(jù)持久層:也叫領(lǐng)域?qū)ο髮樱―omain Object),由POJO(Plain Old Java Object)組成;
DAO組件層:由DAO(Data Access Object)組件組成茎杂,一般封裝了對(duì)數(shù)據(jù)庫(kù)的CRUD原子操作错览;
業(yè)務(wù)邏輯組件層:一般由Service對(duì)象組成,實(shí)現(xiàn)系統(tǒng)所需要的業(yè)務(wù)邏輯處理煌往;
控制器層:用于攔截用戶請(qǐng)求倾哺,調(diào)用業(yè)務(wù)邏輯組件,根據(jù)處理結(jié)果轉(zhuǎn)發(fā)到不同的表現(xiàn)層組件;
表現(xiàn)層:一般由JSP組成羞海,負(fù)責(zé)接收用戶請(qǐng)求闲勺,反饋處理結(jié)果。
D. 目錄結(jié)構(gòu)
根據(jù)分層扣猫,制定目錄結(jié)構(gòu)如下
一級(jí)目錄包括:
Api: 存放service的接口定義源文件;
Action: 存放action的源文件和配置文件翘地;
Biz: 存放各模塊的業(yè)務(wù)邏輯組件和DAO組件申尤;
Bundle: 存放JSP和HTML文件;
deploy:存放構(gòu)建后待部署的jar文件衙耕。
biz目錄下根據(jù)模塊再分為dao和service目錄昧穿,以及它們的實(shí)現(xiàn)類目錄impl。
4橙喘、構(gòu)建“過(guò)程視圖”
過(guò)程視圖时鸵,負(fù)責(zé)從過(guò)程角度,描述系統(tǒng)的并發(fā)和同步設(shè)計(jì)厅瞎。旨在解決進(jìn)程饰潜、線程、并發(fā)和簸、同步彭雾、通信等方面的問(wèn)題。
過(guò)程視圖锁保,依場(chǎng)景而定是否必須薯酝,可根據(jù)具體需求做裁減操作。
5爽柒、構(gòu)建“物理視圖”
物理視圖(部署視圖)吴菠,負(fù)責(zé)從部署角度,描述軟硬件的映射關(guān)系浩村,以及系統(tǒng)在分布/部署上的設(shè)計(jì)做葵。旨在解決系統(tǒng)安裝、系統(tǒng)部署心墅、網(wǎng)絡(luò)分布等問(wèn)題蜂挪。
系統(tǒng)部署時(shí)將web服務(wù)器、應(yīng)用服務(wù)器和DB服務(wù)器分離嗓化,以保證業(yè)務(wù)繁忙時(shí)的響應(yīng)性能棠涮。
至此,CRM系統(tǒng)已基本成型刺覆。
二严肪、構(gòu)建符合“一級(jí)成熟度模型”特征的SaaS系統(tǒng)
原有CRM系統(tǒng)部署方案,做設(shè)備托管調(diào)整后,就是一套符合一級(jí)成熟度模型的SaaS系統(tǒng)了 驳糯。
然而篇梭,SaaS從“一級(jí)成熟度模型”向“四級(jí)成熟度模型”轉(zhuǎn)變,中間還橫跨著可配置酝枢、高性能和可伸縮的鴻溝恬偷。
我們會(huì)在以后的推送里做更加詳細(xì)的講解,感興趣的朋友可以關(guān)注我們的公眾號(hào)(ID:9z營(yíng)銷大數(shù)據(jù))帘睦。