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

?

基于Android的移動學(xué)習(xí)系統(tǒng)中Web Service的構(gòu)建與實現(xiàn)

2015-03-23 07:41:14張曉玲楊鄧奇
大理大學(xué)學(xué)報 2015年6期
關(guān)鍵詞:配置文件服務(wù)器端調(diào)用

楊 健,張曉玲,楊鄧奇

(大理學(xué)院數(shù)學(xué)與計算機(jī)學(xué)院,云南大理 671003)

移動學(xué)習(xí)是一種在移動計算設(shè)備幫助下的能夠在任何時間任何地點開展的學(xué)習(xí),其所使用的移動計算設(shè)備必須能夠有效呈現(xiàn)學(xué)習(xí)內(nèi)容,并提供教師與學(xué)習(xí)者之間的雙向交流〔1〕。目前高等學(xué)校在校生平均人手擁有一臺甚至多臺的便攜式移動設(shè)備(智能手機(jī)、平板電腦、PDA等),而在日常課程學(xué)習(xí)的間歇和各種各樣的等待時間里,這些移動設(shè)備除了作為通信設(shè)備來使用以外,似乎唯一的功能就是上網(wǎng)、娛樂。這也使得大好的時間和便攜的學(xué)習(xí)工具(資源)被浪費,沒有用于專業(yè)技能知識的提高上。利用移動學(xué)習(xí)作為高校教學(xué)的輔助學(xué)習(xí)手段可以進(jìn)一步提高學(xué)生充分利用各種學(xué)習(xí)時間的能力〔2-3〕。

另一方面,作為兩大移動平臺操作系統(tǒng)之一的Android,盡管諸如碎片化、安全漏洞等問題讓其屢遭詬病,但截至2014 年7 月,其市場份額卻一舉超越iOS,成為市場占有率最大的移動平臺操作系統(tǒng)。在Android 下開發(fā)移動學(xué)習(xí)系統(tǒng)首選的語言工具是Java。此外,Google 以及其他開源軟件組織也為Android 平臺下Java 應(yīng)用軟件的開發(fā)提供了良好的支持,如 Eclipse for ADT(Android Development Toolkit)等。在Android下開發(fā)基于Java的移動學(xué)習(xí)系統(tǒng),在移動平臺前端開發(fā)方案的選擇上有兩個:使用瀏覽器作為瘦客戶端或開發(fā)自有的Java 客戶端界面。這兩種方案各有優(yōu)缺點:前者不需要開發(fā)客戶端軟件,只需要安裝瀏覽器即可,但受制于瀏覽器的功能,無法提供移動學(xué)習(xí)系統(tǒng)中應(yīng)當(dāng)有的各種多媒體交互學(xué)習(xí)能力,且界面表現(xiàn)和跳轉(zhuǎn)等受到一定的限制;后者雖然需要開發(fā)前端App 軟件,但可以根據(jù)需要提供各種音視頻及復(fù)雜的交互能力,從而進(jìn)一步提高學(xué)習(xí)者的學(xué)習(xí)效果。

本文考慮建立Android 系統(tǒng)下的移動學(xué)習(xí)系統(tǒng),主要應(yīng)用環(huán)境是為在校學(xué)生提供移動學(xué)習(xí)服務(wù),通過多媒體展現(xiàn)形式提高學(xué)生學(xué)習(xí)興趣,同時建立學(xué)習(xí)過程中教師與學(xué)生的互動交流,從而增強(qiáng)學(xué)生的學(xué)習(xí)效果。論文提出了系統(tǒng)結(jié)構(gòu)和功能,并詳細(xì)介紹系統(tǒng)中前端和后端的遠(yuǎn)程信息交換方案。內(nèi)容主要包括:首先將介紹Android 系統(tǒng)下基于Java的移動學(xué)習(xí)系統(tǒng)功能和結(jié)構(gòu),接下來將針對本系統(tǒng)中用于遠(yuǎn)程信息交換的Web Service 開發(fā)和訪問提供解決方案,最后一節(jié)進(jìn)行總結(jié)并提出需要進(jìn)一步解決的問題。

1 移動學(xué)習(xí)系統(tǒng)結(jié)構(gòu)

考慮到移動設(shè)備在存儲、計算和續(xù)航能力上所受的約束,應(yīng)盡可能地將復(fù)雜的耗能的計算任務(wù)進(jìn)行分解,并形成類似于C/S(客戶/服務(wù)器)模式的結(jié)構(gòu),其中客戶端(移動設(shè)備)面向用戶展示學(xué)習(xí)內(nèi)容、通知公告,同時提供交互界面,而服務(wù)器端則使用PC界面提供給管理員和教師進(jìn)行輔助管理及學(xué)習(xí)內(nèi)容、測驗試題和公告的管理〔4-5〕。根據(jù)本系統(tǒng)的需求進(jìn)行分析,得出系統(tǒng)的功能模塊。見圖1。

圖1 系統(tǒng)功能圖

上述系統(tǒng)功能中,學(xué)習(xí)者使用移動設(shè)備登錄客戶端系統(tǒng)進(jìn)行學(xué)習(xí),各模塊中最重要的就是學(xué)習(xí)、測驗和交流互動3 個子系統(tǒng),而這3 個子系統(tǒng)在實現(xiàn)中是相互提供功能的。例如,學(xué)習(xí)過程中可能調(diào)用測驗子系統(tǒng)進(jìn)行知識點相關(guān)例題的選擇,還可以直接針對當(dāng)前知識點向教師進(jìn)行提問,或者查看教師對以前問題的回答;而學(xué)習(xí)交流論壇中,也可通過學(xué)習(xí)知識點的鏈接來確定交流的主題。服務(wù)端系統(tǒng)是在PC 機(jī)上建立Java EE 應(yīng)用來實現(xiàn)的,并且通過無線網(wǎng)絡(luò)給客戶端提供所需的信息(主要包括學(xué)習(xí)的知識點、試題、公告通知和學(xué)習(xí)相關(guān)多媒體文件的傳輸)。服務(wù)器端的使用者除了教師以外,還需要有教務(wù)系統(tǒng)的管理員來完成非教學(xué)所需的信息管理相關(guān)操作。

從圖1中可以看到,本系統(tǒng)的兩大子系統(tǒng)之間需要進(jìn)行頻度較高的、數(shù)據(jù)量較大的信息交換,在客戶端與服務(wù)器之間需要有高效的信息傳輸方法。為了讓客戶端的Android 應(yīng)用與遠(yuǎn)程服務(wù)器之間進(jìn)行交互,一種方法是借助于Java 的RMI(Remote Method Invocation)技術(shù),但這要求遠(yuǎn)程服務(wù)器程序必須采用Java 實現(xiàn),不利于以后后臺服務(wù)端的擴(kuò)展。當(dāng)然,也可以借助于CORBA(Common Object Request Broker Architecture)技術(shù),但這種技術(shù)過于復(fù)雜。除此之外,Web Service是一個較好的選擇。

系統(tǒng)采用Web Service 作為客戶端與遠(yuǎn)程服務(wù)器信息交互手段,由于系統(tǒng)前端為Android應(yīng)用,后端為Java EE應(yīng)用服務(wù)器,因而建立如圖2所示的整合架構(gòu)圖。

圖2 客戶端Android應(yīng)用與服務(wù)器端的整合架構(gòu)

2 移動學(xué)習(xí)系統(tǒng)中的Web Service構(gòu)造及訪問

Web Service 是本系統(tǒng)中最為重要的組成部分,由后臺的Java EE 應(yīng)用來提供服務(wù),供移動客戶端調(diào)用,從而實現(xiàn)移動客戶端與服務(wù)端的信息交互。下面著重介紹Web Service的基本概念,并提出本系統(tǒng)中的Web Service的構(gòu)建方法。

2.1 Web Service 及關(guān)鍵技術(shù)根據(jù)W3C(萬維網(wǎng)聯(lián)盟)對 Web Service 的定義〔6〕,Web Service 技術(shù)使得在不同機(jī)器上的不同應(yīng)用可以相互交換數(shù)據(jù)或集成,且無須借助附加的、專門的第三方軟件或硬件。由于基于一些常規(guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語言下的子集XML、HTTP等,Web Service很容易部署。

Web Service涉及的關(guān)鍵技術(shù)有:

1)XML:可擴(kuò)展標(biāo)記語言,是表示W(wǎng)eb Service中服務(wù)器與客戶端相互交換信息的基本格式。

2)SOAP:簡單對象訪問協(xié)議。一個SOAP 消息包含如下3 個主要元素:a.為描述信息內(nèi)容和如何處理內(nèi)容定義了框架(Envelope 元素);b.將程序?qū)ο缶幋a成為XML 對象的規(guī)則(Header 元素,包含SOAP 的頭信息);c.執(zhí)行遠(yuǎn)程過程調(diào)用(RPC)的約定(Body元素,包含所有的調(diào)用和響應(yīng)信息)。

3)WSDL:Web Service 描述語言,通過 XML 描述Web Service,供服務(wù)調(diào)用者使用。

4)UDDI:統(tǒng)一描述、發(fā)現(xiàn)和整合協(xié)議,是一套用于Web Service發(fā)布和發(fā)現(xiàn)的規(guī)范。

Java 本身提供了對Web Service 的支持,建立了如 JAX-WS 規(guī)范和面向 RESTful(Representational State Transfer)Web服務(wù)的JAX-RS規(guī)范等?,F(xiàn)有實現(xiàn)這些規(guī)范的框架也已有較多,典型的開源框架如Apache 的 Axis2/Axis、CXF 等。這些技術(shù)不但可以用于非常方便地對外提供Web服務(wù),也可用于簡化調(diào)用Web服務(wù)的客戶端編程。

2.2系統(tǒng)Web Service 實現(xiàn)由于本系統(tǒng)服務(wù)器端由Java EE 應(yīng)用實現(xiàn),就需要Web 服務(wù)能與后端的Servlet、Spring 等框架無縫結(jié)合?,F(xiàn)有Web Service框架中,能與Java EE的控制器Spring框架較好結(jié)合的有 Axis2、Axis 和 CXF。其中,Axis 本質(zhì)上是一個SOAP 引擎,提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP 操作的基本框架。Axis2 則是下一代的Axis,具有更強(qiáng)的靈活性并可擴(kuò)展到新的體系結(jié)構(gòu)。CXF也是Apache基金會發(fā)布的Web Service實現(xiàn)框架〔7-8〕,支持多種Web Services 的標(biāo)準(zhǔn)。此外,CXF 框架實現(xiàn)Web Service 時,既支持WSDL 優(yōu)先開發(fā),也支持從Java 的代碼優(yōu)先開發(fā)模式,并且支持Spring 2.0更加簡化的XML 配置方式;同時,它還是一種可插撥架構(gòu),支持 XML 和非 XML 的類型(例如 JSON 或CORBA)綁定,使得其具有更好的可兼容性。

2.2.1 服務(wù)端的Web Service 實現(xiàn) 考慮到本文的移動學(xué)習(xí)系統(tǒng)是在已有的Java EE 應(yīng)用基礎(chǔ)上構(gòu)建,服務(wù)器上的業(yè)務(wù)流程由Spring 框架來實現(xiàn),而CXF 與Spring 的結(jié)合通過XML 配置文件的更改就可實現(xiàn),所以采用CXF作為本系統(tǒng)中Web Service的實現(xiàn)框架。這里不再介紹CXF 和Spring 的類庫安裝,假設(shè)Spring 和CXF 已經(jīng)作為編譯類庫導(dǎo)入到項目中。為了讓Spring 支持CXF 提供的Web Service的發(fā)布,需要在Spring 的配置文件中添加對CXF 的支持,并在Web配置界面中添加對Web Service調(diào)用時Servlet的映射。

其中,在Spring 配置文件中,除了在<beans…>中添加CXF的名字空間和規(guī)范的定義以外,還需要使用<import resource…>節(jié)點導(dǎo)入CXF 的配置文件cxf.xml、cxf-extension-soap.xml 和 cxf-servlet.xml,同時,配置Web Service 的實現(xiàn)類,如下面Spring 的配置文件代碼所示:

在Java EE 的配置文件web.xml 中,為了使對Web Service 的訪問自動轉(zhuǎn)向CXF 框架,需要定義CXF 框架的引用Servlet,并指向服務(wù)類org.apache.cxf.transport.servlet.CXFServlet。同時,還要定義訪問這個Servlet的URL模式,例如“/services/*”。通過這樣的配置,客戶端對Web服務(wù)的請求URL應(yīng)形如“http://.../services/...”,從而在服務(wù)器端轉(zhuǎn)入通過CXF框架提供的Web服務(wù)的實現(xiàn)類的處理。此外,在服務(wù)器端的Web 服務(wù)實現(xiàn)類之前要使用@Web-Service標(biāo)注,如下面代碼:

可以注意到@WebService 標(biāo)注有endpointInterface 等幾個屬性,其中targetNamespace 對應(yīng)著客戶端創(chuàng)建SOAP 對象時應(yīng)指定的Namespace。在這種形式的Web服務(wù)中,并沒有在部署之前提供服務(wù)的描述WSDL文件,因為這種情況下,CXF是根據(jù)服務(wù)提供類動態(tài)生成Web服務(wù)的描述。

2.2.2 Android 移動客戶端的Web Service 訪問 在上述的Web 服務(wù)實現(xiàn)方式下,Android 客戶端要做的就是使用URL 請求服務(wù),并將返回結(jié)果解析為SOAP 對象,然后讀取SOAP 對象中包含的信息即可。根據(jù)請求的URL 也可以看出,包裝信息的SOAP 消息是通過HTTP 協(xié)議傳輸?shù)?。為了在Android 下對HTTP 傳輸?shù)腤eb Service 消息更容易進(jìn)行處理,Google公司提供了Ksoap2包。使用Ksoap2包調(diào)用Web Service分為如下幾個步驟:

1)創(chuàng)建 HttpTransportSE 對象,該對象使用HTTP協(xié)議完成網(wǎng)絡(luò)上的數(shù)據(jù)傳輸任務(wù);

2)創(chuàng)建SOAP 的封裝對象SoapSerializationEnvelope 和SoapObject 對象,同時為后者設(shè)置需要傳遞給遠(yuǎn)程服務(wù)器的參數(shù);

3)設(shè)置SOAP 的封裝對象SoapSerializationEnvelope 的 bodyOut 屬性,將上面創(chuàng)建的 SoapObject 對象作為傳出SOAP消息體;

4)調(diào)用HttpTransportSE 對象的 call()方法,從而發(fā)送Web Service請求;

5)調(diào)用完成后,訪問SOAP 封裝對象的bodyIn屬性,獲得一個SoapObject 對象,這也就是以SOAP對象格式封裝的Web Service的返回消息。

在上述步驟中,還要注意的一個問題是,Android 4及以后版本環(huán)境下,不允許應(yīng)用程序的主線程訪問網(wǎng)絡(luò),因此,需要將網(wǎng)絡(luò)訪問部分放在新建的線程中調(diào)用。

3 結(jié)論

本文探討在Android 下創(chuàng)建C/S 模式的移動學(xué)習(xí)系統(tǒng),為了在客戶端和服務(wù)器端進(jìn)行信息傳輸,使用Web Service 提供服務(wù)??紤]到前端和后端的可擴(kuò)展性,服務(wù)器采用Java EE 來實現(xiàn),為了能跟其中的Spring 框架較好集成,在服務(wù)器端的Web Service用了Apache 的CXF框架。系統(tǒng)測試表明,CXF框架能很好地跟業(yè)務(wù)流程框架Spring 集成,創(chuàng)建具有良好的可擴(kuò)展性的Web 服務(wù)端。下一步的工作包括:

1)建立基于RESTful架構(gòu)的Web Service在移動學(xué)習(xí)系統(tǒng)中的應(yīng)用。由于基于SOAP/WSDL 的Web Service 是RPC(遠(yuǎn)程過程調(diào)用)式的,僅僅將HTTP協(xié)議當(dāng)做一種傳輸協(xié)議來使用,還依賴于XML這種冗余度較高的文本格式,因此這種Web Service應(yīng)用性能較為低下,不適合大流量的Web 應(yīng)用〔9〕。相比之下,RESTful Web Service,是一種面向資源的架構(gòu),采用標(biāo)準(zhǔn)的HTTP 方法,HTTP 協(xié)議在其中不只是作為傳輸協(xié)議,而是作為信息的載體,無需引入SOAP 消息傳輸層,避免了各種封裝產(chǎn)生的資源消耗,從而更加快捷、方便。

2)此外,移動學(xué)習(xí)系統(tǒng)中的文字性學(xué)習(xí)內(nèi)容不僅僅是字符(或漢字),還應(yīng)當(dāng)考慮數(shù)學(xué)公式等非字符型學(xué)習(xí)內(nèi)容的表現(xiàn)〔10〕,以及客戶端和服務(wù)端的該種類型信息的交流。在系統(tǒng)中實現(xiàn)數(shù)學(xué)公式相關(guān)的學(xué)習(xí)內(nèi)容表示和編輯,是本文另一個后續(xù)工作。

〔1〕Dye A. Mobile Education:A Glance at The Future〔J/OL〕.(2012-01-15)〔2014-12-20〕. http://www. dye. no/articles/a_glance_at_the_future/index.html.

〔2〕宋巍.開放大學(xué)移動學(xué)習(xí)平臺設(shè)計與實現(xiàn)〔J〕.沈陽師范大學(xué)學(xué)報:自然科學(xué)版,2014,32(1):107-110.

〔3〕鄭兆華,彭金蓮,邱錫光,等.移動互聯(lián)網(wǎng)在高校教育中的應(yīng)用〔J〕.計算機(jī)教育,2014(5):80-83.

〔4〕劉帥,李建偉,勾學(xué)榮.互動式移動學(xué)習(xí)系統(tǒng)的設(shè)計與開發(fā)〔J〕. 北京郵電大學(xué)學(xué)報:社會科學(xué)版,2014,16(6):111-116.

〔5〕李芙玲,白磊,陳超.基于Java技術(shù)的手機(jī)移動學(xué)習(xí)平臺的設(shè)計與開發(fā)〔J〕. 華北科技學(xué)院學(xué)報,2014,11(10):75-78.

〔6〕W3C Working Group. Web Services Glossary〔EB/OL〕.(2004-02-11)〔2014-12-20〕. http://www. w3. org/ TR/2004/NOTE-ws-gloss-20040211/#webservice.

〔7〕Apache Software Foundation. Apache CXF:An Open-Source Services Framework〔CP/OL〕.(2014-12-11)〔2014-12-30〕.http://cxf.apache.org/docs/index.html.

〔8〕梁曉,俞立,洪榛. 基于J2EE 的旅游票務(wù)分銷管理系統(tǒng)〔J〕.計算機(jī)系統(tǒng)應(yīng)用,2014(2):52-59.

〔9〕韓陸.Java RESTful Web Service 實戰(zhàn)〔M〕.北京:機(jī)械工業(yè)出版社,2014:1-8.

〔10〕洪留榮.一種應(yīng)用于移動學(xué)習(xí)環(huán)境中的數(shù)學(xué)公式標(biāo)記語言〔J〕.計算機(jī)系統(tǒng)應(yīng)用,2010(10):117-121.

猜你喜歡
配置文件服務(wù)器端調(diào)用
提示用戶配置文件錯誤 這樣解決
搭建簡單的Kubernetes集群
互不干涉混用Chromium Edge
核電項目物項調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
忘記ESXi主機(jī)root密碼怎么辦
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
在Windows中安裝OpenVPN
利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
铁力市| 沾化县| 南岸区| 林周县| 荣昌县| 南乐县| 漠河县| 攀枝花市| 丹东市| 古丈县| 金平| 甘南县| 民县| 揭阳市| 历史| 扎鲁特旗| 安国市| 博客| 临潭县| 弥渡县| 沙坪坝区| 固始县| 浦东新区| 女性| 夏邑县| 平度市| 徐水县| 遂宁市| 阿巴嘎旗| 茶陵县| 通辽市| 兴仁县| 大同县| 大新县| 比如县| 镇宁| 蒙阴县| 马山县| 大关县| 巴塘县| 邵东县|