高逸昕 孔敬媛 王逸群
摘要: 在當(dāng)今互聯(lián)網(wǎng)應(yīng)用發(fā)展中,能力開放平臺起到很重要的作用。為實(shí)現(xiàn)校園一卡通系統(tǒng)與智慧校園各項(xiàng)應(yīng)用的深度融合,建設(shè)校園一卡通能力開放平臺,梳理各項(xiàng)核心數(shù)據(jù)與服務(wù),以統(tǒng)一的規(guī)范進(jìn)行開放。文章通過分析校園一卡通能力開放平臺的功能需求,設(shè)計(jì)基于微服務(wù)框架的平臺架構(gòu)和能力調(diào)用的業(yè)務(wù)流程,根據(jù)實(shí)際業(yè)務(wù)規(guī)模設(shè)計(jì)平臺的物理部署方案。實(shí)際測試結(jié)果表明平臺設(shè)計(jì)達(dá)到了預(yù)期功能目標(biāo),具有良好的服務(wù)并發(fā)性能和快速響應(yīng)能力。
關(guān)鍵詞:校園一卡通;能力開放平臺;微服務(wù)架構(gòu)
中圖分類號: TP393? 文獻(xiàn)標(biāo)志碼: A
0 引言
校園一卡通系統(tǒng)是數(shù)字校園的基礎(chǔ)應(yīng)用,長期以來,高校致力于推進(jìn)面向校園卡的校園應(yīng)用集成[1]。通過與校園一卡通系統(tǒng)對接,數(shù)字校園各個(gè)應(yīng)用系統(tǒng)能夠共享校園卡的身份識別和電子支付功能,如機(jī)房管理系統(tǒng)、圖書管理系統(tǒng)、上課考勤系統(tǒng)、大學(xué)生體測系統(tǒng)等,真正實(shí)現(xiàn)了“一卡在手,走遍校園”的主旨。校園卡在教學(xué)、管理、生活等方面的廣泛應(yīng)用方便了師生,提高了校園的管理水平和運(yùn)行效率。
隨著云計(jì)算、移動(dòng)互聯(lián)網(wǎng)、人工智能等新技術(shù)的不斷發(fā)展,新一代校園一卡通系統(tǒng)呈現(xiàn)出卡碼臉多介質(zhì)、移動(dòng)支付、聚合支付(校園卡、銀行卡、微信、支付寶等)等新特征[2-3],線上功能更加豐富。當(dāng)前,在高校信息化整體規(guī)劃下,建設(shè)基于智慧校園的校園一卡通系統(tǒng),將校園卡的數(shù)據(jù)和服務(wù)通過API的形式開放,從而與教學(xué)、科研、管理信息系統(tǒng)進(jìn)一步融合,使師生能夠隨時(shí)隨地隨需地獲取資源和服務(wù)。
1 校園一卡通能力開放平臺
早期,基于校園一卡通的應(yīng)用集成,都遵循一套API接口,將讀卡、扣款、寫卡等功能集成到自己的系統(tǒng)流程中,從而獲取的核心能力就是校園卡的身份認(rèn)證和支付功能。比如:圖書借閱管理系統(tǒng)通過讀卡獲取讀者身份,超期罰款可以通過校園卡扣款。隨著校園一卡通系統(tǒng)數(shù)據(jù)和應(yīng)用的不斷豐富,API數(shù)量不斷增多,各個(gè)系統(tǒng)之間點(diǎn)對點(diǎn)的調(diào)用交叉,部分?jǐn)?shù)據(jù)不統(tǒng)一,從而導(dǎo)致管理混亂。為了加強(qiáng)對一卡通系統(tǒng)各項(xiàng)開放能力進(jìn)行集中統(tǒng)一管理,實(shí)現(xiàn)能力的聚合、開放、鑒權(quán)、轉(zhuǎn)發(fā)、限流和監(jiān)控,校園一卡通能力開放平臺應(yīng)運(yùn)而生。
能力開放平臺[4-5]是一個(gè)獨(dú)立的業(yè)務(wù)管理平臺系統(tǒng),它通過數(shù)據(jù)的治理和業(yè)務(wù)的梳理,將核心數(shù)據(jù)和核心服務(wù)通過API的形式開放。例如:阿里云開發(fā)者平臺、百度地圖開放平臺、微信開放平臺等,都建立了良好的開發(fā)者生態(tài)體系。校園一卡通能力開放平臺實(shí)現(xiàn)了各個(gè)子系統(tǒng)能力的聚合,為各子系統(tǒng)的能力開放管控提供統(tǒng)一方案,避免重復(fù)開放,形成統(tǒng)一的能力規(guī)范;同時(shí),能力開放平臺還提供了統(tǒng)一的鑒權(quán)和監(jiān)控管理能力。通過建設(shè)能力開放平臺,就可以基于校園一卡通的核心能力,構(gòu)建一個(gè)強(qiáng)大的應(yīng)用生態(tài)體系。
2 校園一卡通能力開放平臺設(shè)計(jì)
校園一卡通能力開放平臺采用新的技術(shù)及“能力開放平臺+應(yīng)用”的設(shè)計(jì)理念,按照業(yè)務(wù)板塊分散建立各個(gè)系統(tǒng),向“重開放平臺、薄系統(tǒng)應(yīng)用”的方向發(fā)展,逐步形成統(tǒng)一的架構(gòu)體系。對開放平臺的頂層進(jìn)行重點(diǎn)設(shè)計(jì)和規(guī)劃,重點(diǎn)突出共享服務(wù)層和開放公用的思想,實(shí)現(xiàn)統(tǒng)一對外提供服務(wù)、統(tǒng)一訪問數(shù)據(jù)層,滿足并達(dá)到能力開放、數(shù)據(jù)共享的核心價(jià)值。
2.1 平臺功能
校園一卡通能力開放平臺主要功能應(yīng)包括:(1)定義能力接口的標(biāo)準(zhǔn)規(guī)范。為匯聚到本平臺的能力制定命名規(guī)則、認(rèn)證方式、簽名方式等標(biāo)準(zhǔn)。(2)實(shí)現(xiàn)能力聚合的管理。將各業(yè)務(wù)中臺、場景服務(wù)提供的能力匯聚到本平臺中,便于智慧校園中各個(gè)應(yīng)用開發(fā)者查閱、使用這些能力。(3)實(shí)現(xiàn)能力開放的管理。支持應(yīng)用開發(fā)者自助申請開通本平臺聚合的能力,并支持對各應(yīng)用系統(tǒng)使用本平臺的能力情況進(jìn)行有效管控。(4)提供鑒權(quán)能力。在接收到應(yīng)用服務(wù)能力使用請求時(shí),先進(jìn)行鑒權(quán),確認(rèn)被合法授權(quán)后才將請求轉(zhuǎn)發(fā)到真正提供服務(wù)的業(yè)務(wù)中臺或場景服務(wù)中。(5)提供監(jiān)控訪問能力。在接收到合作方(第三方)請求之后,能力平臺會(huì)將這些請求的記錄進(jìn)行保留,定期生成日志和統(tǒng)計(jì)圖表,做到有據(jù)可查,保證了系統(tǒng)訪問的可控。
2.2 架構(gòu)設(shè)計(jì)
校園一卡通能力開放平臺建設(shè)的總體目標(biāo)是“服務(wù)治理+能力開放”,在進(jìn)行架構(gòu)設(shè)計(jì)時(shí),遵從以下3點(diǎn)原則:(1)對于內(nèi)部服務(wù)的治理,包括業(yè)務(wù)梳理、機(jī)構(gòu)化、整合與改造、實(shí)現(xiàn)校園全業(yè)務(wù)的流程統(tǒng)一和管控統(tǒng)一,從而為能力開發(fā)奠定堅(jiān)實(shí)基礎(chǔ)。(2)能力開放,以此聚合第三方應(yīng)用,拓展業(yè)務(wù)渠道,構(gòu)建敏捷的業(yè)務(wù)運(yùn)營與創(chuàng)新能力,將業(yè)務(wù)重點(diǎn)放到師生關(guān)注的內(nèi)容上來。(3)能力開放平臺建設(shè)遵循“標(biāo)準(zhǔn)化、集中化、統(tǒng)一化、安全化”的原則。標(biāo)準(zhǔn)化指制定方案和規(guī)范,實(shí)現(xiàn)標(biāo)準(zhǔn)接入、標(biāo)準(zhǔn)協(xié)議、鑒權(quán)、運(yùn)營監(jiān)控的基本功能,定義好標(biāo)準(zhǔn)后對外開放。集中化指所有服務(wù)集中部署于統(tǒng)一平臺,提升集中化管理水平。統(tǒng)一化指實(shí)現(xiàn)服務(wù)的統(tǒng)一注冊、統(tǒng)一管理、統(tǒng)一發(fā)布、統(tǒng)一接入、統(tǒng)一監(jiān)控的全生命周期管理。安全化指通過密鑰、代理模式加固信息安全防御能力,防破解、防篡改、防止敏感信息泄露。
根據(jù)前面所述平臺的功能和架構(gòu)設(shè)計(jì),校園一卡通能力開放平臺包含能力網(wǎng)關(guān)、能力管理模塊、權(quán)限管理模塊、服務(wù)注冊配置中心、數(shù)據(jù)存儲等部分,平臺架構(gòu)如圖1所示。校園一卡通系統(tǒng)各項(xiàng)能力以微服務(wù)的形式在能力開放平臺進(jìn)行注冊,以RESTful API接口[6]的形式映射到能力網(wǎng)關(guān),供應(yīng)用客戶端調(diào)用;應(yīng)用客戶端采用HTTPS協(xié)議訪問能力網(wǎng)關(guān)。
網(wǎng)關(guān)完成應(yīng)用客戶端的認(rèn)證、鑒權(quán)、請求的路由轉(zhuǎn)發(fā)和限流等功能。能力管理平臺實(shí)現(xiàn)能力聚合開放,把相互的能力、資源、信息等進(jìn)行共享、組合、升級。權(quán)限管理模塊提供認(rèn)證和鑒權(quán)服務(wù),授權(quán)采用OAuth2.0協(xié)議[7],認(rèn)證采用JWT協(xié)議。持久數(shù)據(jù)存儲在MySQL數(shù)據(jù)庫中,同時(shí)使用Redis作為緩存,提供數(shù)據(jù)響應(yīng)速度。平臺提供的各種能力以微服務(wù)的形式提供。因此,基于Dubbo搭建服務(wù)注冊配置中心,Dubbo可以提供服務(wù)注冊、服務(wù)調(diào)用、負(fù)載均衡和智能容錯(cuò)等功能,還可以對各項(xiàng)能力進(jìn)行實(shí)時(shí)監(jiān)控、分析、告警等精細(xì)化管理。
2.3 開放能力列表
根據(jù)對校園一卡通核心數(shù)據(jù)和服務(wù)的梳理,確定開放平臺注冊的能力列表,包含賬號登錄、賬號查詢、流水查詢、銀行卡轉(zhuǎn)賬等,客戶端通過HTTPS的方式訪問能力接口,具體如表1所示。
2.4 業(yè)務(wù)流程設(shè)計(jì)
能力開放平臺聚合了各個(gè)業(yè)務(wù)中臺提供的可開放的能力。合作方(第三方)應(yīng)用客戶端要調(diào)用所需的能力,向能力開放平臺申請令牌(如:Java Web Token)[8],能力開放平臺根據(jù)客戶端在中心注冊所配置的節(jié)點(diǎn),對所請求的第三方授權(quán)進(jìn)行令牌授予。
合作方(第三方)首先使用能力開放平臺所提供的應(yīng)用ID和密鑰,向鑒權(quán)中心發(fā)送一個(gè)認(rèn)證的請求,如圖2所示。能力開放平臺會(huì)驗(yàn)證此客戶端的合法性。若合法,將生成一個(gè)Jwt,此時(shí)的token(Jwt)中加密了客戶端的唯一ID、可訪問權(quán)限列表的信息,之后返回給合作方。合作方可以調(diào)用能力開放平臺的相關(guān)功能。下一步以調(diào)用平臺支付能力為例,合作方(第三方)除了傳遞支付本身相關(guān)的參數(shù)以外,在請求頭(header)中帶上Jwt消息,支付能力平臺接收到來自客戶端的請求后,會(huì)驗(yàn)證這個(gè)Jwt的合法性和權(quán)限相關(guān)性。若通過,將給予客戶端調(diào)用支付能力的權(quán)限并進(jìn)行支付。此時(shí),開放平臺處理來自客戶端的支付請求(還可繼續(xù)調(diào)用銀行的外部支付接口完成支付),待處理完成之后,將處理結(jié)果按照約定返回給合作方(第三方)。以上是一個(gè)典型的請求-響應(yīng)流程,但開放平臺自身還會(huì)提供基于定時(shí)任務(wù)或者消息隊(duì)列的反饋機(jī)制,這點(diǎn)與回調(diào)的流程是類似的。
3 校園一卡通能力開放平臺部署與測試
3.1 平臺物理部署配置
根據(jù)能力開放平臺的架構(gòu)設(shè)計(jì),實(shí)際部署方案為:
(1)前端部署兩臺Nginx服務(wù)器用于應(yīng)用反向代理,單臺Nginx服務(wù)器處理并發(fā)數(shù)可達(dá)3萬,足以滿足學(xué)校高峰時(shí)段的使用。
(2)后端(服務(wù)端)部署兩臺服務(wù)器用于微服務(wù)業(yè)務(wù)處理。將微服務(wù)Java源文件進(jìn)行編譯,并打包成Jar(War)包,分別拷貝到兩臺服務(wù)器的tomcat/webapps目錄下,同時(shí)啟動(dòng)tomcat。程序會(huì)把微服務(wù)的節(jié)點(diǎn)(各個(gè)子服務(wù)能力提供者)注冊到配置中心的樹狀節(jié)點(diǎn)中。此時(shí),服務(wù)消費(fèi)端可以通過配置中心服務(wù)器的樹狀列表找到自己需要的服務(wù),從而實(shí)現(xiàn)分布式微服務(wù)的功能。
(3)部署一臺Redis服務(wù)器和1臺MySQL服務(wù)器。主要是考慮到應(yīng)用高峰時(shí)段能力的調(diào)用會(huì)非常頻繁,如果單純采用關(guān)系型數(shù)據(jù)庫直接查詢,會(huì)導(dǎo)致數(shù)據(jù)查詢緩慢、效率低下。系統(tǒng)采用Redis作為能力平臺的高速緩存,高峰期所有的能力調(diào)用都是直接通過內(nèi)存中的高速緩存來進(jìn)行,這樣可以保證調(diào)用速度在毫秒級別,從而滿足高峰時(shí)段的用戶體驗(yàn)。
3.2 平臺性能測試
能力開放平臺主要是對API接口進(jìn)行管理,它對能力調(diào)用的性能至關(guān)重要。第三方應(yīng)用經(jīng)過網(wǎng)關(guān),網(wǎng)關(guān)路由轉(zhuǎn)發(fā)到后臺服務(wù),后臺服務(wù)響應(yīng)回網(wǎng)關(guān),網(wǎng)關(guān)再響應(yīng)回第三方應(yīng)用,這樣一個(gè)流程所需的時(shí)間反映出能力開放平臺的主要性能。經(jīng)過大量性能測試,通過采取1 500,2 000,2 500的線程數(shù)量,大致得出:對于單臺服務(wù)器,它的單接口能力調(diào)用性能達(dá)到300 TPS(每秒能處理的請求),而多接口能力調(diào)用性能達(dá)到500 TPS。
4 結(jié)語
校園一卡通能力開放平臺建設(shè),梳理了校園一卡通的核心數(shù)據(jù)和服務(wù),以統(tǒng)一規(guī)范的形式向智慧校園各類第三方應(yīng)用系統(tǒng)開放,實(shí)現(xiàn)了與智慧校園應(yīng)用的深度融合,構(gòu)建了強(qiáng)大的應(yīng)用生態(tài)體系。平臺對校園一卡通各項(xiàng)開放能力進(jìn)行統(tǒng)一管理、統(tǒng)一監(jiān)控,且具備安全、快捷的鑒權(quán)機(jī)制。通過采用分布式部署架構(gòu),平臺具有良好的高并發(fā)和快速響應(yīng)能力,并可根據(jù)業(yè)務(wù)需求的變化彈性提供服務(wù)能力,在實(shí)際應(yīng)用中取得良好效果。
參考文獻(xiàn)
[1]韓立峰.基于一卡通的校園應(yīng)用集成[J].信息技術(shù),2011(12):104-106.
[2]榮娟,王逸群.校園虛擬卡系統(tǒng)的設(shè)計(jì)與規(guī)劃[J].通訊世界,2019(2):302-303.
[3]王逸群.高校校園卡充值方式的變化趨勢[J].中國管理信息化,2018(15):206-207.
[4]馮騏,沈富可.高校能力開放平臺中的API網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[J].中國教育信息化,2021(3):61-66.
[5]徐華.基于微服務(wù)架構(gòu)的圖書館能力開放平臺設(shè)計(jì)[J].無線互聯(lián)科技,2021(19):55-57.
[6]韓立峰.校園一卡通開放平臺REST API設(shè)計(jì)[J].微型電腦應(yīng)用,2015(10):57-59.
[7]劉曉暉,秦子實(shí).基于OAuth2認(rèn)證的REST API設(shè)計(jì)與實(shí)踐[J].電腦知識與技術(shù),2021(15):56-57.
[8]陳佳.一種基于JWT令牌認(rèn)證的電力系統(tǒng)微服務(wù)認(rèn)證授權(quán)方案[J].電工技術(shù),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