2006年9月16日
摘要: 这本书就是之前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主要是对产品规划中的蓝图规划和版本规划做一些概述。
阅读全文
摘要: 在之前的一篇blog中提及到实现系统整合的方式有两种,其中一种就是通过建设综合系统来实现系统整合,近期经历了好几个这样的项目,来说说这种方式的项目的几个难点的地方,我是以整合厂商的身份进入此类项目,所以blog中更多的可能代表了整合厂商的心声。
在这类项目中,集成商的能力非常的关键,集成商的能力主要包括了技术能力、业务能力以及协调能力,这三种能力缺一不可,分别来看看这三种能力在此类项目中的重要性。
阅读全文
摘要: 整合项目难做,做过的人都是很容易知道的,这也是为什么整合项目通常要规划很久、实施很久,而且还要花费很大的财力的原因,在之前的blog中曾经写过整合项目难做的一些地方,像数据分析、客户的不够理解等。
随着对于整合项目实施的逐步深入,碰到的难点在逐步的增多,目前手头的一个整合项目接近完成了,对于这种类型而言的整合项目中的难点估计该出现的都已经出现了,总结下来除了数据分析这个大难点之外,还有的难点就是业务理解的不一致、系统设计的不一致和协调这三个,其实业务理解的不一致和系统设计的不一致可以列入数据分析这个范围,但由于这两点对于整合项目的影响较大,会很大程度影响整合项目实现的难度,所以还是单独列出来讲讲。
阅读全文
摘要: 在信息化建设上企业以及政府都投入了很多年了,多年的信息化建设使得企业以及政府拥有了很多套独立的专业的信息/业务系统,随着系统建设的完毕以及应用的深入,企业以及政府对于系统的依赖性在逐步的加大,企业以及政府慢慢的意识到多套系统造成了各套系统中的信息无法分享,也就是形成了常说的“信息孤岛”,企业以及政府对于信息的整合的需求已经越来越迫切也越来越突出了,尽管整合“信息孤岛”这样的概念各大公司(IBM、BEA等)在几年前就已经提出了,但应该说在几年前仍然是洗脑甚于实际,不过现在整合已经步入了实际阶段,也可以说是整合时代已经来临。
阅读全文
摘要: 这是一篇对于从事数据集成的实施、销售和售前人员的培训的PPT,较为简单,主要是讲解了数据集成类项目的概念、实现方法和通常采用的实施步骤。
感兴趣的朋友们可以到这里下载:
http://www.blogjava.net/Files/BlueDavy/数据集成项目培训.rar
阅读全文
摘要: 在数据集成类的项目中,最难的过程就是数据分析了,数据分析过程位于数据集成类项目整个过程(前期准备调研-----数据分析-----接口实现)的第二步,它为第三步接口实现提供了充分的准备,因此数据分析的正确与否很大程度上决定了数据集成能否成功的实现和完成。
怎么样有效的进行数据分析呢,怎么样提前在数据分析中尽量避免问题等到实现时才出现呢?这是一个行之有效的数据分析方法论的评判的关键。
经过几个项目的经历,反思了一下在做这些项目时比较有效的方法和失妥的方法,总结了一套目前个人觉得可行的数据分析方法,此套数据分析方法只适用于数据库---文件---数据库或数据库---数据库的分析,对于接口式的集成(例如调用对方的webservice、EJB接口等)并不适用,在这样的一套数据分析的方法中,为数据分析的步骤以及需要注意的问题事项提出了指导,编写此blog以希望有同行的同学们多多交流。
阅读全文
摘要: 话说上篇blog谈到了数据集成类项目的难点,在这篇blog中再根据数据集成项目/产品的特点来侃侃所需的人才,对于做数据集成产品的公司而言,通常都是走专业性质的产品公司的发展路线,在这样的公司中技术方向的组织架构多数为产品实施人员、产品技术支持人员和产品研发人员,那么根据数据集成类项目的情况来说,这些人才都需要具备些什么样的能力呢,产品公司又应该给这些人才提供些什么方面的培训呢,借此篇blog做个总结,同行的同学们多多交流。
阅读全文
摘要: 经过之前几年各大厂商对于应用整合的概念的大肆推广、吹嘘,近两年来随着各企业/单位的基础系统的建设完善,应用整合类项目开始步入实质阶段,而数据集成就是目前应用集成类项目中一个重要的部分,那么数据集成类的项目它的难点通常会有哪一些呢,根据自己的经验稍微的进行了些总结,希望从事相关工作的同学们多多交流。
阅读全文
摘要: 不知道很多正在创业、已经起步或者想做中间件厂商的同学们会怎么看待这个问题,中间件厂商到底有多难呢,它的难处到底又在哪里呢,为什么中国一直以来就很难诞生一家比较好的中间件产品的厂商呢,在这篇blog中想谈谈自己的一些感受。
阅读全文
摘要: 由于当时匆忙的发布,没有进行仔细的校对,发布的EventAdmin部分的代码中缺少了使用DS实现的示例,但同时在其中又提供了OSGI-INF/component.xml,导致了如果大家直接使用该Component.xml切换为使用DS来实现EventHandler的时候会出现运行时事件未通知到EventHandler的现象。
阅读全文
摘要: 在本届EclipseCon 2007大会上,OSGi占据了不少的Topic,下面就对本次EclipseCon 2007大会上OSGi相关的主要的一些Topic简单的介绍下,最后总结下通过本次大会形成的反馈(信息来源于OSGi官方网站blog和EclipseCon 2007官方网站),关于EclipseCon其他方面的精品Topic在后续的blog中也将相继介绍。
阅读全文
摘要: Peter在2月23的时候在OSGi的官方网站上贴了这么一篇blog,挺经典,至少让我学到了一些东西,建议关注OSGi或者关心系统设计中资源管理的人都看看,在这篇blog中我简单的将peter写的blog的意思大概写一下,也不全部翻译了,另外说一下自己的看法。
如果感兴趣的话,请同学们去查看Peter的这两个帖子:
http://www.osgi.org/blog/2007/02/osgi-extender-model.html
http://www.aqute.biz/Snippets/Extender
这个OSGi Extender Model给了我们什么启示呢:
1、Declarative方式的使用
Declarative无非是现在一种非常非常流行的软件设计理念,在这样的理念中,可以尽量的保证当前组件的简单,而通过Declarative的方式去增强的描述该组件,其实在spring中最重要的也是这个思想,而在OSGi的DS中也是这么一个思想,声明式的编程自然让整个系统的体系变得非常的简单和灵活,并且大大提升系统组件的可
阅读全文
摘要: 去年带了几个新人,越来越觉得软件开发这行还是需要一定的"天份"的,其实每行都需要一定的"天份",每个人都有自己最为适合的行业,特别是技术行当而言,如果真的希望在软件的技术领域有所发展的话,勤奋、吃苦的精神固然是必须的,但以下的几点素质却是基本的,而有些我觉得完全是靠天生的,或者后天小时候的努力才能培养出来的,如果不具备的话,我觉得这样的人就不是很适合从事软件技术行业:
1、逻辑思维能力
2、举一反三能力
3、自学、独立解决问题的能力
4、对软件开发的兴趣
阅读全文
摘要: 搭建动态化的系统是作为java开发人员一直就非常追求的目标,一个系统能够动态化就意味着:
★ 添加新功能时不需要重启系统;
★ 修改已存在的功能时不需要重启系统;
★ 删除一些不需要的功能时不需要重启系统;
★ 修改系统中的配置时可以不需要重启系统即刻生效;
★ 系统的业务行为可动态的改变。
也许习惯了传统java开发方式的人而言,没有这些动态化也没什么,但不可否认,这些动态化的特征还是非常吸引人的,尤其是如果能很容易就获得这些好处,那么自然就不会错过这些好处了,基于OSGi可以很容易的让我们获取到这些好处。
阅读全文
摘要: 作为一个桌面应用的开发者,向RCP致敬的理由会是RCP提供了丰富的界面控件,使得基于Java开发桌面应用也变得容易了很多,尽管仍然不能和基于VB、Delphi去相比;对于我而言,尽管使用RCP也是为了开发桌面应用,但RCP给我带来的更多的感觉是在它充分发挥插件化系统的优势方面,RCP可以视为基于OSGi构建插件化系统的最佳实践的指导,从RCP的设计中,可以学习到如何让应用做到模块化、让应用做到动态化,甚至还可以学习到象如何自动生成界面这样的细节设计思想,尽管我自己基于OSGi做应用型的产品也做了一段时间了,但自己仍然一直感觉到在发挥插件化系统的优势方面还有不小差距,RCP可以看做是基于OSGi做插件化应用系统的最佳实践,其中的不少设计方法甚至都可以整理成为基于OSGi做插件化应用系统的设计模式,让我们进入RCP之旅,揭开面纱,一探其本质吧,相信大家在了解了RCP的设计思想,看过其代码后,不得不对RCP表示崇高的敬意,大师之作,不同凡响。
阅读全文
摘要: 上午在普元的网上培训的地方和业界的朋友们进行了OSGi的交流,PPT在我之前的blog中已经提供,大家可以通过以下网址来下载今天演讲时的全程录像(带声音),PPT:
http://www.osgi.org.cn/opentopic/OSGiInAction.rar
其中的会议全程录像就是带声音和演示的东西,感兴趣的同学们可以下去听听、看看,欢迎大家多交流。
这次的演讲主要就是一个介绍,讲的都比较粗,没有细致的去讲其中的东西。
阅读全文
摘要: 新年即将来临,Peter在OSGi的官方blog上对OSGi 06年的发展进行了回顾,同时也就07年OSGi进行了展望,在这篇blog中我也对一年以来OSGi的发展、自己在OSGi方面的工作以及对于明年OSGi的期望也做些阐述。
阅读全文
摘要: 12月30日下午13:00--15:00我将在普元goCom社区举行一次OSGi Topic,欢迎感兴趣的O粉(OSGi Fans)到时前往交流和讨论,由于这是在网上首次进行的公开Topic,鉴于对听众群不了解的情况,本次Topic主要仍然是宣传和推广OSGi,所以基本上只是OSGi的一些简介,以下列出了大纲和PPT的下载地址。
阅读全文
摘要: 之前也写过关于Service-Oriented Component Model的blog了,Service-Oriented Component Model(以下简称SOCM)是OSGi R4中最为重要的改进,SOCM也是切实体现OSGi的动态性的模型,大家在使用SOCM的时候可能会因为受到原有思想的影响而一时无法理解,在这篇blog中将再次的对SOCM进行讲解,以便大家能够更好的理解和进行运用。
阅读全文
摘要: EclipseCon2007中OSGi主题部分的Long Talks均已提交,虽然尚未确定最终哪些Topic将会入选,我们可以先一睹为快,此次总共提交了16个Topic,让我们来看看这些Topic:
阅读全文
摘要: 置换模式,引用即将出版的《ajax模式和最佳实践》(也就是《ajax patterns and best practice》)中对于它的意图的描述:
“置换模式(Permutations pattern) 被服务器用来分离资源(URL)与表现(例如HTML或XML)。分离资源与表现使得终端用户只需要关心资源,不需要担心URL所关联的内容。例如,假如一个客户的银行帐号是URL http://mydomain.com/accounts/user,那么相同的 URL 能够被各种各样的设备 (电话,PC等等)来使用。”
阅读全文
摘要: 一眼看过去相信大家都知道用Runtime.getRuntime().exec来调用,我的需求就是:
调用Oracle EXP命令完成备份,并返回生成的备份文件名,这个备份文件会很快在其他的地方被使用。
采用Runtime.getRuntime().exec我们都知道,需要处理它的InputStream,以避免出现执行的命令输出的信息过多使得进程被堵死,OK,按照这样的方法写出来的代码执行后却碰到了问题.....
阅读全文
摘要: 在之前的一篇blog中我曾经写到过CM对于application level的configuration的不适用,提到的主要是两点:
1、无法在外部统一的对Bundle中service所需要的属性进行管理;
当时基于这个约束,只好在各自的bundle下编写一个管理当前bundle属性的服务,当外部需要管理此bundle的属性时,必须通过这个服务来管理,否则的话改变是不会起到效果的。
2、无法共享属性的配置。
每个bundle都保存自己独立的一份属性配置,这就导致了当出现共享属性时,在管理端也不得不同时去重复的更新多个bundle。
经过对于Equinox的CM实现代码的查看,发现我冤枉CM了,现在给它平反,:)
阅读全文
摘要: 此模式出自《Ajax patterns and best practice》,这个模式非常具备实际意义,为客户端的缓存实现做出了指导,和以往在使用传统B/S结构进行开发时所做缓存的思路有一个改进点,:)。
阅读全文
摘要: 界面设计,一个在软件行业非常尴尬地位的东西,但是绝对离不开的东西,不过在软件行业的技术发展一直是为程序员们提供更佳的方式,而在界面设计方面则是在近些年来才逐渐的重视,但这并不意味着在界面设计上一直就做的很好,反倒在界面设计方面一直就是软件设计中最薄弱的环节,如果从软件设计的层面去看界面设计,N多的设计师都会看到其中犯的N多设计错误的基本常识,可以去想想为什么每次系统改界面总会是件那么痛苦的事,很多时候都是因为在项目/产品中缺乏专业的界面设计师而造成的。
在你的项目/产品中,是否有专业的界面设计师呢?
阅读全文
摘要: EclipseCon 2007中将会有关于OSGi的专题Topic,经过一段时间的Topic征求后,目前公布出来了一些Topic供大家投票,以确定到底哪几个Topic会在明年的EclipseCon上登场,稍微看了一下,基本上都属于初级的介绍,没有什么深入性质的探讨,毕竟OSGi在国外目前也只是处于开始流行阶段,顺便提一下最近OSGi EEG倒是有不少的动作,相信近期会有一些他们活动的结果公告出来。
在这篇blog中将介绍下这些参加海选的Topic....
总体而言,无论这里面哪些Topic会成为EclipseCon 2007的正式Topic,它们的讲述必将为OSGi的推广做出贡献,支持谁,就赶紧为它投上一票吧,移动、联通、小灵通用户均发送至OSGi,哈哈
回到正题,给Topic投票必须是EclipseCon网站的注册会员,或者你可以直接发邮件给peter,:),具体投票的地址请见:
http://bundles.osgi.org/Conference/Tutorials
阅读全文
摘要: 每个面试官随着面试经验的积累,都会逐渐的积累自己的一套面试标准,当然,这套面试标准也会随着公司的需求、业界的发展而不断的变化和发展,面试标准反应了面试官对于各种级别技术人员的技术要求,在以前的一篇blog中曾经提及过面试官应营造好的面试氛围,而这篇blog则会谈及自己面试时采用的标准来衡量面试者的技术能力,抛砖引玉,大家多交流.....
个人觉得面试标准主要由纯技术方面的标准和符合公司产品/项目技术要求的标准两部分组成,当然,还有一些是性格方面的要求,这篇blog主要谈及下技术方面的面试标准,由于面试多和公司要求、面试官的判断标准有关,所以通常来说不能因为没通过面试就认为自己没有这方面的能力,需要多尝试。
面试时对于面试者我会根据程序员和设计师两种大的标准来问问题。
阅读全文
摘要: Peter对于JSR 277是极度的关注,毕竟JSR 277和OSGi在实现的目标上具备了那么多的共同性,从98年JSR 277开始,Peter就希望能加入JSR 277 JCP Group,但是被拒了,JSR 277基本完全是SUN在主导的,经过这么多年了,JSR 277的草稿终于是发布出来了,Peter在对JSR 277做了Review后特意写了篇Blog做了评价,总结而言,Peter认为JSR 277 just like a toy,JSR 277并没有吸取OSGi在这8年模块化方面的教训和经验,在模块的一致性校验、可选性、分离包机制等等方面都缺少足够的考虑,原文见:
http://www.osgi.org/blog/2006/10/jsr-277-review.html
阅读全文
摘要: 关于OSGi、SCA的最新的一些消息。
阅读全文
摘要: POJO这个词无疑是这几年来Java界最为热门的词,各类框架都是以支持POJO形式作为其关键的特性之一,确实,POJO方式降低了开发的难度和门槛,让开发人员能够得以更加的关注和实现业务,而Spring也同样是依靠着"POJO Enhanced"获得了大家的认可。
阅读全文
摘要: 发了封关于SCA和OSGi的mail给OSGi-dev的邮件列表,收到了Peter的回应,Peter的回信如下:
"What the EEG will do depends on its members ...
I think there is a lot of excitement about SCA and OSGi. I also just
read it and agree that it seems very complementary. But we need people
that can drive the work."
目前还没收到EEG成员的回应,估计他们可能不在这个maillist里吧......
阅读全文
摘要: OSGi和SCA到底能有什么关系呢,确实,至少从现有的OSGi规范以及SCA规范分别来看,两者没有直接的关联,由于OSGi规范是对于嵌入式领域的软件而制定的,其特别注重软件的动态性的支持,而SCA规范是对于企业应用领域的软件而制定的,并且是基于SOA的,其特别注重对于企业应用而言的基础设施的实现,同时又尽量的去屏蔽对于SCA容器使用者而言SOA带来的技术实现细节的难度;但根据OSGi规范以及SCA规范,同时又能发现两者有个共同希望解决的问题,那就是规范的模块化,这是OSGi规范和SCA规范中的一个共同目标。
阅读全文
摘要: IBM认为一个完整的EAI的解决方案应当包括五个方面:用户交互、应用连接、业务流程整合、构建整合和信息集成。
在这篇blog中来探讨下EAI的应用连接,IBM对于应用连接的定义:通过 HUB 或总线架构,实现应用与应用之间的连接,完成相关的数据路由与数据格式转换,对于IBM的这个定义,非常的认可,在实际的EAI类的项目中,这也确实是个很实际的需要解决的问题,可能很多人仍然会认为EAI是一种炒作,好象也是没有什么做的成功的EAI项目,但EAI项目现在确实是存在的,而且在这块的技术、实施经验也是不断的成熟,EAI项目带来的意义更是不可否认,在这篇blog中将从应用连接所应对的应用场景、技术实现两个方面来探讨下:
阅读全文
摘要: SCA无疑是目前业界最为火热的词语之一,粗略的翻阅了一下SCA V0.9的规范,先不论SCA的商业因素,不得不感叹于SCA确实可以称为企业应用开发的利器,而SCA的野心也是从目前的规范中可见一斑。
阅读全文
摘要: OSGi的CM就是Configuration Admin Service,是用于管理Bundle属性、并在属性发生变更时通知相应的Service,但在实际的使用中发现OSGi的CM规范缺少对于共享属性配置管理的支撑。
关于模块的耦合上只有个小小的想法讨论下,就是做为设计师你能否很快的告诉别人搭建你其中的一个模块的工程需要哪几个模块的支撑,或者最好就是运行检验你其中的一个模块的功能需要哪几个模块来支撑,当然,这个在基于OSGi的系统更容易来做到,不过这个确实是设计时很关键的一个地方,这既反映了系统中模块的耦合性,更体现了系统的扩展性以及系统的组装耦合上是否合理。
阅读全文
摘要: OSGi联盟的主席Peter做了这么个小东西,原理非常的简单,在现在传统的使用ajax的方式多为通过js直接调用Spring中的bean,那么peter做的这个小东西就变成了js直接调用OSGi中的service,基本上没有什么难度,只是玩了一把ajax的东西,估计是peter以前对这块接触的少,peter把他做的这个东西放到他的Nokia E70上跑.....
阅读全文
摘要: 模块的可扩展性是模块设计时需要重点考虑的非功能特性,对于框架而言,扩展性的设计则更加的重要,框架需要通过不断的扩展来充实其基础设施,构成真正的应用系统。
模块的扩展主要有两种,一种为扩充功能的扩展,另一种为覆盖性质的扩展,当然,本质上而言是可以把这两者进行合并的。
在模块的扩展上Eclipse的扩展点的设计方式无疑是支撑模块可扩展的经典设计方法,到现在为止仍然是如此,基于Eclipse的扩展点的设计无论是对于扩充功能的扩展还是覆盖性质的扩展都支持的非常好,这个经典的设计也是RCP得到那么多client side app的原因之一,尽管OSGi中并没有定义这方面的规范,但做为OSGi R4的RI的Equinox考虑到更好的支撑Bundle的扩展就引入了Eclipse的扩展点的设计,在现在的Equinox中我们仍然可以基于Eclipse的扩展点的方式来支撑模块的可扩展性。
但是否有别的方法呢?一定需要Eclipse的扩展点的方式吗?其实个人觉得基于OSGi的Service就已经天然的构成了一种可扩展的设计,为什么这么说呢?
阅读全文
摘要: 在企业应用中,持久化无疑是其中非常重要的一环,尽管OSGi的规范中也有负责持久数据、属性的服务规范,但对于企业应用而言那些显然是不够的,这里就以目前Java界流行的Hibernate为例来看看如何集成Hibernate到OSGi中,使得我们能够很简单在OSGi中使用Hibernate进行持久化。
阅读全文
摘要: OSGi越来越风行了,得到的关注越来越多,这本来是好事,但听到的越来越多的声音都是认为OSGi对于B/S、企业应用支持的太不够,怎么说呢,这些声音挺好,至少说明发出这些声音的人肯定是想过将OSGi应用到自己的项目/产品中去,虽然这是好的,但我觉得更多的原因还是很多的人都习惯的以一种框架的观点去看OSGi,这对于OSGi而言或多或少有些不公平,为什么这么说呢?
阅读全文
摘要: 最近一段时间,OSGi这个词在业界出现的频率已经越来越高,其受关注的程度也已经在大幅度的增长,当然,这其中不可否认OSGi联盟、Eclipse、IBM等的推广,但这主要当然还是得益于OSGi在规范的模块化以及动态化的管理的领先优势,但也会发现,很多厂商以及很多人对于OSGi仍然处于观望阶段,这主要还是因为OSGi在企业应用上目前尚无太多案例的原因,但OSGi就真的不适合企业应用了吗,还是别的原因让这么多的厂商、这么多的人对OSGi只是处于观望的阶段呢,应该说,主要原因应该是OSGi目前对于企业应用缺少足够的基础设施,OSGi联盟显然认识到了OSGi在企业应用上的不足,9月11日OSGi联盟对外正式宣布了EEG(EEG的成员包含了IBM、BEA等各大厂商)的成立;而Spring与OSGi的结合更是很好的推动OSGi进入企业应用。那么,就现在的OSGi规范来看,它离企业应用到底还有多远呢:
阅读全文
摘要: 个人觉得设计人员可以分为四种类型:模块设计人员、框架设计人员、专业领域设计人员、系统设计人员,这四种类型的设计人员并没有什么绝对的谁强谁弱,只能说各有千秋吧,但一定程度上来讲,四种类型之间还是存在着一些关联,来看看这四类设计人员的专注点和关联吧:
阅读全文