2012年12月9日 星期日

Create BPEL process with Eclipse BPEL designer and Apache ODE

BPEL(Business Process Execution Language) 是一種 XML-based 的語言,用於定義數個負責企業商業流程的 Web Service 交互作用,也就是可以透過 BPEL 將二個以上的 Web Service 以 process flow 的方式讓 Web Service 可以協同工作。

BPEL 也是 based on Web Service 也就是比照 Web Service 的操作方式,透過 wsdl 產出 Web Service client 來呼叫 BPEL 。

而 Apache ODE (Orchestration Director Engine)則是 BPEL Engine 用於執行 BPEL Process ;另外 Eclipse IDE 有提供 BPEL designer plugin ,可以用視覺化的方式建置 BPEL Process File ,再透過 IDE 佈署及執行於 Apache ODE 。

準備執行環境

Eclipse IDE 及 Tomcat 7 的安裝不在此說明。
  • Eclipse Java EE IDE 3.6.1(Helios)+
  • Eclipse BPEL Visual Designer 0.5.0
  • Apache Tomcat 7.0.2+
  • Apache ODE 1.3.5



Installing Apache ODE

  1. 下載 Apache ODE war file ,這裡下載的是 v1.3.5 ,建議下載最新版的,將下載的 apache-ode-war-x.x.x.zip 解壓縮。

  2. 解壓縮後將 ode.war 複製到 %TOMCAT_HOME%\webapps\ ,啟動 Tomcat 可看到 log 如下,於 %TOMCAT_HOME%\webapps\ 也可看到 ode folder

  3. Apache ODE console: http://localhost:8080/ode/


Installing Eclipse BPEL designer & Setup the Apache ODE Server


以下所提供的 Location 安裝的是 BPEL Designer v1.0.2 但此版本跟筆者環境的 JBoss Tools 有衝突,在 IDE 上建置 BPEL Project 及 Deploy 至 Apache ODE Server 會有問題,因此回復到 BPEL Designer v0.5.0 但問題依然存在只有採用另一種方法解決此問題,因此環境上如果沒有衝突建議安裝 v1.0.2 否則先使用 v0.5.0 。也可參考文末的相關連結有安裝的詳細說明。
  1. 開啟 Eclipse IDE ,功能表選擇 Help->Install New Software,來到 Install Available Software

  2. 點選 Add ,於 Location 輸入 http://download.eclipse.org/bpel/site/ 後點選OK ,Location 請先參考官網的說明 Installation BPEL Designer Project,實作測試時跟寫下這篇文章有段時間距離,二個時間點輸入的 Location 是不一樣的所以以官網的為主。
    接下來步驟為 v1.0.2 的安裝與 v0.5.0 則大同小異(提供的畫面表示使用版本): Eclipse BPEL Designer 點選 Next -> Install Detail -> Next -> 勾選 accept license -> Finish 進行安裝。

  3. 接著功能表選擇 File->New->Other,看到可以進行 BPEL Project 開發。


  4. 接著設定 Apache ODE Server ,於 Server View -> 點擊右鍵 -> New -> Server,如下圖。

  5. 選擇 Apache ODE 1.x Runtime -> Next ; 輸入 ODE ServerTomcat Server 路徑,點選 Finish



Create BPEL Project

  1. 建立 Sample Project 來測試相關的設定,於 File -> New -> Other -> Select a wizard -> BPEL2.0 -> BPEL Project -> Next ,project name 輸入 ODEHello , Target Runtime 選擇 Apache ODE 1.x Runtime,點選 Finish ,(Designer v1.0.2 於 Create Project 階段沒有 Target Runtime 及 Configuration 的設定,建立 BPEL Process File 時才須設定)。

  2. ODEHello Project 點選右鍵,接著 New -> Other -> Select a wizard -> BPEL2.0 -> New BPEL Process File -> Next ; 於 Create a BPEL Process File 進行設定, BPEL Process Name 輸入 ODEHello, Namespace 輸入 http://odehelloProcess, Template 選擇 Synchronous BPEL Process, 點選 Next

  3. 於 Create a WSDL File 進行設定,Service Name、Port Name、Binding Protocol都照預值不變, Service Address 則需配合 Tomcat 中 ODE Server 的佈署路徑,輸入http://localhost:8080/ode/processes/ODEHello ,點選 Next;接下來選擇 BPEL Process File 及 WSDL File 的放置路徑,照預設選擇 bpelContent, 點選 Finish 完成這部份的設定,也可看到 Project 產出 BPEL Process File 及 WSDL File。

  4. 設定 BPEL Process File ,開啟 ODEHello.bpel 如下圖於 BPEL Design UI 點選 FIX_ME-Add_Business_Logic_Here ,點選 Properties -> Details -> Assign

  5. 設定 Assign 的 input 及 output,這個 Sample 只是單純將輸入的字串,經由 Assign 後再 Print,因此只需指定 Assign 的一邊是輸入的字串另一邊則為輸出的字串如下圖步驟設定,設定完成後存檔。

  6. 接下來新增 ODE Deployment Descriptor File,於 ODEHello Project 點選右鍵,接著 New -> Other -> Select a wizard -> BPEL2.0 -> Apache ODE Deployment Descriptor -> Next ;接者 BPEL Project 相對路徑照預設值不用修改,點選 Finish

  7. 開啟 deploy.xml File,設定 Associated Port:ODEHelloPort ,接著存檔。

  8. 開啟 ODEHelloArtifacts.wsdl File,UI 設定如下圖,此 Sample 這部份不做修改。


Deploy & Run BPEL Project on the Apache ODE

  1. 因為 BPEL Designer v1.0.2JBoss Tools 衝突的關係,執行接下來的部份時須先修改 %ECLIPSE_HOME%\workspace\ODEHello\.settings\org.eclipse.wst.common.project.facet.core.xml ,這樣在配置 ODE Server 時才能選擇 ODEHello Project
  2. <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="jbt.bpel.facet.core"/>
      <installed facet="jbt.bpel.facet.core" version="2.0"/>
    </faceted-project>
    

    因已安裝過 JBoss Tools(jbt.bpel.facet.core) 此部份須手動修改如下配合 Apache Ode(bpel.facet.core)
    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <runtime name="Apache Ode 1.x Runtime"/>
      <fixed facet="bpel.facet.core"/>
      <installed facet="bpel.facet.core" version="2.0"/>
    </faceted-project>
    

  3. ODE Server點選右鍵 -> Add and Remove

  4. 點選 ODEHello -> Add -> Finish

  5. 啟動 ODE Server,可於 Console view 看到 log 輸出,Browser輸入 http://localhost:8080/ode/processes/ODEHello?wsdl 可看到 wsdl file ,Tomcat 目錄下也可以看到已佈署於 ODE Server 。

  6. 接著測試 BPEL Process,也就文章一開頭所講的建立 Web Service Client 進行測試,於 ODEHelloArtifacts.wsdl 點選右鍵,接著 Web Service -> Test with Web Service Explorer

  7. Web Services ExplorerOperations -> 點選Process

  8. Body -> ODEHelloRequest -> input string -> 輸入字串:Test from eclipse -> 點選Go,可於 Status 視窗看到輸出字串。



參考文章如下:
Installing BPEL designer and Apache ODE on Eclipse v3.4.x
Deploying a "Hello World" BPEL process with Eclipse BPEL designer and Apache ODE
基于Axis2 Web Service的Eclipse BPEL使用詳解
Apache Ode
BPEL | 宅學習 - Social Learning Space
BPEL簡介(By Kumer Raj Moorthy)

沒有留言:

張貼留言