五分鐘讓你知道WCF通訊協(xié)議
通訊協(xié)議在網(wǎng)絡(luò)編程中是很重要的一部分,大家對(duì)網(wǎng)絡(luò)編程感興趣的朋友可以上網(wǎng)多收集一些資料,在這里我只能說(shuō)說(shuō)關(guān)于WCF通訊協(xié)議方面的知識(shí),以后還會(huì)為大家介紹更多WCF相關(guān)知識(shí)??蛻?hù)端通過(guò)發(fā)送和接收消息與服務(wù)進(jìn)行交互。消息可以從客戶(hù)端直接或經(jīng)中介傳輸?shù)椒?wù)。在WCF中,所有的消息都是SOAP消息。注意,這些消息獨(dú)立于傳輸協(xié)議——不象Web服務(wù),WCF服務(wù)可以通過(guò)多種傳輸協(xié)議進(jìn)行通訊,而不僅是HTTP。
#T#在WCF中,客戶(hù)端從不直接與服務(wù)進(jìn)行交互,即使在當(dāng)處理一個(gè)本地的內(nèi)存中服務(wù)時(shí)。而是,客戶(hù)端總是使用一個(gè)代理來(lái)把該調(diào)用轉(zhuǎn)發(fā)給服務(wù)。WCF通訊允許客戶(hù)端跨越所有執(zhí)行邊界與服務(wù)進(jìn)行通訊。在同一臺(tái)計(jì)算機(jī)上(見(jiàn)圖1),客戶(hù)端可以跨越同一進(jìn)程中的應(yīng)用程序域或進(jìn)程來(lái)消費(fèi)同一個(gè)應(yīng)用程序域中的服務(wù)。通過(guò)跨越計(jì)算機(jī)邊界(圖2),客戶(hù)端能夠在企業(yè)內(nèi)網(wǎng)或跨越因特網(wǎng)與服務(wù)進(jìn)行交互。
圖1.跨機(jī)器通訊:這里是一個(gè)跨機(jī)器使用WCF通訊的例子。
圖2.使用WCF在同一臺(tái)機(jī)器上通訊。
因?yàn)樗械慕换ナ墙?jīng)由一個(gè)代理實(shí)現(xiàn)的,所以對(duì)于本地和遠(yuǎn)程情況下,WCF保持相同的編程模型,這樣以來(lái)不僅能夠使你進(jìn)行位置切換而不影響客戶(hù)端,而且顯著地簡(jiǎn)化應(yīng)用程序編程模型。大多數(shù)WCF功能被包括到位于System.ServiceModel命名空間的單個(gè)的程序集 System.ServiceModel.dll中。