本篇文章是對前兩篇設(shè)想文章商戶中臺解決方案以及解決方案編排架構(gòu) 的落地讶舰,標題暫時還叫中臺吧檐盟,隨著對業(yè)務(wù)更深入的理解以及在和集團中臺的合作上對這個名詞又有了新的認知,有些排斥這個概念。
背景
B端業(yè)務(wù)和C端業(yè)務(wù)有很大的不同,C端重點關(guān)注用戶體驗、用戶規(guī)模白粉、轉(zhuǎn)化以及創(chuàng)新功能,B端更關(guān)注在工作流程鼠渺、業(yè)務(wù)支撐鸭巴。從技術(shù)上來看給我們研發(fā)同學帶來的挑戰(zhàn)也有相當大的差異,C端更偏高并發(fā)等流量場景以及頁面會場的快速搭建能力系冗,用來支撐快速多變的創(chuàng)新玩法奕扣。B端則是需要解決復雜業(yè)務(wù)場景以及冗長的業(yè)務(wù)流程對研發(fā)帶來的沖擊薪鹦。
下圖是個大商家概念模型掌敬,從線下的POI興趣點到不同渠道的線上門店,在整個業(yè)務(wù)場景中貫穿了這么多概念池磁。
主流程擴展
上面的模型里面隱藏了整個供給流程奔害,在這個流程里面我們需要支撐不同業(yè)務(wù)方的各種定制需求,比如:新零售的資質(zhì)審核和餐飲的審核就有很大差異地熄。我們除了承接新零售的需求华临,還有很多業(yè)務(wù)方。每個業(yè)務(wù)方在不同環(huán)節(jié)都會有不同的定制端考。
如果是一塊代碼塊的話雅潭,大家很容易想到使用策略模式,把易變的邏輯通過接口提煉出來却特,各自實現(xiàn)自己的業(yè)務(wù)邏輯扶供。我們的現(xiàn)狀首先是供給流程跨了多個應(yīng)用,定制的邏輯散落在各個應(yīng)用里面裂明,由我們餐飲業(yè)務(wù)的研發(fā)負責開發(fā)其他業(yè)務(wù)的定制邏輯椿浓。這就帶來了兩個問題,一是業(yè)務(wù)邏輯雖然通過策略模式能夠在應(yīng)用級別上做隔離闽晦,但沒有做到應(yīng)用級別隔離扳碍;二是其他業(yè)務(wù)的邏輯由同批研發(fā)開發(fā),其他業(yè)務(wù)研發(fā)只能干等仙蛉,成為瓶頸笋敞。
后來驗證了內(nèi)部soa服務(wù)路由重新配置能力,在拉取路由配置的階段可以重新定制荠瘪,這就有了我們下面的想法液样,基于soa接口的多態(tài)調(diào)用振亮。
基于這個設(shè)想,我們搭建了SPI路由配置臺鞭莽,不同的業(yè)務(wù)可在這個配置臺上申請場景code以及需要擴展接口坊秸,并且把場景code和由各業(yè)務(wù)研發(fā)自行實現(xiàn)的soa服務(wù)做綁定。具體運行時架構(gòu)可以參考下圖澎怒。
此外我們還給增強了這個配置臺的能力褒搔,包括整體業(yè)務(wù)邏輯的表達,能夠擴展的擴展點介紹喷面。我們給這個平臺起了個名字:fishbone星瘾,fishbone一般用來分析問題的因果關(guān)系,對技術(shù)平臺來說整個骨架代表著我們的平臺業(yè)務(wù)惧辈,分叉的魚刺則表示每個業(yè)務(wù)的擴展琳状。
多流程擴展
除了一個供給主流程外,在業(yè)務(wù)的日常工作中以及B端的業(yè)務(wù)流程中盒齿,還有很多其他流程在復用不同的服務(wù)能力念逞。這很難不讓人想起使用工作流引擎來解決該類問題,這里我們對比了一些工作流引擎边翁,挑了個很輕量的開源的工作流引擎翎承,支持bpmn2.0,在此基礎(chǔ)上擴展了擴應(yīng)用調(diào)用的能力符匾,每個task節(jié)點都可以是一個soa服務(wù)叨咖。
總結(jié)
所以基于上述的兩類場景,整體架構(gòu)如下圖啊胶,fishbone解決主流程多擴展問題甸各,流程中心解決多流程問題。