2007年4月4日
摘要: 這本書就是之前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.tkk7.com/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.tkk7.com/Files/BlueDavy/數據集成項目培訓.rar
閱讀全文
摘要: 在數據集成類的項目中,最難的過程就是數據分析了,數據分析過程位于數據集成類項目整個過程(前期準備調研-----數據分析-----接口實現)的第二步,它為第三步接口實現提供了充分的準備,因此數據分析的正確與否很大程度上決定了數據集成能否成功的實現和完成。
怎么樣有效的進行數據分析呢,怎么樣提前在數據分析中盡量避免問題等到實現時才出現呢?這是一個行之有效的數據分析方法論的評判的關鍵。
經過幾個項目的經歷,反思了一下在做這些項目時比較有效的方法和失妥的方法,總結了一套目前個人覺得可行的數據分析方法,此套數據分析方法只適用于數據庫---文件---數據庫或數據庫---數據庫的分析,對于接口式的集成(例如調用對方的webservice、EJB接口等)并不適用,在這樣的一套數據分析的方法中,為數據分析的步驟以及需要注意的問題事項提出了指導,編寫此blog以希望有同行的同學們多多交流。
閱讀全文
摘要: 話說上篇blog談到了數據集成類項目的難點,在這篇blog中再根據數據集成項目/產品的特點來侃侃所需的人才,對于做數據集成產品的公司而言,通常都是走專業性質的產品公司的發展路線,在這樣的公司中技術方向的組織架構多數為產品實施人員、產品技術支持人員和產品研發人員,那么根據數據集成類項目的情況來說,這些人才都需要具備些什么樣的能力呢,產品公司又應該給這些人才提供些什么方面的培訓呢,借此篇blog做個總結,同行的同學們多多交流。
閱讀全文
摘要: 經過之前幾年各大廠商對于應用整合的概念的大肆推廣、吹噓,近兩年來隨著各企業/單位的基礎系統的建設完善,應用整合類項目開始步入實質階段,而數據集成就是目前應用集成類項目中一個重要的部分,那么數據集成類的項目它的難點通常會有哪一些呢,根據自己的經驗稍微的進行了些總結,希望從事相關工作的同學們多多交流。
閱讀全文
摘要: 不知道很多正在創業、已經起步或者想做中間件廠商的同學們會怎么看待這個問題,中間件廠商到底有多難呢,它的難處到底又在哪里呢,為什么中國一直以來就很難誕生一家比較好的中間件產品的廠商呢,在這篇blog中想談談自己的一些感受。
閱讀全文
摘要: 由于當時匆忙的發布,沒有進行仔細的校對,發布的EventAdmin部分的代碼中缺少了使用DS實現的示例,但同時在其中又提供了OSGI-INF/component.xml,導致了如果大家直接使用該Component.xml切換為使用DS來實現EventHandler的時候會出現運行時事件未通知到EventHandler的現象。
閱讀全文