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

          在這篇歷程中來完成對于JINI的Spike,目標(biāo)仍然是判斷基于JINI實現(xiàn)服務(wù)的路由、查找需求的滿足度。
          JINI是由Sun研究院制定的,其目標(biāo)就是為了實現(xiàn)分布式的服務(wù),所以在很多地方可以看到它和分布式服務(wù)框架是有不少重疊之處的,來先看看它對于需求的滿足度,最后再來分析做個總結(jié)。
          1、怎么實現(xiàn)遠(yuǎn)程的將服務(wù)注冊到服務(wù)中心?
                在jini中暫時沒有找到遠(yuǎn)程注冊服務(wù)到服務(wù)中心的方法。
                jini的服務(wù)需要和服務(wù)中心部署在同一臺機(jī)器上,這個倒是可以通過服務(wù)管理中心直接將sar格式的服務(wù)部署上去,支持服務(wù)的動態(tài)管理,不過這是不符合分布式服務(wù)框架的需求的。
          2、在服務(wù)應(yīng)用端怎么查找服務(wù)中心的服務(wù)?
                在服務(wù)的查找上,Jini采用的方法估計是和JNDI差不多的,不過相對來講要求就比JNDI高一些,因為它需要依賴它自己的serviceContext才能獲取到服務(wù),這點不是很好。
          3、有否現(xiàn)成可用的實現(xiàn)?
                目前Jini的實現(xiàn)有好幾個,最出名的當(dāng)然是sun自己的Jini Starter Kit,但對于實現(xiàn)分布式服務(wù)框架的話,Newton是個更好的參考。
          4、是否支持Cluster?
                由于服務(wù)和服務(wù)中心是在同一臺機(jī)器,因此不存在是不是支持Cluster的問題,大不了部署的時候整個cluster中的所有機(jī)器都部署一次。
          5、可參考的資源有哪些?
                jini可參考的資源主要就是:www.jini.org,通過這里可以找到挺多的jini的資料,比較好的有:
                http://blogs.sun.com/warren/entry/jini_made_easier_writing_a
                http://www.cheiron.org/seven/manual/html/developer/index.html
                http://jan.newmarch.name/java/jini/tutorial/Jini.xml
          從服務(wù)的注冊、查找和路由這三個需求去看,jini能直接滿足的就只有查找了,因為我們需要的僅僅是一個注冊、路由、查找的機(jī)制的框架,而不需要別的附加功能,jini就顯得有點和這個需求不是很貼合了,尤其是jini本身就是個功能并不強(qiáng)的服務(wù)框架,如果采用它的話會導(dǎo)致還需要進(jìn)行改造,剝離它的服務(wù)那塊的機(jī)制或者做兼容,而且jini在使用時對于jini本身包的依賴性太強(qiáng),這對于我們期待的pojo機(jī)制而言就挺麻煩了,當(dāng)然,jini并不是毫無優(yōu)點,如果大家去看看jini實現(xiàn)框架的那個可視化的服務(wù)的監(jiān)控端,那實在是個很不錯的東西,具體了完整的服務(wù)生命周期管理(安裝、卸載、啟動、停止以及目前的運行狀態(tài)等)的功能。
          jndi的簡單性和對于需求的貼合性使得它成為了我們用于實現(xiàn)基于OSGi的分布式服務(wù)框架的選擇。
          在選擇了jndi作為服務(wù)的注冊、查找和路由機(jī)制后,我們需要逐步的演進(jìn)基于OSGi的分布式服務(wù)框架的設(shè)計,在后續(xù)的篇章中我們將停留下spike過程,來分析下目前此分布式服務(wù)框架的狀況。

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

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

          posted on 2008-01-18 19:24 BlueDavy 閱讀(5327) 評論(1)  編輯  收藏 所屬分類: OSGi、SOA、SCA

          評論

          # felix整合openxava框架出現(xiàn)異常,希望大家能幫忙解決!!! 2011-01-13 10:04 小朱


          我用的是openxava框架,在本地測試可以成功 ,但是用osgi的felix就出現(xiàn)異常 。下面是正確方法的測試,可以成功!

          一 , add方法

          @SuppressWarnings("unchecked")
          public boolean add(String filedName,String value){

          Map map = new HashMap();

          map.put(filedName, value);

          boolean flag = false;

          try {
          MapFacade.create("Application",map);

          MapFacade.commit();
          flag = true;


          } catch (Exception e) {
          flag = false;
          }


          return flag;


          }

          二,測試

          public static void main(String[] args) {
          ApplicationProvider ap = new ApplicationProvider();

          System.out.println(ap.add("description","kebi"));--------------------這里進(jìn)行方法調(diào)用可以成功
          }
          -------------------------------------------------------------------------

          -------------------------------------------------------------------------

          經(jīng)過上面的測試可以把數(shù)據(jù)存到數(shù)據(jù)庫中去

          三, 但是我用osgi的felix客戶端調(diào)用就會報異常

          felix客戶端的代碼如下(自己手寫的):

          public class Activator implements BundleActivator { -----------這是felix客戶端的激活器代碼

          private ServiceTracker st;


          public void start(BundleContext context) throws Exception {


          st = new ServiceTracker(context, ApplicationInterface.class.getName(), null) {


          public Object addingService(ServiceReference reference) {


          Object result = super.addingService(reference);


          ApplicationInterface h = (ApplicationInterface) context.getService(reference);


          System.out.println(h.add("description","kaobing"));----------在這里進(jìn)行調(diào)用,后臺就出現(xiàn)異常


          return "ss";

          }

          };

          st.open();
          }

          四,異常如下:

          警告: 在確定默認(rèn) schema (從persistence.xml中讀出)時發(fā)生錯誤. 沒有缺省的schema.
          2011-1-13 0:05:08 org.openxava.annotations.parse.AnnotatedClassParser getManaged
          ClassNames
          警告: Hibernate連接無法工作, 因此 JPA managed classes 直接從classpath中獲取
          javax.persistence.PersistenceException: No Persistence provider for EntityManager named default

          希望大家能提供幫助,謝謝!!!!!!!!!!



          本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/surpassdream/archive/2011/01/13/6133635.aspx  回復(fù)  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

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

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 唐海县| 石首市| 稻城县| 介休市| 岳西县| 南部县| 敖汉旗| 潍坊市| 巴东县| 综艺| 宣武区| 偃师市| 元谋县| 全州县| 玉溪市| 赤壁市| 延长县| 和平县| 西平县| 尉氏县| 辉南县| 和龙市| 安新县| 乡宁县| 兴文县| 长汀县| 巩留县| 禹城市| 乾安县| 崇左市| 玉环县| 沙河市| 乐平市| 甘德县| 丽水市| 汝南县| 唐河县| 和静县| 娱乐| 逊克县| 靖安县|