</div>
<h1>我理解的webservice是這樣的</h1>
<div class="txt-infr">
<!--<em class="iconfont"></em>-->
<em class="font">發佈時間:</em>
<span>2016-01-10</span>
<!--<em class="iconfont"></em>-->
<em class="font">作者:</em>
<span>跡憶</span>
<em class="font">瀏覽次數:</em>
<!--<em class="iconfont"></em>-->
<span class="count"></span>
</div>
<div class="graf-box">
<p>
最近在工作中遇到這樣的一個項目(暫且定爲項目A),項目A本身是用PHP開發的,但是其數據是來自於另一個使用java開發的項目(暫且定爲項目B),項目A不能操作項目B的數據庫,它有其自己的一套數據庫,只是有些地方需要用到項目B中的內容。所以在這裏就需要一種通信方式,可以使B中的數據可以傳到A中。很當然的就選擇了Webservice,我使用PHP在項目A中搭建了Webservice服務,向B提供了我需要實現的接口,只要B調用相應的接口,按照接口要求的數據格式將數據傳輸到A中,這就大功告成了。</p>
那Webservice究竟是個什麼東西呢,剛開始使用的時候我在網上也查了很多的資料,下面就我自己對Webservice的理解向大家分享一下。
Webservice可以看做不同設備之間通信的一種標準,和具體的某種語言沒有關係,如果非要說有關係的話,那就是每種語言都按照這個webservice標準來開發相應的函數以實現此標準。就向我上面說的項目B向項目A傳輸數據,需要按照這個Webservice標準來傳輸纔可以成功。
當然對於上述案例如果說是項目A需要在本地存一份項目B中的部分數據,但是對於業務邏輯是和B沒有關係的,那麼就需要A來提供webservice服務,由B來調用接口發送數據,接下來就沒有B什麼事兒了,僅當B中相應數據有更新的時候,再次調用A提供的webservice接口更新A中的數據就可以了。但是如果業務是這樣的,項目A不需要存B中的數據,它只是用B中的部分數據做展示,那我們就需要在B中搭建Webservice服務,提供相應的接口,由A調用B提供的Webservice接口以此取出B中的數據,那這樣當B中數據有更新的時候,A調用的數據也是最新的。
上面說了這麼多,無非就是一句話
Webservice是被定義用來使不同應用之間通過網絡傳輸數據的一種標準,此標準和具體的語言無關,至於哪種語言提供接口,哪種語言來調用要看項目的需要。
既然是一種標準,那就需要有相應的技術來支持這個標準的實現。下面就出現了Webservice中的四種技術——XML、WSDL、SOAP、UDDI。在一套完整的Webservice服務中,這四種技術各有其自己的實現價值,下面分別來介紹一下各自的用途
1.XML
XML是用來標記數據的(對於XML標籤詳細介紹,可以參考W3C),因爲上面我們說過,webservice不依賴於某一門特定的編程語言。而不同的系統可能是使用不同的編程語言來開發,(如上:項目A使用PHP開發,項目B使用Java開發)所以說就需要一種方式來交換數據,這種方式同樣不依賴於某種編程語言,大多數軟件都集成了XML標籤,因此使用XML格式的數據來實現數據的交換。
2.SOAP
SOAP是一種特殊的協議,用來傳輸數據。當調用方一旦發現提供Webservice接口的地址,它將會使用SOAP協議和提供Webservice的系統進行連接。