亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于REST架構(gòu)的高校移動教務(wù)數(shù)據(jù)開放平臺設(shè)計方法

        2014-03-07 08:28:20趙啟升李存華吳庚午劉小明
        關(guān)鍵詞:數(shù)據(jù)庫資源用戶

        趙啟升,李存華,吳庚午,劉小明

        (1.淮海工學(xué)院計算機工程學(xué)院,江蘇連云港222005)(2.淮海工學(xué)院信息中心,江蘇 連云港222005)

        隨著移動互聯(lián)網(wǎng)的快速發(fā)展,教育領(lǐng)域的教學(xué)模式、學(xué)習(xí)方式也逐漸發(fā)生變化.傳統(tǒng)的Web應(yīng)用正逐步被Android,iOS等智能手機APP所取代,越來越多的開發(fā)者開始關(guān)注高校APP的開發(fā).但是由于高校內(nèi)各教務(wù)系統(tǒng)平臺不統(tǒng)一,數(shù)據(jù)模型不兼容,校園APP的開發(fā)難度較大.設(shè)計并實現(xiàn)一個用于整合高校內(nèi)各教務(wù)系統(tǒng)資源,為開發(fā)者提供統(tǒng)一API的數(shù)據(jù)開放平臺就顯得尤為重要[1].

        1 RESTful Web Service介紹

        表現(xiàn)層狀態(tài)轉(zhuǎn)移(representational state transfer,REST)是Roy Fielding博士在2000年提出來的一種軟件風(fēng)格架構(gòu),根據(jù)REST原則,RESTful架構(gòu)的系統(tǒng)平臺將數(shù)據(jù)抽象成資源,通過通用資源標(biāo)識符(uniform resource identifier,URI)來標(biāo)識數(shù)據(jù)資源的唯一性.與傳統(tǒng)的SOAP Web Service架構(gòu)相比,REST風(fēng)格架構(gòu)的Web Service使得用戶僅僅通過訪問URI就可以獲取相應(yīng)的數(shù)據(jù)資源,并通過HTTP協(xié)議的簡單動作就能完成對資源的操作[2].

        一個符合REST原則的服務(wù)架構(gòu)就稱其為RESTful架構(gòu).REST原則主要有3個概念:資源(resources)、表現(xiàn)層(representation)以及狀態(tài)轉(zhuǎn)化(state transfer).只有清楚理解這3個概念,才能設(shè)計出嚴格符合REST風(fēng)格的架構(gòu)[4].

        1)資源:表現(xiàn)層狀態(tài)轉(zhuǎn)化是資源表現(xiàn)層狀態(tài)轉(zhuǎn)化,因為和系統(tǒng)交互的是網(wǎng)絡(luò)上一個具體存在的實體,或者說是一個具體的信息體.系統(tǒng)通過URI指向某個具體的資源,并與之交互.URI就是資源的唯一標(biāo)識符.

        2)表現(xiàn)層:URI只代表具體的資源,而資源的呈現(xiàn)方式就是表現(xiàn)層.表現(xiàn)層是資源具體表現(xiàn)格式的體現(xiàn),比如XML格式、JSON格式等.這具體由HTTP協(xié)議信息頭的Accept和Content-Type字段來指定.

        3)狀態(tài)轉(zhuǎn)化:互聯(lián)網(wǎng)通信協(xié)議HTTP協(xié)議是一個無狀態(tài)的協(xié)議(事務(wù)處理沒有記憶能力,每一次請求都是與之前請求毫無關(guān)系的獨立事務(wù)),通過HTTP協(xié)議提供的4個動作:GET/PUT/DELETE/POST來實現(xiàn)資源的狀態(tài)轉(zhuǎn)化[3].REST架構(gòu)如圖1.

        圖1REST架構(gòu)Fig.1 Architecture diagram of REST

        1.1 RPC風(fēng)格與REST風(fēng)格比較

        RPC風(fēng)格的Web Service服務(wù)器通常會從客戶端收到一個數(shù)據(jù)信封,然后處理,完成之后再向客戶端返回一個數(shù)據(jù)信封.這種方式使得服務(wù)器無法通過URI來標(biāo)識資源,客戶端也無法利用HTTP的特性來操作資源.由于客戶端和服務(wù)器的交互基本都是基于HTTP的,所以RPC風(fēng)格的Web Service在空間信息共享和互操作上還存在很多問題.

        相比之下,REST風(fēng)格架構(gòu)從設(shè)計之初就已經(jīng)解決了這些問題,它是一種面向資源的架構(gòu).REST通過URI標(biāo)識了資源的唯一性,并且只需HTTP請求動作就能實現(xiàn)對于資源的操作.REST風(fēng)格架構(gòu)有更強的伸縮性和交互能力.

        1.2 REST架構(gòu)的設(shè)計與實現(xiàn)

        1.2.1 URI設(shè)計

        一個合理的URI設(shè)計就是一個良好的系統(tǒng)架構(gòu),因為REST允許通過URI設(shè)計系統(tǒng),所以在實現(xiàn)REST架構(gòu)的時候,首要考慮的就是如何設(shè)計一個合理的URI.REST架構(gòu)主要用于為開發(fā)者提供API,因此在設(shè)計URI的時候還需要加入API的版本號.此外,URI中只能有名詞,這些名詞往往與數(shù)據(jù)庫中的表名相對應(yīng),URI中還需要相應(yīng)的參數(shù)來過濾結(jié)果.URI格式如圖2.

        圖2 URI圖示Fig.2 URI Icon

        1.2.2 URI重寫

        URI是服務(wù)器資源的身份標(biāo)識,它是唯一的.但是服務(wù)器并不直接處理該URI.服務(wù)器的重寫規(guī)則可將URI轉(zhuǎn)換成服務(wù)器能夠識別的有效URL,在實現(xiàn)REST架構(gòu)時,重寫URI是必要的過程[5].

        1.2.3 狀態(tài)碼設(shè)計

        對于客戶端的請求,服務(wù)器處理完成之后會返回數(shù)據(jù)結(jié)果和狀態(tài)碼,狀態(tài)碼用于標(biāo)識服務(wù)器的每一次處理狀態(tài).常見狀態(tài)碼及其含義如表1.

        表1 狀態(tài)碼Table 1 Status code

        2 Web Service系統(tǒng)框架介紹

        框架的作用主要是提高程序的可重用性,將業(yè)務(wù)邏輯和具體實現(xiàn)相互分離,為APP開發(fā)人員提供一個易擴展、易維護、高效穩(wěn)定的應(yīng)用程序骨架.依據(jù)Web Service的具體需求,文中實現(xiàn)的系統(tǒng)框架需要用于接口請求驗證的authentication模塊、管理系統(tǒng)緩存的Cache管理模塊、配置和加載具體模塊方法的route模塊、用于數(shù)據(jù)格式化輸出的Parse模塊以及負責(zé)數(shù)據(jù)庫操作的DAO模塊[6].

        1)DAO數(shù)據(jù)庫訪問抽象層,本文將數(shù)據(jù)庫連接和數(shù)據(jù)庫基本操作封裝在DAO層中,每一個實體對象都繼承了該DAO層,通過集成和重寫DAO層的方法與數(shù)據(jù)庫進行交互,實現(xiàn)數(shù)據(jù)庫的基本操作.這樣也使得底層的數(shù)據(jù)庫操作與業(yè)務(wù)邏輯分離,降低了框架的耦合性[7-8].

        2)parser層,位于DAO層之上,該層將數(shù)據(jù)封裝格式化為指定的格式或?qū)ο螅缓蠼挥芍付ǖ姆?wù)模塊處理,系統(tǒng)處理之后的結(jié)果也由該模塊打包成指定格式并返回給客戶端.

        3)cache management,文中實現(xiàn)系統(tǒng)中的緩存管理主要有Session緩存和文件緩存兩種形式,session緩存用來存儲用戶基本信息和基本校驗數(shù)據(jù).它比文件緩存和數(shù)據(jù)庫操作更高效,很適合在頻繁調(diào)用數(shù)據(jù)的時候使用.文件緩存用于保存本系統(tǒng)的臨時查詢和處理結(jié)果,所有的緩存都有相應(yīng)的回收策略,在一定時間之后會自動更新緩存數(shù)據(jù).

        4)authenticate認證機制,為確保API接口調(diào)用的合法性,本系統(tǒng)設(shè)計了相應(yīng)的驗證機制,用于校驗用戶請求的合法性.本系統(tǒng)主要通過用戶注冊時提供的設(shè)備IMEI來校驗用戶請求的合法性.

        3 Web Service系統(tǒng)框架實現(xiàn)

        文中實現(xiàn)系統(tǒng)框架的執(zhí)行流程:對于每一個API請求,系統(tǒng)都會對其進行合法性驗證,驗證不通過,則返回請求失敗的信息到客戶端;如果通過驗證,系統(tǒng)執(zhí)行框架的路由模塊,路由模塊根據(jù)請求URL加載相應(yīng)的模塊和方法,系統(tǒng)將結(jié)果數(shù)據(jù)處理成統(tǒng)一的格式后返回給客戶端,整個流程到此執(zhí)行完畢.

        3.1 請求驗證層實現(xiàn)

        請求驗證層主要負責(zé)對每一次用戶請求進行驗證,可通過Authentic類實現(xiàn).其中,authBySession方法通過session緩存來獲取用戶IMEI進行校驗,authByDb方法通過數(shù)據(jù)庫校驗用戶的合法IMEI.authByIP方法校驗用戶IP,主要用于一些有IP限制的接口.authByRequestNum方法用于限制用戶的請求次數(shù),這主要針對像通知這類請求比較頻繁的接口.RequestAuth類繼承了Authentic類,其方法requestCheck是根據(jù)父類給出的校驗方法制定校驗規(guī)則,從而實現(xiàn)整個校驗流程,postDataValidate方法是對每個接口所提交的參數(shù)進行合法性檢查.類圖如圖3所示.

        圖3 請求驗證層類Fig.3 Class diagram of request validation layer

        3.2 路由和緩存管理層實現(xiàn)

        路由和緩存管理層主要設(shè)定緩存管理機制和路由加載機制,緩存管理用于管理用戶的請求數(shù)據(jù)緩存,路由加載用于加載和配置框架具體執(zhí)行的模塊和方法.以session緩存管理為例,在緩存管理模塊中,sessionCache類通過繼承父類Cache來重寫父類的方法,從而完成整個緩存管理機制.其中父類中定義了讀取緩存,寫入緩存和判斷過期時間3個基本方法.其類圖如圖4.

        3.3 解析層實現(xiàn)

        解析層主要實現(xiàn)框架的網(wǎng)頁解析功能和數(shù)據(jù)格式化.Curl類定義了網(wǎng)頁解析功能的集體實現(xiàn),HttpCurl類通過繼承Curl父類,重載父類的curl方法,實現(xiàn)按照不同的情況解析網(wǎng)頁的功能,Parser類定義了網(wǎng)頁解析之后數(shù)據(jù)處理的常用方法和數(shù)據(jù)返回格式化的常用操作.其類圖如圖5.

        圖4 緩存管理類Fig.4 Class diagram of cache management

        圖5 解析層類Fig.5 Class diagram of analytical layer

        4 系統(tǒng)運行測試與分析

        本系統(tǒng)的運行環(huán)境為Windows Server 2008,IIS版本為7.5,數(shù)據(jù)庫版本為MySQL 5.5,Oracle 11g,網(wǎng)絡(luò)環(huán)境為電信100Mbps,PHP版本為5.4.進行系統(tǒng)測試的目的是檢查系統(tǒng)框架基礎(chǔ)模塊能否正確運行和系統(tǒng)接口是否符合REST原則.本系統(tǒng)所做測試主要以APP開發(fā)者用戶的身份測試:測試系統(tǒng)的用戶基本信息查詢和成績查詢接口.開發(fā)者用戶主要通過系統(tǒng)提供的接口URI來調(diào)用相關(guān)數(shù)據(jù),該URI不僅包含了調(diào)用的資源和返回的格式,而且還定義了調(diào)用資源的動作(增、刪、改、查).本測試所用URI如表2.

        表2 測試URITable 2 URI testing

        針對上述情況測試結(jié)果如下:

        1)當(dāng)用戶進行合法查詢請求時,系統(tǒng)通過接口返回數(shù)據(jù)來驗證用戶合法性并進行處理,學(xué)生成績信息部分 Json 格式數(shù)據(jù)為:[{″XN″:″2013 -2014″,″XQ″:″1″,″KCMC″:″編譯原理″,″XF″:″3″,″CJ″:″緩考″,″JD″:″0″,″KCXZ″:″必修課″,″BKCJ″:null,″CXCJ″:null,″FXBJ″:″0″,″KCGS″:null},…]返回結(jié)果如圖6.

        圖6 基本信息查詢Fig.6 Results of basic information query

        2)當(dāng)用戶進行非法查詢請求時,系統(tǒng)驗證用戶請求非法,不對用戶請求作出處理,返回錯誤信息,返回結(jié)果如圖7.

        圖7 非法請求結(jié)果Fig.7 Results of illegal request

        3)當(dāng)用戶進行錯誤請求時,系統(tǒng)驗證用戶請求模塊不存在,不對用戶請求作出處理,返回提示信息,返回結(jié)果如圖8.

        圖8 錯誤請求結(jié)果Fig.8 Results of error request

        從測試結(jié)果來看,本系統(tǒng)針對不同的請求URL返回了不同的信息,所返回信息的格式與URL申明格式一致,系統(tǒng)接口完全符合REST風(fēng)格,開發(fā)者成功調(diào)用獲取相關(guān)數(shù)據(jù)及數(shù)據(jù)表現(xiàn)形式,由此可以看出,在框架化的系統(tǒng)支持下的REST風(fēng)格接口的調(diào)用簡單快速,整個系統(tǒng)也更加輕量.

        5 結(jié)論

        針對高校內(nèi)各教務(wù)系統(tǒng)平臺不統(tǒng)一,校園APP開發(fā)者獲取教務(wù)數(shù)據(jù)難度大這些問題,本文引入REST原則,以框架化的程序設(shè)計方法,構(gòu)建了一個基于REST的移動教務(wù)高校數(shù)據(jù)開放平臺.該平臺只需通過簡單的HTTP協(xié)議就可以完成數(shù)據(jù)調(diào)用和共享.雖然本系統(tǒng)的核心功能模塊不多,但是框架化的設(shè)計使得系統(tǒng)本身極易擴展.測試說明系統(tǒng)運行正常且非常輕量.但是本系統(tǒng)并沒有實現(xiàn)教務(wù)系統(tǒng)的大部分模塊,服務(wù)器負載均衡、數(shù)據(jù)庫優(yōu)化、安全機制等問題有待進一步的研究.

        References)

        [1] 黃小東.基于RESTful web服務(wù)與Oauth 2.0協(xié)議的高校教學(xué)數(shù)據(jù)開放平臺設(shè)計研究[J].數(shù)字技術(shù)與應(yīng)用,2013(10):152-155.

        [2] 潘冰.基于Rails的RESTful Web Service研究與實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(10):188-190.Pan Bing.Studying and implementing Rails-based Restful Web Service[J].Computer Applications and Soft-ware,2010,27(10):188 -190.(in Chinese)

        [3] 阮一峰.理解RESTful架構(gòu)[EB/OL].[2014-05-10].http:∥www.ruanyifeng.com/blog/2011/09/restful.html.

        [4] 唐明偉.RESTful架構(gòu)下圖書管理系統(tǒng)的研究與實現(xiàn)[D].南京:河海大學(xué),2010.

        [5] Bryant P.REST -ful URI design[EB/OL].[2014-05 -12].http:∥blog.2partsmagic.com/restful- uridesign.

        [6] 潘冰.基于Rails的RESTfulWebService研究與實現(xiàn)[D].廣東:暨南大學(xué),2010.

        [7] Aaron Saray.PHP設(shè)計模式[M].北京:清華大學(xué)出版社,2010.

        [8] 潘冰.基于Rails的RESTfulWebService研究與實現(xiàn)[D].廣東:暨南大學(xué),2010.

        猜你喜歡
        數(shù)據(jù)庫資源用戶
        基礎(chǔ)教育資源展示
        一樣的資源,不一樣的收獲
        資源回收
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        91亚洲精品久久久中文字幕| 激情亚洲一区国产精品| 亚洲AV秘 片一区二区三| 中文字幕亚洲日本va| 亚洲精品有码日本久久久| 国产又粗又黄又爽的大片| 真人男女做爰无遮挡免费视频| 四虎成人精品国产永久免费| 久久99精品综合国产女同| 成人欧美一区二区三区在线观看| 麻豆国产人妻欲求不满谁演的| 中文乱码字幕高清在线观看| 青青草免费观看视频免费| 亚洲精品电影院| 亚洲 暴爽 av人人爽日日碰| 精品日韩欧美| 亚洲一区二区精品在线| 粗大的内捧猛烈进出小视频| 国产精品美女久久久浪潮av| 日韩久久无码免费看A| 久久精品熟女亚洲av麻豆永永 | 久久亚洲aⅴ精品网站婷婷| 特级国产一区二区三区| 色五月丁香五月综合五月| 丰满少妇被猛烈进入无码| 日韩精品中文字幕 一区| 九九久久精品国产免费av| 97精品超碰一区二区三区| 欧洲美女熟乱av| 久久99精品国产99久久6尤物| 亚洲精品久久久久久| 久久久久久久久中文字幕| 亚洲日本高清一区二区| 午夜男女很黄的视频| 久久久国产精品ⅤA麻豆| 好爽要高潮了在线观看| 青青草精品视频在线播放| 熟女熟妇伦av网站| 99精品国产第一福利网站| 精品亚洲av乱码一区二区三区| 人禽交 欧美 网站|