基于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