新手必看WCF服務元數(shù)據(jù)介紹
大家知道什么是WCF服務元數(shù)據(jù)嗎?在我的工作中總結了一點關于這方面的經驗,WCF服務元數(shù)據(jù)交換、配置及編程開發(fā)的學習。我們了解WCF分布式開發(fā)的相關的基本的概念和自定義宿主托管服務的完整的開發(fā)和配置過程。今天我們來詳細學習WCF服務元數(shù)據(jù)交換的相關內容。WCF服務元數(shù)據(jù)究竟是什么?為什么WCF服務要暴露元數(shù)據(jù)交換節(jié)點?WCF服務元數(shù)據(jù)交換的方式有那些?我們如何實現(xiàn)WCF服務元數(shù)據(jù)交換,我們會詳細講解。
#T#WCF服務元數(shù)據(jù)的基本概念
WCF服務元數(shù)據(jù)究竟是什么?它的作用是什么?為什么WCF服務要暴露元數(shù)據(jù)交換節(jié)點?這些和以前的Web Service有什么關系?這些通常是我們在學習WCF服務分布式系統(tǒng)開發(fā)過程中常常困擾我們的問題。
WCF服務元數(shù)據(jù)是什么
WCF服務元數(shù)據(jù)是WCF服務的核心部分服務地址(Address)、綁定(通信協(xié)議Binding)、契約(服務、操作、數(shù)據(jù)Contract)的原始描述信息。服務所公開的元數(shù)據(jù)包括 XSD(文檔中出現(xiàn)的元素、文檔中出現(xiàn)的屬性、子元素、子元素的數(shù)量、子元素的順序、元素是否為空、元素和屬性的數(shù)據(jù)類型、元素或屬性的默認和固定值)和 WSDL 文檔(用于描述服務的方法、參數(shù)、參數(shù)個數(shù)、順序、返回值、返回值的類型等方法的相關信息)。.Disco文檔(描述服務的協(xié)議、地址、命名空間等信息)。
這些關鍵的WCF服務元數(shù)據(jù)全部都是基于XML語言描述,支持核心的行業(yè)標準協(xié)議。XSD好處顯而易見, 基于XML,沒有專門的語法 ,XML Schema支持一系列的數(shù)據(jù)類型(int、float、Boolean、date等) ,可擴充的數(shù)據(jù)模型,支持綜合命名空間 ,支持屬性組等。而這些正式WCF分布式服務追求的跨語言、跨平臺的關鍵部分所在。
為什么要暴露服務元數(shù)據(jù)
知道了WCF服務元數(shù)據(jù)的概念后,我們就能理解為什么要暴露服務的元數(shù)據(jù)。WCF服務的元數(shù)據(jù)描述服務的核心信息,客戶端需要了解這些特征以便與該服務進行通信。要想實現(xiàn)異構平臺或者系統(tǒng)之間的通信,以前的技術是使用Web Service.因為其具有自描述、可擴展、與平臺無關等優(yōu)勢??蛻舳酥恍枰鶕?jù)Web Service地址,便可獲取服務的相關信息,反序列話本地的代碼,通過服務代理進行服務的調用。
WCF服務主要特性之一就是跨平臺的服務交互。而暴露服務元數(shù)據(jù)的重要原因就是解決了異構客戶端服務交互的關鍵問題。 元數(shù)據(jù)基于XML,自描述??蛻舳丝梢愿鶕?jù)服務的元數(shù)據(jù)反序列換生成本地代碼,無論是c#,vb還是java語。