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