Tapestry-OSGi中引入了兩個(gè)動(dòng)態(tài)服務(wù)的概念,先來看看這2個(gè)概念具體是什么。
1. ExtensionPoint與Extension
這個(gè)概念來自于Eclipse的插件技術(shù),它在Web應(yīng)用中如何體現(xiàn)?舉一個(gè)簡(jiǎn)單的例子:
在為Tomcat-OSGi開發(fā)的osgi console中,使用的是Tapestry-OSGi,頁面中會(huì)有一個(gè)Menu的組件,它就是一個(gè)ExtensionPoint
ExtensionPoint(point="org.extwind.osgi.console.MainMenu")
其他組件只需要注冊(cè)一個(gè)Extension,即可在這個(gè)Menu中顯示出來,這一切將是在運(yùn)行時(shí)實(shí)現(xiàn)的!
2. Service
這個(gè)概念有點(diǎn)像OSGi中的Service Registry,Tapestry組件可以提供Service也可以獲得Service,它在web應(yīng)用匯總?cè)绾误w現(xiàn)?舉個(gè)例子
Tapestry-OSGi的示例控制臺(tái)中,關(guān)于權(quán)限控制,有3個(gè)模型組:用戶組,權(quán)限組,資源組
現(xiàn)在資源組假設(shè)只有一個(gè)頁面:bundles控制頁面,當(dāng)client請(qǐng)求訪問bundles控制頁面時(shí),這個(gè)頁面將查找如果有LoginService存在并且沒有登錄,將跳轉(zhuǎn)到LoginService提供的頁面,當(dāng)client提交登錄表單后,LoginService又會(huì)查詢是否有RoleService存在 ......
這些Service會(huì)有一個(gè)Manager頁面去控制(disable/enable)
這個(gè)例子中如果再加入ExtensionPoint與Extension的概念,它將變得非常有意思。
Tapestry-OSGi的OSGi Console將在完成Service Managment后開始發(fā)布。
posted on 2009-05-24 19:03
Phrancol Yang 閱讀(516)
評(píng)論(0) 編輯 收藏