第二章 文獻探討
第四節 網路服務
Web Services 是一種軟體元件,它透過 Web 通訊協定及資料格式的開放式 標準(例如 HTTP、XML 及 SOAP 等)來為其他的應用程式提供服務。這裡面 有兩個重點,一是它是一個提供服務的元件、二是它以 Web 的開放標準為基 礎。由以上我們可以看出 Web Service 可以作為提供服務的元件,它可用來建 構分散式架構系統,實現分散式架構動態整合、平衡負擔、單元升級等優點[8]。
根據 Curbera[9]等人在文獻中提到關於 Web Services 系列的標準主要包括 了 XML、SOAP、WSDL 以及 UDDL 四種開放性的標準。Web Services 是以
Web 的開放標準為基礎,其中最基本的是 HTTP 和 XML。但建構完整的 Web Services 運作還需要更多基礎,透過這些標準,應用程式可以利用 Web Services 在分散式的網路環境之中進行溝通,改變了以往人與應用程式溝通的模式,轉 換成應用程式與應用程式的溝通模式。以下這些都是以 XML 為基本語法建立
的重要標準如 HTML、XML、SOAP、WSDL、UDDI,接下來我們將分別討論 之。
2.4.1 HTML(Hyper Text Markup Language)
由蒂姆·伯納斯-李給出原始定義,由 IETF 用簡化的 SGML(標準通用標示 語言)語法進行進一步發展的 HTML,後來成為國際標準,由全球資訊網聯盟
(W3C)維護。它具有超文字、超連結、超媒體等特色,可以透過網際網路跟 世界上其它 WWW 架構的平台做溝通以及交流,圖 2.7 為一個簡單的 HTML 範 例:
圖 2.7 HTML 範例
HTML(Hyper Text Markup Language)照字面上翻譯為『超文字標示語言』, 它跟一般的文書處理器不同的地方在於,它具有超文字(Hyper Text)、超連結
(Hyper Link)、超媒體(Hyper Media)的特性,透過 HTTP(Hyper Text Transfer
<html>
<body>
在<body>元素裡的內容將會顯示在你的瀏覽器裡.
<p>這是一個段落</p>
<p>這是一個段落</p>
<p>這是一個段落</p>
</body>
</html>
18
Protocol)網路通訊協定,便能夠在世界各地透過 WWW(World Wide Web)的 架構做跨平台的交流。WWW 與 HTML 一開始是在 CERN(歐洲粒子物理實驗 室)所開始發展的,主要的目的在於讓各實驗室之間可以在網路上方便地交換 研究成果,但由於 HTML 的簡單易學,馬上就席捲了全世界,造成了另一次工 業革命。
2.4.2 XML(eXtensible Markup Language)
Doug Tidwell[10]在文獻中對 XML 的描述,可擴充標記語言(XML,
Extensible Markup Language)是一種可以由使用者自己建立標籤符號的標記語 言。由 World Wide Web Consortium(W3C)建立標準,並克服了 HTML(Hyper Text Markup Language)的缺點與侷限。XML 是一個實現自定義標記語言的通用 標準,通常應用於 Web 開發的各方面以及簡化資料的儲存和共用,圖 2.8 是一 個簡單的 XML 範例:
圖 2.8 XML 範例
<?xml version="1.0" encoding="utf-8"?>
<persons>
<person>
<name>hugo</name>
<age>25</age>
<blood>o</blood>
</person>
<person>
<name>penny</name>
<age>24</age>
<blood>o</blood>
</person>
</persons>
圖 2.8 表示一個基本 XML 格式的檔案,該檔案裡面的 Root 是<persons>,
而其下有兩筆資料分別是,名子是 hugo 的人,他的年齡是 25 歲血型是 O 型,
另一個人的名子是 penny,他的年齡是 24 歲血型是 O 型的兩筆資料。
XML 1.0 World Wide Web Consortium(W3C)建議書是一個國際標準,已 經被如 Microsoft(微軟)、Netscape(網景)、SUN(昇陽),及 IBM 等眾多的 供應商認同並採用。XML 已經蔚為風尚。使用 XML 有以下三點優點:
1. 資訊整合:前端的多樣化與整合與後端的整合,前端可以不同的樣式表
(Xsl or Xslt)轉換至不同的前端展示,如 PC、PDA、手機、資訊家電 等;後端則可整合不同作業系統與異質資料庫,如 Windows SQL
Server、Linux Mysql、或大型主機系統等。
2. 全球性:XML 解析器會支援 UTF-8 字集,這是一個幾乎支援世界上所 有語言的字元和象形文字的 Unicode 標準。
3. 內部與呈現分離:XML 是將內容與呈現分離,內容部分為 XML 檔,而 呈現的部分則以透過不同的 XSL 來實現,因此可想而知的,在這樣的 方式下將更有利於維護更新的工作,同時在前端的呈現上更多樣性,甚 至於來達到個人化的工作。
2.4.3 SOAP(Simple Object Access Protocol)
此標準由 IBM、Microsoft、UserLand 和 DevelopMentor 在 1998 年共同提 出,並得到 IBM,蓮花(Lotus),康柏(Compaq)等公司的支持,於 2000 年
20
提交給全球資訊網聯盟(World Wide Web Consortium,W3C),圖 2.9 將表示出
SOAP 封包格式的結構圖其所包含的基本元素[11]:
圖 2.9 SOAP 範例
它包括四個部分:SOAP Envelop,Envelop 定義了一個描述訊息中的內容 是什麼,是誰傳送的,誰應當接受並處理它以及如何處理它們的框架;SOAP 編碼規則(Encoding Rules),用於表示應用程式需要使用的資料類型的實體;
SOAP RPC 表示(RPC Representation),表示遠端過程呼叫和回應的協定;SOAP 繫結(Binding),使用底層協定交換訊息。該標準可簡化網頁伺服器在提取 XML 格式的資料時增加其效率,以 XML 格式互相交換彼此的資料,使其與程式語 言、平台和硬體無關。
SOAP Envelope
Header
Message Name & Data SOAP Header
SOAP Body
2.4.4 WSDL(Web Service Describe Language)
根據 W3C 的規範說明[12],這是一個基於 XML 的關於如何與 Web 服務通 訊和使用的服務描述,WSDL(Web 服務描述語言)是為描述 Web 服務發布的
XML 格式。W3C(World Wide Web Consortium)組織沒有批准 1.1 版的 WSDL,
但是 2.0 版本已經在製訂中,2.0 版將被作為推薦標準(Recommendation)(一 種官方標準),並將被 W3C 組織批准為正式標準。在諸多技術文獻中通常將
Web 服務描述語言簡寫為 WSDL。
WSDL 描述 Web 服務的公共介面。這是一個基於 XML 的關於如何與 Web 服務通訊和使用的服務描述;也就是描述與目錄中列出的 Web 服務進行交互時 需要綁定的協議和信息格式。通常採用抽象語言描述該服務支持的操作和信 息,使用的時候再將實際的網路協議和信息格式綁定給該服務。透過圖 2.10 將 會介紹基本的 WSDL 檔案格式以及該檔案中各資料欄位所代表的意思。
圖 2.10 WSDL 範例
<wsdl:definitions>
<wsdl:types>...</wsdl:types>
<wsdl:message>...<wsdl:message/>
<wsdl:portType>...</wsdl:portType>
<wsdl:binding>...</wsdl:binding>
<wsdl:service>...<wsdl:service>
<wsdl:definitions>
22
1. <wsdl:types>:使用 XML 結構描述(XSD)或另一個類似的資料類型 系統所建立的資料類型定義的容器元素。.
2. <wsdl:message>:通訊的訊息資料之定義。訊息可由多個部份組成,
每一個部份可以是不同類型。
3. <wsdl:portType>:一或多個結束點所支援的抽象作業集。
4. <wsdl:binding>:特定通訊埠類型的具體通訊協定和資料格式規格。
5. <wsdl:service>:相關結束點的集合。
2.4.5 UDDI(Universal Description, Discovery, and Integration)
UDDI 的標準主要是由 OASISTC 所主導[13],它是一個基於 XML 的跨平 台的描述規範,可以使世界範圍內的企業在網際網路上發布自己所提供的服 務。UDDI 專案鼓勵 Web 服務相互操作和相互採用。它是一種工商界居於領先 地位的企業之間的夥伴關係,這種關係最早是由 IBM、Ariba 和 Microsoft 建立 的。UDDI 提供了一組標準的規範用於描述和發現服務,還提供了一組基於網 際網路的實作方式。其在 Web Service 所扮演的演的腳色如圖 2.11 所示:
圖 2.11 UDDI 架構圖
(資料來源:http://www.w3.org/2004/10/presentations/claus.ppt)
UDDI 解決了企業遇到的大量問題。首先,它能幫助拓展企業對企業(B2B)
交互的範圍並能簡化交互的過程。對於那些需要與不同顧客建立許多種關係的 廠商來說,每家都有自己的一套標準與協定,UDDI 支援一種適應性極強的服 務描述,幾乎可以使用任何介面。UDDI 規範容許企業在註冊中心中發布它所 提供的服務,這樣搜尋企業及服務就變得高效率而且簡單了。
UDDI 基於現有的標準,如可延伸標記語言(Extensible Markup Language,
XML)和簡易物件存取通訊協定(Simple Object Access Protocol,SOAP)。UDDI 的所有相容實作都支援 UDDI 規範。公共規範是機構成員在開放的、相容並續 的過程中開發出來的。目的在於先產生並實作這個規範的三個連續版本,之後
24
再把將來開發得到的成果的所有權移交給一個獨立的標準組織。UDDI 版本 1 規範於 2000 年 9 月發布,版本 2 於 2001 年 6 月發布。版本 3 還在開發中,預 計到 2002 年年中發布。版本 1 打下了註冊中心的基礎,版本 2 則加入了企業關 係等功能,版本 3 接下去要解決正在進行的 Web 服務開發中的重要性問題,如 安全性、已改善的國際化、註冊中心之間的互通性以及進一步改進工具以對 API 進行的各種改進。