﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-BlueDavy之技术Blog-随笔分类-OSGi、SOA、SCA</title><link>http://www.blogjava.net/BlueDavy/category/18356.html</link><description>理论不懂就实践，实践不会就学理论！</description><language>zh-cn</language><lastBuildDate>Tue, 18 May 2010 05:36:03 GMT</lastBuildDate><pubDate>Tue, 18 May 2010 05:36:03 GMT</pubDate><ttl>60</ttl><item><title>大型应用与SOA</title><link>http://www.blogjava.net/BlueDavy/archive/2010/04/16/318503.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Fri, 16 Apr 2010 04:44:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2010/04/16/318503.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/318503.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2010/04/16/318503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/318503.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/318503.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 摘自我那本6月份要上市的，但目前名字还没完全确定的书，由于书中涵盖的更多的为构建高性能分布式Java应用所需要的基础知识，也许改成了《通往高性能分布式Java应用之路》，主要是阐述下为什么大型应用需要SOA，以及eBay的例子，blog全文请见：http://bluedavy.com/?p=30&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2010/04/16/318503.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/318503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2010-04-16 12:44 <a href="http://www.blogjava.net/BlueDavy/archive/2010/04/16/318503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SOA@eBay读后感</title><link>http://www.blogjava.net/BlueDavy/archive/2010/02/23/313701.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 23 Feb 2010 05:15:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2010/02/23/313701.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/313701.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2010/02/23/313701.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/313701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/313701.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在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的一些看法。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2010/02/23/313701.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/313701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2010-02-23 13:15 <a href="http://www.blogjava.net/BlueDavy/archive/2010/02/23/313701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>和清华学子交流的一个OSGi PPT</title><link>http://www.blogjava.net/BlueDavy/archive/2009/09/21/295823.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Mon, 21 Sep 2009 02:53:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/09/21/295823.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/295823.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/09/21/295823.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/295823.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/295823.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 和清华学子做了一次关于OSGi的交流，在此公开下这个PPT，:)，这个PPT是我写的最长的一个OSGi PPT,涵盖的内容主要是OSGi标准方面的知识以及Equinox使用的一些知识，感兴趣的同学可以下载下: http://www.bluedavy.com/opentopic/OSGi20094qh.pptx&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/09/21/295823.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/295823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-09-21 10:53 <a href="http://www.blogjava.net/BlueDavy/archive/2009/09/21/295823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一本OSGi中文书籍将于7月底上市</title><link>http://www.blogjava.net/BlueDavy/archive/2009/07/16/286965.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Thu, 16 Jul 2009 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/07/16/286965.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/286965.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/07/16/286965.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/286965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/286965.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这本书的名号有：国内第一本OSGi中文书，全球第二本OSGi技术书，少数的能够领先于英文技术原创书出版的中文书籍，这些都乃虚名，最重要的是希望这本书能真正的为希望了解、学习或深入掌握OSGi；希望了解、学习如何编写模块化、动态化的Java应用的Java技术人员提供一些帮助，那么也就不枉这本书的出版了，很荣幸能参与这本书的编写，圆了自己两年前出一本OSGi书的梦，下面放上一些本书的封面的图片show下。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/07/16/286965.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/286965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-07-16 13:01 <a href="http://www.blogjava.net/BlueDavy/archive/2009/07/16/286965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现ClassLoaderDelegateHook控制Equinox的类加载</title><link>http://www.blogjava.net/BlueDavy/archive/2009/07/14/286650.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 14 Jul 2009 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/07/14/286650.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/286650.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/07/14/286650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/286650.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/286650.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Equinox的设计非常经典，其在扩展方面提供了很多的支持，同样包括类加载方面的控制，除了通过标准的org.osgi.framework.bootdelegation以及equinox提供的osgi.parentClassLoader这两个属性来简单的控制类加载之外，还可通过实现ClassLoaderDelegateHook来更为灵活的控制类加载。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/07/14/286650.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/286650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-07-14 11:04 <a href="http://www.blogjava.net/BlueDavy/archive/2009/07/14/286650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《OSGi原理与最佳实践》目录预告</title><link>http://www.blogjava.net/BlueDavy/archive/2009/06/09/280940.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 09 Jun 2009 07:13:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/06/09/280940.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/280940.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/06/09/280940.html#Feedback</comments><slash:comments>52</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/280940.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/280940.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 很不容易，经过两个多月两个人的努力，终于完成了《OSGi原理与最佳实践》一书的草稿，目前正在review过程，预计将在7月底上市，而由于国外的那本《OSGi in action》将出版时间推迟到11月了，《OSGi原理与最佳实践》这本书也将成为全球第二本OSGi的书籍（很遗憾，德国之前出版了第一本），:)，现将本书的目录公布如下，上市的书也许会稍有改动，但应该会大体一致。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/06/09/280940.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/280940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-06-09 15:13 <a href="http://www.blogjava.net/BlueDavy/archive/2009/06/09/280940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSGi R4.2 public draft中新增加的Framework launch</title><link>http://www.blogjava.net/BlueDavy/archive/2009/05/31/279243.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Sun, 31 May 2009 09:32:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/05/31/279243.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/279243.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/05/31/279243.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/279243.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/279243.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这是Lifecycle Layer中的最大改进，在之前的规范中只是简单的描述了下框架的启动和关闭，在制定了这个规范后，以后无论是启动equinox还是felix，都可采用同样的方式启动，详细的来看看，本文摘自《OSGi原理与最佳实践》。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/05/31/279243.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/279243.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-05-31 17:32 <a href="http://www.blogjava.net/BlueDavy/archive/2009/05/31/279243.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Felix动态化的试验</title><link>http://www.blogjava.net/BlueDavy/archive/2009/05/25/277913.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Mon, 25 May 2009 14:58:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/05/25/277913.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/277913.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/05/25/277913.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/277913.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/277913.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文内容同样摘自《OSGi原理与最佳实践》，在之前的blog中也摘选了部分内容分析了Equinox的动态化，在这里再试验下Felix的动态化，关注点为：“即插即用”、“热部署”、“即删即无”，看下Felix在这几方面的表现和Equinox有什么不同。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/05/25/277913.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/277913.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-05-25 22:58 <a href="http://www.blogjava.net/BlueDavy/archive/2009/05/25/277913.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hessian/Java反序列化采用自定义的Classloader</title><link>http://www.blogjava.net/BlueDavy/archive/2009/05/21/271931.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Thu, 21 May 2009 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/05/21/271931.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/271931.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/05/21/271931.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/271931.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/271931.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对于采用OSGi来做系统的人而言，ClassLoader的问题必然是头号需要解决的问题，如果又是个需要远程通讯的OSGi应用的话，那么反序列化的classloader问题几乎可以肯定是会碰到的，来看看在如今流行的两种序列化、反序列化协议：java/hessian中如何使用自定义的classloader。<br>java/hessian并不提供直接的传入ClassLoader类来改变反序列化时采用的ClassLoader，hessian采用的为使用当前线程的上下文ClassLoader来加载反序列化的类，java则采用堆栈上最近的一个ClassLoader类来加载，可以认为就是调用类所在的ClassLoader来加载，但在OSGi应用中，通常采用以上默认的行为来反序列化加载类是会出问题的，因此需要采用自定义的。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/05/21/271931.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/271931.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-05-21 13:42 <a href="http://www.blogjava.net/BlueDavy/archive/2009/05/21/271931.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Equinox加载Bundle Class的实现</title><link>http://www.blogjava.net/BlueDavy/archive/2009/05/10/269921.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Sun, 10 May 2009 09:25:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/05/10/269921.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/269921.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/05/10/269921.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/269921.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/269921.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对于想使用Equinox来构建OSGi应用的同学们而言，掌握Equinox是如何加载Bundle中的Class无疑是相当重要的，这样在碰到各类ClassNotFoundException的时候也就有底了，否则可能出现的ClassNotFoundException会多的让你非常的头疼，本文提取自《OSGi原理与最佳实践》，介绍下equinox是如何来加载Bundle中的class的。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/05/10/269921.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/269921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-05-10 17:25 <a href="http://www.blogjava.net/BlueDavy/archive/2009/05/10/269921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Equinox动态化深入分析</title><link>http://www.blogjava.net/BlueDavy/archive/2009/04/29/268227.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Wed, 29 Apr 2009 13:00:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/04/29/268227.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/268227.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/04/29/268227.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/268227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/268227.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: OSGi最吸引人的特性除了模块化之外，就是动态化了，在我之前写的OSGi实战以及进阶两篇Opendoc中，都有相关的示例，但不知道大家有没有注意，在两篇Opendoc中都未提及到bundle本身的更新，而基本都是以新增服务实现的bundle以及停止服务时限的bundle为例，并且相对而言是个比较简单的例子，动态化在java界更明确的词也许是hot deployment，而hot deployment的实现并不容易，同样，即使你采用OSGi，但也不代表你的应用就具备了hot deployment的能力，在hot deployment上，完美的结果就是当更新完成后，新的执行请求就在新的代码逻辑上正确的执行，就像没发生过更新这回事样，但实际要做到这样的效果，远没这么容易，即使是基于OSGi也同样如此，No magic & no silver bullet，在本篇blog中我们就来具体的看看。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/04/29/268227.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/268227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-04-29 21:00 <a href="http://www.blogjava.net/BlueDavy/archive/2009/04/29/268227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSGi Opendoc &amp;  Book</title><link>http://www.blogjava.net/BlueDavy/archive/2009/04/28/267968.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 28 Apr 2009 11:53:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/04/28/267968.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/267968.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/04/28/267968.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/267968.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/267968.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 把自己写的两篇opendoc和Book统一放入此blog中提供下载，避免占据我blog的两个置顶位，:)&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/04/28/267968.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/267968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-04-28 19:53 <a href="http://www.blogjava.net/BlueDavy/archive/2009/04/28/267968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在OSGi容器外和OSGi进行交互</title><link>http://www.blogjava.net/BlueDavy/archive/2009/04/24/267425.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Fri, 24 Apr 2009 13:10:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/04/24/267425.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/267425.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/04/24/267425.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/267425.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/267425.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在使用OSGi时，有些时候会需要在OSGi容器外获取OSGi服务，加载OSGi容器加载的class，或者说需要内嵌OSGi容器，本篇blog以一个简单的例子来说明如何基于equinox实现OSGi容器的内嵌，或者说通过程序来启动equinox，同时也通过此例子展示下如何在容器外来获取OSGi服务以及加载OSGi容器里面其他插件的class，同时还会附送一个如何让OSGi容器里的插件能加载到OSGi容器外的类的方法。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/04/24/267425.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/267425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-04-24 21:10 <a href="http://www.blogjava.net/BlueDavy/archive/2009/04/24/267425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSGi Maven开发/部署环境的搭建历程</title><link>http://www.blogjava.net/BlueDavy/archive/2009/03/05/257966.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Thu, 05 Mar 2009 04:14:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2009/03/05/257966.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/257966.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2009/03/05/257966.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/257966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/257966.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 之前的Opendoc中没有涉及过此部分的内容，maven又是现在非常流行的java的工具，再加上到目前为止搭建OSGi Maven开发和部署的环境还是比较的麻烦，觉得有必要写篇这样的blog，:)，在这篇blog中来看下如何搭建一个比较好用的OSGi Maven开发和部署环境，看看我在搭建一个这样的环境中的痛苦历程。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2009/03/05/257966.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/257966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2009-03-05 12:14 <a href="http://www.blogjava.net/BlueDavy/archive/2009/03/05/257966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSGi R4.2 Early Draft 评述</title><link>http://www.blogjava.net/BlueDavy/archive/2008/09/22/230320.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Sun, 21 Sep 2008 16:53:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/09/22/230320.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/230320.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/09/22/230320.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/230320.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/230320.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 随着OSGi近两年的迅猛发展，尤其是Java企业应用领域厂商对OSGi的认同，大家对于OSGi的新版规范的关注远远超过了之前的几个版本，近来OSGi终于是放出了传闻已久的R 4.2的Early Draft，其实从Early Draft来看，我觉得完全可以认为不仅仅是一个小版本的升级了，甚至可以认为是R5了，因为R 4.2增强的东西还是非常多的，其中就包括了大家期待已久的RFC119，不过没看到传说中的RFC66，有一丁点的失望，不过相信后面的Draft中应该会加上，:)，这样看来，R5更是值得期待了，让我们先来一起品尝一下4.2 Early Draft这道大餐。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/09/22/230320.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/230320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-09-22 00:53 <a href="http://www.blogjava.net/BlueDavy/archive/2008/09/22/230320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网侠大会上所做的OSGi简介的PPT</title><link>http://www.blogjava.net/BlueDavy/archive/2008/05/27/203328.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 27 May 2008 12:49:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/05/27/203328.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/203328.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/05/27/203328.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/203328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/203328.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 由于Topic的时间有限，因此此篇PPT只是简单的对OSGi进行了介绍和演示，而没有做详细的OSGi使用的讲解，可能让参与这次Topic的同学们失望了，不过还是在此把PPT公开出来了，如感兴趣的话，可以从以下地址下载：<br>http://www.riawork.org/opentopic/Simple.Introduction.For.OSGi.ppt&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/05/27/203328.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/203328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-05-27 20:49 <a href="http://www.blogjava.net/BlueDavy/archive/2008/05/27/203328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaOne第二天重大新闻：Java 7 will support OSGi</title><link>http://www.blogjava.net/BlueDavy/archive/2008/05/08/199298.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Thu, 08 May 2008 14:10:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/05/08/199298.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/199298.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/05/08/199298.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/199298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/199298.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 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来说也是里程碑的一天。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/05/08/199298.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/199298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-05-08 22:10 <a href="http://www.blogjava.net/BlueDavy/archive/2008/05/08/199298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分析JBoss Remoting</title><link>http://www.blogjava.net/BlueDavy/archive/2008/05/04/198271.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Sun, 04 May 2008 13:54:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/05/04/198271.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/198271.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/05/04/198271.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/198271.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/198271.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 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&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/05/04/198271.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/198271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-05-04 21:54 <a href="http://www.blogjava.net/BlueDavy/archive/2008/05/04/198271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSGi官方中文站开张了</title><link>http://www.blogjava.net/BlueDavy/archive/2008/04/29/197415.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 29 Apr 2008 15:29:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/04/29/197415.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/197415.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/04/29/197415.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/197415.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/197415.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 非常感谢Kane的工作，其实在差不多两个月前就完成了和OSGi官方联盟的协议的签订，使得OSGi China User Forum成为了继法国、日本、韩国、西班牙以及瑞典后的第六个官方授权和认可的组织，并且拿到了OSGi联盟官方提供的空间，其实就是个简单的wiki了，只是一直没抽出时间去建设网站，Kane在百忙之中抽出时间把站点的基本页面进行了搭建，使得这个官方站至少看上去有点内容了，官方站的地址为：http://china.osgiusers.org。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/04/29/197415.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/197415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-04-29 23:29 <a href="http://www.blogjava.net/BlueDavy/archive/2008/04/29/197415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解读OSGi DevCon2008 Topic</title><link>http://www.blogjava.net/BlueDavy/archive/2008/03/23/187765.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Sun, 23 Mar 2008 15:34:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/03/23/187765.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/187765.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/03/23/187765.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/187765.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/187765.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: OSGi DevCon2008已经闭幕，迫不及待、非常迫不及待的希望能了解更多此次大会的盛况，不过目前相关的新闻报道等还是比较少的，除了osgi.org/blog上有三四篇报道，根据日程找到目前公开的OSGi DevCon 2008中Topic的PPT，共11个，在此根据自己看这些PPT的情况做个简单的介绍和评价。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/03/23/187765.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/187765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-03-23 23:34 <a href="http://www.blogjava.net/BlueDavy/archive/2008/03/23/187765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>畅想OSGi DevCon2008</title><link>http://www.blogjava.net/BlueDavy/archive/2008/03/13/186144.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Thu, 13 Mar 2008 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/03/13/186144.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/186144.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/03/13/186144.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/186144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/186144.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 期待已久的OSGi DevCon 2008将会在下周（3月17日---3月20日）和EclipseCon 2008共同召开，今年OSGi的Topic比去年更多，也占据了更重要的位置，来看看本次大会即将开讲的Topic，畅想畅想，看看哪些Topic将会成为热题。<br>本届Topic仍然和往年一年，分为Long Talks、Tutorials、Short Talks、Panel和Additional OSGi Talks，本届OSGi DevCon可谓是众星云集，世界级的OSGi大师们共聚一堂，毫无疑问将给我们这些OSGi Fans们贡献一场盛宴。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/03/13/186144.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/186144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-03-13 21:18 <a href="http://www.blogjava.net/BlueDavy/archive/2008/03/13/186144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java远程通讯可选技术及原理</title><link>http://www.blogjava.net/BlueDavy/archive/2008/03/04/182077.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 04 Mar 2008 14:54:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/03/04/182077.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/182077.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/03/04/182077.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/182077.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/182077.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在分布式服务框架中，一个最基础的问题就是远程服务是怎么通讯的，在Java领域中有很多可实现远程通讯的技术，例如：RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等，这些名词之间到底是些什么关系呢，它们背后到底是基于什么原理实现的呢，了解这些是实现分布式服务框架的基础知识，而如果在性能上有高的要求的话，那深入了解这些技术背后的机制就是必须的了，在这篇blog中我们将来一探究竟，抛砖引玉，欢迎大家提供更多的实现远程通讯的技术和原理的介绍。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/03/04/182077.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/182077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-03-04 22:54 <a href="http://www.blogjava.net/BlueDavy/archive/2008/03/04/182077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>服务接口+版本+属性注册/查找机制</title><link>http://www.blogjava.net/BlueDavy/archive/2008/02/13/179185.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Wed, 13 Feb 2008 10:00:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/02/13/179185.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/179185.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/02/13/179185.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/179185.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/179185.html</trackback:ping><description><![CDATA[<p>在使用Spring的时候，我们习惯于用bean的名称作为注册、查找的条件，这也就意味着bean的引用是唯一的了，而不能来查找、注入一系列具备相同功能但不同实现的bean，这种应用的场景其实还是很多的，尤其在扩展的场景中，在这篇blog中以一个应用场景来说明下这种需求，顺便也宣传下OSGi的服务接口+版本+属性的注册和查找机制。<br />
以将Spring bean发布为DSF服务的bean来讲，这个bean需要做到根据发布DSF服务的方式，调用相应的具体发布DSF服务的实现bean，同时要做到的自然是在以后增加了新的发布方式后，不需要修改这个bean的代码。<br />
要实现这个需求，首先想到的是这样的解决方案：<br />
1、在这个bean中直接注入所有的发布DSF服务实现的bean，在调用的时候可以根据规则寻找到相应的bean，这个在Spring中能够实现的方式也许是这样：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean id="DSFServiceExporterFactory" class="将Spring bean发布为DSF服务的bean"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="exporterClassMap"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;entry key="jndi"&gt;&lt;ref bean="以JNDI方式发布DSF服务端的bean"&gt;&lt;/entry&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;entry key="webservice"&gt;&lt;ref bean="以Webservice方式发布DSF服务端的bean"&gt;&lt;/entry&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/map&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bean&gt;</p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这是一种实现方式了，这样当以后增加了新的发布方式后，通过增加bean的定义以及修改这里map里面的东西就可以了。<br />
2、第二种实现方法就很常见了，就是写个properties文件，配置各种发布方式具体对应的实现类。<br />
但这两种方法都不够的优雅，它们都有个共同的特点，就是需要去维护一个共同的配置的地方，想象中最好的解决方法是类似这样的配置：<br />
&lt;bean id="DSFServiceExporterFactory" class="将Spring bean发布为DSF服务的bean"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="exporterClasses"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="cn.bluedavy.dsf.exporter.*"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&lt;/bean&gt;<br />
这样就把所有的cn.bluedavy.dsf.exporter.开头的bean都注入到exporterClasses里了，当然，在根据具体的协议查找实现类时，又得提供一种支持方法了，好，不再去自己瞎琢磨了，来看看如果是OSGi的服务模型的话，会怎么样去实现这样的东西：<br />
在OSGi中每个对外提供的service都以接口来定义，在上面的场景中，很明显，自然会出现的一个现象就是如果多个服务实现同样的接口的话怎么去找到自己要的那个服务呢，OSGi中多数采用的方法是为这个服务加上一个属性标识，在查找服务时就可以通过接口，再加上属性标识来查找到想要的服务了，又或者可以只查找接口，获取到所有实现这类接口的服务。<br />
按照这样的模型的话上面的场景就很容易实现了，写个模拟的配置文件：<br />
&lt;osgi:reference id="exporterClasses" interface="cn.bluedavy.dsf.exporter.DSFExporter"/&gt;<br />
&lt;bean id="DSFServiceExporterFactory" class="将Spring bean发布为DSF服务的bean"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="exporterClasses"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="exporterClasses"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&lt;/bean&gt;<br />
这个和真实的会有些不同，但意思是差不多的，:)，而OSGi的服务呢，在注入后可以直接通过ServiceReference这个对象来获取到这个服务的相关属性信息，这样其实也就可以做到类似之前第一个解决方案的效果，但同时又解决了不需要维护统一文件的问题。<br />
服务模型的这种语义性质的机制使得服务的概念表达得更为清楚，使用得也更为方便了，以接口来表达服务的功能是一种非常合理的方式，同时辅以属性来描述实现此功能的方式(有点像元数据里的keyword)无疑更加全面的表达了此服务，&nbsp;也使得使用者能够更合理的选择需要的服务实现。<br />
版本机制在这篇blog中没有提及，这个我想在实际的过程中大家应该都深受版本混淆的痛苦了，:)，在这里不多描述了，服务模型目的无疑就是为了更加清晰的表达一个功能，并且让使用者更加方便的查找、使用所需要的功能。
<img src ="http://www.blogjava.net/BlueDavy/aggbug/179185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-02-13 18:00 <a href="http://www.blogjava.net/BlueDavy/archive/2008/02/13/179185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Spring-DM实现分布式服务框架(DSF)(二)</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/29/178419.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 29 Jan 2008 15:12:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/29/178419.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/178419.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/29/178419.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/178419.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/178419.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在上篇分析完了在V 0.7需要干的活后，开始细化其中的实现细节，由于技术细节和之前想的有点不同，在细化的同时也稍做了调整，系统的架构仍然保持不变，在这篇blog中来看看实现每项任务的技术细节，之后就可以进入编码实现阶段了。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/29/178419.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/178419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-29 23:12 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/29/178419.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Spring-DM实现分布式服务框架(DSF)(一)</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/26/177960.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Sat, 26 Jan 2008 15:45:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/26/177960.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/177960.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/26/177960.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/177960.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/177960.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 经过上篇分析分布式服务框架的blog后，正式对之前的基于OSGi实现分布式服务框架的系列改名(顺便把分布式服务框架改为使用DSF缩写)，因为已经决定基于Spring-DM来实现，为什么呢，而且为什么一定要是Spring-DM，而不直接说Spring呢？<br>在讲完这个原因后，在这篇blog中你还会看到基于Spring-DM后的DSF V0.7是什么样子，以及要干些什么活来完成V 0.7。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/26/177960.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/177960.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-26 23:45 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/26/177960.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring进军SOA领域</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/25/177787.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Fri, 25 Jan 2008 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/25/177787.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/177787.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/25/177787.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/177787.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/177787.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 昨天刚分析完分布式服务框架，今天便看到Spring Integration 1.0 M1发布的消息，这也为Spring进军SOA领域拉开了序幕。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/25/177787.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/177787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-25 16:20 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/25/177787.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分析分布式服务框架</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/24/177533.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Thu, 24 Jan 2008 11:58:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/24/177533.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/177533.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/24/177533.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/177533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/177533.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 技术是为需求而服务的，分布式服务框架也同样如此，它不是凭空诞生的，也是因为有这样的需求才会有分布式服务框架这样的东西诞生，在这篇blog中来详细的分析分布式服务框架诞生的原因(其实也是需要用分布式服务框架的应用场景，这里隐含的意思就是并不是什么应用都需要分布式服务框架的)、分布式服务框架需要提供的feature以及实现这些feature可选的技术方案。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/24/177533.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/177533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-24 19:58 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/24/177533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于OSGi实现分布式服务框架历程(四)</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/22/176873.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Tue, 22 Jan 2008 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/22/176873.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/176873.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/22/176873.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/176873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/176873.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在这个篇幅中将来分析下这个分布式服务框架的服务的生命周期的管理的问题，在分布式服务框架中，支持服务的动态部署、卸载、升级是很关键的，至于服务的生命周期是否需要做到像OSGi那样的动态通知，在这个篇幅中会进行分析，并最终形成这个分布式服务框架的生命周期模型以及到目前为止的服务架构模型。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/22/176873.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/176873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-22 11:19 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/22/176873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于OSGi实现分布式服务框架历程(三)</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/21/176765.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Mon, 21 Jan 2008 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/21/176765.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/176765.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/21/176765.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/176765.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/176765.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上篇说到，经过分析后决定选用JNDI来实现服务的远程注册、查找和路由，在这篇blog中就来详细分析下基于JNDI怎么和OSGi结合来实现服务的远程注册、查找和路由。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/21/176765.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/176765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-21 15:09 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/21/176765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于OSGi实现分布式服务框架历程(二)</title><link>http://www.blogjava.net/BlueDavy/archive/2008/01/18/176309.html</link><dc:creator>BlueDavy</dc:creator><author>BlueDavy</author><pubDate>Fri, 18 Jan 2008 11:24:00 GMT</pubDate><guid>http://www.blogjava.net/BlueDavy/archive/2008/01/18/176309.html</guid><wfw:comment>http://www.blogjava.net/BlueDavy/comments/176309.html</wfw:comment><comments>http://www.blogjava.net/BlueDavy/archive/2008/01/18/176309.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueDavy/comments/commentRss/176309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueDavy/services/trackbacks/176309.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在这篇历程中来完成对于JINI的Spike，目标仍然是判断基于JINI实现服务的路由、查找需求的满足度。<br>JINI是由Sun研究院制定的，其目标就是为了实现分布式的服务，所以在很多地方可以看到它和分布式服务框架是有不少重叠之处的，来先看看它对于需求的满足度，最后再来分析做个总结。&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueDavy/archive/2008/01/18/176309.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueDavy/aggbug/176309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueDavy/" target="_blank">BlueDavy</a> 2008-01-18 19:24 <a href="http://www.blogjava.net/BlueDavy/archive/2008/01/18/176309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>