2007年7月8日
摘要: 这本书就是之前blog上写的《构建高性能的大型分布式Java应用》一书,书稿完成后,觉得本书更多的仍然是偏向讲解分布式Java应用的基础知识,以及我个人工作经验的一些分享,于是改名成了《分布式Java应用:基础与实践》,本书目前已送往印刷厂印刷,下面是目前的一些关于本书的信息:
1、封面和目录
http://bluedavy.com/?p=55
2、序
http://bluedavy.com/?p=60
3、豆瓣上书的信息
http://book.douban.com/subject/4848587/
阅读全文
摘要: 本PPT只介绍了在Sun Hotspot V 1.6.0中:
1、内存结构;
2、内存分代,如何控制代大小;
3、可用的GC,每种GC对于参数的不同使用,例如SurvivorRatio、MaxTenuringThreshold等;每种GC不同的内存分配策略和回收策略,但不涉及具体算法是如何实现的;
4、GC是怎么触发的,日志是什么含义;
5、怎么使用上面的GC;
6、GC Tuning,简单介绍了一些常见的GC调优的目标时的瓶颈、可采用的方法等。
阅读全文
摘要: 网络访问时,通常要做超时控制,要实现的好其实还是有些挑战的,欢迎大家围观code show,并提供你的改进代码,:):http://bluedavy.com/?p=39
阅读全文
摘要: 本次交流在4月24日圆满完成,主题为关于JVM的那些事,撒迦@rednaxelafx给大家做了一个长达四小时的精彩分享,涵盖了javac、解释执行、c1、c2编译执行方面的知识点。
由于视频太大,感兴趣的同学请从以下地址下载,自行观看,:),也欢迎看完后在twitter上,或在这里来进行讨论,blog迁移到了bluedavy.com,地址在此:http://bluedavy.com/?p=36
阅读全文
摘要: 摘自我那本6月份要上市的,但目前名字还没完全确定的书,由于书中涵盖的更多的为构建高性能分布式Java应用所需要的基础知识,也许改成了《通往高性能分布式Java应用之路》,主要是阐述下为什么大型应用需要SOA,以及eBay的例子,blog全文请见:http://bluedavy.com/?p=30
阅读全文
摘要: blog已转移至bluedavy.com,感兴趣的同学可以移步至此:http://bluedavy.com/?p=27
阅读全文
摘要: 3月30日Twitter在其engineering blog上写了一篇Unicorn Power的blog:http://engineering.twitter.com/2010/03/unicorn-power.html,写的挺经典的,按我的理解来讲下这篇blog吧,如有错误,请帮忙纠正,:),blog已迁移至bluedavy.com,感兴趣的同学可以访问这个地址来查看全文:http://bluedavy.com/?p=25
阅读全文
摘要: 由于blog开始转移到bluedavy.com,感兴趣的同学可到此围观:http://bluedavy.com/?p=23,本篇blog从看一个超市发展的过程中,收银碰到的问题以及解决方案来阐述互联网的技术。
阅读全文
摘要: blog开始转移到www.bluedavy.com,因此感兴趣的同学请访问http://bluedavy.com/?p=18
阅读全文
摘要: 由阿里云龙浩同学牵头的杭州程序员圆桌交流,第一期主题为并发编程,把自己的经验也分享下,在活动结束后会公开此次交流的资料,具体PPT请见文中。
阅读全文
摘要: 在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的一些看法。
阅读全文
摘要: 本篇blog将讲述coroutine的一些背景知识,以及在Java中如何使用Coroutine,包括一个简单的benchmark对比,希望能借助这篇blog让大家了解到更多在java中使用coroutine的方法,本篇blog的PDF版本可从此下载:http://www.bluedavy.com/open/UseCoroutineInJava.pdf
阅读全文
摘要: 公历的2009已经过去,2010来临,不免俗的也对自己个人2009做一次回顾,同时对自己的2010做一次展望,希望自己的2010能过的更加精彩。
阅读全文
摘要: In product env,we always need to monitor gc trend or tunning gc based on gc trend,before sun jdk 1.6+,we can use GCViewer to visualize gc log to see gc trend,but it not support jdk 1.6+,so I write a free open source tool to visualize gc log produced by sun jdk 1.6+,now V 0.2 release,If you need,pls download from http://code.google.com/p/gclogviewer/.
阅读全文
摘要: In this blog,I'll test the coroutine supported on jvm,now famous is scala actor & kilim,this blog show the program reliazed with scala actor/kilim/java,let's compare these three program performance.
阅读全文
摘要: 在HPTS大会上,Randy Shoup放出的eBay的PPT有所改变,在原有的5个Architectural Lessons上又增加了5个lesson,从这也可以一定程度的看出当访问量、数据量、功能不断上涨后,碰到的技术问题也将继续发展,想必这也是eBay增加5个lessons的原因,eBay在技术方面的发展对很多互联网公司都有一些参考意义,毕竟它已经经历过了国内很多网站目前的阶段甚至是几年后的阶段,在本篇blog中就完整的来看看eBay的这10个lessons、eBay的应对策略以及我个人的一些推测。
阅读全文
摘要: 本书预计共八章,目前完成五章,由于本书需要涵盖Java分布式应用、高性能java应用、可伸缩的java应用以及高可用java应用四方面的知识点,编写的难度不小,因此在此先行放出目录和样章,希望能够得到大家的一些反馈,以保证本书的质量,目录&样章下载地址为:http://www.bluedavy.com/opendoc/bookpreview.pdf
阅读全文
摘要: 非常强烈的推荐下BTrace这个工具,用了后不得不说太强大了,BTrace简单来说,就是能在不改动当前程序的情况下,运行时的去监控Java程序的执行状况,例如可以做到内存状况的监控、方法调用的监控等等,官方网站上有非常多详细的例子,我不说太多,只在下面举一个简单的例子来说明它的作用,BTrace的User Guide请见:http://kenai.com/projects/btrace/pages/UserGuide。
阅读全文
摘要: 摘自《构建高性能的大型分布式Java应用》第六章,感兴趣的同学们可以看看。
GC策略在G1还没成熟的情况下,目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种,具体这两种GC的策略在深入JVM章节中已讲解, 并行和并发GC的策略通过-XX:+UseParallelGC和-XX:+UseConcMarkSweepGC来指定,还有一些细节的配置参数用来配置策略的执行方式,例如:-XX:ParallelGCThreads、-XX:CMSInitiatingOccupancyFraction等,新生代对象回收只可选择并行,在此就举例来看看两种GC策略在Full GC时的具体表现状况。
阅读全文
摘要: 和清华学子做了一次关于OSGi的交流,在此公开下这个PPT,:),这个PPT是我写的最长的一个OSGi PPT,涵盖的内容主要是OSGi标准方面的知识以及Equinox使用的一些知识,感兴趣的同学可以下载下: http://www.bluedavy.com/opentopic/OSGi20094qh.pptx
阅读全文
摘要: 架构师接龙是《程序员》杂志最近推出的一个活动,活动方式为:每期一个提问嘉宾,一个回答嘉宾,并由回答嘉宾提出新的问题给下期的架构师,形成接龙,之前第一期是支付宝的冯大辉提问,腾讯的研发总监王速瑜回答,我参与的是第二期,这期会登在《程序员》0909期上,内容转帖如下,原帖为程序员官方上的:http://www.programmer.com.cn/727/,呵呵,都只是个人的片面理解做出的回答,也欢迎大家在此帖中继续讨论,:)
阅读全文
摘要: 这篇文章中总结了一些构建可伸缩性系统的最佳实践,总结的不错,于是翻译了下,原文在此:http://akfpartners.com/techblog/2009/08/11/scalability-best-practices/,翻译内容如下。
阅读全文
摘要: 在将Hessian从3.0.13升级到3.2.0时碰到两个bug和一个ClassLoader处理策略的改变的问题,在此记录下,希望能为使用Hessian 3.2.0的同学们提供点帮助,避免再走同样的弯路。
阅读全文
摘要: 几年以来,eBay在几个不同的大会上先后分享过几次关于eBay技术的PPT,在这篇blog中,就以这些PPT来以旁观者的角度分析下eBay的技术发展历程,不论eBay现在的业绩如何,不可否认,他们的技术还是挺强的,因此还是值得学习,eBay的整个技术发展历程从一定程度上来说可以认为是互联网公司的典型技术发展历程,基本上各家互联网公司都在走着类似的路线,只是各家选择的语言不同、具体的实现方案不同、细节不同,当然,思路是一方面,实现又是另外一方面,只有两者结合才能实现一个高可用、高性能和高并发的有海量数据的系统。
阅读全文
摘要: 这本书的名号有:国内第一本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中我们就来具体的看看。
阅读全文
摘要: 在这篇blog中放置了我收集的一些网站架构相关的PPT和文章,提供给大家下载,如果大家有相关的好的PPT、文章的话,也欢迎推荐给我,非常感谢,:),这篇blog的内容也会随着我收集的东西增加而变化,同时也会增加我对于这些PPT、文章的看法和评价。
阅读全文
摘要: 把自己写的两篇opendoc和Book统一放入此blog中提供下载,避免占据我blog的两个置顶位,:)
阅读全文
摘要: 在使用OSGi时,有些时候会需要在OSGi容器外获取OSGi服务,加载OSGi容器加载的class,或者说需要内嵌OSGi容器,本篇blog以一个简单的例子来说明如何基于equinox实现OSGi容器的内嵌,或者说通过程序来启动equinox,同时也通过此例子展示下如何在容器外来获取OSGi服务以及加载OSGi容器里面其他插件的class,同时还会附送一个如何让OSGi容器里的插件能加载到OSGi容器外的类的方法。
阅读全文
摘要: 此次QCon北京大会为期三天,总体而言,精彩纷呈,尤其是第二天,完全将大会的精彩推至了高潮,让大家觉得值回票价,总结而言,这次大会是相当成功的,一次成功的大会不能缺少的有两个要素:知名的嘉宾和精彩的Topic,无疑QCon北京大会很好的把握了这两个要素。
知名的嘉宾,此次大会出现的嘉宾绝对足够重量级,看看Title就吓人了:Spring老大、ThoughtWorks首席科学家、Dojo creator、eBay搜索核心架构师、Amazon云计算战略师、淘宝首席架构师、支付宝首席架构师、豆瓣技术总监、优酷首席架构师、网易有道技术总监等等。
精彩的Topic,不是说嘉宾知名Topic就一定精彩的,不能不说,这次大会还是有些爆冷门的,嘉宾不是很知名,但演讲的Topic确实还不错,而且也不是说知名的嘉宾就一定能给出精彩的Topic,就像Martin Fowler这次的Topic,实在称不上精彩,总体而言,这次大会并不缺少精彩的Topic,来分享下我的收获。
阅读全文
摘要: JVM是Java程序的运行环境,因此对于JVM的掌握有助于理解Java程序的执行以及编写,尤其是运行时碰到的一些诡异问题,那么怎么样能考察自己对于JVM关键知识点的掌握情况,帮助学习JVM机制呢,在这篇blog中来探讨下。
阅读全文
摘要: 在产品中有碰到过使用LinkedBlockingQueue.poll时超时很不准的现象,关键是这不是一般的不准,如果只是一点点不准的话也就勉强接受了,例如指定poll的超时时间为100ms,但最终执行.poll这段代码就花费了8000ms的现象,这篇blog就是展示下通过一段小小的代码来重现这样的现象,毕竟没有重现是无法证明为什么会出现这样的现象的。
阅读全文
摘要: 本文摘自《构建高性能的大型分布式Java应用》一书,Garbage First简称G1,它的目标是要做到尽量减少GC所导致的应用暂停的时间,让应用达到准实时的效果,同时保持JVM堆空间的利用率,将作为CMS的替代者在JDK 7中闪亮登场,其最大的特色在于允许指定在某个时间段内GC所导致的应用暂停的时间最大为多少,例如在100秒内最多允许GC导致的应用暂停时间为1秒,这个特性对于准实时响应的系统而言非常的吸引人,这样就再也不用担心系统突然会暂停个两三秒了。
阅读全文
摘要: 记得自己在没有进入互联网行业之前,对于互联网行业并不怎么感冒,总觉得互联网行业的技术含量不高,没什么意思,值得进入互联网行业了,才明白,原来互联网行业的技术是这么的复杂,这么的困难,而构建一个拥有巨大用户量的系统无疑也会给自己带来更多的成就感,记得自己刚进入互联网行业的时候,才发现构建一个高并发、高性能、承受高压力、高度可伸缩以及高可用性的系统要掌握的知识体系是在太多了,而且这些知识体系根本就不是在学校或是google、网络中能够学习到的,于是当时就想,如果能有一本书全面的介绍构建这”五高“特性的系统需要掌握的知识体系,那将是多么的美好呀,毕竟很多的知识体系都是靠经验积累出来的,甚至可是说,是痛苦的教训等得出来的,但当然,要在一本书中完全讲清楚所有的知识体系,自然是不靠谱的,但我想我会尽量在书中表达出自己的一些观点、看法以及少少的经验吧,希望能够让更多的同学即使没有大型系统的实际经验,也能掌握到一些大型系统所需的知识体系,那么我心甚慰了,由于本书需要写的东西非常的多,预计在9月底完成写作,估计要到明年春节后上市,:),以下先揭秘下本书的大概内容,也请大家多多提出意见。
阅读全文
摘要: 之前的Opendoc中没有涉及过此部分的内容,maven又是现在非常流行的java的工具,再加上到目前为止搭建OSGi Maven开发和部署的环境还是比较的麻烦,觉得有必要写篇这样的blog,:),在这篇blog中来看下如何搭建一个比较好用的OSGi Maven开发和部署环境,看看我在搭建一个这样的环境中的痛苦历程。
阅读全文
摘要: 记得Martin大叔在《企业应用架构模式》中特别强调:“能够不分布式的应用就不要分布式”,这句话没什么问题,尤其对于做过分布式应用的人而言,就更会有深刻的体会了,但这个世界偏偏就没有那么简单,大多数人都会碰到分布式应用的场景,尤其是对于大型应用而言,从集中式步入分布式是不可避免的,只是也许是小型分布式的,也许是大型分布式的;也许是有高性能要求的,也许是没有的,在这篇blog中我们来看看java应用从集中式步入分布式后到底会带来些什么挑战。
阅读全文
摘要: XSS漏洞是网站漏洞中最容易出现的一种,至少现在的各大网站中基本都存在,传闻只有gmail是唯一一个完全不存在的,或者说攻击者没找出漏洞的,也许是因为XSS漏洞看起来危害并不是那么的大吧,所以基本上没有得到过太大的重视,从而也就造成了这么多的网站存在着一些很简单就能发现的XSS漏洞,在这篇blog中以我这个网站安全的外行人的角度来侃侃XSS漏洞攻击以及防范的措施。
阅读全文
摘要: 近来连续调试了好几天的代码,乐趣无穷,:),在纯净的人和机器对话的时间中,充分的和机器不断的交流,最终共同实现功能,和同事说:“我喜爱调试代码胜过了写代码”,怎么说呢,我觉得调试代码能够充分让你将所掌握的知识发挥出来,考察自己解决问题的能力以及学习知识的能力,在这篇blog中来闲聊下调试代码。
阅读全文
摘要: 近期参与了几个大学的校园招聘,总体下来感觉还行,由于校园招聘需要面的人很多,差不多面试流程都形成模式了,在面试的过程中,有不少学生问过我,到底面试的标准是什么,不过每个面试官的标准都是不同的,所以也就注定了面试是会有些不公平的,是否对面试官的胃口会起到很大的决定性因素,当然,最重要的还是实力,很多学生会认为面试不公平,但我觉得这也算是从学校进入社会的第一课吧,工作后学生们会发现更多不公平的事,对于学生而言,无论是应届毕业的本科、硕士,我的面试标准都差不多,考察的为Java基础、Java框架、设计模式、互联网架构的了解,当然,在最后会问一些其他的问题,例如大学学习情况呀、一两年后对自己的期望呀、优势和不足、最近看过的技术新闻等等,在这些所有的问题的背后,考察的最重要的是基础掌握的是否扎实、学习能力、反应速度、抗压能力以及技术兴趣。
阅读全文
摘要: 在面试中,经常要评估面试者的java基础知识和其他知识的掌握情况,包括public/private/protected/默认修饰符、static/final修饰符、集合、字符串操作、对象比较、异常、设计模式和面试者经常使用的框架等,整理一下自己经常使用的评估方法,:),抛砖中,希望能看到一些好的建议,让大家更好的学习java知识,同时也更好的判断人才,挖出真正的“金子”。
阅读全文
摘要: 随着OSGi近两年的迅猛发展,尤其是Java企业应用领域厂商对OSGi的认同,大家对于OSGi的新版规范的关注远远超过了之前的几个版本,近来OSGi终于是放出了传闻已久的R 4.2的Early Draft,其实从Early Draft来看,我觉得完全可以认为不仅仅是一个小版本的升级了,甚至可以认为是R5了,因为R 4.2增强的东西还是非常多的,其中就包括了大家期待已久的RFC119,不过没看到传说中的RFC66,有一丁点的失望,不过相信后面的Draft中应该会加上,:),这样看来,R5更是值得期待了,让我们先来一起品尝一下4.2 Early Draft这道大餐。
阅读全文
摘要: 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,:),文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。
阅读全文
摘要: 应该是差不多两个月前收到了这本书,一直到最近才抽出时间来看了下,这本书的开篇的第一题现在基本已经成了经典中的经典了,相信很多人都因为这个控制 CPU使用率的题从而买了这本书的,在我自己看过这本书后我同时相信买了这本书的人应该会觉得非常的值得,要写出合理实现需求、高性能以及大数据量的程序,数据结构和算法就成为关键要素了,这本书用简短的题目给大家回顾了一些经典的算法。
阅读全文
摘要: 不是专职做压力测试这行当的,只能是以自己的经验来以外行人的眼光来说说压力测试,压力测试并不仅仅是个压力测试的过程,而是一个相当系统的工程,我认为压力测试是为了让系统达到所期望的运行效果以及承受所期望的压力,这也就要求压力测试应该帮助性能调优团队,为其提供一定程度的指导,在这里我不将压力测试和性能调优分的那么清楚了,在我看来,压力测试过程包括了:明确压力测试的目标、构建压力测试案例、进行压力测试、分析压力测试结果、寻找瓶颈并进行调优以达到目标,在这篇blog中来细看下这几个过程以及常用的方法。
阅读全文
摘要: 这篇文章的第二部分在昨天也发布出来了,于是抓紧时间把它给翻译了。在这篇文章的第一部分中,作者结合自己的经验对如何构建具备良好的垂直扩展能力的Java EE应用做了讲解,在这第二部分的文章中,作者则对如何构建具备良好水平扩展能力的Java EE应用来进行了详细的讲述,常见的session复制问题,水平扩展中经常需要涉及的分布式文件系统、分布式缓存、分布式并行计算,全文读下来,作者基本指出了构建可扩展的Java EE应用需要了解的知识体系(如需深入的话还有必要进一步的学习,例如集群技术、通讯协议、线程、并发等)和平时实践中的一些注意事项,应该说是篇十分难得的好文章,值得推荐。
阅读全文
摘要: 这是一篇从TheServerSide上翻译过来的文章,很自豪这篇这么好的文章是一个中国人(从作者名字上猜想应该是中国人吧,:))写的,原文地址为:http://www.theserverside.com/tt/articles/article.tss?l=ScalingYourJavaEEApplications,可以说,这篇文章写的是非常的不错的,这是文章的第一部分,探讨了如何构建可垂直扩展的Java EE应用,文中谈论到的让所编写的Java EE应用具备垂直扩展能力的几个关键要素,例如热锁问题、尽可能的缩短同步块、不要在static方法上加锁、多使用Atomic包、jvm内存不能设置的太大等,文中除了列了这几个关键要素外,还详细的解释了为什么不能做以及如何避免出现这样的现象,可以很明显的看出作者在这些方面是具备了非常丰富的经验的,因此这篇文章不仅仅讲述了可扩展性理论方面的知识,同时也很好的从实战角度进行了分析,之后我也会结合这篇文章来说说自己曾经碰到的垂直扩展场景的反例,同时也很期待这篇文章的第二部分,第二部分将探讨如何构建可水平扩展的Java EE应用,翻译的不好的地方还请大家多
阅读全文
摘要: 之前写了个简单的jsp做压力测试,没想到出现的一个问题是当压力比较大的情况,运行比较久的话会出现一个现象,就是jvm的内存几乎被耗尽,用 jprofiler查看会发现是有一个ConcurrentHashMap对象的内存一直在增长,而且没有释放的迹象,随后进入Debug模式,跟踪查找都有谁new了ConcurrentHashMap,因为测试场景中是个非常简单的jsp页面,发现只有jsp的Request session会创建这个ConcurrentHashMap,很久没写jsp了,猜测是request session的默认超时时间太长,所以导致高压力下(200并发,总共连续访问50万次,jvm内存1G)会出现内存一直没有回收的问题,后来打印了一下request session的默认超时(AS是jboss 4.2.2),是半小时,如果这样的话确实是会有造成上面内存一直被占用的现象。
阅读全文
摘要: 在JBoss Remoting 2.2.2中存在这么一个bug,如果刚好客户端的timeout比服务器端处理时间短的话,就会出现客户端连接池中的连接被无故用掉一个的状况,而且是没法回收的,最终就会导致很快客户端的连接池被占满的现象,在分析JBoss Remoting 2.2.2的代码后发现了问题的所在,同时查看了下JBoss Remoting 2.4的代码,发现在2.4中此bug已被修复。
阅读全文
摘要: 性能调优无疑是个庞大的话题,也是很多项目中非常重要的一环,性能调优的难做是众所周知的,毕竟性能调优涵盖的面实在是太多了,在这篇blog中我们蜻蜓点水般的来看看性能调优这项庞大的工程都有些什么过程,同时也看看这些过程中常见的一些做法。
阅读全文
摘要: Java 5并发包的加入,给Java的并发程序的开发带来了很多的好处,在此列举一些并发编程中应该掌握的一些基础知识片断,这些片断基本都是由一些问题组成,在片段中没有直接写出答案,由于可用来解决这些片段的方法还是很多的,因此只是提到了解决问题可选方案的关键字,如果有需要进一步了解的话,基本上 google一下应该就能查出来了,不过就像之前有朋友说的,如果不是经常用的话,其实就算现在知道了也是会忘记的,这很正常,:),不过我更认为那是因为知其然而不知其所以然造成的,很多东西如果知道原理的话,基本上还是可以记得很长一段时间的。
阅读全文
摘要: 精通这个词估计是在简历中最常见到的词了,简历上通常都充斥着精通struts2、精通java、精通hibernate等等词语,近来经常看些比较底层的书,越来越体会到精通这个词应该具备的份量了,也越来越理解以前朋友和我说的在国外工程和研究是分的很清楚的原因了,在这篇blog里来扯扯自己对精通这个词的看法。
先来看几个面试的片段,从中也许能看出些端倪,:)
阅读全文
摘要: 由于Topic的时间有限,因此此篇PPT只是简单的对OSGi进行了介绍和演示,而没有做详细的OSGi使用的讲解,可能让参与这次Topic的同学们失望了,不过还是在此把PPT公开出来了,如感兴趣的话,可以从以下地址下载:
http://www.riawork.org/opentopic/Simple.Introduction.For.OSGi.ppt
阅读全文
摘要: 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来说也是里程碑的一天。
阅读全文
摘要: 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
阅读全文
摘要: 非常感谢Kane的工作,其实在差不多两个月前就完成了和OSGi官方联盟的协议的签订,使得OSGi China User Forum成为了继法国、日本、韩国、西班牙以及瑞典后的第六个官方授权和认可的组织,并且拿到了OSGi联盟官方提供的空间,其实就是个简单的wiki了,只是一直没抽出时间去建设网站,Kane在百忙之中抽出时间把站点的基本页面进行了搭建,使得这个官方站至少看上去有点内容了,官方站的地址为:http://china.osgiusers.org。
阅读全文
摘要: OSGi DevCon2008已经闭幕,迫不及待、非常迫不及待的希望能了解更多此次大会的盛况,不过目前相关的新闻报道等还是比较少的,除了osgi.org/blog上有三四篇报道,根据日程找到目前公开的OSGi DevCon 2008中Topic的PPT,共11个,在此根据自己看这些PPT的情况做个简单的介绍和评价。
阅读全文
摘要: 期待已久的OSGi DevCon 2008将会在下周(3月17日---3月20日)和EclipseCon 2008共同召开,今年OSGi的Topic比去年更多,也占据了更重要的位置,来看看本次大会即将开讲的Topic,畅想畅想,看看哪些Topic将会成为热题。
本届Topic仍然和往年一年,分为Long Talks、Tutorials、Short Talks、Panel和Additional OSGi Talks,本届OSGi DevCon可谓是众星云集,世界级的OSGi大师们共聚一堂,毫无疑问将给我们这些OSGi Fans们贡献一场盛宴。
阅读全文
摘要: 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。
阅读全文
摘要: 在使用Spring的时候,我们习惯于用bean的名称作为注册、查找的条件,这也就意味着bean的引用是唯一的了,而不能来查找、注入一系列具备相同功能但不同实现的bean,这种应用的场景其实还是很多的,尤其在扩展的场景中,在这篇blog中以一个应用场景来说明下这种需求,顺便也宣传下OSGi的服务接口+版本+属性的注册和查找机制。
阅读全文
摘要: 在上篇分析完了在V 0.7需要干的活后,开始细化其中的实现细节,由于技术细节和之前想的有点不同,在细化的同时也稍做了调整,系统的架构仍然保持不变,在这篇blog中来看看实现每项任务的技术细节,之后就可以进入编码实现阶段了。
阅读全文
摘要: 经过上篇分析分布式服务框架的blog后,正式对之前的基于OSGi实现分布式服务框架的系列改名(顺便把分布式服务框架改为使用DSF缩写),因为已经决定基于Spring-DM来实现,为什么呢,而且为什么一定要是Spring-DM,而不直接说Spring呢?
在讲完这个原因后,在这篇blog中你还会看到基于Spring-DM后的DSF V0.7是什么样子,以及要干些什么活来完成V 0.7。
阅读全文
摘要: 昨天刚分析完分布式服务框架,今天便看到Spring Integration 1.0 M1发布的消息,这也为Spring进军SOA领域拉开了序幕。
阅读全文
摘要: 技术是为需求而服务的,分布式服务框架也同样如此,它不是凭空诞生的,也是因为有这样的需求才会有分布式服务框架这样的东西诞生,在这篇blog中来详细的分析分布式服务框架诞生的原因(其实也是需要用分布式服务框架的应用场景,这里隐含的意思就是并不是什么应用都需要分布式服务框架的)、分布式服务框架需要提供的feature以及实现这些feature可选的技术方案。
阅读全文
摘要: 在这个篇幅中将来分析下这个分布式服务框架的服务的生命周期的管理的问题,在分布式服务框架中,支持服务的动态部署、卸载、升级是很关键的,至于服务的生命周期是否需要做到像OSGi那样的动态通知,在这个篇幅中会进行分析,并最终形成这个分布式服务框架的生命周期模型以及到目前为止的服务架构模型。
阅读全文
摘要: 上篇说到,经过分析后决定选用JNDI来实现服务的远程注册、查找和路由,在这篇blog中就来详细分析下基于JNDI怎么和OSGi结合来实现服务的远程注册、查找和路由。
阅读全文
摘要: 在这篇历程中来完成对于JINI的Spike,目标仍然是判断基于JINI实现服务的路由、查找需求的满足度。
JINI是由Sun研究院制定的,其目标就是为了实现分布式的服务,所以在很多地方可以看到它和分布式服务框架是有不少重叠之处的,来先看看它对于需求的满足度,最后再来分析做个总结。
阅读全文
摘要: 写完之前的那篇基于OSGi实现服务框架的分析后,决定动手来实现一个基于OSGi的分布式服务框架,而其feature呢,就会遵照之前写的服务框架的要素来实现,根据之前的分析,将这个实现过程分为了三个大的步骤来完成:Spike阶段、实现阶段和测试阶段,Spike阶段用于完成几个关键问题的技术的研究和选型;实现阶段用于完成基于OSGi的分布式服务框架;测试阶段用于判断实现的分布式框架对于应用场景的符合程度、性能的情况。
首先进入Spike阶段,在Spike阶段需要完成服务注册、创建以及服务的proxy管理的技术研究和选型,这主要是因为我对这两部分的技术并不怎么熟悉,对于服务的注册和查找,可选的技术有两种:JNDI和JINI;对于服务的proxy的管理,可选的技术应该就是cglib这一种了,不过需要研究具体怎么用,在这篇blog中将介绍对于JNDI的Spike。
阅读全文
摘要: 根据上一篇服务框架的要素的blog,来分析下基于OSGi实现一个这样的适合分布式场景的服务框架时需要对目前的OSGi框架做出哪些方面的修改,以及预估一下实现的难度。
根据分析可以看出要基于OSGi实现一个这种适合分布式场景的服务框架还是比较麻烦的,需要重写的部分是非常的多,以此来看的话,目前OSGi最适合的场景应该还是如下几种:
1、不需要分布式部署的应用场景;
2、需要分布式部署,但仅仅是分层的分布式部署,例如业务层在一台机器上,数据层在另外的机器上。
不过基于OSGi实现一个这样的服务框架也是一件很不错的事,估计这也是EEG目前正在做的事,希望以后能在自己有空的时候动手做做这个基于OSGi的服务框架。
阅读全文
摘要: 服务框架,这个名词已经出现了很多年了,很早以前系统的架构就希望是以基于服务框架的方式来搭建的,turbine、phoenix、avalon等都是朝着实现服务框架的目标而去,如今的SCA,也可以说就是为了提供一个可用的服务框架,服务框架在系统中到底承担什么角色呢,为什么它会显得那么重要呢,如果要实现一个服务框架,不太可能从最底层做起,那么我们又需要怎么样去选择呢?
服务本身是个挺形象的名词,在系统设计中我们非常强调输入和输出,服务呢,可以说是更形象的去强调了这一点,每个模块都会对外提供一定的功能,而这些对外提供的功能我们就可以作为服务了,细到模块内,我们也会发现模块内各个类其实也是以服务的方式来交互的,在这样的情况下,服务框架自然就成了整个系统的核心基础框架,那么服务框架能帮我们来提供哪些功能呢,如果我们要实现一个服务框架,有哪些要素是需要考虑的呢,欢迎大家拍砖,多多交流!
阅读全文
摘要: 07年的最后一天了,回顾当年、展望来年已经是每年最后一天的惯例了,就像往年一样,07年对于业界而言仍然是高速发展的一年,新技术、新框架、新名词不断的在冒,不过对于自己而言,07年在新东西方面接触的不多,也许是现在更加的专注了吧,没有以前那么博了,:),回顾的关键字自然也就锁定在自己感兴趣的领域:OSGi、SCA、Erlang、互联网应用、认识架构。
对于08年,有很多的期待:OSGi、互联网应用和深入架构。
阅读全文
摘要: 之前发布了一篇Introduction OSGi的PPT,Introduce OSGi PPT主要是用于介绍OSGi,更多的是在讲解OSGi的一些基础概念,OSGi in action PPT则主要是针对有一定OSGi使用经验的用户而编写的,此篇PPT更加专题性质和细致的讲解了OSGi如何在实际的项目中进行使用,如何和流行的java框架进行集成,以及在实际的OSGi应用设计和开发时的一些最佳实践的介绍和讲解,对此PPT感兴趣的同学可从以下地址下载:
http://www.riawork.org/opentopic/OSGi.in.action.ppt
阅读全文
摘要: 这篇文档是erlang创始者之一的Joe Armstrong所编写的博士论文,由段先德翻译、邓辉审校,感兴趣的同学可以从以下地址下载:
http://erlang-china.org/study/joe-armstrong_thesis_cn.html
Erlang在业界已经引起了不小的轰动,通读了下这篇博士论文,翻译的质量很高,:),所以读起来非常的顺畅,论文的内容对于erlang初学者而言绝对是堪称经典,写的非常的不错,点出了erlang的强项并详细的进行了解释,感谢翻译论文的段先德和邓辉的工作。
Erlang以天生的支持并发、分布式和容错而闻名,由于erlang的诞生是为交换机而服务的,因此在并发、分布式、容错、动态代码升级等方面是实现的非常好的,其目前主要是应用在erission的交换机上,这对于erlang的那些天生的特性也是个很好的证明。
通过阅读这篇博士论文,让我对了erlang有了部分的认识,由于目前尚未实践过,只能根据论文本身对自己理解的erlang做个阐述。
Erlang采用的是虚拟机的方式,这个虚拟机和java的虚拟机类似
阅读全文
摘要: SQLUnit是一个用于对存储过程进行单元测试的工具,其实也可以用于做针对数据库数据、性能的测试等,延续了xUnit家族的一贯特性和风格,只不过它的测试是以xml的方式来编写,但原则仍然和xUnit家族其他产品一样,强调的是输出和预期的比较,SQLUnit的文档比较的少,由于官方站上并没有提供类似其他开源工具的quick start guide,就写了这篇quick start guide以便大家快速的使用sqlunit,至于SQLUnit的高级用法还是得去多看看sqlunit.sf.net官方站上的文档。
为了让大家能快速的开始入门使用SQLUnit,将介绍SQLUnit环境的搭建、如何编写一个单元测试、如何运行。
阅读全文
摘要: 上次发布OSGi in action的PPT后,得到了flyisland的反馈意见,:),在此也谢谢他,正是从他的意见中看到了之前PPT的一些问题,之前PPT的问题应该是目标听众不明确,讲的内容多但却都不详细,很有可能最后讲完了无论是对于OSGi Newer还是OSGi熟悉的人都没有什么任何的帮助,为了解决这个PPT,决定把PPT分为两篇来完成,一篇为OSGi Newer编写的关于OSGi介绍方面的PPT,将名字定为了Introduce OSGi,重点的介绍OSGi的基础概念和基本的使用方法;而另外一篇则是为较为OSGi的同学们编写的,名字仍然保持为OSGi in action,会重点和较为详细的讲解OSGi在实际项目的使用,目前先发布Introduce OSGi的PPT,希望能继续得到大家的反馈意见,感兴趣的同学们可以从这下载这篇PPT:
http://www.riawork.org/opentopic/Introduce.OSGi.ppt
阅读全文
摘要: 在我现在的项目中出现了这么两个问题,大家可以来探讨下这样的两个问题的解决方法,:)
1、从开发环境到正式环境的部署/校验非常麻烦;
2、数据库的频繁移植/校验非常麻烦。
我的解决方法:
对于上面两个问题,我自己想到的解决方法是:
1、建立持续集成机制,编写环境部署脚本和文档,采用这两种方法可保证从开发环境到正式环境的部署是非常简单的;
编写自动验收测试脚本,可以基于Selenium进行编写,这样每次在升级版本的时候就不需要再人工的进行回归测试了,这里面的问题是如何在测试完毕完毕后清除这些测试数据,因为这些测试数据是不能和正式数据共存的。
2、建立数据库升级移植机制,每次升级时做增量的升级,不过这需要建立在对原库建立版本记录,这个方法对于我们的项目而言不太可行;
第二种方案就只能每次进行全面的重新移植了,但这个带来的一个巨大问题就是存储过程的重复修改,目前我还没想到什么解决方法,而且;
至于如何校验数据库移植是否成功,我觉得可以建立数据库移植校验的Checkpoint,除了保证数据库结构、数据量等的
阅读全文
摘要: 这个PPT将会用于最近的一些OSGi活动作为Topic来讲讲,不过是英文版的,:),一方面是锻炼自己的英文,另一方面也准备把这PPT再雕磨雕磨,提交到OSGiDevCon 2008的Topic中试试。
感兴趣的朋友请从以下地址下载此PPT:
http://www.osgi.org.cn/opentopic/OSGi.in.action.ppt
不过俗话说,PPT嘛,靠的主要是讲,但同时也希望得到大家对此PPT的反馈意见,以便我进行进一步的修改,希望在之后的公开的活动中不会把这Topic讲砸了,此PPT会不断的进行修改,我会在此篇blog中公布目前ppt的版本号,大家就可以确认手头的PPT是否是最新的了,:)。
version info:
1.0 2007-10-21
阅读全文
摘要: 在历时两个多月后,OSGi进阶的编写已完毕,感谢N多朋友一直以来的关注和支持,现将正式版对外发布,下载地址为:
http://www.riawork.org/opendoc/osgiopendoc2.pdf
随文的代码的下载地址为:
http://www.riawork.org/opendoc/osgiopendoc2-source.zip
随文的例子的可运行版本的下载地址为:
http://www.riawork.org/opendoc/osgiopendoc2-dist.zip
随后将会相继在Redsaga上发布Redsaga Opendoc版本,以及在InfoQ中国站上发布InfoQ miniBook版本,这两个版本在精美程度上都会超过我现在发布的版本,到时再給予大家通知,:)
阅读全文
摘要: 软件架构的选择和设计并不是很容易做出的,一个成功的软件架构取决于N多的因素,软件架构这个词向来就是最为模糊的一个词,个人认为软件架构实在是个很大的话题,业界一直采用的形象比喻就是建设房子时的房屋结构图,以软件的角度来说,软件架构应至少包括软件开发时使用什么语言、形成软件开发时可运行的核心基础框架、软件应用模块的设计(包括模块内聚的功能、对外提供的服务等)、软件测试的方法、软件部署的方法以及团队开发的方法,那么怎么来选择和设计软件架构呢,其衡量的因素是什么呢,个人认为其中质量和快速是衡量软件架构的选择和设计是否成功的两个最重要的因素。
阅读全文
摘要: OSGi在应用时具备了典型的微核系统的特点,但对于实际项目/产品型的应用而言,这个微核有些过于底层了,为什么这么说呢?
对于实际项目/产品型的应用而言,何谓其微核呢,应该说其脚手架或开发平台才是它的微核,而并非仅仅是OSGi框架,当然,也可以将自己的脚手架或开发平台以Fragment-Host的方式绑定到OSGi的System Bundle上去,但这样的做法无疑有些evil了,TPF诞生的最主要的目的就是形成一个应用级的微核的概念,使得我们在管理实际的项目和产品时,能够将脚手架和实际的业务应用模块分离管理,让脚手架也变成微核,这样在管理时就可以做到对应用系统的统一管理,而同时保持一个含应用意义的微核(也可以认为是开发平台)的稳定运行,在具备了TPF的情况下,就可以将应用系统从部署上分为脚手架和应用系统,而在管理上也可以单独对应用系统进行管理,如启动应用系统、停止应用系统,同时避免应用开发人员对脚手架无意的修改。
在本篇文档中将介绍TPF提供的功能、TPF实现的方法以及TPF的下载地址。
阅读全文
摘要: 本来目前这篇Opendoc还没有达到发布的条件,不过正逢国庆佳节,希望各位感兴趣的同学能够在国庆期间抽出时间看看这篇Opendoc,而国庆期间我也会对Opendoc进行润色和内容的充实、完善,国庆后希望能获取到各位看过预览版的同学的意见,我会根据各位的意见对Opendoc进行适度的修改,争取在10月中旬发布正式版。
至于随Opendoc的代码等到正式版的时候我再发布,如有需要的同学可以直接mail给我,我可先mail给需要的同学。
另外由于预览版还有不少需要润色、完善的地方,请各位收到预览版的同学不要传播这个版本,:),多谢!
阅读全文
摘要: 《OSGi实战》Opendoc推出已一年有余,该篇Opendoc主要是为了介绍OSGi而编写的,相对而言知识点较浅,很多朋友在看过那篇Opendoc后也许会对OSGi产生兴趣,但未必会在商业的项目/产品中去使用它,为了能够让更多的朋友能够在商业的项目/产品中使用OSGi,根据自己的经验以及这一年多来OSGi界的发展情况,从8月初开始了《OSGi进阶—模式与最佳实践》Opendoc的编写,争取在国庆前推出一个预览的版本,希望《OSGi实战》能吸引大家关注OSGi,而《OSGi进阶》能推动大家在商业项目/产品中使用OSGi,如对预览版有兴趣,请发邮件联系我,在完成后的第一时间我将mail给你,谢谢关注!
阅读全文
摘要: OSGi.org.cn将做为OSGi.org的官方中文网站推出,整个项目预计分为两期完成。
一期的目标为翻译OSGi.org的所有内容,至于blog部分则能尽量翻译,暂定为先翻译近三个月的blog,一期的计划为一个月内完成,也就是说在国庆前正式的推出OSGi.org.cn,到时会在国内的几个大网站上(InfoQ-CN、JavaEye、EclipseWorld、CSDN等)做一定的宣传和推广;
二期的目标为翻译OSGi.org中的所有blog,同时翻译www2.osgi.org中的所有内容。
在一二期工作完成后,进入OSGi.org.cn的维护期,到时就是跟随着OSGi.org做更新的翻译,同时OSGi.org.cn会考虑做一些本地化的blog、新闻、论坛、开源项目等工作,目标是让OSGi.org.cn做到中国顶尖的OSGi网站,并为推广OSGi和发展OSGi做出贡献。
阅读全文
摘要: 此次需要完成的目标是将库从SQLServer 2005完整的移植到Oracle10g中,包括表结构、数据、视图、函数以及存储过程的移植,移植主要基于Oracle的OMWB(Oracle Migration Workbench)来完成,尽管OMWB能帮助完成大部分具备难度的工作,但还是有很多工作量的事情需要在OMWB完成后来手工进行,所以整个移植过程工作量看起来会非常大,但是不是仅仅只有工作量的问题呢?我觉得不是,写下这篇blog以便需要进行此项操作的同学以及给自己做个备忘。
阅读全文
摘要: 《Oracle9i&10g编程艺术》即为《Expert one to one oracle》的升级版本,不过升级后可能会变为三本书,这本书强调的是深入数据库体系结构的讲解,本书的作者Thomas Kyte(即Tom)无疑是Oracle界最为知名的人物,而这本书可以说基本是专为开发人员而写的,因为我个人觉得书中讲的东西大部分DBA都是懂的,但对于开发人员来讲估计大部分都不懂,Thomas Kyte抓住了怎么给开发人员讲才能讲清的方法,对于书中的每项内容Thomas会讲解什么时候这么做、为什么要这么做、什么时候不能这么做以及为什么不这么做,要说服开发人员,很多时候除了告诉怎么做以外,还必须得告诉为什么要这么做,否则很难说服,而Tom在书中则很好的做到了这点,Tom会告诉你Oracle是怎么去实现的,所以你要这么做或者不能这么做,这本书除了让我学习到了更多的Oracle知识外,还让我更加明白了数据库在系统中的重要性以及充分发挥数据库的功能是多么重要的一件事,还有一个附加的好处就是让我们可以窥探到部分Oracle的设计,对于自己实现应用系统也是会找到一些可参考的地方,这本书写的实在是太好了,强
阅读全文
摘要: 向Peter Kriens问了一些自己比较关心的OSGi进展情况的问题,总结而言:
从Peter Kriens的答复来看,R5和EEG的工作成果生效还得等待较长的时间,好消息是SCA采用OSGi作为基础架构看来是非常的有希望了,这对于OSGi的推广是件非常好的事。
阅读全文
摘要: 说书评实在是没什么资格,:),已经有将近半年的时间都没使用Ajax做产品或项目了,不过一直都在关注Ajax的发展和动态,应该说Ajax的发展在这两年以来非常的可喜,Ajax带来的web友好性的改变在各大网站已经开始显现出来了,这一切都是很值得高兴的,说回正题,记得是当时在做一个Ajax方面的框架,做的过程中开始看《Ajax patterns and best practice》,英文版本,碰巧从dlee那了解到他们正在翻译这本非常不错的书,后来从dlee那拿到了翻译后的草稿版,先睹为快了,记得当时看了翻译稿后就在我的blog上写了一些关于书中介绍的模式,主要是看书后的激动之情,顺便也为了大家先了解下这本书的内容,在《Ajax模式与最佳实践》上市后拿到博文的赠书,不过由于工作原因,一直没时间好好的翻看,最近才拿出书来仔细的看了看。
很久都没看技术方面的书了,大部分技术相关的东西都是要用的时候才从网上临时的翻阅,基本就是看些小文章,再加上自己是个典型的实战主义者,所以对书应该也是较为挑剔的,《Ajax模式与最佳实践》是本典型的实战书籍,而且无疑是ajax实战类书籍中的佼佼者,为什么
阅读全文
摘要: 在Play OSGi中提及到了Bnd是个非常有用的东西,既然是个好东西,就介绍给大家用,在得到了Peter的授权下,我把这篇使用手册翻译成了中文,大家感兴趣的话可以到这里看看:http://www.aqute.biz/Code/BndCn,同时也会提供一个PDF的版本供大家下载,PDF版本下载地址为:http://www.blogjava.net/Files/BlueDavy/Bnd.zip。
有了Bnd后,传统的java工程非常容易打包成标准的OSGi R4的bundle,同时Bnd也为校验Bundle是否符合OSGi R4规范提供了支持,而且Bnd有命令行、Eclipse插件、Ant Task和Maven插件,拿过来非常的好用,强烈推荐大家用用看。
见文中的例子...
基于Bnd我们非常容易就把一个传统的java工程打包成了两个有效的OSGi R4的Bundle,从这可以看出这对于要把传统的java系统重构为基于OSGi的系统会有很大的帮助,除了打包生成Bundle外,Bnd本身还具备了校验bundle是否符合OSGi R4规范、把新的文件或jar文件添加到
阅读全文
摘要: Peter(OSGi主席)在7月3日的一篇blog上展示了一个很有趣的演示,相信可以给公众很好的展示下使用OSGi是一件很好玩的事,很简单的快速的基于OSGi搭建出各种各样不同的系统,我知道也许你会说你们的系统也可以,但你觉得真的能做到和基于OSGi所做出的系统的效果一样吗,really?如果可以的话,非常恭喜你,你对模块化、动态化都有很强很深的认识,如果不可以但又想做到这种效果的话,我觉得不妨和Peter所做的一样试着Play OSGi。
阅读全文
摘要: 很久以前写过一篇关于产品规划的blog,结合最近在做产品规划时的一些感想再来写一些想法,产品规划涵盖的面非常的大,宏观上来讲涉及到技术部门、销售部门、售前部门等,细节上来讲涉及到产品每个版本的功能特性、销售、推广策略、销售对象、售后支持、产品定价甚至是产品包装的细节,所以在做产品规划时要考虑的较为全面,需要做到宏观以及细节层面的共同把握,本篇blog主要是对产品规划中的蓝图规划和版本规划做一些概述。
阅读全文