基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一)

          寫完之前的那篇基于OSGi實現(xiàn)服務(wù)框架的分析后,決定動手來實現(xiàn)一個基于OSGi的分布式服務(wù)框架,而其feature呢,就會遵照之前寫的服務(wù)框架的要素來實現(xiàn),根據(jù)之前的分析,將這個實現(xiàn)過程分為了三個大的步驟來完成:Spike階段、實現(xiàn)階段和測試階段,Spike階段用于完成幾個關(guān)鍵問題的技術(shù)的研究和選型;實現(xiàn)階段用于完成基于OSGi的分布式服務(wù)框架;測試階段用于判斷實現(xiàn)的分布式框架對于應(yīng)用場景的符合程度、性能的情況。
          首先進入Spike階段,在Spike階段需要完成服務(wù)注冊、創(chuàng)建以及服務(wù)的proxy管理的技術(shù)研究和選型,這主要是因為我對這兩部分的技術(shù)并不怎么熟悉,對于服務(wù)的注冊和查找,可選的技術(shù)有兩種:JNDI和JINI;對于服務(wù)的proxy的管理,可選的技術(shù)應(yīng)該就是cglib這一種了,不過需要研究具體怎么用,在這篇blog中將介紹對于JNDI的Spike。
          對于服務(wù)的注冊和查找,首先想到的可用的技術(shù)莫過于JNDI了,JNDI作為java ee中重要的命名和查找的機制,和服務(wù)的注冊、查找是非常吻合的,在做服務(wù)的注冊和查找的技術(shù)的Spike時,主要從這么幾方面去Spike:
          1、怎么實現(xiàn)遠程的將服務(wù)注冊到服務(wù)中心?
                這個對于JNDI來講,非常簡單,在初始化jndi的context后,就可以通過context.bind或context.rebind來實現(xiàn)了。
                對于服務(wù)的遠程注冊來講,在實現(xiàn)時是不注冊服務(wù)的instance到服務(wù)中心的,只是注冊服務(wù)的相關(guān)信息的對象。
          2、在服務(wù)應(yīng)用端怎么查找服務(wù)中心的服務(wù)?
                這個對于JNDI來講,也很簡單,通過context.lookup就可實現(xiàn)了。
                對于服務(wù)的遠程引用和查找來講,在實現(xiàn)時需要將context.lookup這種方式和DS方式融合。
          3、有否現(xiàn)成可用的實現(xiàn)?
                有JBoss的JNP,從各類評價來說,還是不錯的。
          4、是否支持Cluster?
                JNP是支持Cluster。
          5、可參考的資源有哪些?
                主要參考的資源有這兩個網(wǎng)頁:
                http://hankun.blogbus.com/logs/1774694.html
                http://blog.csdn.net/cjp472/archive/2003/10/28/17570.aspx
                關(guān)于JNDI cluster方面的資料:
                http://www.wangchao.net.cn/bbsdetail_30257.html
          從上面幾個方面來看,JNDI基本是滿足服務(wù)的注冊和查找的需求的,當然,在實現(xiàn)的時候還得做一定的改造,不過總體來說,還是不錯的,等Spike完JINI后再來做出選擇,為什么會想到JINI呢,就是因為著名的Newton項目了,Newton項目是基于OSGi+Jini實現(xiàn)的SCA框架,所以是值得參考的,欲知后事如何,請看下篇分解,:)。

          >> 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(二)
          >> 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(三)

          posted on 2008-01-14 01:13 BlueDavy 閱讀(10385) 評論(8)  編輯  收藏 所屬分類: OSGi、SOA、SCA

          評論

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一) 2008-01-14 15:51 岑文初

          看了三篇文章,也受益不少:),不過對于OSGI和SCA以及服務(wù)框架有自己一點想法,這兒寫不下:),回blog寫。不過以后有了你和我交流和學習,對將來完善動態(tài)載入的服務(wù)框架更加有信心了^_^  回復  更多評論   

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一)[未登錄] 2008-01-17 16:44 Young

          我也在考慮如何將osgi引用到B/S結(jié)構(gòu)的應(yīng)用開發(fā)中來。我的想法是將osgi作為一個ejb應(yīng)用放在應(yīng)用服務(wù)器的ejb容器中運行,對外部的服務(wù)使用spring暴露為session ejb,共web容器中的應(yīng)用或遠程客戶端使用。

          這樣的好處是既發(fā)揮了osgi搭建后臺系統(tǒng)的優(yōu)勢,又不必強迫web應(yīng)用的開發(fā)者學習osgi,他們可以繼續(xù)發(fā)揮現(xiàn)有的web應(yīng)用開發(fā)技能。

          大俠意下如何?給點意見吧 :)  回復  更多評論   

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一) 2008-01-17 22:36 BlueDavy

          @Young
          那么外部訪問OSGi的服務(wù)到底是個怎么訪問法呢?
          通過那個暴露為ejb的OSGi的服務(wù)來路由訪問其他的OSGi服務(wù)?  回復  更多評論   

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一)[未登錄] 2008-01-18 15:18 Young

          簡單說是這個思路。
          具體說,一種想法是將ejb在語義上定義為數(shù)據(jù)訪問接口。因為后臺服務(wù)提供的大部分是數(shù)據(jù)訪問類的服務(wù)(或同質(zhì)的服務(wù),比如流程的訪問和提交),所以可以通過數(shù)據(jù)類型和有限的操作(比如增刪改查),窮舉全部的數(shù)據(jù)訪問服務(wù)。

          第二種想法是ejb提供類似osgi的服務(wù)查找功能,外部可以查找和使用特定的服務(wù)。但這樣就同樣需要處理服務(wù)類引用,聲明周期管理等在osgi內(nèi)部使用服務(wù)時碰到的問題,但總的來說,估計不是很難解決。  回復  更多評論   

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一)[未登錄] 2008-01-18 17:08 BlueDavy

          @Young
          按照你說的這種,我覺得沒什么問題,因為你的業(yè)務(wù)層等其實是集中部署的對吧,那和傳統(tǒng)的做法其實就不用有什么差別了,做個Facade的OSGi服務(wù)就OK了。  回復  更多評論   

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一)[未登錄] 2008-01-22 10:33 Young

          @BlueDavy
          多謝指點。你說了我才意識到通過部署到ejb容器中還提供了集中式服務(wù)的功能。  回復  更多評論   

          # re: 基于OSGi實現(xiàn)分布式服務(wù)框架歷程(一) 2008-01-22 11:26 BlueDavy

          @Young
          :),是的,ejb容器本身其實就是個服務(wù)中心,在加上cluster的話它也是個非常好的分布式服務(wù)中心。
          只是在某些需求方面還需要修改才能達到真正的分布式服務(wù)框架的需求,例如服務(wù)的綁定不采用綁定服務(wù)實例的方法,本地服務(wù)和遠程服務(wù)的透明調(diào)用等。
            回復  更多評論   

          # wsdl+bpel+ode的整合 2010-12-17 18:03 小朱


          我想利用 felix 實現(xiàn)的osgi 最后生成bundle的wsdl文件 ,加上bpel文件(也就是工作流) 通過ode 生成cbp文件, 希望大家提供思路  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2008年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁南县| 蓬莱市| 伊金霍洛旗| 宝丰县| 珠海市| 汾阳市| 铅山县| 台前县| 桃源县| 尖扎县| 同仁县| 台中县| 泽普县| 唐海县| 陵水| 麟游县| 茂名市| 济源市| 三河市| 聂拉木县| 南澳县| 深水埗区| 新乡市| 读书| 桐乡市| 佛学| 金乡县| 兴隆县| 峡江县| 吉木萨尔县| 潢川县| 毕节市| 双辽市| 尉氏县| 霞浦县| 德庆县| 高安市| 南乐县| 建瓯市| 衡水市| 岳池县|