Java程序员从笨鸟到菜鸟之(一百零七)一步一步学习webservice(一)开篇
? ? ? Webservice技術在web開發中算是一個比較常見技術。這個對于大多數的web開發者,別管是java程序員還是.NET程序員應該都不是很陌生。今天我就和大家一起來學習一下webservice的基本內容。此篇文章作為webservice的開篇,首先我們來看一下什么是webservice。他能干什么用呢?
什么是webservice?
?????Web?Services是由企業發布的完成其特定商務需求的在線應用服務,其他公司或應用軟件能夠通過Internet來訪問并使用這項在線服務。?用簡單點的話說,就是系統對外的接口!一個企業開發出某種功能之后,我就對外提供一個接口。別人如果也想要這個功能的話直接通過internet調用我所提供的接口。就可以實現相同的功能。當然了這些功能可以收費的。
?????它是一種構建應用程序的普遍模型,可以在任何支持網絡通信的操作系統中實施運行;它是一種新的web應用程序分支,是自包含、自描述、模塊化的應用,可以發布、定位、通過web調用。WebService是一個應用組件,它邏輯性的為其他應用程序提供數據與服務.各應用程序通過網絡協議和規定的一些標準數據格式(Http,XML,Soap)來訪問WebService,通過WebService內部執行得到所需結果.Web?Service可以執行從簡單的請求到復雜商務處理的任何功能。一旦部署以后,其他WebService應用程序可以發現并調用它部署的服務?
Webservice的相關技術
在構建和使用Web?Service時,主要用到以下幾個關鍵的技術和規則:
1.XML:描述數據的標準方法. 可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。?
2.SOAP:簡單對象訪問協議. 是一種輕量的、簡單的、基于?XML?的協議,它被設計成在?WEB?上交換結構化的和固化的信息。
?SOAP協議?=?HTTP協議?+?XML數據格式
?WebService采用HTTP協議傳輸數據,采用XML格式封裝數據?
3.WSDL:Web服務描述語言. 是一個用來描述Web服務和說明如何與Web服務通信的XML語言。為用戶提供詳細的接口說明書。?
它是WebService客戶端和服務器端都能理解的標準格式,其中描述的信息可以分為what,where,how等部分!
what:服務是什么(服務中有哪些方法,方法接受的參數是什么,返回值是什么)
where:服務的網絡地址用哪個url地址表示
how:服務通過什么方式來調用
WSDL文件保存在Web服務器上,通過一個url地址訪問WebService服務提供商可以通過兩種方式來暴露它的WSDL文件地址:注冊到UDDI服務器,以便被人查找。直接告訴給客戶端調用者,例如,在自己網站給出信息或郵件告訴。
4.UDDI(Universal?Description,?Discovery?and?Integration):通用描述、發現與集成,它是一種獨立于平臺的,基于XML語言的用于在互聯網上描述商務的協議。可譯為“通用描述、發現與集成服務”。
實際上,WebService的主要目標是跨平臺的可互操作性。為了達到這一目標,WebService完全基于XML(可擴展標記語言)、XSD(XMLSchema)等獨立于平臺、獨立于軟件供應商的標準,是創建可互操作的、分布式應用程序的新平臺。?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Webservice的工作過程:
下面我們用幾個圖的實例來簡單理解一下webservice
如何實現實時天氣預報?
如何使用安付通進行貨款支付?
Web服務在其中起到的作用:
由上面的圖我們可以看出:Web?Service的出現
?1.讓任何平臺上的用任何語言編寫的服務進行交互。
?2.將應用程序功能概念化成任務,從而形成面向任務的開發和工作流。這使得更抽象的軟件能夠為工作在業務層面具有較少軟件分析技術的用戶所用。
?3.允許松耦合,這意味著,每當其中某個或多個服務在設計或實現中發生改變時,服務應用程序之間的交互不會因此而中斷。
?4.使現有的應用程序能適應不斷變化的業務條件和客戶需求。
?5.向現有或遺留軟件應用程序提供服務接口,而無需改變原來的應用程序,從而使這些應用程序完全可以運行在這種服務環境下。
?6.引入其他一些與原有功能無關的管理或操作管理功能,比如可靠性、責任性和安全性等等,從而在業務計算環境中增加其通用性和實用性。
Webservice應用場景
1.跨防火墻的通信
如果應用程序有成千上萬的用戶,而且分布在世界各地,那么客戶端和服務器之間的通信將是一個棘手的問題。因為客戶端和服務器之間通常會有防火墻或者代理服務器。在這種情況下,使用DCOM就不是那么簡單,通常也不便于把客戶端程序發布到數量如此龐大的每一個用戶手中。傳統的做法是,選擇用瀏覽器作為客戶端,寫下一大堆JSP頁面,把應用程序的中間層暴露給最終用戶。這樣做的結果是開發難度大,程序很難維護。
??????如果中間層組件換成WebService的話,就可以從用戶界面直接調用中間層組件,從而省掉建立JSP頁面的那一步。要調用WebService,可以直接使用SOAP這樣的客戶端,也可以使用自己開發的SOAP客戶端,然后把它和應用程序連接起來。不僅縮短了開發周期,還減少了代碼復雜度,并能夠增強應用程序的可維護性。同時,應用程序也不再需要在每次調用中間層組件時,都跳轉到相應的“結果頁”。?
2.應用程序集成
企業級的應用程序開發者都知道,企業里經常都要把用不同語言寫成的、在不同平臺上運行的各種程序集成起來,而這種集成將花費很大的開發力量。應用程序經常需要從運行在IBM主機上的程序中獲取數據;或者把數據發送到主機或UNIX應用程序中去。即使在同一個平臺上,不同軟件廠商生產的各種軟件也常常需要集成起來。通過WebService,應用程序可以用標準的方法把功能和數據“暴露”出來,供其它應用程序使用。?
長項三:B2B的集成
用WebService集成應用程序,可以使公司內部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎么樣呢?跨公司的商務交易集成通常叫做B2B集成。
WebService是B2B集成成功的關鍵。通過WebService,公司可以把關鍵的商務應用“暴露”給指定的供應商和客戶。例如,把電子下單系統和電子發票系統“暴露”出來,客戶就可以以電子的方式發送訂單,供應商則可以以電子的方式發送原料采購發票。當然,這并不是一個新的概念,EDI(電子文檔交換)早就是這樣了。但是,WebService的實現要比EDI簡單得多,而且WebService運行在Internet上,在世界任何地方都可輕易實現,其運行成本就相對較低。不過,WebService并不像EDI那樣,是文檔交換或B2B集成的完整解決方案。WebService只是B2B集成的一個關鍵部分,還需要許多其它的部分才能實現集成。?
長項四:軟件和數據重用
軟件重用是一個很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是源代碼模塊或者類一級的重用,另一種形式是二進制形式的組件重用。當前,像表格控件或用戶界面控件這樣的可重用軟件組件,在市場上都占有很大的份額。但這類軟件的重用有一個很大的限制,就是重用僅限于代碼,數據不能重用。原因在于,發布組件甚至源代碼都比較容易,但要發布數據就沒那么容易,除非是不會經常變化的靜態數據。
參考資料:百度百科webservice
轉載于:https://blog.51cto.com/javacsh/1129117
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Java程序员从笨鸟到菜鸟之(一百零七)一步一步学习webservice(一)开篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 连分数中一个有意思的小玩意儿
- 下一篇: Java虚拟机学习 - 类加载器(Cla