EJB,J2EE失樂園

          輕量級j2ee開發設計開發探討

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            3 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

          2005年12月26日 #

          位于尤他州Midvale的Burton Group公司的高級分析師Richard Monson-Haefel認為,當提到被大肆宣傳的富互聯網應用(Rich Internet Application ,RIA)技術時,更少的才是更好的。這種技術能夠大大促進用戶的Web體驗,因為不必再從服務器刷新頁面,Ajax的風格是單頁面接口。但他在最近關于Ajax的電視短片中說過度使用會導致導航困難。

            他說,Ajax比起其它RIA技術的主要優點是無縫與HTML集成,因此它可以大量使用而不需要改變現有Web內容。“把它想象成Web站點的調料。這樣做的風險非常小。Ajax還是后臺無關且不需要任何插件。與其它RIA技術,例如Macromedia的Flash等聯合使用,Ajax會是一個強大的工具。”

            但是,該技術還沒有成熟,而且工具和框架還沒有得到支持。Monson-Haefel說:“如果你不喜歡用工具集和類庫,Ajax就不適合你。”

            Burton Group定義“富”互聯網應用是能夠在標準HTML框架和鏈接之上提供功能的。Google Maps就是這樣一個優秀的Ajax例子。

            與Ajax最近被才提出不同,JavaScript已經存在很久了。它基于JavaScript/ECMAScript,、級聯樣式表、 文檔對象模型以及XML HTTP請求。最初,很難跨越不同瀏覽器來設計Ajax風格的應用程序。但現在,主流瀏覽器已經演變到支持微軟技術的實現了,并成為了最普通的特征。

            今天,占主導地位的RIA技術是Macromedia的Flash/Flex。其它RIA技術包括為Microsoft Windows Presentation Foundation開發的用戶接口標記語言,稱為XAML(Extensible Application Markup Language,可擴展應用程序標記語言)。還有Mozilla的基于XML的用戶接口語言XUL,droplets和Java applets以及微軟將要推出的Windows Presentation Foundation/Everywhere (WPF/E)。

            Monson-Haefe說:“Flash是很好的技術,適合于豐富動畫與圖形,但Flash好象是一個小池塘中的大魚。現實市場現在還沒有那么大,因此隨著市場變大它是否能占領市場還是一個疑問。而微軟將推出的WPF/E會是一個有力的競爭者。”

            微軟還計劃推出一個Ajax框架擴展,稱為Atlas。Monson-Haefel認為它非常有前途。他說,Ajax的其它集成開發環境還沒成為主流。這包括Morfik Technology公司的Javascript Synthsis Technology (JST)、JetBrains公司的IntelliJ IDEA 5.0、Tibco Software公司的Tibco General Interface (GI)、JackBe公司的Visual GUI Builder、Backbase B.V.公司的Backbase以及開源的Ruby on Rails框架。

            他說:“它已經內建了Ajax功能,使你能夠用Ruby編程語言編寫Ajax應用程序。”

            Monson-Haefel說:“用于編寫Ajax應用的Tibco工具非常好。JackBe也是相當好的RIA技術而Backbase或許是現在更好的一個。IDE的優點就是所見即所得的開發方式,但你購買了他們的GUI,這樣你也受到觀感上的束縛。”

            除了IDE和框架擴展,Monson-Haefel還提到可用的Ajax UI工具和遠程工具還有很多,包括私有的和開源的產品。他說,只有一部分。根據Burton Group公司最近的一項調查,在488位Ajax開發人員中,最流行的工具集、類庫和框架擴展是有MIT風格證書的JavaScript框架——Prototype,JavaScript 類庫——Script.aclo.us,有Apache 2.0證書的Direct Web Remoting,有Academic Free License v 2.1的Dojo UI工具集以及Ruby on Rails。

            至于數據,對Ajax的關注主要集中在B2C的Web站點,但Monson-Haefel指出Ajax實際上與Web服務和SOA有緊密聯系,它能影響企業門戶。

            “一些人相信Ajax將成為門戶解決方案的主要復蘇因素。門戶被宣傳了很久,但實際上它并非所謂的銀彈。而Ajax表示層與門戶的結合將促進所有用戶的體驗。”

            Monson-Haefel警告說Ajax很容易被濫用。“假如開發人員不理解使用理論,他們就會胡亂應用它而且人們會刻意避開JavaScript。我的推理來自瀏覽器彈出窗口。這種技術源于一種可用特性,但由于被濫用它已經成為Web技術中的下等公民,人們也不再使用它了。”

            他的建議是應該謹慎的實現Ajax解決方案。

          posted @ 2005-12-27 11:35 EJB,J2EE失樂園 閱讀(591) | 評論 (0)編輯 收藏

          通過兩個多月緊張激烈的角逐,"原創技術高手"賽事已經告一段落,受到了來自系統集成、軟件開發、產品銷售、業務咨詢等多個領域的朋友的熱情參與。由BEA專家組成的評委會,參考網友們和斑竹的意見,結果見http://dev2dev.bea.com.cn/bbs/paihang/2004121500.jsp,我有三篇文章入圍,其中《誰動了我的EJB?-J2EE 開發應用框架反思》獲獎,

          得獎理由:
          有創意,實實在在的原創;有深度。

          對我有較大觸動,希望自己能更加努力!加油!

          posted @ 2005-12-26 17:33 EJB,J2EE失樂園 閱讀(288) | 評論 (0)編輯 收藏

          在大多數項目中,在特定的時間或頻率下你需要完成一些特定的任務。在本文中我們將演示如何用標準的Java Timer API來實現。

          大多商業應用都會用報表和統計,很難想象沒有這些幫助我們分析未來趨勢的數據,我們還要這系統干什么。問題是如此多的數據我們該如何觸發,如果處理對系統性能影響不大。比較好的方式是避開應用高峰,讓服務器在閑暇時完成這些事。

          下面是我的程序:

          package net.nighttale.scheduling;
           
          /**
           * @author kevin zhou
           *
           * 在Java中實現Job Scheduling
           * 創建日期 2004-7-13
           */
          import java.util.TimerTask;
          import java.util.Calendar;
          import java.util.Date;
          import java.util.Timer;
           
          public class ReportGenerator extends TimerTask{
           
              /* (非 Javadoc)
               * @see java.util.TimerTask#run()
               */
              public void run() {
                  System.out.println("Generating report");
           
                 
              }
           
          }
          class MainApplication {
           
            public static void main(String[] args) {
              Timer timer=new Timer();
              Calendar date = Calendar.getInstance();
              date.set(
                Calendar.DAY_OF_WEEK,
                Calendar.SUNDAY
              );
              date.set(Calendar.HOUR, 0);
              date.set(Calendar.MINUTE, 0);
              date.set(Calendar.SECOND, 0);
              date.set(Calendar.MILLISECOND, 0);
              // Schedule to run every Sunday in midnight
              timer.schedule(
                new ReportGenerator(),
                date.getTime(),
                1000 * 60 * 60 * 24 * 7
              );
            }
          }
          我先簡單解釋一下,在我們的例子中ReportGenerator繼承java.util.TimerTask,它又繼承了java.lang.Runnable,我們需要覆蓋run()方法。
          調用時我們用schedule()方法讓它每周日0點0分執行,避開服務器高峰,實現Job Scheduling的目的。
          posted @ 2005-12-26 17:18 EJB,J2EE失樂園 閱讀(448) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 宁乡县| 兴化市| 沧州市| 德安县| 敖汉旗| 蓬溪县| 开化县| 多伦县| 巴马| 万山特区| 绥化市| 永善县| 祁连县| 金平| 合肥市| 获嘉县| 津市市| 田阳县| 旬邑县| 特克斯县| 铁力市| 秦皇岛市| 东乌| 普定县| 临泉县| 科技| 吴江市| 三江| 慈溪市| 嘉定区| 布尔津县| 剑阁县| 鄂托克前旗| 吉安市| 东兴市| 顺义区| 赣州市| 阳谷县| 金秀| 克拉玛依市| 普宁市|