全面解讀和分析 Web service到底是什麼?

2021-05-08 00:13:32 字數 2600 閱讀 4752

分布式應用程式和瀏覽器

研究一下當前的應用程式開發,你會發現乙個絕對的傾向:人們開始偏愛基於瀏覽器的瘦客戶應用程式。這當然不是因為瘦客戶能夠提供更好的使用者介面,而是因為它能夠避免花在桌面應用程式發布上的高成本。發布桌面應用程式成本很高,一半是因為應用程式安裝和配置的問題,另一半是因為客戶和伺服器之間通訊的問題。

傳統的windows富客戶應用程式使用dcom來與伺服器進行通訊和呼叫遠端物件。配置好dcom使其在乙個大型的網路中正常工作將是乙個極富挑戰性的工作,同時也是許多it工程師的噩夢。事實上,許多it工程師寧願忍受瀏覽器所帶來的功能限制,也不願在區域網上去執行乙個dcom。在我看來,結果就是乙個發布容易,但開發難度大而且使用者介面極其受限的應用程式。極端的說,就是你花了更多的資金和時間,卻開發出從使用者看來功能更弱的應用程式。不信?問問你的會計師對新的基於瀏覽器的會計軟體有什麼想法:絕大多數商用程式使用者希望使用更加友好的windows使用者介面。

關於客戶端與伺服器的通訊問題,乙個完美的解決方法是使用http協議來通訊。這是因為任何執行web瀏覽器的機器都在使用http協議。同時,當前許多防火牆也配置為只允許http連線。

什麼是web service

返回的資料就應該是這樣:

這個asp頁面就應該可以算作是web service 了。因為它基於http get請求,暴露出了乙個可以通過web呼叫的api.當然,web service 還有更多的東西。

下面是對web service 更精確的解釋: web services是建立可互操作的分布式應用程式的新平台。作為乙個windows程式設計師,你可能已經用com或dcom建立過基於元件的分布式應用程式。com是乙個非常好的元件技術,但是我們也很容易舉出com並不能滿足要求的情況。

新平台

web service平台需要一套協議來實現分布式應用程式的建立。任何平台都有它的資料表示方法和型別系統。要實現互操作性,web service平台必須提供一套標準的型別系統,用於溝通不同平台、程式語言和元件模型中的不同型別系統。在傳統的分布式系統中,基於介面(inte***ce)的平台提供了一些方法來描述介面、方法和引數(譯註:如com和cobar中的idl語言)。同樣的,web service平台也必須提供一種標準來描述web service,讓客戶可以得到足夠的資訊來呼叫這個web service.最後,我們還必須有一種方法來對這個web service進行遠端呼叫。這種方法實際是一種遠端過程呼叫協議(rpc)。為了達到互操作性,這種rpc協議還必須與平台和程式語言無關。下面幾個小節就簡要介紹了組成web service平台的這三個技術。

xml和xsd

可擴充套件的標記語言(xml)是web service平台中表示資料的基本格式。除了易於建立和易於分析外,xml主要的優點在於它既是平台無關的,又是廠商無關的。無關性是比技術優越性更重要的:軟體廠商是不會選擇乙個由競爭對手所發明的技術的。

xml解決了資料表示的問題,但它沒有定義一套標準的資料型別,更沒有說怎麼去擴充套件這套資料型別。例如,整形數到底代表什麼?16位,32位,還是64位?這些細節對實現互操作性都是很重要的。w3c制定的xml schema(xsd)就是專門解決這個問題的一套標準。它定義了一套標準的資料型別,並給出了一種語言來擴充套件這套資料型別。web service平台就是用xsd來作為其資料型別系統的。當你用某種語言(如vb.net或c#)來構造乙個web service時,為了符合web service標準,所有你使用的資料型別都必須被轉換為xsd型別。你用的工具可能已經自動幫你完成了這個轉換,但你很可能會根據你的需要修改一下轉換過程。在第二章中,我們將深入xsd,學習怎樣轉換自定義的資料型別(例如類)到xsd的型別。

soap

web service建好以後,你或者其他人就會去呼叫它。簡單物件訪問協議(soap)提供了標準的rpc方法來呼叫web service.實際上,soap在這裡有點用詞不當:它意味著下面的web service是以物件的方式表示的,但事實並不一定如此:你完全可以把你的web service寫成一系列的c函式,並仍然使用soap進行呼叫。soap規範定義了soap訊息的格式,以及怎樣通過http協議來使用soap.soap也是基於xml和xsd的,xml是soap的資料編碼方式。第三章我們會討論soap,並結識soap訊息的各種元素。

wsdl

你會怎樣向別人介紹你的web service有什麼功能,以及每個函式呼叫時的引數呢?你可能會自己寫一套文件,你甚至可能會口頭上告訴需要使用你的web service的人。這些非正式的方法至少都有乙個嚴重的問題:當程式設計師坐到電腦前,想要使用你的web service的時候,他們的工具(如visual studio)無法給他們提供任何幫助,因為這些工具根本就不了解你的web

service.解決方法是:用機器能閱讀的方式提供乙個正式的描述文件。web service描述語言(wsdl)就是這樣乙個基於xml的語言,用於描述web service及其函式、引數和返回值。因為是基於xml的,所以wsdl既是機器可閱讀的,又是人可閱讀的,這將是乙個很大的好處。一些最新的開發工具既能根據你的web service生成wsdl文件,又能匯入wsdl文件,生成呼叫相應web service的**。

em單位全面解讀

em單位編寫可擴充套件樣式表的最重要工具就是em單位,因此它被首先介紹。使用em來製作可伸縮的樣式表。它最初以字母m命名,em單位在印刷術中有乙個長期的傳統,即用於度量水平寬度。例如,把在美國文字中常常看到的長劃線 稱為破折號,因為從歷史觀點上看,em單位具有和字母m相同的寬度。它較窄的形式 常常出...

Libra數字貨幣的全面解讀

我們對於區塊鏈算是有非常長的時間裡有關注,因為。可能在一六年啊,是在一五年的時候,圈兒裡就已經是乙個。在科技領域比較火熱的乙個領域了,但是大家都沒有想到,一七年的時候,跟隨位元幣的一波。然後呢,獲得社會這麼大的關注,當然說,在中國一八年年初的時候,那個時候可能位元幣 已經 了。那個時候,這個反兒國內...

全面解讀排名忽上忽下這是為何?

站長們再seo 排名時最擔心的就是排名忽上忽下,今天還看著排名在了前10名,結果一更新排名又回到了 解放前 呵呵,那到底是因為什麼導致排名忽上忽下呢?今天阿魚就來和大家分析一下。好,廢話不多說,直接上正文!1 內容更新時而多,時而少 很多站長在更新 內容時因為沒時間觀念或是沒具體的每日工作安排,所以...