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这道大餐。
"));