2007年1月21日星期日

Service/Component/Plug-in

the term "service-oriented" has existed for some time, it has been used in different contexts and for different purposes. One constant through its existence has been that it represents a distinct approach for separating concerns.

说得很有道理,Service-Oriented中的Service在不同的上下文中有着不同的含义. 在Component Based Development中经常把严格划分的接口称为Service.

最早接触到Service和Component的争论来自于Avalon, Apache下已经关闭的一个开源项目,致力于构建Java Server Application开发的平台,其Phonix和Avalon Framework作为Java领域Component和Container的先行者,就是因为对于Component和Service的使用之争导致了框架接口的变化,最终导致小社区的瓦解.

最近看到Martin Flower的经典文章Inversion of Control Containers and the Dependency Injection pattern,他是这样做得区分: A service is similar to a component in that it's used by foreign applications. The main difference is that I expect a component to be used locally (think jar file, assembly, dll, or a source import). A service will be used remotely through some remote interface, either synchronous or asynchronous (eg web service, messaging system, RPC, or socket.)

最近得益于上次presentation的收获,对于Component和Service和Eclipse Plug-in的共同和差别有了自己的体会: 从描述软件粒度单元的角度,他们才具有可比性,也就是有Component Based/Service-oriented/Plug-in Based的热门词汇, Component和Plug-in是属于物理上Local的软件单元,Component要遵循Component Framework 运行在Container中的,而Plug-in是一种具有运行时多态性的Component,这种多态的实现机理埋藏在Plug-in规范中. Service是更高Level的粒度,也就是说Service可以利用Component和Plug-in来实现,具体体现SOA中. 所以建议OSGi中能用其他词语来表达Bundle的运行时行为,省得搞得很多人迷惑.

SOA,该上路了

作为一个从Java语言出道并打遍天下,并且经常思考设计和架构的程序员,经常会面对这样进退两难的困境: 遇到好的东西,知道它有什么用,但常常用不到现实的项目中去,一方面想深入下去,但地确没有那么多精力,需要把更多地时间用来追赶技术的更新发展,另一方面,如果对所有Low Level地技术都点到为止,总觉得心理有点虚.

今天决定终于决定上路,目标就是SOA. 有多方面原因.

SOA是很热门的东西,赶赶时髦.我再也不会相信这样的论断:"编程语言不重要","理解了业务,就可以不变应万变", 前沿技术地确make sense,从C++到Java再到Scripting Language,编程语言Does Matter,看问题的角度和关心的东西的Level不同了,反映到软件开发中也有很大不同.Web2.0是对Web1.0的颠覆吗,如果你只是从Ajax和Html的关系来看得出否定的结论,那么如果你从用户在信息生命周期扮演的角色的角度来看,那绝对是颠覆性的变化.所以请采纳Martin Fowler的建议--"每年学习一门新的语言(Programming language)

从个人兴趣和职业发展的角度来考虑,我真的很喜欢Enterprise Application, Everything Run on Bussiness Run On Enterprise Application. IBM的全面转向基于IT的咨询,大部分软件将会免费.那天和老婆的聊天,才偶然领悟到,当今的时代是出卖知识的时代,当然知识也有不同的层次,技术是为Bussiness服务,IT和Bussiness结合的咨询行业是我努力追求的职业目标.

2007年1月19日星期五

大国崛起的反思

借助于市场经济的自由竞争与取之不竭的廉价劳动力,中国近年来已成为世界上成长最快的经济体,经济总量迅速上升,已经站在世界性大国的门槛上,颇有些后发 崛起的味道.面对这样一种民族复兴的趋势,和平崛起与和谐社会一样,成为当今中国思想领域的主流词汇,显示出国人的民族自强理念和国家强盛情节.央视正在 热播的系列片正是这样一种社会思潮的最新反映.由于我未看过该片一集,无权对其加以直接评论.但想提醒此话题关注者的是,在借鉴外国经验,讨论中国能否崛 起,中国如何崛起的时候,也别忘记反思像德,日,俄罗斯这样的后发大国在崛起后曾经遭遇的惨痛失败.

在世界近代史上,德国应该说是第一个崛起的后发大国.近代早期的德国还是一个松散的邦联.但在铁血宰相皮斯麦的率领下,完成了国家统一,并大力推行国家监 控下的资本主义,一跃成为欧洲大陆首屈一指的强国.然而,这样一个国家在崛起后仍然奉行威权主义专制政体,由少数贵族掌控国家权力,结果他们在追逐阳光的 地盘的野心下发动了一次世界大战,至此陷入了战争的泥潭,最终导致德国在二战中沦为一片废墟.

另一个后发崛起的大国日本与德国有近乎一样的经历.从明治维新开始,日本致力于学习西方的科技成就与经济制度,很快从一个弱小的岛国崛起为亚洲的第一强 国.但是,日本在政治上却长期维持着皇权至上和军人政府的专制体制.一小撮军国主义分子得以操纵国家,为实现帝国的野心而与亚洲邻国和欧美列强为敌,以狂 妄的武士道精神挑起了侵华战争和太平洋战争,但也与德国相似,以惨遭原子弹轰炸,被迫无条件投降而结束了第一次崛起的历史!

俄罗斯似乎走了与德日不同的道路,它的崛起以一战后苏联建立和斯大林模式社会主义的发展为高峰.在一段时间里,由党国统摄一切的社会发展方式颇具赶超威 力,大有超越最先进的西方国家美国之势.但是具有讽刺意味的是,这样一个自称体现着历史发展走向的"进步"国家由于缺乏真正的民主,却形成了一个高居于大 众之上的官僚集团,与民众离心离德,在外强中干地与美国争霸世界的时候,失去了对政权的维续最为关键的民心支持,终于在上世纪八十年代一蹶不振,仓皇解 体,重回二流国家之列.

以上三个后发大国先崛起后失败的经历表明了这样一个事实,一个大国利用威权主义的体制在短期内崛起不是问题,但在崛起之后仍然面临着向何处去的难题.如若 继续维持原有的威权主义体制,崛起很可能只是满足少数权贵野心的工具,甚至会给人民带来灾难,而轰轰烈烈的崛起也不过像一幕很短的悲剧.相反,二战后的德 国和日本的重新崛起证明,唯有建立民主政体,才能确保崛起过程的和平,也才能确保崛起后的大国地位不致很快衰落.换言之,民主是和平崛起的必要前提,也是 大国地位连续性的长久保证.这也应当成为现在正在努力朝向和平崛起的中国的前车之鉴!

------引自新浪论谈

2007年1月16日星期二

Technical Group的命运

Technical Group作为官方组织的存在,自打建立开始就命运坎坷。

Management Level希望它能成为团队内部技术交流的舞台,但结果并不是这样. 首先,对Technical Group的定位不清晰,如果是为了围绕项目,那就要有明确的目标,真的要对项目的技术决策产生影响,如果为了让团队交流技术,那么就要放开,什么技术都可以交流,完全可以和项目不相关.其次,Technical的气氛很难培养起来,主要是公司"外包"的性质,很多工程师看不到更新技术的必要,像在温水里煮的青蛙,Management Level的人的参加让很多人缩手缩脚.最后,缺乏良好的组织和实践,只有尽可能地让所有参与者得到提高地机会,才能让大家觉得有收获,知识的贡献者得到成就感,良性循环才能开始.

人们和文化构成了环境,环境强大到了让其中的活动走向同样的发展路径.

性格决定命运,Techinical Group的命运被人决定.

"有人就有恩怨,有恩怨就有江湖。人就是江湖,你怎么退出?” -《笑傲江湖之东方不败》


2007年1月13日星期六

Eclipse joins JCP

Good news from linux-watch that Eclipse Foundation Joins the Java Community Process (JCP).
You can check it from
JCP membership list

小心被时代抛弃

前两年搞得如火如荼的“超级女生"尽管被不少人骂得惨不忍睹,但至少这种平民选秀的娱乐节目让大家眼睛亮了一把,虽然是Copy国外的节目策划方式,但在国内黑压压的环境中敢于做第一个吃螃蟹的人还是值得鼓励的。就像百度的搜索引擎Copy Google盈利模式抢占了中文搜索的市场,Copy还是创新都无所谓,只要你是以合法的方式满足了大众的需求,真正拉动了GDP的增长,而不是实现财富的转移,并且这种转移破坏了社会的和谐发展。

最近湖南卫视策划了"名声大震"的节目,歌手和名人(一男一女)的多对组合每个星期五晚上黄金时间通过表演和PK,产生最终的冠军。和超级女生相比的创新点是:1) 专业评判和短信投票对参赛者的影响得到更好的Balance,专业评判都是业内知名并且敢于评论的人,短信投票不是以总数计算而是看赢得多少地区(华东,华北.....),从而一定程度上避免了“超级女生”投票作弊的事情出现;2) 和其他媒体的合作,比如作为传统媒体的北京音乐台,还有新兴的网络媒体。

前一阵子东方卫视推出的“舞林大会”也比较成功,但美中不足的1)主持人明显太传统,哪里能和湖南卫视的真正具有娱乐专业素质的年轻人匹敌 2)所谓的舞蹈专家评判实在做作和不公平。

央视已经被远远甩在后面了,一个庞大的国营企业总有一天土崩瓦解,黄建翔的离去是对的,他的心还是年轻的。

从信息时代到平民化参与时代,只有让自己的思想年轻才能不被边缘化。

作为身处IT时代,生活在和硅谷(IT的心脏)相隔十万八千里的中国西部的一个城市的一个IT民工,只有不断告诉自己“小心被时代抛弃”。

2007年1月11日星期四

coolair love U2的来历

选Blog的标题如同选BSP一样重要。

coolair是我第一个网络ID,作为我QQ(13855587)的ID一直就没有改过。现在基本不上了,但名字作为我个人的“商标”出现在我的邮箱中 (coolair.loveU2@gmail.com)、我写的代码的包名中。后来发现一个口香糖也起了同样的名字coolair酷浪,第一冲动就是告它 侵权,但的确自己没道理,毕竟自己没有注册这个名字。

U2是创立于爱尔兰都柏林的老牌摇滚乐队,红遍欧美乐坛接近三十载。最近的两张专辑《All That You Can’t Leave Behind》、《How to dismantle an atomic bomb》连续夺得葛来美大奖。

第一次听U2是在大一的时候,当时买了两盘《 The Best Of 1980-1990》磁带,开始觉得比较吵,毕竟是摇滚乐,是《With Or Without You》、《Bad》、《All I Want Is You》这三首歌带我步入U2的音乐殿堂,渐渐影响生活和性格,这也是很多人了解和喜欢U2的路径。

2007年1月10日星期三

又是一个“愣头青”

Java Plugin Framework(JPF) 1.0 Released
Java Community总是充满着追求自由的个人和团体,让人觉得可爱和可恨。
可恨,他们狂然不顾EclipseOSGiJSR 277 的存在,又在搞类似的一套。
可爱,有人觉得他们在闭门造车,他们的辩解是他们想做Light weight的Plug-in Framework。
祝福他们在走向自由的路上走好。

一篇Eclipse和OSGi的好文章

Eclipse, Equinox, and OSGi

This article by Jeff McAffer and Simon Kaegi shows how the Eclipse Equinox modular runtime works, from Eclipse' perspective, and then discusses how Equinox can be embedded in a serverside application.

Picture Jeff McAffer

Jeff McAffer leads the Eclipse Equinox OSGi and Eclipse RCP teams and is a Senior Technical Staff Member with IBM Rational. He is one of the architects of the Eclipse Platform and a co-author of The Eclipse Rich Client Platform (Addison-Wesley). He is a member of the Eclipse Project PMC and the Eclipse Foundation Board of Directors and has been involved in Eclipse from the beginning. Jeff is currently interested all aspects of Eclipse componentry from developing and building bundles to deploy and installing them and ultimately running them. All of this in an effort to realize Eclipse's original vision as a platform for composing general sets of application function to solve real problems. Previous lives included work in distributed/parallel OO computing (Server Smalltalk, massively parallel Smalltalk, etc) as well as expert systems, meta-level architectures and a PhD at the University of Tokyo.

2007年1月9日星期二

自由的模样

“个性就是丑到了极致”,很久以前听到这个对个性的最个性化的定义,直到现在还是觉得很有道理。

“人是生来自由的,但却无往不在枷锁中”,这种残酷的非人性的枷锁,禁锢了一个个充满个性的年轻人。但凡有足够独立思考能力的人,时时会嗅到反人性的味道,碰壁到无形的枷锁。是人们自己创造了文明、社会和文化,但在走向自由之路上步履蹒跚。

社会资源是有限的,而人的欲望是无限的。有的人在满足了基本生活需求后,走向对自我实现的精神需求的追求,在相对宽松和公平的社会环境中,他们的追求和奉献愉悦了自己,而自由了人类的文明,理查德·斯托尔曼就是这样的人。


而更多的人还没有到达自我实现的阶段,权利和金钱是他们追求的目标,其他的东西都是可以被牺牲掉的,他们渐渐创造了枷锁,形成了非人性的“黑洞”。

有的人在阵痛后被吸食进去,不发出一点声响;有的人挣扎逃脱,他们被冠以“丑到极致”的人。

2007年1月6日星期六

修理我曾经的“女人”

今天下午一早就出门,到数码广场附件去修已经坏了一个多月的笔记本电脑。
这个电脑跟了我接近三年,是岳父大人在我上研一的寒假送给我的,华硕P41.7G,256M内存,价格是13500,当时如获至宝。这个本本使用率很高,被我蹂躏了三年——编程、学习、娱乐,后来公司配了工作的笔记本后,才正式退休,直到前不久彻底瘫痪。
开始拿到华硕专业维修处,修了一个星期后告知:主板有问题,只能换,800元!
下午遇到的第一家更是可恶——Ghost一遍系统后,告诉我还是主板问题,只能换,要1100元。
最后来到一家稍微正规的笔记本专业维修公司,一个小伙子负责接待我。首先根据我的故障描述和简单的测试确诊为主板上固化的内存有问题,通过他的言语、动作,看出来确实很专业,但因为无法找到对应的固化内存的配件,只好要拖到下个星期。他的预测是只需要花100多换主板上的器件就可以解决问题,听了我也是很乐观。

2007年1月5日星期五

互联网广告的未来

1) 现代世界的一个显著特征:在很多领域你可以预见未来的趋势,但是你不知道它们到底何时会发生。

2) 19973月,IntelChinabyte网站上投放中国的第一个网络广告。

3) 2001年,对一个公司来说,将70%的钱投入平面和电视广告,用剩下的30%来试试互联网和其他渠道的运气,似乎是最明智的。

4) 2002年,全球互联网广告的收入是50亿美元,2005年就涨到120亿美元。

5) “就效率而言,如果不提大小的话,广告业现在刚刚开始告别它长达一个世纪的婴儿期,也就是‘Wanamaker’时代”——英国《经济学人》杂志

6) John Wanamaker,一位非常的商人在19世纪70年代发明了百货公司和商品价格标签,还成为第一个现代的广告人——在报纸上购买地盘宣传他的商店。“我所花的一半广告开支是浪费掉的,问题在于,我不知道是哪一半”。

7) Google是伪装成搜索引擎的全球最赚钱的在线广告机构,还有很多小小的、几个月大的来自硅谷的新星,他们向广告客户出售各种新的工具来减少浪费。这些工具可能五花八门,但有一个共同点:渴望代替传统的广告方式,也就是广告客户购买向理论上的观众群“展现”自己信息的优先权。

8) 如今,互联网上的各种探测工具能够对原先模糊的,流动的群体进行无所不至的探测和细分,准确定位受众的各种特征。

——整理自《二十一世纪经济报道》

2007年1月4日星期四

Eclipse presentation前后

2006.12.18, Flank邀请我为6.9Team做一次Eclipse的Sharing,当时很兴奋。首先,这说明Eclipse还是有影响力的(多半是Flank一人的意思); 其次,对于我也是一个综合考验,要把Eclipse的方方面面涉及到(尽管不太现实);最后,对于Flank所倡导的民间技术讨论,还是抱有希望(希望最终不是幻想)。

经过一个星期左右的准备,内容基本充实。在准备的过程中,最大的收获就是能够有足够的动力,系统全面了解Eclipse的进展,对于Plugin/扩展点/plugin和Component、OSGi的Bundle的区别有了自己独到的理解,这些内容也最终反映在PPT中。演讲发挥得不是很好,Slide之间得连接有些生硬,和听众缺少互动。

讲完后得反应不是很好,大家觉得基本“概念太多,泛泛,没有把eclipse支持插件的原理讲清楚”。我不太同意这种看法:
1)我演讲得目标听众主要是不了解Eclipse,所以我花了不少时间在Eclipse历史和介绍上;对那些想了解Eclipse内部机制的听众,我将我的经验和理解融了进去,比如自己对于plug-in的定义和静态动态的分析,和OSGi、Component的比较。效果不好的原因,我讲得过于抽象,应该从Eclipse插件的开发实践入手,而这似乎是更加专注这个Topic的另外一个演讲。
2)Eclipse是一个庞大的软件体系,有Platform,General Framework,也有Domain Framework。Eclipse精妙的地方就是尽管庞大,但这庞然大物都是由最小单元——Plug-in组合扩展而成。我真的没有那么多精力对这庞大体系中的方方面面进行研究,我所关心的是其本质——plug-in机制,我花了不少时间进行讲解,从Component和容器引入,然后分析和比较,其中OSGi的部分也应该属于这部分(Eclipse Plug-in正在转向OSGi)。可能的确是没有讲透,希望以后有机会让自己和大家都酣畅淋漓一回。

Flank的一句点评——“很有文化气息的演讲”,理解了我似乎被忽略的表达,对开源精神和Participation Age的宣扬。

以下是自认为精彩的部分
1) 所谓的“气息”



2) 我对Eclipse Pkug-in的定义和理解


3) 参考数据(IDE Shar)

2007年1月2日星期二

开山之作

我是一个不喜欢凑热闹的人,对于新事物总是保持乐观的谨慎。

最早接触和了解Blog是在2004年的暑假的研究生宿舍里,从“网络日记”的创业想法,到通过美国读书的同学得知其在北美大陆上已经有了“Blog"这个响当当的名字,再到看到Web2.0风起浪涌印证一个一个理论——WeMedia/六度/长尾,最后通过Jonathan's Blog看到一个颇具CEO2.0气质的年轻人如何用Participation Age的理念改造Sun公司,我决定也要参与一把。

我的Blog的内容将涵盖生活记事,技术探讨,独立思考,音乐和足球。

我通过Blog表达自我和生活在别处的自我交流,也希望通过它和我的爱人,朋友和陌生人交流