Q:什么是 BPEL?
A: BPEL是一門用于自動化業務流程的形式規約語言。 用XML文檔寫入BPEL中的流程能在Web 服務之間以標準化的交互方式得到精心組織。這些流程能夠在任何一個符合BPEL規范的平臺或產品上執行。 所以,通過允許顧客們在各種各樣的創作工具和執行平臺之間移動這些流程,BPEL使得他們保護了他們在流程自動化上的投資。盡管以前想使業務流程定義標準化,但BPEL已經引起了史無前例的興趣,而且它最早在軟件供應商中獲得大量認可。
Q: BPEL、WSBPEL和 BPEL4WS之間的區別是什么?
A: 除了歷史參考文獻不同外,沒有什么其他的不同。這些名字都涉及到相同的未決標準。“BPEL4WS”是起初規范的名字,它由BEA、IBM和Microsoft編寫和公布的。“WSBPEL”目前是規范和未決標準的名稱。當這個規范提交到OASIS時,出于Web服務相關標準的努力,按照OASIS命名方案更換了這個名字。盡管如此,大部分團體仍然簡單地稱這個標準為“BPEL”。
Q: 什么是 BPELJ?
A: BPELJ 是BPEL和Java 語言的組合,它允許一起運用這兩種編程語言來構建完整的業務流程應用程序。通過允許BPEL和Java一起工作, BPELJ使得每種語言可以做它最擅長的事。BPELJ優于BPEL,但沒有它那么有競爭力。
Q:如何把BPELJ和 BPEL聯系起來,它們之間區別在哪里?
A: BPEL基本上向編程發展,它支持業務處理流程的邏輯。這些業務處理流程是獨立的應用程序,這些應用使用Web服務作為實現業務功能的活動。BPEL 不會成為一門通用的編程語言。然而,有人認為BPEL將和用來實現業務功能的其他語言(少部分的編程)結合起來。為了方便BPEL和Java 結合起來,BPELJ對BPEL做了一些小的改動并且做了一些擴展。
Q: BPEL不是針對業務分析員嗎? 如果是,為什么把Java加進來?
A: 有這么一個普遍的誤解,那就是BPEL想達到非程序設計人員或者所謂的“業務分析員”也能使用的程度。這個錯誤的概念部分根源于市場上許多針對于這組用戶的業務流程管理工具這樣的一個事實。無可置疑,工具供應商為構建BPEL和BPELJ流程提供了廣泛的可視化接口,但是語言本身的目的是為了開發人員。
Q: BPELJ如何工作?
A: 通過允許在BPEL流程定義中包含Java代碼段(稱為Java片斷),BPELJ使得Java 和BPEL能夠相互協作。
Q: 難道不應該考慮允許使用任何語言(C#、JavaScript和Java等)來設計代碼片斷嗎?
A: 這個片斷背后想法是有代表性,我們希望它能用于許多不同的語言。然而,要集成BPEL和一門特定的語言包含的不僅僅是用XML包裝目標語言。集成變量綁定、事務管理、調用路徑等問題必須周全地定義,然而,每種語言是用不同的方法解決這些問題,對所有語言進行統一的綁定是不現實的。所以, BPELJ集中解決 BPEL 和 Java的這些集成問題。我們期待著解決其他的語言的集成問題 。
Q: 難道BPELJ 沒違反“ BPEL中活動是Web服務,數據是XML,數據結構用XML架構描述”這一原則嗎?
A: 并不是世界上所有的服務都是Web服務,它們也不應該是。用J2EE更適合緊密耦合的系統,在這種系統中,容器提供的功能如安全和事務是特別有價值的。那些把業務邏輯部署成J2EE組件的人員應該能夠在業務流程中充分利用這些組件,BPEL是描述這個過程最好的一門語言。
一些人爭論說在程序片斷中用Java來完成少量計算和數據操作非常合適,但是應該通過XML/Web服務視圖強制所有服務調用。這是一個特別站不住腳的觀點。如果您有一個用Java代碼片斷寫的流程,很明顯,有一個Java開發人員參與創建這個流程。
這意味著您可能有下面的設想:有一個開發人員熟悉用Java調用組件,他想用Java操縱組件的輸入和輸出。迫使那個人把所有的調用看成好像是調用Web 服務一樣,這會產生一層混亂,阻止考慮業務邏輯。
原文地址:http://dev2dev.bea.com.cn/techdoc/2004120205.html
盡管我知道了bpel的理論,但是仍然覺得寫一個bpel挺麻煩的。盡管有一些圖形化的編輯工具,但是仍然覺得并不好用,可能是我對bpel還是不熟悉的緣故吧
但是,我可以寫一個jave類,在這個類中用各個方法描述出了各個web service的組合調用關系。現在我要做的,就是找一個bpel編輯器和一個bpel服務器來將這個java類的邏輯變成bpel,然后運行之
為什么沒有人將這個步驟作成自動化的呢???是因為沒有必要還是因為別的什么??