Tin's Blog

          You are coming a long way, baby~Thinking, feeling, memory...

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 221 評(píng)論 :: 0 Trackbacks

          看了下BlueDavy的OSGi實(shí)戰(zhàn)這篇OpenDoc,很感謝BlueDavy同學(xué)!
          例子舉的是一個(gè)User Login的Case,例子很簡(jiǎn)單,讓我們從中領(lǐng)略了OSGi的風(fēng)情。這個(gè)Doc中的例子都是圍繞Equinox展開(kāi)的,它是Eclipse 3.1以后的核心實(shí)現(xiàn),也就是說(shuō)現(xiàn)在的Eclipse是個(gè)OSGi架構(gòu)。
          從架構(gòu)上來(lái)說(shuō)OSGi和SOA如出一轍,都強(qiáng)調(diào)面向服務(wù),而OSGi似乎對(duì)熱切換和契約管理比較著重,也就是說(shuō)OSGi更現(xiàn)實(shí),它強(qiáng)調(diào)的是一種實(shí)際的合約標(biāo)準(zhǔn)。產(chǎn)生的結(jié)果是差不多的,就是系統(tǒng)模塊之間的高度解藕。
          可以看OSGi的Core Framework,最內(nèi)層是L0:運(yùn)行環(huán)境(就是語(yǔ)言平臺(tái)或者解釋平臺(tái)一類(lèi)的環(huán)境),然后是OSGI的L1:模塊,L2:生命周期管理,L3:服務(wù)注冊(cè)。
          我認(rèn)為這種架構(gòu)也基本上是一個(gè)SOA需要關(guān)注的幾個(gè)問(wèn)題。
          L1是實(shí)現(xiàn)OSGi的基礎(chǔ),在Java下提供了類(lèi)加載機(jī)制,使系統(tǒng)能夠模塊化。個(gè)人感覺(jué)類(lèi)似原來(lái)Eclipse中的微內(nèi)核。
          L2是解決模塊之間依賴(lài)關(guān)系的最基本工作單位,負(fù)責(zé)初始化、停止、更新等操作,這樣模塊能夠活起來(lái),同時(shí)在這些過(guò)程中可以手動(dòng)維護(hù)依賴(lài)關(guān)系,也是模塊協(xié)作的基礎(chǔ)。
          L3則是協(xié)作的合同簽署場(chǎng)所,應(yīng)該是L2的擴(kuò)展,使模塊之間能夠按照契約工作。我覺(jué)得更形象地說(shuō)就是路由器,模塊間的動(dòng)態(tài)依賴(lài)可以很好地通過(guò)它來(lái)解決,讓OSGi可以動(dòng)起來(lái)。
          擁有了這幾層,我想我們完全可以理解為一個(gè)SOA的實(shí)現(xiàn),當(dāng)然更細(xì)化。應(yīng)該是一種新的組合應(yīng)用的方式。
          白嘴說(shuō)肯定沒(méi)有BlueDavy的文章好,大家還是去看看那篇文檔。

          說(shuō)說(shuō)遺憾:
          1、OSGi在B/S架構(gòu)中還不好應(yīng)用。雖然例子是B/S的,可是居然是Servlet模型,里面解釋了目前Equinox項(xiàng)目也在擴(kuò)展應(yīng)用服務(wù)器支持和JSP支持等,可是起碼目前還不成熟。
          2、模塊的粒度很成問(wèn)題。目前OSGi的契約機(jī)制與java interface機(jī)制對(duì)比一下。OSGi不可能完全取代本地的interface式的解藕,當(dāng)然人家也沒(méi)這么說(shuō)。只使我擔(dān)心過(guò)渡設(shè)計(jì)后,過(guò)細(xì)的Bundle肯定會(huì)得不償失,所以需要有人設(shè)計(jì)/計(jì)劃這個(gè)粒度。這個(gè)可能與基于Web services的SOA架構(gòu)面臨類(lèi)似的問(wèn)題,需要好的架構(gòu)師。
          3、文檔不友好么?說(shuō)實(shí)話(huà),很感謝BlueDavy和OSGi觀(guān)察者那些大牛的貢獻(xiàn)。但是感覺(jué)production的樣例工程還是很難搞到(其實(shí)Eclipse plugins的例子滿(mǎn)多哈,可惜沒(méi)啥文檔,需要硬著頭皮看),對(duì)應(yīng)的指導(dǎo)文檔還沒(méi)出現(xiàn)。BlueDavy提供的servlet實(shí)現(xiàn)我們不可能跟上,畢竟簡(jiǎn)單也是一種需求。(那誰(shuí)說(shuō)過(guò)度設(shè)計(jì)比設(shè)計(jì)不足更可怕,那個(gè)我不是唱反調(diào),我希望我們都能找到那個(gè)sweet point,有個(gè)好的參照那最好不過(guò)了)。
          4、由于思想先進(jìn),在某些人看來(lái)是陽(yáng)春白雪。估計(jì)不少人還是埋頭下里巴人。觀(guān)望態(tài)度。

          結(jié)束,又是流水賬,大家拍磚。

          posted on 2006-09-06 11:27 Tin 閱讀(4256) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): Other Project

          評(píng)論

          # re: 《OSGi實(shí)戰(zhàn)》讀后感 2006-09-06 20:18 BlueDavy
          呵呵,仍然是那句話(huà),OSGi對(duì)于Server Side app和企業(yè)應(yīng)用而言提供的基礎(chǔ)Bundle確實(shí)還不足,但這個(gè)是需要使用OSGi的同行們共同努力去充實(shí)的,至少我個(gè)人認(rèn)為OSGi帶來(lái)的好處已經(jīng)可以彌補(bǔ)這方面的不足....
          對(duì)于OSGi在B/S這塊,我不認(rèn)為會(huì)是多大的問(wèn)題,OSGi業(yè)界完全可以提供一個(gè)MVC Framework的Bundle,在我公司的商業(yè)產(chǎn)品中就是自己實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的MVC Framework....
          文檔來(lái)說(shuō)目前確實(shí)還不夠多,就如你所說(shuō)的,缺少production的樣例工程,近期我正考慮公布一個(gè)這樣的project....
          目前對(duì)于OSGi確實(shí)很多人都處于觀(guān)望態(tài)度,不過(guò)大家可以看看IBM、Eclipse、Adobe等等公司的動(dòng)作,再看看OSGi對(duì)JSR的影響,也許再不動(dòng)手就遲了,呵呵,一家之言...  回復(fù)  更多評(píng)論
            

          # re: 《OSGi實(shí)戰(zhàn)》讀后感 2006-09-10 22:34 Tin
          差沙推薦了http://opensource.atlassian.com/projects/spring/secure/attachment/11891/spring_and_osgi.html。還是感覺(jué)目前OSGi的dynamically優(yōu)勢(shì)并不是中小Web應(yīng)用最迫切需要的。超大Web應(yīng)用估計(jì)可以從中獲得好處。  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 彭州市| 澎湖县| 辽源市| 黑龙江省| 广河县| 鸡东县| 黑河市| 台前县| 延吉市| 台州市| 和平区| 米林县| 新建县| 凉城县| 莒南县| 方山县| 鹤峰县| 晋城| 大埔县| 静安区| 绥阳县| 新河县| 奉新县| 福海县| 呼伦贝尔市| 芦溪县| 南澳县| 丹凤县| 沙雅县| 通道| 锡林浩特市| 治多县| 滦南县| 苏尼特右旗| 弋阳县| 金湖县| 汉沽区| 龙川县| 邵武市| 天镇县| 吴旗县|