• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    使用工作流開發應用程序

    發布: 2007-5-25 14:33 | 作者: 未知 | 來源: JR | 查看: 67次 | 進入軟件測試論壇討論

    領測軟件測試網

    什么是工作流


    在 Forrester Report 提出的關于工作流程概念定義中,將工作流程比喻為“信息河流”。即日常的業務處理或協同工作能按預先定義好的規則和過程進行流動,并且這一流動過程能被跟蹤和監控。

    工作流管理系統


    是一套支持業務定義和自動運轉工作流的系統。目前市面上成熟的產品有IBM MQ workflow、oracle workflow和其他中小型公司基于wfmc.org組織開發的工作流管理系統。
    如何采用工作流開發?談這個問題之前我們必須了解一下目前采用三層層模式如何開發B/S的應用程序。(以開發一套公司報銷的應用為例)
    例:公司有員工3人 小王,小李,小張,級別從大到小分別為小王、小李、小張。他們每月公司給與的報銷額度按照級別分別為1000,500,300元。下一級的員工報銷必須經過他上一級員工的審批。設計一個企業費用報銷的應用程序。
    三層模式為Presentation Tier 表示層 Business Tier 業務層 Integration Tier 集成層。一個項目設計我們一般以上面三層來設計我們的應用程序的框架。表示層我們可以用struts的方式作前端的控制,業務層我們可以用delegate實現按照報銷業務規則的方法,而集成層我們采用DAO的方式訪問數據庫。對于一個報銷的用例,我們設計delegate的時候必須考慮判斷用戶的級別,因為不同級別的員工報銷流程是不一樣的。這樣在我們的程序里實際上是delegate起到了相當重要的作用。如果業務變化了(如員工的報銷由逐及上報轉為直接上報),我們必須按照相應的業務變動,修改delegate實現的方法。導致整個應用程序的修正。
    如果我們采用基于工作流的開發。按照三層模式我們完全可以把業務層拋給工作流。通過工作流管理系統配套的工具設計出含有這個報銷業務的配置文件,接著導入這個配置文件到工作流管理系統。而整個程序變成了面向工作流的開發,應用程序只要處理如何啟動工作流引擎生成一個報銷流程的實例,如何處理這個實例在工作流引擎中流轉時發出的通知或者消息、如何做輔助的處理通知或者消息時候的記錄即可。如果出現報銷業務流程改變的情況,我們只要對包含業務流程信息的工作流配置文件導出,修改后再次倒入工作流流管理系統即可。無需對原有的應用程序作任何的改動。
    以上是簡單介紹了一下工作流在應用程序開發的作用,并同時和不采用工作流開發進行了一個比較。希望能夠有一個拋磚引玉的效果。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>