天天看點

webservice 入門講解

        難道我們就沒有解決辦法嗎?難到非要大量人工來幹預嗎?

        如果使用了WebService就能很好的解決這個問題, l從表面上看,Web service 就是一個應用程式,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用程式設計的方法通過Web來調用這個應用程式。我們把調用這個Web service 的應用程式叫做客戶。 更精确的解釋是: Web services是建立可互操作的分布式應用程式的新平台。作為一個Windows程式員,你可能已經用COM或DCOM建立過基于元件的分布式應用程式。COM是一個非常好的元件技術,但是我們也很容易舉出COM并不能滿足要求的情況。Web service平台是一套标準,它定義了應用程式如何在Web上實作互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平台上寫Web service ,隻要我們可以通過Web service标準對這些服務進行查詢和通路。•能夠在一個分布式的計算環境中動态地描述、釋出、發現和調用服務。

     為什麼我們需要WebService呢?

    一、軟體變服務:現在專家組提出這麼一個問題,比如:一套正版的Office軟體需要700RMB,如果A使用者隻用到裡面的最最變通的功能,像排版,制表格等;B使用者使用了Office的大量功能,而且天天使用,那麼對A使用者來說,是不是有點很虧啊!我不經常用而且用的功能少,買這套軟體的價格與B使用者的價格缺是一樣,按理說我應該比他便宜才對。如今有一種“軟體變服務”這第一種說法,就是:使用了那塊功能交多少錢、使用了多少次交多少錢等等。如果實作了“軟體變服務”那麼就會有:去商廠買個太陽能熱水器,我們都可以免費拿回家使用,隻要給熱水器配置設定一下IP位址,我們下班後發條短信就可以通知熱水器可以開始熱水了,而在這個過程中,嵌在熱水器晶片上的程式就會自動的從你的銀行賬号上扣出一部分錢來,用于本次洗澡的費用給賣家......這就是一種“軟體變服務概念”.

   二、l整合孤立的資料孤島:現在有很多的資源不能充分被利用,由于操作平台的不一緻,軟體開發的語句不同等等因素,都阻礙了資訊資源的高度共享使用,利用webservice能夠很多的解決這個問題。      三、 l互連裝置與異構系統:不管你的操作平台是windows還是linux還是unix,不管你的資料庫是Oracle,Mysql,SqlServer,DB2,Sybase等,能夠實作互訪互問。

   四、 lEAI/B2B應用: 什麼是EAI(enterprise application integration)企業應用內建 EAI是将基于各種不同平台、用不同方案建立的異構應用內建的一種方法和技術。EAI通過建立底層結構,來聯系橫 貫整個企業的異構系統、應用、資料源等,完成在企業内部的 ERP、CRM、SCM、資料庫、資料倉庫,以及其他重要 的内部系統之間無縫地共享和交換資料的需要。有了 EAI,企業就可以将企業核心應用和新的Internet解決方案結合在一起。EAI(企業應用內建)将程序、軟體、标準和硬體聯合起來,在兩個或更多的企業系統之間實作無縫內建,使它們就像 一個整體一樣。盡管EAI常常表現為對一個商業實體(例如一家公司)的資訊系統進行業務應用內建,但當在多個企業 系統之間進行商務交易的時候,EAI也表現為不同公司實體之間的企業系統內建,例如B2B的電子商務。 B2B是企業與企業之間通過網際網路進行産品、服務及資訊的交換。

......

   現今主流分布技術應用的缺點:

   EJB也是做分布式應用的,它屬于JAVA平台規範。如果在EJB上做WebService開發,那麼隻需要加一個 @WebService注解就OK了,非常的簡便,但是它也有不足之處。EJB側重于功能實作的細節上,而WebService則側重于它能提供什麼功能。

   目前分布式技術各自為政,互操作性差且緊耦合,局限在Intranet應用。

    WebService的優點:

    WebService 是業界組織超過160家公司加入聯盟,達成異構平台,異構系統,不同語言的互操作規範,通過WebService将會推動産業新浪潮。

   WebService協定棧:

   1、通訊協定:XML檔案

   2、消息格式:HTTP+SAOP

   3、描述語言:WSDL

   4、發現機制:UDDI Server,理想情況下,采用了UDDI做服務,好比通路百度,各國各個網友不會隻通路到百度的同一台主機,可是我們的确是通路的是同一個IP啊,怎麼會通路不到同一台主機呢?這裡面應用了一個叫“負載均衡器”的硬體,我們通路百度時,負載均衡器會判斷那台主機承受壓力小就會将你的請求轉發給它,這就好比UDDI了,我們要通路目标主機,首先要通路UDDI,得到目标位址,才真正去與目标通信。事實上,我們沒有這樣做,而是直接與目标位址通路了。

5、SOA:面向服務架構

WebService的實作架構:

1、使用axis實作WebService;

繼續閱讀