Web 服務產生的根源

2021-08-22 16:47:56 字數 4104 閱讀 4517

多年以來,能夠建立在區域網或者internet上遠端呼叫的元件一直是讓web開發人員頭痛的事情。這期間出現過一些可以實現這一任務的技術。但是,大部分方法建立的元件只能執行於區域網內部的後端系統上,還沒有哪個技術能夠完全應對internet環境。因為internet過於寬大、複雜,甚至存在很多不可靠因素。尤為重要的是,執行於internet上的計算機不可能像公司內部一樣使用同一種作業系統和同一類硬體結構,而是各種平台和硬體混雜在一起。這就是web服務產生的根源

由於internet的迅猛發展和無所不在,目前web應用程式的設計和開發,幾乎都會考慮到如何利用有效的結合與利用internet技術,以便充分利用連線計算機所帶來的好處。為了滿足不同的使用者需要,.net framework 提供了xml web 服務支援。呼叫web服務時,只需要通過乙個http協議傳送乙個xml即可。因為,基於internet的裝置都支援http協議,而且幾乎所有的程式語言事實上都具備xml解析器,對於可以使用web服務的應用程式幾乎是沒有限制的。

從表面上看,web服務就是乙個應用程式,它向外界顯露出乙個能夠通過web呼叫的api。也就是說,能夠用程式設計的方法通過web呼叫來實現某個功能的應用程式。例如,某人在本地建立乙個web服務,可以插敘sql server資料庫內容。其它使用者或者開發人員可以在瀏覽器的位址列中直接輸入http get 請求來呼叫該web服務,將資料庫內容顯示在瀏覽器頁面上,這就是使用了web服務。

從深層次上看,web服務是一種新型的web應用程式,它是自包含、自描述、和模組化的應用,可以再web描述、發布、查詢以及通過web來呼叫。

web服務平台需要一套協議來實現分布式應用程式的建立。任何平台都有它的資料表示方法和型別系統。要實現互操作性,web服務平台必須提供一套標準的型別系統,用於溝通不同平台、程式語言和元件模型中不同的型別系統。目前使用的協議主要有一下幾種

1:xml 和xsd

xml已經成為在internet上傳遞資料的實施標準方式,因而也就順理成章地成為web服務中表示資料的基本格式。xml主要的優點在於它既與平台無關,又與廠商無關。

2.soap

soap(****** object access protocol,簡單物件訪問協議)是用於交換xml編碼資訊的輕量級協議,是乙個基於xml的協議。它包括如下四個部分。

soap封裝(envelop).封裝定義訊息中的內容是什麼,是誰傳送的,誰應當接收並處理它以及如何處理他們的框架

soap編碼規則(encoding rules)。用於表示應用程式需要使用的資料型別的例項。

soap rpc 表示(rpc representation)。表示遠端呼叫和應答的協定

soap 繫結(binding)。使用底層協議交換資訊。

web服務希望是現在不同的系統之間能夠用「軟體與軟體對話」的方式相互呼叫,打破軟體應用、**和各種裝置之間格格不入的狀態,實現「基於web無縫整合」的目標

3.wsdl

wsdl(web service description language,web伺服器描述語言)使用xml文件來描述web服務的標準,是web服務的介面定義語言。同wsdl,可以描述web服務的三個基本屬性

web服務所提供的操作(web方法),也就是web服務能夠做些什麼

與web服務互動的資料格式以及必要協議,即如何訪問web服務

協議相關的位址,比如url,即web服務位於何處

wsdl文件以埠集合的形式來描述web服務,wsdl服務描述包含一組操作和訊息的乙個抽象定義,繫結到這些操作和訊息的乙個具體協議,和這個繫結的乙個網路端點規範。因為是基於xml的,所以wsdl既是機器可閱讀又是人可閱讀的。

web服務在很多方面是引人注目的。首先在技術方面,web服務試**決緊耦合技術(比如corba和dcom)面臨的問題。這些問題包括通過防火牆、處理底層協議的複雜性及與不同平台的整合。其次,在組織和經濟方面,web服務同樣令人關注,因為它們為商務運作及公司間的系統整合開闢了新的途徑

dcom和corba適合於建立執行於同一平台和同一區域網內的軟體。但是,這些技術並不適合於開發跨平台,尤其是跨internet的應用程式。而這正式web服務的目的所在。web服務代表了分布式計算的發展方向。其主要優勢如下。

簡單性。意味著web服務可以在不同的平台上獲得支援

松耦合。擴充套件web服務的介面或者增加新的方法,只要仍舊提供舊的方法和引數就不會影響客戶端。

無縫鏈結。web服務並不需要持久的連線。需要web服務時,客戶端向web服務端發出乙個請求,web服務返回其結果,然後可以關閉連線。這使得易於擴充套件到更多的客戶端

不影響防火牆。防火牆通常會給分部技術帶來障礙,但是web服務幾乎不會影響防火牆。因為,幾乎所有的防火牆都會開放http埠80和443,而web服務就是使用http,因而使用web服務不需要對防火牆進行配置

要在web服務的多樣性世界裡取得成功,必須涉及到作業系統、物件模型和程式語言的選擇,而web服務不能對這些因素有任何傾向性。同樣,要使web服務像其他基於web的技術一樣被廣泛採用,必須做到松耦合性、使用常規的通訊通道和裝置以及採用通用的資料格式

為了達成上述目標,.net framework提供的xml web服務採用的基礎結構提供下列內容,定位xml web服務的發現機制、定義如何使用這些服務的服務描述以及通訊時使用的標準連網形式。表1-1列出了web服務基礎結構的各個元件及其作用

表1-1 xml web服務基礎結構的元件

基礎結構元件

作用xml web服務目錄

與internet上的所有其他資源一樣,如果沒有某種手段搜尋的web服務,那麼就幾乎不可能找到該服務。xml web服務目錄提供乙個中心位置,xml web服務提供程式可在其中發布與可用的xml web服務有關的資訊

xml web服務發現

xml web 服務發現是定位用wsdl所描述的特定web服務的乙個或多個相關文件的過程。disco規範定義了定位服務描述的演算法。如果客戶端知道服務描述的位置,則可以跳過發現過程

xml web服務描述

要了解如何與特定的web服務進行互動,需要提供定義了該web服務所支援的互動功能的服務描述。客戶端必須知道如何與web服務進行互動才可以使用該服務

xml web服務連網形式

為實現通用的通訊,xml web 服務使用開放式連網形式進行通訊,這些格式是任何能夠支援最常見的web標準的系統都可以理解的協議。soap 是xml web服務通訊的主要協議

soap 是一種跨平台標準,它用於對web服務和客戶端應用程式之間傳送的訊息進行格式化。soap的優勢在於其靈活性,不僅可以用soap來傳送任何型別的xml資料,還可以在非http協議上進行傳輸。比如,可以通過tcp/ip連線傳送soap訊息。

從結構上說,soap訊息包含以下三個主要的因素

soap封裝(envelope)。即所謂的訊息根元素,也就是訊息的標題元素,並且該元素在soap訊息中是必須存在的元素,主要的作用就是告訴收方此訊息的基本情況等。

soap表頭(header)。此元素在soap訊息中不是必須的,如果存在此元素的話,它必須是soap封裝的第乙個子元素,主要的作用就是傳遞一些輔助性的附加訊息,比附身份驗證、會話等。

soap體(body)。此元素即soap訊息體,是每個soap訊息中必須的元素。每個soap體元素可以由多個子元素構成。

soap表頭提供了一種方法,用於將資料傳遞給web服務方法或者從web服務方法獲取資料,條件是該資料不直接與web服務方法的主功能相關。例如,乙個web服務可能包含若干個web服務方法,而每個方法都需要自定義的身份驗證方案。引用從soapheader派生的類的soapheaderattribute應用於每個web服務方法,就不用將引數新增到每個需要自定義身份驗證方案的web服務方法,而可以將從soapheader派生類的實現來處理該自定義身份驗證方案。按照此方式,web服務方法使用soap標頭來僅實現特定於它的功能並新增其他功能。

接收和處理soap標頭的基本步驟如下

⑴ 建立乙個soapheader派生類,表示傳入soap標頭的資料。

⑵ 將乙個成員新增到實現web服務的類或者web服務客戶端的**類(他們屬於在第一步建立的型別)

⑶ 指定第二步中在memebername屬性中建立的成員,將soapheaderattribute應用

web服務方法或**類中的對應方法

⑷ 在web服務方法或web服務客戶端**中訪問membername屬性,以處理在soap標頭中傳送的資料。

5G安全問題產生的根源

5g包羅永珍 3gpp 非3gpp接入,場景豐富多樣,應用範圍空前廣泛,因此導致風險暴漏面多,風險點眾多且繁雜。網上5g安全問題的文章非常多,社會重視程度已經到位,剩下的就是解決方案了。目前,還沒有看到可靠的解決方案。但我想,解決乙個問題首先要弄清楚乙個問題產生的根源,簡單思考一下,5g安全問題的根...

快樂的根源

我對哲學沒有什麼研究,但對生活的平常問題有時也偶有感悟,這兩天突然想到,人生一輩子追求的是什麼呢?快樂!人一生追求的不就是這兩個字嗎?難道還會有人一生只為追求痛苦?當然每個人都有自己的人生觀 價值觀,性格也都各異,興趣各有不同,但所有人做的每一件事都有乙個共同的目的,那就是追求快樂。快樂的表現形勢也...

煩惱的根源

在生活學習工作中,世人 有許多煩惱。煩惱的根源是什麼呢?我們或許能夠從佛家的智慧型裡尋找到答案。這是一張唐卡 六道輪迴圖 它用生動的方式描繪了佛家的道理。圖中所有的故事都是圍繞右側圓心中的三隻動物 鴿子 蛇和豬。這三隻動物分別隱喻了世人的煩惱的根源 貪 相傳鴿子 頻繁 嗔 蛇發怒時口中分泌毒液致人死...