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

?

基于Android和Web Service的掌上校園系統(tǒng)的設(shè)計與實現(xiàn)

2015-04-01 01:19:56張宏彬
關(guān)鍵詞:客戶端智能手機界面

張 亮 ,王 超 ,張宏彬 ,2

(1.揚州工業(yè)職業(yè)技術(shù)學(xué)院 電氣信息工程學(xué)院,江蘇 揚州 225127;2.揚州大學(xué),江蘇 揚州 225127)

近年來,各種信息服務(wù)系統(tǒng)在高校已經(jīng)得到廣泛應(yīng)用,各高校紛紛建成了如教務(wù)查詢系統(tǒng)、圖書查詢系統(tǒng)、校園一卡通系統(tǒng)等信息系統(tǒng),為師生校園生活帶來了很大便利。由于這些系統(tǒng)普遍建設(shè)較早,基本都采用傳統(tǒng)的B/S或C/S架構(gòu),只能在計算機上通過瀏覽器或?qū)S每蛻舳藖硎褂茫瑢τ谑褂玫臅r間和地點有極大的局限性。另外,大部分高校原有的各個信息服務(wù)系統(tǒng)不能互聯(lián)互通、共享數(shù)據(jù),形成了一個個信息孤島,導(dǎo)致重復(fù)建設(shè),資源浪費,嚴(yán)重影響了學(xué)校的信息化建設(shè)和日常管理工作。目前在高校中,智能手機的普及率非常高,通過智能手機上網(wǎng)已經(jīng)成為廣大師生的普遍行為,而現(xiàn)有信息服務(wù)系統(tǒng)設(shè)計時大都未考慮到在智能手機平臺上運行的兼容性,致使這些系統(tǒng)在智能手機上要么無法打開,要么即使能夠打開,但版式設(shè)計無法和手機平臺完全兼容,從而可用性極低。因此,通過無線通信網(wǎng)絡(luò)及移動互聯(lián)技術(shù),設(shè)計一個基于智能手機平臺的掌上校園系統(tǒng),將原有各種信息資源和應(yīng)用服務(wù)進(jìn)行整合、挖掘和展現(xiàn),為管理人員、教職工、學(xué)生、學(xué)生家長和公眾提供便捷的移動信息服務(wù),有著極大的現(xiàn)實意義。

1 智能手機平臺選擇

目前,智能手機平臺主流系統(tǒng)有蘋果的IOS系統(tǒng)、Google的Android系統(tǒng)、微軟的WP系統(tǒng)和諾基亞的塞班系統(tǒng),其中微軟的WP系統(tǒng)和諾基亞的塞班系統(tǒng)由于市場占有率太小,實際上已經(jīng)退出了一線競爭行列,市場基本處于蘋果和Google兩強爭霸的局面[1]。經(jīng)過科研服務(wù)團(tuán)隊前期調(diào)研發(fā)現(xiàn),蘋果手機由于定位高端,價格昂貴,在校園人群中占有率不高,而Android手機國產(chǎn)品牌眾多,價格低廉,且校內(nèi)電信運營商推廣強勢,因此為廣大師生所青睞,占有率高達(dá)90%以上。同時,Android操作系統(tǒng)是開源系統(tǒng),所有編程接口全部對外開放,開發(fā)程序也十分便利,因此科研服務(wù)團(tuán)隊考慮首先在Android系統(tǒng)平臺實現(xiàn)掌上校園系統(tǒng)。

2 系統(tǒng)總體架構(gòu)

和傳統(tǒng)的信息系統(tǒng)一樣,基于移動平臺的掌上校園系統(tǒng)的核心仍然是客戶端和數(shù)據(jù)庫服務(wù)器的通信??蛻舳薃pp用戶通過軟件界面選擇查詢內(nèi)容,軟件編碼后通過特定的網(wǎng)絡(luò)協(xié)議將查詢內(nèi)容傳輸給服務(wù)器端數(shù)據(jù)庫,數(shù)據(jù)庫查詢后,將信息返回給客戶端,客戶端解碼后在界面上顯示結(jié)果。然而,與傳統(tǒng)C/S架構(gòu)及B/S架構(gòu)不一樣的是,Android系統(tǒng)無法安全高效地與遠(yuǎn)端數(shù)據(jù)庫服務(wù)器直接進(jìn)行通信,如微軟SQL Server官方驅(qū)動就不支持Android平臺,而第三方驅(qū)動無論功能和安全性都得不到保證。另外,在客戶端App中調(diào)用SQL語句直接向數(shù)據(jù)庫發(fā)起查詢也不是一個好的做法,這樣做無論安全性和效率都存在嚴(yán)重的問題。因此,目前Android客戶端連接遠(yuǎn)端SQL數(shù)據(jù)庫,主流的做法是在中間加層,即通過Web Service等技術(shù)來間接訪問數(shù)據(jù)庫,形成Android App+Web Service+Database的連接訪問方式[2]。Web Service接收來自Android客戶端的各種查詢請求,然后轉(zhuǎn)發(fā)給數(shù)據(jù)庫進(jìn)行查詢,對查詢所返回的數(shù)據(jù)進(jìn)行解析、抽取并通過合適的協(xié)議和數(shù)據(jù)格式將所需的數(shù)據(jù)傳回給Android客戶端程序。這樣,很多操作實際由Web Service來完成,Android客戶端的工作量將大大減少,從而大幅度降低對電池和網(wǎng)絡(luò)流量的消耗,而這又恰恰是移動開發(fā)的關(guān)鍵。具體來說,本系統(tǒng)分為服務(wù)器端程序和客戶端程序兩部分,服務(wù)器端程序主要包含數(shù)據(jù)庫和Web service程序。其中,數(shù)據(jù)庫用來存放學(xué)院各職能部門提供的數(shù)據(jù),如學(xué)生成績、一卡通消費記錄等;Web service程序則負(fù)責(zé)接收客戶端發(fā)來的查詢請求并對數(shù)據(jù)庫進(jìn)行查詢,最后將查詢到的結(jié)果返回給客戶端。客戶端程序以Android系統(tǒng)apk安裝包的形式發(fā)布,在Android手機安裝后,可以查詢相應(yīng)學(xué)生的課程成績、圖書借閱、學(xué)費繳納、一卡通消費記錄等數(shù)據(jù)。系統(tǒng)的總體架構(gòu)如圖1所示。

圖1 系統(tǒng)總體架構(gòu)

3 系統(tǒng)實現(xiàn)

3.1 數(shù)據(jù)庫實現(xiàn)

由于學(xué)校原有的各大信息系統(tǒng)都是各部門獨立開發(fā)或采購的,因此采用的數(shù)據(jù)庫類型不盡相同,如教務(wù)處自主開發(fā)教務(wù)系統(tǒng)采用SQL Server數(shù)據(jù)庫,而圖書館采購的匯文圖書系統(tǒng)則使用Oracle數(shù)據(jù)庫。在一個Web Service中對多種不同的數(shù)據(jù)庫進(jìn)行操作難度非常大,同時各個部門出于安全性的考慮,大都也不愿意將自己的數(shù)據(jù)庫開放給外部程序來訪問。因此,本系統(tǒng)Web service程序并沒有直接對各部門數(shù)據(jù)庫進(jìn)行操作,而是采取了每周定期從各部門導(dǎo)出相關(guān)數(shù)據(jù),生成excel文件,然后匯總到本地,利用SQL Server的導(dǎo)入向?qū)Чδ軐xcel文件導(dǎo)入本地SQL Server數(shù)據(jù)庫來進(jìn)行查詢的方式。這種方式在查詢的實時性方面要稍遜一籌,但降低了編程難度,確保了原有系統(tǒng)的安全,易于為各職能部門接受,降低了系統(tǒng)推廣的難度。在目前的1.0系統(tǒng)版本中,數(shù)據(jù)導(dǎo)出和導(dǎo)入由本系統(tǒng)管理員手動完成,預(yù)期在下一個版本中,加入數(shù)據(jù)庫導(dǎo)入接口,使各部門的數(shù)據(jù)庫管理員可以定期向本系統(tǒng)導(dǎo)入其部門數(shù)據(jù),以減輕本系統(tǒng)管理員的工作量。

3.2 Web Service實現(xiàn)

目前,實現(xiàn)Web Service可選的兩大技術(shù)平臺分別為java平臺和.Net平臺,這兩種平臺技術(shù)可以說是各有千秋,但本項目已經(jīng)選擇了微軟SQL Server數(shù)據(jù)庫,在這種情況下,顯然選擇.Net平臺開發(fā)相應(yīng)的Web Service更能保證兼容性。因此本系統(tǒng)Web service采用C#語言編寫,運行在.Net 2.0環(huán)境下,Web服務(wù)器為IIS,采用了常規(guī)的ADO.net技術(shù)對SQL Server數(shù)據(jù)庫進(jìn)行操作,技術(shù)細(xì)節(jié)在此不在贅述。

3.3 Android客戶端實現(xiàn)

掌上校園Android客戶端采用Java語言,在Eclipse和ADT環(huán)境下開發(fā),兼容Android2.3版及以上系統(tǒng),主要包括用戶登錄、個人信息查詢、成績查詢、圖書借閱查詢、學(xué)費查詢、一卡通消費查詢等模塊。圖2為客戶端登錄界面,用戶必須通過身份認(rèn)證后,才能進(jìn)行其他各項信息的查詢。在各個信息查詢模塊中,主要采用了listview控件在Activity界面顯示獲取到的信息。在開發(fā)的過程中碰到的最大技術(shù)難點在于Android客戶端和Web service如何進(jìn)行信息的交互。.Net平臺下的Web service采用SOAP協(xié)議進(jìn)行信息的交互,SOAP是基于XML的簡易協(xié)議,可使應(yīng)用程序在HTTP之上進(jìn)行信息交換[3]。遺憾的是,在Android官方SDK提供的編程接口中,并沒有處理SOAP協(xié)議的API,因此在編程時就有兩種選擇,一種是詳細(xì)學(xué)習(xí)SOAP協(xié)議標(biāo)準(zhǔn),在代碼中手動構(gòu)造SOAP數(shù)據(jù)包結(jié)構(gòu),并利用java sdk中提供的HttpURLConnection類進(jìn)行發(fā)送,在接收時也是手動對XML數(shù)據(jù)進(jìn)行解析,提取出相關(guān)的數(shù)據(jù)。很顯然,這種方式難度較大,且編碼繁瑣,容易出錯。另一種方法是選用第三方類庫來對SOAP協(xié)議進(jìn)行解析,在本項目中,開發(fā)團(tuán)隊選擇了Ksoap2類庫來進(jìn)行開發(fā)[4]。

Ksoap2是一個開源項目,為Android平臺提供了一個輕量級的高效的SOAP庫,使用方便,其關(guān)鍵代碼如下:

SoapObjectrpc = newSoapObject(NameSpace,MethodName);

rpc.addProperty("id",myid);

AndroidHttpTransport ht=new AndroidHttpTransport(url);

ht.debug=true;

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut=rpc;

envelope.dotNet=true;

envelope.setOutputSoapObject(rpc);

ht.call(soapAction,envelope);

SoapObject result=(SoapObject)envelope.bodyIn;

主要代碼流程為構(gòu)造SoapObject和SoapSerializationEnvelope對象,將相應(yīng)的查詢參數(shù)添加到對象中,并發(fā)送給Web Service API對應(yīng)的URL,然后再將返回的信息進(jìn)行解析。尤其需要注意的是,由于是和.Net平臺下的Web service網(wǎng)絡(luò)接口進(jìn)行通信,envelope.dotNet=true這句代碼必不可少,否則將出現(xiàn)異常。圖3為成績查詢界面,其他模塊業(yè)務(wù)雖然不同,但代碼邏輯類似,都是通過Web Service從數(shù)據(jù)庫取得數(shù)據(jù)后,使用listview控件展示在界面上,由于篇幅所限,這里不在進(jìn)行闡述。

4 結(jié)論

揚州工業(yè)職業(yè)技術(shù)學(xué)院掌上校園系統(tǒng)研發(fā)成功后,已在校園網(wǎng)內(nèi)部進(jìn)行了初步測試,測試結(jié)果表明,由于該系統(tǒng)兼容性好,安裝使用方便且流量消耗很小,深受廣大師生歡迎。項目團(tuán)隊正在優(yōu)化相關(guān)模塊功能,進(jìn)一步對系統(tǒng)進(jìn)行完善,并爭取能夠向同類院校推廣。

圖2 系統(tǒng)登錄界面

圖3 成績查詢界面

[1]王彥恩.2013-2014年中國手機市場研究年度報告[EB/OL].(2014-01-29)[2014-11-08].http://zdc.zol.com.cn/431/4315148.html.

[2]馬杰克.基于WEBService的校園信息管理系統(tǒng)設(shè)計與實現(xiàn)[D].電子科技大學(xué),2013.

[3]隋菱歌,殷樹友,黃嵐.SOAP協(xié)議在XML數(shù)據(jù)傳輸中的應(yīng)用[J].長春大學(xué)學(xué)報,2006,16(4):52-55.

[4]華建祥.基于Android平臺的校園信息查詢系統(tǒng)客戶端設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2014,13(2):101-103.

猜你喜歡
客戶端智能手機界面
智能手機是座礦
智能手機臉
英語文摘(2020年5期)2020-09-21 09:26:30
國企黨委前置研究的“四個界面”
假如我是一部智能手機
趣味(語文)(2018年8期)2018-11-15 08:53:00
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
人機交互界面發(fā)展趨勢研究
手機界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
科尔| 澄江县| 惠安县| 赤壁市| 故城县| 江川县| 襄汾县| 东明县| 古浪县| 扶沟县| 皮山县| 嘉义县| 离岛区| 武安市| 本溪市| 龙泉市| 普陀区| 昆山市| 襄汾县| 孟村| 封开县| 阳谷县| 池州市| 玉田县| 遵义县| 周口市| 兴安盟| 德保县| 临城县| 边坝县| 徐州市| 楚雄市| 凌源市| 米易县| 应用必备| 莱州市| 平凉市| 玉树县| 读书| 晋宁县| 德庆县|