李潤(rùn)龍 楊延喆 葛萌
關(guān)鍵詞:微信小程序;目標(biāo)考核管理系統(tǒng);MVVM模式;SSMSD框架
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-8228(2023)11-167-05
0 引言
目標(biāo)考核是高等院校每年必做的一項(xiàng)重要工作,目標(biāo)考核從多個(gè)指標(biāo)來(lái)考核各二級(jí)學(xué)院或者教職工年度任務(wù)完成情況。據(jù)了解,目前各高校在實(shí)施目標(biāo)考核工作時(shí),存在著如下問(wèn)題:①部分院校還停留在手工統(tǒng)計(jì)階段,僅有部分指標(biāo)有其對(duì)應(yīng)的管理系統(tǒng)(如科研部分有對(duì)應(yīng)的科研管理系統(tǒng)),沒(méi)有一個(gè)整體圍繞目標(biāo)考核工作的信息系統(tǒng),“信息孤島”問(wèn)題嚴(yán)重制約了目標(biāo)考核工作;②已有目標(biāo)考核系統(tǒng)的院校,教師用戶在數(shù)據(jù)錄入時(shí)只能通過(guò)PC 端進(jìn)行操作,而缺少移動(dòng)端相關(guān)應(yīng)用程序的支撐。
依據(jù)上述背景,本文設(shè)計(jì)并實(shí)現(xiàn)了一款高等院校目標(biāo)考核管理系統(tǒng)。其客戶端包括PC 和微信小程序兩部分,服務(wù)器端采用輕量級(jí)Java EE 平臺(tái)-SSMSD框架進(jìn)行設(shè)計(jì)并實(shí)現(xiàn),PC 客戶端采用HTML5+Vue.js進(jìn)行設(shè)計(jì)并實(shí)現(xiàn)。微信小程序?yàn)榻處熡脩翡浫肟己藬?shù)據(jù)提供了便利。
1 相關(guān)技術(shù)
1.1 微信小程序及開(kāi)發(fā)方案
微信小程序是微信功能擴(kuò)展的重要接口,相對(duì)于傳統(tǒng)的手機(jī)APP,利用微信小程序開(kāi)發(fā)的應(yīng)用程序具有安裝簡(jiǎn)單、成本低、平臺(tái)兼容性好、節(jié)省手機(jī)內(nèi)存等特點(diǎn)[1-2]。依賴于龐大的微信用戶市場(chǎng),微信小程序便于推廣和普及。小程序云開(kāi)發(fā)[3]是微信團(tuán)隊(duì)與騰訊云攜手開(kāi)發(fā)的一套小程序的解決方案。該方案提供了簡(jiǎn)單易上手的API,可以滿足基本的業(yè)務(wù)開(kāi)發(fā)需求,無(wú)需購(gòu)買(mǎi)服務(wù)器、數(shù)據(jù)庫(kù)等后端資源[4]。與傳統(tǒng)開(kāi)發(fā)模式相比,具有節(jié)約成本、開(kāi)發(fā)效率高、穩(wěn)定性好等優(yōu)點(diǎn)。
1.2 SSMSD 框架
SSMSD 框架是Spring MVC+Spring+MyBatis+Spring Data 的簡(jiǎn)稱,它是目前主流的Java EE 服務(wù)器端的輕量級(jí)開(kāi)發(fā)框架,具有運(yùn)行速度快、開(kāi)發(fā)效率高等特點(diǎn)。Spring 框架包含兩大核心技術(shù)[5],分別是:IOC(Inverse of Controll, IOC)和AOP(Aspect OrientedProgramming, AOP)。IOC 用于JavaBean 對(duì)象的管理,包括Bean 的實(shí)例化、屬性設(shè)置、使用和銷(xiāo)毀。AOP 通過(guò)動(dòng)態(tài)代理技術(shù)以切面形式實(shí)現(xiàn)動(dòng)態(tài)方法增強(qiáng),用于權(quán)限驗(yàn)證、日志記錄、性能監(jiān)控、事務(wù)管理等場(chǎng)景。
Spring 能夠完成對(duì)Controller 和SqlSessionFactory 對(duì)象的依賴注入,實(shí)現(xiàn)對(duì)Spring MVC 和MyBatis 框架的整合。
Spring MVC 是一款請(qǐng)求驅(qū)動(dòng)類(lèi)型的框架,是Spring 的Web 組成部分。Spring MVC 基于MVC 模式,通過(guò)核心控制器、處理器映射器、處理器適配器、處理器和視圖解析器等組件將Web 應(yīng)用劃分為視圖、模型和控制器等部分,并確保它們之間的松耦合關(guān)系[6]。
MyBatis 框架對(duì)JDBC 進(jìn)行了輕量級(jí)封裝,解決了原生JDBC 進(jìn)行數(shù)據(jù)持久化操作時(shí)所產(chǎn)生的冗余度高、Java 代碼與SQL 語(yǔ)句耦合度高等缺點(diǎn)[7]。通過(guò)XML 文件或注解方式結(jié)合DAO 接口,實(shí)現(xiàn)SQL 語(yǔ)句和Java 對(duì)象之間的映射。
Spring Data 是Spring 中用來(lái)進(jìn)行數(shù)據(jù)源訪問(wèn)的子框架。Spring Data 提供了統(tǒng)一的方式進(jìn)行關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)的操作,包括基本的添加、刪除、修改、查詢、排序和分頁(yè)等。
1.3 MVVM 模式
MVVM(Model-View-ViewModel) 是在MVC 模式基礎(chǔ)上發(fā)展起來(lái)的一種前后端分離的設(shè)計(jì)模式[8]。其中Model 代表的是數(shù)據(jù)模型,存儲(chǔ)后端業(yè)務(wù)邏輯處理的結(jié)果。View 代表的是UI 組件,主要負(fù)責(zé)將模型數(shù)據(jù)展示給用戶。ViewModel 是一個(gè)同步View 和Model 的組件,它負(fù)責(zé)將Model 和View 解耦合,它能夠保證Model 中數(shù)據(jù)的發(fā)生及時(shí)在View 中展示出來(lái);相反,View 中數(shù)據(jù)變化時(shí)也能同步到Model 中保存。
2 系統(tǒng)分析
2.1 目標(biāo)考核工作流程
目標(biāo)考核通過(guò)設(shè)立指標(biāo)體系來(lái)考查二級(jí)學(xué)院的年度任務(wù)完成情況。指標(biāo)體系包括綜合指標(biāo)和業(yè)績(jī)指標(biāo)兩大類(lèi)。綜合指標(biāo)設(shè)立三級(jí)指標(biāo)體系,其中一級(jí)指標(biāo)包括:教育教學(xué)、科研與學(xué)科建設(shè)、師資隊(duì)伍、學(xué)生工作和黨建工作。每個(gè)一級(jí)指標(biāo)具有不同的占比。每個(gè)一級(jí)指標(biāo)包含若干二級(jí)指標(biāo),每個(gè)二級(jí)指標(biāo)包含若干三級(jí)指標(biāo)。每個(gè)三級(jí)指標(biāo)具有具體的得分計(jì)算規(guī)則。
年初由各職能部門(mén)按照所分管的指標(biāo)為各二級(jí)學(xué)院下達(dá)年度工作任務(wù)量,經(jīng)過(guò)發(fā)展規(guī)劃處將任務(wù)量審核后正式下達(dá)二級(jí)學(xué)院進(jìn)行實(shí)施。每位教職工按照指標(biāo)錄入相對(duì)應(yīng)的支撐數(shù)據(jù),由二級(jí)學(xué)院管理員以及對(duì)應(yīng)職能部門(mén)管理員審核后,生成對(duì)應(yīng)三級(jí)指標(biāo)的得分?jǐn)?shù)據(jù)。三級(jí)指標(biāo)得分累加得到二級(jí)指標(biāo)得分,二級(jí)指標(biāo)累加得到一級(jí)指標(biāo)得分,各一級(jí)指標(biāo)按權(quán)重累計(jì)得到綜合指標(biāo)得分,綜合指標(biāo)加上業(yè)務(wù)指標(biāo)得分即為某個(gè)二級(jí)學(xué)院年度考核最終得分。
2.2 角色劃分
經(jīng)過(guò)需求分析,系統(tǒng)中包含的角色有:教師、二級(jí)學(xué)院管理員、教務(wù)處管理員、科研處管理員、發(fā)展規(guī)劃處管理員、人事處管理員、黨委宣傳部管理員、黨委統(tǒng)戰(zhàn)部管理員、招就處管理員、團(tuán)委管理員、學(xué)科辦管理員、學(xué)生處管理員、招生就業(yè)處、校領(lǐng)導(dǎo)和系統(tǒng)管理員等多個(gè)角色。上述所有角色對(duì)應(yīng)的功能在PC 端都能完成,微信客戶端只提供教師角色功能。教師角色為系統(tǒng)中最重要的一個(gè)角色,主要承擔(dān)著錄入各項(xiàng)考核指標(biāo)數(shù)據(jù)的任務(wù),包括教學(xué)數(shù)據(jù)、科研數(shù)據(jù)、突出業(yè)績(jī)等三大部分。
2.3 系統(tǒng)功能模塊
主要模塊包括:指標(biāo)管理、教學(xué)數(shù)據(jù)管理、科研數(shù)據(jù)管理、突出業(yè)績(jī)管理、師資隊(duì)伍數(shù)據(jù)管理、學(xué)生工作數(shù)據(jù)管理、黨建數(shù)據(jù)管理、目標(biāo)任務(wù)管理、報(bào)表管理、信息查詢和系統(tǒng)維護(hù)。部分主要模塊功能如下:
教學(xué)數(shù)據(jù)管理模塊需要教師錄入教學(xué)任務(wù)、課程設(shè)計(jì)、出版的教材、獲批的教改項(xiàng)目、調(diào)課記錄、教師本人參加教學(xué)競(jìng)賽、指導(dǎo)學(xué)生的大創(chuàng)項(xiàng)目等信息。教學(xué)數(shù)據(jù)的審核部分歸二級(jí)學(xué)院管理員審核、部分歸教務(wù)處審核。
科研數(shù)據(jù)管理模塊需要教師錄入所發(fā)表的論文、申請(qǐng)的專(zhuān)利、獲批的項(xiàng)目(縱向和橫向)、出版的專(zhuān)著以及科研獲獎(jiǎng)等數(shù)據(jù)。這部分?jǐn)?shù)據(jù)由科研處管理員負(fù)責(zé)審核。
突出業(yè)績(jī)管理部分需要教師錄入指導(dǎo)學(xué)生獲獎(jiǎng)的各類(lèi)學(xué)科競(jìng)賽、教師個(gè)人獲得的榮譽(yù)稱號(hào)(例如學(xué)科帶頭人、學(xué)術(shù)帶頭人、各類(lèi)先進(jìn)等)、以及參與的各類(lèi)科研團(tuán)體(平臺(tái))等信息。指導(dǎo)學(xué)生獲獎(jiǎng)各類(lèi)競(jìng)賽由教務(wù)處負(fù)責(zé)審核,教師個(gè)人榮譽(yù)由人事處負(fù)責(zé)審核,參加各類(lèi)科研團(tuán)體由科研處負(fù)責(zé)審核。
系統(tǒng)維護(hù)是對(duì)各個(gè)學(xué)院以及教師在教學(xué)、科研和突出業(yè)績(jī)等活動(dòng)過(guò)程產(chǎn)生數(shù)據(jù)的查看和統(tǒng)計(jì),如日志記錄與統(tǒng)計(jì)報(bào)表。日志記錄是實(shí)時(shí)記錄用戶的相關(guān)活動(dòng);統(tǒng)計(jì)報(bào)表側(cè)重于整體狀況,以統(tǒng)計(jì)圖的形式反映不同年份、同一指標(biāo)的信息,并將信息進(jìn)行直觀的對(duì)比,為后續(xù)制定目標(biāo)任務(wù)等提供決策依據(jù)。
3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)架構(gòu)
系統(tǒng)總體采用Java EE 分層架構(gòu)[9]+前后端分離技術(shù)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),具體如圖1 所示。前端包括Web瀏覽器和微信小程序兩個(gè)平臺(tái),主要完成表示層的功能,包括頁(yè)面數(shù)據(jù)渲染、展示和用戶交互。后端共享一個(gè)Java EE 服務(wù)器端平臺(tái),包括控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層和數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)采用關(guān)系型數(shù)據(jù)庫(kù)MySQL 和非關(guān)系型數(shù)據(jù)庫(kù)MongoDB。每一層的具體功能如下:
⑴ 表示層:該層分為前端UI 和交互。前端UI 負(fù)責(zé)系統(tǒng)程序的頁(yè)面展示、數(shù)據(jù)渲染等功能,交互層負(fù)責(zé)一些簡(jiǎn)單的數(shù)據(jù)校驗(yàn)和前端的邏輯交互,并與控制層的Shiro 權(quán)限校驗(yàn)進(jìn)行關(guān)聯(lián),對(duì)用戶進(jìn)入系統(tǒng)后的行為進(jìn)行校驗(yàn)與授權(quán)。
⑵ 控制層:該層使用Spring MVC 框架負(fù)責(zé)具體業(yè)務(wù)流程的控制,完成客戶端的請(qǐng)求轉(zhuǎn)發(fā)以及響應(yīng)。使用Apache 的Shiro 框架對(duì)系統(tǒng)角色的權(quán)限進(jìn)行劃分。Shiro 中的Subject 可以理解為用戶的形參,用戶通過(guò)Subject 與系統(tǒng)進(jìn)行交互,用來(lái)實(shí)現(xiàn)登錄、退出、權(quán)限校驗(yàn)等操作。SecurityManager 是整個(gè)Shiro 框架的核心,它管理著所有Subject。Realms 用于用戶認(rèn)證授權(quán),可以通過(guò)繼承AuthorizingRealm 類(lèi)來(lái)實(shí)現(xiàn)自定義的Realm 方法。
⑶ 業(yè)務(wù)邏輯層:該層用來(lái)連接控制層和數(shù)據(jù)持久層,首先接收控制層傳入的參數(shù)通過(guò)定義Service 對(duì)象完成業(yè)務(wù)操作,然后定義持久層需要的PO 對(duì)象,調(diào)用持久層DAO 對(duì)象完成持久化操作。上述過(guò)程需要的Controller、Service 以及DAO 對(duì)象都納入SpringIOC 容器進(jìn)行管理。
⑷ 數(shù)據(jù)持久層:數(shù)據(jù)持久層主要用來(lái)與數(shù)據(jù)源進(jìn)行交互,為應(yīng)用系統(tǒng)提供獲取和保存數(shù)據(jù)的功能。本層一共使用三種不同的數(shù)據(jù)持久化技術(shù),其中MyBatis和Spring Data JDBC 用來(lái)操作MySQL 數(shù)據(jù)庫(kù);Spring Data MongoDB 負(fù)責(zé)操作MongoDB 數(shù)據(jù)庫(kù)。
⑸ 數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)使用了MySQL 和MongoDB兩種數(shù)據(jù)庫(kù)。其中MySQL 定義了教師信息表、指標(biāo)體系表、考核信息表、論文表、專(zhuān)著表、科研項(xiàng)目表等。在MongoDB 中的集合包括論文、獲獎(jiǎng)、著作、項(xiàng)目等所有考核信息對(duì)應(yīng)的支撐材料集合。系統(tǒng)將考核數(shù)據(jù)保存在MySQL 的同時(shí),會(huì)獲取支撐材料所對(duì)應(yīng)的集合名稱和對(duì)象id,并將其保存到對(duì)應(yīng)的MySQL 數(shù)據(jù)表的字段中。
3.2 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)
3.2.1 微信端保持登錄狀態(tài)
由于微信端通過(guò)wx.request()方法發(fā)起的每次請(qǐng)求對(duì)于服務(wù)端來(lái)說(shuō)都是不同的會(huì)話,微信端需要在與服務(wù)器端的多次通信中保持同一個(gè)會(huì)話狀態(tài),因此需要微信端每次向服務(wù)器端發(fā)送請(qǐng)求時(shí)保持同一個(gè)Sessionid。具體的解決辦法是:先從微信端登錄,通過(guò)后,在服務(wù)器端通過(guò)request 對(duì)象的getSession()方法獲得Sessionid,然后通過(guò)response 對(duì)象寫(xiě)回到微信端。微信端將接收到的Sessionid 保存到全局變量globalData 的header 中。由于微信端支持請(qǐng)求頭操作,以后向服務(wù)器端發(fā)送請(qǐng)求時(shí)就可以通過(guò)請(qǐng)求頭將之前保存的Sessionid 發(fā)回給服務(wù)器端,從而保持登錄狀態(tài)。上述操作的具體交互過(guò)程如圖2 所示。
3.2.2 使用策略設(shè)計(jì)模式計(jì)算指標(biāo)得分
目標(biāo)考核中的一個(gè)核心任務(wù)就是計(jì)算每個(gè)二級(jí)學(xué)院的年度任務(wù)得分。由于每一個(gè)三級(jí)指標(biāo)的考核計(jì)算邏輯各不相同,而且同一個(gè)三級(jí)指標(biāo)在不同考核年份的計(jì)算邏輯也可能不同。為了確保指標(biāo)得分計(jì)算邏輯和其他的業(yè)務(wù)邏輯解耦合,使用策略設(shè)計(jì)模式對(duì)指標(biāo)得分計(jì)算邏輯進(jìn)行了封裝。以“國(guó)家級(jí)項(xiàng)目申報(bào)”這個(gè)三級(jí)指標(biāo)為例,對(duì)應(yīng)的策略設(shè)計(jì)模式類(lèi)圖[10]關(guān)系如圖3 所示。其中ScoreStrategy 為策略接口,其中定義兩個(gè)指標(biāo)得分計(jì)算方法,其中comScore 表示某個(gè)二級(jí)學(xué)院在指定年份的綜合指標(biāo)得分;perScore表示某個(gè)二級(jí)學(xué)院在指定年份的業(yè)績(jī)指標(biāo)得分。NationalProjectScoreStrategyOne、NationalProjectScore-StrategyTwo 為不同的具體策略接口實(shí)現(xiàn)類(lèi),按照某種計(jì)算邏輯完成綜合指標(biāo)得分和業(yè)績(jī)指標(biāo)得分,National-ProjectScoreStrategyOne 中對(duì)于綜合指標(biāo)得分的計(jì)算邏輯是:comScore=(relNum/taskNum)*15,relNum 為引用ProjectDAO 對(duì)象獲取某個(gè)二級(jí)學(xué)院在指定年份獲批的國(guó)家級(jí)項(xiàng)目數(shù)量;taskNum 為引用SRTaskDAO 對(duì)象獲取某個(gè)二級(jí)學(xué)院在指定年份的國(guó)家級(jí)項(xiàng)目任務(wù)量。ScoreStrategyContext 為策略接口應(yīng)用的上下文,通過(guò)關(guān)聯(lián)策略接口實(shí)現(xiàn)對(duì)某個(gè)具體策略類(lèi)的注入以及完成對(duì)策略方法的調(diào)用;ProjectServiceImpl 為科研項(xiàng)目實(shí)體對(duì)應(yīng)的Service 實(shí)現(xiàn)類(lèi),其中,通過(guò)關(guān)聯(lián)策略上下文實(shí)現(xiàn)對(duì)具體策略的調(diào)用,策略上下文實(shí)現(xiàn)了對(duì)具體策略類(lèi)和Service 實(shí)現(xiàn)類(lèi)的解耦合。如果指標(biāo)得分的計(jì)算邏輯發(fā)生變化,只需重新定義或者更換策略實(shí)現(xiàn)類(lèi)并且在上下文進(jìn)行引用的更換即可,從而保證Service 實(shí)現(xiàn)類(lèi)中業(yè)務(wù)邏輯的不變性。
3.2.3 混合持久化技術(shù)的數(shù)據(jù)持久層設(shè)計(jì)
借鑒領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中有關(guān)戰(zhàn)略設(shè)計(jì)的聚合思想進(jìn)行數(shù)據(jù)持久層設(shè)計(jì),綜合使用了Spring DataJDBC、MyBatis 和Spring Data MongoDB 3 種持久化技術(shù)。目的是為了充分利用不同數(shù)據(jù)持久化的特性,簡(jiǎn)化代碼編寫(xiě)量,提高開(kāi)發(fā)效率和可擴(kuò)展性。在實(shí)體類(lèi)中,以教師信息為考核信息的聚合根,對(duì)于教師實(shí)體的單表數(shù)據(jù)庫(kù)操作,可以使用Spring Data JDBC 進(jìn)行,因?yàn)樗軌蚝?jiǎn)化單表操作中實(shí)體類(lèi)與結(jié)果集的映射關(guān)系??己诵畔⑹歉綄儆诮處煂?duì)象的屬性,其操作通常涉及多表查詢、動(dòng)態(tài)SQL 等復(fù)雜操作,通過(guò)在MyBatis 的映射文件中定義SQL 語(yǔ)句來(lái)執(zhí)行。當(dāng)保存考核數(shù)據(jù)時(shí),需要將信息對(duì)應(yīng)的支撐材料保存到MongoDB,并將該文件生成的UUID 分別保存到MySQL 和MongoDB 數(shù)據(jù)庫(kù)中,可以使用SpringData MongoDB 所提供的文件保存方法和MyBatis 所提供的數(shù)據(jù)更新方法。
上述操作可以定義在一個(gè)DAO 接口中(TargetInfoDAO),如圖4 所示。繼承CrudRepository 接口可以使用Spring Data JDBC 提供的持久化方法,Mapper 接口中定義使用MyBatis 框架的持久化方法,MongoDBRepository接口中定義使用Spring Data MongoDB的持久化方法。定義ExtensionMapper 接口和ExtensionMongoDB接口是為了Spring Data JDBC 中整合MyBatis 和Spring Data MongoDB,在這兩個(gè)接口的實(shí)現(xiàn)類(lèi)中完成對(duì)Mapper 接口和MongoDBRepository接口中持久化方法的引用。這樣設(shè)計(jì)之后,在Service層就可以通過(guò)一個(gè)DAO 接口完成對(duì)實(shí)體類(lèi)的所有持久化操作的調(diào)用,簡(jiǎn)化了Service 層注入持久層接口的數(shù)量,使得業(yè)務(wù)層代碼更加簡(jiǎn)潔明了。
4 系統(tǒng)測(cè)試
首先采用黑盒測(cè)試針對(duì)各角色用戶進(jìn)行功能用例測(cè)試,確保各用例邏輯正確。然后采用JMeter 對(duì)服務(wù)器端進(jìn)行性能測(cè)試,服務(wù)器內(nèi)存16G,CPU 為IntelCore i7。以微信端教師角色常用的登錄和科研信息查詢操作為例,參考學(xué)校教工人數(shù)設(shè)置用戶線程組為1000 并同時(shí)啟動(dòng),選擇監(jiān)聽(tīng)器Aggregate Graph,測(cè)試數(shù)據(jù)如表1 所示。
根據(jù)測(cè)試數(shù)據(jù)表明:在1000 并發(fā)量的情況下,服務(wù)器平均響應(yīng)時(shí)間在1s 以內(nèi),99% 的請(qǐng)求都在2s 內(nèi)完成,各操作的平均吞吐量為110。說(shuō)明采用本文方法所創(chuàng)建的系統(tǒng)性能良好,能夠滿足當(dāng)前實(shí)際需要。
5 結(jié)束語(yǔ)
針對(duì)目標(biāo)考核工作中存在的問(wèn)題,利用微信小程序和SSMSD 框架,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)目標(biāo)考核系統(tǒng)。從系統(tǒng)功能模塊、系統(tǒng)架構(gòu)和關(guān)鍵技術(shù)等方面詳細(xì)描述了系統(tǒng)實(shí)現(xiàn)過(guò)程,通過(guò)系統(tǒng)的使用提高了考核工作的信息化和管理水平,為教師用戶的數(shù)據(jù)錄入提供了便利。下一步將圍繞職能部門(mén)用戶進(jìn)行微信客戶端功能的擴(kuò)充,并對(duì)指標(biāo)領(lǐng)域進(jìn)行優(yōu)化,確??己酥笜?biāo)與業(yè)務(wù)過(guò)程更加解耦,從而提高系統(tǒng)的適應(yīng)性和擴(kuò)展性。