今年Java2的主軸是JDK 1.5及J2ME,此外Java Studio Creator也是令人耳目一新的網頁應用程式開發工具,可媲美開發ASP.NET的便利性。臺灣昇陽努力耕耘4年,Java2也終於受到昇陽大中國區的肯定,提供人力及金錢的支援,甚至大陸也想模仿臺灣模式舉辦「Java China」。
一年一度的Java開發者大會8月3、4日在臺北國際會議中心展開,今年付費參加的人數已達1400人以上,若包含公關票及媒體,總共超過1600人參與今年的盛會。今年的主軸除了介紹JDK 1.5及昇陽新推出的開發工具Creator,更特別的是,一般認為族群較小的J2ME,今年的課程多達5場,主要是因為行動裝置的應用,近幾年蓬勃發展。JDK 1.5及J2ME是今年的重點
昇陽教育訓練中心經理王森表示:「Java2課程的安排是以趨勢為主,並介紹Java的新技術。」每年Java2活動結束後,即著手討論明年的題目,主要根據技術演進及趨勢,像今年由於手機的應用明顯成長,因此J2ME的課程高達5場,其次新技術JDK 1.5的介紹共3場,兩者的份量已佔所有課程的一半。
除此之外,昇陽新推出的開發工具Java Studio Creator及Enterprise,也是介紹的重點,一般企業的開發人員未必是技術能力很強的技術人員,但對各領域的知識卻非常了解,因此他們傾向選擇VB或Delphi開發應用程式,而非技術複雜的Java。
企業內部自行開發的應用程式,多是存取資料及呼叫使用各式各樣的服務,因此需要搭配容易上手的介面,不必寫很多程式,拖拉點選即可完成的工具。因此昇陽推出Creator,不需要深入學習艱澀難懂的Java技術,即可以類似Visual Basic的介面開發Web Form,其便利性與Visual Studio .NET開發ASP.NET相當。
有口碑的專家是選課的大熱門
每個時段的課程,都是兩個專家場次搭配一個合作夥伴場次,王森表示:「教室的安排事先經過網站選課系統的調查而排定。」熱門的場次排在二樓可容納800人的教室,其他兩場則分散在一樓可容納400人的教室。
在第一天的活動議程中,侯捷及葉秉哲因為有很高的知名度,且題目的選擇適當切中學員需求,是最熱門的場次。此外,恆逸資訊資深講師耿維德主講的「J2EE Patterns的革新與應用」,相當具有深度,是Java開發人員相當關注的議題,因此不僅原本的位子座無虛席,還臨時追加多排座位,把教室擠得水洩不通。
第二天的研討會,資策會副工程師蔡捷雲雖不是知名的講師,但選題適當,介紹JDK 1.5的新功能,相當吸引學員的興趣。資策會講師蘇國鈞主講的Java Studio Creator,開發網頁應用程式的方便性令人驚豔,可媲美VB的快速及直覺開發環境,搭配緊湊的實作,加上講師本身對工具的了解及紮實的技術底子,獲得學員高度肯定。下午最精彩的是,莫過於恆逸資訊技術總監孫三才主講的「JSP Web Form設計考量與實作」,把重要的觀念用輕鬆簡單的方式表達,整場笑聲不斷,也確實讓學員體會Session管理的重要性,果然是行家一出手便知有沒有。
開放原始碼逐漸受到大家的矚目,數位無限的技術顧問陳文裕介紹「Open Source J2EE」,吸引許多學員想一睹JOnAS的應用,了解日前Red Hat宣布將採用的J2EE應用伺服器有何特色。比較可惜的是,全程只有J2EE及開放原始碼趨勢、ObjectWeb、JOnAS的靜態介紹,釣足學員的味口。
王森透露:「專家廠次昇陽盡力做到嚴格把關,合作夥伴場次則是廠商行銷的好機會。」在合作夥伴場次的品質較不一,但可看到不同廠商的應用,Macromedia今年主推的Flex展示伺服器,讓網頁外觀與操作經驗,都不輸桌上型應用程式,是相當搶眼的產品。其他如蕭百齡、何致億,及今年參與JavaOne回來的朱仲傑等,實力雄厚的專家,也相當值得去聽。明確區分Java技術與產品,努力轉型軟體公司
昇陽雖然研發了Java技術,但除了收取技術授權費,及技術諮詢外,並沒有在Java上撈到很多好處,反而是BEA、IBM的J2EE應用伺服器及Borland的JBuilder開發工具,較為人所熟知。因此,昇陽決定將旗下的軟體產品區分為Java及Java System,召告各界催生Java的始祖昇陽,其所推出的產品才是正宗。
Java品牌代表的J2EE、J2SE、J2ME及Java Card,是由JCP(Java Community Process)制定的公開業界標準及開放原始碼的免費開發工具及產品。今年9月初將推出的J2SE 1.5,將是JDK 1.0以來語言層級改變最大的一版,因此昇陽覺得如果延續之前的版本序號,稱為1.5版太委屈,便更名為J2SE 5.0,並取了一個響亮的代號「Tiger」。
預計2005年第二季推出的J2EE 1.5也將延之更名為J2EE 5.0。J2ME方面WTK 2.2將支援藍芽API、行動3D API、Web Services,過去WTK必須先安裝英文版,再安裝Services Pack,WTK 2.2則提供全中文的安裝與開發環境。
Java System則包括Java Enterprise System、Java Desktop System、Java Mobility System及Java Card System,是必須向昇陽付費購買的產品。Java Enterprise System今年第二季已推出第二版,預計今年12月將推出第三版,目前Java Enterprise System只支援Linux及Solaris作業系統,明年三月將有支援Windows及HP-UX的版本。Java Desktop System目前是第二版,預計12月也會推出第三版。
目前Java發展的方向,昇陽也作出重大的變革,為降低Java開發平臺的技術門檻,將朝向簡易開發的方向努力。J2SE方面,Tiger新增許多語法,並強化JVM的執行速度;J2EE方面,過去太多技術門檻,未來將讓企業更容易開發;J2ME的架構已經相當完備,因此將提供更多Optional Package,以支援行動商務及安全性等更多功能。
Java Studio Creator
昇陽推出的開發工具Java Studio Creator及Java Studio Enterprise,兩者皆以昇陽的開放原始碼開發工具NetBeans為基礎,純Java開發的產品,Creator可快速開發網頁應用程式; Enterprise則是企業級應用的開發工具,可搭配Java Enterprise System中重要的伺服器,例如應用伺服器、Portal、Web Server及Directory Server。Enterprise 7.0預計今年第四季推出,所以Java2展示的重點在Creator。
以往的Java開發工具使用門檻較高,Creator鎖定的是VB、Delphi的市場,提供產業知識(Domain Knowledge)很強的開發人員方便的開發介面。提供成熟的IDE平臺技術,適合開發JSP及Servlet等網頁應用程式。軟體內容包括Java Studio Creator、Sun Java System Application Server Platform 8、PointBase資料庫及DataDirect JDBC驅動程式。
Creator根植於JavaServer Faces與JDBC Rowset兩種技術以開發分散式Web應用程式,分離用戶端的使用者介面及伺服器端的程式邏輯,並提供狀態管理、輸入驗證與轉換、事件管理及例外處理機制,並使用Cascading Style Sheet 2.1來控制網頁的Layout。透過JDBC RowSet傳遞資料庫表格內容,並支援資料感知(Data-Aware)元件技術。再結合Java Web Services Developer Pack,提供呼叫Web Services的能力。
目前Creator只直接支援Sun Java System Application Server Platform Edition 8,其他J2EE應用伺服器,可以將應用程式以WAR檔案型式匯出,並自行定義Data Source。不過若J2EE應用伺服器缺少對JSF 1.1、JSTL 1.0、JSP 2.0及RowSet的支援,必須自行匯入程式庫。
現場展示的包括運用JSF元件、連結資料庫及呼叫Web Services,Creator不能開發Web Services,但可運用現成的Web Services。比較不方便的是只要有用到中文的網頁,都必須把EnCoding屬性由預設值UTF8改成Big5。
昇陽從銷售硬體轉型成軟體廠商,的確需要浴火重生的改變,在Java上的營收如此委屈,足見其販售硬體的行銷思維尚未轉彎,蘇國鈞在Java2上展示的Java Studio Creator,的確是很方便的網頁應用程式開發工具。朱仲傑預告Java Studio Enterprise 7.0的功能,也具有獨特的協同開發機制,及UML與程式碼雙向同步功能,如果搭配足夠透明的通路,及貼近市場的行銷策略,應該是值得企業參考的產品。Java2的由來
昇陽在美國已連續9年舉辦JavaOne開發者大會,介紹Java的新技術,在亞洲由於日本的平均所得較高,因此美國JavaOne講師原班人馬移師日本,再搭配區域性技術舉辦的JavaOne也有四年的歷史。在美國參加JavaOne的費用為2000美金;日本則需要24萬日幣。雖然臺灣及大陸也希望爭取JavaOne的活動,但昇陽考量成本過高,因此一直無法成行。
過去曾任臺灣昇陽教育訓練中心總經理洪志鵬,為了推廣Java致力經營社群,除了在2000年辦Java周報,更在2001年著手籌畫自行舉辦臺灣區的Java開發者大會,以強化昇陽與Java社群的互動。為與JavaOne有所區隔,因此希望集思廣益,取一個不同的活動名稱。
Java社群中的一位邱建勳醫生,經常運用Java開發PDA及手機醫療軟體,便建議臺灣的Java開發者大會取名「JavaTwo」。今年則小小的將JavaTwo改成Java2,但意涵不變。Java「Two」或「2」有多種意義,包括臺灣的縮寫是「TW」、可與Java「One」區隔、「2」剛好是目前Java架構的版本,而且取其音可以兔子作為吉祥物。
不過,少了JavaOne的支援,臺灣必須自行找尋適合的講師,因此洪志鵬挖掘隱身在Java社群,富有熱心願傾囊相授的精英,也因此造就了王森、蔡學鏞、朱仲傑、侯捷及葉秉哲等多位名嘴。也就因為講師來自於Java社群的高手,因此洪志鵬認為專家們熱情的參與是昇陽的榮幸,因此講師費較一般行情高出許多。
Java2開發者大會歷經4年漸趨成熟,參加學員以10%的成長率逐年增加,付費學員從第一年900多人,到今年已超過1400人。大陸見臺灣模式如此成功,也希望模仿臺灣自行舉辦「Java China」活動,目前仍在規畫當中尚未定案。也就因為Java2的影響力越來越大,從今年起昇陽電腦大中國區,也開始提供人力及資金的支援。
J2EE Patterns 2.0新增的Patterns
Core J2EE Patterns這本書的由來,是多位J2EE的專家在開發多個專案後,希望根據J2EE平臺的特性,淬取知識提供更好的設計模式,以增加設計的再利用性。在2000年的JavaOne開發者大會中首次被提出來討論,不久之後即獲得很大的回響,昇陽認為有必要出版這些資訊。
在2001年的JavaOne首次發表Core J2EE Patterns這本書,共包括15個Design Patterns(設計模式),新版的Core J2EE Patterns 2.0則是以J2EE 1.4技術為基礎,並共包括21個Patterns,比之前1.0的版本多了6個Patterns,既有的Patterns也因應J2EE 1.4的作了調整,並有了新的設計策略,J2EE方面加入Web Services技術,且完整使用UML圖形。
J2EE Patterns與GoF(Gang of Four;四人幫)推出的Design Patterns不太一樣,GoF的Patterns比較抽象,可以應用在任何物件導向語言;而J2EE Patterns是針對J2EE平臺的設計。J2EE Patterns實作自GoF的Pattern,所以開發人員應先學習GoF,再學J2EE Patterns。
Core J2EE Patterns已成為Java 領域最重要的設計模式,也是Java技術人員必備的知識,Java開發人員若要想更上一層樓,增加設計的功力,就必須了解J2EE Patterns,才能設計出架構優良且具彈性的J2EE系統。
J2EE Patterns可分為與應用程式和資料庫界接的Integration Tier、管理商業邏輯有關操作的Business Tier及管理與組織顯示層的元件Presentation Tier。J2EE Patterns 2.0在Presentation Tier增加了Application Controller及Content Object、Business Tier增加了Application Service及Business Object、Integration Tier則增加了與資料界接的Domain Store及因應J2EE 1.4加入Web Services而提供的Web Services Broker等模式。
這些Pattern的目的多是為了增加元件的再利用性,但缺點則是會讓程式的層級變多,也可能會影響效能,小型專案未必適合。耿維德表示:「不是所有的Pattern都用上就是好,應視情況挑選Pattern實作,否則系統的層次會太多。」層次太多的後果,不但複雜且會影響效能。Web Form可不用Session和Hyperlink
恆逸資訊技術總監孫三才「JSP Web Form設計考量與實作」所講的內容,難易度適中且妙語如珠,又是很實用的概念,將他安排在Java2的最後一場,提振學員的精神,並為Java2畫下完美的Happy Ending,足見舉辦單位的用心。席間RTFSC的笑話,也成為學員之間不斷回味的精典。
網頁應用程式首重系統的擴充性(Scalability)、可用性(Availability)及效能,擴充性是在網站負荷不多持續增加的流量時,要能夠增加機器以平衡網頁伺服器的使用量;可用性則是要做到任何一臺伺服器當機或停機時,不會影響任何使用者。孫三才表示這些都與Session的管理有關,且根據經驗統計,90%的效能問題,也都與Session的管理有關,所以最好不要使用Session。
Session 物件是每臺伺服器紀錄使用者相關資訊的機制,例如使用者帳號與密碼及購物明細,以保留身分認證及資料存取的內容。目前負載平衡的機制,有同一組IP固定存取單一伺服器,也有每次的存取都隨機選擇伺服器的機制。如果是隨機選擇存取的伺服器,因為不同電腦會定義各別的SessionID,就會導致資料遺漏的情況。再者除非使用NetWork Load Balance,否則任一臺伺服器停機,必定會有部分線上正在存取的資料遺失,所以Session的管理相當重要。
孫三才的設計是自行管理Session的資料,包括Session的資料存放在伺服器及用戶端兩種作法,存放在伺服器,可選擇儲存在資料庫或檔案;如果存放在用戶端,則可選擇使用Cookie或利用隱藏欄位。存放在檔案的資料,適合大量的暫存性資訊,例如不常更動的查詢資料,以減少資料庫的負擔。Cookie則適合跨伺服器或跨網域的應用,但缺點是使用者可能會關閉Cookie。
當使用者關掉Cookie,每當使用者點選網頁上的超鏈結,伺服器就會啟動URL-Rewrite機制,產生新的Session及連結,如此將導致伺服器容易將資源用盡,所以開發人員應在網址後面加上SessionID,避免Cookie被關掉的情況。
事實上,市面上也有針對Session管理推出的產品,例如Identity Server。孫三才則是分享另類解決的方法,不但免費且很實用,不過,不是所有的網頁應用程式都適用這樣的方法,複雜的應用需更多的考量,例如使用隱藏式欄位,也有安全性的疑慮。有興趣的開發人員可下載孫三才提供的SessionListener,了解程式設計的原理。
效能一向是最難除錯的難題,這堂課程最主要的目的,是讓學員了解Session特性,希望幫助企業解開長久以來,網頁應用程式效能不彰的原因,如果每隔一段時間就必須重新啟動伺服器,很可能就是因為程式設計不良,讓Session不斷增膨脹,導致伺服器記憶體無法負荷,效能才會下降。文⊙李延華
熱門新聞
2026-01-12
2026-01-16
2026-01-12
2026-01-16
2026-01-12