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

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

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

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

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

          評(píng)論

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


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

          這不是自斷后路? 呵呵.

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

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

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

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

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

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

          呵呵, 只是開個(gè)玩笑

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

          # 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ù)  更多評(píng)論   

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

          呵呵, 可能是因?yàn)槲疫€不是很了解的原因吧.  回復(fù)  更多評(píng)論   

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

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

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

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

          其一、標(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)。

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

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

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

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

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

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

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

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

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

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

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

          我可以負(fù)責(zé)任的說:在OSGI R4中“沒有象Maven那樣的透明化獲取依賴的構(gòu)件的‘標(biāo)準(zhǔn)’”(并不是說沒有實(shí)現(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ù)確實(shí)是非常具有開創(chuàng)性的,正是這一點(diǎn)才如此吸引我。

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

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

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

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

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

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

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

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

          # 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ù)  更多評(píng)論   

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

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

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

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

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

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

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

          @paul
          同問

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

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

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

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

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

          統(tǒng)計(jì)

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 太保市| 汶川县| 桓仁| 三明市| 阿拉善左旗| 巧家县| 株洲市| 固原市| 开封市| 吴堡县| 长丰县| 江津市| 六枝特区| 环江| 齐齐哈尔市| 万宁市| 阳山县| 凤庆县| 垫江县| 修武县| 峡江县| 龙泉市| 普陀区| 乌什县| 海南省| 如东县| 汾阳市| 禄丰县| 南靖县| 高雄市| 保靖县| 吉林省| 白朗县| 泰安市| 桃园市| 定远县| 揭东县| 永年县| 沙洋县| 娄烦县| 黄冈市|