`

需要ESB/SOA才能做BPM

阅读更多
引用
這個題目一口氣出現了三個專有名詞,所以在談這個題目之前我想我有必要先解釋何謂ESB/SOA及BPM,由於相關專業的文章已經非常的多,在此僅做些概念性的介紹。

服務導向架構(SOA)

我們先從大家較為熟悉的SOA談起,SOA就是「服務導向架構」(SOA, Service-Oriented Architecture)其中的Service大致可以說是企業的應用程式服務。我們可以和「物件導向程式設計」(OOP , Object-Oriented Programming)來做比較,OOP希望能透過物件化的程式設計來增進軟體程式元件模組化的程度,兩者均有一個重點就是希望提高服務或程式的重複使用率(re-use),進而提高效率;OOP是以程式類別(class)為基礎,而SOA則是將重複使用的層次提高至應用程式層級,透過合約及網路的標準將應用程式包裝成可重複使用的商業服務。綜合來說是希望建構一個鬆散耦合的系統架構,能將應用程式及資料包裝成一個個的商業服務,而服務之間分享資料的綱要,以合約的方式呼叫及使用該服務。

企業服務匯流排(ESB)

ESB全名為Enterprise Service Bus,本質上是一個含有通訊基礎設施的服務容器,一般習慣在SOA的參考架構內將ESB定義在顯著的地位上。ESB是連接導向的 (Connectivity-Oriented),它是負責管理並銜接SOA架構下的各種應用服務。

而ESB與SOA的關係由「Bus」與「Architecture」的差異就可感覺出企圖心的差異:ESB提供的是較具體較明確的運輸載具(公車)與路線,而SOA想解決的則是架構性的問題。好比在設計園區的交通網絡架構時,固定路線的交通車(小巴)是一種可考量的普遍選擇但卻不一定是唯一的選擇。對於特殊地區特殊需要的園區而言,或許地鐵、人員輸送帶、直升機等會是更好甚至是不得不的選擇。ESB注重的是架構一個可運行無礙的公車路線與站牌交通網。SOA則是除了交通網的建造外更要確保既有與未來要進駐之廠商需能符合這個交通網的交通相關規範。

企業流程管理(BPM)

最後來介紹「企業流程管理」(BPM, Business Process Management)。相對於SOA是由下而上從IT架構面著手,BPM的概念是由上而下從經營管理面(業務及程序)著手,從流程的角度出發,建立並持續改善企業流程,因應多變的組織模式以及隨時調整營運模式的問題。而一個完善的BPM系統不僅能提供商業流程所需要的規劃、監控及改善功能,更要能提供當流程是在跨異質系統時的資訊交換的支援能力。

由以上當可感覺出ESB/SOA的理想與BPM的部份理想相當接近:兩者均能提升企業因應環境及市場變化的適應能力,提高企業的敏捷度,將各資訊平台當作支援企業的資訊服務。只不過兩者經由不同的角度切入,SOA是從整體的IT架構下為基礎建立起一個整合資訊及應用的服務平台,而BPM則將IT、User及Business整合,以塑造快捷商業流程並加強管理,也能提供跨異質系統的整合能力。

BPM早就存在

歷史事實是,在沒有SOA之前,BPM產品就已經出現並成功應用。好比國光號不會因為高速公路封閉就因此停開,因為還有省道等替代道路可用,只不過走省道會比較慢比較耗油因此可能得調整票價與班次時間。同理,沒有ESB/SOA也不會因而無法做BPM。沒有ESB/SOA則當BPM的流程需要跨系統傳遞時就需依靠較傳統的EAI方式來開發,有了ESB/SOA則在跨系統部分的整合開發就會簡單與標準化的多。好比沒有統一的portlet標準前,EIP(Enterprise Information Portal)要顯示其他系統的訊息都得從頭客製(短則一週長則月餘),有了portlet後則只要把各系統提供的既有portlet掛到EIP上即可立即顯示(deploy與調整平均半小時)。

不過,好比宣稱有提供portlet的系統不見得剛好有提供所需顯示於EIP上資訊的portlet,比方某HR系統有提供組織圖、公司行事曆等的 portlet,但卻不見得會提供員工修改個人資料、薪資查詢、獎懲查詢等的portlet,因此當有需求在EIP上顯示相關資訊時那只有兩個方法:一是走回老路用EAI的方式,另一種則是對HR系統客製新的所需的符合標準的portlet。若僅為解決單一一次性的需求,前者技術上使用直接抓DB或是 iFrame的方式可能比用portlet快的多,但是若哪天換了portal或是其他系統也剛好需要,那就得重新review

有了ESB/SOA也不代表剛好BPM所需要的service已經打包好等人用,只不過有了SOA,BPM與各系統就有了比較一致統一的溝通方式,不管是web service或是ESB等,BPM導入廠商不用再得RFC、MQ、Store Procedure等不同介面樣樣精通才能取得不同系統的資訊,因此導入跨系統BPM時的導入障礙與溝通曲線會因此大幅降低。

之前我在BPM會不會引起內部革命中曾提過,Business Process Refine是BPM重要精神之ㄧ,而對一個跨系統的BPM而言,要能靈活Refine可不是一件簡單的事,在SOA的概念架構下建立的BPM更能展現整合能力及系統的彈性;而從另個角度看去,理想的SOA架構,更必須仰賴BPM依照其業務需求的服務(不僅是制式的或是彈性變化大的服務) 有效並且「有意義」地串聯起來,因此也增加了Business Process Refine的彈性及應變效率。

我為何特別強調「有意義」呢?是因為我認同所謂「應用比平台更重要」的這個說法,任職於IBM的J2EE顧問Bobby Woolf曾經寫了一篇文章,認為單純以連接導向但無商業價值建立起平台是值得再重新審視的策略。這是因為在還沒有產生商業價值之前就已經耗費了相當的成本,更何況那些未來不見得全部是你所能預見的。當然,平台絕對是重要的,好的平台目的就是要讓應用運作的更好,SOA和BPM的協調合作就是能夠建立起優秀整合能力的平台及動態地提供商業應用,這就是為什麼我要強調SOA架構下的BPM能夠有效率並且「有意義」地串聯起應用服務。

綜觀SOA及BPM在台灣市場上雷聲大雨點小,雖然近年火熱但企業多半還是抱著觀望並保留的態度,但其實在國外兩者早已經行之有年且成功應用,我想台灣企業應該要正式並且重視SOA及BPM了。

本文由超義軟體工程師葉永隆與李仰哲合作完成。如果想與專欄作者有進一步的討論,歡迎來信。

from http://www.zdnet.com.tw/enterprise/column/bpmtalk/0,2000088808,20127340,00.htm
分享到:
评论

相关推荐

    IBM的ESB&BPM解决方案

    ESB 的主要优点之一就是处理消息。消息的传入和传出也许会用到协议或格式中介。当这些需求明显需要处理消息时,使用 ESB...当这些需求需要使用 ESB 基本功能(如消息路由、转换或协议中介)之一时,则 ESB 是最佳选择。

    Oracle BPM&ESB技术交流

    ### Oracle BPM & ESB 技术交流核心知识点 #### 一、引言 在现代企业的信息化建设中,业务流程管理和企业服务总线(Business Process Management, BPM与Enterprise Service Bus, ESB)作为重要的组成部分,对于提升...

    oracle_esb_bpm_odi

    ### Oracle SOA 架构详解 #### 一、Oracle SOA 概述 **Oracle SOA(Service-Oriented Architecture)**是Oracle提供的一套全面的企业级中间件解决方案,旨在帮助组织构建高度灵活且可扩展的业务应用。该架构的核心...

    SOA概念原理培训.pdf

    文档中提到的适配器、ESB(企业服务总线)、BPM(业务流程管理)和SOA治理是构建和实现SOA的几个关键组成部分。 适配器(Adapter)是SOA中用于解决系统间互操作性问题的一个重要概念。不同系统间通信通常会面临数据...

    SOA 基于BPM的快速协同开发平

    ### SOA 基于BPM的快速协同开发平台 #### 背景与目标 在信息化快速发展的背景下,中国水利水电集团为了更好地应对日益复杂的业务需求和技术挑战,提出了一种全新的开发模式——**基于BPM(Business Process ...

    基于SOA的框架设计

    在基于ESB的SOA-BPM(Business Process Management,业务流程管理)系统集成平台中,有三个主要问题需要解决: 1. **协议解耦**:由于不同的系统可能使用不同的通信协议,如HTTP、SOAP、JMS等,ESB需要具备协议转换...

    解析SOA架构与相关技术

    ### 解析SOA架构与相关技术 #### 面向服务架构(SOA)概述 ...同时,SOA与其他相关技术(如BPM、SCA/SDO、SaaS、ESB等)的结合,进一步增强了其在实际应用中的价值,为构建更加高效、灵活的IT系统奠定了坚实的基础。

    开源ESB讨论

    在开源SOA解决方案的改进方面,JD强调集成解决方案是关键,尤其是BPM(Business Process Management,业务流程管理)引擎、规则引擎和ESB之间的集成需要加强。TJ则认为,虽然开源领域有许多独立的SOA项目,但在这些...

    《Open Source ESB in Action》作者谈开源ESB.docx

    关于开源SOA解决方案的改进方向,Jos Dirksen认为,目前最需要提升的是集成解决方案,特别是BPM引擎、规则引擎与ESB之间的无缝协作。Tijs Rademakers则提到,虽然有许多优秀的开源SOA项目,如ESB、BPM和规则引擎等,...

    SOA实践指南-分布式系统设计的艺术.pdf

     7.2 bpm和soa  7.3 用于服务的bpm的例子  7.4 业务流程建模  7.5 识别服务的其他方法  7.6 配制和编排  7.7 更多思考  7.8 总结 第8章:soa和组织  8.1 角色和组织  8.2 出资模型  8.3 总结 第...

    系统集成怎么做?不是接口,是ESB

    BPM作为面向服务架构(Service-Oriented Architecture, SOA)的重要组成部分,其集成能力对于构建灵活高效的企业应用体系至关重要。然而,传统的接口对接方式已经无法满足现代企业的复杂需求。本文将探讨如何通过企业...

    Oracle SOA Doc

    Oracle BPM(Business Process Management)是Oracle SOA Suite的一部分,专门用于设计、执行和优化复杂的业务流程。它包含流程建模、工作流管理、事件处理和决策支持等功能,帮助企业快速响应市场变化,提升运营...

    SOA主导的技术发展趋势

    企业服务总线(Enterprise Service Bus,简称ESB)是SOA架构中的关键技术之一,它提供了一种统一的基础设施,用于连接、集成和管理企业内的多个服务。ESB的关键功能包括: 1. **目录与智能化路由服务**:ESB能够...

    解析SOA架构及相关技术

    ### 解析SOA架构及相关技术 #### 面向服务架构(SOA)...综上所述,SOA作为一种架构方法论,不仅促进了企业IT架构的现代化,还与其他关键技术如BPM、SCA/SDO、SaaS和ESB等形成了互补,共同推动了企业信息化水平的提升。

    Oracle BPM集群部署

    5. **部署BPM和SOA组件**:将Oracle BPM Suite的应用部署到集群,这通常包括BPEL进程、ESB服务、工作流和表单等。部署应选择“集群”模式,以便在所有节点上分发。 6. **设置故障转移和负载均衡**:通过配置...

    SOA实践指南 分布式系统设计的艺术.part3

     7.2 bpm和soa  7.3 用于服务的bpm的例子  7.4 业务流程建模  7.5 识别服务的其他方法  7.6 配制和编排  7.7 更多思考  7.8 总结 第8章:soa和组织  8.1 角色和组织  8.2 出资模型  8.3 总结 第...

    Oracle ESB

    Oracle Weblogic ESB通过简化复杂的服务交互来支持企业服务架构(SOA),从而提高业务流程的灵活性和响应性。 #### 二、课程介绍与适用对象 ##### 课程概述 该培训课程旨在帮助参与者了解如何利用Oracle Weblogic ...

    Oracle BPM入门教程

    Oracle BPM包括了流程建模工具Oracle BPM Studio、流程执行引擎、流程分析工具以及企业服务总线(Enterprise Service Bus, ESB)等组件。 Oracle BPM Studio是一个功能强大的集成开发环境(IDE),用于创建和管理...

Global site tag (gtag.js) - Google Analytics