為什么學(xué)習(xí)OSGi

          最近有好幾個人都問了我這個問題,問的挺好的,在軟件業(yè)界新技術(shù)層出不窮,做技術(shù)的人每天都要不斷的學(xué)習(xí)新技術(shù),在學(xué)習(xí)每樣技術(shù)之前,自然是要知道為什么要學(xué)習(xí)它,說白點,就是得給自己一個理由,對于一個對OSGi完全陌生的人而言,學(xué)習(xí)OSGi能帶給什么呢,給大家?guī)讉€可選的理由:
          1、想提升系統(tǒng)設(shè)計能力
          ????? OSGi提供了系統(tǒng)級別的軟件設(shè)計的指導(dǎo),在傳統(tǒng)的設(shè)計中對于系統(tǒng)大多數(shù)設(shè)計師都是采用分模塊形成業(yè)務(wù)架構(gòu)、進而模塊詳細(xì)設(shè)計的步驟,遵循OSGi也是類似如此,只是它能夠更加規(guī)范的讓設(shè)計師們?nèi)ネ瓿蛇@些過程,而不是象現(xiàn)在百花齊放,每個設(shè)計師都有自己的一套設(shè)計的方式,這就象UML帶來的好處,大家以后在設(shè)計的交流上是不是就更加容易了呢,當(dāng)然,這是從大方向來看的,具體的細(xì)節(jié)方面那是另一回事,基于OSGi的系統(tǒng)基本都采用分Bundle、對Bundle基于Service-Oriented Component Model思想的詳細(xì)設(shè)計,而OSGi對于Bundle各建classloader的機制則是更加容易同時也是強迫的讓設(shè)計師們很容易就去做到模塊解耦的設(shè)計,即使你不用OSGi,那也沒關(guān)系,OSGi的思想難道不值得學(xué)習(xí)嗎,學(xué)習(xí)了OSGi的這些優(yōu)秀的思想你也可以在自己的項目/產(chǎn)品中采取類似的設(shè)計來提升系統(tǒng)的設(shè)計。
          2、想實現(xiàn)動態(tài)的可管理的系統(tǒng)(即插即用)
          ??????N多人都已經(jīng)知道了,基于OSGi的系統(tǒng)具備充足的動態(tài)性,而這其實也是我們在做Java開發(fā)時一直想實現(xiàn)的,現(xiàn)在有這么一個現(xiàn)成的已經(jīng)被證明可實現(xiàn)動態(tài)性的規(guī)范給你使用和學(xué)習(xí),何不使用試試或者學(xué)習(xí)學(xué)習(xí)它的設(shè)計,然后自己做個動態(tài)的系統(tǒng)玩玩呢?
          ????? 其實很多時候我們是因為在用Java時養(yǎng)成的習(xí)慣思維,看OSGi可以讓你稍微突破突破java帶給你的常規(guī)思維習(xí)慣,去做到按版本的動態(tài)的加載類等一些功能,這是很好的。
          3、想建立規(guī)范的開發(fā)方式和培訓(xùn)體系以及形成積累
          ????? 對于公司而言,規(guī)范的開發(fā)方式是一直以來都所期望的,而基于OSGi呢,很容易就可以讓公司做到這點,基于OSGi公司所有的項目都可以按照統(tǒng)一的基礎(chǔ)架構(gòu)、開發(fā)方式、部署方式來完成,自然公司在開發(fā)知識方面的培訓(xùn)體系就能很容易的形成了。
          ??????至于形成積累方面,更是公司都所期望的,就像我上篇blog所說的一樣,基于OSGi的話可以將公司所做過的項目的模塊都放入OBR中,當(dāng)做新項目的時候就只需要去OBR中下相應(yīng)的Bundle就可以搭出個腳手架,甚至是差不多的系統(tǒng)了。

          上面只是簡單的列了三點,OSGi帶給業(yè)界的影響絕對是遠(yuǎn)超過IoC這種純粹解決專一問題的設(shè)計思想的,給自己一個理由,或者是沒事的時候抽空找個OSGi的應(yīng)用試試吧,體驗體驗,也許你就會上OSGi的

          ps:最近有個想法,既然每家公司都要養(yǎng)人做自己的開發(fā)平臺,那么不如各家公司聯(lián)合起來做開發(fā)平臺,進而把開發(fā)平臺開源出來,這樣每家公司就可以大概只要養(yǎng)一兩個人了做開發(fā)平臺了,畢竟大部分的公司都不是依靠賣開發(fā)平臺來賺錢的,而這樣多家公司聯(lián)合做的好處在于可以聚集各家公司的強人,呵呵,其質(zhì)量、進度等必然會高過一家公司去做,當(dāng)然,這種方法中最為重要的就是首先要樹立一致的目標(biāo),畢竟每家公司對于其開發(fā)平臺的功能還是有所輕重區(qū)別的,希望有共同想法的朋友們響應(yīng)下......

          posted on 2006-08-28 23:12 BlueDavy 閱讀(5924) 評論(18)  編輯  收藏 所屬分類: OSGi、SOA、SCA

          評論

          # re: 為什么學(xué)習(xí)OSGi 2006-08-29 08:39 jelly->


          最近有個想法,既然每家公司都要養(yǎng)人做自己的開發(fā)平臺,那么不如各家公司聯(lián)合起來做開發(fā)平臺,進而把開發(fā)平臺開源出來,這樣每家公司就可以大概只要養(yǎng)一兩個人了做開發(fā)平臺了

          這不是自斷后路? 呵呵.

          看了兄臺的osgi的pdf, 感覺osgi正是我長期以來想做的,而又做不到的. 如果公基于osgi來建構(gòu)基礎(chǔ)平臺的話,相信確實是意義深遠(yuǎn).  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-08-29 08:49 布衣郎

          osgi 是不錯,我只是簡單的了解了一下r4的規(guī)范,eclipse就是osgi的一個很好應(yīng)用。尤其是不同的classloader機制,更加解決了模塊之間的耦合性。如果說ioc只是基于類的,那么osgi則是基于整個軟件模塊。  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-08-29 11:37 BlueDavy

          @jelly->
          自斷后路?不明白.......
          各家公司都不是靠賣開發(fā)平臺來賺錢的,業(yè)務(wù)平臺仍然是各自公司自己開發(fā)呀...  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-08-29 13:54 jelly->

          呵呵, 只是開個玩笑

          感覺osgi在web應(yīng)用上還是很不方便. 不知道以后會有什么樣的改善.  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-08-29 14:19 BlueDavy

          OSGi成立的EEG就是為了讓OSGi更加適合應(yīng)用于server side app和企業(yè)應(yīng)用的,而且目前OSGi在web應(yīng)用上也沒什么太不方便的,至少我現(xiàn)在的B/S結(jié)構(gòu)的商業(yè)產(chǎn)品用OSGi就沒碰到什么太多的問題。  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-08-29 16:33 jelly->

          呵呵, 可能是因為我還不是很了解的原因吧.  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-08-30 08:43 dennis

          通過LZ的文檔開始對OSGI初步了解,關(guān)注您的blog  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-01 09:55 guitarpoet

          OSGI的規(guī)范目前在SOA領(lǐng)域還不夠完整,雖然OSGI能夠解決工程依賴和版本控制黑洞,但是由于規(guī)范出發(fā)點不同,至少在兩點上我認(rèn)為還需要加強。

          其一、標(biāo)準(zhǔn)里沒有組件服務(wù)分布式調(diào)用
          其二、標(biāo)準(zhǔn)里面的服務(wù)定義和發(fā)現(xiàn)功能太弱

          所以,至少在目前的標(biāo)準(zhǔn)下,它不可能成為象SCA這種標(biāo)準(zhǔn)的SOA架構(gòu)標(biāo)準(zhǔn)。

          另外還有,它雖然有自己統(tǒng)一部署構(gòu)件格式和相應(yīng)的Repository,但是沒有象Maven那樣的透明化獲取依賴的構(gòu)件的標(biāo)準(zhǔn)。

          說實話,我非常看好OSGI,它以一個非常完美的方式實現(xiàn)了模塊化部署和構(gòu)建的想法,如果能夠在下一個版本里面把上述的缺陷處理掉的話,在SOA的重要性越來越強的背景下,有IBM和Eclipse的支持,它的前景是很令人樂觀的。

          目前來說,上述問題已經(jīng)有人覺察到了,也分別實現(xiàn)了一些解決方案,但是,別忘了,它們都不是標(biāo)準(zhǔn),在標(biāo)準(zhǔn)出臺之前,要充分考慮這方面的投資。

          至于怎么整合進現(xiàn)有的應(yīng)用,我也正在考慮方案,可以討論一下,呵呵。  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-01 14:13 BlueDavy

          @guitarpoet
          為什么要OSGi去解決組件服務(wù)分布式調(diào)用呢?OSGi+SOA不就行了....不過隨著EEG的成立和OSGi對于server side app和企業(yè)應(yīng)用的關(guān)注,這些自然是會解決的,EEG其中的職責(zé)之一就是完成分布式部署的問題。
          標(biāo)準(zhǔn)里面的服務(wù)定義和發(fā)現(xiàn)功能太弱,這個我非常不同意,請問弱在哪里?

          ”沒有象Maven那樣的透明化獲取依賴的構(gòu)件的標(biāo)準(zhǔn)“我更是不同意,詳見OBR那篇blog。

          整合現(xiàn)有應(yīng)用目前來說,確實還是有點麻煩的,但對于新的應(yīng)用來說是毫無問題的,而如果spring and osgi推出的話那就更好辦了...  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-04 08:27 guitarpoet

          你并沒有仔細(xì)的看我的評論。

          在目前的OSGI R4標(biāo)準(zhǔn)里面,我提的幾點問題好像并沒有規(guī)范。

          OSGi + Web Service確實是解決方案,但它不是標(biāo)準(zhǔn)。你也看過SCA的規(guī)范吧?它也使用Web Service,但是它把使用Web Service整合到規(guī)范中去了。規(guī)范本身是可以整合任何技術(shù)的。OSGI不是不支持遠(yuǎn)程Service調(diào)用,但是,說實話,我沒在規(guī)范中看到具體的實現(xiàn)方式。

          我可以負(fù)責(zé)任的說:在OSGI R4中“沒有象Maven那樣的透明化獲取依賴的構(gòu)件的‘標(biāo)準(zhǔn)’”(并不是說沒有實現(xiàn),而是說沒有具體的標(biāo)準(zhǔn))。

          “標(biāo)準(zhǔn)里面的服務(wù)定義和發(fā)現(xiàn)功能太弱”不是我說的,是Eclipse的人說的。所以Eclipse才需要發(fā)明出自己的plugin.xml格式。Equinox也有自己的服務(wù)定義和發(fā)現(xiàn)方式。

          OSGi作為一種技術(shù)確實是非常具有開創(chuàng)性的,正是這一點才如此吸引我。

          但是,作為標(biāo)準(zhǔn),尤其是實現(xiàn)SOA的架構(gòu)的標(biāo)準(zhǔn)的話,尤其是跟SCA比,它還是有缺陷的。

          我為什么要這么比?因為我覺得OSGI在基礎(chǔ)上要比SCA扎實,你不覺得SCA的xml太多了嗎?SCA還是靜態(tài)部署的,而且對于依賴版本控制也束手無策。

          我期待的是,OSGI的下一個版本能夠成為一個比較完整的SOA標(biāo)準(zhǔn),而不僅僅是一種動態(tài)加載的技術(shù),呵呵。

          在OSGI技術(shù)的使用上,我應(yīng)該算是新手。所以,我希望能夠跟你探討在當(dāng)前標(biāo)準(zhǔn)的基礎(chǔ)上,怎么去在具體的工作中去使用它,獲得它的優(yōu)點,減少開發(fā)和維護的難度。呵呵。
            回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-04 14:16 BlueDavy

          @guitarpoet
          沒錯,現(xiàn)在象遠(yuǎn)程等等這方面都不是OSGi R4中的標(biāo)準(zhǔn),但到了R5的時候就難說了,你可以去關(guān)注下現(xiàn)在的EEG,EEG的目標(biāo)就是讓OSGi更好的支持服務(wù)器端應(yīng)用和企業(yè)應(yīng)用。
          至于"標(biāo)準(zhǔn)里面的服務(wù)定義和發(fā)現(xiàn)功能太弱"這個我不知道Eclipse的人什么時候說的,Equinox有自己的服務(wù)定義和發(fā)現(xiàn)方式我更是不知道怎么說,因為在OSGi R4中的DS支持的更好的服務(wù)定義和發(fā)現(xiàn)的方式已經(jīng)得到了認(rèn)可,在R4之前確實這塊比較弱。
          從目前業(yè)界的發(fā)展來說,OSGi在規(guī)范方面必然會進展的更好。
          就像你所說的,去討論期望OSGi將來的標(biāo)準(zhǔn)支持什么沒有太大的意義,對我們來說最重要的確實是如何在現(xiàn)有的基礎(chǔ)尚做應(yīng)用,而這些光討論也是沒用的,要實戰(zhàn)才有效,至少我現(xiàn)在公司的商業(yè)產(chǎn)品基于OSGi做還是挺不錯的。  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-08 09:53 Alex

          感覺不錯,關(guān)注一下  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-09 03:35 dennis

          HI,老大,TSS上一則新聞不知道您注意到?jīng)]

          EasyBeans, the Objectweb EJB3 container takes benefit of OSGi
          This is the first EJB 3.0 Container implementation completely available as standard OSGi bundles.
          地址
          http://www.theserverside.com/news/thread.tss?m=c.reply&thread_id=42120#217550  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2006-09-09 10:04 BlueDavy

          @dennis
          嗯,好東西,呵呵,現(xiàn)在已經(jīng)很多東西都基于OSGi了,看起來就像OSGi是一夜風(fēng)行一樣...  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi[未登錄] 2007-11-22 10:43 paul

          能不能把r4規(guī)范翻譯一下啊  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2008-01-17 19:35 美美

          我:看不懂,無聊,幼稚。
          媽媽:好東西!我要學(xué)習(xí)。
          爸爸:OSGI好棒。  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi 2008-07-31 08:32 linker

          @paul
          同問

          牛人能翻譯一下就好了,面對幾百頁的E文規(guī)范,對于E文超弱的我實在是太挑戰(zhàn)了。。。。  回復(fù)  更多評論   

          # re: 為什么學(xué)習(xí)OSGi[未登錄] 2008-09-25 21:25 lt

          最近比較關(guān)注OSGI,正在思考把現(xiàn)有的幾個系統(tǒng)如何重構(gòu)成基于OSGI框架的,如果是java開發(fā)的,我看OSGI進階中有關(guān)于此的介紹,那如果是C或其它語言開發(fā)的呢?如果想轉(zhuǎn)到OSGI方面,應(yīng)該如何來做呢  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乡宁县| 新乐市| 黑山县| 磐安县| 拉孜县| 本溪市| 锡林浩特市| 安乡县| 长海县| 南投县| 灵川县| 通道| 南木林县| 蒲江县| 阿拉善盟| 镇坪县| 阜康市| 海门市| 香格里拉县| 德钦县| 古蔺县| 耒阳市| 名山县| 新源县| 铁岭县| 高密市| 临澧县| 临沧市| 永城市| 德保县| 丽水市| 鞍山市| 万山特区| 安化县| 哈巴河县| 齐齐哈尔市| 登封市| 团风县| 景谷| 遵义县| 苏尼特左旗|