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