
摘 要 隨著移動互聯網的發展,越來越多用戶通過智能終端接入到移動互聯中,在移動客戶端開發應用的需求也日漸增多。而在移動客戶端開發的過程中,移動端與服務器端的交互與整合是不可缺少的一環。由于當前Android操作系統是較為主流的移動操作系統,因此本文探索了一種基于Web service的技術的Android移動端與服務器端的整合技術,并設計了比較通用的整合架構,闡述了整合過程。
【關鍵詞】Web Service Android 整合
1 Web應用系統與Android移動端的整合概述
1.1 移動端與服務器端的整合概述
在本文所論述的Web應用系統主要是指傳統的基于PC電腦端的Web應用系統,如網站,或相關的基于B/S架構的應用程序。由于當前的移動互聯網技術飛速發展,移動端的用戶越來越多,越來越多人通過智能終端接入了移動互聯網,因此,在移動端開發應用的需求也是日漸增多。在開發一個移動端的時候,常常要進行移動端及PC端的整合,或者移動端與服務器端的整合。
本文要討論的,就是移動端與移動端的整合問題。
1.2 Android開發技術概述
在Android開發中有四大組件,他們分別是:用于表現功能的活動(Activity);主要在后臺運行的服務(Service)用于接收廣播的廣播接收器(BroadcastReceiver);相當于數據庫的、支持在多個應用中存儲和讀取數據的內容提供商(Content Provider)。Android中所有程序的流程都運行在Activity 之中,它是所有程序的根本,是Android當中最基本的模塊之一。在Android的程序當中,Activity一般代表手機屏幕的一屏。事實上,Activity與普通Web頁面類似,在實際開發的過程中也可在Activity當中可以添加一些UI控件。一般一個Android應用是由多個Activity組成的。Activity之間可以像Web頁面一樣互相切換。
2 Web service技術
2.1 Web Service簡介
Web Service是一種服務導向架構的技術,通過標準的Web協議提供服務,目的是保證不同平臺的應用服務可以互操作。它基于SOAP等協議的遠程調用標準,通過Web Service可以將不同操作系統平臺,不同語言,不同技術整合到一起。依據Web Service規范實施的應用之間,無論它們所使用的語言、平臺或內部協議是什么,都可以相互交換數據。Web Service是自描述、自包含的可用網絡模塊,可以執行具體的業務功能。
Web Service架構具有的特點有:首先是連網特性,Web Service的服務器端和客戶端應用程序都能連網;其次,在大多數情況下使用SOAP標準作為數據通信格式的標準,且遵循的標準必須是開放性的。第三,客戶端和服務器端的系統是松耦合的,即Web Service不關心客戶端和服務器端所使用的操作系統、對象模型或者編程語言。
2.2 Android通過Web Service訪問異構系統數據
Web Service是基于SOAP協議的。簡單對象訪問協議是交換數據的一種協議規范,是一種輕量的、簡單的、基于XML(標準通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的信息。
Web Service使用SOAP用來傳遞信息的格式。SOAP可以和現存的許多因特網協議和格式結合使用,包括超文本傳輸協議(HTTP),簡單郵件傳輸協議(SMTP),多用途網際郵件擴充協議(MIME)。SOAP使用基于XML的數據結構和超文本傳輸協議(HTTP)的組合定義了一個標準的方法來使用Internet上各種不同操作環境中的分布式對象。
在Android中訪問Web Service的方法有兩種,一種是通過鏈接進行訪問;另一種是通過第三方類庫進行訪問。
通過第三方類庫進行訪問,需要下載一個第三方Jar包:ksoap2。這個包可以從Google上下載,即ksoap2-Android項目包。這個第三方包提供了Android 調用Web Service的一些接口。使用它,可以使得Android方便地與服務器端進行數據交互?;玖鞒淌鞘紫纫玫椒掌魈峁┑牡刂?、命名空間、方法名,參數的鍵和返回值的鍵;然后Android應用程序通過這些鍵來傳遞值。
2.3 Android的兩種開發方式
Android App又可分為Web App和Native App。其中,Web App是基于普通網站形式的App,而Native App是基于本地系統的應用,相當于電腦的桌面應用程序。兩種App各有優缺點,相對而言,Native App更加高效,但開發難度更加大。當然,有些功能用Web App的形式是無法實現的,必須用Native App的形式進行開發。本文主要討論Web應用系統與Android原生App的整合問題。
3 Web服務器端與Android移動端的整合
3.1 以Web service作為通用的接口
Android端與服務端可以通過不同的方式通信,其中一種比較通用的方式就是使用Web service。在Android與有些服務端語言開發的應用通信,則必須使用Web service。比如Android客戶端與.NET服務器端通信,則必須采用Web service,因為Android客戶端沒辦法直接訪問.NET頁面并操作后端數據庫。
因此,Web service主要目的就是為了實現Android客戶端和Web網站端進行整合。因為Android Native App客戶端是用Java語言設計的,而Web網站端則是用其他語言進行設計的。兩種不同語言開發的系統,需要用特定的方法對系統進行整合。為了實現Android客戶端與網站服務器端及與SQL Server數據庫服務器端等進行通信,需要構建Web service比如.NET Web service。如果采用的數據庫是SQL Server數據庫,通過Web Service,就可以將對SQL Server數據庫服務器相關操作的接口發布出去,供Android客戶端進行調用。
3.2 Web service與服務器端整合的架構設計
下面以Android Native App客戶端與基于.NET的服務器端平臺的通信為例,說明Web service與服務器端的整合架構。
Android Native App客戶端主要實現客戶端的功能,比如信息的查看、信息的咨詢等,主要是通過移動端進行操作。
由于Web端使用到的語言是ASP.NET語言,而Android Native App用的是Java語言,兩種技術所開發出來的平臺是異構的,故需要進行系統整合。
要使基于Java SE技術的Android Native App與基于.NET技術的Web服務器端及SQL Server數據庫進行通信和交換數據,要通過Web Service進行。
Android Native App客戶端功能模塊及其與Web端整合的框架圖1所示。
由圖1可見,Web Service成為Android Native App客戶端及服務器端的粘合劑作用,它是這兩個子系統的橋梁。Android Native App客戶端通過Web Service與SQL Server數據進行通信和交換數據。Android Native App客戶端對數據庫操作的結果既可以在移動客戶端查看,也可以在Web端查看。
3.3 移動客戶端與Web Service通信的實現流程
要實現Android對ASP.NET服務器端的訪問,需要編寫Web Service接口,通過Web Service接口連接所需要的操作。
對于.NET應用程序來說,可以借助Visual Studio軟件對系統進行設計和實現。對于Android客戶端的實現,可以借助Eclipse工具。Android Native App常用的開發工具是Eclipse。在軟件架構中,盡量采用分層結構。其中,與ASP.NET Web Service進行通信的方法可單獨計一個公共通信類,以實現移動端與服務器端的交互。
移動終端一般分為幾個基本頁面,比如登錄驗證頁以及相關的功能頁面。Android Native App的頁面由兩部分組成,一部分是XML形式的界面設計文件,一部分是頁面對應的Activity。對頁面的控制及業務代碼在Activity文件中實現。
以登陸頁為例,其中登錄頁的Activity包含用戶驗證、修改用戶名、修改密碼等方法。Android的原生程序就是由這些頁面組成的,通過在頁面的操作,從服務器端請求信息,或者將信息發送給服務器端。當然,服務器端與客戶端的交互還需要進行數據格式的統一與轉換。
在Android端來說,可以讓幾個Activity共享一個Web Service公共通信類,在通信類中封裝與Web Service通信的基本方法。
Web Service層發布在Web服務器端,Web Service層封裝了與移動端相對應的Web Service方法。
上面已提到,Web Service是一種基于SOAP協議的遠程調用標準,通過Web Service可以將不同操作系統平臺、不同語言、不同技術整合到一塊。對于Android原生應用程序與Web Service通信來說,Android SDK中還需要使用第三方的SDK來調用Web Service。這個第三方SDK可以從Google下載相關的SDK項目包。
具體而言,Android調用Web Service步驟有幾步:
(1)指定Web service的命名空間和調用的方法名;
(2)如果調用方法有參數,則需要設置調用方法的參數值;
(3)SOAP請求信息的生成。該信息由SoapSerializationEnvelope對象來進行描述。
(4)創建HttpTransportsSE對象。通過HttpTransportsSE類的構造方法可以指定Web Service的WSDL文檔的URL;
(5)使用getResponse方法獲得Web Service方法的返回結果。
4 結論
以Web Service作為異構系統的整合技術是一種較為常用的整合技術,因為Web Service是語言中立的,它不受開發語言和操作系統的影響,因此,利用它能進行跨平臺開發。在傳統的基于電腦的Web應用與移動App的整合應用中,Web Service能發揮關鍵的作用,它可以開發一種通用的異構系統接口,使得移動端與不同語言開發的服務器端進行整合。
參考文獻
[1]宋小倩,周東升.基于Android平臺的應用開發研究[J].軟件導刊,2011,10(2):104-106.
[2]王志勤.Web App還是Native App[J].商學院,2012,11(5):16-17.
[3]張趁香.基于Web Services的高校教學質量監控系統的分析與設計[J].電腦知識與技術,2011,21(35):30-31.
[4]StephenWalther,Kevin Scott Hoffman,Nate Dudek.ASP.NET4 Unleashed[M].Amarican:Sams Publishing,2010.
[5]劉艾俠.基于Asp.net的web service調用[J].科技信息,2010,21(23):76-76.
作者簡介
羅明挽(1979-),男,廣東省陽江市人。陽江職業技術學院講師,大學本科學歷。研究方向為Web應用開發。
作者單位
陽江職業技術學院 廣東省陽江市 529500