請公平些看待OSGi

          OSGi越來越風(fēng)行了,得到的關(guān)注越來越多,這本來是好事,但聽到的越來越多的聲音都是認(rèn)為OSGi對于B/S、企業(yè)應(yīng)用支持的太不夠,怎么說呢,這些聲音挺好,至少說明發(fā)出這些聲音的人肯定是想過將OSGi應(yīng)用到自己的項目/產(chǎn)品中去,雖然這是好的,但我覺得更多的原因還是很多的人都習(xí)慣的以一種框架的觀點去看OSGi,這對于OSGi而言或多或少有些不公平,為什么這么說呢?
          還得從OSGi的歷史講起,OSGi的建立并不是為了企業(yè)應(yīng)用這種類型,而是嵌入式的應(yīng)用領(lǐng)域,更為準(zhǔn)確的說是為了網(wǎng)絡(luò)設(shè)備的管理,正是這個原因,在OSGi的規(guī)范中并沒有體現(xiàn)出為企業(yè)應(yīng)用的充分考慮,OSGi聯(lián)盟的人在軟件設(shè)計的觀點上和Java企業(yè)應(yīng)用的設(shè)計者觀點非常的不同,就像OSGi聯(lián)盟的主席Peter看Spring and OSGi的設(shè)計,就認(rèn)為過于復(fù)雜了,OSGi的設(shè)計者們強(qiáng)調(diào)設(shè)計的簡單(不是簡陋)、以最小的代碼量去實現(xiàn)、盡量縮小最后應(yīng)用的大小,同時由于它是為了支持部署在網(wǎng)絡(luò)設(shè)備上的軟件的管理,特別的強(qiáng)調(diào)模塊化以及動態(tài)的管理,這也就造就了OSGi在這兩方面具備了充足的優(yōu)勢,而在支持嵌入式領(lǐng)域的應(yīng)用自然也不必說了。
          OSGi在模塊化和動態(tài)管理上的優(yōu)勢被它帶有一點關(guān)系的Eclipse組織注意到了,于是引入到了Eclipse中,隨著Eclipse的引入,OSGi開始得到Java企業(yè)應(yīng)用開發(fā)者的注意,但是直到今年才真正的比較廣泛了,這里面當(dāng)然有各大廠商的原因,這也說明了OSGi確實是得到了各大廠商的認(rèn)可,在JSR 291的投票上google、sun投出的反對票仍然沒有阻礙OSGi進(jìn)軍Java SE領(lǐng)域,這也算是挽回了當(dāng)年JSR 277上OSGi失敗的場面。
          從這些發(fā)展過程中,我們可以看到,OSGi到目前受到Java企業(yè)應(yīng)用界的關(guān)注階段為止,一直以來都尚未涉足企業(yè)應(yīng)用界,就連OSGi的主席Peter都承認(rèn)自己對于Spring只是了解而已,可想而知,那么我們憑什么在現(xiàn)在的這個階段就以企業(yè)應(yīng)用級別的框架去評價OSGi的好壞呢,更不要僅僅以O(shè)SGi現(xiàn)階段對企業(yè)應(yīng)用支持的不夠就斷定OSGi在Java企業(yè)應(yīng)用界一無是處,那是不是很不公平呢?
          當(dāng)然,現(xiàn)在OSGi要進(jìn)入企業(yè)應(yīng)用界,大家以這樣的觀點去看待它沒什么太大的問題,至少大家評價的OSGi的不好也是對OSGi進(jìn)入企業(yè)應(yīng)用的一種促動的建議,只是希望大家不要純粹以一種新的Java企業(yè)應(yīng)用的框架(象Spring等)的觀點去評價它,畢竟那不是OSGi的目標(biāo),OSGi并不希望成為一個新的Java企業(yè)應(yīng)用的框架,在現(xiàn)階段,對于大家來說,也許去學(xué)習(xí)OSGi優(yōu)勢的地方和不同的設(shè)計思想是我們最值得做的,相信大家也不希望等哪天OSGi成為了JDK中的一部分后再去學(xué)習(xí)吧,如果愿意嘗試將OSGi應(yīng)用到你現(xiàn)在的項目/產(chǎn)品中,那就更好了,我相信將以目前Equinox(OSGi R4的實現(xiàn))的表現(xiàn)來說,將你的新的應(yīng)用基于它而搭建不會碰到什么太多的問題,如果你的新的應(yīng)用是基于Equinox而搭建,非常歡迎與我進(jìn)行交流,以后我也會在blog中更多的貼出一些關(guān)于基于Equinox搭建企業(yè)應(yīng)用的實踐的文章(以前考慮到關(guān)注這些東西的人太少,就沒去寫了)。
          OSGi現(xiàn)在在企業(yè)應(yīng)用方面的努力工作大家有目共睹,相信在各大廠商(IBM、Oracle、BEA等)和各大開源組織(Spring、Apache)的支撐下,OSGi對于企業(yè)應(yīng)用的支持會越來越好。

          posted on 2006-09-20 21:14 BlueDavy 閱讀(4207) 評論(22)  編輯  收藏 所屬分類: OSGi、SOA、SCA

          評論

          # re: 請公平些看待OSGi 2006-09-21 08:18 Josh

          期待關(guān)于基于Equinox搭建企業(yè)應(yīng)用的實踐的文章出爐。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 09:27 SimonLei

          嚴(yán)重同意!
          我們公司從去年就采用OSGi做為核心來開發(fā)B/S應(yīng)用,
          并且效果相當(dāng)不錯,在整個的可擴(kuò)展性,靈活性和開發(fā)
          效率方面,都有不少的提升。 :D

          雖然關(guān)注規(guī)范關(guān)注的不多,主要是使用eclipse的OSGi實現(xiàn),
          但是從這方面的使用來看,已經(jīng)是受益匪淺。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 09:33 螞蚱

          基于Equinox搭建企業(yè)應(yīng)用時應(yīng)注意堅持“簡單”的原則,不要脫離“OSGi的設(shè)計者們強(qiáng)調(diào)設(shè)計的簡單”的初衷。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 11:00 BlueDavy

          @SimonLei
          哦?終于又有一個實踐人員,多交流實踐的經(jīng)驗...

          @螞蚱
          對,非常非常同意這句話,而這也是EEG的基本原則之一,相信OSGi的設(shè)計者們會給EE界的設(shè)計人員帶來不同的設(shè)計視角。
            回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 12:40 XiangDF

          本人現(xiàn)在也很關(guān)注這個方面的問題。現(xiàn)在正在研究OSGi的規(guī)范,有人把它翻譯出來了嗎?還有關(guān)于一些術(shù)語的翻譯比如Bundle怎么譯,是束,還是別的什么?  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 14:22 dennis

          Bundle這個詞,我建議還是直接用英文,不翻譯的好.JAVA開發(fā)人員關(guān)注OSGI把他當(dāng)成一個新的如spring,webwork之類框架來看,當(dāng)然會很失望.我在讀opendoc時還是小小激動了一把,模塊化和動態(tài)管理的設(shè)計思想很有趣.現(xiàn)在工作中沒做這方面的開發(fā),一直跟蹤關(guān)注.  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 14:49 BlueDavy

          @XiangDF
          基本上在做翻譯的時候都不會去翻譯象Bundle這種術(shù)語的東西...
          OSGi的規(guī)范確實準(zhǔn)備找些人來翻譯一把,不過目前我覺得還不是很急,建議可以先看Opendoc,等看了后再想怎么樣去翻譯原版的規(guī)范....  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 20:56 XiangDF

          @BlueDavy
          先生的大作已經(jīng)讀過了。
          我現(xiàn)在想作一個C/S結(jié)構(gòu)的應(yīng)用,數(shù)據(jù)持久層使用Hibernate,通信層使用JbossRemoting,你認(rèn)為怎么樣?你認(rèn)為如果在Equinox中使用他們?有現(xiàn)成的類似這兩個項目的Bundle嗎?
          我對先生關(guān)于一站式系統(tǒng)的設(shè)想也很感興趣。感覺現(xiàn)在有人重提Thin Client概念與我們所想的比較相近。不知先生有什么看法?
          感謝你關(guān)于上一個問題的回復(fù),Thanks  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-21 22:36 BlueDavy

          @XiangDF
          ...叫先生太客氣了....
          在Equinox中使用這兩個東西并不會有什么問題,網(wǎng)上目前沒有此方面直接使用的Bundle,要使用Hibernate只需要在你的Bundle中直接加入Hibernate相關(guān)的lib就好了,其他使用的方法和普通的java工程沒什么區(qū)別,JBossRemoting我沒用過,不是非常確定,不過我相信沒什么問題。
          嗯,關(guān)于一站式系統(tǒng),可以多交流,一直很感興趣也很想做,我現(xiàn)在的商業(yè)產(chǎn)品有部分是類似的思想。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-28 11:31 Jerrygod

          研究OSGI,發(fā)現(xiàn)的確從企業(yè)級直接去分析這個事物實在是有些超前。
          首先從OSGI的初衷來看,很明顯不是為了解決橫向問題(事務(wù)、分布、AOP等等都是)而提出的,而企業(yè)級大都關(guān)注與橫向問題;其次,作為基礎(chǔ)性體系的東西,OSGI不應(yīng)該在橫向問題上走太遠(yuǎn),相反與橫向解決方案合作,共同走向企業(yè)級領(lǐng)域才是比較適合的道路,很高興現(xiàn)在正在這條路上發(fā)展了。

          OSGI帶來的東西太美好了,無須去預(yù)測其發(fā)展,享用、適用才是王道。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-28 12:48 guitarpoet

          @BlueDavy

          恰恰相反,Equinox的HttpService的源代碼我看過了。那么簡單的設(shè)計根本就不可能處理大型的應(yīng)用。

          就它目前的狀態(tài)來看,基于Equinox來開發(fā)應(yīng)用,還不如直接去用Rails開發(fā)。

          Java EE的標(biāo)準(zhǔn)在短時間內(nèi)是不可能被替換的,無論是從對現(xiàn)有投資的方面考慮還是從各大公司技術(shù)支持的方面(還有技術(shù)接受程度和技術(shù)人員培訓(xùn)的方面)考慮。

          除非,Java EE應(yīng)用服務(wù)器全部放棄JMX而使用OSGI或者至少有至少兩種以上的成熟的OSGI的應(yīng)用服務(wù)器出現(xiàn)。否則,我還是認(rèn)為與Spring結(jié)合才是OSGI進(jìn)入企業(yè)級應(yīng)用開發(fā)的最好道路。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-28 16:16 BlueDavy

          @guitarpoet
          IBM Websphere全面采用OSGi就是一個鐵證...

          而你所說的什么基于Equinox來開發(fā)應(yīng)用,還不如直接去用Rails開發(fā)的理由具體是什么,至少我公司的商業(yè)產(chǎn)品目前就是基于Equinox的,也沒什么問題呀..
          在B/S結(jié)構(gòu)中,最薄的一層就可以是controller那層,所以我不認(rèn)為采用HttpService會有什么問題..
          現(xiàn)在OSGi要應(yīng)用到企業(yè)應(yīng)用中缺少的不是這些東西,缺少的是在企業(yè)應(yīng)用的橫向面,象事務(wù)等等....

          Java EE的標(biāo)準(zhǔn)短時間內(nèi)是不可能被替換,但OSGi對于JAVA EE的影響是有目共睹的,成為JSR 291就是很明顯的地方,OSGi的目標(biāo)也不是把現(xiàn)在的JAVA EE干掉,成為大雜燴。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-28 17:40 guitarpoet

          @BlueDavy

          controller可以薄,但是薄到用一個Hashtable來注冊Sevlet,太兒戲了吧?整個應(yīng)用連一個基本的Servlet對象緩存池都沒有,怎么實現(xiàn)高可靠性和高可用性?集群支持怎么實現(xiàn)?更不用提復(fù)雜的Session處理了。目前的情況,做一個簡單的客戶端還可以,復(fù)雜的應(yīng)用肯定吃不住。

          我承認(rèn),Equinox的Http項目還是一個新的東西,還會有一條路要走。但是,現(xiàn)在就貿(mào)然使用,肯定是不明智的。至少,如果IBM的WebSphere是全面采用OSGI技術(shù)的話,用WebSphere的Http Bundle可能還會有一些價值。

          我沒說OSGI不好,我說的是就目前的Equinox的Http項目的現(xiàn)狀,根本不適合拿它開發(fā)企業(yè)應(yīng)用。只能適用于比較小的應(yīng)用,或者Demo之類的。

          Ruby確實有慢的問題,但是Rails對服務(wù)端的處理也不是那么草率的。目前為止,Rails是公認(rèn)的進(jìn)行小型Web開發(fā)的最好工具。如果真是開發(fā)需要RCP的小應(yīng)用,不妨試試Rails + WebService + RCP的方式。那樣,開發(fā)效率也是很高的。

          說不定,以后真有可能會出現(xiàn)OSGI Server。這也是一個產(chǎn)品線啊。

          值得繼續(xù)關(guān)注。
            回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-09-28 19:09 BlueDavy

          @guitarpoet
          呵呵,沒錯,你說的這個我同意,OSGi由于制定的目標(biāo)是嵌入式領(lǐng)域,相對于復(fù)雜的企業(yè)應(yīng)用而言確實還有很多的不足,相信EEG的努力以及Spring and OSGi會補(bǔ)充OSGi的這些不足。
          所以我的觀點是現(xiàn)在以企業(yè)應(yīng)用的觀點去評判OSGi是不公的,畢竟它的優(yōu)勢不在這些地方,就象我之前一篇Blog所說的,至少目前學(xué)習(xí)OSGi對于大家是很有幫助的,至于是否選用則要根據(jù)你的項目/產(chǎn)品的重點特性而決定。
          我目前的產(chǎn)品的重點確實不在B/S結(jié)構(gòu)這塊,這塊的壓力較小,所以沒有發(fā)現(xiàn)你所說的集群等的問題,多謝你在這塊的提醒.....
          多交流。  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-11-08 16:08 生與夏花

          寫的非常的不錯,現(xiàn)在正在嘗試如何把原有的平臺移植到OSGI上來,準(zhǔn)備用的RI就是equniox,希望以后能夠多進(jìn)行交流  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-11-08 16:35 生與夏花

          B/S方面,OSGI方面支持的是不太夠,但是EEG,Eclispe的RSP都在做相應(yīng)的工作。
          對于web容器的集成,一般只會存在2種可能性一種是Embedding,還有一種就是Bridge,按照軟件開發(fā)的一貫思想,不能重復(fù)輪子,所以各人覺得還是bridge比較好,Embedding最好也是以現(xiàn)有的容器為基礎(chǔ)做集成.
          如果以Bridge的形式做集成,集群的問題就應(yīng)該解決了,對于企業(yè)集應(yīng)用方面一些現(xiàn)有的成形的WebFrameWork也可以使用.
          比如strust,jsf,springMVC,WebWork等等,我們可以借助于Equniox的擴(kuò)展點的概念加以實現(xiàn),以Struts來說可以通過Equnixo提供的http.registry bundler進(jìn)行擴(kuò)展實現(xiàn),這樣每一個web模塊,我們都可以作為一個模塊來發(fā)布,而他是共用一個web context的基礎(chǔ)之上的,充分體現(xiàn)的OSGI的設(shè)計思想.
          OSGI在企業(yè)級應(yīng)用上是很薄弱的,至少現(xiàn)在我還沒有想到如何和J2EE服務(wù)器進(jìn)行集成,還需要很多人共同的努力,希望我們共同撐起國內(nèi)OSGI應(yīng)用的這片天.
          個人郵箱:hx9111@gmail.com   回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-11-09 12:42 duxu

          我想問一下,我是一個OSGI的初哥。它的組件化設(shè)計思想我覺得非常適用于輕量化web容器。但是我始終沒想明白,如果在web應(yīng)用中使用OSGI,那么資源的路徑該怎么處理?如:圖片、flash、聲音、視頻等等。而且web路徑的問題怎么解決?有高手能指點一下嗎?  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-11-09 15:24 生與夏花

          @duxu
          在web容器中嵌入OSGi,通過equniox的http.bridge bundler可以把你以前的servlet應(yīng)用橋接過來,這樣你就可以使用以前的web開發(fā)框架,還可以通過equniox的擴(kuò)展點進(jìn)行組件化開發(fā),對于web中一些resource的引用你可以設(shè)計一個獨立的bundle進(jìn)行存放,這樣還便于管理和維護(hù),對于有多種theme的web應(yīng)用更是方便多了,隨便stop bundler1 -> install bundler2 -> start bundler2 就可以了,動態(tài)的切換的自己在自行設(shè)計.
          rosource的引用,我記得equnox的http.registry中有一個面向與resource的擴(kuò)展點,可以快速的進(jìn)行資源擴(kuò)展.
          如果想要知道具體怎么在web應(yīng)用中集成OSGi可以看這個地址:
          http://www.infonoia.com/en/content.jsp?d=inf.05.09  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-11-10 17:49 duxu

          @生與夏花
          你給我看得那篇文章要使用Eclipse的RSP項目,這個項目目前還沒發(fā)布可用的程序包。
          對于橋接的方式,有什么參考資料嗎?  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2006-11-10 18:00 BlueDavy

          @duxu
          橋接方式請看:
          http://www.eclipse.org/equinox/server/http_in_container.php  回復(fù)  更多評論   

          # re: 請公平些看待OSGi 2007-05-16 11:14 Ethan

          主要還是人才啊  回復(fù)  更多評論   

          # re: 請公平些看待OSGi[未登錄] 2016-07-20 18:02 Java Fans

          OSGi企業(yè)應(yīng)用的開源開發(fā)平臺JXADF,相當(dāng)不錯,值得推薦,詳細(xì)參見:http://osgia.com  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2016年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 左云县| 广河县| 兰坪| 新昌县| 潜江市| 凌海市| 西乌| 齐河县| 华池县| 曲阳县| 屯留县| 莒南县| 全南县| 红安县| 禹城市| 商洛市| 麻栗坡县| 洱源县| 沾化县| 宁波市| 娄烦县| 紫云| 理塘县| 昆山市| 柞水县| 沅陵县| 乌海市| 建始县| 图木舒克市| 图们市| 临泽县| 余姚市| 彭州市| 集安市| 雅安市| 武定县| 精河县| 彩票| 哈巴河县| 都兰县| 南木林县|