国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WebAPI的移動端學(xué)生綜合服務(wù)平臺設(shè)計(jì)與實(shí)現(xiàn)

2017-11-17 08:49張爾喜先曉兵王雪鋒
軟件工程 2017年10期

張爾喜++先曉兵++王雪鋒

摘 要:基于WebAPI技術(shù)的移動端學(xué)生綜合服務(wù)平臺,整合了學(xué)校的教務(wù)系統(tǒng)、一卡通系統(tǒng)、圖書管理系統(tǒng)等,同時(shí)結(jié)合微信企業(yè)號實(shí)現(xiàn)了學(xué)生在移動端的各類查詢應(yīng)用及教學(xué)相關(guān)的服務(wù)應(yīng)用。該平臺設(shè)計(jì)通過API服務(wù)來打通各個(gè)系統(tǒng)之間不同數(shù)據(jù)庫的數(shù)據(jù)整合,同時(shí)結(jié)合Html5技術(shù)來實(shí)現(xiàn)移動端服務(wù),為高校信息化建設(shè)中的移動端建設(shè)提供一種解決方案。

關(guān)鍵詞:WebAPI;教學(xué)服務(wù)微信企業(yè)號;Html5

中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼:A

1 引言(Introduction)

WebAPI[1]是一個(gè)簡單的構(gòu)建HTTP服務(wù)的新框架,支持原生OData,返回JSON、XML等格式,并且可以添加其他擴(kuò)展類型,對各種平臺具有較好的兼容性,也可以被其他平臺整合,有效地減輕了以SOAP標(biāo)準(zhǔn)的WebService、WCF框架技術(shù)開發(fā)困難程度,提高了程序員的開發(fā)效率。目前許多高?,F(xiàn)有信息系統(tǒng)通過數(shù)據(jù)同步或者整合,通過PC端訪問提供信息服務(wù),存在數(shù)據(jù)更新不及時(shí)、學(xué)生需求跟不上等問題,不能滿足學(xué)生服務(wù)需要。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展、移動設(shè)備的廣泛普及和H5技術(shù)的發(fā)展,移動端學(xué)生綜合服務(wù)平臺可以快捷方便地為學(xué)生服務(wù),從而使學(xué)生服務(wù)工作實(shí)現(xiàn)從傳統(tǒng)的PC端移植到移動的智能設(shè)備。本文介紹一種采用WebAPI為技術(shù)架構(gòu)的移動端學(xué)生綜合服務(wù)平臺的設(shè)計(jì)與實(shí)現(xiàn)。

2 平臺工具及技術(shù)(Platform tools and technologies)

2.1 WebAPI

ASP.NET WebAPI[1](簡稱WebAPI)是一個(gè)開源的、理想的、構(gòu)建REST-ful服務(wù)的技術(shù),是一個(gè)輕量級的框架,并且對智能手機(jī)等限制帶寬的設(shè)備支持得很好。利用Http作為應(yīng)用層協(xié)議的特征,它也支持MVC特征,像路由、控制器、action、filter、模型綁定、控制反轉(zhuǎn)或依賴注入、單元測試。Http請求除利用URI目標(biāo)資源外,還需要通過Http方法指名GET、POST、PUT、DELETE等方法來Request或Response請求或返回媒體類型,可以用XML格式來表示,也可以用JSON格式來表示。基于REST-ful架構(gòu)WebAPI的優(yōu)點(diǎn):通用、輕量級、靈活、優(yōu)化的情況下,性能更有優(yōu)勢,能夠直接利用Http的動態(tài)網(wǎng)頁技術(shù)開發(fā)接口與功能,對交互數(shù)據(jù)格式?jīng)]有明確的規(guī)定,使得其可以更好地使用在特定的軟件運(yùn)行平臺。

ASP.NET WebAPI是基于.NET Framework的同時(shí)借用了ASP.NET MVC設(shè)計(jì)理念,便于.NET開發(fā)者接受和使用,是構(gòu)建RESTFul應(yīng)用的最佳平臺。微軟從ASP.NET MVC4開始引入Web API,如今已經(jīng)升級到WebAPI2.2版本。

2.2 ORM框架簡介

ORM[2]框架(Object Relation Mapping)的思想是根據(jù)實(shí)體類和數(shù)據(jù)表之間的映射關(guān)系動態(tài)進(jìn)行sql腳本的生成。一般采用元數(shù)據(jù)來表示對象-關(guān)系映射細(xì)節(jié)。元數(shù)據(jù)一般采用XML格式,而且存放在專門的對象—映射文件中。只要提供了持久化類與表之間的映射關(guān)系,ORM框架在運(yùn)行時(shí)候就能參照映射的文件信息,把對象持久化到數(shù)據(jù)庫中。元數(shù)據(jù)(Metadata)是描述其他數(shù)據(jù)(data about other data)或者說是作用在提供某些資源的有關(guān)信息的結(jié)構(gòu)數(shù)據(jù)。元數(shù)據(jù)就是描述某些信息資源或者數(shù)據(jù)等對象的數(shù)據(jù),它的使用目的是:識別資源、評價(jià)資源、追蹤資源在使用過程中的變化;可以實(shí)現(xiàn)簡單高效地管理大量網(wǎng)絡(luò)化數(shù)據(jù);實(shí)現(xiàn)信息資源地有效發(fā)現(xiàn)、查找、一體化組織和對使用資源的有效管理。

.NET平臺下常用的ORM框架主要有EF(ADO.NET Entity Framework)、Nhibernate、SQL Mapper、Automapper、FluentData、Dapper、EmitMapper等,ORM的使用便于平臺的管理與維護(hù)。

2.3 OAuth2.0協(xié)議簡介

OAuth2.0[3]是目前OAuth協(xié)議的最新版本。OAuth2.0不向下兼容OAuth1.0版本,但是它保留了之前版本的OAuth協(xié)議的相同框架。OAuth2.0更為關(guān)注用戶端開發(fā)人員的使用方便,也為Web應(yīng)用程序、桌面應(yīng)用程序及手機(jī)、智能家居設(shè)備提供專門的認(rèn)證流程,因此該協(xié)議得到廣泛應(yīng)用。

OAuth2.0認(rèn)證和授權(quán)在使用的過程中主要涉及三個(gè)方面:服務(wù)提供方、用戶、客戶端等三個(gè)方面。服務(wù)提供方是用戶使用服務(wù)提供方來提供受保護(hù)的資源;用戶是存放在服務(wù)提供方的受保護(hù)資源的擁有者;客戶端是要訪問服務(wù)提供方的資源要進(jìn)行認(rèn)證和授權(quán)。

OAuth2.0是一種不需要任何加密的認(rèn)證方式?;谶@種認(rèn)證方式是建立在現(xiàn)存的cookie驗(yàn)證方式的架構(gòu)上,然后將自身的token作為密鑰secret,通過https請求,從而簡單替換了基于HMAC和token secret加密方式的請求。它對簽名進(jìn)行了簡化,實(shí)際上對簽名的支持就是對簽名機(jī)制的極大的簡化,使用一個(gè)secret來代替。對角色進(jìn)行分開處理,它主要分為兩個(gè)角色,一個(gè)是Authorization server,一個(gè)是Resoursce。

目前國內(nèi)主流的各大移動平臺都提供API接口及OAuth2.0認(rèn)證方式,方便用戶接入。比如騰訊QQ、微信、微博、新浪微博等都提供了該認(rèn)證接口。

2.4 移動平臺技術(shù)

目前移動平臺開發(fā)技術(shù)主要有三種:移動Web[4]、Native[4]、Hybrid[5]。

移動Web(Web App)開發(fā):使用的語言是HTML、CSS、JS、H5等,語言簡單易學(xué),能夠開發(fā)移動應(yīng)用網(wǎng)站,具備很好的跨平臺性。優(yōu)點(diǎn)是開發(fā)成本低,能夠跨平臺,具有開發(fā)成本低、周期短、使用方便、維護(hù)簡單,但是體驗(yàn)效果不好,而且不能提交到應(yīng)用市場。endprint

Native原生開發(fā)(Native App)技術(shù):主流移動平臺是IOS和Android,使用的語言是Object-c、swift、Java等能夠開發(fā)移動APP,利用操作系統(tǒng)自身提供的開發(fā)方式,具有向下訪問,提供原生的支持,要做到跨平臺需要熟悉Android和IOS的知識。優(yōu)點(diǎn)是應(yīng)用的性能好,體驗(yàn)好,適配起來相對容易,技術(shù)比較成熟,能和原生的平臺API無縫對接,能打造更優(yōu)質(zhì)體驗(yàn)。但是學(xué)習(xí)成本高,需要開發(fā)多套平臺應(yīng)用,比較麻煩。

Hybrid混合(Hybrid App)開發(fā):這種開發(fā)是將移動Web和Native原生技術(shù)結(jié)合起來,通過簡單的Web語言編寫前端,原生技術(shù)提供各項(xiàng)功能,可以跨平臺。優(yōu)點(diǎn)是Hybrid App可以跨平臺開發(fā),周期短,成本低,又能發(fā)揮Native App體驗(yàn)和性能優(yōu)勢。現(xiàn)在有很多支持這種開發(fā)模式的平臺,比如微信、釘釘?shù)取?/p>

移動端學(xué)生綜合服務(wù)平臺的設(shè)計(jì)與實(shí)現(xiàn),不論從整體還是部分,均采用Hybrid混合方式來實(shí)現(xiàn)用戶的體驗(yàn)和交互。

3 平臺設(shè)計(jì)(Platform design)

3.1 平臺總體框架

根據(jù)常熟理工學(xué)院實(shí)際情況,基于用戶的需求,平臺盡量做到界面簡潔,操作方便。通過分析,平臺總體模塊功能圖如圖1所示,主要包括課程信息、實(shí)踐教學(xué)、成績信息、繳費(fèi)信息、一卡通消費(fèi)信息、圖書借閱信息、個(gè)人信息等六個(gè)部分。平臺主要服務(wù)對象是學(xué)生。學(xué)生登錄時(shí),通過OAuth2.0的認(rèn)證方式進(jìn)入自己的界面。

(1)課程信息:學(xué)生可以實(shí)時(shí)地查詢當(dāng)前學(xué)年學(xué)期的課程表,課程表標(biāo)注了周一到周日上課的節(jié)次、上課的地點(diǎn)及單雙周上課情況;

(2)實(shí)踐教學(xué):學(xué)生在上實(shí)驗(yàn)課或?qū)嵺`課時(shí),通過掃描房間二維碼或設(shè)備、家具等條形碼來確定學(xué)生參加的實(shí)驗(yàn)或?qū)嵺`項(xiàng)目,達(dá)到房間、設(shè)備、家具使用情況的監(jiān)控,也可以實(shí)現(xiàn)學(xué)生的考勤情況考察;

(3)成績信息:保存了學(xué)生歷年的每個(gè)學(xué)期的成績信息,呈現(xiàn)的是學(xué)生每個(gè)學(xué)期每門課程的考試成績、補(bǔ)考成績、績點(diǎn)等信息;

(4)繳費(fèi)信息:記錄學(xué)生每年繳費(fèi)信息及貸款信息;

(5)消費(fèi)信息:記錄學(xué)生一卡通消費(fèi)的各項(xiàng)信息,實(shí)時(shí)記錄學(xué)生的消費(fèi)信息,包括在食堂、浴室、超市等區(qū)域的消費(fèi)情況;

(6)圖書借閱:一個(gè)是當(dāng)前的借閱信息,另一個(gè)是歷史借閱情況;

(7)個(gè)人信息:相當(dāng)于學(xué)生個(gè)人電子身份證信息,包含學(xué)生的姓名、學(xué)號、班級、學(xué)院、輔導(dǎo)員、電話、家庭住址等基本信息。

3.2 平臺模塊設(shè)計(jì)

平臺共分為用戶授權(quán)模塊和應(yīng)用模塊兩個(gè)功能模塊。對于用戶授權(quán)模塊,用戶通過綁定學(xué)號,然后OAthu 2.0認(rèn)證通過后進(jìn)入平臺;對于應(yīng)用模塊,用戶查詢關(guān)于自己的課程、實(shí)驗(yàn)實(shí)踐、成績、繳費(fèi)、消費(fèi)、圖書及電子信息。

3.3 平臺工作原理

本平臺雖然沒有數(shù)據(jù)庫設(shè)計(jì),但是通過平臺工作原理圖2看可以看出,平臺通過架設(shè)多種數(shù)據(jù)庫的基礎(chǔ)來實(shí)現(xiàn)平臺中的各項(xiàng)功能。

4 平臺功能實(shí)現(xiàn)(Platform function implementation)

本平臺借助微信企業(yè)號[6]認(rèn)證來實(shí)現(xiàn)。首先學(xué)生用自己的手機(jī)號或郵箱或微信號綁定自己的學(xué)號。綁定成功后,通過微信企業(yè)號的OAuth2.0認(rèn)證成功后,進(jìn)入到該學(xué)生的平臺界面。

學(xué)生登錄成功后即可查詢自己的課程信息、成績信息、一卡通信息、繳費(fèi)信息、圖書信息及電子身份證信息,同時(shí)還可以進(jìn)行實(shí)驗(yàn)實(shí)踐教學(xué),如圖3所示。用戶通過認(rèn)證后,平臺從Session中獲取用戶的UserId信息,然后根據(jù)學(xué)號通過查詢學(xué)生系統(tǒng)的數(shù)據(jù)庫來獲取用戶的信息,在移動Web App中展現(xiàn)用戶信息。

根據(jù)用戶的UserId,通過WebAPI應(yīng)用服務(wù)程序及ORM來實(shí)時(shí)查詢教務(wù)系統(tǒng)、一卡通系統(tǒng)、圖書系統(tǒng)、數(shù)據(jù)庫中學(xué)生的課程信息、成績信息、一卡通信息、圖書,返回學(xué)生課程、實(shí)踐教學(xué)信息、成績、消費(fèi)信息、圖書的JSON格式的數(shù)據(jù)到Web App上,轉(zhuǎn)換成學(xué)生相應(yīng)的課程、實(shí)踐教學(xué)信息、成績信息、消費(fèi)信息、圖書信息,如圖5和圖6所示。

平臺設(shè)計(jì)了學(xué)生在校期間與之學(xué)習(xí)生活相關(guān)的信息,提供了學(xué)生學(xué)習(xí)生活中的各種信息的查詢,方便服務(wù)學(xué)生。

5 結(jié)論(Conclusion)

本文以WebAPI為技術(shù)架構(gòu)開發(fā)的移動端學(xué)生綜合服務(wù)平臺,平臺的主要功能方便學(xué)生使用,效率高,切實(shí)為學(xué)生服務(wù)。當(dāng)然平臺運(yùn)行中還存在不足之處,如界面的美化,學(xué)生關(guān)注的實(shí)驗(yàn)教學(xué)課程查詢、晨練查詢、校歷查詢、支付功能等功能,應(yīng)在以后的使用過程中不斷地改進(jìn)和完善。

參考文獻(xiàn)(References)

[1] Wojcieszyn F.ASP.NET web API 2 recipes—A problem solution approach[J].Apress Berkely,CA,USA,2014:31-33.

[2] Sportelli F.Supporting conceptual modelling in ORM by reasoning[J].New Trends in Databases and Information Systems,2017:422-431.

[3] Yang R,Lau W C,Shi S.Breaking and fixing mobile app authentication with OAuth2.0-based protocols[J].Applied Cryptography and Network Security,2017:313-335.

[4] 王鑫.NativeApp與WebApp移動應(yīng)用發(fā)展[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(9):250-253.

[5] 楊中華,孫云濤.淺談APP技術(shù)在當(dāng)代大學(xué)校園中的應(yīng)用性[J].教育管理信息化,2014(2):71.

[6] 李書欽,李敏,馬時(shí)來.基于微信企業(yè)號的移動教學(xué)服務(wù)平臺設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2016(3):25-26.

作者簡介:

張爾喜(1981-),男,本科,助理工程師.研究領(lǐng)域:計(jì)算機(jī)科學(xué)與應(yīng)用.

先曉兵(1971-),男,碩士,副教授.研究領(lǐng)域:數(shù)據(jù)挖掘,數(shù)據(jù)分析.

王雪鋒(1969-),男,博士,副教授.研究領(lǐng)域:教育管理,食品科學(xué).endprint

武邑县| 阳山县| 民丰县| 沧源| 青神县| 永仁县| 东方市| 东辽县| 莒南县| 叙永县| 寿阳县| 竹溪县| 织金县| 皮山县| 河北区| 连云港市| 溧阳市| 蛟河市| 卢龙县| 江城| 南郑县| 泾源县| 格尔木市| 宣化县| 杭锦旗| 江安县| 吉安市| 台东县| 泸定县| 霍邱县| 新营市| 建德市| 南郑县| 寿光市| 东乌| 丹东市| 米易县| 平罗县| 延长县| 平凉市| 枞阳县|