分布式计算的模式语言读后感
用以支持分布式的技術(shù)的3個層次:
ad hoc網(wǎng)絡(luò)編程,可以參考:http://baike.baidu.com/link?url=eF7jZV0BWQMUd7EfM8F7Ia77Oy0YlO9yY1tSaUy2Gkco0yfpSxwnCAz5Q1FzhChH2DveRsOEguBL5t6Dnm0h6K
結(jié)構(gòu)化通信:通過提供較高層次的通信機制,避免了應(yīng)用代碼與底層IPC機制的直接耦合,從而解決ad hoc網(wǎng)絡(luò)比編程的限制。最有名的結(jié)構(gòu)化通信實例時遠程過程調(diào)用RPC平臺,如sun rpc以及分布式計算環(huán)境DCE、ACE等。
中間件:
? ? 1、 分布式對象計算中間件,用來構(gòu)建分布式系統(tǒng)應(yīng)用的CORBA2.x和java rmi是分布式對象計算中間件技術(shù)的典范。
? ? 2、 組件中間件,EJB和CORBA組件模型CCM是組件中間件技術(shù)的典型代表。
? ? 3、 發(fā)布/訂閱中間件和面向消息的中間件,支持異步通信。如IBM的MQ系統(tǒng)、BEA的message q,及java消息服務(wù)JMS、數(shù)據(jù)發(fā)布服務(wù)DDS等等。
? ? 4、面向服務(wù)架構(gòu)和web服務(wù),如websercie、mule、apache web服務(wù)調(diào)用框架(web service invocation framework,WSIF)等等。
模式語言
? ? 分布式計算的模式語言一共包含114個模式,分為13組問題域。每個問題域描述一個和構(gòu)造分布式系統(tǒng)相關(guān)的特定技術(shù)主題,并包含模式語言中針對該問題的所有模式。
? ?(1) 從混沌到結(jié)構(gòu),該問題域包括了分布式模式語言的基礎(chǔ)模式。它們幫助我們從需求和限制的混沌中得到粗粒度的軟件結(jié)構(gòu),進而產(chǎn)生清晰而獨立的實體部件以構(gòu)成整個要開發(fā)的系統(tǒng)。Domain model,Layer,Modele-View-Controller,Presentation-Abstract-Controll,Microkernel,Reflection,pipes and filters,shared repository,blackboard,domain object.
? (2)分布式基礎(chǔ)設(shè)施,該問題域描述了中間件相關(guān)的模式。中間件是分布式軟件的基礎(chǔ)設(shè)施,幫助我們簡化分布式系統(tǒng)中的應(yīng)用開發(fā)。這里的模式可以幫助開發(fā)人員理解常用中間件產(chǎn)品和平臺所支持的基礎(chǔ)通信范式,以及其軟件架構(gòu)的關(guān)鍵方面。Messaging,Message channel,Message Endpoint,Message Translator,Message Router,Broker,Client Proxy,Requestor,Invoker,Client Request Handler,Server Request Handler,publisher-subscriber.
? (3) 事件分離和分發(fā),不管應(yīng)用使用一個多么負責的通信模型,比如同步請求-響應(yīng),異步消息或者發(fā)布/訂閱傳播機制,分布式計算的核心仍然是處理和響應(yīng)網(wǎng)絡(luò)中接收到的事件。事件驅(qū)動的內(nèi)核扮演著至關(guān)重要的角色,正因為如此,它絕不能成為系統(tǒng)的性能瓶頸。Reactor、Proactor、Acceptor-Connector、Asynchronous Completion Token。
? (4) 接口劃分,接口時組件的"名片",客戶端可以通過它來了解組件的功能和使用協(xié)議。Explicit Interface,Extension Interface,Introspective interface,Dynamic Invocation Interface,Proxy,Business Delegate ,Facade ,Combined Method, Iterator,Enumeration Method和batch method.
? ?(5) 組件劃分,組件是基本實現(xiàn)單元,它為客戶提供定義清晰的服務(wù)。Encapsulated Inplementation、whole part、Composite 、Master-slave、Half-Object plus protocol、Replicated Component group.
? (6)應(yīng)用控制,首先是將應(yīng)用程序的用戶輸入轉(zhuǎn)換成具體的功能服務(wù)請求,然后執(zhí)行這些請求,最后再將結(jié)果轉(zhuǎn)換成對用戶有用的輸出。Page Controller、Front Controller、Application Controller、CommandProcessor、Template View、Transform View、Firewall Proxy、Authorization。
? ?(7) 并發(fā),分布式系統(tǒng)軟件經(jīng)常能從并發(fā)中受益,尤其是那些需要同時處理多個客戶請求的服務(wù)器和服務(wù)器端的應(yīng)用。Half-Sync/half_aysnc、Leader/Followers、Active Object、Monitor Object。
? (8) 同步,同步訪問共享組件、對象和資源,并避免死鎖、競爭和其他并發(fā)問題是構(gòu)建分布式系統(tǒng)最困難的任務(wù)之一。此外,同步會產(chǎn)生很大的開銷,因此設(shè)計應(yīng)用程序時應(yīng)盡量減少或者避免不必要的同步。Guarded Suspension、future、Thread-safe Interface、Double-Checked Locking、Strategized Locking、scope Locking、Thread-specific storage、Copied Value、Immutable Value。
? (9) 對象交互,在獨立程序中,對象間的協(xié)作主要包含相互調(diào)用方法和服務(wù)、傳遞調(diào)用參數(shù)已經(jīng)同步等待被調(diào)用對象返回結(jié)果。Observer、Double Dispatch、Mediator、Memento、Context Object、Data Transfer Object、Command、Message。
?(10) 適配與擴展:會長期存在的分布式系統(tǒng)中組件應(yīng)當是可配置的、自適應(yīng)的和便于改進的。Bridge、Object Adapter、Interceptor、Chain of Responsibility、Interpreter、Visitor、Decorator、Template Method、Strategy、Null Object、Wrapper Facade、Execute-Around Object、Declarative Component Configuration。
?(11) 狀態(tài)行為:在實踐中,開發(fā)人員經(jīng)常會面對使用狀態(tài)機的情形,某些情況下,這樣做會導致實現(xiàn)上不必要的復雜性。Objects For states、Methods For States、Collection for states。
?(12) 資源管理:資源管理對分布式系統(tǒng)的成功至關(guān)重要。Object manager、Container、Component Configuration、lookup、Virtual Proxy、Lifecycle Callback、Task Coordinator、Resource Pool、resource Cache、lazy acquisition、eager acquisition、partial acquisition、activator、evictor、leasing、automated garbage collection、counting handle、abstract factory、Builder、factory method、disposal method。
?(13) 數(shù)據(jù)庫訪問: 許多分布式系統(tǒng)使用數(shù)據(jù)庫來存儲持久化數(shù)據(jù),越來越多的系統(tǒng)正使用面向?qū)ο蟮募夹g(shù)的同時使用關(guān)系數(shù)據(jù)庫模型。Database Access Layer、Data Mapper、Row Data Gateway、Table Data Gateway和active record。
它們之間的關(guān)系如下圖所示:
?
小結(jié):
我們關(guān)于分布式計算的模式語言一共包含114個模式,分為13組問題域,每個問題域描述一個和構(gòu)造分布式系統(tǒng)相關(guān)的特定技術(shù)主題,并包含模式語言中針對該問題的所有模式。
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/4475402.html
總結(jié)
以上是生活随笔為你收集整理的分布式计算的模式语言读后感的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式ActiveMQ集群--转载
- 下一篇: How to Setup Replica