Web Services[7][17][22]是一種允許電腦間彼此以制定格式的訊息自動相互溝通,
由Worldwide Web Consortium(W3C)設計訂定,用來促進跨平台間程式對程式的通訊。
若我們將查詢功能建置成Web Services 形式,並將之推廣使得全世界的查詢食品營養素 之功能也都建置成Web Services 形式,如此一來程式與程式間便能彼此互相溝通。若我 在某個國家網站查詢某一個食品之營養素時,此查詢會自動與世界上其他查詢程式相互 溝通,並同時查詢其他資料庫中之相關資料,查詢資料因此可以變的廣泛多樣化不僅僅 侷限於某一個資料庫來源。
要運用Web Services 功能必須了解有三個元件是 Web Services 所必要的:
z UDDI(Universal Description Discovery and Integration):提供註冊與搜尋 Web Service 資訊的一個標準。
z WSDL(Web Service Description Language):以 XML 撰寫的文件,主要的 用途是「描述 Web Services」,也就是讓用戶端知道如何使用 Web Services,
包括提供服務的種類、呼叫方法、參數傳遞等。
z SOAP(Simple Object Access Protocol)[20]:架構在 HTTP 之上的物件存取 協定,用來在網路上交換結構化和型別資訊。當用戶端程式需要呼叫 Web Services 時,會把要求封裝成 SOAP 呼叫,傳遞給遠端,當遠端 Web Services 收到請求後,會執行指定的工作並利用SOAP 傳回結果。
可以從圖 2-30 看出,當一個用戶端想找尋一個 Web Services 來使用時,先於 UDDI 伺服器中尋找,當尋找到時便以UDDI 所提供的位址,到該 Web Services 所在的位址。
此時向該 Web Services 要求 WSDL 文件,此 WSDL 文件可以提供使用者在使用 Web Services 所需輸入的訊息格式。最後使用者便可依這些資訊向該 Web Services 發出請求 取得服務[3]。
圖 2-30 Web Services 的架構圖
傳統的旅遊訂票流程如圖 2-31 所示,使用者必須自行訂飯店、訂機票以及其他相 關服務,每個服務間無法彼此溝通。而透過Web Services 如圖 2-32 所示,每個服務間 以共通的訊息相互聯繫,如此一來使用者決定了目的地時,系統會自動連繫航空公司自 動找尋可訂購之航班,決定好時間地點後系統會自動聯繫當地飯店的服務系統,自動找 出抵達當日可提供住宿的飯店[12]。
圖 2-31 傳統的旅遊訂票流程
圖 2-32 透過 Web Services 的旅遊訂票流程
因此我們也希望能夠建置一個類似的服務,網路上其他程式或是使用者送出欲查 詢之關鍵字,我們所建置的Web Services 就會根據傳入的字串查詢後端資料庫,再將資 料回傳。如圖 2-33 所示,我們建置一個 QueryNutrient 的 Web Services,我們定義只要 輸入關鍵字便可以傳回所有食品名稱中擁有該關鍵字之食品。
只要世界上各國皆建立類似的Web Services 查詢功能,使用者不須分別到各國資 料庫中查詢食品營養素,只需到其中一個資訊網站輸入查詢關鍵字後,便可以利用Web Services 的便利查詢出與此資訊網站之 Web Services 能相互溝通之所有食品營養資訊,
對使用者來說是非常方便且實用的功能,也能達到查詢資料廣泛且多樣的特性。
圖 2-33 Query Nutrient Web Services
圖 2-34 QueryNutrient 本機測試畫面