企業(yè)級(jí)開(kāi)發(fā)WEB服務(wù)的實(shí)現(xiàn)



《企業(yè)級(jí)開(kāi)發(fā)WEB服務(wù)的實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《企業(yè)級(jí)開(kāi)發(fā)WEB服務(wù)的實(shí)現(xiàn)(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第三章第三章WEB服務(wù)(服務(wù)(WEB SERICE)原理)原理 課程內(nèi)容課程內(nèi)容Web Service的概念 Web Service的標(biāo)準(zhǔn) 什么是WSDL 什么是SOAP 什么是UDDI 簡(jiǎn)單的Web Service的創(chuàng)建和客戶端的訪問(wèn)WEB SERVICE的概述的概述 WEB服務(wù)產(chǎn)生背景服務(wù)產(chǎn)生背景(Cont.)Internet信息化應(yīng)用需求信息化應(yīng)用需求HTMLHTMLSOAP/WSDL/UDDISOAP/WSDL/UDDIAny time Any where Any device跨互聯(lián)網(wǎng)跨互聯(lián)網(wǎng)松散耦合松散耦合協(xié)同工作協(xié)同工作資源共享資源共享互連互連互通互通互操作互操作WEB服服務(wù)務(wù)的目
2、的目標(biāo)標(biāo)為了讓地理上分布在不同區(qū)域的計(jì)算機(jī)和設(shè)備一起工作,為用戶提供各種各樣的服務(wù)。用戶可以控制要獲取信息的內(nèi)容、時(shí)間、方式,而不必像目前這樣,在無(wú)數(shù)個(gè)信息孤島中瀏覽,去尋找自己需要的信息。選擇目的地:天氣預(yù)報(bào):匯率:飛機(jī)票價(jià):雨雨雨雨Redmond$1.56$1,999.98NorthwindNorthwind 商務(wù)旅游網(wǎng)商務(wù)旅游網(wǎng)商務(wù)旅游網(wǎng)商務(wù)旅游網(wǎng)XML Web Service應(yīng)用案例應(yīng)用案例InternetInternet天氣預(yù)報(bào)天氣預(yù)報(bào)XML Web Service匯率匯率XML Web Service飛機(jī)票價(jià)飛機(jī)票價(jià)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)飛機(jī)票價(jià)飛機(jī)票價(jià)XML Web ServiceWeb
3、Service工作模式工作模式什么是什么是WEB SERVICE?Web Service的定義:一個(gè)Web Service就是一個(gè)可以被URI識(shí)別的軟件應(yīng)用,它的接口可以被XML描述與發(fā)現(xiàn),并且可以通過(guò)基于Internet的協(xié)議直接支持,與其它基于XML消息的軟件應(yīng)用交互。Web Service就是個(gè)對(duì)外的接口,里面有函數(shù)可供外部客戶調(diào)用(注意:里面同樣有客戶不可調(diào)用的函數(shù))。Web Service是建立可互操作的分布式應(yīng)用程序的新平臺(tái)。Web Service平臺(tái)是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在Web上實(shí)現(xiàn)互操作性。你可以用任何你喜歡的語(yǔ)言,在任何你喜歡的平臺(tái)上寫(xiě)Web Service,只要
4、我們可以通過(guò)Web Service標(biāo)準(zhǔn)對(duì)這些服務(wù)進(jìn)行查詢和訪問(wèn)。特點(diǎn)特點(diǎn) Web Service傳遞的數(shù)據(jù)只能是序列化的數(shù)據(jù),典型的就是XML數(shù)據(jù)。Web Service是描述一組操作的接口,這些操作可以通過(guò)標(biāo)準(zhǔn)的XML消息在網(wǎng)絡(luò)上進(jìn)行訪問(wèn)。Web Service可看作是一些模塊化的應(yīng)用程序,這些應(yīng)用程序能在Web上描述、發(fā)布、定位和調(diào)用。Web Service描述了一種重要的分布式計(jì)算模型,與DCE、CORBA、RMI等方法不同,它更強(qiáng)調(diào)基于單個(gè)Internet標(biāo)準(zhǔn)來(lái)解決異構(gòu)的分布式計(jì)算問(wèn)題。Web Service定義了一種技術(shù),用于描述被訪問(wèn)的軟件組件、訪問(wèn)組件的方法以及找到相關(guān)服務(wù)提供這
5、樣的發(fā)現(xiàn)方法。Web Service并不傾向于特定的編程語(yǔ)言和系統(tǒng)平臺(tái)。也就是說(shuō)我們可以用多種語(yǔ)言來(lái)實(shí)現(xiàn)Web Service,比如C#或者是Java等等。WEB SERVICE技術(shù)技術(shù) 服務(wù)提供者(服務(wù)提供者(Service provider):對(duì)外提供服:對(duì)外提供服務(wù),并且通過(guò)注冊(cè)來(lái)發(fā)布服務(wù)信息。務(wù),并且通過(guò)注冊(cè)來(lái)發(fā)布服務(wù)信息。服務(wù)注冊(cè)器(服務(wù)注冊(cè)器(Service broker):提供服務(wù)的發(fā)):提供服務(wù)的發(fā)布和定位功能。布和定位功能。服務(wù)請(qǐng)求者(服務(wù)請(qǐng)求者(Service requester):通過(guò)服務(wù)代):通過(guò)服務(wù)代理查詢所需服務(wù),并通過(guò)服務(wù)提供者綁定服務(wù)。理查詢所需服務(wù),并通過(guò)服務(wù)
6、提供者綁定服務(wù)。WEB SERVICE的標(biāo)準(zhǔn)的標(biāo)準(zhǔn)Web服務(wù)服務(wù)=WDDL+SOAP+UDDIWSDL Web Service描述語(yǔ)言(WSDL)就是這樣一個(gè)基于XML的語(yǔ)言,用于描述Web Service及其函數(shù)、參數(shù)和返回值。因?yàn)槭腔赬ML的,所以WSDL既是機(jī)器可閱讀的,又是人可閱讀的。一些最新的開(kāi)發(fā)工具既能根據(jù)你的Web Service生成WSDL文檔,又能導(dǎo)入WSDL文檔,生成調(diào)用相應(yīng)Web Service的代碼。一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的WSDL文件文件下面是了下面是了HelloWebService服務(wù)的服務(wù)的WSDL文件的部分內(nèi)容。文件的部分內(nèi)容。.WSDL文件的文件的根元素都是根元
7、素都是 元素包含一個(gè)元素包含一個(gè)或多個(gè)或多個(gè)元素元素 Hello WebService服務(wù)指定名稱(chēng)服務(wù)指定名稱(chēng) SOAP SOAP即簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(Simple Object Access Protocol),是用于交換XML編碼信息的輕量級(jí)協(xié)議。它有三個(gè)主要方面:XML-envelope為描述信息內(nèi)容和如何處理內(nèi)容定義了框架,將程序?qū)ο缶幋a成為XML對(duì)象的規(guī)則,執(zhí)行遠(yuǎn)程過(guò)程調(diào)用(RPC)的約定。SOAP可以運(yùn)行在任何其它傳輸協(xié)議上。SOAP消息:請(qǐng)求消息:請(qǐng)求 在客戶同在客戶同Hello Web服務(wù)消息交互過(guò)程中,將出現(xiàn)如下類(lèi)似的請(qǐng)求消服務(wù)消息交互過(guò)程中,將出現(xiàn)如下類(lèi)似的請(qǐng)求消息內(nèi)容:息內(nèi)
8、容:xmlns:soapenv=http:/schemas.xmlsoap.org/soap/envelope/xmlns:xsd=http:/www.w3.org/2001/XMLSchema"xmlns:ns1=http:/ws.session.examples/這就是在網(wǎng)絡(luò)上實(shí)際傳輸?shù)倪@就是在網(wǎng)絡(luò)上實(shí)際傳輸?shù)腟OAP消息,它包含兩部分內(nèi)容:消息,它包含兩部分內(nèi)容:其一:其一:HTTP POST請(qǐng)求頭信息;請(qǐng)求頭信息;其二:其二:XML文檔。文檔。含有含有元素元素 SOAP消息:響應(yīng)消息:響應(yīng)響應(yīng)消息的內(nèi)容也非常簡(jiǎn)單:響應(yīng)消息的內(nèi)容也非常簡(jiǎn)單:xmlns:soapenv=http:
9、/schemas.xmlsoap.org/soap/envelope/xmlns:xsd=http:/www.w3.org/2001/XMLSchemaxmlns:ns1=http:/ws.session.examples Hello,World!/return 顯然,這也是由顯然,這也是由HTTP頭和頭和XML文檔構(gòu)成的。文檔構(gòu)成的。XML文檔含有文檔含有SOAP信信封,此時(shí),封,此時(shí),SOAP信封表達(dá)了調(diào)用結(jié)果,即簡(jiǎn)單字符串。信封表達(dá)了調(diào)用結(jié)果,即簡(jiǎn)單字符串。UDDI UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web分布式的、為Web Service提供的、信息注冊(cè)中心的實(shí)現(xiàn)
10、標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問(wèn)協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。UDDI基于現(xiàn)成的標(biāo)準(zhǔn),如可擴(kuò)展標(biāo)記語(yǔ)言(XML)和簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)。UDDI的所有兼容實(shí)現(xiàn)都支持UDDI規(guī)范。公共規(guī)范是機(jī)構(gòu)成員在開(kāi)放的、兼容并蓄的過(guò)程中開(kāi)發(fā)出來(lái)的。構(gòu)建一個(gè)簡(jiǎn)單的構(gòu)建一個(gè)簡(jiǎn)單的WEB SERVICEWEB SERVICE的實(shí)現(xiàn)的實(shí)現(xiàn) 以以Eclipse+MyEclipse5.0GA版本的集成開(kāi)發(fā)工具為示例來(lái)講解,步驟如下:版本的集成開(kāi)發(fā)工具為示例來(lái)講解,步驟如下:首先建立一個(gè)新的工程(首先建立一個(gè)新的工程(Project)選擇)選擇“Web Serv
11、ice Project”類(lèi)型類(lèi)型 編寫(xiě)要導(dǎo)出的編寫(xiě)要導(dǎo)出的pojo類(lèi),首先是接口類(lèi),首先是接口,之后是實(shí),之后是實(shí)現(xiàn)類(lèi)現(xiàn)類(lèi)配置配置services.xml 文件文件部署、測(cè)試部署、測(cè)試客戶端調(diào)用客戶端調(diào)用Web服務(wù)服務(wù) 可以直接編寫(xiě)可以直接編寫(xiě)Java程序來(lái)調(diào)用程序來(lái)調(diào)用WebService,在調(diào)用之前首先要獲得,在調(diào)用之前首先要獲得接口類(lèi):接口類(lèi):IHelloWorldService.class,借助于接口類(lèi)來(lái)創(chuàng)建服務(wù)。,借助于接口類(lèi)來(lái)創(chuàng)建服務(wù)。核心代核心代碼如下:碼如下:public static void main(String args)Service srvcModel=new Ob
12、jectServiceFactory().create(IHelloWorldService.class);XFireProxyFactory factory=new FireProxyFactory(XFireFactory.newInstance().getXFire();String helloWorldURL=http:/localhost:8080/TestWebService/services/HelloWorldService;try IHelloWorldService srvc=(IHelloWorldService)factory.create(srvcModel,hell
13、oWorldURL);System.out.print(srvc.sayHello(Kedou);catch(Exception e)e.printStackTrace();本章總結(jié)本章總結(jié)Web Service的概念 Web Service的標(biāo)準(zhǔn) 什么是WSDL 什么是SOAP 什么是UDDI 簡(jiǎn)單的Web Service的創(chuàng)建和客戶端的訪問(wèn) 動(dòng)手實(shí)踐:數(shù)學(xué)計(jì)算動(dòng)手實(shí)踐:數(shù)學(xué)計(jì)算Webservice 應(yīng)用應(yīng)用(1)創(chuàng)建一個(gè)對(duì)數(shù)字進(jìn)行簡(jiǎn)單的加、減、乘、除操作的Web服務(wù)。(2)編寫(xiě)客戶端程序進(jìn)行測(cè)試。實(shí)現(xiàn)步驟實(shí)現(xiàn)步驟(1)新建一個(gè))新建一個(gè)WebService工程工程,之后編寫(xiě)業(yè)務(wù)操作,之后編
14、寫(xiě)業(yè)務(wù)操作的接口類(lèi)的接口類(lèi)(2)實(shí)現(xiàn)該接口的業(yè)務(wù))實(shí)現(xiàn)該接口的業(yè)務(wù)(3)在工程下的)在工程下的WebService目錄下的目錄下的services.xml文文件中配置件中配置Web服務(wù)服務(wù)(4)發(fā)布)發(fā)布Web服務(wù)。啟動(dòng)服務(wù)器并測(cè)試服務(wù)是否部服務(wù)。啟動(dòng)服務(wù)器并測(cè)試服務(wù)是否部署成功署成功(5)編寫(xiě)客戶端進(jìn)行測(cè)試)編寫(xiě)客戶端進(jìn)行測(cè)試(1)新建一個(gè)WebService,工程命名為NumOperator,之后編寫(xiě)業(yè)務(wù)操作的接口類(lèi)INumWebservice,代碼如下:package com.test.webservice;public interface INumWebservice public i
15、nt add(int num1,int num2);public int subtract(int num1,int num2);public int ride(int num1,int num2);public double divide(double num1,double num2);以上的INumWebservice接口中含有四個(gè)方法,分別代表不同的操作。其中相除的操作返回的值是double類(lèi)型。(2)編寫(xiě)以上接口的實(shí)現(xiàn)類(lèi):NumWebserviceImpl,代碼如下:package com.test.webservice;public class NumWebserviceImpl
16、implements INumWebservice public int add(int num1,int num2)return num1+num2;public int subtract(int num1,int num2)return num1-num2;public int ride(int num1,int num2)return num1*num2;public double divide(double num1,double num2)double d=0;if(num2!=0)d=num1/num2;return d;(3)配置Web服務(wù),在工程下的WebService目錄下的
17、services.xml文件中添加如下代碼:NumWebservicecom.test.webservice.INumWebservicecom.test.webservice.NumWebserviceImplwrappedliteralapplication(4)之后發(fā)布Web服務(wù)。啟動(dòng)服務(wù)器并測(cè)試服務(wù)是否部署成功,在IE瀏覽器中輸入:“http:/localhost:8080/NumOperator/services/NumWebservice?wsdl”如果能看到服務(wù)器自動(dòng)生成的wsdl文件,即說(shuō)明配置成功。(5)編寫(xiě)客戶端進(jìn)行測(cè)試,代碼如下:package com.test.webs
18、ervice.client;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import com.test.webservice.INumWebservice;public class TestHelloWorldService public static
19、void main(String args)Service srvcModel=new ObjectServiceFactory().create(INumWebservice.class);XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire();String helloWorldURL=http:/localhost:8080/+NumOperator/services/NumWebservice;try INumWebservice srvc=(INumWebservice)factory.create(srvcModel,helloWorldURL);System.out.println(測(cè)試兩數(shù)字相加:+srvc.add(17,64);System.out.println(測(cè)試兩數(shù)字相減:+srvc.subtract(105,26);System.out.println(測(cè)試兩數(shù)字相乘:+srvc.ride(215,46);System.out.println(測(cè)試兩數(shù)字相除:+srvc.divide(49,15);catch(Exception e)e.printStackTrace();
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)題黨課講稿:以高質(zhì)量黨建保障國(guó)有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅(jiān)決打好反腐敗斗爭(zhēng)攻堅(jiān)戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會(huì)上和基層單位調(diào)研座談會(huì)上的發(fā)言材料
- 總工會(huì)關(guān)于2025年維護(hù)勞動(dòng)領(lǐng)域政治安全的工作匯報(bào)材料
- 基層黨建工作交流研討會(huì)上的講話發(fā)言材料
- 糧食和物資儲(chǔ)備學(xué)習(xí)教育工作部署會(huì)上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計(jì)劃
- 檢察院政治部關(guān)于2025年工作計(jì)劃
- 辦公室主任2025年現(xiàn)實(shí)表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項(xiàng)規(guī)定精神學(xué)習(xí)教育工作部署會(huì)議上的講話發(fā)言材料4篇
- 開(kāi)展深入貫徹規(guī)定精神學(xué)習(xí)教育動(dòng)員部署會(huì)上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會(huì)上的發(fā)言材料
- 國(guó)企黨委關(guān)于推動(dòng)基層黨建與生產(chǎn)經(jīng)營(yíng)深度融合工作情況的報(bào)告材料
- 副書(shū)記在2025年工作務(wù)虛會(huì)上的發(fā)言材料2篇
相關(guān)資源
更多