申鴻燁
摘要:Android手機(jī)軟件開發(fā)是遠(yuǎn)程教育學(xué)習(xí)平臺(tái)的重要內(nèi)容,手機(jī)通常以終端的形式出現(xiàn),大量的數(shù)據(jù)被保存在服務(wù)器端,手機(jī)通過網(wǎng)絡(luò),使用Web Service服務(wù)與服務(wù)器端進(jìn)行通訊,交流數(shù)據(jù)。因此,Web Service架構(gòu)的研究與實(shí)現(xiàn)具有重要意義。本文詳細(xì)研究了Android學(xué)習(xí)平臺(tái)中Web Service的設(shè)計(jì)與實(shí)現(xiàn)方案。
關(guān)鍵詞:Android;Web Service;學(xué)習(xí)平臺(tái)
0引言
在學(xué)習(xí)平臺(tái)的研究中,Android手機(jī)軟件開發(fā)具有重要意義。手機(jī)常常以終端的形式出現(xiàn),大量的數(shù)據(jù)則保存在服務(wù)器端,手機(jī)通過網(wǎng)絡(luò),使用Web Service服務(wù)與服務(wù)器端進(jìn)行通訊,交流數(shù)據(jù),實(shí)現(xiàn)軟件功能。Web Service,即XML Web Service,是可以從網(wǎng)絡(luò)上接收其它系統(tǒng)中傳遞請(qǐng)求的一種輕量級(jí)的通訊技術(shù),通過SOAP在Web上提供軟件服務(wù),使用WSDL文件進(jìn)行說明,并通過UDDI予以注冊(cè)。本文將詳細(xì)探討并重點(diǎn)給出了Android學(xué)習(xí)平臺(tái)中Web Service的設(shè)計(jì)與實(shí)現(xiàn)方案。
1Web Service的核心技術(shù)與規(guī)范
Web Service由應(yīng)用軟件發(fā)布,為了達(dá)到跨平臺(tái)的目的,Web Service采用完全基于不依賴平臺(tái)和具體軟件廠家的標(biāo)準(zhǔn),如XML、XSD。
Web Service主要設(shè)計(jì)使用的核心技術(shù)與規(guī)范可闡釋如下:
1)XML。全稱Extensible Markup Language,即擴(kuò)展型可標(biāo)記語言,主要面向短期的臨時(shí)數(shù)據(jù)處理和互聯(lián)網(wǎng)應(yīng)用,是Soap的基礎(chǔ),是處理結(jié)構(gòu)化文檔信息的重要工具。
2)Soap。全稱Simple Object Access Protocol,即簡單對(duì)象存取協(xié)議,是表示信息交換的協(xié)議,實(shí)現(xiàn)了I-ITTP的Web技術(shù)與XML的結(jié)合,便于異構(gòu)程序與平臺(tái)之間的互操作性,當(dāng)用戶通過UDDI找到WSDL描述文檔后,就可以通過SOAP調(diào)用Web服務(wù)開展操作。SOAP是XML文檔形式的調(diào)用方法的規(guī)范。
3)WSDL。全稱Web Services Description Langllage,為XML格式的文檔,用來說明一組SOAP消息以及如何交換這些消息,通常情況下是由應(yīng)用軟件自動(dòng)生成和使用的。
4)UDDI。全稱UniversalDescriptionDiscovery andIntegration,是主要針對(duì)Web服務(wù)供應(yīng)商和使用者的項(xiàng)目。在用戶能夠調(diào)用Web服務(wù)之前,必須確定這個(gè)服務(wù)內(nèi)包含哪些商務(wù)方法,找到被調(diào)用的接口定義,還要在服務(wù)器端來編制軟件。UDDI是一種根據(jù)描述文檔來引導(dǎo)系統(tǒng)查找相應(yīng)服務(wù)的機(jī)制。UDDI利用SOAP消息機(jī)制(標(biāo)準(zhǔn)的XML/HITP)來發(fā)布、編輯、瀏覽以及查找注冊(cè)信息。在此基礎(chǔ)上,則采用XML格式來封裝各種不同類型的數(shù)據(jù),并且發(fā)送到注冊(cè)中心或者由注冊(cè)中心來返回需要的數(shù)據(jù)。
2Web Service工作原理
Web服務(wù)的體系結(jié)構(gòu)涵蓋了Web服務(wù)提供者、Web服務(wù)請(qǐng)求者、Web服務(wù)代理三個(gè)角色,具體包括3個(gè)動(dòng)作:發(fā)布、發(fā)現(xiàn)和綁定。簡而言之,Web服務(wù)提供者的作用是提供Web服務(wù),等待其他服務(wù)和用戶訪問自己提供的功能。Web服務(wù)請(qǐng)求者是Web服務(wù)的用戶,使用SOAP消息傳遞Web服務(wù)提供商發(fā)送的請(qǐng)求到Web獲取服務(wù)。Web服務(wù)中介的角色是將Web服務(wù)提供者和Web服務(wù)請(qǐng)求者綁定在一起,以管理者的角色出現(xiàn),一般是UDDI實(shí)現(xiàn)。
Web服務(wù)有2層含義:一是指包裝成單個(gè)實(shí)體并釋放到網(wǎng)絡(luò)中的功能集合;二是指功能聚合后被調(diào)用的服務(wù)。概略地說,Web服務(wù)是一個(gè)URL資源,客戶端可以通過編程方式請(qǐng)求其服務(wù),而不需要知道所請(qǐng)求的服務(wù)是如何實(shí)現(xiàn)這一點(diǎn)的,即對(duì)客戶端而言是透明的,這也是與傳統(tǒng)的分布式組件對(duì)象模型所具備的顯著不同之處。
Web Service的優(yōu)點(diǎn)在于:
1)跨防火墻通信。當(dāng)前網(wǎng)絡(luò)環(huán)境下,為了安全考慮,防火墻是每個(gè)網(wǎng)站標(biāo)配的設(shè)備,一方面保障了服務(wù)器本地服務(wù)的安全性,另一方面,為了與外部通訊,防火墻為外部的應(yīng)用程序預(yù)制了固定的端口。但是,外部的應(yīng)用程序各種各樣,用戶成千上萬,而且分布在全球各地,防火墻在提供了安全性的同時(shí),也即使得客戶端和服務(wù)器之間通信已然成為一個(gè)棘手的問題。現(xiàn)有的做法是,選擇將瀏覽器作為客戶端,書寫程序代碼,把應(yīng)用程序的中間層暴露給最終用戶,但是這種處理開發(fā)難度大,程序難于維護(hù)。如果使用Web Service作為中間層組件的話,就可以從用戶界面直接調(diào)用中間層組件。因此,使用Web Service結(jié)構(gòu).就可以節(jié)省花費(fèi)在用戶界面編程上的大量開發(fā)時(shí)間。
2)應(yīng)用程序集成。開發(fā)一個(gè)應(yīng)用軟件,可以包含多種開發(fā)語言,最終整合為一個(gè)應(yīng)用系統(tǒng)。這種整合實(shí)現(xiàn)了不同軟件、不同開發(fā)人員的技術(shù)集成,但是集成將耗費(fèi)可觀的開發(fā)力量和維護(hù)力量。例如,應(yīng)用程序需要從運(yùn)行在某服務(wù)器中獲取數(shù)據(jù);或者把數(shù)據(jù)發(fā)送到另一臺(tái)服務(wù)器。再例如,開發(fā)人員中有采用C#作為開發(fā)語言的,也有采用JAVA作為開發(fā)語言的等等。即使在同一個(gè)平臺(tái)上,不同軟件廠商生產(chǎn)的各種軟件也常常需要系統(tǒng)規(guī)范的高效整合。Web Service可以發(fā)揮協(xié)同連接的作用,借助其可以很容易地集成不同結(jié)構(gòu)的應(yīng)用程序。
3)軟件和數(shù)據(jù)重用。軟件開發(fā)的一個(gè)重要思想是復(fù)用技術(shù),前期開發(fā)的技術(shù)成果,不僅包含了開發(fā)人員的勞動(dòng),而且還內(nèi)化了大量測試和維護(hù)人員的行為內(nèi)容,通過軟件復(fù)用,可以最大程度地保存這些有意義的工作,降低重新開發(fā)和測試的工作強(qiáng)度。這種復(fù)用不僅體現(xiàn)在源代碼模塊或者類一級(jí)的重用,還可以通過二進(jìn)制形式的組件重用得到進(jìn)一步的清晰確認(rèn)。采用Web Service應(yīng)用程序聲明對(duì)外服務(wù)的方法,將功能和數(shù)據(jù)展示出來,供其它應(yīng)用程序使用,達(dá)到業(yè)務(wù)級(jí)的重用。
3Web Service的實(shí)現(xiàn)步驟
實(shí)現(xiàn)一個(gè)完整的Web服務(wù)在設(shè)計(jì)上可分述為如下步驟:
1)發(fā)布。Web服務(wù)提供者的開發(fā)應(yīng)用則將通過服務(wù)代理來設(shè)計(jì)、發(fā)布和調(diào)試正確的Web服務(wù),并在UDDI注冊(cè)中心申請(qǐng)注冊(cè)。
2)發(fā)現(xiàn)。Web服務(wù)請(qǐng)求Web服務(wù)代理,通過UDDI注冊(cè)中心請(qǐng)求特定服務(wù)的中介,以滿足所請(qǐng)求的服務(wù)請(qǐng)求。
3)查找。Web服務(wù)代理向Web服務(wù)請(qǐng)求返回符合條件的Web服務(wù)描述信息,描述WSDL中所寫的信息,支持各種Web服務(wù)的服務(wù)器讀取。
4)綁定。生成相應(yīng)的SOAP信息描述信息,發(fā)送到Web服務(wù)提供商,實(shí)現(xiàn)Web服務(wù)調(diào)用;Web服務(wù)提供者根據(jù)SOAP消息服務(wù)實(shí)現(xiàn)相應(yīng)的Web服務(wù),并將結(jié)果返回給Web服務(wù)請(qǐng)求者,如圖1所示。