MDA之路

          MDA,UML,XML,Eclipse及Java相關的Blog
          posts - 53, comments - 494, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ArcStyler實戰-網上銀行系統

          Posted on 2005-01-21 17:26 wxb_nudt 閱讀(5058) 評論(9)  編輯  收藏 所屬分類: MDA技術

          因為剛剛建立blog,所以把以前在www.mdachina.net上面寫的一個ArcStyler系列文章放上來充實一下,嘿嘿。

          ArcStyler實戰-網上銀行系統

          wxb_nudt@163.com

          1.1??????? ArcStyler簡介

          ArcStyler是德國Interactive Objects Software GmbH公司開發的MDA開發軟件,它遵循OMGMDA 規范,純JAVA 開發,跨平臺。是當前最流行的三大MDA工具之一,支持J2EE.NET平臺,支持橋接器的動態加載。

          本文所使用的實例來自于ArcStyler自帶的例子,其例子所在目錄為ArcStyler安裝目錄\ samples\extended\iBank。詳細的說明文檔(包括需要添加的代碼)位于ArcStyler安裝目錄\doc\Tutorial.pdf。

          1.2??????? 業務簡介

          我們的目標是創建一個通用的網上銀行實例,其業務包括個人帳戶的查詢,管理,轉帳等等。經過系統分析,我們設計了以下三個組件:

          ????????? Account組件,代表帳戶,存儲帳戶的有關信息;

          ????????? Transfer 組件,代表一個轉帳的過程;

          ????????? Bank組件,代表銀行,管理此銀行中的所有帳戶;

          1.3??????? 技術路線

          由于ArcStyler可以同時支持J2EE.NET平臺,所以可以同時開發兩套基于不同技術路線的系統。為了簡單起見,本文中選用的是J2EE平臺,組件模型是EJB。我們定義AccountBank組件為entity bean,而TransferSession bean。

          組件容器選用BEA公司的Weblogic8.1,相應的數據庫使用Weblogic自帶的PointBase。當然使用其他的技術路線是完全可以的,只要ArcStyler提供了相應的支持。如果使用其他的技術路線,那么在創建系統的時候需要更改一些設置即可。

          1.4??????? 開發流程

          1.4.1??????? 工具準備

          本文的開發工作需要使用的系統以及工具包括:

          ????????? Windows2000Windows XP系統(98系統沒有測試過);

          ????????? ArcStyler41.08build版,下載地址為

          http://www.mdachina.net/download/mdasoft/ArcStyler-4-0-108.exe;

          ????????? Weblogic8.1,下載地址為http://commerce.bea.com/index.jsp(需要在BEA公司網站注冊,使用期限1年);

          ????????? JBuilder或其他文本編輯工具;

          1.4.2??????? 建立工程

          當打開ArcStyler的時候,見到的界面如下圖:

          在右下方我們選擇創建WLS8 project,也可以通過菜單File->New->WLS8 project來創建工程。創建工程時只需要指定工程所在目錄即可,我們指定為D:\ArcStyler\iBank,工程創建完畢后如下圖:

          我們可以注意到ArcStyler分為三個部分,最上面是菜單和工具欄,中間是UML工具,最下面是MDA區域。

          1.4.3??????? 建立PIM模型

          如同使用一些通用的UML工具一樣,可以在UML工具區建立系統的PIM模型,包括以下工作:

          ????????? 創建一個名為iBank的包;

          ????????? iBank包中創建一個名為iBankDiagram的類圖;

          ????????? iBankDiagram圖中創建Account,BankTransfer三個組件;

          ????????? 為上面三個組件添加相應的方法和屬性;

          完成之后得到的模型如下圖:

          1.4.4??????? 建立PSM模型

          其實在ArcStyler中并沒有區分PIMPSM,因為ArcStyler并沒有提供從PIMPSM的自動轉換工具,它是選擇了通過標注的方式來體現PSM的思想。

          為了清晰起見,筆者將建模環節區分為建立PIM和建立PSM兩個部分,那么建立PSM其實只是給上面的PIM作出一些技術相關的標注,包括以下內容:

          ????????? BankAccount組件標注為Entity Bean

          ????????? BankAccount組件的永久存儲管理模式標注為容器管理;

          ????????? Transfer組件標注為Session Bean

          標注過程如圖:

          對于BankAccount這兩個組件還需要創建工廠方法和容器類,我們右鍵選取Bank組件,然后從彈出式菜單中選擇Cartridge Wizards->WLS8->Create Collection Type,這樣創建了Bank組件的容器類,命名為Bank_Collection;同樣創建Account組件的容器類Account_Collection。接下來右鍵選取Bank組件,選擇MDA Cartridge Wizards->WLS8->Create Factory Method來創建工廠方法,將此方法命名為create,并設置相應的參數,如下圖:

          同樣創建Account組件的create工廠方法。

          1.4.5????????? 建模部署組件

          PSM模型完成以后,要將模型的部署工作也進行建模,本例中的部署建模很簡單,只需要進行以下幾步就可以完成:

          ????????? 首先創建一個名為libs的包;

          ????????? libs包中創建一個EJBArchive組件,命名為iBank;

          ????????? 從上面的PSM圖中將Account,Bank以及Transfer三個組件用鼠標拖拽至iBank組件中;

          然后我們打開部署組件iBank的屬性,可以看到:

          1.4.6??????? 配置MDA Cartridage

          建模工作全部完成以后,接下來應該是代碼生成,不過在代碼生成之前,需要進行代碼生成器的配置工作。在ArcStyler中,代碼生成器以及配置管理方面的工具統一稱為MDA Cartridage,它負責具體生成代碼以及配置與管理工具。我稱之為MDA橋接器。ArcStyler之所以稱之為MDA工具,其根本原因就是它支持MDA橋接器的動態加載,使之可以生成不同技術路線的具體代碼。

          我們這里需要配置的是WLS8的橋接器,我們只需指定代碼生成的目錄即可,配置畫面如下:

          1.4.7??????? 模型驗證

          在配置好了MDA橋接器之后,在代碼生成之前,需要進行模型驗證,模型驗證的操作很簡單,在工具欄上選擇WLS8:Verify,然后點擊它右邊的執行按鈕,就可以進行驗證,驗證后會有成功或失敗的提示:

          模型驗證主要是驗證以下幾個方面的內容:

          ????????? 結構完整性,檢查模型中的組件或類是否重名等等;

          ????????? UML約束;

          ????????? ArcStyler約束;

          ????????? 技術可行性(Java約束,EJB容器約束,C#約束,.NET約束),當然技術可行性的驗證是基于你選擇的技術路線;

          1.4.8??????? 代碼生成

          在模型驗證成功以后,就可以進行代碼生成工作,選取工具欄上的WLS8:Generate,然后點擊它右邊的執行按鈕,就可以進行代碼生成,代碼生成的信息會顯示在下方的MDA區域內,如圖:

          1.4.9??????? 代碼補充

          代碼生成之后,我們需要進行代碼的補充工作,這是使用ArcStyler的唯一的代碼工作,補充的代碼主要是Bean方法實現以及測試類中的方法,需要進行代碼補充的源代碼文件如下:

          ????????? AccountBean.java

          ????????? TransferBean.java

          ????????? BankBean.java

          ????????? iBankTestClient.java

          補充的內容參看說明文檔Tutorial.pdf47Component Code Customization這一節。

          ArcStyler可以自動生成Jbuilder工程,當我們進行代碼的補充工作的時候,可以直接打開生成的JBuilder工程,其中包含所有生成的源代碼,也可以直接使用其他代碼編輯工具修改。注意:代碼的添加和修改都在安全區中,進行反復的代碼生成工作并不會被覆蓋。

          1.4.10??? 編譯

          代碼補充完成以后,就可以進行編譯和運行了。ArcStyler中的編譯和運行是采用了集成的Ant工具。在ArcStylerUML工具區的最右邊有一個Ant按鈕,點擊此按鈕可以打開Ant工具集,如圖:

          可以看到Ant工具中的內容是一個表格,表格的每一項包括兩列,第一列是編譯或者運行的參數,第二列是說明。選擇build這一行,然后點擊下面的Run按鈕,就可以進行整個系統的編譯工作。

          這里需要注意的是,如果你使用了我們前面提到的ArcStylerWeblogic版本,那么編譯會出錯,筆者研究發現是由于Weblogicjdk目錄名稱不符合造成的,例如本機的WebLogic安裝目錄是C:\bea,那么jdk目錄是C:\bea\jdk141_05,但是根據WebLogic的版本不同目錄名稱可能是C:\bea\jdk141_02C:\bea\jdk141_05。但是由WLS8橋接器生成的編譯配置文件中統一為C:\bea\jdk141_03。所以我們這里需要將目錄名稱改為C:\bea\jdk141_03,編譯才可以順利通過。也許還有更好的方法,但是筆者目前還沒有發現。

          編譯的內容包括:

          ????????? 編譯java源代碼,得到class文件;

          ????????? EJB組建生成EJB JAR文件;

          ????????? EJB容器的部署生成EAR JAR文件;

          1.4.11??? 部署

          編譯完成之后就可以進行部署工作了,我將部署工作分為以下四步:

          ????????? 創建Server實例,生成Weblogic8.1中的域,此域包含了本系統服務器的運行環境;

          ????????? 啟動PointBase數據庫;

          ????????? PointBase數據庫中創建EJB組件所需的表,由于EJB采用了CMP模式,所以我們幾乎不需要關心數據庫方面的工作;

          ????????? 啟動Server

          以上四步都是通過ArcStyler中的集成Ant工具完成了,完成手段和前面的編譯步驟一樣,只需要在Ant工具集中選擇相應的參數來運行即可:

          ?????

          ? 部署完成以后,服務器和數據庫會全部啟動,服務器的部署以及數據庫的表會創建完畢,如下圖:

          1.4.12??? 運行

          部署完成以后,在Ant工具集中選擇runClient參數,點擊run按鈕就可以運行客戶端的測試程序,運行結果會顯示在ArcStyler下方的MDA區域內,運行的過程是進行一次轉帳操作,如圖:

          1.4.13??? 脫離ArcStyler環境運行

          從編譯,部署到運行只是與Ant工具相關,脫離了ArcStyler環境,這些步驟仍然是可以很好的執行。在代碼生成的步驟中,已經生成了Ant工具所需的批處理文件build.bat以及配置文件build.xml,利用他們就可以脫離ArcStyler環境進行編譯,部署和運行。

          Build.batbuild.xml所在目錄為ArcStyler目錄\工程目錄\自動生成的代碼目錄\組件目錄\部署組件目錄\橋接器名稱。例如本機的相應目錄為D:\ArcStyler\iBank\gen\components\libs\iBank\wls8。在此目錄中執行批處理文件build.bat,并給出對應的參數,就可以脫離ArcStyler進行編譯、部署和調試,例如:

          build build是進行編譯;

          build CreateServerInstance是創建服務器域;

          其他依此類推,運行情況如圖:

          1.5??????? 使用感想

          至此為止,完成了網上銀行系統服務器端的工作,以及一個簡單的測試客戶端,通過上面的實例,寫幾點使用感想。

          第一點感想是ArcStyler4.0的方便易用超出了我的想象,在3.0版本中,ArcStyler的自動代碼生成等工作還要依賴于RationalRose,但是在這個版本中已經將建模,代碼生成,編譯運行等功能全部集成了?,F在已經可以稱為一個較為完整的MDA工具了。

          第二點是從ArcStyler的水平我們可以看出MDA技術已經走上舞臺,一個技術的成熟與否要看支持它的工具的水平,ArcStyler的成功標志著MDA技術已經正式走上舞臺,無論以后MDA的出路如何,至少它反應了這個時代的一股潮流。

          第三點是在《應用MDA》書中作者所提到的,橋接器技術將會成為MDA技術的第一個熱點。ArcStyler目前只支持J2EE.NET平臺,是因為他本身只提供了這兩個平臺的橋接器,如果其他中間件廠商愿意提供橋接器,那么ArcStyler可以方便的擴充到支持這些廠商的中間件技術。

          第四點感想來自于一個朋友的置疑,他說做做這種玩具般的結構型系統有用么?能否支持大規模的有動作語義的系統。對于這一點置疑,我的看法是,由于目前流行的建模語言(例如UML)在語義方面的功能還很弱,所以目前的MDA工具幾乎只支持結構型的系統,但是我相信隨著建模語言的進一步強化,MDA技術會越來越豐富,工具也將越來越好。

          1.6??????? 后記

          ? 這個系統并沒有完成,系統的客戶端僅僅是一個用戶測試的簡單程序。ArcStyler提供了WebAccessor橋接器專門用于生成豐富的JSP的客戶端。希望以后能夠與大家共同討論。歡迎大家多多和我聯系,交流MDA技術,聯系方法wxb_nudt@163.com。

          1.7??????? 參考書目

          ArcStyler文檔Tutorial

          UML用戶指南》

          應用MDA

          解析MDA


          評論

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2005-01-21 19:05 by 月光亂亂
          樓主辛苦啦

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2005-03-13 15:47 by
          y有英文的沒啊

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2005-03-13 22:05 by wxb_nudt
          英文的請直接參考ArcStyler的幫助文檔!寫得很好!

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2005-06-16 09:16 by i am lonely
          看不到圖呀,為什么?

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2005-11-24 18:32 by tempuser
          真佩服樓主對MDA的理解和使用,不知道您是就會用一個MDA工具呢,還是真的理解了 什么叫模型驅動。汗,拜托你有時間看看KEWELL的文章,放心。他的技術文章有些是中文的,相信你能讀懂。

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2005-12-31 22:11 by weide
          樓上所言KEWELL的文章不知道是哪個,沒看過;
          對我而言,則一搞不明白模型驅動是什么,事實上按照我的觀點,所以的人類活動都是“模型驅動”的--稍后也寫個隨筆表明這個觀點

          讓我非常困惑的就是所謂模型驅動到底對于實際的工程能有多大的幫助?如果沒有模型驅動的工具支持,根本談不上模型驅動開發

          讓我汗顏的是:這樣的描述,并不能增加我對模型驅動的直觀理解……

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2006-03-08 20:19 by cupea
          我們原來也用Arcstyler,不過它功能有限制
          不能建元模型
          也不能實現模型到模型的轉換
          現在轉到RSA上了
          覺得MTF也還是比較有前途的

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2006-11-25 11:00 by KN
          看不到圖呀

          # re: ArcStyler實戰-網上銀行系統  回復  更多評論   

          2009-05-30 21:51 by 54
          fdffdfdfds

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 湘阴县| 乌拉特后旗| 南投县| 唐山市| 若羌县| 乌兰察布市| 金川县| 象州县| 拉孜县| 宁夏| 和林格尔县| 铁力市| 鄂尔多斯市| 郎溪县| 辽阳市| 宽甸| 泗水县| 甘南县| 江川县| 萝北县| 都江堰市| 和龙市| 鸡泽县| 达尔| 巍山| 珠海市| 南岸区| 关岭| 湖南省| 彝良县| 泾源县| 黄浦区| 新乡市| 苗栗市| 秦安县| 礼泉县| 新津县| 和政县| 屯昌县| 西峡县| 任丘市|