freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java工作流引擎原理學(xué)習(xí)-資料下載頁

2024-11-10 00:36本頁面
  

【正文】 動(dòng)生成的序號(hào))等等,其中有一項(xiàng)是相關(guān)工作項(xiàng)ID,這是當(dāng)參與者對(duì)原始工作項(xiàng)進(jìn)行執(zhí)行操作動(dòng)作時(shí)的工作項(xiàng)。⑼ 角色信息(RoleTable)描述角色的信息,包括角色I(xiàn)D(可以定義為以”Role__xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”形式,x是自動(dòng)生成的序號(hào)),角色名稱,部門名稱,職位名稱,角色描述。角色由部門和職位組成。⑽ 部門信息(DepartmentTable)描述部門的信息,包括部門ID(可以定義為以” Depatment_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”形式,x是自動(dòng)生成的序號(hào)),部門名稱,部門其它信息。⑾ 職位信息(PositionTable)描述職位的信息,包括職位ID(可以定義為以” Position_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”形式,x是自動(dòng)生成的序號(hào)),職位名稱,職位其它信息。除了以上這些主要表以外,還有一些我們是在定義工作流模型的時(shí)候才加入數(shù)據(jù)庫的,如對(duì)應(yīng)工作流附件類型為表的表格。為了減少網(wǎng)絡(luò)流量和提高系統(tǒng)的運(yùn)行速度,我們把一些有關(guān)聯(lián)的數(shù)據(jù)庫操作寫成存儲(chǔ)過程:⑴ 刪除工作流模型存儲(chǔ)過程:刪除一個(gè)工作流模型,必須刪除它的工作流定義主信息,同時(shí)刪除對(duì)應(yīng)的附件信息,附件為表的表格,環(huán)節(jié)信息;⑵ 創(chuàng)建附件類型為表的表格:定義附件信息時(shí)已經(jīng)把該表格的字段信息保存在該附件信息的其它信息字段中,并且有一定的格式,那么我們從該字段中按照一定的格式還原表格的字段信息,并根據(jù)這些信息在數(shù)據(jù)庫中創(chuàng)建該表格。 類的設(shè)計(jì)用面向?qū)ο蟮姆椒ê蚒ML建模工具,再根據(jù)系統(tǒng)結(jié)構(gòu)圖,模塊的劃分和數(shù)據(jù)庫的設(shè)計(jì),我們把對(duì)象轉(zhuǎn)化成類,進(jìn)行類的設(shè)計(jì)。我們把整個(gè)系統(tǒng)的類分成三部分,一是實(shí)體類,二是業(yè)務(wù)類,三是接口類。 實(shí)體類的設(shè)計(jì)工作流模型的對(duì)象就是一個(gè)一個(gè)的實(shí)體,實(shí)體類又分為數(shù)據(jù)庫訪問類和值對(duì)象類。數(shù)據(jù)庫訪問類是對(duì)存儲(chǔ)在數(shù)據(jù)庫的實(shí)體信息進(jìn)行訪問(插入,刪除,更新,查詢)的類,值對(duì)象類是在客戶端和服務(wù)器端之間交換資料的實(shí)體信息類。 數(shù)據(jù)庫訪問類⑴ 數(shù)據(jù)庫連接類:該類是其它數(shù)據(jù)庫訪問類的父類,管理數(shù)據(jù)庫的連接,負(fù)責(zé)從數(shù)據(jù)庫連接池找可用的數(shù)據(jù)庫連接給其它數(shù)據(jù)庫訪問類使用,使用完畢后負(fù)責(zé)放回連接池,類圖如下圖:說明:屬性只有一個(gè)connection,它代表數(shù)據(jù)庫的一條連接,類型為Connection,方法有一個(gè)構(gòu)造函數(shù)workflowDAO()和一個(gè)關(guān)閉連接的函數(shù)closeConnection()。WorkflowDAO()實(shí)現(xiàn)從數(shù)據(jù)庫連接池找一個(gè)可用連接并賦值給屬性connection,closeConnection()負(fù)責(zé)把連接放回?cái)?shù)據(jù)庫連接池。⑵ 工作流定義主信息訪問類:對(duì)應(yīng)數(shù)據(jù)庫的工作流定義主信息表,該類封裝了對(duì)該表格記錄的各種操作,就是插入或刪除一條工作流定義主信息,查詢特定工作流定義信息或者所有工作流定義信息,類圖如下圖:說明:構(gòu)造函數(shù)WFDefineMainInfoDAO()調(diào)用父類構(gòu)造函數(shù),從數(shù)據(jù)庫連接池中找一個(gè)可用的數(shù)據(jù)庫連接(其它數(shù)據(jù)庫訪問類也一樣)。⑶ 工作流流程信息訪問類:對(duì)應(yīng)工作流流程描述表,該類封裝了對(duì)該表格記錄的各種操作,流程是由若干環(huán)節(jié)組成,就是插入或刪除一條環(huán)節(jié)信息,查詢同屬于一個(gè)流程的環(huán)節(jié)信息等等,類圖如下圖:說明:findWorkflowFirlstActivityInfo()函數(shù)負(fù)責(zé)找該工作流模型的第一個(gè)環(huán)節(jié)的信息,findWorkflowNextActivityID()負(fù)責(zé)根據(jù)當(dāng)前環(huán)節(jié)ID找下一環(huán)節(jié)的信息。⑷ 工作流附件信息訪問類:對(duì)應(yīng)工作流附件信息表,該類封裝了對(duì)該表格記錄的各種操作,就是插入或刪除一條工作流附件信息,查詢同屬于一個(gè)工作流模型的附件信息。類圖如下:⑸ 工作流附件類型為表的信息訪問類:對(duì)應(yīng)工作流附件類型為表格的信息表,該類封裝了該表記錄的各種操作,就是插入或查詢一條工作流附件類型為表格的具體信息,類圖如下:⑹ 工作流實(shí)例啟動(dòng)信息訪問類:對(duì)應(yīng)工作流實(shí)例啟動(dòng)信息表,該類封裝了該表記錄的各種操作,就是插入或查詢一條工作流啟動(dòng)信息,查詢同屬于一個(gè)用戶的工作流實(shí)例啟動(dòng)信息,更新部分字段信息,類圖如下:說明:selectFinishedWorkflowInstanceStartUpInfoVO()負(fù)責(zé)查詢特定用戶啟動(dòng)的并且已經(jīng)完成的工作流信息,selectNotFinishedWorkflowInstanceStartUpInfoVO()負(fù)責(zé)查詢特定用戶啟動(dòng)的并且還沒有完成的工作流信息,updateWFInstFinishedFields()負(fù)責(zé)在工作流實(shí)例結(jié)束時(shí)更新特定的字段信息,updateWFInstProcessingFields()負(fù)責(zé)在工作流實(shí)例運(yùn)行工程中更新特定的字段信息。⑺ 工作流實(shí)例過程信息訪問類:對(duì)應(yīng)工作流實(shí)例過程信息表,該類封裝了該表格記錄的各種操作,每一條記錄實(shí)際上是一個(gè)環(huán)節(jié)實(shí)例,就是插入、刪除或查詢一條環(huán)節(jié)實(shí)例信息,查詢指定工作流實(shí)例的所有環(huán)節(jié)信息,更新部分信息字段,類圖如下:說明:SetWFInstProcessingCurrentPerformerNumField()負(fù)責(zé)更新已經(jīng)處理該環(huán)節(jié)實(shí)例對(duì)應(yīng)的工作項(xiàng)的參與該環(huán)節(jié)實(shí)例的用戶數(shù)目,updateWFInstProcessingFields()負(fù)責(zé)在環(huán)節(jié)實(shí)例處理過程中更新特定的字段信息。⑻ 工作項(xiàng)信息訪問表:對(duì)應(yīng)工作項(xiàng)表,該類封裝了該表格記錄的各種操作,就是插入或刪除一條工作項(xiàng)信息,查詢工作項(xiàng)信息,更新工作項(xiàng)信息,類圖如下:說明:selectFinishedWorkItemVO()負(fù)責(zé)查詢特定用戶已經(jīng)處理完畢的工作項(xiàng)信息,selectNotYetFinishedWorkItemVO()負(fù)責(zé)查詢還沒有處理的工作項(xiàng)信息,updateWorkItemFields()負(fù)責(zé)更新工作項(xiàng)在處理過程中的特定字段信息,isPerformedInWorkItemByUser()負(fù)責(zé)判斷該工作項(xiàng)是否已經(jīng)處理完畢。⑼ 用戶信息訪問表:對(duì)應(yīng)用戶信息表,該類封裝了該表格記錄的各種操作,就是插入、刪除或查詢一條用戶信息,查詢特定角色對(duì)應(yīng)的用戶信息,類圖如下:說明:selectCountRS()負(fù)責(zé)統(tǒng)計(jì)同屬于一個(gè)角色的用戶數(shù)目。⑽ 角色信息訪問類:對(duì)應(yīng)角色信息表,該類封裝了該表記錄的各種操作,就是插入、刪除或查詢一條角色信息,查詢所有角色信息,類圖如下:⑾ 部門信息訪問類:對(duì)應(yīng)部門信息表,該類封裝了該表記錄的各種操作,就是插入、刪除或查詢一條部門信息,查詢所有部門信息,類圖如下:⑿ 職位信息訪問類:對(duì)應(yīng)職位信息表,該類封裝了該表記錄的各種操作,就是插入、刪除或查詢一條職位信息,查詢所有職位信息,類圖如下:⒀ 日志信息訪問類:對(duì)應(yīng)日志信息表,該類封裝了該表記錄的各種操作,就是插入、刪除一條日志信息,查詢特定的日志信息,類圖如下: 值對(duì)象類值對(duì)象類其實(shí)是一種數(shù)據(jù)結(jié)構(gòu),用于客戶機(jī)和服務(wù)器之間的數(shù)據(jù)交換,也用于對(duì)象實(shí)例的數(shù)據(jù)傳遞,它有若干屬性,可是很少方法,實(shí)例化后就對(duì)應(yīng)數(shù)據(jù)庫表的一條記錄。⑴ 工作流定義主信息值對(duì)象類:可以保存工作流主信息表的一條記錄信息,類圖如下:⑵ 工作流流程信息值對(duì)象類:可以保存工作流流程信息表的一條記錄信息,類圖如下:⑶ 工作流附件信息值對(duì)象類:可以保存工作流附件信息表的一條記錄信息,類圖如下:說明:SetOtherInfo()負(fù)責(zé)以一定格式把工作流附件類型為表的表格字段信息保存在OtherInfo中,GetOtherInfo()負(fù)責(zé)從OtherInfo中以一定的格式還原工作流附件為表的表格字段信息。⑷ 工作流附件類型為表的信息值對(duì)象類:可以保存工作流附件類型為表的信息表的一條記錄信息,類圖如下:說明:tableName就是工作流附件類型為表的表格名稱,fieldValue就是對(duì)應(yīng)該表的一條記錄的各個(gè)字段值,用可變長(zhǎng)數(shù)組Vector保存下來。⑸ 工作流實(shí)例啟動(dòng)信息值對(duì)象類:可以保存工作流實(shí)例啟動(dòng)信息表的一條記錄信息,類圖如下:⑹ 工作流實(shí)例過程信息值對(duì)象類:可以保存工作流實(shí)例過程信息表的一條記錄信息,類圖如下:⑺ 工作項(xiàng)信息值對(duì)象類:可以保存工作項(xiàng)信息表的一條記錄信息,類圖如下:⑻ 用戶信息值對(duì)象類:可以保存用戶信息表的一條記錄信息,類圖如下:⑼ 角色信息值對(duì)象類:可以保存角色信息表的一條記錄信息,類圖如下:⑽ 部門信息值對(duì)象類:可以保存部門信息表的一條記錄信息,類圖如下:⑾ 職位信息值對(duì)象類:可以保存職位信息表的一條記錄信息,類圖如下:⑿ 日志信息值對(duì)象類:可以保存日志信息表的一條記錄信息,類圖如下:⒀ 信息集合值對(duì)象類:可以保存各種信息的一個(gè)集合,當(dāng)需要返回多條記錄信息的時(shí)候可以使用該類,類圖如下:說明:只有一個(gè)屬性,是一個(gè)可變長(zhǎng)數(shù)組,可以存放不定數(shù)量的記錄信息。 業(yè)務(wù)類的設(shè)計(jì)業(yè)務(wù)類,其實(shí)就是邊界類,它根據(jù)系統(tǒng)的需求按照一定的方式把各個(gè)實(shí)體類聯(lián)系起來,以實(shí)現(xiàn)系統(tǒng)的各種功能。按照實(shí)現(xiàn)功能的不同我們可以分為用戶管理類,角色管理類,部門管理類,職位管理類,工作流模型管理類,工作流實(shí)例管理類,系統(tǒng)監(jiān)控管理類。⑴ 用戶管理類:負(fù)責(zé)用戶的注冊(cè),注銷,檢測(cè)合法性,查找用戶信息,類圖如下:⑵ 角色管理類:負(fù)責(zé)新增加角色,刪除角色,查找角色信息,類圖如下:⑶ 部門管理類:負(fù)責(zé)新增加部門,刪除部門,查找部門信息,類圖如下:⑷ 職位管理類:負(fù)責(zé)新增加職位,刪除職位,查找部門信息,類圖如下:⑸ 工作流模型管理類:負(fù)責(zé)工作流模型的定義,解析,類圖如下:⑹ 工作流實(shí)例管理類:負(fù)責(zé)工作流實(shí)例的創(chuàng)建,維護(hù)各種實(shí)例的狀態(tài)信息,分派任務(wù)給用戶,用戶處理工作項(xiàng)等等的工作,類圖如下:說明:uploadAttachmentToServer()負(fù)責(zé)把工作流附件類型為文檔的文檔上傳到服務(wù)器特定目錄下。⑺系統(tǒng)監(jiān)控管理類:是一個(gè)綜合類,主要通過調(diào)用其它管理類的功能來實(shí)現(xiàn)本身的功能,就是查看工作流實(shí)例的過程狀態(tài),完成程度,根據(jù)一定的條件有必要控制實(shí)例的掛起,激活,結(jié)束,查看各個(gè)參與用戶的工作情況,在出現(xiàn)工作誤時(shí)、意外、異常等等情況時(shí)采取一定的措施保證整個(gè)實(shí)例的完成。而所有這些都保存在日志中。 接口類的設(shè)計(jì)接口類是工作流引擎提供給外部應(yīng)用的類,應(yīng)用系統(tǒng)通過調(diào)用這些類,來實(shí)現(xiàn)一定的應(yīng)用功能。我們?cè)诮涌陬惖脑O(shè)計(jì)上,采取格式統(tǒng)一、隱藏系統(tǒng)復(fù)雜性、功能調(diào)用方便的原則,盡量為外部應(yīng)用系統(tǒng)提供簡(jiǎn)潔、易懂的功能調(diào)用接口。因而我們把這些類都設(shè)計(jì)成只有一個(gè)業(yè)務(wù)類實(shí)例,一個(gè)ToDoWhat()方法的類,并且每一個(gè)業(yè)務(wù)類對(duì)應(yīng)一個(gè)接口類。在這些接口類中,業(yè)務(wù)類實(shí)例作為它的一個(gè)數(shù)據(jù)成員,ToDoWhat()方法有兩個(gè)參數(shù),toDoCode(工作代碼)和object(數(shù)據(jù)交換對(duì)象),工作代碼表示要調(diào)用的功能的標(biāo)識(shí),數(shù)據(jù)交換對(duì)象表示功能調(diào)用要處理的數(shù)據(jù)(應(yīng)用數(shù)據(jù))。從本質(zhì)上來說,就是根據(jù)不同的工作代碼調(diào)用業(yè)務(wù)類實(shí)例的不同方法,對(duì)各種應(yīng)用數(shù)據(jù)進(jìn)行處理。第四章系統(tǒng)實(shí)現(xiàn)系統(tǒng)的實(shí)現(xiàn)主要包括關(guān)鍵問題的解決方案和一個(gè)工作流管理應(yīng)用系統(tǒng)的實(shí)踐。首先提出關(guān)鍵問題,然后給出解決方案,最后提出一個(gè)應(yīng)用架構(gòu),利用J2EE技術(shù)和數(shù)據(jù)庫技術(shù)實(shí)現(xiàn)一個(gè)基于輕量級(jí)工作流引擎的簡(jiǎn)單工作流管理應(yīng)用系統(tǒng)。 關(guān)鍵問題的解決方案在實(shí)現(xiàn)工作流引擎的時(shí)候,有一些關(guān)鍵問題,例如啟動(dòng)工作流實(shí)例,推動(dòng)工作流實(shí)例的進(jìn)程,類型為文檔的附件的處理等等,都是要重點(diǎn)解決的。 啟動(dòng)工作流實(shí)例當(dāng)根據(jù)各種業(yè)務(wù)需求創(chuàng)建了對(duì)應(yīng)的工作流模型,根據(jù)結(jié)構(gòu)組織情況創(chuàng)建了組織模型后,用戶就可以創(chuàng)建工作流實(shí)例并啟動(dòng)它。用戶把工作流實(shí)例的信息提交給工作流引擎,那么工作流引擎如何工作呢?工作流引擎其實(shí)做了一系列的工作,其處理過程如下:⑴ 工作流引擎得到用戶創(chuàng)建的工作流實(shí)例數(shù)據(jù),記錄在工作流實(shí)例啟動(dòng)信息表中;⑵ 工作流引擎解析對(duì)應(yīng)該工作流實(shí)例的工作流模型的含義,獲得必要信息提供給工作流實(shí)例使用;⑶ 工作流引擎根據(jù)這些必要信息找到工作流模型對(duì)應(yīng)流程的第一個(gè)環(huán)節(jié)信息,并生成該工作流實(shí)例的第一個(gè)環(huán)節(jié)實(shí)例,記錄在工作流實(shí)例過程描述表中;⑷ 工作流引擎根據(jù)任務(wù)分派原則開始把任務(wù)項(xiàng)分派給參與該環(huán)節(jié)實(shí)例的所有用戶;⑸ 工作流引擎根據(jù)該環(huán)節(jié)定義的參與者角色,找出所有同屬于該角色的所有用戶,為各個(gè)用戶都生成一個(gè)工作項(xiàng),記錄在工作項(xiàng)信息表中,工作項(xiàng)要繼承該環(huán)節(jié)定義的業(yè)務(wù)規(guī)則,完成任務(wù)的分派;⑹ 工作流引擎根據(jù)該環(huán)節(jié)定義的業(yè)務(wù)規(guī)則,如果該環(huán)節(jié)是自動(dòng)型的,則為該環(huán)節(jié)的參與用戶分派完任務(wù)后立刻就根據(jù)該環(huán)節(jié)信息去找下一個(gè)環(huán)節(jié)的信息,進(jìn)行下一環(huán)節(jié)實(shí)例的處理;如果該環(huán)節(jié)不是自動(dòng)型的,是需要人工參與處理的,則工作流引擎暫停該工作流實(shí)例的處理工作,等待參與用戶處理的結(jié)果;⑺ 啟動(dòng)工作流實(shí)例的工作結(jié)束。 推進(jìn)工作流實(shí)例的進(jìn)程⑴ 如果上一環(huán)節(jié)定義的業(yè)務(wù)規(guī)則是自動(dòng)型的,則立刻根據(jù)當(dāng)前環(huán)節(jié)信息查找下一環(huán)節(jié);⑵ 如果上一環(huán)節(jié)定義的業(yè)務(wù)規(guī)則是不是自動(dòng)型的,則等待參與用戶對(duì)各自的工作項(xiàng)進(jìn)行處理,當(dāng)每一個(gè)用戶處理完后,工作流引擎都要判斷該環(huán)節(jié)實(shí)例是否結(jié)束,結(jié)束的條件是業(yè)務(wù)規(guī)則的規(guī)定和用戶的處理結(jié)果。①如果業(yè)務(wù)規(guī)則是與聚合,當(dāng)當(dāng)前用戶的處理結(jié)果是非正常處理的話,該環(huán)節(jié)實(shí)例就結(jié)束,并且該工作流實(shí)例也結(jié)束,通知其他還沒處理的用戶該環(huán)節(jié)已經(jīng)結(jié)束,并記錄在相應(yīng)的數(shù)據(jù)庫表中;當(dāng)當(dāng)前用戶的處理結(jié)果是正常處理的話,則再判斷是否所有參與的用戶都處理完畢,如果是則結(jié)束該環(huán)節(jié),通知其他用戶該環(huán)節(jié)已經(jīng)結(jié)束,并記錄在相應(yīng)的數(shù)據(jù)庫表中,然后查找下一環(huán)節(jié),如果不是則等待其他還沒處理的用戶的處理結(jié)果。②如果業(yè)務(wù)規(guī)則是或聚合,當(dāng)當(dāng)前用戶的處理結(jié)果是正常處理的話,該環(huán)節(jié)的實(shí)例就結(jié)束,并且該工作流實(shí)例也結(jié)束,通知其他參與還沒處理的用戶該環(huán)節(jié)實(shí)例已經(jīng)結(jié)束,記錄在相應(yīng)的數(shù)據(jù)庫表中,然后查找下一環(huán)節(jié);當(dāng)當(dāng)前用戶的處理結(jié)果是非正常的話,則等待其他還沒處理的用戶的處理結(jié)果。③如果業(yè)務(wù)規(guī)則是投票聚合,當(dāng)當(dāng)前用的處理結(jié)果是正常處理的話,則使統(tǒng)計(jì)正常處理結(jié)果的計(jì)數(shù)器加一,然后判斷該統(tǒng)計(jì)數(shù)量是否已經(jīng)達(dá)到規(guī)定的數(shù)量,如果是則結(jié)束該環(huán)節(jié)實(shí)例,并通知其他還沒處理的用戶該環(huán)節(jié)實(shí)例已經(jīng)結(jié)束,記錄在數(shù)據(jù)庫表中,然后查找下一環(huán)節(jié);當(dāng)當(dāng)前用的處理結(jié)果是非正常處理的話,則不統(tǒng)計(jì),
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1