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