閱讀目錄
一: 使用者所使用的用戶端和使用者所需要的服務如何互動呢?
一: 使用者所使用的用戶端和使用者所需要的服務如何互動呢?
使用者所使用的用戶端和使用者所需要的服務如何互動呢?其實就是指一個訊息傳遞的流程,我們在這裡就來探討一下,看下面這個Service,如圖一,為了能夠給客戶提供服務的話,這個Service必然要被執行,它被執行的時候必然要放到主機裡面,也就是必然要放到服務的主機裡面,也就是ServiceHost裡面來進行執行的,二,所以這個Service是安插到ServiceHost裡面的,這個Serveice和ServiceHost是在一個主機處理序當中的,大家看圖三多了兩個Endpoint,我們把它之為端點也叫終結點,這個端點的主要作用是用於來提供Service向外發布的介面,如圖四,比如:現在有一個客戶要來訪問這個Service的話,是通過Endpoint來進行訪問的,我們把這張圖比作一個公司,邊界虛框比作公司的大樓,Service比作公司裡面一個一個不同的工作人員來對外提供服務的,Endpoint比作公司的前台主要接待從外部進來的訪問並且把這些訪問提交給公司裡面的工作人員來進行處理,比如:張三是電信公司的拉寬頻,我家掉網了,我來到電信公司,找到前台,讓前台美女聯絡張三,然後張三給我提供修好我家寬頻服務
圖一 圖二 圖三
圖四
大家看圖五齣現了客戶進程,客戶進程裡面出現了ClientApp也就是用戶端的應用程式,用戶端的應用程式有它自己的邏輯來進行相應的工作,在這個客戶的應用程式當中現在有一個Proxy代理,這個Proxy代理實現由客戶進程到主機處理序之間的通訊,也就是說通訊是由Proxy代理來完成的,但是實際上Proxy代理並不直接與主機處理序的Endpoint來進行通訊,直接與主機處理序的Endpoint來進行通訊的是在用戶端Proxy代理裡面的Endpoint來進行通訊的,如圖六,在WCF這種環境中的話訊息的直接通訊是在兩端的Endpoint,當訊息由一端的端點發出,由另外一端的端點來接收到,再把這個訊息提交給Service來進行處理,比如:現在我們客戶想向Service發一個訊息或者想完成一些特定的功能,首先把做這些事情的需求提交給Proxy代理,然後在由Proxy代理進行封裝提交給客戶進程的Endpoint,再有客戶進程的Endpoint發送給主機處理序的Endpoint,然後主機處理序的Endpoint在把訊息提交給Service,由Service這一段進行處理,最後在反方面發送回來,由Proxy代理來開包,最後提交回到客戶的應用程式當中,如圖七,這就是整個一個訊息傳遞的流程
圖五圖六 圖七