<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA之路

    MDA,UML,XML,Eclipse及Java相關(guān)的Blog
    posts - 53, comments - 494, trackbacks - 0, articles - 2
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    因?yàn)閯倓偨log,所以把以前在www.mdachina.net上面寫的一個(gè)ArcStyler系列文章放上來(lái)充實(shí)一下,嘿嘿。

    ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)

    wxb_nudt@163.com

    1.1??????? ArcStyler簡(jiǎn)介

    ArcStyler是德國(guó)Interactive Objects Software GmbH公司開(kāi)發(fā)的MDA開(kāi)發(fā)軟件,它遵循OMGMDA 規(guī)范,純JAVA 開(kāi)發(fā),跨平臺(tái)。是當(dāng)前最流行的三大MDA工具之一,支持J2EE.NET平臺(tái),支持橋接器的動(dòng)態(tài)加載。

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

    1.2??????? 業(yè)務(wù)簡(jiǎn)介

    我們的目標(biāo)是創(chuàng)建一個(gè)通用的網(wǎng)上銀行實(shí)例,其業(yè)務(wù)包括個(gè)人帳戶的查詢,管理,轉(zhuǎn)帳等等。經(jīng)過(guò)系統(tǒng)分析,我們?cè)O(shè)計(jì)了以下三個(gè)組件:

    ????????? Account組件,代表帳戶,存儲(chǔ)帳戶的有關(guān)信息;

    ????????? Transfer 組件,代表一個(gè)轉(zhuǎn)帳的過(guò)程;

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

    1.3??????? 技術(shù)路線

    由于ArcStyler可以同時(shí)支持J2EE.NET平臺(tái),所以可以同時(shí)開(kāi)發(fā)兩套基于不同技術(shù)路線的系統(tǒng)。為了簡(jiǎn)單起見(jiàn),本文中選用的是J2EE平臺(tái),組件模型是EJB。我們定義AccountBank組件為entity bean,而TransferSession bean

    組件容器選用BEA公司的Weblogic8.1,相應(yīng)的數(shù)據(jù)庫(kù)使用Weblogic自帶的PointBase。當(dāng)然使用其他的技術(shù)路線是完全可以的,只要ArcStyler提供了相應(yīng)的支持。如果使用其他的技術(shù)路線,那么在創(chuàng)建系統(tǒng)的時(shí)候需要更改一些設(shè)置即可。

    1.4??????? 開(kāi)發(fā)流程

    1.4.1??????? 工具準(zhǔn)備

    本文的開(kāi)發(fā)工作需要使用的系統(tǒng)以及工具包括:

    ????????? Windows2000Windows XP系統(tǒng)(98系統(tǒng)沒(méi)有測(cè)試過(guò));

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

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

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

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

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

    當(dāng)打開(kāi)ArcStyler的時(shí)候,見(jiàn)到的界面如下圖:

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

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

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

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

    ????????? 創(chuàng)建一個(gè)名為iBank的包;

    ????????? iBank包中創(chuàng)建一個(gè)名為iBankDiagram的類圖;

    ????????? iBankDiagram圖中創(chuàng)建AccountBankTransfer三個(gè)組件;

    ????????? 為上面三個(gè)組件添加相應(yīng)的方法和屬性;

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

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

    其實(shí)在ArcStyler中并沒(méi)有區(qū)分PIMPSM,因?yàn)?/SPAN>ArcStyler并沒(méi)有提供從PIMPSM的自動(dòng)轉(zhuǎn)換工具,它是選擇了通過(guò)標(biāo)注的方式來(lái)體現(xiàn)PSM的思想。

    為了清晰起見(jiàn),筆者將建模環(huán)節(jié)區(qū)分為建立PIM和建立PSM兩個(gè)部分,那么建立PSM其實(shí)只是給上面的PIM作出一些技術(shù)相關(guān)的標(biāo)注,包括以下內(nèi)容:

    ????????? BankAccount組件標(biāo)注為Entity Bean

    ????????? BankAccount組件的永久存儲(chǔ)管理模式標(biāo)注為容器管理;

    ????????? Transfer組件標(biāo)注為Session Bean

    標(biāo)注過(guò)程如圖:

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

    同樣創(chuàng)建Account組件的create工廠方法。

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

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

    ????????? 首先創(chuàng)建一個(gè)名為libs的包;

    ????????? libs包中創(chuàng)建一個(gè)EJBArchive組件,命名為iBank

    ????????? 從上面的PSM圖中將AccountBank以及Transfer三個(gè)組件用鼠標(biāo)拖拽至iBank組件中;

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

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

    建模工作全部完成以后,接下來(lái)應(yīng)該是代碼生成,不過(guò)在代碼生成之前,需要進(jìn)行代碼生成器的配置工作。在ArcStyler中,代碼生成器以及配置管理方面的工具統(tǒng)一稱為MDA Cartridage,它負(fù)責(zé)具體生成代碼以及配置與管理工具。我稱之為MDA橋接器。ArcStyler之所以稱之為MDA工具,其根本原因就是它支持MDA橋接器的動(dòng)態(tài)加載,使之可以生成不同技術(shù)路線的具體代碼。

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

    1.4.7??????? 模型驗(yàn)證

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

    模型驗(yàn)證主要是驗(yàn)證以下幾個(gè)方面的內(nèi)容:

    ????????? 結(jié)構(gòu)完整性,檢查模型中的組件或類是否重名等等;

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

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

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

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

    在模型驗(yàn)證成功以后,就可以進(jìn)行代碼生成工作,選取工具欄上的WLS8:Generate,然后點(diǎn)擊它右邊的執(zhí)行按鈕,就可以進(jìn)行代碼生成,代碼生成的信息會(huì)顯示在下方的MDA區(qū)域內(nèi),如圖:

    1.4.9??????? 代碼補(bǔ)充

    代碼生成之后,我們需要進(jìn)行代碼的補(bǔ)充工作,這是使用ArcStyler的唯一的代碼工作,補(bǔ)充的代碼主要是Bean方法實(shí)現(xiàn)以及測(cè)試類中的方法,需要進(jìn)行代碼補(bǔ)充的源代碼文件如下:

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

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

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

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

    補(bǔ)充的內(nèi)容參看說(shuō)明文檔Tutorial.pdf47頁(yè)Component Code Customization這一節(jié)

    ArcStyler可以自動(dòng)生成Jbuilder工程,當(dāng)我們進(jìn)行代碼的補(bǔ)充工作的時(shí)候,可以直接打開(kāi)生成的JBuilder工程,其中包含所有生成的源代碼,也可以直接使用其他代碼編輯工具修改。注意:代碼的添加和修改都在安全區(qū)中,進(jìn)行反復(fù)的代碼生成工作并不會(huì)被覆蓋。

    1.4.10??? 編譯

    代碼補(bǔ)充完成以后,就可以進(jìn)行編譯和運(yùn)行了。ArcStyler中的編譯和運(yùn)行是采用了集成的Ant工具。在ArcStylerUML工具區(qū)的最右邊有一個(gè)Ant按鈕,點(diǎn)擊此按鈕可以打開(kāi)Ant工具集,如圖:

    可以看到Ant工具中的內(nèi)容是一個(gè)表格,表格的每一項(xiàng)包括兩列,第一列是編譯或者運(yùn)行的參數(shù),第二列是說(shuō)明。選擇build這一行,然后點(diǎn)擊下面的Run按鈕,就可以進(jìn)行整個(gè)系統(tǒng)的編譯工作。

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

    編譯的內(nèi)容包括:

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

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

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

    1.4.11??? 部署

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

    ????????? 創(chuàng)建Server實(shí)例,生成Weblogic8.1中的域,此域包含了本系統(tǒng)服務(wù)器的運(yùn)行環(huán)境;

    ????????? 啟動(dòng)PointBase數(shù)據(jù)庫(kù);

    ????????? PointBase數(shù)據(jù)庫(kù)中創(chuàng)建EJB組件所需的表,由于EJB采用了CMP模式,所以我們幾乎不需要關(guān)心數(shù)據(jù)庫(kù)方面的工作;

    ????????? 啟動(dòng)Server

    以上四步都是通過(guò)ArcStyler中的集成Ant工具完成了,完成手段和前面的編譯步驟一樣,只需要在Ant工具集中選擇相應(yīng)的參數(shù)來(lái)運(yùn)行即可:

    ?????

    ? 部署完成以后,服務(wù)器和數(shù)據(jù)庫(kù)會(huì)全部啟動(dòng),服務(wù)器的部署以及數(shù)據(jù)庫(kù)的表會(huì)創(chuàng)建完畢,如下圖:

    1.4.12??? 運(yùn)行

    部署完成以后,在Ant工具集中選擇runClient參數(shù),點(diǎn)擊run按鈕就可以運(yùn)行客戶端的測(cè)試程序,運(yùn)行結(jié)果會(huì)顯示在ArcStyler下方的MDA區(qū)域內(nèi),運(yùn)行的過(guò)程是進(jìn)行一次轉(zhuǎn)帳操作,如圖:

    1.4.13??? 脫離ArcStyler環(huán)境運(yùn)行

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

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

    build build是進(jìn)行編譯;

    build CreateServerInstance是創(chuàng)建服務(wù)器域;

    其他依此類推,運(yùn)行情況如圖:

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

    至此為止,完成了網(wǎng)上銀行系統(tǒng)服務(wù)器端的工作,以及一個(gè)簡(jiǎn)單的測(cè)試客戶端,通過(guò)上面的實(shí)例,寫幾點(diǎn)使用感想。

    第一點(diǎn)感想是ArcStyler4.0的方便易用超出了我的想象,在3.0版本中,ArcStyler的自動(dòng)代碼生成等工作還要依賴于RationalRose,但是在這個(gè)版本中已經(jīng)將建模,代碼生成,編譯運(yùn)行等功能全部集成了。現(xiàn)在已經(jīng)可以稱為一個(gè)較為完整的MDA工具了。

    第二點(diǎn)是從ArcStyler的水平我們可以看出MDA技術(shù)已經(jīng)走上舞臺(tái),一個(gè)技術(shù)的成熟與否要看支持它的工具的水平,ArcStyler的成功標(biāo)志著MDA技術(shù)已經(jīng)正式走上舞臺(tái),無(wú)論以后MDA的出路如何,至少它反應(yīng)了這個(gè)時(shí)代的一股潮流。

    第三點(diǎn)是在《應(yīng)用MDA》書(shū)中作者所提到的,橋接器技術(shù)將會(huì)成為MDA技術(shù)的第一個(gè)熱點(diǎn)。ArcStyler目前只支持J2EE.NET平臺(tái),是因?yàn)樗旧碇惶峁┝诉@兩個(gè)平臺(tái)的橋接器,如果其他中間件廠商愿意提供橋接器,那么ArcStyler可以方便的擴(kuò)充到支持這些廠商的中間件技術(shù)

    第四點(diǎn)感想來(lái)自于一個(gè)朋友的置疑,他說(shuō)做做這種玩具般的結(jié)構(gòu)型系統(tǒng)有用么?能否支持大規(guī)模的有動(dòng)作語(yǔ)義的系統(tǒng)。對(duì)于這一點(diǎn)置疑,我的看法是,由于目前流行的建模語(yǔ)言(例如UML)在語(yǔ)義方面的功能還很弱,所以目前的MDA工具幾乎只支持結(jié)構(gòu)型的系統(tǒng),但是我相信隨著建模語(yǔ)言的進(jìn)一步強(qiáng)化,MDA技術(shù)會(huì)越來(lái)越豐富,工具也將越來(lái)越好。

    1.6??????? 后記

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

    1.7??????? 參考書(shū)目

    ArcStyler文檔Tutorial

    UML用戶指南》

    應(yīng)用MDA

    解析MDA


    評(píng)論

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

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

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

    2005-03-13 15:47 by
    y有英文的沒(méi)啊

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

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

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

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

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

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

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

    2005-12-31 22:11 by weide
    樓上所言KEWELL的文章不知道是哪個(gè),沒(méi)看過(guò);
    對(duì)我而言,則一搞不明白模型驅(qū)動(dòng)是什么,事實(shí)上按照我的觀點(diǎn),所以的人類活動(dòng)都是“模型驅(qū)動(dòng)”的--稍后也寫個(gè)隨筆表明這個(gè)觀點(diǎn)

    讓我非常困惑的就是所謂模型驅(qū)動(dòng)到底對(duì)于實(shí)際的工程能有多大的幫助?如果沒(méi)有模型驅(qū)動(dòng)的工具支持,根本談不上模型驅(qū)動(dòng)開(kāi)發(fā)

    讓我汗顏的是:這樣的描述,并不能增加我對(duì)模型驅(qū)動(dòng)的直觀理解……

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

    2006-03-08 20:19 by cupea
    我們?cè)瓉?lái)也用Arcstyler,不過(guò)它功能有限制
    不能建元模型
    也不能實(shí)現(xiàn)模型到模型的轉(zhuǎn)換
    現(xiàn)在轉(zhuǎn)到RSA上了
    覺(jué)得MTF也還是比較有前途的

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

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

    # re: ArcStyler實(shí)戰(zhàn)-網(wǎng)上銀行系統(tǒng)  回復(fù)  更多評(píng)論   

    2009-05-30 21:51 by 54
    fdffdfdfds

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 午夜视频在线观看免费完整版 | 男女猛烈激情xx00免费视频| 一个人免费观看www视频| 99视频精品全部免费观看| 午夜无遮挡羞羞漫画免费| 在线日韩日本国产亚洲| 亚洲区视频在线观看| ssswww日本免费网站片| 可以免费看黄视频的网站| 亚洲精品成人区在线观看| 亚洲激情视频网站| 免费看一级高潮毛片| 91麻豆最新在线人成免费观看| 亚洲精品国产成人影院| 亚洲国产成人久久三区| 国产免费A∨在线播放| 成年轻人网站色免费看| 亚洲精品你懂的在线观看| 亚洲精品无码久久久久久| 国产白丝无码免费视频| 国产成人综合久久精品免费| 亚洲国产天堂久久综合网站| 免费人人潮人人爽一区二区 | 四虎影院永久免费观看| 亚洲电影唐人社一区二区| 国产福利免费视频| 日本无吗免费一二区| 亚洲综合激情另类小说区| 国产无限免费观看黄网站| 妞干网在线免费观看| 亚洲美女视频免费| 最新久久免费视频| 免费国产人做人视频在线观看| 亚洲图片校园春色| 久久99精品免费视频| 亚洲无码日韩精品第一页| 色在线亚洲视频www| 少妇无码一区二区三区免费| 亚洲日韩v无码中文字幕| 美美女高清毛片视频黄的一免费 | 高潮毛片无遮挡高清免费|