WCF分布式開發步步為贏(3)WCF服務元數據交換、配置及編程開發

作者: Frank Xu Lei  來源: 博客園  發布時間: 2009-04-01 13:23  閱讀: 7337 次  推薦: 1   原文鏈接   [收藏]  
 

 

  今天我們繼續WCF分布式開發步步為贏(3)WCF服務元數據交換、配置及編程開發的學習。經過前面兩節的學習,我們了解WCF分布式開發的相關的基本的概念和自定義宿主托管服務的完整的開發和配置過程。今天我們來詳細學習WCF服務元數據交換的相關內容。WCF服務元數據究竟是什么?為什么WCF服務要暴露元數據交換節點?這些和以前的Web Service有什么關系?WCF服務元數據交換的方式有那些?我們如何實現WCF服務元數據交換,本節我們會詳細講解。全文結構如下:【1】WCF服務元數據的基本概念、【2】WCF服務元數據交換方式介紹【3】WCF服務元數據交換配置實現過程詳解【4】WCF服務元數據交換編程實現過程詳解【5】總結。

  【1】WCF服務元數據的基本概念:

  WCF服務元數據究竟是什么?它的作用是什么?為什么WCF服務要暴露元數據交換節點?這些和以前的Web Service有什么關系?這些通常是我們在學習WCF服務分布式系統開發過程中常常困擾我們的問題。

  【1.1】WCF服務元數據是什么:

  WCF服務元數據是WCF服務的核心部分服務地址(Address)、綁定(通信協議Binding)、契約(服務、操作、數據Contract)的原始描述信息。服務所公開的元數據包括 XSD(文檔中出現的元素、文檔中出現的屬性、子元素、子元素的數量、子元素的順序、元素是否為空、元素和屬性的數據類型、元素或屬性的默認和固定值)和 WSDL 文檔(用于描述服務的方法、參數、參數個數、順序、返回值、返回值的類型等方法的相關信息)。.Disco文檔(描述服務的協議、地址、命名空間等信息)。

  這些關鍵的WCF服務元數據全部都是基于XML語言描述,支持核心的行業標準協議。XSD好處顯而易見,  基于XML,沒有專門的語法 ,XML Schema支持一系列的數據類型(int、float、Boolean、date等) ,可擴充的數據模型,支持綜合命名空間 ,支持屬性組等。而這些正式WCF分布式服務追求的跨語言、跨平臺的關鍵部分所在。

  【1.2】為什么要暴露服務元數據:

  知道了WCF服務元數據的概念后,我們就能理解為什么要暴露服務的元數據。WCF服務的元數據描述服務的核心信息,客戶端需要了解這些特征以便與該服務進行通信。要想實現異構平臺或者系統之間的通信,以前的技術是使用Web Service。因為其具有自描述、可擴展、與平臺無關等優勢。客戶端只需要根據Web Service地址,便可獲取服務的相關信息,反序列話本地的代碼,通過服務代理進行服務的調用。

  WCF服務主要特性之一就是跨平臺的服務交互。而暴露服務元數據的重要原因就是解決了異構客戶端服務交互的關鍵問題。 元數據基于XML,自描述。客戶端可以根據服務的元數據反序列換生成本地代碼,無論是c#,vb還是java語。

  【1.3】WCF的服務和Web Service比較:

  WCF其中一個重要特性就是支持Web Service的核心協議。無論是服務應用程序還是實際項目中客戶端服務的引用的代碼都能看出很多相似之處。這里線來看看服務程序的代碼結構(IIS托管為例)。   

  兩者除了包括自己的擴展文件外還有與其對應的服務代碼文件。

  再來看看客戶端引用服務后本地的代碼結構。首先是Web Service客戶端的服務引用的本地文件:

  其次是WCF客戶端服務引用的文件結構:

  兩者都包括服務的本地代碼文件(反序列化生成的本地服務相關代碼),WSDL服務描述文件、XSD服務結構文件。WCF框架模型一定程度上參考了以前的ASP.NET Web Service,并對此進行了擴展。

 

1
0
 
標簽:WCF
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()