亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

第5章分布式系統模式 Broker(代理程序)

2019-11-17 02:11:53
字體:
來源:轉載
供稿:網友

第5章分布式系統模式 Broker(代理程序)

許多復雜的軟件系統運行在多個處理器或分布式計算機上。將軟件分布在多臺計算機上的原因有多種,例如:

  • 分布式系統可以利用多個 CPU 或一群低成本計算機的計算能力。
  • 某個軟件可能僅在特定計算機上可用。
  • 出于安全考慮,軟件的各部分可能必須運行在不同的網段上。
  • 一些服務可能是由業務合作伙伴提供的,并且只能通過 Internet 進行訪問。

但是,實現分布式系統是不容易的,因為您必須處理諸如并發性、跨平臺連接和不可靠網絡連接之類的問題。

影響因素

在構建分布式系統時,必須協調下列影響因素:

  • 雖 然分布式系統具有許多優點,但是它們往往也會使軟件系統變得很復雜。運行在同一網絡上的進程或計算機之間存在物理的和邏輯的邊界。要使運行在不同進程或計 算機上的對象跨越這些邊界相互通信,您必須處理諸如通信、編碼和安全之類的問題。如果您將這些實現細節與應用程序代碼混合在一起,則通信基礎結構中的簡單 更改就會導致大量的代碼更改。
  • 在開發完成之后,通常需要分布系統。例如,可能將軟件分布在多臺服務器上以提高處理能力。您不會希望在生命周期中如此晚的階段更改應用程序代碼。
  • 跨進程通信的細節可能是相當乏味的。您必須處理 TCP/ip 套接字、封送和拆收、序列化、超時和許多其他難題。因此,有必要讓一個特殊的工作組致力于處理基礎結構,以便讓應用程序開發人員不必了解遠程通信。
  • 要維護能夠在部署時將組件移動到不同位置這一靈活性,您必須避免對具體組件的位置進行硬編碼。

解決方案

使用 Broker 模式可以隱藏遠程服務調用的實現細節,方法是將這些細節封裝到一個與業務組件自身不同的層 [Buschmann96]。

這個層為客戶端提供一個接口,使客戶端可以像調用任何本地接口一樣調用方法。但是,客戶端接口內的方法會觸發要對遠程對象執行的服務。這對客戶端是透明的, 因為遠程服務對象實現了相同的接口。該模式將啟動遠程服務調用的業務組件當作"客戶端",而將響應遠程服務調用的組件當作"服務器"。

圖 1 顯示沒有進行任何分布的簡單示例的靜態結構??蛻舳酥苯诱{用服務器上的 performFunctionA 方法。僅當服務器對象與客戶端對象駐留在同一臺計算機上時,才能發生這種情況。

圖 1:沒有實現分布的結構

圖 2 顯示實現分布后的靜態結構。

圖 2:實現分布后的結構

ServiceInterface 是一個必需的抽象,對于在服務器端不必公開實現細節的情況下將由服務器提供的服務來說,這樣的抽象可以通過提供有關該服務的和約而使分布成為可能。在實現 分布時,將添加客戶端和服務器代理,以處理通過網絡將方法調用及其參數發送到服務器,然后將響應發回客戶端的所有傳送工作。代理將完成所有數據封送和拆 收、安全控制、傳輸通道配置和任何其他附加工作??蛻舳酥恍枵{用客戶端代理的 performFunctionA 方法,就像它是本地調用一樣,這是因為客戶端代理實際上實現的是 ServerInterface。對客戶端進行的代碼更改將是最低限度的,因此您可以開發整個業務域模型,而不必知道系統是否是分布式的。對遠程服務調用的實現方式的任何更改都將被限制在代理類以內,并且不會對域模型產生任何影響。圖 3 顯示這些組件之間的一種交互方案。

圖 3:實現分布后的行為

服務器查找

Broker 解 決方案所針對的是前面所述的大多數問題。但是,因為客戶端代理直接與服務器代理進行通信,所以客戶端必須能夠在編譯時找到服務器的位置。這意味著,您不能 在運行時將服務器更改或移動到不同位置。要克服這一限制,需要避免公開服務器的確切位置。而應當將新組件(即代理程序組件)部署在一個眾所周知的位置,然 后向客戶端公開該位置。此后,代理程序組件負責為客戶端查找服務器。代理程序組件還會實現一個用于添加和刪除服務器組件的儲存庫,這樣就有可能在運行時添 加、刪除或交換服務器組件。圖 4 顯示包含代理程序組件的靜態結構。

這種類型的功能通常稱為"名稱服務"。查找遠程對象是企業計算中的一項常見要求。因此,許多平臺實現了名稱服務,例如,Microsoft 使用 Active Directory® 目錄服務。

圖 4:具有服務器查找功能的代理程序結構

代 理程序駐留在一個不應該頻繁更改的、眾所周知的位置。已被激活并且準備接收請求的任何服務器都將向代理程序注冊自己,以便下一次客戶端向代理程序請求這種 類型的服務器時,代理程序能夠使用它。這還可能提高系統的性能和可用性,因為它使您可以擁有多個同時運行并服務于多個客戶端的、完全相同的服務器組件。這 種機制有時稱為負載平衡。圖 5 顯示了一個這些組件之間的交互方案示例。

圖 5:具有服務器查找功能的代理程序行為

代理程序作為中介

在 前面的方案中,代理程序僅負責為客戶端查找服務器。這種方案中,客戶端從代理程序獲得服務器的位置,然后在不涉及代理程序的情況下直接與服務器進行通信。 但是,在某些情況下,我們并不希望客戶端與服務器之間進行直接通信。例如,由于安全原因,您可能希望將所有服務器放在位于防火墻后面的公司專用網絡中,并 且只允許代理程序訪問它們。這種情況下,您必須讓代理程序轉發服務器和客戶端這二者之間的所有請求和響應,而不是讓它們直接相互通信。圖 6 顯示將此模型修訂后的靜態結構。

圖 6:用作中介的代理程序的結構

圖 7 顯示用作客戶端和服務器之間的信使的代理程序的交互圖。此示例還說明了客戶端和服務器之間的通信可以是異步的(注意 sendRequest 調用上的開放箭頭)。

也 存在這樣的情況:客戶端必須對同一服務器進行一系列方法調用,才能完成一個持續時間長而且復雜的業務事務。在這樣的情況中,服務器必須在前后客戶端調用之 間保持狀態不變。然后,代理程序必須確??蛻舳嗽诨緯拑人M行的所有服務器調用都會被路由到完全相同的服務器組件。

圖 7:用作中介的代理程序的行為

Broker 模式具有 Layered application 模式的許多優點和缺點。

優點

Broker 具有下列優點:

  • 隔離。通過將所有與通信有關的代碼分離到它自己的層中,從而使其與應用程序隔離。您可以決定在不必更改任何應用程序代碼的情況下以分布方式運行應用程序,或者在一臺計算機上運行全部應用程序。
  • 簡單。將復雜的通信邏輯封裝到單獨的層中,可以使問題變得更簡單。為代理程序編寫代碼的工程師不必關心無法預知的用戶要求和業務邏輯,而應用程序開發人員也不必關心多播協議和 TCP/IP 路由。
  • 靈活。通過將多個函數封裝在一個層中,可以允許您以不同的實現來交換該層。例如,您可以從 DCOM 切換到 .NET Remoting,再切換到標準 Web Service,而不用更改應用程序代碼。

缺點

可惜的是,抽象層可以損害性能?;疽巹t是,擁有的信息越多,就可以優化得越好。使用單獨的代理程序層可能隱藏有關應用程序如何使用較低層的細節,這可能又 會阻止較低層執行特定的優化操作。例如,使用 TCP/IP 時,路由協議不知道正在路由的是什么數據包。因此,很難決定包含視頻流的數據包(例如)應該具有比包含垃圾郵件的數據包更高的路由優先級。

安全考慮事項

包含敏感業務數據的服務器組件通常位于公司的專用網絡中,并受到防火墻的保護。而代理程序位于外圍網絡(也稱為非管制區 (DMZ) 或屏蔽子網)中,外圍網絡是作為公司專用網絡與外部公用網絡之間的中性區域而插入的小型網絡。只允許從外圍網絡訪問服務器組件,而不允許從外部公用網絡訪 問這些組件。這一額外的網絡層阻止了外部用戶直接訪問服務器。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产自产女人91一区在线观看| 精品视频在线观看日韩| 九九九久久国产免费| 国自产精品手机在线观看视频| 中文字幕日韩av电影| 九色91av视频| 亚洲图片在区色| 亚洲小视频在线| 日韩免费中文字幕| 色777狠狠综合秋免鲁丝| 日韩av中文在线| 少妇激情综合网| 97av在线视频免费播放| 国产99在线|中文| 国产精品久久久久久久久粉嫩av| 午夜欧美不卡精品aaaaa| 成人羞羞国产免费| 亚洲在线免费视频| 亚洲激情视频网站| 亚洲一区第一页| 国产精品一区=区| 国产69精品久久久久久| 国产成人在线亚洲欧美| 亚洲性av在线| 欧美大学生性色视频| 正在播放亚洲1区| 欧美日韩另类视频| 欧美在线观看www| 欧美性极品xxxx做受| www.日韩.com| 日韩国产高清污视频在线观看| 91久久久久久久久久久| 精品久久久久久久久久| 欧美中文字幕视频在线观看| 亚洲欧美在线播放| 久久久精品一区二区三区| 国产v综合ⅴ日韩v欧美大片| 久色乳综合思思在线视频| 欧美体内谢she精2性欧美| 亚洲最大的av网站| 日韩美女av在线免费观看| 国产欧美在线播放| 欧美国产第二页| 国产免费久久av| 精品一区精品二区| 最近的2019中文字幕免费一页| 91牛牛免费视频| 中文字幕精品av| 日韩av影院在线观看| 久久精品久久精品亚洲人| 亚洲成人激情在线观看| 欧美日韩国产第一页| 国产精品美腿一区在线看| 日韩女在线观看| 狠狠躁夜夜躁人人爽超碰91| 欧美一级大片在线免费观看| 青青草国产精品一区二区| 亚洲第一男人av| 亚洲精品美女久久| 91精品国产综合久久香蕉922| 国产午夜精品一区理论片飘花| 久久久久久av| 91精品国产91久久久久| 成人美女av在线直播| 伊人伊成久久人综合网小说| 亚洲国产日韩欧美在线99| 亚洲男人天堂久| 青青青国产精品一区二区| 亚洲成人av在线播放| 亚洲电影在线看| 亚洲天堂av综合网| 欧美极品在线播放| 国产精品男人爽免费视频1| 精品国内亚洲在观看18黄| 最好看的2019的中文字幕视频| 欧美多人乱p欧美4p久久| 久久视频这里只有精品| 一区二区欧美亚洲| 国产精品视频大全| 青草成人免费视频| 一区二区三区在线播放欧美| 91香蕉嫩草影院入口| 日韩电影免费观看在线观看| 国语自产精品视频在线看抢先版图片| 成人信息集中地欧美| 欧美激情一区二区三区在线视频观看| 欧美亚洲午夜视频在线观看| 久久久噜噜噜久久中文字免| 国产在线高清精品| 91免费的视频在线播放| 九色精品免费永久在线| 国产一区二区三区在线观看网站| 欧美综合在线观看| 国模精品系列视频| 国产日韩亚洲欧美| 欧美最顶级的aⅴ艳星| 日韩成人中文字幕| 亚洲人成免费电影| 欧美日韩亚洲成人| 国产有码在线一区二区视频| 国产日韩欧美黄色| 97精品国产aⅴ7777| 欧美激情免费在线| 高潮白浆女日韩av免费看| 久久久久日韩精品久久久男男| www.亚洲免费视频| 国产精品嫩草影院一区二区| 国产精品久久久久福利| 久久久久久久久爱| 成人精品aaaa网站| 午夜免费久久久久| 亚洲自拍偷拍色图| 国产精品第一区| 成人激情视频在线观看| 亚洲色图激情小说| 色七七影院综合| 亚洲欧美精品中文字幕在线| 欧美交受高潮1| 国产人妖伪娘一区91| 7777kkkk成人观看| 久久青草福利网站| 欧美性开放视频| 国产一区二区av| 91色精品视频在线| 中文字幕亚洲国产| 欧美极度另类性三渗透| 欧美视频在线看| 成人福利免费观看| 日韩美女免费视频| 秋霞av国产精品一区| 欧美人与性动交a欧美精品| 精品久久久免费| 中文字幕亚洲综合久久| 国产精品免费久久久久影院| 亚洲区在线播放| 成人午夜小视频| 亚洲视频777| 欧美高清无遮挡| 国产成人高潮免费观看精品| 国产精品久久国产精品99gif| 色偷偷av一区二区三区| 538国产精品一区二区在线| 欧洲日本亚洲国产区| 成人av色在线观看| 亚洲女同性videos| 欧美亚洲日本黄色| 国产中文日韩欧美| 国产精品九九九| 日本一本a高清免费不卡| 成人免费视频a| 午夜精品久久久久久久99黑人| 亚洲第一精品自拍| 成人av.网址在线网站| 欧美精品videosex牲欧美| 亚洲伊人久久大香线蕉av| 久久成人一区二区| 亚洲成人久久久久| 91av在线网站| 欧美日韩国产区| 精品久久久久久久久久ntr影视| 欧美激情国产高清| 久久精品国产久精国产一老狼| 亚洲18私人小影院| 国产精品久久久久久久久久|