OSGi、SOA、SCA
OSGi、SOA以及SCA領域的相關Blog。
摘要: 摘自我那本6月份要上市的,但目前名字還沒完全確定的書,由于書中涵蓋的更多的為構建高性能分布式Java應用所需要的基礎知識,也許改成了《通往高性能分布式Java應用之路》,主要是闡述下為什么大型應用需要SOA,以及eBay的例子,blog全文請見:http://bluedavy.com/?p=30
閱讀全文
摘要: 在QCon SF 2009的SOA分會場上,eBay的架構師講了一個SOA @ eBay的PPT,正好和我的工作有很多的交叉點,于是比較認真的看了下這個PPT,感興趣的同學可以從這里下載:http://qconsf.com/sf2009/file?path=/qcon-sanfran-2009/slides/SastryMalladi_SOAEBayHowIsItAHit.pdf,在這個PPT中可以看到eBay對于SOA的看法以及他們目前的做法,自己也是做這方面工作的,就在這篇blog中介紹下這個PPT以及自己對于SOA的一些看法。
閱讀全文
摘要: 和清華學子做了一次關于OSGi的交流,在此公開下這個PPT,:),這個PPT是我寫的最長的一個OSGi PPT,涵蓋的內容主要是OSGi標準方面的知識以及Equinox使用的一些知識,感興趣的同學可以下載下: http://www.bluedavy.com/opentopic/OSGi20094qh.pptx
閱讀全文
摘要: 這本書的名號有:國內第一本OSGi中文書,全球第二本OSGi技術書,少數的能夠領先于英文技術原創書出版的中文書籍,這些都乃虛名,最重要的是希望這本書能真正的為希望了解、學習或深入掌握OSGi;希望了解、學習如何編寫模塊化、動態化的Java應用的Java技術人員提供一些幫助,那么也就不枉這本書的出版了,很榮幸能參與這本書的編寫,圓了自己兩年前出一本OSGi書的夢,下面放上一些本書的封面的圖片show下。
閱讀全文
摘要: Equinox的設計非常經典,其在擴展方面提供了很多的支持,同樣包括類加載方面的控制,除了通過標準的org.osgi.framework.bootdelegation以及equinox提供的osgi.parentClassLoader這兩個屬性來簡單的控制類加載之外,還可通過實現ClassLoaderDelegateHook來更為靈活的控制類加載。
閱讀全文
摘要: 很不容易,經過兩個多月兩個人的努力,終于完成了《OSGi原理與最佳實踐》一書的草稿,目前正在review過程,預計將在7月底上市,而由于國外的那本《OSGi in action》將出版時間推遲到11月了,《OSGi原理與最佳實踐》這本書也將成為全球第二本OSGi的書籍(很遺憾,德國之前出版了第一本),:),現將本書的目錄公布如下,上市的書也許會稍有改動,但應該會大體一致。
閱讀全文
摘要: 這是Lifecycle Layer中的最大改進,在之前的規范中只是簡單的描述了下框架的啟動和關閉,在制定了這個規范后,以后無論是啟動equinox還是felix,都可采用同樣的方式啟動,詳細的來看看,本文摘自《OSGi原理與最佳實踐》。
閱讀全文
摘要: 本文內容同樣摘自《OSGi原理與最佳實踐》,在之前的blog中也摘選了部分內容分析了Equinox的動態化,在這里再試驗下Felix的動態化,關注點為:“即插即用”、“熱部署”、“即刪即無”,看下Felix在這幾方面的表現和Equinox有什么不同。
閱讀全文
摘要: 對于采用OSGi來做系統的人而言,ClassLoader的問題必然是頭號需要解決的問題,如果又是個需要遠程通訊的OSGi應用的話,那么反序列化的classloader問題幾乎可以肯定是會碰到的,來看看在如今流行的兩種序列化、反序列化協議:java/hessian中如何使用自定義的classloader。
java/hessian并不提供直接的傳入ClassLoader類來改變反序列化時采用的ClassLoader,hessian采用的為使用當前線程的上下文ClassLoader來加載反序列化的類,java則采用堆棧上最近的一個ClassLoader類來加載,可以認為就是調用類所在的ClassLoader來加載,但在OSGi應用中,通常采用以上默認的行為來反序列化加載類是會出問題的,因此需要采用自定義的。
閱讀全文
摘要: 對于想使用Equinox來構建OSGi應用的同學們而言,掌握Equinox是如何加載Bundle中的Class無疑是相當重要的,這樣在碰到各類ClassNotFoundException的時候也就有底了,否則可能出現的ClassNotFoundException會多的讓你非常的頭疼,本文提取自《OSGi原理與最佳實踐》,介紹下equinox是如何來加載Bundle中的class的。
閱讀全文
摘要: OSGi最吸引人的特性除了模塊化之外,就是動態化了,在我之前寫的OSGi實戰以及進階兩篇Opendoc中,都有相關的示例,但不知道大家有沒有注意,在兩篇Opendoc中都未提及到bundle本身的更新,而基本都是以新增服務實現的bundle以及停止服務時限的bundle為例,并且相對而言是個比較簡單的例子,動態化在java界更明確的詞也許是hot deployment,而hot deployment的實現并不容易,同樣,即使你采用OSGi,但也不代表你的應用就具備了hot deployment的能力,在hot deployment上,完美的結果就是當更新完成后,新的執行請求就在新的代碼邏輯上正確的執行,就像沒發生過更新這回事樣,但實際要做到這樣的效果,遠沒這么容易,即使是基于OSGi也同樣如此,No magic & no silver bullet,在本篇blog中我們就來具體的看看。
閱讀全文
摘要: 把自己寫的兩篇opendoc和Book統一放入此blog中提供下載,避免占據我blog的兩個置頂位,:)
閱讀全文
摘要: 在使用OSGi時,有些時候會需要在OSGi容器外獲取OSGi服務,加載OSGi容器加載的class,或者說需要內嵌OSGi容器,本篇blog以一個簡單的例子來說明如何基于equinox實現OSGi容器的內嵌,或者說通過程序來啟動equinox,同時也通過此例子展示下如何在容器外來獲取OSGi服務以及加載OSGi容器里面其他插件的class,同時還會附送一個如何讓OSGi容器里的插件能加載到OSGi容器外的類的方法。
閱讀全文
摘要: 之前的Opendoc中沒有涉及過此部分的內容,maven又是現在非常流行的java的工具,再加上到目前為止搭建OSGi Maven開發和部署的環境還是比較的麻煩,覺得有必要寫篇這樣的blog,:),在這篇blog中來看下如何搭建一個比較好用的OSGi Maven開發和部署環境,看看我在搭建一個這樣的環境中的痛苦歷程。
閱讀全文
摘要: 隨著OSGi近兩年的迅猛發展,尤其是Java企業應用領域廠商對OSGi的認同,大家對于OSGi的新版規范的關注遠遠超過了之前的幾個版本,近來OSGi終于是放出了傳聞已久的R 4.2的Early Draft,其實從Early Draft來看,我覺得完全可以認為不僅僅是一個小版本的升級了,甚至可以認為是R5了,因為R 4.2增強的東西還是非常多的,其中就包括了大家期待已久的RFC119,不過沒看到傳說中的RFC66,有一丁點的失望,不過相信后面的Draft中應該會加上,:),這樣看來,R5更是值得期待了,讓我們先來一起品嘗一下4.2 Early Draft這道大餐。
閱讀全文
摘要: 由于Topic的時間有限,因此此篇PPT只是簡單的對OSGi進行了介紹和演示,而沒有做詳細的OSGi使用的講解,可能讓參與這次Topic的同學們失望了,不過還是在此把PPT公開出來了,如感興趣的話,可以從以下地址下載:
http://www.riawork.org/opentopic/Simple.Introduction.For.OSGi.ppt
閱讀全文
摘要: JavaOne的第二天Sun正式官方宣布在Java 7中將支持OSGi:This will allow developers who create applications that use OSGi bundles will be able to run them unmodified in JDK 7.這消息對于知悉OSGi Vs JSR 277的一系列歷史戰爭的人而言絕對是非常的振奮人心,盡管不是說Java 7直接納用OSGi來實現模塊化這一塊(這個呢,其實如果JDK做的話,確實可以做的更好,至少可以更高效什么的),但就支持這一點也可看出Sun已經看到了OSGi是事實性的模塊化標準,這對于OSGi來說也是里程碑的一天。
閱讀全文
摘要: Java領域中的分布式框架比較的多,分析一個已有的遠程調用框架無論是對于打算采用已有成果還是自己做分布式框架,都是很必要的事情,JBoss Remoting是其中很好很強大的一個框架,在此來對JBoss Remoting進行深入的分析,看看JBoss Remoting是如何基于java.net提供的包去解決這些問題的,本文所分析的JBoss Remoting源碼的版本為2.2.2_SP2,本來以為會是篇不怎么長的文檔,沒想到還沒寫的詳細和深入的時候就已經有三十多頁了,也不好在這里直接貼出來,就把文檔目錄和最后的總結部分貼在這了,感興趣的同學們可以從這個地址下載PDF版本的文檔:http://www.riawork.org/opendoc/JBoss.Remoting.Opendoc.pdf
閱讀全文
摘要: 非常感謝Kane的工作,其實在差不多兩個月前就完成了和OSGi官方聯盟的協議的簽訂,使得OSGi China User Forum成為了繼法國、日本、韓國、西班牙以及瑞典后的第六個官方授權和認可的組織,并且拿到了OSGi聯盟官方提供的空間,其實就是個簡單的wiki了,只是一直沒抽出時間去建設網站,Kane在百忙之中抽出時間把站點的基本頁面進行了搭建,使得這個官方站至少看上去有點內容了,官方站的地址為:http://china.osgiusers.org。
閱讀全文
摘要: OSGi DevCon2008已經閉幕,迫不及待、非常迫不及待的希望能了解更多此次大會的盛況,不過目前相關的新聞報道等還是比較少的,除了osgi.org/blog上有三四篇報道,根據日程找到目前公開的OSGi DevCon 2008中Topic的PPT,共11個,在此根據自己看這些PPT的情況做個簡單的介紹和評價。
閱讀全文
摘要: 期待已久的OSGi DevCon 2008將會在下周(3月17日---3月20日)和EclipseCon 2008共同召開,今年OSGi的Topic比去年更多,也占據了更重要的位置,來看看本次大會即將開講的Topic,暢想暢想,看看哪些Topic將會成為熱題。
本屆Topic仍然和往年一年,分為Long Talks、Tutorials、Short Talks、Panel和Additional OSGi Talks,本屆OSGi DevCon可謂是眾星云集,世界級的OSGi大師們共聚一堂,毫無疑問將給我們這些OSGi Fans們貢獻一場盛宴。
閱讀全文
摘要: 在分布式服務框架中,一個最基礎的問題就是遠程服務是怎么通訊的,在Java領域中有很多可實現遠程通訊的技術,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,這些名詞之間到底是些什么關系呢,它們背后到底是基于什么原理實現的呢,了解這些是實現分布式服務框架的基礎知識,而如果在性能上有高的要求的話,那深入了解這些技術背后的機制就是必須的了,在這篇blog中我們將來一探究竟,拋磚引玉,歡迎大家提供更多的實現遠程通訊的技術和原理的介紹。
閱讀全文
摘要: 在使用Spring的時候,我們習慣于用bean的名稱作為注冊、查找的條件,這也就意味著bean的引用是唯一的了,而不能來查找、注入一系列具備相同功能但不同實現的bean,這種應用的場景其實還是很多的,尤其在擴展的場景中,在這篇blog中以一個應用場景來說明下這種需求,順便也宣傳下OSGi的服務接口+版本+屬性的注冊和查找機制。
閱讀全文
摘要: 在上篇分析完了在V 0.7需要干的活后,開始細化其中的實現細節,由于技術細節和之前想的有點不同,在細化的同時也稍做了調整,系統的架構仍然保持不變,在這篇blog中來看看實現每項任務的技術細節,之后就可以進入編碼實現階段了。
閱讀全文
摘要: 經過上篇分析分布式服務框架的blog后,正式對之前的基于OSGi實現分布式服務框架的系列改名(順便把分布式服務框架改為使用DSF縮寫),因為已經決定基于Spring-DM來實現,為什么呢,而且為什么一定要是Spring-DM,而不直接說Spring呢?
在講完這個原因后,在這篇blog中你還會看到基于Spring-DM后的DSF V0.7是什么樣子,以及要干些什么活來完成V 0.7。
閱讀全文
摘要: 昨天剛分析完分布式服務框架,今天便看到Spring Integration 1.0 M1發布的消息,這也為Spring進軍SOA領域拉開了序幕。
閱讀全文
摘要: 技術是為需求而服務的,分布式服務框架也同樣如此,它不是憑空誕生的,也是因為有這樣的需求才會有分布式服務框架這樣的東西誕生,在這篇blog中來詳細的分析分布式服務框架誕生的原因(其實也是需要用分布式服務框架的應用場景,這里隱含的意思就是并不是什么應用都需要分布式服務框架的)、分布式服務框架需要提供的feature以及實現這些feature可選的技術方案。
閱讀全文
摘要: 在這個篇幅中將來分析下這個分布式服務框架的服務的生命周期的管理的問題,在分布式服務框架中,支持服務的動態部署、卸載、升級是很關鍵的,至于服務的生命周期是否需要做到像OSGi那樣的動態通知,在這個篇幅中會進行分析,并最終形成這個分布式服務框架的生命周期模型以及到目前為止的服務架構模型。
閱讀全文
摘要: 上篇說到,經過分析后決定選用JNDI來實現服務的遠程注冊、查找和路由,在這篇blog中就來詳細分析下基于JNDI怎么和OSGi結合來實現服務的遠程注冊、查找和路由。
閱讀全文
摘要: 在這篇歷程中來完成對于JINI的Spike,目標仍然是判斷基于JINI實現服務的路由、查找需求的滿足度。
JINI是由Sun研究院制定的,其目標就是為了實現分布式的服務,所以在很多地方可以看到它和分布式服務框架是有不少重疊之處的,來先看看它對于需求的滿足度,最后再來分析做個總結。
閱讀全文
摘要: 寫完之前的那篇基于OSGi實現服務框架的分析后,決定動手來實現一個基于OSGi的分布式服務框架,而其feature呢,就會遵照之前寫的服務框架的要素來實現,根據之前的分析,將這個實現過程分為了三個大的步驟來完成:Spike階段、實現階段和測試階段,Spike階段用于完成幾個關鍵問題的技術的研究和選型;實現階段用于完成基于OSGi的分布式服務框架;測試階段用于判斷實現的分布式框架對于應用場景的符合程度、性能的情況。
首先進入Spike階段,在Spike階段需要完成服務注冊、創建以及服務的proxy管理的技術研究和選型,這主要是因為我對這兩部分的技術并不怎么熟悉,對于服務的注冊和查找,可選的技術有兩種:JNDI和JINI;對于服務的proxy的管理,可選的技術應該就是cglib這一種了,不過需要研究具體怎么用,在這篇blog中將介紹對于JNDI的Spike。
閱讀全文
摘要: 根據上一篇服務框架的要素的blog,來分析下基于OSGi實現一個這樣的適合分布式場景的服務框架時需要對目前的OSGi框架做出哪些方面的修改,以及預估一下實現的難度。
根據分析可以看出要基于OSGi實現一個這種適合分布式場景的服務框架還是比較麻煩的,需要重寫的部分是非常的多,以此來看的話,目前OSGi最適合的場景應該還是如下幾種:
1、不需要分布式部署的應用場景;
2、需要分布式部署,但僅僅是分層的分布式部署,例如業務層在一臺機器上,數據層在另外的機器上。
不過基于OSGi實現一個這樣的服務框架也是一件很不錯的事,估計這也是EEG目前正在做的事,希望以后能在自己有空的時候動手做做這個基于OSGi的服務框架。
閱讀全文
摘要: 服務框架,這個名詞已經出現了很多年了,很早以前系統的架構就希望是以基于服務框架的方式來搭建的,turbine、phoenix、avalon等都是朝著實現服務框架的目標而去,如今的SCA,也可以說就是為了提供一個可用的服務框架,服務框架在系統中到底承擔什么角色呢,為什么它會顯得那么重要呢,如果要實現一個服務框架,不太可能從最底層做起,那么我們又需要怎么樣去選擇呢?
服務本身是個挺形象的名詞,在系統設計中我們非常強調輸入和輸出,服務呢,可以說是更形象的去強調了這一點,每個模塊都會對外提供一定的功能,而這些對外提供的功能我們就可以作為服務了,細到模塊內,我們也會發現模塊內各個類其實也是以服務的方式來交互的,在這樣的情況下,服務框架自然就成了整個系統的核心基礎框架,那么服務框架能幫我們來提供哪些功能呢,如果我們要實現一個服務框架,有哪些要素是需要考慮的呢,歡迎大家拍磚,多多交流!
閱讀全文
摘要: 之前發布了一篇Introduction OSGi的PPT,Introduce OSGi PPT主要是用于介紹OSGi,更多的是在講解OSGi的一些基礎概念,OSGi in action PPT則主要是針對有一定OSGi使用經驗的用戶而編寫的,此篇PPT更加專題性質和細致的講解了OSGi如何在實際的項目中進行使用,如何和流行的java框架進行集成,以及在實際的OSGi應用設計和開發時的一些最佳實踐的介紹和講解,對此PPT感興趣的同學可從以下地址下載:
http://www.riawork.org/opentopic/OSGi.in.action.ppt
閱讀全文
摘要: 上次發布OSGi in action的PPT后,得到了flyisland的反饋意見,:),在此也謝謝他,正是從他的意見中看到了之前PPT的一些問題,之前PPT的問題應該是目標聽眾不明確,講的內容多但卻都不詳細,很有可能最后講完了無論是對于OSGi Newer還是OSGi熟悉的人都沒有什么任何的幫助,為了解決這個PPT,決定把PPT分為兩篇來完成,一篇為OSGi Newer編寫的關于OSGi介紹方面的PPT,將名字定為了Introduce OSGi,重點的介紹OSGi的基礎概念和基本的使用方法;而另外一篇則是為較為OSGi的同學們編寫的,名字仍然保持為OSGi in action,會重點和較為詳細的講解OSGi在實際項目的使用,目前先發布Introduce OSGi的PPT,希望能繼續得到大家的反饋意見,感興趣的同學們可以從這下載這篇PPT:
http://www.riawork.org/opentopic/Introduce.OSGi.ppt
閱讀全文
摘要: 這個PPT將會用于最近的一些OSGi活動作為Topic來講講,不過是英文版的,:),一方面是鍛煉自己的英文,另一方面也準備把這PPT再雕磨雕磨,提交到OSGiDevCon 2008的Topic中試試。
感興趣的朋友請從以下地址下載此PPT:
http://www.osgi.org.cn/opentopic/OSGi.in.action.ppt
不過俗話說,PPT嘛,靠的主要是講,但同時也希望得到大家對此PPT的反饋意見,以便我進行進一步的修改,希望在之后的公開的活動中不會把這Topic講砸了,此PPT會不斷的進行修改,我會在此篇blog中公布目前ppt的版本號,大家就可以確認手頭的PPT是否是最新的了,:)。
version info:
1.0 2007-10-21
閱讀全文
摘要: 在歷時兩個多月后,OSGi進階的編寫已完畢,感謝N多朋友一直以來的關注和支持,現將正式版對外發布,下載地址為:
http://www.riawork.org/opendoc/osgiopendoc2.pdf
隨文的代碼的下載地址為:
http://www.riawork.org/opendoc/osgiopendoc2-source.zip
隨文的例子的可運行版本的下載地址為:
http://www.riawork.org/opendoc/osgiopendoc2-dist.zip
隨后將會相繼在Redsaga上發布Redsaga Opendoc版本,以及在InfoQ中國站上發布InfoQ miniBook版本,這兩個版本在精美程度上都會超過我現在發布的版本,到時再給予大家通知,:)
閱讀全文
摘要: OSGi在應用時具備了典型的微核系統的特點,但對于實際項目/產品型的應用而言,這個微核有些過于底層了,為什么這么說呢?
對于實際項目/產品型的應用而言,何謂其微核呢,應該說其腳手架或開發平臺才是它的微核,而并非僅僅是OSGi框架,當然,也可以將自己的腳手架或開發平臺以Fragment-Host的方式綁定到OSGi的System Bundle上去,但這樣的做法無疑有些evil了,TPF誕生的最主要的目的就是形成一個應用級的微核的概念,使得我們在管理實際的項目和產品時,能夠將腳手架和實際的業務應用模塊分離管理,讓腳手架也變成微核,這樣在管理時就可以做到對應用系統的統一管理,而同時保持一個含應用意義的微核(也可以認為是開發平臺)的穩定運行,在具備了TPF的情況下,就可以將應用系統從部署上分為腳手架和應用系統,而在管理上也可以單獨對應用系統進行管理,如啟動應用系統、停止應用系統,同時避免應用開發人員對腳手架無意的修改。
在本篇文檔中將介紹TPF提供的功能、TPF實現的方法以及TPF的下載地址。
閱讀全文
摘要: 本來目前這篇Opendoc還沒有達到發布的條件,不過正逢國慶佳節,希望各位感興趣的同學能夠在國慶期間抽出時間看看這篇Opendoc,而國慶期間我也會對Opendoc進行潤色和內容的充實、完善,國慶后希望能獲取到各位看過預覽版的同學的意見,我會根據各位的意見對Opendoc進行適度的修改,爭取在10月中旬發布正式版。
至于隨Opendoc的代碼等到正式版的時候我再發布,如有需要的同學可以直接mail給我,我可先mail給需要的同學。
另外由于預覽版還有不少需要潤色、完善的地方,請各位收到預覽版的同學不要傳播這個版本,:),多謝!
閱讀全文
摘要: 《OSGi實戰》Opendoc推出已一年有余,該篇Opendoc主要是為了介紹OSGi而編寫的,相對而言知識點較淺,很多朋友在看過那篇Opendoc后也許會對OSGi產生興趣,但未必會在商業的項目/產品中去使用它,為了能夠讓更多的朋友能夠在商業的項目/產品中使用OSGi,根據自己的經驗以及這一年多來OSGi界的發展情況,從8月初開始了《OSGi進階—模式與最佳實踐》Opendoc的編寫,爭取在國慶前推出一個預覽的版本,希望《OSGi實戰》能吸引大家關注OSGi,而《OSGi進階》能推動大家在商業項目/產品中使用OSGi,如對預覽版有興趣,請發郵件聯系我,在完成后的第一時間我將mail給你,謝謝關注!
閱讀全文
摘要: OSGi.org.cn將做為OSGi.org的官方中文網站推出,整個項目預計分為兩期完成。
一期的目標為翻譯OSGi.org的所有內容,至于blog部分則能盡量翻譯,暫定為先翻譯近三個月的blog,一期的計劃為一個月內完成,也就是說在國慶前正式的推出OSGi.org.cn,到時會在國內的幾個大網站上(InfoQ-CN、JavaEye、EclipseWorld、CSDN等)做一定的宣傳和推廣;
二期的目標為翻譯OSGi.org中的所有blog,同時翻譯www2.osgi.org中的所有內容。
在一二期工作完成后,進入OSGi.org.cn的維護期,到時就是跟隨著OSGi.org做更新的翻譯,同時OSGi.org.cn會考慮做一些本地化的blog、新聞、論壇、開源項目等工作,目標是讓OSGi.org.cn做到中國頂尖的OSGi網站,并為推廣OSGi和發展OSGi做出貢獻。
閱讀全文
摘要: 向Peter Kriens問了一些自己比較關心的OSGi進展情況的問題,總結而言:
從Peter Kriens的答復來看,R5和EEG的工作成果生效還得等待較長的時間,好消息是SCA采用OSGi作為基礎架構看來是非常的有希望了,這對于OSGi的推廣是件非常好的事。
閱讀全文
摘要: 在Play OSGi中提及到了Bnd是個非常有用的東西,既然是個好東西,就介紹給大家用,在得到了Peter的授權下,我把這篇使用手冊翻譯成了中文,大家感興趣的話可以到這里看看:http://www.aqute.biz/Code/BndCn,同時也會提供一個PDF的版本供大家下載,PDF版本下載地址為:http://m.tkk7.com/Files/BlueDavy/Bnd.zip。
有了Bnd后,傳統的java工程非常容易打包成標準的OSGi R4的bundle,同時Bnd也為校驗Bundle是否符合OSGi R4規范提供了支持,而且Bnd有命令行、Eclipse插件、Ant Task和Maven插件,拿過來非常的好用,強烈推薦大家用用看。
見文中的例子...
基于Bnd我們非常容易就把一個傳統的java工程打包成了兩個有效的OSGi R4的Bundle,從這可以看出這對于要把傳統的java系統重構為基于OSGi的系統會有很大的幫助,除了打包生成Bundle外,Bnd本身還具備了校驗bundle是否符合OSGi R4規范、把新的文件或jar文件添加到
閱讀全文
摘要: Peter(OSGi主席)在7月3日的一篇blog上展示了一個很有趣的演示,相信可以給公眾很好的展示下使用OSGi是一件很好玩的事,很簡單的快速的基于OSGi搭建出各種各樣不同的系統,我知道也許你會說你們的系統也可以,但你覺得真的能做到和基于OSGi所做出的系統的效果一樣嗎,really?如果可以的話,非常恭喜你,你對模塊化、動態化都有很強很深的認識,如果不可以但又想做到這種效果的話,我覺得不妨和Peter所做的一樣試著Play OSGi。
閱讀全文
摘要: 由于當時匆忙的發布,沒有進行仔細的校對,發布的EventAdmin部分的代碼中缺少了使用DS實現的示例,但同時在其中又提供了OSGI-INF/component.xml,導致了如果大家直接使用該Component.xml切換為使用DS來實現EventHandler的時候會出現運行時事件未通知到EventHandler的現象。
閱讀全文
摘要: 在本屆EclipseCon 2007大會上,OSGi占據了不少的Topic,下面就對本次EclipseCon 2007大會上OSGi相關的主要的一些Topic簡單的介紹下,最后總結下通過本次大會形成的反饋(信息來源于OSGi官方網站blog和EclipseCon 2007官方網站),關于EclipseCon其他方面的精品Topic在后續的blog中也將相繼介紹。
閱讀全文
摘要: Peter在2月23的時候在OSGi的官方網站上貼了這么一篇blog,挺經典,至少讓我學到了一些東西,建議關注OSGi或者關心系統設計中資源管理的人都看看,在這篇blog中我簡單的將peter寫的blog的意思大概寫一下,也不全部翻譯了,另外說一下自己的看法。
如果感興趣的話,請同學們去查看Peter的這兩個帖子:
http://www.osgi.org/blog/2007/02/osgi-extender-model.html
http://www.aqute.biz/Snippets/Extender
這個OSGi Extender Model給了我們什么啟示呢:
1、Declarative方式的使用
Declarative無非是現在一種非常非常流行的軟件設計理念,在這樣的理念中,可以盡量的保證當前組件的簡單,而通過Declarative的方式去增強的描述該組件,其實在spring中最重要的也是這個思想,而在OSGi的DS中也是這么一個思想,聲明式的編程自然讓整個系統的體系變得非常的簡單和靈活,并且大大提升系統組件的可
閱讀全文
摘要: 搭建動態化的系統是作為java開發人員一直就非常追求的目標,一個系統能夠動態化就意味著:
★ 添加新功能時不需要重啟系統;
★ 修改已存在的功能時不需要重啟系統;
★ 刪除一些不需要的功能時不需要重啟系統;
★ 修改系統中的配置時可以不需要重啟系統即刻生效;
★ 系統的業務行為可動態的改變。
也許習慣了傳統java開發方式的人而言,沒有這些動態化也沒什么,但不可否認,這些動態化的特征還是非常吸引人的,尤其是如果能很容易就獲得這些好處,那么自然就不會錯過這些好處了,基于OSGi可以很容易的讓我們獲取到這些好處。
閱讀全文
摘要: 作為一個桌面應用的開發者,向RCP致敬的理由會是RCP提供了豐富的界面控件,使得基于Java開發桌面應用也變得容易了很多,盡管仍然不能和基于VB、Delphi去相比;對于我而言,盡管使用RCP也是為了開發桌面應用,但RCP給我帶來的更多的感覺是在它充分發揮插件化系統的優勢方面,RCP可以視為基于OSGi構建插件化系統的最佳實踐的指導,從RCP的設計中,可以學習到如何讓應用做到模塊化、讓應用做到動態化,甚至還可以學習到象如何自動生成界面這樣的細節設計思想,盡管我自己基于OSGi做應用型的產品也做了一段時間了,但自己仍然一直感覺到在發揮插件化系統的優勢方面還有不小差距,RCP可以看做是基于OSGi做插件化應用系統的最佳實踐,其中的不少設計方法甚至都可以整理成為基于OSGi做插件化應用系統的設計模式,讓我們進入RCP之旅,揭開面紗,一探其本質吧,相信大家在了解了RCP的設計思想,看過其代碼后,不得不對RCP表示崇高的敬意,大師之作,不同凡響。
閱讀全文
摘要: 上午在普元的網上培訓的地方和業界的朋友們進行了OSGi的交流,PPT在我之前的blog中已經提供,大家可以通過以下網址來下載今天演講時的全程錄像(帶聲音),PPT:
http://www.osgi.org.cn/opentopic/OSGiInAction.rar
其中的會議全程錄像就是帶聲音和演示的東西,感興趣的同學們可以下去聽聽、看看,歡迎大家多交流。
這次的演講主要就是一個介紹,講的都比較粗,沒有細致的去講其中的東西。
閱讀全文
摘要: 新年即將來臨,Peter在OSGi的官方blog上對OSGi 06年的發展進行了回顧,同時也就07年OSGi進行了展望,在這篇blog中我也對一年以來OSGi的發展、自己在OSGi方面的工作以及對于明年OSGi的期望也做些闡述。
閱讀全文
摘要: 12月30日下午13:00--15:00我將在普元goCom社區舉行一次OSGi Topic,歡迎感興趣的O粉(OSGi Fans)到時前往交流和討論,由于這是在網上首次進行的公開Topic,鑒于對聽眾群不了解的情況,本次Topic主要仍然是宣傳和推廣OSGi,所以基本上只是OSGi的一些簡介,以下列出了大綱和PPT的下載地址。
閱讀全文
摘要: 之前也寫過關于Service-Oriented Component Model的blog了,Service-Oriented Component Model(以下簡稱SOCM)是OSGi R4中最為重要的改進,SOCM也是切實體現OSGi的動態性的模型,大家在使用SOCM的時候可能會因為受到原有思想的影響而一時無法理解,在這篇blog中將再次的對SOCM進行講解,以便大家能夠更好的理解和進行運用。
閱讀全文
摘要: EclipseCon2007中OSGi主題部分的Long Talks均已提交,雖然尚未確定最終哪些Topic將會入選,我們可以先一睹為快,此次總共提交了16個Topic,讓我們來看看這些Topic:
閱讀全文
摘要: 在之前的一篇blog中我曾經寫到過CM對于application level的configuration的不適用,提到的主要是兩點:
1、無法在外部統一的對Bundle中service所需要的屬性進行管理;
當時基于這個約束,只好在各自的bundle下編寫一個管理當前bundle屬性的服務,當外部需要管理此bundle的屬性時,必須通過這個服務來管理,否則的話改變是不會起到效果的。
2、無法共享屬性的配置。
每個bundle都保存自己獨立的一份屬性配置,這就導致了當出現共享屬性時,在管理端也不得不同時去重復的更新多個bundle。
經過對于Equinox的CM實現代碼的查看,發現我冤枉CM了,現在給它平反,:)
閱讀全文
摘要: EclipseCon 2007中將會有關于OSGi的專題Topic,經過一段時間的Topic征求后,目前公布出來了一些Topic供大家投票,以確定到底哪幾個Topic會在明年的EclipseCon上登場,稍微看了一下,基本上都屬于初級的介紹,沒有什么深入性質的探討,畢竟OSGi在國外目前也只是處于開始流行階段,順便提一下最近OSGi EEG倒是有不少的動作,相信近期會有一些他們活動的結果公告出來。
在這篇blog中將介紹下這些參加海選的Topic....
總體而言,無論這里面哪些Topic會成為EclipseCon 2007的正式Topic,它們的講述必將為OSGi的推廣做出貢獻,支持誰,就趕緊為它投上一票吧,移動、聯通、小靈通用戶均發送至OSGi,哈哈
回到正題,給Topic投票必須是EclipseCon網站的注冊會員,或者你可以直接發郵件給peter,:),具體投票的地址請見:
http://bundles.osgi.org/Conference/Tutorials
閱讀全文
摘要: Peter對于JSR 277是極度的關注,畢竟JSR 277和OSGi在實現的目標上具備了那么多的共同性,從98年JSR 277開始,Peter就希望能加入JSR 277 JCP Group,但是被拒了,JSR 277基本完全是SUN在主導的,經過這么多年了,JSR 277的草稿終于是發布出來了,Peter在對JSR 277做了Review后特意寫了篇Blog做了評價,總結而言,Peter認為JSR 277 just like a toy,JSR 277并沒有吸取OSGi在這8年模塊化方面的教訓和經驗,在模塊的一致性校驗、可選性、分離包機制等等方面都缺少足夠的考慮,原文見:
http://www.osgi.org/blog/2006/10/jsr-277-review.html
閱讀全文
摘要: 關于OSGi、SCA的最新的一些消息。
閱讀全文
摘要: 發了封關于SCA和OSGi的mail給OSGi-dev的郵件列表,收到了Peter的回應,Peter的回信如下:
"What the EEG will do depends on its members ...
I think there is a lot of excitement about SCA and OSGi. I also just
read it and agree that it seems very complementary. But we need people
that can drive the work."
目前還沒收到EEG成員的回應,估計他們可能不在這個maillist里吧......
閱讀全文
摘要: OSGi和SCA到底能有什么關系呢,確實,至少從現有的OSGi規范以及SCA規范分別來看,兩者沒有直接的關聯,由于OSGi規范是對于嵌入式領域的軟件而制定的,其特別注重軟件的動態性的支持,而SCA規范是對于企業應用領域的軟件而制定的,并且是基于SOA的,其特別注重對于企業應用而言的基礎設施的實現,同時又盡量的去屏蔽對于SCA容器使用者而言SOA帶來的技術實現細節的難度;但根據OSGi規范以及SCA規范,同時又能發現兩者有個共同希望解決的問題,那就是規范的模塊化,這是OSGi規范和SCA規范中的一個共同目標。
閱讀全文
摘要: SCA無疑是目前業界最為火熱的詞語之一,粗略的翻閱了一下SCA V0.9的規范,先不論SCA的商業因素,不得不感嘆于SCA確實可以稱為企業應用開發的利器,而SCA的野心也是從目前的規范中可見一斑。
閱讀全文
摘要: OSGi的CM就是Configuration Admin Service,是用于管理Bundle屬性、并在屬性發生變更時通知相應的Service,但在實際的使用中發現OSGi的CM規范缺少對于共享屬性配置管理的支撐。
關于模塊的耦合上只有個小小的想法討論下,就是做為設計師你能否很快的告訴別人搭建你其中的一個模塊的工程需要哪幾個模塊的支撐,或者最好就是運行檢驗你其中的一個模塊的功能需要哪幾個模塊來支撐,當然,這個在基于OSGi的系統更容易來做到,不過這個確實是設計時很關鍵的一個地方,這既反映了系統中模塊的耦合性,更體現了系統的擴展性以及系統的組裝耦合上是否合理。
閱讀全文
摘要: OSGi聯盟的主席Peter做了這么個小東西,原理非常的簡單,在現在傳統的使用ajax的方式多為通過js直接調用Spring中的bean,那么peter做的這個小東西就變成了js直接調用OSGi中的service,基本上沒有什么難度,只是玩了一把ajax的東西,估計是peter以前對這塊接觸的少,peter把他做的這個東西放到他的Nokia E70上跑.....
閱讀全文
摘要: 模塊的可擴展性是模塊設計時需要重點考慮的非功能特性,對于框架而言,擴展性的設計則更加的重要,框架需要通過不斷的擴展來充實其基礎設施,構成真正的應用系統。
模塊的擴展主要有兩種,一種為擴充功能的擴展,另一種為覆蓋性質的擴展,當然,本質上而言是可以把這兩者進行合并的。
在模塊的擴展上Eclipse的擴展點的設計方式無疑是支撐模塊可擴展的經典設計方法,到現在為止仍然是如此,基于Eclipse的擴展點的設計無論是對于擴充功能的擴展還是覆蓋性質的擴展都支持的非常好,這個經典的設計也是RCP得到那么多client side app的原因之一,盡管OSGi中并沒有定義這方面的規范,但做為OSGi R4的RI的Equinox考慮到更好的支撐Bundle的擴展就引入了Eclipse的擴展點的設計,在現在的Equinox中我們仍然可以基于Eclipse的擴展點的方式來支撐模塊的可擴展性。
但是否有別的方法呢?一定需要Eclipse的擴展點的方式嗎?其實個人覺得基于OSGi的Service就已經天然的構成了一種可擴展的設計,為什么這么說呢?
閱讀全文
摘要: 在企業應用中,持久化無疑是其中非常重要的一環,盡管OSGi的規范中也有負責持久數據、屬性的服務規范,但對于企業應用而言那些顯然是不夠的,這里就以目前Java界流行的Hibernate為例來看看如何集成Hibernate到OSGi中,使得我們能夠很簡單在OSGi中使用Hibernate進行持久化。
閱讀全文
摘要: OSGi越來越風行了,得到的關注越來越多,這本來是好事,但聽到的越來越多的聲音都是認為OSGi對于B/S、企業應用支持的太不夠,怎么說呢,這些聲音挺好,至少說明發出這些聲音的人肯定是想過將OSGi應用到自己的項目/產品中去,雖然這是好的,但我覺得更多的原因還是很多的人都習慣的以一種框架的觀點去看OSGi,這對于OSGi而言或多或少有些不公平,為什么這么說呢?
閱讀全文
摘要: 最近一段時間,OSGi這個詞在業界出現的頻率已經越來越高,其受關注的程度也已經在大幅度的增長,當然,這其中不可否認OSGi聯盟、Eclipse、IBM等的推廣,但這主要當然還是得益于OSGi在規范的模塊化以及動態化的管理的領先優勢,但也會發現,很多廠商以及很多人對于OSGi仍然處于觀望階段,這主要還是因為OSGi在企業應用上目前尚無太多案例的原因,但OSGi就真的不適合企業應用了嗎,還是別的原因讓這么多的廠商、這么多的人對OSGi只是處于觀望的階段呢,應該說,主要原因應該是OSGi目前對于企業應用缺少足夠的基礎設施,OSGi聯盟顯然認識到了OSGi在企業應用上的不足,9月11日OSGi聯盟對外正式宣布了EEG(EEG的成員包含了IBM、BEA等各大廠商)的成立;而Spring與OSGi的結合更是很好的推動OSGi進入企業應用。那么,就現在的OSGi規范來看,它離企業應用到底還有多遠呢:
閱讀全文
摘要: 規范的模塊化開發是需要OSGi的重要理由之一,模塊化的開發方式一直就是現在的主流開發方式,但業界卻一直缺乏這樣的標準,當然,如果java本身具備這樣的標準自然就更好了,那么大家就會很自然的以同樣的方式去設計、開發和部署模塊,但目前java暫時還沒有這樣的標準,雖然之前的JSR 277(Java Module System)的目標是制定這樣的標準,但由于該標準制定完后并沒有得到業界和各大廠商的認可,所以基本上沒起到什么作用,而現在JSR 291的認可則更是觸動了它,目前的情況看下去,OSGi成為下一個版本的Java Module System JSR只是時間的問題而已,整個業界能夠采取統一的方式進行模塊的設計、開發是非常重要和有意義的事,這也是OSGi得到IBM等大公司支持的重要原因之一,說了這么多背景性質的話后開始來看看OSGi是如何規范化模塊的開發的:
閱讀全文
摘要: 在OSGi的官方網站的blog上Peter Kriens(OSGi主席)貼了一篇關于Spring and OSGi的blog,呵呵,peter在blog里寫的還真不客氣,直接說以前只是聽說過spring而已,但基本上沒任何了解,不過peter畢竟是高人,稍微看了后便準確的點出了spring的兩個核心:解決依賴和組裝的配置方式以及POJO的動態增強,Peter在blog里提及到在OSGi R5中將考慮如何讓現有系統無需改動移植至OSGi平臺中,這點非常令人興奮,不過R5估計還早,最近OSGi R4.1倒是準備release了,目前還沒得到關于4.1對比4的改進的信息,在blog中,peter也提及他認為目前Spring and OSGi的很多實現過于繁瑣,于是之前他和spring-osgi的幾個人員碰面重新考慮了這塊的設計,這可是非常好的事,OSGi的開發人員的視角和企業應用的開發人員的視角確實會有很大的不同,兩者的碰撞還是能產生不少火花的,通過那次討論,Peter認為OSGi的服務注冊/尋找機制可以很好的和spring的applicationContext機制做結合,他覺得現在這樣的改
閱讀全文
摘要: JSR 291:Dynamic Component Support for JSR291,這個消息雖然有點舊了,不過還是同樣非常的令人振奮,OSGi成功的進入了JAVA SE領域,在Java新版本中必然會越來越多的看到OSGi的影子,JSR 291的final版本將在9月1日發布,其實它的內容基本就是OSGi Core的內容。
OSGi對于Spring產生了重大的影響,這個從Rod Johnson本人的一段話以及之前Equinox中的"Declarative Services Vs Spring"郵件中可以看出很多:
閱讀全文
摘要: 最近有好幾個人都問了我這個問題,問的挺好的,在軟件業界新技術層出不窮,做技術的人每天都要不斷的學習新技術,在學習每樣技術之前,自然是要知道為什么要學習它,說白點,就是得給自己一個理由,對于一個對OSGi完全陌生的人而言,學習OSGi能帶給什么呢,給大家幾個可選的理由:
閱讀全文
摘要: 這個東西其實在以前的OSCAR項目中是有的,而現在處于Apache沙箱中OSGi R4的實現Felix也準備構建這個了,構建OBR其實和構建Maven 2、Ivy這些的Repository沒什么區別,解決的都是方便其他的使用者通過倉庫直接下到所需要的東西(OBR中提供的是Bundle、Maven2、Ivy中是jar),最大的好處在于下載的Bundle或jar會根據其元數據信息去下載其所依賴的其他的Bundle或jar,這就大大方便了使用者了。
閱讀全文
摘要: 正式版的下載地址為:
http://www.bluedavy.com/opendoc/OSGI_Opendoc.rar
壓縮包中包含了OSGi Opendoc的PDF、隨文發布的代碼以及可運行包。
閱讀全文
摘要: 每個系統中都會有需要配置的屬性,而通常這些屬性的配置都會是分散式的管理,而且很多時候都是不支持動態,在實現這些屬性的管理(新增、編輯、刪除、保存等)時總是要不斷的做重復的工作,如果框架中能提供一個這樣的基礎設施那么對于系統的配置屬性管理來說就會比較好了,這樣的話系統中所有的屬性配置就可以采用統一的方式進行配置、獲取、管理和動態的更新了,如果能動態的管理系統配置屬性的話,簡單的動態改變系統行為也就自然的可以實現了。
閱讀全文
摘要: 聽說過OSGI的人基本都知道OSGI最早是為了移動設備、制造業生產線等嵌入式系統而制定的規范,而現在隨著OSGI在桌面式軟件、服務器端應用逐漸的被接受,OSGI組織也決定開始進軍服務器端應用和企業應用領域,OSGI成立的EEG(Enterprise Expert Group)的關注領域主要是企業級應用的配置管理、類級別生命周期管理、分布式部署、國際化以及異構軟件集成,在技術領域的目標是為企業級應用平臺提供包括技術需求、功能規范、數據和元數據以及通訊協議在內的服務平臺。
閱讀全文
摘要: 是否能夠真正做面向接口的開發,和系統所采用的容器或框架具有很大的關系,面向接口的開發最重要的就是解決系統的依賴問題,在這點上目前最成熟的解決方案莫過于IoC,IoC容器而言最成功的莫過于Spring,那么基于OSGI的話是不是會帶來不同的視角呢,來看看這幾個方面的例子:
閱讀全文
摘要: C/S結構的軟件的可維護性一直就認為是較大的問題,當然,在引入了自動升級這樣的小功能就好很多了,這里談談C/S結構軟件的可管理性,意思就是指Server對Client端的管理,在大多數C/S結構的軟件中,并沒有很強的管理性的概念,更多的面都是關注Server的業務處理、數據存儲這些功能,當然,不一定所有的C/S結構軟件都強調Server對Client的管理功能,來說說自己看法中的Server對Client的管理功能吧。
閱讀全文
摘要: 這篇新聞令人振奮,OSGI被越來越多的商業產品認同和采用,在這篇新聞中提到了之前OSGI是被象Eclipse這樣的重量級的開源產品而采用,而現在Apache的Tuscany工程也開始采用,還有之前提及的IBM的重量級的商業產品--WAS V6.1,現在Adobe大名鼎鼎的CS2產品中也開始使用Equinox,同時這篇新聞也提及到了部分這些商用產品之所以要采用OSGI的原因,最后提及到OSGI對JSR 294、JSR 277可能會產生的影響。
閱讀全文
摘要: 代碼參見code.rar,其中的classic目錄放置了基于Equinox的實戰部分的代碼,其中的ds目錄放置了基于ds重構后的代碼,請從這下載:
http://www.riawork.org/opendoc/code.rar
同時還發布了一個可直接運行的環境dist.rar,解壓后直接運行其中的run.bat,就可通過http://localhost:8080/demo/page/login.htm來訪問用戶登錄驗證模塊,請從這下載:
http://www.riawork.org/opendoc/dist.rar
同時在收集到大家的一些意見以及自己對Opendoc的重新瀏覽后,做了少量的改動,都發布到了新的pdf中了,新的PDF仍然是通過以前的這個地址下載:
http://www.riawork.org/opendoc/OSGI_Opendoc_Preview.pdf
閱讀全文
摘要: 這里的Equinox不是Appfuse的那個Equinox,而是Eclipse的Project(www.eclipse.org/equinox),是OSGI R4的RI,具體大家可參考我之前發布的OSGI Opendoc預覽版中對于Equinox的描述和講解,而現在又有一個重量級的產品基于Equinox而構建,那就是WAS V6.1,這也就足以說明在IBM這樣的大廠商心目中對于OSGI的認同。
WAS V6.1之所以要改為基于Equinox而搭建,它認為主要是為了提升WAS的組件化、靈活性、松耦合和簡潔性,具體大家可參見此篇PPT:
http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/advanced/help.jsp?topic=/com.ibm.iea.was_v6/was/6.1/Architecture/WASv61_Componentization/player.html
閱讀全文
摘要: 本篇Opendoc按照學習開源框架的基本流程進行編寫,從體驗OSGI到基于OSGI框架的實戰,到深入OSGI,完成對于OSGI從入門到深入學習的過程,最后對于OSGI的現狀和發展發表些自己的看法和思考,限于筆者的水平以及時間,文內難免有些錯誤,還請大家不吝指正,也希望本文能作為國內OSGI的拋磚之作,引出更多的關于OSGI的Opendoc。
由于個人時間的關系,這篇Opendoc歷經一個半月左右的時間才基本完成,在此先發布預覽版,希望能夠得到感興趣的朋友們的指點,先謝了....
請從這下載:http://www.riawork.org/opendoc/OSGI_Opendoc_Preview.pdf
隨本文的代碼將在隨后發布,請大家關注......
閱讀全文