由於SARS的影響JBuilder 9在5月6日透過Borland網站正式發表,臺灣於5月底已出貨。一向走在Java開發工具最前端的JBuilder,第9版已與Borland StarTeam版本管控系統完全整合,並於Enterprise版內建Optimizit Suite以確保專案的效能品質。為強化J2EE應用程式開發能力,JBuilder 9支援Struts、Session Facade、DTO等模式,以提供更完備的開發環境。完全整合StarTeam
JBuilder Enterprise內建Optimizeit Suite
編輯器變聰明

版本管控系統除了支援ClearCase、CVS、Visual SourceSafe之外,在JBuilder 9的IDE環境中,可直接把專案登入(Check-in)到Borland的StarTeam。StarTeam除了一般版本管控的功能,並涵蓋資源分配與團隊溝通的功能,適合團隊開發的管理。主管可線上指派工作給任何開發成員,並隨時掌握進度。工作完成Check-in回StarTeam後,透過Commit Browser及Repostry Diff用戶端,即可得知本機的程式與StarTeam Repostry的版本有何差別,並選擇同步作業。

StarTeam的Change Request是程式碼的異動管理工具,顯示程式碼中有哪些問題指派誰處理。利用Compare Content可顯示版本之間差別,Topic則類似討論區的功能,供開發人員公開的溝通管道。StarTeam不只是管理程式碼,還可控管任何檔案或文件版本,過去StarTeam的中文顯示有問題,所以在臺灣使用率不高,最新版已克服中文問題,可搭配SQL Server、Oracle或DB2資料庫。目前跨兩岸三地的資訊公司很多,StarTeam有Web的版本,透過TCP/IP傳輸,可滿足版本管控與團隊開發的需求。

Borland整合JBuilder與Optimizeit Suite的目的,是為了在專案開發時期即注意到效能與品質管理,避免系統上線之後才發現問題,將付出龐大的調校與修正成本。雖然Java具備自動記憶體管理能力,虛擬機器會自動回收未被使用的記憶體,但是Java仍有發生記憶體漏失的狀況。

JVM的記憶體回收機制,會以獨立執行緒追蹤物件的使用情況,但若程式撰寫不當,致使物件始終被參照而永不被回收,將造成物件閒置(Loiterers)的狀況。當JVM的堆疊(Heap)中無法回收的記憶體持續增加,將影響應用程式的效能。J2EE應用程式猶為嚴重,伺服器相關應用程式執行時間長,終導致記憶體逐漸耗盡而難以執行。

「解鈴還須繫鈴人」,解決效能問題仍須仰賴最了解程式碼的開發人員,因此Borland Optimizeit Suite是針對開發人員所設想的工具。最新發生的影響大眾權益的例子,即是期交所頻繁的當機事件,目前多數看法指向系統的設計問題,若證實更新硬體只是治標不治本的方法,唯一根治的方法可能是重寫應用程式,如此一來所必須付出的成本及影響將難以想像。若企業能記取教訓,在開發階段即導入效能品管的概念,才能減少專案暗藏的未知風險。

為提供更便利的開發環境,JBuilder 9的編輯器提供ErrorInsight、JavadocInsight、Sync Edit及Smart code template等貼心的功能。ErrorInsight除了會自動在編輯時期找到文法錯誤的程式碼,更提供修正建議;Javadoc是Java標準的文件格式,只要開發人員認真地撰寫每段程式的註解,即可集結成完整的系統自我說明文件。由於Javadoc中有許多標籤(Tag),例如:Author、Title、See、Version等,以詳實記錄專案的功能及各種屬性。為提升撰寫註解的效率,使用JavadocInsight功能,按「Ctrl+@」即顯示Javadoc的標籤列表供開發人員選取,節省查詢及輸入的麻煩。

大範圍更改程式碼中的物件命名時,Sync Edit是相當好用的功能,例如將「Hello」修改為「hello」,只要點選欲修改的範圍,按「Ctrl+Shift+J」即可同步更新,避免人工逐一修改可能的疏忽。為增加程式撰寫的效率,JBuilder第一版即提供Code Template的功能,按「Ctrl+J」即可選擇預先設定常用的程式範本,JBuilder 9加入Macro(巨集)以提供更聰明的功能,可在Code Template中加入巨集,例如$CurrentLine、$CurrentMethod、$Parameter等,以顯示對應的參數內容。此外有一些程式碼必須搭配特定Package才能使用,但是Import指令夾雜於程式碼中是不合法的行為,Smart code template會自動將Import的內容移至程式碼的最上方。提供Session Facade、Struts及DTO模式

JBuilder從第8版開始即支援Struts,提供圖形使用者介面,簡化組態檔的編輯。Session Facade Pattern則是由Facade Pattern發展出來的(Facade是法文,原意為外觀、外殼的意思)。Facade Pattern是在系統中定義一致的存取介面,以降低應用程式的複雜度,並增加靈活性。

例如應用程式中經常使用資料庫存取機制,通常是重複類似的程式碼,只是存取不同的資料庫、表格或欄位,採用Facade模式即粹取其中不變的部分成為共通的介面,更動資料庫架構時,僅需要更動Facade介面即可。

J2EE應用程式的Enterprise Bean可包括商業邏輯、資料及介面,因此浮現許多問題,例如用戶端與物件相依性過高、用戶端與伺服器端之間Method呼叫頻繁,導致網路傳輸效能的瓶頸、元件濫用缺乏統一的方法。使用Session Facade Pattern可管理物件並提供統一存取介面,抽取物件之間基本的互動機制,並提供必要介面,隱藏複雜的運算,並管理工作流程中元件與資料的互動。物件之間可能是短暫或永久的關係,Facade較適合應用管理於物件之間的短暫關係。

JBuilder 9對於Session Facade的應用是針對Entity Bean,以「DTO/Session Facade Wizard」產生Session Facade 。Session Facade本身是Session Bean用以包裝Entity Bean,希望把Entity Bean存取資料庫的複雜度,隱藏在Facade背後,再搭配DTO(Data Transfer Object) Pattern,將從Entity Bean取得的資料,包裝成一個Java Bean傳送至前端。由於伺服器與用戶端的資料傳送頻繁會影響網路效能,因此將資料以物件傳送至用戶端,於本機存取的效能較高。為避免資料不一致的情形,利用DTO傳送的資料多是郵遞區號、代碼表等不常更動的內容。

同樣的概念應用到.NET環境,可對應到ADO.NET的DataSet。使用Session Facade與DTO模式的好處,是可增加程式的重複使用性,即使後端資料庫及欄位抽換或改變,只要更動Session Facade與資料庫的對應,不需更動程式碼。JCP針對Web Services推出相關規格的標準,各家廠商再根據標準實作,JBuilder 9支援WebLogic的Web Services ToolKit、Aphche SOAP、Aphche Axis,並與IDE完全整合,因此符合W3C標準的Web Services,JBuilder均可直接透過這些工具叫用,其他工具雖未與JBuilder整合,仍可於命令提示列下指令,解析XML內容及函式庫,產生各種語言解讀的內容。不容忽視的小螞蟻
支援WebLogic 8.1及WebSphere 5.0
怎麼買才划算?軟體保固便宜又大碗!

編譯程式碼產生可以執行的應用程式是繁複的過程,由Java撰寫而成的Ant(Another Neat Tool),是重量級的J2EE應用程式建構及部署工具,提供自動化部署與安裝Java程式的標準。雖然JBuilder本身可提供建構及部署應用程式功能,但是不見得客戶或合作夥伴使用同樣的開發工具,Ant雖非官方的標準,但已相當普及,可依Script檔(腳本)自動建構與部署。 JBuilder 8時已可執行Ant的腳本檔,JBuilder 9進一步透過「Export to Ant」精靈產生Ant的腳本檔。

在Ant腳本執行應用伺服器的部署工具並傳入參數,即可部署應用程式,針對各種不同的J2EE應用伺服器只要產生對應的腳本,即可部署應用程式到各種J2EE應用伺服器。由於Ant的建構腳本是以XML撰寫而成,所以是可閱讀的文字檔,將有助於知識的保存。

IBM與BEA目前是J2EE應用伺服器最具代表性的兩家廠商,JBuilder理所當然必須支援最新版的功能。JBuilder目前已成為BEA WebLogic標準的開發工具,因此第一時間支援WebLogic 8.1的最新版本。BEA的4種使用者等級中,Power User是善於使用Front Page、Dreamwaver及Word的使用者;Application Developer是指以往使用VB的開發人員,由於Java的門檻太高,可透過Workshop以類似VB的技術和經驗製作Web Services及組合J2EE元件;Enterprise Developer及System Developer才是真正利用JBuilder製作JSP、Servlet及EJB等J2EE關鍵元件的人員。因此Workshop與JBuilder的定位有所區隔,用戶依不同的訴求選擇適合的工具。

JBuilder Enterprise搭配BEA及Sybase兩家J2EE廠商的版本,移除Borland Enterprise Server及對其他J2EE應用伺服器的支援,加入WebLogic Platform並僅支援WebLogic。相同的針對Sybase EAServer的版本僅支援EAServer ,其他功能則大同小異。

針對客戶質疑JBuilder Enterprise版由9萬元漲到12萬元,Borland表示JBuilder Enterprise版本內建更多功能。過去手機開發模組免費提供下載,目前已成為正式的產品,並內建於JBuilder 9的Developer及Enterprise版。JBuilder 8搭配Optimizeit Suite的JBuilder 8 Performance Bundle售價約14萬元,JBuilder 9 Enterprise版已內建Optimizeit Suite,售價反降為12萬元。

由於許多客戶反應目前以Java開發的多為J2EE應用程式,所以完全對應J2SE的JBuilder Standard版是不實際的產品。因此Borland於JBuilder 9順應實際情況,取消Standard版改推包含JSP、Servlet及Struts等支援Web應用程式開發功能的Developer版本。至於免費提供個人下載使用的Personal版,為避免流失個人用戶,不但授權允許非公司行號的SOHO族或個人從事商業用途,更加入JDK切換、UnitTest及Refactoring等功能,是有史以來功能最多的Personal版本。

Java開放標準的生態使得Java規格不斷演進,Borland為持續支援最新標準,不同於傳統開發工具一年出一版的生命周期,JBuilder必須一年推出兩版。Borland將訂閱雜誌的觀念帶到軟體更新方面,以降低採購成本是較划算的作法。Borland目前針對JBuilder取消軟體保固(Software Assurance)僅能購買一次,隔年不可續訂的限制,每年可持續加簽。企業只要每年花31500元,即可持續取得JBuilder一年兩次的更新版本,及新加坡技術支援中心無限次數技術支援服務。對於必須持續跟進最新標準的企業,比起購買JBuilder 9 Enterprise版約12萬的單價,軟體保固實在是划算超值的選擇。Struts的由來

Java Servlet推出時,廣受開發人員好評,但是不斷以println()於程式中撰寫HTML語法,是令人厭煩的工作。JSP出現後,開發人員可輕易結合HTML與Java程式,解決了Servlet的問題,此後僅使用JSP撰寫Web應用程式的加構稱為Model 1。不久之後,開發人員發現搭配JSP與Servlet開發Web應用程式更為適合,Servlet協助控制流程;JSP則專注於企業網頁設計,此種架構稱為Model 2。

Model 2是典型MVC(Model-View-Controller)設計模式,2000年5月Craig R. McClanahan提出Struts專案,提供Java程式溝通的MVC架構。Struts依照Model 2的架構,以Java Bean及EJB擔任Model的角色,處理商業應用邏輯;JSP則呈現使用者介面View的部分;Controller則可分為Front End Controller及Back End Control兩部分,Servlet屬於Front End Controller,處理身分核驗、錯誤處理等系統共通的功能,Back End Controller則由Java Bean執行使用者觸發的各項系統功能。文⊙李延華

熱門新聞

Advertisement