2007年8月9日
目前,Linux越來越流行,已經足以應付我們日常的開發使用需要。Ubuntu是目前市場占有率最大的linux發行版,我們公司在進行軟件開發的時候,無論是開發工作站還是運行服務器都是采用Ubuntu操作系統。現在把我們在Ubuntu上面搭建Java開發和運行環境的過程拿出來和大家分享。
以下操作基本上都是在終端窗口中進行。
1、JDK安裝
JDK安裝有如下步驟:
(1)聯網安裝JDK最新版(1.6版)
輸入下述命令安裝Java SDK 6以及相關軟件:
sudo apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre sun-java6-source sun-java6-plugin sun-java6-fonts
(2)設置默認的JDK版本
如果系統中安裝有多個版本JDK,需要指定默認的JDK版本。在命令行窗口中輸入下述命令:
sudo update-alternatives –config java
在出現的列表中選擇/usr/lib/jvm/java-6-sun/jre/bin/java所在的那一行。
在命令行窗口中輸入下述命令:
sudo update-java-alternatives -s java-6-sun
(3)、修改/etc/jvm文件:
sudo gedit /etc/jvm
加入下列內容作為第一行:
/usr/lib/jvm/java-6-sun
(4)、設置全局變量
修改/etc/environment文件,加入如下內容:
JAVA_HOME=/usr/lib/jvm/java-6-sun
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib:/usr/lib/jvm/java-6-sun/jre/lib
JAVA_OPTS=’-Xms768m -Xmx768m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true’
PATH=/usr/lib/jvm/java-6-sun/bin:/usr/lib/jvm/java-6-sun/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
注意:上述文件中的每一行分隔符應該是linux換行符而不能是windows換行符,因此千萬不能在windows環境下編輯該文件。
2、安裝Ant和Maven
Ant和Maven是兩個最著名的Java構建工具。
(1)軟件包安裝
它們的安裝過程非常簡單,在命令窗口中直接輸入下述的命令:
sudo apt-get install ant ant-optional maven2
(2)設置環境變量
有時候,運行ant或maven的時候會報“內存不足”或“Java堆空間不足”的錯誤,可以通過設置ANT_OPTS和MAVEN_OPTS環境變量解決。通過如下命令打開/etc/environment文件:
sudo gedit /etc/environment
添加下述兩行:
ANT_OPTS=”-Xmx1024M”
MAVEN_OPTS=”-Xms768m -Xmx768m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m”
文章來源:
http://www.dayatang.com/wordpress/?p=3
本教程向你展示用jpdl構造的簡單流程和使用API管理流程運行時執行的過程。
本教程的形式是解釋一批范例。這些范例著眼于一個特定的主題并包含大量的注解。這些范例也能夠在jBPM下載軟件包的src/java.examples目錄中找到。
最好的學習方式是創建一個項目,并通過創建下面的范例的變體來體驗它。
在開始之前,首先下載和安裝jBPM。
jBPM包含一個圖形設計器工具,可用于創建在這些范例中顯示的xml文件。你可以在《下載和安裝jBPM》部分找到下載這個圖形設計器的指南。你不需要為了完成本教程而使用這個圖形設計工具。
Hello World范例
流程定義是一個有向圖,由節點(node)和轉移(transition)組成。Hello world流程有三個節點。為了看到這些代碼片段如何組合在一起,我們從一個簡單的流程開始,不使用圖形設計工具。下面的圖顯示hello world流程的圖形表示:
圖 3.1.?Hello world流程圖
public void testHelloWorldProcess() {
// 本方法顯示一個流程定義和此流程定義的執行。這個流程定義有三個節點:一個未命名的
// start狀態,一個狀態s和一個名為end的結束狀態。
// 下面一行將一段xml文本解析為一個流程定義ProcessDefinition。流程定義是對流程
// 的正式描述,表示為一個Java對象。
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
" <transition to='s' />" +
" </start-state>" +
" <state name='s'>" +
[...]
文章來源:
http://www.dayatang.com/wordpress/?p=17
本章引導你通過最初的步驟取得jBPM,并提供一個快速啟動和運行它的初步的指南。
下載和安裝jBPM
要獲得最新發布的jBPM第3版,到jBPM jPDL 3 package on Sourceforge.net 站點下載最新版的安裝程序(installer)。
jBPM installer 創建一個運行時安裝,并能夠下載和安裝eclipse流程設計器和JBoss服務器。你也可以在沒有應用服務器的情況下使用jBPM,但是所有這些組件都已經預先配置好并能夠相互協作達到開箱即用,使得你能夠對jBPM快速上手。為了啟動這個installer,打開命令行窗口,轉到你下載的jBPM文件所在的目錄,然后鍵入:
java -jar jbpm-installer-{version}.jar
遵從指示一步步進行下去。該安裝程序可選下載任何支持的JBoss版本和Eclipse的精確版本。
當把jBPM安裝到JBoss的時候,將在服務器配置的deploy目錄之下創建一個jBPM子目錄。所有jBPM相關文件都集中在這個deploy/jbpm目錄中。JBoss安裝中的所有其他文件都不會觸及到。
你可以使用自己的Eclipse(如果它的版本為3.4以上的話) ,也可以使用安裝程序下載的Eclipse。為了在Eclipse中安裝圖形流程設計器,直接使用Eclipse軟件更新機制(Help –> Software Updates –> …) 并指向這個文件designer/jbpm-jpdl-designer-site.zip 即可。
JBoss jBPM社區頁面
The jBPM社區頁面提供關于到哪里查找論壇、wiki、問題跟蹤、下載、郵件列表和源代碼倉庫等信息的所有細節。
文章來源:
http://www.dayatang.com/wordpress/?p=14
JBoss jBPM 是一個靈活的、可擴展的流程語言框架。jPDL是一種建立在這個公共框架之上的流程語言。它是一種直觀的流程語言,用任務(tasks)、異步通訊的等待狀態(wait states)、定時器(timer)、自動化的動作(action)……等術語來圖形化地表示業務流程。jPDL擁有最強有力的、可擴展的控制流機制把這些操作結合在一起。
jPDL的依賴性非常小,能夠像使用一個java類庫一樣容易地使用它。但是,通過把它部署在一個J2EE集群的應用服務器中,也能夠把它用在需要極大的吞吐量的環境中。
jPDL能夠配置使用任何類型的數據庫,部署在任何應用服務器中。
概覽
工作流和BPM的核心功能被打包成一個簡單的java類庫。這個類庫包含一個服務,用于管理和執行保存在iPDL數據庫中的流程。
圖1.1 jPDL組件概覽
jPDL套件
本套件包含所有的jBPM組件,打包成一個易于下載的文件形式。它內部包括下列文件夾:
config, 用于標準java環境的配置文件。
db, 用于創建數據庫的SQL腳本,和數據庫兼容性信息。
designer, 用于編制jPDL流程和安裝腳本的Eclipse插件(它不包含在單純的jpdl下載文件中)參見jPDL圖形流程設計器部分。
doc, 用戶指南和JavaDoc文檔。
Examples 范例文件。
lib, jBPM所依賴的類庫。要獲得進一步的信息,請參考“第三方類庫”部分。
server, 一個預先配置好的jBoss應用服務器,在一個控制臺web應用中包含了jBPM(不包含在單純的jpdl下載文件中)。
src, jBPM和身份認證組件的java源代碼。
這個預先配置好的JBoss應用服務器安裝了下列的組件:
Web控制臺(web console), 打包為一個web存檔(war文件)。此控制臺能夠由流程參與者和jBPM管理者使用。
工作執行器(job executor) 用于啟動定時器和異步消息。在控制臺web應用程序中有一個servlet上下文監聽器,它啟動工作執行器,后者產生一個線程池,用于監測和執行定時器和異步消息。
jBPM數據庫, 一個進程內hypersonic數據庫,包含jBPM數據表。
一個范例流程, 已經部署到jBPM數據庫中。
身份組件(Identity component)類庫是控制臺web應用的一部分。身份組件的表存在于jBPM數據庫中(這些表以“JBPM_ID_”為前綴)。
jPDL圖形流程設計器
jPDL也包括一個圖形設計器工具,該工具用于創作業務流程,它是一個Eclipse插件。
該圖形設計工具的最主要的特征是同時支持業務分析師和技術開發者,從而允許從業務流程建模到實際開發實現的平滑過渡。
該Eclipse插件以一個本地更新站點(普通zip文件)的形式提供,可通過標準的Eclipse軟件更新機制安裝。jPDL圖形流程設計器插件也包含在 JBoss Tools, JBoss Developer Studio 和 SOA Platform.中。
jBPM控制臺Web應用程序
JBPM控制臺web應用程序有兩個目的。首先,它作為中心用戶接口,與在流程執行過程中產生的運行時任務進行交互。其次,它是一個管理和監控控制臺,能夠檢視和操控運行時流程實例。 它的第三個功能是業務活動監控,這是一些流程執行的統計信息,這些信息對于管理員找出瓶頸和進行其他種類的優化很有用。
JBPM核心類庫
JBoss jBPM核心類庫是普通的Java(J2SE)類庫,用于管理流程定義和流程實例執行的運行時環境。
JBoss jBPM是一個java類庫,因此它能夠在任何java環境中使用,例如web應用程序,swing應用程序,EJB,Web Service……等等。 jBPM庫也可以打包并暴露為一個無狀態會話EJB,這允許集群部署和在極高吞吐量環境下的可縮放性。此無狀態會話EJB應該針對J2EE 1.4規范編寫,以保證可以部署到任何應用服務器之中。
依據你所使用到的功能,類庫 lib/jbpm-jpdl.jar對一些第三方類庫如hibernate、dom4j及其它類庫有依賴。我們已經做出巨大的努力使得你只需要實際使用到的依賴庫。第三方依賴的問題在第四章(部署)中進一步闡述。
JBPM在內部使用hibernate進行持久化。除了傳統的o/R映射功能之外,hibernate也解決了不同數據庫使用不同SQL方言的問題,使得jBPM可以移植到所有目前流行的數據庫之上。
JBoss jBPM API可以從你項目中的任何java軟件訪問,例如web應用程序,EJB程序,
Web Service組件、消息驅動Bean或任何其他java組件等。
JBoss jBPM身份組件
JBoss jBPM能夠和任何包含用戶和其他組織機構信息的公司目錄集成。但是,對于沒有提供組織機構信息組件的項目,JBoss jBPM包含了這個身份組件。 該身份組件中使用的模型比傳統的Servlet-、EJB-和門戶中使用的模型更豐富。
要進一步了解,請參考《身份組件》部分。
JBoss jBPM工作執行器(Job Executor)
job執行器是一個用于在標準Java環境下監控和執行job的組件。Job用于定時器和異步消息。在企業環境中,JMS和EJB定時器服務可以用于這一目的。相反,Job執行器能夠用在缺乏JMS或EJB的環境中。
Job執行器組件被打包在核心jbpm-jpdl類庫中,但是需要以以下的方式之一部署:或者在web應用部署描述符(WEB-INF/web.xml)中注冊 JobExecutorLauncher servlet上下文監聽器,使得在servlet上下文創建/銷毀的時候啟動/停止Job執行器;或者開啟一個單獨的JVM,在其中編程式啟動Job執行器。
文章來源:
http://www.dayatang.com/wordpress/?p=10
目前最流行的開源工作流軟件有三個:Shark, OSWorkflow和jBPM。jBPM是其中最有前途的。
對jBPM用戶指南的翻譯,一直都有人在做。但是通常針對的都是jBPM的早期版本(3.0或3.1),而且翻譯的謬誤和文理不通之處甚多,因此有自己翻譯的念頭。
不敢說自己翻譯的會有多好,畢竟我的英文水平不高,jBPM經驗也不多。拋磚引玉吧。如有哪位同仁愿意指正,萬分感激。
文章來源:
http://www.dayatang.com/wordpress/?p=5