<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小雨開源

    我也加入到了開源隊伍中了

    常用鏈接

    統計

    最新評論

    第三只眼看huihoo-一個值得尊敬的團隊

    如果你有三年以上的J2EE開發經驗,但不知道huihoo,那么你一定不是一個合格的J2EE程序員。在《中國java開源界最可愛的人們》一文中,我把huihoo列在第一位。本文從第三方的角度對huihoo作一個簡單的介紹,包括“三個人”、“一個項目”、“三次升級”、“一些不足”、“兩點遺憾”及“更多期待”幾部分,你可以有選擇閱讀相關部分內容。

    Huihoo是從2001年開始的,那時候國內對j2ee真正熟悉的沒有多少人,更別說是j2ee的規范了。然而Huihoo卻在深入研究j2ee規范的基礎上,研發出符合j2ee規范的、開源的j2ee應用服務器。研發一個j2ee應用服務器所涉及到的知識是非常多,不但要熟悉了解這些規范,而且還需要深厚的java功底,socket、線程及并發、緩存、甚至xml等。因此,你可以想象做這事的人是多么的了不起。

    Huihoo的出發點是致力于中間件、基礎件的研究與應用。并通過開源這種形式讓國內很多在2001年很想知道中間件幕后真相的開發人員能參與進來,對于普及j2ee有著非常大作用。


    三個人

    Huihoo創立于2001年,這么多年來,其成員來來往往有幾十上百人,很多人都猶如過客一樣,來也匆匆去也匆匆;另外也有一些成員長期游離在團隊邊緣,想出力,卻發現有力卻使不出或者找不到地方使。Huihoo能堅持走到現在,離不開三個發起人,他們可以說是huihoo的靈魂人物。

    龍輝(Allen)huihoo的發起人,負責團隊的項目組織、協調,負責官方網站的維護、策劃,2002年底開始把huihoo當成自己的一個事業,并一直付出到現在。

    楊泳(Orbat)JFox的主創人員,也是huihoo的發起人。在Huihoo的眾多成員中,為團隊貢獻過代碼的30多人,其中核心的開發人員不到10名,最成功的項目JFox3.0基本上全是一人之手,那就是楊泳。

    程勇(Peter Cheng):也是huihoo的發起人之一,在團隊內部也稱為項目協調人員。憑著他對開源的熱情,輾轉于北京各高校去宣傳開源,推廣Huihoo,在多很知名廠商的各種會議上代表Huihoo作主題演講,并且一直參與JFox等團隊項目的協助及管理工作,他對huihoo甚至對中國開源界的貢獻是大家有目共睹的。

    三個人都是想做事情,也能做事情的人。他們的分工是比較合理,一個負責生產、一個負責管理及后勤、另外一個負責宣傳及推廣。三人都在各自的崗位堅持了這么多年,并且不斷進步,越做越好。


    一個項目

    作為一個開源團隊及組織,huihoo產生過很多點子,下屬有很多項目。但是一直堅持并取得一定成果的只有一個,那就是JFox,官方站http://www.huihoo.org/jfox/svn: http://jfox.googlecode.com/svn/trunk

    JFox是一個J2EE應用服務器,是一個支持J2EE相關標準(比如EJBJNDIJMSJTA)的應用服務器。在JFox3的文檔中,我們看到:JFox被設計為輕量的、穩定的、高性能的Java EE應用服務器, JFox提供了支持模塊化的MVC框架,以簡化EJB以及Web應用的開發,以滿足企業對快速化統一開發平臺的迫切要求。JFox 3支持標準如下:EJB3.0JPA1.0JMS 1.1JNDI1.2JDBC3.0Servlet2.5JSP2.1

    JFox可以說是從模仿國外同類產品開始的,在1.02.0中,你都會看到JFox中有很多JBoss一些核心部件(如微內核)設計及代碼影子。直到JFox3.0,通過整合其它的框架,JFox也提出了一些獨創的思想及改進,不斷走向輕量。

    JFox應該算是比較成功的,得到國內外開源同行的認可,比如mortbayjetty上對jfox就有推薦,也成為了很多做JavaEE應用服務器產品開發的程序員必備的參考對象。


     

    (JFox體系結構)

    JFox的安裝

    下載jfox.war ,拷貝到 %TOMCAT_HOME%/webapps 下,以便在Tomcat啟動時加載。JFox 3應用服務器是設計成嵌入式的,作為一個標準的Web Application部署在Tomcat中。啟動Tomcat,默認配置下,使用瀏覽器訪問 http://localhost:8080/jfox,如果看到JFox歡迎頁面,那么恭喜你,JFox安裝成功了。

    運行EJBJPA

    1、容器內運行

    將你的javaee應用打成jar包,可以發布至WEB-INF/lib下,JFox提供了更好的以模塊的形式來發布你的應用,Web服務器Tomcat啟動時,會自動啟動JFoxEJB容器,并發布你的應用;可以通過查看日志或者使用管理控制臺來檢查你的EJB/JPA組件是否發布成功。

    2、容器外運行

    容器外運行EJB,使用如下代碼啟動Framework:

    Framework framework = new Framework();

    framework.start();

    Framework啟動時,會自動加載所有的EJBJPA Entity,啟動之后,即可以通過JNDI lookup 得到EJB并發起調用。

    容器外運行JPA,則可以通過如下方式創建EntityManager

    EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("default");

    final EntityManager em = emFactory.createEntityManager();

    創建EntityManagerFactory的時候,會自動加載JPAEntity

    然后便可以通過EntityManager發起各種持久化調用。

     

    3、使用JNDI

    jndi.properties配置如下:

    java.naming.factory.initial=org.jfox.ejb3.naming.InitialContextFactoryImpl

    java.naming.factory.object=org.jfox.ejb3.naming.InitialContextFactoryImpl

    java.naming.provider.url=java://localhost

    程序中可以使用JNDIContextHelper.getInitalContext()得獲得JNDI環境。

     

    4JPA支持多數據庫


    @NamedNativeQuery(

             name 
    = AccountDAOImpl.GET_USERNAME_LIST,

           query 
    = "查詢 username as userid from signon",

             resultClass 
    = String.class,

              hints 
    = {

                     @QueryHint(name 
    = "cache.partition", value = "account"),

                     @QueryHint(name 
    = "jdbc.compatible", value = "newDB")

                      }

    )

     

    5、常量注入

    @Constant注解來來注入常量。

    比如:

    而在 ExampleComponent 有以下Field

    @Constant(value=”$APPLICATION_NAME 3.0”)

    private String appName;

    gobal.propertiesAPPLICATION_NAME的定義:

    APPLICATION_NAME = JFOX Example Application

     

    6JFoxMVC

    MVC,這里例舉一個簡單的應用示例:

    @ActionMethod(name="signon", successView = "index.vhtml", errorView = "signon.vhtml", invocationClass = SignonInvocation.class, httpMethod = ActionMethod.HttpMethod.POST)

         
    public void doPostSignon(InvocationContext invocationContext) throws Exception {

              SignonInvocation invocation 
    = (SignonInvocation)invocationContext.getInvocation();

     

    Account account 
    = (Account)loginService.login(invocationContext.getSessionContext(), this, invocation.getUsername(),invocation.getPassword());

             
    if (account == null) {

                  String msg 
    = "Invalid username or password. Signon failed";

                 PageContext pageContext 
    = invocationContext.getPageContext();

                 pageContext.setAttribute(
    "errorMessage", msg);

                 
    throw new Exception(msg);

             }

            
    else {

                 SessionContext sessionContext 
    = invocationContext.getSessionContext();

                 sessionContext.setAttribute(ACCOUNT_SESSION_KEY, account);

             }

         }


    三次升級

    升級是全方位的,從1.02.03.0,每一次升級你都會看到JFoxHuihoo的進步,并給我們帶來一些新的東西。如果JFox1.0開始是摸索、模仿別人,準備制造輪子的話,那么2.0可以說是制造出了一個還算漂亮的輪子。對于3.0來說,已經不是簡簡單單的造輪子了,終于達到了能夠駕馭JavaEE,并用自己的代碼表達自己的想法的境界。因此,JFox的第三次升級可以說是有了很多創新,雖然這些創新還沒有得到業內的廣泛接受,但有了創新,總算是好事,沒準下一次升級我們看到不是創新,而是超越呢。

    JFox1.02.0這些已經歷史性的東西這里就不說太多,這里例舉一些JFox3.0中的特性及用法,讓大家也看看JFox的獨特之處。

    楊泳在接受InfoQ采訪時說的:“JFox主要的特點,它可以包括三個部分,一個是輕量,另外一個就是實用,最后一個就是差異化。”

    按照楊泳的介紹:所謂比JBoss還輕的輕量是指JFox的內嵌容器。相對于JBoss來說,JFox通過這種內嵌EJB容器的方式,把整個JFox的容器包括它的內核,它的容器,它的各種服務,變成了一個WEBWar包進行部署。使得開發人員在開發EJB應用的時候,和傳統的開發Servlet,開發JSP這種WEB應用,不會有太大的差別。所謂實用主要是指JFox集成了一些輕量的應用框架(如Velocity)提供了一些實用的功能,如JFox內置MVC框架,這些功能能與JFox內核服務、容器的集成。所謂差異化是指提供了一些其它JavaEE應用服務器所沒有的東西,比如提供了一個MVC框架供開發Web應用,JPA的容器是在iBatis的基礎上,通過SQL Template來進行設計的。

    除了技術上的升級及創新以外,一個更重要的是文檔質量的升級。JFox以前的文檔都不完善,可以說是非常少,加上國人應用心得也比較少,使得對JFox應用推廣非常不利的。然而,每一次JFox的升級,你都會看到文檔從數量及質量都不斷升級,從1.0時的一小段介紹文檔到2.0的幾頁說明文檔到3.0的幾十上百頁用戶指南,每一次升級都能看到非常明顯的進步。

    JFox的代碼質量比較高,基于接口編程、通用的命名規范,中文代碼注釋。所有這些都非常適合中國的java程序員學習及研究。


    一些不足

    用了一周的時間對JFox3進行了研究,這里要提出一些認為存在不足的地方。這也算是對JFox的發展所做的一點小小貢獻吧。當然,由于本人水平有限,所以有一些見解有可能不對。

    1JNDI不能遠程調用

    如果是開發Web應用,如果要用到EJB,而又不能支持分布式,我們又為何還選擇EJBSpringJdonGuice甚至EasyJWeb這些框架里面都有包含了IOC容器。而且更加POJO,為何還要選擇用EJBJFox呢?因此,這一方面我不知道這樣的設計及限制是對JNDI的創新,還是因為JFox設計的局限性所導致。

    2JPA的支持

    可以說JFox只是實現了JPA1.0中的一小部分。JPA最核心的是什么?對象及關系映射,而難度最大的環節面向對象的查詢(EJBQL)以及各種對象關系及表關聯的處理,比如OneToManyManyToMany。由于JFox是基于iBatis這樣一個sql mapping的框架實現的JPA容器,所以說功能上受到了一定限制。是直接寫面向數據庫的sql好還是直接寫面向對象的查詢好,這是一個問題。另外像hibernate這樣的JPA實現,他的優化能力也是非常強的,JPA標準里面也提供了對原生sql的支持,所以性能不應該成為SQL就比EJBQL好的理由。最關鍵的是,既然我們是一個按照JavaEE規范開發的應用服務器,就要盡量遵循JavaEE的規范。

    3JFox中的MVC

    JFox中有一個不一樣的MVC框架,這對于其它應用服務器來說創新,也就是楊泳所說的差異化。但對于企業應用來說,JavaEE應該更推的是JSF,而且JFox中的MVCJFox 本身存在比較嚴重的耦合,使用起來并不是非常方便,還有很多地方需要完善。最近看了國內的operamaskseasyjweb兩個開源MVC框架,我覺得JFoxMVC部分可以跟這兩個框架進行整合,通過operamasks增加JFoxJSF的支持,使用easyjweb替換現有的mvc框架或者借用其中的一些設計來改進現有的MVC。把MVC中的驗證框架、異常處理、多國語言處理等進一步完善,減少Action對框架的依賴,這樣實用性才會更強。

    4、文檔及示例

    文檔在JFox3.0已經完善得多了,但更應該增加一些其它示例,要能充分體現出JFox的優勢,僅僅靠一個petstore是不夠的。

    5、其它

    除了前面提到的以外,JFox中還有很多東西,比如用來做任務管理的TimerService,數據訪問DAOSupport,安全相關的Sercurityt等等。但相對于Spring容器中提供的同樣實現,這些功能都還有待加強。

    兩點遺憾

    如何活得更好

    huihoo成立到現在已經有近7年了,7年可以發生很多事情,有人轉行了不當程序員了、有人結婚了、有人生子了、有人又離婚了,一個公司要活上7年是非常不容易的,一個在中國做開源的團隊能做了7年的開源仍然活著更加不容易。然而,僅僅有活著的勇氣及意志還不夠,還需要活得更好才行,huihoo發展到現在,存活的項目基本上只有JFox,而且代碼盡然基本上全部一人之手,這其實算是一個遺憾,為何沒有更多的人參與到其中來,畢竟一個人的能力是非常有限,這一點非常值得我們反思。

    應用不廣泛

    在陳勇等核心人員的努力下,Huihoo的推廣做得很不錯,國內的很多業內的大腕都知道huihoo,如果你關注開源方面的java應用服務器,也會發現JFox得到很多國外同行的認可及推薦。但為什么JFox在市場上的應用仍然是只聞有雷聲,不見雨點呢?不知道國內有多少公司使用JFox,也不知道國內有多少JavaEE程序員的機器上安裝得有JFox。感覺是很少的,至少我沒見到幾個。這也是一個非常遺憾的。


    更多期待

    在新年鐘聲敲響前許愿的時候,我許了三個愿望。一個許給家人,希望孩子及老婆建康,希望我能帶給他們更多快樂;另外一個許給自己,希望自己今年能賺更多的錢,盡早把欠銀行的最后20萬早日還清;最后一個算是給祖國吧,希望在2008年中國除了在奧運上拿更多的金牌以外,更希望看到開源領域里的斗士們能帶給我們更多的驚喜。

    huihoo如今已經是進入了第8個年頭,受N座大山壓迫的中國人民用了8個年頭取得抗日戰爭的勝利,也期待經歷8年奮戰后huihoo能取得更加輝煌的戰績。

    版權聲明:本文版權由Blogjava小雨開源所有,受法律保護。歡迎轉載,轉載請保留作者版權聲明及連接。

    posted on 2008-01-04 15:45 小雨開源 閱讀(3268) 評論(15)  編輯  收藏

    評論

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-04 16:31 cnodin

    不錯,樓主對國內的開源了解得挺多的。huihoo團隊的確是一個值得尊敬的團隊  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-04 19:46 RoBeRt

    如果你有三年以上的J2EE開發經驗,但不知道huihoo,那么你一定不是一個合格的J2EE程序員。

    夜郎自大  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-04 19:51 wǒ愛伱--咾婆

    呵呵.我有去過他們的網站.不過那時還不知道他們做嘛的  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-05 09:14 張氏兄弟

    的確值得尊敬!
    不過的確對于他們核心的項目居然是一個人寫出來的表示遺憾。
    其實中國很多的開源都是這樣,老大一個人寫。
    一幫兄弟跟著混,老大垮了,隊伍就散了。

    也就是很多人都想從這個隊伍中得到東西,但是沒有想到怎么付出!  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-05 10:11 wiflish

    支持開源。支持默默付出的你們  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-05 23:11 cssrain

    從學java到現在工作也就不到1年多。  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-07 09:33 深愛開源的人

    寫的很好。寫出了當前中國開源的一些困惑和步履維艱。如何能夠讓JFox走的更好更遠,全靠楊泳一人之力是遠遠不夠,需要我們大家,所有熱愛開源的有志之士都能夠參與到JFox中,堅持再堅持。
    熱情和毅力是JFox能走到現在的關鍵。但是我們仍要反思為什么JFox通過七年的發展還是處于目前這種狀態。可能結合JBoss會給我們比較大的啟發:
    1. JBoss有一個全職的有熱情的團隊。
    2. JBoss有一個基金或大的公司如Redhat的大力支持,使得這些熱情能夠轉換成強大的生產力。
    3. 有大量的國內外企業在使用它、支持它,使得它能夠在風雨中勇往直前。
    4. 有數以萬計的用戶在宣傳它。典型的Java應用提供商招聘時通常問“使用過Jboss嗎?”就是很好的佐證。

    因此,使得國內開源特別是JFox走的更遠的方式就是:
    1. 大家要積極的使用。
    2. 要宣傳它。
    3. 希望有實力的公司來支持它的發展。畢竟,人還是要生活的啊,呵呵。

    這是我對開源和JFox的一些看法。。。。。。。  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-07 09:43 iOpenSource

    國內的開源之所以還沒有形成氣候,與開源發展的整條生態鏈不完善有關系,所以還有很長的路要走啊,希望huihoo和jfox能夠探索出來一條適合中國國情的發展之路,為他們默默加油吧。  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-07 11:03 敢于說真話的人

    我支持HUIHOO,但也希望HUIHOO的JFOX有大的改進,而不是單純為開源的理想而做一個自娛自樂的東西,開源的東西也要有社會價值和市場價值,希望HUIHOO眼光放長遠點  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-07 11:12 敢于說真話的人

    使用easyjweb替換現有的mvc框架或者借用其中的一些設計來改進現有的MVC,這個建議我看很好,HUIHOO與國內優秀WEB框架集成必然會為HUIHOO的普及和推廣帶來前所未有的進步  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-07 11:26 敢于說真話的人

    當然一個開源項目做了這么多年還未走入大家的心中,那么它的團隊是不是要去深入思考,深入反思一些東西,堅持是很好的精神,但多思考才能走向進步,才有出路  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊[未登錄] 2008-01-07 15:00 屹礫

    中國沒有開源的商業環境,所以中國的開源就等于工程師在業余時間的業余作品,當然不能和歐美的開源相比。別人的開源是工作,而我們的開源是愛好。  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-01-12 19:33 草根網

    好文,收藏至20ju.com  回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-02-21 13:47 Anthony

    了解Huihoo是從2004年在一個項目中要選型工作流軟件開始的。當時Huihoo的工作流項目是Robin他們發起的JFox Flow,可惜后來沒有搞下去。
    遺憾,于是只好自己在項目里寫了一個基于XML的能滿足項目需要的簡單工作流引擎。
      回復  更多評論   

    # re: 第三只眼看huihoo-一個值得尊敬的團隊 2008-05-23 21:47 xiaohuasuepr

    學java一年,現在是大三,支持jfox  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品国产亚洲男女在线线电影 | 亚洲精品无码Av人在线观看国产| 亚洲色偷精品一区二区三区| 222www免费视频| 日韩毛片免费在线观看| 亚洲第一香蕉视频| 18以下岁毛片在免费播放| 亚洲色无码专区在线观看| 香港一级毛片免费看| 麻豆精品国产免费观看| 亚洲一欧洲中文字幕在线| 57pao国产成视频免费播放| 亚洲AV天天做在线观看| 朝桐光亚洲专区在线中文字幕| 免费精品国产日韩热久久| 亚洲成人福利网站| 69影院毛片免费观看视频在线| 亚洲国产天堂在线观看| 国产免费AV片在线观看播放| 成年免费大片黄在线观看岛国| 亚洲精品视频在线| 国产真人无码作爱免费视频| 久久亚洲AV无码西西人体| 一级毛片aa高清免费观看| mm1313亚洲精品国产| 一级黄色免费大片| 激情综合色五月丁香六月亚洲| 亚洲av日韩专区在线观看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 日韩在线视频线视频免费网站| 国产jizzjizz免费看jizz| 在线亚洲v日韩v| 亚洲一区二区三区在线视频| 成年女人A毛片免费视频| 国产又大又粗又硬又长免费| 亚洲欧美日韩一区二区三区| 成人爽A毛片免费看| 亚洲色大18成人网站WWW在线播放| 免费的涩涩视频在线播放| 男人的天堂av亚洲一区2区| 亚洲人成电影网站国产精品|