當只有乙個專案中有流程的時候,其實是不需要流程平台的。但是當有多個專案中都具有流程,並且這些專案的使用者交叉時,就需要有乙個統一的流程平台,來讓使用者能從乙個頁面中檢視或處理自己的所有相關流程。
流程的原生資料(act_*的一些表資料),下文中用資料a
來標識
流程的擴充套件配置資訊(為了方便使用流程,進行的一些擴充套件配置:如業務表單的配置、流程節點支援的操作的配置等),下文中用資料b
來標識
業務系統完全通過流程平台提供的對外介面來實現流程發起、提交、取消等操作。所有的流程相關資料都儲存於流程平台中。
完全跟業務系統解耦
流程的完整資料都儲存於同乙個地方,便於取用
所有實現都需通過對外介面來實現,增加了網路互動,降低效能
當業務系統的業務處理跟流程操作需要在乙個事物中處理時,事物的一致性不容易保證(雖然可以採用分布式事物來解決,但是分布式事物會增加使用成本和降低效能)
流程平台的處理壓力大
流程平台只保留乙個任務列表的查詢功能,所有的其他功能都整合到業務系統中(流程平台提供乙個jar包)。所有的流程相關資料都儲存於業務系統的資料庫中,業務系統進行流程操作(流程發起、取消等)時,將資料同步(根據業務需要,可以實時同步也可以利用mq非同步同步)到流程平台對應的資料庫中(一般為nosql資料庫,如mongodb)
效能高無事物問題
流程相關配置資訊分布在各個業務系統中,比較分散,不方便取用
業務系統的處理壓力大
流程平台只包含任務列表的查詢功能和對流程配置資訊(資料b
)的配置功能,業務系統配置多資料來源,包含業務本身的資料來源和流程配置資訊的資料來源,業務本身的資料來源為主資料來源存在事物,流程配置的資料來源為唯讀資料來源,不需要事物,從而保證多資料來源的事物一致
效能高無事物問題
流程配置集中管理
需要配置多資料來源,增加配置複雜度
業務系統的處理壓力大
談談我們的開發流程
在這個公司工作五年多了,因為專案不同,角色不同,層次不同,也見識與經歷了我們在軟體開發中的各個步驟,花些時間,總結與回顧一下我們的開發流程。當然,先要說明一下前提 我們做的是產品開發,一年一release,而不是專案定製開發 這是乙個產品的持續開發 重構與維護,而不是從頭搭建乙個產品 2009年以前...
談談我們的開發流程
在這個公司工作五年多了,因為專案不同,角色不同,層次不同,也見識與經歷了我們在軟體開發中的各個步驟,花些時間,總結與回顧一下我們的開發流程。當然,先要說明一下前提 我們做的是產品開發,一年一release,而不是專案定製開發 這是乙個產品的持續開發 重構與維護,而不是從頭搭建乙個產品 2009年以前...
談談jquery的實現
最近寫了些移動端的專案,在pc端操作dom,jquery必不可少。但是在移動端引入jquery就顯得不合適,一是檔案太大,二是不支援一些觸控。zepto.js是移動端的jquery,體積很小,支援觸控。在用這些庫的時候,經常會想該如何實現這樣的寫法呢?看了很多jquery原始碼的分析,又看了很多例項...