免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
關注 Enhydra
userphoto

2011.05.25

關注

關注 Enhydra

宿寶臣 (linuxman@263.net), 軟件工程師

簡介: 本文介紹了Enhydra的概念和核心技術,試圖從歷史和縱橫向的比較中多角度地認識Enhydra,以拋磚引玉,為Enhydra的發(fā)展盡綿薄之力。

發(fā)布日期: 2002 年 11 月 10 日 
級別: 初級 
訪問情況 488 次瀏覽 
建議: 0 (添加評論)

 平均分 (共 0 個評分 )

1. Enhydra簡介

1.1 Enhydra的歷史

Enhydra最初由Lutris公司創(chuàng)建于7年前。Lutris公司一直從事IT咨詢開發(fā)工作,在長期的IT實踐中積累了豐富的WEB開發(fā)經(jīng)驗,逐漸形成了一套獨特而有效的開發(fā)策略和工具,這就是Enhydra。實際上,Enhydra的核心--XMLC技術,甚至早于SUN的JSP技術而誕生。即使今天看來,XMLC也比JSP有很大的優(yōu)勢。關于XMLC和JSP的比較,請參考 A Friendly Game of Tug of War: XMLC vs. JSP

1.2 Enhydra的特點

Enhydra是Lutris公司在長期的IT咨詢和開發(fā)實踐中提煉而出,并與1999年1月15日宣布加入Open Source大家族。此后,Enhydra在成千上萬的開發(fā)人員的幫助下,更加趨于完善,形成了如下的特點:

  • 開放源代碼。Enhydra的版權許可為EPL(Enhydra Public Licence),類似于MPL(Mozilla Public Licence),相對比較寬松,簡單的說就是: 
    • 對Enhydra核心的修改必須回饋enhydra.org,以幫助Enhydra更加完善和強壯。
    • Enhydra中有幾項Lutris公司所創(chuàng)造的專有技術,但是只要是和Enhydra Application Server一起使用,對這些專有技術的使用就沒有任何的限制。 
  • 高度的可擴展性和靈活性。Enhydra是100%純Java應用程序,保證了在各個平臺下的可移植性。Enhydra在設計中,還充分考慮了用戶需求的多樣性和多變性,在結構上保證了可以適用不同用戶的需求。
  • 勝任各個層面的開發(fā)工作。無論是小型的WEB應用開發(fā)還是大型的WEB工程,都是Enhydra大顯身手的地方。這得益于Enhydra天然地支持3層的WEB應用程序結構,因此enhydra具有非常好的的伸縮性。

2. Enhydra的核心技術

2.1 XMLC--XML Compilier

早期的Enhdra使用一種叫做JDDI的技術(類似于JSP,但是比JSP出現(xiàn)得要早),在頁面中嵌入Java代碼來生成動態(tài)的頁面。自然,JDDI有和JSP一樣的缺陷,這催生了XMLC,一種革命性的表示技術。

2.1.1 工作原理

XMLC,顧名思義就是把標記語言頁面,比如HTML,XML,WML等等編譯生成一個相應的Java類。這個Java類包含了頁面的完整的DOM樹結構及其操作方法,因而可以處理頁面上的任何元素及其屬性。更重要的是,在XMLC中,巧妙地把動態(tài)內容和HTML中的id元素聯(lián)系起來并在Java類中生成相應的操作方法,比如改變文本的內容和元素的屬性等等。不同于JSP,XMLC沒有引進任何額外的HTML/XML標記元素,只是重用了ID元素。因而,XMLC實際上可以處理任何的標記語言,不僅僅限于XML,HTML等。

XMLC通過3個步驟處理標記語言頁面,如下圖所示:

Figure 1.XMLC原理示意

其工作過程為:

  1. 校驗輸入文檔(HTML,XML等)是否有效,標記是否合法完整。
  2. 產(chǎn)生一個DOM樹(Document Object Model),即Java類代表輸入文檔(頁面)。在實際應用中,創(chuàng)建一個這個類的實例,如圖中的salesApp,使用這個類的實例就可以操縱頁面的DOM樹。
  3. 產(chǎn)生處理動態(tài)內容的Java方法,如圖中的setTextName。動態(tài)內容只需要用ID標記出來即可。可以看出,這種方法極大的簡化Java開發(fā)人員處理頁面動態(tài)內容的工作量。

2.1.2 一流的表示技術

XMLC的簡潔和強悍,奠定了它在表示技術中的領先地位。

  • 使用Enhdyra XMLC,界面設計人員和后臺程序開發(fā)人員可以很好地分工協(xié)作。界面設計人員幾乎可以任意修改用戶界面而不會影響后臺程序開發(fā)人員,反之亦然。
  • 使用Enhydra XMLC,界面設計人員和后臺程序開發(fā)人員只需要在項目開始時一起商定需要動態(tài)修改的元素及其ID值,其后就幾乎不需要相互碰頭了,分頭去實現(xiàn)就可以。
  • 使用Enhydra XMLC,界面設計人員不需要任何的Java知識,只需要專注于界面設計即可。
  • 使用Enhydra XMLC,后臺程序人員只需要極少的HTML等標記語言知識,只需要專注于動態(tài)內容的顯示控制和業(yè)務流程的設計即可。
  • 使用Enhydra XMLC,可以使用任何你熟悉的HTML編輯軟件,因為XMLC沒有引入任何額外的標記元素。Enhydra XMLC中所重用的ID元素,是HTML 4.0及其以上版本的標準元素。
  • Enhydra XMLC把頁面(HTML,XML,WML等)轉換有對等的Java類(DOM樹),就意味著可以從面向對象的角度來操縱整個頁面。
  • 使用Enhydra XMLC,使得同時支持WML,XHTML,cHTML/i-mode,voiceXML,J2ME變的非常簡單。

2.1.3 效率

自然,經(jīng)過XMLC的轉換后,要損失一點執(zhí)行效率。但是,Enhydra XMLC已經(jīng)經(jīng)過了很好的性能調整,而且采用了獨特的 Lazy DOM技術,使得XMLC的性能有了顯著提高。相信在硬件發(fā)展日新月異的今天,效率和速度的少許損失,卻能夠換來上面如許多的優(yōu)勢,這筆帳還是非常劃得來的。

XMLC的更多信息,以及和其他表示技術的比較,請參見 XMLC的老家

2.2 DODS--Database Object Design Studio

Enhydra DODS是Enhydra對數(shù)據(jù)庫管理的重要工具,它可以實現(xiàn)數(shù)據(jù)庫(表)到Java類的對應轉換,封裝對數(shù)據(jù)庫的操作,屏蔽各種數(shù)據(jù)庫間的差異,并且提供了一個圖形界面的數(shù)據(jù)庫設計工具,自動生成關于數(shù)據(jù)庫操作的Java類。

下圖是DODS運行時畫面:

Figure 2.DODS運行畫面 

DODS目前支持以下類型的數(shù)據(jù)庫:

  • 標準數(shù)據(jù)庫,比如MySQL
  • Sybase
  • Oracle
  • Infomix
  • Microsoft SQL Server
  • Postgresql
  • Hsqldb
  • IBM DB2 

2.2.1 簡單實例

在傳統(tǒng)的JSP程序設計中,涉及到數(shù)據(jù)庫的訪問大致需要有如下的程序片斷:

<%@ page import="java.sql.*" %>
        <%
        String connectionURL = 
            "jdbc:mysql://localhost:3306/mydatabase?user=username;password=password";
        Connection connection = null;
        Statement statement = null;
        ResultSet rs = null;
        %>
             <html><body>
             <%
      
              Class.forName("org.gjt.mm.mysql.Driver").newInstance();
        
              connection = DriverManager.getConnection(connectionURL, "", 
              "");
       
              statement = connection.createStatement();
       
              rs = statement.executeQuery("SELECT address FROM user_tbl WHERE 
              name='username'");
             out.println(rs.getString("address")+"<br>");
             rs.close();
      
              %>
        
              </body></html>
            

在Enhydra中,同樣的功能使用DODS后邏輯上就清楚多了,步驟如下:

1 創(chuàng)建一個HTML頁面,比如user.html如下:

<html><body>
        
address is <span id="name">Beijing, China</span>
</body></html>

2 在Enhydra的business層中,創(chuàng)建一個java文件UserFactory.java,如下所示:

package simpleapp.business;
import simpleapp.data.*;
import java.util.*;
import com.lutris.dods.builder.generator.query.*;
public class UserFactory 
{
    public static String getAddress(String username) {
        try {
            UserQuery dquery = new UserQuery();
            dquery.setQueryName(usename);
            UserDO uDO = dquery.getNextDO();
            if(uDO != null)
                return uDO.getAddress();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }  
}

3 這樣就可以在主文件中調用getAddress方法了:

      String addr = UserFactory.getAddress("li");
        
page.setTextAddress(addr);

看起來似乎繞了不少的圈子,但是這是一個真正的3層結構的程序,而且,數(shù)據(jù)庫的設置、管理、連接和緩沖等的功能,DODS都已經(jīng)為你準備好了,你只要象上面所示的,使用DODS產(chǎn)生的數(shù)據(jù)庫操作類就行了,比如UserQuery等。

2.2.2 DODS的特點

  • 圖形化的數(shù)據(jù)庫設計界面。
  • 自動產(chǎn)生數(shù)據(jù)表操作類和方法。
  • 針對不同的數(shù)據(jù)庫,只需要重新產(chǎn)生相應的類代碼,不需要改動表示層(presentation layer)和事務處理層(business layer)的任何代碼。
  • 自動維護支持數(shù)據(jù)庫連接緩沖。
  • 自動維護數(shù)據(jù)表列的序列號(oid)。

2.3 Enhydra Director

Director作為WEB服務器的插件,主要實現(xiàn)了如下功能:

  • 負載均衡 可以使用Director構造Enhydra的集群環(huán)境。
  • 訪問導向 可以將WEB服務器上的某個虛擬目錄影射到某個Enhydra應用程序上,這樣對虛擬目錄的訪問實際上將變?yōu)閷@個Enhydra應用程序的訪問??陀^上起到了去掉Enhydra應用程序端口號這個“小尾巴”的作用。

2.4 3層應用程序架構

2.4.1 WEB應用程序開發(fā)模型簡述

WEB應用程序的開發(fā)先后經(jīng)歷了以下幾種模式:

  • 單層應用程序模型 在這種模型中,WEB應用中的三個重要元素是緊密結合在一起的,彼此混合起來的。早期的WEB應用程序比較簡單,從設計到開發(fā)都是直線型的,是這種應用模型的必然結果。這種應用模型目前還很容易看到,比如一些簡單的聊天室軟件,表單處理軟件等。
  • 兩層應用程序模型 即通常所說的客戶/服務器模型。 在這種模型中,從邏輯上看,服務器端通常提供需要進行復雜運算或者大量數(shù)據(jù)處理的能力,而客戶端通常負責發(fā)出處理請求并顯示服務器傳送過來的處理結果。HTTP協(xié)議就可以看做是客戶/服務器模型的典型。
  • 多層應用程序模型 多為3層應用程序模型。在3層WEB應用程序模型中,一般的層次劃分為:表示層、事務邏輯層、數(shù)據(jù)存取層,彼此相互隔離,可以單獨由不同的人或者部門完成。這種模型給應用的設計、開發(fā)和維護都帶來了很多好處,Enhydra對3層WEB應用程序的開發(fā)提供很好的支持。

2.4.2 Enhydra應用程序的3層體系結構

如下圖所示:

Figure 3.Enhydra體系結構

Enhydra開發(fā)環(huán)境不但支持基于3層模式的WEB應用程序開發(fā),而且是作為強烈建議提出的。實際上,Enhydra的核心技術中,XMLC即為Presentation Logic的核心,DODS即為Data Logic的核心。而Enhydra核心中的應用程序管理器,則把Presentation Manager, Session Manager, Database Manager有機的結合起來,構成了Enhydra的應用程序的運行環(huán)境。

所謂Enhydra應用程序框架(Enhydra Application Framework)是指Enhydra提供的一系列Java類,這些類提供了Enhydra應用程序運行時需要的支持環(huán)境。 也就是說,您的Enhydra應用程序可以而且應當通過這些預先設計的Java類來減輕你的編程工作量和增加應用程序的穩(wěn)定性,因為這個應用程序框架已經(jīng)為您實現(xiàn)了很多功能,主要是以下三點:

1 Presentation Manager

Presentation Manager負責處理Enhydra應用程序中presentation object的加載和執(zhí)行,具體的說,就是把某個URL影射為相應的PO(Presentation Ojbect),并且調用PO的run()方法。這里的PO實質上就是處理相應的URL的Java類,比如處理Login.html文件的PO可以定義為Login.java,在Login.java中驗證用戶的身份,并將用戶引導到相應的頁面中去。

每一個Enhydra應用程序都有一個presentation manager的實例。為了提高運行效率,presentation manager會盡量緩存PO及其相關文件(比如圖片等)。另外,presentation manager還負責發(fā)放(產(chǎn)生)session manager所需要的key,session manager依靠這個key來確定和這個頁面(用戶)相關的session對象(SessionData)。

每一個Presentation Manager都是類\newline com.lutris.appserver.server.httpPresentation.HttpPresentationManager的一個實例。在包com.lutris.appserver.server.httpPresentation中包含了presentation manager和PO都會用到的一些類和接口。

2 Session Manager

所謂session是指在一段時間范圍內,某個用戶所保持的狀態(tài),比如是否已經(jīng)登錄,已經(jīng)購買了哪些商品等。當用戶初次訪問一個Enhydra應用程序時,Session Manager會自動為這個用戶產(chǎn)生一個session對象,以保存用戶的狀態(tài)。在應用程序定義的時間間隔內,這個session對象一直存在,直到超過了規(guī)定的時間或者用戶在規(guī)定的時間間隔內沒有動作,session manager會自動刪除這個用戶的session對象。

Enhdydra session manager很靈活。通過創(chuàng)建復雜的session對象,你可以對用戶的行為有更多的控制和了解。

3 Database Manager

Enhydra的Database manager提供了控制和優(yōu)化Enhydra應用程序和數(shù)據(jù)庫的連接,主要是通過以下兩點完成的:

  • 使用logical database。實際上是通過JDBC屏蔽了用戶在操作不同數(shù)據(jù)庫時的差異。
  • 通過DODS產(chǎn)生的數(shù)據(jù)庫庫操作類,Database manager可以進一步控制對特定的數(shù)據(jù)表是否緩存等來優(yōu)化數(shù)據(jù)庫的操作。

2.5 Multiserver

Multiserver是Enhydra應用程序運行環(huán)境管理器。隨同Multiserver一起提供的是Admin Console,可以方便的部署Enhydra應用程序,可以動態(tài)的加載和停止Enhydra應用程序,可以設置Enhydra應用程序的配制和運行參數(shù),甚至可以通過WEB調試Enhydra應用程序。

3 橫向的技術比較

3.1 和封閉源代碼的應用服務器的比較

我們從下面的表格中大致可以了解Enhydra和其他廠商的應用服務器在表示層功能上的差別:

 Enhydra 3.5WebLogicWebSphereOracle 9i
VoiceXML via Voice
CHTML/iMode設備部分支持  
WML/WAP
MIDp/J2ME-HTTP   
XML Schema Architechture  
XHTML/WAP2/iMode3   
Open-source   

目前大約有40家應用服務器提供商,我們先看一下商業(yè)的封閉源代碼的應用服務器的特點:

  • 費用高昂 封閉源代碼的應用程序服務器都是相當昂貴的,一般都要US$10,000/CPU以上。
  • 緊耦合的實現(xiàn)方式 所有封閉源代碼的應用服務器的實現(xiàn)都是緊耦合的,是一個不可分割的整體。這樣的壞處是,即使你有更好的關于某一功能的實現(xiàn),你也沒有辦法替換原來的舊實現(xiàn),只能被動等待提供商的升級。
  • 開發(fā)和部署的復雜度高 一般封閉源代碼的應用服務器都需要專門的培訓才能夠入門使用,學習和開發(fā)部署的難度都比較大??匆豢此麄儼嘿F的培訓費用就知道了。
  • 專有的編程模式 封閉源代碼的應用服務器一般采用專有的,缺乏靈活性的開發(fā)模式,必須經(jīng)過專門培訓學習這個專有的編程模式。而且,封閉源代碼的應用服務器一般都有歷史包袱,這是產(chǎn)生專有結構的重要原因之一。比如著名的應用服務器提供商ATG,他的產(chǎn)品中就遺留了一些老的落后的結構。
  • 隱性的“欺詐” 當你購買Sun的iPlanet的時候,你也許不知道,你同時購買了永遠都用不到的一些過時的功能。這是Sun在融合自己的產(chǎn)品NetDynamics和Netscape的Kiva時留下的“后遺癥”。
  • 實際有限的技術支持 封閉源代碼的應用服務器廠商盡管聲稱提供完善的技術支持,但是看看網(wǎng)絡上BEA的用戶的表現(xiàn)吧,隨處可見BEA的用戶在尋求BEA平臺上碰到的開發(fā)問題。他們?yōu)槭裁床蝗で驜EA的技術支持呢?兩個原因:一是他們無法從BEA那里得到及時有效的技術支持;二是BEA的平臺不是一個易用的平臺。
  • 有限的無線開發(fā)支持 很多封閉源代碼的應用服務器要有倚賴第三方的軟件提供無線開發(fā)的支持。

讓我們再看看Enhydra是如何解決以上的問題的:

  • Enhydra 3的可擴展性和靈活性是極佳的。幾乎所有的模塊都可以根據(jù)實際的需要擴展或者替換。
  • Enhydra在設計時充分考慮到了開發(fā)環(huán)境的多樣性,并且可以配合多種集成的開發(fā)環(huán)境一起工作,比如JBuilder, Jdeveloper, SunONE Studio等。實際上,Enhydra幾乎可以和你熟悉的任何環(huán)境一起工作。
  • Enhydra的培訓費用很低。Enhydra的特有(專有)概念很少,你在Enhydra中學到的幾乎所有知識都可以用于其他的標準開發(fā)環(huán)境,反之亦然。
  • Enhydra3 支持Tomcat 3。2(Servlet 2。2 和 JSP 1。1),Enhdyra應用程序的可移植性非常好。
  • Enhydra是Open Source的,即使你分銷基于Enhydra的應用程序,也不需要支付相對于商業(yè)的、封閉源代碼的應用服務器那樣的昂貴的許可費用。
  • Enhydra的結構和設計是合理和優(yōu)美的,來自于實踐的總結,沒有任何的歷史包袱。
  • Enhydra鼓勵使用3層的應用程序設計。但是,如果要寫一個簡化了的兩層,甚至單層的應用程序也同樣是支持的,具有很好的靈活性。
  • 你已經(jīng)擁有了源代碼! 這樣,可以通過閱讀、察看源代碼直接解決一些深層次的問題,也可以在調試程序時借助于源代碼更快的抓住“臭蟲”。
  • Enhydra支持應用程序的“熱”部署,即不需要停止整個Multiserver,就可以任意停止或者啟動某個Enhydra應用程序。
  • Enhydra提供了appwizard可以自動產(chǎn)生標準的應用程序框架,開發(fā)人員只需要遵照這個框架擴充以適合自己的需要即可,容易上手。
  • Enhydra是目前無線應用開發(fā)的最佳武器,由XMLC提供了最佳的技術保證和支持。

3.2 Enhydra和BEA WebLogic的簡單比較

這大概是最經(jīng)常被問到的問題了:“Enhydra和WebLogic相比怎樣?”。

  • 更好的性能。Enhydra是輕量級的應用服務器。測試標明,Enhydra在吞吐性能、響應時間等多方面是BEA WebLogic的9-15倍之多!
  • 更友好的項目管理。Enhydra的資源文件可以放到單獨的目錄中,HTML設計人員和Java開發(fā)人員可以獨立工作,使得項目管理清晰和容易。
  • 更容易配置和部署。BEA WebLogic需要復雜的描述文件和重新編譯,而Enhydra只需要一個簡單的文本文件即可,不需要重新編譯,而且任何程序都可以單獨停止和運行,而不會影響其他Enhydra應用程序。
  • 內建的無線開發(fā)支持和J2ME支持。Enhydra內建支持HTML,WML(WAP),cHTML(i-mode),XHTML,VoiceXML和J2ME,還有Flash 5 客戶端。而WebLogic必須倚賴第三方軟件的支持。
  • 更容易使用新技術。Enhydra受益于開放源代碼社區(qū),可以很快的采用和接納最新的技術并納入到Enhyhdra的體系結構中去。BEA Weblogic做不到這一點。
  • 更低的培訓費用。學習Enhydra并不困難,而WebLogic的重點是J2EE的開發(fā),學習和設計的難度大大增加,培訓的費用也很高。
  • Enhydra XMLC。XMLC是Enhydra的靈魂和核心,是領先的表示技術的代表。而WebLogic沒有這種領先的技術。

4 Enhydra的優(yōu)勢

從上面和商業(yè)的應用服務器的比較中我們也可以看出Enhydra的優(yōu)勢來,下面簡單總結一下:

  • 得益于開放源代碼策略,受惠于開放源代碼社區(qū)。Enhydra自從開放源代碼后,發(fā)生了很大的變化,比如率先支持了無線開發(fā),修正了若干的Bug,而且在Lutris公司內部發(fā)生了巨大的變化時產(chǎn)生了接手Enhydra項目的合適團隊。
  • 靈活的可擴展性。由于是開放源代碼的系統(tǒng),其中的每一個模塊你都可以只有替換和擴展。Enhydra 6.0的目標就是徹底拆開enhydra.jar,使Enhydra只保留一個核心包,其他的工具包均可以單獨置換。
  • 最好的無線開發(fā)支持。
  • 低的總擁有成本。Enhydra Public Licence允許你開發(fā)基于Enhydra的應用,甚至在Enhyra基礎上構造自己的應用服務器而不需要支付昂貴的許可費用,因而顯著降低了開發(fā)商的總擁有成本。
  • 豐富的文檔資料。Enhydra提供了非常好的“Getting Started with Enhydra”等文檔資料,并且郵件列表本身也是Enhydra的寶庫之一。
  • 源代碼!

5 Enhydra的不足之處

5.1 稍微有點陡峭的初始學習曲線

應該說,雖然相對于掌握WebLogic而言,Enhydra的學習難度大為降低,但是熟練掌握Enhydra也不是非常容易的事情,尤其是對于沒有很多的WEB開發(fā)概念和經(jīng)驗的開發(fā)者更是這樣,所以Enhydra的初始學習曲線仍然有些陡峭。但是,只要理解了Enhydra應用程序的基本結構和熟悉了Enhydra提供的API函數(shù),則使用Enhdyra開發(fā)WEB應用就變成了一種享受和必然!

5.2 還沒有實現(xiàn)完全的松耦合結構

目前Enhydra仍然使用Tomcat 3.2,將來的Enydyra6.0將實現(xiàn)Enhyra體系結構的完全松耦合,使得模塊的獨立性更強,可以隨時更新Tomcat的版本以及其他相關模塊。

5.3 EPL:Enhydra Public License的限制

EPL的限制簡單說就是:

  • 如果你改動了Enhydra的核心,則必須將改動的情況匯報Enhydra.org,以使得Enhydra日趨完善。
  • 你可以任意使用Enhydra的所有專有技術(比如XMLC),只要是和Enhydra應用服務器一起使用即可。實際上,這條限制已經(jīng)形同虛設,因為象XMLC等Enhdyra的專有技術現(xiàn)在大都已經(jīng)獨立出來了,意味著XMLC等可以獨立使用,不受Enhydra本身的限制。

可以看出,EPL實際上還是相當寬松的。

6 Enhydra的現(xiàn)狀

6.1 Enhydra的現(xiàn)狀

非常遺憾的是,由于各種原因,Enhydra的發(fā)明者Lutris公司不得不于去年底宣布放棄Enhdyra的繼續(xù)開發(fā),專注于Enhydra Enterprise的開發(fā)和銷售和技術支持。然而,似乎Lutris并沒有取得預期的業(yè)績,經(jīng)營上出現(xiàn)了一些困難。

然而, Enhydra并沒有就此止步! ObjectWeb(www.objectweb.org)接過了enhydra.org站點,法國電信無償提供了T1級別的線路鏈接和服務器,@Together公司接過了Enhydra的繼續(xù)開發(fā),Enhydra繼續(xù)前進中......

目前,Enhydra已經(jīng)推出Enhydra 5.0,新特性如下:

  • 融合Tomcat 4.0和大量的補丁。
  • 對原來的enhydra.jar進行了分拆,使得各個模塊可以獨立撤換。
  • 加強了的session管理。
  • 加強了DODS對數(shù)據(jù)庫的支持能力。
  • 采用了最新的xmlc。
  • 更全面的文檔。

6.2 應用實例

Enhydra作為開發(fā)動態(tài)網(wǎng)站和電子商務的利器,已經(jīng)得到了廣泛的應用。這里有一個列表,列出了一些使用enhydra技術構建的站點: http://enhydra.enhydra.org/community/caseStudies/index.html。

7 Enhydra的未來

我們有理由相信,Enhydra在開放源代碼社區(qū)的幫助下,在良好的架構設計基礎上,會隨著IT技術的發(fā)展而進步。讓我們展望一下Enhydra的未來吧:

7.1 融合J2EE

實際上,Lutris公司已經(jīng)實現(xiàn)了Enhydra和J2EE的融合,但是由于Lutris公司的現(xiàn)狀,使得這項工作可能不得不重新開始??梢赃@樣設想,在Enhydra的3層架構基礎上,借助于XMLC和DODS,再融合一個開放源代碼的J2EE服務器,比如JBoss(版權為LGPL),應該可以構造一個極且競爭力的J2EE應用服務器產(chǎn)品。我相信,這是一個非常有前途的產(chǎn)品方向,只是融合的技術難度也是比較大的。

7.2 融合Web Service

Web Service是分布式應用的未來,如何將Web Service和Enhydra有機地結合在一起,是一個富有挑戰(zhàn)性的課題。如果Web Service能夠融入Enhydra之中,或者如果說Enhydra也可以作為Web Service的容器,則Enhydra的應用開發(fā)領域將更加廣泛,開發(fā)思路將更加開闊。

7.3 更好的IDE

目前Enhydra在Kelp(kelp.enhydra.org)的幫助下,已經(jīng)可以配合JBuilder,JDeveloper,SunONE Studio等IDE環(huán)境進行開發(fā)工作,這固然是個不錯的策略,但是在以下方面還有欠缺:

  • appwizard還有很大的改進余地。
  • DODS將來的版本可以生成business layer的模板代碼。
  • 對eclipse的支持正在開發(fā)中。

7.4 演變?yōu)閼贸绦蚩蚣?/span>

前面我們講過,Enhydra 6.0將演變?yōu)镋nhydra Application Framework,使得Enhydra的模塊間的耦合度更低,這樣更換某個模塊將更加方便,系統(tǒng)的靈活性將得到更大的提高,對于Enhydra的繼續(xù)發(fā)展也是非常有利的。

Enhydra從實踐中來,經(jīng)過了4年實踐的檢驗,經(jīng)過3年開放源代碼社區(qū)的培育,已經(jīng)成熟了,長大為業(yè)界領先的應用服務器,已經(jīng)形成了自己的風格和穩(wěn)定的用戶群,得到了廣大用戶的支持和愛戴,相信不管IT風云如何變幻,Enhydra將乘風破浪,直掛云帆濟滄海!

8 Enhydra的商機

Enhydra作為優(yōu)秀的、一流的、開放源代碼的應用服務器,自然給我們帶來了無限的商機,關鍵是如何把握機會:

8.1 作為極好的系統(tǒng)開發(fā)參照平臺

Enhydra具有設計良好的架構,規(guī)范的代碼文檔,對于系統(tǒng)開發(fā)商而言,是一個非常好的參照系統(tǒng)。這里有兩方面的含義:

  1. 站在“Enhydra的肩膀上”,開發(fā)你自己的應用服務器。應用服務器被譽為“Internet上的操作系統(tǒng)”,可見其重要性和商機所在。前面所說的融合Enhydra和JBoss等,也有這方面的意思。作為系統(tǒng)開發(fā)商,Enhydra正好提供了一個合適的和高的起點。當然,在開發(fā)過程中要遵守Enhydra的版權協(xié)議EPL。
  2. 開發(fā)基于Enhydra的各種解決方案。Enhydra本身的特點決定了Enhydra在這個領域是大有作為的。

8.2 作為大型應用的開發(fā)平臺

Enhydra天然支持3層WEB應用程序開發(fā),這對于開發(fā)大型的WEB應用非常有利,有利于系統(tǒng)設計和團隊的合作,也有利于較好的控制開發(fā)進度和開發(fā)質量,有利于提高項目開發(fā)成功的概率。

9 結論

Enhydra作為領先的開放源代碼的應用服務器和應用程序框架,其前途是光明的,感謝Lutris公司開發(fā)人員的卓越設計和對開放源代碼社區(qū)的貢獻!

實際上,Lutris公司的初創(chuàng)者和開放源代碼社區(qū)原本就有很深的淵源,一直保持著和開放源代碼社區(qū)良好的合作關系。相信在開放源代碼社區(qū)的呵護下,在開放源代碼社區(qū)無處不在的仁人志士的幫助下,Enhydra將繼續(xù)保持業(yè)界領先地位!

讓我們拭目以待。


參考資料

關于作者

作者一直致力于Java在WEB開發(fā)領域的研究,尤其對Enhydra,JBoss,Eclipse非常有興趣,您可以通過 linuxman@263.net和作者聯(lián)系,歡迎批評指正!

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用BEA AquaLogic BPM Suite
在Eclipse里調試JSP文件--jjlovelml2006人間四月天版
Sun終于使Java成為開源軟件 采用GPL許可 ,
Apache與Tomcat的區(qū)別 ,幾種長見得web/應用服務器 - limingbupt...
J2EE的web服務器
各種容器與服務器的區(qū)別與聯(lián)系:Servlet容器、WEB容器、Java EE容器、應用服務器、WEB服務器、Java EE服務器
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服