導航:首頁 > 編程語言 > 開源java工作流引擎

開源java工作流引擎

發布時間:2023-04-11 16:20:02

① 計算機高手解釋一下 工作流系統 (Workflow systems)

工作流(Workflow)就是「業務過程的部分或整體在計算機應用環境下的自動化」,它主要解決的是「使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現」。
簡單地說,工作流就是一系列段明模相互銜接、自動進行的業務活動或任務。一個工作流包括一組任務(或活動)及它們的相互順序關系,還包括流程及任務(或活動)的啟動和終止條件,以及對每個任務(或活動)的描述。
工作流在大多數的實際應用中的情況握緩可以這樣來簡單地描述:在網路、伺服器和多台計算機客戶端的硬體平台上,業務過程按照預先設定的規則並藉助應用程序和人對相關數據的處理而完成。例如,在日常辦公中,當撰寫好某份報告之後,可能需要將其提交給領導進行審閱或批示;審批意見可能需要匯集並提交給另外一個人,以便對報告進行進一步的修改。這樣,可能會形成同一篇文檔在多個人之間的順序或同時傳遞。對於這樣的情況,我們可以使用工作流技術來控制和管理文檔在各個計算機之間自動傳遞,而非手工傳遞。這就可以稱之為工作流。
類似的關於文檔的自動化處理只是工作流技術的一種簡單應用。事實上,工作流技術在現實生活中能夠完成更多更復雜的任務。如企業(或機構)內部的各種數據或信息的自動處理,多種業務流程的整合,企業(或機構)之間的數據交換,藉助Internet技術實現跨地域的數據傳輸和處理等等。
某產品銷售的工作流示意圖:

一、工作流發展
工作流技術起源於二十世紀七十年代中期辦公自動化領域的研究,由於當時計算機尚未普及,網路技術水平還很低以及理論基礎匱乏,這項新技術並未取得成功。1983年至1985年間,在圖像處理領域和電子郵件領域出現了早期的含有工作流特徵的商用系統。
進入九十年代以後,隨著個人計算機、網路技術的普及和推廣,以及信息化建設的日益完善,使得工作流技術的研究與開發進入了一個新的熱潮。1993年8月,第一個工作流技術標准化的工業組織——工作流管理聯盟(Workflow Management Coalition,簡稱WFMC,下同)成立。1994年,工作流管理聯盟發布了用於工作流管理系統之間互操作的工作流參考模型,並相繼制定了一系列工業標准。與此同時,關於工作流技術的學術研究也十分活躍,許多原型系統在實驗室里開發出來。進入二十一世紀以來,工作流技術已被越來越多的人認可,與之相關的標准規范、工作流引擎及商業產品不勝枚舉。人們在開發推廣工作流產品的同時,更加註重工作流的理論研究,以推動該項技術走向成熟。
二、工作流的特點
1,圖形化、可視化設計流程圖
2,支持各種復雜流程
3,組織結構級處理者指定功能
4,B/S結構,純瀏覽器應用
5,強大的安全性特色
6,表單功能強大,擴展便捷
7,靈活的外出、超時管理策略
8,處理過程可跟蹤、管理
9,豐富的統計、查詢、報表功能
10,與MAIL系統集成
三、工作流的優點
企業實施工作流管理所帶來的好處是非常明顯的,這包括提高企業運營效率、改善企業資源利用、提高企業運作的靈活性和適應性、提高工作效率、集中精力處理核心業務、跟蹤業務處理過程、量化考核業務處理的效率、減少浪費、增加利潤、充分發揮現有計算機網路資源的作用。實施工作流將達到縮短企業運營周期、改善企業內(外)部流程、優化並合理利用資源、減少人為差錯和延誤,提高勞動生產率等目的。

總結實施工作流帶來的好處,可以歸納為以下幾點:
1,要處理的事項已自動傳遞到個人電腦上
2,不再槐攔需要對員工進行流程的培訓,平滑實現流程變更
3,員工只需將精力集中在處理自己關心的數據上
4,隨時得到歷史數據
5,隨時生成處理效率報表
6,達到無紙化辦公的目標
7,完全支持移動辦公,使作業同步化
8,科學管理更進一層,辦公效率明顯提高
9,企業的核心競爭力將有提升
10,通過流程自動化與資料庫集成,以及各類表單統計查詢功能,提高決策能力
四、工作流WorkFlow技術構架

五、工作流是如何實現的
工作流的實施需要三個基本步驟:映射、建模和管理。映射是第一個步驟,其首要任務是確定並且文檔化組織內全部現有的手工和自動化的業務流程;建模則是開發一個有助於建成流線型業務過程的模型。第三階段是軟體實施以及跨越全部工作部門、業務單元甚至是整個企業的無縫系統集成。
為了確保工作流系統能夠「無縫地」實施到組織機構中,項目組都必須遵從已經定義好的、經過實踐確認的行之有效的工作方法,並且在每個工作階段都必須有可以度量的結果。一個深思熟慮的實施計劃被有經驗的團隊執行,是成功地採用和實施工作流的決定因素。下圖描述了一個推薦的、可供典型組織機構採納的高層工作流(實施流程)。下面按圖中步驟具體闡述。
建立項目管理辦公室
項目管理辦公室的組成是第一步,也是最重要的一步。項目管理辦公室的成員須經過嚴格謹慎挑選,他們必須在恰當的程度上廣泛代表組織內的業務、運營、IT以及審計等部門。產品供應方的產品專家、技術支持人員和管理人員也必須參與其中,以與用戶互補。通常在PMO中還包含變更管理顧問,有助於形成組織中人員思路的多樣化。每個成員的角色和責任必須定義清楚。PMO從整體上確立項目的實施范圍、目標、實施時間框架以及優先順序等等。PMO也負責管理和跟蹤項目進度、設定檢測項目是否成功的指標,以及定期向高層匯報項目狀況等。
業務分析
項目組將分析用戶現有的業務流程,找出哪些流程需要優化和改進以達到上佳效果,並分析每個流程的時間線和期望的結果。他們將與關鍵人員進行座談,收集和鑒別正確的信息及數據,從而決定工作流系統如何滿足需求。接下來的業務分析將辨別出哪些流程可以被優化、自動化、流線型化,哪些流程甚至需要重新設計。
確定目標
確定上佳目標是建立在業務流程詳細分析的基礎之上的。工作流項目的目標定義應該清晰並可以進行驗證,好的目標意味著項目的成功。在實施過程的每一個階段,項目組必須確認達到的結果是他們所期望的結果。例如,如果目標是縮短開發票周期兩周,則必須分析現有的時間跟蹤、記賬和開發票等流程。
確定實施計劃
目標確立後,由用戶和軟體供應商組成的項目組展示工作流解決方案具備的各種模塊,根據用戶提出的特定需求定義他們的功能和特性,並基於業務的優先順序,共同決定每個模塊的上線時間。
將業務流程在工作流系統中建立模型
在實施過程中建立業務模型是一個極重要的步驟。用戶應當緊密地同軟體產品應用專家進行合作,以在易用性和功能需求之間達到平衡。
用戶可以在部署階段前對模型進行測試,以確保該模型符合實際要求且沒有過多的開銷。需要指出的是,如果這個建模步驟沒有完全正確地完成,將導致錯誤的報表或者多餘的管理工作。
實現流程和軟體集成
在這個階段,項目組將確定現有的需要與工作流系統交互的流程與系統。如果處理不當,新舊流程的集成將導致失敗。流程集成的一個重要方面就是在多系統之間消除或者最小化冗餘數據,並在多個系統間復制這些數據。流程必須緊密集成,數據必須能跨越不同的流程和應用,順暢流動。
項目組也必須確保工作流系統符合用戶組織機構的安全標准,這一點經常在部署階段前被忽視。
部署工作流系統
部署工作流系統包括兩部分內容。第一部分自然是技術部分,涵蓋了硬體和軟體的安裝、備份、恢復以及網路安裝等等,這與一般的IT應用實施相似。
第二部分是指上線試運行。試運行小組應具有真正的代表性。項目組必須與試運行小組就項目的重要性進行溝通,並確保提供足夠的培訓,使得試運行小組能夠對試運行工作得心應手。建議項目組建立清晰的溝通渠道,保證在試運行期間可以及時反饋用戶的意見和建議。試運行將使項目組鑒別出原來設計和計劃的弱點和缺點,並在大規模上線運行前加以解決。這也可以提高用戶對於新流程的接受程度,因為用戶感到他們也參與了項目的開發部分,解決方案不是強加給他們的。
一般認為,採用階段性實施工作流系統可使用戶更快地獲得效益。因為用戶可以更有效地漸進學習新系統,取得立竿見影的效益。階段性實施還給予用戶更多的時間了解、評估他們進一步的需求,使得項目實施期間的修改更加容易。另外,階段性實施項目降低了風險。
系統評估
特別注意,在每一個階段完成後,項目組都應該基於項目開始時設定的目標,對已經完成的結果進行評估,同時分析所達到的結果,並與最初的設計目標相對照。為了確保工作流解決方案在現有的業務環境中優化出更理??通,以了解什麼需要更改。
系統支持
為確保實施成功,更佳地使用工作流軟體,組織機構必須進行服務投資,組織機構應該委派專業人員提供第一線的服務,也應負責與供應商簽訂合同,以獲得第二級支持。
六、工作流適用行業
消費品行業,製造業,電信服務業,銀證險等金融服務業,物流服務業,物業服務業,物業管理,大中型進出口貿易公司,政府事業機構,研究院所及教育服務業等,特別是大的跨國企業和集團公司。
七、工作流具體應用
關鍵業務流程: 訂單、報價處理、采購處理、合同審核、客戶電話處理、供應鏈管理等
行政管理類:出差申請、加班申請、請假申請、用車申請、各種辦公用品申請、購買申請、日報周報等凡是原來手工流轉處理的行政表單。
人事管理類: 員工培訓安排、績效考評、職位變動處理、員工檔案信息管理等。
財務相關類: 付款請求、應收款處理、日常報銷處理、出差報銷、預算和計劃申請等。
客戶服務類: 客戶信息管理、客戶投訴、請求處理、售後服務管理等管理等。
特殊服務類: ISO系列對應流程、質量管理對應流程、產品數據信息管理、貿易公司報關處理、物流公司貨物跟蹤處理等各種通過表單逐步手工流轉完成的任務均可應用工作流軟體自動規范地實施。
作為一個成熟穩定的工作流產品,不僅提供日常辦公和關鍵業務流程智能化管理,而且能根據公司的特殊實際要求輕松方便地隨時定製各種流程,並可實現不同角色不同的跟蹤、查詢、統計、列印等強大功能
結論
許多組織機構都有雄心勃勃的計劃,為了能夠奪回失去的時間和獲得競爭優勢,希望能夠以大的步伐,更深(企業級或多級)、更廣(多應用)和更快(短時間)地進入數字工作流時代。我經常發現他們因為許多原因而慘遭失敗。根據我個人經驗,明智的做法是從小的范圍開始做起,並隨著工作流的成長而逐步做大。階段性實施提供了轉換到新的流程的平穩方法。由於用戶看到了效益,使得用戶更易於接納新的工作流程。階段性實施的另一個原因,是用戶不能夠承受一下子丟棄原有的全部流程,從零開始。組織機構應該在當前業務過程中最沒有效率的地方,集中尋找他們的「痛處」,然後利用「案例驅動」原則影響他們。
組織機構也必須認識到,當計劃實施一個新的工作流程時,行政力量和企業文化必須要考慮進去。
成功與否的最後一個關鍵要素就是「人」。當我們改變業務流程時,技術是一個方面,但更大的挑戰來自員工。的確,數字工作流系統要分階段進行,使人們「漸進式」地取得經驗,而不是「革命式」地得到經驗。

工作流:workflow
今天講的是工作流系統
什麼是工作流系統: 工作流(Workflow)就是「業務過程的部分或整體在計算機應用環境下的自動化」,它主要解決的是「使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現」。
簡單地說,工作流系統就是一系列相互銜接、自動進行的業務活動或任務。//一個工作流包括一組任務(或活動)及它們的相互順序關系,還包括流程及任務(或活動)的啟動和終止條件,以及對每個任務(或活動)的描述
例如,在日常辦公中,當撰寫好某份報告之後,可能需要將其提交給領導進行審閱或批示;審批意見可能需要匯集並提交給另外一個人,以便對報告進行進一步的修改。這樣,可能會形成同一篇文檔在多個人之間的順序或同時傳遞。對於這樣的情況,我們可以使用工作流技術來控制和管理文檔在各個計算機之間自動傳遞,而非手工傳遞。這就可以稱之為工作流。
工作流技術架構(圖片)
詞語解釋
Middleware 中間件
Runtime 運行時間
Prebuilt 之前建立
Flowchart 流程圖,作業圖
Subsystem 子系統
工作流(Workflow)的優點
企業實施工作流管理所帶來的好處是非常明顯的,這包括提高企業運營效率、改善企業資源利用、提高企業運作的靈活性和適應性、提高工作效率、集中精力處理核心業務、跟蹤業務處理過程、量化考核業務處理的效率、減少浪費、增加利潤、充分發揮現有計算機網路資源的作用。實施工作流將達到縮短企業運營周期、改善企業內(外)部流程、優化並合理利用資源、減少人為差錯和延誤,提高勞動生產率等目的。

總結實施工作流帶來的好處,可以歸納為以下幾點:
1,要處理的事項已自動傳遞到個人電腦上
2,不再需要對員工進行流程的培訓,平滑實現流程變更
3,員工只需將精力集中在處理自己關心的數據上
4,隨時得到歷史數據
5,隨時生成處理效率報表
6,達到無紙化辦公的目標
7,完全支持移動辦公,使作業同步化
8,科學bsp; 9,企業的核心競爭力將有提升
10,通過流程自動化與資料庫集成,以及各類表單統計查詢功能,提高決策能力
組織的本質:1 是參與者與技術的聚集
2. 由總體的目標約束
組織的種類:1 理性的(整個集體是追求相當明確的目標和顯示出相當高的固定社會結構,如商業) 2 natural(整個集體有同樣的興趣,並且樂於集體活動,如慈善機構)
3. 開放式的組織
數據流中的組織運用:理性的組織是用於計算機化中最成功的 數據流也同時對自然的和開放式的組織進行計算機化
數據流系統的一個聯系:1 消息系統 2 工作項目 3 業務規則 4 流程圖
消息系統:兩類:1 數據流能識別的格式,2 不能識別格式
工作項目 一個工作項目具體說明一個需要被工作者執行的任務
數據流系統的任務是和工作項目相協調
業務規則: 一個典型的數據流有許多業務邏輯塊所組成
在其生命周期內,業務規則在任何時候受限於數據流
業務規則在模型化組織時扮演很重要的角色
業務規則的起因:---
流程圖:在數據流中一個主要模型結構是流程圖
Synchronize ; 相協調; 暫停 解決數據流的例子記憶功能
運行時(runtime)運行語言:--
主機運行一般在組織的伺服器,也可在客戶端

數據流的中間件框架{中間件」簡單解釋:為了解決應用程序對網路過分依賴的問題採取了一種有效的方法,在客戶機和伺服器之間加一層軟體。}
執行這些工作:1 初始化和終止
2.執行:即執行在模型中明確規定的行為
3 長期數據流運行的管理
4 管理長期和短期的交易

演講稿
在英語中working with the flow 是隨波逐流的意思,但在這里表示工作流.

工作流的實質:在一個機構內,通過用電子文檔來替換紙張文檔系統,從而實現文檔處理過程的自動化。我們可以將整個業務過程看作是一條河,其中流過的就是工作流。
數據流應用的產生的發展是以下兩個因素的結果:

在這里 有兩個關鍵字 在計算機環境下 以及自動化(辦轉學手續的例子)

數據流如郵件,電子郵件,活動和信息。
數據流的傳遞 是在一定的邏輯和規則下進行的。

無縫集成系統 就是 實現了平台管理的不同系統間信息交換和數據共享,

那麼工作流系統是如何開始被人們所應用的呢?

下面介紹一下工作流中的專業術語

工作項目 一個工作項目具體說明一個需要被工作者執行的任務。打個比方說,就像我們編程時,給出提示信息,讓操作者輸入所需信息。

業務規則: 一個典型的數據流有許多業務邏輯塊所組成
在其生命周期內,業務規則在任何時候受限於數據流
業務規則在模型化組織時扮演很重要的角色

定義和運行一個數據模型:是一個很復雜的工作,要有重要的體系結構,設計,和發展工作,並且工作永遠都不會結束,因為模型必須一直調整來反映變化的存在的組織環境。

結論:工作流的核心部分是組織工作的模型,這個模型被用於編譯許多部分用來運行一個組織。

接著是已經被廣泛應用的一些工作流軟體
MRP-III
是由MRP-II與JIT(Just In Time,准時制生產)的混合加上專家系統(ES)、並行工程(CE)和承擔該系統運行的管理人員融為一體而成。
ERP
ERP的基本思想是將製造企業的製造流程看作是一個緊密連接的供應鏈,其中包括供應商、製造工廠、分銷網路和客戶;將企業內部劃分成幾個相互協同作業的支持集團,如財務、市場、銷售、質量、工程等,還包括競爭對手的監視管理。
與以往已經被採用的企業IT應用體系,例如MRPII或ERP相比,WFMS是一個相當重要的里程碑。從用戶的角度,WFMS帶來(或將要帶來)的變化是極其強烈的,甚至可以形容為一種用戶「夢想」的實現。
在一些老的「模塊化」的產品中,系統的設計是通常是基於任務分割的,作業項目之間是分裂的。面向對象的技術,並不能直接解決這個的問題,相反,往往使系統變得更加混亂和瑣碎。從操作上,典型地,我們必須不斷地在層次結構的功能表(比如下拉菜單)或對象之間「進進退退」,或者在「神出鬼沒」的對象以及相關菜單中捉迷藏。
工作流管理系統是一個真正的「人-機」系統,用戶是系統中的基本角色,是直接的任務分派對象,他或她可以直接看到電腦針對自己列出的「任務清單」,跟蹤每一項任務的狀態,或繼續一項任務,而不必從一個模塊退出,進入另一個模塊,搜索相應任務的線索。前者是面向功能或對象的,而後者是直接面向用戶的。這樣,用戶的任務分派和任務的完成狀態,可以被最大程度地電腦化和受到控制。
現在的典型工作流產品是客戶-服務軟體。而日益增長的重要途徑是通過萬維網界面,它可以令客戶或遠程的職員更好地參與。工作流的定義經常是藉助於圖形化工具,依照業務過程實例的情況定義相應工作的安排。

1. 已經能夠持續自動產生大量的細節數據。這類數據最早出現於傳統的銀行和股票交易領域,現在則也出現在地質測量、氣象、天文觀測等方面。尤其是互聯網(網路流量監控,點擊流)和無線通信網(通話記錄)的出現,產生了大量的數據流類型的數據。我們注意到這類數據大都與地理信息有一定關聯,這主要是因為地理信息的維度較大,容易產生這類大量的細節數據。
2. 需要以近實時的方式對更新流進行復雜分析。對以上領域的數據進行復雜分析(如趨勢分析,預測)以前往往是(在數據倉庫中)離線進行的,然而一些新的應用(尤其是在網路安全和國家安全領域)對時間都非常敏感,如檢測互聯網上的極端事件、欺詐、入侵、異常,復雜人群監控,趨勢監控(track trend),探查性分析(exploratory analyses),和諧度分析(harmonic analysis)等,都需要進行聯機的分析。
OSWorkflow是一個靈活的工作流引擎,設計成可嵌入到企業應用程序中。它提供了許多的持久化API支持包括:EJB,Hibernate,JDBC和其它。OSWorkflow還可以與Spring集成。

jBpm是一個靈活可擴展的工作流管理系統。作為 jBpm運行時server輸入的業務流程使用簡單強大的語言表達並打包在流程檔案中。jBmp將工作流應用開發的便利性和傑出的企業應用集成(EAI)能力結合了起來。jBmp包括一個Web應用程序和一個日程安排程序。jBmp是一組J2SE組件,可以作為J2EE應用集群部署。

OpenWFE是一個開放源碼java工作流引擎。它是一個完整的業務處理管理套件:一個引擎,一個工作列表,一個Web界面和一個反應器(存放自動代理)。它可以可以跟你的程序很好的給合。

Werkflow是一個靈活可擴展的基於流程和狀態的工作流引擎。它的目標是滿足可以想像的所有工作流程,從企業級的業務流程到小范圍的用戶交互流程。通過使用可插拔和分層結構,可以方便地容納各種工作流語義。

OFBiz是一個非常著名的開源項目,提供了創建基於最新J2EE/XML規范和技術標准,構建大中型企業級、跨平台、跨資料庫、跨應用伺服器的多層、分布式電子商務類WEB應用系統的框架。 OFBiz最主要的特點是OFBiz提供了一整套的開發基於Java的web應用程序的組件和工具。包括實體引擎, 服務引擎, 消息引擎, 工作流引擎, 規則引擎等。

② java工作流引擎中,哪個在市面上用得最多

一起來看看java快速開發框架工作流引擎快速開發平台。 希望您能從中找到適合您自己的流程引擎。

Activiti是由jBPM 的創建Tom Baeyen離JBoss之後建立的項目,構建在開發 jBPM 版本1到4時積累的多年經驗的基礎之上,旨在創建下一代的 BPM 解決方案。文檔豐富,csdn有相應專欄,並且國人貢獻了一本《activiti實戰》詳細地講解了基於activiti的開發內容,網上教程資源豐富。Activiti上手比較快,界面也比較簡潔、直觀,學習周期相對較短。

官方提供webapp war包,部署在Tomcat下可快速操作和了解activiti,esclipse提供支持activiti項目的ide插件,總的來說環境支持良好。

代碼量大,核心代碼改動難度較大,但提供了完整的技術文檔,架構良好,網上開發文檔較多,一定上降低了二次開發的難度。

支持,用戶體驗好,但是流程設計器是英文版,還需要漢化。

支持多種表單:動態表單,外置表單,普通表單,但表單設計未集成,需要自己集成表單設計。

支持絕大部分工作流功能,符合中國國情的審批流程需要在此基礎上進行開發。

JBPM(Java Business Process Management):JAVA業務流程管理,是一個可擴展、靈活、開源的流程引擎, 它可以運行在獨立的伺服器上或者嵌入任何Java應用中。

1、jBPM3是一個完整的工作流系統實現,面向開發人員,目的在於簡化對組織核心流程進行支撐的軟體創建,不支持標准。

2、jBPM4引入PVM,使其擁有更強大的擴展性,同時增加BPMS特性,這些特性包括了對BPMN的支持、面向業務人員的Web建模器和簡單統計分析功能的加入。

3、jBPM5基於原先的Drools Flow,支持BPMN,通過與Drools的合並支持BAM,通過內容倉庫增加對流程可視化的支持。由於放棄了jBPM4的PVM,引擎的可擴展性受到損害,並且不再支持jPDL。

XJR快速開發平台可視化開發,高效快速,開發成本低。兼容強,支持多種資料庫,基於B/S架構,純瀏覽器應用,只需要拖拽組件,拼接流程,就能實現各層的審批。面向服務介面設計,容易整合企業現有的資源。前後端分離設計,採用shiro許可權驗證,通過簡單配置就可以實現功能許可權和數據許可權。開源級代碼,二次擴展強。

XJR快速開發平台技術選型

使用目前流行的多種web技術,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等,支持多種資料庫MySQL, Oracle, sqlserver等。 分層設計:使用分層設計,分為,service,Controller,view層,層次清楚,低耦合,高內聚。 安全考慮:嚴格遵循了web安全的規范,前後台雙重驗證,參數編碼傳輸,密碼md5加密存儲,shiro許可權驗證,從根本上避免了SQL注入,XSS攻擊,CSRF攻擊等常見的web攻擊手段。

模塊功能

功能模塊:開發向導、代碼 生成器,商業智能、工作流、報表管理、移動端開發、作業計劃、多語言、數據源管理、企業微信、釘釘、消息管理,菜單 管理,用戶管理,機構管理,角色管理,區域管理,字典管理,日誌查詢等基礎模塊。

③ java開源的其它

Quartz 【Java開源 Job調度】
Quartz是OpenSymphony開源組織在Job scheling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。Jobs可以做成標準的Java組件或 EJBs。Quartz的最新版本為Quartz 1.5.0。
Velocity 【Java開源 模板引擎】
Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。 Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。 【VeloEclipse :Velocity在Eclipse平台下的一個輔助開發插件】
Roller Weblogger 【Java開源 Blog博客】
這個weblogging 設計得比較精巧,源代碼是很好的學習資料。它支持weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁面模板,RSS syndication,blogroll管理和提供一個XML-RPC 介面。
XPlanner 【Java開源 項目管理】
XPlanner 一個基於Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如iteration、user stories等,XPlanner都提供了相對應的的管理工具,XPlanner支持XP開發流程,並解決利用XP思想來開發項目所碰到的問題。XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(Virtual note cards),iterations、user stories與工作記錄的追蹤,未完成stories將自動迭代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP界面支持。
JOnAS 【Java開源 J2EE伺服器】
JOnAS是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet 2.3和JSP 1.2規范。JOnAS伺服器依賴或實現以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
FreeMarker 【Java開源 模板引擎】
FreeMarker允許Java servlet保持圖形設計同應用程序邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的數據動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速度。
【FreeMarker Eclipse Plugin與FreeMarker IDE:Eclipse平台下的輔助開發工具】
Lucene 【Java開源 全文檢索】
Apache Lucene是一個開放源程序的搜尋器引擎,利用它可以輕易地為Java軟體加入全文搜尋功能。Lucene的最主要工作是替文件的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析文件,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自己需要自訂其功能。
Beanshell 【Java開源 動態語言】
Beanshell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性。BeanShell執行標准Java語句和表達式,另外包括一些腳本命令和語法。它將腳本化對象看作簡單閉包方法(simple method closure)來支持,就如同在Perl和JavaScript中的一樣。它具有以下的一些特點:使用Java反射API以提供Java語句和表達式的實時解釋執行;可以透明地訪問任何Java對象和API;可以在命令行模式、控制台模式、小程序模式和遠程線程伺服器模式等四種模式下面運行;與在應用程序中一樣,可以在小程序中(Applet)正常運行(無需編譯器或者類裝載器);非常精簡的解釋器jar文件大小為175k
Big Two 【Java開源 Java游戲】
採用Java開發的中國式紙牌升級游戲。源碼下載
JBoss SSO Framework 【Java開源 身份認證管理】
JBoss SSO Framework是一個組件集能夠很容易集成到現有的web應用中提供單一登錄功能.該框架已經能夠支持一些重要的SSO標准如SAML。整個系統包括以下組件:
1.聯合伺服器(Federation Server)– 一個聯合伺服器用於為放置在不同安全域(security domain)中的web應用程序安全地傳播Federation Token。
2.Token編排框架(Token Marshalling Framework)– 這是一組靈活的/可插件的Java API用來marshal/unmarshal一個Federation Token。該系統默認提供一個SAML兼容的編排器(Marshaller) 。
3.身份管管理框架(Identity Management Framework)–這是一組靈活的/可插件的Java API用來連接中中央身份存儲庫(Identity Store)。該系統默認提供一個Provider來連接基於LDAP的身份存儲庫。
JawFlow 【Java開源 開源工作流】
JawFlow是一個部分遵循WfMC規范,採用JMX技術開發的工作流引擎。它能夠解析XPDL,並能夠用Java或BSF支持的腳本語言來自定義行為。
rails-asyncweb 【Java開源 Web伺服器】
用於JRuby on Rails的一個快速Http伺服器。
jBatchEngine 【Java開源 Job調度】
jBatchEngine是一個採用Java開發的批任務spooler。jBatchEngine與其它以時間為驅動的Job調度引擎不同之處在於它是以事件以驅動,可用於啟動任何批處理程序。jBatchEngine可以安裝成一個Windows Service或一個Unix Daemon。
Gant 【Java開源 項目構建】
Gant是一個基於Ant的構建工具,它採用Groovy腳本代替XML來編寫構建邏輯。 Gant完全依賴於Ant task來做真正的事情,所以你如果用Ant實現構建,但不喜歡用XML構建文件,Gant是一個不錯的選擇。
Jaxmao 【Java開源 Web伺服器】
Tomcat是開源的JSP/Servlet伺服器。多年的開發使Tomcat已越來越完善,被越來越多的網站採用。Jaxmao(中文版Tomcat)項目的任務是為Tomcat提供一個友好的中文界面,推廣Tomcat在中文JSP/Serlet 開發者中的使用。
Metanotion BlockFile 【Java開源 DBMS資料庫】
BlockFile一個100%純Java,輕量級,單個文件嵌入式資料庫。它的功能介於SQLite與BerkeleyDB之間。專門為PDA和Mobile應用程序而開發。
JRuleEngine 【Java開源 規則引擎】
JRuleEngine基於JSR94規范的java規則引擎。
JBasic 【Java開源 動態語言】
JBasic是一個完全採用Java開發的BASIC語言解釋器。JBasic可運行在大部分Unix系統(包括Mac OS X),Windows command shell,或VMS DCL command line。
jSoapServer 【Java開源 Web Service】
jSoapServer這個Java類包可以集成到Java應用程序中為外部程序提供一個SOAP介面。jSoapServer是一個獨立的SOAP伺服器,因此不需要讓Java程序運行在像Tomcat這樣的容器中。
Artistic Style 【Java開源 代碼優化】
Artistic Style是一個C,C++,C#和Java源代碼縮排/格式化/美化工具。
JLoom 【Java開源 模板引擎】
JLoom是一個採用類似於JSP語法的模板引擎。參數可以是任何Java類型,甚至是泛型(generic)。JLoom還提供一個Eclipse插件來輔助開發。
Liquid look&feel 【Java開源 Swing外觀】
基於Mosfet Liquid KDE 3.x主題的Swing外觀。
MicroNova YUZU 【Java開源 JSP標簽】
MicroNova YUZU開源基於EL的JSP標簽庫。這是一個增強的JSTL(兼容JSP1.2與JSP 2.0)。

④ 現在java開源的工作流引擎 哪個比較好點

myapps快速開發平台還不錯,具體優勢如下:
1)高效快速
可視化開發,操作非常簡單,曾有一實習生程序員1天做20多個單表業務功能的記錄,能在短時間內完成各類專業性強的工作。
2)開發成本低
不需精通編程語言、資料庫和各種開發技術的人才,節省人員成本;普通程序員一天可以開發十幾個模塊,且測試簡單,性能穩定,不需要磨合時間,節省時間成本。
3)兼容性強
支持JAVA多種類型資料庫
面向服務/介面設計,可輕松集成或集成到外部系統,輕松整合企業現有資源
插件式開發,基於該平台
開發出來的業務功能可以直接插入到該平台的其它項目
4)功能強大
前後端分離,共享服務匯流排
細粒度的許可權管控,通過簡單配置就可以實現功能許可權和數據許可權
5)擴展性好
代碼級開發,豐富多樣的模板庫,高自由度的組合方式,擴展靈活性高。
6)定製服務
針對客戶自身需求,進行組件定製,服務定製,只求解決客戶所有的需求
模塊功能介紹
功能模塊:開發向導、代碼生成器,商業智能、工作流、報表管理、移動端開發、作業計劃、多語言、數據源管理、企業微信、釘釘、消息管理,菜單管理,用戶管理,機構管理,角色管理,區域管理,字典管理,日誌查詢等基礎模塊。

⑤ 誰知道java工作流是什麼東西

JAVA工作流就是一個基於JAVA開發的流程框架,一般好的工作流在開發時不用寫代碼,直接配置就可以了,OA系統用的比較多。

⑥ 為什麼工作流引擎大多數都是java版本以及.N

java是主流語言,一般的工作流都是java語言的,工作流引擎可以去看看天翎的平台,他們的工作流引擎還不錯

⑦ osworkflow怎麼實現多用戶審批

Osworkflow是完全用java語言編寫的開放源代碼的工作流引擎,具有顯著的靈活性及完全面向有技術背景的用戶的特點。用戶可以根據自身的需求利用這款開源軟體設計簡單或是復雜的工作流。通過使用,用戶就可以把工作中心放在業務和規則的定義上,而不需通過硬編碼的方式實現一個Petri網或是一個有窮自動機。用戶可以以最小的代價把osworkflow整合到自己的程序中來。Osworkflow幾乎提供了所有用戶可能在實際流程定義中需要用到的工作流構成元素,如:環節(step)、條件(conditions)、循環(loops)、分支(spilts)、合並(joins)、角色(roles)等等。
首先,在osworkflow中需要了解得最重要的概念是環節,每個工作流包含了多個環節,可以把環節想像成工作流中每一個重要的活動。每個環節可以有一些諸如「已完成」、「正在處理」、「已添加至處理隊列」、「未處理」等的狀態,設計工作流的人可以根據需要自己定義狀態。
在每個環節,動作被用戶指定為自動或手動地執行。每個動作執行後,都有一個結果(result)。結果決定了工作流的流轉方向:可以停留在同一搭伍罩環節,跳轉到另一環節,跳轉到一個分支,或者匯集到一個合並等。
最後兩個概念涉及用戶對業務流程的並發執行,分支把工作流分解為兩個並行的環節,合並則在用戶滿足一定條件後,把兩個並行的環節合並成一個。
動作的執行代表了業務流程的執行,每個動作都有一組預處理功能(pre-functions)和一組後處理功能(post-functions)。其作用正如讀者想像的那樣,一個在動作觸發之前執行,一個在動作觸發之後執行。一個簡單的例子是:可以在預處理功能中檢驗申請表格數據的正確性,而後在後處理貢功能中把經檢驗的數據保存至資料庫。
動作的執行結果可以是有條件的(conditional)或無條件的(unconditional)。對於有條件的結果,引擎將首先檢查是否條件被滿足,然後再交給工作流來處理。如果條件不滿足的話,引擎將進一步判斷下一個有條件結果是否得到滿足,以知鬧此類推,直到系統最終執行到無條件結果進行處理。
如果所有的條件結果都沒有得到滿足會如何呢?事實上,每個動作都強制要求具有唯一一個無條件結果。與此對應的,可以有多個有條件的結果。
業務規則常常在最終結果中帶有條件判斷,比如,「如果申請來自於一個老客戶,則流轉到環節1」或者「如果當前系統的用戶的角色是經理的話,直接流轉道最後一個環節」。
最後一橘肢個重要的概念是步驟狀態(process state),在osworkflow中,當前步驟狀態是所有當前環節狀態的集合。讀者可能會認為工作流在運行過程中只能有一個狀態,但現實的情況是:因為對分支和合並的支持,引擎能夠做到對環節的並發控制,因此工作流的當前狀態就可能出現:「等待風險分析及已核查財務歷史」的情況。
激活動作的用戶被順理成章地稱為觸發者(caller),每個環節都有一個所有者(owner),以代表在當前環節中負責執行動作的角色或用戶。
當用戶在環節中運轉流程的時候,已完成的環節被保存至歷史表中(history),用戶當前所處的環節成為當前環節(current steps)。
最後,在osworkflow中並不存在其他工作流引擎中所包含的工作項(workitem)的概念。這是因為osworkflow是「十分底層」的工作流實現,怎樣實現或定義工作項完全交由用戶來決定。筆者認為工作項的概念太過抽象,用業務數據來稱呼它或許更為貼切一些。
Osworkflow 的文檔中介紹了更多的構造元素,如寄存器(Registers),共用方法(common functions)等,但建議在建立好第一個工作流以後再去研究它們。它們是osworkflow基本元素外的高級特性,而我們前面所認識的元素則是 osworkflow的根本所在。

⑧ beanshell和shell的區別

BeanShell是一種完全符合Java語法規范的腳本語言,並且又擁有自己的一些語法和方旅哪法;
BeanShell是一種鬆散類型的腳本語言(這點和JS類似)
BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的慎乎Java源代碼解釋器,
具有對象腳本語言特性,非常精簡的解釋器jar文件大小為175k。
BeanShell執行標准Java語句和表達式,另外包括一些腳本命令和語法。
官網:http://www.BeanShell.org/
BeanShell 將成為Java平台上的第三種編程語言,前兩種分別為java和Groovy(也是一種腳本語言)

下載與安裝:
jar: http://www.beanshell.org/download.html

src: http://www.beanshell.org/developer.html
或使用SVN:
svn co http://ikayzo.org/svn/beanshell

doc: http://www.beanshell.org/docs.html

設置環境:
(1) 把bsh-xx.jar放到$JAVA_HOME/jre/lib/ext文件夾下(不推薦);
(2) UNIX: export CLASSPATH=$CLASSPATH:bsh-xx.jar(推薦)
(3) WINDOWS: set classpath %classpath%;bsh-xx.jar(推薦)

運行方式:
(1) 界面UI方式 : java bsh.Console
(2) 命令行方式 : java bsh.Interpreter
(3) 運行腳本文件: java bsh.Interpreter filename [args]

簡單舉例(windows):
設置好環境變數classpath, 打開dos或CMD窗口, 鍵入命令:
java bsh.Console
出現BeanShell的"Bsh Workspace"拆孝碼界面,表示設置成功,BeanShell開始運行;

在使用上面命令出現的控制台界面中進行下面的測試:
bsh % foo="Foo"; //定義變數foo
bsh % four=(2+2)*2/2; //定義變數four並初始化為(2+2)*2/2
bsh % print(foo+"="+four); //輸出 Foo=4
Foo=4 //輸出結果
bsh % for(i=0;i<5;i++)print(i); //循環列印0~4
0
1
2
3
4
bsh % button = new JButton("MyButton"); //實例化一個Button對象
bsh % frame = new JFrame("MyFrame"); //實例化一個Frame對象
bsh % frame.getContentPane().add(button,"Center"); //將Button對象加入Frame對象的面板中;
bsh % frame.pack(); //打包
bsh % frame.setVisible(true); //設置Frame對象的可見性;回車後會彈出一個GUI界面;
bsh %

完整代碼:
foo = "Foo";
four = (2 + 2)*2/2;
print( foo + " = " + four );
for (i=0; i<5; i++)
print(i);
button = new JButton( "My Button" );
frame = new JFrame( "My Frame" );
frame.getContentPane().add( button, "Center" );
frame.pack();
frame.setVisible(true);
在窗口中輸入上面的代碼, 敲回車執行,彈出一個有Button的GUI界面.
說明:
因為BeanShell是鬆散類型的腳本語言因此可以直接寫:
foo = "Foo";
four = (2 + 2)*2/2;
也就是foo與four均不需要變數類型的聲明,給賦什麼類型的值,就是什麼類型的變數;
print()是BeanShell提供一種簡單的列印命令,相當於java中的System.out.println();

腳本中所寫的方法範例:
int addTwoNumbers( int a, int b ) {
return a + b;
}
sum = addTwoNumbers( 5, 7 ); // 12
也可以使用動態的變數類型(無狀態)方法
add(a, b){
return a + b;
}
foo = add(1, 2); // 3
foo = add(1, "2"); //"12"
特別注意:
只要有一個為字元串全部按照字元串處理,
系統不會根據1是數字在前把"2"轉換成數字處理;
foo = add("Oh", " baby"); // "Oh baby"

腳本中實現介面:
實現任何介面需要JDK1.3或者更高,可以使用預設的java匿名類的語法實現一個介面類,例如:
ActionListener scriptedListener = new ActionListener() {
actionPerformed( event ) { ... }
}
不需要實現介面的所有的方法,只需要實現你使用的方法即可, 如果使用你沒有實現的方法,
BeanShell將拋出一個錯誤,如:
ml = new MouseListener() {
mousePressed( event ) { print("test"); }
// handle the rest
invoke( name, args ) {
print("Method: "+name+" invoked!");
}
}

腳本中定義對象:
例一:
使用特殊的關鍵字this可以創建一個對象(根JS類似)
foo() {
print("foo");
x=5;
bar() {
print("bar");
}
return this;
}
myfoo = foo(); // prints "foo"
print( myfoo.x ); // prints "5"
myfoo.bar(); // prints "bar"

例二:
在java標准語言中可以使用this返回一個類的一個實例
// MyClass.java
MyClass {
Object getObject() {
return this; // return a reference to our object
}
}
在這個例子中getObject() 方法是返回MyClass類的一個實例
在BeanShell中對象中的變數只是局部的變數在對象內可以使用,
在對象外是不可以使用的(不同於前面for-loop,if-else中的使用);
// Define the foo() method:
foo() {
bar = 42;
print( bar );
}
// Invoke the foo() method:
foo(); // prints 42
print(bar); // Error, bar is undefined here
這里的print(bar);會拋出異常:
// Error: EvalError: Undefined argument: bar : at Line: 1 : in file: <unknown file> : ( bar )
但可以使用this返回對象,使用對象加上"."運算符引用屬性(類似JS)
foo() {
bar = 42;
return this;
}
fooObj = foo();
print( fooObj.bar ); // prints 42
同樣對象中也可以定義一些方法,例如:
foo() {
int a = 42;
bar() {
print("The bar is open!");
}
//bar();
return this;
}
// Construct the foo object
fooObj = foo(); // prints "the bar is open!"
// Print a variable of the foo object
print ( fooObj.a ) // 42
// Invoke a method on the foo object
fooObj.bar(); // prints "the bar is open!"
也可以定義bar()和foo()也帶參數:
foo() {
bar(int a) {
print("The bar is open!" + a);
}
return this;
}
foo().bar(1);
也可以把bar()方法定義到對象外面
foo() {
return this;
}
bar(int a) {
print("The bar is open!" + a);
}
foo().bar(1); //其實就是bar(1);
BeanShell一種鬆散的腳本語言, 有很多中聲明的方法可以使用:
This super global
This 是引用當前對象
Super 是引用父親對象
Global 是引用最上層對象
super.super.super...foo = 42; // Chain super. to reach the top
global.foo = 42;

BeanShell(Bsh)調用外部Java類的兩種方式:
(1) 方法一(直接調用.java源文件)
sourceRelative("xxx.java");
利用sourceRelative()方法把java的源代碼引入bsh環境中,然後進行調用。
這種方法不需要編譯引用的java源文件,缺點也很明顯"無法利用javac來檢查java代碼"。
(2) 方法二(通過引用.class二進制文件)
import xxx;
利用傳統的java import機制來獲取java類,然後在bsh環境中進行調用。
需要編譯.java文件;
方便調用第三方的Java API(因為通常情況下無法得到API的源碼,即使得到了文件會遠大於jar包的大小)。

BeanShell介紹:
我們知道,現在有很多腳本語言,大家平時使用的比較多的包括Perl,Python,Ruby,JavaScript,Groovy,
在這里我要介紹的是另外一個對象腳本語言BeanShell(http://www.BeanShell.org)。
BeanShell的解釋器是用Java寫的,開源並且免費的,
引用open-open上面的話來說明它的運作方式:
它將腳本化對象看作簡單閉包方法(simple method closure)來支持,
就如同在Perl和JavaScript中的一樣。它具有以下的一些特點:
* 使用Java反射API以提供Java語句和表達式的實時解釋執行;
* 可以透明地訪問任何Java對象和API;
* 可以在命令行模式、控制台模式、小程序模式和遠程線程伺服器模式等四種模式下面運行;
* 與在應用程序中一樣,可以在小程序中(Applet)正常運行(無需編譯器或者類裝載器);
* 非常精簡的解釋器, jar文件中的Intepreter.class大小為150+k"。
每一種腳本語言都有它的使用場景,而正是因為其在某些場景的使用而使語言本身得到了發揚光大,
比如Ruby正是因為Ruby On Rails這個Web框架的流行而得到開發者的關注,Groovy也一樣;
BeanShell可不能再有Web框架,Java世界的Web框架已經太多了,夠讓人頭痛的了;
BeanShell是Java語法,所以對Java開發者來說,很快就可以上手,
BeanShell不能像Ruby,Perl,Ruby一樣可以占據一個系統的主體,
而只能在一些小的地方發揮"螺絲釘"的作用。
筆者與BeanShell結緣是通過一個開源工作流引擎-OBE(這個鳥東西現在好像沒什麼聲音了),
BeanShell被用作流程跳轉的Parser,舉個例子,比如一個流程A節點的下一個節點是B或者C,
如何決定A->B還是A->C呢,我們可以寫一段Java腳本放在流程定義裡面,
一旦A運行完畢,流程會使用BeanShell來Parse這段Java腳本,
根據腳本的返回值決定流程下一步的運行方向,
腳本在這里雖然用得不多,但是卻是非常的重要,
我們知道,簡單的表達式是遠遠滿足不了流程跳轉的判斷的,
有了腳本就可以滿足任何不規則的業務邏輯。
繼以上說到的,使用BeanShell可以處理現實中不規則的業務,舉個很典型的例子,
我們知道,一個保險公司有很多險種,每個險種的投入和收益的演算法是很復雜的,
無法用規則的關系資料庫模型來描述,所以很多保險系統在處理險種的演算法都是硬編碼,
如果要在系統中新加一個險種,是非常麻煩的,重新修改代碼,重新發布,
這對開發\維護人員和客戶都是很痛苦的,有了BeanShell,我們可以從這種痛苦中解脫出來,
對每個險種使用不同的腳本,新加的險種我們新配一個腳本,這樣既可以滿足業務多變的要求,
又可以減少工作量,節約成本。
BeanShell的一個特點是動態執行Java代碼,腳本文件改變不會影響當前腳本的調用,
新腳本將在腳本的下一次調用生效,這不同於配置文件,配置文件改變一般都需要應用重啟。

下面舉個例子來說明BeanShell的使用(JDK1.5,BeanShell2.04),
主類:
package com.test.BeanShell;
import bsh.Interpreter;
public class TestShell {
public static void main(String[] args) throws Exception {
Interpreter interpreter = new Interpreter();
interpreter.set("inValue", new Integer(1));
interpreter.source("/D://BeanShell_test/test.bsh");
System.out.println(((Integer) interpreter.get("outValue")).intValue());
}
}
腳本文件(D:/BeanShell_test/test.bsh)中的內容為::
System.out.println("hello,in value is "+inValue);
outValue = inValue+1;
結果:
hello,in value is 1
2

再來一個簡單例子:
(1) 下載BeanShell的jar,加到 classpath 里
(2) 寫一個腳本文件 myscript.txt ,內容如下:
a = 2;
b = 3;
c = a + b;
print(c);
(3) 運行該腳本
d:\BeanShell>java bsh.Interpreter myscript.txt
如果沒有將BeanShell的JAR加到classpath路徑里,運行下面的命令:
java -classpath %CLASSPATH%;bsh-2.0b4.jar bsh.Interpreter myscript.txt
OK,輸出結果5
寫一個bat文件 bsh.bat放到系統目錄下,如:winnt 文件內容如下:
java bsh.Interpreter %1
就可以使用如下方法運行腳本文件了
c:\BeanShell>bsh myscript.txt
osworkflow用的就是他了

和Eclipse的集成: http://eclipse-shell.sourceforge.net/index.html
eclipse update url: http://eclipse-shell.sourceforge.net/update/

有用的BeanShell命令:
在剛才那個例子中我們用了一個內建在BeanShell中的一個方便的命令print(),來顯示變數的值。
print()跟Java的System.out.println()非常的相像,除非它能保證輸出總是命令行。
print()也可以顯示一些對象的類型(如數組),但比Java的更詳細。
另一個相關的命令是show(),用來開啟與關閉顯示你輸入的每一行的結果。

⑨ java工作流框架有哪些 知乎

java工作流框架有哪些 ;常見的如JBPM、Activity都可以『也有一些針對全自主知識產權的:
自主知識產權的MyApps低代碼快速開發平台產品,這是國內首款可視化配置式開發平台,平台集流程引擎、表單引擎和報表引擎等核心科技於一體,其快速靈活的開發特性及對中國式流程管理業務模式和操作習慣的精準拿捏展現了獨到的優勢。開發者通過管理後台的可視化界面,對表單排版及流程節點之間關聯進行編輯操作,開發者在沒有任何編程語言基礎的情況下也能開發出各種業務場景的應用。為企業用戶提供應用系統開發所需要的一切基礎設施,平台涵蓋了對企業的業務流程需求分析,設計,快速開發部署,模擬測試,運行維護,更新和發布,流程績效分析和管理,流程改進等對企業績效管理(BPM)進行全生命周期支持。myApps從第一版開發到目前已經有14年的歷史,已經包含100多萬行源代碼。
優勢概括
1) 微服務:高擴可展性,每個服務都能獨立部署,擴容和縮容方便,能夠有效地提高利用率;
2) 多時態:分為授權時、設計時、運行時。設計時:操作並存儲表單、流程、視圖、報表等。授權時:操作並存儲用戶、部門、許可權等。運行時:實際用戶使用系統並存儲業務數據。
3) 多種部署模式:支持單機和集群部署、雲端部署;
4) 集群化:由過去的對等集群架構演化為所有微服務都可以動態伸縮,涉及到負載均衡由前端單點轉移至調用方;
5) 配置化:包括服務的依賴關系解耦,對應用透明無侵入;
6) 版本化:指在服務升級或線上bug修復等場景下所需要的多版本管理,服務的提供者與消費者在發布引用時須指定版本號。
7) 非同步化:常用的性能優化方式,在合適的場景下,非同步化可以帶來更大的吞吐量、更短的響應時間,而且還具備隔離外部不穩定性的作用。
8)機卡分離:做好數據備份和升級系統的分開,便於輕松升級到新版本,

⑩ java開源的olap引擎——mondrian

Mondrian,是Pentaho的一部分,為一個用Java開發的OLAP伺服器,實現了MDX語言、XML解析和JOLAP規范,可以不寫SQL就能分析存儲於SQL 資料庫的龐大數據集,可以封裝JDBC數據源並把數據以多維的方式展現出來。
Pentaho,是一個以工作流為核心的、強調面向解決方案而非工具組件的BI套件,整合了多個開源項目,目標是和商業BI相抗衡。
祥見 http://ke..com/view/1545333.html

既然是OLAP伺服器,我想你應該從OLAP伺服器的實現原理看起,這樣才能領會更多的東西。從Mondrian的介紹來看,應該是JOLAP規范的實現部分吧。

閱讀全文

與開源java工作流引擎相關的資料

熱點內容
同態加密gpu 瀏覽:216
程序員告訴你網賭為什麼贏不了 瀏覽:971
程序員最帥操作 瀏覽:72
雲伺服器可以隨時更換嗎 瀏覽:489
老款車在哪裡可以買到app 瀏覽:460
程序員事業單位 瀏覽:68
特來電需要用哪個App 瀏覽:881
電腦如何共享其他伺服器 瀏覽:260
php網站性能優化 瀏覽:354
被子收納袋壓縮真空 瀏覽:30
h1z1選什麼伺服器 瀏覽:484
蘋果版三國殺怎麼在安卓上下載 瀏覽:728
安潤國際app在哪裡下載 瀏覽:438
iospdf教程下載 瀏覽:332
加密貨幣換手率300表示什麼 瀏覽:727
手機wps新建文件夾存照片 瀏覽:399
單片機rgbled 瀏覽:963
怎麼通過文件加密後發給微信好友 瀏覽:90
用虛擬機編程 瀏覽:821
公司代理伺服器有什麼要求 瀏覽:244