高逸昕 孔敬媛 王逸群



摘要: 在當今互聯網應用發展中,能力開放平臺起到很重要的作用。為實現校園一卡通系統與智慧校園各項應用的深度融合,建設校園一卡通能力開放平臺,梳理各項核心數據與服務,以統一的規范進行開放。文章通過分析校園一卡通能力開放平臺的功能需求,設計基于微服務框架的平臺架構和能力調用的業務流程,根據實際業務規模設計平臺的物理部署方案。實際測試結果表明平臺設計達到了預期功能目標,具有良好的服務并發性能和快速響應能力。
關鍵詞:校園一卡通;能力開放平臺;微服務架構
中圖分類號: TP393? 文獻標志碼: A
0 引言
校園一卡通系統是數字校園的基礎應用,長期以來,高校致力于推進面向校園卡的校園應用集成[1]。通過與校園一卡通系統對接,數字校園各個應用系統能夠共享校園卡的身份識別和電子支付功能,如機房管理系統、圖書管理系統、上課考勤系統、大學生體測系統等,真正實現了“一卡在手,走遍校園”的主旨。校園卡在教學、管理、生活等方面的廣泛應用方便了師生,提高了校園的管理水平和運行效率。
隨著云計算、移動互聯網、人工智能等新技術的不斷發展,新一代校園一卡通系統呈現出卡碼臉多介質、移動支付、聚合支付(校園卡、銀行卡、微信、支付寶等)等新特征[2-3],線上功能更加豐富。當前,在高校信息化整體規劃下,建設基于智慧校園的校園一卡通系統,將校園卡的數據和服務通過API的形式開放,從而與教學、科研、管理信息系統進一步融合,使師生能夠隨時隨地隨需地獲取資源和服務。
1 校園一卡通能力開放平臺
早期,基于校園一卡通的應用集成,都遵循一套API接口,將讀卡、扣款、寫卡等功能集成到自己的系統流程中,從而獲取的核心能力就是校園卡的身份認證和支付功能。比如:圖書借閱管理系統通過讀卡獲取讀者身份,超期罰款可以通過校園卡扣款。隨著校園一卡通系統數據和應用的不斷豐富,API數量不斷增多,各個系統之間點對點的調用交叉,部分數據不統一,從而導致管理混亂。為了加強對一卡通系統各項開放能力進行集中統一管理,實現能力的聚合、開放、鑒權、轉發、限流和監控,校園一卡通能力開放平臺應運而生。
能力開放平臺[4-5]是一個獨立的業務管理平臺系統,它通過數據的治理和業務的梳理,將核心數據和核心服務通過API的形式開放。例如:阿里云開發者平臺、百度地圖開放平臺、微信開放平臺等,都建立了良好的開發者生態體系。校園一卡通能力開放平臺實現了各個子系統能力的聚合,為各子系統的能力開放管控提供統一方案,避免重復開放,形成統一的能力規范;同時,能力開放平臺還提供了統一的鑒權和監控管理能力。通過建設能力開放平臺,就可以基于校園一卡通的核心能力,構建一個強大的應用生態體系。
2 校園一卡通能力開放平臺設計
校園一卡通能力開放平臺采用新的技術及“能力開放平臺+應用”的設計理念,按照業務板塊分散建立各個系統,向“重開放平臺、薄系統應用”的方向發展,逐步形成統一的架構體系。對開放平臺的頂層進行重點設計和規劃,重點突出共享服務層和開放公用的思想,實現統一對外提供服務、統一訪問數據層,滿足并達到能力開放、數據共享的核心價值。
2.1 平臺功能
校園一卡通能力開放平臺主要功能應包括:(1)定義能力接口的標準規范。為匯聚到本平臺的能力制定命名規則、認證方式、簽名方式等標準。(2)實現能力聚合的管理。將各業務中臺、場景服務提供的能力匯聚到本平臺中,便于智慧校園中各個應用開發者查閱、使用這些能力。(3)實現能力開放的管理。支持應用開發者自助申請開通本平臺聚合的能力,并支持對各應用系統使用本平臺的能力情況進行有效管控。(4)提供鑒權能力。在接收到應用服務能力使用請求時,先進行鑒權,確認被合法授權后才將請求轉發到真正提供服務的業務中臺或場景服務中。(5)提供監控訪問能力。在接收到合作方(第三方)請求之后,能力平臺會將這些請求的記錄進行保留,定期生成日志和統計圖表,做到有據可查,保證了系統訪問的可控。
2.2 架構設計
校園一卡通能力開放平臺建設的總體目標是“服務治理+能力開放”,在進行架構設計時,遵從以下3點原則:(1)對于內部服務的治理,包括業務梳理、機構化、整合與改造、實現校園全業務的流程統一和管控統一,從而為能力開發奠定堅實基礎。(2)能力開放,以此聚合第三方應用,拓展業務渠道,構建敏捷的業務運營與創新能力,將業務重點放到師生關注的內容上來。(3)能力開放平臺建設遵循“標準化、集中化、統一化、安全化”的原則。標準化指制定方案和規范,實現標準接入、標準協議、鑒權、運營監控的基本功能,定義好標準后對外開放。集中化指所有服務集中部署于統一平臺,提升集中化管理水平。統一化指實現服務的統一注冊、統一管理、統一發布、統一接入、統一監控的全生命周期管理。安全化指通過密鑰、代理模式加固信息安全防御能力,防破解、防篡改、防止敏感信息泄露。
根據前面所述平臺的功能和架構設計,校園一卡通能力開放平臺包含能力網關、能力管理模塊、權限管理模塊、服務注冊配置中心、數據存儲等部分,平臺架構如圖1所示。校園一卡通系統各項能力以微服務的形式在能力開放平臺進行注冊,以RESTful API接口[6]的形式映射到能力網關,供應用客戶端調用;應用客戶端采用HTTPS協議訪問能力網關。
網關完成應用客戶端的認證、鑒權、請求的路由轉發和限流等功能。能力管理平臺實現能力聚合開放,把相互的能力、資源、信息等進行共享、組合、升級。權限管理模塊提供認證和鑒權服務,授權采用OAuth2.0協議[7],認證采用JWT協議。持久數據存儲在MySQL數據庫中,同時使用Redis作為緩存,提供數據響應速度。平臺提供的各種能力以微服務的形式提供。因此,基于Dubbo搭建服務注冊配置中心,Dubbo可以提供服務注冊、服務調用、負載均衡和智能容錯等功能,還可以對各項能力進行實時監控、分析、告警等精細化管理。
2.3 開放能力列表
根據對校園一卡通核心數據和服務的梳理,確定開放平臺注冊的能力列表,包含賬號登錄、賬號查詢、流水查詢、銀行卡轉賬等,客戶端通過HTTPS的方式訪問能力接口,具體如表1所示。
2.4 業務流程設計
能力開放平臺聚合了各個業務中臺提供的可開放的能力。合作方(第三方)應用客戶端要調用所需的能力,向能力開放平臺申請令牌(如:Java Web Token)[8],能力開放平臺根據客戶端在中心注冊所配置的節點,對所請求的第三方授權進行令牌授予。
合作方(第三方)首先使用能力開放平臺所提供的應用ID和密鑰,向鑒權中心發送一個認證的請求,如圖2所示。能力開放平臺會驗證此客戶端的合法性。若合法,將生成一個Jwt,此時的token(Jwt)中加密了客戶端的唯一ID、可訪問權限列表的信息,之后返回給合作方。合作方可以調用能力開放平臺的相關功能。下一步以調用平臺支付能力為例,合作方(第三方)除了傳遞支付本身相關的參數以外,在請求頭(header)中帶上Jwt消息,支付能力平臺接收到來自客戶端的請求后,會驗證這個Jwt的合法性和權限相關性。若通過,將給予客戶端調用支付能力的權限并進行支付。此時,開放平臺處理來自客戶端的支付請求(還可繼續調用銀行的外部支付接口完成支付),待處理完成之后,將處理結果按照約定返回給合作方(第三方)。以上是一個典型的請求-響應流程,但開放平臺自身還會提供基于定時任務或者消息隊列的反饋機制,這點與回調的流程是類似的。
3 校園一卡通能力開放平臺部署與測試
3.1 平臺物理部署配置
根據能力開放平臺的架構設計,實際部署方案為:
(1)前端部署兩臺Nginx服務器用于應用反向代理,單臺Nginx服務器處理并發數可達3萬,足以滿足學校高峰時段的使用。
(2)后端(服務端)部署兩臺服務器用于微服務業務處理。將微服務Java源文件進行編譯,并打包成Jar(War)包,分別拷貝到兩臺服務器的tomcat/webapps目錄下,同時啟動tomcat。程序會把微服務的節點(各個子服務能力提供者)注冊到配置中心的樹狀節點中。此時,服務消費端可以通過配置中心服務器的樹狀列表找到自己需要的服務,從而實現分布式微服務的功能。
(3)部署一臺Redis服務器和1臺MySQL服務器。主要是考慮到應用高峰時段能力的調用會非常頻繁,如果單純采用關系型數據庫直接查詢,會導致數據查詢緩慢、效率低下。系統采用Redis作為能力平臺的高速緩存,高峰期所有的能力調用都是直接通過內存中的高速緩存來進行,這樣可以保證調用速度在毫秒級別,從而滿足高峰時段的用戶體驗。
3.2 平臺性能測試
能力開放平臺主要是對API接口進行管理,它對能力調用的性能至關重要。第三方應用經過網關,網關路由轉發到后臺服務,后臺服務響應回網關,網關再響應回第三方應用,這樣一個流程所需的時間反映出能力開放平臺的主要性能。經過大量性能測試,通過采取1 500,2 000,2 500的線程數量,大致得出:對于單臺服務器,它的單接口能力調用性能達到300 TPS(每秒能處理的請求),而多接口能力調用性能達到500 TPS。
4 結語
校園一卡通能力開放平臺建設,梳理了校園一卡通的核心數據和服務,以統一規范的形式向智慧校園各類第三方應用系統開放,實現了與智慧校園應用的深度融合,構建了強大的應用生態體系。平臺對校園一卡通各項開放能力進行統一管理、統一監控,且具備安全、快捷的鑒權機制。通過采用分布式部署架構,平臺具有良好的高并發和快速響應能力,并可根據業務需求的變化彈性提供服務能力,在實際應用中取得良好效果。
參考文獻
[1]韓立峰.基于一卡通的校園應用集成[J].信息技術,2011(12):104-106.
[2]榮娟,王逸群.校園虛擬卡系統的設計與規劃[J].通訊世界,2019(2):302-303.
[3]王逸群.高校校園卡充值方式的變化趨勢[J].中國管理信息化,2018(15):206-207.
[4]馮騏,沈富可.高校能力開放平臺中的API網關設計與實現[J].中國教育信息化,2021(3):61-66.
[5]徐華.基于微服務架構的圖書館能力開放平臺設計[J].無線互聯科技,2021(19):55-57.
[6]韓立峰.校園一卡通開放平臺REST API設計[J].微型電腦應用,2015(10):57-59.
[7]劉曉暉,秦子實.基于OAuth2認證的REST API設計與實踐[J].電腦知識與技術,2021(15):56-57.
[8]陳佳.一種基于JWT令牌認證的電力系統微服務認證授權方案[J].電工技術,2021(16):151-154.
(編輯 王永超)
Design of campus card capability open platform
Gao? Yixin, Kong? Jingyuan, Wang? Yiqun
(China University of Petroleum (East China) Information Construction Department, Qingdao 266580, China)
Abstract: In todays Internet application development, capability open platform plays a very important role. In order to realize the deep integration of campus all-in-one card system and smart campus applications, build a open platform for campus all-in-one card capability, sort out various core data and services, and open them in a unified manner. By analyzing the functional requirements of the campus all-in-one card capability open platform, the platform architecture based on the microservices framework and the business process of capability invocation are designed, and the physical deployment scheme of the platform is designed according to the actual business scale. The actual test results show that the platform design achieves the expected functional goals, and has good service concurrency performance and rapid response capability.
Key words: campus card system; capability open platform; micro service architecture