概述
2001 年發布的第一版Java技術藍圖Java Pet Store就充分展示了Sun公司J2EE技術的優勢。藍圖不僅為多層的、數據庫驅動的電子商務應用程序提供了示例代碼,而且提供了設計准則,示范了常用的模式。自第一版發布以來,對於想學習J2EE最新技術的開發人員來說,Java技術藍圖已經成為最寶貴的資源和最佳實踐。
Smart Ticket藍圖增加了一個新的特性:移動性。它示范了如何創建一個實現電影訂票功能的完整的端到端的移動商務系統 ,將J2ME MIDP用於無線前端,而將J2EE應用程序服務器和關系數據庫用於後端。學習這個程序如何設計和構造將能極大地提高你對移動企業應用程序的難題和它們的解決方案的理解。
文章包含2003年4月發布的Smart Ticket的Early Access 2.0版的代碼。early-Access版中的屏幕截圖和示例代碼在最終版本中可能有細微的更改,但你從設計中學到的經驗依然是有用的。Smart Ticket 1.2仍然有效。它與我們現在討論的版本有相同的模型和後台實現,因此,無論對過去還是未來的版本,很多詳細解釋都適用。除特別說明之外,Sun Microsystems均對本文的所有源代碼保留版權。
下載和安裝
Smart Ticket應用程序可從Sun's Blueprints網站獲得。Zip壓縮文件包含源代碼、Ant構建腳本和預構建可配置的應用程序。
Smart Ticket應用程序包含一個J2ME組件和一個J2EE組件。運行它要求一個J2EE應用服務器(比如Sun的J2EE參考實現,1.3 版或更高),和任一個帶有Internet連接的兼容MIDP 2.0的設備或者合適的仿真程序。如Sun的J2ME Wireless Toolkit 2.0。 Smart Ticket發行版包括了特別的說明,幫助構建和部署這個應用程序。現在開始:
1、確保你已經安裝以下資源:
◆JDK v1.4.1 或更高版本。
◆J2EE v1.3.1 或更高版本。
◆J2ME Wireless Toolkit 2.0 或更高版本。
2、設置以下環境變量:
◆Java_HOME:JDK 安裝目錄 。
◆J2EE_HOME:J2EE RI 安裝目錄。
◆J2MEWTK_HOME:J2ME Wireless Toolkit 安裝目錄。
3、啟動 J2EE 服務器:
◆J2EE_HOME/bin/cloudscape -start
◆J2EE_HOME/bin/J2EE -verbose
4、配置 J2EE 應用程序。 在 setup.XML 文件中,使用以下 setup 腳本調用 deploy Ant 任務:
setup deploy
5、指定浏覽器連接http://localhost:8000/smartticket,單擊Populate Database鏈接,將模擬影院和電影數據導入數據庫。如果用的是老式計算機,這是非常慢的過程,所以要有耐心!模擬數據包括位於95054和95130這兩個郵政編碼的影院。
6、啟動J2ME Wireless Toolkit 2.0,並運行在smart_ticket-clIEnt.jad中指定的MIDlet。
運行中的 Smart Ticket
運行 MIDlet 後,采用簡便途徑就能實現用戶需求。你會發現你需要完成四項任務。
◆管理用戶參數:當第一次運行 MIDP 客戶端,你需要創建一個配置文件,包含用戶名、密碼、用於影院搜索的首選郵政編碼、一周的首選日,也可以包括信用卡號。Smart Ticket用帳戶憑證在服務器端創建用戶帳戶,並且將首選數據緩存在計算機中。還可以配置MIDP客戶機使其能夠緩存憑證,以便在每次購票或提交電影評級時無需手工輸入。你也可以在任何時候修改用戶參數。
◆搜索電影和購票:只要你登錄成功,你可以搜索符合首選條件的影院、電影和放映時間。只要你選擇了一部預演電影,MIDlet就提供顯示空位的座位圖。這個過程包括一系列對J2EE服務器的實時查詢。利用MIDP的豐富用戶界面(UI),你可以選擇或預訂一個座位。預訂信息將寫入服務器端數據庫,並會在下一次搜索中反映在座位圖中。
◆電影評級:你可以對看過的電影評級。此操作不會立即提交到服務器。這些電影緩存在客戶機,任何時候只要你評級,都能同步提交到服務器。因此,甚至在你的電話超出了網絡范圍也可評級(例如,在一個屏蔽的影院!)。同步代理可智能地防止你“謊服選票”:如果你對一部電影評級多次,在數據庫中它只保留最後一次結果 。
◆緩存影院放映時間表:為避免繁瑣的查看過程,你可以下載一份影院的時間表到客戶應用程序,以便離線浏覽。你可以在需要時刪除或再次下載時間表。