• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于微服務(wù)架構(gòu)的

      2019-04-25 00:25成天龍許維勝
      中國教育信息化·高教職教 2019年3期

      成天龍 許維勝

      摘? ?要:面對(duì)新形勢(shì)下高校教學(xué)業(yè)務(wù)改革以及本研一體化教務(wù)融合趨勢(shì),傳統(tǒng)教務(wù)系統(tǒng)采用的單塊架構(gòu)已無法應(yīng)對(duì)日益增長且快速變化的新需求。本文提出一種基于微服務(wù)架構(gòu)的一體化教務(wù)系統(tǒng)架構(gòu)并研究其關(guān)鍵問題,結(jié)合一體化教務(wù)理念,分析單塊架構(gòu)運(yùn)行缺陷,給出教務(wù)系統(tǒng)向微服務(wù)架構(gòu)轉(zhuǎn)型的方案,研究微服務(wù)粒度與劃分原則,并對(duì)新老教務(wù)系統(tǒng)遷移過程提出平滑過渡方法。最后通過同濟(jì)大學(xué)教務(wù)系統(tǒng)實(shí)際案例,具體展示微服務(wù)架構(gòu)轉(zhuǎn)型實(shí)踐中的實(shí)施方案。

      關(guān)鍵詞:一體化教務(wù)系統(tǒng);微服務(wù)架構(gòu);微服務(wù)粒度和服務(wù)劃分;平滑過渡

      中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2019)05-0073-05

      一、引言

      圍繞創(chuàng)建世界一流大學(xué)的目標(biāo),高校教學(xué)改革日新月異,如:人才分類培養(yǎng)模式、本科新生導(dǎo)師制、本研課程互選、拔尖學(xué)生培養(yǎng)實(shí)驗(yàn)計(jì)劃、大類招生改革、國際交流合作創(chuàng)新等。同時(shí),目前高校的本科生、研究生教務(wù)管理仍處于相對(duì)分散獨(dú)立的狀態(tài),且相應(yīng)的教務(wù)管理系統(tǒng)大多采用傳統(tǒng)的單塊架構(gòu)或SOA架構(gòu)。這導(dǎo)致教務(wù)管理系統(tǒng)的需求響應(yīng)速度已趕不上高校業(yè)務(wù)需求變化速度,且無法支撐實(shí)現(xiàn)充分的教育資源共享。

      微服務(wù)(Microservices)架構(gòu)作為當(dāng)下流行的一種云原生的軟件架構(gòu)風(fēng)格,能夠以更加靈活、輕便、松耦合的方式來構(gòu)建復(fù)雜的應(yīng)用[3],為傳統(tǒng)教務(wù)系統(tǒng)單塊架構(gòu)的轉(zhuǎn)型,提供了可行的技術(shù)路線。本文基于微服務(wù)架構(gòu)對(duì)傳統(tǒng)單塊型教務(wù)系統(tǒng)的架構(gòu)轉(zhuǎn)型進(jìn)行研究,按照微服務(wù)架構(gòu)思想,拆分一體化教務(wù)系統(tǒng)為多個(gè)小而自治、協(xié)同工作的服務(wù)實(shí)體,化大而復(fù)雜為小而簡單,有效降低系統(tǒng)業(yè)務(wù)邏輯之間的耦合,提升系統(tǒng)的靈活性與擴(kuò)展性,使其能夠有效支撐本研業(yè)務(wù)融合與一體化教務(wù)系統(tǒng)建設(shè)工作。

      二、一體化教務(wù)理念

      1.理念思想

      一體化教務(wù)理念涵蓋對(duì)本科生、研究生的統(tǒng)一教務(wù)管理思想,追求本、碩、博教學(xué)資源的統(tǒng)一調(diào)配與共享。整體規(guī)劃本研教學(xué)業(yè)務(wù),以一體化教學(xué)模型和數(shù)據(jù)為基礎(chǔ),一體化服務(wù)和管理為導(dǎo)向,以穩(wěn)定開放的平臺(tái)為運(yùn)行支撐,借助彈性靈活的系統(tǒng)架構(gòu),搭建柔性伸縮應(yīng)用,打通高校各部門業(yè)務(wù),實(shí)現(xiàn)跨部門業(yè)務(wù)融合與數(shù)據(jù)共享,構(gòu)建一體化教學(xué)服務(wù)平臺(tái),實(shí)現(xiàn)本研教育貫通式培養(yǎng)[1]。

      2.具體表現(xiàn)形式

      (1)模型數(shù)據(jù)一體化。整體構(gòu)建教學(xué)業(yè)務(wù)模型數(shù)據(jù),綜合設(shè)計(jì)本研學(xué)生的一體化數(shù)據(jù)結(jié)構(gòu),利用數(shù)據(jù)交換引擎實(shí)現(xiàn)數(shù)據(jù)集成、共享,構(gòu)建統(tǒng)一教學(xué)數(shù)據(jù)庫。采用連續(xù)信息模型,實(shí)現(xiàn)數(shù)據(jù)分段式管理,按需組裝,能夠展現(xiàn)學(xué)生教學(xué)信息全貌與全生命周期下的教學(xué)事件節(jié)點(diǎn)等。劃分業(yè)務(wù)模型,包含資源類與功能類。資源類模型包含教學(xué)業(yè)務(wù)實(shí)體,相對(duì)獨(dú)立,不相互依賴,屬于下層模型,包括人員全生命周期、課程等;功能類模型依賴于資源類模型,屬于上層模型,其與教務(wù)業(yè)務(wù)緊密結(jié)合,包括學(xué)籍管理、培養(yǎng)方案、排課、選課、考試、成績等。

      (2)服務(wù)管理一體化?;谝惑w化教務(wù)整體規(guī)劃,突出學(xué)生培養(yǎng)模式和教學(xué)管理個(gè)性化特點(diǎn),對(duì)本研教務(wù)從頂層設(shè)計(jì)角度進(jìn)行業(yè)務(wù)融合,形成整套一體化教學(xué)管理與服務(wù)系統(tǒng)。采用靈活的微服務(wù)架構(gòu),建設(shè)服務(wù)中心,實(shí)現(xiàn)教學(xué)服務(wù)注冊(cè)、管理、發(fā)布、監(jiān)控等。構(gòu)建優(yōu)質(zhì)、穩(wěn)定、高效的信息化教學(xué)服務(wù)體系,為教職工、學(xué)生提供“一站式”的教學(xué)服務(wù),提供服務(wù)搜索、收藏、定制功能以及跨終端的服務(wù)體驗(yàn)。

      (3)教學(xué)資源一體化。統(tǒng)一管理本、碩、博的課程、教師、教室、設(shè)備等教學(xué)資源,合理調(diào)配師生教學(xué)業(yè)務(wù)運(yùn)行過程中的資源流轉(zhuǎn),實(shí)現(xiàn)資源共享與資源利用率最優(yōu)化。

      (4)應(yīng)用開發(fā)一體化。構(gòu)建校園教學(xué)服務(wù)應(yīng)用的基礎(chǔ)支撐平臺(tái),打造應(yīng)用開發(fā)生態(tài)圈,提供應(yīng)用服務(wù)全生命周期管理。面向校內(nèi)應(yīng)用開發(fā)者、體驗(yàn)者全面開放平臺(tái),提供標(biāo)準(zhǔn)接口。支持與公共數(shù)據(jù)平臺(tái)、校園卡等其它業(yè)務(wù)系統(tǒng)無縫對(duì)接。

      (5)界面入口一體化。提供統(tǒng)一的本科生、研究生訪問入口,集成高校內(nèi)部統(tǒng)一身份認(rèn)證,支持和其它校內(nèi)系統(tǒng)之間的SSO單點(diǎn)登錄,面向不同身份用戶提供風(fēng)格一致的界面效果和使用體驗(yàn)。

      (6)報(bào)表統(tǒng)計(jì)一體化。提供一體化的報(bào)表統(tǒng)計(jì)功能,對(duì)本、碩、博學(xué)生和教職工等各項(xiàng)評(píng)價(jià)、監(jiān)控指標(biāo)提供豐富的報(bào)表統(tǒng)計(jì)功能,提供師生學(xué)習(xí)效果和教學(xué)質(zhì)量等信息,為學(xué)校調(diào)整人才培養(yǎng)方案提供決策支持。[2]

      三、微服務(wù)架構(gòu)簡介

      1.微服務(wù)架構(gòu)定義

      微服務(wù)架構(gòu)是當(dāng)下流行的軟件架構(gòu)風(fēng)格。[3]該架構(gòu)將復(fù)雜的單塊應(yīng)用分解成一組小而專一、耦合度低、高度自治的服務(wù);每個(gè)服務(wù)圍繞各自業(yè)務(wù)功能確定服務(wù)邊界,獨(dú)立開發(fā)、測(cè)試、部署;每個(gè)服務(wù)都是單獨(dú)的應(yīng)用,運(yùn)行于獨(dú)立進(jìn)程中;使用和語言無關(guān)的輕量級(jí)通信機(jī)制,相互協(xié)同工作實(shí)現(xiàn)完整系統(tǒng)功能;每個(gè)服務(wù)僅關(guān)注和完成某個(gè)特定功能,一個(gè)功能代表一個(gè)小的業(yè)務(wù)能力。

      2.微服務(wù)架構(gòu)優(yōu)勢(shì)

      微服務(wù)架構(gòu)通過有效拆分復(fù)雜單塊應(yīng)用,降低系統(tǒng)耦合度,從而實(shí)現(xiàn)應(yīng)用敏捷開發(fā)和靈活擴(kuò)展。越是在規(guī)模龐大的軟件項(xiàng)目中,微服務(wù)架構(gòu)優(yōu)勢(shì)就越明顯。[4]首先體現(xiàn)在獨(dú)立性方面,每個(gè)服務(wù)都是松散耦合的,有明確的業(yè)務(wù)邊界,低耦拆分的服務(wù)在開發(fā)、測(cè)試、部署階段都能帶來更高效率,使業(yè)務(wù)變更成本與風(fēng)險(xiǎn)更低。其次是技術(shù)選擇更為靈活,由于微服務(wù)采用語言無關(guān)的API進(jìn)行相互通信,因而不同服務(wù)可以針對(duì)業(yè)務(wù)特性和團(tuán)隊(duì)技能使用不同語言框架進(jìn)行開發(fā),使得技術(shù)轉(zhuǎn)型成本降低。再次是系統(tǒng)復(fù)用性和伸縮性更強(qiáng),微服務(wù)能將已有代碼、對(duì)象和模塊的復(fù)用轉(zhuǎn)變?yōu)榉?wù)的復(fù)用,降低項(xiàng)目成本,并可針對(duì)特定服務(wù)獨(dú)立伸縮。最后是服務(wù)容錯(cuò)性更高,微服務(wù)通常使用Docker容器獨(dú)立部署,進(jìn)程隔離,每個(gè)服務(wù)獨(dú)立運(yùn)行,某個(gè)服務(wù)出現(xiàn)故障也不會(huì)影響其它服務(wù)正常工作。[5]

      四、微服務(wù)架構(gòu)在一體化教務(wù)系統(tǒng)中的應(yīng)用

      1.傳統(tǒng)教務(wù)系統(tǒng)架構(gòu)與缺陷

      高校傳統(tǒng)教務(wù)系統(tǒng)由于架構(gòu)形成時(shí)期較早,因此大多采用單塊架構(gòu),如圖1所示。系統(tǒng)僅以實(shí)現(xiàn)業(yè)務(wù)功能為目的,將所有功能集中在同一工程內(nèi)部,業(yè)務(wù)邏輯耦合緊密。隨著教學(xué)業(yè)務(wù)改革,單塊架構(gòu)下的教務(wù)系統(tǒng)缺點(diǎn)也愈發(fā)明顯:①需求變更困難。無法滿足新業(yè)務(wù)需求快速上線,難以在原有復(fù)雜工程上開發(fā)新功能。②擴(kuò)展性差。只能基于整個(gè)系統(tǒng)擴(kuò)展,無法針對(duì)特定功能模塊按需擴(kuò)展。③可靠性差。某個(gè)模塊故障會(huì)導(dǎo)致整個(gè)系統(tǒng)宕機(jī),影響其它正常模塊運(yùn)行。④維護(hù)成本高。只有原開發(fā)者才理解工程結(jié)構(gòu)和實(shí)現(xiàn),新成員難以維護(hù)工程。

      2.微服務(wù)架構(gòu)轉(zhuǎn)型方式

      單塊架構(gòu)無法應(yīng)對(duì)本研一體化教務(wù)融合所帶來的復(fù)雜性,為此采用微服務(wù)對(duì)其進(jìn)行架構(gòu)轉(zhuǎn)型。如圖2所示,左側(cè)為傳統(tǒng)教務(wù)系統(tǒng)單塊架構(gòu),所有功能模塊均運(yùn)行于單個(gè)進(jìn)程內(nèi),緊耦合,不易擴(kuò)展,靈活性差;右側(cè)為轉(zhuǎn)型后的教務(wù)系統(tǒng)微服務(wù)架構(gòu),不同業(yè)務(wù)作為服務(wù)分散于不同進(jìn)程中,每個(gè)服務(wù)進(jìn)程功能完整且獨(dú)立自治,能夠單獨(dú)輸出業(yè)務(wù)能力,松耦合,易于擴(kuò)展且更為靈活。隨著一體化教務(wù)理念帶來的系統(tǒng)重組與業(yè)務(wù)融合,教務(wù)系統(tǒng)業(yè)務(wù)復(fù)雜度將不斷增大,此時(shí)采用微服務(wù)架構(gòu)所帶來的松耦合優(yōu)勢(shì)將愈發(fā)明顯。

      3.微服務(wù)架構(gòu)平滑過渡

      微服務(wù)架構(gòu)轉(zhuǎn)型需要注意新老系統(tǒng)之間的平滑過渡,保證業(yè)務(wù)流程協(xié)同,最終實(shí)現(xiàn)新老系統(tǒng)完全替換。老系統(tǒng)遷移過渡可參考下述步驟:①定義范圍。明確業(yè)務(wù)改造范圍,選取業(yè)務(wù)范圍影響較小、非關(guān)鍵功能進(jìn)行業(yè)務(wù)試點(diǎn),明確成員責(zé)任范圍,確保改造目標(biāo)清晰。②功能剝離。將功能從原系統(tǒng)拆分出來,并構(gòu)建新服務(wù),在原系統(tǒng)前端使用代理機(jī)制,使用遺留系統(tǒng)和新服務(wù)組合為用戶提供服務(wù)。③數(shù)據(jù)解耦。從原有單塊架構(gòu)數(shù)據(jù)庫中剝離相關(guān)業(yè)務(wù)數(shù)據(jù),盡量滿足對(duì)于每個(gè)服務(wù)有獨(dú)立、隔離的業(yè)務(wù)數(shù)據(jù)庫。④數(shù)據(jù)同步。對(duì)于復(fù)雜業(yè)務(wù)邏輯,改造時(shí)間和成本較大,可能在較長時(shí)間內(nèi),由于新服務(wù)獨(dú)立出來導(dǎo)致無法同其它現(xiàn)有系統(tǒng)協(xié)作,此時(shí)可采用將新服務(wù)中的業(yè)務(wù)數(shù)據(jù)同步回原系統(tǒng)數(shù)據(jù)庫中,保障原有功能可繼續(xù)使用。

      五、微服務(wù)粒度與服務(wù)劃分原則

      1.微服務(wù)粒度

      服務(wù)劃分是微服務(wù)架構(gòu)實(shí)施的重要一步,良好的服務(wù)拆分能使系統(tǒng)保持松耦合、高內(nèi)聚。服務(wù)劃分旨在“按照業(yè)務(wù)領(lǐng)域組件創(chuàng)建服務(wù),使服務(wù)獨(dú)立開發(fā)、管理和擴(kuò)展”,即對(duì)業(yè)務(wù)領(lǐng)域功能按照組件形式進(jìn)行拆分,其關(guān)鍵是業(yè)務(wù)領(lǐng)域組件所含業(yè)務(wù)邊界大小,即服務(wù)粒度。

      合理的服務(wù)粒度是保證微服務(wù)架構(gòu)高效運(yùn)行的重要因素。粒度過細(xì)會(huì)導(dǎo)致服務(wù)數(shù)量過多,交互關(guān)系復(fù)雜,系統(tǒng)集成效率和可用性降低,后期難以維護(hù);反之,粒度太粗,會(huì)導(dǎo)致解耦不足,多個(gè)服務(wù)邏輯相互耦合,無法滿足上層對(duì)某個(gè)細(xì)分服務(wù)的使用需求,缺乏靈活性。因此,服務(wù)粒度太細(xì)或太粗均不合理,原則上應(yīng)根據(jù)業(yè)務(wù)需求,能夠滿足上層對(duì)所劃分服務(wù)自由編排從而獲得更多業(yè)務(wù)能力。

      微服務(wù)粒度與軟件代碼行數(shù)無關(guān),“微”并不是限定服務(wù)的代碼工程規(guī)模,而是限定服務(wù)所包含的業(yè)務(wù)功能范圍。每個(gè)服務(wù)包含的業(yè)務(wù)邏輯需滿足“單一且完整”規(guī)則[6]:①“單一”規(guī)則。強(qiáng)調(diào)業(yè)務(wù)功能原子性。單個(gè)服務(wù)中不應(yīng)存在兩部分完全無關(guān)或互不影響的邏輯,否則應(yīng)把這兩部分邏輯拆開,也就是說只要與實(shí)現(xiàn)某單一業(yè)務(wù)功能無關(guān)的邏輯,則應(yīng)將其分離到它應(yīng)該屬于的服務(wù)中去?!皢我弧币?guī)則用于限定微服務(wù)粒度的上限。②“完整”規(guī)則。強(qiáng)調(diào)業(yè)務(wù)功能完備性。如果說合適粒度的服務(wù)完成一項(xiàng)“任務(wù)”,則不應(yīng)將該服務(wù)持續(xù)細(xì)分而使得更小粒度服務(wù)演變?yōu)橥瓿蛇@項(xiàng)“任務(wù)”所需的一個(gè)“步驟”,也就是說只要是實(shí)現(xiàn)某單一業(yè)務(wù)功能所需的邏輯,則都應(yīng)放在同一服務(wù)內(nèi),而不應(yīng)放在其它服務(wù)中被調(diào)用?!巴暾币?guī)則用于限定微服務(wù)粒度的下限。

      2.服務(wù)劃分原則

      服務(wù)劃分沒有普適的方法,而是根據(jù)實(shí)際業(yè)務(wù)綜合考慮多個(gè)因素。按照業(yè)務(wù)領(lǐng)域組件思想,服務(wù)首先要根據(jù)業(yè)務(wù)功能拆分,直到每個(gè)服務(wù)滿足功能“單一且完整”要求。具體來說,首先通過系統(tǒng)交互流程分析,將業(yè)務(wù)系統(tǒng)內(nèi)部流程分解到具體業(yè)務(wù)功能組件,識(shí)別出最細(xì)粒度的業(yè)務(wù)功能單元,再按照高內(nèi)聚、松耦合原則,從底向上進(jìn)行服務(wù)聚合,盡量保證各個(gè)服務(wù)之間交互最少,最后根據(jù)各個(gè)服務(wù)模塊功能特性,多次迭代調(diào)整得到最佳的滿足高內(nèi)聚、松耦合條件的服務(wù)劃分。對(duì)于公共基礎(chǔ)數(shù)據(jù)和系統(tǒng)通用模塊,采用共性下沉的策略單獨(dú)劃分。

      實(shí)際開發(fā)中,為了項(xiàng)目前期快速進(jìn)行服務(wù)識(shí)別,一個(gè)有價(jià)值的服務(wù)劃分方法是:首先分析該業(yè)務(wù)系統(tǒng)承載的主體業(yè)務(wù)流程是什么,然后分析這個(gè)業(yè)務(wù)流程可以橫向劃分為哪幾個(gè)獨(dú)立階段,將這些獨(dú)立階段劃分為不同的服務(wù),再根據(jù)每個(gè)服務(wù)自有特性進(jìn)行分析修正。以一體化教務(wù)系統(tǒng)為例,其承載主體業(yè)務(wù)流程為學(xué)生的全生命周期教學(xué)管理,大致可以橫向劃分為迎新報(bào)到、學(xué)籍注冊(cè)、培養(yǎng)方案、排課、選課、考試、成績、實(shí)踐、學(xué)位等階段,因此可先按上述階段進(jìn)行服務(wù)劃分,再對(duì)每個(gè)服務(wù)獨(dú)自調(diào)整。對(duì)于公共基礎(chǔ)數(shù)據(jù),如學(xué)生、教師、課程、教學(xué)資源等,按照共性下沉策略單獨(dú)拆分微服務(wù)。同理,系統(tǒng)通用模塊,如會(huì)話管理、流程管理等,也需獨(dú)立劃分。

      總體來講,服務(wù)劃分不能只從技術(shù)角度出發(fā),而要面向業(yè)務(wù)、分而治之,綜合考慮以下各方面因素。

      (1)業(yè)務(wù)因素。首先從業(yè)務(wù)角度確定劃分方案。服務(wù)邊界要充分考慮業(yè)務(wù)獨(dú)立性和專業(yè)性,比如教務(wù)系統(tǒng)中的課程管理、選課等服務(wù),按照業(yè)務(wù)對(duì)象和業(yè)務(wù)行為合理拆分服務(wù)邊界。

      (2)自給自足。明確服務(wù)分工,確保每個(gè)服務(wù)僅包含自身所需處理邏輯,包括數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)邏輯、消息發(fā)送接收等。保障服務(wù)運(yùn)行自給自足,相對(duì)獨(dú)立,減少對(duì)外界依賴,提升服務(wù)獨(dú)立運(yùn)行、升級(jí)和靈活拼裝能力。

      (3)系統(tǒng)擴(kuò)展。服務(wù)解耦拆分最重要的作用之一是提高系統(tǒng)擴(kuò)展性。不同服務(wù)有不同的擴(kuò)展性要求,把具有不同擴(kuò)展性要求的服務(wù)單獨(dú)劃分處理,能夠提高系統(tǒng)擴(kuò)展效率。比如教務(wù)系統(tǒng)中的選課服務(wù)要求較高并發(fā)性能,把選課服務(wù)分離,單獨(dú)考慮其性能擴(kuò)展需求,確保不會(huì)因選課服務(wù)負(fù)載過高而導(dǎo)致整個(gè)系統(tǒng)不可用。

      (4)數(shù)據(jù)一致。微服務(wù)架構(gòu)如果需要跨服務(wù)改變業(yè)務(wù)數(shù)據(jù)狀態(tài),則需要處理復(fù)雜的分布式事務(wù)與數(shù)據(jù)一致性問題,對(duì)系統(tǒng)性能有較大影響。相比之下,只在同一服務(wù)內(nèi)部保證事務(wù)性更加簡單且高效。盡量把有數(shù)據(jù)強(qiáng)一致要求的事務(wù)性邏輯放在一個(gè)服務(wù)內(nèi),服務(wù)邊界滿足非事務(wù)性、數(shù)據(jù)最終一致性即可。

      (5)信息安全。不同服務(wù)有不同的信息安全要求。對(duì)于信息安全要求高的服務(wù)可以單獨(dú)劃分并特殊部署,比如運(yùn)行在防火墻后,也可以根據(jù)服務(wù)特點(diǎn)針對(duì)性地滿足信息安全需求。

      (6)服務(wù)組合。在底層服務(wù)之上,可能會(huì)有服務(wù)能力組合層,實(shí)現(xiàn)組合服務(wù)。如果存在這種情況,最好也以獨(dú)立的服務(wù)模塊實(shí)現(xiàn)。組合服務(wù)本身可能并不對(duì)應(yīng)具體數(shù)據(jù)庫,而是將下層服務(wù)進(jìn)行組合,形成新的接口服務(wù)能力。

      六、同濟(jì)大學(xué)教務(wù)系統(tǒng)微服務(wù)架構(gòu)轉(zhuǎn)型實(shí)踐

      1.原有教務(wù)系統(tǒng)問題

      同濟(jì)大學(xué)原有教務(wù)系統(tǒng)有三套:本科生教務(wù)系統(tǒng)、研究生管理系統(tǒng)、本研一體化教務(wù)管理系統(tǒng)。前兩套系統(tǒng)分別用于管理本科生和研究生教務(wù),建設(shè)年代較早,技術(shù)架構(gòu)落后;后一套系統(tǒng)首次嘗試本研業(yè)務(wù)融合,但由于其仍為單塊架構(gòu),未采用微服務(wù)架構(gòu),最終由于業(yè)務(wù)復(fù)雜性及單塊架構(gòu)局限性,未能將本研教學(xué)業(yè)務(wù)真正融合。三套系統(tǒng)目前各自管理部分教學(xué)業(yè)務(wù),在數(shù)據(jù)與業(yè)務(wù)層面均未進(jìn)行全面融合,且系統(tǒng)均為單塊架構(gòu),耦合緊密,難以持續(xù)演進(jìn),已無法響應(yīng)新時(shí)代高校教學(xué)改革需求,為此急需通過微服務(wù)架構(gòu)來構(gòu)建一體化教務(wù)系統(tǒng),支撐本研業(yè)務(wù)融合應(yīng)用建設(shè)。

      2.一體化教務(wù)系統(tǒng)服務(wù)劃分

      基于一體化教務(wù)理念,結(jié)合微服務(wù)劃分原則,一體化教務(wù)系統(tǒng)服務(wù)劃分如圖3所示,主要分為三個(gè)層次。

      (1)上層業(yè)務(wù)服務(wù):面向具體業(yè)務(wù)行為的上層服務(wù)?;诟咝=虒W(xué)流程,按照學(xué)生培養(yǎng)過程中的業(yè)務(wù)環(huán)節(jié)劃分服務(wù)??紤]本研業(yè)務(wù)融合,構(gòu)建本研模型、數(shù)據(jù)一體的教學(xué)流程,每個(gè)流程負(fù)責(zé)學(xué)生培養(yǎng)過程中單一完整的一個(gè)教學(xué)環(huán)節(jié),包括從學(xué)生入學(xué)的迎新報(bào)到、學(xué)籍管理,直到學(xué)生畢業(yè)時(shí)的學(xué)位管理,同時(shí)涵蓋培養(yǎng)過程中間的各個(gè)教學(xué)環(huán)節(jié)管理,比如選課、考務(wù)等。

      (2)基礎(chǔ)數(shù)據(jù)服務(wù):底層公共的基礎(chǔ)資源類服務(wù),偏向業(yè)務(wù)領(lǐng)域模型,包括學(xué)生、教師、課程、教學(xué)資源等基礎(chǔ)信息管理服務(wù)。

      (3)系統(tǒng)支撐服務(wù):系統(tǒng)級(jí)公共服務(wù),支撐業(yè)務(wù)系統(tǒng)運(yùn)行的通用服務(wù),如會(huì)話、前端Web、單點(diǎn)登錄等管理系統(tǒng)必備的基礎(chǔ)功能服務(wù)。

      3.一體化教務(wù)系統(tǒng)技術(shù)架構(gòu)實(shí)現(xiàn)

      微服務(wù)架構(gòu)實(shí)施要求多項(xiàng)復(fù)雜技術(shù)支撐,為此借助業(yè)界主流的微服務(wù)PaaS平臺(tái),減少前期基礎(chǔ)設(shè)施自動(dòng)化工具建設(shè)所帶來的成本和復(fù)雜性,便于快速進(jìn)行業(yè)務(wù)開發(fā)。通過對(duì)各大平臺(tái)的功能完整性和可靠性調(diào)研對(duì)比,一體化教務(wù)系統(tǒng)最終選用華為ServiceStage微服務(wù)平臺(tái),系統(tǒng)技術(shù)架構(gòu)如圖4所示,主要包含以下層次。

      (1)資源層:負(fù)責(zé)數(shù)據(jù)持久化存儲(chǔ),主要包含MySQL數(shù)據(jù)庫、Redis分布式緩存、文件存儲(chǔ)以及學(xué)校內(nèi)部數(shù)據(jù)倉庫。

      (2)平臺(tái)框架層:使用ServiceStage微服務(wù)平臺(tái),借助CSE微服務(wù)引擎,通過Docker容器部署服務(wù),提高系統(tǒng)資源利用率。服務(wù)注冊(cè)、發(fā)現(xiàn)等治理功能由平臺(tái)提供。由于每個(gè)服務(wù)均以獨(dú)立進(jìn)程運(yùn)行,服務(wù)間通信需要通過網(wǎng)絡(luò)調(diào)用完成,而網(wǎng)絡(luò)調(diào)用無法保證完全可靠,因此平臺(tái)層提供重試、降級(jí)、熔斷等容錯(cuò)機(jī)制來保證服務(wù)間調(diào)用的可靠性。

      (3)服務(wù)層:借助微服務(wù)平臺(tái),開發(fā)只需關(guān)注服務(wù)層。根據(jù)系統(tǒng)服務(wù)劃分方案,主要包括上層業(yè)務(wù)服務(wù)、基礎(chǔ)數(shù)據(jù)服務(wù)和系統(tǒng)支撐服務(wù)三個(gè)層次,每個(gè)層次包含各自具體服務(wù)模塊,實(shí)現(xiàn)業(yè)務(wù)能力輸出。此外,微服務(wù)平臺(tái)提供服務(wù)通信和服務(wù)管理能力,保障服務(wù)的相互通信和監(jiān)控運(yùn)維。

      (4)網(wǎng)關(guān)層:服務(wù)訪問入口。Web層對(duì)服務(wù)的訪問都需要通過API網(wǎng)關(guān)來實(shí)現(xiàn)請(qǐng)求傳遞。在微服務(wù)架構(gòu)中,API網(wǎng)關(guān)也稱作邊緣服務(wù)(Edge Service),通常采用Nginx、Zuul等反向代理實(shí)現(xiàn)。此處采用平臺(tái)特有的NodeJs+ServiceMesh實(shí)現(xiàn),NodeJs負(fù)責(zé)接收外部請(qǐng)求,ServiceMesh又稱服務(wù)網(wǎng)格,可理解為輕量級(jí)網(wǎng)絡(luò)代理,ServiceMesh通過與服務(wù)注冊(cè)中心保持長連接獲取每個(gè)服務(wù)實(shí)例信息,從而將不同服務(wù)的外部請(qǐng)求路由至相應(yīng)服務(wù)。

      4.一體化教務(wù)系統(tǒng)建設(shè)成果

      目前一體化教務(wù)系統(tǒng)已實(shí)現(xiàn)服務(wù)如圖5所示,包括大部分系統(tǒng)支撐服務(wù)和基礎(chǔ)數(shù)據(jù)服務(wù),以及部分上層業(yè)務(wù)服務(wù)。圖中每個(gè)圓圈及其下方服務(wù)名和版本號(hào)唯一確定一個(gè)微服務(wù),箭頭代表服務(wù)間調(diào)用關(guān)系,實(shí)際開發(fā)中會(huì)不斷對(duì)服務(wù)進(jìn)行迭代從而升級(jí)版本號(hào)。

      七、結(jié)束語

      一體化教務(wù)理念是高校實(shí)現(xiàn)創(chuàng)新人才培養(yǎng)、開展教學(xué)改革的關(guān)鍵與核心。為了更好地推進(jìn)本研業(yè)務(wù)融合,加速一體化教務(wù)系統(tǒng)建設(shè),本文采用微服務(wù)架構(gòu)替代傳統(tǒng)教務(wù)系統(tǒng)單塊架構(gòu),研究系統(tǒng)轉(zhuǎn)型方案及服務(wù)粒度劃分,提出新老系統(tǒng)平滑過渡方式,并通過實(shí)際案例,展示轉(zhuǎn)型實(shí)踐中的系統(tǒng)技術(shù)架構(gòu)等具體實(shí)施方案?;谖⒎?wù)架構(gòu)的一體化教務(wù)系統(tǒng)能夠靈活應(yīng)對(duì)持續(xù)增加的系統(tǒng)復(fù)雜性,快速響應(yīng)新形勢(shì)下的一體化教務(wù)融合需求,為高校實(shí)現(xiàn)本研貫通式培養(yǎng)奠定基礎(chǔ)。

      參考文獻(xiàn):

      [1]宣華,張秋芳.本—碩—博一體化教務(wù)管理的探索與實(shí)踐——以清華大學(xué)注冊(cè)中心為例[J].教育理論與實(shí)踐,2013(3):9-11.

      [2]宣華,張秋芳,郭大勇.高校教學(xué)信息統(tǒng)計(jì)分析的研究與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(1):171-173.

      [3]王磊.微服務(wù)架構(gòu)與實(shí)踐[M].北京:電子工業(yè)出版社,2016.

      [4]鄧杰文,曹彩鳳.微服務(wù)若干關(guān)鍵問題研究[J].五邑大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,30(2):49-54.

      [5]張向祺.基于微服務(wù)的企業(yè)移動(dòng)辦公平臺(tái)規(guī)劃設(shè)計(jì)[J].信息技術(shù)與標(biāo)準(zhǔn)化,2016(3):13-15.

      [6]蔡凱.恒豐銀行微服務(wù)化理論探索——服務(wù)粒度和服務(wù)劃分原則[J].金融電子化,2017(9):74-75.

      (編輯:王曉明)

      盈江县| 吉林市| 长丰县| 浪卡子县| 荣昌县| 邯郸县| 曲阜市| 明光市| 柳江县| 康保县| 濉溪县| 资阳市| 普定县| 莒南县| 东源县| 封丘县| 和平县| 齐齐哈尔市| 弥渡县| 大安市| 鄯善县| 定日县| 拉孜县| 清镇市| 沁源县| 长寿区| 古交市| 莱州市| 成安县| 恭城| 顺昌县| 大竹县| 德惠市| 洛浦县| 康定县| 龙井市| 板桥市| 两当县| 同德县| SHOW| 铜川市|