什么是Avalon? |
Avalon原意為 凱爾特族傳說中的西方樂土島,據說亞瑟王及其部下死后尸體被移往該島。 Avalon是五個子項目的父項目:Framework、Excalibur(亞瑟王的神劍)、LogKit、Phoenix(長生鳥、鳳凰)、和Cornerstone(墻角石)。Avalon把重點放在服務器端編程和讓以服務器應用為中心的項目的設計和維護變得更容易。Avalon可被描述為一個包含了實現的框架。
|
Framework
Avalon Framework是Avalon大傘下的所有其它項目的基礎。它定義了接口、契約(contracts)和Avalon的缺省實現。Framework將大部分工作置于其中,因此也是最為成熟的項目。
框架這個詞在應用程序中的含義很廣泛。重點放在單一行業的框架被稱為垂直市場框架,例如醫藥系統或通信系統。原因是同樣的框架不能勝任其它行業。具有很好通用性,可用于多個行業的框架被稱為水平市場框架。Avalon是一個水平市場框架。您可以使用Avalon的Framework構建垂直市場框架。
用Avalon構建的最有說服力的垂直市場框架的例子是Apache Cocoon出版框架。Apache Cocoon第2版是使用Avalon的Framework、Excalibur和LogKit項目構建的。它利用了Framework中的接口和契約,讓開發者能用更少的時間理解Cocoon是如何工作的。它也有效地利用了Excalibur提供的數據源管理和組件管理代碼,這樣它就不必重新發明輪子了。最后,它使用了LogKit來處理出版框架中所有的日志問題。
Excalibur
Avalon Excalibur是一組服務器端組件,您可以在自己的項目中使用它們。它包括了池(pooling)的實現、數據庫連接管理和其它一些組件管理的實現。
LogKit
Avalon LogKit是一個高速日志記錄工具集,Framework、Excalibur、Cornerstone和Phoenix都用到它。它的模型與JDK 1.4 Logging package采用相同的原理,但與JDK 1.2+兼容。
Phoenix
Avalon Phoenix是服務器核心,它管理服務(Service,實現為服務器端組件,稱作Block)的發布和執行。主要采用了SOP思想[面向服務的編程(Service Oriented Programming ,SOP)的思想是把系統劃分為由系統提供的一些服務]。Phoenix把每一種要提供的設施看作是一項服務,由特定接口和相關契約組成。服務的實現被稱為Block。一個服務器程序是由多種服務組成的,認識這一點很重要。
Cornerstone
Avalon Cornerstone是一組Block或服務,這些Block可以布署在Phoenix環境中。這些Block包括了socket管理和Block之間的任務調度。
Scratchpad
Scratchpad并不是一個真正的正式項目,而是那些還沒準備好放入Excalibur中的組件的一個臨時區域。這些組件品質差別較大,它們的API也不保證會不變,直到它們被提升到Excalibur項目為止。
原理和模式
Avalon整個是基于一些特定設計原理來構建的。最重要的兩個模式是反向控制(Inversion of Control) 和分離考慮(Separation of Concerns)。 反向控制(Inversion of Control,IOC)的概念是指組件總是由外部進行管理的。分離考慮(Separation of Concerns,SOC)模式是指不同的思考方向來看待您的系統。分離考慮模式又導致了Aspect Oriented Programming (AOP) 。研究者發現許多考慮不能在類或方法的粒度上進行處理。這些考慮被稱為aspect。aspect的例子包括管理對象的生命周期、記日志、處理異常和清理釋放資源等。
posted on 2005-11-10 22:39
魚上游 閱讀(1560)
評論(0) 編輯 收藏 所屬分類:
爪哇世界探險