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

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

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

    [轉]工作流學習(2)

    轉自:http://www.guodanpi.com/zblog/post/21.html

    今天幾乎沒有再看關于工作流的一大堆規(guī)范,而是看了一下國人的PowerStone開源工作流實現(xiàn)(其實之前幾天也花了些時間來研究),畢竟對他用的那個套路比較熟(spring+hibernate),大體上能了解他想干什么,但是還是不懂,第一步還是分析了他所使用的數(shù)據(jù)庫,遺憾的是終究還是沒有找到我想看到的東西。同時他的說明里面提到實現(xiàn)了WfMC125接口,由于對WfMC沒什么興趣,所以也就不管它,只是想弄清楚他考慮的和我所想的有什么差距。

        事實上是我以前接觸過一個Fatwire公司(在google里面搜索contentserver,它排第一,以前可真是名不見經(jīng)傳)的contentserver,我還是比較贊同它里面的搞法,通過web頁面+dbms來定做工作流,并自動生成工作流的最終圖形給用戶驗證是否正確,而不是輸入一個xpdl這種東西。

        多少給我的收獲在于它對工作流和實際操作的數(shù)據(jù)的結合部分,也是我以前從來沒有想到過的結合方式,通過記錄每一個state的輸出和輸入?yún)?shù)來與數(shù)據(jù)交互!好像這也是wfmc的一個通用數(shù)據(jù)庫設計。不敢說他設計的不好,只是總覺得這樣設計有點別扭。

        還是先看一下真實使用工作流時,業(yè)務數(shù)據(jù)在“流動”的過程中可能碰到的操作結果:

    通過、退回、取消、取回

    這些也就是概念上的東西,對應到真實世界操作簡直太容易了。

    如果說if..else..for..和順序執(zhí)行能構成完整的程序的話,工作流應該也不例外,關鍵或者說難點在于將一些條件、一些業(yè)務數(shù)據(jù)如何與工作流互交,或者說如何讓工作流能夠識別前面提到的fromConditiontoCondition,這一點的設計估計要留到最后了。

    不管工作流將要處理的對象有多復雜,有多少屬性,應該有一個表用來記錄唯一的標示這些對象的表(暫且稱之為實體,也正是因為想在PowerStone中找到這個表未果,所以充滿疑惑)

    class WorkflowEntity {

        Long id;

        String targetId;//或者直接是某張表的id

        String targetType;//或者直接是某張表的表名

    Workflow workflow;

    }

    只要拿到entityid,自然可以得到它所對應的操作對象(table+id完全可以定義到某一條數(shù)據(jù)),也能知道當前所使用的工作流。這一點有需要考慮的地方,是否需要(targetId+ targetType)的唯一索引,這樣才能比較好的處理。

    也需要記錄該實體的當前狀態(tài)信息

    class Task{

        Long id;

        State currentState;

        WorkflowEntity wfEntity;

    }

    明顯我們可以看到現(xiàn)在為止所設計的表中都沒有“人”這個東西的出現(xiàn),想想我們幾乎每一步都離不開人,自然需要修改上面的State,加入人的信息,這一點確實很矛盾,因為“人”有多種的表現(xiàn)形式,有“組織”、“團隊”、“角色”,這些全部可以包含人的信息,那么具體應該采用哪一種比較合適?(還沒想好),姑且先放進去再說。

    那現(xiàn)在實際上已經(jīng)可以把這個實體“流動”起來了,但是太粗糙了!沒有細致的沒一步的規(guī)則定義,也許fromConditiontoCondition應該是一個規(guī)則(Rule),那么定義如下:

    class Rule{

        Long id;

        //其他未知

    }

    class State{

        Long id;

        Workflow workflow;

        Rule fromRule;

        Rule toRule;

        String actor;

    }

    實在有很多東西沒有想明白,先記錄下這些現(xiàn)在的糊涂想法,再慢慢改進,估計要真正想明白了再接著寫了。

    posted on 2007-08-25 20:50 hijackwust 閱讀(229) 評論(0)  編輯  收藏


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


    網(wǎng)站導航:
     
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統(tǒng)計

    常用鏈接

    留言簿(6)

    隨筆檔案(57)

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码国产精品久久一区免费| 久操免费在线观看| 午夜影视在线免费观看| 亚洲成人黄色在线| 国产免费不卡视频| 亚洲日本在线观看网址| 精品国产污污免费网站aⅴ| 在线电影你懂的亚洲| 99re在线视频免费观看| 亚洲成人黄色网址| 国产精品免费观看久久| 亚洲自偷自偷在线成人网站传媒| 一个人免费观看www视频在线| 67194在线午夜亚洲| 毛片免费观看网址| 日韩亚洲综合精品国产| 亚洲福利视频一区二区| 一级做受视频免费是看美女| 91麻豆国产自产在线观看亚洲| 久久精品无码免费不卡| 亚洲男人天堂av| 最近中文字幕2019高清免费| 亚洲日韩精品无码专区加勒比| 日日AV拍夜夜添久久免费| 免费大片av手机看片高清| 亚洲宅男天堂在线观看无病毒| 久久中文字幕免费视频| 亚洲午夜一区二区电影院| 处破痛哭A√18成年片免费| 乱淫片免费影院观看| 亚洲精品线在线观看| 无码人妻一区二区三区免费| 粉色视频免费入口| 久久精品亚洲视频| 精品国产免费观看一区| aa级女人大片喷水视频免费| 亚洲成AV人综合在线观看| 免费久久精品国产片香蕉| 三年片在线观看免费观看大全动漫 | 亚洲天堂免费在线视频| 99热免费在线观看|