張廣鑫
(大連職業技術學院,遼寧 大連 116035)
隨著信息技術在教育領域的發展和變革,校園信息化建設經歷了從網絡化校園到數字化校園再到智慧校園的演進,教育信息化正逐漸呈現出智能化、開放化、個性化和社交化等特征[1]。通過網絡化和數字化校園建設,大部分學校已完成了學校基礎網絡環境鋪設和信息系統數據統一標準化制定,以及以管理和服務為驅動的業務系統構建工作,消除了各信息系統之間無法關聯、相對孤立的“信息孤島”,打通了各業務部門之間數據的流通和共享,提升了學校信息化水平,為師生的辦公、教學和生活帶來了極大便利。
近幾年,云計算、大數據、物聯網和人工智能等信息技術的發展突飛猛進,為國家教育事業現代化的建設提供了新動力,注入了新血液,“智慧校園”的概念由此應運而生。以智慧校園為載體的智慧課堂、智慧辦公、智能校園管理和大數據分析等智慧應用,也如雨后春筍般涌現出來。然而面對新環境下的業務需求和應用場景,在數字校園建設階段信息系統平臺所廣泛采用的單體架構和SOA(面向服務)架構已無法滿足系統快速更新迭代、海量業務數據傳輸存儲、人與物或物與物的互聯互通等復雜環境。微服務架構具有擴展性強、配置靈活、協議簡單、服務組件化和高內聚低耦合等特點,應用系統采用微服務設計,能夠更好地支持智慧校園系統平臺建設。
智慧校園是指以校園信息化建設為契機,以校園基礎網絡(包括有線網、無線網和物聯網)為載體,利用云計算、大數據和物聯網技術實現從教學場景、教學資源到應用服務等校園信息和服務全部智能化、智慧化。它能夠促進空間和時間的有機結合,使任何人、任何時間、任何地點都能方便快捷地獲取到有價值的資源和服務。智慧校園是數字校園的進一步的發展和提升,是教育信息化的更高級形態[2]。
2018年6月,國家市場監督管理總局和國家標準化管理委員會聯合公布了《智慧校園總體框架》國家標準文件,文件中對什么是“智慧校園”進行了定義和說明,對相關的術語約定、技術要求、總體架構等進行了解釋。它將智慧校園整體劃分為四層,分別為基礎設施層、支撐平臺層、應用平臺層和應用終端。通過建立標準清晰的數據規范、技術規范,使各個層之間具有良好的數據通信、相互協作和互聯感知的能力。信息安全策略貫穿智慧校園建設體系的各個環節,在整個生命周期內,保障通信安全、數據安全和身份安全等。智慧校園整體架構圖如圖1所示。
基礎設施層是構建智慧校園整體架構的重要組成部分和業務基礎保障,能提供多種網絡通信服務架構(如有線網、無線網和物聯網等)、大范圍布局的物與物感知和人與物感知設備、安全可靠的海量數據存儲、靈活分配的高性能計算資源等,為智慧校園的各類應用服務提供基礎支持和業務支撐。它包括網絡通信設備、物聯感知設備、存儲設備與服務器等。

圖1 智慧校園整體架構圖
支撐平臺層與應用平臺層兩者一同組成了智慧校園建設體系的核心層,是連接控制應用終端與基礎設施進行溝通協作的“大腦”和“橋梁”,是校園信息化建設能夠體現“智慧”的靈魂的所在。支撐平臺層為智慧校園的各類應用和程序提供服務和支撐,它包括統一標準接口、數據交換、數據服務、數據處理和數據監控等功能性的工具單元。應用平臺層是智慧校園各類應用程序的集合體,是智慧服務的具體展現。在支撐平臺層的基礎上,構建了智慧校園的管理、教學、生活和服務等應用,為學校的管理者和師生提供全方位的智能服務。它包括智慧校園、智慧教室、智慧教學、智慧辦公、智慧生活等各類管理服務。
應用終端層是智慧校園各類信息和應用的訪問者與使用者,通過各種終端設備(如PC端、手機端等各類移動終端設備)和互聯網應用服務設備,不受時間和空間所限制,能夠隨時隨地訪問各類平臺資源和服務,它主要包括不同角色的用戶和接入訪問的設備等。
微服務架構最早是由國際著名面向對象開發專家、“敏捷開發”創始人之一的馬丁·福勒于2014年提出的一種全新軟件開發設計模式。微服務架構本質上是由一組可獨立交付業務單元構成的分布式系統[3],通過對業務和結構復雜的大型系統進行合理劃分,分解成一系列微小的獨立應用服務。每一個微服務都是只與其具體負責業務緊密聯系的單一功能體。在系統層面,每一個微服務都可以認為是一個獨立的進程,每個微服務僅關注于完成一件小任務[4]。它可以運用不同類型的開發語言和工具來實現。每個微服務都可以通過輕量級的通信協議進行相互溝通協作,具有容易擴展變更、快速開發部署和結構相對簡單等特點。
1.微服務架構的演進過程
伴隨著互聯網信息技術的不斷發展,為了適應互聯網信息技術的發展浪潮,信息技術應用架構經歷了從單體架構到面向服務架構SOA(Service-Oriented Architecture),再到微服務架構的演進和迭代過程(如圖2所示)。
單體架構是指把所有的功能模塊都放在一個獨立運行的程序中,圖2中程序1和程序2都是單獨的個體,所有業務功能組件都耦合在自己的開發框架內,沒有任何的交集。當程序各自完成系統開發和發布后,只能配置和運行在一個進程中,程序1和程序2的業務數據都是相對獨立,無法關聯,造成數據“孤島”的現象。
面向服務架構SOA(Service-Oriented Architecture)[5]是一種粗粒度、松耦合的服務架構,它將程序1和程序2的不同業務功能組件(在SOA架構中通常稱其為服務)通過定義標準化的接口和良好的契約關聯起來。接口的定義是不站在任何一方的立場下完成,與其所依托的硬件環境、操作系統和開發語言等無關。SOA架構比較主流的實現方式是ESB服務總線。在程序1和程序2的內部或兩者之間的服務可以通過統一的規則進行數據通信和業務訪問,具有服務簡單、耦合度低、易于擴展等優點。但隨著程序數量的增多和訪問業務量的增大,SOA架構存在的問題也突顯出來。各個服務都是依賴中心化的管理模式,中心端本身就是一個過重的服務,服務中心內部的復雜性問題依然存在,當服務中心產生變更時,會影響其管理的程序。
2.微服務架構的核心組件及實現原理
微服務架構也稱微服務[6]是將應用程序設計成多個可以獨立開發、維護、配置和運行的微小服務,各類微服務通過輕量級的協議進行數據通信和協調調度,每個服務都比較簡單[7],都能夠獨立完成某一項特定任務和功能。通過提供微服務框架,解決微服務的各類注冊、發現、服務、調度、容錯等各類通用性服務功能[8]。微服務架構的核心組件及實現原理如圖3所示。

圖2 應用技術架構演進圖

圖3 微服務架構的核心組件及實現原理圖
API網關是微服務架構中用戶調用服務的統一入口,可以根據用戶終端類型的不同設置不同的訪問網關。當用戶需要訪問服務時,API網關首先識別用戶的身份信息,根據角色訪問權限進行調用控制和路由轉發,將用戶請求數據定向發送給服務端。當服務端完成業務處理后,不僅可以將獨立的計算結果進行輸出,還可以將不同服務產生的結果進行合并后再統一輸出。API網關還可以實現跨語言、跨平臺的元數據轉換、數據防篡改、協議轉換和流量計量計費等功能。
注冊中心是微服務架構的重要基礎組件之一。當服務之間需要進行協同合作完成用戶的請求時,需要通過注冊中心組件找到服務和服務地址之間的對應映射關系目錄,然后調用相應服務的實現類完成所需要操作。它主要包括“服務注冊”和“服務發現”兩個方面,負責服務的注冊和管理工作。服務在保持正常運行時,需要進行服務注冊。注冊中心會對所有注冊通過后的服務進行管理,獲取服務的相關信息。服務發現是指當用戶需要訪問某一服務時,通過識別服務名稱從注冊中心內發現與服務實例相匹配的服務通信地址,從而保證服務對用戶請求的正常響應。
負載均衡是微服務架構穩定運行的重要保障,它可以對從用戶發起的訪問流量進行管控,按照不同的均衡策略把流量合理地分配到具有相同服務內容的不同系統上,使服務能夠分擔負載和保證業務訪問的穩定性和高可用。負載均衡是處理高并發、緩解網絡壓力和進行服務端擴容的重要手段之一[9]。按照實現方式可以分為服務端負載均衡和客戶端負載均衡;按照均衡策略可以分為隨機分配、遍歷輪詢、地址哈希和權重響應等。在實際生產環境中,可以根據實際的基礎網絡環境、服務器性能、用戶數量和優先級等綜合因素考慮,選擇合適的負載均衡部署方法和技術架構。
服務容錯是微服務架構的故障隔離和容錯處理機制。我們將龐大的業務系統拆分成若干個獨立運行的微服務單元后,各個服務之間相互依賴,通過API網關調用執行。當用戶的并發訪問量過大時,會導致服務崩潰,與服務相互依賴的其他服務也會無法正常訪問,導致整個業務層面的癱瘓,出現雪崩效應。為了防止業務系統出現雪崩效應的情況,微服務架構引入了服務容錯機制,它包括流量限制、線程隔離和熔斷降級等容錯手段。
配置中心是微服務架構用于所有關聯服務配置的集中管理。在實際生產場景中,每個微服務都可能包含多個不同類型的配置項,如屬性配置、驅動配置、環境變量配置、業務依賴配置、系統參數配置等。配置項中的參數紛繁復雜,當某一參數需要修改時,往往需要停止服務,對配置修改完成后要對程序重新打包發布,增加運維人員工作量,造成管理混亂,容易出錯等。通過配置中心組件,可以把各個服務中的各種配置,各類參數等全部統一集中到一個地方進行管理,建立完善標準的接口對外提供支持。當某一服務需要修改配置時,首先來配置中心獲取服務本身的配置信息,修改完成后將更新后的配置推送到配置中心,與配置中心關聯的其他服務可以動態獲取最新的配置信息,確保數據的一致性。
消息總線是在微服務架構中各個服務實例之間進行消息推送和接收的管控中心。服務之間要想實現消息通信,首先服務要在消息總線上建立獨立的通信隧道,服務生產者推送一條消息到消息總線上,服務消費者在訂閱服務生產者的情況下,可以通過消息總線接收到信息。消息總線在兩者之間充當一個“中間人”的角色,實現了服務之間的解耦和服務性能的提升等。
目前,高校信息化建設正處于從“數字校園”向“智慧校園”發展的轉型期。對于信息化建設來說,基礎應用系統和業務支撐平臺的建設可以統稱為系統平臺建設。系統平臺建設是智慧校園建設的重要組成部分?;谖⒎占軜嫎嫿ú季趾侠怼⒃O計靈活和易于擴展的系統平臺,能夠為智慧校園整體穩定運行提供有力保障。微服務架構下的系統平臺建設主要包含兩個方面:一是以微服務架構的體系標準為依托,對學?,F有業務系統進行升級改造;二是對于未來要建立的系統,嚴格按照面向微服務的設計模式進行頂層設計,統籌安排,合理規劃。
以大連職業技術學院信息化建設為例,學校在數字校園建設階段,現已完成了人事系統、OA辦公系統、學生系統、資源管理系統和基礎數據平臺等系統平臺的建設。業務系統相對獨立,系統之間通過數據交換平臺實現數據的共享流通,但業務功能模塊無法相互調用。通過對各系統進行結構性分析得出,系統除了有跟自身業務相關性比較高的功能模塊外,還有如身份認證、權限分配、安全監控和報表統計等具備相同業務邏輯需求處理的組件。充分分析原系統建設背景后,為了降低系統拆分重構的復雜度,做到風險可控。對原系統的業務功能模塊的整體作為一個微服務進行管理,將具有相同業務邏輯的功能模塊進行獨立拆分提供服務(如圖4所示)。
對于人事系統、OA系統、學生系統、基礎數據平臺等主要業務系統,面向業務層面,按照功能特點進行服務拆分,各服務之間要實現解耦,保障服務的健壯性和穩定性。系統拆分后可劃分為身份認證服務、權限分配服務、報表統計服務、安全監控服務和與原系統業務關聯程度高的人事服務、OA服務等。教職員工和學生可以通過服務平臺對需要的服務進行訪問,各服務之間通過微服務架構的相關組件進行溝通協作。對于新建或擬建系統,在業務需求分析階段,不再以構建大而全的業務系統為目的,而是采用遵循微服務架構的標準和規則,明確服務的邊界和范圍,以服務為驅動來進行業務結構設計,與其他身份認證服務、權限分配服務等微服務相互調用協作,為智慧校園的學校、老師和學生等最終用戶提供業務支持。

圖4 智慧校園系統平臺
基于微服務架構構建的智慧校園應用服務,具有完善的信息交互接口、靈活的策略配置和容錯的運行機制,與業務開發所使用的開發語言、運行環境和中間件等條件無關。微服務架構是技術發展的必然結果,它能夠解決傳統的單體式架構軟件系統面臨的更新迭代慢、影響程度深等復雜問題[10]。每個服務都有明確的功能目標,業務邊界明確清晰,采用輕量級通信協議實現服務的請求響應交互,服務內部邏輯聯系緊密,外部耦合度低。微服務架構作為系統設計方法的出現,為智慧校園系統平臺的設計建設提供了優秀的解決方案,提升了系統構建的靈活性和開發效率,降低了系統軟件的開發成本。