解攀科,郭偉秀,許 婷,廖莉莉
1(華中師范大學(xué) 信息化辦公室,武漢 430079)
2(華中師范大學(xué)第一附屬中學(xué),武漢 430079)
近年來(lái),高校信息化建設(shè)不斷推進(jìn),學(xué)校信息化基礎(chǔ)設(shè)施建設(shè)已經(jīng)初具規(guī)模,硬件環(huán)境和網(wǎng)絡(luò)環(huán)境均得到改善,軟件系統(tǒng)應(yīng)用水平也逐步得到提升[1].高校建設(shè)了大量的業(yè)務(wù)信息系統(tǒng),如人事管理系統(tǒng)、財(cái)務(wù)管理系統(tǒng)、科研管理系統(tǒng)、教務(wù)管理系統(tǒng)、教學(xué)云平臺(tái)等,滿足了學(xué)校師生在教學(xué)、科研、個(gè)人發(fā)展、學(xué)術(shù)交流等方面的需求.信息系統(tǒng)間通過(guò)統(tǒng)一基礎(chǔ)平臺(tái)實(shí)現(xiàn)互聯(lián)互通,由于企業(yè)微信APP 具備微信APP 簡(jiǎn)單易用的特點(diǎn),一些高校選擇通過(guò)企業(yè)版的微信平臺(tái)來(lái)實(shí)現(xiàn)移動(dòng)校園業(yè)務(wù)的融合[2-4].
高校信息化建設(shè)需廣泛征集師生日益增長(zhǎng)的信息化需求,應(yīng)考慮提供覆蓋面廣、便捷易用的需求獲取通道.傳統(tǒng)方式下,信息化建設(shè)的需求獲取通過(guò)訪談若干師生用戶代表來(lái)實(shí)現(xiàn),分析師生的使用場(chǎng)景和業(yè)務(wù)流程.但傳統(tǒng)模式下的需求采集,存在覆蓋面不夠和效率低下的缺點(diǎn),需要借助有效的信息化手段,提升用戶覆蓋面和采集的工作效率.高校通過(guò)企業(yè)微信構(gòu)建校園微門戶,師生已廣泛使用微門戶各項(xiàng)功能,基于企業(yè)微信開(kāi)發(fā)相關(guān)功能來(lái)獲取信息化需求,是一種可行易用的需求采集方案.企業(yè)微信具有媲美微信APP 的簡(jiǎn)潔用法和較好的用戶體驗(yàn),師生可快捷登錄、獲取功能推薦、呈現(xiàn)個(gè)性化的用戶交互UI 界面,同時(shí)可避免微信業(yè)務(wù)繁雜查找不便的缺點(diǎn),方便師生沉浸式地使用所需的功能.基于企業(yè)微信開(kāi)發(fā)信息化需求采集工具,方便師生用戶快捷提交需求,有助于避免好的需求點(diǎn)子轉(zhuǎn)瞬即逝,通過(guò)定期推送、長(zhǎng)期采集的模式多方位采集用戶需求,有助于信息化建設(shè)工作“有的放矢”.
通過(guò)企業(yè)微信平臺(tái)快速開(kāi)發(fā)需求采集工具,既提升師生的易用性,又可以通過(guò)企業(yè)微信身份機(jī)制實(shí)施交互對(duì)接,精準(zhǔn)識(shí)別身份源并提煉可信需求,提升信息化需求采集工作的信度和效度.研究企業(yè)微信的接口進(jìn)行了系統(tǒng)開(kāi)發(fā),并通過(guò)輕量級(jí)的Spring Boot 實(shí)施相關(guān)的模塊集成,Spring Boot 可充分利用豐富的Java 應(yīng)用庫(kù)靈活組合使用,并遵循企業(yè)微信開(kāi)發(fā)規(guī)范進(jìn)行快速開(kāi)發(fā),移動(dòng)版界面通過(guò)HTML5 方案來(lái)實(shí)現(xiàn)自適應(yīng)適配.基于企業(yè)微信的信息化需求采集平臺(tái)已開(kāi)發(fā)完成并投入使用,師生可方便地通過(guò)企業(yè)微信提交需求、變更需求、進(jìn)行熱門需求討論等功能,系統(tǒng)管理員在系統(tǒng)后臺(tái)可方便地進(jìn)行需求對(duì)接、處理等相關(guān)管理工作.
企業(yè)微信是騰訊2014年打造的適合高校信息化場(chǎng)景的企業(yè)通訊及辦公平臺(tái).企業(yè)微信APP 具有和微信APP 一致的用戶體驗(yàn),使用企業(yè)微信平臺(tái),可避免高校自行開(kāi)發(fā)維護(hù)APP 的各種難題,如APP 的碎片化等.企業(yè)微信可方便實(shí)現(xiàn)高校組織架構(gòu)的整合,提供統(tǒng)一的身份認(rèn)證體系,并基于微信企業(yè)架構(gòu)快速開(kāi)發(fā)應(yīng)用程序.基于企業(yè)微信的高校移動(dòng)應(yīng)用具有輕量級(jí)、易于整合、易于連接、數(shù)據(jù)安全可控的優(yōu)點(diǎn).高校基于企業(yè)微信打造移動(dòng)版應(yīng)用,提供了一致性的移動(dòng)應(yīng)用環(huán)境,方便師生使用各類實(shí)用的校園微應(yīng)用,如遠(yuǎn)程校內(nèi)視頻會(huì)議、小組化協(xié)作學(xué)習(xí)、課程資源共享、各類校園學(xué)習(xí)生活信息查詢等[5-7].基于企業(yè)微信的消息提醒機(jī)制,可以便捷低成本的向師生推送各類實(shí)用信息,并避免傳統(tǒng)方式下重復(fù)推送的缺點(diǎn).綜合利用企業(yè)微信的平臺(tái)優(yōu)勢(shì),很多高校使用企業(yè)微信來(lái)實(shí)現(xiàn)信息化基礎(chǔ)設(shè)施的打通,并開(kāi)發(fā)了大量移動(dòng)應(yīng)用,如信息公共服務(wù)、企業(yè)微信教務(wù)應(yīng)用、企業(yè)微信圖書資源應(yīng)用、企業(yè)微信校園網(wǎng)應(yīng)用等.
高校在進(jìn)行信息化系統(tǒng)建設(shè)時(shí),需要充分調(diào)研師生的各類需求,往往采用當(dāng)面訪談的方式進(jìn)行.這種直接點(diǎn)對(duì)點(diǎn)的方式溝通可有效獲取一定的系統(tǒng)需求,但受制于溝通人員或溝通場(chǎng)景的局限性,使得需求獲取存在一定的片面性.高校在建設(shè)公共性質(zhì)的信息化基礎(chǔ)平臺(tái)時(shí),為達(dá)到較好的建設(shè)效果,需求分析應(yīng)實(shí)現(xiàn)較大范圍的用戶覆蓋.因此需要借助信息化手段來(lái)直接獲取師生的各類需求,提升需求收集、處理的效率,并支持需求的過(guò)程迭代,從而實(shí)現(xiàn)需求的完善采集和實(shí)用性處理.基于企業(yè)微信可快速開(kāi)發(fā)應(yīng)用來(lái)獲取師生需求,并通過(guò)企業(yè)微信消息提醒機(jī)制精準(zhǔn)定向推送至師生.在企業(yè)微信平臺(tái)下開(kāi)發(fā)管理需求的微應(yīng)用,可方便與師生交互,并支持雙向溝通、反饋與迭代,是一種可行的解決方案.
綜合分析信息化需求采集系統(tǒng)的建設(shè)目標(biāo)、受眾范圍、系統(tǒng)功能,對(duì)系統(tǒng)各大功能模塊進(jìn)行了設(shè)計(jì).系統(tǒng)用戶端由企業(yè)微信APP 構(gòu)成,系統(tǒng)服務(wù)器管理端由J2EE 的后臺(tái)系統(tǒng)構(gòu)成.系統(tǒng)用戶端主要由企業(yè)微信實(shí)現(xiàn)采集表單、需求提交錄入、需求查看、需求修改、附件管理、熱門需求投票等功能,各項(xiàng)功能從用戶界面到交互設(shè)計(jì)均遵循企業(yè)微信API 開(kāi)發(fā)規(guī)范.系統(tǒng)服務(wù)器端由授權(quán)管理、需求分類、需求調(diào)整、需求優(yōu)化、需求迭代、需求統(tǒng)計(jì)分析等模塊組成,采用Spring Boot 輕量級(jí)J2EE 微服務(wù)框架實(shí)現(xiàn).圖1說(shuō)明了系統(tǒng)框架及其功能設(shè)計(jì).
圖1 系統(tǒng)功能示意圖
系統(tǒng)技術(shù)框架基于企業(yè)微信[8]架構(gòu)設(shè)計(jì),采用Spring Boot 作為具體的微服務(wù)應(yīng)用技術(shù)實(shí)現(xiàn).基于企業(yè)微信和學(xué)校原有的移動(dòng)平臺(tái)API 接口,實(shí)施項(xiàng)目開(kāi)發(fā)、對(duì)接、部署、測(cè)試和上線試運(yùn)行.后端系統(tǒng)開(kāi)發(fā)使用Spring Boot 框架開(kāi)發(fā),部署到虛擬機(jī)節(jié)點(diǎn)上提供服務(wù).服務(wù)器通過(guò)Nginx 反向代理機(jī)制運(yùn)行,配置了基于權(quán)值的負(fù)載均衡策略,對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行按需調(diào)度,并通過(guò)雙節(jié)點(diǎn)集群部署來(lái)提升系統(tǒng)的穩(wěn)定性.系統(tǒng)采用Oracle 12c 作為運(yùn)行數(shù)據(jù)庫(kù).系統(tǒng)開(kāi)發(fā)要有效實(shí)現(xiàn)企業(yè)微信和Spring Boot 的技術(shù)對(duì)接[9-12],采用一體化身份認(rèn)證架構(gòu)設(shè)計(jì),要考慮解決PC 端CAS 統(tǒng)一身份單點(diǎn)登錄認(rèn)證,及實(shí)現(xiàn)企業(yè)微信OAuth2 認(rèn)證.在企業(yè)微信前端界面開(kāi)發(fā)時(shí),使用HTML5 方案實(shí)現(xiàn)移動(dòng)端UI 的響應(yīng)式布局.HTML5 方案基于開(kāi)源的Amaze UI[13]實(shí)現(xiàn)界面開(kāi)發(fā).Amaze UI 遵循移動(dòng)優(yōu)先的理念來(lái)實(shí)現(xiàn)移動(dòng)設(shè)備、PC 設(shè)備的自適應(yīng)適配.Amaze UI 可實(shí)現(xiàn)輕量級(jí)的前端渲染,并通過(guò)整合CSS3 來(lái)實(shí)現(xiàn)異步交互,支持移動(dòng)版應(yīng)用程序的快速加載.
系統(tǒng)開(kāi)發(fā)遵循企業(yè)微信API 開(kāi)發(fā)規(guī)范,通過(guò)HTTP協(xié)議封裝,提交客戶端的GET 請(qǐng)求加載微應(yīng)用.應(yīng)用程序首先需要正確發(fā)送corpID 和secret 參數(shù)獲取訪問(wèn)Token.在獲取有效Token 后,依據(jù)當(dāng)前會(huì)話獲取code 參數(shù),再向企業(yè)微信服務(wù)器發(fā)起HTTP 數(shù)據(jù)請(qǐng)求.若請(qǐng)求數(shù)據(jù)包基于OAuth2 協(xié)議回調(diào)成功,則可以返回正確格式的JSON 數(shù)據(jù)包,使用合適的Java 工具處理JSON 數(shù)據(jù),并加載相關(guān)數(shù)據(jù)、獲取權(quán)限等.系統(tǒng)處理流程發(fā)起時(shí),用戶操作相關(guān)功能會(huì)發(fā)起用戶請(qǐng)求.企業(yè)微信APP 會(huì)將用戶請(qǐng)求執(zhí)行URL 重定向,企業(yè)微信后臺(tái)會(huì)執(zhí)行靜默驗(yàn)證操作,當(dāng)機(jī)構(gòu)標(biāo)識(shí)corpID 和密鑰secret 驗(yàn)證通過(guò)后,會(huì)返回正確的code 值.依據(jù)獲取的code,系統(tǒng)會(huì)話會(huì)通過(guò)HTTP 302 跳轉(zhuǎn)到信息化需求采集后臺(tái)的URL.Java 服務(wù)后臺(tái)的Servlet 處理程序會(huì)執(zhí)行相關(guān)的企業(yè)微信API 調(diào)用,依據(jù)正確提交的code 進(jìn)行會(huì)話處理,并返回userid 等所需的機(jī)構(gòu)基礎(chǔ)數(shù)據(jù).Java服務(wù)后臺(tái)在獲取機(jī)構(gòu)基礎(chǔ)數(shù)據(jù)后,執(zhí)行信息化需求采集處理相關(guān)業(yè)務(wù)方法,處理業(yè)務(wù)邏輯,獲取業(yè)務(wù)數(shù)據(jù).服務(wù)器后臺(tái)數(shù)據(jù)處理完畢后,通過(guò)進(jìn)一步的視圖渲染處理,最終以HTML5 的自適應(yīng)版移動(dòng)界面呈現(xiàn)處理結(jié)果.圖2說(shuō)明了基于企業(yè)微信的信息化需求采集應(yīng)用開(kāi)發(fā)實(shí)現(xiàn)流程.
圖2 基于企業(yè)微信的信息化需求采集應(yīng)用開(kāi)發(fā)實(shí)現(xiàn)流程
利用表1所示的API 及其函數(shù),采用如下Java代碼實(shí)現(xiàn)了與企業(yè)微信集成:
try
{
String corpID="wx7608d605c7058b0c";
String secret="59kOoxasp21k7oDvfca_jDfawGUoxFr 2P3BcqiKDz2o";
String token=QywxAccessTokenAPI.getAccessToken(corpID,secret).getAccesstoken().toString();
//...
String wxUserInfoUrl=" ";wxUserInfoUrl="https://qyapi.weixin.qq.com/cgibin/user/getuserinfo?access_token="+t oken+"&code="+code;
String httpStr=HttpRequestUtils.httpGet(wxUser InfoUrl,null,6000);
String outStr=JSONObject.parseObject(httpStr).get("UserId").toString();
//···
}
catch (Exception e)
{e.printStackTrace();}
J2EE 服務(wù)器端由Spring Boot 實(shí)現(xiàn),Spring Boot通過(guò)自動(dòng)配置的機(jī)制解決J2EE 的依賴問(wèn)題.通過(guò)pom.xml 可便捷地引入所需的Java 組件.Spring Boot通過(guò)形如@Controller 的Java 注解構(gòu)造Spring MVC 的控制器,控制器通過(guò)@RequestMapping 注解構(gòu)造相關(guān)的Request 方法,該方法的請(qǐng)求參數(shù)按照企業(yè)微信API 規(guī)范提交,數(shù)據(jù)交互處理的結(jié)果以HTML5 格式呈現(xiàn),企業(yè)微信APP 處理HTML5 頁(yè)面并予以渲染顯示.
表1 API 舉例及方法說(shuō)明
系統(tǒng)使用IntelliJ IDEA 軟件開(kāi)發(fā)完成,并已部署至實(shí)際的企業(yè)微信環(huán)境中運(yùn)行,師生可以方便地在APP 上使用“信息化需求采集”功能.師生安裝并運(yùn)行企業(yè)微信APP,即可方便地使用各項(xiàng)功能,通過(guò)企業(yè)APP 界面提交各類信息化需求.其它功能也一并開(kāi)發(fā)完成,已在APP 上線,通過(guò)相應(yīng)界面操作,師生可方便查看已提交的需求、查看處理狀態(tài)、附件上傳、參與熱門點(diǎn)贊等.基于已實(shí)現(xiàn)的OAuth2 集成對(duì)接,用戶無(wú)需輸入賬號(hào)密碼登錄,可直接獲取身份權(quán)限,并完成系統(tǒng)交互.圖3為信息化需求采集應(yīng)用在企業(yè)微信上的運(yùn)行情況.
圖3 信息化需求采集應(yīng)用在企業(yè)微信APP 運(yùn)行情況
系統(tǒng)后臺(tái)基于JDK 8 開(kāi)發(fā)完成,通過(guò)Spring Boot內(nèi)置的Tomcat 容器運(yùn)行后臺(tái)服務(wù).系統(tǒng)后臺(tái)通過(guò)Nginx反向代理實(shí)現(xiàn)端口轉(zhuǎn)發(fā),并執(zhí)行負(fù)載均衡策略調(diào)度Tomcat計(jì)算節(jié)點(diǎn).系統(tǒng)使用HikariCP[14]高性能JDBC 連接池技術(shù)來(lái)提升數(shù)據(jù)庫(kù)訪問(wèn)性能,HikariCP 借助Javassist 提升數(shù)據(jù)庫(kù)連接動(dòng)態(tài)代理的處理能力,并通過(guò)ConcurrentBag并發(fā)集合技術(shù)大幅提升數(shù)據(jù)庫(kù)并發(fā)處理的性能,且極大幅度降低了數(shù)據(jù)庫(kù)鎖競(jìng)爭(zhēng)的概率.系統(tǒng)后臺(tái)部署后,通過(guò)LoadRunner[15]工具進(jìn)行了系統(tǒng)并發(fā)性能測(cè)試,通過(guò)錄制用戶腳本,模擬客戶端發(fā)送請(qǐng)求來(lái)完成各項(xiàng)測(cè)試.圖4顯示了系統(tǒng)后臺(tái)在不同并發(fā)用戶數(shù)下的平均、最短、最長(zhǎng)響應(yīng)時(shí)延.隨著系統(tǒng)并發(fā)用戶的增多,系統(tǒng)響應(yīng)時(shí)延隨之有所增長(zhǎng),但系統(tǒng)平均時(shí)延可控制在5 s 以內(nèi),表明后臺(tái)處理情況良好,后續(xù)工作中可針對(duì)實(shí)際運(yùn)行場(chǎng)景進(jìn)一步調(diào)整后臺(tái)性能,使系統(tǒng)運(yùn)行狀況控制在更佳的范圍內(nèi).
圖4 后臺(tái)并發(fā)測(cè)試情況
基于企業(yè)微信開(kāi)發(fā)的微應(yīng)用,可借助企業(yè)微信的消息機(jī)制實(shí)施精準(zhǔn)推送,師生在獲取推送材料后,可及時(shí)參與信息化需求征集工作.為有效實(shí)施微應(yīng)用的推廣,需設(shè)計(jì)精美的微信專項(xiàng)推文,并向全體師生實(shí)施合理頻度的無(wú)擾推送.圖5為應(yīng)用推廣的推文界面.在2019年12月進(jìn)行的推廣活動(dòng)中,12月2日即有5500用戶使用了企業(yè)微信的信息化采集功能,具體請(qǐng)見(jiàn)圖6.截至2019年12月,累計(jì)采集校務(wù)服務(wù)信息化需求近400 項(xiàng).
圖5 應(yīng)用推廣的推文界面
圖6 用戶使用情況
企業(yè)微信作為一個(gè)成熟的信息化基礎(chǔ)平臺(tái),建立了統(tǒng)一的IT 連接架構(gòu),提供了一致性的開(kāi)發(fā)工具,并打造了良好的IT 生態(tài)環(huán)境.高校在信息化建設(shè)過(guò)程中,可充分利用好企業(yè)微信的平臺(tái)優(yōu)勢(shì),既有效控制軟件開(kāi)發(fā)成本,又可把主要精力投入到適合高校場(chǎng)景的業(yè)務(wù)開(kāi)發(fā)中來(lái).利用企業(yè)微信開(kāi)發(fā)高校信息化應(yīng)用,實(shí)施高校各類微應(yīng)用的敏捷開(kāi)發(fā),進(jìn)而逐步打破高校的數(shù)據(jù)孤島,實(shí)現(xiàn)高校信息化水平提升.在基于企業(yè)微信推進(jìn)信息化建設(shè)時(shí),應(yīng)充分利用好大平臺(tái)的天然優(yōu)勢(shì),并借助企業(yè)微信生態(tài)推動(dòng)各項(xiàng)業(yè)務(wù)在師生中的廣泛使用.企業(yè)微信作為一個(gè)全行業(yè)適用的生態(tài)系統(tǒng),高校應(yīng)結(jié)合教育行業(yè)的特點(diǎn)與之整合,充分發(fā)揮企業(yè)微信在高校數(shù)字化學(xué)習(xí)、數(shù)字校園建設(shè)中的優(yōu)勢(shì),但也要大膽舍棄不適合高校的某些功能,不宜全盤照搬.如何將高校信息化與企業(yè)微信深度融合,打造最佳實(shí)踐,仍需要高校信息化建設(shè)者進(jìn)一步研究和探索.