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

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

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

    posts - 193,  comments - 520,  trackbacks - 0

    也許是流程做多了的緣故,所以看起程序開發來一切都是流程或者說都包含流程。個人認為大多數的企業應用(不包括特殊應用,例如文檔庫、信息資源庫、BBS等等)不過是對數據以一定的樣式展現(表單),以一定的邏輯對數據進行操作(業務規則),以及把這些處理數據的過程以一定的流程進行管理(流程)。上面三個方面分別對應著表單、業務規則和流程。程序開發中則對應于表單引擎、規則引擎和工作流引擎。而這些方面又可以統一到一個更大范疇的流程上來,所以這里有對流程驅動開發的設想。

    先來看看具體的應用場景。

    單表增刪改查

    這是最簡單的情形,也沒有流程,對這個情形不加討論。但是這里會提到表單引擎,VB里的數據控件非常的易用,沒有PO,沒有DAO,也沒有Service,直接與數據庫字段進行綁定。我們的表單引擎也可以采用這種方式。

    支持表單控件(輸入框、文本框、下拉框等)的拖拽,將整個表單與數據庫表綁定。


    表單控件與數據庫字段的綁定。


    單表業務+流程

    比上面的情況稍微復雜一點點,也就是要在業務里引入流程,其實這也是現在工作流引擎應用最多的地方,比如說政府OA里的收文、發文。

    這里只需要將表單與流程進行綁定,表單引擎的處理方式不變,依然是直接與數據庫表進行綁定。表單負責對數據庫里的業務數據進行展現,工作流則負責推動這些數據在業務意義上狀態的轉換,互不影響,并在需要的時候在自動節點上對這些數據進行相應的業務處理。


    關于表單權限。這個也是表單與工作流進行綁定時所必須考慮到的問題。其實只是需要在表單引擎里引入權限角色的概念,每個角色對應于一種權限,這種權限具體說來就是表單里每個字段的可見、可編輯等等。然后在人工節點定義時指定表單權限角色即可。這樣也實現了流程與表單權限一定程度上的解耦。


    其實還有一種更方便的方式,將表單直接與人工節點進行綁定,每個人工節點對應于不同的表單。

    復雜一點,多表關聯的情況

    復雜一點的情況是業務往往是多表的關聯。這需要對表單引擎做出擴展,讓它可以根據關聯字段對關聯表做出查詢,得到關聯表的設計結構,繼續映射。這讓我想起了ORM,這里很有FRM的意思在里面。其實對于常用的關聯查詢往往有通用的組件可用,例如根據userid渲染出用戶名,根據數據字典的id關聯渲染出相應的值,oa里的正文、附件、印章等等。

    流程跨越多個業務

    流程需要跨越多個業務,一個典型的流程如下:


    會議審批會涉及到兩張業務表:會議室使用表,會議記錄表。在會議申請和領導審批節點,最終用戶打開的都是會議申請的表單,對應于會議記錄表,對該表進行操作。但是流程運行到會議室管理員安排會議室的節點,該節點最終用戶不僅需要看到會議申請的表單同時還要看到會議室使用情況的表單,如果有空閑的會議室,用戶登記操作會議室使用表,然后通知申請者;如果沒有空閑的會議室,則不用登記直接通知申請者。這個過程中跨越了兩個業務,分別是會議室管理和會議管理。表單在各個節點也是不同的。

    這其實對工作流引擎提出了比較高的要求。例如如果流程已經結束,會議得到批準,但申請者突然有事要改變會議時間怎么辦?回退。這里的回退無疑就需要有業務的補償,例如要刪除會議室的相關記錄。

    應用集成

    一個流程不僅會跨越多個業務,也會跨越多個系統。這里的應用場景很多,重要的是要去其他系統抓取數據和操作數據,僅僅靠數據庫表對表單的映射滿足不了需求。


    對工作流引擎做出改進,與前面相比,需要由引擎來完成對其他系統服務的調用。這里一個很重要的載體就是XML。首先要定義交換數據所用的XML scheme,然后將這個XML scheme再與表單引擎做出映射。實際執行時,工作流的自動節點會在人工節點前調用其他系統的服務,按照XML scheme將數據轉換為符合定義的XML,在緊接著的人工節點送給表單引擎,表單引擎渲染。修改數據也是同樣的過程,表單引擎將處理后的數據以XML返回,工作流再次做出轉換,調用服務的修改功能。

    上面五種都是比較常見的應用場景,理想的情況下,開發方式應該是這樣的:畫出應用流程à定義流程表單à表單與數據庫進行映射à對流程進行業務仿真à完成開發。問題是這樣的:你的表單引擎是否足夠強大?表單與后臺是直接用SQL進行交互的,也就是Transaction Script模式,沒有業務對象,對于復雜業務邏輯如何處理?如何使用規則引擎來解決業務邏輯的問題?權限如何以一種AOP的方式對數據操作進行橫切?

    呵呵,純屬個人YY

     



    http://www.tkk7.com/ronghao 榮浩原創,轉載請注明出處:)
    posted on 2007-11-02 10:07 ronghao 閱讀(1642) 評論(5)  編輯  收藏 所屬分類: SOA、BPM

    FeedBack:
    # re: 對流程驅動開發的YY
    2007-11-04 00:47 | weicl
    看了你的關于權限控制的文章
    不好意思在這請教你(怕你看不到,呵呵!)
    我現在做一個內部管理系統,有這樣的需求:
    1.財務部門經理可以看到員工的報銷情況(例如有:交通費用、食宿費用、業務費用等),其他部門(如技術部門)看不到報銷信息
    2.財務部門經理可以授權技術部門經理可以看到某位員工的某一次報銷情況中的交通費用,而食宿費用和業務費用看不到(當然,也可只授權食宿費用,而其他兩個看不到,授權靈活)

    我看了你的文章,有到行級的,也有說字段級的,不知道我說的這種情況算做哪一種?
    還有現在最讓我不清楚的是例如行級的權限是怎樣一個授權過程,數據庫應該樣設計,程序如何控制。
    不知道我的問題有沒有表達清楚,希望能得到你的指點,非常感謝!!!  回復  更多評論
      
    # re: 對流程驅動開發的YY[未登錄]
    2007-11-06 09:37 | ronghao
    你的第一種情況可以直接設置只有財務部門經理才能查看報銷記錄列表,其他員工只能看自己的報銷記錄。
    第二種情況比較復雜,因為交通費用,食宿費用和業務費用只是一條報銷記錄的3個字段而已,而最終用戶還要可以自己授權。這樣就可能需要再單建一張權限表。首先讀取數據時對數據和字段進行過濾(可以直接設置對象里相應字段為NULL)然后頁面渲染時處理一下隱藏即可。
    處理起來并不困難,但是如果你所表達的權限規則頻繁變化就會比較頭疼了。  回復  更多評論
      
    # re: 對流程驅動開發的YY
    2007-11-06 12:26 | 趙斌
    YY得很不錯呀,頗有MDA的思想。

    感覺,隨著技術和思想的發展,尤其是思想的發展,今后的開發模式會發生根本性的變化,或許MDA/MDD將是未來的方向。

    《MDA/MDD技術離您有多遠?》思維導圖
    http://www.tkk7.com/zhaobin/archive/2007/03/01/101295.html  回復  更多評論
      
    # re: 對流程驅動開發的YY
    2007-11-06 18:08 | ronghao
    @趙斌
    謝謝:)我總覺得現在的開發效率還不高,但是卻沒有好的方法。謝謝你的鏈接,我找相關的資料看看:)  回復  更多評論
      
    # re: 對流程驅動開發的YY
    2007-12-26 18:40 | guest
    寫的挺好,支持!  回復  更多評論
      
    <2007年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    關注工作流和企業業務流程改進。現就職于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

    常用鏈接

    留言簿(38)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    常去的網站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 手机看黄av免费网址| 久9久9精品免费观看| 日本xxwwxxww在线视频免费| 亚洲毛片无码专区亚洲乱| 免费国产成人α片| 亚洲AV乱码一区二区三区林ゆな| a级在线免费观看| 亚洲av永久无码精品网站| 亚洲a一级免费视频| 97se亚洲综合在线| 我的小后妈韩剧在线看免费高清版 | 热久久精品免费视频| 亚洲国产精品无码久久98| 国产精品无码免费视频二三区| 国产精品国产亚洲区艳妇糸列短篇 | 黄网站色成年片大免费高清| 免费jjzz在在线播放国产| ssswww日本免费网站片| 亚洲精品白浆高清久久久久久| 免费91麻豆精品国产自产在线观看 | h视频在线免费观看| 亚洲人成在线影院| 成人免费视频77777| 国产午夜亚洲精品不卡免下载 | 亚洲AV无码精品色午夜在线观看| 免费看又黄又无码的网站| 亚洲一区二区三区久久| 夜色阁亚洲一区二区三区| 拍拍拍无挡视频免费观看1000| 亚洲欧洲日韩不卡| 国产免费久久精品久久久| 国产精品免费久久久久久久久 | 亚洲伊人色欲综合网| 毛片免费全部播放无码| 国产成人+综合亚洲+天堂| 亚洲av最新在线网址| 最近最好的中文字幕2019免费| 亚洲黄片手机免费观看| 亚洲国产成人精品无码区在线秒播 | 国产成人一区二区三区免费视频| 久久久久久久久久久免费精品|