學習WSAD、ROSE、WEBSPHERE的基本用法

發表于:2007-06-22來源:作者:點擊數: 標簽:
前言 雖然IBM放棄了WSAD、ROSE的繼續發展(取而代之的是 Rational Software Architect),但作為一代經典的ROSE,到今天仍然是系統建模的有力工具。 至于WSAD,我本人從4.0就開始使用,通過IBM的紅皮書的范例和教程,我逐步掌握了JSP、EJB、WebService等技術。

   
  前言
  
  雖然IBM放棄了WSAD、ROSE的繼續發展(取而代之的是Rational Software Architect),但作為一代經典的ROSE,到今天仍然是系統建模的有力工具。
  

  至于WSAD,我本人從4.0就開始使用,通過IBM的紅皮書的范例和教程,我逐步掌握了JSP、EJB、WebService等技術。
  
  對于初學者來說,WSAD很容易上手:
  
  安裝容易
  
  中文菜單
  
  本身帶Websphere測試環境、不需要復雜的配置
  
  IBM紅皮書教程豐富的范例和教程
  
  不需要額外的運行環境和插件
  
  并且,從WSAD轉向eclipse相當容易,WSAD本身就是基于eclipse,界面和eclipse非常類似,大部分快捷鍵都和eclipse一致。
  
  本文通過jpetstore(struts+ibatis)范例,介紹WSAD的基本用法、并用ROSE為jpetstore建立用例模型、數據模型、WEB模型等,最后將jpetstore改造成用spring+hibernate實現,可作為WSAD、ROSE初學著的入門教程。
  
  一、jpetstore簡介
  
  大家知道,SUN公司J2EE藍圖應用程序,petstore寵物店有很多版本,jpetstore版本的詳細介紹可參見基于struts+spring+ibatis的輕量級J2EE開發。
  
  我個人認為,jpetstore版本的設計有許多值得學習的地方,建議大家仔細讀讀它的源代碼。
  
  jpetstore的主要特點:
  
  所有的Action通過BeanAction實現,相當做了IOC,便于系統的擴展(如增加BeforeAction和AfterAction的攔截器)。
  
  通過LocalThread技術,解決了Struts中Action線程不安全的問題。
  
  ActionContext封裝了所有請求的參數(Parameter)、會話(Session)、Servlet上下文(ServletContext)等內容,具體的方法就不需要參數了。
  
  ActionForm與Action合二為一,表現層Bean里面可以有多個方法。
  
  可以在表現層Bean中方便地使用POJO對象。
  
  由于做了IOC,對BaseBean、BeanAction稍加改造,持久層、業務層、表現層遇到錯誤直接拋異常,在BeanAction可以捕獲到所有異常,便于錯誤和異常的統一處理。
   
  二、用WSAD運行jpetstore
  
  第一步:用DDL中的腳本建表和數據。
  
  第二步:啟動WSAD后,建立工程
  
  1.由于已有jpetstore文件,選擇文件->導入
  
  選war文件(也可以war解壓縮,選擇文件系統):
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖一)

  點擊“完成”后,選擇相應的war文件(見附件)。
  
  2.“新建”項目
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖二)

  取名jpetstoreWeb
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖三)

  完成后,建立了一個動態WEB項目。
  
  3.導入java文件
  
  在“Java資源”右鍵選擇導入,類似的,選擇導入文件系統后,選擇src文件夾(jpetstore.war中有,解壓出來)。
  
  工程就建立起來了。
  
  4.修改properties\database.properties文件,比如,如果是mysql數據庫
  
  driver=org.gjt.mm.mysql.Driverurl=jdbc:mysql://localhost/jpetstoreusername=rootpassword=root
  
  第三步:運行工程
  
  右鍵點擊“jpetstoreWeb”工程,選擇“在服務器上運行”
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖四)

  由于WSAD帶WebSphere測試環境,全部默認就可以。
  
  在IE運行 http://localhost:9080/jpetstoreWeb/
  
  控制臺右下有“服務器”,可以啟動或者停止服務器。
  
  第四步:重構項目
  
  1.右鍵com.ibatis.jpetstore.persistence.iface.Aclearcase/" target="_blank" >ccountDao,選擇“重命名”,如為IAccountDao(我個人的習慣,接口都以I開頭),所有引用AccountDao的java文件中,AccountDao也全部更改名稱了。其余的幾個Dao也重命名。
  
  2.打開com.ibatis.jpetstore.service.AccountService,選擇“重構”->“抽取接口”,命名IAccountService,形成接口和實現兩個文件,所有對AccountService的引用也同時修改。
  
  第五步:導出EAR文件。
  
  二、在Websphere5.1中運行jpetstore
  
  進入Webshpere的管理控制臺,選擇安裝新的應用程序,導入并發布jpetstore.ear后,就可以在IE中直接運行了( http://localhost:9080/jpetstoreWeb/)。
  
  三、用ROSE為jpetstore建模
  
  本部分的模型,首先通過ROSE工具的反向工程(Reverse Engineer)、然后進行整理生成。
  
  (一)、UseCase用例
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖五)
點擊查看大圖

  普通用戶(user)可以搜索產品(searchProducts)、查看產品分類(viewCategory)、查看產品(viewProduct)、查看產品項目(viewItem)、注冊新賬號(newAccount)、登陸(sign-In)。
  
  登陸后的用戶(signedUser)可以注銷登陸(sign-Out)、編輯賬號(editAccount)、將產品項目放入購物車(addItemToCart)、從購物車刪除產品項目(removeItemFromCart)、修改購物數量(updateCartQuantities)、新訂單(newOrder)、查看訂單(viewOrder)、查看購物車(viewCart)、結算(checkout)。
  
  (二)、數據模型
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖六)
點擊查看大圖

  
點擊看大圖

  
  jpetstore的數據模型可以分三大類:
  
  1.產品相關:
  
  產品分類(CATEGORY)
  
  產品(PRODUCT),也可以說是產品的小分類
  
  單個產品(ITEM),描述具體產品的詳細屬性
  
  供應商(SUPPLIER)
  
  產品庫存(INVENTORY)
  
  2.用戶賬號相關:
  
  用戶賬號(ACCOUNT)
  
  用戶口令(SIGNON),ibatis純粹為了展示表關聯的用法。
  
  用戶配置文件(PROFILE),存放用戶個性化信息。
  
  系統BANNER信息(BANNERDATA)
  
  3.訂單相關:
  
  用戶訂單(ORDERS)
  
  訂單狀態(ORDERSTATUS)
  
  訂單詳情(LINEITEM)
   
  (三)、WEB模型
  
  WEB模型一向是各個建模工具的弱項,ROSE的WEB建模能力也不強,有時不能表達準確的含義。
  
  1.新增、修改賬號
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖七)
點擊查看大圖

  
點擊看大圖

  
  2.瀏覽產品
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖八)
點擊查看大圖

  
點擊看大圖

  
  3.訂單
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖九)
點擊查看大圖

  4.購物車(略)
  
  對于WEB模型,配合struts的導航圖(NitroX生成,部分截圖),會更清楚些。
  
 學習WSAD、ROSE、WEBSPHERE的基本用法(圖十)
點擊查看大圖

  
點擊看大圖

  
  (四)、類圖
  
學習WSAD、ROSE、WEBSPHERE的基本用法(圖十)
點擊查看大圖

  
點擊看大圖

  
  蘭色方框內是通過spring+hibernate實現的??梢钥吹?,表現層的AccountBean是面向接口調用Service的,當改為用hibernate實現O/R mapping時,只需要修改接口的實現類(DAO持久層),表現層的程序不需要任何修改。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97