国产一区二区精品久久_蜜桃狠狠狠狠狠狠狠狠狠_午夜视频精品_激情都市一区二区

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 采訪Apache Camel項(xiàng)目主要維護(hù)者之一 jnn (十)

采訪Apache Camel項(xiàng)目主要維護(hù)者之一 jnn (十)
2010-01-14 23:26:04  作者:  來源:
Apache Camel 是一個(gè)非常優(yōu)秀的開源項(xiàng)目,這是一個(gè)非常強(qiáng)大的基于規(guī)則的路由以及媒介引擎,該引擎提供了一個(gè)基于POJO的 企業(yè)應(yīng)用模式(Enterprise Integration Patterns)的實(shí)現(xiàn),你可以采用其異常強(qiáng)大且十分易用的API 來配置其路由或者中介的規(guī)則。

Apache Camel 采用URI來描述各種組件,這樣你可以很方便地與各種傳輸或者消息模塊進(jìn)行交互,其中包含的模塊有  HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF Bus API。 這些模塊是采用可插拔的方式進(jìn)行工作的。Apache Camel的核心十分小巧你可以很容易地將其集成在各種Java應(yīng)用中。

JavaEye的資深會(huì)員jnn (Willem Jiang,姜寧) 是Apache Camel項(xiàng)目主要維護(hù)者之一,他是一位非常優(yōu)秀的開源項(xiàng)目開發(fā)者和支持者,JavaEye非常榮幸的采訪了他。

jnn 博客:http://jnn.javaeye.com/

Apache Camel  http://camel.apache.org/
FuseSource    http://fusesource.com/
CXF 中文郵件組  http://groups.google.com/group/cxf-zh?hl=zh-CN

歡迎大家推薦更多開源項(xiàng)目給我們,支持中國的開源項(xiàng)目發(fā)展,發(fā)站內(nèi)短信給JavaEye管理員或者發(fā)信到webmaster@javaeye.com,謝謝。

采訪Apache Camel項(xiàng)目主要維護(hù)者之一 jnn Top

JavaEye:1.Hi,jnn,非常榮幸能夠采訪你,你可以介紹一下自己為什么要加入Apache Camel項(xiàng)目嗎?

jnn:這個(gè)說起來有點(diǎn)話長,在加入Apache Camel之前, 我做有關(guān)Apache CXF的開發(fā)快一年的時(shí)間了。當(dāng)時(shí)Camel需要和CXF進(jìn)行集成,于是我就自告奮勇接受了這個(gè)任務(wù),參與了Apache Camel的開發(fā)。(具體的過程可以參考我的一篇blog:
開源兩事記)

JavaEye:2.能介紹一下Apache Camel項(xiàng)目嗎? 它的特點(diǎn),使用的范圍,和同類項(xiàng)目比如Mule相比較的優(yōu)勢(shì)?

jnn:對(duì)于企業(yè)應(yīng)用來說,由于歷史或者多廠商等原因造成了其系統(tǒng)之間的通訊協(xié)議多樣化,而由于企業(yè)業(yè)務(wù)發(fā)展,這些應(yīng)用系統(tǒng)之間交互需求日益增多。Apache Camel可以幫助大家通過定義簡單的路由規(guī)則來實(shí)現(xiàn)不同企業(yè)應(yīng)用之間的互聯(lián)互通。Apache Camel 把不同的企業(yè)應(yīng)用抽象成為Endpoint, 通過URI來對(duì)這些Endpoint 進(jìn)行描述,由于Apache Camel提供了一個(gè)基于POJO的企業(yè)應(yīng)用模式(Enterprise Integration Patterns)的實(shí)現(xiàn),同時(shí)Camel提供了60多個(gè)組件來負(fù)責(zé)具體的傳輸協(xié) 議,這樣用戶可以通過簡單的消息路由規(guī)則定義,就可以實(shí)現(xiàn)各應(yīng)用系統(tǒng)之間交互。

簡單來說如果你有一個(gè)應(yīng)用只提供一個(gè)JMS接口, 而你的另一個(gè)應(yīng)用提供 WebServices接口,那你的路由規(guī)則可以這么定義:
from("jms://xxxx").to("cxf://xxxx)
【注】Camel通過CXF提供了對(duì)WebService的支持。
當(dāng)然你有可能需要對(duì)JMS接口過來的消息做一些處理在轉(zhuǎn)發(fā)給WebService應(yīng)用。
那你只需在兩個(gè)節(jié)點(diǎn)之間要加入一個(gè)processor來實(shí)現(xiàn)你需要做的處理就行了
from("jms://xxxx").processor(new MyProcessor()).to("cxf://xxxx")

由上面的例子可以看到Camel的路由規(guī)則很直觀簡單,你可以像寫Java代碼一樣定義路由規(guī)則。這得益于Camel的創(chuàng)建者 James Strachan(他也是Groovy的創(chuàng)建者)的貢獻(xiàn)。

當(dāng)然Camel還提供了其他方式來描述路由規(guī)則, 例如Spring 配置文件, Scala等。

目前市面上有不少的同類開源產(chǎn)品, 例如 Spring Integration, Mule等。

Camel與他們相比有最大的不同就是它十分小巧,而且不會(huì)讓程序員失去對(duì)代碼的控制。你可以把它當(dāng)作一個(gè)小的應(yīng)用庫,而不是一個(gè)大的運(yùn)行容器。 這樣你可以很輕松 地將其集成到你的Web容器,JBI容器, 或者OSGi容器中。你可以像寫Java代碼到方式編輯你的路由規(guī)則,IDE可以取保你在短時(shí)間寫出正確 的規(guī)則。

還有Camel和Apache ActiveMQ,CXF,ServiceMix有很好的集成,而這些項(xiàng)目都是 企業(yè)應(yīng)用開發(fā)經(jīng)常會(huì)接觸到的。

JavaEye:3.現(xiàn)在大概有多少用戶使用Apache Camel項(xiàng)目。

jnn:這個(gè)問題比較難直接回答, 因?yàn)?Apache Camel是開源項(xiàng)目,大家可以在不通知我 們的情況下,直接使用, 所以我們沒有直接的數(shù)據(jù)來回答這個(gè)問題。現(xiàn)在 camel.apache.org 每天有1~2K的獨(dú)立IP訪問,還有 Apache Camel 的郵件 列表的活躍程度很高,目前排在Apache項(xiàng)目中的第七位http://www.nabble.com/Apache-f90.html

JavaEye:4.Apache Camel 2.0 M3版本剛剛于7月25日發(fā)布,2.0正式最終版將在什么什么發(fā)布? 2.0版本相比之前的版本有哪些重大改進(jìn)。

jnn:Apache的Release風(fēng)格是沒有一個(gè)具體的時(shí)間的, 如果開發(fā)者覺得差不多了,就可 以發(fā)布。 目前Camel 2.0的開發(fā)基本就緒,目前我們正在修復(fù) 2.0 M3發(fā)布之后發(fā) 現(xiàn)的bug,如果順利的話,2.0版本應(yīng)該在下個(gè)月就能發(fā)布了。

Camel2.0 和 Camel 1.x相比我們簡化了API的設(shè)計(jì),添加了很多新的組件,同時(shí)提 供了對(duì)OSGi的集成支持, 具體大家可以參考這個(gè)鏈接:http://camel.apache.org/camel-200-release.html

JavaEye:5.Apache Camel項(xiàng)目的roadmap是什么?近期遠(yuǎn)期的開發(fā)計(jì)劃是什么?

jnn:Apache 項(xiàng)目開發(fā)是通過郵件來驅(qū)動(dòng)的,我們沒有項(xiàng)目經(jīng)理來給我們指定具體的 roadmap。很多Feature都是在和用戶的郵件討論中形成的。目前我們規(guī)劃的還是Camel 2.0部 分的內(nèi)容http://camel.apache.org/camel-20-design.html,歡迎大家加入Camel需求討論中來http://www.nabble.com/Camel---Users-f36428.htmlz

JavaEye:6.能否請(qǐng)你介紹一下Apache Camel的支持組件,以及開源產(chǎn)品和Fuse這樣商業(yè)產(chǎn)品之間的區(qū)別嗎?

jnn:Camel 支持的組件有ActiveMQ,AMQP,Atom,Bean,Browse,Cometd,CXF 等,所有詳細(xì)支持的組件請(qǐng)看這個(gè)頁面: http://camel.apache.org/components.html,這里面還有一些Camel基本概念的介紹 http://jnn.javaeye.com/category/27938。我簡單給你說一下開源產(chǎn)品和Fuse這樣商業(yè)產(chǎn)品兩者的區(qū)別吧:開源軟件如果出現(xiàn)問題了,很難得到及時(shí)的修正, 因?yàn)槟愫茈y去推動(dòng)開發(fā)人員去完成你的需求,如果是商業(yè)產(chǎn)品, 有一個(gè)契約關(guān)系, 這樣可以保證你的問題能夠及時(shí)被修正。還有商業(yè)產(chǎn)品有一整套的測(cè)試發(fā)布管理機(jī)制,來保證產(chǎn)品質(zhì)量。 而且我們的Fuse套件是集成了Apache Servicemix, ActiveMQ, CXF , Camel, 它們之間的版本關(guān)系是一致的。 而且目前Fuse套件會(huì)每個(gè)月做一次Release, 比起apache 的release要快很多。還有就是Fuse套件在Apache項(xiàng)目之上還提供了一些擴(kuò)展的支持, 例如Fuse MR就提供了支持一些商業(yè)產(chǎn)品的支持,例如MS Queue, Progress Actiional 等。有Fuse套件本身也是開源的,只是使用的軟件許可和Apache的軟件許可不同。Apache的軟件許可允許你將Apache軟件打包到你的商業(yè)產(chǎn)品中,你不需要為此付任何費(fèi)用。Fuse套件不允許你將Fuse套件打包到你的商業(yè)產(chǎn)品中, 當(dāng)然這是出于保護(hù)商業(yè)利益的角度上來說的。目前Fuse的測(cè)試是運(yùn)行在6個(gè)操作系統(tǒng)平臺(tái)上, 除了包含常規(guī)的Unit test, 和Integration Test, 還包含CPI test。這是一般開源軟件項(xiàng)目不具備的。還有Fuse套件有專門的CS 支持隊(duì)伍。

JavaEye:7.請(qǐng)問,你加入Apache Camel項(xiàng)目大概有多長時(shí)間了?你主要負(fù)責(zé)哪部分的開發(fā)?

jnn:我是在2007年7月的時(shí)候加入 Apache Camel項(xiàng)目開發(fā)的, 到現(xiàn)在也有2年的時(shí)間了。Apache開源項(xiàng)目的開發(fā)比較松散,你可以選擇你自己感興趣的內(nèi)容工作,很難說哪塊代碼是由你負(fù)責(zé)開發(fā)的(誰都可以過來修改你的代碼  ), 就目前的情況來 說 camel-cxf,camel-osgi 組件的開發(fā)和維護(hù)的主要工作由我來完成。

JavaEye:8.請(qǐng)問,你平均一周花多長時(shí)間在apache camel項(xiàng)目上?你覺得參與這個(gè)項(xiàng)目,最大的收獲是什么?

jnn:由于我是全職做Apache Camel商業(yè)版本的Fuse MR的開發(fā),所以基本上每周要花 20~30小時(shí)做與Apache Camel相關(guān)的工作,其他時(shí)間,我有可能會(huì)去做與Fuse相關(guān) 的開發(fā)支持工作。

參與這個(gè)項(xiàng)目的最大收獲就是接觸到了世界級(jí)的開發(fā)者,打開了我的眼界,當(dāng)然也從他們身上學(xué)到了不少的東西。

JavaEye:9.你對(duì)國內(nèi)的開發(fā)人員參與開源項(xiàng)目的現(xiàn)狀有什么評(píng)價(jià)?你能對(duì)希望加入國際開源項(xiàng)目的開發(fā)者提一些建議嗎?

jnn:去年年底的時(shí)候,我參加過Apache在北京組織的一次meet up,就Apache項(xiàng)目的參 與者來說在中國的開發(fā)者很少,好像只有我們之外就是Intel參與的Harmony項(xiàng)目的 成員。我曾經(jīng)寫過一篇blog提到國內(nèi)的開源現(xiàn)狀我覺得如果大家想?yún)⑴c國際開源項(xiàng)目的開發(fā),需要轉(zhuǎn)變一個(gè)觀念,就是我們要真正融入到開源社區(qū)中來。

開源的最大好處就是沒有代碼壁壘, 但是光有免費(fèi)的代碼是不夠的, 如果你想用好開源軟件,你需要真正融入到開源社區(qū)中來, 你可以在這里問問題, 提交 bug,或者補(bǔ)丁, 文檔。 其實(shí)只要你愿意,就可以加入到國際開源項(xiàng)目開發(fā)。

對(duì)于在校大學(xué)生來說,還有一個(gè)途徑可以幫助你加入到國際開源項(xiàng)目的開發(fā),就是參加Google舉辦的Summer of Code。目前Google和各大開源組織都有聯(lián)系,每年資助幾千名世界各地的學(xué)生參與開源項(xiàng)目的開發(fā)。今年夏天在Apache參加GSoC的中國學(xué)生大概有12個(gè)人,大概占今年Apache GSoC整個(gè)項(xiàng)目人數(shù)的三分之一。

JavaEye:10.能介紹Apache Camel的開發(fā)團(tuán)隊(duì)嗎?您目前是通過SOHO的方式工作嗎?這種工作方式感覺如何?

jnn:整個(gè)團(tuán)隊(duì)有4,5個(gè)人,查看團(tuán)隊(duì)介紹:http://fusesource.com/community/apache-committers-and-fuse/。我們這比較特殊一點(diǎn), 單位里同事很分散,在不同的地區(qū),大家都在家辦公。每個(gè)星期有電話會(huì)議,通過語音,郵件和其他方式交流。經(jīng)常在家工作會(huì)雖然有孤單感,這是優(yōu)點(diǎn)也是缺點(diǎn),還有就是我們和國外的同事有時(shí)差, 有時(shí)候晚上也得干活, 所以干活和平時(shí)的生活分得不是很清楚。不過,現(xiàn)在我家女兒剛3個(gè)月, 我很享受在家工作的時(shí)間。另外,我們這邊同事(前同事)聯(lián)系還是比較緊密的, 基本上每個(gè)禮拜都會(huì)聚會(huì)一下。

JavaEye:11.你平時(shí)和國外的同事都是用英文交流嗎?很多程序員技術(shù)很好,但是覺得英文太難,你有什么建議嗎?

jnn:是的,和國外同事交流幾乎是全英文環(huán)境。這個(gè)就是要多寫多練。 其實(shí)我們的讀寫能力還是可以的,就是很少有機(jī)會(huì)直接和老外面對(duì)面的溝通。我剛開始的時(shí)候?qū)慐mail也很痛苦, 一封信得花2個(gè)小時(shí)左右, 現(xiàn)在寫得多了就好很多。目前直接和老外對(duì)話到機(jī)會(huì)還不多, 平時(shí)都是使用IRC, 和Email。 所以一定得多練習(xí),當(dāng)然開始到過程比較困難,只要你能堅(jiān)持持續(xù)的使用,練習(xí)英文,練習(xí)口語,堅(jiān)持半年以上,就挺過來,你的英文水平就能有很大的進(jìn)步。關(guān)鍵要堅(jiān)持。

JavaEye:12.作為一個(gè)JavaEye老會(huì)員,你對(duì)JavaEye網(wǎng)站有什么建議和意見嗎?

jnn:JavaEye目前的受眾很大,在業(yè)界的影響力也很大。我發(fā)現(xiàn)現(xiàn)在的JavaEye除了論壇也開始涉足媒體了,希望網(wǎng)站能夠繼續(xù)保持這個(gè)勢(shì)頭,繼續(xù)成為開發(fā)者心目中的最棒的軟件開發(fā)交流社區(qū)。
 

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢