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