026——傳統架構與前后端分離架構分析對比


微店項目技術框架是采用前后端分離模式。前端采用angularjs分層技術框架的基於純H5開發模式,后端采用的是springmvc分層技術框架的開發模式,前后端交互采用的是http通訊+json數據對象模式。

無論是前端還是后端都遵循mvc分層模式開發,這樣的前后端分離及分層模式,降低了系統各部件間的耦合性,前端基於H5的開發實現的客戶端可以發布成不同的形式,包括了PC版的網頁,移動版的網頁,微信公眾號微網站,甚至可以打包成原生APP的形式發布到安卓和Apple的應用市場上,如果繼續采用例如JSP等前后端融合一體的開發模式,那么將來在需要實現APP的時候,就需要重新組織項目開發團隊,無法利用已有的代碼。

之所以采用這種分離架構模式,主要是結合目前應用軟件的發展趨勢,一是、用戶越來越注重軟件的體驗感,隨着互聯網的蓬勃發展,應用開始走向多終端化;二是,大型應用架構模式正紛紛向着雲化、微服務化發展。分離架構模式使得系統接口更加服務化、代碼更加模塊化、功能更加組件化。

前后端分離架構的終極目標是前端和服務端是完全獨立的項目,前端項目包含展示層,服務端包含服務層、DAO層等,前端項目和后端項目采用相互約定的通訊報文格式,以高效的遠程調用框架做通訊介質。這樣項目開發的過程中,前端項目做前端的事情,服務項目做服務端的事情,使得前后端工程師分別自治,培養了其獨特的技術特性,這樣保證了前后端環境的純粹性,然后構建出一個全棧式的精益開發團隊。這樣的開發團隊能夠快速應對需求的變更以及市場的復雜多變,打造出架構清晰、前后端並重的優質產品。

傳統系統架構與前后端分離架構對比分析:

1、傳統系統架構沒有進行前后端分離,前端工程師負責編寫HTML,完成前端頁面設計,然后給后端工程師套界面,使用模板技術將前端代碼轉換為JSP頁面,同時內嵌JAVA代碼。應用運行期,將全部代碼進行打包,部署到同一服務器上,或者進行簡單的動靜態分離部署。

傳統項目開發流程如下:

1、前后端分離架構中,前端工程師只需要編寫HTML、JS、CSS等前端資源、然后通過HTTP請求調用后端提供的接口服務即可,除了開發期的分離、在運行期前后端資源也會進行分離部署。

前后端分離項目開發流程如下:

通過傳統架構與前后端分離架構對比,不難發現,在開發模式上,前后端分離不僅僅是工程師的分工開發,更重要的意義在於實現了前后端並行開發,簡化了開發流程。

傳統系統架構與前后端分離架構開發模式對比分析:

綜上所述,傳統的前后端混合開發模式,雖然久經考驗,到現在依然還是能夠支撐起應用的開發。但是放眼未來,應用的雲化、微服務化勢不可擋。同社會分工精細化一樣,前后端開發的精細化也是必然趨勢。技術在持續進步,架構在不斷演進,只有緊跟着發展的趨勢,不斷調整項目管理方式,軟件開發模式,才能夠在互聯網浪潮中把握機會,不斷前行。

 

以下對前后端分離架構進行具體分析:

 

6.1 前端技術架構

 

在最近的五年內,前端的開發技術相對后端技術有了更加快速的更新。出現了不少新的前端開發的框架,例如backbone, angularJs, react。在眾多的前端開發新技術中,我們進過多年的選型,優化,積累,鎖定了來自Google的優秀的angularJs框架做為開發的基礎框架,並且融合了長期對於保險行業的開發經驗的積累,目前已經形成了一套進入成熟應用期的項目框架。

 

AngularJs有着諸多特性,最為核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等。

AngularJS可以將應用封裝成模塊(module),只要是符合標准的模塊,就可以被其它項目利用。AngularJS通過內建的依賴注入子系統,可以幫助開發人員將自己開發的小模塊甚至是來自第三方的模塊組成一個更大的模塊。通過類似汽車行業通過全球采購零配件組裝的模式,迅速地搭建出復雜的應用。這也避免了花費大量的精力去開發一些比較通用的基礎組件。

通過AngularJS獨有的指令(Directives),我們甚至可以擴展基礎的HMTL,實現自定義的保險行業領域的特有標簽。例如:

<policy id=‘88432734565’></policy>

可以在html中直接使用<policy>這個原來不存在的標簽,使得html代碼變得非常簡介,並且提升語義,從而大大提高代碼的可維護性。

通過多年的AngularJS項目的開發積累的經驗,我們還形成了自己額外的有特色的更適合中國保險行業應用開發的項目框架。其中最核心的就是將保險業務邏輯封裝到API中。

 

通過提供API的手冊,可以極大地提高后續維護和二次開發的能力。

項目代碼結構

Ionic

 

Ionic 是目前最有潛力的一款 HTML5 手機應用開發框架。通過 SASS 構建應用程序,它提供了很多 UI 組件來幫助開發者開發強大的應用。 它使用 JavaScript MVVM 框架和AngularJS來增強應用。提供數據的雙向綁定,使用它成為 Web 和移動開發者的共同選擇。

Cordova

Cordova提供了一組設備相關的API,通過這組API,移動應用能夠以JavaScript訪問原生的設備功能,如攝像頭、麥克風等。

Cordova還提供了一組統一的JavaScript類庫,以及為這些類庫所用的設備相關的原生后台代碼。

Cordova支持如下移動操作系統:iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian;Cordova可以與其他手機操作系統的開發者配合開發出原生h5混合應用。

靈活部署

微店項目前端整體技術架構圖:

后端技術架構

后端采用MC分層開發模式,C為控制層,對外提供前端調用服務接口;M包含Service業務邏輯處理層、DAO持久化層,負責業務邏輯處理及數據的輸入及輸出。這種分層的開發模式使系統達到了更大的靈活性,每個層次可以使用不同的工具進行開發,並通過中間件技術將各個層次貫穿在一起,形成統一的整體。

下圖為后端系統包的層次划分:

后端系統架構分層詳細分析:

1、表現層:系統界面數據呈現及UI數據交互業務邏輯的角色。

2、服務層:為實現表現層與業務層的解耦,負責前后端數據交互。

3、業務層:采用SpringMVC開發模式,系統所需業務邏輯過程上的實現,並與下層數據訪問層的交互,業務層還包括核心中間件技術、包括第三方開源組件等等,另外業務層需要考慮到一些與數據訪問層交互的設計模式、模式中包括:事務腳本模式、表模塊模式、活動記錄模式及領域模型模式

4、持久層:采用了hibernate的ORM容器方式,主要作為提供數據持久化的功能,包括數據的讀取和寫入,另外還必須包括事務處理、並發控制等等。

5、數據庫:采用關系型oracle數據庫,基於客戶端/服務器技術,支持多用戶、大事物量的事物處理、數據安全性和完整性控制、分布式數據處理、可移植行等

微店項目后端整體技術架構圖:

 

 

         
         
         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM